diff --git a/.github/workflows/upload.yml b/.github/workflows/upload.yml deleted file mode 100644 index 13698e1..0000000 --- a/.github/workflows/upload.yml +++ /dev/null @@ -1,68 +0,0 @@ -name: "Build & Publish" - -on: [push] - -concurrency: - group: build-publish - cancel-in-progress: false - -jobs: - build: - name: "Build" - runs-on: "ubuntu-22.04" - strategy: - fail-fast: true - steps: - - name: "Install Build Tools" - shell: bash - run: | - sudo apt-get update - sudo apt-get install ruby-full build-essential zlib1g-dev - echo "GEM_HOME=$HOME/gems" >> "${GITHUB_ENV}" - echo "PATH=$HOME/bin:$PATH" >> "${GITHUB_ENV}" - sudo gem install bundler - - name: "Clone" - uses: actions/checkout@v3 - with: - submodules: recursive - fetch-depth: 0 - - name: "Install Dependencies" - shell: bash - run: | - bundle install - - name: "Build" - shell: bash - run: | - bundle exec jekyll clean --destination build - bundle exec jekyll build --destination build - - name: "Upload Artifact" - uses: actions/upload-artifact@v4 - with: - path: "build/" - if-no-files-found: error - retention-days: 7 - compression-level: 0 - publish: - name: "Publish" - runs-on: "ubuntu-22.04" - needs: build - strategy: - fail-fast: true - steps: - - name: "Download Artifact" - uses: actions/download-artifact@v4 - with: - merge-multiple: true - - name: "Restore SSH Key" - shell: bash - run: | - mkdir $HOME/.ssh - chmod u=rwx,go= $HOME/.ssh - echo "${{ secrets.SSHKEY }}" | base64 -d > $HOME/.ssh/id_ed25519 - chmod u=rw,go= $HOME/.ssh/id_ed25519 - echo "Host xaymar.com" >> $HOME/.ssh/config - echo " StrictHostKeyChecking no" >> $HOME/.ssh/config - - name: "Publish" - shell: bash - run: | - rsync -v -h -P -a --delete . "com.xaymar@xaymar.com:/var/www/com.xaymar/public/com.xaymar.www/" diff --git a/_about/me.html b/_about/me.html index c158532..7200168 100644 --- a/_about/me.html +++ b/_about/me.html @@ -5,16 +5,16 @@ comments: false date: "2022-01-12" --- -{% capture content %}Hey, I’m the guy referred to as “Xaymar” – also known by the real name Michael Fabian Dirks. I’ve been enjoying software development for a long time now, it’s both my hobby and my job, and i love it. I’m probably a great example when it comes to “Love your job and you’ll never work a day in your life”, because so far it has only felt like work once.{% endcapture %}{% include blocks/paragraph.liquid content=content %} +
Hi, my name is Xaymar, a trilingual (🇩🇪🇬🇧🇳🇱) Furry/Scaly Vtuber with AuDHD. I'm software and game developer since 2002, starting with a Basic-like language on Amiga. I worked for Elgato (now Corsair), Thales, OWN3D, Streamlabs, and now I have my own company called Vhonowslend. I've always been fond of coding as an escape from reality, and I'm probably a good example of “Love your job and you'll never work a day in your life”.
-{% capture content %}I love playing and making games, listening to music, reading comics and books, and obviously also love programming. My favourite music genres include Drum & Bass and Psytrance, while my favourite games (so far) are Stardew Valley, Factorio, Risk of Rain, and Cave Story+.{% endcapture %}{% include blocks/paragraph.liquid content=content %} +I love playing and making games, listening to music, reading comics and books, and obviously also love programming. My favourite music genres include Drum & Bass and Psytrance, while my favourite games (so far) are Stardew Valley, Factorio, Risk of Rain, and Cave Story+. Anyway, that's pretty much it. There isn't much to me – I'm just another human, with different interests and different skills.
-{% capture content %}Anyway, that’s pretty much it. There isn’t much to me – I’m just another human, with different interests and different skills.{% endcapture %}{% include blocks/paragraph.liquid content=content %} -{% include blocks/heading.liquid level=1 content="Contact Me" %} +Go find me on other socials if you want to know more, my Linktree has all of them.
-{% capture content %}You can contact me at: info (at) xaymar (dot) com . Use the PGP key below for End-To-End Encryption.{% endcapture %}{% include blocks/paragraph.liquid content=content %} +You can contact me at: info (at) xaymar (dot) com. Use the PGP key below for End-To-End Encryption if you need it.
-----BEGIN PGP PUBLIC KEY BLOCK-----
xjMEYJJ1RxYJKwYBBAHaRw8BAQdA53AIvujGXIV3x8M4Ns4yXf7/fdpuBjDXL8uybq1lvUTNL01p
Y2hhZWwgRmFiaWFuICdYYXltYXInIERpcmtzIDxpbmZvQHhheW1hci5jb20+wpEEExYIADkWIQR7
gh48yk5u6aS6TDX9mKsqgjje9AUCYJJ1RwUJBaOagAIbAwULCQgHAgYVCAkKCwIFFgIDAQAACgkQ
@@ -24,4 +24,7 @@ x+mxFhYepi6wcN9DPbdKMpsoAwEIB8J+BBgWCAAmFiEEe4IePMpObumkukw1/ZirKoI43vQFAmCS
dUcFCQWjmoACGwwACgkQ/ZirKoI43vQ9UgEA/rcGHvgIgN3HWowTbSZ1eFbUIjQhcSslq9LTB196
pT4A+gMR7FyY7U2erlW74dEBzJbGu9otL5YKeLgTygLa7C0E
=KrxB
------END PGP PUBLIC KEY BLOCK-----{% endcapture %}{% include blocks/code.liquid content=content %}
+-----END PGP PUBLIC KEY BLOCK-----
+
+Under applicable law (§ 5 Digitale-Dienste-Gesetz, § 18 Medienstaatsvertrag) I am not required to provide an Imprint. You can contact me using the above E-Mail address or in extreme cases go through the proper legal means.
\ No newline at end of file diff --git a/_config.yml b/_config.yml index d6984bd..55e25c2 100644 --- a/_config.yml +++ b/_config.yml @@ -70,11 +70,6 @@ collections: posts: output: false label: "Articles" - games: - output: true - permalink: '/games/:path/' - label: "Games" - sort_by: title guides: output: true permalink: '/guides/:path/' diff --git a/_data/navigation.json b/_data/navigation.json index 78a07e3..7228b71 100644 --- a/_data/navigation.json +++ b/_data/navigation.json @@ -1,85 +1,15 @@ { "home": { - "name": "Home", - "url": "/", - "entries": { - "news": { - "name": "News", - "url": "/category/news/", - "blank": false, - "entries": { - "progress-reports": { - "name": "Progress Reports", - "url": "/category/progress-reports/", - "blank": false - } - } - }, - "blog": { - "name": "Blogs", - "url": "/category/blog/", - "blank": false - }, - "review": { - "name": "Reviews", - "url": "/category/review/", - "blank": false - } - } + "name": "Blog", + "url": "/" }, "project": { "name": "Projects", - "entries": { - "obs-studio": { - "name": "OBS Studio", - "entries": { - "amd-encoder": { - "name": "AMD Encoders", - "url": "/projects/obs/amd-encoder/", - "blank": false - }, - "ffmpeg-encoder": { - "name": "FFmpeg Encoders", - "url": "/projects/obs/ffmpeg-encoder/", - "blank": false - }, - "ocean-blue": { - "name": "Ocean Blue", - "url": "/projects/obs/ocean-blue/", - "blank": false - }, - "streamfx": { - "name": "StreamFX", - "url": "/projects/obs/streamfx/", - "blank": false - } - } - }, - "voicefx": { - "name": "VoiceFX (for VST)", - "url": "/projects/voicefx/", - "blank": false - }, - "all": { - "name": "All Projects", - "url": "/projects/", - "blank": false - } - } + "url": "/projects" }, "guides": { "name": "Guides", "entries": { - "games": { - "name": "Games", - "entries": { - "remnant2": { - "name": "Remnant 2", - "url": "games/remnant2/", - "blank": false - } - } - }, "debloating": { "name": "Debloating your System", "blank": false, @@ -91,6 +21,21 @@ } } }, + "games": { + "name": "Games", + "entries": { + "remnant2": { + "name": "Remnant 2", + "url": "guides/games/remnant2/", + "blank": false + } + } + }, + "lost_knowledge": { + "name": "Lost Knowledge & Secrets", + "url": "guides/lost-knowledge-and-secrets/", + "blank": false + }, "recording": { "name": "High Quality Recording (in OBS Studio)", "url": "guides/obs/high-quality-recording/", @@ -132,52 +77,58 @@ "blank": false } } - }, - "lost_knowledge": { - "name": "Lost Knowledge & Secrets", - "url": "guides/lost-knowledge-and-secrets/", - "blank": false } } }, - "socials": { - "name": "Socials", + "about": { + "name": "About Me", + "url": "/about/me/", "entries": { - "discord": { - "name": "Discord", - "url": "https://s.xaymar.com/discord", - "blank": true + "imprint": { + "name": "Imprint", + "url": "/about/me/#imprint" }, - "github": { - "name": "GitHub", - "url": "https://s.xaymar.com/github", - "blank": true - }, - "patreon": { - "name": "Patreon", - "url": "https://s.xaymar.com/patreon", - "blank": true - }, - "twitch": { - "name": "Twitch", - "url": "https://s.xaymar.com/twitch", - "blank": true - }, - "about": { - "name": "About Me", - "url": "/about/me/", + "socials": { + "name": "Social Links", + "url": "https://linktr.ee/xaymar", + "blank": true, "entries": { - "privacy": { - "name": "Privacy Policy", - "url": "about/privacy/", - "blank": false + "bluesky": { + "name": "BlueSky", + "url": "https://bsky.app/profile/xaymar.com", + "blank": true }, - "rss": { - "name": "RSS Feed", - "url": "/feed.xml", + "discord": { + "name": "Discord", + "url": "https://discord.gg/UD8hhU6BsG", + "blank": true + }, + "tiktok": { + "name": "TikTok", + "url": "https://www.tiktok.com/@dotxaymar?_t=zg-8tauujbyvct&_r=1", + "blank": true + }, + "twitch": { + "name": "Twitch", + "url": "http://twitch.tv/xaymar", + "blank": true + }, + "youtube": { + "name": "YouTube", + "url": "https://discord.gg/UD8hhU6BsG", "blank": true } } + }, + "privacy": { + "name": "Privacy Policy", + "url": "about/privacy/", + "blank": false + }, + "rss": { + "name": "RSS Feed", + "url": "/feed.xml", + "blank": true } } } diff --git a/_games/remnant2.html b/_guides/games/remnant2.html similarity index 99% rename from _games/remnant2.html rename to _guides/games/remnant2.html index 192b390..26b4724 100644 --- a/_games/remnant2.html +++ b/_guides/games/remnant2.html @@ -2,6 +2,8 @@ title: "Remnant 2: All Builds for Armor, Weapons, Rings, Amulets, etc." category: [ "Build" ] tags: ["Remnant 2", "Build"] +redirect_from: +- /games/remnant2/ ---Remnant 2, also known as "What Remnant: From the Ashes" should have been, is finally out and I've already finished the entire game - 5 times. It is incredibly fun and addictive, especially due to the depth of the game - not just randomly generated maps, but also a lot of layered secrets. Anyway, here are my builds that I've used so far.
diff --git a/_posts/2020/2020-12-08-fastest-uint8array-to-hex-string-conversion-in-javascript.html b/_posts/2020/2020-12-08-fastest-uint8array-to-hex-string-conversion-in-javascript.html index 6b80880..2ea8f47 100644 --- a/_posts/2020/2020-12-08-fastest-uint8array-to-hex-string-conversion-in-javascript.html +++ b/_posts/2020/2020-12-08-fastest-uint8array-to-hex-string-conversion-in-javascript.html @@ -4,7 +4,9 @@ category: Blog tags: ["JavaScript", "TypedArray", "WordPress Archive"] --- -As a Programmer I have to deal with a number of programming languages to write code, and one language that repeatedly appears is JavaScript. JavaScript is one of the weirder languages - similar to PHP in weirdness - which makes it an interesting experience to say the least. Most of the time you're at the whim of a grey box compiler, due to the massive variance of Browsers and Devices that the users use.
+As a Programmer I have to deal with a number of programming languages to write code, and one language that repeatedly appears is JavaScript. JavaScript is one of the weirder languages - similar to PHP in weirdness - which makes it an interesting experience to say the least. Most of the time you're at the whim of a grey box compiler, due to the massive variance of Browsers and Devices that the users use.
+ +So in order to best approach reality, I have to figure out which APIs are available at any point in time, and also run performance benchmarks in current major browsers available to me. And that's what todays post is about, finding which of the various methods is fast enough for high performance use.
diff --git a/_posts/2024/2024-08-09-review-relic-odyssey.html b/_posts/2024/2024-08-09-review-relic-odyssey.html index b686a6a..c609ffc 100644 --- a/_posts/2024/2024-08-09-review-relic-odyssey.html +++ b/_posts/2024/2024-08-09-review-relic-odyssey.html @@ -63,8 +63,4 @@ tags: ["Review", "Exploration", "Action", "Shooter", "First-Person" ]As it currently is, my recommendation is "if you've got nothing better". The game is still in Early Access, so its current state isn't representative of the final product, and that shows in many areas. Who knows what progress the developers manage to make by the end of next year, maybe it'll be nothing like what's described here. I've linked the game's page below for your own perusal.
- - - -I don't know why the Store page is "The ruins of Xantao", but the game itself is titled "Ruins of Xantao".
+As it currently is, my recommendation is "if you've got nothing better". The game is still in Early Access, so its current state isn't representative of the final product, and that shows in many areas. Who knows what progress the developers manage to make by the end of next year, maybe it'll be nothing like what's described here.
diff --git a/_posts/2024/2024-12-06-poe2.html b/_posts/2024/2024-12-06-poe2.html new file mode 100644 index 0000000..48deb53 --- /dev/null +++ b/_posts/2024/2024-12-06-poe2.html @@ -0,0 +1,7 @@ +--- +title: "Path of Exile 2" +category: [ "Blog" ] +tags: [ "Path of Exile", "PoE", "Path of Exile 2", "PoE2" ] +--- + +Gonna be enjoying a newly released indie game for abit. See ya all next year! \ No newline at end of file diff --git a/_projects/obs/amd-encoder.html b/_projects/obs/amd-encoder.html deleted file mode 100644 index 91658c2..0000000 --- a/_projects/obs/amd-encoder.html +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default -title: "AMD AMF Encoders (for OBS Studio)" -comments: false -date: "2022-03-07" ---- - -{% capture content %}The AMD Encoder plugin for OBS Studio enables AMD GPU owners to use their GPUs to encode H.264 and H.265 video directly. It leverages the AMF SDK (and in older versions a Media Codec SDK), which enables direct integration of AMDs video engine into other Software. At the peak of its lifetime, the AMD Encoder was integrated into OBS Studio and became part of its core toolset.{% endcapture %}{% include blocks/paragraph.liquid content=content %} - -{% capture content %}The project is now unmaintained and completely abandoned, after the de-facto only maintainer (me) left the project. This decision was made due to repeated disagreements with the OBS Project team and harassment from people affiliated with the OBS Project team.{% endcapture %}{% include blocks/paragraph.liquid content=content %} - -{% include blocks/heading.liquid level=2 content="Further Links" float="clear" %} -{% capture content %} -StreamFX is the premier plugin to OBS Studio to take your stream or recording to the next level! Whether it is crafting advanced scene setups, recording in intermediate formats, bringing out a little bit of extra quality from encoders, StreamFX has everything you need. Bring your content creation to the future, no matter if you are a Power User or End User.
- -

VoiceFX is a VST 2.x and VST 3.x plug-in enabling you to clean up noise and echo from recordings in post-processing1 workflows. It is based on NVIDIA Broadcast SDKs, and as such is able to filter out fan noise, keyboard clicking, and a lot of other unwated noise. At the current time it is compatible with a number of VST 2.x and 3.x hosts, but may not work with all of them2.
- -The table below explains the differences between each version, as well as what is planned for the future. Please note that this is not a guarantee, as sometimes features end up impossible upon closer inspection.
-| Feature | -Demo Version | -Full Version | -
|---|---|---|
| VST 3.x Support | -✔ (v0.1) | -✔ (v0.1) | -
| VST 2.x Support | -✔ (v0.3) | -✔ (v0.2) | -
| Noise Removal1 | -✔ (v0.3) | -✔ (v0.3) | -
| Room Echo Removal3 | -❌ | -✔ (v0.4) | -
| Acoustic Echo Removal3 | -❌ | -❌ | -
| Intensity Control | -❌ | -✔ (v0.4) | -
| Automation | -❌ | -✔ (v0.4) | -
| User Interface | -❌ | -❌ | -
Over the years I've started, stopped, forgotten, and completed many projects. This is a list of all of them that I remember.
+ +My first complex project made in Blitz3D and possibly still the one I'm most proud of, as I was merely 16 years old at the time. It was a clone of Guitar Hero or Frets on Fire for PC/Windows and ended up being a massive learning experience for a lot of things. The final version which never saw the public had a fully implemented stage and music editor, calculated accuracy, had difficulty selection, and a lot more.
+ +Unfortunately real life eventually caught up and I had to abandon the project, and the project files were also lost due to various incidents and experiences.
+ + + +My first endeaver into making plugins for OBS Studio was spawned by being nerdsniped by a reddit thread on /r/AMD of all things. At the time I had an AMD Radeon HD 5770 (still have it boxed) and I was trying to get more quality out of my recordings. I had the option of using a fork of OBS Classic (it had heavy performance penalty) or use the official "Plays.tv" app (which was filled with ads and tracking).
+ +But instead of choosing either, I decided that the most intelligent path forwards was to trial and error my way through the (now defunct) AMD Media SDK (without AMDs permission). The plugin quickly took shape and its first working version was done within just a month, with it rapidly getting significantly more stable and versatile with each release. Eventually it caught the attention of AMD and it was credited as the reason why the Video Encoding team wasn't completely axed that year, eventually resulting in the new AMD Advanced Media Framework.
+ +The project was put on ice in late 2020 after repeated disagreements with the team being OBS Studio, especially the project lead. As of 2023 it has been replaced with a superior implementation which makes use of hardware texture sharing.
+ + + +Originally under the name Stream Effects, this project is what kickstarted my career and massively improved my C++ knowledge. I have learned basically all I know about modern C++ through this project alone, as it always was the place for new groundbreaking inventions and changes. Though some of these inventions were made by necessity or requirement, not by choice.
+ +At its core this project adds several sources, filters, encoders, and transitions to the popular OBS Studio streaming solution. It was developed primarily for friends and family, but later gained an audience far beyond what I could handle - at its peak had an average of 200k active users. As funding was running out due to inflation, it was eventually migrated to a paid model.
+ +As of 2025 it is now owned and run by Vhonowslend.
+ +BlitzLLVM is an attempt at making a compiler or transpiler for the BlitzBasic language (Blitz2D, Blitz3D and BlitzPlus). The end goal is to be able to compile BlitzBasic-based games using a modern compiler, significantly improving performance and compatibility with modern systems. It is simultaneously a learning experience and an application of learned experience.
+ +A simple "Now Playing" overlay that uses Last.fm and runs in a Browser Source. Kinda not much to write about, it was just a result of not wanting to install weird software with administrator rights.
+ + + +With Steinberg abandoning and removing the VST 2.x SDK from their website, I had to search for alternatives. All of the "open source" SDKs at the time were tainted and therefore could not be used in any way, so it was time to take matters into my own hands. It took about 9000€ in lawyer expenses and a year of documenting and writing code before I could make the worlds first untained clean room VST 2.x SDK.
+ +This was the most fun I've had reverse engineering software APIs in years. A shame it set me back a significant chunk of my savings, though thanks to sales of VoiceFX I've barely equalled out the expenses.
+ +As the built-in encoders in OBS Studio felt too limiting, I made a plugin that provides the FFmpeg included encoders instead. Over time the code base further and further merged with StreamFX, and the two projects merged into one. It is now a core feature of StreamFX.
+ + + +Ocean Blue is a "dark mode" theme for OBS Studio with a focus on clarity and visual grouping without sacrificing style. It is a result of wanting to avoid the gray/black epidemic and after testing a lot of different colors I arrived at what I dubbed as "Ocean Blue". It is a color that is not too straining on the eyes in the night, yet still lends itself to nice styling options.
+ + + +After seeing the announcement and release of RTX Voice I got a bit excited about how well it worked at the time, and wanted to turn it into a plugin usable for offline post-processing. The result was a barely functional plugin that broke under more situations than expected, and to this date still doesn't fully work.
+ +As of 2025 it is now owned and run by Vhonowslend.
+ +