Sign in

iiinova is part of the Atmosphere — an open, public network where you own your identity.

JCM

@jcm.at.wafrn.jcm.re
52 followers 96 following 674 posts

Hello World! I am a Computer Engineering student in Berlin and do low-level programming, cursed C++ projects, FPGA stuff, and self-hosting in my free time :3 I absolutely love and adore my cute girlfriend[...] Full profile at wafrn.jcm.re/blog/jcm

PostsRepliesMedia
JCM @jcm.at.wafrn.jcm.re · 07/10/2026
[depol (sort of, but not really)] oh hey, that was a fun little project ;D gotta put this data into Apache Superset (again?) one day
Screenshot of an SQLite database in Beekeeper Studio showing the structure of a table:

zwischenrufe
+ id integer
+ name varchar(64)
+ partei varchar(32)
+ text varchar(1024)
+ rede varchar(16)
+ tagesordnungspunkt varchar(32)
+ sitzung integer
+ datum varchar(16)
+ redner varchar(64)
+ redner_partei varchar(32)
001 1
JCM @jcm.at.wafrn.jcm.re · 03/10/2026
ovo (part of the Ovomaltine text)
000 0
JCM @jcm.at.wafrn.jcm.re · 02/10/2026
felt very cute~
Photo of this sheepy (most of the face censored with a 🐏 emoji) wearing pink and white cat ears. Its hair is a bit messy.
It is wearing a dark blue jacket and orange backpack straps as well as the green strap of a shoulder bag is visible.
In the background there's a blurry grass field with some hard to recognize animals grazing on it.
001 1
JCM @jcm.at.wafrn.jcm.re · 01/10/2026
It's crazy how often this small and cheap (I didn't even mean to buy it) device saved me :D
photo of a USB-to-UART adapter
000 0
JCM @jcm.at.wafrn.jcm.re · 24/09/2026
probably one of my favorite slides I've ever made for university :3 (the lecture I made it for kinda sucked tho)
PowerPoint slide with a robot greeting the reader with a speech bubble "Hi, I am Beepy!".
Footer: "22/07/2024    AI augmented cases of the Traveling Salesperson Problem    4"
001 1
JCM @jcm.at.wafrn.jcm.re · 22/09/2026
Hmmm, do I want a ticket for the entirety of Germany or for the entirety of Germany?
Tarifgebiet* und Preis bei monatlicher Zahlweise
( ) deutschlandweit 0,00¹€
(x) deutschlandweit 0,00¹€
000 0
JCM @jcm.at.wafrn.jcm.re · 18/09/2026
early birthday cake made for me by the amazing @Cyndi 🥰
Photo of Brownies (I hope that's the correct English term as well) in an oven form with still molten chocolate on top
000 0
JCM @jcm.at.wafrn.jcm.re · 16/09/2026
:333
100 1
JCM @jcm.at.wafrn.jcm.re · 13/09/2026
I really, really, really need to finally fix my backups... #self-hosted #self-hosting #I-need-to-buy-a-new-HDD-most-likely-T_T
Longhorn web UI showing lots of volumes with last backup 24 days ago
000 0
JCM @jcm.at.wafrn.jcm.re · 11/09/2026
and it is so incredibly cool that Vulkan now kinda¹ works for Snaps :D ¹ some apps written by horrible baka programmers (me) only start in 1 in every 5 attempts xD
Ubuntu Touch screenshot of XMBShell
000 0
JCM @jcm.at.wafrn.jcm.re · 11/09/2026
I guess I am a Nix user now xD
Ubuntu Touch screenshot of Nix Manager

Nix Manager (search icon)

home-manager
26.05-pre

Nix Generation 4

= Management =
Installed Packages >
Generations >

= Settings =
Channelns >
Advanced Settings >
About >
100 1
JCM @jcm.at.wafrn.jcm.re · 11/09/2026
I also already fixed avatar & media fetching in Wafbuntu (something about the Wafrn cacher changed) and added a button to show an image's alt text (also displays automatically when an image is not loaded yet)
screenshot of the parent post in Wafbuntu with alt text displayed
100 1
JCM @jcm.at.wafrn.jcm.re · 11/09/2026
Heyaaaaaa from Ubuntu Touch~ #ubuntu-touch #ubports #mobilelinux #I'm-happy-to-be-back
screenshot of the system information page in the Ubuntu Touch settings app
100 1
JCM @jcm.at.wafrn.jcm.re · 05/09/2026
S-so dark and s-scary... Hopefully no big bad wolf will hear the sounds of the bells and eat the sheepy! ;3
Noisy picture of a dark path
000 0
JCM @jcm.at.wafrn.jcm.re · 05/09/2026
Sheepy is back in #Berlin! :D #Berlin
Train station sign "Berlin-Lichtenberg"
000 0
JCM @jcm.at.wafrn.jcm.re · 05/09/2026
Car ears deployed~ (kubectl scale -n jcm deployment cat-ears --replicas=1) They always make this one feel very nice, cute and feminine :3
Photo of sheepy wearing cat ears in PKP Intercity train from Kraków Główny to Berlin Lichtenberg in waggon 268 seat 65 ;3
001 1
JCM @jcm.at.wafrn.jcm.re · 04/09/2026
Tickling the dragon's tail :3 Does that qualify me to be a nuclear physicist?
000 0
JCM @jcm.at.wafrn.jcm.re · 04/09/2026
wtf, the AGH University of Kraków blocks @mkljczk@twojstary.gay's website lol #at-least-they-have-IPv6-support #unlike-TU-Berlin-(but-I-don't-think-TU-Berlin-blocks-much-if-anything)
Firefox screenshot:

