How I Track My Blog’s Analytics with Val Town
Random morning thoughts: how many people actually visit this blog? Where do they come from? What if I could just spend a little time to build my own analytics?
I'm Orestis Papadopoulos. I work as a software developer. This is my blog, I write about software, sounds and Swift.
Random morning thoughts: how many people actually visit this blog? Where do they come from? What if I could just spend a little time to build my own analytics?
In my previous post, I have come up with a simplistic implementation of an AVAudioEffectNode with a custom render block. At that time, I assumed a fixed setup with two channels and a sample rate of 44,100 Hz. However, a reader recently reached out, asking how to adapt this for an audio effect that converts stereo input to mono output. This inspired me to modify the AVAudioEffectNode class for…
In a previous post, I covered two AVFoundation nodes that can generate sound or tap into the output of an existing node. If you experiment with them, you'll quickly realize:
Enums are often used to model states. If we want to move to the next state (in order of declaration) we have to do the switch dance:
The user’s defaults database is a key-value store that let’s you persist data across app launches. It is meant to be used to store user preferences. Using the Codeable protocol and a JSONEncoder you can very easily convert Swift types to JSON data in order to store them.
So you are making your first face beautifier© app and it’s about time to upload some images to a server. The backend person asks you to do it via a type of HTTP POST request known as multipart/form-data. Soon you come to realise that URLSession does not provide you with an out of the box URLRequest or DataTask for this specific task, despite the fact that this is a very standard way of uploading…
Apple introduced AVAudioSourceNode and AVAudioSinkNode in WWDC2019. These two new AVAudio nodes are part of the AVFoundation framework and can be used in macOS 10.15 and iOS 13 onwards.
Reading through last week's iOSDevWeekly I came across Doctest, an exciting new project that aims to make Swift documentation testable.
Two days ago, I set out to create a simple Swift library for real-time audio processing. I was aiming to provide a boilerplate-free way of processing input from an audio device/file, and generating output to a device/file, sample by sample (or frame by frame).
I can clearly recall my mother's disappointment once she realised she couldn’t listen to the radio through her new iPhone. Which made total sense to me.