<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>tzeejay.com | CJ</title>
    <link>https://www.tzeejay.com/blog/</link>
    <description>A Dry German.</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>2016-2018 Constantin Jacob</copyright>
    <lastBuildDate>Sat, 14 Mar 2026 00:00:00 +0000</lastBuildDate>
        <atom:link href="https://www.tzeejay.com/blog/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Prometheus Exporter for WattWächter Pro</title>
      <link>https://www.tzeejay.com/blog/2026/03/wattwaechter-prometheus-exporter/</link>
      <pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2026/03/wattwaechter-prometheus-exporter/</guid>
      <description>&lt;p&gt;In an another installment of nobody cares but I am having a great time over here by myself, I wrote another prometheus exporter, this time for SmartCircuits GmbH &lt;a href=&#34;https://www.wattw%c3%a4chter.de/products/wattwaechter-plus&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;WattWächter Pro&lt;/a&gt; optical energy meter readers compatible with almost all energy meters in use in Germany as well as various other places in Europe.&lt;br&gt;
Given my experiments with grid tied solar systems and the required monitoring to ensure that things actually do what they&amp;rsquo;re supposed to be doing I ended up wanting to monitor the energy consumption in other places as well which lead me to these fantastic little WattWächter Pro devices. They are affordable, easy to install, seemingly well built and their software stack appears to be complete, flexible and reliable.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Prometheus Exporter for Trucki2Sun Gateway</title>
      <link>https://www.tzeejay.com/blog/2025/10/trucki-prometheus-exporter/</link>
      <pubDate>Thu, 23 Oct 2025 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2025/10/trucki-prometheus-exporter/</guid>
      <description>&lt;p&gt;After lots of off-grid experiments over the past couple of years I finally installed a grid-tied solar system made up of a hand picked selection of components incl. a Lumentree Sun inverter feat. Trucki stick. This appears to be something mostly made for the German market but if you&amp;rsquo;re in Europe generally and run on 230V &amp;amp; 50Hz I can only recommend it so far (check your local laws blabla).&lt;br&gt;
The general idea here is that due to German laws around &lt;code&gt;Balkonkraftwerke&lt;/code&gt; and their limitations one wants to export no energy into the grid and use all of the collected energy for their own needs. In order to do that you need something that constantly monitors how much is being used and then instructs the inverter to only produce just barely less power than that. The Trucki stick attached to the inverter does one of the two jobs required. It hosts a lot of data locally that I wanted to retain for analysis of the efficacy of the system but it only comes with a service builtin that allows it to publish the data to a MQTT server/broker. I personally have no use for MQTT in my life and did not want to deal with the overhead which then also required a MQTT -&amp;gt; Prometheus bridge which is why I figured I throw some work knowledge at the problem and write my own Truck -&amp;gt; Prometheus exporter.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Linux Unable to Fork Processes</title>
      <link>https://www.tzeejay.com/blog/2025/10/linux-failed-to-fork/</link>
      <pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2025/10/linux-failed-to-fork/</guid>
      <description>&lt;p&gt;We&amp;rsquo;ve been busy at work upgrading a couple hundred hosts around the world to Ubuntu 24.04 LTS. While doing so we have had a subset of our hosts freak out and become almost entirely uncommunicative.&lt;/p&gt;
&lt;p&gt;Examples of how bad things were (and hoping that the SEO gods pick this up and lead you to victory while trying to get out of your misery)&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;maloche ~ % ssh admin@region-2
Last login: Mon Oct 13 09:50:04 2025 from 
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
/usr/bin/lesspipe: 1: Cannot fork
admin@region-2:~$ df -h
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              197M   19M  179M  10% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   15G  7.8G  6.2G  56% /
tmpfs                              982M     0  982M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          2.0G  229M  1.6G  13% /boot
tmpfs                              197M  4.0K  197M   1% /run/user/1000
admin@region-2:~$ htop
admin@region-2:~$ cat /proc/sys/kernel/pid_max
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
4194304
admin@region-2:~$ sudo apt update
FATAL -&amp;gt; Failed to fork.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The &lt;code&gt;FATAL -&amp;gt; Failed to fork.&lt;/code&gt; error message finally lead me down a path of something making sense. Clearly this was a resource issue but both RAM &amp;amp; CPU usage were fine and the disk was not out of space. This leaves file descriptors and process ids.
As it turns out for some strange reason, in our case if WireGuard was operational on the host as we started the upgrade process it would set off a process bomb that persisted across reboots.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Cups Print Server on Raspberry Pi Timeouts</title>
      <link>https://www.tzeejay.com/blog/2025/06/sane-raspberrypi-cups/</link>
      <pubDate>Mon, 16 Jun 2025 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2025/06/sane-raspberrypi-cups/</guid>
      <description>&lt;p&gt;A few months ago the HP printer my parents were using quit working due to a driver issue. It seems that it is old enough that Apple as well as Microsoft pulled some kind of automatic AirPrint driver discovery deal which rendered the thing useless. For a while they were able to still print from their phones but no desktop computer in the house felt like talking to it anymore.&lt;br&gt;
Given that I do computers, and are seemingly also stupid and refuse to learn from my mistakes, I was convinced I could help them nurse this deal along until the newly acquired ink cartridges were all used up. I did what any self-respecting nerd would do and hooked up yet another Raspberry Pi up to their network and installed the phenomenal cups printing server on it.&lt;br&gt;
I was indeed able to revitalize the printer, at least for a little bit. It kept on seemingly &amp;ldquo;disconnecting&amp;rdquo; or &amp;ldquo;timing-out&amp;rdquo; after a handful of days without any errors in any logs. I tried to fix it with all kinds of various solutions. I disabled all the power saving modes, tried to come up with all kinds of rain dances in order for my parents to help themselves. As you may already guess, none of it worked.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How To Verify and Change the Certbot Authenticator</title>
      <link>https://www.tzeejay.com/blog/2024/01/certbot-change-verification-challenge/</link>
      <pubDate>Sun, 07 Jan 2024 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2024/01/certbot-change-verification-challenge/</guid>
      <description>&lt;p&gt;I have never acquired a paid SSL certificate in my life back when it was still SSL and even during my various jobs I never had a reason to obtain a TLS certificate with money, and I may never have to. Prior to the Snowden/Wikileaks events the movement to encrypt the entire internet was already well underway by people who grasped what we were up against and I had heard rumblings about completely free TLS certificates. I can&amp;rsquo;t recall the exact order in history to be honest as I was very far removed from all of that but one of the results of all of this was the creation of &lt;a href=&#34;https://letsencrypt.org&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Let&amp;rsquo;s Encrypt&lt;/a&gt;, the &lt;a href=&#34;https://github.com/certbot/certbot&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;certbot project&lt;/a&gt; and the ACME protocol.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>E-Mail Server Update</title>
      <link>https://www.tzeejay.com/blog/2023/12/email-server-update/</link>
      <pubDate>Sun, 31 Dec 2023 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2023/12/email-server-update/</guid>
      <description>&lt;p&gt;Quite a while ago I wrote about my use of the &lt;a href=&#34;https://en.wikipedia.org/wiki/Mac_OS_X_Server&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;OSX Server&lt;/a&gt; application as I was one of the few remaining &lt;a href=&#34;https://cfenollosa.com/blog/after-self-hosting-my-email-for-twenty-three-years-i-have-thrown-in-the-towel-the-oligopoly-has-won.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;people on the internet dumb enough&lt;/a&gt; to run my own E-Mail server. Operating this service mostly for myself has taught me a lot which allows me to confidently approach certain problems while helping to develop &amp;amp; run Guardian&amp;rsquo;s many backend services today for our customers. The broken Mac mini resides on my desk to this day as a reminder of where this journey started.&lt;br&gt;
