December 12, 2022

On intentionality

I’m thinking a lot about intentionality lately.

Most people are drifting. Passively cruising along a path defined by others. Not even some specified “others” with a plan, playing us like puppeteers. “Others” as in an amalgam of randos with ill-conceived opinions and products.

It’s just so delightfully easy to ditch responsibility and with it many forms of constructive friction.

True intentionality is perhaps the quality I have come to value most in others. People who thoroughly think about the what, why and how of what they spend their severely limited lifetime with.

Embracing constructive friction, not accepting what feels right but isn’t, may be one of the most essential and attractive qualities of a person.

It certainly is the quality I try to live by.

December 11, 2022

“How fucking slick is that?!”

Some of you might have guessed it: I’m a big fan of the internet. The simple fact that I could work through this amazing seven(!) hour video about SwiftUI and Firebase by Stephan Dowless for free is still mind-blowing to me. It is free knowledge. Potentially life-changing information just lying around on the internet and all you have to do is consume it.

Stephan is an incredibly enthusiastic instructor who made the time fly by. Even though he obviously doesn’t do this for the first time, he still bursts out stuff like “How fucking slick is that!?” all the time. I felt thoroughly entertained. This is easily one of the most helpful courses I’ve worked through.

I know now that Firebase is the way to go for what I’m currently looking for. The course went through the whole process of building a low-tech Twitter clone. From signing up to fetching data from Firebase to storing images and writing and liking tweets. Not only do I now understand the basics of Firebase (and how to work with databases in general), I also got a better insight into how slightly more complex apps are supposed to be structured. MVVM is easier to understand when applied to a project with a certain complexity. I didn’t get it when other people tried to explain it with simpler examples.

This was very well invested time and I feel like I’m ready to start my next project. Something with databases! On the internet! How exciting!

My and their life would be better if I could explain static electricity to my cats.

December 9, 2022

Baby’s first steps in Firebase

Today I worked through this tutorial and came away with the conclusion that Firebase seems to be exactly what I was looking for. The Firebase SDK seems to be straight-forward enough to work well with my current skillset.

This code here creates a user that can be authenticated by email and password. Just like that. I don’t have the slightest idea what’s happening behind the scenes but to be honest: At this point I don’t really care. I’m just happy that it works.

func register() {
    Auth.auth().createUser(withEmail: email, password: password) { result, error in
        if error != nil {
            print(error!.localizedDescription)
        }
    }
}

After working through the tutorial I even managed to implement a couple of experimental test functions myself. I’m off to a good start and managed to recreate my motivation by approaching the problem from a different angle.

Nice. I’m hyped.

December 8, 2022

DoubtKit

After spending a couple hours with tutorials and courses about CloudKit, I’m a little deflated. What I found was either outdated or at least not current and while I’m also trying to get an understanding of previous solutions, I want to concentrate on learning what’s going to be the standard of the future.

I kind of hit a wall with CloudKit there. The one very good course I worked through uses Combine but CloudKit offers methods for Swift’s “new” async/await as well. My knowledge of Combine is now larger than ever but I don’t want to go ahead and start building apps with something I feel like will be looked at as outdated code very soon.

There’s hope though. Because I don’t have anyone to pester with questions, I have to rely on good online content. That’s why I’m going to have a look at Firebase. A user friendly SDK and a shitton of noob friendly tutorials might be a better experience for my database needs for now.

Stay tuned for more database related adventures.

If you’re into social networks that don’t want you to pay $8 each month to consume content by far-right idiots, you can now follow this blog on Mastodon. This account will toot out every entry as soon as I click “Publish”.

December 4, 2022

Playing with APIs

After working through a whole bunch of very insightful videos about concurrency in Swift and SwiftUI I needed something to test my newfound knowledge with. Listening to somebody explain something is always easier than implementing the knowledge yourself.

Here’s the result of part of my weekend. An app that doesn’t do much but what it does happens as asynchronously as possible. It’s hooked up to the Google Books API which means it downloads data from some server somewhere! How cool is that?! I even got to use Combine to debounce the search field.

December 3, 2022

My 2022 in music

Say what you want about Spotify but Spotify Wrapped is a fantastic invention and I thought it might be nice to highlight a couple of… highlights of my year in music. Sorry if you’re not using Spotify and these links are useless to you but you brought this problem onto yourself, to be honest.

  • First things first: Just like with every single previous installation of Spotify’s Wrapped playlist, New Slang from The Shins found its place on 2022’s playlist as well. Because of course.
  • A newcomer to my daily rotation and to releasing music in general is Arny Margret. Her music fits my taste so perfectly that she ended up being my most listened to artist this year. I discovered her music in August. That’s less than half a year ago. What a meteoric rise! Cold Aired Breeze, Akureyri and Intertwined are some of the most beautiful songs I’ve ever heard.
  • Anna Ash, one of my all time favourite artists, released a new album this year. Only Seasonal made it onto my top list though.
