A Wildly Functional Digital Studio

I follow Casey Neistat. I have watched everything he’s made, and everything he continues to make. There’s one constant character in all of his work: his studio.

He has had the space for nearly 10 years now. And everything in it is outfitted exactly as he likes it. He never searches for things in his studio, he just gets them.

Hang on, this is not just a rave about Casey Neistat’s studio

I have been thinking about what the equivalent of a studio would be for a programmer. The studio is the home for all the tools that you would use in your work and life outside of work. That has got to start with a few staples: your OS, your editor, your shell, your dotfiles. Actually, the complete dotfiles repository. But is that all? Definitely not

Scripts. There are a lot of repositories on Github with the name scripts or oneliners which have a collection of a the user’s most commonly used shell scripts. Great. So, oneliners is another part of the studio. What next?

Dotfiles and oneliners have a very low time spent building them to time spent using them ratio. So, they are a really good way to spend your time. Write more and more oneliners. As many as you probably can churn out. The ideal case would be one in which any task could be accomplished using just your brain or your oneliners readme.

What about more involved contraptions? (eg: Neistat’s Overhead shooting rig) These are not the typical build-once, use-forever shell scripts. They are more involved. Sometimes, they are even complete web applications. Most of the time though, they are single-file scripts or web applications that solve an extremely personal problem. Eg: me with cutouts (I really could not let that opportunity to plug my thing go) or some other things.

~Cutouts is a way to save articles you read on the internet and want to store for later.~

Cutouts is an application that I use to store the articles that I read on the Internet alongwith the name of the author, a memorable quote from the article and tags that let me arrange the articles. There are some more bells and whistles which I added recently mainly to tell more people about it and help fill a void for them, if they had one.

Cutouts is a part of my digital studio. It’s a Rails applications that I have spent quite a bit of time on. It solves a problem for me. I don’t know if many other people have the same problem. I want to get this out there, so that if they do have this problem, then Cutouts would make their life a little bit easier.

The crucial difference a physical studio and a digital one is that the components of my digital studio need not be a part of just my studio, they can be a part of anyone’s studio.

Postscript

This is equivalent to a single shot showing all the things in a physical studio.

Component Purpose
dotfiles Install several dependencies, setup zsh’s look and feel, editor (vim), git, tmux
oneliners A list of oneliners that have proved to be useful time and again and have a tendency of being hard to find whenever the bash history disappears and these don’t appear in autosuggestions anymore
cutouts Store articles with quotes and author names. Companion firefox extension
terminal-wallet Manage my wallet from the terminal; do simple debit, credit operations; have a stash account; export to csv
cstimer_analyze_cli Analyze past times and note how fast improvements have come and if there have been any drastic jumps
cstimer txt to cstimer json More struggles with csTimer in which the import and export formats were different(??)
cli-cube-timer Measure the time it takes me to solve the Rubik’s cube; plot it over time; maintain a backup on a Github Gist (_Finally I was done with csTimer)
check PNR status Check Indian Railways PNR to see if their status has gone from Waitlisted to RAC to Confirmed
metakgp visualize visualize the contributions on Metakgp and see what user is making maximum number of edits! There’s also a CLI Companion for this. (I wonder why I thought it necessary to build a web page and a CLI)
Github repo creation calendar In a particularly heavy repository creation period, I decided that I want to use the Github API to find out how often I create repositories. NBD.
Install tmux 2.0 from source There aren’t any official sources and I didn’t want to have to figure out the dependency tree again and again
Understanding the TLS Handshake Probably one of the most useful repositories I have ever spent time on. I learnt an incredible amount reading the TLS 1.2 RFC and it actually came in handy this December! So, the time I spent on this repository was certainly the most productive 4 hours of my life!
Youtube Chronological Youtube will let you show the uploads of a channel sorted by date but you can only play them sorted reverse chronologically. When you have just found a [new channel][22], almost always, you want to play the videos chronologically. I tried to look for services online that would take a playlist and reverse them, but I couldn’t find any. So, I delved into the YouTube API. This Node.js script makes raw calls to the YouTube API. No API helper or anything.

It has been a long while since I have seen the repository pages of some of those utilities. It feels great to list out all the things that I built. Terribly great motivation.

Finally, I would love to see what constitutes your digital studio. So, if you have written a post like this before, do drop a link to that in the comments below. If you haven’t written anything like this yet, please, take an hour. Go through the list of your Github repositories and find the things that you built in the past and reminisce.

P.S. I love writing blog posts. double heart