Tab "Web Filter Violation"

[Not Secure] http://mkljczk.pl/

FortiGuard Intrusion Prevention - Access Blocked

Web Page Blocked

You have tried to access a web page that is in violation of your Internet usage policy.
Category 	Pornography
URL 	https://mkljczk.pl/

To have the rating of this web page re-evaluated please click here.
100 1
JCM @jcm.at.wafrn.jcm.re · 01/09/2026
Two new laptop stickers thanks to @hspoz :3 #It's-kinda-silly-that-I-put-both #I-just-couldn't-decide #oki?
Photo of my Lenovo laptop with the following stickers (left to right)

- 4! Inside of a segmented orange disk (for Freitagsrunde)
- Knyfyrtel Hackerspace hspoz.pl
- Knyfyrtel with a pride flag border
000 0
JCM @jcm.at.wafrn.jcm.re · 01/09/2026
looks like I gotta learn some basic pixelart, since scaling the sheepy down to fit into a 88x31 does not look good :/
88x31 button with bi flag in the background and "jcm.re" and sheepy in foreground
000 0
JCM @jcm.at.wafrn.jcm.re · 01/09/2026
what the hell was I thinking when designing this API?!?!?! #consistency? #what's-that?
webpp::get_element_by_id("dock_container")->style()["display"] = "none";
000 0
JCM @jcm.at.wafrn.jcm.re · 01/09/2026
My train entered Poland and these just appeared out of nowhere???
Photo of pink and white fluffy cat ears on top of my (mostly cropped out) head
001 1
JCM @jcm.at.wafrn.jcm.re · 01/09/2026
Bye bye Berlin!
Photo of Berlin Gesundbrunnen from inside the train while it is driving away
000 0
JCM @jcm.at.wafrn.jcm.re · 01/09/2026
Waiting for my train ^^
Photo of a DB display showing the next train:

09:44
EC 45

