Compare commits

..

8 Commits

Author SHA1 Message Date
754347facb fix email
All checks were successful
Build / publish (push) Successful in 49s
2024-10-26 22:33:18 +02:00
df811b3b16 remove club cat url
Some checks are pending
Build / publish (push) Waiting to run
2024-10-26 22:32:49 +02:00
23b175c34c add custom domain email
All checks were successful
Build / publish (push) Successful in 1m7s
2024-09-04 22:48:49 +02:00
51e2ce5a53 add club penguin post
All checks were successful
Build / publish (push) Successful in 1m1s
2024-07-21 04:55:58 +02:00
5cb7741903 add posthog analytics
All checks were successful
Build / publish (push) Successful in 52s
2024-07-14 18:17:08 +02:00
629f465b26 remove a href attributeify
All checks were successful
Build / publish (push) Successful in 50s
2024-07-14 17:51:20 +02:00
7d8d0b5d37 add attributes to a tags
All checks were successful
Build / publish (push) Successful in 47s
2024-07-14 17:03:15 +02:00
a6f22aa3be add reject subs post 2024-07-14 17:03:08 +02:00
13 changed files with 258 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

BIN
public/blog/club-p/demo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

BIN
public/blog/subs/chains.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,56 @@
---
---
<script is:inline>
!(function (t, e) {
var o, n, p, r;
e.__SV ||
((window.posthog = e),
(e._i = []),
(e.init = function (i, s, a) {
function g(t, e) {
var o = e.split(".");
2 == o.length && ((t = t[o[0]]), (e = o[1])),
(t[e] = function () {
t.push([e].concat(Array.prototype.slice.call(arguments, 0)));
});
}
((p = t.createElement("script")).type = "text/javascript"),
(p.async = !0),
(p.src = s.api_host + "/static/array.js"),
(r = t.getElementsByTagName("script")[0]).parentNode.insertBefore(
p,
r
);
var u = e;
for (
void 0 !== a ? (u = e[a] = []) : (a = "posthog"),
u.people = u.people || [],
u.toString = function (t) {
var e = "posthog";
return (
"posthog" !== a && (e += "." + a), t || (e += " (stub)"), e
);
},
u.people.toString = function () {
return u.toString(1) + ".people (stub)";
},
o =
"capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys getNextSurveyStep onSessionId setPersonProperties".split(
" "
),
n = 0;
n < o.length;
n++
)
g(u, o[n]);
e._i.push([i, s, a]);
}),
(e.__SV = 1));
})(document, window.posthog || []);
posthog.init("phc_LaGA9fvYGcEMPtMiJRIAwFsTMyaZaQhtA578GMvT7L7", {
api_host: "https://eu.i.posthog.com",
person_profiles: "identified_only",
});
</script>

View File

@@ -1,5 +1,7 @@
---
import { SEO } from "astro-seo";
import Posthog from "../components/Posthog.astro";
const { frontmatter } = Astro.props;
import "./MarkdownLayout.css";
---
@@ -41,5 +43,6 @@ import "./MarkdownLayout.css";
<footer>
<p class="text-secondary text-center">&copy; 2024 Zvonimir Rudinski</p>
</footer>
<Posthog />
</body>
</html>

View File

@@ -17,3 +17,15 @@
#content em {
@apply italic text-gray-300;
}
#content a {
@apply text-secondary underline;
}
#content blockquote {
@apply bg-gray-800 text-gray-300 border-l-4 border-secondary p-4 my-4;
}
#content cite {
@apply text-secondary;
}

View File

