Jekyll 2026-03-02T23:51:41+01:00 https://technocidal.com/feed.xml Technocidal Technocidal is created by me, Johannes Ebeling. I'm a father, software engineer and aspiring coffee snob. Johannes Ebeling Libratone - My favorite Speakers 2025-11-22T00:00:00+01:00 2025-11-22T00:00:00+01:00 https://technocidal.com/2025/11/22/libratone-black-friday If you’re in the market for a high-quality Bluetooth/WiFi speaker, Libratone has started its Black Friday sale. We own the Libratone Zipp and Zipp Mini 2 and are really happy with them. They are fully AirPlay-compatible, robust, and, at least in my opinion, look quite good. The newer models have an optional Alexa integration that is turned off by default.

Plus, Libratone is a European company 🇪🇺.

https://libratone.shop/pages/black-friday-2025

]]>
Johannes Ebeling
Repost - Turning a Decommissioned iPhone into a UniFi Protect Camera 2025-08-16T00:00:00+02:00 2025-08-16T00:00:00+02:00 https://technocidal.com/2025/08/16/repost-iphone-unifi-protect I finally have a use for the many old iPhones in my closet that don’t make the cut as webcams anymore.

Casey Liss - Turning a Decommissioned iPhone into a UniFi Protect Camera

]]>
Johannes Ebeling
App Defaults 2023-12-07T00:00:00+01:00 2024-05-16T00:00:00+02:00 https://technocidal.com/2023/12/07/app-defaults Inspired by Hemispheric Views 097 - Duel of the Defaults! and this post by Robb Knight I wanted to list all the apps I use sorted into the various categories as defined by Andrew:

📨 Mail Client

Mail.app

📮 Mail Server

Fastmail - This is my referral link

📝 Notes

Craft

✅ To-Do

Craft

📷 iPhone Photo Shooting

🟦 Photo Management

Photos.app

📆 Calendar

Calendar.app

📁 Cloud File Storage

iCloud Drive

🌐 Browser

Safari.app

💬 Chat

🔖 Bookmarks / Read It Later

📜 Word Processing

Craft

📈 Spreadsheets

Numbers.app

📊 Presentations

Keynote.app

🛒 Shopping Lists

Bring!

🍴 Meal Planning

Paprika

💰 Budgeting and Personal Finance

MoneyMoney

📰 News

Mastodon

🎵 Music

Music.app

🎤 Podcasts

Overcast

🔐 Password Management

1Password

]]>
Johannes Ebeling
Networking without Apple 2023-10-29T00:00:00+02:00 2023-10-29T00:00:00+02:00 https://technocidal.com/2023/10/29/networking-without-apple About a year ago, I took advantage of a fantastic deal on Amazon and purchased a new router. I had been planning to revamp my home network for some time. Our Wi-Fi speed and coverage were never satisfactory, and there were several dead spots throughout our apartment.

Up until that point, we had been using an AirPort Extreme A1521, the last model Apple produced in the Extreme line. Overall, I was quite happy with it. It was a well-equipped router with Gigabit LAN/WAN and the ability to attach a hard drive. It also had an aesthetically pleasing design that I didn’t mind displaying in the open. One of the most appealing features of Apple AirPort, as well as AirPort Time Capsule, was the ability to use them as targets for Time Machine backups without needing a separate Mac or an external drive. At the peak of my Apple networking journey, my home network consisted of at least one AirPort Extreme and multiple AirPort Express acting as repeaters and AirPlay targets for speakers throughout my apartment. This setup allowed me to run Time Machine backups for both my private and work MacBook, as well as stream media to my Apple TV using the same hard drive.

However, as time went on, these devices grew old, and there were no replacements in sight. The software started to deteriorate slowly but surely. The AirPort configuration tool looked outdated on modern operating systems, as it hadn’t received updates in a long time. I experienced multiple network crashes, and Time Machine backups would unexpectedly stop without any notification. The once reliable disk-sharing feature became buggy, and copying files to or from the attached hard drive would sometimes fail altogether.

Thus, I began searching for a replacement. I ultimately settled on the Linksys Hydra Pro 6E, a Wi-Fi 6E capable router. At the time of purchase, these routers were still relatively rare, and the Linksys Hydra Pro 6E was one of the few tri-band capable options, meaning it supported broadcasting the same SSID using the 2.4GHz, 5GHz, and 6GHz bands simultaneously. This was important because most smart home devices prefer the 2.4GHz band, and it would have been inconvenient to have them on a separate SSID.

