On learning new things
Prior to RC, my exposure had
largely been Python and the back end. In the spirit of learning new
things, I wanted to learn other languages and the front end.
I curate my Twitter bookmarks
lovingly. As a project idea, I thought it would be useful to build a
web app to extend its functionality. Suppose I'm logged on to Twitter on
one browser tab, my web app in a different tab piggybacks
the existing auth to get (and later manipulate) my bookmarks.
Taking a closer look, I discovered Twitter's API doesn't have a
/bookmarks endpoint. I could use Postman to get the necessary
tokens and spoof the web request. Perhaps v1 won't be the most user
friendly of apps.
This discovery prompted me to commit to
learning "how the browser works", which alas I only got as far as a
Google search. The shiny object of the day? Compiling Rust into
WebAssembly. I've been curious about WebAssembly hearing how it makes
web apps run as fast as native apps, say at Figma. Well... I guess this still fits in the theme of 'the front end'.
Content: Design of Go
Carrying on with my practice of padding up my
blog posts with other content (and the theme of 'other languages'),
enclosed below is Rob Pike's talk on Go at the SPLASH 2012 conference
(link to video here, not as detailed but tad easier to follow).
I
had a bit of time between my previous role and RC, which I spent
looking into Go. I was fascinated to learn various tools we used in
production for Python (Bazel to avoid circular dependencies, Jenkins for
cross compiles, yapf for formatting, futurize for upgrades, mypy for
types) comes built in into Go. Having spent considerable time migrating
Python 2 to 3, gofix seems magical.