After shopping around many E-Mail server options, I ultimately landed on &lt;a href=&#34;https://mailcow.email&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Mailcow&lt;/a&gt; and I could not be happier about it! Using Docker to solve the problem of making the various components talk to each other was quite intimidating to me at first, as I was afraid about the networking aspect of it all. It turns out though that the maintainers of the project have done a phenomenal job of getting all the various pieces to talk to each other and effortlessly upgrade to newer versions. I suspect the project&amp;rsquo;s use of Docker is how it was imagined to be used by it&amp;rsquo;s creators and Mailcow&amp;rsquo;s setup has become my personal measuring stick whenever I see others trying to leverage Docker as a growth-hacking-problem-abstraction-layer.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Being A Good Citizen on the Internet</title>
      <link>https://www.tzeejay.com/blog/2023/08/being-a-good-citizen-on-the-internet/</link>
      <pubDate>Sun, 06 Aug 2023 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2023/08/being-a-good-citizen-on-the-internet/</guid>
      <description>&lt;p&gt;I must admit that I am severely impressed. Whenever I think of &lt;a href=&#34;ttps://www.backblaze.com&#34;&gt;Backblaze&lt;/a&gt; at this point I think of a size-able company, maintaining EXABYTES (that number makes no sense whatsoever) of data from individuals as well as massive corporations. They run two physical locations with lots of staff and develop their own hardware &amp;amp; software to make all of this happen while being entirely independent of the few big &amp;ldquo;cloud&amp;rdquo; providers that have cornered the market.&lt;br&gt;
This mentality is something I have always looked up to and am actively pursuing with my work at &lt;a href=&#34;https://guardianapp.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Guardian&lt;/a&gt;, which is now part of &lt;a href=&#34;https://dnsfilter.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;DNSFilter&lt;/a&gt;. If you want it to be done correctly you either resort to buying the most expensive option, which you probably can&amp;rsquo;t afford and is not guaranteed to solve your problem, or do it yourself. For a lot of problems those are the two options if you want to avoid mediocre, middle-of-the-road crap. Backblaze has mostly chosen to do the latter, which is something that I can really respect.&lt;br&gt;
Given their responsibilities and reputation I was quite impressed to see a seemingly real human being reach out to me via E-Mail, kindly asking me to update an older link on my tiny website to their B2 product. I was going to write back telling them that I would do that but that they should ensure that they have forwards setup for the old links, but as I tested that I quickly noticed that they were already way ahead of me.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Blog Series: ¿What does Tzeejay Listen To?</title>
      <link>https://www.tzeejay.com/blog/2022/11/what-does-tzeejay-listen-to/</link>
      <pubDate>Thu, 24 Nov 2022 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2022/11/what-does-tzeejay-listen-to/</guid>
      <description>&lt;p&gt;The majority of my working time is accompanied by music. Usually long running live electronic sets but I throw other stuff in there as well on the regular. The majority of it plays through Youtube, simply because Apple Music makes my blood boil in anger and Spotify is not an alternative to me for many reasons. Them seeking to completely ruin Podcasts &amp;amp; their stance on tracking and privacy are just the start of it all. I pay for Youtube Premium (yeah I know it&amp;rsquo;s rich reading this given the last sentence, but there is no alternative to Youtube that is actually being used or has relevant anything on it) since I watch a lot of car related videos at night so being able to enjoy some good music without any ads is the most obvious choice to me, even though I am not crazy about streaming everything all the time. And neither am all in on anything Google owned apart from Youtube.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>¿What does Tzeejay Listen To? Maz Live @ Warung Tour Puerto Alegre</title>
      <link>https://www.tzeejay.com/blog/2022/11/what-does-tzeejay-listen-to-maz-live/</link>
      <pubDate>Thu, 24 Nov 2022 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2022/11/what-does-tzeejay-listen-to-maz-live/</guid>
      <description>&lt;p&gt;I had actually never heard of this artist before stumbling onto this video but from the first beat it kinda took me for a ride and was perfect to work to. 2 hours might be a little long to some, but you can skip to almost any section in the video and get into the rhythm of the beats right away.&lt;/p&gt;
&lt;p&gt;There is also an interesting mix of Afro House in there at the end with (I believe) Portuguese lyrics. All around great set&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>WWDC 2022</title>
      <link>https://www.tzeejay.com/blog/2022/06/wwdc-2022/</link>
      <pubDate>Fri, 10 Jun 2022 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2022/06/wwdc-2022/</guid>
      <description>&lt;p&gt;If you have been following me on Twitter for a little longer you are aware that I am quite outspoken about things like App Store policies, Apple&amp;rsquo;s seemingly great service revenue and their interaction and treatment of developers. If things are right they should be praised and if things are wrong they should be critiqued. Nothing good is created or can exist in a vacuum without feedback.&lt;/p&gt;
&lt;p&gt;Over the past 3 years relations between developers and Apple have gone from indifferent at best to outright hostile. WWDC always moves the general sentiment to being more favorable and friendly, this year however has built on top of the very good remote WWDC we got to enjoy last year. I have not participated in digital lounges or other events due to various reasons but have heard from many that they have really enjoyed it.&lt;br&gt;
With various people that I know of, listen to Podcasts to or know personally being in person at WWDC in Cupertino has really made me wish to be able to be there as well. It filled me with an enormous amount of envy. Envy to be there and experience the energy in the &amp;ldquo;room&amp;rdquo;, envy to make new friends, envy to share ideas, envy to learn &amp;amp; envy to see existing friends.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Check PostgreSQL TLS Certificates in Pure Go</title>
      <link>https://www.tzeejay.com/blog/2022/06/golang-postgresql-check-certificates/</link>
      <pubDate>Wed, 08 Jun 2022 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2022/06/golang-postgresql-check-certificates/</guid>
      <description>&lt;p&gt;TLS certificate expirations are quite embarrassing but still happen somewhat regularly to various services of all sizes. The core system at Guardian Firewall that I maintain have had such outages as well and I was just as embarrassed. The second was not my fault but rather a bug in an automated tool that we use to obtain a Let&amp;rsquo;s Encrypt certificate for our servers, still though these are things that I should have caught and should not have happened. Not my fault does not mean not my problem.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Monodraw Licenses Giveaway</title>
      <link>https://www.tzeejay.com/blog/2021/11/monodraw-giveaway-2021/</link>
      <pubDate>Sat, 27 Nov 2021 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2021/11/monodraw-giveaway-2021/</guid>
      <description>&lt;p&gt;It may come as a surprise to some, but I am doing something good just because I can and it will make me happy to see other people happy.&lt;/p&gt;
&lt;p&gt;A little while ago the developer of the wonderful iOS Reddit client &lt;a href=&#34;https://apps.apple.com/de/app/apollo-for-reddit/id979274575&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Apollo&lt;/a&gt; &lt;a href=&#34;https://twitter.com/ChristianSelig&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Christian Selig&lt;/a&gt; and I had a &lt;a href=&#34;https://twitter.com/tzeejay/status/1451217541335027716&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;public exchange on Twitter&lt;/a&gt; about ASCII art in one of Apple&amp;rsquo;s new OSS projects. To my surprise this caught the attention of a few people. Christian &amp;amp; I talked about how fun it would be to launch a little giveaway, not to gain followers or sell anybody anything. Do something fun on the internet with strangers after two absolutely awful years just because I can. I ended up doing exactly that and got into contact with the Monodraw developer hoping I could purchase the licenses in bulk but ended up with ten free ones to give away.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Boring Tech: No-Touch Foamy Soap Dispenser</title>
      <link>https://www.tzeejay.com/blog/2021/11/automatic-foamy-soap-dispencer/</link>
      <pubDate>Wed, 24 Nov 2021 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2021/11/automatic-foamy-soap-dispencer/</guid>
      <description>&lt;p&gt;You can file this under &amp;ldquo;2021 hitting hard, man&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;The day has come that I am publishing something on my website not just about soap, but a soap dispenser. To be very honest with you though, this was a purchase initiated by my girlfriend that I am really enjoying.&lt;br&gt;
