Marcin Czachurski
👨🏻💻 Software engineer - #Swift / #dotNET / #Angular / #ActivityPub,
📸 Street & analog photography enthusiast, mostly black and white,
👨🏻🎓 Psychology student - somewhere between id 👹 and superego 😇,
🎞️ Founder of #Vernissage, a federated platform for photographers
Spent the whole day fixing ActivityPub JSON deserialization for different servers.
You start with:
"this field is probably a string"
and end with:
"this field is apparently a string, an object, an array, an array of objects, or an eldritch combination of all four."
Turns out JSON is less a format and more a negotiation. Now I'm just curious what systems I haven't met yet are storing in "url". Maybe a dictionary with keys like href, vibes, and trust_me_bro..
The last few weeks have been quite intense for me. I had to prepare for 6 university exams and two pretty tough midterms - and at my age, that’s definitely not as easy as it used to be 😉
But I’m really happy to say that I made it through all of it! And in between study sessions, I managed to build an awesome iOS app. I’m genuinely super happy with how it turned out in the end.
I hope that once it lands in the App Store, you’ll like it just as much as I do 🤞
Implementing and testing ActivityPub on localhost is incredibly painful - if it’s even possible in some cases. I really wish there were a self-hosted service that could simulate other ActivityPub instances, runnable on multiple ports with alias-based addressing. Being able to locally test federation traffic, security scenarios, and edge cases would be amazing. 🫣
Slowly wrapping up the account migration feature for Vernissage - similar to the one known from Mastodon, supporting moves both to and from the platform. I also updated the ActivityPub support documentation along the way, and honestly, I didn’t realize how much is already there. Looking at the full docs (plus the Web and iOS apps), it really hits me how huge this ecosystem has become. Pretty amazing what we’ve managed to build. 😊
https://docs.joinvernissage.org/documentation/vernissageserver/activitypub
Work, building #Vernissage, studying…but let’s not forget an equally important mission: relaxing and taking photos. Greetings from Wrocław to all you photography freaks/nerds 😊
Really glad I started adding unit tests to #Vernissage (API) from day one. There are now 1100+ of them - and they’ve saved me more than once. In projects this size, tests are a must-have. A small change in one place can easily break something elsewhere you’re not even thinking about.
I’ve always loved listening to music. Some time ago, though, I noticed that when I play music from my phone, I hear it but don’t listen. A whole album goes by and I can’t recall a single song. It’s the phone constantly demanding attention. A few weeks ago I invested in a DAP and I’m thrilled. I put my phone away, put on my headphones, and truly enjoy the music. The sound quality is amazing, and nothing (not even my habits) distracts me. Phones have given us a lot, but they’ve taken a lot too.
Sometimes I feel like being an open source developer is a bit of an extreme sport. Especially when the project is large, technically complex, requires costly resources, and supports hundreds of user accounts and hundreds of thousands of photos. It can be truly exhausting - both in terms of time and mental energy. Life as an open source developer is not an easy one 😬
Today at work I built an entire feature (almost 2,000 lines of good-enough code) without writing a single line myself. Programming as we knew it isn’t dying anymore, it’s basically already dead. Unfortunately. Years of hard-earned skill are being speedrun into irrelevance. Sure, we can still write code the old-fashioned way - at home. In the industry, a lot of people will lose their jobs. The ones who adapt fastest will stay, configuring AI instead of writing code. 🧑💻 🥺
Yesterday the weather was beautiful, so I spent the whole day taking photos. Today I improved the keyboard navigation in Vernissage Web, added an API for fetching the list of muted accounts, and updated all the libraries used by the Vernissage API. I also added feedback when you tap buttons on the status details screen in Vernissage for iOS.
Now I can kick back with a smile, listen to some music, and relax - and I wish all of you some relaxing time too. 😌🎶
The truth is, when you run a project like #Vernissage, you are never just a developer. You are also the tester, analyst, product owner, product manager, administrator, moderator, DevOps engineer, support desk, consultant, and who knows what else - all in one person. At some point, you realize you have to become a one-man band. Or rather, an entire organization somehow squeezed into one human being 🤪