tzeejay icon




The Missing Workhorse Mac

The Missing Workhorse Mac

Processing intensive workflows are higher in demand than ever, but the Mac lineup is missing a crucial piece to help pro customers of Apple.

AVM Fritz WiFi Mesh

AVM Fritz WiFi Mesh

AVM Fritz WiFi Mesh kam unerwartet ist aber ein Segen für den deutschen Markt

Turning iOS Extensibility to 11

Turning iOS Extensibility to 11

iOS is amazing but is lacking productivity basics

Data Is A Liability

Information has been, is and will always be the most valuable currency humans will ever be able to obtain. Hundreds of years ago spies were used to obtain information about an enemy, these days having access to information others do not, could still win a war or end up turning you into a millionaire.

Information is also a liability though. Many companies harvest as much data as possible from their users, or sometimes even from their paying customers and it has become industry standard to the point where most have become numb to this dystopian reality. Including those implementing these features who should know better. In the best case companies are most likely not setup and will never be setup to process this amount of data and in the worst case the people in charge at these companies are simply too stupid to even begin processing the smallest subset of the collected information. Too stupid in the sense that they keep collecting the information regardless of it’s value to them and because they probably also do not secure it properly. Lets hope that GDPR takes care of the latter problem.

(I think what follows now has started much much earlier but recent events brought this back to light once again.)

With recent Black Lives Matter protests the “Law Enforcement Community” has had the bright idea to tap right into the mighty data harvesting machinery enabled by all major companies. Why do the dirty work of tracking people illegally, storing the information for a lot of money and making employees sign their life away only to eventually ignore that and run away to Russia when you can simply buy the data when required. It has been long known that data brokers are willing to do business with just about anybody if they’re willing to pay the prices, and by doing business with the Police I’m sure they’ll get a little sticker saying that they have personally helped greatly in fighting terrorism or helped save the kids. Tryin to find the right way to wrap this

The only way to protect yourself is by simply not collecting data in the first place. Even having relevant information, being able to process it and derive conclusions which potentially leads to changing your product does not guarantee your product getting any better. You are what you measure, just ask Apple. All the collected customer sat data Tim loves so much, anonymised with differential privacy still leads them to an increasingly turned off pro market. If they can’t get it right, what makes you think that anybody actually knows what to do with all this information.

What other people decide to do is sadly out of reach of my control but I personally protect my privacy by using Pihole at home tied to as my DNS provider, although I am not sure how much Cloudflare can be trusted either, and Guardian of course since I am working on both the app and the server infrastructure. With these in place I have recently noticed that advertisers are increasingly worse at reliably distinguishing between me and girlfriend. She has repeatedly received ads that were clearly targeted at me (stuff far out of the price range of a normal present or similar) and I have received more ads clearly not targeted at me or her at all. Seeing the mighty algorithm fail right in front of my eyes made me very happy. Ad tech and tracking algorithms have seemingly become so clever that the only way to escape them seem to be to not have information be collected at all in the first place. No data written leads to no context clues, leads to less click through, leads to less ad tech revenue which hopefully makes some of these companies cease to exist at some point.

I would encourage you to try one or both of these to protect yourself as well.


Something Is Not Always Better Than Nothing

This piece by John Gruber seems to have caught me in the right way, in the sense that it put me into a mood somewhere between angry and very annoyed. Hence this post.

I think what many of us are talking about with the recent (5-10 years?) recession of Apple’s software quality has to do with the notion of Apples “something is better than nothing” approach to software. It is a state of mind so out of touch with what Apple prides itself in I am struggling to find the right words to describe it. The mDnsresponder rewrite for example was definitely not good enough and I believe all of would preferred not getting new features in an update than having a very critical part of a modern OS become so unreliable for no good reason.

The current trends in software development is a different one though. The race to the bottom forced by the App Store has spread onto all other platforms as well, but is felt on the Mac in particular (when looking at just Apple’s platforms) due to it’s open software ecosystem. Developers couldn’t even be bothered to implement the most basic functionality every user expects, which they’d get with no effort on their end by adopting native, or native-to-the-platform technologies.