Warszawa Wschodnia
Frankfurt (O) - Rzepin - Swiebodzin - Zbaszynek - Poznan Gl. - Konin - Kutno - Warszawa Zachod - Warszawa C
100 1
JCM @jcm.at.wafrn.jcm.re · 23/08/2026
Fully initialized!!! :D (the screenshot only shows the responses from the SD card, because I am too lazy to write proper UART) #FPGA #VHDL #HDL #Icepi-Zero #these-two-additional-steps-were-surpringly-light-on-my-state-machine
lots of [ff] (wake up)
[ff][ff][ff][ff][ff][ff][ff]
[01] (CMD0)
[ff][ff][ff][ff][ff][ff][ff]
[01][00][00][01][aa] (CMD8)
[ff][ff][ff][ff][ff][ff][ff][ff]
[01] (CMD55)
[ff][ff][ff][ff][ff][ff][ff][ff]
[01] (ACMD41)
[ff][ff][ff][ff][ff][ff][ff][ff]
[01] (CMD55)
[ff][ff][ff][ff][ff][ff][ff][ff]
[00] (ACMD41)
[ff]
001 1
JCM @jcm.at.wafrn.jcm.re · 22/08/2026
OMGGGG, first few steps of SD card initalization work!!! #this-one-probably-wins-the-price-of-the-worst-ever-state-machine-I-wrote #it's-basically-two-different-state-machines-frankensteined-together #VHDL #HDL #Icepi-Zero #FPGA
 ╰─λ openFPGALoader --board icepi-zero build/top.bit && picocom /dev/ttyUSB0 -b 115200 -c --omap lfcrlf --imap spchex,tabhex,crhex,lfhex,nrmhex,8bithex
Jtag probe limited to 3MHz
Jtag frequency : requested 6000000Hz -> real 3000000Hz
ret 0
Open file: DONE
b3bdffff
Parse file: DONE
Enable configuration: DONE
SRAM erase: DONE
Loading: [==================================================] 100.00%
Done
Disable configuration: DONE
picocom v3.1

port is        : /dev/ttyUSB0
flowcontrol    : none
baudrate is    : 115200
parity is      : none
databits are   : 8
stopbits are   : 1
escape is      : C-a
local echo is  : yes
noinit is      : no
noreset is     : no
hangup is      : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv -E
imap is        : spchex,tabhex,crhex,lfhex,8bithex,nrmhex,
omap is        : lfcrlf,
emap is        : crcrlf,delbs,
logfile is     : none
initstring     : none
exit_after is  : not set
exit is        : no