I am usually the type of person that likes and defends mechanical systems of any kind as way too many things in our lives are either electric now for absolutely no reason, or even worse want to be connected to the internet at all times (to collect &amp;amp; sell data about you). I have now been working from home for many years and very regularly wash my hands, even pre-covid hand-washing hype, and therefore made heavy use of our previous soap dispensers which can be described as &amp;ldquo;fine&amp;rdquo;. They were nothing I would write a blog post about but they also did nothing wrong.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Making Your Mac App Launch on Login (An iOS Developers Opinion)</title>
      <link>https://www.tzeejay.com/blog/2021/11/macos-launch-agents-api/</link>
      <pubDate>Thu, 18 Nov 2021 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2021/11/macos-launch-agents-api/</guid>
      <description>&lt;p&gt;I have been a Mac user for quite a while now and while I understand how some underlying technologies work because I had played with them in the past, actually writing your own Mac app gives you an entirely different point of view. Today I had quite the &amp;ldquo;you have got to be fucking with me&amp;rdquo; moment.&lt;/p&gt;
&lt;p&gt;I have tried to make Guardian Firewall for Mac, which is still in beta, launch on login/boot. The solutions I have found kept getting worse and worse and user interaction in any way seemed to not be required at all. Coming from iOS with it&amp;rsquo;s very locked down OS and requiring external user input for basically anything at this point because some developers just have to be terrible and abuse every little bit of API platform, I just couldn&amp;rsquo;t believe the state of the Mac at the moment when the solution to this problem is seemingly so obvious.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Support E-Mails are Fixed in iOS 15</title>
      <link>https://www.tzeejay.com/blog/2021/11/support-emails-fixed-in-ios-15/</link>
      <pubDate>Sun, 07 Nov 2021 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2021/11/support-emails-fixed-in-ios-15/</guid>
      <description>&lt;p&gt;Back in March I wrote about how an update to iOS 14 had completely turned our very simple support inquiry strategy &lt;a href=&#34;https://www.tzeejay.com/blog/2021/03/uiactivityviewcontroller-is-broken-for-mail/&#34;&gt;onto its head&lt;/a&gt; and I wrote about my frustrations while trying to adopt the, old at this point, iOS share sheet. It is still completely broken and impossible to pass along any kind of formatted text into certain fields in a predictable way. As far as I was able to follow the breadcrumbs with iOS 15.0.1 or iOS 15.0.2 Apple at least fixed the &lt;code&gt;mailto://&lt;/code&gt; links they had broken in iOS 14.6 to address a 0-day (I am failing to find the links now but here is the &lt;a href=&#34;https://support.apple.com/en-us/HT212528&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Security Update Disclosure&lt;/a&gt;).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Setting Up Automated E-Mail GoAccess Reports via systemd</title>
      <link>https://www.tzeejay.com/blog/2021/08/systemd-nginx-goaccess-email-report/</link>
      <pubDate>Sat, 07 Aug 2021 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2021/08/systemd-nginx-goaccess-email-report/</guid>
      <description>&lt;p&gt;Despite the, to me, obvious drawbacks of client side website analytics libraries like Google Analytics etc. people insist on including it on their website since they &amp;ldquo;need the data&amp;rdquo; or whatever and think that there is no other way to achieve that. I disagree.&lt;br&gt;
&lt;a href=&#34;https://goaccess.io&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;GoAccess&lt;/a&gt; is a great command line tool to generate web server reports directly in the terminal which lets you quickly interact with the data to answer questions you may have, but it also happens to output a, all included in a single static file, HTML report. The out of the box styling for the static HTML file is great and enables you to quickly glance at a report, or even send it to colleagues to help support their efforts. I really recommend giving it a try and I strongly recommend tearing privacy invading client side libraries out of everything you have control over. While the early 2000s of the internet were a really cool place to be, Google Analytics is one of those relics that should have died a decade ago.&lt;br&gt;
Most web server logs hold tons of interesting information sent by the visitors web browser, which can then be analysed asynchronously by a tool like GoAccess in a privacy respecting way. You will miss out of a few things but nobody is sitting in front of the Google Analytics dashboard frantically optimising their website for every possible viewport height &amp;amp; width pixel by pixel.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Developer&#39;s POV: App Store: The Schiller Cut</title>
      <link>https://www.tzeejay.com/blog/2021/06/a-developers-pov-the-schiller-cut/</link>
      <pubDate>Thu, 10 Jun 2021 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2021/06/a-developers-pov-the-schiller-cut/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I’ve been deeply involved with the Apple developer community since the 1990s. There has always been conflict between developers and Apple. Over the balance of fixing bugs versus adding features to the platforms, over the quality of documentation, over the tools, over everything. But the relationship has clearly turned for the worse during the App Store era, and the reason, I think, is money.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This excellent paragraph misses one key thing in my opinion that nobody seems to be able to put into words and I am still struggling a little bit.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>iOS&#39; Share Sheet Is Broken For E-Mail</title>
      <link>https://www.tzeejay.com/blog/2021/03/uiactivityviewcontroller-is-broken-for-mail/</link>
      <pubDate>Thu, 25 Mar 2021 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2021/03/uiactivityviewcontroller-is-broken-for-mail/</guid>
      <description>&lt;p&gt;The share sheet that we use daily in iOS was first introduced almost ten years ago, it appears though that enabling users to share basic things like formatted plain text, the one thing E-Mail is most used for, via their preferred E-Mail client is seemingly still an afterthought. It appears that either nobody is able to implement these APIs correctly or nobody is interested to do so. Variables needed to be set via undocumented KVC calls, or by prepending your text with whitespace characters. Obviously these workarounds can be found in Apple&amp;rsquo;s great developer documentation in which they clearly communicate these shortcomings&amp;hellip;. ah no wait I am just joking, actually you can find it in comments under answers to &lt;a href=&#34;https://stackoverflow.com/questions/29765806/uiactivityviewcontroller-gmail-share-subject-and-body-going-empty&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;StackOverflow questions&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fix Apple&#39;s GeoTrust APNS Cert Problem</title>
      <link>https://www.tzeejay.com/blog/2021/01/fix-geotrust-apns/</link>
      <pubDate>Sat, 13 Feb 2021 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2021/01/fix-geotrust-apns/</guid>
      <description>&lt;p&gt;Apple&amp;rsquo;s &lt;a href=&#34;https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;APNs (Apple Push Notification service)&lt;/a&gt; servers have started to act up last weekend and there was a lot of confusion about it at first. This is a rare occurrence since APNs and iMessage appear to be Apple&amp;rsquo;s only rock solid server side services while everything else appears to be regularly operated with a staff count of minus one. By started to act up I specifically mean that the certificate which the service has been using could no longer be verified by many servers after a &lt;code&gt;ca-certificates&lt;/code&gt; package update went out removing the root CA (&lt;a href=&#34;https://github.com/sideshow/apns2/issues/182#issuecomment-776299302&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;little bit of context here&lt;/a&gt;). Lots of servers have probably started to show an error message similar to this:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Recovering APFS Data</title>
      <link>https://www.tzeejay.com/blog/2020/12/recovering-apfs-data/</link>
      <pubDate>Thu, 31 Dec 2020 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2020/12/recovering-apfs-data/</guid>
      <description>&lt;p&gt;One of my usual holiday duties is to fill the role of family tech support. This year I was assigned the difficult case of recovering data off of a seemingly broken-beyond-recovery SSD. The MacBook Pro in question was close to 10 years old and I had swapped a &lt;a href=&#34;https://smile.amazon.de/Samsung-MZ-76E500B-EU-interne-schwarz/dp/B078WQT6S6/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Samsung 850 Evo SSD&lt;/a&gt; into it a few years prior. The owner mostly lives on his iPhone and does not rely on the MacBook for intensive daily work tasks. The MacBook appears to have had some kind of internal hardware fault which lead to the corruption of the filesytem.
