What is a Minimum Viable Codec?

It’s my third week at the Recurse Center and this question has been on my mind. What is a minimum viable codec? (And what is the least amount of work I could do to successfully create a codec?) Well, what is a codec, exactly? To be totally obvious and unpack the portmanteau, it’s a coder/decoder. Coder: encodes a data stream or a signal for transmission and storage Decoder: reverses the encoding for playback or editing...
Read more

Week 3 at Recurse Center: Feelings Check-in

This week, I did a one-day round-trip to DC to teach a workshop on digital video, and the next day I came back and paired (although that term is very generous, essentially I was tutored-on-this, and I’m very grateful) on making a square wave audio tone in Rust, which also included having to think about how soundwaves are created and digital audio can be produced, at that level. Which I think I understood in theory...
Read more

Stealing snax using semicolons in Rust

Friends, colleagues, and enemies all know this about me: I love stealing snax. Stealing food from other people brings me such a true joy, which is also why if I were a Pokemon I would definitely be Munchlax, the high-energy garbage-living pre-evolved form of Snorlax and also classified as a “Big Eater” pokemon. I am pretty sure the reason why my body can’t digest gluten anymore is because a curse was put on me in...
Read more

Second week at Recurse Center

While I’m settling into the new exciting pace of being at the Recurse Center, a lot of my feelings this week have been around trying to juggle all the other things in my life outside of RC and finding a way to feel at peace with those things. Working as a freelancer means that there are always things to follow up on and continue to mentally juggle even when work is not happening (which is...
Read more

Error handling in Rust

I’ve been working my way through rustlings, which is a great great resource and I highly recommend it for getting started with Rust. I especially like it because it forces me to read chapters of the excellent Rust Programming Language book piece-by-piece and then put the chapters into practice with tiny exercises in the sandbox. This is great for me because I am very impatient, especially with myself and my own learning (seriously I listen...
Read more

Considering Rust ...for Video

This is a follow up on my last post. After playing with Rust for the first time last Saturday (thanks Casey), I did a whole bundle of reading about it the next day, Sunday. I also got some tips from Kieran O’Leary on some work that had been done in the open source media space with Rust and that sent me into a spiral and flooded my RC syllabus with links. I had originally intended...
Read more

Considering Rust

I am now in an informal Iron Blogging challenge with Janice and Marianne in my Recurse Center batch, so I must talk about technical things and personal things and opinionated things, and NOT BE AFRAID!! This is a blog post ramping up to something more technical and more opinionated. Last Saturday, I paired with Casey, who helped me build something in Rust, a language that I’ve admired from afar (and wow, I saw a talk...
Read more

First week at Recurse Center

Okay. How do I talk about this? As many people who know me (many more than who actively read this blog), the Spring 2 batch started at Recurse Center, and I am in that batch! So I am in for 12 weeks (with a one-week break in the middle) of intense learning and programming. Anyway, I summarize all of that best in my syllabus here. I think the best way to articulate my feelings so...
Read more

Lenticular film, lenticular codec

Today I explored Reto Kromer’s Lenticular codec (original code written by Joakim Reuteler in 2012, adapted and added to AMIA Open Source in 2017-2018) because it is available, it is open, I know the author (always helps), it is written in C, and I know about lenticular film. Quick crash course in lenticular film: It was a film processing format used around the early 1930s to produce simple color film (tints things green and red)....
Read more

Exploring codecs and data streams

ffmpeg -codecs | grep "things I have heard of" Guide to codecs when presented by FFmpeg: Codecs: D..... = Decoding supported .E.... = Encoding supported ..V... = Video codec ..A... = Audio codec ..S... = Subtitle codec ...I.. = Intra frame-only codec ....L. = Lossy compression .....S = Lossless compression ------- Types of uncompressed data supported by FFmpeg (at least): D.VI.S 012v Uncompressed 4:2:2 10-bit DEVI.S avui Avid Meridien Uncompressed DEVI.S ayuv Uncompressed packed MS...
Read more

All the stuff between EBML and Matroska

Update with more information at the bottom of this post and also immediately below this sentence! Moritz Bunkus, the creator of MKVToolNix, also mentioned to me on twitter that “MKVToolNix v22’s info tool now contains a hex view that even highlights different parts (EBML ID, length field…).” This is much more useful than the general-purpose text editor I used for exploration. Sometimes investigating the GUI instead of just the CLI tools is fruitful! I was...
Read more

Making a Matroska Magic Hat

Hello! This blog post is going to scratch an itch I’ve had for a long time and really don’t know what prevented me from doing this when it first occurred to me years ago because it’s very simple. The itch is storing a Matroska file inside a Matroska file. This will go into the steps I took to make the file and what you might be able to do with it later. You will need...
Read more

Wild Wild Country and the Magnetic Media Crisis

Wild Wild Country is a six-part documentary series from Netflix about the Rajneesh Movement and especially their attempt to build a utopian city in rural Oregon in the 1980s. To tell this story, the documentary relies very heavily on archival regional television footage and “home movie” footage. And, as countless people have noted, mostly look terrible. This is largely just the state of the tapes (your home movies also probably look terrible), but I did...
Read more

Ethics and Archiving the Web

A couple of months ago, I got an email asking me if I’d be on a panel at an upcoming conference held at the New Museum, “Ethics and Archiving the Web.” What an honor! And this past weekend, the conference took place. I’ve been feeling a little bit burned out by conferences over the past year or so, primarily because I felt tired of like-minded people telling each other what they should be doing, while...
Read more

Aspect ratios in Errol Morris's Wormwood

Thanks to Peter Oleksik for sending me this “tip” last week: “The aspect ratios in Wormwood are BANANAS” I was curious and have some free time, as I was spared from family events this holiday season and don’t want to leave my apartment because it’s freezing outside, so I took a look. They are, indeed, BANANAS. For context into aspect ratios, you might want to read or re-read the duo blog posts Peter and I...
Read more