Tom.K



Day 1 @ FOSDEM 2023

Finally, the first day of the event. Had to prepare at least so I can at least arrive at the event. However, things can go wrong at any point.


For day 1 of FOSDEM event, I had to prepare. Switch to new clothes and preparing other things, even though technically it could be unnoticeable due to the smell of piss around the town. Still, I had to take a shower and get ready for the breakfast. Sure enough, it was 10€, but comparing it with that damn rabbit dinner, this was heaven. Hardboiled and smashed eggs, sausage slices, bologna, hard cheese, soft cheese, cheesy spread, orange juice, water, coffee, green and black olives, white and integral bread, orange slices, pear slices, crepes, lemon sponge cake, waffles, cereals, milk, baked crepes with sour cream filling, french toast, croissants, apples, and yoghurt with strawberry jam. I've only mentioned things I would consider eating, and that was most of it that day. Those 10€ for such breakfast are truly worth it, I was damn full.

After breakfast, I had to figure out how to reach ULB before it even begins. That's a clusterfuck overall. First of all, reach the nearest metro, somewhere near Botanique. I've got daily ticket as I don't want to risk screwing one trip ticket instead. I already screwed up by going on the right metro waiting station, but wrong direction, had to switch around. I went to south station where I was initially and tried to use OsmAnd and Google Maps, but I got screwed up on both due to navigating old route and GPS not being well positioned after leaving metro, ending up with rushed run back to the metro, reach Louise station and then find bus 71.

I did find the bus as it was leaving, but I've realized that I went wrong direction again as I was supposed to get to Delta direction and this wasn't that direction. I tried to leave on next stop, but the button didn't register until it left. The driver asked me if I want to exit in French, so my gibberish English was a fuckup, but I did manage to leave. He gave that "you fucked it up, dumbass" while nolling his head. I ran to the other bus stop and hoped that he wouldn't be the next driver. Luckily, he wasn't. I was certainly right this time as there were a lot of people with open-source project badges and discussion in the bus. After few stops, we reached ULB and I slowly started to look around the place.