After removing the SSD from the MacBook I tried to plug it into my Mac via SATA to USB adapter in order to run through a basic data recovery strategy but I quickly noticed that it was behaving in all kinds of unexpected ways. My Mac instantly recognised the drive itself, but was never able to activate or mount the any partition of filesystem.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Boring Tech: NOCO Boost HD GB70</title>
      <link>https://www.tzeejay.com/blog/2020/12/noco-boost-hd-gb70/</link>
      <pubDate>Sun, 13 Dec 2020 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2020/12/noco-boost-hd-gb70/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://www.tzeejay.com/images/NOCO-GB70.jpg&#34; alt=&#34;NOCO GB70&#34;&gt;
&lt;span style=&#34;font-size:14px; text-align: center; display: block; font-style: italic;&#34;&gt;Image copied from no.co&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I am just going to make a bold claim here and say that 2020 was not good for the collective health of car batteries around the world. Unless you have a really fancy car or too much money, the average car battery weights around 20 kg and is some kinds of a VRLA or &lt;a href=&#34;https://en.wikipedia.org/wiki/VRLA_battery&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Valve Regulated Lead Acid Battery&lt;/a&gt;. It&amp;rsquo;s heavy, it&amp;rsquo;s ancient tech but it&amp;rsquo;s really reliable and cheap to manufacture. Due to it being ancient tech and quite rapidly discharging itself, as compared to Lithium-Ion based chemical mixtures for example, not driving your car leads to your battery discharging itself to a point where it may damage itself while trying to provide power output. The other very obvious problem is that your car wont start. In order to get out of a potentially sticky situation I bought a battery jump pack in early February and it has come in handy various times already.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Boring Tech: HP Color Laserjet Pro M479</title>
      <link>https://www.tzeejay.com/blog/2020/12/hp-color-laserjet-pro-m479/</link>
      <pubDate>Sat, 12 Dec 2020 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2020/12/hp-color-laserjet-pro-m479/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://www.tzeejay.com/images/HP-MFP-M479dw.jpg&#34; alt=&#34;HP Color LaserJet Pro MFP M479dw&#34;&gt;
&lt;span style=&#34;font-size:14px; text-align: center; display: block; font-style: italic;&#34;&gt;Image copied from hp.com&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I do not print a lot. I do have to keep track of invoices, print them and file them but that is not my main job. My day job is to push bits and bytes around, organise releases and keep the &lt;a href=&#34;https://guardianapp.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Guardian Firewall&lt;/a&gt; Infrastructure online. So when I do end up having to print, scan or file something I want it to happen as quickly as possible. Any kind of downtime is just going to further distract me and we all know where we all eventually end up when that happens: Twitter.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Few Notes About macOS CI</title>
      <link>https://www.tzeejay.com/blog/2020/12/a-few-notes-about-macos-ci/</link>
      <pubDate>Thu, 03 Dec 2020 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2020/12/a-few-notes-about-macos-ci/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Update 2020-12-03 17:26&lt;/p&gt;
&lt;p&gt;After searching a little and with help from &lt;a href=&#34;https://twitter.com/mjmoriarity&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Matt&lt;/a&gt; I was able to find the resource that stated that Github Actions is using MacStadium. The current version was wiped of that information but thanks to the Internet Archive I was able to find the actual information written out and &lt;a href=&#34;https://web.archive.org/web/20201019094238/https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;disclosed by them&lt;/a&gt;.&lt;br&gt;
If you haven&amp;rsquo;t yet I would recommend to donate to the &lt;a href=&#34;https://archive.org/donate/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Internet Archive&lt;/a&gt;, I just sent them $25,85&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Recommended: Stratechery</title>
      <link>https://www.tzeejay.com/blog/2020/08/stratechery/</link>
      <pubDate>Mon, 17 Aug 2020 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2020/08/stratechery/</guid>
      <description>&lt;p&gt;Like many other before me a few months ago I have noticed that I was incapable of focusing on longer-ish form text of any kind. I treated it similar to how I read my Twitter timeline, which is to say I mostly cross read until my mind finds something interesting it wants to focus on. Some days are worse than others but I got to the point where I wasn&amp;rsquo;t even able to read short-ish blog posts about topics anymore that genuinely interested me. In order to combat that behavior I actively looked for more long form text to read on a regular basis and once &lt;a href=&#34;https://dithering.fm&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Dithering.fm&lt;/a&gt; was released I finally went ahead and subscribed to the &lt;a href=&#34;https://stratechery.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Stratechery&lt;/a&gt;+Dithering bundle. It seems like a lot of money at first but it really isn&amp;rsquo;t if you break it down to a weekly or monthly cost and I do not regret it one bit. I think Ben&amp;rsquo;s analysis often gives me a perspective I wouldn&amp;rsquo;t be able to get otherwise. Since I started reading I routinely disagree with his point of view but that doesn&amp;rsquo;t mean that he is wrong or that I am right, it means that he has a different point of view and the exchange of thoughts and perspectives is why I keep reading. I think it&amp;rsquo;s good for me.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Simple hook: Lightning Cables</title>
      <link>https://www.tzeejay.com/blog/2020/08/simple-hook-lightning-cable/</link>
      <pubDate>Sun, 09 Aug 2020 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2020/08/simple-hook-lightning-cable/</guid>
      <description>&lt;p&gt;Lets get this first bit out of the way: I bought a 3D printer. Yes I know which year this is, go and have your fun.&lt;/p&gt;
&lt;p&gt;This is nothing new or world moving but since I enjoy having this as a tool to solve my own dumb little problems I figured I share how I solved a particular one: I printed hooks for my lightning cables.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re an iOS developer you&amp;rsquo;re probably like me used to having more lightning cables and development phones flying around than you should. I has always bugged me to a certain degree to have these scrambled all over my desk until I found a little hook by Tesa (the glue and sticky stuff company) made to hang things with Power Strips (I think they&amp;rsquo;re called Command Strips in the US). The idea worked out well, the hook simply wasn&amp;rsquo;t big enough though for the amount of cables. With my newly acquired Prusa i3 MK3S I was now able to print this &lt;a href=&#34;https://www.prusaprinters.org/prints/35826-simple-strong-hook&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;little hook&lt;/a&gt; and stick it to the back of my iMac which works perfectly. The hooks are within reach of your hand but out of sight.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Data Is A Liability</title>
      <link>https://www.tzeejay.com/blog/2020/07/data-is-a-liability/</link>
      <pubDate>Mon, 13 Jul 2020 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2020/07/data-is-a-liability/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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&amp;rsquo;s value to them and because they probably also do not secure it properly. Lets hope that GDPR takes care of the latter problem.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Something Is Not Always Better Than Nothing</title>
      <link>https://www.tzeejay.com/blog/2020/07/something-is-not-always-better-than-nothing/</link>
      <pubDate>Sun, 12 Jul 2020 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2020/07/something-is-not-always-better-than-nothing/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://daringfireball.net/2020/07/app_store_moment_of_clarity&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;This piece&lt;/a&gt; by &lt;a href=&#34;https://twitter.com/gruber&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;John Gruber&lt;/a&gt; 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.&lt;/p&gt;
&lt;p&gt;I think what many of us are talking about with the recent (5-10 years?) recession of Apple&amp;rsquo;s software quality has to do with the notion of Apples &amp;ldquo;something is better than nothing&amp;rdquo; 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.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>E-Mail Server Update</title>
      <link>https://www.tzeejay.com/blog/2020/06/email-server-update/</link>
      <pubDate>Sun, 14 Jun 2020 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2020/06/email-server-update/</guid>
      <description>&lt;p&gt;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 &lt;a href=&#34;http://localhost:1313/blog/2018/03/project-xapplepushservice/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;XAPPLEPUSHSERVICE&lt;/a&gt;. 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&amp;rsquo;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.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Apple Testflight - Same version multiple builds</title>
      <link>https://www.tzeejay.com/blog/2020/04/apple-testflight-multiple-builds-per-version/</link>
      <pubDate>Wed, 08 Apr 2020 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2020/04/apple-testflight-multiple-builds-per-version/</guid>
      <description>&lt;p&gt;&lt;b&gt;TLDR:&lt;/b&gt; 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) -&amp;gt; Version 1.6 (0)&lt;/p&gt;