Maybe this will get better, maybe this will end up getting worse with all platforms staying in existence and all of us being even more miserable or all of this may end up in us being like CGPGrey and ranting about Youtube sunsetting features due to lack of engangement on mobile, since Youtube failed to implement the feature to begin with (I can’t find the link, his rant is legendary). Developers don’t need yet another tool to make more mediocure software from other platforms (Apple’s own or others) into even more mediocure Mac apps. They need tooling and resources that allows them to share business logic etc. across the platforms and allows them to create good user interfaces. The latter part might be SwiftUI but I am not entirely sold on it just yet. The first part is definitely not Swift though, since it has only driven us further away from reliable, well crafted software.


E-Mail Server Update

A long time ago I posted that I was going move my E-Mail server away from OS X Server (RIP old friend) to something at that point still undecided in a project that I called XAPPLEPUSHSERVICE. I really did want to turn this into a series of multiple posts about how I switched, the options I considered etc. but I just didn’t have the time with my daily work schedule and having others depend on the E-Mail server being operational. I tested two options, opted for the second one and moved to a new operating system and E-Mail server setup over night while everybody that depended on it being online was asleep.

Just like all my other projects I set the server up to be as maintenance free as possible. Months and months or even years of uptime with no required update or me logging is always the target. Everything that can be automated in a reasonable fashion is automated and as long as I don’t get a message that something burns down I consider it to be online and doing what it’s supposed to be doing for me.

In the end I opted to format the SSD of my server to Ubuntu 18.04 Desktop Edition and installed mailcow. It’s a “mailserver suite”, which is essentially just a fancy term for various docker containers chained together to become something useful. A E-Mail Server.

Everything required to not go crazy operating a E-Mail server, including a web management UI comes with it and allows me to quickly take care of administrative tasks when needed. Users can also log into SoGo (which is written in Objective-C btw, the non-Apple reimplementation of Objetive-C) to get webmail access. It has yet to give me any trouble at all, apart from my own misconfigurations and is absolutely rock solid! I think you can run this setup on essentially any VPS and get yourself a great little E-Mail server which allows you to own your E-Mail data and not have to rely on the mood of any particular VP at some big company in Silicon Valley or Seattle. I do know that there are many other providers out there, I pay for and enjoy Fastmail a lot but they are the exception in an industry filled with big companies trying to lock users in with predatory behaviors.

I have been operating five domains with this one E-Mail server without any trouble for well over a year and can only recommend it. They also offer support packages in case you ever get yourself into some real trouble and hosted setups, meaning they setup and maintain the host but you own your data which in turn also supports further development of this “mailserver suite”.

One of the main downsides that I was prepared for but haven’t yet been able to solve again is the XAPPLEPUSHSERVICE part of this setup. I really miss not getting Push Notifications for incoming E-Mails and I really do not understand why Apple is not openly documenting the interaction, after all they do have to support with it with their own iCloud E-Mail service and have granted Fastmail an exception and allow them to send Push Notifications if you’re using their service through the builtin and not through the Fastmail app that you can download from the App Store. Parts of the interaction are already documented by Apple hidden in their open source archive of OS X Server but some are not and maybe some of it has changed in iOS 11/12/13.


Apple Testflight - Same version multiple builds

TLDR: Increment the version number by one and set the build number to a lower number than what you were previously using. Maybe even to 0 to start over with builds for that particular version of your app. Example: Version 1.5 (500) -> Version 1.6 (0)

Recently I had to send a few builds of Guardian to Testflight in preparation of cool new features but I was unable to figure out how send multiple builds with different build numbers but the same version number to the service to incrementally test small changes. It lead to me burning version numbers out of frustration in between App Store releases. Obviously that looks weird, and it bothered me since Apple’s own Developer technologies Marketing page showed right at the top exactly what I was trying to achieve.

Screenshot taken from

I started searching the internet for a solution since I wasn’t able to figure it out, surely somebody had run into this misunderstanding before and posted a solution. To my surprise though I found various Stackoverflow threads explaining that the example presented by Apple as well as what I had seen from being a tester myself for friends Apps simply wasn’t possible.

Since this clearly wasn’t true, I went back to the Testflight page on Apple’s Developer website and noticed what I had previously missed. The build number was reset in their example, or rather not incremented by one. The build number stayed at 0 while the version number went from 1.6 to 1.7. I quickly exported a new build of Guardian that I had worked on all day and with the version incremented by one from 1.2.4 to 1.2.5, and the build reset from 115 to 0. Xcode archived, signed and uploaded the build just fine. To quickly test my theory I incremented the build number from 0 to 1 which Xcode archived, signed and uploaded just fine once again.