Type [C-a] [C-h] to see available commands
101 1
JCM @jcm.at.wafrn.jcm.re · 22/08/2026
immediately called/invoked lamda my beloved
export Window blog = [](){
        Window w{"blog", "Blog", "images/blog.png", [](){
            return fragment{
                dv{{_id{"blog_container"}}}
            };
        }};

        using namespace webpp::coro;
        w.on_open += []() {
            submit([]()->coroutine<void> {
                std::string xml = co_await fetch("https://files.jcm.re/blog.xml").then(std::mem_fn(&webpp::response::co_text));
                tinyxml2::XMLDocument doc;
                doc.Parse(xml.data(), xml.size());
                tinyxml2::XMLElement* root = doc.FirstChildElement("rss");
                tinyxml2::XMLElement* channel = root->FirstChildElement("channel");
                for(tinyxml2::XMLElement* item = channel->FirstChildElement("item"); item; item = item->NextSiblingElement("item")) {
                    std::string title = item->FirstChildElement("title")->GetText();
                    std::string link = item->FirstChildElement("link")->GetText();
                    st
100 1
JCM @jcm.at.wafrn.jcm.re · 19/08/2026
[...]
Website screenshot.

A window (as in a frame with close, minimize, maximize buttons) titled "Events" with my sheepy profile picture sitting on top of it.

Content:

A list of events I am planning to attend and places I will go to:

2026-09-01: Visiting Knyfyrtel not for the full day tho in Poznań (hopefully)
2026-09-02 to 2026-09-04: DSD 2026 in Kraków
001 1
JCM @jcm.at.wafrn.jcm.re · 19/08/2026
Why does this take soooo loooooooooooong? 😭
Screenshot Monero GUI transaction scanning/synchronizing

Wallet blocks remaining: 2384208
Daemon is synchronized

Network status
Synchronizing
100 1
JCM @jcm.at.wafrn.jcm.re · 17/08/2026
2137

Post Count
000 0
JCM @jcm.at.wafrn.jcm.re · 17/08/2026
EVERYONE can bite me!!! #I'm-so-happy-Wafrn-finally-got-bite-controls
Combo box: "Who can bite me", "Everyone" is selected
000 0
JCM @jcm.at.wafrn.jcm.re · 09/08/2026
My idea was for something like this to do the biting :D
random picture of Halloween vampire teeth
000 0
JCM @jcm.at.wafrn.jcm.re · 08/08/2026
New Wrocław Gnome added to the ~~Poké~~GnomeDex~!
Wrocław Gnome pushing a giant disk with the text "SILESIUSZ II"
001 1
JCM @jcm.at.wafrn.jcm.re · 08/08/2026
Frankfurt, oder?
Photo of the "Frankfurt (Oder)" train station sign, taken from inside a train
010 1
JCM @jcm.at.wafrn.jcm.re · 07/08/2026
infrastructure-as-code? shitposts-as-code! #I-am-tempted-to-actually-write-an-OpenTofu-provider-for-this #but-I-don't-speak-Go
resource "wafrn_attachment" "test_screenshot" {
	data = file("screenshot.png")
	alt_text = "Screenshot of this source code."
	sensitive = false
}

resource "wafrn_post" "test_post" {
	visibility = "Public"
	content = <<-EOF
		infrastructure-as-code? shitposts-as-code!
	EOF
	
	tags = [
		"I am tempted to actually write an OpenTofu provider for this",
		"but I don't speak Go"
	]
	
	attachment {
		attachment_ref = wafrn_attachment.test_screenshot.id
	}
	
	interaction_control {
		reply = "Anyone"
		quote = "Anyone"
	}	
}
001 1
JCM @jcm.at.wafrn.jcm.re · 04/08/2026
printf debugging? LED debugging! #FPGA #Icepi-Zero
000 0
JCM @jcm.at.wafrn.jcm.re · 03/08/2026
This button is scaring me 😨 #why-are-conferences-so-damn-expensive
A blue button saying "Buy for 700.00 EUR"
101 1
JCM @jcm.at.wafrn.jcm.re · 02/08/2026
Wrote my first block to an SD card manually (by sending the commands as hex codes) :D Now I only need to turn this process into VHDL ^_^
Terminal Screenshot

 ╭─jcm💞cyndi@BakaPC in ~ as 🧙 at 05:38:37 took 21ms
 ╰─λ sudo dd if=/dev/sdf count=1 status=none | hexdump -C
00000000  4c 6f 72 65 6d 20 69 70  73 75 6d 20 64 6f 6c 6f  |Lorem ipsum dolo|
00000010  72 20 73 69 74 20 61 6d  65 74 2c 20 63 6f 6e 73  |r sit amet, cons|
00000020  65 63 74 65 74 75 72 20  61 64 69 70 69 73 63 69  |ectetur adipisci|
00000030  6e 67 20 65 6c 69 74 2e  20 44 75 69 73 20 62 6c  |ng elit. Duis bl|
00000040  61 6e 64 69 74 2c 20 6f  72 63 69 20 76 65 6c 20  |andit, orci vel |
00000050  62 69 62 65 6e 64 75 6d  20 65 6c 65 69 66 65 6e  |bibendum eleifen|
00000060  64 2c 20 6c 61 63 75 73  20 74 65 6c 6c 75 73 20  |d, lacus tellus |
00000070  65 66 66 69 63 69 74 75  72 20 75 72 6e 61 2c 20  |efficitur urna, |
00000080  6e 6f 6e 20 66 69 6e 69  62 75 73 20 76 65 6c 69  |non finibus veli|
00000090  74 20 6d 61 73 73 61 20  6e 65 63 20 70 75 72 75  |t massa nec puru|
000000a0  73 2e 20 53 65 64 20 61  74 20 64 69 61 6d 20 64  |s. Sed at diam
000 0
JCM @jcm.at.wafrn.jcm.re · 25/06/2026
German standard ice cube.
Photo of an ice cube with the DIN logo imprinted on its surface.
001 1
JCM @jcm.at.wafrn.jcm.re · 21/06/2026
When the bootloader does not support USB C PD negotiation:
Photo of my SBC, whose power input is connected to a USB C cable marked with "⚠️ 20 V ⚠️", which is in turn connected to a USB C PD dummy board outputting 20 V.
000 0
JCM @jcm.at.wafrn.jcm.re · 19/06/2026
Despite now owning a much better actual smartwatch, I still absolutely love my LILYGO T-Watch S3 &lt;3 #smartwatch #esp32 #cyberpunk #cyberpunk2077
000 0
JCM @jcm.at.wafrn.jcm.re · 14/06/2026
fwiends :3
000 0
JCM @jcm.at.wafrn.jcm.re · 13/06/2026
eepy cutie~
Picture of an Umbreon figurine sleeping on a gray pillow. It was taken on a Nintendo 3DS and has been converted into a wiggle GIF to show the 3D effect.
110 1
JCM @jcm.at.wafrn.jcm.re · 09/06/2026
Maaaaybe I do need an Anubis alternative and cannot just rely on some random manual IP blocks... RE: wafrn.jcm.re/fediverse/post/a767d5e…
Headlamp screenshot:

Pod: gitea-5c45c4f94b-9c86z
Namespace: gitea
Restarts: 0
Ready: 1/1
Status: Running
CPU: 493m (this is what I refer to)
Memory: 583.4 Mi
IP: 10.1.41.25 (pls don't DDOS)
Node: v
Age: 4d
000 0
JCM @jcm.at.wafrn.jcm.re · 26/05/2026
very tempted to leave this in my homework submission :>
needle = b'meow meow~ ;3'
set_title(needle)
assert read_memory(addr_title, len(needle)) == needle

needle = b'owo uwu'
set_author(needle)
assert read_memory(addr_author, len(needle)) == needle
100 1
JCM @jcm.at.wafrn.jcm.re · 25/05/2026
me: Oh dear, I've worked so long on these slides, but I am finally finished. I just need to upload them and then I can go to sleep. isis.tu-berlin.de: "Fehler: folien04.pdf wurde von einem Virenprüfprogramm analysiert und als infiziert eingeschätzt!" // "Error: folien0... see complete post
"Fehler: folien04.pdf wurde von einem Virenprüfprogramm analysiert und als infiziert eingeschätzt!" // "Error: folien04.pdf was analyzed by a virus scanning program and identified as infected!"
000 0
JCM @jcm.at.wafrn.jcm.re · 19/05/2026
thank you for nothing, Kleinanzeigen... First screenshot: "Your password has been reset for security reasons. We've noticed unusual activity on your account. Therefore, we've reset your password. Simply follow the instructions we sent you via email. Then, please choos... see complete post
Your password has been reset for security reasons. We've noticed unusual activity on your account. Therefore, we've reset your password. Simply follow the instructions we sent you via email. Then, please choose a new, secure password and log in again.🔐 Set your new password now. Hello 👋, You have requested a new password for your Kleinanzeigen account. Please follow the button to set it: Set new password. This link is valid for 15 minutes.This page is no longer valid. To request a new password reset link, please click here.IP range temporarily blocked. There have recently been several unsafe attempts to use our platform from your IP range. This may have been done by other people. Therefore, to prevent fraud, this IP range has been temporarily blocked from using Kleinanzeigen. Please try again later.
000 0
JCM @jcm.at.wafrn.jcm.re · 18/05/2026
Uhmm... Well... 😅 I don't think I will ever hit that metric... This is without debug info... Too many templates... RE: social.vivaldi.net/users/lproven/st…
Screenshot of a web application interface named "cutie-logs version 0.1" showing the tabs "Text View, "Table View, "Settings", as well as statistics, including 495640 total log entries, 169 attributes, 9 resources, and 3 scopes.

The bottom half of the image shows Firefox's developer tools network inspector, highlighting a GET request for a 5.26 MB WebAssembly file named mainpage.wasm.
001 1
JCM @jcm.at.wafrn.jcm.re · 13/05/2026
Spent days debugging VHDL code on an FPGA and the problem turns out to be an off-by-one error in a Python script I hacked together at 2 am three months ago ~_~
Screenshot of a Forgejo diff:

File: scripts/program_exploit2.py
Diff:

   print(f"Connected to {serial_port} at {baud_rate} baud.")

   key_block = encrypted_data[12:12 + key_size]
- block_start = 12 + key_size + 1 * block_size
+ block_start = 12 + key_size
   block_end = block_start + block_size
   block = encrypted_data[block_start:block_end]
041 4
JCM @jcm.at.wafrn.jcm.re · 07/05/2026
ironic
To be added
000 0