Compare commits

...

42 Commits
master ... next

Author SHA1 Message Date
Gianmarco Gargiulo 543219cf0c Added an 'All posts' page to show all adequate regular pages 2023-11-12 01:09:39 +01:00
Gianmarco Gargiulo fcf7e743d7 Experimenting with a new homepage layout and improved list pages 2023-11-10 15:34:53 +01:00
Gianmarco Gargiulo d6c4677a1f Improved styling of the Isso comments, the download button and the ytr.html buttons 2023-11-09 15:55:02 +01:00
Gianmarco Gargiulo 3568fac4e6 Improved read next ('More in x') post cards 2023-11-08 16:27:39 +01:00
Gianmarco Gargiulo 75b97cc875 Changed the styling on the title and the buttons of the ytr.html page, changed the font weight of various headings, improved the post cards for tags, changed the font of the comments section's title and changed the Javascript messages of the video players and the comments section 2023-11-04 23:52:43 +01:00
Gianmarco Gargiulo 237a55bcbb Added a notice to the homepage banner about EU's eIDAS Article 45 proposal on top of the Chat Control 2.0 notice 2023-11-03 23:09:05 +01:00
Gianmarco Gargiulo 59eb8a35e6 Updated the blinky page to inform that WEI has been archived and replaced 2023-11-02 22:51:52 +01:00
Gianmarco Gargiulo 2a40fe636b Added a breadcrumb indicator for sections on pages and post cards, replaced the old unimplemented download link system with a download button/banner shortcode and added one to the NixOS presentation page, changed the font size of page titles and updated the styling and some text on the ytr.html page 2023-11-02 16:45:57 +01:00
Gianmarco Gargiulo 6d82af16ea Updated the README.md to clarify content licensing and directing to the copyright page 2023-11-01 12:24:53 +01:00
Gianmarco Gargiulo 308e79cbf8 Added the Linux Day 2023 presentation video article and updated the videos archetype's YouTube link 2023-10-29 14:15:14 +01:00
Gianmarco Gargiulo e02f62f27f Updated the Chat Control banner, updated the blinky page and changed the disabled Javascript message for the comments section 2023-10-19 01:45:10 +02:00
Gianmarco Gargiulo bd9e00b569 Enabled the homepage banner for an EU Chat Control 2.0 warning and changed some CSS for the banner 2023-10-18 20:32:20 +02:00
Gianmarco Gargiulo 8b110ef66b Modified the ytr.html file to change the Piped instance, the main text style and part of the small 1 notice's style 2023-10-09 01:50:33 +02:00
Gianmarco Gargiulo 27f5327e44 Modified the La Citta Adattabile's website page to correct the foundation year and to update its thumbnail 2023-10-08 22:22:40 +02:00
Gianmarco Gargiulo 4ac5246878 Modified the Extras page to remove the onion link and to note that the memes repo is broken 2023-10-06 00:59:43 +02:00
Gianmarco Gargiulo 88718bd8d2 Replaced the AMD pin with a Nishi Boats pin which links to the nishi.boats website 2023-10-05 16:13:21 +02:00
Gianmarco Gargiulo 2ddeb9539b Removed the custom error pages 2023-10-02 19:23:14 +02:00
Gianmarco Gargiulo 64dd1cfa98 Changed the link on the 'Anything but Chrome' pin and changed the font weight on several title styles including the hero text 2023-10-01 18:25:18 +02:00
Gianmarco Gargiulo f6abc78fd1 Added an article for La Città Adattabile's website 2023-09-30 14:24:56 +02:00
Gianmarco Gargiulo 2439631b34 Added a link to my backup Odysee channel in the Socials page 2023-09-26 18:41:28 +02:00
Gianmarco Gargiulo 5905bee42e Improved post cards for tags and added a download link for the front matter (yet to be implemented in the articles) 2023-09-22 23:39:06 +02:00
Gianmarco Gargiulo ffc99c6502 Changed the Piped instance to piped.smnz.de in ytr.html 2023-09-22 17:58:12 +02:00
Gianmarco Gargiulo 25afd1113f Added my GitLab and KDE Invent profiles and some links to alternate profiles in the Socials page 2023-09-17 16:31:31 +02:00
Gianmarco Gargiulo 609b3ae556 Updated the Xonotic server's ToS text file to match the main ToS page 2023-09-13 18:17:48 +02:00
Gianmarco Gargiulo b0daa73c24 Changed my drawing in the intro background, added a link to the Windows XP pin and replaced the 'Best viewed on a computer' pin with a Libreboot pin 2023-09-04 22:19:19 +02:00
Gianmarco Gargiulo 151cda8529 Added a link to my LinkedIn profile in the Socials page 2023-09-01 14:06:09 +02:00
Gianmarco Gargiulo df8e49b39d Updated the Matrix group chat address and URL in the Contact page 2023-08-30 20:00:55 +02:00
Gianmarco Gargiulo ee4bbb2d1d Updated the CV to change the age from 19 to 20 2023-08-30 00:12:15 +02:00
Gianmarco Gargiulo b45217b959 Adjusted a detail in the intro background SVG 2023-08-29 21:37:30 +02:00
Gianmarco Gargiulo c31a263049 Updated the ToS to include terms for the PeerTube server 2023-08-27 15:27:13 +02:00
Gianmarco Gargiulo fe6e1f3001 Moved the Peertube links in the Socials page up over other video platforms 2023-08-23 19:48:20 +02:00
Gianmarco Gargiulo 2929d07fe8 Updated the post card partial to show the last modified date when applicable 2023-08-17 02:42:49 +02:00
Gianmarco Gargiulo be26811d1a Updated the blinky page with some additional text 2023-08-16 13:13:37 +02:00
Gianmarco Gargiulo b2775715ba Updated the blinky script to better support other browsers such as Edge 2023-08-14 02:27:25 +02:00
Gianmarco Gargiulo c60d110d12 Enabled lazy loading for the additional footer pins and for the post card thumbnails 2023-08-14 01:40:15 +02:00
Gianmarco Gargiulo 7255984136 Updated the ToS to be more GDPR-aware and to include the public group chat, realigned some front matter icons 2023-08-13 17:59:05 +02:00
Gianmarco Gargiulo 5205efc664 Changed the draft property from true to false on the Chrome warning page 2023-08-10 12:21:48 +02:00
Gianmarco Gargiulo 3c5d13f323 Added a script to redirect Chrome or Chromium derivatives' users to a page to discourage using them due to the WEI API proposal 2023-08-10 10:51:31 +02:00
Gianmarco Gargiulo d1b86726ff Made the XMPP username a proper URI on the Contact page, added emojis, a Soundcloud link and renamed Twitter to Twitter/𝕏 in the Socials page 2023-08-05 02:13:44 +02:00
Gianmarco Gargiulo 36ea957059 Made the Mumble address in the Contact page a clickable link 2023-08-03 12:55:50 +02:00
Gianmarco Gargiulo 3a36d04565 Removed two GIFs that were downloaded accidentally 2023-07-26 14:49:00 +02:00
Gianmarco Gargiulo bd7bdfcb4d Changed the Debian and Apache pins for the new server migration and added two new pin lines 2023-07-26 14:46:34 +02:00
70 changed files with 780 additions and 1831 deletions

View File