Andrew Bird, Metropol Berlin, 2022
  • The list of artists for whom I would take on the awful experience of a concert is short. Andrew Bird is on that list though and not only did he release a new album this year, he also toured and played a concert in Berlin. The album is literal perfection. Seriously. Every single song is a masterpiece. Try Underlands, Fixed Positions or Make a Picture if you don’t trust me. Delete my number and never contact me again if you listened to them, but didn’t like what you heard.
  • Everything else was the expected medley of everything from previous years.
  • Here’s my Marcel’s Top Songs 2022 playlist if you want to listen to perfection. You’re welcome.
December 3, 2022

Bread Pit

There’s something about jokes that result in slight confusion that does it for me. They’re not very popular, trust me, I know, I’ve been around people and created my fair share of awkward silences. But still, since I decided to embrace the awkwardness my life got a little more fun.

Marketing people calling their little advertisements creatives might be the biggest euphemism of all.

December 2, 2022

Five years of daily marcelfies

Today marks exactly five years of daily Close-Up pictures of my face. Close-Up is a little app without flashy features that allows you to simply snap a selfie each day and stitch them into movies highlighting your your physical deterioration.

One of the best aspects of an app like this: The selfies don’t have to be good pictures. A rare case of quantity above quality.

It might sound stupid but I’m a bit proud of this. Doing something daily for five years, even if it’s just taking 5 seconds to snap a quick selfie, is not as easy as it sounds. There’s a metaphor in here somewhere for how incremental work creates exponential results.

December 1, 2022

A personal question

Comics were my primary creative outlet for quite some time. I posted them on Instagram then. Since we’re collectively learning – once again – that data silos aren’t something to be a part of, I decided to repost them on this blog. Brace for an overwhelming urge to roll your eyes.

November 28, 2022

Your favorite bar is under new management

You may be a creator who wants to stay on Twitter to reach your audience, but the audience there will inevitably tilt toward the anti-woke, All Lives Matter, gender critical, Just Asking Questions crowd. If they’re your audience, congratulations, I guess. If they’re not, you have a problem.

[…]

But your favorite bar is under new management, and whether you want to admit it or not, you know damn well what kind of bar they’re making it into. You need to think long and hard about whether you’re okay with that.

Twitter, failure modes, and your favorite bar

That’s exactly how I feel. Even though I could argue that Twitter won’t go away any time soon and I’ll use it as soon as it’s around, I’d still accept and support its new direction by visiting. That makes me feel gross however and I’ve never been very good at blocking things out.

November 27, 2022

All your databases are belong to us

Currently I’m spending most of my programming time learning new things instead of actually building something. My next project should include technology I don’t know anything about yet. I’d love for it to be something that’s online.

Building little apps that store data on your device is cute and everything but for me the magic lies in stuff being on the internet. Unfortunately I don’t yet know anything about how databases work.

character design, happy programmer sitting in front of computer, 8k, octane render, extreme detail, cinematic lighting –v 4 – Midjourney

I stumbled upon Swiftful Thinking, a YouTube channel explaining Swift and SwiftUI topics in a way that resonates very well with how I learn. His videos taught me that CloudKit is exactly what I was looking for. Who would have thought that that’s a database solution from Apple that I’m already paying for? I know how to connect an app to CloudKit, how to put data in a database and how to fetch it again. I even know what CRUD stands for. Look at me, knowing my acronyms.

Continue reading “All your databases are belong to us”

There’s an unwritten rule that if you work long enough on complicated enough digital product design problems, somebody will come along and think that color coding would be a great solution. It basically never is. Color coding is a sign of design weakness.

November 24, 2022

My definition of success

One thing I wanted to be very clear about when I embarked on my journey to finally learn how to code was my definition of success. Not knowing how a good outcome would look like only results in disappointment and loss of motivation. Great ambitions are worthless if you don’t manage to keep the ball rolling.

My definition of success is of such small scale that the only way for me to fail is to stop working.

Here it is:

  1. The project must launch
  2. One person’s life must be improved
  3. One Euro must be made

Because I believe in my ability to bring my projects to a point where these three aspects are true, my motivation stays strong and I know that success (defined by myself, not by external sources) is around the corner. Stoins launched, improved the lives of a couple of friends and made a couple of Euros. I consider this a huge success. For now. I’ll update my definition of success when the context changes.

Aiming too high creates brittle motivation.

I added a “Follow” button to the sidebar. Clicking it brings you to a new page explaining how to follow websites without social media. Everything old is new again. RSS is back, baby!

November 22, 2022

The app status of Stoins has changed to Pending Developer Release

Would you look at that. Henlo got rejected a bunch of times and it seems I learned a few things in the process. Very unintuitive things like “Even though there’s a dedicated input field to link to the privacy policy you better put the same link in the description of the app or you might get rejected”.

Stoins will be released tomorrow!

November 22, 2022

Good Friction

This is a great thread on how Duolingo added a step to their onboarding experience that did nothing but put the user in the right mindset to learn. They let people pick a streak goal to challenge themselves. No matter if users picked 3 or 30 days, the app didn’t actually save the data nor did it do anything with the selection.

Apparently this still resulted in a “huge” retention win. Stuff like this is my favourite kind of A/B testing. It’s not just a different shade of green that performs slightly better but a whole layer of human psychology that got revealed and used to create a win/win situation for user and company.

By the way: I did not expect much from it, but Atomic Habits is a good read. It’s not mindblowing in any way but also not as shallow as I expected.