@@ -1,6 +1,7 @@
---
import { SEO } from "astro-seo";
import { format } from "date-fns";
import Posthog from "../../components/Posthog.astro";
const posts = await Astro.glob("./posts/*.md");
@@ -68,5 +69,6 @@ posts.sort((a, b) => {
<footer class="mt-12">
<p class="text-secondary text-center">&copy; 2024 Zvonimir Rudinski</p>
</footer>
<Posthog />
</body>
</html>

View File

@@ -0,0 +1,69 @@
---
layout: ../../../layouts/MarkdownLayout.astro
title: 'where are you, club penguin?'
pubDate: 2024-07-21
description: 'A nostalgic piece about Club Penguin, a game that was a big part of my childhood. Also, a mini announcement at the end.'
---
<blockquote>
I honestly, with all my heart, think that Zvonimir just got stuck in 2013<br />
and never acknowledged the fact that he's not 13 anymore.
</blockquote>
<cite>~ A friend of mine</cite>
What is this post about? Well, it's about a game that was a big part of my childhood, and probably the childhood of many others as well.
The game ~is~ was called Club Penguin.
![Club Penguin](/blog/club-p/banner.webp)
If you do not remember Club Penguin, chances are you were not a child in the 2000s. <small>(you're either too old or too young)</small>
Club Penguin was a virtual world where you could create your own penguin, decorate your igloo, play games, and chat with other players.
The games ranged from anything like sled racing to card games, and they were all fun in their own way <small>(The Card-Jitsu was my favorite)</small>.
You could earn coins by playing games, and you could use those coins to buy clothes, furniture, and other items for your penguin.
The only downside was that you had to be a member to access all the features, but even without a membership, the game was still fun.
I could still buy an item or two for my penguin, and I could still play most of the games. <small>(There was even a complete quest line about being a secret agent!)</small>
It was a game that was simple, yet fun, and it was a game that I spent countless hours playing while blasting my favorite artists!
If you're wondering, my favorite artists were (and still are) Avril Lavigne, Green Day, Blink-182 and Nirvana. (<small>Yes, I was an edgy kid</small>)
Keep in mind, this was before I discovered Pink Floyd, which I consider the greatest band of all time. (<small>Yes, I'm still an edgy kid</small>)
# Unfortunately,
Club Penguin was shut down in 2017, and it was replaced by a mobile version called Club Penguin Island. But it was not the same.
The original Club Penguin was the best, and nothing can replace it.
Oh, and also the mobile version was shut down in 2018, so there's that.
![Dojo](/blog/club-p/dojo.webp)
## Now, where are you, Club Penguin?
I know that the original feeling might never come back, but there are some private servers that are trying to bring back the game.
I won't mention any of them here, but if you're interested, you can find them with a simple Google search.
Since I'm talking about Club Penguin, I might as well mention that I'm working on a small project related to the game.
## Well, kind of.
The project is not a game yet, and it's VERY lacking in features, but it's a start.
I cannot overstate how much I love Club Penguin, and I wanted to create something that would bring back some of the nostalgia.
So, I started creating... *(drum roll...)*
# Club Cat... *(crickets...)*
I know, I know, the name is a blatant rip-off of Club Penguin, but I couldn't think of anything better <small>(for now)</small>.
![Project](/blog/club-p/demo.png)
The project if we can even call it that, is a simple chat room with cats instead of penguins.
Nothing is animated, nor there is any multiplayer for that matter, but it's a start.
You can click around the canvas and talk to yourself, but that's about it.
I'm planning to add more features in the future, but I'm not sure when that will happen, as I have other work to tend to as well.

View File

@@ -14,6 +14,6 @@ If you don't like the content, remember that you can always close the tab and go
At some point I'd also like to add a comments section to the posts, but I'm too lazy to do that right now. <small>(I'm sorry)</small>
I hope you enjoy the content I post here, and if you have any suggestions or feedback, feel free to contact me! <small>(zvonimir@mailfence.com)</small>
I hope you enjoy the content I post here, and if you have any suggestions or feedback, feel free to contact me! <small>(zvonimir@zvonimir.xyz)</small>
<small>PS: The website is not hosted on GitHub Pages anymore :)</small>

View File

@@ -0,0 +1,110 @@
---
layout: ../../../layouts/MarkdownLayout.astro
title: 'reject subscription services, embrace freedom'
pubDate: 2024-07-14
description: 'An insight into services I use to ditch Spotify and Netflix'
---
Do you like content? I'm sure you do!
But do you like paying every month for it? I'm sure you don't! <small>(Neither do I.)</small>
## Story time
I remember when I was a kid, my mom would take me to a kiosk after my dentist appointments, and I would get to pick a DVD to bring home.
Sometimes I would like the cartoon, sometimes I wouldn't. But it was always a surprise, and I loved that.
As the famous saying goes, "The cartoon was..."
<iframe width="560" height="315" src="https://www.youtube.com/embed/QJHUbtR0yI8?si=VduMtIFJom_PdKNa" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
I didn't have a computer back then, so I would watch them on a DVD player I had hooked up to my TV.
<small>(Thank you mom and dad for paying out of your asses for that!)</small>
## The Problem
Nowadays, we have services like Netflix, Spotify, and Amazon Prime Video. They offer a wide range of content, but they come at a cost.
First and foremost, you don't even own the content! You're just renting it for a monthly fee.
What happens if Netflix decides to randomly remove your favorite show/movie?
What if Spotify decides to up their prices?
You're effectively a hostage and have no say in the matter.
At least with DVDs and other physical media, I don't have to worry about that. I paid for it, and it's mine.
Also, according to Netflix, I am not allowed to share my account with my friends. Something I don't have to worry about with physical media.
<small>(I'm still waiting for my friend to return my copy of "David, el Gnomo")</small>
## The Solution
So, what can you do?
Well, you can always use the DVD player you have lying around, but physical media has its own set of problems.
You have to store them, they can get scratched, and they can get lost.
So what do we do?
# We embrace freedom!
![We break these chains!](/blog/subs/chains.jpg)
Now, I'm not saying that you should pirate content. That's illegal and wrong.
I admit that I have done it in the past, when I was a kid, and my parents didn't quite understand the concept of "dishing out money for something that's free on the internet".
But I have since learned the error of my ways and have repented.
I'll share with you a list of free alternatives I use myself but feel free to experiment and find what works best for you.
## Movies, TV Shows and Music
For movies, TV shows, and music, I use [Jellyfin](https://jellyfin.org/).
It's free, open-source, has a Docker image, and it's pretty easy to set up.
It has a web interface, Android, iOS and even Tizen apps <small>(though you have to compile and deploy the Tizen app yourself)</small>.
I won't delve into the details of how to set it up, but there are plenty of guides out there that can help you.
I have a home server that I use to host it <small>(among other things)</small>, and I can access it from anywhere in the world.
The only downside is that you have to take care of setting it up and maintaining it yourself, but at least I don't have to worry about my favorite show being removed.
## Books
Now, I'll admit that I don't read as much as I did in the past, but when I do, I just open the PDF in my browser.
I know, I know, you were probably expecting me to say "I use [Calibre](https://calibre-ebook.com/)" or something like that, but I don't.
I'm a simple man, and I like to keep things simple.
Hell, even this blog post is just a Markdown file!
If I have a physical book lying around, I just take it to a photocopy store and have them send me a PDF when they're done.
Plus, there are plenty of free PDFs out there. Some of these have physical copies, you can buy if you want to support the author.
Lately, I've been reading [Hypermedia Systems](https://hypermedia.systems/), and I have to say, it's a pretty good read.
## Extra: Git
Yeah, yeah, I know. Git is not really a content service, but it's a tool that I use every day.
I know that GitHub, GitLab, and Bitbucket are free, but I still like to control my own repositories.
While I do use all three of them at work, I have a [Gitea](https://gitea.io/) instance running on my server, and I use it for all my projects.
It's free, open-source and it even supports CI/CD pipelines, which is pretty cool.
Like with [Jellyfin](https://jellyfin.org/), I have to take care of setting it up and maintaining it, but at least I don't have to worry about my code being removed or locked by GitHub, because some idiot used AI to find a bug, that's not even there.
## Conclusion
In the end, you have to decide what works best for you.
If you like the convenience of Netflix, Spotify, and Amazon Prime Video, then by all means, keep using them.
But if you're like me and you want to break free from the chains of subscription services, then I hope this list helps you.

View File

@@ -3,6 +3,7 @@ import { SEO } from "astro-seo";
import { Icon } from "astro-icon/components";
import Section from "../components/Section.astro";
import { projects } from "../projects";
import Posthog from "../components/Posthog.astro";
---
<html lang="en">
@@ -79,7 +80,7 @@ import { projects } from "../projects";
<div class="flex gap-4 mt-4">
<abbr title="Send me an email">
<a
href="mailto:zvonimir@mailfence.com"
href="mailto:zvonimir@zvonimir.xyz"
class="opacity-50 hover:opacity-100 hover:text-secondary"
>
<Icon name="mdi:email" size={32} />
@@ -127,5 +128,6 @@ import { projects } from "../projects";
window.addEventListener("DOMContentLoaded", onMount);
</script>
<Posthog />
</body>
</html>

View File

@@ -5,6 +5,7 @@ import { SEO } from "astro-seo";
import { getProject, projects } from "../../projects";
import Section from "../../components/Section.astro";
import { Icon } from "astro-icon/components";
import Posthog from "../../components/Posthog.astro";
export const getStaticPaths = (() => {
return projects.map(({ id }) => ({
@@ -110,5 +111,6 @@ const image = (await import(`../../assets/${project.id}.png`)).default;
<footer class="mt-12">
<p class="text-secondary text-center">&copy; 2024 Zvonimir Rudinski</p>
</footer>
<Posthog />
</body>
</html>