@ -8,4 +8,4 @@ This portfolio website is simply a bunch of Markdown files that get compiled int
The script `compile` will cleanup the "public" folder (or create it if it doesn't exist) and will then compile the site into that folder. The script `compile` will cleanup the "public" folder (or create it if it doesn't exist) and will then compile the site into that folder.
The site itself (meaning the configurations and theme) is licensed under the GNU Affero General Public License 3.0, the content such as text, images and other multimedia (except the ones not created by me) are licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license. The site itself (meaning the configurations and theme) is licensed under the GNU Affero General Public License 3.0, the content such as text, images and other multimedia are licensed under different licenses where noted. For more information, refer to the Markdown page at `content/copyright.md` or to [this page on the site](https://gianmarco.gg/copyright).

View File

@ -11,4 +11,4 @@ license: "CC BY-NC-SA 4.0 International"
*Description here* *Description here*
You can also see this video on [YouTube](https://www.youtube.com/channel/UClJfljSDJqzaZF6oUQtKtNA), [Odysee](https://odysee.com/@gianmarcogg03) and [PeerTube](https://videos.gianmarco.gg/c/gianmarcogg03). You can also see this video on [YouTube](https://www.youtube.com/@gianmarcogg03), [Odysee](https://odysee.com/@gianmarcogg03) and [PeerTube](https://videos.gianmarco.gg/c/gianmarcogg03).

View File

@ -8,7 +8,7 @@ rssLimit = 20
description = "I'm an artist, designer, photographer and libre advocate." description = "I'm an artist, designer, photographer and libre advocate."
favicon = "/favicon.ico" favicon = "/favicon.ico"
#logo = "/logo.png" #logo = "/logo.png"
navlogo = "/navlogo.png" navlogo = "/navlogo-nexttemp.png" # To be changed when merging into master
[menu] [menu]
[[menu.main]] [[menu.main]]

3
content/all/_index.md Normal file
View File

@ -0,0 +1,3 @@
---
title: All posts
---

34
content/blinky/index.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "You seem to be using Chrome or a Chromium derivative..."
description: ...and I'm here to tell you to stop! Google's actively trying to monopolize and undermine the open internet.
thumbnail: blinky.png
date: 2023-08-09T14:23:48+02:00
draft: false
rss_ignore: true
---
## Update 2 nov 2023
**The WEI repository has been archived** and its README file now says they've scrapped the idea and started working on some other DRM-like idea but that's confined to the Android WebView on devices with Google's services. Read more about it [here](https://android-developers.googleblog.com/2023/11/increasing-trust-for-embedded-media.html). I'm still not sure if I will be removing this Chrome block page yet.
---
Google's new [**Web Enviromnent Integrity API**](https://github.com/RupertBenWiser/Web-Environment-Integrity) proposal (and ongoing implementation) is a serious threat to the open internet. It's described as a way to verify the validity and trustworthiness of a client when connecting to a website, but what this really means that it's pretty much **a DRM for the web** since Google could take advantage of it by making popular websites adopt the API and **forcing users of these websites to use Chrome and selected operating systems**. This also means that they're gonna force users to suffer **the Manifest v3 changes that stand in the way of the effectiveness of ad blockers** and get more advanced tracking with **a rate limiting of physical devices feature** [as described in the proposal](https://github.com/RupertBenWiser/Web-Environment-Integrity/blob/main/explainer.md#how-it-works).
Google Chrome retains around **66% of the global web browser market**, Google also has some of the **most popular online platforms** like their search engine, YouTube, AdSense, Maps, Gmail, Android and even the open source Chromium browser used as a base by many browsers such as Edge, Brave, Opera and Vivaldi, which means that any significant change that Google does to Chromium could end up downstream to these forks as well. There's also **Electron-based applications** that could be affected since it's essentially Chromium. By keeping to use their products, **you're encouraging them to tyrannize the internet**, a place that should be platform agnostic and encourage free exchange of ideas and creations. I don't mean to offend, I'm just saying you should seriously consider switching to the many alternatives so that you don't contribute to Google's monopoly.
There has to be a significant pushback for them to revert on the decision (luckily many major browser makers have publicly opposed to WEI), or at least to pretend to revert since part of the reason they're doing this is to **reimplement FLoC but in a more subtle way** (edit 19 Oct. 2023: [that's what they actually did](https://martech.org/google-is-rolling-out-topics-based-tracking-for-chrome/)) with the usual excuse of "ensuring users' security." This is how evil they are.
Here's some articles and videos to learn more about WEI:
- [Ars Technica: Googles nightmare “Web Integrity API” wants a DRM gatekeeper for the web](https://arstechnica.com/gadgets/2023/07/googles-web-integrity-api-sounds-like-drm-for-the-web/)
- [Defective by Design: "Web Environment Integrity" is an all-out attack on the free Internet](https://www.defectivebydesign.org/blog/web_environment_integrity_is_an_all_out_attack_on_free_internet)
- [It's FOSS: Google's New Web Environment Integrity Proposal Dismissed by Brave, Mozilla, and Vivaldi](https://news.itsfoss.com/google-controversial-tracker/)
- [Brodie Robertson (YT): Google's Web Environment Integrity Will Destroy The Web](https://www.youtube.com/watch?v=tm3gH-ycykw)
- [Louis Rossmann (YT): Google's trying to DRM the internet, and we have to make sure they fail](https://www.youtube.com/watch?v=0i0Ho-x7s_U)
- [Switched to Linux (YT): Google's Web DRM Proposal?](https://www.youtube.com/watch?v=ebTw7a5e8A0)
# Yeah, okay, can you leave me alone?
Disable Javascript (it's used for a lot of garbage anyway), spoof your user agent or **switch to another browser**, my recommendations are [**LibreWolf**](https://librewolf.net) on desktop and [**IceRaven**](https://github.com/fork-maintainers/iceraven-browser) on Android, although [plain Firefox](https://www.mozilla.org/en-US/firefox/browsers/), other derivatives or other browsers should be fine too.
I'm sorry, but I'll keep being annoying to Chrome/Chromium users like you **until Google backs down with the proposal** or maybe I'll just keep doing this even further into the future, depends on my mood. If the proposal were to go through, **you should start to get used to sites blocking your browser like this**, user agent spoofing won't help you then.

View File

@ -12,13 +12,13 @@ Wanna get in touch to help with my projects, or to get help with one of my proje
🖥️ **Matrix**: [@gianmarco:gianmarco.gg](https://matrix.to/#/@gianmarco:gianmarco.gg) 🟢 🖥️ **Matrix**: [@gianmarco:gianmarco.gg](https://matrix.to/#/@gianmarco:gianmarco.gg) 🟢
Join my stupid random group chat: [#gianmarcos-autistic-slumber:gianmarco.gg](https://matrix.to/#/#gianmarcos-autistic-slumber:gianmarco.gg) Join my stupid random group chat: [#autisticslumber:gianmarco.gg](https://matrix.to/#/#autisticslumber:gianmarco.gg)
💬 **XMPP**: gianmarco@gianmarco.gg 🟢 (OMEMO encryption recommended, [Gajim](https://gajim.org/) and [Conversations](https://conversations.im/) or derivatives recommended) 💬 **XMPP**: [gianmarco@gianmarco.gg](xmpp:gianmarco@gianmarco.gg) 🟢 (OMEMO encryption recommended, [Gajim](https://gajim.org/) and [Conversations](https://conversations.im/) or derivatives recommended)
![](xmpp.gif) ![](xmpp.gif)
🎧 **Mumble server**: gianmarco.gg 🟢 🎧 **Mumble server**: [gianmarco.gg](mumble://gianmarco.gg) 🟢
🔒 **Tox** (I rarely use it and treat it as an emergency method): `E8E578F84F66F1302EA2616059D70F5045742AE7B1F038B1FFA4BF1268E20855D7AA3B681D1F` 🟢 🔒 **Tox** (I rarely use it and treat it as an emergency method): `E8E578F84F66F1302EA2616059D70F5045742AE7B1F038B1FFA4BF1268E20855D7AA3B681D1F` 🟢

View File

@ -7,8 +7,8 @@ rss_ignore: true
Welcome to the Extras page (formerly known as the Secret Separator Zone™). You will find the sweetest crap here. Welcome to the Extras page (formerly known as the Secret Separator Zone™). You will find the sweetest crap here.
Funny memes [here](/memes). Funny memes [here](/memes) (currently not working due to the incomplete migration to the new server!)
Onion URL for accessing the site through Tor: [npzqzzlftquidpczleveobajpkgjvszhny23eqot733ea34mxovxgiqd.onion](http://npzqzzlftquidpczleveobajpkgjvszhny23eqot733ea34mxovxgiqd.onion) <!--Onion URL for accessing the site through Tor: [npzqzzlftquidpczleveobajpkgjvszhny23eqot733ea34mxovxgiqd.onion](http://npzqzzlftquidpczleveobajpkgjvszhny23eqot733ea34mxovxgiqd.onion)-->
Notices of any downtime, technical issue or migration of the site or related services on this Mastodon account: [@gmgserverstatus@mastodon.world](https://mastodon.world/@gmgserverstatus) Notices of any downtime, technical issue or migration of the site or related services on this Mastodon account: [@gmgserverstatus@mastodon.world](https://mastodon.world/@gmgserverstatus)

View File

@ -0,0 +1,20 @@
---
title: "La Città Adattabile's website"
date: 2023-09-30
lastMod: 2023-10-08
tags: ["commission","website","activism"]
draft: false
thumbnail: /other/img/lca.png
---
I developed a website with [Hugo](https://gohugo.io) and the [Arberia theme](https://github.com/antedoro/arberia/) for the non profit organization [**La Città Adattabile**](https://lacittaadattabile.it). This organization, founded in 2017 by a relative of mine, helps autistic kids and their families in the city of Naples by organizing and promoting educational and recreational activities integrated with schools, sports and sanitary activities with dedicated spaces.
The website takes the aforementioned Arberia theme and strips it of any uncessary cluttering or integration with external services (e.g. Google Analytics, Disqus, etc.), giving **a very minimal and bloat-free look and feel** to all pages that's coherent with the original blue and gray branding of the organization. The site is divided up into five main sections:
- **Chi siamo (About us)**: a description of what the organization does and who's behind it;
- **Articoli (Articles)**: a list of all the articles (basically the main Hugo content subfolder);
- **Media**: a list of all mentions or collaborations of the organization in media like news, documentaries, etc.;
- **Contattaci (Contact us)**: a simple form to get in touch with the organization;
- **Tag (Tags)**: a list of all the tags used in the articles (the automatic tags page defined by Hugo's taxonomy rules.)
There's also an RSS feed for all articles and a back-to-top button. I also took care of hosting the website on the same server that hosts mine and of managing the source code in a private Git repository.

View File

@ -6,37 +6,57 @@ draft: false
rss_ignore: true rss_ignore: true
--- ---
[Mastodon (@gianmarcogg03@mastodon.uno)](https://mastodon.uno/web/@gianmarcogg03) 🐘 [Mastodon (@gianmarcogg03@mastodon.uno)](https://mastodon.uno/web/@gianmarcogg03)
[Lemmy (u/gianmarco@feddit.it)](https://feddit.it/u/gianmarco) 🐭 [Lemmy (u/gianmarco@feddit.it)](https://feddit.it/u/gianmarco)
[Reddit (u/gsoftwares)](https://www.reddit.com/user/gsoftwares) 👽 [Reddit (u/gsoftwares)](https://www.reddit.com/user/gsoftwares)
[Pixelfed (@gianmarcogg03@pixelfed.social)](https://pixelfed.social/gianmarcogg03) 🌈 [Pixelfed (@gianmarcogg03@pixelfed.social)](https://pixelfed.social/gianmarcogg03)
[DeviantArt (gsoftwares03)](https://www.deviantart.com/gsoftwares03) 🖌️ [DeviantArt (gsoftwares03)](https://www.deviantart.com/gsoftwares03)
[Artfol (@gianmarcogg03)](https://artfol.me/gianmarcogg03) 🎨 [Artfol (@gianmarcogg03)](https://artfol.me/gianmarcogg03)
[Dribbble (gianmarcogg03)](https://dribbble.com/gianmarcogg03) 🏀 [Dribbble (gianmarcogg03)](https://dribbble.com/gianmarcogg03)
[Odysee/LBRY (@gianmarcogg03)](https://odysee.com/@gianmarcogg03) 🎬 [Peertube channel (@gianmarcogg03@videos.gianmarco.gg)](https://videos.gianmarco.gg/c/gianmarcogg03)
[YouTube (@gianmarcogg03)](https://www.youtube.com/@gianmarcogg03) 🎬 [Peertube account (@gianmarco@videos.gianmarco.gg)](https://videos.gianmarco.gg/a/gianmarco)
[Peertube channel (@gianmarcogg03@videos.gianmarco.gg)](https://videos.gianmarco.gg/c/gianmarcogg03) 🚀 [Odysee/LBRY (@gianmarcogg03)](https://odysee.com/@gianmarcogg03)
[Peertube account (@gianmarco@videos.gianmarco.gg)](https://videos.gianmarco.gg/a/gianmarco) ▶️ [YouTube (@gianmarcogg03)](https://www.youtube.com/@gianmarcogg03)
Soulseek (gianmarcogg03) 🏴‍☠️ Soulseek (gianmarcogg03)
[SpaceHey (gianmarco)](https://spacehey.com/gianmarco) 💾 [SpaceHey (gianmarco)](https://spacehey.com/gianmarco)
[GitHub (@gianmarcogg03)](https://github.com/gianmarcogg03) 💻 [GitHub (@gianmarcogg03)](https://github.com/gianmarcogg03)
🦊 [GitLab (@gianmarcogg03)](https://gitlab.com/gianmarcogg03)
⚙️ [KDE Invent (@gianmarcogg)](https://invent.kde.org/gianmarcogg)
🎧 [SoundCloud (gianmarcogg03)](https://soundcloud.com/gianmarcogg03)
👔 [LinkedIn (Gianmarco Gargiulo)](https://www.linkedin.com/in/gianmarco-gargiulo-1a103528b/)
## Alternate accounts
🐘 [Gianmarco Server Status on Mastodon (@gmgserverstatus@mastodon.world)](https://mastodon.world/@gmgserverstatus)
🐘 [Flat Eric Posting on Mastodon (@flatericposting@mstdn.social)](https://mstdn.social/@flatericposting)
🎬 [Backup Gianmarco on Peertube (@backup@videos.gianmarco.gg)](https://videos.gianmarco.gg/c/backup)
🚀 [Backup Gianmarco on Odysee/LBRY (@backuppino03)](https://odysee.com/@backuppino03)
▶️ [Backup Gianmarco on YouTube (@gianmarcobackup)](https://www.youtube.com/@gianmarcobackup)
## Platforms I'm not on anymore ## Platforms I'm not on anymore
**Twitter (@gianmarcogg03)**, deactivated on December 18th, 2022, due to poor and unethical management after the Musk acquisition and because it's a proprietary, centralized and data-harvesting platform. **Twitter/𝕏 (@gianmarcogg03)**, deactivated on December 18th, 2022, due to poor and unethical management after the Musk acquisition and because it's a proprietary, centralized and data-harvesting platform.
![](masto.gif) ![](masto.gif)

View File

@ -1,24 +1,42 @@
--- ---
title: "Terms of Service and Privacy Policy" title: "Terms of Service and Privacy Policy"
description: Last updated on July 3rd, 2023. description: Last updated on August 27th, 2023.
draft: false draft: false
rss_ignore: true rss_ignore: true
--- ---
These are the Terms of Service and Privacy Policy for the gianmarco.gg website and all of its services. Please read carefully and I won't bite you. These are the Terms of Service and Privacy Policy for the gianmarco.gg website and all of its services. Please read carefully and I won't bite you. This document represents the rules for the use of the various services and how data is treated and processed in order to make these services work.
# Preface # Preface
Don't forget that **I own the server and all of its services**, that means that I have the power to do whatever I want and that includes changing this document whenever I feel like. It's on you to decide if you want to trust me or not with my promises and your data. Don't forget that **I own the server and all of its services**, that means that I have the power to do whatever I want and that includes changing this document whenever I feel like. It's on you to decide if you want to trust me or not with my promises and your data. However, since the server(s) are based in the European Union, **you are protected by european data protection laws** such as the GDPR, which means that you have the right to request for data deletion, to be informed in case of a data breach, to request data download and to request information on any legal movement of the data.
"Why the heck do you need a document like this on here?" you might be asking, the reason is simple: the website and other services hosted on it let users **interact with content or upload their own**, so a small number of rules is needed to keep this place nice and tidy; also a set of privacy policies are also necessary because the before mentioned interaction and uploading of stuff require some sort of **authentication** and I want to be transparent about the data that gets collected. # List of services
Here's a list of all of the services that have their own set of rules and/or policies: Here's a list of all of the services that have their own set of rules and/or policies:
- **the main web server** that powers the website and part of the services;
- **the main site's comments** that are under every article; - **the main site's comments** that are under every article;
- **the Git server** where people can commit, open issues, etc.; - **the Git server** where people can commit, open issues, etc.;
- **the Mumble server** where people can voice chat with each other; - **the Mumble server** where people can voice chat with each other;
- **the Xonotic server** where people can play together and chat. - **the Xonotic server** where people can play together and chat;
- **the public group chat** where people can chat with each other;
- **the PeerTube server** where people can watch videos, like, dislike, comment and subscribe.
# The main web server
The website, its subdomains and related services run on the Nginx web server software.
## Privacy with the main web server
The data the web server gets is:
- your IP address;
- your user agent string (which can include your browser, operating system, etc.);
- the page or subdirectory you're trying to visit;
- data specific to other services (keep reading the other services).
All of this data (except for the last point) **can only be seen by the server and who can access the backend**, that means me. None of the data is given or sold to any third parties. You can request data download and/or deletion at any time by [contacting me](/contact), preferably by email. In the event of a data breach or exposure, it will be announced on the [server status Mastodon account](https://mastodon.world/@gmgserverstatus) and/or, if you're directly affected, will be communicated privately if possible.
# The main site's comments # The main site's comments
@ -35,7 +53,7 @@ Here's what you can and can't do:
- you can submit a comment or reply to another comment with your opinion or whatever you wanna say as long as it's not spam, offensive or too off-topic from the current article; - you can submit a comment or reply to another comment with your opinion or whatever you wanna say as long as it's not spam, offensive or too off-topic from the current article;
- you can use whatever name, email or website link you want as long as it's not spam, offensive or impersonating someone; - you can use whatever name, email or website link you want as long as it's not spam, offensive or impersonating someone;
- you can upvote or downvote comments posted by others; - you can upvote or downvote comments posted by others;
- you **can't** post more than two comments each minute; - you can't post more than two comments each minute;
- you can edit or delete a comment of yours until 15 minutes from posting; - you can edit or delete a comment of yours until 15 minutes from posting;
- you can report any comment that you think is going against the terms. - you can report any comment that you think is going against the terms.
@ -53,7 +71,7 @@ The data the server gets when posting a comment or a reply is:
- the email address if specified; - the email address if specified;
- the website link if specified. - the website link if specified.
The comment, display name and website link **can be seen by anyone**, while the email **can only be seen by the server and who can access the backend**, that means me. Again, the email is only needed for a notification feature which is disabled, so don't even bother adding your address since I don't guarantee I'll enable that feature in the future. The comment, display name and website link **can be seen by anyone**, while the email **can only be seen by the server and who can access the backend**, that means me. Again, the email is only needed for a notification feature which is disabled, so don't even bother adding your address since I don't guarantee I'll enable that feature in the future. None of the data is given or sold to any third parties. You can request data download and/or deletion at any time by [contacting me](/contact), preferably by email. In the event of a data breach or exposure, it will be announced on the [server status Mastodon account](https://mastodon.world/@gmgserverstatus) and/or, if you're directly affected, will be communicated privately if possible.
# The Git server # The Git server
@ -92,7 +110,7 @@ The data the server gets when using the Git server is:
The credentials can be remembered on the current browser with a cookie (when you tick "Remember me" on the login page), that's the only cookie that the site gives you. The credentials can be remembered on the current browser with a cookie (when you tick "Remember me" on the login page), that's the only cookie that the site gives you.
All of this data **can be seen by anyone**, except for login credentials and private repos which **can only be seen by the account/repo owner, the server and who can access the backend**, that means me, except for the password which **can't be seen at all**. All of this data **can be seen by anyone**, except for login credentials and private repos which **can only be seen by the account/repo owner, the server and who can access the backend**, that means me, except for the password which **can't be seen at all**. None of the data is given or sold to any third parties. You can request data download and/or deletion at any time by [contacting me](/contact), preferably by email. In the event of a data breach or exposure, it will be announced on the [server status Mastodon account](https://mastodon.world/@gmgserverstatus) and/or, if you're directly affected, will be communicated privately if possible.
# The Mumble server # The Mumble server
@ -126,7 +144,7 @@ The data the server gets when using the Mumble server is:
- connection uptime and bandwith speed; - connection uptime and bandwith speed;
- your voice and text messages. - your voice and text messages.
All of this data is **can be seen by the server and who can access the backend**, that means me. Treat this as a public space and don't just give away sensitive info, either via voice or text, to random strangers connected to the server. All of this data is **can be seen by the server and who can access the backend**, that means me. Treat this as a public space and don't just give away sensitive info, either via voice or text, to random strangers connected to the server. None of the data is given or sold to any third parties. You can request data download and/or deletion at any time by [contacting me](/contact), preferably by email. In the event of a data breach or exposure, it will be announced on the [server status Mastodon account](https://mastodon.world/@gmgserverstatus) and/or, if you're directly affected, will be communicated privately if possible.
# The Xonotic server # The Xonotic server
@ -155,4 +173,75 @@ The data the server gets when using the Xonotic server is:
- client ID and key; - client ID and key;
- IP address; - IP address;
All of this data is **can be seen by the server and who can access the backend**, that means me. Don't share any sensitive info in the chat as you could be interacting with total strangers. You should also remember that this server has statistics enabled, this means some data is going to be sent to [the official XonStat server](https://stats.xonotic.org/server/41839). All of this data is **can be seen by the server and who can access the backend**, that means me. Don't share any sensitive info in the chat as you could be interacting with total strangers. You should also remember that this server has statistics enabled, this means some data is going to be sent to [the official XonStat server](https://stats.xonotic.org/server/41839). None of the data is given or sold to any third parties on my end. You can request data download and/or deletion at any time by [contacting me](/contact), preferably by email. In the event of a data breach or exposure, it will be announced on the [server status Mastodon account](https://mastodon.world/@gmgserverstatus) and/or, if you're directly affected, will be communicated privately if possible.
# The public group chat
The public group chat called "Gianmarco's Autistic Slumber" is hosted on my Matrix server, but it's also bridged on Telegram through the use of [t2bot's Telegram bridge bot](https://t2bot.io/telegram/). To join the chat visit [this page](/contact).
![Screenshot of the public group chat on both Matrix (via Element) and Telegram](/tos/img/pgc.png)
## Terms for using the public group chat
Here's what you can and can't do:
- you can join with any name or profile picture you want as long as they're not spam, harmful, offensive or an impersonation;
- you can chat with anybody as long as you're not disrespectful, annoying, harmful or trolling (light jokes are excusable);
- you can't flood with an excessive amount of messages or mentions;
- you can't send a link of yours/spam without proper context and/or authorization;
- you can call out an administrator in order to report an abuse, as long as you're not overdoing it.
Also there are some things that I am exclusively allowed to do at any time:
- delete any message;
- mute, kick or ban any user;
- change chat settings (name, picture, permissions, etc.) on both platforms.
You should also note that the Telegram part of the group chat has to comply with [Telegram's terms of service](https://telegram.org/tos).
## Privacy when using the public group chat
The data my Matrix server gets when using the public group chat is:
- any message you send;
- your name, username, profile picture, online status and verified devices;
- any change in name or profile picture.
All of this data **can be seen by anyone in the group chat**, unless you have specifically configured your account or your homeserver to limit certain data. There's also data that gets processed by [t2bot's Telegram bridge bot](https://t2bot.io/docs/legal/privacy-v1/) and [Telegram](https://telegram.org/privacy), each with their own privacy policies. None of the data is given or sold to any third parties on my end. You can request data download and/or deletion at any time by [contacting me](/contact), preferably by email. In the event of a data breach or exposure, it will be announced on the [server status Mastodon account](https://mastodon.world/@gmgserverstatus) and/or, if you're directly affected, will be communicated privately if possible.
Later on a replacement of t2bot's Telegram bridge bot is planned with a selfhosted Matterbridge that's more reliable and that connects also to other platforms such as Discord and XMPP. Whenever this change will occurr, it will affect the terms of service and privacy policy of the group chat.
# The PeerTube server
The PeerTube server is a video hosting server that's ActivityPub-compatible where people can watch, like, dislike and comment on my videos and also subscribe to my channels.
![Screenshot of the PeerTube web UI displaying my main channel](/tos/img/peertube.png)
The server does **not** allow people to sign up, so in order to interact with the content, users must log into another PeerTube or ActivityPub-compatible server and interact from there through federation (may be limited by server settings of mine and of others.)
## Terms for using the PeerTube server
Here's what you can and can't do:
- you can watch any video from this PeerTube server or from another;
- you can subscribe to my account and any of my channels;
- you can comment on videos as long as you're not disrespectful, annoying, harmful or spamming;
- you can report any comment that you think is abusive;
- you can report any remote content that's appearing on the trending or discover sections that you think is abusive.
Also there are some things that I am exclusively allowed to do at any time:
- delete any local video, channel or comment, including comments from other users;
- allow or disallow federation with any specific server;
- mute any remote account;
- manipulate the videos that will appear in the trending and discover sections.
## Privacy when using the PeerTube server
The data the server gets when using the PeerTube server:
- your federation data (username, profile picture, etc.);
- any local video you watch;
- any like, dislike, subscription or comment of yours on local content.
All of this data is **can be seen by the server and who can access the backend**, that means me. Treat comments as a public space and don't just give away sensitive info, considering also how federation can make your comments and other account data visible to other servers and people. None of the data is given or sold to any third parties. You can request data download and/or deletion at any time by [contacting me](/contact), preferably by email. In the event of a data breach or exposure, it will be announced on the [server status Mastodon account](https://mastodon.world/@gmgserverstatus) and/or, if you're directly affected, will be communicated privately if possible.

View File

@ -24,4 +24,4 @@ The data the server gets when using the Xonotic server is:
- client ID and key; - client ID and key;
- IP address; - IP address;
All of this data is can be seen by the server and who can access the backend, that means me. Don't share any sensitive info in the chat as you could be interacting with total strangers. You should also remember that this server has statistics enabled, this means some data is going to be sent to the official XonStat server. All of this data is can be seen by the server and who can access the backend, that means me. Don't share any sensitive info in the chat as you could be interacting with total strangers. You should also remember that this server has statistics enabled, this means some data is going to be sent to the official XonStat server. None of the data is given or sold to any third parties on my end. You can request data download and/or deletion at any time by contacting me, preferably by email. In the event of a data breach or exposure, it will be announced on the server status Mastodon account (https://mastodon.world/@gmgserverstatus) and/or, if you're directly affected, will be communicated privately if possible.

View File

@ -0,0 +1,18 @@
---
title: "Un server in casa con NixOS - Linux Day Napoli 2023"
date: 2023-10-29
tags: ["selfhosting","linux","linuxday"]
draft: false
thumbnail: /videos/img/ld23nixos.png
license: "CC BY-NC-SA 4.0 International"
---
{{< video f9qp2tyCXaI "un-server-in-casa-con-nixos-linux-day:e4aeb83dfe1ed0110bbf27dfea190be875e2446c" vGn8dbWYuG5GJvT9QTVHZq >}}
Registrazione della mia presentazione riguardo il selfhosting con NixOS che ho dato al Linux Day di Napoli 2023.
Scarica la presentazione da qui.
{{< download "https://dl.gianmarco.gg/presentations/linuxday23-nixos-rev1.pdf" "linuxday23-nixos-rev1.pdf" "PDF document, 14MB">}}
Puoi vedere questo video anche su [YouTube](https://www.youtube.com/@gianmarcogg03), [Odysee](https://odysee.com/@gianmarcogg03) e [PeerTube](https://videos.gianmarco.gg/c/gianmarcogg03).

32
layouts/all/list.html Normal file
View File

@ -0,0 +1,32 @@
{{ define "body_class" }} tag-template {{ end }}
{{ define "main" }}
<header class="site-header">
{{- partial "site-header.html" $ -}}
<style type="text/css">
.responsive-header-img {
background-color: #1e1e1e;
}
</style>
<div class="outer site-header-background responsive-header-img fadein no-image">
<div class="inner site-header-content-list">
<h1 class="site-title">{{ .Title }}</h1>
<h2 class="site-description">{{ len .Site.RegularPages }} post{{ if gt (len .Site.RegularPages) 1 }}s{{ end }}
</h2>
</div>
</div>
</header>
<main id="site-main" class="site-main outer">
<div class="inner posts">
<div class="post-feed">
{{ range $index, $element := (where .Site.RegularPages ".Params.rss_ignore" "ne" "true") }}
{{- partial "post-card.html" (dict "context" . "index" $index "home" $.IsHome) -}}
{{ end }}
</div>
</div>
</main>
{{ end }}

BIN
static/blinky/blinky.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

View File

@ -1,26 +0,0 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<title>Error 400 - Gianmarco Gargiulo</title>
</head>
<body>
<style>
html, body {
height: 100%;
}
html {
display: table;
margin: auto;
}
body {
display: table-cell;
vertical-align: middle;
background-color: #2a2c2b;
}
</style>
<img src="/errors/400.svg" width="569px" height="320px" />
</body>
</html>

View File

@ -1,300 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="1366"
height="768"
viewBox="0 0 1366 768"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="400.svg"
inkscape:export-filename="error.png"
inkscape:export-xdpi="40"
inkscape:export-ydpi="40"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="2.9244044"
inkscape:cx="946.85947"
inkscape:cy="497.70818"
inkscape:window-width="1900"
inkscape:window-height="987"
inkscape:window-x="1690"
inkscape:window-y="10"
inkscape:window-maximized="0"
inkscape:current-layer="g1661" />
<defs
id="defs2">
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1726" />
<linearGradient
inkscape:collect="always"
id="linearGradient1627">
<stop
style="stop-color:#75120c;stop-opacity:1;"
offset="0"
id="stop1623" />
<stop
style="stop-color:#eb4034;stop-opacity:1;"
offset="1"
id="stop1625" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1534">
<stop
style="stop-color:#e01f1f;stop-opacity:1;"
offset="0"
id="stop1530" />
<stop
style="stop-color:#750000;stop-opacity:1;"
offset="1"
id="stop1532" />
</linearGradient>
<rect
x="128.21036"
y="358.3636"
width="118.82912"
height="105.06996"
id="rect1422" />
<linearGradient
inkscape:collect="always"
id="linearGradient1312">
<stop
style="stop-color:#cccccc;stop-opacity:1;"
offset="0"
id="stop1308" />
<stop
style="stop-color:#9e9e9e;stop-opacity:1;"
offset="1"
id="stop1310" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1012">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop1008" />
<stop
style="stop-color:#cccccc;stop-opacity:1;"
offset="1"
id="stop1010" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 384 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1366 : 384 : 1"
inkscape:persp3d-origin="683 : 256 : 1"
id="perspective240" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1012"
id="linearGradient1014"
x1="214.14874"
y1="476.97568"
x2="413.89816"
y2="426.7525"
gradientUnits="userSpaceOnUse"
gradientTransform="rotate(-21.915376,130.62986,196.54856)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1312"
id="linearGradient1199"
gradientUnits="userSpaceOnUse"
x1="245.04614"
y1="496.28656"
x2="390.71823"
y2="448.00076"
gradientTransform="rotate(-21.915376,-253.47936,270.91749)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1534"
id="linearGradient1536"
x1="300.54199"
y1="479.15448"
x2="311.96014"
y2="516.67126"
gradientUnits="userSpaceOnUse" />
<mask
maskUnits="userSpaceOnUse"
id="mask1546">
<path
id="mask-powermask-path-effect1554_box"
style="fill:#ffffff;fill-opacity:1"
d="m 288.12384,478.15448 h 24.8363 v 37.88562 h -24.8363 z" />
<g
id="g1552"
style="">
<ellipse
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0"
id="ellipse1548"
cx="293.20352"
cy="508.32104"
rx="8.4691944"
ry="9.1467295" />
<ellipse
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0"
id="ellipse1550"
cx="305.22977"
cy="508.99857"
rx="8.2998104"
ry="9.4854975" />
</g>
</mask>
<filter
id="mask-powermask-path-effect1554_inverse"
inkscape:label="filtermask-powermask-path-effect1554"
style="color-interpolation-filters:sRGB"
height="100"
width="100"
x="-50"
y="-50">
<feColorMatrix
id="mask-powermask-path-effect1554_primitive1"
values="1"
type="saturate"
result="fbSourceGraphic" />
<feColorMatrix
id="mask-powermask-path-effect1554_primitive2"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
in="fbSourceGraphic" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient1627"
id="radialGradient1664"
cx="92.890358"
cy="200.66901"
fx="92.890358"
fy="200.66901"
r="40.74736"
gradientTransform="matrix(-0.04697488,2.2375154,-1.8924311,-0.03973008,650.26873,83.319854)"
gradientUnits="userSpaceOnUse" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1734" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1740" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1746" />
</defs>
<g
inkscape:label="Livello 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g1661"
transform="rotate(21.915376,228.81255,365.92112)">
<path
style="fill:url(#linearGradient1199);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 342.4654,211.86863 -88.28863,68.00654 228.35843,32.4377 66.34459,-107.27731 z"
id="path1197"
sodipodi:nodetypes="ccccc" />
<path
style="fill:url(#linearGradient1014);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 254.17632,279.87267 312.47688,424.78749 540.8353,457.22518 478.985,303.48695 Z"
id="path429" />
<path
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0.586676px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 548.87976,205.03535 607.18032,349.95016 540.8353,457.22518 478.985,303.48695 Z"
id="path1016"
sodipodi:nodetypes="ccccc" />
<text
xml:space="preserve"
id="text1420"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1422);display:inline;fill:#000000;fill-opacity:1;stroke:none"
transform="matrix(3.2129455,0.49234496,1.0439449,2.594882,-507.41872,-714.42815)"><tspan
x="128.21094"
y="395.1441"
id="tspan441"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto"
id="tspan439">x x</tspan></tspan></text>
<ellipse
style="fill:url(#linearGradient1536);fill-opacity:1;stroke:none;stroke-width:0"
id="path1528"
mask="url(#mask1546)"
ry="17.942806"
rx="11.418149"
cy="497.09729"
cx="300.54199"
transform="matrix(1.14307,0.16200795,0.37323676,0.92773612,-126.49365,-96.991087)" />
<path
id="path1578"
style="fill:url(#radialGradient1664);fill-opacity:1;stroke:none;stroke-width:0.72022px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 226.35697,189.04952 -21.6452,16.38174 42.10457,52.27555 14.46584,-11.81973 z m -40.18716,50.3255 -6.38236,21.98027 53.33642,17.52957 3.84122,-15.31376 z m -2.46993,56.86515 4.91752,22.35422 55.21996,-10.13342 -3.9554,-15.28446 z" />
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-680.06542,63.429824)"
id="text1724"
style="font-style:normal;font-weight:normal;font-size:192px;line-height:0;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1726);display:inline;fill:#eb4034;fill-opacity:1;stroke:none"
x="130.6875"
y="0"><tspan
x="670.9541"
y="343.85229"
id="tspan445"><tspan
style="font-weight:bold;font-size:64px;font-family:Roboto;-inkscape-font-specification:'Roboto Bold'"
id="tspan443">Error 400</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-637.41781,164.7461)"
id="text1732"
style="font-style:normal;font-weight:normal;font-size:36.1389px;line-height:1.3;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1734);display:inline;fill:#eb4034;fill-opacity:1;stroke:none"
x="121.0512"
y="0"><tspan
x="707.29221"
y="323.29018"
id="tspan449"><tspan
style="font-weight:500;font-family:Roboto;-inkscape-font-specification:'Roboto Medium';fill:#e5e5e5"
id="tspan447">Bad request</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-605.0946,245.09032)"
id="text1744"
style="font-style:normal;font-weight:normal;font-size:18.0694px;line-height:1.3;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1746);display:inline;fill:#eb4034;fill-opacity:1;stroke:none"
x="121.0512"
y="0"><tspan
x="679.83105"
y="306.22317"
id="tspan453"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto;fill:#e5e5e5"
id="tspan451">Didn't expect that? Contact me.
</tspan></tspan><tspan
x="728.36609"
y="329.88769"
id="tspan457"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto;fill:#e5e5e5"
id="tspan455">me@gianmarco.gg</tspan></tspan></text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,26 +0,0 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<title>Error 401 - Gianmarco Gargiulo</title>
</head>
<body>
<style>
html, body {
height: 100%;
}
html {
display: table;
margin: auto;
}
body {
display: table-cell;
vertical-align: middle;
background-color: #2a2c2b;
}
</style>
<img src="/errors/401.svg" width="569px" height="320px" />
</body>
</html>

View File

@ -1,300 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="1366"
height="768"
viewBox="0 0 1366 768"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="401.svg"
inkscape:export-filename="error.png"
inkscape:export-xdpi="40"
inkscape:export-ydpi="40"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="2.0678662"
inkscape:cx="916.40359"
inkscape:cy="457.71821"
inkscape:window-width="1900"
inkscape:window-height="987"
inkscape:window-x="1690"
inkscape:window-y="10"
inkscape:window-maximized="0"
inkscape:current-layer="g1661" />
<defs
id="defs2">
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1726" />
<linearGradient
inkscape:collect="always"
id="linearGradient1627">
<stop
style="stop-color:#75120c;stop-opacity:1;"
offset="0"
id="stop1623" />
<stop
style="stop-color:#eb4034;stop-opacity:1;"
offset="1"
id="stop1625" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1534">
<stop
style="stop-color:#e01f1f;stop-opacity:1;"
offset="0"
id="stop1530" />
<stop
style="stop-color:#750000;stop-opacity:1;"
offset="1"
id="stop1532" />
</linearGradient>
<rect
x="128.21036"
y="358.3636"
width="118.82912"
height="105.06996"
id="rect1422" />
<linearGradient
inkscape:collect="always"
id="linearGradient1312">
<stop
style="stop-color:#cccccc;stop-opacity:1;"
offset="0"
id="stop1308" />
<stop
style="stop-color:#9e9e9e;stop-opacity:1;"
offset="1"
id="stop1310" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1012">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop1008" />
<stop
style="stop-color:#cccccc;stop-opacity:1;"
offset="1"
id="stop1010" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 384 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1366 : 384 : 1"
inkscape:persp3d-origin="683 : 256 : 1"
id="perspective240" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1012"
id="linearGradient1014"
x1="214.14874"
y1="476.97568"
x2="413.89816"
y2="426.7525"
gradientUnits="userSpaceOnUse"
gradientTransform="rotate(-21.915376,130.62986,196.54856)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1312"
id="linearGradient1199"
gradientUnits="userSpaceOnUse"
x1="245.04614"
y1="496.28656"
x2="390.71823"
y2="448.00076"
gradientTransform="rotate(-21.915376,-253.47936,270.91749)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1534"
id="linearGradient1536"
x1="300.54199"
y1="479.15448"
x2="311.96014"
y2="516.67126"
gradientUnits="userSpaceOnUse" />
<mask
maskUnits="userSpaceOnUse"
id="mask1546">
<path
id="mask-powermask-path-effect1554_box"
style="fill:#ffffff;fill-opacity:1"
d="m 288.12384,478.15448 h 24.8363 v 37.88562 h -24.8363 z" />
<g
id="g1552"
style="">
<ellipse
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0"
id="ellipse1548"
cx="293.20352"
cy="508.32104"
rx="8.4691944"
ry="9.1467295" />
<ellipse
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0"
id="ellipse1550"
cx="305.22977"
cy="508.99857"
rx="8.2998104"
ry="9.4854975" />
</g>
</mask>
<filter
id="mask-powermask-path-effect1554_inverse"
inkscape:label="filtermask-powermask-path-effect1554"
style="color-interpolation-filters:sRGB"
height="100"
width="100"
x="-50"
y="-50">
<feColorMatrix
id="mask-powermask-path-effect1554_primitive1"
values="1"
type="saturate"
result="fbSourceGraphic" />
<feColorMatrix
id="mask-powermask-path-effect1554_primitive2"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
in="fbSourceGraphic" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient1627"
id="radialGradient1664"
cx="92.890358"
cy="200.66901"
fx="92.890358"
fy="200.66901"
r="40.74736"
gradientTransform="matrix(-0.04697488,2.2375154,-1.8924311,-0.03973008,650.26873,83.319854)"
gradientUnits="userSpaceOnUse" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1734" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1740" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1746" />
</defs>
<g
inkscape:label="Livello 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g1661"
transform="rotate(21.915376,228.81255,365.92112)">
<path
style="fill:url(#linearGradient1199);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 342.4654,211.86863 -88.28863,68.00654 228.35843,32.4377 66.34459,-107.27731 z"
id="path1197"
sodipodi:nodetypes="ccccc" />
<path
style="fill:url(#linearGradient1014);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 254.17632,279.87267 312.47688,424.78749 540.8353,457.22518 478.985,303.48695 Z"
id="path429" />
<path
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0.586676px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 548.87976,205.03535 607.18032,349.95016 540.8353,457.22518 478.985,303.48695 Z"
id="path1016"
sodipodi:nodetypes="ccccc" />
<text
xml:space="preserve"
id="text1420"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1422);display:inline;fill:#000000;fill-opacity:1;stroke:none"
transform="matrix(3.2129455,0.49234496,1.0439449,2.594882,-507.41872,-714.42815)"><tspan
x="128.21094"
y="395.1441"
id="tspan441"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto"
id="tspan439">x x</tspan></tspan></text>
<ellipse
style="fill:url(#linearGradient1536);fill-opacity:1;stroke:none;stroke-width:0"
id="path1528"
mask="url(#mask1546)"
ry="17.942806"
rx="11.418149"
cy="497.09729"
cx="300.54199"
transform="matrix(1.14307,0.16200795,0.37323676,0.92773612,-126.49365,-96.991087)" />
<path
id="path1578"
style="fill:url(#radialGradient1664);fill-opacity:1;stroke:none;stroke-width:0.72022px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 226.35697,189.04952 -21.6452,16.38174 42.10457,52.27555 14.46584,-11.81973 z m -40.18716,50.3255 -6.38236,21.98027 53.33642,17.52957 3.84122,-15.31376 z m -2.46993,56.86515 4.91752,22.35422 55.21996,-10.13342 -3.9554,-15.28446 z" />
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-680.06542,63.429824)"
id="text1724"
style="font-style:normal;font-weight:normal;font-size:192px;line-height:0;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1726);display:inline;fill:#eb4034;fill-opacity:1;stroke:none"
x="130.6875"
y="0"><tspan
x="670.9541"
y="343.85229"
id="tspan445"><tspan
style="font-weight:bold;font-size:64px;font-family:Roboto;-inkscape-font-specification:'Roboto Bold'"
id="tspan443">Error 401</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-637.41781,164.7461)"
id="text1732"
style="font-style:normal;font-weight:normal;font-size:36.1389px;line-height:1.3;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1734);display:inline;fill:#eb4034;fill-opacity:1;stroke:none"
x="121.0512"
y="0"><tspan
x="696.62524"
y="323.29018"
id="tspan449"><tspan
style="font-weight:500;font-family:Roboto;-inkscape-font-specification:'Roboto Medium';fill:#e5e5e5"
id="tspan447">Unauthorized</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-605.0946,245.09032)"
id="text1744"
style="font-style:normal;font-weight:normal;font-size:18.0694px;line-height:1.3;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1746);display:inline;fill:#eb4034;fill-opacity:1;stroke:none"
x="121.0512"
y="0"><tspan
x="679.83105"
y="306.22317"
id="tspan453"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto;fill:#e5e5e5"
id="tspan451">Didn't expect that? Contact me.
</tspan></tspan><tspan
x="728.36609"
y="329.88769"
id="tspan457"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto;fill:#e5e5e5"
id="tspan455">me@gianmarco.gg</tspan></tspan></text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,26 +0,0 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<title>Error 403 - Gianmarco Gargiulo</title>
</head>
<body>
<style>
html, body {
height: 100%;
}
html {
display: table;
margin: auto;
}
body {
display: table-cell;
vertical-align: middle;
background-color: #2a2c2b;
}
</style>
<img src="/errors/403.svg" width="569px" height="320px" />
</body>
</html>

View File

@ -1,300 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="1366"
height="768"
viewBox="0 0 1366 768"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="403.svg"
inkscape:export-filename="error.png"
inkscape:export-xdpi="40"
inkscape:export-ydpi="40"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="4.1357324"
inkscape:cx="992.08548"
inkscape:cy="507.8907"
inkscape:window-width="1900"
inkscape:window-height="987"
inkscape:window-x="1690"
inkscape:window-y="10"
inkscape:window-maximized="0"
inkscape:current-layer="g1661" />
<defs
id="defs2">
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1726" />
<linearGradient
inkscape:collect="always"
id="linearGradient1627">
<stop
style="stop-color:#75120c;stop-opacity:1;"
offset="0"
id="stop1623" />
<stop
style="stop-color:#eb4034;stop-opacity:1;"
offset="1"
id="stop1625" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1534">
<stop
style="stop-color:#e01f1f;stop-opacity:1;"
offset="0"
id="stop1530" />
<stop
style="stop-color:#750000;stop-opacity:1;"
offset="1"
id="stop1532" />
</linearGradient>
<rect
x="128.21036"
y="358.3636"
width="118.82912"
height="105.06996"
id="rect1422" />
<linearGradient
inkscape:collect="always"
id="linearGradient1312">
<stop
style="stop-color:#cccccc;stop-opacity:1;"
offset="0"
id="stop1308" />
<stop
style="stop-color:#9e9e9e;stop-opacity:1;"
offset="1"
id="stop1310" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1012">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop1008" />
<stop
style="stop-color:#cccccc;stop-opacity:1;"
offset="1"
id="stop1010" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 384 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1366 : 384 : 1"
inkscape:persp3d-origin="683 : 256 : 1"
id="perspective240" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1012"
id="linearGradient1014"
x1="214.14874"
y1="476.97568"
x2="413.89816"
y2="426.7525"
gradientUnits="userSpaceOnUse"
gradientTransform="rotate(-21.915376,130.62986,196.54856)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1312"
id="linearGradient1199"
gradientUnits="userSpaceOnUse"
x1="245.04614"
y1="496.28656"
x2="390.71823"
y2="448.00076"
gradientTransform="rotate(-21.915376,-253.47936,270.91749)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1534"
id="linearGradient1536"
x1="300.54199"
y1="479.15448"
x2="311.96014"
y2="516.67126"
gradientUnits="userSpaceOnUse" />
<mask
maskUnits="userSpaceOnUse"
id="mask1546">
<path
id="mask-powermask-path-effect1554_box"
style="fill:#ffffff;fill-opacity:1"
d="m 288.12384,478.15448 h 24.8363 v 37.88562 h -24.8363 z" />
<g
id="g1552"
style="">
<ellipse
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0"
id="ellipse1548"
cx="293.20352"
cy="508.32104"
rx="8.4691944"
ry="9.1467295" />
<ellipse
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0"
id="ellipse1550"
cx="305.22977"
cy="508.99857"
rx="8.2998104"
ry="9.4854975" />
</g>
</mask>
<filter
id="mask-powermask-path-effect1554_inverse"
inkscape:label="filtermask-powermask-path-effect1554"
style="color-interpolation-filters:sRGB"
height="100"
width="100"
x="-50"
y="-50">
<feColorMatrix
id="mask-powermask-path-effect1554_primitive1"
values="1"
type="saturate"
result="fbSourceGraphic" />
<feColorMatrix
id="mask-powermask-path-effect1554_primitive2"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
in="fbSourceGraphic" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient1627"
id="radialGradient1664"
cx="92.890358"
cy="200.66901"
fx="92.890358"
fy="200.66901"
r="40.74736"
gradientTransform="matrix(-0.04697488,2.2375154,-1.8924311,-0.03973008,650.26873,83.319854)"
gradientUnits="userSpaceOnUse" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1734" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1740" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1746" />
</defs>
<g
inkscape:label="Livello 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g1661"
transform="rotate(21.915376,228.81255,365.92112)">
<path
style="fill:url(#linearGradient1199);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 342.4654,211.86863 -88.28863,68.00654 228.35843,32.4377 66.34459,-107.27731 z"
id="path1197"
sodipodi:nodetypes="ccccc" />
<path
style="fill:url(#linearGradient1014);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 254.17632,279.87267 312.47688,424.78749 540.8353,457.22518 478.985,303.48695 Z"
id="path429" />
<path
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0.586676px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 548.87976,205.03535 607.18032,349.95016 540.8353,457.22518 478.985,303.48695 Z"
id="path1016"
sodipodi:nodetypes="ccccc" />
<text
xml:space="preserve"
id="text1420"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1422);display:inline;fill:#000000;fill-opacity:1;stroke:none"
transform="matrix(3.2129455,0.49234496,1.0439449,2.594882,-507.41872,-714.42815)"><tspan
x="128.21094"
y="395.1441"
id="tspan441"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto"
id="tspan439">x x</tspan></tspan></text>
<ellipse
style="fill:url(#linearGradient1536);fill-opacity:1;stroke:none;stroke-width:0"
id="path1528"
mask="url(#mask1546)"
ry="17.942806"
rx="11.418149"
cy="497.09729"
cx="300.54199"
transform="matrix(1.14307,0.16200795,0.37323676,0.92773612,-126.49365,-96.991087)" />
<path
id="path1578"
style="fill:url(#radialGradient1664);fill-opacity:1;stroke:none;stroke-width:0.72022px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 226.35697,189.04952 -21.6452,16.38174 42.10457,52.27555 14.46584,-11.81973 z m -40.18716,50.3255 -6.38236,21.98027 53.33642,17.52957 3.84122,-15.31376 z m -2.46993,56.86515 4.91752,22.35422 55.21996,-10.13342 -3.9554,-15.28446 z" />
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-680.06542,63.429824)"
id="text1724"
style="font-style:normal;font-weight:normal;font-size:192px;line-height:0;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1726);display:inline;fill:#eb4034;fill-opacity:1;stroke:none"
x="130.6875"
y="0"><tspan
x="670.9541"
y="343.85229"
id="tspan445"><tspan
style="font-weight:bold;font-size:64px;font-family:Roboto;-inkscape-font-specification:'Roboto Bold'"
id="tspan443">Error 403</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-637.41781,164.7461)"
id="text1732"
style="font-style:normal;font-weight:normal;font-size:36.1389px;line-height:1.3;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1734);display:inline;fill:#eb4034;fill-opacity:1;stroke:none"
x="121.0512"
y="0"><tspan
x="723.23532"
y="323.29018"
id="tspan449"><tspan
style="font-weight:500;font-family:Roboto;-inkscape-font-specification:'Roboto Medium';fill:#e5e5e5"
id="tspan447">Forbidden</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-605.0946,245.09032)"
id="text1744"
style="font-style:normal;font-weight:normal;font-size:18.0694px;line-height:1.3;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1746);display:inline;fill:#eb4034;fill-opacity:1;stroke:none"
x="121.0512"
y="0"><tspan
x="679.83105"
y="306.22317"
id="tspan453"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto;fill:#e5e5e5"
id="tspan451">Didn't expect that? Contact me.
</tspan></tspan><tspan
x="728.36609"
y="329.88769"
id="tspan457"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto;fill:#e5e5e5"
id="tspan455">me@gianmarco.gg</tspan></tspan></text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,26 +0,0 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<title>Error 404 - Gianmarco Gargiulo</title>
</head>
<body>
<style>
html, body {
height: 100%;
}
html {
display: table;
margin: auto;
}
body {
display: table-cell;
vertical-align: middle;
background-color: #2a2c2b;
}
</style>
<img src="/errors/404.svg" width="569px" height="320px" />
</body>
</html>

View File

@ -1,300 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="1366"
height="768"
viewBox="0 0 1366 768"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="404.svg"
inkscape:export-filename="error.png"
inkscape:export-xdpi="40"
inkscape:export-ydpi="40"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="4.1357324"
inkscape:cx="1007.5604"
inkscape:cy="535.93894"
inkscape:window-width="1900"
inkscape:window-height="987"
inkscape:window-x="1690"
inkscape:window-y="10"
inkscape:window-maximized="0"
inkscape:current-layer="g1661" />
<defs
id="defs2">
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1726" />
<linearGradient
inkscape:collect="always"
id="linearGradient1627">
<stop
style="stop-color:#75120c;stop-opacity:1;"
offset="0"
id="stop1623" />
<stop
style="stop-color:#eb4034;stop-opacity:1;"
offset="1"
id="stop1625" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1534">
<stop
style="stop-color:#e01f1f;stop-opacity:1;"
offset="0"
id="stop1530" />
<stop
style="stop-color:#750000;stop-opacity:1;"
offset="1"
id="stop1532" />
</linearGradient>
<rect
x="128.21036"
y="358.3636"
width="118.82912"
height="105.06996"
id="rect1422" />
<linearGradient
inkscape:collect="always"
id="linearGradient1312">
<stop
style="stop-color:#cccccc;stop-opacity:1;"
offset="0"
id="stop1308" />
<stop
style="stop-color:#9e9e9e;stop-opacity:1;"
offset="1"
id="stop1310" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1012">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop1008" />
<stop
style="stop-color:#cccccc;stop-opacity:1;"
offset="1"
id="stop1010" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 384 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1366 : 384 : 1"
inkscape:persp3d-origin="683 : 256 : 1"
id="perspective240" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1012"
id="linearGradient1014"
x1="214.14874"
y1="476.97568"
x2="413.89816"
y2="426.7525"
gradientUnits="userSpaceOnUse"
gradientTransform="rotate(-21.915376,130.62986,196.54856)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1312"
id="linearGradient1199"
gradientUnits="userSpaceOnUse"
x1="245.04614"
y1="496.28656"
x2="390.71823"
y2="448.00076"
gradientTransform="rotate(-21.915376,-253.47936,270.91749)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1534"
id="linearGradient1536"
x1="300.54199"
y1="479.15448"
x2="311.96014"
y2="516.67126"
gradientUnits="userSpaceOnUse" />
<mask
maskUnits="userSpaceOnUse"
id="mask1546">
<path
id="mask-powermask-path-effect1554_box"
style="fill:#ffffff;fill-opacity:1"
d="m 288.12384,478.15448 h 24.8363 v 37.88562 h -24.8363 z" />
<g
id="g1552"
style="">
<ellipse
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0"
id="ellipse1548"
cx="293.20352"
cy="508.32104"
rx="8.4691944"
ry="9.1467295" />
<ellipse
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0"
id="ellipse1550"
cx="305.22977"
cy="508.99857"
rx="8.2998104"
ry="9.4854975" />
</g>
</mask>
<filter
id="mask-powermask-path-effect1554_inverse"
inkscape:label="filtermask-powermask-path-effect1554"
style="color-interpolation-filters:sRGB"
height="100"
width="100"
x="-50"
y="-50">
<feColorMatrix
id="mask-powermask-path-effect1554_primitive1"
values="1"
type="saturate"
result="fbSourceGraphic" />
<feColorMatrix
id="mask-powermask-path-effect1554_primitive2"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
in="fbSourceGraphic" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient1627"
id="radialGradient1664"
cx="92.890358"
cy="200.66901"
fx="92.890358"
fy="200.66901"
r="40.74736"
gradientTransform="matrix(-0.04697488,2.2375154,-1.8924311,-0.03973008,650.26873,83.319854)"
gradientUnits="userSpaceOnUse" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1734" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1740" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1746" />
</defs>
<g
inkscape:label="Livello 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g1661"
transform="rotate(21.915376,228.81255,365.92112)">
<path
style="fill:url(#linearGradient1199);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 342.4654,211.86863 -88.28863,68.00654 228.35843,32.4377 66.34459,-107.27731 z"
id="path1197"
sodipodi:nodetypes="ccccc" />
<path
style="fill:url(#linearGradient1014);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 254.17632,279.87267 312.47688,424.78749 540.8353,457.22518 478.985,303.48695 Z"
id="path429" />
<path
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0.586676px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 548.87976,205.03535 607.18032,349.95016 540.8353,457.22518 478.985,303.48695 Z"
id="path1016"
sodipodi:nodetypes="ccccc" />
<text
xml:space="preserve"
id="text1420"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1422);display:inline;fill:#000000;fill-opacity:1;stroke:none"
transform="matrix(3.2129455,0.49234496,1.0439449,2.594882,-507.41872,-714.42815)"><tspan
x="128.21094"
y="395.1441"
id="tspan441"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto"
id="tspan439">x x</tspan></tspan></text>
<ellipse
style="fill:url(#linearGradient1536);fill-opacity:1;stroke:none;stroke-width:0"
id="path1528"
mask="url(#mask1546)"
ry="17.942806"
rx="11.418149"
cy="497.09729"
cx="300.54199"
transform="matrix(1.14307,0.16200795,0.37323676,0.92773612,-126.49365,-96.991087)" />
<path
id="path1578"
style="fill:url(#radialGradient1664);fill-opacity:1;stroke:none;stroke-width:0.72022px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 226.35697,189.04952 -21.6452,16.38174 42.10457,52.27555 14.46584,-11.81973 z m -40.18716,50.3255 -6.38236,21.98027 53.33642,17.52957 3.84122,-15.31376 z m -2.46993,56.86515 4.91752,22.35422 55.21996,-10.13342 -3.9554,-15.28446 z" />
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-680.06542,63.429824)"
id="text1724"
style="font-style:normal;font-weight:normal;font-size:192px;line-height:0;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1726);fill:#eb4034;fill-opacity:1;stroke:none"
x="130.6875"
y="0"><tspan
x="670.9541"
y="343.85229"
id="tspan445"><tspan
style="font-weight:bold;font-size:64px;font-family:Roboto;-inkscape-font-specification:'Roboto Bold'"
id="tspan443">Error 404</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-637.41781,164.7461)"
id="text1732"
style="font-style:normal;font-weight:normal;font-size:36.1389px;line-height:1.3;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1734);fill:#eb4034;fill-opacity:1;stroke:none"
x="121.0512"
y="0"><tspan
x="681.05269"
y="323.29018"
id="tspan449"><tspan
style="font-weight:500;font-family:Roboto;-inkscape-font-specification:'Roboto Medium';fill:#e5e5e5"
id="tspan447">Page not found</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-605.0946,245.09032)"
id="text1744"
style="font-style:normal;font-weight:normal;font-size:18.0694px;line-height:1.3;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1746);fill:#eb4034;fill-opacity:1;stroke:none"
x="121.0512"
y="0"><tspan
x="679.83105"
y="306.22317"
id="tspan453"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto;fill:#e5e5e5"
id="tspan451">Didn't expect that? Contact me.
</tspan></tspan><tspan
x="728.36609"
y="329.88769"
id="tspan457"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto;fill:#e5e5e5"
id="tspan455">me@gianmarco.gg</tspan></tspan></text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,26 +0,0 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<title>Error 503 - Gianmarco Gargiulo</title>
</head>
<body>
<style>
html, body {
height: 100%;
}
html {
display: table;
margin: auto;
}
body {
display: table-cell;
vertical-align: middle;
background-color: #2a2c2b;
}
</style>
<img src="/errors/503.svg" width="569px" height="320px" />
</body>
</html>

View File

@ -1,300 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="1366"
height="768"
viewBox="0 0 1366 768"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="503.svg"
inkscape:export-filename="error.png"
inkscape:export-xdpi="40"
inkscape:export-ydpi="40"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="2.9244044"
inkscape:cx="922.23907"
inkscape:cy="509.67643"
inkscape:window-width="1900"
inkscape:window-height="987"
inkscape:window-x="1690"
inkscape:window-y="10"
inkscape:window-maximized="0"
inkscape:current-layer="g1661" />
<defs
id="defs2">
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1726" />
<linearGradient
inkscape:collect="always"
id="linearGradient1627">
<stop
style="stop-color:#75120c;stop-opacity:1;"
offset="0"
id="stop1623" />
<stop
style="stop-color:#eb4034;stop-opacity:1;"
offset="1"
id="stop1625" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1534">
<stop
style="stop-color:#e01f1f;stop-opacity:1;"
offset="0"
id="stop1530" />
<stop
style="stop-color:#750000;stop-opacity:1;"
offset="1"
id="stop1532" />
</linearGradient>
<rect
x="128.21036"
y="358.3636"
width="118.82912"
height="105.06996"
id="rect1422" />
<linearGradient
inkscape:collect="always"
id="linearGradient1312">
<stop
style="stop-color:#cccccc;stop-opacity:1;"
offset="0"
id="stop1308" />
<stop
style="stop-color:#9e9e9e;stop-opacity:1;"
offset="1"
id="stop1310" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1012">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop1008" />
<stop
style="stop-color:#cccccc;stop-opacity:1;"
offset="1"
id="stop1010" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 384 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1366 : 384 : 1"
inkscape:persp3d-origin="683 : 256 : 1"
id="perspective240" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1012"
id="linearGradient1014"
x1="214.14874"
y1="476.97568"
x2="413.89816"
y2="426.7525"
gradientUnits="userSpaceOnUse"
gradientTransform="rotate(-21.915376,130.62986,196.54856)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1312"
id="linearGradient1199"
gradientUnits="userSpaceOnUse"
x1="245.04614"
y1="496.28656"
x2="390.71823"
y2="448.00076"
gradientTransform="rotate(-21.915376,-253.47936,270.91749)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1534"
id="linearGradient1536"
x1="300.54199"
y1="479.15448"
x2="311.96014"
y2="516.67126"
gradientUnits="userSpaceOnUse" />
<mask
maskUnits="userSpaceOnUse"
id="mask1546">
<path
id="mask-powermask-path-effect1554_box"
style="fill:#ffffff;fill-opacity:1"
d="m 288.12384,478.15448 h 24.8363 v 37.88562 h -24.8363 z" />
<g
id="g1552"
style="">
<ellipse
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0"
id="ellipse1548"
cx="293.20352"
cy="508.32104"
rx="8.4691944"
ry="9.1467295" />
<ellipse
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0"
id="ellipse1550"
cx="305.22977"
cy="508.99857"
rx="8.2998104"
ry="9.4854975" />
</g>
</mask>
<filter
id="mask-powermask-path-effect1554_inverse"
inkscape:label="filtermask-powermask-path-effect1554"
style="color-interpolation-filters:sRGB"
height="100"
width="100"
x="-50"
y="-50">
<feColorMatrix
id="mask-powermask-path-effect1554_primitive1"
values="1"
type="saturate"
result="fbSourceGraphic" />
<feColorMatrix
id="mask-powermask-path-effect1554_primitive2"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
in="fbSourceGraphic" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient1627"
id="radialGradient1664"
cx="92.890358"
cy="200.66901"
fx="92.890358"
fy="200.66901"
r="40.74736"
gradientTransform="matrix(-0.04697488,2.2375154,-1.8924311,-0.03973008,650.26873,83.319854)"
gradientUnits="userSpaceOnUse" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1734" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1740" />
<rect
x="575.17445"
y="289.15679"
width="458.74661"
height="239.13389"
id="rect1746" />
</defs>
<g
inkscape:label="Livello 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g1661"
transform="rotate(21.915376,228.81255,365.92112)">
<path
style="fill:url(#linearGradient1199);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 342.4654,211.86863 -88.28863,68.00654 228.35843,32.4377 66.34459,-107.27731 z"
id="path1197"
sodipodi:nodetypes="ccccc" />
<path
style="fill:url(#linearGradient1014);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 254.17632,279.87267 312.47688,424.78749 540.8353,457.22518 478.985,303.48695 Z"
id="path429" />
<path
style="fill:#858585;fill-opacity:1;stroke:none;stroke-width:0.586676px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 548.87976,205.03535 607.18032,349.95016 540.8353,457.22518 478.985,303.48695 Z"
id="path1016"
sodipodi:nodetypes="ccccc" />
<text
xml:space="preserve"
id="text1420"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1422);display:inline;fill:#000000;fill-opacity:1;stroke:none"
transform="matrix(3.2129455,0.49234496,1.0439449,2.594882,-507.41872,-714.42815)"><tspan
x="128.21094"
y="395.1441"
id="tspan441"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto"
id="tspan439">x x</tspan></tspan></text>
<ellipse
style="fill:url(#linearGradient1536);fill-opacity:1;stroke:none;stroke-width:0"
id="path1528"
mask="url(#mask1546)"
ry="17.942806"
rx="11.418149"
cy="497.09729"
cx="300.54199"
transform="matrix(1.14307,0.16200795,0.37323676,0.92773612,-126.49365,-96.991087)" />
<path
id="path1578"
style="fill:url(#radialGradient1664);fill-opacity:1;stroke:none;stroke-width:0.72022px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 226.35697,189.04952 -21.6452,16.38174 42.10457,52.27555 14.46584,-11.81973 z m -40.18716,50.3255 -6.38236,21.98027 53.33642,17.52957 3.84122,-15.31376 z m -2.46993,56.86515 4.91752,22.35422 55.21996,-10.13342 -3.9554,-15.28446 z" />
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-680.06542,63.429824)"
id="text1724"
style="font-style:normal;font-weight:normal;font-size:192px;line-height:0;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1726);display:inline;fill:#eb4034;fill-opacity:1;stroke:none"
x="130.6875"
y="0"><tspan
x="670.9541"
y="343.85229"
id="tspan445"><tspan
style="font-weight:bold;font-size:64px;font-family:Roboto;-inkscape-font-specification:'Roboto Bold'"
id="tspan443">Error 503</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-637.41781,164.7461)"
id="text1732"
style="font-style:normal;font-weight:normal;font-size:36.1389px;line-height:1.3;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1734);display:inline;fill:#eb4034;fill-opacity:1;stroke:none"
x="121.0512"
y="0"><tspan
x="711.00668"
y="323.29018"
id="tspan449"><tspan
style="font-weight:500;font-family:Roboto;-inkscape-font-specification:'Roboto Medium';fill:#e5e5e5"
id="tspan447">Unavailable</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(1.642971,-0.66098232,0.66098232,1.642971,-605.0946,245.09032)"
id="text1744"
style="font-style:normal;font-weight:normal;font-size:18.0694px;line-height:1.3;font-family:sans-serif;text-align:center;white-space:pre;shape-inside:url(#rect1746);display:inline;fill:#eb4034;fill-opacity:1;stroke:none"
x="121.0512"
y="0"><tspan
x="679.83105"
y="306.22317"
id="tspan453"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto;fill:#e5e5e5"
id="tspan451">Didn't expect that? Contact me.
</tspan></tspan><tspan
x="728.36609"
y="329.88769"
id="tspan457"><tspan
style="font-family:Roboto;-inkscape-font-specification:Roboto;fill:#e5e5e5"
id="tspan455">me@gianmarco.gg</tspan></tspan></text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 585 KiB

After

Width:  |  Height:  |  Size: 777 KiB

41
static/js/blinky.js Normal file
View File

@ -0,0 +1,41 @@
// please note,
// that IE11 now returns undefined again for window.chrome
// and new Opera 30 outputs true for window.chrome
// but needs to check if window.opr is not undefined
// and new IE Edge outputs to true now for window.chrome
// and if not iOS Chrome check
// so use the below updated condition
var isChromium = window.chrome;
var winNav = window.navigator;
var vendorName = winNav.vendor;
var isOpera = typeof window.opr !== "undefined";
var isIEedge = winNav.userAgent.indexOf("Edg") > -1;
var isIOSChrome = winNav.userAgent.match("CriOS");
if (isIOSChrome && !window.location.href.includes("blinky")) {
// fuck off
window.location.replace("/blinky");
} else if(
isChromium !== null &&
typeof isChromium !== "undefined" &&
vendorName === "Google Inc." &&
isOpera === false &&
isIEedge === false &&
!window.location.href.includes("blinky")
) {
window.location.replace("/blinky"); // fuck off
} else {
// not Google Chrome
}
function isChromiumGoFuckYourselfMicrosoftEdge() {
for (brand_version_pair of navigator.userAgentData.brands) {
if (brand_version_pair.brand == "Chromium" && !window.location.href.includes("blinky")){
// fuck off
window.location.replace("/blinky");
}
}
}
isChromiumGoFuckYourselfMicrosoftEdge(); // yeah i know its a fucking hack. but edge pulled my hand.
// shitty code by GlitchyZorua.

BIN
static/navlogo-nexttemp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
static/other/img/lca.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 KiB

BIN
static/pins/2001.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
static/pins/antinft.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
static/pins/archlinux.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 B

BIN
static/pins/demorbtn.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
static/pins/frees.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
static/pins/godot.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
static/pins/kromernow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
static/pins/libreboot.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 B

BIN
static/pins/matrix.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
static/pins/nishiboats.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
static/pins/piracy.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 910 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
static/pins/saintpepsi.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
static/pins/silkms.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
static/pins/srgb-now.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
static/pins/tiktok.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
static/pins/timmerda.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

BIN
static/pins/tired.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 946 B

BIN
static/pins/ublock-now.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
static/pins/web3.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 B

BIN
static/pins/y2k.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

BIN
static/pins/yesterweb.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
static/tos/img/peertube.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 KiB

BIN
static/tos/img/pgc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

View File

@ -18,8 +18,8 @@
body { body {
display: table-cell; display: table-cell;
vertical-align: middle; vertical-align: middle;
background-color: #000000; background-color: #1e1e1e;
color: white; color: #e5e5e5;
font: small-caption; font: small-caption;
} }
@ -27,21 +27,55 @@
text-align: center; text-align: center;
} }
h1 {
text-align: center;
font-family: "Mustica Pro";
font-weight: normal;
}
.button { .button {
border: none; border: 1px solid;
color: white; color: white;
padding: 15px 32px; padding: 10px 32px;
margin-bottom: 5px;
text-align: center; text-align: center;
text-decoration: none; text-decoration: none;
display: inline-block; display: inline-block;
font-size: 16px; font-size: 16px;
cursor: pointer; cursor: pointer;
border-radius: 5px;
} }
#pipedbtn {background-color: darkred} /* Piped */ @media screen and (min-width: 0px) and (max-width: 500px) {
#ytbtn {background-color: red} /* YouTube */ .button{ display: block; }
#odybtn {background-color: purple} /* Odysee */ }
#ptbtn {background-color: #C2540A} /* PeerTube */
#pipedbtn {background-color: rgba(139,0,0,.2); border-color: darkred} /* Piped */
#pipedbtn:hover {background-color: darkred}
#pipedbtn:active {background-color: #5a0000; border-color: #5a0000}
#ytbtn {background-color: rgba(255,0,0,.2); border-color: red} /* YouTube */
#ytbtn:hover {background-color: red}
#ytbtn:active {background-color: #b90000; border-color: #b90000}
#odybtn {background-color: rgba(128,0,128,.2); border-color: purple} /* Odysee */
#odybtn:hover {background-color: purple}
#odybtn:active {background-color: #5a005a; border-color: #5a005a}
#ptbtn {background-color: rgba(194,84,10,.2); border-color: #C2540A} /* PeerTube */
#ptbtn:hover {background-color: #C2540A}
#ptbtn:active {background-color: #984108; border-color: #984108}
@font-face {
font-family: "Mustica Pro";
src: url("fonts/MusticaPro-SemiBold.otf") format("opentype");
font-weight: normal;
font-style: normal
}
@font-face {
font-family: "Roboto";
src: url("fonts/Roboto-Regular.ttf") format("truetype");
font-weight: normal;
font-style: normal
}
</style> </style>
<script> <script>
const queryString = window.location.search; const queryString = window.location.search;
@ -65,12 +99,12 @@
</script> </script>
</head> </head>
<body> <body>
<p>Where do you want to watch this video?</p> <h1>Where do you want to watch this video?</h1>
<a id="pipedbtn" class="button" href="https://piped.projectsegfau.lt/embed/">Piped¹</a> <a id="pipedbtn" class="button" href="https://piped.adminforge.de/embed/">Piped</a>
<a id="ytbtn" class="button" href="https://youtube.com/embed/">YouTube²</a> <a id="ytbtn" class="button" href="https://youtube.com/embed/">YouTube</a>
<a id="odybtn" class="button" href="https://odysee.com/$/embed/@gianmarcogg03:e/">Odysee²</a> <a id="odybtn" class="button" href="https://odysee.com/$/embed/@gianmarcogg03:e/">Odysee</a>
<a id="ptbtn" class="button" href="https://videos.gianmarco.gg/videos/embed/">PeerTube</a> <a id="ptbtn" class="button" href="https://videos.gianmarco.gg/videos/embed/">PeerTube</a>
<p>¹ = the instance used is "piped.projectsegfau.lt".</p> <p>The Piped instance used is <b>piped.adminforge.de</b>.</p>
<p>² = not freedom and/or privacy respecting.</p> <p>YouTube is not freedom and privacy respecting, Odysee has selfhosted telemetry.</p>
</body> </body>
</html> </html>

View File

@ -48,6 +48,7 @@
#banner { #banner {
border-radius: 6px; border-radius: 6px;
background-color: #661a16; background-color: #661a16;
color: #bdbdbd;
padding: 20px; padding: 20px;
width: auto; width: auto;
height: auto; height: auto;
@ -68,6 +69,82 @@
margin: auto; margin: auto;
} }
#banner b {
color: white;
}
#banner h2 {
font-family: "Mustica Pro";
color: white;
margin: 0.5em 0 0.5em 0;
}
#banner blockquote, dl, ol, p, ul {
margin: 0.5em 0 0.5em 0;
}
/* BREADCRUMBS */
.breadcrumbs {
color:#e5e5e5;
font-size:1.4rem;
& a {
color: inherit;
}
}
.breadcrumbs-slash {
color:#bdbdbd
}
/* DOWNLOAD */
#download-banner {
border: 1px solid #bdbdbd;
border-radius: 6px;
background-color: #2a2a2a;
color: #bdbdbd;
padding: 20px;
width: 400px;
height: auto;
display: flex;
flex-direction: column;
align-items: left;
justify-content: space-between;
margin-left: 20px;
margin-right: 20px;
margin-bottom: 50px;
& svg {
float:left
}
& h4 {
margin-top:0;
margin-left:1.5em;
}
}
#download-banner:hover {
background-color: #0171ff;
border: 1px solid #0171ff;
color: white;
}
#download-banner:active {
background-color: #014faf;
border: 1px solid #014faf;
color: white;
}
/* COMMENTS TITLE */
.comments-title {
font-family: "Mustica Pro";
font-weight: normal; // Probably unnecessary.
}
/* MAKEHEAD */
.makehead {
font-family: "Mustica Pro";
font-weight: normal;
color: #e5e5e5;
}
/* ISSO CSS */ /* ISSO CSS */
#isso-thread { #isso-thread {
@ -97,13 +174,13 @@
min-height: 58px; min-height: 58px;
outline: 0; outline: 0;
&.placeholder { &.placeholder {
color: #e5e5e5; color: #6a6a6a;
} }
} }
.textarea:focus, // .textarea:focus,
input:focus { // input:focus {
border-color: rgba(0, 0, 0, 0.8); // border-color: rgba(0, 0, 0, 0.8);
} // }
} }
.isso-comment{ .isso-comment{
#isso-root & { #isso-root & {
@ -127,7 +204,7 @@
width: 48px; width: 48px;
height: 48px; height: 48px;
border: 1px solid rgba(0, 0, 0, 0.2); border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 3px; border-radius: 4px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
} }
} }
@ -141,8 +218,9 @@
font-size: 0.85em; font-size: 0.85em;
.spacer { .spacer {
padding: 0 6px; padding: 0 6px;
color: #1e1e1e;
} }
.spacer, //.spacer,
a.permalink, a.permalink,
.note, .note,
a.parent { a.parent {
@ -166,7 +244,7 @@
margin-top: 0.2em; margin-top: 0.2em;
width: 100%; width: 100%;
border: 1px solid #f0f0f0; border: 1px solid #f0f0f0;
border-radius: 2px; border-radius: 4px;
box-shadow: 0 0 2px #888; box-shadow: 0 0 2px #888;
} }
> .text{ > .text{
@ -195,7 +273,8 @@
.votes { .votes {
color: gray; color: gray;
position: relative; position: relative;
top: 2px; top: 1px;
padding-right: 5px;
} }
.upvote svg, .upvote svg,
.downvote svg { .downvote svg {
@ -203,6 +282,12 @@
top: -.2em; top: -.2em;
left: .1em; left: .1em;
} }
.spacer {
color: #1e1e1e;
}
.reply {
top: -.1px;
}
} }
} }
.isso-follow-up { .isso-follow-up {
@ -236,8 +321,9 @@
.preview { .preview {
margin: 0 0 .3em; margin: 0 0 .3em;
padding: .4em .8em; padding: .4em .8em;
border-radius: 3px; border-radius: 4px;
background-color: #000; background-color: #e5e5e5;
color: black;
border: 1px solid rgba(0, 0, 0, 0.2); border: 1px solid rgba(0, 0, 0, 0.2);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
} }
@ -260,11 +346,13 @@
position: relative; position: relative;
max-width: 25%; max-width: 25%;
margin: 0; margin: 0;
margin-right: 5px;
input { input {
padding: .3em 10px; padding: .3em 10px;
max-width: 100%; max-width: 100%;
border-radius: 3px; border-radius: 4px;
background-color: #000; background-color: #e5e5e5;
color: black;
line-height: 1.4em; line-height: 1.4em;
border: 1px solid rgba(0, 0, 0, 0.2); border: 1px solid rgba(0, 0, 0, 0.2);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
@ -276,18 +364,22 @@
margin: 0 0 0 5px; margin: 0 0 0 5px;
> input { > input {
padding: calc(.3em - 1px); padding: calc(.3em - 1px);
border-radius: 2px; padding-left: 10px;
border: 1px solid #c4c4c4; padding-right: 10px;
background-color: #000; border-radius: 4px;
border: 1px solid #bdbdbd;
background-color: #2a2a2a;
cursor: pointer; cursor: pointer;
outline: 0; outline: 0;
line-height: 1.4em; line-height: 1.4em;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
&:hover { &:hover {
background-color: #eb6c6c; background-color: #0171ff;
border: 1px solid #0171ff;
color: white;
} }
&:active { &:active {
background-color: #781f1a; background-color: #014faf;
border: 1px solid #014faf;
} }
} }
} }
@ -296,10 +388,10 @@
background-color: #303030; background-color: #303030;
background: repeating-linear-gradient( background: repeating-linear-gradient(
-45deg, -45deg,
#303030, #ffffff,
#303030 10px, #ffffff 10px,
#232323 10px, #e5e5e5 10px,
#232323 20px #e5e5e5 20px
); );
} }
> .notification-section { > .notification-section {

View File

@ -253,13 +253,13 @@ blockquote{
h1,h2,h3,h4,h5,h6{ h1,h2,h3,h4,h5,h6{
margin-top:0; margin-top:0;
line-height:1.15; line-height:1.15;
font-weight:600; font-weight:1;
text-rendering:optimizeLegibility text-rendering:optimizeLegibility
} }
h1{ h1{
margin:0 0 .5em; margin:0 0 .5em;
font-size:5.5rem; font-size:5.5rem;
font-weight:600 font-weight:1
} }
@media (max-width:500px){ @media (max-width:500px){
h1{ h1{
@ -311,7 +311,8 @@ h5,h6{
.site-wrapper{ .site-wrapper{
display:flex; display:flex;
flex-direction:column; flex-direction:column;
min-height:100vh min-height:100vh;
// background-image: url("/me.png");
} }
.site-main{ .site-main{
z-index:100; z-index:100;
@ -328,7 +329,7 @@ h5,h6{
} }
@media (min-width:900px){ @media (min-width:900px){
.author-template .post-feed,.home-template .post-feed,.tag-template .post-feed{ .author-template .post-feed,.home-template .post-feed,.tag-template .post-feed{
padding:40px 0 5vw; padding:10px 0 1px;
border-top-left-radius:3px; border-top-left-radius:3px;
border-top-right-radius:3px border-top-right-radius:3px
} }
@ -396,7 +397,7 @@ h5,h6{
font-family:"Mustica Pro","Roboto",sans-serif; font-family:"Mustica Pro","Roboto",sans-serif;
font-size:5rem; font-size:5rem;
line-height:1em; line-height:1em;
font-weight:600 font-weight:1
} }
.site-logo{ .site-logo{
max-height:55px max-height:55px
@ -792,7 +793,7 @@ h5,h6{
font-family:"Mustica Pro","Roboto",sans-serif font-family:"Mustica Pro","Roboto",sans-serif
} }
.no-image .post-card-title{ .no-image .post-card-title{
margin-top:0 margin-top:6px
} }
.post-card-content{ .post-card-content{
flex-grow:1; flex-grow:1;
@ -1027,7 +1028,8 @@ h5,h6{
.post-full-title{ .post-full-title{
margin:0 0 .2em; margin:0 0 .2em;
color:#e5e5e5; color:#e5e5e5;
font-family:"Mustica Pro","Roboto",sans-serif font-family:"Mustica Pro","Roboto",sans-serif;
font-size: 3em
} }
.post-full-custom-excerpt{ .post-full-custom-excerpt{
margin:0px 0 0; margin:0px 0 0;
@ -1244,13 +1246,13 @@ h5,h6{
margin:.5em 0 .4em; margin:.5em 0 .4em;
font-size:4.2rem; font-size:4.2rem;
line-height:1.25em; line-height:1.25em;
font-weight:600; font-weight:1;
} }
& h2{ & h2{
margin:.5em 0 .4em; margin:.5em 0 .4em;
font-size:3.2rem; font-size:3.2rem;
line-height:1.25em; line-height:1.25em;
font-weight:600; font-weight:1;
&+h3, &+h3,
&+h4{ &+h4{
margin-top:.7em; margin-top:.7em;
@ -1260,7 +1262,7 @@ h5,h6{
margin:.5em 0 .2em; margin:.5em 0 .2em;
font-size:2.5rem; font-size:2.5rem;
line-height:1.3em; line-height:1.3em;
font-weight:600; font-weight:1;
&+h4{ &+h4{
margin-top:0; margin-top:0;
} }
@ -1268,7 +1270,7 @@ h5,h6{
& h4{ & h4{
margin:.5em 0 .2em; margin:.5em 0 .2em;
font-size:2.5rem; font-size:2.5rem;
font-weight:600; font-weight:1;
} }
& h5{ & h5{
display:block; display:block;
@ -1284,7 +1286,7 @@ h5,h6{
& h6{ & h6{
margin:.5em 0 .2em; margin:.5em 0 .2em;
font-size:2rem; font-size:2rem;
font-weight:700; font-weight:1;
} }
& table{ & table{
display:inline-block; display:inline-block;

View File

@ -24,6 +24,8 @@
<link rel="stylesheet" href="{{ $styles.RelPermalink }}" /> <link rel="stylesheet" href="{{ $styles.RelPermalink }}" />
<script data-isso="//isso.gianmarco.gg/" data-isso-css-url="{{ $styles.RelPermalink }}" src="//isso.gianmarco.gg/js/embed.min.js"></script> <script data-isso="//isso.gianmarco.gg/" data-isso-css-url="{{ $styles.RelPermalink }}" src="//isso.gianmarco.gg/js/embed.min.js"></script>
<script src="/js/blinky.js"></script>
</head> </head>
<body class="{{ block "body_class" . }} {{ end }}"> <body class="{{ block "body_class" . }} {{ end }}">
@ -44,9 +46,9 @@
<img src="/pins/ccbyncsa.png"> <img src="/pins/ccbyncsa.png">
</figure> </figure>
</a>--> </a>-->
<a href="https://debian.org"> <a href="https://nixos.org">
<figure> <figure>
<img src="/pins/debianpin.gif"></img> <img src="/pins/poweredbynixos.png"></img>
</figure> </figure>
</a> </a>
<a href="https://www.gnu.org/licenses/agpl-3.0.html"> <a href="https://www.gnu.org/licenses/agpl-3.0.html">
@ -68,57 +70,57 @@
<div class="site-footer-content inner mobile-hide"> <div class="site-footer-content inner mobile-hide">
<a href="https://jellyfin.org"> <a href="https://jellyfin.org">
<figure> <figure>
<img src="/pins/jellyfin.gif"></img> <img src="/pins/jellyfin.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a> <a href="https://nishi.boats">
<figure> <figure>
<img src="/pins/amd_powered.gif"></img> <img src="/pins/nishiboats.jpg" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://grapheneos.org"> <a href="https://grapheneos.org">
<figure> <figure>
<img src="/pins/grapheneos.gif"></img> <img src="/pins/grapheneos.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://gimp.org"> <a href="https://gimp.org">
<figure> <figure>
<img src="/pins/gimp.gif"></img> <img src="/pins/gimp.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a rel="me" href="https://mastodon.uno/@gianmarcogg03"> <a rel="me" href="https://mastodon.uno/@gianmarcogg03">
<figure> <figure>
<img src="/pins/mastodon.gif"></img> <img src="/pins/mastodon.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://nextcloud.com"> <a href="https://nextcloud.com">
<figure> <figure>
<img src="/pins/nextcloud.gif"></img> <img src="/pins/nextcloud.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://librewolf.net"> <a href="https://librewolf.net">
<figure> <figure>
<img src="/pins/firefox.gif"></img> <img src="/pins/firefox.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://geti2p.net"> <a href="https://geti2p.net">
<figure> <figure>
<img src="/pins/i2p.gif"></img> <img src="/pins/i2p.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://gnu.org"> <a href="https://gnu.org">
<figure> <figure>
<img src="/pins/jobsritchie.gif"></img> <img src="/pins/jobsritchie.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a> <a>
<figure> <figure>
<img src="/pins/google_stand.gif"></img> <img src="/pins/google_stand.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://librewolf.net"> <a href="https://librewolf.net">
<figure> <figure>
<img src="/pins/chrmevil.gif"></img> <img src="/pins/chrmevil.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
</div> </div>
@ -130,57 +132,57 @@
<div class="site-footer-content inner mobile-hide"> <div class="site-footer-content inner mobile-hide">
<a href="https://joinmastodon.org"> <a href="https://joinmastodon.org">
<figure> <figure>
<img src="/pins/f_ckfb.gif"></img> <img src="/pins/f_ckfb.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://mumble.info"> <a href="https://mumble.info">
<figure> <figure>
<img src="/pins/discord-no-way.gif"></img> <img src="/pins/discord-no-way.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="/pgp.txt"> <a href="/pgp.txt">
<figure> <figure>
<img src="/pins/pgp-now.gif"></img> <img src="/pins/pgp-now.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="/contact"> <a href="/contact">
<figure> <figure>
<img src="/pins/xmpp.gif"></img> <img src="/pins/xmpp.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="/donate"> <a href="/donate">
<figure> <figure>
<img src="/pins/monero-now.gif"></img> <img src="/pins/monero-now.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://librewolf.net"> <a href="/blinky">
<figure> <figure>
<img src="/pins/anythingbutchrome.gif"></img> <img src="/pins/anythingbutchrome.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="/rss.xml"> <a href="/rss.xml">
<figure> <figure>
<img src="/pins/rss.gif"></img> <img src="/pins/rss.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://archlinux.org"> <a href="https://archlinux.org">
<figure> <figure>
<img src="/pins/win10no.gif"></img> <img src="/pins/win10no.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a> <a>
<figure> <figure>
<img src="/pins/seedyourtorrents.gif"></img> <img src="/pins/seedyourtorrents.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://kde.org"> <a href="https://kde.org">
<figure> <figure>
<img src="/pins/knbutton.gif"></img> <img src="/pins/knbutton.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://landchad.net"> <a href="https://landchad.net">
<figure> <figure>
<img src="/pins/landchad.gif"></img> <img src="/pins/landchad.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
</div> </div>
@ -190,59 +192,59 @@
</div> </div>
<div class="site-footer-content inner mobile-hide"> <div class="site-footer-content inner mobile-hide">
<a href="https://apache.org"> <a>
<figure> <figure>
<img src="/pins/apache-powered.gif"></img> <img src="/pins/tiktok.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://fedidb.org"> <a href="https://fedidb.org">
<figure> <figure>
<img src="/pins/fediverse.gif"></img> <img src="/pins/fediverse.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://dreaming.gianmarco.gg"> <a href="https://dreaming.gianmarco.gg">
<figure> <figure>
<img src="/pins/dreams.gif"></img> <img src="/pins/dreams.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="/socials"> <a href="/socials">
<figure> <figure>
<img src="/pins/soulseek.gif"></img> <img src="/pins/soulseek.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a> <a href="https://razorback95.com/resources/videos/video-260">
<figure> <figure>
<img src="/pins/winxp.gif"></img> <img src="/pins/winxp.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="http://npzqzzlftquidpczleveobajpkgjvszhny23eqot733ea34mxovxgiqd.onion/"> <a href="http://npzqzzlftquidpczleveobajpkgjvszhny23eqot733ea34mxovxgiqd.onion/">
<figure> <figure>
<img src="/pins/tor.gif"></img> <img src="/pins/tor.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a> <a>
<figure> <figure>
<img src="/pins/mafumafu.gif"></img> <img src="/pins/mafumafu.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://keepassxc.org"> <a href="https://keepassxc.org">
<figure> <figure>
<img src="/pins/keepassxc.gif"></img> <img src="/pins/keepassxc.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a> <a>
<figure> <figure>
<img src="/pins/im-sad.gif"></img> <img src="/pins/im-sad.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a> <a>
<figure> <figure>
<img src="/pins/floppy.gif"></img> <img src="/pins/floppy.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://gohugo.io"> <a href="https://gohugo.io">
<figure> <figure>
<img src="/pins/ih8squarespace.gif"></img> <img src="/pins/ih8squarespace.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
</div> </div>
@ -254,57 +256,181 @@
<div class="site-footer-content inner mobile-hide"> <div class="site-footer-content inner mobile-hide">
<a href="https://fsf.org"> <a href="https://fsf.org">
<figure> <figure>
<img src="/pins/ihatems.gif"></img> <img src="/pins/ihatems.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a> <a>
<figure> <figure>
<img src="/pins/kawaiibutton.gif"></img> <img src="/pins/kawaiibutton.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a> <a>
<figure> <figure>
<img src="/pins/ppc.gif"></img> <img src="/pins/ppc.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a> <a href="https://libreboot.org">
<figure> <figure>
<img src="/pins/bestviewedcomp.gif"></img> <img src="/pins/libreboot.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://gnu.org"> <a href="https://gnu.org">
<figure> <figure>
<img src="/pins/gnu.gif"></img> <img src="/pins/gnu.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://lbry.org"> <a href="https://lbry.org">
<figure> <figure>
<img src="/pins/lbry.gif"></img> <img src="/pins/lbry.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://kernel.org"> <a href="https://kernel.org">
<figure> <figure>
<img src="/pins/linuxnow.gif"></img> <img src="/pins/linuxnow.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://openbsd.org"> <a href="https://openbsd.org">
<figure> <figure>
<img src="/pins/openbsdart.gif"></img> <img src="/pins/openbsdart.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a> <a>
<figure> <figure>
<img src="/pins/fspeech.gif"></img> <img src="/pins/fspeech.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a href="https://defectivebydesign.org"> <a href="https://defectivebydesign.org">
<figure> <figure>
<img src="/pins/itoddler.gif"></img> <img src="/pins/itoddler.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
<a> <a>
<figure> <figure>
<img src="/pins/ralseismokingadart.gif"></img> <img src="/pins/ralseismokingadart.gif" loading="lazy"></img>
</figure>
</a>
</div>
<div class="site-footer-content inner mobile-hide">
<p> </p>
</div>
<div class="site-footer-content inner mobile-hide">
<a href="https://demorianesimo.org">
<figure>
<img src="/pins/demorbtn.gif" loading="lazy"></img>
</figure>
</a>
<a href="https://matrix.org">
<figure>
<img src="/pins/matrix.gif" loading="lazy"></img>
</figure>
</a>
<a href="https://archlinux.org">
<figure>
<img src="/pins/archlinux.gif" loading="lazy"></img>
</figure>
</a>
<a>
<figure>
<img src="/pins/3dot5mmfc-button.gif" loading="lazy"></img>
</figure>
</a>
<a href="https://silk.ms">
<figure>
<img src="/pins/silkms.gif" loading="lazy"></img>
</figure>
</a>
<a>
<figure>
<img src="/pins/desktopviewing.gif" loading="lazy"></img>
</figure>
</a>
<a>
<figure>
<img src="/pins/srgb-now.png" loading="lazy"></img>
</figure>
</a>
<a>
<figure>
<img src="/pins/contains-java.png" loading="lazy"></img>
</figure>
</a>
<a href="https://gianmarco.gg/memes/ubuntu-is-stable">
<figure>
<img src="/pins/frees.gif" loading="lazy"></img>
</figure>
</a>
<a href="https://godotengine.org">
<figure>
<img src="/pins/godot.gif" loading="lazy"></img>
</figure>
</a>
<a>
<figure>
<img src="/pins/2001.gif" loading="lazy"></img>
</figure>
</a>
</div>
<div class="site-footer-content inner mobile-hide">
<p> </p>
</div>
<div class="site-footer-content inner mobile-hide">
<a>
<figure>
<img src="/pins/antinft.gif" loading="lazy"></img>
</figure>
</a>
<a href="https://ublockorigin.com/">
<figure>
<img src="/pins/ublock-now.png" loading="lazy"></img>
</figure>
</a>
<a>
<figure>
<img src="/pins/tired.gif" loading="lazy"></img>
</figure>
</a>
<a href="https://yesterweb.org/no-to-web3/">
<figure>
<img src="/pins/web3.gif" loading="lazy"></img>
</figure>
</a>
<a>
<figure>
<img src="/pins/raspberryheaven.png" loading="lazy"></img>
</figure>
</a>
<a href="https://yesterweb.org">
<figure>
<img src="/pins/yesterweb.gif" loading="lazy"></img>
</figure>
</a>
<a>
<figure>
<img src="/pins/kromernow.png" loading="lazy"></img>
</figure>
</a>
<a href="https://saintpepsi.bandcamp.com">
<figure>
<img src="/pins/saintpepsi.gif" loading="lazy"></img>
</figure>
</a>
<a>
<figure>
<img src="/pins/y2k.png" loading="lazy"></img>
</figure>
</a>
<a href="https://static.gianmarco.gg/gcpm.png">
<figure>
<img src="/pins/piracy.gif" loading="lazy"></img>
</figure>
</a>
<a>
<figure>
<img src="/pins/timmerda.gif" loading="lazy"></img>
</figure> </figure>
</a> </a>
</div> </div>

View File

@ -5,15 +5,15 @@
<header class="site-header"> <header class="site-header">
{{- partial "site-header.html" $ -}} {{- partial "site-header.html" $ -}}
{{- partial "header-background.html" $ -}} <style type="text/css">
.responsive-header-img {
background-color: #1e1e1e;
}
</style>
<div class="outer site-header-background responsive-header-img fadein no-image">
<div class="inner site-header-content-list"> <div class="inner site-header-content-list">
<h1 class="site-title">{{ .Title }}</h1> <h1 class="site-title">{{ .Title }}</h1>
<h2 class="site-description"> <h2 class="site-description">{{ len .Pages }} post{{ if gt (len .Pages) 1 }}s{{ end }}
{{ if .Param "description" }}
{{ else }}
A collection of {{ len .Pages }} post{{ if gt (len .Pages) 1 }}s{{ end }}
{{ end }}
</h2> </h2>
</div> </div>
</div> </div>

View File

@ -19,6 +19,7 @@
</figure> </figure>
{{ end }} {{ end }}
{{ if ne .Params.rss_ignore true }}<p class="breadcrumbs"><b><a href="{{ .CurrentSection.Permalink }}">{{ .Section }}</a></b> <a class="breadcrumbs-slash">/</a> <b>{{ .File.BaseFileName }}</b></p>{{ end }}
<h1 class="post-full-title">{{ .Title }}</h1> <h1 class="post-full-title">{{ .Title }}</h1>
{{ if .Param "description" }} {{ if .Param "description" }}
@ -34,10 +35,10 @@
<time class="byline-meta-date" datetime="{{.Date.Format "2006-31-01"}}"><svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -900 960 960" width="16" fill="currentColor"><path d="M180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-60h65v60h340v-60h65v60h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Zm0-490h600v-130H180v130Zm0 0v-130 130Zm300 230q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-160 0q-17 0-28.5-11.5T280-440q0-17 11.5-28.5T320-480q17 0 28.5 11.5T360-440q0 17-11.5 28.5T320-400Zm320 0q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-160 0q-17 0-28.5-11.5T280-280q0-17 11.5-28.5T320-320q17 0 28.5 11.5T360-280q0 17-11.5 28.5T320-240Zm320 0q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z"/></svg> {{.Date.Format "2 January 2006"}}</time> <time class="byline-meta-date" datetime="{{.Date.Format "2006-31-01"}}"><svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -900 960 960" width="16" fill="currentColor"><path d="M180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-60h65v60h340v-60h65v60h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Zm0-490h600v-130H180v130Zm0 0v-130 130Zm300 230q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-160 0q-17 0-28.5-11.5T280-440q0-17 11.5-28.5T320-480q17 0 28.5 11.5T360-440q0 17-11.5 28.5T320-400Zm320 0q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-160 0q-17 0-28.5-11.5T280-280q0-17 11.5-28.5T320-320q17 0 28.5 11.5T360-280q0 17-11.5 28.5T320-240Zm320 0q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z"/></svg> {{.Date.Format "2 January 2006"}}</time>
{{ if ne .Lastmod .Date }}<span class="byline-reading-time"><span class="bull">&bull;</span> <time class="byline-meta-date" datetime="{{.Date.Format "2006-31-01"}}"><svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -900 960 960" width="16" fill="currentColor"><path d="M180-180h44l443-443-44-44-443 443v44Zm614-486L666-794l42-42q17-17 42-17t42 17l44 44q17 17 17 42t-17 42l-42 42Zm-42 42L248-120H120v-128l504-504 128 128Zm-107-21-22-22 44 44-22-22Z"/></svg> {{.Lastmod.Format "2 January 2006"}}</time>{{ end }} {{ if ne .Lastmod .Date }}<span class="byline-reading-time"><span class="bull">&bull;</span> <time class="byline-meta-date" datetime="{{.Date.Format "2006-31-01"}}"><svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -900 960 960" width="16" fill="currentColor"><path d="M180-180h44l443-443-44-44-443 443v44Zm614-486L666-794l42-42q17-17 42-17t42 17l44 44q17 17 17 42t-17 42l-42 42Zm-42 42L248-120H120v-128l504-504 128 128Zm-107-21-22-22 44 44-22-22Z"/></svg> {{.Lastmod.Format "2 January 2006"}}</time>{{ end }}
<span class="byline-reading-time"><span class="bull">&bull;</span> <svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -900 960 960" width="16" fill="currentColor"><path d="m627-287 45-45-159-160v-201h-60v225l174 181ZM480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-82 31.5-155t86-127.5Q252-817 325-848.5T480-880q82 0 155 31.5t127.5 86Q817-708 848.5-635T880-480q0 82-31.5 155t-86 127.5Q708-143 635-111.5T480-80Zm0-400Zm0 340q140 0 240-100t100-240q0-140-100-240T480-820q-140 0-240 100T140-480q0 140 100 240t240 100Z"/></svg> {{ .ReadingTime }} min read</span> <span class="byline-reading-time"><span class="bull">&bull;</span> <svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -900 960 960" width="16" fill="currentColor"><path d="m627-287 45-45-159-160v-201h-60v225l174 181ZM480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-82 31.5-155t86-127.5Q252-817 325-848.5T480-880q82 0 155 31.5t127.5 86Q817-708 848.5-635T880-480q0 82-31.5 155t-86 127.5Q708-143 635-111.5T480-80Zm0-400Zm0 340q140 0 240-100t100-240q0-140-100-240T480-820q-140 0-240 100T140-480q0 140 100 240t240 100Z"/></svg> {{ .ReadingTime }} min read</span>
<span class="byline-reading-count"><span class="bull">&bull;</span> <svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -900 960 960" width="16" fill="currentColor"><path d="M480-160q-48-38-104-59t-116-21q-42 0-82.5 11T100-198q-21 11-40.5-1T40-234v-482q0-11 5.5-21T62-752q46-24 96-36t102-12q58 0 113.5 15T480-740v506q51-33 107-49.5T700-300q36 0 78.5 7t81.5 29v-505q9.886 3.75 19.443 7.875Q889-757 898-752q10 6 16 15.677 6 9.678 6 20.323v482q0 23-19.5 35t-40.5 1q-37-20-77.5-31T700-240q-60 0-116 21t-104 59Zm60-167v-353l260-260v387L540-327Zm-120 63v-439q-34-19-79-28t-81-9q-47 0-87.5 10T100-704.467V-264q35-17 75.5-26.5t85-9.5q44.5 0 84.5 9.5t75 26.5Zm0 0v-439 439Z"/></svg> {{ .WordCount }} words</span> <span class="byline-reading-count"><span class="bull">&bull;</span> <svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -960 960 960" width="16" fill="currentColor"><path d="M480-160q-48-38-104-59t-116-21q-42 0-82.5 11T100-198q-21 11-40.5-1T40-234v-482q0-11 5.5-21T62-752q46-24 96-36t102-12q58 0 113.5 15T480-740v506q51-33 107-49.5T700-300q36 0 78.5 7t81.5 29v-505q9.886 3.75 19.443 7.875Q889-757 898-752q10 6 16 15.677 6 9.678 6 20.323v482q0 23-19.5 35t-40.5 1q-37-20-77.5-31T700-240q-60 0-116 21t-104 59Zm60-167v-353l260-260v387L540-327Zm-120 63v-439q-34-19-79-28t-81-9q-47 0-87.5 10T100-704.467V-264q35-17 75.5-26.5t85-9.5q44.5 0 84.5 9.5t75 26.5Zm0 0v-439 439Z"/></svg> {{ .WordCount }} words</span>
{{ if isset .Params "license" }}<span class="byline-reading-count"><span class="bull">&bull;</span> <svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -960 960 960" width="16" fill="currentColor"><path d="M220-80q-24 0-42-18t-18-42v-680q0-24 18-42t42-18h361l219 219v521q0 24-18 42t-42 18H220Zm331-554v-186H220v680h520v-494H551ZM220-820v186-186 680-680Z"/></svg> <a href="/copyright">{{ .Params.license }}</a></span>{{ end }} {{ if isset .Params "license" }}<span class="byline-reading-count"><span class="bull">&bull;</span> <svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -930 960 960" width="16" fill="currentColor"><path d="M220-80q-24 0-42-18t-18-42v-680q0-24 18-42t42-18h361l219 219v521q0 24-18 42t-42 18H220Zm331-554v-186H220v680h520v-494H551ZM220-820v186-186 680-680Z"/></svg> <a href="/copyright">{{ .Params.license }}</a></span>{{ end }}
<span class="bull">&bull;</span> <svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -1050 960 960" width="16" fill="currentColor"><path d="M840-480 671-241q-13 18-31 29.5T600-200H180q-24.75 0-42.375-17.625T120-260v-440q0-24.75 17.625-42.375T180-760h420q22 0 40 11.5t31 29.5l169 239Zm-75 0L611-700H180v440h431l154-220Zm-585 0v220-440 220Z"/></svg>&nbsp;{{ range (.GetTerms "tags") }} <span class="bull">&bull;</span> <svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -960 960 960" width="16" fill="currentColor"><path d="M840-480 671-241q-13 18-31 29.5T600-200H180q-24.75 0-42.375-17.625T120-260v-440q0-24.75 17.625-42.375T180-760h420q22 0 40 11.5t31 29.5l169 239Zm-75 0L611-700H180v440h431l154-220Zm-585 0v220-440 220Z"/></svg>&nbsp;{{ range (.GetTerms "tags") }}
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>&nbsp;&nbsp; <a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>&nbsp;&nbsp;
{{ end }}</div> {{ end }}</div>
</section> </section>
@ -61,9 +62,9 @@
</article> </article>
{{ if ne .Params.rss_ignore true }} {{ if ne .Params.rss_ignore true }}
<h4>Comments</h4> <h4 class="comments-title">Comments</h4>
<small>Supports Markdown formatting. <a href="/tos">Terms of Service and Privacy Policy</a>.</small> <small>Supports Markdown formatting. <a href="/tos">Terms of Service and Privacy Policy</a>.</small>
<section id="isso-thread" data-isso-css-url="{{ .RelPermalink }}"><noscript><small>Javascript needs to be activated to view comments.</small></noscript></section> <section id="isso-thread" data-isso-css-url="{{ .RelPermalink }}"><noscript><br /><div id="banner"><span><small>Javascript must be enabled to see the comments.</small></span></div></noscript></section>
{{ end }} {{ end }}
</div> </div>
</main> </main>

View File

@ -15,7 +15,8 @@
Hi, I'm <font color="#EB4034">{{ $.Site.Title }}</font>. Hi, I'm <font color="#EB4034">{{ $.Site.Title }}</font>.
{{ end }} {{ end }}
</h1> </h1>
<h2 class="site-description fadein">I'm an <font color="#EB4034">artist</font>, <font color="#0171FF">designer</font>, <font color="#03B000">photographer</font> and <font color="#FFB002">libre advocate</font>.</h2> <h2 class="site-description fadein">Next branch, change this (index.html) and navlogo (config.toml) before merging into master.</h2>
<!--<h2 class="site-description fadein">I'm an <font color="#EB4034">artist</font>, <font color="#0171FF">designer</font>, <font color="#03B000">photographer</font> and <font color="#FFB002">libre advocate</font>.</h2>-->
<!-- This is the old way of getting the description, I had to hardcode it in order to apply color. --> <!-- This is the old way of getting the description, I had to hardcode it in order to apply color. -->
<!-- <h2 class="site-description">{{ $.Site.Params.description }}</h2> --> <!-- <h2 class="site-description">{{ $.Site.Params.description }}</h2> -->
@ -27,15 +28,60 @@
<main id="site-main" class="site-main outer"> <main id="site-main" class="site-main outer">
<div class="inner posts"> <div class="inner posts">
<div class="post-feed">
<!--<div id="banner"> <!--<div id="banner">
<span>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</span> <span><h2>Stop EU's eIDAS Article 45 proposal!</h2>
<p>The EU strikes once again, this time with a proposal to <b>force browsers to go through EU-approved certificate authorities and cryptographic keys</b> which allows governments to <b>intercept HTTP(S) traffic of all european citizens</b>. The middle man here would be ETSI, EU's IT standards body, which has <b>a worrysome track record</b> of creating compromised cryptographic standards and working with organizations involved in intercepting communications through backdoors.</p>
<p>To know more about this and to try stopping it, check the following websites:</p>
<ul>
<li><a href="https://last-chance-for-eidas.org/">last-chance-for-eidas.org</a> which is an open letter by Mozilla explaining the whole situation with extra links in it;</li>
<li><a href="https://eidas-open-letter.org/">eidas-open-letter.org</a> which is an open letter made by researchers and NGOs;</li>
<li><a href="https://www.computerweekly.com/news/366557952/EU-eIDAS-reforms-should-be-actively-resisted-say-experts">this article from ComputerWeekly</a> that does an in depth explaination of the proposal;</li>
<li><a href="https://www.jeremiahlee.com/posts/2023-eu-eidas-feedback/">this article from Jeremiah Lee</a> which gives you a quick link to email Romana Jerković, the MEP responsible for eIDAS, and a link to contact your country's MEPs.</li>
</ul>
<h2>Stop EU's Chat Control 2.0 law proposal!</h2>
<p>If you're an EU citizen like me, <b>your digital privacy as a whole is at risk</b> if this law passes. All online platforms (social media, messaging, etc.) would be forced to <b>implement client-side scanning for all text and media passing through them</b> and force age verification with a real ID. These checks will happen through a centralized entity that could be also <b>a great target for attacks</b> from bad actors. All of this in the name of "protecting children from predators", when there are other methods that are more effective and that do not contribute to the already very dystopic reality we live in.</p>
<p>To know more about this and to try stopping it, check the following websites:</p>
<ul>
<li><a href="https://stopchatcontrol.eu/">stopchatcontrol.eu</a> where you can get an email template to let your MEP know about this;</li>
<li><a href="https://stopscanningme.eu/">stopscanningme.eu</a> where you can sign a petition through <a href="https://edri.org/">EDRi</a>;</li>
<li><a href="https://www.patrick-breyer.de/en/posts/chat-control/">this article from Patrick Breyer</a> that goes into detail on the proposal and its potential consequences;</li>
<li><a href="https://balkaninsight.com/2023/09/25/who-benefits-inside-the-eus-fight-over-scanning-for-child-sex-content/">this article from BalkanInsight</a> exposing the entities who benefit commercially from this law.</li>
</ul></span>
</div>--> </div>-->
{{ $pages := site.RegularPages }}
{{ range $index, $element := $pages }}{{ if ne .Params.rss_ignore true }} <h1 class="makehead">I make <a style="color: #eb4034" href="/art">art</a>, <a style="color: #ffb002" href="/blog">blog posts</a>, <a style="color: #03b000" href="/design">designs</a>, <a style="color: #00e8f6" href="/software">software</a>, <a style="color: #0171ff" href="/videos">videos</a>, <a style="color: #ab09ff" href="/wallpapers">wallpapers</a> and <a style="color: #99e0ff" href="/other">more</a>.</h1><br />
{{ $pages := where .Site.Pages ".Params.rss_ignore" "ne" "true" }}
{{ $regpages := where .Site.RegularPages ".Params.rss_ignore" "ne" "true" }}
<h2 class="site-description">Recent content<a href="/all" style="font-size: .7em; float: right;">see more</a></h2>
<div class="post-feed">
{{ range $index, $element := ($regpages | first 3) }}
{{- partial "post-card.html" (dict "context" . "index" $index "home" $.IsHome) -}}
{{ end }}
</div>
<h2 class="site-description">Recent blog posts<a href="/blog" style="font-size: .7em; float: right;">see more</a></h2>
<div class="post-feed">
{{ range $index, $element := (where $pages "Section" "blog" | first 3) }}
{{- partial "post-card.html" (dict "context" . "index" $index "home" $.IsHome) -}}
{{ end }}
</div>
<h2 class="site-description">Random content<a href="/all" style="font-size: .7em; float: right;">see more</a></h2>
<div class="post-feed">
{{ range $index, $element := (shuffle $regpages | first 3) }}
{{- partial "post-card.html" (dict "context" . "index" $index "home" $.IsHome) -}}
{{ end }}
</div>
<!--<h2 class="site-description">My projects<a href="/tags/project" style="font-size: .7em; float: right;">see more</a></h2>
<div class="post-feed">
{{ range $index, $element := (where $pages "Params.tags" "intersect" (slice "project") | first 3) }}{{ if ne .Title "Projects" }}
{{- partial "post-card.html" (dict "context" . "index" $index "home" $.IsHome) -}} {{- partial "post-card.html" (dict "context" . "index" $index "home" $.IsHome) -}}
{{ end }}{{ end }} {{ end }}{{ end }}
</div> </div>-->
</div> </div>
</main> </main>

View File

@ -1,15 +1,6 @@
{{ if .Scratch.Get "background" }}
<style type="text/css">
.responsive-header-img {
background-image: url('{{ .Scratch.Get "background" }}');
}
</style>
<div class="outer site-header-background responsive-header-img">
{{ else }}
<style type="text/css"> <style type="text/css">
.responsive-header-img { .responsive-header-img {
background-image: url('/introbg.svg'); background-image: url('/introbg.svg');
} }
</style> </style>
<div class="outer site-header-background responsive-header-img fadein"> <div class="outer site-header-background responsive-header-img fadein">
{{ end }}

View File

@ -1,16 +1,16 @@
<article class="post-card post <article class="post-card post
{{ if not (.context.Param "thumbnail") }} no-image {{ if not (.context.Param "thumbnail") }} no-image
{{ else }} {{ else }}
{{ if (eq (mod .index 6) 0) }} post-card-large {{ end }} {{ if (eq (mod .index 6) 0) }} <!--post-card-large--> {{ end }}{{ .isLarge }}
{{ end }} "> {{ end }} ">
{{ if .context.Param "thumbnail" }} {{ if .context.Param "thumbnail" }}
<a class="post-card-image-link" href="{{ .context.RelPermalink }}"> <a class="post-card-image-link" href="{{ .context.RelPermalink }}">
<img class="post-card-image" src="{{ .context.Param "thumbnail" }}" alt="{{ .context.Title }}"/> <img class="post-card-image" src="{{ .context.Param "thumbnail" }}" alt="{{ .context.Title }}" loading="lazy"/>
</a> </a>
{{ else }} {{ else }}
<a class="post-card-image-link" href="{{ .context.RelPermalink }}"> <a class="post-card-image-link" href="{{ .context.RelPermalink }}">
<img class="post-card-image" src="/images/nothumb.svg" alt="{{ .context.Title }}"/> <img class="post-card-image" src="/images/nothumb.svg" alt="{{ .context.Title }}" loading="lazy"/>
</a> </a>
{{ end }} {{ end }}
@ -31,9 +31,16 @@
</a> </a>
<footer class="post-card-meta"> <footer class="post-card-meta">
<span class="post-card-byline-date"><time datetime="{{ .context.Date.Format "2006-31-01" }}">{{ .context.Date.Format "2 January 2006" }}</time> {{ if ne .context.Section "tags" }}
<span class="bull">&bull;</span> {{ .context.ReadingTime }} min read <span class="bull">&bull;</span> {{ range (.context.GetTerms "tags") }} <span class="post-card-byline-date">{{ if ne .isMoreCard "yes" }}<a href="{{ .context.CurrentSection.Permalink }}">{{ .context.Section }}</a> <span class="bull">&bull;</span> {{ end }}<time datetime="{{ .context.Date.Format "2006-31-01" }}">{{ .context.Date.Format "2 January 2006" }}</time>
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>&nbsp;&nbsp; {{ if ne .context.Lastmod .context.Date }}
<span class="bull">&bull;</span><span class="post-card-byline-date"><time datetime="{{ .context.Lastmod.Format "2006-31-01" }}"> <svg class="byline-meta-symbol" xmlns="http://www.w3.org/2000/svg" height="16" viewBox="0 -1000 960 960" width="16" fill="currentColor"><path d="M180-180h44l443-443-44-44-443 443v44Zm614-486L666-794l42-42q17-17 42-17t42 17l44 44q17 17 17 42t-17 42l-42 42Zm-42 42L248-120H120v-128l504-504 128 128Zm-107-21-22-22 44 44-22-22Z"/></svg> {{ .context.Lastmod.Format "2 January 2006" }}</time>
{{ end }}
{{ else }}
<span class="post-card-byline-date"><time datetime="{{ .context.Lastmod.Format "2006-31-01" }}">Last post from {{ .context.Lastmod.Format "2 January 2006" }}</time>
{{ end }}
{{ if ne .context.ReadingTime 0 }}<span class="bull">&bull;</span> {{ .context.ReadingTime }} min read <span class="bull">&bull;</span> {{ range (.context.GetTerms "tags") }}
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>&nbsp;&nbsp;{{ end }}
{{ end }}</span> {{ end }}</span>
</footer> </footer>

View File

@ -9,13 +9,31 @@
<!-- {{- partial "read-next.html" . -}} --> <!-- {{- partial "read-next.html" . -}} -->
{{ if and (.PrevInSection) (.NextInSection) }} <!-- if both exist, display both normal cards -->
{{ with .PrevInSection}} {{ with .PrevInSection}}
{{- partial "post-card.html" (dict "context" . "index" 1) -}} {{- partial "post-card.html" (dict "context" . "index" 1 "isMoreCard" "yes") -}}
{{end}} {{end}}
{{ with .NextInSection}} {{ with .NextInSection}}
{{- partial "post-card.html" (dict "context" . "index" 1) -}} {{- partial "post-card.html" (dict "context" . "index" 1 "isMoreCard" "yes") -}}
{{end}} {{end}}
{{ else }} <!-- otherwise check for each one and print a large card for whichever one exists -->
{{ if .PrevInSection }}
{{ with .PrevInSection}}
{{- partial "post-card.html" (dict "context" . "index" 1 "isMoreCard" "yes" "isLarge" "post-card-large") -}}
{{end}}
{{ end }}
{{ if .NextInSection }}
{{ with .NextInSection}}
{{- partial "post-card.html" (dict "context" . "index" 1 "isMoreCard" "yes" "isLarge" "post-card-large") -}}
{{end}}
{{ end }}
{{ end }}
</div> </div>
</div> </div>
</aside> </aside>

View File

@ -0,0 +1,5 @@
<div id="download-banner">
<span><svg xmlns="http://www.w3.org/2000/svg" height="32" viewBox="0 -950 960 960" width="32" fill="white"><path d="M480-320 280-520l56-58 104 104v-326h80v326l104-104 56 58-200 200ZM240-160q-33 0-56.5-23.5T160-240v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-160H240Z"/></svg><a href="{{ index .Params 0 }}"><h4>{{ index .Params 1 }}</h4></a>
<small>{{ index .Params 2 }}</small>
</span>
</div>

View File

@ -1,6 +1,6 @@
<div class="embed video-player"> <div class="embed video-player">
<noscript><h3>The video players don't work without JavaScript enabled!</h3><br></br></noscript> <noscript><div id="banner"><span><small>Javascript must be enabled for the video players to work.</small></span></div></noscript>
<iframe class="youtube-player" type="text/html" width="700" height="385" src="/ytr.html?yt={{ index .Params 0 }}&ody={{ index .Params 1 }}&pt={{ index .Params 2 }}" allowfullscreen frameborder="0"></iframe> <iframe class="youtube-player" type="text/html" width="100%" height="385" src="/ytr.html?yt={{ index .Params 0 }}&ody={{ index .Params 1 }}&pt={{ index .Params 2 }}" allowfullscreen frameborder="0"></iframe>
<p></p> <p></p>
</div> </div>