As I was going down, I've seen few food trucks and wondered what they had, but damn, I was not ready for such prices at this moment. I was already lost. I had no clue where was J building. I saw H building on the right side, but dear god, it was full. I did stumble upon two guys and asked them if they know where J building is, but they weren't sure either, so we tried to use our apps and figure out the location of the building. After a while, we managed to find and enter it. We take our seats and wait the initial welcoming talk. Me, Alex and Jakob (the two guys I've mentioned) have introduced each other at this point and talked a bit until the talk began. The hall where the meeting was huge and already full of people when the talk has started.

After the talk has finished, we went outside to get free coffee that was available in one of food stands. I already screwed up drinking mine as it was too hot. We exchanged contacts just in case we want to meet up later. I had to rush to find Kotlin devroom. First of all, I had to find U building. To the north and then to the east (I barely wonder the direction by now). The entrance in this case was Ud section. So, you had Ua, Ub, Uc and Ud sections. I had to find Ub in this case. I ran around, went up the stairs, to the exit and entered U building park. Nice, but I was in a hurry. Run up to find Ub sign and get in.

Now the problem was finding the room. It was UB5.230. I've only realized that 5 meant the floor and 230 the room number. I ran over the stairs and explored every level until I've reached 5th and found the furthest room entrance for it. There were 2 doors on left side that were also available, but I had no clue if they were accessible or not. Got a seat and ready to begin listening to the talks.

The current situation of Kotlin seems to be an investment into Multiplatform as the primary goal for developers. Trying to reuse and share code over different platforms is difficult without some sort of common parts. I'm still using Kotlin/JVM mostly, but if things get better, I'll probably start going with Multiplatform development, too. Kotlin/Native is finally getting some better building process and logic where freezing objects is no longer a thing, thankfully. K2 compiler should give a major boost, too.

Reflection is always a mixed bag, even though it's a blessing for JVM environment, it doesn't exist outside of it. KSP seems like an alternative to KAPT which seems to have caused a lot of trouble with building process. I still didn't work with any annotation processing, so this might take a while to even consider using it, but it should help within Multiplatform scope at least. I've decided to take a break as I wasn't interested into Rust integration with Kotlin that much, but I assume that it can be a mixed bag when you mix native things in some way.

I've went outside of the building and went around to find few stands in building AW. The entrance door looked ancient, thought it was the wrong door, but I did enter after all. I did check out coreboot, flashrom, PINE64 and HAM radio stands. Many small gadgets around here, but I was mostly interested for PINE64 stand, at least I did manage to check out the keyboard and other devices. I did get in touch with Lukasz, who runs PINE64EU store. Hopefully, we might get keyboard accessory in stock in few months.

The reason why there are no single boards (and other devices) on the store is due to EU regulations and costs. You need to spend a lot for certification, writing up documentation and safety warnings to the point it would cost way too much. Don't forget the 2 year warranty! That already stacks up with doubled or tripled price for such PINE64 device. But hey, at least the delivery is affordable in this case and the guy helps a lot with support and keeping everything else in stock occasionally!

After checking out AW building, I went to H building that was still incredibly full. Those entrance doors are insanely loud if you fully close or open them. Everyone was apparently buying FOSDEM merch, but I've decided to delay a bit as I didn't want to waste most of the time waiting in the line. I went downstairs instead and checked out some OS stands like Fedora, Debian, AlmaLinux, CentOS and Linux on Mobile. Took few stickers and badges. By this time, I've stumbled upon Alex as he was trying to find a water fountain to refill water. At this point, I had no clue where are the fountains that work at this point.

Alex wanted to check out a lightning talk about awkward user interviews, but it was full as far I remember. Instead, we went to the talk about Solid protocol from W3C. I didn't stay long as I went back to Kotlin devroom to check out Kotlin Multiplatform for Android and iOS library development. As I've noticed a water fountain in Ud section of the building, I've notified him to show the place when we meet up again. If I ever consider using Kotlin Multiplatform, I should figure out how to make a plain library first and see how I can make sure it's available for use. Considering that Kotlin was initially made for JVM environment, going with native over Swift and Objective-C is tricky, even if separated.

Swift does have most of features like Kotlin does, but some logic and syntax just doesn't fit. One of the main difference Swift doesn't have is coroutines, one of great features of Kotlin for easier thread and job management. When I worked on both iOS and Android mobile platforms, I prioritized the patterns from Android/Kotlin instead of iOS/Swift as Kotlin was much more flexible for refactoring. In Swift, if you upgraded to newer version of it, you have to refactor lots of things to fix deprecated issues while looking up online to see what's the correct way. Then, there are delegates. Those are terrifying to use for me and I would rather prefer to use lambda functions instead. However, Swift is quite unpractical at it as you have to use weak self reference and then guard it to the point where it doesn't get called if it's null at that point. It works, but it's a damn bloated amount of keywords for a single lambda function.

Shrinking code with ProGuard or R8 these days can be a lifesaver if you make sure that you did exclude anything that was needed, but removed. Reflection usually screws things up if you try to use it with shrinking. Though, I remember seeing a lot of old projects that had a bunch of bloated dependencies (Firebase and Google Play Services in general while it was all in one package). It was terrifying when I had to use multidex to avoid the 65535 method limit to keep myself sane enough to get APK available while I was unable to provide an optimized APK due to various issues that I couldn't resolve alone at previous work. Things have improved since then, and now along with plain Java reflection, we'll have to take care of Kotlin metadata, too.

I've decided to take a break from talks at this point and go around again. I've went to K building to check out things they had. I did pick up few flyers and stickers, but I also did some chit chat around. I also bought the t-shirt as hoodies were sold out at this point. With nothing else to do, I've gone back to H building where I've met Alex again as volunteer this time. He did mention before that he's going to volunteer and he should be done soon. I've took a short break in the meantime. After few moments, he sent me a message to get to the stand where he was to get some assistance. A blind person with a service dog needed some help to get to the Debian stand, so I've let him hold my hand to ensure he can follow me. There were stairs as an obstacle, so I was warning him about the stairs to carefully go down. After getting to the Debian station, they thanked me for assistance. They seem to be one of long time users or even veterans of Debian as far as I remember. I went back to Alex to confirm assistance being done.

After some time, Alex was done with volunteering, so we went to eat some burgers as he also got a one use voucher for free food, but he did pay for mine, too. The burger was tasty, so it was worth it. Now, I did remind him about the water fountain in Ud building, so we went there to refill bottles with water. We waited a bit around to meet up with Jakob who was mostly busy in hacking room. We went to have a drink in a bar and did some casual talk. After that, we split up to meet up tomorrow as I had to go to the closing remark talk for Kotlin at least. Okay, it didn't have much of difference from welcoming talk, but I had to remind myself of the meetup.

As the talk was easily done, I had to go to the bathroom. There was one more guy in there. I did a number one and washed my hands. Then, I was stuck with getting towel paper out. Apparently, it was jammed. Even after few minutes, no luck, even the guy was amused. I went with my own tissues that I had instead and also suggested to the guy in case he needed it. As we went outside of bathroom, we did some talk while leaving ULB. In halfway, he did mention that he was working at GuardSquare. I've just realized that I was talking to James, who had a talk for "Shrinking in the Age of Kotlin". Embarrassed, I apologized for not being that aware, but at least we did manage to have a bit more of talk as he was quite nice person to talk with.

He did mention that he might consider going to the Kotlin meetup, but not stay for long. As he lives in Belgium, at least he had more experience in navigating through public transport than I had. We took the bus where we reached to the area that was close to the bar where we were supposed to meet. After a bit of going in a circle, we found the place and got in. There were few people at this moment: Hui, James, Me and Eugen as far I remember initially. Martin has joined a bit later, but others were also slowly coming. We mostly discussed what we do, the situation with AI, about travelling experience (including mine) and the event. We also did talk a bit about beer as we were ordering some. I've got Francoise Minne, raspberry fruity beer. Hui wondered about getting stout variant of beer, which can have chocolatey/coffee flavor. We did discuss a bit about choosing, but she decided on Joker Essenti'ale Valduc, Belgian Blond (Bergamot, Silhuan, Basic) and she also picked Black Hole BBP x BASQUELAND, Imperial Stout (Waffle, Strawberry). I only partially know this because I took a damn photo of the menu board. We also got some extra finger food.

After few more people joined, I think Benoit, Mickey and Louis have joined at this point, but bit more people kept joining later, I think it was about 15-20 in total in the end. They brought Kotlin t-shirts and stickers we could pick up. I've got XL t-shirt. Mickey had a LED track that was programmable through Bluetooth from an app and demonstrated it to us. As we did have a lot of drinks, this part is mostly blurry and can be inaccurrate due to having a feeling of being full and tipsy, but I did have a great time still. Knowing that we can still do a lot with Kotlin and listen to the various stories and experiences gives a bit of a joy, even though I can't even properly remember some stories. We did exchange contacts in few ways and decided to meet up later when possible. I've walked most of the way back to the hotel as public transport wasn't active at around 1-2 PM. Straightforward to the bed, I'm done for today.