{ "version": "https://jsonfeed.org/version/1", "title": "Jae's Website", "home_page_url": "https://{hostname}", "feed_url": "https://jae.fi/blog/index.json", "description": "The blog of Jae.", "items": [ { "id": "https://jae.fi/blog/2023/12/14/my-review-of-cyberpunk-2077/", "content_html": "
Hey there!
\nToday, we’re having a special post: a game review.
\nThis one was supposed to come out back in 2020 (so a while ago) when the game originally came out, but bad time management and just forgetting about it made me push it all the way back to today; but hey, better late than never, right?
This article might contain spoilers about the base game and the DLC Phantom Liberty. Read at your own risk.
\nLet’s have a bit of a background first shall we?
\nCyberpunk 2077 is a game released in 2020 by Polish game studio CD Projekt Red, most known for the game series The Witcher.
Cyberpunk itself goes back way more, starting in 1988 with Cyberpunk 2013, created and written by Mike Pondsmith, as a tabletop game.
\nLater editions included Cyberpunk 2020 (1990), Cyberpunk V3.0 (2005) and Cyberpunk Red (2020).
The Cyberpunk universe takes place in a world where the USA fell to a military coup, collapsing its economy, avoiding the fall of the USSR and strengthening European and Japanese markets, making them stand out as superpowers.
\nIt’s at this time that megacorporations arose, taking control of huge parts of the economy, fighting between themselves and basically starting to form quasi-independent states.
\nTechnological advancements in term created cyberware (or chrome) which are bioengineered implants used to enhance one’s body abilities, leading to cyberpsychosis if too many implants are used.
The main location of the game is called Night City, located on the south of current day San Francisco.
\nThis autonomous city represents well how the Cyberpunk world works: megacorporations taking over every single aspect of life, rampant crime, violence and corruption.
Outside of all of this are nomads, once working for corporations, now living in family clans, roaming roads and plains, attacking corporate convoys and regular people alike.
\nBefore proceeding further, note that all my play sessions were done on either Hard or Very Hard difficulties.
\nThis was the review that was supposed to be released back in 2020.
\nIt mainly concerns what was released at the time.
\nAn updated review is below.
Summing up the base story, you are V, a mercenary.
\nAt the start, the game gives you the choice for three life paths: street kid, corpo or nomad, which after some events, you will encounter Jackie Welles, former Valentinos member, now mercenary.
\nAfter a cooperating a while and gaining reputation as a reliable merc, you finally get a job from a well-known fixer, Dexter DeShawn; being stealing an experimental chip from the corporation Arasaka, called The Relic.
During the heist, everything turns to vinegar, the relic container being damaged, you are forced to slot the Relic in one of your shard ports while your partner and friend Jackie is dying under your eyes.
\nDuring that time, you also happen to witness Yurinobu Arasaka kill his father, Saburo Arasaka, CEO of Arasaka which you are accused of.
You later learn that this Relic is now erasing your mind, replacing it with the one of rockerboy and terrorist, Johny Silverhand.
\nYour goal is now to find a way to get rid of that Relic and survive at all costs.
Cyberpunk 2077 is bugged. Hell, I don’t even think that’s a strong enough word.
\nCrowds will fail to load, your character will T-pose on zone loadings, some enemies flicker, and calling your car will make it run over you and kill you.
It also happened that on release, a braindance sequence would use flashes designed to trigger epileptic seizures as a visual effect, triggering a grand mal seizure for game journalist Liana Rupert.
\nLuckily, an update modified the affected sequences and are now mostly safe to play, though the game still contains a warning.
Overall, the game isn’t pleasant to play in longer play sessions.
\nThe game has to be restarted every hour or so because of bugs, there is performance issues with terrain not loading in time or just plain lag.
Also, some police units like MaxTac, being known as the most dangerous police force, can be killed like regular enemies which is kind of underwhelming.
\nThough the bugs are omnipresent, the game does something extremely well: cutscenes.
\nIn CP2077, everything is dynamic.
\nUnlike Bethesda games where NPCs will just stand there and talk like robots, people move, have expressions, will pull guns on you; everything is dynamic.
The best representation of this is during one of the missions before The Heist. You need to get a military drone from the gang Maelstrom, however, the person that was paid for it, Brick, former leader of the gang has been removed by the new leader, Royce.
\nThough Dexter DeShawn already paid for the bot, Royce asks you to pay again in probably one of the best cutscenes I’ve seen in video games.
\nThis particular cutscene usually ends up in a bloodbath (though there is other options) in which the game will transition seamlessly back to gameplay.
More than cutscenes, the game has a strong story, with characters you can identify with and feel close to.
\nAll in all, it could be a great game, if not for all the bugs.
\nI really hope CDPR will release more patches to the game to render it more playable.
Now, that’s the part where I start praising CDPR.
\nIn September 2023, after three years of releasing patches periodically for the game, CDPR release the 2.0 update.
\nThis patch is probably the largest update the game has seen, bringing in new features and enhancement:
And even more!
\nRecently, scrapped features have been implemented in the game, most notably the metro system.
\nThe game also has way less bugs, making it a solid game by itself.
On September 26 2023, CDPR released a major DLC for Cyberpunk 2077: Phantom Liberty.
\nI cannot express how much I love the content added to the game with it.
\nThe DLC takes place in Dogtown, a part of Night City near Pacifica, ruled with an iron fist by Kurt Hansen.
\nYou are contacted by a mysterious netrunner claiming to be able to help you getting rid of the Relic, leading you right in that part of the city.
\nAll of the sudden, you are now involved in a large web of problems, having to save NUSA president Rosalyn Myers from Dogtown and find the netrunner with the help of FIA agent Solomon Reeds.
The DLC even adds a new ending to the game, which is in my opinion one of the saddest endings to it.
\nThe story itself is extremely well-written, the characters attaching, choices hard to make, making the base game look dull in comparison.
The DLC also adds new skills, new vehicles, new side missions, new radiant quests and a bunch of other stuff.
\nDifficulty wise, it is also a big step up from the base game which I welcome.
\nEarly in the DLC, you are faced with a difficult boss fight that might take you multiple attempts to beat, though not frustrating.
Cyberpunk 2077 evolved into being one of the most solid games I’ve recently played.
\nThe soundtrack written by P. T. Adamczyk, Marcin Przybyłowicz and Paul Leonard-Morgan keeps you in the ambience while the gameplay is engaging and fun.
One action I will praise is CDPR actually updating the game, fixing bugs and adding content without succumbing to the temptation of saying “eh, the modders will fix it”.
\nOverall, fun game, I recommend to play it!
\nThat’s all for today.
\nI’ll see you next time chooms!
If you liked this post, don’t forget to subscribe to the blog via RSS or JSON.
\nThis website has no ads or tracking and will never have any, you can fork over some eddies on Ko-Fi to maintain it alive.
Hey there everybody!
\nToday, we’re gonna talk about FIDO, and more generally about security keys.
FIDO (standing for Fast IDentity Online) is a set of open standards created by the very originally named FIDO Alliance, designed to address the limitations of traditional password-based authentication.
\nThis set of open standards include:
The main thing that sold security keys to me is the hardware component brought into authentication.
\nIt may not be as practical as just pulling an OTP code from a password manager but adds a pretty strong layer of security to logins as you need to have the physical hardware and touch it to allow a login to go through.
\nSame for passwordless logins, I find them more convenient than using a password and automatically thwarts any phishing attempts (which is extremely good for end users that might not be that tech-savvy).
Regular OTP is also prone to attacks, be it the incompetence of OTP app providers providing a sync, your password manager getting compromised or just SIM swap attacks (being a bit more exotic though increasing, according to a TWSJ citing FBI numbers).
\nThe main caveat of hardware keys is, of course, if your key ever gets stolen or lost.
\nThat’s why it’s important to have backups (usually a second key).
\nWhile stealing a security key is harder than phishing a password, it still can be a possibility if you are being personally targetted by really persistent malicious actors (don’t become too paranoid about this though, this doesn’t concerns 99.9% of users, the “lost key” scenario is way more probable for you than anything else).
\nIn case of a stolen or lost key, FIDO2 mandates that the user needs to authenticate before being used, be it phone/computer authentication, biometrics or a PIN (most common for security keys).
Technically, this still doesn’t accounts for attacks like bruteforcing, where someone could just try and test all PIN combination possible.
\nSome keys like the Yubikey have a protection against this, after three failed attempts, the attacker will have to unplug and plug again the device, and after seven (in a row mind you), the key will wipe its FIDO2 store.
That kind of protection also means someone can easily sabotage your keys and render them unusable.
\nBest protections would be:
Another caveat of physical security keys is the number of passkeys a single device can support.
\nFIDO2 stores an unique FIDO2 key on the device itself for each service, this means different keys have different amounts of slots available to store those.
\nFor instance, the Yubikey 5 can store 25 passkeys, the Solokeys V2 50 while the new Google Titan Keys can store up to 250.
\nThis is an issue to be aware of for in the future, when passkeys will be more common.
In recent years, tons of websites added support for security keys.
\nBiggest ones being Google, Microsoft and Apple, the two first ones allowing passwordless logins through passkeys.
Others can be cited like:
\nThe list could be way longer, those are just a tiny fraction of those who support it.
\nYou can see a good list of supported websites and apps on passkeys.directory.
Let’s see my personal uses of security keys and which ones I have.
\nBack in July 2021, I backed the the Solokeys V2 IndieGoGo campaign, that were originally supposed to be released in June 2021.
\nSadly, Solokeys had delays due to supply chain and construction issues, pushing the release and shipment of the pledged keys to September of that same year. It’s around that same time that surveys, asking what USB type you wanted for the keys and setting your delivery address were sent, giving the hope for a rapid delivery.
Fast forward to September, more delays, pushing delivery even further to October; but after waiting all of that time, what is one month more? (little did I know)
\nAll the way through end of 2021 and 2022, more and more delays were announced, always pushing further and further the delivery date.
\nIt’s around that time I decided to purchase another brand of security key while waiting, a Yubikey 5 NFC (yes, a single one, I know having no backups is bad).
Finally, in August 2023, after two years of waiting, I received my two Solokeys V2, one USB-A and one USB-C.
\nThe Yubikey is the first ever security key I got.
\nNothing else much can be said except that it works well and is pretty much a plug-and-play solution.
\nI only have two complains about Yubikey:
Otherwise, good hardware, works correctly.
\nNow, here comes the review I originally planned to release months ago.
\nPutting aside all the delays and the two years of waiting, I was excited to receive my Solokeys since they are completely Open-Source and the firmware can be upgraded, unlike with Yubikeys.
So, I received two Solokeys, one USB-A and one USB-C as well as the pledge goal reward being small colourful silicone protective covers for the keys.
\nRight off the bat, looking at the USB-C one, the connector feels very fragile, like it would easily break if plugged too hard somewhere. The USB-A model looked fine and has no apparently hardware issues.
\nOnce plugging those for the first time, the experience was not great, being either not detected at all or just very jittery (NFC was completely nonworking).
\nLuckily, a firmware update patched that and the keys started working as expected, though I must say that the NFC function doesn’t works as well as the Yubikey on my phone (an iPhone).
\nI am also having an odd issue where if the USB-A Solokeys isn’t plugged facing the “right direction”, it will not work and I will have to turn it around for it to work.
\nIt wouldn’t be surprising with a normal USB-A plug, until you realize the Solokeys V2 has reversible USB.
Another thing to have in mind is that if the first generation of Solokeys was FIDO certified, the V2 isn’t yet.
\nOther than that, they work as expected everywhere that has support.
\nGiven the current state of the project (as of 2023/12/08, no blog posts or communication since June 2023 and no commits in Solokeys V2 repos since January 2023), I sadly cannot recommend that solution and instead redirect people to Yubikey, that has been pretty solid for years.
\nI also sent an email to the official contact point of Solokeys on December 2 2023 asking about the state of the project and still haven’t got any response yet.
\nThis post will be updated when I receive an answer.
2023/12/09 update:
\nMy Solokeys V2 USB-A apparently reset itself for no reason.
\nI will never recommend Solokeys going forward.
I basically use security keys everywhere I can, be it on external websites like Gandi or my internal stuff, either through native support like with FireFish or through a SSO solution like KeyCloak.
\nI do also use my keys as passkeys when available as they are extremely convenient.
Small update: I’m also using my key for SSH now.
\nAs a side note, when trying to register my Solokeys as a GitHub passkey, I was getting generic errors “Something went wrong” without any much more.
\nTurns out that if your key is already registered for MFA, you will need to remove it before re-adding it as a passkey.
I’m extremely happy to see more and more websites and software supporting that kind of hardware, for instance, Discord recently added support for security keys as MFA, Google and Microsoft allow passwordless passkey sign-ups, and some other platforms that I use daily like Resonite plan to implement FIDO2 support in the future.
\nI can recommend anyone getting security keys and adding them everywhere you can.
\nIf you don’t want to get hardware and trust your phone provider enough, both Android (through Google) and iOS/macOS support passkeys.
\nI can also recommend the password manager Bitwarden which can store passkeys, allows login MFA with FIDO2, is Open-Source and can be self-hosted.
Hopefully in the future, we can have even more FIDO2 support, not only as a MFA but also as a passwordless way to login.
\nAlso massive thanks to Dezponia, in the Furry Tech Matrix room, for the extensive feedback and additional information about how FIDO2 works and security practices they provided for this blog post.
\nSo this post was longer than usual.
\nReason is that writing posts takes way longer than I expected and finding good subjects for those is equally hard, so instead of prioritizing quantity, I’m going for quality and length.
\nI’m trying to find more subjects to write about in a more lengthy form factor, so stay tuned!
You also probably noticed that the font of this website changed completely and this has been done for a good reason: the old pixel font was extremely hard to read for longer texts, not very practical when you host a blog and a wiki with lore and other stuff people might want to read.
\nGive a warm welcome to Atkinson Hyperlegible by the Braille Institute, that will probably stay around for some time (unless I find a pixel font as easy to read as this one).
\nWhy this exact font? The software FireFish (that I use to post on ActivityPub) has an option for it and I liked it.
On another note, I’m looking for a job!
\nIf you have anything for me in software development, please contact me at jae@777.tf and I’ll be happy to discuss any opportunity.
That’s all for today.
\nI’ll see you next time!
If you liked this post, don’t forget to subscribe to the blog via RSS or JSON.
\nThis website has no ads or tracking and will never have any, you can support me on Ko-Fi to maintain it alive.
Hey there!
\nIf you’ve been following me on the fediverse, you’ve noticed I’ve started fiddling with 3D tools such as Blender way more lately.
You’ve also probably noticed that I have kind of a burnout related to code, that’s why I haven’t been doing anything much for a while in that regard.
\n3D work has been kind of an escape and it showed me that diversifying what you do is a great idea.
While I’m at it, here are some examples of stuff I’ve made over the past months (that aren’t related to code):
\nSome maps for the game Resonite:
\n\nRandom furniture for other projects (those are still heavy WIPs):
\n\n\n
\nSome renders of my characters and other misc objects I made:
\n\nAnd even more is planned, I even started sketching those ideas:
\n\nIf my writing is too cryptic to understand, here are the big lines of that upcoming project:
\nMy drawings look a bit silly as I’m not very good at that, but ultimately, they fulfill their job as just a direction to take and avoiding to go in blindly when starting to work on something.
\nAlso, playing with the new Blender 4.0 Geometry Nodes tools is really fun and at some point, I’ll publish a tool pack for it, so stay tuned.
\nThat’s all for today, a really short blog post.
\nI’ll see you next time!
If you liked this post, don’t forget to subscribe to the blog via RSS or JSON.
\nYou can support me on Ko-Fi.
Hey there!
\nIf you’ve been remotely on the internet recently, you’ve noticed that YouTube\nstarted cracking down on content blockers that happen to block ads.
Worry not, I come bearing solutions for this problem (solutions which were\nalready widespread as soon as the restriction was put in place, but honestly,\nthis is my blog, what you’re gonna do hahahahaah, you can’t stop me).
\nThis might be the most radical solution, but the best one: switch to an\nalternative front-end.
\nMost, if not all, alternative front-ends for YouTube directly remove ads,\ntrackers and some of them even support the likes of SponsorBlock.
Here are some recommendations (the software with a ⭐ are my personal\nrecommendations).
\nFor this, just follow those simple steps:
\nAs a bonus, remember that\nuBlock origin works best on Firefox.
\nI will not recommend any apps of the likes of (Re)Vanced as it still relies on\nan official YouTube app which is completely closed-source (although the\npatches are open).
\nAll it takes for Google to take down those patched versions, as shown in the\npast, is a small cease-and-desist, while completely open-source projects have\nabsolutely no real grounds to be taken down (the RIAA tried, they failed).
As some closing words, remember that ads are a really predatory ecosystem that\nprey on your attention only to track you to sell you stuff you probably don’t\nneed.
\nHaving a content blocker is good for privacy but is also a good way of\nde-cluttering the web and making it somewhat bearable to navigate (it also\nimproves security a lot for older users that might fall for scams and\nviruses being spread through ads).
\nSo do you have a friend, coworker or family member that still has millions of\nads on their screen? Do them a favour and show them how to install uBlock\norigin on their browser.
This website will never have ads, if it ever does, block it as it won’t be\ncontrolled by me then.
\nI’ll see you next time!
\nIf you liked this post, don’t forget to subscribe to the blog via RSS or JSON.
\nYou can support me on Ko-Fi.
Hey there, long time no see!
\nAs you may have noticed on my social media, I have now been for a few months experimenting more with VR (Virtual Reality).
\nIt was in February of last year that I did my first blog post on this technology, when I only had it for around two weeks at the time.
\nNow that more than a year and a half has passed, I think it’s time for a small update.
First off, I still find the technology amazing while sadly being still gatekept by high hardware costs.
\nThe index itself had a few problems during those months:
\nOtherwise, I had some changes on the platforms I use daily.
\nFor instance, in my original blog post, I talked about VRChat which now I do not use anymore, given its poor creation tools and generally lack of interesting activities.
\nMost of the screenshots that I post everywhere are now from NeosVR, a social VR platform allowing for content creation within the game while also allowing extensive modifications by modding.
\nNeed an avatar? Just drag-and-drop your model file onto the game window, click on the import window, see your model appear, use the in-game avatar creator and done, ready for use!
Sadly, Neos has been plagued by a lack of updates and a CEO that cares more about scamming users with cryptocurrency (which most of the community rejects) than to take care of the platform.
\nThough there is rumours of a new platform that would be released by the original developer of Neos (that left it a while ago), for now, we are stuck in this situation.
That’s where Overte enters the game.
\nOverte is also a social VR platform, but with the particularity of being compltely Open-Source, licensed under the Apache 2.0 license.
\nThough the controls are a bit more basic than Neos’, the platform is more than usable both in VR and Desktop mode.
\nThe game itself is a fork of Vircadia which is itself a fork of High-Fidelity, created by Philip Rosedale, the fomer CEO of Second Life. This is why the game itself feels and looks like Second Life so much.
\nCreating avatars is a bit more complicated, requiring you to rename bones and blendshapes in Blender, but jump into the game and you will most certainly find someone more than happy to help you in the Overte Hub.
The advantage of Overte is that everything is hosted by yourself, from avatars to worlds.
\nFor instance, I am hosting a Domain, or world, named The Cheesebox (join it btw, I swear we have fun there).
\nBut it is not limited to that, you can also host your own accounts system, the possibilities are endless.
Another advantage is that the project itself is overseed by a nonprofit where board members are elected, thus eliminating most cryptobro-related problems.
\nAll in all, it is a very promising platform that definitely deserves more attention.
\nI think that’s enough for today, thanks a lot for reading this blog post.
\nI’m gonna try to make more posts again, probably dedicated around the VR space as one post isn’t enough to cover everything.
\nI’ll see you next time!
If you liked this post, don’t forget to subscribe to the blog via RSS or JSON.
\n", "url": "https://jae.fi/blog/2023/08/04/vr-status/", "title": "VR Status", "summary": "Hey there, long time no see!As you may have noticed on my social media, I have now been for a few months experimenting more with VR (Virtual Reality).It was in ...", "date_modified": "2023-08-04T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2023/03/23/the-end-of-the-line/", "content_html": "Hey there!
\nIn today’s post, no good news I fear.
\nI started hosting the open services in 2021, when I originally moved to Finland.
\nI managed to buy a server for close to nothing on the IO-tech BBS which soon started to run everything.
\nAfter a while tho, some health problems arise and I had to put this project on hold.
\nIt’s in 2022 that it had a revival with the Piped instance coming back and services being added monthly.
In time, it has been a really nice learning resource, especially with the networking aspect of the whole thing (see page AS211696).
\nSadly, what makes it fun to run is what destroyed it, it became financially unmaintainable.
\nWith costs rising everywhere, I simply can’t afford to run all of this.
It’s not with a happy face that I announce that the open services will close on April 30 2023 (30/04/2023).
\nI’m truly sorry, honestly, I feel like shit writing this.
Thanks everybody for having been part of this experience and thanks for the overwhelming support in dire times.
\n// Jae
Hey there everybody!
\nFew weeks ago, I received a ThinkPad x200 running Linux and with CoreBoot as a bonus.
\nAs other friends, I thought such a device (released in 2008) would be too old to do anything modern but I was greatly surprised.
This ThinkPad has some upgrades:
\nWhich makes it a bit more comfortable to use.
\nOf course, the machine is properly baptized with stickers (will update the stickers page with it when I receive my own ones).
The two most dated aspects of the computer are its screen and CPU.
\nWhile the screen has a low resolution for today’s standard, it is still fairly usable and looks well enough (in some desktop environments, there is a yellow backlight for some reason that doesn’t appears on i3).
\nThe CPU is what will mostly limit you when trying to compile something but as long as you don’t run Gentoo, that shouldn’t really be a problem (most of the compiled stuff I use from the AUR comes in -bin
so no need to waste precious CPU cycles for that).
To have an extra-comfy setup, I took some time to configure stuff I always forget about on my main setup, for instance: MPD (Music Player Daemon).
\nMy config for it is very simple and works perfectly:
music_directory "~/Music"\n\ndb_file "~/.config/mpd/database"\nplaylist_directory "~/.config/mpd/playlists"\n\nauto_update "yes"\nbind_to_address "127.0.0.1"\nrestore_paused "yes"\nmax_output_buffer_size "16384"\n\naudio_output {\n type "pipewire"\n name "pipewire"\n}\n
\nIn bonus, it can even play MOD, S3M, SID and XM formats which I wasn’t aware, but was a welcome surprise.
\nAlso, given the age of the laptop, using Kitty (which is the terminal emulator I usually use) is out of the question as the maximum OpenGL version supported by the laptop’s GPU is 2.1 while the terminal emulator requires at least 3.3.
\n[068 11:30:32.926880] [glfw error 65543]: GLX: Failed to create context: GLXBadFBConfig\n[068 11:30:32.926938] Failed to create GLFW temp window! This usually happens because of old/broken OpenGL drivers. kitty requires working OpenGL 3.3 drivers.\n
\nInstead, I use Alacritty on this machine which works good enough. The config itself is also pretty simple:
\nwindow:\n padding:\n x: 8\n y: 8\n opacity: 0.9\n\nfont:\n size: 9\n normal:\n family: Bok MonteCarlo\n\ncolors:\n primary:\n background: "#1b1b25"\n foreground: "#dedede"\n\n normal:\n black: "#15121c"\n red: "#cb5760"\n green: "#999f63"\n yellow: "#d4a067"\n blue: "#6c90a8"\n magenta: "#776690"\n cyan: "#528a9b"\n white: "#eeffff"\n\n bright:\n black: "#727480"\n red: "#cb5760"\n green: "#999f63"\n yellow: "#d4a067"\n blue: "#6c90a8"\n magenta: "#776690"\n cyan: "#528a9b"\n white: "#eeffff"\n
\nAlso, one of the first things I did when I got the laptop was to update LibreBoot on it.
\nI ended up documenting the method on its own wiki page.
On the side of doing ‘real work’ on it, of course, given the age of the CPU (it being an Intel Core 2 P8600 which is two cores, two threads at 2.4Ghz), some stuff will be slower.
\nFor instance, when starting to work on Overengine, starting the development environment with yarn dev
will take around 3s more than on my main workstation, so a bit slower but not that killing.
\nThe main difference is when compiling programs where it takes almost twice as much time.
\nWhen working on personal stuff, it takes a bit longer to test things, but having worked with low-end machines a good part of my life, it’s still faster than some machines I had to use in the past.
On the browser side, surprisingly, it runs pretty smoothly with Firefox+uBlock origin.
\nOf course, websites with plenty of animations will have a bit harder time, but still surprisingly usable. It is to be noted that some websites like the Internet Archive Wayback Machine will not work on this laptop for some reason.
\nI haven’t really reached a tab limit as I rarely have more than 3 open at all times when working or doing anything ordinary.
On the games side, the two games I play the most, Ryzom and OSRunescape, basically run without any major hiccup.
\nOf course, the framerate could be better but it is more than enough to be playable.
In some months, I’ll have to be away for some weeks, this will be the occasion to test this machine as a real daily driver instead of just a main portable (for now I’m still mainly using my fixed workstation at home and then the laptop in bed).
\nJust before ending this post, as per tradition, here is a hyfetch
(if you know a version of the wallpaper without the character, please send it to me):
That’s all for today’s post and I’ll see you peeps next time!
\nIf you liked this post, don’t forget to subscribe to the blog via RSS or JSON.
\nIf you wish to support the Open Services, a LiberaPay page is available.
Hey there, small post today!
\nOver the years, I’ve noticed how hard it can be to get on the IDE and write a new blog article.
\nAs you may have noticed, most of mine are about some thing I made or tested over time, mostly on the technical side.
\nWith that in mind, finding new subjects to write about that I connect with has been getting pretty hard, lots of drafts for not much published (for instance, at the moment of writing this, I got 6 drafts actively being worked on, probably only one or two will be published at the end).
Now, let’s try something “new”.
\nSome blog posts were really outside of the usual, things like “My name has finally been changed” or “Jae’s kitchen: making crunchy peanuts”, I want to try to post about more petty things that are not only technical and then see how it goes.
A long time ago, I even tried writing some game reviews so why not try to bring the format back?
\nLet’s see overall how that trial goes.
\nThat’s it for this extra-small post and I’ll see you in the next time!
If you liked this post, don’t forget to subscribe to the blog via RSS or JSON.
\nIf you wish to support the Open Services, a LiberaPay page is available.
In today’s post, I’m going to teach you how to be a dum Synth.
\nThe story starts when I received my x200, everything was starting out great, booting perfectly, system install went on smoothly without problems.
\nNow, after a while, I just started to notice that the network speed while using WiFi was limited to 3Mb/s (and around 15-20Mb/s when using cable).
\nNow, I stupidly thought “This can’t be my setup, this has to be the WiFi card” so I started my quest to try to find a suitable replacement for the WiFi card until I realized: the WiFi card in this laptop is already the best available.
\nWhen I saw that, something ticked in my head, so I grabbed my phone and ran a speedtest which displayed the same results.
\nI then started to fiddle with the settings of my WiFi AP which (partly) fixed the problem.
\nNow speeds are more around 15-20Mb/s on WiFi (and could probably be more since the card is theoretically limited to 50Mb/s which is well within what the AP should be able to do).
So to sum up: dum me almost ended up spending money because I can’t even configure an AP correctly.
\nMoral of the story: use multiple devices to test when there is a problem before accusing hardware failure.
\nNote to self: learn how to configure APs before doing anything else.
That’s all for today and I’ll see y’all in the next post!
\nIf you liked this post, don’t forget to subscribe to the blog via RSS or JSON.
\nIf you wish to support the Open Services, a LiberaPay page is available.
On February 6th 2023, Cameron Steel introduced the world to the IPv6 Canvas via a blog post of his.
\nThe idea is simple: a 256x256 pixel grid where you have to ping an IPv6 to change a pixel.
\nBasically, each pixel has its own address, referencing X and Y position but also RGB values, making it possible to print a variety of images all accross it.
Early in the launch, there was already this little guy:
\n\nI originally discovered the project in the morning of February 7th, via the Ungleich IPv6 Matrix room.
\nI immediately started tinkering with Python to try and print an image.
At first, I started generating the addresses.
\nDoing so is really easy, just take the base address and fill out the gaps with values:
base_address = "2400:8902:e001:233"\npixels = []\n\ndef make_image_and_start(ox, oy, image_path, to_file=False, filename="image.txt"):\n image = Image.open(image_path).convert("RGBA")\n max_w, max_h = image.size\n\n curr_w, curr_h = 0, 0\n\n start_w = int(ox)\n start_h = int(oy)\n\n max_w -= 1\n max_h -= 1\n\n # Now, let's convert the image\n while True:\n coordinates = x, y = curr_w, curr_h\n r, g, b, a = image.getpixel(coordinates)\n\n print(f"Converting: {x},{y} -> {r}:{g}:{b}/{a}", end="\\r")\n\n # Check for alpha (transparency support)\n if a > 0:\n pixels.append(make_address(curr_w + start_w, curr_h + start_h, r, g, b))\n\n # Basic printer that goes left-> right and starts again\n if curr_h == max_h:\n curr_h = 0\n curr_w += 1\n else:\n curr_h += 1\n\n if curr_w == max_w and curr_h == max_h:\n curr_h = start_h\n curr_w = start_w\n break\n
\nThen, my original thought was to start using the ping
command but it ended up being slow, taking half an hour to draw even half of the original image.
\nThat’s when I had the idea of outputting everything in a text file and then using fastping -f
on top of it which was working better!
Still, there was lots of room for improvement and it showed when the whole canvas was replaced with a moving rickroll (nicely done btw).
\nFew hours later, a friend started testing oping
which turns out to be faster than fastping
.
\nThat method worked great until I finally started using raw sockets in my own script:
sock = socket(socket.AF_INET6, socket.SOCK_RAW, socket.IPPROTO_ICMPV6)\n\ndef do_ping(dest_addr, timeout=1):\n print(f"Rendering current: {dest_addr}", end="\\r")\n\n try:\n # Raw sockets, who cares, it's fast\n sock.sendto(b"\\x80\\0\\0\\0\\0\\0\\0\\0", (dest_addr, 0))\n except:\n # We don't care about failing\n # The pixel is usually re-written in next pass\n pass\n
\nAt first, the program would crash, citing a buffer space error.
\nJust ignoring the error makes it work and the loss is negligible since multiple passes are done quickly.
Victory, I could now draw images super fast which protected my artwork from attacks after.
\nYou can see the source of the writer on SourceHut.
All in all, this was a great experiment and I want to thank Cameron for creating it in the first place.
\nI am currently trying to implement my own canvas which would be a tad bigger.
Also, thanks to everybody that participated in good faith, was lots of fun!
\nThat’s it for this post and I’ll see you in the next one!
\nIf you liked this post, consider adding it to your RSS or JSON feed reader :)
\nCanvas screenshot and amogus GIF provided by Cameron Steel.
Today, let’s talk about on of my new projects for 2023: migrating hosting to ARM-based computers.
\nFor now, services (except a few select) are hosted on a bunch of x86-based servers (mainly HPe ProLiant ones bought for cheap online).
\nI got some problems with the current infrastructure:
To solve that, I am currently testing a new solution: running all of the services on ARM-based SBCs.
\nFor that, meet the Orange Pi 4 LTS.
\n(Picture CC 4.0 BY-SA Jae Lo Presti; click here for a larger pic)
That particular one has:
\nFor now, this one only has light web stuff, including the website you are reading right now.
\nServices such as the BreezeWiki or AnonymousOverflow will be moved on there soon as a way to test if this exact platform is suitable for larger deployments.
Even tho there has been some problems when switching the website to it, it now runs flawlessly (the website is a bit slower than before but nothing unbearable).
\nSome fun experiment that would be fun to do later would be trying to take the whole website off-grid or even better, when moving physical locations, make it so the servers stays up (I will have to make a post detailing more how I could do that).
The current goal isn’t to go completely low-tech, at least yet but to try new things while trying to save a bit of money.
\nAs a fun trivia, added the network stats of the machine on the main page (just scroll down until you see an image with a fancy chart).
\nI might do that for every single machine once I start migrating and that data will have its own page in the future.
That’s it for the first post of the year and I’ll see you next time!
\nIf you liked this post, consider adding it to your RSS or JSON feed reader :)
\n", "url": "https://jae.fi/blog/2023/01/03/new-hosting-platform/", "title": "New hosting platform", "summary": "Today, let's talk about on of my new projects for 2023: migrating hosting to ARM-based computers.For now, services (except a few select) are hosted on a bunch o...", "date_modified": "2023-01-03T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/12/30/lets-make-the-web-bearable/", "content_html": "For this last post of the year, let’s see something simple: my personal uBlock Origin filters.
\nIf you don’t know already, uBlock Origin is a powerful blocker for ads, trackers and many other things within your web browser.
\nI personally use it on all my machines with Mozilla Firefox.
By default, uBlock will do a great job at getting rid of most of the ads (if not all) and trackers present on the website but for me, it’s not enough.
\nI find lots of elements distracting on YouTube, including for instance, the comment section and related feeds. To block them, it’s easy:
www.youtube.com###comments\nwww.youtube.com###related\n
\nAnd done, all is now removed.
\nProblem is, when trying to block specific buttons, like the “share” or “clip” ones, those don’t have any proper IDs which renders blocking a bit more tricky.
\nWe can work around this by matching the property title
or aria-label
instead:
www.youtube.com##[aria-label$="Create" i]\nwww.youtube.com##[title$="Shorts" i]\nwww.youtube.com##[title$="Trending" i]\nwww.youtube.com##[title$="Music" i]\nwww.youtube.com##[title$="Movies" i]\nwww.youtube.com##[title$="Gaming" i]\nwww.youtube.com##[title$="Sports" i]\nwww.youtube.com##[aria-label$="Clip" i]\nwww.youtube.com##[aria-label$="Share" i]\n
\nAnd done, everything useless is now removed.
\nMy full list of rules for YouTube goes as it follows:
## YOUTUBE FILTERS ##\nwww.youtube.com###comments\nwww.youtube.com##.ytp-ce-element\nwww.youtube.com###hover-overlays\nwww.youtube.com##yt-icon.ytd-badge-supported-renderer\nwww.youtube.com###related\nwww.youtube.com###donation-shelf\nwww.youtube.com###voice-search-button\nwww.youtube.com##.ytp-show-tiles.videowall-endscreen.ytp-player-content.html5-endscreen\nwww.youtube.com###guide-section-title\n\n# Useless buttons\nwww.youtube.com##[aria-label$="Create" i]\nwww.youtube.com##[title$="Shorts" i]\nwww.youtube.com##[title$="Trending" i]\nwww.youtube.com##[title$="Music" i]\nwww.youtube.com##[title$="Movies" i]\nwww.youtube.com##[title$="Gaming" i]\nwww.youtube.com##[title$="Sports" i]\nwww.youtube.com##[aria-label$="Clip" i]\nwww.youtube.com##[aria-label$="Share" i]\n
\nWhich will remove most of distracting trash lying around on the website.
\nThe main page could use some more rules but I’m working on that.
Those are rules for misc websites from web shops to food delivery websites, everything else than monoliths like YouTube is there:
\n## MISC WEBSITES ##\npartco.fi###cookieNotice\nverkkokauppa.com##.special-days-ribbon-accordion\ngithub.com###feed-next\ngithub.com##.js-notice\ngithub.com##[aria-label$="Explore Repositories" i]\ndnsimple.com###dnsimple-support-wrapper\nwolt.com##[data-test-id$="OrderBubble" i]\nwolt.com##[data-test-id$="Discovery.AllLink" i]\nwolt.com###footer\nposti.fi###beta-posti-footer\n
\nHowever, there is some websites you can’t improve, even with blocking annoying elements, this is where the full block comes in place.
\nSome of the domains on my personal list are:
## DOMAINS BLOCKED ##\n||reddit.com # Redirected via privacy addon\n||twitter.com # Redirected via privacy addon\n||facebook.com # Useless domain\n||instagram.com # Useless domain\n||pinterest.com # Useless domain\n
\nReally simple and short post for today.
\nJust to serve as a reminder: BLOCK. THOSE. ADS. and if you want to support your favorite creators, donate to them directly through whatever platforms they have.
Oh, also, happy new year in advance, let’s hope 2023 will be brighter.\nI’ll see you next time!
\n", "url": "https://jae.fi/blog/2022/12/30/lets-make-the-web-bearable/", "title": "Let's make the web bearable", "summary": "For this last post of the year, let's see something simple: my personal uBlock Origin filters.If you don't know already, uBlock Origin is a powerful blocker for...", "date_modified": "2022-12-30T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/12/11/moving-further/", "content_html": "Aproximately one year ago, I published the blog post titled Moving Forward
which was basically my coming out post.
\nSince then, I decided that I would do all the announcements and coming things in some sort of masterpost at the end of the year.
So here it is, a summary of what has been done and what is to come this year!
\nThis year was calmer than 2021 as in no big changes but it doesn’t means nothing happened.
\njae.fi
-> 777.tf
(jae.fi
will remain active until all services are moved out)2023 will, hopefully, be a more dynamic year. Here is what is planned.
\nThat was all for today, really short post.
\nThanks everybody for tagging along and I’ll see you next time!
I opened my first website around 2010, I was 9.
\nIt was hosted on a free hosting service called Wifeo which had the perk of not having ads injected in your pages back then.
The website itself was very simple, a regular HTML document with an attempt at adding a background that resulted in having a looped one given I didn’t knew very well CSS at the time.
\nThe background was of a CPC computer which I liked at the time.
The website contained multiple pages like:
\nThis is basically what started my online presence.
\nIt’s around the same time I started being active and a french Minecraft forum and another Furry one.
At the time, I did all of this first from the computer of my parents and then from a HP Compaq which originally came with a single GB of RAM and Windows XP.
\nIt’s around that time that I really started programming a lot and learning stuff around.
\nFast forward few years, I am now near high school.
\nI haven’t had a website for quite a few years (the first one lasted around three years which is exceptionally long for me) and decided to make another one.
Before, I always ran stuff off free hosting providers.
\nTo cite some, we had, of course, Wifeo but also Hostinger (can’t remember the name of their free version) and Dyjix.
\nBut until then, I was also relying on the free subdomain they would give me which wasn’t practical when a host closed or when I wanted to move.
\nSo I started using Freenom, with a .cf
domain which is a free domain. This lasted aproximately two years until I got a student discount which allowed me to register a .me
for a year for free.
\nIt’s after all of this that I made this one, which was super simple.
For now, all my websites were simple single-pages where I was just redirecting to other places.
\nThis changed when I got what would become my main domain for the time, jae.moe
(now redirecting to this website).
\nThat website was running on GoHugo and generated with the GitLab CI from TeDomum.
It’s also during that time that I started experimenting with tracking (GoatCounter for instance) and quickly realised it wasn’t viable.
\nLater, during my second and last year of school (BTS for french speakers), I found a job in Finland so I bought the domain you are probably using to see this on, jae.fi
.
\nThe first version of jae.fi
was just a simple HTML page saying “Moikka” just to wait until I had something potable.
\nMy website reverted to being a small one-page website with something looking like a terminal MOTD.
At this time, my website was evolving super quickly, changing styles and ideas every two seconds.
\nFonts, CSS, colours, everything changed and was tweaked at some point.
\nAt some point, it even had a webring an announcement system but it only lasted a very short period of time.
Later, I made this version that had a CRT flicker effect which was annoying for a lot of users and not great performance wise.
\n\nIt’s only near the end of 2022 I started working on this website.
\nFirst using GoHugo, I wanted to centralize everything in one point for maintenance easability reasons.
\nI recently swapped GoHugo for my own thing given the limitations of the software. This is how you are seeing this website now.
At the moment, this website is fully open-source, its content under the CC BY-SA 4.0 license and has no tracking.
\nThe only thing I can say for sure for the future is that it won’t change soon.
\nThe core remains the same: no tracking, open, no ads.
Thanks a lot to all the people that followed my various blogs over the years and thanks to you for reading that small timeline.
\nI’ll see you next time.
Hey there!
\nAs promised in a previous post, I am starting to sponsor various Open-Source projects.
\nHere is the list of people I’m sponsoring now:
For some reason, the TeDomum donation is set on secret.\n
\nIf you have any ideas of people or projects I could start donating to, please let me know.
\nIf you can, I also encourage donating to people that make the software you use every day!
Also, let’s not forget the one-time donation to the Debian Project (donated via the "Click & Pledge platform advertised on the website of the Debian Project):
\n\n\n\nAs of 2022:10:31T08:23:00+02:00, 100 USD = 100.75EUR. Is censored on the receipt: exact address, phone number, some financial data.
\n
For those who are still donating via LiberaPay, while I appreciate the sentiment, I would ask you to please, please stop them as I don’t need them anymore and I haven’t found a way to stop donations flowing to me on the dashboard (if you know how, please contact me).
\nAgain, the warmest, thank you for supporting me in these hard times.
I’ll see you next time!
\n", "url": "https://jae.fi/blog/2022/10/31/giving-back/", "title": "Giving back", "summary": "Hey there!As promised in a previous post , I am starting to sponsor various Open-Source projects.Here is the list of people I'm sponsoring now: Kavin - Maintain...", "date_modified": "2022-10-31T14:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/10/21/announcing-overengine/", "content_html": "Hey there!
\nIf you are present in my Matrix channel and generally in Matrix places where I also am, you may have seen I’m currently making my own blog engine which powers this very blog.
In the beginning, my website was a simple HTML single page, just saying where my GitHub and blog were.
\nThen, I started making a small Wiki about random stuff which was using DokuWiki.
Later that year, I remade the main website using NextJS to try to learn it, it was pretty painful and not really efficient so I then, even later, replaced it by a static version.
\nWith this website, I had the frequent complain that the CRT effect on screen was painful to look at, so time to make a new style.
\nIt’s during that time that I came out with the CSS that is currently hosted on the website which is made to mimic oldskool websites.
As blog engine before, I was using Ghost.
\nI originally chose Ghost because it is fairly easy to use and I didn’t see all the influencer bullshit around it.
\nAt some point, an upgrade asked for a migration that never worked so I decided to go hunt for an alternative.
It’s at that point I ended up using GoHugo again which is pretty solid only for one detail.
\nIn GoHugo, you have to specify that baseURL
which is set in stone and not dynamic.
\nFor instance, if somebody tries to access the blog using TOR (which I have) or a mirror domain (which I also have), they will be stuck with lots of links and feeds generated with the main domain set in baseURL
.
It’s from that need that emerged this little project.
\nMeet Overengine, my over-engineered, homebrew, blog engine.
\nIt is made in TypeScript (don’t hate me, I have to learn this tech at the moment) and has several features:
That’s a lot of stuff so let me explain the ones people asked the most questions about.
\nBasically, it’s solving the problem encountered at the end of the part one of this post: GoHugo is set with that baseURL
parameter.
\nUsing Overengine, everything is generated on the fly which means you can access the website from any domain and even through TOR without being affected in any way.
The best example is on the JSON feed. For instance, the JSON feed if accessed from jae.fi
:
{\n "version": "https://jsonfeed.org/version/1",\n "title": "Jae's Blog",\n "home_page_url": "https://jae.fi",\n "feed_url": "https://jae.fi/blog/index.json",\n "description": "The blog of Jae."\n}\n
\nAnd when accessed throught TOR:
\n{\n "version": "https://jsonfeed.org/version/1",\n "title": "Jae's Blog",\n "home_page_url": "http://jaednob5azseoa2coeehrh2idwwqesu5mwvuqs3fwp3ekxhkl2lfpuyd.onion",\n "feed_url": "http://jaednob5azseoa2coeehrh2idwwqesu5mwvuqs3fwp3ekxhkl2lfpuyd.onion/blog/index.json",\n "description": "The blog of Jae."\n}\n
\nWhich makes it possible to have a TOR-only setup for feeds for instance.
\nIt’s fun.
\nOf course, the software is Open-Source and under the MIT license, you can check out the repo here.
\nAlso, check out the new feeds added by the software and don’t forget to subscribe to those with your favourite reader/software/bot to not miss anything of the blog:
I’ll see you next time!
\n", "url": "https://jae.fi/blog/2022/10/21/announcing-overengine/", "title": "Announcing Overengine", "summary": "Hey there!If you are present in my Matrix channel and generally in Matrix places where I also am, you may have seen I'm currently making my own blog engine whic...", "date_modified": "2022-10-21T09:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/09/30/my-name-has-finally-been-changed/", "content_html": "Hey there.
\nAs you may know, I love the french state when it comes to anything being related to it, especially the administration related to names.
Well, today, I am happy to announce that my name change request has finally been accepted in france.
\nIt is after more than a year and half to wait and multiple request to the défenseur des droits (or defender of rights when translated) that the embassy finally announced to me that it was accepted.
I’ll see you next time in a real article as this one was more of a small announcement rather than a full-blown blog post.
\n", "url": "https://jae.fi/blog/2022/09/30/my-name-has-finally-been-changed/", "title": "My name has finally been changed", "summary": "Hey there.As you may know, I love the french state when it comes to anything being related to it, especially the administration related to names . Well, today, ...", "date_modified": "2022-09-30T07:46:26.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/09/25/new-blog...-again/", "content_html": "Hey there everybody.
\nAs you may guess by the title, I’ve done it again, I changed the blog engine, once more.
\nReason for it is mainly simplicity. This year, I started making a small wiki which at some point moved to the main website and now I am doing the same for the blog.
\nIt is also that Ghost has too much stuff and I’m too lazy to maintain it properly.
\nAs a bonus, I added the archived blog posts from the old-old website.
\nAlso, the new RSS feed URI is https://jae.fi/blog/index.xml now so don’t forget to change it in your readers.
\nThat’s all for today’s post and I’ll see you next time!
\n", "url": "https://jae.fi/blog/2022/09/25/new-blog...-again/", "title": "New Blog... Again", "summary": "Hey there everybody. As you may guess by the title, I've done it again, I changed the blog engine, once more . Reason for it is mainly simplicity. This year, I ...", "date_modified": "2022-09-25T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/09/19/thanks-for-the-help!/", "content_html": "Hey there!Over the last months, you may have noticed the banners all over my websites and instances asking you for financial help.
\nAs a recap, here is a bit of background:In July of this year (2022), I got laid off my job because of company financial problems.Then, having no real plans nor savings, I entered panic mode and started asking for some money (even tho I hate that) to at least be able to maintain the services online.
\nToday, as of Sept 19 2022, I started at a new company and can happily say that the situation is now resolved.
\nI want to thank everybody that donated, even if only an euro or two because without them, none of all the services would be still standing right now.
\nNow plans are:
\nBut also:
\nOf course, every receipt of those will be published on a newly created page (I will announce the creation on ActivityPub, Matrix and maybe on this blog).
\nThanks a lot again to everybody and I’ll see you next time!
\n", "url": "https://jae.fi/blog/2022/09/19/thanks-for-the-help!/", "title": "Thanks for the help!", "summary": "Hey there!Over the last months, you may have noticed the banners all over my websites and instances asking you for financial help. As a recap, here is a bit of ...", "date_modified": "2022-09-19T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/08/30/changing-names-in-france/", "content_html": "Changing names should be something easy, I guess the french state didn’t get the memo.
\nJust to set some grounds, where I reside (but not a citizen yet), in Finland, I did the name change request around 2021/07/14 and obtained a positive response on 2021/07/30 (so overall less than a month). It also took more or less a month to get a foreigner ID for Finland (not for travel).
\nSo, for France, our journey starts in May 2021, I just moved in Finland and decided to finally change my name after all those years. So I started looking what I needed and the document asked are quite hefty:
\nTo top it off, it is not possible to send the file via email (at least at this embassy) and a physical appointment is required, so all the files had to be printed.
\nAfter months of waiting, I finally gather all the documents, including that family attestation thing and time comes to take an appointment. In the end, the appointment will take place on 2021/06/11 at 10:50 EEST.
\nDuring this appointment, I give all the required files, copy of old ID and such. The person whom I am talking to tells me the delay is around three months which seems incredibly fast for the french state.
\nSo I wait a bit and one day, that person contacts me again asking for more documents, one being a proof of where I live (something like a phone or electricity bill can do) which I gave. Then silence.
\nI waited until around january 2022 where I tried re-contacting the person but nothing. No response.
\nI then filed a complain at the Défenseur des Droits (or Defender of Righs when translated), the request took some weeks to get through but finally ended up talking to M. Nicoloso Patrick which started to push my case to the embassy and, had been so far, the most helpful person I encountered in this story.
\nAfter one or two months of waiting for documents and requests to be thrown around, the embassy finally broke silence, after multiple months, asking me for a last document from a family member (which I got and sent).
\nThen the communication became cryptic again. I recently tried asking them where was my file at and still the same answer:
\n\nThen sent one saying I wanted a valid ID before start of 2023, because of travels within the EU and got this response:
\n\nI then asked to know if I would have a guaranteed response at least in December but no answer as of yet.
\nI will update this post with new screenshots when they come. Only non-publicly available names and addresses are blanked. I’m just fed up with waiting.
\nAs of today, the saga still goes on and no definitive answer which makes it hard to do anything, let alone just travel, change names on state registers or even have a valid passport.
\nI’ll keep you people updated and I’ll see you next time!
\nAfter months, the embassy finally responded.
\nThey won’t say what the answer is via e-mail and will sent it via post on 2022/09/30.
Hey there everybody, long time no see (for a real, written article)!Today, nothing fancy, just (re)announcing some stuff said in various places (mostly on Matrix).
\nThis year, I started hosting again some services I have been hosting before but stopped due to personal reasons but in the meanwhile, I added some others. Here is the full list of currently public services:
\nI am also in the process of developing some other proxies of my own but that remain a heavy WIP (see my GitHub profile for more).
\nI also adjusted some things on the roadmap of the infrastructure.
\nIf everything goes as planned, the router will stop announcing legacy prefixes (or IPv4) on Jan 31 2024 and therefore, all services will only be available on IPv6-capable networks. If your ISP doesn’t supports IPv6, please harass them (kindly) to add support for it and meanwhile, check out my Library page about IPv6 tunnels to get a a prefix while waiting.
\nLegacy IP is becoming more and more unsustainable by being, for instance, one of the biggest costs on my infrastructure (around 120€ a month for a leased miserable /24). Given the high price, support might be dropped earlier but will be announced at least a month prior for users of public services to be able to adapt.
\nNow, I’d like to thank once again people that donated via the banner present on some of my websites & hosted instances, thanks again for helping me and for all the warm support!
\nI am currently looking at services to extend or improve so this wonderful support is repercuted to the whole userbase. If you have any idea of what could be improved / added, please message me on Matrix or via e-mail (I read and reply to every single one of those when they are not spam; if you have a Microsoft e-mail address, those won’t work with my host, sorry, that company decided my e-mails weren’t worthy enough of their shitty servers).
\nThanks again for the support and for reading this, I’ll see you next time, either in a Batch or a more traditional post.
\nP.S: don’t forget to add this blog to your favourite RSS reader to not miss anything :)
\n", "url": "https://jae.fi/blog/2022/08/16/news,-roadmap-&-instances/", "title": "News, roadmap & instances", "summary": "Hey there everybody, long time no see (for a real, written article)!Today, nothing fancy, just (re)announcing some stuff said in various places (mostly on Matri...", "date_modified": "2022-08-16T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/06/04/bye-ovh/", "content_html": "Hey there, small post to talk about a small thing I did recently which is to finally ditch OVH as my domain registrar.When I was living in France, OVH came as a good choice for domain names as it is pretty much a local platform and had lots of good deals (and still has on some TLDs) but when I moved in Finland and changed my name, some problems arose:
\nThis is why yesterday, I started transferring all my domains to Gandi which was recommended to me by a friend.
\nSo far so good, their interface is reasonably fast and I could, finally, configure that DNSSEC which is basically two clicks away in their thing.
\nEven tho Gandi is also French, this time, Finland does exists (even tho that can be up to debate on the internet) and I could use the right name.
\nSome domains are still waiting OVH to wake up but I believe it will be done in the week or so. There was just a small issue while transferring my main domain (jae.fi) but that got sorted out pretty quickly by the customer support.
\nSo, this was just a small post to announce that, nothing much.
\nOh, also, don’t ever touch OVH.I’ll see you people next time!
\n", "url": "https://jae.fi/blog/2022/06/04/bye-ovh/", "title": "Bye OVH", "summary": "Hey there, small post to talk about a small thing I did recently which is to finally ditch OVH as my domain registrar.When I was living in France, OVH came as a...", "date_modified": "2022-06-04T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/06/01/testing-phones-i-found/", "content_html": "Hey there!
\nRecently, I got a hold of some interesting phones so I guess I had to make a small blog post about those.
\nThe Nokia N900 is a phone with an integrated physical keyboard and even a stylus that was released in 2009 which was shipped with Maemo 5 back then.
\nI discovered this device while trying to install Postmarket OS on another and saw the nice support it had.It’s only recently that I could buy one for really cheap (around 25€) on the Finnish website Tori (like craigslist but in Finland).
\nI tested multiple OS on this phone including:
\nSurprisingly, the default OS, despite being from 2009 is still very usable today, however it suffers from being really outdated and having certificate problems.Otherwise, it is still a very potent phone by today’s standards.
\nThe only thing to note is that if you plan on running PostmarketOS on it, there is currently no battery protection which is something to keep in mind.
\nSo far, of all the times I ordered on Aliexpress, I never got deceived… until today.
\nAs some background, I recently ordered a 80€ smartphone from Aliexpress, supposedly being a S22 Ultra (yes, you heard it right, like Samsung).For once, the shipping was surprisingly fast, at around two weeks.
\nUpon unboxing, the phone itself looks pretty nice, you can clearly see it ressembles the Samsung S22 Ultra (on which it is copied).
\nHell, it even came with a stylus, headphones and a free case, what a deal!Only problem, upon launching it, I could only notice the cheap “Welcome” text animation that ran somewhere around 2FPS (and I’m pretty generous).
\nWhen the interface finally loaded, everything was kinda responsive and looked like Samsung Android. Only problem, this is only a facade, all apps have icons of Samsung apps but are in reality only the Android defaults.
\nAlso, I noticed in the settings that the phone exactly matches the seller’s page which means 8GB of Ram and 240GB of rom. Being naturally skeptical, I fired up adb and to my immense surprise, something bad showed up…
\nWhat? Have I been lied to??
\nSadly yes, this phone is in in reality displays a MTK6580_8.1 in its properties and upon a quick search on the internet, the specs match:
\nNow comes the case of that “128GB” Micro SD card included as a “gift” with the phone. Formatting the card to ext4 (or any filesystem) would work but mounting it always returns an error which may maybe be an indication that the card might be fake as well (yes it is).
\nAlso, after some time, inspected the multiple cameras at the back. Turns out all of them are fake except the very top one that is the only one that can actually take pictures. I’ll see more about that when I’ll take all of this apart (maybe for a next blog post 👀).
\nSo, in conclusion, remember two things:
\nOf course, I opened a dispute and given the activity of the seller, I’ll probably see my money again in some days (I’ll keep you updated for that).
\nThat’s all for today’s post, have a great pride month and I’ll see you next time!
\n", "url": "https://jae.fi/blog/2022/06/01/testing-phones-i-found/", "title": "Testing phones I found", "summary": "Hey there! Recently, I got a hold of some interesting phones so I guess I had to make a small blog post about those. Nokia N900 The Nokia N900 is a phone with a...", "date_modified": "2022-06-01T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/05/02/matrix-spam/", "content_html": "Greetings everybody.
\nIf you are on the Matrix network, you probably noticed that some new spam waves are coming in these days.
\nLet’s go through a small history of spam waves I experienced while moderating rooms there.
\nThis one was the first one I encountered and is the simplest form of spam. Basically, a user joins a room and then starts sending lots of messages usually containing the same text.
\nThose ones are easy to ban because it is the doing of only one user that is relatively easy to find.
\nThis one was also a early one I encountered and the principle is exactly the same as the classic spam except instead of message, the user will send gore images.
\nThe thing is that in plus of the annoying nature of the spam, the disgusting imagery will likely make lots of people leave until the situation is resolved and the messages deleted.
\nIt is resolved pretty easily like the classic spam.
\nThis is the method that has been used recently to slow down servers.Basically a certain user will take advantage of outdated and open servers that don’t check anything for registrations (no email, 3PID or captcha) to register thousands of accounts (event tens of thousands in some cases) and then make them join a single room at the same time.
\nThe federation lag caused by the mass join will render most servers in the room inactive as they have to catch up with federation (no event priority yet).
\nSometimes, the bot owners might also spam the room with messages in the meanwhile to add a bit more of hell into this.This is the spam method that has been used against Furry Tech on March 1st 2022 in an attack that started at around 06:00 (Europe/Helsinki timezone).
\n\n\nThanks to Tulir for compiling lists of user joins in spam waves.
\n
While my server (jae.fi) got the federation pretty much figured out pretty quickly (within two hours of the attack), some other servers (like the-apothecary.club) is still struggling with the backlog at the moment I am writing these lines and hasn’t federated any room changes yet (ACL, power level change, room access change).
\nTo mitigate this spam attack type, I mainly put the room on invites only (invites are restricted to admins) and fired up Mjolnir to do the big of the work.I also compiled a ban list with (almost) all domains that started spamming.
\nIn the meanwhile, another admin of the room started contacting homeserver managers (when it was possible) to let them know of this problem.Some of them acted very quickly and I want to thank them for that. Those servers got (of course) unbanned as soon as the mess was cleaned on their side.
\nNow the room has hundreds of servers in the ACL list but we are unlisting the servers where the managers are responding positively and are patching the problem.
\nSo if you are a homeserver owner, please, please, if you want to run open registrations, add some sort of gatekeeper, an email confirmation, a 3PID or even a small captcha.
\n\n\nGood remark from Dezponia in the Furry Tech channel:
\n
\n“[…] homeserver admins that know they don’ t need user registration, because the intent of the server is to be a single user instance for themselves, or just manual invites for friends, should disable registration entirely. Fast and easy to do and most likely the case for a lot of these servers since synapse had registration enabled by default until recently.”
This avoids that a single bad actor just creates thousands of random accounts in one go via a single API endpoint.Note that it will never stop spam completely but will at least render it more painful to setup in the first place.
\nThat’s all for today and I’ll see you next time!If you liked that blog post, don’t forget to subscribe to it via RSS and if you have any questions, feedback or just want to say hello, join my Matrix room (all of that is in the blog header)
\nP.S: a PR has been created to the moderation bot Mjolnir to be able to kick most bots in one go.
\n", "url": "https://jae.fi/blog/2022/05/02/matrix-spam/", "title": "Matrix spam", "summary": "Greetings everybody. If you are on the Matrix network, you probably noticed that some new spam waves are coming in these days. Let's go through a small history ...", "date_modified": "2022-05-02T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/04/01/matrix-coordinated-docker-swarm/", "content_html": "Got ya looking.
\nCheck out this cool fennec I found.
\n\n", "url": "https://jae.fi/blog/2022/04/01/matrix-coordinated-docker-swarm/", "title": "Matrix-coordinated Docker swarm", "summary": "Got ya looking. Check out this cool fennec I found. Cute fennec ...", "date_modified": "2022-04-01T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/03/21/jaes-kitchen-making-crunchy-peanuts/", "content_html": "Greetings everyone, today, I’m gonna show you how you can make a crunchy peanut topping that can also be eaten as a snack.
\nYou will need:
\nFirst, put the sugar and water into the pot and put the head on medium.
\nWhen it becomes a syrup, add the peanuts.
\nLet the water evaporate. When it is evaporated, stir it until it has a brown-ish colour.
\nWhen it is good enough for you, put it on a sheet of cooking paper to cool down.
\nAnd voilà, you have crunchy peanuts that can be used as a topping or eaten as a snack.
\nI’ll see you next time!
\n", "url": "https://jae.fi/blog/2022/03/21/jaes-kitchen-making-crunchy-peanuts/", "title": "Jae's Kitchen: Making Crunchy Peanuts", "summary": "Greetings everyone, today, I'm gonna show you how you can make a crunchy peanut topping that can also be eaten as a snack. You will need: 150g of sugar 150ml of...", "date_modified": "2022-03-21T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/02/22/two-weeks-of-vr/", "content_html": "Hello people!
\nI recently got my hands on a VR Headset: the Valve Index, which is something I wanted to try and experience on my own for quite some time.Previously, I only got the occasion to try VR three times in total (and that was at the time of the Occulus Rift, so quite old. One was in a professional setting in which VR was used to design and test parts inside of a 3D modeled plane and the other two at various gaming-related conventions (the Savoie Retro-Games to cite the most well-known).
\nFirst off, getting VR to work is quite the setup (at least with this headset).You will be handed:
\nThe first step I did was to install the base stations and there was one of the first problems. The official guide recommends you to drill holes to screw the stations directly to the wall which would be the best method, but, problem is that I do not own a drill capable of the diameter required for the stations and buying a drill only for that seems a tad expensive (also, laziness).Instead of that, I used plain old double-sided tape which does its job wonderfully (even though the setup looks very cursed now).Each base station has its own power brick and does not needs to be connected to the computer.
\nAfter that, you need of course to plug the headset into your computer, start SteamVR and begin the calibration.Those steps are really easy and the calibration is basically outlining your room using one of your controllers.After this step, everything should work as intended… if you’re not running on Windows 11.Yup, that’s what I did at first. When waiting for the headset to arrive, I installed Windows 11 on another disk, naively thinking “Oh, it’s not that different from 10, it should work correctly”, suffice to say, it doesn’t.Basically, SteamVR (same with the beta) would sometimes ask you to recalibrate everything, during gameplay, you would start clipping through the floor or just speed through spacetime without even touching your controllers.I then downgraded to a Windows 10 installation which fixed all the annoying problems.
\nNow, let’s get to the best part: the games.Basically, the first game I ever launched in VR is Half-Life: Alyx, one could say I bought VR mostly for this game and I wasn’t deceived.As of now, HL:A is the best VR game I have ever played. Weapons are usable easily and all have their own quirks that makes them useful, environments are very diverse, detailed and will reward those who will look a bit further than the surface level with some plans, drawings or even books that add even more depth to the world of Half-Life. The story itself? Well, it’s a Valve game.Even though the game itself is very short (could finish it under 10 hours of playing), you find yourself stopping often just to observe the environment or the landscape. The best example of this is when you launch a new game, the scene feels real but isn’t too overwhelming.In the end, if you want the best VR title so far, go for it, it’s worth every single second.
\nOther notable games are VRChat which can seem boring at first but you end up growing a liking to it.H3VR (Hot Dog Horseshoes & Hand Grenades) is also a nice game if you like to shoot stuff. The gunplay in this game is more focused on realism and throughout gameplay, you can see how much effort has been put in every single weapon even though the game itself is made by a very small team.Here is a small video of me shooting hot-dog targets to demonstrate the game:
\n{{< yt “L7A34ye4u8M” >}}
\nIn the end, VR is probably the one of the greatest things I ever used.Sadly, the entry price for it is still quite high and cheaper options such has Quest headsets are owned mainly by Meta.Hopefully, Open headsets such as the Relativity will become more widespread and cheaper over time.
\nI’ll write an update when I will have taken some time to install a Linux to test VR and see if it works as well as on Windows.Until then, I’ll see you next time!
\n", "url": "https://jae.fi/blog/2022/02/22/two-weeks-of-vr/", "title": "Two weeks of VR", "summary": "Hello people! I recently got my hands on a VR Headset: the Valve Index, which is something I wanted to try and experience on my own for quite some time.Previous...", "date_modified": "2022-02-22T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/01/21/going-ipv6-only/", "content_html": "Good evening all of you, in today’s post, we’re gonna talk about going IPv6 only.
\nFirst, let’s remind ourselves what is IPv6. Wikipedia describes it as such:
\n\n\nInternet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP) […] IPv6 was developed by the Internet Engineering Task Force (IETF) to deal with the long-anticipated problem of IPv4 address exhaustion. IPv6 is intended to replace IPv4. In December 1998, IPv6 became a Draft Standard for the IETF, who subsequently ratified it as an Internet Standard on 14 July 2017.
\n
So, the main points are:
\nBut also other, other points not shown in that short introduction:
\nOne big advantage of IPv6 is that you could give every living creature on this planet (Earth) billions of addresses and still have millions left to play with. This means that every device, that is phones, tablets, computers, servers and so on can have their own unique address.
\nGoing IPv6 only is easy with MikroTik, just go into WinBox, IP → DHCP Client and delete everything there.
\nNow, first thing: configuring DNS servers.
\nI use DNSCrypt-proxy on my main machine, you can see the documentation for it on the ArchWiki. I use the cloudflare-ipv6
servers.
Only problem: lazy websites that never bothered to use IPv6 (hello Slack and others, blaming their hosting platforms, that support IPv6 BTW, instead of moving their arses).
\nFor that, during business hours (as my current work relies on Slack), I use the Trex.fi DNS64 server, which does its job wonderfully.
\nAt the end, I don’t feel I’m missing out on anything by turning off IPv4, only badly made software and websites break.
\nFor the ones that are doing it correctly, that we use often is:
\nAs for the bad students:
\nOverall, it is a fun and interesting experiment, but also a sad one when seeing how many providers actually use it.
\nThat’s the end for today, and I’ll see you next time!
\n", "url": "https://jae.fi/blog/2022/01/21/going-ipv6-only/", "title": "Going IPv6 only", "summary": "Good evening all of you, in today's post, we're gonna talk about going IPv6 only. First, let's remind ourselves what is IPv6. Wikipedia describes it as such: In...", "date_modified": "2022-01-21T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2022/01/01/ulauncher,-my-new-friend/", "content_html": "Greetings peeps, first, happy new year, I hope 2022 will be a good year for you!
\nNow, let’s go on with today’s subject: uLauncher which is in my mind the best application launcher around.
\nFor the little backstory, I was trying to find OBS Studio in the horrendous default XFCE start menu (yes and as much as I love XFCE, I cannot use that damned menu). I then remembered that on macOS, we have that Spotlight search bar (that you trigger using CMD+SPACE) that has to be one of the most useful things.
\nI then started to search a bit around the web, only to find what I looked for: uLauncher.
\n\n\nNote: thanks to Cadence for mentioning the existence of Krunner and Kupfer that can fill out the exact same purpose.
\n
Installing is effortless (at least on Arch) if you have an AUR package manager like Paru and is simply paru -S ulauncher
(or ulauncher-git
if you prefer to live on the edge).
After installation, a last systemctl --user enable --now ulauncher.service
and you’re all set, you can now try CTRL+SPACE to reveal the launcher and start typing.
But wait, there’s more!
\nYou can actually extend uLauncher with countless extensions which can do anything from calculating currencies to copying emojis. It is very random, but some of those are really useful.
\nMy current setup uses those extensions:
\npip3 install pytz pint simpleeval --user
before installing)In the configuration window, you will also find the search engine tab, which you can customize by bringing your own to it.
\nWell, I think that’s enough for today, if you liked this article, you can subscribe to this blog via RSS.
\nAgain, let me reiterate all my wishes of good health and happiness for this new year that is 2022.
\nI’ll see you next time!
\n", "url": "https://jae.fi/blog/2022/01/01/ulauncher,-my-new-friend/", "title": "uLauncher, my new friend", "summary": "Greetings peeps, first, happy new year, I hope 2022 will be a good year for you! Now, let's go on with today's subject: uLauncher which is in my mind the best a...", "date_modified": "2022-01-01T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/11/15/moving-forward/", "content_html": "Ce billet est disponible en francais! | This post is available in french!
\nGreetings, small post today, nonetheless important.
\n\n\nTL;DR: I’m transgender, please use the she/her pronouns with me now.
\n
Those whom know me AFK (away from keyboard) might have noticed some changes over the past year or so (since April 2021 to be more precise) and the reason for this might come as a surprise to some of you.
\nOn April 28th 2021, I started a transition, but it was only the first step of a long journey.
\nNow that I moved on my own, settled in a place I can call home, I feel much more comfortable coming forward like this. Finally, getting a job at the start of the year acted like a catalyst through which I started to feel better.
\nSince I moved, I started enjoying small things again such as walking around where I live, eating a good homemade meal or just listening some music instead of surviving for the sake of surviving.
\nIn the past few months, I met countless people which are now good friends, support me in any situation, and they are proving to me that improvement is possible.
\nSo now the time to thank people for support:
\nAnd most importantly, thanks to you for reading this far.
\nIf you have questions after reading this, my direct messages are open on Matrix (@me:jae.fi) or any other platform (you’ll already know how to contact me there then).
\nThe journey is long, but the path is free, I’ll see you next time!
\n", "url": "https://jae.fi/blog/2021/11/15/moving-forward/", "title": "Moving Forward", "summary": "Ce billet est disponible en francais! | This post is available in french! Greetings, small post today, nonetheless important. TL;DR: I'm transgender, please use...", "date_modified": "2021-11-15T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/08/15/housekeeping-episode-1-the-idea/", "content_html": "Greetings everyone, today a chill post about an idea I just had (and yes, I know I haven’t posted anything in some time now).
\nWhile waking up this morning, I had an idea: let’s stop living in a complete mess of cables and actually organize everything, at least a bit.
\nThen during the day, little by little, I started removing stuff from my living room (that is also where my bed is since my apartment is quite little).
\nOne of the most challenging things was to clear up the cable mess that comes with having multiple monitors and other stuff plugged in at all times.
\nThe plan, next, is to buy an IKEA shelve that I will place at the opposite side of the desk. A bed that I will be placed where the Lacks and the seat are in the pic (at the very back). All of this is from a confused drawing I did this morning to avoid losing the idea itself.
\nFor the shelves, I decided to go with a Kallax from IKEA, which seems to be a great one for the price (we’ll see that on the next post of this small series).
\nFurthermore, some friends suggested adding LED strips (Edit: white LED strips, RGB stuff hurts my eyes) at the bottom of the walls and in the corners of the room. I have yet to decide if I will do it because I have absolutely no clue on how to wire all of those things to make it work, let alone how to control it.
\nAt least at the end, I think the result will be pretty nice looking and I will keep you peeps posted about it! If anyone has any idea on how I could improve all of that, please message me on Matrix (@me:jae.fi) and I will be happy to hear about your suggestions!
\nI’ll see you next time.
\n", "url": "https://jae.fi/blog/2021/08/15/housekeeping-episode-1-the-idea/", "title": "Housekeeping episode 1: The idea", "summary": "Greetings everyone, today a chill post about an idea I just had (and yes, I know I haven't posted anything in some time now). While waking up this morning, I ha...", "date_modified": "2021-08-15T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/07/02/server-downtime,-the-post-mortem/", "content_html": "Hey everyone, as you may have seen yesterday, all services were offline for several hours after a maintenance concerning the disks of the current server.
\nI decided to replace one of the 300Gb disks for a newer 2Tb one from Seagate, which I bought brand new from Verkkokauppa. Near 13:00 UTC+3, I installed the disk onto the physical host and performed a clean installation of VMware ESXi.
\nQuickly, I realized something was wrong, the fans were louder than usual and the server was not shutting up after some time like it usually does. I then jumped into iLO and saw, the temperature reading of the disk which was at around 50C which was causing the fans to go as fast as possible (79% according to ESXi’s sensors readings).
\nBy security, I decided to shut down the server until the disk problem is resolved (and mainly because I couldn’t sleep with all the noise it was doing).
\nTurns out… HP hardware doesn’t like unapproved hardware to be attached to it. After some research, it turns out only a bunch of disk have sensors that register correctly with iLO. Luckily, one of those is a Western Digital Blue that was sold at Verkkokauppa, so I got one this morning, 2Tb as the disk before.
\nThe new disk installed, the server is as quiet as before. All services are restored and back to normal as of now.\nSo, if you own an HP server and want to upgrade the disks, stay away from the Seagate ST2000LM015 and pick a WD Blue WD20SPZX instead (at least for my ProLiant DL360 G7).
\nI’ll see you next time!
\n", "url": "https://jae.fi/blog/2021/07/02/server-downtime,-the-post-mortem/", "title": "Server downtime, the post mortem", "summary": "Hey everyone, as you may have seen yesterday, all services were offline for several hours after a maintenance concerning the disks of the current server. I deci...", "date_modified": "2021-07-02T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/06/26/the-case-of-accessibility/", "content_html": "Hey everyone, as you may have noticed, the blog has seen lots of theme changes in the last days. Truth is, I thought I finally found the right theme for my blog some time ago, when I found this “Norlin” theme.
\nOnly problem? People that wish to block JavaScript couldn’t even see the content due to some stupid decisions on the theme maker’s side. As mentioned by someone in the Blogger’s Gathering Matrix room, it might have been the script that did the fade when loading the website.
\nFirst, as mentioned by someone else, you don’t need JavaScript to do a fade, CSS is more than enough. When contacting the support for the theme, asking to see if something could be done, they explained to me that “JavaScript is required for this theme and cannot be removed” which is something I can’t really accept.
\nIf the theme is so much tied to JavaScript that it displays a blank page if you disable it or if there is an error in the said script, there is something wrong somewhere.
\nThis is why I decided to remove completely the theme from the blog and install a new one, derived from the default terminal-theme and named jae-theme which is also Open-Source.
\nUnlike the old one, this one works even if you are blocking JavaScript and web fonts.
\nAs much as I want a nice-looking blog, if it blocks users from seeing it, it doesn’t feel right to me. I want my content to be available to everyone, for free, forever, without any filters.
\nI think that’ll be enough for today!
\n", "url": "https://jae.fi/blog/2021/06/26/the-case-of-accessibility/", "title": "The case of accessibility", "summary": "Hey everyone, as you may have noticed, the blog has seen lots of theme changes in the last days. Truth is, I thought I finally found the right theme for my blog...", "date_modified": "2021-06-26T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/06/26/tor-support-(outdated)/", "content_html": "Greetings everyone, today a post on the Tor support that just shipped on my services.
\nAs you may have seen on my Mastodon, all major services now have a Tor address, which are:
\nAll services were migrated without a hiccup except for the blog which runs on Ghost. The software doesn’t support multiple hosts and this was causing problems as it was trying to upgrade the Tor URL to an HTTPS one. The solution was pretty easy: create a mirror blog which uses the same database as the first one that only serves on the ONION address.
\nI will never block Tor, and having onion addresses is now the default on my host.
\nI’ll see you next time!
\n", "url": "https://jae.fi/blog/2021/06/26/tor-support-(outdated)/", "title": "TOR Support (outdated)", "summary": "Greetings everyone, today a post on the Tor support that just shipped on my services. As you may have seen on my Mastodon, all major services now have a Tor add...", "date_modified": "2021-06-26T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/06/17/blog-update/", "content_html": "Greetings everybody! As you may have seen, the blog got a new skin (again) but this time, it will be more permanent.
\nI’ve decided to finally use a dark theme for this blog as I received several complains of people asking me to add one.
\nAlso, you may have noticed, there is now a comment section under each and every post.
\nThose comments are powered by the software Cactus Chat that uses Matrix to provide a privacy-respecting comment section. It is very simple to add it on a blog and really easy to use (if you already been on Matrix before).
\nAmong other things that changed, this blog also supports WebMention now, it is just a small bonus but I wanted to test it.
\nThat is enough for today and I’ll see you next time!
\n", "url": "https://jae.fi/blog/2021/06/17/blog-update/", "title": "Blog update", "summary": "Greetings everybody! As you may have seen, the blog got a new skin (again) but this time, it will be more permanent. I've decided to finally use a dark theme fo...", "date_modified": "2021-06-17T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/06/15/apple-m1,-three-months-later/", "content_html": "Hello everyone. I’ve been using the Apple M1 for well over three months now and in my first article, I promised a follow-up so here I am! If you haven’t read it, it is located here.
\nWell, surprisingly, the MacBook Pro M1 held on its promises. Even after heavy daily use for now more than three months, the battery is still spectacular and the performance likewise.
\nThe software side has received few updates (not that much in comparison to what I had when I ran Linux) but those broke nothing so far and were totally painless (macOS lets you reboot when you want to).
\nEven though I may use that laptop way more than what is probably expected of it (goodbye sleep, I love having weeks of uptime), it holds without a problem almost any work I can throw it at.
\nSince the last article, Docker has finally come out on this platform and now works flawlessly. The biggest problem I encountered so far with my job is when trying to build the front-end of an app that uses yarn packages, the build fails (probably due to an outdated package or something?) but I don’t give it much thought as front-end isn’t my job.\nWhat I also find frustrating on macOS is the fact you need to download Xcode packages to get basic stuff such as Git. Even though I don’t use it, Xcode is bloating my drive on this machine.
\nTo sum up, the M1 stays a strong machine, even after months of intensive use. However, the price tag starting at 1.5k euros is very high, even for a machine like that. So unless your company pays for it, or you are rich, don’t buy one, keep your money to buy a ThinkPad (especially old ones) or any other laptop that may not have the same performance, but that will give you at least some degree of control over the software and the hardware of your machine. If macOS can be pleasant to use, it also has constant reminders of it being closed and restricted on everything.
\nThat will be enough for today, and I’ll see you next time!
\n", "url": "https://jae.fi/blog/2021/06/15/apple-m1,-three-months-later/", "title": "Apple M1, three months later", "summary": "Hello everyone. I've been using the Apple M1 for well over three months now and in my first article, I promised a follow-up so here I am! If you haven't read it...", "date_modified": "2021-06-15T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/06/11/server-update/", "content_html": "As you may have seen yesterday, the services were offline for a period of 30 minutes following a maintenance of the server that added 16Gt of RAM, bringing it to a whooping 64Gt of RAM.
\nThe next interruption will be announced when it will be time to upgrade the storage (which will probably be done some time during next month).
\nI’ll see you next time!
\n", "url": "https://jae.fi/blog/2021/06/11/server-update/", "title": "Server update", "summary": "As you may have seen yesterday, the services were offline for a period of 30 minutes following a maintenance of the server that added 16Gt of RAM, bringing it t...", "date_modified": "2021-06-11T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/06/06/accounts-deleted-in-this-trimester/", "content_html": "I have decided to share the list of accounts I deleted in the last three months from major platforms and the reasons behind it. Let’s get started!
\nThis year hasn’t seen that many accounts deleted. Considerable changes appeared back in 2016-2017 when I started to take privacy matters a bit more in consideration.
\nNow the only major accounts left are two YouTube ones and a Google Drive one (awaiting migration to Nextcloud) but those should be removed by the end of the year.
\nI’ll see you next time!
\n", "url": "https://jae.fi/blog/2021/06/06/accounts-deleted-in-this-trimester/", "title": "Accounts deleted in this trimester", "summary": "I have decided to share the list of accounts I deleted in the last three months from major platforms and the reasons behind it. Let's get started! Reddit.com (1...", "date_modified": "2021-06-06T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/05/22/infrastructure-change/", "content_html": "Greetings everyone!
\nAs you may know if you are in channels sourrounding me, I finally stepped up in my self-hosting quest and got a home server to host all my stuff myself.
\nIn the past week, as I got this new machine, I started moving my different services and sites on it (which is fully done now), so sorry if it was a bit laggy or just completely down for some time.
\nNow, the next goal is to get the hardware required to make mass storage possible, which I hope will be possible over the next months.
\nIn other news, I have a small Matrix room to talk about this blog, so don’t hesitate to join!
\nI’ll see you next time!
\n", "url": "https://jae.fi/blog/2021/05/22/infrastructure-change/", "title": "Infrastructure change", "summary": "Greetings everyone! As you may know if you are in channels sourrounding me, I finally stepped up in my self-hosting quest and got a home server to host all my s...", "date_modified": "2021-05-22T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/04/04/an-honest-review-of-the-apple-m1/", "content_html": "Recently, I’ve got into my hands one of the latest MacBook Pro M1 from Apple. As you may know, I’ve never been a big fan of Apple products, often saying those were overpriced pieces of crap.
\nWell, surprisingly, this machine changed my mind as it is basically astonishing to see how well it runs for an ARM-Based processor. In this article, we’re not gonna talk about benchmark (because I mainly find those irrelevant) but rather of everyday usage in my job (back-end developer).
\nFirst, this thing is fast, everything you open is near instant and that may be thanks to the damn 3G SSD.
\nSurprisingly, everything runs as it was an x86 processor, Rosetta 2 being completely transparent to the user and loosing very little performance at the end. Anything can run on it that is software (Renoise for instance) or even games (Minecraft being the most famous example).
\nI was also surprised by the performance of World of Warcraft which is surprisingly native to the M1 (good job Blizzard).\nOther applications like IDEs are running smoothly without any hiccups and now, most of those are actually M1 native like the JetBrains suite or Visual Studio Code. On the side of custom packages, Brew works as expected without problems and the major part of software will install without a problem. Compilation times are also more than generous (very fast) on projects I am working on. The only bad thing I see is the Docker support that is still a bit junky, but it is being fixed at the moment.
\nBattery life is another good point of this machine as it can hold a complete day without needing to be charged (08:30 to 23:00). For comparison, my ThinkPad T430 I got in April of last year barely passed the 2 hours mark.\nIn the end, Apple Silicon machines are looking very promising, given software providers start to support ARM correctly. Apple made the bet that they could switch to an ARM-based CPU, and they’ve done it correctly.
\nI’ll see you in three months to see if that positive review still holds.
\n", "url": "https://jae.fi/blog/2021/04/04/an-honest-review-of-the-apple-m1/", "title": "An honest review of the Apple M1", "summary": "Recently, I've got into my hands one of the latest MacBook Pro M1 from Apple. As you may know, I've never been a big fan of Apple products, often saying those w...", "date_modified": "2021-04-04T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/03/24/new-blog-engine-&-random-stuff/", "content_html": "Hey everyone, I’ve changed the blog engine again. Why? Well, frankly, I don’t even know myself.
\nMaybe with the recent changes in my life (as you may know, I moved to Finland) I needed to change some things around here.
\nI was browsing the awesome-selfhosted list on GitHub when I saw the blog engine named “Ghost” which looked way more refined than anything I could ever do with Hugo or Spip so let’s give it a spin!
\nFurthermore, on a minor note, I changed the server, and I’ll be starting to migrate services such as the Gemini websites soon to the new hardware! Of course, you will be notified when it happens.
\nP.S: the sign-up feature of this website is broken, do not try to use it. Also, for some reason, it wants to make people pay.
\nP.S again: removed it completely :)
\n", "url": "https://jae.fi/blog/2021/03/24/new-blog-engine-&-random-stuff/", "title": "New blog engine & Random stuff", "summary": "Hey everyone, I've changed the blog engine again. Why? Well, frankly, I don't even know myself. Maybe with the recent changes in my life (as you may know, I mov...", "date_modified": "2021-03-24T00:00:00.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2021/02/13/new-blog-software/", "content_html": "Greetings everyone.
\nJust a small announcement to say that I’m moving the blog to a new URL: https://news.jae.moe as the software used there is easier for me to maintain.
\nThe new RSS feed is now located here.
Seeya in the next post!
\n// Jae
Greetings, for the first blog post of the year, I’m gonna talk about what instant messengers I use, following the whatsapp fiasco.\nBut first, I want to wish you a very happy new year, I hope this year will go smoothly this time.\nNow that’s it’s done, let’s dive right in shall we?
\nI talked about this one extensively in [this blog post]({{< ref “/blog/2020/nov2020-element-matrix.md” >}} “Using Matrix to replace proprietary and centralized chat apps”) but tl;dr:
\nIf you want to try Element, you can go on their official website but please, pick another server than Matrix.org as it is already overloaded by too much users.\nA good server list can be found here.
\nThis one is a messenger I have been using for quite some time in a more professional setting as it is really easy and quick to setup.\nAll you need is a phone number and here you go!
\nThe needed phone number is a big point of criticism as it could be used to identify you, however the Signal team said in a Reddit AMA that they are currently working on a way to use the app without a phone number (which is a good thing).
\nOne of the best “selling points” (even tho it is not sold) of Signal is that everything is end-to-end encrypted.\nIt is also advertised by Edward Snowden since quite some time now (since 2016 when it was called Open Whisper Systems).
\nEverything is Signal is Open-Source (from the server to the clients) but self-hosting it isn’t really useful as an individual it is not federated.
\nSadly, Signal relies on nonfree Google Play Services but can be used without. There is also a fork named Langis which removes all Google Play Services dependencies.
\nThreema is a Swiss messenger which has been around since 2012 and claims to have more than 8 million users (January 2020).
\nAs like the other two, Threema is completely end-to-end encrypted but is the only one in the list which is paid (3CHF which is frankly nothing).
\nAs the apps are Open-Source, the backend of Threema is sadly not yet open.
\nThe app itself doesn’t contains any trackers and can be downloaded and used without the use of Google Services (even tho Firebase Cloud Messaging will be used when available in order to push notifications onto devices), they even have their own shop on which you can buy a license and download the app.
\nThreema doesn’t requires you to have a phone number or anything else to use the app and in fact, it can be used completely anonymously.
\nThe overall quality of the app is extremely good and to its advantage, it got a security audit in November 2020 which resulted in:
\n\n\nCure53 needs to underline that the overall impression of the code quality and general structure of the project can only be described as unusually solid. The design and implementation were clearly accomplished by a rare team of experienced and security affine engineers. In Cure53’s opinion, there should be no doubt about the focus of these processes being on providing a highly secure messaging application without encumbering the overall user-experience.
\n
Which is actually a really good point in favor of Threema.
\nIn the end, I am using three messengers which I find refined and frankly good.
\nIf you are a Whatsapp user and still haven’t switched to something better, I urge you to do so, friends and family might even have already switched to something else like Signal.
\nOn my part, I’ll see you in the next blog post, if you liked this one, you can subscribe through RSS so you dont’ miss any future posts.
\n", "url": "https://jae.fi/blog/2021/01/18/the-messengers-i-use-every-day/", "title": "The messengers I use every day", "summary": "Greetings, for the first blog post of the year, I'm gonna talk about what instant messengers I use, following the whatsapp fiasco.", "date_modified": "2021-01-18T08:35:58.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2020/11/21/redirector,-keyboard-and-foxes/", "content_html": "This week, nothing fancy, not a big article about a Federated media, not a tutorial on how to do things, just a small article to chill.
\nFew days ago, I discovered the Firefox addon Redirector (which you can download here) which I now use as a subtitute for Privacy Redirect as Redirector is much more powerful.\nAs Privacy Redirect only supports Nitter, Invidous, Bibliogram and OpenStreetMap, the possibilities in Redirector are pretty much endless.
\nThis addon features two modes to redirect stuff:
\nhttps://example.com/*
https://(www.)?example.(com)?/(*.)
Here is some of my current settings:
\nRedirect: https://(mobile.)?twitter.com/(.*)\nto: https://nitter.tedomum.net/$2\n\nExample: https://twitter.com/WholesomeMeme/status/1329846975575904256\n→ https://nitter.tedomum.net/WholesomeMeme/status/1329846975575904256\n
\nRedirect: https://www.sciencedirect.com/science/article/pii/*\nto: https://sci-hub.se/https://www.sciencedirect.com/science/article/pii/$1\n\nExample: https://www.sciencedirect.com/science/article/pii/S1057521920302131\n→ https://sci-hub.se/https://www.sciencedirect.com/science/article/pii/S1057521920302131\n
\nRedirect: https://(www.)?amazon.(.*).(.*)\nto: https://darmarit.org/morty/?mortyurl=https://amazon.$2\n\nExample: https://www.amazon.com/gp/product/B01EHMXCL0?linkId=a22cc4b646e241776ad8f630d3e9f2a3\n→ https://darmarit.org/morty/?mortyurl=https://amazon.com/gp/product/B01EHMXCL0?linkId=a22cc4b646e241776ad8f630d3e9f2a\n
\nDon’t hesitate to thinker by yourself to improve the efficiency of those redirects.
\nAs you may have seen, I am now using a XD75re keyboard (since september) which runs on the Open-Source firmware QMK.\nI chose the XD75re as it is a ortholinear keyboard, which, I wanted to test for quite some time now.\nI primarily intended to buy a Typematrix but those turned out to be pretty much not modular enough with a price tag of around 110USD.
\nThis is why I settled on the XD75re. Because it uses QMK (Quantum Mechanical Keyboard), everything can be modified, from the layout to the LED effects of the board, without any specific software (even tho the qmk
cli utility is recommended to flash new layouts).
My very own keyboard uses:
\nWith a price tag of around 95EUR for everything, it is somewhat affordable for a custom keyboard and even tho it takes some time to be used to the layout, really comfortable.
\nDo you guys love foxes? If so, you’re in luck, I’ve discovered a small API that gives you a random fox for infinite cuteness!\nHere is an example of this API, right into this page (refresh to see the fox change):
\nThat’s all for today,\nI’ll see you next time!\nIf you like my content, don’t forget to subscribe through RSS!
\n", "url": "https://jae.fi/blog/2020/11/21/redirector,-keyboard-and-foxes/", "title": "Redirector, Keyboard and foxes", "summary": "This week, nothing fancy, not a big article about a Federated media, not a tutorial on how to do things, just a small article to chill.", "date_modified": "2020-11-21T16:23:25.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2020/11/14/using-matrix-to-replace-proprietary-and-centralized-chat-apps/", "content_html": "As you may know it, I am a fervent user of the chat protocol Matrix.\nIf you don’t know what Matrix is, this is basically a protocol developed by the Matrix Foundation. Matrix is made to be federated, it means that servers implementing correctly the Matrix specification can communicate and therefore, users that are not on the same servers can still talk to each other. Some examples of federation would be with Activitypub (Mastodon) or Usenet.
\n\n\nBut wait Jae, we already have countless other chat apps already, Telegram, Signal and even XMPP which is federated!
\n
Well, here are the advantages of Matrix over all of those:
\nMatrix is 100% open-source. As you may know Telegram’s servers are currently closed-source which poses a problem about trust. Nobody can say what the server is doing nor what it is harvesting which could be very dangerous. On the other hand, Signal, XMPP and Matrix are all fully open-source.
\nMatrix isn’t centralized to a single server. Currently, Telegram and Signal are centralized apps which means if the server goes down, everyone else goes down. moxie0 of Signal even wrote a blog post on ‘why Signal will never have federation’ which is in my opinion a big mistake. XMPP still stands up as it is federated as well and has plenty of server implementations.
\nMatrix has a flagship client which has a great UX. This is a big point, as other federated protocols such as XMPP are kinda like a jungle for new users, you are greeted with a list of all clients which you can use and then comes the step where you have to choose your server. Lots of those servers are sometime hard to find, have very spartan UIs or even no web form or easy way to register whatsoever. On the other hand, Matrix has a flagship, Element, which is deemed as the ‘official Matrix client’ since it implements the Matrix specification correctly and is made by basically the same people. While other projects would have only done a server, Element made a polished client, focused mainly on the UX in order for people to take the first steps of moving to anything else easier. Even if the UX is still not perfect and some aspects aren’t finished yet, moving to Element will be easier than moving to any other XMPP client.
\nI have been using Matrix since 2016 now and it has considerably improved over time, coming from “barely usable” to “let’s host my own homeserver”.\nEven in its current state, lots of things are to be improved such as communities or custom stickers but everything is on the right way.\nFrom now on, everything can only improve, we are seeing new server implementations, new clients, bots, communities moving to Matrix.
\nMatrix has several other features such as E2EE (end-to-end encryption) which is now enabled by default and bridges which can be used to temporarily bridge a Matrix room and a slack chat for instance.
\nIf you want to give Matrix a try, download Element and create an account, it doesn’t even requires an email address!\nYou can also come and say ‘hello’ in my very own channel #home:jae.moe !
\nThat’s all for today,\nI’ll see you next time!\nIf you like my content, don’t forget to subscribe through RSS!
\n", "url": "https://jae.fi/blog/2020/11/14/using-matrix-to-replace-proprietary-and-centralized-chat-apps/", "title": "Using Matrix to replace proprietary and centralized chat apps", "summary": "As you may know it, I am a fervent user of the chat protocol Matrix...", "date_modified": "2020-11-14T10:42:13.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2020/11/08/one-week-of-nixos/", "content_html": "As you may have seen I on Mastodon, I am testing NixOS for over a week now and here is a few comments about how the distro works and what doesn’t work for me.
\nFirst, everything is NixOS is declared in a configuration file located at /etc/nixos/configuration.nix
where you declare packages you want to install, services to start, udev rules, ECT, you get it.
This is the first very weird thing as you don’t really install packages with the CLI directly (even if you can), instead you modify the config file and rebuild the system with nixos-rebuild switch
.
NixOS is made in such a way that everything aims to be reproducible. An example: if you want to get the exact same setup as I have, you can just take my configs repo, clone it on your NixOS installation, run nixos-rebuild switch
and voilà, you will have the exact same programs as me installed in the same way with the same version (roughly).
In this distro, adding a user is really easy and goes like this:
\n{ config, pkgs, ... }:\n\n{\n\n users.groups.plugdev = {};\n\n users.users.jae = {\n isNormalUser = true;\n extraGroups = [ "wheel" "docker" "adbusers" "plugdev" ];\n shell = pkgs.zsh;\n packages = with pkgs; [\n # Games\n minetest stepmania lutris-free pcsx2\n # Misc audio / video / image\n pulseeffects ffmpeg-full obs-studio inkscape krita\n # Useful software\n mumble qbittorrent libreoffice ledger-live-desktop\n # Dev\n jetbrains.idea-community lazygit gnome3.zenity insomnia jetbrains.rider mono msbuild dotnet-sdk_3 ganttproject-bin kubectx\n # SDR\n rtl-sdr gqrx gpredict noaa-apt welle-io\n ];\n };\n users.extraGroups.vboxusers.members = [ "jae" ];\n}\n
\nLet’s see what everything does!
\n users.groups.plugdev = {};\n
\nCreates a group named plugdev
, don’t pay attention to it, it is just a test for the Ledger Live application.
isNormalUser = true;\n
\nTells the os that the current user is a normal one. It will create a home folder and set the default shell.
\n extraGroups = [ "wheel" "docker" "adbusers" "plugdev" ];\n
\nHere, we are setting the groups the user is in to grant special permissions.
\n shell = pkgs.zsh;\n
\nAs you may have guessed it, we are setting the default user shell to ZSH.
\n packages = with pkgs; [\n # Games\n minetest stepmania lutris-free pcsx2\n # Misc audio / video / image\n pulseeffects ffmpeg-full obs-studio inkscape krita\n # Useful software\n mumble qbittorrent libreoffice ledger-live-desktop\n # Dev\n jetbrains.idea-community lazygit gnome3.zenity insomnia jetbrains.rider mono msbuild dotnet-sdk_3 ganttproject-bin kubectx\n # SDR\n rtl-sdr gqrx gpredict noaa-apt welle-io\n ];\n
\nThere, we are installing per-user packages because yes, NixOS supports that, any user can have its own packages that others users can’t access.
\n\n\nCorrection from hvdijk on Hacker News, “Other users can access those packages if they want to. Those packages won’t show up in other users’ $PATH, so other users will not be affected by them, but they could see what’s in /nix/store if they wanted to. This matters when you’re thinking of putting private data (such as an encryption key) in a package: it’s vital that you don’t do that on a multi-user system.”
\n
Configuring NixOS for a daily use is at the end very easy (although I am getting some trouble to get Ledger Live working; which is the biggest problem I’ve had so far).
\nNow, let’s talk about where I got some trouble.\nAs you may know it, I am a dev and every day I need to compile, test, run and so on.\nNixOS gave me some trouble to only run some programs from source such as Element Desktop or TeDomum IMG as the way the system is built, lots of directories are read-only and programs can’t be installed globally through NPM or PIP.\nI ended up using Docker to build the apps (even if it took a bit more time).
\nNeedless to say, almost every other project worked.\nIf you want NodeJS to start a project for instance, you can just do nix-shell -p nodejs
and here you go, a shell with nodejs installed, ready to do what you want.
At the end, NixOS brings very interesting concepts such as a really great reproducibility but new users can feel lost as its way to work is really different from conventional Linux distributions.\nI’ll give NixOS more time and write a follow-up in some time to see how everything went.
\nIf you want to give it a shot, the official NixOS website awaits you!
\nThat’s all for today,\nI’ll see you next time!\nIf you like my content, don’t forget to subscribe through RSS!
\n", "url": "https://jae.fi/blog/2020/11/08/one-week-of-nixos/", "title": "One week of NixOS", "summary": "As you may have saw I on Mastodon, I am testing NixOS...", "date_modified": "2020-11-08T09:22:46.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2020/11/06/improving-my-website-with-simple-gohugo-tricks/", "content_html": "As you may have seen, I started to really work on my website lately, I first switched to a homemade theme ([the article can be found here]({{< ref “/blog/2020/may2020-hugo-website.md” >}})) and then started to work on smaller tweaks of the theme while adding cool features such as Twitter’s cards or integrating the OpenGraph protocol.
\nAs you may know it, my website uses the GoHugo website generator (code under MIT license by the way) which is super easy to use and has a really good integration with Gitlab Pages.
\nGetting OpenGraph to work is one of the first really easy steps to have a nicer presence when your website is linked to another place. It basically shows as a little card with a bit of information such as the name of the website, the author, the description of the page and an image. Twitter’s card are basically the same thing but for Twitter.
\nTo add OpenGraph to your pages, just add this in the <head>
of your template:
{{ template "_internal/opengraph.html" . }}\n
\nThe same goes on for Twitter’s cards:
\n {{ template "_internal/twitter_cards.html" . }}\n
\nAt the end, the OpenGraph should produce an output like this:
\n{{< highlight html “linenos=table” >}}
\n\n\n\n\n\n\n\n{{< / highlight >}}\nAnd the Twitter’s cards:
\n{{< highlight html “linenos=table” >}}
\n\n\n\n{{< / highlight >}}\nSome other improvements are regarding custom shortcodes, like the one I made for spoilers which shows like this:
\nWhich generates this HTML output:
\nAs you can see, this is actually really easy to improve small bits of your website if you really want to.
\nHowever, if you are not the maintainer of the theme you are currently using, open an issue telling the maintainer(s) those shortcodes actually exists or if you can, contribute!
\nHowever, more shortcodes are available on GoHugo’s website including ones for Youtube, Instagram or Twitter.
\nThat’s all for today,\nI’ll see you next time!\nIf you like my content, don’t forget to subscribe throught RSS!
\n", "url": "https://jae.fi/blog/2020/11/06/improving-my-website-with-simple-gohugo-tricks/", "title": "Improving my website with simple GoHugo tricks", "summary": "As you may have seen, I started to really work on my website lately...", "date_modified": "2020-11-06T19:54:06.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2020/11/05/the-problem-of-centralisation/", "content_html": "Greetings,
\nAs you may have saw it, Github (Microsoft) recently banned youtube-dl from their platform after a DMCA request of the RIAA lobby.
\nThis incident has exposed a bigger problem: when do we decentralize code?
\nFor now, people are using the centralized Github (Gitlab.com counts as well) for a lot of projects, at the point where Github is the website with the most software repositories in the world with more than 48M users and 195M repositories.
\nWith such success, it is only natural that new developers choose Github to start their journey, it is pretty fast, can be used for free and has lots of people on it; but there is a catch: as you accept it when you create your account, Github can terminate any repo, any account for any reason they want and whenever they want (even if you didn’t broke the TOS) which gives them an unprecedented power on FOSS development.
\nThe youtube-dl fiasco is only a reminder of how Github could harm the FLOSS community by completely wiping entiere projects with only the switch of a button (and sometimes, some annoying lobbies).
\nThen, what do we do?
\nWe need to decentralize Git more. As speaking now, some solution already are somewhat decentralized, not requiring an account to contribute and working mainly with e-mails. We need more, a system where everyone could have its own little private island of code and then federate with others to happily share and contribute.
\nSome projects aim to solve that over-centralization problem:
\nSadly for now, as you can see there is not a lot of alternatives but with some time, those can only improve!
\nSo join the movment, delete your Github account and host your own repos, it will be healthier for FOSS!
\nThat’s all for today,
\nI’ll see you next time!
\nIf you like my content, don’t forget to subscribe throught RSS!
\n", "url": "https://jae.fi/blog/2020/11/05/the-problem-of-centralisation/", "title": "The problem of centralisation", "summary": "As you may have saw it, Github (Microsoft) recently banned youtube-dl from their platform after a DMCA request of the RIAA lobby...", "date_modified": "2020-11-05T17:13:11.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2020/10/22/i-hate-microsoft/", "content_html": "If you are a player of the game Minecraft, you’ve probably seen it.\nMicrosoft has finally moved in and decided to force people to migrate from Mojang accounts to Microsoft ones.
\nFirst off, let’s say it, thanks m$ for ruining the game, I was still playing the PC version to at least escape from the grasp of this horrendous company and now it’s ruined.\nLet’s say I have until 2021 to pack my stuff and find another game to play.
\nThe thing I hate so much about m$ is they are vampirizing more and more the whole computer world (if that wasn’t enough already) by somehow silently buying smaller companies, waiting some years and then requiring everyone to get those pesky accounts that are serving no other purposes than spying on you to get more data and feed obscure algorithms.\nThis needs to stop.\nThis year, they bought Zenimax Media (in short, Bethesda) and as Bethesda already requires an account, even for DOS games it is expected for m$ to force the migration of all previously created Bethesda account into m$ ones.
\nEven without talking of accounts migration stuff, m$ vampirized the education system, france just gave 8,3Millions euros to m$ without seeking any concurents (which is illegal), they are even handing out our private health data to m$.
\nThe sad part about this is: we can’t do much about it asa even with the current backslash of people that don’t want to migrate, m$ will still carry on as a majority of people don’t see the stakes.\nThe vast majority hide behind “I don’t have anything to hide” or “I don’t care” which is very sad as we are rapidly loosing sight of how is our data used.
\nThe only thing we can do is terminate our accounts.\nAt my scale it will not change anything but if enough people delete their accounts and stop buying their products, they’ll be forced to change or die (and I hope it will be the second).\nWe need to find a way to kill m$ once and for all.
\nThat’s all for today,\nI’ll se you next time!
Greetings, I wanted to make a small post on what I am currently playing at this moment.
\nADOFAI is a game where you control two orbs (of fire and ice) and your goal is to get at the end of (lots) of levels by striking your keyboard (or mouse) buttons in rhythm with the music.
\nThe game is challenging without being to hard and if you want more, there is still custom levels on the workshop.
\nAny player of rhythm games will like this one; it is also really cheap (as writing now only EUR5 on the Steam store).
CS:S is a well-known FPS game made by ValVe.
\nThe basic gamemod is ‘Terrorists vs Counter-Terrorists’ but there is still plenty to choose from like:
And many more!
\nI usually stick to the regular matches as I feel the guns aren’t as broken as on CS:GO (the latest opus of the series).
For now, that’s about all there is to say.
\nIf you liked this post, stay tuned for the next via RSS!
\nI’ll see you next time.
This is just a small post to say that I’ve updated the blog to a new theme that is both lighter and nicer than the old one.
\nAs it is now, the blog does not utilizes Tailwind CSS anymore.
\nAs a reminder, you can see the code of the theme by clicking here.
\nStay tuned for the next blog post via RSS!
\nI’ll see you next time!
\n", "url": "https://jae.fi/blog/2020/10/03/theme-update/", "title": "Theme Update", "summary": "A small update about the website!", "date_modified": "2020-10-03T19:36:18.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2020/09/24/pinephone-hot-review/", "content_html": "Greetings everyone!
\nAbout a week ago, I finally received my Pinephone Postmarket OS edition.
\nThe Pinephone is a mobile device made by Pine64 and designed to run free OSes like:
\n\nAs described earlier, my version of the Pinephone runs on pmOS which is based on the Linux distribution Alpine Linux; it uses the graphical environment Phosh which is based on GNOME.
\nLet’s get over with the few cons this phone has. Keep in mind that this device is a preview and can only get better over time.
\nThe button to lock the screen in fact only shuts it down, that means the whole OS doesn’t suspend and battery drains very quickly (from 96% to 83% in about 5 minutes).
\nThere is already a ‘fix’ but it requires to run a command in a terminal to work.
\nAs said earlier, this can only improve over time.
\nFor now, the software you can get on pmOS is either from the Alpine Linux repositories or the GNOME store.
\nAs for now, very little software is adapted for the phone but each day, new ones are coming.
\nThe only thing I’m mad about is that there is no Matrix client supporting E2EE currently on the Pinephone (there was Nheko but it was removed from the Alpine repositories since it was not maintained).
\nYes! Finally, a real, full Linux on a phone!!
\nHey, don’t say Android is Linux, Linux is to Android what BSD is to MacOS.
\nI find it really nice that you can manually disable features of the phone like:
\nIf like me you are totally paranoid about someone spying on you, you can disable yourself the cameras.
\nDisabling some features can also extend battery life!
\nBecause the Pinephone is Libre and is only using Libre software, everything can only improve.
\nAs this article is getting published, work is being done to improve battery life, port more software, create an application to use the cameras and much more!
\nIn contradiction to Android, IOS and KaiOS, the Pine ecosystem is sane, clean and does not relies on a centralized surveillance system to work.
\nNothing prevents you from modifying the OS nor the hardware.
\nIf you don’t like and OS, you can just change it (good luck to do that on regular Phone with a system that isn’t Android).
\nSome people would deem to say that the Pinephone is too slow for everything. For now, maybe, but keep in mind this is a 150Eur phone so you get what you get for 150Eur but as said many times, it can only improve, waiting a little bit longer will give more powerful hardware for a more optimized OS with features such as deep sleep or better battery management.
\nI am recommending the Pinephone for everyone who knows the ‘risks’ of running an early version of what will be , hopefully, the future of mobile phones.
\nI’ll make a follow up of this article in roughly three months to comment on how it is as a daily driver for an extended period of time.
\nDo not miss the next articles by subscribing via RSS!
\nI’ll see you next time!
\n", "url": "https://jae.fi/blog/2020/09/24/pinephone-hot-review/", "title": "Pinephone hot review", "summary": "About a week ago, I finally received my Pinephone Postmarket OS edition...", "date_modified": "2020-09-24T16:15:26.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2020/08/23/new-analytics/", "content_html": "Greetings everyone!
\nToday, I wanted to talk about the analytics I put on my website (and by extension on my blog).
First off, I added some analytics by curiosity, to know how much people read my blog posts and where does they come from (referer) and the country they are from.
\nI tested two solutions for analytics in the past month:
\nI didn’t tested Matomo since this solution is too complex for what I want to achieve, I need something simple, self-hostable easily and very light.
\nYou can see more alternatives to Google Analytics on Reverse Eagle’s developper website.
I chose GoatCounter and Plausible since they have all the criteria I required:
\nNow, let’s compare the two shall we?
\nGoatCounter must be the easiest to setup and get running, as it is basically a static executable (written in Go), you just need a simple ./goatcounter
to start it.
\nMy current command to launch GoatCounter is ./goatcounter serve -listen 0.0.0.0:8080 -tls none
so GoatCounter listens on the local port 8080
so it can be used with a reverse proxy (more on that later). If needed, Goatcounter can get TLS certificates but I would recommend staying with a reverse proxy as I personally feel this is much more practical.
On the other hand, Plausible uses Docker to work and provides an already nice-looking docker-compose.yml file.
\nYou just have to pay attention so you don’t miss the initial admin setup, otherwise it’s still really easy to deploy.
As said earlier, GoatCounter is a static executable.
\nTo add a website, it is easy as ./goatcounter create -domain stats.domain.tld -email email@domain.tld
and the setup will automatically ask for a password.
\nNow, all you have left to do is to point the dns of stats.domain.tld
to your GoatCounter server and you’re all set!
\nJust include the Javascript script in your <head></head>
and you can start.
On the other hand, in Plausible, you just have to hit the big ‘+ Add a website’ button, fill the form and here you go, you get the code to add in your <head></head>
.
\n\n/!\\ I didn’t figured how to add custom domains for Plausible yet (self-hosted), I’ll keep you informed on that.
\n
Both solutions have a really nice web interface but I must say, Plausible’s is my favorite.
\nThe interface of GoatCounter is very simple and offers lots of informations very efficiently and offers even more by clicking on the charts.
\nOn the other hand, Plausible offers a really refined interface but with less options, it however shows a really nice map of all the visitors and a real-time counter of how much visitors there is on the website.
In the end, I settled on Plausible for my own website as said earlier the interface is much more refined.
\nI’ll soon make a post about what web server I use as a reverse proxy for the appps I host and why it is so cool so stay tuned!
I hope you liked this post, if you did, don’t forget to subscribe to this blog through RSS.
\nI’ll see you next time!
Hey everyone!
\nThis post is a follow-up on the article about the Thinkpad I wrote three month ago.
First of all, I am currently writing this article on my Thinkpad since I am currently in vacation in the south of France at my familly’s.
\nNo worries, I’ll be back very soon.
Let’s get started shall we?
\nIn the last post, I said a lot how I thought this machine was well-made, well-thought and full of surprises.
\nI made another discovery: this very Thikpad (a T430) is equipped with a 3G/4G modem and can read SIM cards.
\nIt means, with the right plan, I can get data anywhere which is super cool.
\nEven the seller page didn’t mentionned that and I bet they didn’t even noticed it since there is still the factory tape onto the port (which we need to pull in order to use the port).
Since then, I also started to mod my laptop, even if it is very light by some standars.\nMy first goal was getting rid of the Intel Management Engine (ME).
\nAs lots of you know, in order to do that, you need to have a clamp and basically re-flash the BIOS with an external device.
\nBecause I still don’t have the material (and the time) to do these kind of thing, I used 1vyrain which is super simple to use.
\nAs said in the documentation, it is possible to flash a custom BIOS like Opencore or Libreboot using 1vyrain but I want to be sure that I can unbrick the laptop in case of.
A small goal is also to replace the default 500Gb hard drive by a solid state drive (I think of the same size).
\nMaybe I’ll use an Ultrabay adaptor to get more storage and bring it to 1Tb.
Since two month, I am doing great efforts to reduce my usage of proprietary software solutions (and when I can, hardware as well) and this started with the usage of Linux-libre
on my Thinkpad which is a Linux kernel without any proprietary blobs.
\nTo be honest, if GNU Hurd was more up-to-date and not a joke, I would have probably used it.
\nI can now say that my laptop contains no (or very little) proprietary software which is a first win personally.
\nTo communicate, I use Element.
\nTo surf the web and search I use Firefox with SearX and Yacy.
\nMost of social networking is handled with Mastodon since I don’t have any other accounts.
\nI am now using Xmonad as Window Manager which is very light and easy to configure.
As you may suspect, Thinkpads are portable machines.
\nMine excells in that matter and are far more better than my previous laptops.
\nWe are looking here at a battery life of over two hours and a half for a very light laptop.
\nI must also say that I didn’t see any throttle due to temperature, the laptop stays cool no matter the load it have to sustain and at last, it makes also very little noises which is one of my favorite points.
As you saw in this article (and in the previous one), I think very highly of this laptop.\nIf you want a good laptop with perfomance, a nice battery life and a fair price, a Thinkpad is your laptop.
\nThe name was up to my expectations and I hope it will be that way the rest of the time.
Little update on another subject: I am currently waiting for the shipping of the Pinephone CE (PostmarketOS) to make a complete review of the phone.
\nI hope you liked this article!
\nIf you did, don’t forget to subscribe to this blog through RSS.
\nI’ll see you next time!
Cookies were a good idea.
\nDon’t get me wrong, when used for good, it is really practical and useful but what happens when you give this kind of tool to idiot people?
The current web is a shithole, almost all websites have tons of javascript, cookies and more with the sole purpose of tracking you to know everything about you, this is why I don’t trust the web anymore and want to use less and less browser “applications” and replace them with easier & better console alternatives.
\nFor instance, I am not playing videos in my browser anymore, I instead use the MPV media player with youtube-dl which does a really good job (just playing the video without tracking and ads).
As you saw on the previous screenshot, lots of websites are using way too much cookies. We can all agree absolutely no app needs 83 cookies to function correctly, in fact, youtube pretty much works perfectly without any cookies and lots of other websites do.
\nHere is some of my recommendations:
\nIn Firefox, all you have to do is go to the settings, “Privacy & Security” tab.
\nIf you are using chrome, then I can’t do much for you.
Some of you may be familiar with the Firefox add-on “Noscript”. Only problem with this add-on: the customisation is almost null and you can’t really choose what to let pass and what to block.
\nWith uMatrix, you can block everything, javascript, cookies, frames and even CSS and medias.
\nuMatrix is a great tool I will never stop to recommend.
Also, while I’m here, I want to make some promotion to the Reverse Eagle collective that aims to hunt OSS projects using non-ethical tracking solutions (google analytics/tags manager) with more privacy-friendly ones.
\nI know, this article was more me giving out a rent against modern websites but the next article will be better, I promise.
\nI hope you liked this article and if you did, don’t forget to subscribe with the RSS feed so you won’t miss any future posts.
\nI’ll see you next time!
Hey everyone!
\nSometimes, like a lot of people, I like to sit down and relax while listening to music.
\nHere is my favorite tracks.
This is a tune made for a ZX Spectrum demo. The music is even better with graphics on!\n{{< yt weFH_y1LGBw >}}
\n{{< yt jyw4HU-kUrU >}}
\nThis particular tune is well-known for being used in the Crystal Dream 2 demo by Triton.\n{{< yt wgWFA2pyYm0 >}}
\n{{< yt URWNqs7FEXA >}}
\n{{< yt BiGwwzBbARA >}}
\n{{< yt POXaKOjdjRA >}}
\nFrom BMS, with love <3\n{{< yt bYCbm469Zq0 >}}
\n", "url": "https://jae.fi/blog/2020/06/25/cool-music/", "title": "Cool Music", "summary": "Today, I'm gonna talk about the music I listen to and love. Let's get started...", "date_modified": "2020-06-25T11:07:13.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2020/06/15/osp,-the-alternative-to-twitch/", "content_html": "Not so long ago, I discovered the Open Streaming Platform (or OSP) projects that aims to bring an alternative to the website Twitch or Youtube for livestreams with a self-hosted solution.
\nAfter doing some research and asking the Tedomum team, we deployed an instance in order to test ourselves.
\nJust like Peertube, OSP allows the user to create multiple channels without having to create multiple accounts which is practical if you want to sort your channels by topic (gaming, drawing, talk shows…).
\nOSP also allows you to record automatically your streams, post videos and record clips, just like the other platforms.
The software itself was easy to run since we are using Docker & docker-compose
. The problems we ran into were database problems, because the software is still in beta, the migration scripts are the ones by default for a flask project and are not migrating the DB correctly. If you run into this problem, you might have to downgrade the version, go to the admin panel, download a copy of the database, reset the instance with the new version and restore the database file at the installation process.
\nHere is what the Dockerfile looks like (Note: the latest revision, 0.7, is currently not supported by Docker):
version: '2.1'\n\nservices:\n redis:\n image: redis:latest\n\n osp:\n image: deamos/openstreamingplatform:latest\n volumes:\n - ./data:/var/www\n labels:\n - traefik.enable=true\n - traefik.frontend.rule=Host:${hostname}\n - traefik.port=80\n - traefik.frontend.headers.STSSeconds=315360000\n - traefik.frontend.headers.browserXSSFilter=true\n - traefik.frontend.customResponseHeaders=Server:www||X-Powered-By:www\n environment:\n - REDIS_HOST=redis\n - FLASK_SECRET\n - FLASK_SALT\n - OSP_ALLOWREGISTRATION\n - OSP_REQUIREVERIFICATION\n - DB_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db/${POSTGRES_USER}\n depends_on:\n - "db"\n - "redis"\n ports:\n - "${ipv4}:1935:1935"\n - "${ipv6}:1935:1935"\n\n db:\n image: postgres:11\n volumes:\n - ./db:/var/lib/postgresql/data\n - ./wal:/wal\n - ./postgresql.conf:/var/lib/postgresql/data/postgresql.conf\n environment:\n - POSTGRES_USER\n - POSTGRES_PASSWORD\n\nnetworks:\n default:\n enable_ipv6: true\n driver: bridge\n ipam:\n driver: default\n config:\n - subnet: "${prefix}/80"\n gateway: "${prefix}1"\n
\nAlso take note that postgres isn’t used officially by OSP, see their wiki for the official supported databases.
\nThe port 1935
must be open so OBS (or any other streaming software) can send the data to rmtp://<your domain name>/stream
At the end, OSP is a really good piece of software, for instance, I am usually streaming (from my desktop) with a resolution of 1080p at 60 frames per second with a bitrate of 5000Kbps and OSP handles it right.
\nOn the releases 0.6, the devs also added an option to transcode in real-time the stream so it can be viewed in much more resultion but we didn’t activated it on our instance since it consumes a shit ton of CPU.
The latest version at the time (0.7) adds a really interesting feature: the chat is now served with XMPP and other users from other XMPP servers can join and interract with the chat without needing an account on the instance. Sadly, as said earlier, this release isn’t ‘Docker-ready’ yet so we’ll have to play the waiting game.
\nFor me OSP is a project you need to follow closely if you are into streaming but also want to be able to share your content on libre platforms.
\nThat’s all for today,\nI’ll se you next time!
\n", "url": "https://jae.fi/blog/2020/06/15/osp,-the-alternative-to-twitch/", "title": "OSP, the alternative to Twitch", "summary": "Today, we'll look at OSP, an alternative to Twitch and Youtube livestreams...", "date_modified": "2020-06-15T16:06:14.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2020/06/13/game-review-micro-mages/", "content_html": "Micro Mages is a game I’ve heard about before. In fact, I saw the youtube video of the creators of the game explaining how they made it and was interested in playing it since it runs on a NES.
\nThis month, Itch.io launched the Bundle for Racial Justice and Equality on which I gave some money and Micro Mages was (and still is) part of the package.
Let’s begin with the actual test shall we?
\nTo start, Micro Mages does not have a native PC version and the bundled executable is just an emulator which is crazy for a game that recent if you ask me.
\nWhat about the game itself?
\nFirst of all, it looks nice. The sprites are simple but just what is enough to look really good, we can clearly see lots of efforts went into the spritework.\nThe level design itself is somewhat simple and fun to play, the objectives are clear and the game itself, challenging enough.
\nHaven’t played the multiplayer version for now but I think It will be fun with some friends.
Final rating: ⭐⭐⭐⭐⭐
\n", "url": "https://jae.fi/blog/2020/06/13/game-review-micro-mages/", "title": "Game Review Micro Mages", "summary": "Micro-Mages is a recent game with something special and today, we'll find out why...", "date_modified": "2020-06-13T21:07:35.000Z", "author": { "name": "Jae Lo Presti", "url": "https://j4.lc" } }, { "id": "https://jae.fi/blog/2020/05/30/what-about-bsd?/", "content_html": "Greetings everyone, today I’m gonna talk about BSD and my experience with it. If you haven’t heard of BSD, I would suggest to read the Wikipedia article and then come back.
\nI discovered BSD few times ago when I was looking for a Systemd-free distro (essentially to test the alternatives, I have nothing against Systemd to be honest), on a forum, someone was suggesting switching to BSD which is not even a Linux distro.
\nCurious about this new thing, I downloaded FreeBSD as a test and installed it on my old laptop.
\nWhile this was a fairly old laptop (about 750Mb of ram, an old AMD CPU & GPU and a 65Gb hard-drive), FreeBSD ran smoothly and I though it could be a good idea for my main desktop which at the time was a Dell T3500 Workstation.
\nAt first, it seemed to be a good idea: it looked just like Linux which I was using for quite some years and most importantly, my GPU (a Nvidia 750Ti at the time) had an official driver made by Nvidia which was somewhat attractive.
\nMy first FreeBSD installation took hours, simply because I was in an old building served by an old ADSL line, at the time, getting 1Mb/s was pure miracle.
At first, everything seemed nice, it was working.
\nI had what I asked for: a simple desktop environment, a web browser and an IRC client to talk with my friends.
\nThen, few days after the initial installation, one problem became apparent: the software support.
\nI struggled to find software and getting it to work, while most software usually supports Window, Mac and sometimes Linux, finding native BSD programs was almost impossible, at the time, I was using Skype to communicate with class friends or Teamspeak for some games.
\nWhile there were ports of programs from Linux, for some reason, theses didn’t worked and just plainly displayed compilation errors.
\nThis is what made me give up and get back to my Linux (Arch to be more precise).
A little while ago, I re-discovered BSD on the subreddit r/UsabilityPorn
which featured a extra good-looking BSD build.
\nAfter some time of research and testing, I decided to install FreeBSD on my desktop computer which is now definitely more powerful than my old one.
\nAs always, the installation went smoothly but when trying to launch a desktop environment, one problem became apparent: my video card wasn’t (and is not) supported by FreeBSD.
\nHopefully, after some research, I found a forum post that explained how to install the amdgpu
driver for the latest AMD GPUs and which worked fine.
\nHooray, I could now use XFCE4 as a desktop, but wait, what about the software?
\nAs said earlier, for me BSD has really restricted software which you can run on this system but this time, I wasn’t done, I learned how to use ports and for once, it worked!
Usually, the first thing I do when installing a new system is installing the Minecraft launcher and trying to play.
\nI saw that FreeBSD has a port named games/minecraft-client
and then installed it.
\nTo my surprise, it worked. Not only I could play Minecraft on FreeBSD but also, I could now access a really big library of apps ported from Linux which is very exiting.
Now that I have this system, I’ll use it as my daily driver and post follow-ups to tell what I think about BSD after some usage.
\nIf you liked this article, please consider subscribing through RSS so you won’t miss any articles.
\nI’ll see you next time!
Greetings.
\nI just did something I wanted to do since some time: compile all my personal configs & scripts and ship them into a repo and here it is, the repository of my own configs (still in WIP).
\nI’ll slowly add all my scripts and the ones I find (crediting the author of course).
Why did I do that?
\nWell this is simple: I love to browse dotfiles repositories and find useless, so essentials, scripts on the internet, I have the feeling of “it might come in handy some day” (spoiler alert, it doesn’t for the most part).
\nThis is why I created this repo, to compile all the scripts that are actually useful for me. Nothing else, I swear.
Be sure to check the repo out and if you want, ask for a config you’d like to see (if I forgot one).
\nDon’t worry, you can takes theses scripts, modify them to fit your needs, share them or just use them the vanilla way.
If you like my content, be sure to subscribe with the RSS feed of the blog so you don’t miss any future entries.
\nSome updates about this repo will be discussed here and maybe some configs in particular.
\nI’ll see you next time!
Greetings everyone.
\nToday, I want to talk about my experience with themes and why I chose to keep the current one.
Few days ago, I had an idea in mind: change the theme of my website, but why?
\nAs you may know (or not), I don’t like when everything is smooth and too regular, I mean, yes, I like when all my projects works at the first try and without any flaws but sometimes, I dislike the routine of all things.
\nFor instance, if I’m trying to learn something, I’ll try for few days and then, loose interest for that same thing I wanted to learn, this is especially present when trying to learn something academically.
\nYou migh say I am lazy and you are probably right, or maybe routine isn’t a thing for me.
Luckily, working in new technologies doesn’t seems (for the moment) any kind of routine, I am always learning things, changing my ways of doing and most of all, discovering every day.
\nThe fun thing about computers is the only thing bad you can do is erase a file or maybe corrupt the hard drive and since this is my field, I am confident enough to re-install everything and start from scratch again.
\nSome people like to have some sort of stability or assurance that their computer will not explode on their face or just delete random files and I fully understand the reasons but it’s simply not for me.
To get back to the themes, why did I had the idea to change the current theme, which is fine by the way?
\nWell, it is because of the reasons described earlier but also because I wanted to see how my website looks with another theme.
\nAfter few attemps, and the horror of the git submodules, I eventually gave up.
\nWhy?
\nBecause as said, I am lazy sometimes and I don’t wanted to fight with a repository.
\nThis might sound anticlimactic but that’s the whole story.
I hope you liked it and if you do, be sure to add the RSS feed of the blog so you will never miss any future blog posts.
\nI’ll see you next time!
In the current times, I think everyone agrees to say the lockdown is boring.
\nThis is why I compiled a small list of my favorite games and why I love them.
Etterna Online: this game is a fork of the rhythm game Stepmania with the ability to download song packs directly in-game and rank servers.
\nIf like me you are a fan of rhythm games, this one is perfect as it is also open-source.
TIS-100: TIS-100 is a game where you need to program in a special assembly language.
\nAt the start, you are given a PDF containing the documentation of the language and here you are, you are ready to begin.
\nWith over 230 hours played, I can surely say it is one of my favorite games.
Starbound: Starbound is my most played game on Steam (more than 1500 in total) and one of my all-time favorite. This spatial exploration Terraria-like never ceases to surprise me with big updates or even with small details.
\nYou click on an arcade booth? You can now play the Windows “Maze” screensaver.
\nSince some updates, there is also tons of additional missions and content to get, this game will never be truely finished.
GZdoom: the first Doom but with mods, custom maps and more. Anyone for a small game of Desert Bus? :^)
\nI hope you guys like these games as well, if you want to share experiences or suggest something to enhance the article, don’t hesitate to contact me.
\nI’ll see you next time!
Less than a week ago, I became the owner of a Thinkpad T430.
\nIn this article, I will explain why I got one of this particuliar brand but also my first impressions.
\nAlso hey, I’m not sponsored by Lenovo or IBM, I’m not known enough for that :P
As you may know by the rest of the content of my blog, I am a dev and a sysadmin and as before, I could only work from home which is impractical when I have to travel somewhere else for one day or even a week.
\nThinkpads have an online legacy of being really good machines when it comes to IT stuff and this particular brand was recommended to me by lots of people.
I bought my Thinkpad from Thinkstore24 which is a German online shop specialized in Thinkpads.
\nI’m not gonna lie, at first glance, this machine looks good, it opens easily and everything feels nice, the cover, the keyboard…
\nFirst thing I noticed when installing Linux (Arch for thoses who will ask) is that this computer is very reactive. Event tho it contains a basic hard-drive over a much faster SSD, the computer is still very fast and reactive with little boot time whatsoever (under 30s for sure).
\nI must also say even after using it for long hours (more than 8 hours straight to be more exact), the laptop doesn’t even get warm.
\nThe battery lasts approximately 1-2 hours after a 100% charge which is good enough for my usage.
\nIn bonus, I also discovered that the key combo Fn+Spacebar
triggers a small light that lights the keyboard, useful when working at night.
\nThe only thing I can complain about for the moment is that the laptop came with Windows which was fixed quickly.
At the end, I would say this is a really good machine that is up to my expectations.
\nI’ll see you in three months for the follow-up article.
\nIn the meantime, don’t forget to check out the other articles :^)
\nSee you next time!
As you may know, I am the creator and developer of MagikFiles, a free, open-source and self-hosted file sharing software.
\nThe whole code is under the MIT license so everyone can reuse it personally or in a profesionnal setting.
I started this project in February 2020, as a way to learn how to use NodeJS and Express and it quickly became the most active one I am currently working on.
\nIf I were to be honnest, I would say that I hate this project because it’s made uniquely of Javascript and it is one of the languages I like the least but for the sake of this article, let’s say everything is good and let’s see how it works.
First of all, in the beggining, I wanted Magikfiles to be compatible with ActiveDirectory so it could be used in a company more easily like you share a file, it detects automatically the current user, opens a popup with all the contacts and check the ones they want the file to be share with.
\nI quickly abandonned this idea since I was too lazy to replicate a AD infrastructure on my own network and I think it would have been a mess to integrate properly.
To manage the uploads, I used express-fileupload
, a really simple library.
\nBecause I wanted to support multi file uploads as well as single file uploads, this small bit of code was my first achievement of the project:
let sampleFile = req.files.file;\n// If the 'file' property is an array:\n// Multiple upload\nif (Array.isArray(sampleFile)) {\n sampleFile.forEach((element) => {\n element.mv(`${__dirname}/f/${fileUUID}/${element.name}`, function (err) {\n if (err) {\n return res.status(500).send(err);\n }\n });\n });\n} else {\n // If the 'file' property is not an array:\n // Simple upload\n sampleFile.mv(`${__dirname}/f/${fileUUID}/${sampleFile.name}`, function (\n err\n ) {\n if (err) {\n return res.status(500).send(err);\n }\n });\n}\n
\nWhen you upload multiple files, express-fileupload
stores them in an array and I found out that the quickest way to detect if multiple files are uploaded, it is obviously to check if the send file
is an array or not.
\nAs you may imagine, it works flawlessly so I kept this first portion of spaghetti code.
My second achievement was on how to show a file or a folder to an end user.
\nThe code looks like this:
app.get("/f/:uuid", async (req, res, next) => {\n var getUUID = req.params.uuid;\n\n let files = [];\n let imgFormats = ["png", "jpg", "jpeg", "gif", "webm"];\n\n try {\n fs.readdirSync(`${__dirname}/f/${getUUID}/`).forEach((file) => {\n files.push(file);\n });\n } catch (e) {\n return res.redirect("/");\n }\n\n await redisClient.get(getUUID, function (err, response) {\n if (response != null) {\n return res.status(301).redirect(`/auth?g=${getUUID}`);\n } else {\n res.render("view", {\n files: files,\n curUUID: getUUID,\n imgFormats: imgFormats,\n hostname: process.env.HOSTNAME,\n });\n }\n });\n\n});\n
\nTo understand this code better, you first need to know how the file upload works.
\nHere is how:
f
is created (f for files), it will be where we will store our files/up
address, if the server detects no files or a file that is too big, it will throw an exceptionf
folder is checked to see if this UUID already exists, if it does (which is mostly improbable), it re-generates one, checks it and so on/f/UUID
After this, when the user makes a request to /f/UUID
, the server will check in the f
folder to first see if the UUID exists. Then, the server looks into the directory to see if there is files in it, in case the directory doesn’t exists / is empty, the user will be redirected to the main page.
\nThe server then lists files, put them into and array and the page is displayed.
\nAlso, in case of a password, the server will redirect to a auth page.
\nWhen displaying the page, the server will build up an array of image format that will be displayed in a <img>
tag just so the page will be a little bit more fancier.
\nIt took me some time to make this system but at the end, I am satisfied with the result.
My last achievement is the Docker integration.
\nI think Docker makes it easy to deploy apps like theses and it was important for me that I would provide a quick and easy way to deploy my app.
As now, here is the features of Magikfiles:
\nI am currently working on the next release that will implement codes in order to upload files.
\nIt will likely be the last release and after it, the repo will be archived.
If you wish to help, the repo is currently hosted on Github.
\nThat’s all for today.
\nI’ll see you next time!
In 2019, I re-worked on my website to make one easier to manage using Docker, simple XHTML but mostly, splitting the blog to another domain.
\nThe only problem is: my server is a rented one and not the most powerful in the world so it will not last in time.
This is why I decided to make a new website using Hugo, a framework build in Go.
\nAs all of the content on hugo websites are written in Markdown, it is very easy to maintain a website, even if the blog in embedded into it (like as now).
\nHugo has also a really easy integration of the Gitlab CI and Gitlab Pages to make it easier to deploy.
Expect blog posts to be more frequent. If you don’t want to miss a thing, you can subscribe via RSS.
\nI’ll see you in the next post. 👋
As you may know, I am a Mozilla Firefox user.
\nHere is the addons I am currently using to enhance my experience on the web:
That’s all for the addons I’m using currently.
\nNext list next year!