Taking a Sabbatical
For the first time in a while, I'm unemployed and taking some time off. I may be working on side-projects more than ever; or afk for months. During this time, I'll probably be traveling in Asia. I'll be back to work in January 2025.
Activity
The point of the sabbatical is that I don't have any goals, but I'll use this task to share my experience. Similar to what I did in my recent trip to Japan.
In a way, this will be a simulation for my retirement (which is definitely decades away π ). In my recent mini-life in japan, I divided my trip into 2 distinct chunks: 3 weeks working remotely, and 3 weeks on holidays. This time, I intend to blend the two, and see what my life is like when I don't have to work for a living. Honestly, I don't think I'll be on holiday mode all the time, because I do enjoy my work and I don't like the idea of spending months without programming. But I also won't be traveling alone, and both of us will be unemployed, so I'm sure that will skew our tendencies.
The current plan is to spend most of August in Spain, which is usually a time where most people around here is on holidays, and fly to Asia in early September. We don't have many plans beyond that, and we'll probably fly to wherever is more convenient. So far, Singapore seems like a good starting point.
It's been a month since I started the sabbatical, and so far it's going well. Being August, and the first month of the sabbatical, it felt like holidays as usual. But I'm happy to say that I've also been doing some coding, and I haven't been completely afk.
My intention is stil to blend the two, but I've decided that I'll separate these updates in Life stuff and Tech stuff. That way, if you're only interested in the tech stuff, you can skip all the ramblings about my personal life.
Life stuff
As I'm writing this, I'm still in Spain. But the preparations are made to leave for Singapore on September 6th (this Friday). I'll be spending a couple of days there before moving to Malaysia; and so far, I don't have any plans beyond that.
This past month has been pretty chill overall. I spent some time at home, did some mini-trips around Catalonia, and went camping for a week in Asturias.
That last one was interesting, because it was my first time camping by myself (I actually did it with my partner, but I mean without parents). It's something I've wanted to do for a while, but for one reason or another we always stayed in hotels or albergues. I'm very attracted to this type of lifestyle, because I do agree that we have a comfort crisis. I also started reading The Subtle Art of Not Giving a Fuck, which has been excellent so far. So camping and doing the Camino de Santiago have been very valuable experiences. But always that I've done these, it's been completely divorced from my work because I never bring my laptop along. I guess the real test will begin in Asia, because this time I intend to do it, and it'll be for an extended period of time.
Right now, I'm going through a mix of excitement and anxiety. Excitement because I've been looking forward to this for a long time, and anxiety because I worry too much about the future and "planning stuff". But whenever I think about it, I realize I have a priviledged life without any real problems. I have to learn to live more in the present!
Tech stuff
Whenever I thought about my sabbatical in the past, I assumed I'd have infinite time to do everything in my TODO list. But of course, that didn't happen. In fact, I've realized something. When you say you're in a sabbatical, everyone around you also assumes you have all the time in the world, and they don't respect your time as much. However, if you say you're self-employed (even if you aren't earning a single cent), people take your "work time" more seriously. So maybe this whole sabbatical thing was a mistake π . But I still think it's an experiment worth pursuing, we'll see how it goes.
All of that to say, that I no longer have any hopes of making any real progress in this sabbatical :/. But not to sound too grim, I found something better: building Proofs of Concept (or "Spikes" as some call them). There are many ideas I've had in mind for ages, but never started because the task seemed too daunting. But this month, I gave a couple of them a chance and I was pleasantly surprised.
One of those has been building a Solid Server from scratch. This is obviously not something I'll complete in the sabbatical. In fact, it's one of my ideas for a full-time project. But following the spirit of doing whatever I feel like, I just started typing away. And I got it working in a single day. I'm not sure how far I'll take this, but I'm very excited about it and I may continue tinkering with it during these months.
Something else I worked on was animations. For a while, I've heard from many people I admire that Framer Motion is one of the few reasons why they aren't using Vue (such as Josh Comeau and Adam Wathan). And since I started taking Emil Kowalski's course on animations, I decided it was a good time to start playing with this. So I created a library (for now a folder in a project) called Vivant. Again, this is not something I will finish in the sabbatical (or maybe ever), but it was fun to start tinkering. Ironically, it wasn't as easy as implementing a Solid Server from scratch, but I've already implemented a couple of animations in Focus and it seems to be working well:
I'm entering the 3rd month of my sabbatical, and I can officially say that I'm growing tired of it π . I know, I know. A guy complaining that he has too much free time, give me a break. But that isn't the problem. This is the first time I've been living as a "Digital Nomad", and I don't like it :(. It's fine for a couple of weeks, but I've been traveling for almost a month now, and I miss a lot of my routines. That's not to say that I'm not enjoying it as well. But I'm certain that this is not something I'd like to do in the long term... at least not like I'm doing it now.
Life Stuff
As I mentioned in the last update, we landed on Singapore on September 6th. I'm now writing from Pattaya (Thailand), and we traveled here on land (buses, trains, etc.). Crossing Malaysia, and stopping along the way. So far, we've been to 8 cities. Which isn't a lot compared to other times we've travelled, but our lifestyles have been quite hectic. In fact, the only period I've felt "at home" was the 7 days we spent on an Airbnb in Kuala Lumpur.
Again, I want to emphasize that I'm enjoying the trip (even though you may not feel it from my writing π ). The trouble is that I'm experiencing an overload of stimulus. I miss the quiet times at home, I miss cooking my own meals, and yes, I miss "wasting time" watching TV Shows and movies. One of the most worrying things is that I can see how my health is deteriorating :(. Again, like in my trip to Japan, I'm finding it difficult to find non-animal sources of protein (or healthy options in general). And I haven't been working out nearly as much as I should.
But if I had to pinpoint the root of all evil, that would be my lack of time affluence. Again, the same as in Japan! Which is totally self-imposed, so I'll have to make an effort to slow down and avoid the temptation to "go out and do things".
Anyways, that's it for my ramblings, sorry that you had to read that.
So, we landed on Singapore. Besides being quite modern and extravagant (maybe some would call it "artificial"?), I really liked the mixture of cultures. Other cities I visited had similar vibes (Barcelona, without going too far), but Singapore really felt like a melting pot of different cultures. Unfortunately, we only spent a single day, so I'm looking forward to going back at some point.
Malaysia surprised me in a couple of ways. I didn't expect most people to speak English (which shows how little I knew about their history). And overall, it was very easy-going. I was also surprised at the number of malls (also in Thailand). We definitely don't have as many in Europe, and I don't remember seeing so many in Taiwan 10 years ago. In some ways, I like malls, for all the obvious reasons. And I love going to the cinema. But I also despise the consumerism and blandness of it all. Unfortunately, we end up going more often than I would like for their convenience and ubiquity. We've also visited a lot of temples, food markets, and other attractions. One of the highlights of the trip has been visiting some tea plantations in Cameron Highlands (did you know that tea plants live hundreds of years and are harvested all year long? There are even thousand years old in China :O).
In Thailand, in contrast, cash is king and English skills are more of a rarity. But I also enjoy the quirkyness and novelty of a different culture (though I'm not melding in their daily life as much as I'd like). As expected, there are a lot of TukTuks around (there is even an "Uber for TukTuks!"). And I'm feasting on coconuts and mangoes (again, probably not too healthy π ). We also attended a cooking class and learned to make a Sour & Spicy soup, which I'll certainly try to replicate at home (though I'm not sure I'll find the right ingredients).
Finally... Durians. They are everywhere, and despite having travelled to other Asian countries in the past, I almost didn't know of their existence. I'm sorry to say that I don't like them, but people around here seem to love them.
And that's mostly it for the life updates! Here's some pictures from the trip:
Pictures
Tech Stuff
This month, I've been pretty consistent spending an hour or two in front on the computer every day. Unfortunately, I don't think I've done a single day of full-time work, so I haven't practiced too much flow and I miss it tremendously :(. Again, it's mostly self-imposed and I'll have to make an effort to slow down. Now I see what they mean about the dangers of having too much freedom!
Ironically, something that I've been doing a lot is reading. What years of routines and timeboxing didn't accomplish, commuting has. I've spent a lot of time in transit, so I've been catching up with books and articles from my lists.
I've also managed to get some things done. First of all, I finally submitted my proposal for NLNet! I initially planned to apply for the deadline of December 1st. But after getting some tips from previous grantees (shout-out to SΓ©bastien from ActivityPods and Niko from NextGraph), it seems like it was more sensible to do it now if I plan to start working in January. I submitted 3 proposals, even though I only intend to work on one, because I'm keen to hear what they have to say about the different ideas. They are essentially the ones I talked about in my blog post, but more fleshed out.
There's also been some developments in the world of Solid, and I've been participating in the discussion (TLDR; Inrupt released a Wallet Application they claim to be compatible with Solid, but I don't think it has anything to do with Solid and it's actually a proprietary solution). It really is a bummer, and I don't like to be the portent of negativity. That's why I was mostly neutral, if not positive, in my previous commentary on Inrupt. But this crossed the line, because it was misleading to people who may not be too familiar with Solid (even if not on purpose). So I thought it was important to speak out.
Finally, I also kept tinkering with some things related to Focus. I did some improvements here and there, but mostly I've continued playing with Vivant. It's still a proof of concept, and I don't have much to share yet, but I'm very excited about it. I love working with animations/UI, and Josh Comeau announced he'll be working on an animations course; so it'll be the perfect excuse to learn more about animations. In particular, I've been trying to recreate Shared Layout animations from Framer Motion, and I've seen how they can become very complicated very quickly. Making these from scratch involves doing some math, but thankfully this is not my first rodeo. So yeah, I don't know if this is going to lead anywhere, but it's a ton of fun. I guess that's the perfect thing to be doing in a sabbatical :).
Hi again!
I'm now writing from Saigon, Vietnam. I have managed to slow down a bit since my last update, but overall I feel mostly the same way. TLDR: I'm enjoying it, but also I can't wait to get back home.
Life Stuff
I won't spend too much time talking about it again, but yeah I still lack time affluence and I'm tired of the nomadic lifestyle. The good news is that we're past the half-way point now, and it's not like I'm being tortured or anything π . I'll do my best to enjoy the time we have left, and try to squeeze some time to tinker here and there.
In my last update we were in Thailand, and we had just said goodbye to Moo Deng. Since then, we've visited more of Thailand, went through Cambodia, and we've just arrived to Vietnam.
Thailand was awesome, probably my favourite country so far. After Bangkok, we went to Chiang Mai and I really enjoyed this part of the trip. We continued visiting a lot of temples, and Chiang Mai in particular had tons of them. I really like Asian temples, they are so colorful and quirky. They always remind me of Gantz's Buddhist Temple Alien Mission, and I think some statue will try to kill me π€£. But I'm starting to feel a bit of "temple overload", they are starting to look the same to me :/. I guess that's normal when you experience too much of something (although I never seem to get tired of Japan or cats).
I also managed to do some co-working :D. I had been to a couple of meetups before, but similar to my experience in Japan, they weren't great. But then, I realized there is another website I can use to find cool people: nownownow.com! Through that, I learned about Hackamai, and I had a great time. You can read more about it in the "Tech Stuff" section. Unfortunately, I could only join a single day because, again, we left Chiang Mai too soon :(. Oh well, that's life.
After Thailand, we went to Cambodia. I noticed some stark differences right away. For example, there were a lot of "Tuk Tuks" that consisted of a carriage strapped to a motorbike. I am amazed at the resourcefulness of people in some contexts, I would never have thought that a meager motorbike was able to carry so much load (see pics below).
Something else that surprised me was how money works. They use both their own currency, Riels, and American dollars. But Riels are so worthless, that they serve as small change (1000 Riels are worth 0.25 cents :/). They don't even use coins, and it's not uncommon to pay or receive change in mixed currencies. Which is interesting, because you can see the price in both currencies everywhere (even in electronic displays and receipts, I can't imagine what types of headaches this has caused engineers π ).
Other than that, temples also had a different vibe. We visited "the largest religious structure in the world", Angkor Wat. These reminded me a lot of Indiana Jones, and we even visited a temple were the first Tom Raider movie was filmed: Ta Prohm. Is it weird that everything reminds me of movies and manga?
On that note, visiting the cinema was also a new experience. Every country seems to have some peculiarities. What striked me the most in Thailand and Cambodia was that they play the national anthem with a short "ad" about the royalty :/. In Cambodia, people even stand up during the anthem. Sadly, what doesn't seem to change in any country is that they play tons of ads before the movie. I still can't believe they managed to insert ads in a paid experience like this, and people doesn't riot... thank god for Phenomena Experience in Barcelona. By the way, I really enjoyed watching The Substance. I particularly enjoyed it because I hadn't seen any trailers, and the way the plot unfolds was a pleasant surprise. I can't say the same about The Wild Robot, which I also enjoyed but the trailer gave away pretty much the entire movie. If only you could go to the cinema just to watch a movie!
Anyhow, after that we moved to Vietnam. So far I'm enjoying it as well, it's funny how just after crossing the border we started seeing those traditional Vietnamese hats. We've barely been here for a couple of days, so I'll leave my impressions on Vietnam for the next update.
Here's some more pics:
Pictures
Tech Stuff
Last time, I mentioned that I was working on some more examples for my animations library, Vivant. And well, this month... I've almost exclusively been doing that π . Originally, I intended to use this time to work on small proofs of concept, but this one got a bit out of hand.
In my defense, I'll say that I used the opportunity to also do a proof of concept for a new way to build packages. For most of my libraries, I'm still relying on Rollup and some scripts I wrote 3 years ago. But I've learned a lot since then, and the ecosystem has also changed. This time, I tried using Deno and jsr.io, because their vision is really compelling. Unfortunately, we're not there yet :/. I gave it five minutes, but I started seeing isoteric errors I didn't understand ("has no exported member default export"!?). Then, in less than five minutes, I set it up with Vite and it worked :D. Now I'm using Vite for everything: development, publishing libraries, building apps, running tests, etc. I can't wait to migrate everything to this new setup!
The thing that took most of my time, though, was implementing the animations themselves (and also spending some time trying to make the playground pretty π ). But I'm super happy with the results. Even if it's just a proof of concept, the animations are pretty cool, and I'm very happy with the way the project is structured and the code itself. I can also sleep well at night knowing that this proof of concept is "Done". I'll continue making animations for sure, but I believe this is a solid base I can build upon. If you're curious to see the animations, or the repository, check it out here: Vivant Playground
There are also a couple more things I'd like to talk about. First of all, it was great to find Hackamai. I really like all the people I met there, and hopefully I'll be able to attend more events from the Hacka* network. But I'm also feeling some dissonance with this community. There is some obsession with growth hacking, and no small amount of the conversations revolve around search rankings, backlinking, "printing money", and many other things I despise. But the truth is that it would probably do me some good to learn more of that π . I mentioned before how I don't do any analytics on my sites, and frankly, I don't spend much time doing marketing and spreading the word. My only virtue in that department is that I work in the open, and thanks to that some people hear about me. But if I ever want to make a living as an indie developer, I'll have to improve my game.
Finally, I was surprised by Dan Abramov's Web Without Walls. The talk is awesome, and he explains some of the reasons why I care about Solid and other decentralized projects. He talks about Bluesky and the AT protocol, but for 90% of the things he's saying, he could as well be talking about Solid. I especially like that this is happening "in the mainstream", in a React conference, and by one of the most beloved React developers. However, there are also some things I don't like so much. I expanded upon this in a social media thread, and got some responses (including from Dan himself!). If you're keen to learn more, check these out:
Today, I'm writing from Shanghai, China.
If you read my previous update, you may be thinking that I came here from Vietnam. But actually, I just got back from New Zealand! I haven't made much progress on the tech stuff, but the trip is coming to an end soon, and it was nice to get some change of airs.
Life Stuff
Something I didn't mention before is how much I've enjoyed traveling on land. Since we landed in Singapore, we've been moving around on bus, train, and taxi (or TukTuk). If you're curious about the itinerary, make sure to check today's pictures. Obviously, we flew to New Zealand. But first, let's backtrack to my previous update: Vietnam.
We spent about 2 weeks in Vietnam, and it was pretty cool. There were more motorbikes than in any other country I've been, but contrary to my expectations, it wasn't too difficult to move around. Sure, it's very chaotic and there are hundreds of bikes passing by as you cross the street. But they are used to it, and if you keep a constant pace and don't do anything weird, it's actually pretty safe. I definitely suffered the traffic a lot more in other countries, specially in Cambodia.
One of the highlights in Saigon was visiting Cu Chi tunnels. They reminded me a lot of Hardcore History's Supernova in the East, even though those tunnels have nothing to do with the time period covered in the series.
Eventually, we moved towards Hanoi riding what is apparently one of the world's most amazing train journeys (Vietnam's Reunification Express). We didn't take the whole trip at once though (which is about 34 hours long). We stopped in Hoi An, Dong Hoi, and Ninh Binh; and saw lantern boats, caves, and yes, more temples! π
Then, it was time to leave South East Asia behind, and we flew to New Zealand. This may seem out of left field, but we had been considering it for a while. We figured that we won't be repeating a trip like this any time soon, and this was a unique opportunity to visit one of the world's most remote places (specially from Spain!). Plus, as you may know, I'm a big Lord of The Rings fan.
Our first day in NZ, I got to meet Derek Sivers and his cute pet rats. It was awesome meeting him in person, and he gave us some great travel tips. The first of which I wasn't too keen on following: Renting a car π±. Now, he wasn't the first person to mention it, but the problem here is that I hate driving (I HATE driving). So I was trying to find any excuse to avoid it. But I finally relented, and it was the right choice. I still don't like driving (and to be honest, my partner did most of it), but NZ really is a country that's best experienced with your own transportation.
What followed were 2 of the most frantic weeks in the trip π . If I had been complaining about lack of time affluence before, I barely spent 4 hours in side projects in NZ. Having our own vehicle, we weren't as limited as before; and exploring NZ lends itself to moving around a lot more. We rarely spent time in cities. I also didn't spend much time reading nor listening to podcasts, it really feels like I was 100% on holiday mode for these 2 weeks. Still, they were 2 of the weeks I've enjoyed the most in the whole trip :D.
We followed the NZ Frenzy Guide as a baseline. It's a bit outdated, but overall it's pretty good and I'm sure our experience without it would have been a lot worse. Even though we only visited the North island, we weren't able to see everything we would've liked. There is so much cool stuff in New Zealand!
One of my favorite things when traveling is meeting the wildlife, and there is plenty in NZ. We met Cows, Sheep, Tuis, Pukekos, Black Swans, Glowworms, Sea Lions, etc. We even saw kiwis up close! And the nature is stunning, as you may imagine. I particularly enjoyed many of the geothermal oddities, and doing the Tongariro Alpine Crossing (which passes right by Mount Doom).
Talking about Mount Doom... Yeah, LOTR. For once, I'm justified in associating my travels with movies xD. We visited as many LOTR filming locations as we could, and the best one was definitely Hobbiton. Apparently, the set was destroyed after filming the LOTR trilogy, but rebuilt permanently for The Hobbit trilogy and it's now one of the most popular spots in NZ (for tourists, I'm sure). We also visited the WΔtΔ Workshop, who've won multiple oscars for their work in the movies. We got to see some behind the scenes of the movie-making process; even some original props like the geisha robot from Ghost in the Shell and Sauron's armor π€©.
Now, we're back to Asia. In what is probably the region's most interesting country, China. We're only spending two weeks here, but I already have some anecdotes to share. You'll have to wait for the next update though, stay tuned!
Pictures
Tech Stuff
This month, I haven't spent a lot of time on tech stuff, but I have a couple of things to mention.
First, I've been playing with NotebookLM. Yes, I'm also feeling AI fatigue (I was feeling it before the term was coined), so I've been quite slow at adopting AI tools. But this one picked my interest, which is funny because not many people in my circles is talking about it. If it weren't for Foc a Terra, I may not even know that it exists. But I gave it a try, and it's looking very promising. I'm exploring it in two areas:
-
Making my content more accessible.
If you're reading this, you know that I ramble a lot on these notes (I'm amazed that anyone even reads them). But it would be too much work to make them shorter. The idea of converting them into a short podcast was enticing, so I tried to generate a podcast with my notes on building Umai, and I have to say I'm quite happy with the outcome.
Of course, it wasn't without hallucinations, and I went through 40+ iterations. To be fair though, the problem was more that they weren't saying what I wanted them to say, rather than conveying wrong information. I can see a world in which I create these podcasts, and add some commentary of my own to correct mistakes and mention anything that was left out. But there is definitely value in this approach, and it goes further than simple summarizing. For example, they talk about CRDTs being like tiny chefs that keep your recipes in check, and ended the podcast with "Umai shows us that Solid is a vision worth striving for. A vision where we can all have our cake and eat it too. And have the recipe for it. Securely stored in our POD.". I couldn't have said it better myself!
Going through this, I also experimented with hosting my own podcast and generating the RSS feed from scratch. It was easier than I expected, and I also learned about RSS styles which are pretty neat. If you're curious to listen to the episode, you can plug this in your favorite podcast app (or click to listen in the browser): noeldemartin.com/podcast/feed.xml.
-
Consuming other's content.
This one is more tricky, because I'm wary of consuming content through AI summaries. If anything, my experience trying to create one from my own content has confirmed that they hallucinate, and they leave interesting stuff out. But the truth is that there is some content that I'm never going to consume anyways, so I may as well get the AI summary and dig into anything I find interesting myself. For example, I have thousands of articles in my Read Later list, and I have hundreds of books I would like to have read. I struggle to fit reading time in my schedule, but I listen to a lot of podcasts.
The only trouble I envision is that they could become repetitive and formulaic. Even though I was floored by the first podcasts it generated, after a few iterations I'm starting to see the patterns. Hopefully, generating them from content that I haven't written will make them more interesting.
Something else I've been playing with is ActivityPods. I've known about the project for a while, and it is apparently the most actively developed open source Solid project. I refrained from using it because it wasn't compatible with Solid yet. However, taking another look at their documentation on Solid compatibility, it seemed like it was pretty close to supporting everything I need in my apps. So I decided to take a stab at it.
You'll have to wait for my next update for a final report, because I'm still tinkering with it. But my initial impression is that it isn't as close as I thought :(. I'm not familiar with the internals of the project, so I can't know how difficult it will be to bridge the gap. But I can say that in its current form, it's still very far from being a spec-compliant Solid POD. And it's not just about "being spec-compliant", I tried to make my apps work with their server, even if I had to write code specific to their implementation (which I'm very much against). But I found countless roadblocks. Just to name a few: Inrupt's auth library doesn't work, using SAI is not optional, documents can only contain triples with the same subject, Turtle support is subpar, etc.
To their credit, I'll say that they intend to fix these problems, and SΓ©bastien has been helping me triage them. But as things stand, I don't think my apps are going to work with ActivityPods anytime soon. However, with a lot of hacking, I did manage to get my Ramen app working. I'm still unsure if I'll add these hacks to the codebase, because it's just too much, and it'd be a lot more work to get any of my "real" apps working. But this also gave me a chance to finally look at SAI.
I've also been aware of SAI for a long time (years, even). But I hadn't taken a look for a couple of reasons. First of all, like most specs in the ecosystem, it's still a draft. The same is true for type indexes though, and I'm using them. The crucial difference is that SAI is not a client-client standard, so it needs server-side support in order to work. And when it comes to adopting bleeding edge features, I'm usually quite conservative. I think of it like using new CSS properties according to browser support. And at this point, almost no Solid servers support SAI.
But I am interested, so I used the opportunity to take a look. And the first impressions weren't great either π . In fact, I can only say that I started reading the spec, and it was so filled with jargon that I had to leave it aside and just duplicate what the sample ActivityPods app was doing π. To be fair, I couldn't spend a lot of time looking at these things the last couple of weeks, I'll probably get it once I spend some more time going through the spec and other resources. But this wasn't my experience reading other specs in the past. When I first learned about Solid, I read through the RDF, Turtle, LDP, and SPARQL specs; and found them pretty easy to grasp. Of course, as I kept working on Solid I got more nuance, and realized that I was making some wrong assumptions. But that didn't stop me from getting started. This reminds me a lot of Lea Verou's concept of use case complexity curve. If we ever get SAI standardized and supported by most servers, which I hope we do, I also hope that it doesn't become yet another barrier for newcomers.
After 103 days, 34 cities, and 9 countries... I'm finally back home π₯³.
This trip has definitely been something, and even though I would have ended it after the first month, I'm glad I pulled through. It'll be an experience I treasure for the rest of my life.
I'm dividing this last update into 3 sections: Life Stuff, Tech Stuff, and Conclusion.
Life Stuff
Last time, I wrote from China. And man, was it a country that surprised me. I've traveled quite a bit in my life, even before this sabbatical frenzy. But it had been years (if not decades) since I've been this surprised by a country. My impression of China can be summarized with this Willian Gibson's quote "The future has arrived β itβs just not evenly distributed yet".
Since I spent 5 months in Taiwan in 2012, and I've spoken with others who've visited China before, I thought I knew what I was getting myself into. But I totally wasn't. Everything is a lot more advanced than I expected: almost all vehicles are electric, everything works with mobile applications (WeChat & AliPay), there's connectivity everywhere, many buildings and malls are super modern, etc. Just to share an example, we had to use WeChat to use a washing machine... and we got a push notification when the laundry was finished!
Of course, not everywhere is like that. Shanghai was definitely more advanced than Beijing. But even in Beijing, you can pay (and order!) in most restaurants using a mobile application (which, thank god, has automated english translations). For the most part, everything worked seamlessly. And it was really cool to live in an environment where I felt like interoperability was a reality, both in hardware and software. I felt like I was living in the future, and there are many things I'll miss about China.
And yet, there were also some things I definitely didn't enjoy... Like the surveillance :/. Having cameras everywhere is one thing, but this is the only country where I've been regularly asked to show my passport just in order to board a train, or enter a crowded street. And there were a couple of "computer says no" situations.
And don't get me started on the network restrictions... I already knew about Google & company being blocked (and to certain extent, I even like it!). But it's not just them. In fact, it seemed like a website being available was more the exception rather than the rule :/. Wikipedia, DuckDuckGo, Feedly, Telegram, BlueSky, Discord, etc. All of them blocked (even GitHub!). Funnily enough, though, my personal website and self-hosted Nextcloud instance worked... And my self-hosted Mastodon server was the only social network I could use!
Of course, eventually I ended up using a VPN to bypass all these restrictions π . But it wasn't straightforward to find one that worked either. As much as I would have loved to rely on TunnelBear (because come on, how cute is that bear?), LetsVPN was the only one I found working reliably. But I didn't manage to get it working on my laptop, so I was limited to using Tor with private bridges for a couple of weeks.
I was also surprised to see such few foreigners around. Even when visiting tourist hot spots, most people seemed to be Chinese coming from other regions. Furthermore, seeking online information didn't produce many results unless we searched in Chinese. Even some information on Google Maps is straight up wrong. For example, on our last day we wanted to store our luggage in some lockers. Searching online, it seemed like there just weren't many lockers in China. But it ocurred to me to browse AliPay's mini-apps, and lo an behold, there was an app just for this purpose, called LuggaGo. We could find hundreds of lockers, most of them operated with the phone, and you could even see how many spaces were available from the app.
Finally, we concluded our trip by coming back to Europe in one of the best airline companies I've ever used, Hainan Airlines. Even their safety instructions video was awesome! We actually landed in Rome, and made our way back home on land. But I've already visited Italy and France many times before, so I don't have many news to share there :).
Pictures
Tech Stuff
Following up from my last update, I finished adding ActivityPods support to my Ramen app. I didn't end up implementing everything, such as ActivityPub's inbox/outbox, because I think that's too far from Solid's concerns (and hopefully, it won't be a requirement in the future). But for the most part, it works.
I'll be completely honest here, I was somewhat let down :(. I had high hopes for this project, given that it was heralded as "the most actively developed open source Solid project", I'm super excited about the fediverse, and their official compatibility report painted a very hopeful picture. However, the experience I've had working with the platform has been very different.
I found many incompatibilities that weren't listed on their documentation, such as using Turtle or creating documents with multiple subjects (things that are the bread and butter for any Solid developer). Some of these I would even say were misleading, because the section about formats in their docs clearly says "We support both JSON-LD and Turtle format". I'm also not a big fan of the architecture. For example, they rely on prefix.cc to validate (and enforce!) vocabularies, they assume client applications have a backend component (mines don't), and working with localhost or private networks is impossible because they rely on external services such as prefix.cc
(which was an issue in my case, given that I was often working offline or with connectivity issues).
What I can say, though, is that my interactions with the ActivityPods team have been excellent, and they have been very helpful in solving my doubts and sharing their expertise with the community. I also think it's natural that this happens, because ActivityPods is definitely a fediverse-first project, and they're still working on the Solid compatibility. I don't think my current opinion of the project matters too much either, given that I probably tried it too early. They have finantial support, and many of the issues I raised are things they are aware of. So I'm looking forward to see how it evolves, and overall I'm still excited about it :).
If you care to learn more about the specifics, you can check out my entire report: ActivityPods Compatibility Report.
Since I had to deploy yet another live server for this, I also used the opportunity to continue exploring my "headless architecture". I may write something about this in my blog at some point, but if you're curious about it, check out the source code. Basically, I have one script that publishes a Docker image to DockerHub, and another that mirrors the docker-compose config and folders into a headless
branch. With this, I can deploy my applications in the server by cloning the headless
branch, and exposing it to the internet alongside other services using nginx-agora. Which should make switching servers in the future very easy.
Finally, as a last minute addition, I created a Peertube channel where I'll be uploading my videos (the same I've been uploading to my Youtube channel). I don't particularly enjoy the UX of Peertube, but I think it's really cool that it's part of the fediverse and it is completely interoperable :D. For example, I'm following the #solid
tag in the fediverse, and I can see when Angelo releases one of his Practical Solid videos.
Conclusion
At the beginning, I said that this would be "a simulation for my retirement". But I have to confess that I've failed miserably π . Or at least I hope so, I wouldn't want my retirement to look anything like this!
I like traveling, and I like having new experiences. But I don't like feeling like a tourist, and that's basically what I've done for the last 3 months :/. I also don't like traveling too much, and in these last 3 months we've changed city every 2.79 days on average π±. If anything, this trip has made me realize how much I enjoy my usual routine, even when working on a 9 to 5 job.
But before I continue, there is something I have to address. You may be wondering, if I dislike this frantic lifestyle so much, why didn't we slow down? Well, they key here is in the "we". I didn't travel alone, and my girlfriend enjoyed it tremendously. At no moment did she force me to do any of this (nor is she forcing me to write this xD), and multiple times I had the chance to stay somewhere by myself to meet her later on. But I made the conscious choice to follow her pace, even if I wasn't completely confortable with it, because I agree with her that we probably won't have the opportunity to do this again.
So yeah, nice experiment, I'm glad I did. But I hope I never have to go through that again. I'm still going to have holidays, of course. And I'm perfectly fine with doing this for shorter periods of time. But even if I had the chance to live like this fulltime, I don't think I'd want to. On the other hand, I look forward to continue experimenting with mini-lives in the future.
Also, it's not like I completely slacked off! I couldn't focus as much as I'd like, and I didn't work on any big projects. But this gave me the chance to work on small proofs of concepts and experiment. That is something I hope to continue doing in the future. Sometimes I focus so much on years long projects, that I forget to take a breath and explore other things.
Here's a summary of everything I did during the trip:
- I built a Solid Server from scratch: LSS.
- I submitted 3 proposals for NLNet's October call (I'm still waiting to hear back from them, btw π ).
- I explored new tooling and folder structure for my packages, and implemented my own animations library: Vivant.
- I played with NotebookLM and RSS stylesheets, publishing my first (and maybe last) podcast episode.
- I learned more about SAI, and added ActivityPods support to Ramen.
Not bad!
What I haven't done, though, is figure out what to do with my life :/. Regardless, I think that's enough of taking it easy. I'll be enjoying Christmas and New Year like normal holidays, but in January I should be back to work. Stay tuned!
Task completed
Task started