&lt;br/&gt;  
&lt;p&gt;Recently I had to send a few builds of &lt;a href=&#34;https://guardianapp.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Guardian&lt;/a&gt; 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&amp;rsquo;s own Developer technologies Marketing page showed right at the top exactly what I was trying to achieve.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Leaving the Cloud</title>
      <link>https://www.tzeejay.com/blog/2020/01/leaving-the-cloud/</link>
      <pubDate>Thu, 02 Jan 2020 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2020/01/leaving-the-cloud/</guid>
      <description>&lt;p&gt;For quite a long time this place on the internet that I call home had been hosted by a third party service. &lt;a href=&#34;https://www.netlify.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Netlify&lt;/a&gt; has treated me very well and provided me with a complete headache-less setup, given that over the last two-ish years they didn&amp;rsquo;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&amp;rsquo;t as broken about this as I am. Having said that, I still left the cloud and re-conquered a little space for myself.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Friends Around The World</title>
      <link>https://www.tzeejay.com/blog/2019/02/seeking-the-world/</link>
      <pubDate>Sun, 03 Feb 2019 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2019/02/seeking-the-world/</guid>
      <description>&lt;p&gt;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.&lt;br&gt;
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.&lt;br&gt;
Growing up with this mindset and visiting many places around Europe and northern America I always liked the idea of infinte &amp;ldquo;Fernweh&amp;rdquo;. Don&amp;rsquo;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.&lt;br&gt;
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&amp;rsquo;re all people I can rely on and ask for a favor, even when I&amp;rsquo;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&amp;rsquo;re visiting.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Keeping Myself Motivated</title>
      <link>https://www.tzeejay.com/blog/2019/01/keeping-myself-motivated/</link>
      <pubDate>Wed, 16 Jan 2019 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2019/01/keeping-myself-motivated/</guid>
      <description>&lt;p&gt;Daily routines can sometimes really get to me. Recently I&amp;rsquo;m once again feeling bored by my work or many other things in my life, even though there isn&amp;rsquo;t really anything to complain about. It&amp;rsquo;s mostly all just a processes though and set backs of any kind squash the little motivation I had left to deal with any of it. I just want to drop everything, turn around and never return.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Community Hubs: Slack vs. Discourse</title>
      <link>https://www.tzeejay.com/blog/2018/12/slack-vs-discourse/</link>
      <pubDate>Sat, 22 Dec 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/12/slack-vs-discourse/</guid>
      <description>&lt;p&gt;For the longest time I was convinced that providing a &lt;a href=&#34;https://www.discourse.org&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Discourse Forum&lt;/a&gt; is the turn key solution to communication and customer engagement problems everyone has been searching for all these years. It&amp;rsquo;s a ready to rock tool for civilised conversations around your company and the products that you offer.&lt;/p&gt;
&lt;p&gt;While working for &lt;a href=&#34;https://circleci.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;CircleCI&lt;/a&gt; I first came into contact with a Discourse Forum. My colleagues on the support team and I used it daily to communicate with customers about all kinds of things. We posted quick workarounds to issues for everyone to see or we sent out announcements about the pre installed software in our CI images just to give simple examples.&lt;br&gt;
It was great to use and had a pretty high customer adoption rate. It was a very helpful tool to us managing the at times crazy amounts of inquiries came in.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>iPhone eSim debugging</title>
      <link>https://www.tzeejay.com/blog/2018/11/esim-debugging/</link>
      <pubDate>Wed, 21 Nov 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/11/esim-debugging/</guid>
      <description>&lt;p&gt;With iOS 12.1 available to anyone the latest iPhones models (iPhone XS / Max &amp;amp; iPhone XR) are able to make use of a second sim (physical or as an eSim) and phone line.
The setup is fairly easy but I ran into the issue that something got very messed up deleting my iMessage activation and seemingly no way out.&lt;/p&gt;
&lt;p&gt;If you happen to run into these issues, it appears to result from Apple still wanting you to use a physical sim card instead of the eSim as your primary line, which is what I was doing since no US carrier supported eSim. Once I got my new iPhone XS I scanned the eSims QR code for my german contract and had it setup right away. It almost feels a bit too futuristic.
Debugging this can be very tedious but these steps worked for me&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Supporting Tapbots &amp; Indie Developer</title>
      <link>https://www.tzeejay.com/blog/2018/10/supporting-tapbots/</link>
      <pubDate>Fri, 19 Oct 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/10/supporting-tapbots/</guid>
      <description>&lt;p&gt;Yesterday &lt;a href=&#34;https://tapbots.com/tweetbot/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Tweetbot 5&lt;/a&gt; was released as a free update to every Tweetbot 4 customer. It must be a very difficult time at the moment justifying working on an application that is entirely dependent on a company so hostile to the people who made them. Twitter keeps ripping the band-aid off a bit only to stick it back on again, only to then rip it off a bit further. They have been doing this for a while now and from being a bystander to chatter about it at WWDC with people who have intel on this crisis it must be a huge mental burden on each and every developer of a third party client. I would like to help with that and I hope to convince you to do the same.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Apple Banter on Twitter</title>
      <link>https://www.tzeejay.com/blog/2018/10/apple-banter-on-twitter/</link>
      <pubDate>Fri, 19 Oct 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/10/apple-banter-on-twitter/</guid>
      <description>&lt;p&gt;Twitter has many issues and the overall used tone can be quite hostile in the Apple community on Twitter but yesterdays banter about Apple&amp;rsquo;s invites has been simply amazing!&lt;/p&gt;
&lt;p&gt;Stephen Hackett was nice enough to collect all of them on his excellent blog &lt;a href=&#34;https://512pixels.net/2018/10/apple-announces-october-30th-event/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;512pixels.com&lt;/a&gt; but the responses to some of the art just killed me.&lt;/p&gt;
&lt;p&gt;People riffed in the best way possible on the designs and I enjoyed these very much.&lt;br&gt;
Please click on the images to get to the original tweets from which I took these images. The creators deserve all the credit!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>macOS Menu Bar App Intervention</title>
      <link>https://www.tzeejay.com/blog/2018/10/menu-bar-app-intervention/</link>
      <pubDate>Tue, 09 Oct 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/10/menu-bar-app-intervention/</guid>
      <description>&lt;p&gt;Menu bars on macOS all around are a fucking mess. Every developer of little helper apps are convinced that they need to put their little icon in my status bar on my Macs even though I set the damn thing up once and may only touch it rarely after. It has completely gotten out of hand and the thing that drove me over the edge is &lt;a href=&#34;https://nightowl.kramser.xyz&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Night Owl&lt;/a&gt;. It&amp;rsquo;s a great little application that should have been part of the Dark Mode functionality on macOS Mojave in the first place and will probably get &lt;a href=&#34;https://www.howtogeek.com/297651/what-does-it-mean-when-a-company-sherlocks-an-app/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Sherlocked&lt;/a&gt; in macOS 10.15. It&amp;rsquo;s an application that triggers macOS Dark Mode at certain times throughout the day based on rules like certain hours or sunrise/sunset. This is great, but why am I forced to have this in my menu bar all the time? A way better place to put something like that is in the System Settings.app alongside all the other system wide settings.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>tmutil and macOS Mojave Application Data Protections</title>
      <link>https://www.tzeejay.com/blog/2018/10/macos-mojave-and-tmutil/</link>
      <pubDate>Fri, 05 Oct 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/10/macos-mojave-and-tmutil/</guid>
      <description>&lt;p&gt;macOS&amp;rsquo; &lt;a href=&#34;https://support.apple.com/en-us/HT201250&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Time Machine&lt;/a&gt; is a great backup tool for the average user in my opinion. It safely creates a backup of all your data and provides a simple graphical interface to setup the backup and another one to restore a backup later if needed. As great as it&amp;rsquo;s very simple graphical user interface is for the average user, it&amp;rsquo;s not helpful at all when things go wrong and you wish for a &lt;a href=&#34;http://corsairmediaservices.com/images/blog/bad-interface.jpg&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;million dials and nobs&lt;/a&gt;. Alongside the graphical interface Apple ships a great little tool called &lt;code&gt;tmutil&lt;/code&gt; to do exactly that. It allows a power user to look under the hood of Time Machine and move things around manually if needed. That is until you try to alter anything about the backups manually under Mojave. I was provided a bunch of very weird and inexplicable error messages until I ran &lt;code&gt;tmutil latestbackup&lt;/code&gt; out of frustration, which showed the following error&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Once Seemingly Great Corporate Culture</title>
      <link>https://www.tzeejay.com/blog/2018/10/a-once-seemingly-great-corporate-culture/</link>
      <pubDate>Tue, 02 Oct 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/10/a-once-seemingly-great-corporate-culture/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;ve read my tweets over the last months you will know that I&amp;rsquo;m not too keen on the trajectory that Apple has been on since Tim Cook has fully taken over as CEO. Important duties have been passed on to objectively unqualified SVPs and very little course correction has been publicly visible. I have the feeling that Apple is suffering from the same things that car makers have suffered from in the early 2000s: the companies were no longer run by enthusiasts whose sole goal was to build the best products, but rather by those in control of the money. In the case of car manufacturers the products we got were mostly bland, not really exciting and sometimes only remembered because of their seemingly obvious flaws. Of course there are products every once in a while that appear to be unaffected by these trends &lt;em&gt;cough&lt;/em&gt; &lt;em&gt;AirPods&lt;/em&gt; &lt;em&gt;cough&lt;/em&gt; but this rule generally does apply.&lt;br&gt;
