[go: up one dir, main page]

Johan's Micro Blog

  1.  — 

    Stockholm Also on Fediverse ⤤

    A quick post in two parts.

    Where are all the startups?

    In the office yesterday, the subject of startups came up. More precisely, the lack of them in the Stockholm tech scenes these days. Where are they? Where did they go? (By "startup", I do not refer to the corporations that are Klarna and Spotify and the likes.)

    When I was young (2005-2016), there was a myriad of small startups all around. In the vibrant scene that is a technical university, the topic of joining or founding startups was ever present. It wasn't much of a question whether to join one or not, but more "Which one?".

    I'm not the person who has these smart analytical thoughts on the holistic health of the industry, but if I'd guess, it's down to that these days, there is:

    • less venture capital available. Investors are more risk averse.
    • we're not generally in good economic times. Young people and workers overall want financial stability and job security. Things typically not associated with startups.

    But is it only The Economy? Stockholm (Sweden overall, really) is traditionally associated with innovation and our welfare state has made it possible to try out ventures without having to put your family on the street if that venture would fail. Maybe I'm old and completely disconnected from The Scene nowadays, but I seldom hear about innovative startups any longer, nor young people wanting to work for such business.

    Where are all the apps?

    In my Mastodon feed yesterday, I saw a post about a new app: Current. It's an RSS feed reader, built in an innovative. I recommend reading through the whole marketing site: it's a beautiful example of product design and indie app making.

    These kinds of releases of apps for iOS or Mac used to be a monthly phenomenon in the mid-late 2000s and early 2010s. There were "fun" apps, beautifully design apps and icons, there was a whole lifestyle of using apps from indie developers and being in awe of every new major release. People were so good at designing user interfaces. What happened?!

    I have no layman guess for this at all. Maybe we've moved away from the app industry and more into "services" (derogatory) and "subscriptions".

    For myself, I'm not the change I want to see in the world either. Honestly, I have less and less energy to find and use new apps and tools these days. Maybe it's age, having kids, and having more IRL hobbies which lets me loiter around online considerably less. Maybe apps have become noise to me in an everyday life where my top priority is simplicity and removing things that take my focus.

    Still, my iPhone is totally less "fun" now compared to how it was in 2010.

  2.  — 

    Stockholm Also on Fediverse ⤤

    Based on the initiative Leave X, I wrote to all of the Swedish members of parliament still active on X, currently 230 people. Out of those, 9 people replied within 24 hours.

    Turns out that "active" is a keyword here which we'll return to below.

    Rickard Nordin (C)

    Claims he's inactive, and hasn't deleted his account because he wants to follow sports on there in certain communities. Communities, he further claims, are only present on X and he can't control that. Thus, he won't leave a super problematic site.

    Patrik Lundqvist (S)

    Claims he's inactive, and totally shares my view that X is a bad platform. He hasn't replied when I suggested he'd delete his account.

    Katarina Luhr (MP)

    Invites me to follow her on Bluesky, but is still on X — probably inactive — in order to keep herself updated on what's going on there. Hasn't replied yet when I suggested she'd delete her account.

    Helena Vilhelmsson (C)

    Totally agrees with me, and has even brought it up in some parliament working group. She has been inactive for years, and sadly can't access the account in order to delete it. Asks me for advice. We do some back and forth with tech troubleshooting and she will try to reset the password via her phone number. Exciting.

    Martin Melin (L)

    Claims he's been inactive since 2018, and has tried to delete the account, but no access to the old email. I refrain from offering to troubleshoot since the vibe in the thread tells me he's not psyched to do that right now. He concludes that since he's not active on X, that will show his stance in the matter. I refrain from linking to "What does it mean to be “active” on X?".

    Hanna Gunnarsson (V)

    Totally agrees with me in theory ("so in theory, X is bad, but practically, it's good? Like heroin?", I think). She's still on X for practical reasons, and cross posts to Bluesky. She knows X and how it works, and has her followers. Works for her. "I know it's bad, but it's practical".

    My reply includes a small novella about our her presence legimitises X and the people there, and recommend her to delete her account and commit to Bluesky.

    Alexander Christiansson (SD)

    Claims he's a grown up and don't need pressure to switch platforms. "Okay".

    P.S. This is a member of the right-wing, authoritarian, racist party Sweden Democrats.

    Martin Kinnunen (SD)

    Just replies with a question of who's prompting these emails about leaving X. I reply that I don't find that super relevant.

    P.S. Same racist party as above.

    Jan Ericson (M)

    Totally understands my point, but at the same time thinks it's important that not only Russian trolls, Trump supporters, and islamists are the ones getting to post at X. He won't leave, as he has 46.000 followers to take care of. Wow. Did he really say that?

    I reply that he surely would do greater impact by bringing those 46.000 followers to an alternative platform, and link to a post about precisely the fallacy he's an example of.


    Summary

    • All but one of the left/liberal/centrist party members claim they are inactive but for reasons, they can't/won't delete their accounts. Only Hanna Gunnarsson from the Left Party is still active on X, and has the guts to tell me so.
    • The one member from the conservative party will not leave because he's still out there, fighting trolls, islamists, and Trump supporters. How valiant.
    • Two members from the racist party became a bit upset over my email I think.

    Appendix: Party labels

    • C: Centerpartiet. Centrist, allied with the Social Democrats.
    • S: Socialdemokraterna. Social democrats. The usual suspects.
    • L: Liberalerna. Liberals, allied with the conservative block.
    • MP: Miljöpartiet. The green party. Allied with the social democrats.
    • V: Vänsterpartiet. The leftmost party. Allied with the social democrats.
    • M: Moderaterna. Conservatives.
    • SD: Sverigedemokraterna. Right-wing, nationalistic, authoritarian, neo-conservative racists.
  3.  — 

    Stockholm, Sweden Also on Fediverse ⤤

    I've decided to move my personal site stack away from free providers to my own server, for education and fun.

    Drivers

    Simplicity

    I've spent so much time over the years figuring out how to wire together services, just because I haven't gone all in and owning my stack. The allure has been "free static hosting! free serverless! free cron jobs!". But for what? I think it's faked simplicity for yourself, since you buy (in best case you buy) the freedom of not worrying about managing a service, but you spend time reading the docs of $provider and getting more and more locked in, rather than reading man pages and crafting Nginx configs.

    Sure, it's not for everybody. Many front of the frontend devs might not want to deal with this Unix stuff. So it's great that there are hosting providers which enables them to do more and more powerful things. But I'm done with it.

    Independence

    In the end, all of the above comes down to me as paternalising: to be constrained by the whims of a rando devops startup or by GitHub's current tech leadership. Also impostor syndrome in myself, believing I don't have the skills to run a Linux server myself.

    But I want to learn new things! Have fun! Tinker! Get back into curiosity and using 30+ year old established Unix tools. Knowledge and skills which translate between jobs, providers, and technological landscapes.

    I'd rather spend time setting up something I own and control to avoid receiving that dreaded email that $provider has a) been bought up, b) is cutting my plan, c) going out of business.

    Fun

    I'm plain bored and want to learn more about this.

    "How do I learn all of this?!"

    Turns out Linux servers are kind of popular of running software on. Meaning, there are a ton of docs online. Either StackOverflow, the project's docs, or blog posts. It foresaw this would be overwhelming, and that I'd end up with my regular 20+ browser tab bullshit at 01:00 in the night. Therefore… I set out to complement my learning by using an LLM to keep momentum up.

    I'm fully aware about the pros and cons with LLMs. In hindsight, using it to help me with this setup was super beneficial to me, in order to not get stuck and bail on the whole thing. But you need to cross reference everything with real documentation, because:

    1. Security. The LLM might be incorrect about best practices. Search around Linux-y communities to get an understanding what seems to be the canonical way of doing a thing. Let the LLM provide 1-3 options, and investigate them closer yourself.
    2. Learning. I type out everything the LLM suggests myself. Shell commands, configs, everything. If there's a new command or flag I don't recognise, I instantly look it up. I don't want to get lazy or dependant on an LLM.

    The great power from using an LLM to help me set all this up was speed. As in developer velocity. Not that I'm in a hurry — learning these things isn't something you do overnight. But in order to build my own intuition, the LLM was helpful in providing an embryo of a plan. If I'd be married to a god mode Unix sysadmin, I would've surely asked them in place of a chat bot. But that would've been annoying for them — LLMs don't get annoyed (yet).

    I basically wanted the velocity of asking stupid questions which were either hard or time consuming to get an answer to by traditional methods (back to that "20+ browser tab" swamp).

    The plan

    This not a tech deep dive with detailed steps. Just an illustration of easy, to me, deploying a static site was.

    Note: one thing I will keep (for now) in my stack is Cloudflare, for DNS, CDN, and SSL. I'm not hardcore enough yet to replace that, even though I know Cloudflare can be seen as Problematic™.

    Getting a server

    Turns out, paying for a service is a stronger guarantee of getting treated better than being on a free plan. I signed up for a Hetzner Cloud server, and it costs me around €4 per month (!). That gives me a fully fledged Ubuntu server, hosted in the EU.

    Then there were some locking down to do. See the links below. Standard "don't run as root", update packages, enable firewall, configure a solid SSH setup stuff.

    I especially liked how one can conf SSH to enable super simple logging in to my server. Now I just do:

    ssh myserver
    

    thanks to the minimal config in ~/.ssh/config:

    Host *
            AddKeysToAgent yes
            UseKeychain yes
    Host myserver
            HostName <ip>
            IdentityFile ~/.ssh/<ssh-key>
            User <custom user on the server>
    

    Host the static site

    Easy:

    1. Get the static HTML to the server. I contemplated going simple and just let rsync to be my deploy step (no CI/CD, no GitHub Actions, ahhhh...). But I realised I need to trigger rebuilds and deploys when git push-ing new content to the repo. So I ended up with a bare Git repo, and the then a checked out working copy in the nginx site directory, and a post-receive hook in the former which triggered and built the site into the latter.
    2. Set up and configure nginx. Install it, add a simple config for a static site, symlink, restart nginx.

    Reload nginx, refresh browser, worked.

    DNS and custom domain

    I added an A record in the DNS panel with a subdomain for a domain I own, pointing to my server's IP, proxied through Cloudflare. Amended the nginx config to include the new domain.

    Reload nginx, refresh browser, worked.

    HTTPS

    You can use Let's Encrypt and Certbot for this, I believe. But I noticed Cloudflare has this Origin Server certificate thing. This means, I could generate a certificate pair from their dashboard, physically put them on my server, and amend my nginx config. It included redirecting HTTP traffic from port 80 to the https protocol, and listening on port 443 for the HTTPS traffic.

    Reload nginx, refresh browser, worked. Tears of joy.


    Outro

    I spent a total of one (1) evening on this. It's insane. The simplicity hosting providers promise is such a scam, if this was all it took. I'm embarrassed it took me all these years to running my own site (for €4 per month!). Now I've unlocked a ton of things. Do I want some kind of Node server running? A cron job? A database? Just build it, man. The PaaS gaslighting of Johan stops now.

    There are endless opportunities.

    Inspiration and docs

  4.  — 

    Stockholm Also on Fediverse ⤤

    Stumbled upon FitLang by Blain Smith. A sweet little grammar to mark up workout programs as well as logging them. Both the idea and syntax reminds me about CookLang — both are wonderfully nerdy engineery solutions to everyday chores.

    What gets me going on these things is that they're open, shareable text files. My data is not hidden away in some Google spreadsheet or SQL database in the cloud. Treating FitLang files as the base primitive, then parsing them into some other data structure for operations (maybe for pretty gym graphs or whatnot).

    Copied from one of the examples:

    >> 12-Week Push/Pull/Legs Program %12weeks
    
    #day1 >> Push Day
    @bench press{4x8@75%} with ~3min rest between sets.
    @overhead press{3x10@moderate}
    @tricep dips{3x12@bodyweight}
    
    #day2 >> Pull Day
    @pull-ups{4x6@bodyweight} or @assisted pull-ups{4x8}
    @bent-over rows{3x10@moderate}
    @bicep curls{3x12@light}
    
    #day3 >> Leg Day
    @squats{4x10@80%}
    @lunges{3x12 each leg@bodyweight}
    @calf raises{3x15@bodyweight}
    

    Here's the repository for the full specification.

    Writing my own gym app has been on my mind lately (because "why not, I have time, right?"). Maybe it should be FitLang Compatible®.

  5.  — 

    Stockholm Also on Fediverse ⤤

    Seen and done

    During Summer, we hung around in Stockholm area as well as on the west coast of Sweden. It was totally "lagom" (appropriate level of travelling).

    Well before my birthday in July, I was surprised by a party arranged by my lovely wife. All my friends (new and old) where there. I was so touched. The party lasted until 04:00 in the morning.

    At work, we've moved offices from the Old Town of Stockholm to Södermalm (hipster, rustic). So far I enjoy the vibe.

    Hobbies

    I bought a used watchmaker kit on a market place site. I actually own quite a collection of random watches now, and I grew tired of having to go to the local watch store and pay them to change the battery in my quartz based watches. This kit is amazing: it includes 29 various tools for doing anything with a watch. I feel empowered! Able! It would be super cool to get into refurnishing old watches, but I wouldn't remotely know where to start if I'd get a mechanical one where the glass is broken or cogs are bad or missing.

    Travelling

    Went to New York City in June with friends to see another friend. I lived there briefly in 2016, and man, it's such a cool city. I was almost hungover on all the impressions when going home. Really thankful for getting to make that trip with people I have super fun with.

    And finally, we've booked another trip back to beloved Cape Town, South Africa. We're going to be there during early December to late January. During the second month, we'll be on the round going from

    1. Cape Town up to Cederberg via Riebeek-Kasteel.
    2. Then down towards the Klein Karoo on the R62, staying in Swellendam and Oudtshoorn.
    3. We'll land for six nights near Plettenberg Bay, where we'll explore the surroundings on the Garden Route.
    4. Further, we'll move for a short stay in Wilderness, at some camp.
    5. The last leg is a long one back west, for some nights in the wine valley Hemel-en-Aarde (hello Pinot Noirs).
    6. And finally back to Cape Town.

    Reading

    Watched

    • Charter (film) ★★★★☆

      Heartbreaking and solid family drama.

    • The Northman (film) ★★★★☆

      If it's one thing this film was, it's super cool. One might laugh at the sheer over-the-top graphics, violence, dialogue, and story. But I totally loved that they went over that top, since they got away with it: it never did feel tacky or badly done.

    • Reservatet (series) ★★★★☆

      Danish quality television. Very unnerving. Very nice in showing off societal issues around class.

    • Severance S03 (series) ★★★★★

      Such a great show. The tense has slowly built up during the seasons, and the S03 finale was insanely nerve wracking. They've really created a bed for the viewers to root for the main characters: this emotional bonding phenomenon.

    • Juror #2 (film) ★★★☆☆

      A classic court case movie by Clint Eastwood! Full of nostalgia for me, since it reminds me of the movies my parents used to watch in the late 90s and 00s. It's a great drama, and an epic dilemma.

    • Generationer (series) ★★★★☆

      Another Danish show, equally well done. This one was so messy though — it was all over the place. Not sure it was tied together in the end, but the acting was really great. And I think they had a message there somewhere.

    • Challengers (film) ★★★★☆

      By Luca Guadagnino. I was entertained. Interesting although classic triangle drama centering on tennis. Made me want to play tennis.

    • The Rest Is History (podcast) ★★★★★

      Two British guys are covering historical battles, events, and people from the Antiquity to 1900s. Their charm and dialogue with each other is so great. I'm not normally a podcast person, but I'm really looking forward to my commute each morning where I can dive back into Viking stories, our about how evil the Belgians were in Congo in the late 1800s. Their pacing is great, and the put emphasis on the important stuff (I think).

    • Halva Malmö Består av Killar Som Har Dumpat Mig (series) ★★★★☆

      Relation drama about a woman in her early 30s who just can't find a boyfriend. The main character is played very well: she really has the quirky moves I remember having when meeting up with a date in the hallway for the first time. Very authentic, and towards the end, raw.

    • Inherent Vice (film) ★★★★☆

      By Paul Thomas Anderson. I read some reviews beforehand, and it was really praised. But half-way in (with over 1,5 hours left!) I just had to pause for the night. It's a neo-noir drama set in L.A. (what could go wrong?!), but I kind of wasn't entertained by neither the story nor the dialogue. It wasn't full of memorable characters like the Cohen brothers' movies, or cool dialogue like Tarantino. But somehow, I got attached to the story when continuing the day after, and maybe I had the lenght of the film to thank for that? Joaquin Phoenix did really well, and the costumes were great.

  6.  — 

    Stockholm, Sweden Also on Fediverse ⤤

    Seen and done

    We came back to Sweden from Cape Town in mid March. The "change management" with the kids went well, but it's mentally quite hard to be back in a different climate and another way of life. I really loved our lifestyle in South Africa, and can't wait to go back somehow. It's just feels weird to be back in Sweden: everything is as it's always been, and apart from friends and family, I feel no real connection to being here.

    Our youngest daughter is now 2 years old and has begun preschool. She's enjoying it, and it's so cute how she strolls away to her friends when I'm leaving here in the mornings.

    Travelling

    I've got a trip to New York lined up in June with friends. Really looking forward to it. We'll see what our Summer brings, but I reckon we'll hang out in Sweden and do spontaneous things, instead of planning everything in advance. Gotta save that cash for next South Africa trip!

    Hobbies

    I've been reading a lot about Linux recently. I've been using the Mac since 2007, and had this long period where I just wanted computers "to work". I had my PC tweaking age in my teens, where I was into customisation and all that. Now when I'm constantly underwhelmed with macOS and big tech corps in general, switching to Linux for my personal stuff feels like a breath of fresh air. This feeling of not being Apple's little bitch all the time. To be honest, I'm just using a code editor, a terminal, and a web browser anyway for most personal things.

    So I've started to follow some Linux accounts on Mastodon and I've read all articles I can find on Linux news. We'll see when I buy a new laptop. But I'm just looking forward to be a newbie again, and tinker with the computer.

    Watched

    • The Bear S03 (series, Disney+) ★★★★☆

      Still super good, but not as good as the first season.

    • Black Doves (series, Netflix) ★★★☆☆

      A bit of Bond, a bit of any spy thriller. There were some refreshing takes on the genre, but not super original in the grand sense of things.

    • The Helicopter Heist (series, Netflix) ★★★★☆

      I loved this. Gritty, good camera, "okay" dialogue. The scene with the actual heist is one of the best action/heist scenes I've seen.

    • Zoolander (movie, Netflix)

      I'm not even going to rate this, because y'all know what it's about. This was a pure escapism and nostalgia trip.

    • Cien Años de Soledad (series, Netflix) ★★★★☆

      It was supposedly really tricky to acquire the rights to make a series of the famous book, and even trickier to shoot it. I read the children of the author, Gabriel García Márquez, were instrumental in the process. Also, the cast were 100% Colombian and many weren't actually professional actors. Authenticity!

      I've read fifty pages of the book, and that was "weird". The series has kept that "weirdness" and "magical realism" which made the book so unique and original. They both serve as history lessons, as we're following the Buendía family over what is (my thoughts) a industrialisation of society, and introduction of socialism and conservatism.

    • Trolösa (series, SVT Play) ★★★★☆

      Story by Ingmar Bergman, directed by Tomas Alfresson. I loved the 1970s styling and interior design. The series has such great sense and attention to detail. The pacing is slow in the beginning, but things are moving quickly later. The big sadness is that they used a Danish actor for the role of old David, and they AI enhanced his voice to sound more Swedish. It sort of takes the whole vibe out of the different time periods.

    • Dune: Prophecy (series, Max) ★★★☆☆

      Initially, I found this a lazy spin-off from the two great films by Denis Villeneuve. But it grew on me, and became quite an intimate and tragic portrait of the main character that is Valya Harkonnen.

    • Adolescence (series, Netflix) ★★★★★

      The one everybody is talking about. It's just great. The "each episode is a single shot" fitted very well into the narrative, especially in the first episode. Such strong performances.

    • I’m Still Here (film) ★★★★★

      The Brazilian film which one an Academy Award for Best Foreign Language Film. It's about a family in 1970s Rio de Janeiro, during the military dictatorship. The performances almost didn't feel like acting, because they were so natural.

    Read

  7.  — 

    Cape Town, South Africa Also on Fediverse ⤤

    Code greppability is such an underrated code metric in how we judge and work with a code base.

    At work, we try to be very diligent in how we name

    • database columns,
    • file names,
    • functions,
    • one-off variables.

    We pick a noun for a new feature and stick with it throughout the "vertical" that forms from frontend to database. This makes it really easy to trace a feature's flow through the various layers. Same goes with the verbs that form actions on the feature noun: those should be consistent too.

    I use the greppability to my advantage in two cases:

    1. Project wide search. I hit cmd+shift+f and search for my keyword.
    2. File search. I hit cmd+f and spam next to step through all the call sites the feature touches in the local file. This gives me an overview quite quickly.

    Some examples:

    Always do named exports

    In Javascript:

    // ❌ DON'T
    export const myFunction = () => {};
    
    // This has now been renamed 😰
    import { myFunction as someOtherName } from './module';
    

    Although Language Servers will pick up this on-the-fly alias, we don't like it.

    Same goes with default exports:

    // ❌ DON'T
    export default function myFunction() {}
    
    // This has now been renamed 😰
    import someOtherName from './module';
    

    Be specific

    Avoid terms like utils and process in a feature's various functions. Name it with what they do, specifically.

    Context

    Okay, inside of a scoped function (see below), we allow ourselves to be looser with the one-off variable names:

    export const myFeatureCreate = async () => {
        // ❌ DON'T
        const myFeatureExisting = await db.find(...);
        // ✅ DO
        const existing = await db.find(...);
    };
    

    However, if we use some other feature/model, we are strict with naming:

    export const myFeatureCreate = async () => {
        // ❌ DON'T
        const docs = await db.find(...);
        // ✅ DO
        const otherFeatureDocs = await db.find(...);
    };
    

    Problem: Scoping

    "Okay, so you don't use the ES Module system to the fullest. How do you cope with name collisions?".

    We do it the old fashioned way of… 🥁 prefixing! Such as:

    // Some model file
    export const myFeatureCreate = () => {};
    
    export const myFeatureUpdate = () => {};
    

    If you start typing myFeature…, your editor's LSP integration will probably autocomplete with a list of the available functions above. Simplicity!

  8.  — 

    Cape Town, South Africa Also on Fediverse ⤤

    I don't need a new computer right now, but if I did, I'd be very keen on a Framework laptop.

    I first read about this company a few years ago, and are following some people who are posting about updates on the project. Here's a good thread by Andrey Sitnik, for instance. And here's a blog post by Wil Shipley about his first few months running Linux on Framework 16.

    Why

    What attracts me, in order of priority:

    1. The modularity: the ability to upgrade parts if they break or go old.
    2. The need to stick it to the man and support a small company.
    3. The technical challenge of running Linux for the first time.
    4. The 3:2 120Hz screen.
    5. Maybe not pay so goddamned much for a computer.

    I have no problems with MacBooks are hardware devices per se. The Apple Silicon generations of CPUs are wonderful, and the build quality is of course the best in the world. But is it worth the price of a small car to have such laptop for personal use? Sure, I could get away with a MacBook Air, and it would last a long time. My current personal laptop is a MacBook Pro 13" from 2013. I don't use it much, but it still runs quite well. As long as you put a lot of RAM in them from the start, a MacBook Pro could totally run for 5+ years (maybe also with a battery replacement).

    But as you all know, I'd continue to be Apple's lil' bitch. If the logic board fails? Sorry bro, you need to replace the whole chassi. But they suck you in! With their superior aluminium and amazing battery time. With their tight iOS integrations and Just Works™ guarantees. I guess that's the question for me: do I want something that just works for a premium cost, or am I prepared for tinker a bit for something that's more aligned with my beliefs?

    The threats

    This would be the first time since 2007 that I would not be using a Mac as the daily driver. It would be a bit scary to do The Switch to Linux and another hardware. I know the Framework laptop will feel worse in build quality than a MacBook. Even though owners say the latest Framework models "are so good", I just know they can't match Apple.

    Software wise, I don't care much. I depend on very few apps in macOS. I basically just need a code editor, web browser, a terminal, a password manager, Signal, and Spotify. All of these are easily installable or replacable on Linux.

    What's a bit disconcerting though is the need for Fixing Things On Linux. Like, rando things breaking in kernel updates, or hunting around forums for this one fix. This is what I do in my day job (web development, am I right), so I wouldn't love to mess around with that for my personal setup too. But who knows?

    They say Linux on the Framework is solid these days: Ubuntu and Fedora are even first class citizens. I did some research, because what if I don't want those distros? Linux Mint is apparently cool if you wanna get rid of Ubuntu's bloat, for instance. The Framework forums and Reddit offered a ton of advice, and a lot of words of warning. YMMV.


    We'll see where I land, but what's interesting is that I so much enjoy reading about the Framework laptop in various ways! It's actually a nerdy joy to scan Reddit threads about various experiences. The Tinkering side of me has awakened again: I probably haven't been thinking about hardware parts and OS settings since my LAN days on Windows in the early 2000s. It's quite refreshing actually, as Andrey mentioned in the thread linked above, to be owning your hardware for real again. To put it together yourself. To use your hands and have the tactile element to it in a world which is eaten by software.

  9.  — 

    Cape Town, South Africa Also on Fediverse ⤤

    I really enjoy listening to Baxter Dury. His voice is very unique, and he’s talking over the music in a cool way. I can just keep him in the background with his London accent.

    And he succeeds with making catchy hooks, but also intensely deep lyrics. I check out some lyrics and am just swooning over some lines.

    Once a sexual forest fire
    My flame had been dampened by the monsoons of fear and age
    And I was in the middle of a perpetual orchard
    Where the shoulderless are kings

    From “Leak and the Disco”.

    I wanna say something nice to you
    But I don’t think I know how
    I’m just waiting for me to say something I believe

    From “Wanna”.

    And I love the line “Pinot noir sunsets” for some reason, from “Aylesbury Boy”.

  10.  — 

    Cape Town, South Africa Also on Fediverse ⤤

    It’s something with the series The Bear, I’m just so swept away by the acting in it. In every scene, there’s often some gold.

    They sort of slow things dooooown so much in some settings, and it’s panicky hell elsewhere. Like in life. And how they swing between real deep talk-y bits one second and show a short piece of funny moronic “what the actual fuck you meatheads” shittalk in the next.

  11.  — 

    Cape Town, South Africa Also on Fediverse ⤤

    Seen and done

    We've visited a couple of wine estates in the Western Cape area since we got here. And boy, do they have their sales machine up and running. We've mostyl been in the Paarl and Franschhoek areas, but also some in Constantia — closer to Cape Town city centre. I love the relaxed setting most of these places have (people in restaurants, shops, bars are so nice in Cape Town) as well as the divine combo of affordable prices and playgrounds for kids right in the seating area.

    Watched

    • The Perfect Couple (series, Netflix) ★★☆☆☆

      I found this having utterly horrible acting and an unoriginal script. The only thing that saved it was Nicole Kidman.

    • Monsters: The Lyle and Erik Menendez Story (series, Netflix) ★★★★☆

      While this was a bit too long, I was completely hooked at least throughout the first 4/5 of the series. The show follows the template of making a drama series of real life serial killers, but I don't care: I was entertained. The acting of the two brothers was great, and the scene design was cool. Always nice to see Javier Bardem too! The show is nerve tickling, since you found yourself not knowing what to believe in the end.

    Read

    While in South Africa, I'd love to read books by local authors, especially historical accounts and stories about individuals.

    I've found these so far:

    • Moederland by Cato Pedder.
    • The Lie of 1652 by Patric Tariq Mellet.
    • The Promise by Damon Galgut.

    Listened

    I've rediscovered Pink Floyd. They were huge for me in my teenage years (somehow), and I think I understand their lyrics better now (no shit). I can have Animals (1977) on in my noise cancelling headphones on repeat, repeat, repeat…

    It's also amazing when you "discover" new tracks from your favourite artists. I stumbled upon Crystal Japan by David Bowie via a Reddit post (forgot the link, sorry), where the poster highlighted that the track A Warm Place is very similar to Bowie's track. And it is! There's a post on it on the NiN wiki even. The Reddit user also brought up that the first 1/3rd of Fiat Lux by Einstürzende Neubaten is also similar. Cool! Three super good tracks — not a bad day.

    This Spotify radio playlist based on A Warm Place is very nice to keep on while working.

  12.  — 

    Cape Town, South Africa Also on Fediverse ⤤

    I'm not a huge fan of having too many custom config, like aliases in your shell or git prompt. But I'm gonna share a few git aliases which I use rougly 1 402 times a day.

    Scenario: continue with the latest WIP commit

    When switching between branches, one can git stash and try to remember that when coming back to the branch. I often don't. Therefore I often do git commit -a -m "wip" with the current state and move on, since committed data is really hard to get rid of (git reflog is amazing).

    So. I'm back on a branch with a f8f10d195 Johan Brook wip commit sitting in there. I want to continue with it, so I do:

    git u
    

    Files are now unstaged and the worktree is as it was before committing.

    The .gitconfig:

     [alias]
        unstage = reset HEAD
        # "Remove" the last commit and unstage everything
        u = !git reset --soft @~1 && git unstage .
    

    (I use git unstage . too, that's why it's a separate alias.)

    Scenario: interactive rebase in the current branch

    I use git rebase -i a lot to squash commits together before a code review or similar. Instead of manually finding the range of commits to rebase, I use this alias:

     [alias]
        # Interactive rebase for all commits in the current branch (compare against main branch)
        rb = !git rebase -i `git merge-base main HEAD`
        # Same as above but autosquash
        rba = !git rebase -i --autosquash `git merge-base main HEAD`
    

    Like this, while being on a non-main branch:

    git rb
    

    And then your $EDITOR opens with the interactive rebase. Fun!


    For the rba alias, I use the "autosquash" feature like this:

    1. Do commit A.
    2. After review, do commit B which should go into A. Tip: Use git commit --fixup=HEAD (docs).
    3. git rba
    4. Save in $EDITOR, close.
    5. Done! Now commit B was squashed into commit A while keeping the latter's commit message.

    No tedious manual steps with finding commit hashes and so on. The --autosquash option in the rebase works automatically with git commit --fixup (there are other options as well, such as --squash).

    Update, October 11th 2024: git-absorb

    I saw on Mastodon that this tool exists: git-absorb.

    It basically automates step 2 above. I simplified this a bit in my example: in reality, you might do N number of fixup commits there. git-absorb divides the staged content in hunks and intelligently finds the first ancestor commit which touches on the same code, and creates these fixup commits for you.

    I will give it a try!

    Scenario: when you just want to start over

     [alias]
        fuckit = reset --hard HEAD
    
  13.  — 

    Cape Town, South Africa Also on Fediverse ⤤

    Me and the fam have arrived to Cape Town, which will be our home for six months. During the week, we've sorted out SIM cards, a car rental, groceries, and made ourselves aquainted with the surroundings.

    We're in Bantry Bay, in the southern end of Sea Point. It's one of the best locations I've lived in (up there when I lived two blocks from Copacabana in Rio 2016). It's a 5 min walk to shops and restaurants, 3 min to the ocean, and a short jog to the Clifton beaches (where the uber-rich live).

    First impressions:

    • The Swedish thing of strandskydd (lit. beach protection) where you can't erect buildings within 75-100 meters to the water line does not exist here 😄 There are luxury villas literally on the beach.
    • The whole Sea Point promenade has various apartment and hotel buildings facing the ocean, so there's no real restaurant, bar, or café game along the promenade. Too bad. If I would've planned that strip, I would've encouraged businesses to open for drinks and food all over the Atlantic seaboard.
    • They haven't really prioritised parks or play areas for kids. The Green Point park is cool, but quite far away from us. Feels like they've been wanting to maximise every inch of land here in order to sell houses, and not "waste" it on kids.
    • Sidewalks in our area are not super walkable with a stroller. The hills are steep!

    On the lighter notes:

    • Coming from a pretty homogenic area in Sweden, the diversity here is amazing. It's such a mix of people, languages, and cultures. I realise once again why I love travelling and why we as a family are doing this in the first place.
    • Wine, coffee, and beer is so cheap compared to Stockholm.
    • Living by the ocean is something we've prioritised, and consider a rare luxury. Our apartment is "humble", so to speak, but the lower monthly rate made it possible for us to afford hiring a nanny as well as having a long term rental car.
    • Speaking about cars: even though Uber is very affordable, I think if you're here for over a month, you'd like to have your own car. Being able to drive out to the wine country and go around the farms is a nice day trip (don't drink and drive though).
  14.  — 

    Stockholm, Sweden Also on Fediverse ⤤

    During the past month, we've been ramping up our planning and packing before the move to Cape Town, South Africa. Very exciting. I'm even past the slight resistance to tear up routines and leave friends and family, and instead 150% into the adventure bits.

    I started working again after a couple of months off with the latest child. To be honest, I'll miss the hell out of her. We'll meet every single day still of course, but we probably won't have this long uninterrupted time together again, and she obviously won't be in this age forever… Even though I love my job and colleagues, I could see myself work less. I've come to not like the idea of that somebody else owns my time.

    Watched

    • True Detective S04 (series, HBO) ★★☆☆☆

      Good acting, mood, and scenery, but oh so slow paced. Maybe some people appreciate it, but me and the girlfriend just ended up stopping watching this series. It simply didn't entertain us. There was very little character development — the characters weren't that interesting either — and the "mystery" (the case) wasn't compelling nor original.

    • Purple Noon (1960) (film) ★★★★☆

      Alain Delon as Tom Ripley

      Loosely based on The Talented Mr. Ripley, this French film has the most beautiful actors and styling ever. I can't take any screengrabs because of DRM (almost rhymes with /Go to hell/), but Alain Delon, Marie Laforêt, and Maurice Ronet are all so damned cool as Tom Ripley, Marge Duval, and Philippe Greenleaf. Jared Leto will always be a fake Alain Delon to me from now on. The film has made me want to replace my wardrobe with white loafers, crisp white cotton Oxford shirts, pink linen shirts, and striped jackets.

      So, the movie itself is good too! I find it a bit "weird" sometimes, as you always do with old movies. The pacing is good, but oh how they butchered the Ripley character. In Purple Noon, I can't make sense of him at all.

      Summarised: come for Ripley, stay for the costumes and scenes of pre-tourism Rome.

    • The Greatest Night In Pop (documentary, Netflix) ★★★★☆

      I like music documentaries. This one was about a thing I totally haven't given a single thought during the past 20 years: the song and event that was We Are The World by Michael Jackson and Lionel Richie. I grew up in the 1990s hearing it from time to time. This very easily digested film let Lionel Richie retell the story about how the recording of the song came to be, and the various artists involved.

      A few things struck me:

      1. Lionel Richie came off as a really cool guy in the 80s.
      2. I was happy to learn that the creative drive and leadership in this was made up mostly by people of colour (Lionel, Michael Jackson, Quincy Jones, Harry Belafonte).
      3. The 80s was so cute in a way that they got a ton of stars together in a studio after an award's ceremony and recorded the song into the early morning hours. This is the main thread in the documentary too — how they managed that — but it all seemed so unpretentious, down to earth, and full of comradery.
    • Squaring the Circle: The Story of Hipgnosis (documentary, Netflix) ★★★★★

      A documentary about something hugely underrated: a graphic design studio making album covers. I knew about Hipgnosis before, but only on the surface. They were two pals from England that formed a graphic duo that would create iconic pieces of album artwork for roughly 10 years, for artists like Pink Floyd, Led Zeppelin, Paul McCartney, and Peter Gabriel. It was a joy to hear about their sheer creativity and close collaborations together. It echoed of a world were music really mattered, as did the package it came with. In the end, it's a lot about money — I get that — but the documentary's focus on these two guys' creativity formed a nice oasis from that.

    • Furiosa — a Mad Max Saga (movie, Netflix) ★★★★☆

      A prequel to Mad Max — Fury Road. I'm not an action movie kinda guy. I enjoy things like The Matrix and maaaybe John Wick because it's well done. But whoa, these two latest reboot films in the Mad Max franchise are insane.

      We get to follow a young Furiosa — her origin story. It has the same intense car chase scenes as Fury Road (is the camera team speeding things up? There's something in there making all the movements look overly intense). The movie spares no prisoners: it's kind of raw, and you're never actually sure about what any character may do. I'm not smart enough as movie critic to pinpoint exactly what, but the latest Mad Max films have something that make them really really good.

    • Kaos (series, Netflix) ★★★★☆

      Other reviewers would probably give this one three stars, but I'll be honest: I was entertained! The cast is amazing (Jeff Goldblum 😍 in a track suit 😍😍) and I think the narrative bridge between Greek mythology and the modern world was made in a relaxed and funny way.

    Reading

  15.  — 

    Stockholm, Sweden

    We just received our Yoto Mini player for our three year old daughter. It's basically like a modern cassette player, but more hitech and with a business model.

    The daughter has been enjoying listening to stories from an audiobook we got from the library. Since she loves it, we love it! The thing is:

    • The book itself is pretty big and bulky: not good for travelling.
    • When she's tired of it, we need to find a new >
    • Also, it's actually hard to find that exact model in Sweden. We were pretty stumped. There was one on Facebook Marketplace 2,5 hours drive away from us…

    Back in the 90s, me and my siblings (and probably a million more Swedish kids) listened to stories in a cassette tape player at bedtime. We'd fight about who was supposed "turn the side" from A to B or vice versa. The one who cared the most had to cave in and get up and turn the side 🥲

    My wife researched some and found this Yoto thing. It's a Big Serious Company™, funded by the Zuckerbergs, and I was obviously skeptical to what new capitalistic lock-in we'd deal with this time. And yes, I wasn't wrong. But! I was positively surprised to find that the Yoto is highly customisable too.

    The basics

    • The Yoto player is a screenless audio player for kids.
    • You can play stories and music buy inserting plastic cards — equipped with what I believe are NFC chips — into it, à la cassette player tapes.
    • You can buy premade story cards from Yoto, as well as a myriad of other accessories (💰).

    The customisable parts

    • You can buy Make Your Own-cards and link stuff onto them with an iOS app.
    • The card doesn't hold any audio data itself. The card merely act as a link when you insert it into the player.
    • The limits for each card are (quoted from their website):
      • 100 tracks per card
      • 1 hour running time for any single track
      • 100MB maximum file size of any single track
      • 500MB maximum total file size of the audio content for any one card
    • Here's the fun part — you can link these kinds onto the card:
      • A voice recording (maybe grandma reading a favourite book).
      • A podcast (add an URL to an RSS feed).
      • Any MP3 or AAC/M4A file (!).

    So, the Yoto player is basically a kid friendly MP3 player combined with being a podcast player. Neat.

    The Swedish public service is very nice here, since SR ("Swedish Radio") provides a ton of free stuff — even for download directly (if not, you can always open the Network tab in your browser and grab the audio URL when the embedded player plays it). So either:

    1. Download those MP3s and transfer to the Yoto, or
    2. Grab the podcast URL (often at the bottom of listings, like this one) and quickly get aaaalll those sweet kids' stories into the Yoto.

    The iOS app is pretty neat, and I found all the things I needed in it. Me and the wife can share a family account in there and manage everything related to the Yoto player. One can even customise pixel art (!) for each track, which will be seen on the tiny Yoto player display. Very cute.

    There's also a whole subreddit r/YotoPlayer where people hack it with custom NFC cards or replace the memory card for a larger one.

    Caveats

    The thing to remember is that 1 playlist goes onto 1 card. They let you customise each playlist with name, description, photo, etc. so it's pretty. So either you dump all your stuff onto a single card, or you cave in and buy more Make Your Own cards to make it pedagogical for your kid (💰💰).

    If you want the content to be available offline, be sure to plug the player into power and pause any audio. Then in the iOS app, find the section where you manage local downloads, which will list pending and finished ones. Very transparent and nice. I read somewhere earlier that the player has 32GB of storage, which is plenty for a kid.


    All in all, we're super happy for now. It's a really cool product. Pretty bummed I didn't think of it myself.

  16.  — 

    A batch of stuff I've done and consumed recently.

    During the Swedish Summer, we've enjoyed hanging out in the Stockholm archipelago and elsewhere. We spontanously went down to the west coast and near Denmark for the tail end — areas I love.

    The main theme of our late Spring and Summer has been to prepare for the move to Cape Town, South Africa. During the a single week, we finally found tenants for our apartment in Stockholm, an apartment in Cape Town, as well as being able to book the flights. Felt good! Now only some regular admin is left (insurances, pack things in our apartment, etc). And of course saying goodbyes to friends and family.

    …and, I'm starting working again on Monday, after almost six months of parental leave. Feels a bit weird, but it'll be so good to code and chat with colleagues again.

    Watched

    • Gangs of New York (movie) ★★☆☆☆

      I rewatched this and man, it hasn't aged well 😓 It doesn't feel like a Scorsese movie at all. The camera, lighting, dialogue, fighting scenes — everything feels amateurish. Daniel Day-Lewis is the only light in the dark.

    • Let It Be (movie, Disney+) ★★★★☆

      The re-release of the Beatles film from 1970. I had seen much of it in Peter Jackon's Get Back documentary, but this was a nice condensed version. I love Paul's style in clothes.

    • 3 Body Problem (series, Netflix) ★★★★☆

      One of the best sci-fi series I've seen. Although there were clichés and cheesy moments, I thoroughly enjoyed the deeper questions arising around humanity, science, and space.

      Spoilers

      It was such a cool angle to have the aliens arrive in 400 years, and in the meantime, having them ruin our science until their arrival. How do we deal with an incoming threat when it's so far away? I like these deeper questions around space, humanity, and aliens.

    • The Dropout (series, Max) ★★★★☆

      Very chilling and dark story about Elizabeth Holmes and the whole Theranos fail. It was really well made, and I'm happy they included a lot of small things from Silicon Valley/tech culture (sleeping in the office, VCs being assholes, the focus on offices, things, and marketing instead of actually creating any value for humans).

    • House of the Dragon (series, Max) ★★★★★

      I'm not sure what reviews or people say about this spin-off series, but I love it.

    Reading

    Listened

    • We Will Always Love You by The Avalanches (2020)

      This album is insanely good. Been rediscovering it the past week (haven't been listening to it since it came out in 2020).

    • My reggae playlist

      My classic reggae/dub/rocksteady playlist has gone warm during the summer.

    • Bowiepodden (in Swedish, "The Bowie Podcast")

      I'm haven't ever been a podcast kinda guy, but this one hit me just right: the host and his invited guests go through a David Bowie album per episode, talking about each one of the tracks. Super nerdy, but there's a great warmth and appreciation for Bowie's artistery and his collaborations with the fellow musicians on the tracks.

    Cooked

  17.  — 

    Österfärnebo, Sweden

    Hello, my name is Johan.

    Hello Johan, welcome.

    I.. I have a problem. I’m an addict. I just can’t stop seasoning cast iron pans and pots. I do it over and over. If I see a dry surface, I just can’t help myself cranking up the heat and pouring a thin layer of oil onto it. And repeat. Sobs

  18.  — 

    Stockholm, Sweden

    Current song obsession is Bird In Hand by Lee Perry and The Upsetters. I've listened to it for years, but just now it struck me to research the lyrics.

    Turns out I wasn't the first (as always, on the internets 😍). A Reddit post described how the lyrics are in fact Hindi!

    Milte hi aankhein dil hua deewana kissi ka
    Afsana mera ban gaya afsana kissi ka
    Puchho na mohabbat ka asar, haay na puchho
    Dam bhara mein koyi ho gaya, parwaana kisika
    Afsaana mera ban gaya, afsaana kisika

    The post translates them as:

    As soon as our eyes met, somebody's heart went mad
    My tale has happened, somebody's tale
    Don't ask me love's effect, oh, don't ask
    I took a breath and somebody happened, somebody's lover

    Anyhow, I found both forms beautiful: the Hindi one for its vibe, tone, and melody, and the English one for its literal meanings.

  19.  — 

    Stockholm, Sweden

    I found this in an old book describing a historical area in rural Sweden:

    Så säger vi som Hammarby-bor:
    På Hammarbys framtid vi faktiskt tror,
    ty livets kraft är mäktig och stor.

    Det gamla bruket ska inte dö,
    när våren kommer till land och sjö.
    Det här blir inte nån öde ö!

    Thought it was beautiful.

  20.  — 

    Stockholm, Sweden

    Watched

    • Poor Things (movie, Disney+) ★★★★★

      Very weird, very great. Superb acting by Emma Stone.

    • Verldens Verste Menske (movie, Disney+) ★★★★★

      Also very good acting by the main character, played by Renate Reinsve. A nice "anti romantic" (?) movie about not conforming. Come for the promise of good director (Joachim Trier), stay for the dreamy summery Oslo scenes.

    • Baby Raindeer (mini-series, Netflix) ★★★★☆

      Everybody has been talking about this one. I found it good. Super brave by the main actor, who wrote and created the series based on his own experiences with stalking and sexual abuse. The storyline surely made me binge it. I appreciated how it was nuanced in the way that it made the stalker human, and didn't hide the victim's part.

    • Ripley (mini-series, Netflix) ★★★★★

      Oh my god, the black and white cinematography, the clothing, the slow scenes! Harrowing remake of the novel The Talented Mr. Ripley. I appreciate the slow pace, and Andrew Scott is perfectly cast as Tom Ripley. More so I think than the boyish Matt Damon in the 1999 film. Scott has those "great white shark" eyes, where he can completely turn off any emotions and you just see an empty abyss.

    Books

    Articles

    Cooked

  21.  — 

    Stockholm, Sweden

    I've made an observation with regards to the quality and style of my writing: after years of constructing mostly short sentences in Slack and on Twitter/Mastodon, my prose style is really bad (for my standards).

    It's like writing only in chats where clear, short communication is key has made my long form writing much worse. It's tangent to the thing where people have too short attention span for reading books after years of only reading click bait headlines and social media posts.

    I guess the fix is to read and write more prose.

  22.  — 

    Stockholm, Sweden

    Being on parental leave is like a brain reset. I experienced the same thing with the first child, and now with the second. My everyday life has shrunk, in a good way, to revolve around the simplest tasks, such as going grocery shopping for extended periods, going to the gym (with the baby sleeping in the stroller), and regular household chores. I guess most modern people (probably men) dread these tasks, but I've come to love them. Being able to focus on the things I do in a rush in normal life is so great.

    Life has slowed down. Nothing is in such great rush. If I do a single chore in a day, that's fine.

    When it comes to having creative outlets, I've worked a lot on this site. My new strategy is to work in short bursts of output, and it must be driven by passion. That is, when I open the laptop lid, I start working on the first thing that comes to mind, may it be tweaking typography in CSS, reworking some content structure, fixing mobile nav bugs. Anything that brings me joy and is kind-of achievable in the present moment until the baby wakes up. It's been working great so far, and it gives me some sense of accomplishment between buying milk and picking up the other daughter from preschool.

    I wish I and anyone could apply this mindset to when we're not on an extended leave.

  23.  — 

    My kitchen table

    It's my first week of parental leave with my second daughter, and I'm here for it. Hanging out in the kitchen, taking time to prep food, listening to music with the baby. I'm appreciative for entering Swedish Spring and Summer this time too.

    Last time, I found the parental leave being a great "brain reset" in order to get perspectives. It (forcefully) slowed down my every day life and made it revolve around fewer things. It also leaves space — outside of work — for project ideas. For instance, I just thought about coding something with an LLM that suggests recipes based on groceries I've got home at the moment. I'd have less energy for these kinds of silly things if I was to work full time too.

    I think this time, I'll enjoy it even more thanks to the fact that you're 1000x more of a pro and more relaxed with the second kid 😏

  24.  — 

    Koh Lanta, Thailand

    This is the final paragraph of Cormac McCarthy’s The Road (no spoiler). It’s the most beautiful paragraph I know of. The weight, the rhythm, the final sentence. Never has a single paragraph done more emotionally to me when I first read it — 15 years old — than a hundred magazine articles on the environmental crisis.

    Once there were brook trouts in the streams in the mountains. You could see them standing in the amber current where the white edges of their fins wimpled softly in the flow. They smelled of moss in your hand. Polished and muscular and torsional. On their backs were vermiculate patterns that were maps of the world in its becoming. Maps and mazes. Of a thing which could not be put back. Not be made right again. In the deep glens where they lived all things were older than man and they hummed of mystery.

  25.  — 

    Koh Lanta, Thailand

    I had always been an "anti e-book reader person", or conversely, "pro physical book person". In hindsight, I'm not sure why: the constant argument had been "I'd like to read real books, please!". Hold them, carry them, feel them. Etc. etc. It's 150% the sentimentality around books as manifestation of a cultural thing that has been around for hundreds of years. The last bastion, where the digital revolution yet hasn't been able to put its bits-and-bytes hands on.

    It's also the vanity thing of collecting physical artefacts (and perhaps showing them off). I'm the first to admit that I like to keep books in my bookshelf! Even though lately, I've borrowed more books from the local library when the titles have been quite rando, as in "hm, I'm not sure I'll ever gonna re-read this or recommend it to somebody".

    Anyhow. With e-readers, you lose both the physical sensation and the showing-off of real books. And it's amazing!

    From now on, this text is about Johan being a decade late in discovering e-readers.

    For a longer trip I'm currently on, I bought myself an e-book reader. It's a Kobo Clara 2E. I refused Amazon's Kindles due to lock-in and dislike of Amazon. I got myself a magnetic cover, and off I went.

    Before, I made damn sure this Kobo thing was open enough to transfer these types of ebooks onto it:

    • Random, free EPubs books.
    • DRM protected EPub books.
    • Library ebooks.

    as well as sampling books out of the Kobo store. It supposedly has millions of books, and after some sampling, I determined that it had the titles I was going to read during my trip. Perfect!

    Kobo Clara 2E

    The Kobo reader is really good. It has a great display, kind of water proof, has good battery life (I've charged it once since I got it in mid January, now is late Feburary), a perfect form factor.

    The form factor is something I especially appreciate: I can fit it in my back pocket. I don't think the display is too small at all (6 inches, 300 PPI). Anywhere when I got a minute over, I can just haul it up and get some pages read. You could do the same with a physical book, but even a paperback of 600+ pages will be a bit of a brick to carry around. The result? I read in a much higher pace, and therefore a lot more books (since January 14th, I've read four books for a total duration of 56 hours). I feel genuinely excited for how this has lowered the threshold for reading more books.

    It's almost like one of the charms with physical books became its baggage: to physically acquire them and transport them around. The ritual became a gatekeeping activity for me. With the e-book reader, it's as capitalistic and digital as it can be: I find a book in the Kobo store, buy it with my Apple Pay, and sync it on the device via my account. No more the feels of "opening the first pages of a freshly bought book".

    Oh, I've almost forgot the best thing about ebook readers! The ability to read in the evening in the bad shared with a partner who does not want to have any lights on!


    I'm currently reading the "My Struggle" series by Karl Ove Knausgård.

  26.  — 

    Koh Lanta, Thailand

    Maybe it's because I've spent the past weeks in a beachside environment, with very few worries besides watching the baby so she won't eat the sand, but I just don't care for a single bit about new hardware announcements such as the Apple Vision Pro any longer.

    It's so relieving.

    Not trying to be smug or snowflake about it. I simply feel so beyond those kinds of thought streams where I spend more than a second checking the said hardware out.

  27.  — 

    Koh Lanta, Thailand

    We arrived to Koh Lanta a few days ago, where we'll spend the next two months. While I like long stays in locations, it doesn't come without risk. Especially when bringing kids. "Will we like it? Will it be boring? Will there be too many tourists? Will we be able to create an everyday life?" are questions which I've had during the days up until arriving. I think this kind of travelling is one part experience and one part "Just Do It". For experience: you just have to trust your gut instincts, and also your skills and ability to integrate well and have a good time. The "Just Do It" part is self-explanational.

    Koh Lanta is super so far though. We live just by Klong Dao beach, which is a super relaxed and cool beach: restaurants, bars, and cafés on one side, and looooong waves on the other. And yes: there are a ton of tourists (we among them!) — mostly Scandinavian — but I've accepted that now (haha).

    A few days in, we've found some kind of a rhythm:

    1. Early morning, I either sleep in and hang out with the kids, or do exercise (running or gym).
    2. Late morning, either me or my wife gets "off time". The other one goes swimming with the kids.
    3. At lunch, the baby sleeps and the older one hangs out inside for some calm time near the A/C. One of us parents can go outside.
    4. After lunch, we do some activity. For now that list still only consists of… more swimming 😅
    5. Late afternoon, it has gotten less hot outside, and we can hang out on the beach just by the shallow water where the kids can play and we can bring takeaway thai food, while watching the beginning of the sunset.

    What I love so far with Koh Lanta:

    1. The ease of living. Many things just exist at your doorstep. A decent supermarket, phone stores for prepaid SIM cards, cafés, cheap thai food joints, pad thai stands, drug stores. Products of years of mass tourism!
    2. The picturesque beach. I have to pinch myself every morning.
    3. The pleasant locals. Not everybody are super happy and friendly (I reckon also a product of years of mass tourism!), but everybody are helpful and solutions oriented. They love babies so much, by the way. Everybody are smiling and acknowledging our 10 month old baby, who beams back at them. If I would do that back home in Stockholm… I… I don't know what would happen.

    For me, I love the heat that comes with tropical weather. It makes me a tad slower, but overall I prefer to be surrounded by warm 30°C air versus mere 20°C air (which we get in Sweden on averege in the summers, it feels like). A/Cs help a lot, sure. But even without them, I'd just exist in the heat (and swim a lot).

  28.  — 

    My Mac shortcut

    I was in a bookstore to get a Christmas gift today over lunch. It was an independent, small store — not one of the big book chains’ shops. Many books had small paper notes with the staff’s personal thoughts, and many were signed by the authors, who frequently visited the shop on signing events and book talks.

    I just got a really fuzzy feeling entering the small venue, and even more so after chatting with the sole clerk.

    Entering a bookstore is like entering a whole separate universe where time stands still. When I was travelling around in the world, I would always get to a bookstore when in a new city just to feel “rooted” — kind of like finding a safe house.

  29.  — 

    My Mac shortcut

    Finished watching the David Beckham documentary. I know it’s super produced and sanctioned by the Beckhams and all that. But. I liked it. Especially the ending, where the family hang out in present day England at their countryside estate. It felt real, in a way (even though again: I know it’s staged 😄).

    It was a cool story arch, even though I guess I appreciated it because of the nostalgia. The feels when images appeared of Luis Figo, Zidane, Ronaldo, Rio Ferdinand, and Ryan Giggs and the others. I used to play Fifa 2003 on PC with those players, and they were all around when we were talking football in school.

  30.  — 

    My Mac shortcut

    ArrowJS is my spirit animal JS library at the moment.

    If you need a library on the frontend, I’d use this one.

    • ✅ tiny (2kB). can read the source code in 10 min.
    • ✅ reactive, with observable signals/atoms.
    • ✅ no build, no JSX, no dependencies.

    It abstracts away sharp edges with the DOM, and does the reactive boilerplate for you. I could easily just copy-paste the source into a vendor/ directory and call it a day.

  31.  — 

    My couch in Stockholm

    Messing around with the styling and structure here on the website again. I'm so inspired by all the personal sites I stumble on in my feed. But not inspired enough to actually produce as much content here as I would love to 😄

    Been reading a lot about Web Components recently. They're having a sort of renaissance at the moment — not sure why this timing actually — much thanks to them being a tool in the box when building with progressive enhancement. All PE thought leaders are going on about the beauty of Web Components and "how you don't need any big JS or Virtual DOM libraries at all!!". I get that for small, self-contained UI components, but for anything non-trivial, you're kind of bound to reinvent something inhouse for your app anyway, no? I guess Web Components fill the hole where you just want to drop a custom element in a piece of markup and have a Web Component use the element with contained JS and perhaps CSS.

    But the idea of "HTML Web Components" is really neat, in the way it enhances existing markup. Like this:

    <convert-currency to="USD">10</convert-currency>
    <script src="convert-currency.js" type="module"></script>
    
    // convert-currency.js
    customElements.define(
        'convert-currency',
        class extends HTMLElement {
            connectedCallback() {
                // use this.querySelector() and other DOM API methods to convert
                // the text content to the currency from this.getAttribute("to").
            }
        },
    );
    
    • For server rendered markup, <convert-currency> will render just fine, and 10 with it. Browsers will just ignore it when parsing the HTML.
    • When parsing is done and JS kicks in, we'll "enrich" our custom element with logic.

    My takeaway is that custom elements and Web Components give us a declarative way to encapsulate logic (duh, "components" it's in the name), which creates whole new patterns in how to approach component style architecture but without any 3rd party JS component library.

  32.  — 

    My kitchen table in Stockholm

    The show "Full Circle" on HBO is good. Made by Steven Soderbergh. It uses unconventional camera — a raw lens from lower angles — which makes the city lights of New York appear "as they really are".

    Yesterday, I watched the series finale of "Little Drummer Girl" (also on HBO). It was so good. Park Chan-Wook directed it. The late 70s costumes, interior designs, and locations were spot on. And the characters were nuanced and non-cliché. Gotta continue my John le Carré run now by reading the novel.

  33.  — 

    On the run

    Added a Music section to my site. 3rd party APIs are so much fun with:

    • serverless functions.
    • APIs with only a simple token auth.

    Brings me joy!

  34.  — 

    Stockholm

    On the night to Friday, March 17th, I became a father for the second time. Insane! A little girl was born to us.

    Thanks to me now being deep into the kids thing, this time around didn't feel as scary as with our first. I am now able to embrace this moment to 150%, which feels a-mazing.

  35.  — 

    Stockholm

    Did a small re-align of my site. Nothing too big. Just some spring cleaning, visually. Feels good.

    I've landed in a nice rhythm of doing exercise now. Combining running and weight lifting. My constant gripe with the latter is to have to eat so goddamned much all the time to get any growth effect out of the gym sessions, but whatever.

    Watched "All Quiet On The Western Front" yesterday. It's a Netflix produced film (but it was super good!) about a solider in the German army during World War I. It's based on the book with the famous title, a source of many dad phrasings over the years (dads throwing in the reference "all quiet on the Western front" in conversations when receiving the question "how do you do"). The film was amazing in the sense of production, but also (I guess) authenticity (the dialogue is German 💞). The sheer horror of war was pictured in a deeply touching and soul draining way.

  36.  — 

    Stockholm

    I've finally stopped using Twitter now. Feels weird. The reason was that they shutdown API access for 3rd party clients, like the one I'm using: Tweetbot. That was the last straw for me. I'm out. I have zero energy for using Twitter's apps. I'm going all in on Mastodon now.

    Luckily, the creators of Tweetbot have released Ivory – an iOS app for Mastodon. It's the same look and feel as Tweetbot, which is amazing. I've started to like Mastodon a lot now. I wrote a post about it too.

    Long live Twitter. Goodbye, old friend 👋

  37.  — 

    hi again.

    last week, i was in portugal 🇵🇹 (right on the coast) with the rest of lookback. it was lovely to see everybody again. the heart is truly filled until next time.

    we're going to south africa 🇿🇦 in november! we're gonna be in franschhoek and kalk bay, on the cape. really looking forward, since a) i've never been in south africa, b) after researching, everything seem so cool.

    for the month long trip, i've made a list of books to read:

    • The Spy Who Came In From The Cold, by John le Carré
    • Grand Union, by Zadie Smith
    • Vargarna Från Evighetens Skog, by Karl Ove Knausgård
    • At the Existentialist Café: Freedom, Being, and Apricot Cocktails, by Sarah Bakewell
    • What We Owe the Future, by William MacAskill.

    just the action of making this list makes me excited.

    red hot chili peppers' latest album "return to the dream canteen" is so good. i love anthony's smooth vocals, and john's solid guitar. they're so very musical.

    i've bought an watch even though i've said i wouldn't. to my defense, it was a) a used one, and b) i'll only use it for exercising. it's really nice to not bring the phone when running, since i wanna track how good i do. however, i'm really impressed by the watch so far. it's really a marvel of engineering.

    i watch "house of the dragon" on HBO, and "rings of power" on amazon prime. the former is really good: even though it doesn't have the intricate storylines from "game of thrones", i like the acting and focus on relationships between parents and children. i also appreciate the focus on the hardships for women of giving birth. "rings of power" is so-so. it feels too CGI, i think, and too "joyful". it doesn't have the raw feeling of peter jackson's trilogy.

  38.  — 

    The summer house in the Stockholm archipelago

    lookie here, haven't posted in a while. this is how it goes when you have a full time job, and not being on parental leave!

    for my own memory, these are things i want to check out at the moment:

    • the SolidJS framework.
    • building a UI frontend for managing static site generators with tauri.
    • my work-in-progress app for reminding me to get in touch with friends, using remix.

    overall, things are pretty chill. i'm reading the autobiography of keith richards, and i'm actually enjoying it. thought it would be another sleazy rock star bio, but it kind "sounds" like he actually wrote it. also, he's got a great memory. too bad i want to buy a new acoustic guitar now, AND an electric one… 💸

    i'm enjoying watching the women's euro cup in football. there are so much less free kicks overall, due to … they're doing less movie tricks i guess? or are just toucher. the quality is super high (more than a few years ago, they say), and i appreciate it a lot.

  39.  — 

    On the run

    the musical experience which had most impact on me was one time in gothenburg, at a sleazy karaoke bar. one woman came up to the mic, and it looked like she had been through a lot in her life. i don't know, i just felt it. then she went on and did the most emotional and beautiful version of alanis morissette's "ironic".

    totally blew me away. the song was hers.

  40.  — 

    On the run

    finished two shows today: Euphoria S02 and Pam & Tommy.

    Euphoria is simply amazing. i loved season one. season two is grittier, and while it uses violence, sex, and drugs to describe the world, it’s always the characters that shine through. i’ve never seen better acting than zendaya’s performance as rue.

    pam & tommy is kinda of a curve ball. i like it! i didn’t think i would. it manages to take a story (pamela anderson & tommy lee’s stolen sex tape in the 90s) and make a whole series about it. i liked the sentimental rendition of their mutual love for each other. also, the issue of men vs. women in terms of leaked nudes is also brought up. “i was in that tape too!”, says tommy. “it’s not the same! i’m.. i’m.. a woman!”, says pamela. and it’s not just hollow talk: the series actually manages to showcase how pamela suffered.

    i also appreciated the 90s LA vibe ☀️

  41.  — 

    On the run

    i don't think everyone need heavy test runners and framework for every project. a single file with import assert from 'assert' (node) and a bunch of assertions can suffice for a tiny prototype project.

    if you want more structure, where do you go? the npm libraries tape and tap have ~20 dependencies each. ava has ~40. i don't even want to think about jest

    i'm sure these packages are great for certain things. but here's a minimal test runner i've written:

    Johan's Test Runner →

    it works as you'd expect:

    1. create a test file.
    2. import test and write test cases.
    import { test } from './_test-helper';
    import assert from 'assert/strict';
    
    test('it works', () => {
        assert.equal(true, true);
    });
    

    i use node's assert for assertions. want typescript support? add esbuild and esbuild-register as dev dependencies and run tests with:

    node -r esbuild-register run-tests.ts
    

    the runner supports returning promises, as well as printing fancy file names for each test case.

    i appreciate taking this approach before jumping to npm install <dep>. it gives me very much peace of mind, as long as you don't spend too much time maintaining your own tooling.

  42.  — 

    My living room table in Stockholm

    my latest favourite cocktail is this gin sour with bergamot and black tea. you've probably felt the scent of bergamot in earl grey tea or in perfumes. it's a highly aromatic citrus fruit: it looks like a large, more spherical, lemon. it's also surprisingly hard to find here in stockholm – even when it's in season.

    i found this recipe (in swedish...) and got hold of a batch of bergamots through a restaurant friend. i've translated the recipe to english below:

    Gin tea sour

    Ingredients

    • 5 cl gin
    • 3 cl freshly squeezed juice from bergamot
    • 2 cl earl grey simple syrup (see below)
    • 1 egg white

    Procedure

    1. Pour gin, bergamot juice, simple syrup, and egg white in a shaker.
    2. shake like hell for a minute. it should create a lot of foam.
    3. add ice cubes to the shaker and shake until the shaker gets cold.
    4. strain into a coupe glass and decorate with something green or tea related.

    the cocktail will get a lovely orange tea-like colour too!

    Earl Grey simple syrup

    Ingredients

    • 2 dl water
    • 2 dl cane sugar
    • 1 bergamot
    • 2 strainers of black, neutral tea

    (this will make more syrup than you need for one drink.)

    Procedure

    1. combine water and sugar in a pot.
    2. add the zest of the bergamot (the outer layer of the peel, save the fruit with its juice for the drink). avoid the white layer beneath.
    3. put everything to a boil for a couple of minutes.
    4. remove from the heat, add the tea strainers with black tea.
    5. let it sit for at least 5 minutes. it should gain a strong flavour.
    6. remove the strainers and let the syrup cool.
    7. strain (to remove the bergamot zest) and pour the syrup into a small bottle and store in the fridge.

    i think the simple syrup is as best the first few days, but mine has lasted over a week now. just don't forget it in there…

  43.  — 

    My kitchen table in Stockholm

    The best fruits

    1. Banana. they're full of vitamins, fibers, and natural sugars. they provide the best energy, and are easy to a) carry around, b) peel. they're perfect.
    2. Mango. whenever i get to pick flavours for (let's say) ice cream, i always pick mango (or a combo of mango + something else). they are the best tropical fruits when it comes to flavour. they're less easy to peel and deal with than a banana
    3. Clementine/Satsuma/Tangerine. easy to handle and somewhat easy to peel. the best of juices, and full of vitamins. makes the day brigher.
    4. Pear. sweeter than apples, with a soft, moist flesh full of fibres. they can be watery though, so not as rich as mangoes and bananas.

    1. Pineapple. i really hate these. ugly, hard shell, weird flavour. i would never carry these on a trip, nor try to peel them as an ingredient.
  44.  — 

    My kitchen table in Stockholm

    i love this quote from Nils van der Poel (emphasis mine):

    I think it's important to understand that you're not doing it for a gold medal. Regardless of which life you chose to live, you will sacrifice something, that's the way it is.

    As soon as you go in one direction, you also choose to not go in all other directions at the same time. It's the basic precondition for going anywhere at all.

    But on the path you take, you will experience fantastic things, even though it's uphill there will be a great view when you're at the top, and that's what makes it worth it, to be on this journey with people you love. It doesn't matter that much where the journey ends. A movie with a sad ending is also a good movie - and a movie with a nice ending makes you happy.

    I'm very happy for this medal around my neck, and for getting all the way here. But why do you do it? I don't think you get to pick your dreams, they pick us. It's up to us to realize them or not, and it seems like people who try to realize their dreams are happier.

    Nils van der Poel is a swedish olympic speed skater who just won two gold medals in the beijing 2022 olympics.

    source: Radiosporten's Twitter (swedish). translated to english by jacobr.

  45.  — 

    On the floor in my apartment in Stockholm

    i'm switching to sublime text from vs code as main code editor, and man – it's much more config to do before it's usable to me. vs code follows more of a "batteries included" and "sensible defaults" approach.

    this is my behavioural config (typography stuff removed):

    {
        "create_window_at_startup": false,
        "draw_indent_guides": true,
        "enable_tab_scrolling": false,
        "ensure_newline_at_eof_on_save": true,
        "highlight_modified_tabs": true,
        "highlight_line": true,
        "remember_open_files": false,
        "translate_tabs_to_spaces": true,
        "shift_tab_unindent": true,
        "hide_new_tab_button": true,
        "caret_style": "blink",
        "caret_extra_top": 1,
        "caret_extra_bottom": 1,
        "trim_trailing_white_space_on_save": "all",
        "scroll_past_end": true,
        "mini_diff": "auto",
        "folder_exclude_patterns": [
            ".svn",
            ".git",
            ".hg",
            "CVS",
            ".Trash",
            ".Trash-*",
            "node_modules",
            "build"
        ]
    }
    

    the last one is especially interesting. as of january 2022, there's still no way to tell sublime to ignore files in .gitignore. sublime should hide/gray out the files/folders in the sidebar, and not make them appear in the quick open dialog. so i have to add folders such as node_modules and build to the global config. people tell me to use some plugin (sublime-gitignorer), but meh... this issue from 2019 is still open.

    then i couldn't get the editorconfig plugin to work. i tried changing indent_size in my .editorconfig file, but the change wasn't reflected in the editor. joy.

    then i realised that the typescript in sublime 4 isn't really "support": it's more "the syntax highlighting" is working. one has to install a typescript package for the Language Server Plugin for intellisense (completions, etc) to work. people don't like this.

    then i installed prettier along with the sublime plugin, but formatting on every save isn't viable since it's very slow. somebody online said that vs code's prettier extension is keeping long running node processes instead of spawning a single one for each save. sublime's plugin is evidently not doing that. may have to check out dprint, but that plugin isn't even out in package control yet. hehe.

    then there are these small annoyances like i can't do backspace to delete a file when it's focused in the sidebar. or hit enter to rename it. but no can do. like, what?! this is standard file explorer shortcuts? i timeboxed 5 min to find a keybinding but couldn't. i guess my mental model from atom and vs code differs from sublime's.

    i'd really like more visual cues in the sidebar file tree about modified or added files, like vs codes does. makes it a lot easier to navigate.


    so is switching worth it? sublime is so much faster than the electron based editors it's ridiculous. when i'm comparing opening this repo's folder with code . and subl . from the command line, i understand how gaslighted i've been with the electron editors. sublime just flashes and it's open while vs code is busy booting another chromium app or whatever it's doing.

    but i dislike having to carry around a set of plugins and settings when i switch computers. vs code has this nice settings sync feature built in, but i'm 100% sure i need to sort that out myself for sublime with some esoretic github gist based thing…

    maybe Jetbrains Fleet will be The One editor: native, without bloat, and configurable?

    if anybody uses any life saving plugins for sublime, please give me a shout.

  46.  — 

    My couch in Stockholm

    i love creating playlists. it's like the lost art of making mixtapes for yourself of somebody else. even though Spotify (and other services surely) have invested a ton content curation, i still love my own hand made playlists. spotify, for instance, have a lot of both automated and handmade playlists for a myriad of occasions. they're kinda niche and cool, but… i still think they're a bit bland.

    what i appreciate is that it's a constant, living project. this categorisation builds up over time as i discover new material, and i'm now wired to place it in a playlist if i like the track. good for future johan and others.

    here are some of them:

    • Johan Recommends 👌. this one has been around since i got a beta invite to Spotify. i dunno, perhaps 2008? the listing doesn't tell the date of the two earliest tracks added (just a blank column). this playlist is just a dump of what i'm listening to at the moment. it forms a nice history of what i liked over the years.
    • ☕ Programming. music i code to. mostly techno and instrumental.
    • 👌 Feels Good Man. reggae and dub. i've been listening to this constantly over the past year, haha. i just can't get over how good, deep, and rich this genre is.
    • 💑 Music for Eating started as a playlist for a dinner in 2012, now it's my general "turn something on 5 min before guests arrive" kind of playlist. it's mostly "safe", as in "nobody and their partner will get annoyed by the songs in here".
    • 🎶 Music from the Old World. i curate this one like a mad man. only good, timeless songs in here! think "if mankind would go under tomorrow, what would you save in a box and shoot out in outer space". this is music that i think are masterpieces and that has affected my interest in music somehow.
    • 🍝 Cooking. music i cook to! fun! creative!
    • 🌧 Moody. you know all these corny spotify playlists "Upbeat Summer" and that? this is the reverse. downbeat.
    • 🔫 Rhythm And Poetry. 90/00s hiphop – when it was good.
    • 🌞 Music I've Grown Up To. songs i've listened through from teen to adolescence. music that somehow has affected me during emo periods, travels, and just everyday life.
    • 🇧🇷 Bom día, Rio de Janeeeeiroo!. my brazilian playlist, which i created when i was in Rio. classic bossanova and samba mixed with brazilian funk.
    • 🇸🇪 Absolute Swedish. only swedish songs. makes me kind of proud over how much good music the little nation of sweden has produced.
    • 🛣 On the Highway. road trip songs without songs that mention "road trip".
    • 💦 Rain. for rainy weather.
    • 🇫🇷 The French Affair. french music. for when you wanna … listen to … french music?
    • 🎸 Soul/Jazz/Blues. a big ol' bucket with these three genres. bam!
    • 🍂 Autumn. moody music which somehow feels more autumn-y.
    • 🌻 Summer!. the mandatory, upbeat summer playlist. i'm sorry.
    • 🌅 What's the story morning glory. the morning playlist that gets you UP.
    • 📽 Hipster Internazionale. hipster and indie songs you haven't heard of.
  47.  — 

    My kitchen table in Stockholm

    i've bought a new bedside alarm clock from Braun, and it's so pretty. when activating the back light, it glows in a cool amber light, and then fades away. drool. i have no idea about the timeline of things, but the green details feels very Apple-esque. i'd guess Apple borrowed this from Braun when the former designed the iPods, which had similar green details around the physical knobs and switches.

    BC22 Braun analogue clock

  48.  — 

    My couch in Stockholm

    i've bought a new domain for this site! from now on, it's johan.im. short and sweet. johanbrook.com redirects to johan.im.

    i appreciate these services/tools soooo much right now:

    • Cloudflare
    • Fastmail

    Cloudflare's dashboard is easy to understand and efficient enough to be dangerous — even though i'm not a DNS/networking/cache elite ninja. Cloudflare might look simplistic compared to beasts like AWS, but if you look under the hood, they support more than what they show off (perhaps they should show off more?). example: like the noob i am, i just redirected johanbrook.com/* → johan.im/*. but the paths after that slash of course weren't kept. so a URL johanbrook.com/writings would just end up at johan.im (the root). uh-oh. i read in a help article that Cloudflare's Page Rules feature supports wildcard referencing. tears of joy! so i could just do johanbrook.com/* → johan.im/$1 to keep those nice paths.

    Fastmail's wizard for adding a new custom domain is so lovely. i could even pick Cloudflare as my DNS manager, and they'd customise the wizard for Cloudflare's dashboard UI.

  49.  — 

    On the run

    the artist Meat Loaf died a few days ago. his album "Bat Out Of Hell" was the first album I recall playing on CD on my brand new music player when I was ~10 years old. that album – and especially the title track – was absolutely the thing that got me listening to classic rock as a kid, and then went on to widen my interest in music overall. i have such a strong memory of playing that album in my old room.

    "Bat Out Of Hell" was so "grand and majestic", and the songs were sooo long. a stark contrast to the pop songs that was around in the 90s. and the guitar solos sure impressed me as a young child!

    bye, Meat Loaf 💖

  50.  — 

    On the run

    hello world. this is me testing my new GUI for posting these small notes. i'll probably write a longer post about it later.

    in a nutshell, i've written a barebones JS client to talk with GitHub's API to post a new file in this repo. no dependencies used. it was a fun challenge writing old school DOM JS manipulations again.

  51.  — 

    i'm coding together something that will let me write post and notes in my static site from anywhere, and it's super fun. need to deal with github auth and their api, learning about Cloudflare Workers, and extending lume as i go.

    the idea is to create a new post or note file with a request from an authed github session. not sure how generic i want to make this code – it could be of use for others. the existing "CMSes" i've seen for static pages are just too much.

  52.  — 

    My couch in Stockholm

    i've rewrote my site (using lume 💛) and made a ton of tweaks. classic neverending parental leave chores. it's built with deno, which I love even more. i'm finally free from the node/npm APIs and build systems! everything is much simpler now, and i should probably write about it in the even more classic post of "i've rewritten my blog" which usually shows up in January every year.

  53.  — 

    Summer is over, after vacation in August down on the Swedish west and south coasts. Weather was so-so, but it was nice with a change of scenery. We also spent the month of September in Florence, Italy, which was such a blast. We travelled abroad with our 10 months old daughter for the first time, and everything went quite well actually (I had expected the worst). I was so inspired by the stay in Italy, and hope I can bring some of that energy into the day-to-day life back in Sweden.

    On Monday I'll officially start my parental leave until April 2022. Scary but exciting. I'm actually looking forward to just not work for the first time in 7 years. Who knows what kind of person I'll be after this leave?

    I was inspired by the book "What I Talk About When I Talk About Running" by Haruki Murakami, so I want to start running this Autumn.

    Also, I'd like to start making my own pasta. I took a pasta making course in Florence, and it was super fun. So simple! So fresh!

  54.  — 

    Last day in the Swedish mountains, after a week of chilling and hiking. I wonder if I'd like living here for longer periods of time, or if I'd get cabin fever. I think I'd adjust, but friends and family are far away.

    Still learning programming in Rust. Still not 100% sure of what I'm doing when it comes to memory management, but the official guide and "Possible Rust" have been of huge help. Rust feels like a very "intellectual" language (sooo much language theory has gone into it!), but I'm struck every day of how friendly the documentation and 3rd party writings on the language are. I think a super good way of learning Rust would be to actually pair program with some existing Rust programmer you know, in a non-trivial project. So that you can ask about all the small things you run into, and can be unblocked and learn forever.

    I'm going to be on parental leave from October until ~April 2022. Am nervous, but looking forward. Will be a bit weird to be off work for 6 months since I started. But I have zero doubts in that I'll be able to chill in the new role of being a parent 100% of the time. I'll miss coding for work though, BUT I guess I'll need to find myself a sIdE PrOjEct like everybody else?!