Blog
Published on 03 Oct 2024
In software projects, manual processes can be a real pain point, often leading to inefficiency and frustration.
Developers quickly become eager to automate repetitive tasks to save time and reduce errors. However, what starts as a simple solution can snowball into an overly complex system, a “black box” of automation that no one truly understands or knows how to fix when it breaks.
Continue reading...
Published on 11 Mar 2024
One of the consequences of having worked in the TV industry for so many years, is that I had the opportunity to develop a TV Guide using multiple programming languages.
A TV Guide is often the most complex view component within such applications. That’s both in terms of navigation, with its multidirectionaly controls, and in terms of performance, with thousand of programs loaded asynchronously.
Continue reading...
Published on 05 Apr 2023
It is a well-known feature that every project in Git allows defining a list of files that should be ignored and not tracked. This is a common practice and is as simple as defining a file called .gitignore in the base path of your repo. The content of this file is simply the list of files or file patterns to be ignored.
Continue reading...
Published on 14 Nov 2022
This post is just a series of thoughts that I have been into lately after some days back to social networks to give it a try to Mastodon.
Continue reading...
Published on 18 Oct 2021
Have you ever experienced one of the following situations?
You are watching some video in a quiet environment, you set the volume to the lowest possible value and it is too loud, so you press the volume down button once, and now your device is muted.
On some other day, you are at a party listening to music with the volume set at 100%, you change it to 80% and you can barely notice any difference.
How can it be that a single volume level means too much in the first case, but changing it from 100% to 80% feels like nothing in the second one?
Continue reading...
Published on 01 Sep 2021
Recently, together with the release of the new Apple TV 4K, Apple released a new generation of their beloved and at the same time hated Siri Remote controller.
One of the features that Apple announced for this remote control was the possibility of scrubbing content in AVPlayerViewController, using a circular gesture similar to the classic click wheel of the first iPods.
Continue reading...
Published on 17 Aug 2021
I am really looking forward to the eventual release of the rumored Apple Glasses. I think that AR could be the next big revolution that could make redundant some of the technology that we use nowadays.
One of the use cases where I see a potential for AR technology is in the world of video playback Apps.
Continue reading...
Published on 05 Aug 2021
Due to legal restrictions, or content agreements, it is a very common use case in the TV industry having to prevent forward-seeking for certain contents.
At Zattoo, we are not an exception, and we also had to implement this playback limitation in our Apps.
Continue reading...
Published on 07 Jul 2021
CMTime is a struct representing a time value such as a timestamp or duration. CMTime is defined by CoreMedia and it is often used by AVFoundation API interfaces.
Because the interface of CMTime is horrible, and its documentation is even worse, here you have a few use cases to make it easier to work with CMTime in a daily basis.
Continue reading...
Published on 17 Jun 2021
Creating a Form with a single Toggle in SwiftUI is a simple task. You can get a pretty nice result with just a few lines of code, as you can see here below:
Continue reading...
Published on 01 Feb 2021
As documented by Apple, HTTP Live Streaming (HLS) supports the inclusion of timed metadata in ID3 format.
In order to get this in-stream timed metadata from the client, we can make use of AVPlayerItemMetadataOutputPushDelegate.
Continue reading...
Published on 20 Oct 2020
If you ever tried to use QuickTime Movie Recording to get video output from an AppleTv that does not have a connected TV, you might have discovered that it does not work.
This is a pain in the situations when you can’t have a TV with you, for example when traveling, or when you are in home office and your family wants to watch TV.
Continue reading...
Published on 19 Oct 2020
The AirPods are equipped with sensors that allow users to trigger some gestures like double-tap or automatic ear detection, to control media playback.
The behavior of each of these gestures can be configured in the Settings of the operating system among the options: Siri, Play/Pause, Next Track, Previous Track, or Off.
Continue reading...
Published on 20 Aug 2020
Even though I am one of the few persons who actually like watching series intros and never uses this button, the truth is that the ‘Skip Intro’ button introduced by Netflix a few years ago is most probably one of the most beloved features in their Apps.
Continue reading...
Published on 20 Jun 2020
My personal cheat sheet for working with Conda.
Continue reading...