It seems like pleasing investors and paying as little taxes as possible are the top priorities at the moment for Cupertino.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>macOS on AMD EPYC</title>
      <link>https://www.tzeejay.com/blog/2018/07/macos-on-amd-epyc/</link>
      <pubDate>Mon, 23 Jul 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/07/macos-on-amd-epyc/</guid>
      <description>&lt;p&gt;I think I should start out with a few disclaimers:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I work for &lt;a href=&#34;https://www.macstadium.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;MacStadium&lt;/a&gt;. My salary comes from customers paying for Mac hardware in order to build iOS apps and submitting them to the App Store. I don&amp;rsquo;t add this because I like my salary, even though I do, but rather because this pretty much violates everything hardware wise in the macOS EULA that one could violate.&lt;/li&gt;
&lt;li&gt;You shouldn&amp;rsquo;t ever use this for production builds. Apple could add checks to the binaries that you submit and one day they reject your builds.&lt;/li&gt;
&lt;li&gt;There is no support for any of this. If you screw up, you&amp;rsquo;re on your own so be aware of this.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;If you don&amp;rsquo;t endorse this why do it in the first place?&amp;rdquo; - Well given Apple&amp;rsquo;s recent stance on hardware I hope for the best but expect absolutely nothing anymore. Especially not a &lt;a href=&#34;https://www.tzeejay.com/blog/2018/04/the-missing-ci-hardware/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;replacement for the Xserve&lt;/a&gt; which we badly need. That said I think it&amp;rsquo;s reasonable for me to checkout what the enemy is capable of. How easy is this? Could this be commercially supported? To what degree? Getting an understanding of what could be gives you perspective about your current offerings.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Great, so now that we have this out of the way I can to tell you that Packet currently has a &lt;a href=&#34;https://www.packet.net/hardware/amd/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;cool promo&lt;/a&gt; going for their &lt;a href=&#34;https://www.zdnet.com/article/packet-rolls-out-amd-epyc-cpus-for-global-bare-metal-cloud/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;partnership with AMD&lt;/a&gt;. You can apply for a 250$ credit and test the &lt;a href=&#34;https://www.packet.net/bare-metal/servers/c2-medium-epyc/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;c2.medium&lt;/a&gt; featuring 24 cores (48 threads) of AMDs latest EPYC CPUs. I saw the announcement a while back in Packets newsletter and after not being able to think of something to do with 250$ of free compute I decided to try to run macOS on these machines.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>No one is born a master</title>
      <link>https://www.tzeejay.com/blog/2018/07/no-one-is-a-born-master/</link>
      <pubDate>Sun, 08 Jul 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/07/no-one-is-a-born-master/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m not a good photographer. I wouldn&amp;rsquo;t ever call myself that, but I&amp;rsquo;m starting the get the hang of it and at times &amp;amp; writing stuff down or spelling it out sometimes give one some kind of epiphany.&lt;/p&gt;