Ever since I set up the Hydra Pro 6E router, my apartment has been free from any Wi-Fi issues. It provides me with the full bandwidth of my fiber internet connection throughout my entire living space. Surprisingly, even during work calls, my connection remains stable and strong, outperforming my colleagues who work in an office where networking is managed by knowledgeable professionals.

However, it’s important to note that it is immidiately apparent that this router is not manufactured by Apple. Sadly, Apple no longer makes routers at all. The Hydra Pro 6E may not have the aggressive or “gamer” aesthetic that most other routers seem to go for, but it certainly doesn’t look as sleek as an AirPort. The Linksys Velop system is certainly visually more appealing, but it was three times more expensive than the Hydra at the time of purchase, and I don’t really need the three access points that it comes with.

There are also some opportunities that Apple may have missed by not having a product in this category anymore. This became especially apparent when my partner and I were getting things ready to move out of our apartment and had to store some of our belongings. As we couldn’t take our TV with us, I decided to sell it. After selling it, I dismantled our media cabinet, which involved unplugging all the different devices, including the Apple TV. Later that evening, I realized that I couldn’t access our Homekit lights. It didn’t occur to me initially, but as our Apple TV also served as the Home Hub, I couldn’t store it away yet if I wanted to control our lights until the day of our move. Consequently, the Apple TV had to be placed in the network closet with only its power cable attached. If Apple had a modern router, it would likely function as a Home Hub as well. Perhaps Matter will eventually address this issue when more devices can act as Thread border routers. Until then, one of the most crucial aspects of my home network, HomeKit, can only be accessed by keeping an Apple TV or HomePod nearby, even if they aren’t required for their primary purposes.

]]>
Johannes Ebeling
A small photography update 2022-08-06T00:00:00+02:00 2022-08-06T00:00:00+02:00 https://technocidal.com/2022/08/06/a-small-photography-update Just posted one of my Hamburg pictures from earlier this year to Unsplash.

]]>
Johannes Ebeling
Building a home coffee setup 2022-07-25T00:00:00+02:00 2022-07-25T00:00:00+02:00 https://technocidal.com/2022/07/25/building-a-home-coffee-setup For many years now the way that I’ve been improving my coffee game was by taking a lot more care buying coffee beans as I was a bit initimidated by the sheer amount of options when it comes to fancy home coffee setups.

We already own a Melitta Caffeo CI, an AeroPress plus Porlex Grinder combo, a fairly simple drip coffee maker, a V60-style pour-over brewer and a siphone coffee maker that I got as a gift. So quite a collection of gadgets but no consistent theme and some crucial pieces are missing, e.g. an actual grinder. We use the Melitta superautomatic the most. It does a passable job at creating coffee drinks when provided with high-quality coffee beans. You really need to spend some money as any imperfections during roasting get amplified a lot.

It’s far from perfect. The brewer isn’t able to create actual espresso, it suffers from horrible retention and static issues that lead to a lot of coffee being wasted and I’ve also repaired it more times then I can count.

This lead to my wife and me getting more and more frustrated and ultimately deciding to build an actual coffee setup from scratch. Our goal is to integrate it seamlessly into our existing kitchen using the Decent coffee cart concept as our main point of inspiration.

We’re still in the early stages of planning, but we indent to finish the overall project by the end of the year.

You can visit the Craft project page to follow our progress.

]]>
Johannes Ebeling
SwiftUI - Displaying Web Content 2022-05-01T00:00:00+02:00 2022-05-01T00:00:00+02:00 https://technocidal.com/2022/05/01/swiftui-displaying-web-content SwiftUI was first released almost 3 years ago but it’s still lacking some pretty fundamental functionality. I’m partial to the issue that you can’t change the background color of list items in a list-style Picker or any layout specifics of that component to be honest. Admittedly this is a minor annoyance when you realise that there is no SwiftUI equivalent for WKWebView. Luckily the implementation of a simple UIKit wrapper is straight forward.

Update

Although this method works great for opening links to external content inside an app I’d highly discourage you from using it for that purpose. Due to the excellent research by Felix Krause it became apparent that this is misused by a lot of companies to track users, attribute ads or personalize content. Developers should take this as a hint to switch to SFSafariViewController or open Safari outright. Felix goes into a lot more details so I highly encourage you to check out his work.

