💾 Archived View for getimiskon.xyz › rss.xml captured on 2024-08-18 at 17:31:22.
-=-=-=-=-=-=-
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"> <channel> <title>getimiskon's space</title> <description> getimiskon's RSS feed </description> <language>en-us</language> <link>https://getimiskon.xyz/rss.xml</link> <atom:link href="https://getimiskon.xyz/rss.xml" rel="self" type="application/rss+xml" /> <image> <title>getimiskon's space</title> <url>https://getimiskon.xyz/favicon.png</url> <link>https://getimiskon.xyz/rss.xml</link> </image> <item> <title>Making web buttons is fun</title> <guid>https://getimiskon.xyz/posts/2024/2024-02-06.html</guid> <pubDate>Tue, 06 Feb 2024 23:55:00 +0200</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2024/2024-02-06.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p> Something I have recently worked on are a bunch of 88x31 buttons for the <a href="https://512kb.club">512kb club</a>. They aren't entirely my creation, but rather a collaborative work, which everyone involved seems to have enjoyed. I personally enjoy making web buttons as well. It's interesting what can be made in such a limited space. It's like a form of pixel art if you think about it.</p> <p> A few days ago, I collaborated with <a href="https://daudix.codeberg.page">Daudix</a> in a small project. In a Matrix chat we happen to be at, he posted a bunch of web buttons for the 512kb club, made in Aseprite. While I liked the idea, the original design of the buttons was looking a bit too plain to me.</p> <br /> <div class=center> <img src="https://getimiskon.xyz/files/images/posts/2024-02-06/512kb-green-team.gif" /><img src="https://getimiskon.xyz/files/images/posts/2024-02-06/512kb-orange-team.gif" /><img src="https://getimiskon.xyz/files/images/posts/2024-02-06/512kb-blue-team.gif" /> <p>The original designs made by Daudix</p> </div> <br /> <p>So I decided to experiment with the design a bit. I started GIMP, which is the tool of my choice and started tweaking. First, I made the buttons more even, by centering the split. Then, I changed the text. The text on the left side of the button looked alright to me, so I decided to change the justification of the text on the right side to match the other side.</p> <p>Then I started tweaking the colors. While black and white don't look that bad on such a small button, it's not ideal for such a colorful button. So I decided to change it. At first, I had to change the color settings from Indexed to RGB. I think Aseprite exported the buttons with a specific palette, which didn't work with what I was going to do. The way I work with the colors is that I use a lighter variant of the main colors on the highlights at the top-left side and a darker variant on the shadows, at the bottom-right side.</p> <br /> <div class=center> <img src="https://getimiskon.xyz/files/images/posts/2024-02-06/512kb-green-team-new.gif" /><img src="https://getimiskon.xyz/files/images/posts/2024-02-06/512kb-orange-team-new.gif" /><img src="https://getimiskon.xyz/files/images/posts/2024-02-06/512kb-blue-team-new.gif" /> <p>My tweaked version of the original buttons</p> </div> <br /> <p>So, I posted the buttons, and Daudix liked my tweaks. After some more tweaking, he created the pull request for the buttons on GitHub, where I was credited as well. We didn't wait too long, and we got a very nice response from the maintainer of the 512kb club.</p> <br /> <img src="https://getimiskon.xyz/files/images/posts/2024-02-06/github-response.gif" class=center /> <br /> <p>What I got from this, is that if you have something good to contribute to a project, even a small change like improving web buttons or contributing snippets of code, do it. Even that can be appreciated by people.</p> ]]> </description> </item> <item> <title>A retrospective for 2023</title> <guid>https://getimiskon.xyz/posts/2023/2023-12-31.html</guid> <pubDate>Sun, 31 Dec 2023 22:15:00 +0200</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2023/2023-12-31.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>Another year is at its end, and as usual, I decided to write a small retrospective for this year. While I feel like having a bunch of things to write about, I'll keep it short. So, this year has been a good one for many reasons. My personal life has been improved since last year, as well as the website has grown to something much better.</p> <p>As I wrote above, my personal life has been improving. Since September, I moved to a new place with my family and started attending some software development classes, after two years of dropping out of university. It's not the best situation, but it definitely isn't the worst. Also I have been improving my cooking skills. They aren't that great, as I'm still a newbie, but I'm improving myself as time passes. At least my mom enjoyed the food I made, which is an achievement to me.</p> <p> The biggest changes so far are on the website. This year I broke the barrier of 4 posts a year. A very slight improvement on writing. It has been a year since I've been running the online services. At first, I've made them as personal, since I wasn't sure how long I could keep the VPS running. Keeping it up for that long wasn't something I would expect when I began, but it happened, even without a proper income. Just with some support from my family.</p> <p> Over time, I decided to open the services up to friends. That eventually made me realize that it wasn't something just for myself, but for a small community. And that showed at the most difficult times. During the first month of moving, I ran out of money for keeping the VPS up. I decided to ask for help for once, something I rarely do. Fortunately, I got a lot of support from people, which was something I didn't expect. That made me realize that this place, which started as a personal project, isn't just something personal anymore, but it became a small community.</p> <p> For 2024, I don't expect a lot to happen. What I want is to keep things running as they are, write more and get better on those. I want to improve my system administration skills, my (web) development skills, as well as my audio production skills for my radio shows (despite taking a break for some time). As for myself, I'm trying to improve my current situation by looking for a decent job and trying to become more independent in my life.</p> <p> If you read to this point, thank you, everyone who helped me to make this happen, both on technical things and the users. Without you, this place wouldn't be as it is.</p> <p> If you want to help supporting me (and can do so, of course), consider making a donation at <a href="https://liberapay.com/getimiskon">Liberapay</a> to help me keep the lights on.</a> <p>Happy new year!</p> ]]> </description> </item> <item> <title>Text web browsers</title> <guid>https://getimiskon.xyz/posts/2023/2023-12-04.html</guid> <pubDate>Mon, 04 Dec 2023 22:30:00 +0200</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2023/2023-12-04.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>These days I have been messing with text based web browsers. At first it was just curiosity and something to mess with while I have to listen to the theoretical stuff in class (I've recently started attending classes in a trade school). But I decided to give them a try to read whatever I'm interested in. I already used text-based browsers to test my website. I consider being able to read a website on as many browsers and display sizes as possible to be an important part of good website design. Unfortunately, lots of websites out there don't share these principles, which sucks for us who are annoyed from modern browsers.</p> <p>I have been testing a few alternative browsers for some time and I'm considering of switching to a text-based, or maybe a very basic graphical web browser. So far, the one that works the best with all my stuff is Links. I like its graphical mode. Other options have been eww on Emacs and Dillo. I have been using the latter to test my website for a long time, as it has the feature of displaying the errors on HTML.</p> <p>While I'll use Links for reading websites, it's not good for stuff like forums, posting on the fediverse, etc. For these, I'll still keep my Pale Moon-based browser, as I consider it enough for daily use. Annoyingly, a bunch of websites I want to use just don't work on PM for no actual reason. My pet peeves being Mastodon and most Discourse-based forums, which are partially or even totally unusable on my browser. The funny thing is that in the past, Github was broken, but it works fine on PM now. I don't get why it has to be an issue.</p> <p>So that's what I'm going to experiment with for now. Some other stuff I have working on are learning another (useless) programming language, more specifically Pascal. I don't get why we have to learn it, but I like it so far. Also it has good documentation. Maybe I'll try to make something with it in the future, I don't know. Enough rambling for tonight, I guess…</p> ]]> </description> </item> <item> <title>Wayland compositors are a mess</title> <guid>https://getimiskon.xyz/posts/2023/2023-11-05.html</guid> <pubDate>Sun, 05 Nov 2023 21:10:00 +0200</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2023/2023-11-05.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>For quite some time I have developed an interest towards Wayland, the protocol that is going to eventually replace the decades-old X server. I have been testing different compositors for the last few months, and so far I'm not fully satisfied by any of these that are currently available, at least on my distribution's repositories.</p> <p>I have been a user of dwm since early 2020 and since 2021 I've started using it exclusively, maintaining a patched version of it and even contributing fixes on patches when I consider it's needed. I'm used to how it works and the workflow of it feels just right to me. So if I want to try a Wayland compositor, the choice that would make sense to me would be dwl, right? Well, it's not that easy.</p> <p>From my experience, dwl lacked quite a few features that are actually useful to me, like the embedded bar. Like dwm, dwl is trying to keep it's source code as small as possible. I agree with this idea, but it can become an issue when useful features aren't present. For example, in order to make the bar work, I needed to set up a patch to enable IPC, that I could never compile.</p> <p>Trying other Wayland window managers was similarly somewhat of a pain in the ass to me. The compositor I had the most luck with is Sway, which is a clone of i3. I generally don't like i3, but the framework it's based on, wlroots, is interesting. Another window manager I tried using recently is labwc, a clone of Openbox. The problem is that none of these worked like I wanted to. I encountered some problems that felt like breaking the whole experience for me.</p> <p>So, what I can do in my case? In my opinion, dwl could be a good starting point for making a window manager that works fine for me, but making significant changes will be necessary, in order to get a user experience closer to dwm's. For example, support for IPC without the need of patching the source code would be useful to make external bars function similarly to dwm. But I think I could do things beyond that. For example, I would like to avoid recompiling the code every time I want to do changes on the configuration of the window manager. Also a better floating mode would be nicer, as well as having the desktop menu from labwc.</p> <p>You may ask, why not using Hyprland? Well, unless you run Arch, it seems it won't work. That's how it seems. I tried compiling from source, nothing. Void Linux doesn't have that in its repos, because Hyprland doesn't build against tagged wlroots. To be honest, this choice doesn't make sense to me. It makes compiling that window manager a huge pain in the ass. Actually looking at Hyprland's "supported" distros, only Arch and Nix are listed as officially supported. I can't take Hyprland seriously, at least as it currently is. I hope it will change in the future, because the project seems promising.</p> <p>So the best option for me right now is to start building my own thing. I haven't worked in a project like that before, but it seems like an interesting challenge. I have recently started experimenting with tinywl, a very basic implementation of a compositor based on wlroots. Unfortunately, I can't compile it with the version of wlroots on my system. So I have to try something else. Maybe dwl's source code will help me with that. As I wrote in the title, Wayland compositors are a mess.</p> <p>Thanks for reading.</p> ]]> </description> </item> <item> <title>When nostalgia hits</title> <guid>https://getimiskon.xyz/posts/2023/2023-09-09.html</guid> <pubDate>Sat, 09 Sep 2023 22:35:00 +0300</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2023/2023-09-09.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>Something I have realized during the last month is that I missed how I enjoyed some stuff a few years ago. From the way I designed my website to the music I was listening. It's a kind of nostalgia that you think that life was somewhat better a few years ago than now, despite not being changed significantly. That's how I would describe it.</p> <p>So, in the last few days I decided to work on the CSS style on my website. I decided to bring back quite a few things from the past, like the font I used back in 2020 (that I used on the banner as well), the rounded corners, the animated pixel art background and the smooth animations on links. Sometimes I enjoy returning back to this design and trying to reimplement it with my current experience. It's not even the first time I do that, as I did similar changes to the CSS stylesheet last year. There are some things I'm not sure if I'll keep for long, but I'm still satisfied with the changes.</p> <p>Recently, with the help of the webmasters of <a href="https://foreverliketh.is">foreverliketh.is</a> and <a href="https://sizeof.cat">sizeof.cat</a>, we did an attempt to archive the threads of Lainchan's webring. There has been an archive for most of the threads, but the first few ones were missing. Fortunately, I had linked to the original thread in a deleted post I made back in 2020, and with the help of the Wayback Machine, I was able to find an archived version. I decided to look for the other missing ones as well, and I got archives for all the threads except for one. About a week later, <a href="https://yukinu.com">Yukinu</a>, the original creator of the first webring thread posted links with the archives first three threads, where the last one was a pleasant surprise to see being archived, as it wasn't available on the Wayback Machine.</p> <p>It's been 3 years since I joined the webring. To be honest, I didn't expect something like this would last for that long, yet here we are now. A few months ago, I said that I'll step down from updating it, but I decided not to. I am not as interested in the webring as I was in the past, but I still like being a part of it. Also there are quite a few neat websites being posted in the threads from time to time.</p> <p>Speaking about Lainchan, something that I have been missing recently is its radio streams, more specifically the "cafe" stream. It is what I was listening to most of the time. The streams have been offline for a few months and it doesn't seem they will be online again anytime soon. So I decided to try replicating that stream as much as I can, by collecting the tracks that were played on it, at least those that I remember from it. So far I have collected about a dozen of albums, although there are still quite a few more I could add. My goal is to replicate the feeling of coziness I had while listening to the music, and I think I got it just right.</p> <p>Those are some of the things I was busy with during the last few weeks. Thanks for reading. By the way, happy Cirno day. ;)</p> ]]> </description> </item> <item> <title>Publishing with Org Mode</title> <guid>https://getimiskon.xyz/posts/2023/2023-07-18.html</guid> <pubDate>Tue, 18 Jul 2023 22:50:00 +0300</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2023/2023-07-18.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>During last year, I started publishing my posts and rewrote my website with <a href="https://orgmode.org">Org mode</a>. For those who aren't familiar with it, it's a way to write and publish text. Org mode is a basic feature on Emacs, but you can use it on other text editors by installing a plugin.</p> <p>In the past, I have been experimenting with <code>sblg</code>, which is a simple tool for blogs. It's not bad, but I wasn't satisfied with it, as I still had to write HTML for each post, which I didn't quite like. For some time I was experimenting with Emacs, and since I decided to take the time to learn its basics, I decided to give Org mode a try. It took some time to get used to it, but it become one of my favorite features on Emacs.</p> <p>There are some things that make Org mode nicer to use. First, it's the simplicity of the syntax. While it's different than Markdown, it's not hard to understand how it works. To make it even better, even complex things are made easy, like tables. Second, you can embed code in the file. On my website, I embed quite a bit of HTML in some places (I'll explain why later in the post), but also lines of code when needed. For example, my configuration for Emacs is actually an Org mode file. Last, but not least, exporting the file to an HTML file, or another type of file, is easy and quick, just by pressing a few keys.</p> <p>While there are lots of reasons to use Org mode, unfortunately there are some caveats. Some of them are because I designed my website being originally made for HTML written by hand, but had to adapt it in some ways to work with Org mode. If you write something and export it to HTML without changing the default options, there's a default style that gets applied, something that I definitely don't want, since I want my website to have a specific look. For my pages, I use the following options.</p> <pre class="example" id="orga5a7d75"> #+options: toc:nil num:nil html-postamble:nil html-style:nil html-doctype:xhtml-11 author:nil title:nil </pre> <p>Despite my changes, I still have some issues. For example, Org mode tries to resolve external links, but some links aren't recognized which causes the file not to be exported. To solve that issue I have to write a bit of HTML in the file to make it work. There's an option that allows "broken" links, but in my case it's still problematic, as the links do not appear in the exported file.</p> <p>Another problem I had to deal with was that some elements in the pages just don't work well. For instance, working with lots of images can be a bit of a pain. While it's trivial to add these in Org mode, they just seem broken on my configuration. So I have to write HTML to match exactly how these things should look and feel.</p> <p>Something I want to work on is to automate the update of the RSS feed. While I automate a bunch of stuff during the publishing of a post by generating a new file from a template, I still have to figure out how to automate the RSS feed. Currently I have to write the post first and then I manually edit the RSS feed file after I'm done with the post. I'm sure there is a tool that handles that, but I haven't tried it yet. If you know something that does that job, let me know.</p> <p>Thanks for reading.</p> ]]> </description> </item> <item> <title>Another year, another retrospective</title> <guid>https://getimiskon.xyz/posts/2023/2023-01-07.html</guid> <pubDate>Sat, 07 Jan 2023 23:52:00 +0200</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2023/2023-01-07.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>Happy new year, everyone! Like last year, here's another retrospective to talk about some stuff that I have done during last year and to make some announcements. It gives me a good reason to post about small stuff that I do over the year that do not make it in a post by themselves, or I only mention them on the Fediverse.</p> <p>I'll start with some things I haven't done, as they are fewer. In the last year's retrospective I wrote about a couple of stuff that I wanted to do last year. Unfortunately, I didn't fulfill my plans for various reasons. Mostly because of procrastination, and lack of knowledge on web development for the project I wanted to work on. Actually, I haven't worked on any of my scripts during last year, with the exception of updating my <a href="https://codeberg.org/getimiskon/suckless-setup">suckless repository</a>. Like last year, I still wasn't able to do anything to finish my degree. I've started thinking of dropping out to it, as I can't find a way to do anything about it for now.</p> <p>Despite those, I was able to do quite a few nice things during 2022, though not something crazy. Since 2020, I have been active on the Fediverse. In 2022, I have seen lots of new users moving to the Fediverse, especially from Twitter. Before the beginning of this migration, I didn't know many users who posted in Greek (my main language). It was during that time I got in touch with local users, trying my best to help them how to use that new platform. Since then, I have been talking to a lot of great people and I have seen some very nice communities to be formed, something I didn't expect. By the way, I plan to write a post about my opinions on the Fediverse. I think I have quite a few things to say, having experience both as a user and as an instance administrator.</p> <p>Since November I have been doing a music broadcast. I have always had a thing for music, but I never had proper knowledge on how to play an instrument. But over the years I got enough technical knowledge to broadcast. I started that on an onlne radio station that the people who run the <a href="https://kafeneio.social">kafeneio.social</a> Mastodon instance have created some time ago. I think I was one of the first who started talking and interacting with the people on that radio, something that was liked by the listeners. The music I mostly play is Greek hip hop, as I'm more familiar with this genre (and some of its subgenres) and I have a big enough collection to choose from to play in my broadcasts. Also during that I have realized that my audience wasn't quite familiar with the genre, but they seemed to like it. Recently I decided to play what the listeners request, either before or at the time of the live broadcast, something I enjoyed a lot.</p> <p>During the last year, I have tried a bunch of software. At the beginning of 2022, I decided to start using Emacs. It's a very powerful editor with tons of features. I had to learn how to use and configure it, and after several months, I'm still somewhat doing so, but I'm already enjoying using some of its features. The one I use a lot is Org Mode, which is a very powerful alternative to Markdown. I have been using it for my website for some time now, and I even used it for some documentation, as Org Mode files can be exported to various formats, like HTML or Markdown and others.</p> <p>I have also started using BSD for a while. For some time I decided to mess with GhostBSD. It's a BSD system (based on FreeBSD) that comes with a GUI installer, which makes setting up stuff somewhat easier if you don't have experience with a BSD system. I enjoyed learning how BSD works, setting up stuff on it and using it as my daily driver for a short period of time, despite not all my hardware being supported, like my laptop's dedicated GPU and Wi-Fi. I have been using it until October, when my hard disk where my system was installed broke.</p> <p>Since December, I have started talking with people from the Greek team of FSFE. I wasn't aware of the local group until recently, when they had their first online meeting about the Fediverse, something that as I said earlier, I'm heavily interested in. I'm glad I had an interesting discussion with people with much more experience on free software, and I hope over time I'll learn things that will eventually help me contribute more in the free and open source software community.</p> <p class="center">So, what's next?</p> <p>This year I want to work more on open source projects in any way I can. I have already started working on translating a program, and I want to work on more stuff over time. I also want to learn a programming language well enough. Either improve my skills on a language I'm already familiar with, like C, or learn a new one that could be useful for any future projects.</p> <p>I recently bought a cheap VPS to host my stuff at, like my website and my personal services. The VPS itself is very good for its price and so far I didn't encounter any problems with it. Web hosting is by far my favorite project. I enjoy spending my time working on my server more than writing posts. And as I did from the beginning, I'm going to share my services with people. For the time being, My services will be invite-only for now. I don't plan to allow public registrations, as I'm not sure for how long I'll be able to run the VPS. I want to avoid moving between servers, like what happened during last year. I will probably change that if I'll be able to keep the server for long enough. </p> <p>Something I have been thinking about is to retire from the Lainchan webring, but I'm not sure about it yet. I'm glad I'm a part of this project for the last couple of years. I got in touch with lots of interesting people from the webring, learned lots of stuff, helped some people as well and had fun. But I have the feeling that eventually it's time for me to move on to other things. Also participating in webrings isn't really as exciting as it seemed to me at first. But I will talk about it more when the time for it comes.</p> <p>And last, but not least, something I want to do more is to get outside than spending all my time online. Being online is nice, but as time goes by, I realize that being terminally online makes me miss lots of things that happen around me. Yes, there are lots of great things that start on the internet, but the really great stuff happens in real life. Also, it will give me lots of ideas to write about as time passes.</p> <p>That's my retrospective about 2022. It was an interesting year in lots of ways. I can't really say if it's good or bad, as I think it's both, for different reasons. I know that since last year I haven't done much to improve myself in some aspects, but I want to try doing so this year. That's the reason I write that post, as a reminder for me to improve myself.</p> <p class="center">Thanks for reading.</p> ]]> </description> </item> <item> <title>Μετάφραση και άρθρα στα ελληνικά</title> <guid>https://getimiskon.xyz/posts/2022/2022-07-16.html</guid> <pubDate>Sat, 16 Jul 2022 18:50:00 +0300</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2022/2022-07-16.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>Εδώ και μερικές μέρες αποφάσισα μετά από πολύ καιρό να μεταφράσω ένα μεγάλο κομμάτι της ιστοσελίδας μου στα ελληνικά. Είναι κάτι που το σχεδίαζα εδώ και αρκετό καιρό, αλλά για πολλούς λόγους δεν το υλοποίησα, μέχρι σήμερα. Και με αυτό ως αφορμή, γράφω αυτό το σύντομο post.</p> <p>Σχεδίαζα να μεταφράσω την ιστοσελίδα μου στα ελληνικά αρκετό καιρό πριν, και πιο συγκεκριμένα ξεκίνησα τον Ιούλιο του 2020, αλλά για διάφορους λόγους δεν ανέβασα τα αρχεία HTML ποτέ. Τότε, ένας από τους λόγους ήταν η γραμματοσειρά που χρησιμοποιούσα τότε, η οποία δεν υποστήριζε τους ελληνικούς χαρακτήρες. Αλλά μετά από πολλές αλλαγές, τόσο σε εμφάνιση, όσο και με τον τρόπο τον οποίο γράφω τα άρθρα μου, πιστεύω πως είναι μια καλή στιγμή να ξαναδουλέψω πάνω σε αυτό.</p> <p>Ένας ακόμα λόγος που αποφάσισα να δουλέψω σε αυτό, είναι για να γράφω περισσότερα posts στα ελληνικά. Ενώ έχω ήδη γράψει ένα, το να βρίσκεται ανάμεσα σε άρθρα γραμμένα στα αγγλικά δε μου αρέσει ιδιαίτερα, με τη μόνη εξαίρεση σε αυτό να είναι το RSS feed γιατί βαριέμαι να φτιάξω άλλο. Επιπλέον, θέλω να βελτιώσω τα άρθρα μου γενικότερα. Επίσης πιθανότατα θα έχω περισσότερα να γράψω στα ελληνικά, καθώς θα μου βγαίνει ευκολότερα σε σχέση με τα αγγλικά.</p> <p>Επιπλέον, κάτι άλλο που πιστεύω πως θα ήταν ενδιαφέρον, θα ήθελα να ξεκινήσω ένα webring με ιστοσελίδες με ελληνικό περιεχόμενο, για να προωθήσουμε τις ιστοσελίδες μας σε λίγο διαφορετικό κοινό. Πιστεύω πως θα είναι ένα υπέροχο εγχείρημα αν ενδιαφέρεται κάποιος. Επίσης μπορείτε να δείτε τα webrings στην αρχική μου σελίδα, αν θέλετε να έχετε μια ιδέα περί τίνος πρόκειται. Αν ενδιαφέρεστε, μπορείτε να μου στείλετε ένα email, ένα μήνυμα στο XMPP ή να τα πούμε στο Fediverse.</p> <p>Αυτά προς το παρόν. Ετοιμάζω νέα άρθρα τα οποία θα ανεβάσω σύντομα, τόσο στα ελληνικά, όσο και στα αγγλικά.</p> <p>Αυτό το έργο χορηγείται υπό την <a href="https://creativecommons.org/licenses/by/4.0/deed.el">Άδεια Χρήσης Creative Commons Attribution 4.0 International</a>.</p> ]]> </description> </item> <item> <title>Changes</title> <guid>https://getimiskon.xyz/posts/2022/2022-07-02.html</guid> <pubDate>Sat, 2 Jul 2022 23:45:00 +0300</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2022/2022-07-02.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>After my usual short absence from posting here, I decided to blogpost again. Things have been changing for some time now, and I want to share with you some of the changes I have been working on.</p> <p>First, you might have already noticed that the website's appearance has been changed. For a few months, I have been experimenting with the CSS stylesheet of the website in order to make it look a bit nicer, but also keeping it as simple as possible. Not too long ago, I decided to look if there is an archived version of my website, which used my older design. To my surprise, there were a few archives with some stuff I have removed from the website back then. Looking at that brought a smile on my face, reminding me how nice it was to experiment with CSS 2 years ago. So, I decided to challenge myself by recreating it in a way that would work with my current website's layout, and it worked pretty well with minimal changes.</p> <p>Also, I decided to work on a background. In fact, the grey background I used was supposed to be a placeholder, until I find a good alternative, which I haven't found until now. For my current background, I decided to get an image from my collection and do some editing on GIMP, mostly <a href="https://concealed.world/blog/making_dithered_art.php">dithering</a> and messing with a few effects. I have changed the colors around the website, like the link colors for example, to match the whole theme of the website as well.</p> <p>Another change I've done recently was to rewrite my website in org-mode. I've been using Emacs for the last few months as my editor of choice, and I'm quite satisfied with it. One of its features is org-mode, a very powerful markup language which can generate text in various formats, including HTML. For a few months, I used <i>sblg</i> to generate my last two posts. But that seemed pointless to me when I can write my posts in a more convenient way, since I switched to Emacs. I didn't have many issues switching some of my pages from handwritten HTML to org-mode, but I had to change some stuff in some places. It can be quite time consuming.</p> <p>You may have noticed that I have been switching servers for some time. After an issue I had with my server's hardware back in March, I have been switching to VMs provided by friends in order to host some of my stuff there. I know that selfhosting would be the best solution, but unfortunately, I can't do that because of various issues, like having a slow internet connection and not having any hardware to use as my server, except from my laptop, which I used to host mirrors of my website in Tor and I2P. Currently, I'm using a FreeBSD jail. Being used to servers running Linux, it's slightly more challenging to set up services, but I'll eventually get used to how that works.</p> <p>By the way, talking about BSDs, I recently switched the Mac OS installation on my laptop to GhostBSD, a distro based on FreeBSD. It's a distribution that makes FreeBSD more easy to set up for users who aren't quite familiar with how BSD systems work. I had to deal with a couple of installations of FreeBSD that didn't work for various reasons, as well as the hell of setting up UEFI. But now I can boot to GhostBSD, I'm enjoying it and I'm writing this post from this system. I'll probably write more about it in its own post, similar to the one I wrote about Void Linux.</p> <p>Something I have been thinking about, is that the only thing I've been posting about on my website is stuff about technology. While I really like writing about it, I think it's boring to write about a specific subject all the time. Originally, I wanted to write about more stuff, like anime and music I have enjoyed, but haven't really done so. I don't consider myself good at writing, especially in English, as it isn't my native language. Also, I'm not really good at writing articles, and I don't like to post short pieces of text here. I think it's better to work more on that in the future.</p> <p>I tried to keep the post somewhat short, although I know it really isn't. If you have any questions about anything, you're welcome to ask me. That's all I have to say for now. I'll be back with more stuff soon.</p> <p>This work is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p> ]]> </description> </item> <item> <title>How to set up a fully compliant XMPP server from scratch</title> <guid>https://getimiskon.xyz/posts/2022/2022-04-21.html</guid> <pubDate>Thu, 21 Apr 2022 13:30:00 +0200</pubDate> <category>Posts</category> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>This is the English version of the guide I posted in the <a href="https://linux-user.gr/t/pws-na-sthsete-enan-plhrh-xmpp-server/4069">Linux User</a> forum. This version also fixes some errors I made in the original version.</p> <h2 id="introduction">Introduction</h2> <p>In this guide I'll show you how to set up a fully compliant XMPP server step by step, from scratch. In contrast with other guides that explain the basics for the setup of a minimal server, this one aims to help new sysadmins to set up an XMPP server that complies up to 100% to the XMPP protocol.</p> <p>There are a few XMPP servers you can pick from. This guide focuses on Prosody, which is one of the most popular options for an XMPP server, and it's quite flexible. Moreover, these instructions are given for servers that run Debian (or Debian-based distributions). If you use another distribution for your server, use the appropriate commands for your distribution and refer to the documentation of the software you are going to use.</p> <h2 id="what-is-xmpp">What is XMPP</h2> <p>XMPP (also known as Jabber) is a protocol for instant messaging. Compared with other IM services, XMPP is decentralized with lots of servers running appropriate software than similar services which are based on a centralized server.</p> <h2 id="needed-for-server">What is needed for the server</h2> <p>To set up the XMPP server, the following are required:</p> <ul> <li>A server (an older computer or a basic VPS is enough)</li> <li>A domain, because some DNS records must be created</li> <li>An SSL certificate, or more, depending on your server's settings. If you don't already have a certificate, you can generate a certificate with Certbot.</li> <li>A web server. It won't be needed for XMPP itself, but for some modules that require it. In this guide Nginx will be used.</li> <li>And Prosody, of course.</li> </ul> <h2 id="installation-configuration-prosody">Installation and configuration of Prosody</h2> <p>To install Prosody, run <code>sudo apt install prosody prosody-modules mercurial</code>.</p> <p>By running it, Prosody will be downloaded with some modules, which will be very useful later. <code>mercurial</code> will be used later to download some additional community modules that will be needed.</p> <p>To download the community modules, run <code>hg clone https://hg.prosody.im/prosody-modules/ prosody-modules</code>.</p> <p>(Personally, I have the <code>prosody-modules</code> directory at <code>/usr/lib/prosody/modules/</code> for convenience. You can put it in whatever directory you want to.)</p> <p>To set up prosody, edit the <code>/etc/prosody/prosody.cfg.lua</code> file as root with the text editor of your choice.</p> <p>The following should be configured:</p> <ul> <li> Define the user(s) who will have administration rights by giving their JIDs. You can add more users if you need to.<br/> <code>admins = { "username@domain.tld" }</code> </li><br/> <li> Define the plugin paths for the modules that were downloaded earlier. You can set the modules path, as well as the <code>prosody-modules</code> directory.<br/> <code>plugin_paths = { "/usr/lib/prosody/modules", "/dir/of/prosody-modules" }</code> </li><br/> <li> Define the modules you want to be enabled. Some of them are already enabled by default.<br/> <pre><div class="codeblock">modules_enabled { -- Generally required "roster"; "saslauth"; "tls"; "dialback"; "disco"; -- Not essential, but recommended "carbons"; "pep"; "private"; "blocklist"; "vcard4"; "vcard_legacy" -- Nice to have "version"; "uptime"; "time"; "ping"; "register"; "mam"; "csi_simple"; -- Admin interfaces "admin_adhoc"; --"admin_telnet"; -- HTTP modules "bosh"; --"websocket"; "http_files"; -- Other specific functionality "posix"; [...] "proxy65"; -- Add if you have downloaded the community modules "cloud_notify"; "smacks"; "turncredentials"; "vcard_muc"; "external_services"; "bookmarks"; "server_contact_info"; "http_upload_external"; }</div></pre> (Note: in the Lua programming language, the two dashes at the beginning of a line declare the specific line as a comment.) </li><br/> <li> Declare if users can register in the server.<br/> <code>allow_registration = false</code><br/> If the server will be public and you want to allow users to register themselves, you can set this value to <code>true</code>. </li><br/> <li> Set up authentication<br/> <code>authentication = "internal_hashed"</code> </li><br/> <li> Set up storage<br/> <code>storage = "internal"</code><br/> You can use an SQL database if you want to. </li><br/> <li> Set up the certificates directory<br/> <code>certificates = "certs"</code><br/> This line declares that the certificates can be found at <code>/etc/prosody/certs</code>. </li><br/> <li> Set up <code>VirtualHost</code> with the domain and the subdomains needed <pre><div class="codeblock">VirtualHost "domain.tld" ssl = { key = "certs/domain.tld.key" certificate = "certs/domain.tld.key" } disco_items = { { "upload.domain.tld", "File upload" }; { "muc.domain.tld", "MUC" }; } }</div></pre> </li><br/> <li> Add some settings for BOSH (useful to connect to your server from web clients)<br/> <pre><div class="codeblock">consider_bosh_secure = true; cross_domain_bosh = true; https_ssl = { certificate = "/etc/letsencrypt/live/domain.tld/fullchain.pem"; key = "/etc/letsencrypt/live/domain.tld/privkey.pem"; }</div></pre> </li><br/> <li> Add contact info<br/> <pre><div class="codeblock">contact_info = { abuse = { "mailto:abuse@domain.tld" }; admin = { "mailto:admin@domain.tld" }; feedback = { "mailto:feedback@domain.tld" }; }</div></pre> </li><br/> <li> Add the components needed<br/> MUC: <pre><div class="codeblock">Component "muc.domain.tld" "muc" restrict_room_creation = false modules_enabled { "vcard_muc", "muc_mam", }</div></pre><br/> Uploads: <pre><div class="codeblock">Component "upload.domain.tld" "http_upload_external" http_upload_external_base_url = "https://upload.domain.tld/" http_upload_external_secret = "secret" http_upload_external_file_size_limit = 104857600 -- 100 Mib</div></pre> </li><br/> <li> Add the external service configuration for the turnserver (for audio and video calls through a compatible XMPP client):<br/> <pre><div class="codeblock">external_services = { { type = "stun", transport = "udp", host = "turn.domain.tld", port = 3478 }, { type = "turn", transport = "udp", host = "turn.domain.tld", port = 3478, secret = "secret" } }</div></pre> </li><br/> <li> Save the file. </li><br/> <li> Create the admin account by running <code>sudo prosodyctl adduser username@domain.tld</code>.<br/> With the same command we can create normal accounts as well. </li><br/> <li> If a certificate already exists, run the command <code>sudo prosodyctl -root cert import /etc/letsencrypt/live</code>. If there is not any, create one with <code>certbot</code>. </li><br/> <li> At the DNS configuration settings for the domain, add the <code>_xmpp</code> and <code>_xmpps</code> SRV records, as they are mentioned <a href="https://prosody.im/doc/dns">here</a>. You can also make SRV records for the subdomains you need, like for MUC, for example (the configuration for uploads and the turnserver will be mentioned below). It may take a few minutes for the records to be deployed. Also forward the ports (TCP only) on your router and configure your firewall accordingly, if it is enabled. </li> </ul> <p>If the steps above are done, enable the <code>prosody</code> service and start it with the following commands:<br/> <code>sudo systemctl enable prosody</code><br/> <code>sudo systemctl start prosody</code> </p> <p>After starting Prosody, try to connect with your JID and your password to an XMPP client (I suggest using Dino on desktop and Conversations on Android). If you can connect to your server, it means that everything went alright. Otherwise, run the <code>sudo prosodyctl check</code> command. It's very helpful to troubleshoot any issues on Prosody.</p> <p>If your server is functional, You might want to check <a href="https://compliance.conversations.im">compliance.conversations.im</a>, where you can see your server's compliance with the XMPP protocol. It's suggested to make a testing account, which can also be useful later.</p> <h2 id="upload-server-configuration">Upload server configuration</h2> <p>In order to upload files on the XMPP server, some things have to be configured first.</p> <p>As you can see above, the upload component and the <code>http_upload_external</code> module were added in the configuration file. That module has a few implementations, as you can see <a href="https://modules.prosody.im/mod_http_upload_external.html">here</a>. In this guide, Prosody Filer (which is the implementation in Go) will be used, as it is the easiest to configure.</p> <ul> <li> First, install <code>golang</code> on your system with the <code>sudo apt install golang</code> command. </li><br/> <li> Clone the Prosody Filer repository by running <code>git clone https://github.com/ThomasLeister/prosody-filer</code>.</li><br/> <li> Go to the <code>prosody-filer</code> directory, and run the <code>build.sh</code> script to compile Prosody Filer. </li><br/> <li> Copy <code>prosody-filer</code> and <code>config.example.toml</code> to a directory of choice, for example, in <code>/var/www/upload</code>. </li><br/> <li> Rename <code>config.example.toml</code> to <code>config.toml</code> and edit it like this: <pre><div class="codeblock">listenport = "[::]:5050" secret = "secret" storeDir = "/var/www/upload/uploads/" uploadSubDir = ""</div></pre> The <code>secret</code> must be the same that was set up in Prosody's configuration, in the <code>upload</code> component. </li><br/> <li> Create the systemd service for Prosody Filer at the <code>/etc/systemd/system/prosody-filer.service</code> directory and write the following to it: <pre><div class="codeblock">[Unit] Description=Prosody file upload server [Service] Type=simple ExecStart=/var/www/upload/prosody-filer Restart=always WorkingDirectory=/var/www/upload [Install] WantedBy=multi-user.target</div></pre> </li><br/> <li> Run the following commands to start Prosody Filer:<br/> <code>sudo systemctl reload-daemon</code><br/> <code>sudo systemctl enable prosody-filer</code><br/> <code>sudo systemctl start prosody-filer</code><br/> You can check if Prosody Filer is running with the <code>sudo systemctl status prosody-filer</code> command. </li><br/> <li> Create a configuration file at <code>/etc/nginx/sites-available/xmpp-upload</code> and write the following to it: <pre><div class="codeblock">server { listen 80; listen [::]:80; listen 443 ssl; listen [::]:443 ssl; server_name uploads.domain.tld; ssl_certificate /etc/letsencrypt/live/uploads/domain.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/uploads/domain.tld/privkey.pem; client_max_body_size 50m; location /upload/ { if ( $request_method = OPTIONS ) { add_header Access-Control-Allow-Origin '*'; add_header Access-Control-Allow-Methods 'PUT, GET, OPTIONS, HEAD'; add_header Access-Control-Allow-Headers 'Authorization, Content-Type'; add_header Content-Length 0; add_header Content-Type text/plain; return 200; } proxy_pass http://[::]:5050/upload/; proxy_request_buffering off; } }</div></pre> </li><br/> <li> Create a symlink of this configuration by running:<br/> <code>sudo ln -s /etc/nginx/sites-available/xmpp-upload /etc/nginx/sites-enabled</code>. </li><br/> <li> Enable and start Nginx by running the following commands:<br/> <code>sudo systemctl enable nginx</code><br/> <code>sudo systemctl start nginx</code> </li> </ul> <p>If there are no errors, restart Prosody by running <code>sudo systemctl restart prosody</code>. Then you can check if file uploading works from your XMPP client.</p> <h2 id="turnserver-configuration">Turnserver configuration for audio and video calls</h2> <p>To improve your XMPP server a bit, you can easily set up a turnserver to be able to make and accept voice and video calls from friends.</p> <ul> <li> First, install Coturn by running <code>sudo apt install coturn</code>. </li><br/> <li> Change the <code>TURNSERVER_ENABLED</code> value in the <code>/etc/default/coturn</code> file from <code>0</code> to <code>1</code>. </li><br/> <li> Enable Coturn by running <code>sudo systemctl enable coturn</code> and <code>sudo systemctl start coturn</code>. </li><br/> <li> Make the following changes in the <code>/etc/turnserver.conf</code> (uncommenting the following options): <pre><div class="codeblock">listening-port=3478 listening-ip=0.0.0.0 external-ip=[Your external IP address] min-port=49152 max-port=65535 static-auth-secret=secret server-name=turn.domain.tld user=test:test123 realm=domain.tld</div></pre> The <code>user</code> option here is useful in case you want to test the turnserver. Also, the <code>static-auth-secret</code> must be the same with the secret that has been set at Prosody's configuration, similarly to upload's secret. </li><br/> <li> Restart Coturn by running <code>sudo systemctl restart coturn</code>. </li><br/> <li> Forward the 3478 port on your router (TCP and UDP) and set up your firewall accordingly, if you have that enabled. </li><br/> <li> Create an A record on the DNS configuration settings with the host set as <code>turn.domain.tld</code> with value <code>127.0.0.1</code> and TTL set as <code>3600</code> (or automatically). </li> </ul> <p>You can restart Coturn and Prosody and try the calls function with another user, like the testing one, as I mentioned that earlier in the guide.</p> <h2 id="finishing-setup">Finishing the setup</h2> <p>If the set up process didn't have any issues, it means that your server is ready and probably complies fully with the XMPP protocol. But XMPP's capabilities don't stop there, as you can improve your XMPP server with lots of extensions that you can try for your needs.</p> ]]> </description> </item> <item> <title>A retrospective about 2021 and plans for the future</title> <guid>https://getimiskon.xyz/posts/2022/2022-01-31.html</guid> <pubDate>Mon, 31 Jan 2022 23:55:00 +0200</pubDate> <category>Posts</category> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>Despite being a bit late, I hope 2022 has started well for you. I decided to write a quick retrospective for 2021, because for me, 2021 was an interesting year, both for this website, as well as for me personally. I will also share with you some thoughts I have about the future, like plans I might work on and some predictions about the future in general.</p> <p>In my opinion, 2021 was more or less a continuation of 2020, which was generally a bad year for lots of people. For me, 2021 was a year I have worked a lot on my projects, especially this website.</p> <h2 id="website-services">About the website and the services</h2> <p>In March of 2021, with a help of <a href="https://meowz.moe">a friend</a>, I got access to the small laptop I have been using as my server.</p> <img src="https://getimiskon.xyz/files/images/posts/2022-01-31/the-server.jpg" height="384" alt="A picture of my server on top of a desktop machine."/> <p>Later, I aquired a domain, which I got for free, but a couple of months later I switched to another domain because of some technical issues I had.</p> <p>During that year, I experimented with various services. Some of them are being used until now, but others didn't work as well as I wanted to. In my opinion, hosting these services is not only an interesting learning experience, learning how to set them up and configure them, but also a small attempt to decentralize the internet.</p> <h2 id="personal">Personal retrospective</h2> <p>As for me, not many interesting things happened. I was able to get a job for a couple of months. That helped me get some money to rent an apartment close to my university, to attend my lessons for the last year in university. Unfortunately, it didn't happened. I wasn't able to find a place to live at, even for a short period of time, and I had to return at home. To make that worse, there weren't any online lessons to attend. So I'm stuck to a position I can't finish my degree.</p> <p>Besides that, something that I realized was that I was procrastinating a lot, which shows in both this website, and some of my projects. I personally want to change that.</p> <h2 id="plans">Plans for the future</h2> <p>I have been thinking about what to do in the future. I'm not sure if I'll actually do some of those, but I'll try working on them, at least.</p> <p>First, I want to write more stuff here. Sometimes I have some good ideas about things to write on, but I either don't feel like posting them, or not having the time to do so because of IRL circumstances. I might also write stuff in my native language. It's easier to write some stuff like that, even though not many people will read that (not that I really care about that, to be honest). I sometimes post stuff that I have translated though.</p> <p>I'm thinking of working on some software, probably something web related. I haven't really tried making something like that before, but that would be an interesting challenge. And last, but not least, I want to improve my services. I think that they are good enough both for my hardware, and my needs as they are, but I think there's always some space for improvement.</p> <br/> <p>That's what I had to share with you. I think I'll have more interesting stuff to post soon.</p> <p>This work is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p> ]]> </description> </item> <item> <title>Does anyone read RSS feeds anymore?</title> <guid isPermaLink="false">2021-12-27</guid> <pubDate>Mon, 27 Dec 2021 19:40:00 +0200</pubDate> <category>Posts (RSS)</category> <link>https://getimiskon.xyz/rss.xml</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>I have been thinking of adding stuff, mostly updates in this RSS feed for some time, but I never did so, for some reason. Maybe I thought it was a waste of time, storage space or something like that.</p> <p>Today I decided to take a look at the webring and see what page have has an RSS feed to include in my list. And I got this idea mostly because of the <a href="https://lainchan.org/%CE%A9/res/54827.html">last Lainchan webring thread</a>, when <a href="https://yukinu.com">Yukinu</a> had the idea to include RSS feeds in the posts. It was nice to see people being interested on what I post and adding my RSS feed. Also, it's not a bad idea to just update the feed every once in a while.</p> <p>By the way, just because the website doesn't have many updates (except of the occasional update on the webring), it doesn't mean I'm not working on new posts. I have currently 6 posts marked as WIP I have been working on, about various things, mostly tech-related stuff.</p> <p>That's what I have to share with you for now. Despite being a bit late, I wish you Merry Christmas and Happy Holidays.</p> ]]> </description> </item> <item> <title>Programming Log - First impressions on Web Browser</title> <guid>https://getimiskon.xyz/posts/2021/2021-09-03.html</guid> <pubDate>Fri, 03 Sep 2021 20:00:00 +0200</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2021/2021-09-03.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>A couple days ago, I decided to try compiling <a href="https://git.nuegia.net/webbrowser.git">Web Browser</a> on my computer. For those who don't know about this browser (yes, I know it has the most generic name possible), it's a fork of Pale Moon that fixes <a href="https://spyware.neocities.org/articles/palemoon.html">some of the issues Pale Moon has</a>. I have tried compiling it a couple times in the past, but it failed because of various issues. After thinking about it, I decided to check the git, clone the repository and compile the program. The instructions for the compilation are simple and the process took about 30 minutes on my computer.</p> <br> <img src="https://getimiskon.xyz/files/images/posts/2021-09-03/webbrowser.png" alt="Web Browser displaying a website"> <p style="text-align:center">Web Browser displaying a website</p> <br> <p>After compiling it, I did some testing to see if it works as it should and then I installed it on my system. It works almost exactly like Pale Moon does, without the privacy issues. For me, it was very easy to migrate from Pale Moon to Web Browser. I was already using Pale Moon and I just had to copy my files from its config to Web Browser's config.</p> <p>Despite working well for me, it doesn't mean that Web Browser doesn't have its own issues. You can't download plugins and themes directly from Pale Moon's website and it seems that it blocks the browser with the "Unable to Comply" error. Although, you can sideload the themes and plugins you need. Another issue is that you might be confused with the directory where the configuration files are, like the profiles etc. I noticed a pattern here. The directory is at <code>~/.[name of developer]/[name of browser]</code>. In my case it was at <code>~/.individual programmer/webbrowser</code>, with spaces, which is annoying to browse in the terminal of a Unix-based system.</p> <p>Personally, I'd like mess with its code when I have some more free time. One of the changes I want to implement is to move the configuration to <code>~/.config/webbrowser</code>. It's annoying for some users (and for me as well) to have each application creating a file with its configuration on my home directory, when the <code>.config</code> directory exists. I'll also try to find a way to be able to download plugins through the browser. In the worst case, I might try setting up a small repository with plugins.</p> <p>Those are my thoughts about Web Browser. I'd like to get your feedback, especially if you have tried the browser yourselves.</p> <p>This work is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p> ]]> </description> </item> <item> <title>Γιατί η ελληνική γλώσσα είναι άθλια στους υπολογιστές</title> <guid>https://getimiskon.xyz/posts/2021/2021-07-02.html</guid> <pubDate>Fri, 02 Jul 2021 23:55:00 +0200</pubDate> <category>Αναρτήσεις</category> <link>https://getimiskon.xyz/posts/2021/2021-07-02.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>Μερικές μερες πριν, έτυχε να συμμετάσχω σε μια συζήτηση σχετικά με μερικά προβλήματα με το ελληνικό layout του πληκτρολογίου, πιο συγκεκριμένα με τον τρόπο που πληκτρολογείται ο τόνος, ο οποίος μειώνει σημαντικά την ταχύτητα πληκτρολόγησης. Μετά από συζήτηση στο κανάλι IRC του <a href="https://kill-9.xyz">kill -9</a>, αποφάσισα να γράψω αυτό το κείμενο στο οποίο παραθέτω τα παράπονά μου για την ελληνική γλώσσα στους υπολογιστές. Αυτό το κείμενο, καθώς και οποιοδήποτε άλλο κείμενο στη σελίδα είναι έργο σε εξέλιξη, και είναι γραμμένο για να είναι κάπως υπερβολικό, για να αναδείξει μερικά προβλήματα.</p> <p>Παραθέτω το κείμενο:</p> <p>Θυμάμαι πριν χρόνια όταν είχα ακούσει τη (σχετικά) γνωστή μαλακία που λέγανε ότι η γλώσσα των υπολογιστών είναι τα Αρχαία Ελληνικά. Δεν ξέρω πόσο χόρτο ήπιε όποιος το σκέφτηκε, αλλά είναι η μεγαλύτερη μπαρούφα που έχω ακούσει, καθώς οποιοσδήποτε που δεν έχει IQ θερμοκρασίας δωματίου ξέρει ότι οι υπολογιστές καταλαβαίνουν μόνο το δυαδικό σύστημα. 1 και 0, ανοιχτό ή κλειστό δηλαδή, για να το εξηγήσω απλά στα άτομα με IQ αμοιβάδας. Μακάρι να ήταν μόνο αυτό το πρόβλημα της ελληνικής γλώσσας στους υπολογιστές, αλλά υπάρχουν αρκετά πρακτικά προβλήματα τα οποία δεν έχουν λυθεί.</p> <h2>Greeklish</h2> <p>Ας ξεκινήσουμε με το κλασικό πρόβλημα των greeklish. Είναι ό,τι πιο άσχημο έχω δει. Σε μερικές περιπτώσεις δυσκολεύεσαι να βγάλεις νόημα, καθώς ο καθένας γράφει όπως να 'ναι. Εντάξει, καταλαβαίνω ότι δεν το έχουν όλοι με την ορθογραφία και τους τόνους. Έχουν βγει τα μάτια μου πολλές φορές διαβάζοντας μηνύματα και να χρειάζεται κάποιου είδους αποκρυπτογράφηση επειδή στην άλλη πλευρά ο άλλος "βαριέται να τα γράψει σωστά". Αλλά το greeklish δεν είναι λύση. Κάποτε μπορεί να ήταν, όταν υπήρχαν θέματα στην υποστήριξη χαρακτήρων που δεν είναι ASCII. Αλλά είναι πολύ σπάνιο πλέον κάτι τέτοιο, και ο μέσος έλληνας (ναι, και ο φοιτητής πληροφορικής που τυγχάνει να διαβάζει τα άρθρα στο kill-9) δεν θα χρησιμοποιήσει κάποιο λειτουργικό σύστημα που βρίσκεται σε alpha για να ποστάρει μαλακίες στο καρκίνωμα του zucc. Το ίδιο ισχύει και για το αντίστροφο, το engreek. Όποιος το χρησιμοποιεί μη ειρωνικά, του αξίζει κρέμασμα στην πλατεία του χωριού του.</p> <h2>Ελληνικές μεταφράσεις</h2> <p>Κάθε φορά που βλέπω ελληνική μετάφραση σε λειτουργικό σύστημα, θέλω από αντίδραση ��α κάνω format και επανεγκατάσταση στην αγγλική του έκδοση, κι ας είναι τα αγγλικά μια κακή γλώσσα για τους δικούς της λόγους. Πολλοί συμφωνούν ότι οι ελληνικές τεχνικές μεταφράσεις στους υπολογιστές είναι πραγματικά άθλιες, και ένας βασικός λόγος είναι ότι ΟΝΤΩΣ μερικές **επίσημες** ορολογίες είναι άθλια μεταφρασμένες. Για παράδειγμα, η επίσημη μετάφραση του όρου "bit" είναι "δυφίο". Ενώ η λογική πίσω από τη μετάφραση είναι η ίδια με τον αρχικό όρο, δηλαδή ενώ η φράση "binary digit" μεταφράζεται ως "δυαδικό ψηφίο" δεν είναι κακή, η συντόμευση του όρου στα ελληνικά ακούγεται άθλια.</p> <h2>Έλλειψη γραμματοσειρών</h2> <p>Δεν υπάρχει κάτι πιο εκνευριστικό από το να θέλεις να χρησιμοποιήσεις μια καλή γραμματοσειρά για το σύστημά σου (π.χ. Terminus) και να συνηδειτοποιείς ότι δεν εμφανίζει σωστά, ή και καθόλου τα αρχεία που έχουν ελληνικούς χαρακτήρες. Η μόνη λύση σε αυτό είναι να χρησιμοποιήσεις μια γραμματοσειρά που έχει υποστήριξη για ελληνικούς χαρακτήρες, όπως το Inconsolata LGC (στο τερματικό), καθώς και να ρυθμίσεις το σύστημά σου κατάλληλα έτσι ώστε να μην υπάρχουν τυχόν θέματα όσον αφορά το ελληνικό κείμενο.</p> <h2>Ελληνικό πληκτρολόγιο</h2> <p>Κάτι το οποίο συνηδειτοποίησα πριν λίγο καιρό είναι πως ακόμα και το ελληνικό layout στα ελληνικά πληκτρολόγια είναι απαίσιο. Αν πληκτρολογείς γρήγορα, ο τρόπος που πρέπει να βάλεις τόνους σε καθυστερεί αρκετά. Αντί να υπάρχουν μερικά modifier keys για την εισαγωγή τόνων ή και διαλυτικών, πρέπει να πληκτρολογήσεις πρώτα στο σημείο που κανονικά βρίσκεται το "ελληνικό ερωτηματικό" ή semicolon, όπως αποκαλείται στα αγγλικά. Αλλά αν θέλεις να βάλεις το ερωτηματικό, πρέπει να πατήσεις στο "Q". Εντάξει, έχουμε 24 γράμματα στα ελληνικά και χωράνε στο αγγλικό layout. Αλλά αυτό δε σημαίνει ότι δεν έχουν γίνει ηλίθιες επιλογές στο ελληνικό layout.</p> <h2>Εναλλακτικές λύσεις</h2> <p>Καταλαβαίνω ότι για πολλούς δεν είναι εύκολο να αποφύγουν να γράφουν στα ελληνικά, αλλά θα παραθέσω τις εναλλακτικές που προτείνω εφόσον είναι δυνατό κάτι τέτοιο</p> <ul> <li>Εγκατάσταση συστήματος στα Αγγλικά</li> <li>Αποφυγή ελληνικών ονομάτων στα αρχεία</li> <li>Εκμάθηση και συχνή χρήση Esperanto (πιθανότατα η καλύτερη διεθνής γλώσσα)</li> </ul> <p>Αυτό το έργο χορηγείται υπό την <a href="https://creativecommons.org/licenses/by/4.0/deed.el">Άδεια Χρήσης Creative Commons Attribution 4.0 International</a>.</p> ]]> </description> </item> <item> <title>Programming Log - CLI Assistant</title> <guid>https://getimiskon.xyz/posts/2021/2021-06-10.html</guid> <pubDate>Thu, 10 Jun 2021 20:50:00 +0200</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2021/2021-06-10.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <h2 id="introduction">Introduction</h2> <p>In this post, I'm writing about one of my favorite projects out there, the CLI Assistant. As the name implies, it's a personal assistant that works in a terminal emulator window. It's inspired from the assistants made from corporations like Apple and Google, and it's an attempt to make a simple, free and open source assistant that functions in a similar manner, without the unwanted features proprietary software has.</p> <h2 id="idea">A simple idea</h2> <p>Back in early September of 2020, I decided to mess with my hackintosh installation, and I decided to look at what the system and its preinstalled utilities could offer. One of the preinstalled applications is the voice assistant, Siri, which is used in all of Apple's operating systems, both on its phones and computers. So, I tested it and asked about various things, just for fun. Later, I decided to disable the voice input, just using my keyboard for input. While I was using the keyboard input, I had an idea.</p> <blockquote> "What if I tried to make a simple version of this program for Linux? I don't know many programs on Linux that do something similar to that." </blockquote> <p>Then, I booted back to Linux again and started experimenting with some code, which eventually would be the base for the program.</p> <h2 id="code">Working with code</h2> <p>I started almost immediately to mess with code to make this idea possible. I decided to write it in C, because this is the language I'm most familiar with, and it's a simple language in general. Of course, a project like this can be a bit challenging, especially when you aren't experienced enough with the language.</p> <p>Something I wanted to do, was to find a way to compare the input in a way that I would type something like "What time is it?", and the program would recognize <code>time</code> as a keyword. After reading through C documentation (which is usually easy to find on a Linux system) I found that in order to make that possible, I had to use the <code>strstr()</code> function. This function can locate a part of a string, from another one. That's exactly what I needed for my program.</p> <p>To make it work as intended, for each command I had to compare two strings; the user input and the keyword of the command, which I wrote to have a constant value. Because of how <code>strstr()</code> works, I had to create an empty string (which I named <code>cmdcmp</code>, from the words "command compare") that's used as a pointer. By using the "if" statement, I added a couple of checks. The first one checks if the keyword value exists in the input (command) value, and the output would point to where the string starts if it's true. The second check is to see if <code>cmdcmp</code> is equal to the keyword value that was set in the code. If both are true, then it runs the function for that command.</p> <p>To make it seem less confusing, here's the line of the code for this, with the weather command as an example:</p> <code> if ((*cmdcmp = strstr(command, weatherCommand)) && (*cmdcmp = weatherCommand)) </code> <p>Something that you may notice if you read the source code, is that I use the <code>system()</code> function in most of the commands, as well as for the voice output, which works with <code>espeak-ng</code>. The reason for using this function is to avoid writing unnecessary code and use the utilities that usually exist in the systems the program is targeted to work on.</p> <h2 id="project">The project</h2> <p>The first public version of the program was uploaded on GitHub on the 8th of September 2020, as a proof of concept. After I finished the code, I wrote the documentation for it on the <code>README.md</code> file, with compilation instructions and an explanation on how the program works. Good documentation is useful to make the program easier to understand for those who are interested to contribute to it, as well for the developer who wrote it, in order to fix any issues in the source code in the future.</p> <p>On the 11th of April 2021, I updated the project. One of the changes was to include a makefile to make the program easier to install, changing the flags without editing the code manually. Some other changes was the rename of the C file from <code>main.c</code> to <code>assistant.c</code> and some minor changes in the code.</p> <h2 id="future">The future of the project</h2> <p>Despite the slow updates of the project, it isn't dead. I have been working on an update for some time, but I need some time to finish it. I have limited free time, and I'm working on various things at the same time.</p> <p>One of the changes I'm working on, is a better user interface. As it's made to run on a terminal, the best option for it is to make it with ncurses. I have been learning how work with the ncurses library for some time, and in my opinion, it's the least annoying graphical user interface to deal with. I plan to add support for some other GUI toolkit, like GTK or Qt in the future.</p> <p>Something that I'm working on as well, is to improve the code. I want to make the program easier to extend and making it more customizable. Having a few hard-coded commands might not be an issue now, but this will become an issue in the future.</p> <p>Of course, as a free and open source project, you can contribute to it if you want to. If you have any ideas, I would like to read your suggestions. The links for the git repositories can be found at the <a href="https://getimiskon.xyz/projects.xhtml">projects</a> page.</p> <p>Thanks to <a href="https://godcock.neocities.org/">godcock</a> for suggesting me to write this post.</p> <p>This work is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p> ]]> </description> </item> <item> <title>After 3 months of silence</title> <guid>https://getimiskon.xyz/posts/2021/2021-04-17.html</guid> <pubDate>Sat, 17 Apr 2021 00:00:00 +0200</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2021/2021-04-17.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>Hello, people! I hope you are fine these days. As you may notice, I decided to upload a post to my website, after 3 months of silence here. If you may thought that something bad happened to me (or not, who cares?), you might haven't have checked my posts on Mastodon yet.</p> <p>Well, I have been busy with various things over the last few months. I was occupied with online exams that I hate, as well as working on personal projects, that I will tell you about those later in this post. I was also working on some new posts. At the time I write this, there are 4 posts that I have been working on.</p> <p>I have never stopped working on this page. I have mostly been updating the webring quite a bit in that time. There are quite a few websites in the webring right now, and the webring thread on Lainchan is popular. Also, as you may have noticed, there is a "Services" link on the top of the main page, as well as another link at the mirror links. I recently got remote access to an old machine that I use now as my server and I host a mirror of the website as well as some services. I'm still working on those, so there are still some problems I have to resolve. I also forgot to say that I have been hosting the site at Codeberg as well and all the content exists there, mostly because it's much easier to edit my website using git.</p> <p>As for the things that aren't related to my website, I said earlier that I have been busy with a few projects I have been working on. Something I'm excited to work on is a translation of the LainTSX project, as I really like anything related to the anime "Serial Experiments Lain". And it's a great attempt to have a translated version of the original PSX game. I'm also learning about new programming languages. I really like Go, but C is still my favorite. It's very nice language for web applications. Some of my services run on Go, and they work great. I have also decided to learn some JavaScript, despite hating using it. It's better to try before you hate it after all. And last, but not least, I recently got access to a tilde site. But instead of using it as another mirror, I decided to put some random stuff on it now. I already have 3 clearnet mirrors, so having another one seemed a bit too much. I might use it for something in the future, but I haven't thought about what. If you want to visit it, <a href="https://ebin.city/~getimiskon">here's the link</a>.</p> <p>As for what I'm going to do in the future, I think it's better to post stuff more often, but sometimes it's better to think well enough before writing something. It makes it become better, by looking at the errors and trying to fix them. Something I want to work on my website is to synchronize the updates between my git repository and webpage on Codeberg, my server and the Neocities page. I haven't decided on how I will do that yet, but I have to work on that.</p> <p>This work is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p> ]]> </description> </item> <item> <title>Installing Void Linux</title> <guid>https://getimiskon.xyz/posts/xhtml/2020-12-30.html</guid> <pubDate>Wed, 30 Dec 2020 00:00:00 +0200</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2020/2020-12-30.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <h2>Introduction</h2> <p>A few days ago, I decided to try installing Void Linux after being persuaded to try it by a friend. Before the actual installation on my computer, I spent some time testing it on a virtual machine. At first, I didn't really like it, but as I was getting used to the way it works, I started to like it more.</p> <p>I decided to just nuke my Arch system because I was bored and curious to try this distro, like I did when I switched from Ubuntu to Arch a couple years ago.</p> <h2>The installation process</h2> <p>The installation procedure is the same between all of its flavors, by running the <code>void-installer</code> command on a terminal window. Personally, I decided to use the base live image instead of one with a preinstalled desktop environment, because it's much more flexible to configure in my opinion. The procedure itself isn't much different than in a usual GUI installer.</p> <p>Installing Void Linux is a nice experience. After being somewhat used to "the Arch way" of installing a distro (which is a dumb thing to do sometimes), Void was way easier by having an installer utilizing the ncurses TUI.</p> <h2>Configuring the system</h2> <p>The post-installation part is the one that it's both the most difficult and the most creative while setting up your system. You don't only have to make sure that every part of your setup works properly, but also you have the freedom to choose how your system will look, feel and function, especially when you choose install the bare minimum packages of your distro of choice.</p> <p>In my case, I decided not to install a full desktop environment at all, but I installed dwm, my favorite tiling window manager, with some other programs from my personal <a href="https://git.snopyta.org/getimiskon/suckless-setup">suckless setup</a>. Unfortunately, I happened to stumble upon one of the major problems of Void Linux, that I'll explain later in this post.</p> <p>After some trial and error, I came up with a setup that works more or less the way I want to, but at the time of writing this, there are a few issues that have to be solved, but it's a matter of time to complete the setup.</p> <h2>Why Void Linux rocks</h2> <p>One of the reasons why Void Linux rocks, is that it doesn't use systemd. By default, Void comes with runit, a very simple and easy init system both to use and understand. For example, if you want to enable a service, you should just create a symbolic link for the service you need from <code>/etc/sv</code> to <code>/var/service</code>. And because it doesn't have a ton of features like systemd has, it's much more faster when you boot or shutdown your system.</p> <p>Another advantage of Void Linux is its package manager, XBPS (X Binary Package System) and its repositories. XBPS is a very fast package manager, and not difficult to get used to. You can find the non-free packages (as well as the multilib ones) in different repositories from the main one, that you have to add them by yourself, by installing those packages. There's also the option to install packages from source through <code>xbps-src</code>.</p> <h2>The reason why Void sucks</h2> <p>The major downside of Void, that affects most users, is the lack of documentation, especially for some software. Void has its <a href="https://docs.voidlinux.org">handbook</a>, but it covers just the basics in order to understand how the basic components of the system work and how to troubleshoot some common issues. The handbook itself states that it isn't an extensive guide and it encourages users to look for information on configuring their software in other sources, something that isn't necessarily bad.</p> <p>Void used to have a <a href="https://wiki.voidlinux.org/Main_Page">wiki</a>, but at the time I write this article, it's mostly deprecated and it's not even mentioned on the Void's website. In my opinion, that's a problem because some programs might need some configuration specifically for Void (or other non-systemd distributions), that isn't mentioned anywhere else. For instance, I used the wiki page for dwm to fix my config in order to work properly on this distribution.</p> <p>Moreover, Void doesn't seem to have a forum as well, that could be helpful for new users of the distribution to troubleshoot any issues they may have on their systems. The ways you can contact the developers or other members of the Void community are through IRC and the <a href="https://reddit.com/r/voidlinux">/r/voidlinux</a> subreddit. That's a reason why I don't recommend Void for new users, even slightly more experienced ones.</p> <h2>Summary</h2> <p>Void Linux is an interesting distribution. It's a very good alternative to other similarly minimalist distributions. It's very easy to install and much easier to configure, because of its much simpler init system and some system tools.</p> <p>Despite the documentation issue this distribution has, and thus being challenging for less experienced users, it can be a good learning experience on how to use a different distro without bullshit (like systemd, as an example), different from most distros out there, even some of them being called minimalistic, without necessarily being so.</p> <p>By the way, <a href="https://kill-9.xyz/rocks/computers/software/distros/void">here</a>'s another web page explaining why Void rocks.</p> <p>This work is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p> ]]> </description> </item> <item> <title>Fuck Widevine</title> <guid>https://getimiskon.xys/posts/2020/2020-11-13.html</guid> <pubDate>Fri, 13 Nov 2020 00:00:00 +0200</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2020/2020-11-13.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <p>I decided to make that quick blog post when I saw this post in my Mastodon feed:</p> <p>from lrvick@mastodon.social:</p> <blockquote> "We have filed a separate Sensitive Data takedown request of this file: /widevine-l3-decryptor as it contains the secret Widevine RSA private key, which was extracted from the Widevine CDM and can be used in other circumvention technologies." </blockquote> <p><a href="https://github.com/github/dmca/blob/master/2020/11/2020-11-09-Google.md">Here's the DMCA request on GitHub.</a></p> <p>Fuck Widevine, fuck Google and fuck everyone else who do take down repositories with free and open source code, like RIAA when recently removed youtube-dl from GitHub. As long as those fuckers restrict technology, we are here to make it available to the people. Fuck their censorship.</p> <p>This work is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p> ]]> </description> </item> <item> <title>My opinion on Windows</title> <guid>https://getimiskon.xyz/posts/2020/2020-09-25.html</guid> <pubDate>Fri, 25 Sep 2020 00:00:00 +0200</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2020/2020-09-25.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <h3>Introduction</h3> <p>One of my favorite things to do on my computer is to try different operating systems. It's fun to see how every OS looks and feels, either on a virtual machine, or on real hardware.</p> <p>I was writing this post for quite some time, and there were lots of changes to it. Because of personal reasons, I won't have much time to work on a longer post, but I decided to break it in 3 parts, for the three major operating systems: Windows, macOS and Linux.</p> <p>For the most part, I'll focus on Windows 10, because it's the version of Windows most users use now. Windows 7 and older releases are already obsolete, and almost nobody cares about Windows 8.1, and it will be obsolete soon.</p> <h3>My opinion</h3> <p>Windows is the OS the majority of PC users use. Most users use their computers as a tool to do their job, and maybe spend some time on the internet. Not everyone cares about how their system works and how to customize it to get the most out of it, and that's fine.</p> <p>If you have to use some professional software, or you want to play the "latest and greatest AAA games" on your "latest and greatest" setup, Windows will probably be your choice. That's what Windows is good at.</p> <p>But still, it's not the best for every professional. For example, Windows sucks at low-latency applications, which is important for musicians and sound engineers. It's also unnecessarily a pain in the ass for some developers, having to install IDEs, compilers and other software development tools by themselves, without any preinstalled tools.</p> <h3>The spyware named Windows 10</h3> <p>I don't want to seem like I hate Windows 10, because I actually don't. But I'm disappointed that Windows 10 not only it isn't improved, but it became one of the worst versions of Windows, if not <em>the worst</em>, for lots of reasons.</p> <p>Besides the usual problems of all Windows versions, like security issues, malware and the fragmentation of the NTFS filesystem, Windows 10 introduced even more problems that make the whole user experience extremely annoying. Here's a small list of the most common problems you can see specifically on Windows 10:</p> <ul> <li>"Microsoft Consumer Experience", actually ads on your system and installation of various unwanted apps without the consent of the user. That "feature" is not available only for home users, but for professional ones as well.</li> <li>There's no privacy when you use any software from Microsoft. Unfortunately, almost nobody reads the EULA, that states your data are being used. <a href="https://aka.ms/privacy">Here</a>'s the privacy statement of Microsoft, and <a href="https://www.microsoft.com/en-us/servicesagreement/">here</a>'s Microsoft Services Agreement. I think you get it...</li> <li>There is no way to avoid the telemetry of Windows 10. Even on versions that it can be "fully disabled" like the Enterprise version of Windows 10. As I said above, there is no privacy on Microsoft's software.</li> <li>There isn't a truly stable version of Windows 10 for consumers and professionals. There's only the LTSC version that isn't available for most people to purchase, as far as I know. Most people still need stability over new features.</li> <li>The design of Windows 10 is a horrible mess. There are lots of cases that there are 2 programs that do the same task, just with a different UI. Also, the UI is barely customizable (I suggest watching <a href="https://invidious.snopyta.org/watch?v=AItTqnTsVjA">this video</a> about UI).</li> </ul> <p>You can read <a href="https://itvision.altervista.org/why-windows-10-sucks.html">this list</a> about all those problems.</p> <p>In my opinion, the problem is that Microsoft, a multibillion dollar corporation, that can afford paying for developers, designers and people to test the operating system, actually doesn't give care about their own product and they disrespect their customers in this way.</p> <h3>My personal experience</h3> <p>My personal experience with Windows 10 isn't the best. When I first tried that on an old desktop I have, it was too slow for my hardware, and the next day I reinstalled Windows 7 on that computer. I actually use Linux most of the time, so I don't really care about Windows that much.</p> <p>Back in November of 2019, I got my laptop, that I use as my main machine, and it had Windows 10 preinstalled with the bloatware the manufacturer decided to add. Of course I removed as much as I could. After a few changes on my OS setup, I had to reinstall Windows again.</p> <p>The most annoying thing that I had to deal with while I was building my triple boot system was UEFI. The default UEFI partition of Windows is just enough for a dual-boot system, but I had to resize the UEFI partition. It was really a pain in the ass. The installation of Windows 10 was slow and annoying, asking me to connect a Microsoft account and having to disable spyware options. Even the installation of Arch Linux isn't that much of a pain in the ass. After installing it and customizing it a bit, I left it on my HDD, and I got back to Linux again.</p> <h3>Summary</h3> <p>As I said above, I don't hate Windows as an operating system, and I mean the older versions of it. But the problem is that Windows 10 in particular is technically spyware. And I prefer not defend a spyware made by a overly rich corporation. I would kind of tolerate that if it worked well, but it doesn't, at least not for me.</p> <p>As for the other OSes, macOS and Linux, I'll post about those in the future, probably when I will have enough time for that.</p> <p>This work is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p> ]]> </description> </item> <item> <title>How to install and set up osu! on Linux</title> <guid>https://getimiskon.xyz/posts/2020/2020-07-27.html</guid> <pubDate>Mon, 27 Jul 2020 00:00:00 +0200</pubDate> <category>Posts</category> <link>https://getimiskon.xyz/posts/2020/2020-07-27.html</link> <author>getimiskon@disroot.org (getimiskon)</author> <description> <![CDATA[ <h2>Introduction</h2> <p>Most of the things I write here, were written as personal notes since 2018, in order to create a script to install osu! on Linux. The last time I installed osu! with that way was in November 2019, when I installed Arch Linux on my laptop, and I never had an issue with the procedure I'll share with you in this post. As of today there aren't any major changes and it will probably work for you.</p> <p>For those that you don't know what osu! is, it's a free rhythm game that you have to click circles in the rhythm of music. You can download it <a href="https://osu.ppy.sh">here</a> for free for Windows and Mac.</p> <p>This guide will have commands for distros based on Ubuntu and Arch, mostly because there's more information about those, and these are the ones I have tested so far.</p> <h2>Preparation</h2> <p>To install osu! on your Linux distro, you should install Wine beforehand, if you haven't done it yet. On Ubuntu-based distros, you should follow the instructions <a href="https://wiki.winehq.org/Ubuntu">Here</a>. On Arch-based distros, open a terminal and run <code>sudo pacman -S wine</code>.</p> <p>Next, clone <a href="https://gitlab.com/osu-wine/osu-wine">this repository</a> by running on a terminal <code>git clone https://gitlab.com/osu-wine/osu-wine</code></p> <h2>Installation</h2> <p>Go to the <code>osu-wine</code> directory, and run <code>sudo ./install.sh</code>. This is the installation script. Then copy the configuration file for osu!, by running <code>cp /etc/osu-wine.conf ~/.osu-wine.conf</code>.</p> <p>Run <code>osu-wine</code>. You'll see the install window. Keep in mind that you might get stuck in a loop in the installer. For this case install these packages:</p> <p>For Ubuntu-based distros:</p> <p><code>sudo apt install -y libc6 libgcc1 libglib2.0-0 libgphoto2-6 libgphoto2-port12 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 liblcms2-2 libldap-2.4-2 libmpg123-0 libopenal1 libpulse0 libudev1 libx11-6 libxext6 libxml2 zlib1g libasound2-plugins libncurses5 libcapi20-3 libcups2 libdbus-1-3 libfontconfig1 libfreetype6 libglu1-mesa libgnutls30 libgsm1 libgssapi-krb5-2 libgtk-3-0 libjpeg8 libkrb5-3 libncurses5 libodbc1 libosmesa6 libpcap0.8 libpng16-16 libsane1 libsdl2-2.0-0 libtiff5 libv4l-0 libva-drm2 libva-x11-2 libva2 libvulkan1 libxcomposite1 libxcursor1 libxfixes3 libxi6 libxinerama1 libxrandr2 libxrender1 libxslt1.1 libxxf86vm1</code></p> <p>For Arch-based distros:</p> <p><code>sudo pacman -S giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo libxcomposite lib32-libxcomposite libxinerama lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader cups samba dosbox</code></p> <p>Then run <code>osu-wine</code> again. There won't be any issues with the installation.</p> <p>if everything went right, you will see a big pink circle with the word osu! on it pulsing on the beat of what's playing in the background, while some songs are loaded by the game.</p> <h2>Configuration</h2> <p>The game is installed, but that doesn't mean that your system is configured properly yet. There are some things that have to be fixed before you started playing. It's not important to do those changes, but they can be useful, especially if you are, or want to become more experienced in the game.</p> <p>Let's get started with the config file. There are a few options you can change, by uncommenting (removing the "#" symbol) the command. I suggest uncommenting the path, and audio duration settings.</p> <p>Let's continue the setup with an important part of the game, the sound. The game uses PulseAudio for the sound, and as some of you might know, it has issues with latency, and that's not good for a game like this. I suggest following the "Adjusting Latency" part of the guide about <a href="https://blog.thepoon.fr/osuLinuxAudioLatency/">Low Latency osu! on Linux</a> by ThePooN.</p> <p>Another important part of the game is the input. There are a few ways to play the game. You can use your mouse, your keyboard and even a graphics tablet. In this guide, I won't give any help about graphics tablets, because I don't own one and I have no experience about them. You may have to follow <a href="https://osu.ppy.sh/community/forums/topics/367783&start=0">this guide</a>. To disable the mouse accelleration, follow <a href="http://www.webupd8.org/2016/08/how-to-completely-disable-mouse.html">this guide</a>. Also I suggest trying to change the mouse settings as you like from your desktop environment's mouse settings.</p> <p>And the last part for this post is about in-game setup. That's something I'm sure you'll be able to figure out for yourselves, because there's not just one way to set it up. Also, I suggest using the offset wizard (click <a href='https://osu.ppy.sh/help/wiki/Guides/How_to_Use_the_Offset_Wizard'>here</a> to read the guide about it) in order to set up the game properly.</p> <h2>Conclusion</h2> <p>I know that this guide is not the best for some people, because it seems too much of a hassle to set up a game on Linux. For those people, the best option is a Windows and Linux dual-boot system, or a completely different PC just for games. But this wasn't written for them. It was written for me, and for people who are enthusiasts and want to have the best performance for their games. I hope you find this guide as useful as I do.</p> <p>Have fun.</p> <p>The source for this guide is <a href="https://osu.ppy.sh/community/forums/topics/794952" title="https://osu.ppy.sh/community/forums/topics/794952">this topic</a> from osu! forums.</p> <p>Edit: I did a mistake and mentioned that there's a Mac version for osu! on the developer's site for the game. Unfortunately, there's only <a href="https://osuosx.tumblr.com/">a page on Tumblr</a> that has information about how to install osu! on Mac through Wine and it seems outdated. I may figure out how to install the stable version of osu! on macOS 10.15 Catalina (that's the version I have installed on my computer, and no, it's not a Mac) and I'll write another post for it.</p> <p>There is also osu!lazer, which is a version of osu! in development, and its source code (and binaries) are available on github. You can use it in most operating systems. There are binaries for Windows, macOS, iOS and Android right now. It's not stable enough to use yet, as there are still bugs and some missing features.</p> <p>The best thing is that because it's running natively on your system instead of using a compatibility layer like Wine, on Linux you can use ALSA instead of PulseAudio to play with as less latency as possible (There is also a bug if you try to use PulseAudio). If you want to try osu!lazer, you can click <a href="https://github.com/ppy/osu">here</a> and download a binary or compile it from its source code.</p> <p>This work is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p> ]]> </description> </item> </channel> </rss>