&lt;p&gt;Within a couple of weeks I first rented a &lt;a href=&#34;https://www.canon.de/cameras/eos-5d-mark-iv/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Canon 5D Mark IV&lt;/a&gt; for &lt;a href=&#34;https://developer.apple.com/wwdc/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;WWDC 2018&lt;/a&gt; and then a &lt;a href=&#34;https://www.canon.de/for_home/product_finder/cameras/digital_slr/eos_1dx_mark_ii/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Canon 1DX Mark II&lt;/a&gt;. Both cameras deliver incredible images and I really enjoyed shooting &amp;amp; interacting with both cameras. My brain works very well with Canon cameras and they allowed me to learn more about photography. I had to actively think about what I was doing.&lt;br&gt;
The thing that made me come to this realization though weren&amp;rsquo;t the cameras themselves but rather the prime lenses that I brought along and forced myself to use. When starting out with getting a bit more serious about photography prime lenses enable you to change less things at once and focus on the basics. You can take the same shot over and over again with different settings (&lt;a href=&#34;https://en.wikipedia.org/wiki/Aperture&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;aperture&lt;/a&gt;, &lt;a href=&#34;https://en.wikipedia.org/wiki/Film_speed&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;ISO&lt;/a&gt;, &lt;a href=&#34;https://en.wikipedia.org/wiki/Shutter_speed&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;shutter speed&lt;/a&gt;, etc.) or you could also take different shots with the same settings. If an image does not look good it&amp;rsquo;s your fault. Your skill directly translates into your image&amp;rsquo;s quality.
Switching one side up of the equation really gave me a good understanding of what the camera is actually doing. I was able to get a good understanding of depth of field, what the aperture stops (f/ numbers) &amp;amp; ISO values on the cameras display actually mean to me and my photos.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>AVM Fritz Mesh Probleme</title>
      <link>https://www.tzeejay.com/blog/2018/06/avm-fritz-mesh/</link>
      <pubDate>Fri, 15 Jun 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/06/avm-fritz-mesh/</guid>
      <description>&lt;p&gt;Nach wirklich langer Zeit ohne jegliche Probleme erhielt ich natürlich mitten meiner zwei wöchigen WWDC Reise in die Bay Area die Nachricht von meiner Mutter das deren WiFi nicht funktionieren würde. Dies passiert absolut immer wenn man sich wirklich gestresst am anderen Ende der Welt befindet und nie wenn man mal zwischendrin etwas Zeit hat.&lt;br&gt;
Nachdem ich also am letzten Wochenende wieder in Hamburg eingetroffen war, habe ich mich ran gesetzt und geschaut was Sache war. Nach einiger Zeit des grübelns stellte sich heraus das der in die &lt;a href=&#34;https://www.amazon.de/AVM-Router-DECT-Basis-geeignet-Deutschland/dp/B00EO777DI/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Firtz!Box 7490&lt;/a&gt; integrierte DHCP Server nicht mehr zu gebrauchen war. Einen Grund hierfür konnte ich nicht ermitteln da die wenige Menge an Logs im Gerät in keinster Weise aufschlussreich waren. Nach längerem aus und wieder anschalten mehrerer Funktionen und Geräte im Netzwerk beschloss ich neu anzufangen und ich kann dies nur wirklich jedem empfehlen der sich in der gleichen oder ähnlichen Position befindet. Es dauert wirklich lange aber es ist immer noch eine schnellere und zuverlässigere Weise das Netzwerk zu retten.&lt;br&gt;
Nach dem zurücksetzen der Fritz!Box 7490 meiner Eltern auf die Werkseinstellungen fing ich an das &lt;a href=&#34;https://avm.de/mesh/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Mesh Netzwerk&lt;/a&gt; neu aufzubauen. Zu meiner Überraschung wollte die &lt;a href=&#34;https://www.amazon.de/AVM-Repeater-Dual-WLAN-450MBit-deutschsprachige/dp/B00N80IK88/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Fritz!Repeater 1750E&lt;/a&gt; sich allerdings nicht mit dem neuen-alten Netzwerk verbinden. Nach langem kämpfen stellte sich heraus das man die Repeater auch auf die Werkseinstellungen zurück setzen muss bevor diese wieder in der Lage sind sich erneut in ein Mesh Netzwerk zu integrieren.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Web APNS and It&#39;s future</title>
      <link>https://www.tzeejay.com/blog/2018/06/push-notifications-for-mobilesafari/</link>
      <pubDate>Thu, 14 Jun 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/06/push-notifications-for-mobilesafari/</guid>
      <description>&lt;p&gt;In 2013 Apple introduced push notifications services (APNS) for Safari but so far the feature is only enabled on macOS even though the underlying code powering Safari on macOS and MobileSafari on iOS is both WebKit. I noticed this right away after watching the WWDC session video and was a little confused about it since the entire APNS infrastructure was specifically built for the release of &lt;a href=&#34;https://en.wikipedia.org/wiki/Apple_Push_Notification_Service&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;iOS 3 in 2009&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Modularity Is What We Need</title>
      <link>https://www.tzeejay.com/blog/2018/04/modularity-is-needed/</link>
      <pubDate>Thu, 26 Apr 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/04/modularity-is-needed/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://twitter.com/brentsimmons&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Brent Simmons&lt;/a&gt; post on his &lt;a href=&#34;http://inessential.com/2018/04/25/youre_practically_a_mac_developer&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;inessential.com about sharing code between iOS and macOS&lt;/a&gt; made a lot of sense to me and I&amp;rsquo;d like to double down here.&lt;/p&gt;
&lt;p&gt;Modularity goes a long way for a lot of things and writing code is not excluded from this. A little extra work upfront may allow you to branch out into platforms in the future that didn&amp;rsquo;t yet exist or you didn&amp;rsquo;t anticipate at first. A good credo to follow here is &lt;a href=&#34;https://en.wikipedia.org/wiki/Don%27t_repeat_yourself&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;&amp;ldquo;Don&amp;rsquo;t repeat yourself&amp;rdquo;&lt;/a&gt;. Writing little helper classes that do common tasks for you will pretty much work on any platform (watchOS &amp;amp; tvOS included) and will make you a better developer. Callback functions are great, cheap and once you get used to the syntax (&lt;a href=&#34;http://fuckingblocksyntax.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;fuckingblocksyntax.com&lt;/a&gt; is your friend) you&amp;rsquo;ll have modular code in no time. I would argue that anyone writing iOS apps today would be able to move and tweak their existing business and networking logic to an internal library within a couple of days.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Missing Workhorse Mac</title>
      <link>https://www.tzeejay.com/blog/2018/04/the-missing-ci-hardware/</link>
      <pubDate>Thu, 12 Apr 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/04/the-missing-ci-hardware/</guid>
      <description>&lt;p&gt;According to &lt;a href=&#34;https://en.wikipedia.org/wiki/Continuous_integration&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Wikipedia&amp;rsquo;s entry for CI&lt;/a&gt; the term was first coined in 1991, three whole years before I was even born, but only in the last couple of years have iOS developers across the board really started to adapt these processes.&lt;br&gt;
The increased popularity amongst iOS developers has created a previously unimagined market and gave big CI/CD companies like &lt;a href=&#34;https://circleci.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;CircleCI&lt;/a&gt; or &lt;a href=&#34;https://travis-ci.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;TravisCI&lt;/a&gt; incentives to add support for automated builds in macOS environments. The demand has driven third party developer tooling innovation heavily and created whole specialized infrastructure companies like &lt;a href=&#34;https://macstadium.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;MacStadium&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Project XAPPLEPUSHSERVICE</title>
      <link>https://www.tzeejay.com/blog/2018/03/project-xapplepushservice/</link>
      <pubDate>Fri, 02 Mar 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/03/project-xapplepushservice/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This is part 1 of a series documenting the migration of a macOS E-Mail server, due to Apple&amp;rsquo;s  announcement in early 2018 that macOS Server will be deprecated.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Many reading this post have probably already read about &lt;a href=&#34;https://512pixels.net/2018/01/macos-server-features-deprecated/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Apple deprecating a big part of their Server application offering&lt;/a&gt; with the next major macOS Server release. OS X Server for Snow Leopard was the first version that I ever used and it absolutely breaks my heart seeing this piece of software go after using it for all these years. macOS Server was the first true server I ever controlled, the first time I really dove into command line operations and the first time I learned the hard lesson that messing around on production servers will almost always lead to data loss.
Breaking my configuration multiple times made me seek knowledge online, lead me to chat with &lt;a href=&#34;https://twitter.com/brianstucki&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Brian Stucki&lt;/a&gt; on Twitter and ultimately allowed me to land a job at &lt;a href=&#34;https://macstadium.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;MacStadium&lt;/a&gt; working with a computing platform I truly enjoy. I only have a job today doing the things I do on a daily basis because of the legacy the Mac and it&amp;rsquo;s various server offerings of the past have built. It&amp;rsquo;s an incredibly dynamic operating system enabling the user to do great things paired with absolutely rock solid hardware.
Macs make for awesome servers and I&amp;rsquo;d be willing to get into a knife fight over this.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>AVM Fritz WiFi Mesh</title>
      <link>https://www.tzeejay.com/blog/2018/02/avm-fritz-mesh/</link>
      <pubDate>Fri, 02 Feb 2018 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2018/02/avm-fritz-mesh/</guid>
      <description>&lt;p&gt;Gegen Ende des letzten Jahres hat die berliner Firma AVM, welche für ihre Modem/Router Kombinationen bekannt sind in Deutschland (und umliegenden Ländern), einen riesen Coup gelandet: &lt;a href=&#34;https://avm.de/mesh/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;WiFi Mesh für viele bereits Jahre alten Router und Repeater&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Dank amerikanischen Firmen wie Eero ist WiFi Mesh zur Zeit in aller Munde, und das auch zurecht. Die Technologie bietet ein natürliches Interface (im Sinne das es eigentlich kein direktes Mesh Interface gibt und die Geräte alles selber steuern) und ist somit vielen anderen Lösungen für multi-AP WiFi Netzwerken weitaus überlegen. Leider ist WiFi Mesh jedoch gefühlt bis jetzt noch überhaupt nicht richtig angekommen in Deutschland. Eero lässt sich hier nicht bestellen, oder ist sehr teuer und andere Hersteller bieten nicht das an was man sich erhofft (WiFi über Ethernet zum Beispiel). Das nächste Problem hierbei ist, das viele Länder immer noch Modem und Router getrennt in verschiedenen Geräten haben, was in Deutschland quasi nicht mehr zu finden ist in der Preiskategorie eines Endverbrauchers. Somit müsste man das eingebaute WiFi am Router ausschalten und einen WiFi AP eines anderen Herstellers direkt daneben stellen, was absolut unnötigerweise Redundant ist.
AVM hat das wohl auch erkannt und hat sehr fleißig solide WiFi Mesh Funktionalität in die eigene Firmware eingebaut. Wenn man Geräte aus den letzten paar Jahren von AVM besitzt, kann man sich die &lt;a href=&#34;https://avm.de/mesh/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;WiFi Mesh Funktion&lt;/a&gt; mit einem kostenlosen Firmware update holen und sofort loslegen.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Turning iOS Extensibility to 11</title>
      <link>https://www.tzeejay.com/blog/2016/10/turning-ios-extensibility-to-11/</link>
      <pubDate>Sun, 09 Oct 2016 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2016/10/turning-ios-extensibility-to-11/</guid>
      <description>&lt;p&gt;iOS has gained tremendous features for power users in recent years in the form of Extensions in different parts of the OS amongst other things, but I have a basic frustration with everything that has been added to the OS: Everything is based on the fact that the owner of the application has to opt in. This approach is tackling the problem at the wrong end to me.&lt;/p&gt;
&lt;p&gt;This very fact makes things like using 1Password in third party apps a pain in the ass for all the involved parties, which is in some ways understandable but frustrating non the less.
Apple had repeated issues with the system falling over due to weird bugs, developers run into issues with maintaining the integration code and users are constantly frustrated that they can&amp;rsquo;t use their password manager in order to log into that hot new application everyones talking about.
Let&amp;rsquo;s be honest here for a bit, who as a designer/developer wants to see the share sheet pop up in their login view? It&amp;rsquo;s great and solves a lot of issues at once but it just isn&amp;rsquo;t purpose built and weird looking.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My backup strategy</title>
      <link>https://www.tzeejay.com/blog/2016/07/my-backup-strategy/</link>
      <pubDate>Sun, 10 Jul 2016 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2016/07/my-backup-strategy/</guid>
      <description>&lt;h3 id=&#34;the-first-iteration&#34;&gt;The first iteration&lt;/h3&gt;
&lt;p&gt;Backups are a pain in the ass. There are a billion ways to do them and even more ways in which your particular strategy can fail at any point. You might not even notice until you desperately need that one file back. Bitflips, bitrot and filesystems that need to study up on data integrity are very real things and &lt;a href=&#34;http://arstechnica.com/information-technology/2014/01/bitrot-and-atomic-cows-inside-next-gen-filesystems/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;might have awful consequences for the bits that make up the things you care about&lt;/a&gt; or can be exploited for &lt;a href=&#34;https://www.youtube.com/watch?v=9Sgaq6OYLX8&amp;amp;list=PLQE5OL3ayXaiCTvWS8CutQ8rCjlzyv-vV&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;shits &amp;rsquo;n giggels&lt;/a&gt;.&lt;br&gt;
I got introduced to this issue, like a lot of people I know by listening to the great &lt;a href=&#34;http://hypercritical.co&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;John Siracusa&lt;/a&gt; (&lt;a href=&#34;https://twitter.com/siracusa&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;@siracusa&lt;/a&gt;) explain all the reasons why I should care about this by listening to &lt;a href=&#34;http://5by5.tv/hypercritical/page/5&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Hypercritical&lt;/a&gt; episodes &lt;a href=&#34;http://5by5.tv/hypercritical/56&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;56&lt;/a&gt; and &lt;a href=&#34;http://5by5.tv/hypercritical/57&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;57&lt;/a&gt; in which he talks filesystems with &lt;a href=&#34;http://5by5.tv&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Dan Benjamin&lt;/a&gt; (&lt;a href=&#34;https://twitter.com/danbenjamin&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;@danbenjamin&lt;/a&gt;).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Podcast Confession</title>
      <link>https://www.tzeejay.com/blog/2016/07/a-podcast-confession/</link>
      <pubDate>Sun, 03 Jul 2016 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2016/07/a-podcast-confession/</guid>
      <description>&lt;p&gt;Last year I was working a jobby job instead of going to university and whilst procrastinating on getting work done I all of a sudden stumbled upon &lt;a href=&#34;http://atp.fm&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;ATP&lt;/a&gt; or also known as the Accidental Tech Podcast. Back then the very first episode I listened to was &lt;a href=&#34;https://overcast.fm/&amp;#43;CdTFFXyw&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;episode 98: Landmines, Pitfalls and Bottomless Pits&lt;/a&gt; and I fell love right away. Marco was having issues with scaling his Podcast feed crawler for &lt;a href=&#34;https://overcast.fm&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Overcast&lt;/a&gt;, which was written in PHP, and wanted to try another language. Casey talked him into Node.js since he wrote a blogging engine in Node and Marco then explained why Node.js wasn&amp;rsquo;t what he was looking for (Hint: JavaScript is terrible).&lt;br&gt;
After that episode I went back one episode in order to understand where this discussion about languages came from and then listened to a few of the following ones. I think there were only 2 more available at the time. Once I had nothing else to listen to anymore, craving more episodes from ATP got even stronger. I decided to go all the way back to &lt;a href=&#34;https://overcast.fm/&amp;#43;CdRMDbZg&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;episode 1&lt;/a&gt; and boy was everyone around me fed up with it quickly.&lt;br&gt;
The second I had a little time to spare for myself after work or sitting in a car driving home or to work I was listening to ATP. At some point my sister gave up on commuting to her internship with me and preferred to take the train just so that she wouldn&amp;rsquo;t have to listen to it anymore. I remember vividly seeing a newly released episode and started listening to it immediately and once it finished I then jumped back to something like &lt;a href=&#34;https://overcast.fm/&amp;#43;CdQEorpw&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;episode 61&lt;/a&gt; and continued my journey through the archives.
Around that time there were only so many episodes around and downloading it was annoying with Apples Podcast app. I had witnessed the launch of Overcast a couple weeks prior but looked at it on the App Store and decided that it wasn&amp;rsquo;t a fit for me. The built-in Podcasts app was good enough for me. Once I was running into more and more issues though I decided to finally throw money at my problem, downloaded Overcast and immediately bought the In App Purchase to unlock Smart Speed and Voice Boost. The sync engine was way better and I liked that I had heard Marco talk about &lt;a href=&#34;https://overcast.fm/&amp;#43;CdSaip4g&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;launching Overcast on ATP&lt;/a&gt;.&lt;br&gt;
It was only natural to buy it since I was basically brainwashed a little by hearing about it from time to time on ATP. Only a few weeks after I discovered ATP, had bought Overcast for my iPhone, transferred all my podcast subscriptions into it and then finishing onehundredandthree episodes of ATP in one go I hit a wall:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>WWDC 2016</title>
      <link>https://www.tzeejay.com/blog/2016/06/wwdc-2016/</link>
      <pubDate>Fri, 24 Jun 2016 00:00:00 +0000</pubDate>
      <author></author>
      <guid>https://www.tzeejay.com/blog/2016/06/wwdc-2016/</guid>
      <description>&lt;p&gt;When the announcement of WWDC 2016 was &lt;a href=&#34;http://9to5mac.com/2016/04/18/siri-announces-wwdc-2016-will-be-held-june-13th-through-june-17th-in-san-francisco/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;intentionally or unintenionally revealed&lt;/a&gt; I knew that 2016 would be the year that I&amp;rsquo;d go into debt if I have to in order to fly to San Francisco.&lt;br&gt;
Unfortunately though I was not amongst the chosen ones who were granted to hand Apple 1600$, but that didn&amp;rsquo;t stop my excitement the slightest bit. I was determined to squeeze into cattle class for 14 hours in order to fly to San Francisco. Right away I hit up the two and a half people I &amp;ldquo;knew&amp;rdquo; on Twitter hoping that someone would be willing to meetup. In order to make it out to Cupertino to Infinte Loop 1 and the Google Plex in Mountain View I had to arrive well before anyone else would since the actual WWDC week is very hectic all around. There are meetups and events happening around the clock, even if you don&amp;rsquo;t attend the actual conference put up by Apple.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>