It’s still completely fine to use this to show web content like HTML responses from your own servers, a Markdown preview screen for an editor or maybe a specific piece of UI was just easier to build using web technologies.

Implementation

To get things started open a new file and import WebKit. We need this to have access to WKWebView which is Apples replacement for UIWebView.

import WebKit

Create a new struct called WebView which should conform to UIViewRepresentable.

import WebKit

struct WebView: UIViewRepresentable {
...
}

Keeping with Apples naming conventions for SwiftUI it should just be called Web but that seemed a bit odd to me. It also confused me when I realised that Apple did exactly that when they called the SwiftUI equivalent for MKMapView just Map.

Add a property called url. You can define this with String or URL as its type depending on where you want to implement the error handling in case the supplied URL is invalid.

import WebKit

struct WebView: UIViewRepresentable {

  let url: String
}

Now you’re ready to implement the two methods required by the UIViewRepresentable protocol. Let’s start with makeUIView(context:).

import WebKit

struct WebView: UIViewRepresentable {

  ...

  func makeUIView(context: Context) -> WKWebView {
      WKWebView()
  }
}

Pretty straight forward, right? Now we just need to load the supplied URL and we’re done. Continue by implementing the second required function like so.

import WebKit

struct WebView: UIViewRepresentable {

  ...

  func updateUIView(_ uiView: WKWebView, context: Context) {
      guard let url = URL(string: url) else {
          return
      }
      let request = URLRequest(url: url)
      uiView.load(request)
  }
}

This function tries to create a URL using the provided string. If it succeeds the newly created URL is passed to a URLRequest which is subsequently handed to the load(_:) function of our WKWebView instance.

That’s all there is to it. Be aware that WKWebView is not equivalent to SFSafariViewController which basically embeds Safari into your application giving users access to Password Autofill for example.

Conclusion

Wrapping WKWebView like this gives you a quick and easy way to show web content inside your application.

If you found this helpful, feel free to let me know. You can send me an E-Mail to [email protected] or find me on Mastodon @technocidal.

]]>
Johannes Ebeling
Unsplash 2022-02-14T00:00:00+01:00 2022-02-14T00:00:00+01:00 https://technocidal.com/2022/02/14/unsplash A couple of weeks ago I’ve submitted pictures I took to Unsplash for the first time. This was a weird experience for me. Photography appears to be such a widespread hobby amongst programmers, that it feels almost too cliché to admit to it publicly. Getting into cameras seems to be just what you do, when you work in technology.

While posting to social media always felt low stakes, publishing you work on a dedicated photography platform like Unsplash felt intimidating.

When choosing some of my first pictures I realised how hard it can be to not be too critical with your own work. The first album I’m going through now contains all the pictures I took during a vacation to Israel. This was one of the most interesting experiences of my whole life, so it seemed like a good choice to start there. But is there anything interesting in there? I mean, most of the “tourist street photography style” pictures mainly make sense to me and a good chunk of the album are basically pictures I took for the sake of having a picture of what I saw during the trip. They are pretty recognisable by their poor composition, contrast and obvious lack of care. I just wanted a picture to remember that when I visited Masada, an ancient Roman fortress, there was a tiny model of the whole structure that had dollhouse-like mosaic floors.

Going through the album made me realise that one motive came up again and again - Flowers.

Everyone likes pictures of flowers. You can look through the profile pictures/home screens of the older part of your family and I bet that a lot of them will have picked flowers to put there. That’s where I started. I edited and uploaded a picture of an almond tree flower. It’s a start and let’s see where this goes.

]]>
Johannes Ebeling
Hi! Nice to meet you. 2022-01-31T00:00:00+01:00 2022-01-31T00:00:00+01:00 https://technocidal.com/2022/01/31/hi!-nice-to-meet-you I’m glad you’ve stumbled upon my fifth, no sixth, maybe tenth (who keeps count…) attempt at creating a personal website/blog. I intent to upload as much stuff as possible here. Expect notes, discoveries and maybe even some occasional wisdom.

This site will mainly focus on technology and the ups and downs of working in software engineering. My intention for this site is for it to be helpful sometimes and a place of shared suffering at other times. I’ve a strong background developing for Apple platforms.

Feel free to contact me 📧.

]]>
Johannes Ebeling