I hope this helps somebody having the same issues with Testflight. Apple’s systems can be hard to use sometimes and error message are usually not very helpful, but we shouldn’t forget that designing a system like this isn’t particularly easy either, and I wouldn’t know if I’d be any better at it.


Leaving the Cloud

For quite a long time this place on the internet that I call home had been hosted by a third party service. Netlify has treated me very well and provided me with a complete headache-less setup, given that over the last two-ish years they didn’t ask me to pay for a damn-thing. They run a solid service, with a fair system in place and I would absolutely recommend it to people who aren’t as broken about this as I am. Having said that, I still left the cloud and re-conquered a little space for myself.

But it’s 2020… who runs their own web servers anymore, let alone their own hardware? That’s a job for the cloud to take care of!
As we all know big to semi big cloud services run our internet today and I work with them on a daily basis. Nevertheless I enjoy being part of the small group of people on the internet that hasn’t been swallowed up by the cloud. Cloud services provide great connectivity even to the furthest corners on this planet and almost all guarantee 99% uptime backed by the latest generation Intel Xeon E5 CPUs or something alike (sounds familiar?). For many reasons using the cloud is the right thing to do, but doing the right thing is usually also less fun.

I am consciously giving up all amenities and have decided to serve my own website by running my own web server, on a Raspberry Pi 4 Model B, from a datacenter in Hamburg. I rent space there due to many other reasons and since I had more unused IPv4 addresses I decided to tinker a little and let me enjoy this. I run zero important services or applications from this Raspberry Pi. Everything is static HTML created with Hugo & served by Nginx, which I could move to and replicate on absolutely any other service at any given moment. It’s my own version of a almost headache-less web hosting setup. Boring, simple and reliable.
The biggest factor which enables me to do this though is N@Work’s great peering. They are a great partner even for a very small customer like me and offer direct peering with the worlds biggest internet exchange point in Frankfurt. The DE-CIX is only a couple Milliseconds away and from there my traffic quickly arrives at any destination in the world.
To test everything I asked a friend in San Francisco to open my website, without telling him why. I was told that it showed up almost instantly on his phone over a cellular connection, which made me really happy since it shows that I’m not facing any major downsides to leaving Netlify since this website is small and efficient.

On top of that how many websites can show you a photo of the server that just answered your request to send you this website?


Friends Around The World

Traveling long distances has become a commodity. A plane to the other side of our planet is leaving at least once a day from any major airport and I would recon that most middle class households could afford at least one ticket.
I was born in 1994 and I remember peoples reactions to my parents taking my sister and I onto an overseas trip to the US, when I was only around nine or ten years old. My parents are of the generation that built this world. They grew up with Germany being split into two by a huge wall. That wall separated many families and a lot of people lost their lives trying to cross it by being shot or ripped apart by land mines. All of that happened in the middle of Europe, the last time only 30 (!) years ago in 1989. In stark constrast I grew up being able to freely travel into any neighbouring country, without even thinking about bringing a passport or being stopped at a border. This is Europe at its finest and I think this part of being a European citizen is something that came as a bonus alongside the tariff free trading union and a unified currency.
Growing up with this mindset and visiting many places around Europe and northern America I always liked the idea of infinte “Fernweh”. Don’t get me wrong, I love Hamburg to death, but seeing other places and understanding the state of mind in another city, smaller of bigger, is always refreshing. It gives you perspectives and experiences you wont get in any other way.
Alongside those upsides you may even end up making new friends along the way. In my case I made friends in a couple of different places and they’re all people I can rely on and ask for a favor, even when I’m thousands of kilometers away. Nothing beats the feeling of being able to get a question answered or a recommendation from a local when you’re visiting.

I have friends who live close by and I wouldn’t want to miss them but the Internet enables me to maintain friendships with people on different continents. By doing that it enables me to maintain a different viewpoint onto the world and I think it overall improves me as a person.

Many people in different age groups have lifes like mine now, but I think I’m part of the first generation that is really able to leverage this technology in this way and growing up with it. The downsides are getting more and more obvious in recent years though, but I hope once it gets to a more maintainable state of crazy we will be able to enjoy the technology more.

It’s more than likely not to be the case but I reamin hopeful.