Hazard's Home

A home for Hazardous thoughts

Too Cool 2 Torrent
posted -

This past Sunday I was lamenting the fact that all the music I liked was on youtube playlists and not on my phone. I finally got off my ass and went to download and convert them, dutifully uploading them to Google Play Music and editing the meta-data one by one so that the songs could be organized by artist and album.

Bleh.

I decided to make my own tool to do this faster and guesstimated I could bang it out in a day. Four days later, here we are. #planningfallacy

The Project

It was a excuse to dip my toes into electron development. The allure of "make cross-platform apps with ease!" pulls at me, and even if I ditch electron, there were other things learned on this adventure. I got more experience with mitrhil.js. I feel like I've bumped into the limitations of the naive approach enough for learning actual best practices to now be sticky.

"muuuusic!"

I decided to quit before making a nice executable for it, but it's fully functional and I've now got three more great albums on my phone because of it. I'm very happy!

Notes on the process

Cycles

"took a job in the city, working for the man every night and day…"

I did this entire project on work cycles and enjoyed it. Quick recap of work habits over time. Since three years ago I've time blocked all serious work I do. This has looked like putting all time pieces out of view, putting a 1, 2, 3, 4 hour timer on, and working until time (boring breaks allowed as desired). That's been great, and I was generally decided on whole block works chunks instead of cycle/pomodoro style working.

This past semester, I've gotten more concerned with my eyesight getting worse and started doing a 20-20-20 (every 20 minutes look 20ft+ into the distance for 20+ seconds) habit. If I'm looking out the window every 20 minutes, I might as well just turn these into pomodoros.

This summer, I've gone back to cycles and really dig it. I might write more about it later, so all I'll say right now is that stretching and exercising every cycle break is probably gonna help me live longer, and re-centering every 30 min helps with not getting stuck as much.

I also love getting to see the work cycles chart for this entire project. Pretty colors. Me likey.

"Actually Learn"

I sequenced work by building some back-end functionality and then making the minimal UI skeleton that would let me test and interact with it. Today and yesterdays were the days of "now make it look nice".

Ha! No one actually learns HTML and CSS, that shits dumb. Just copy and paste whatever you need

- Me two years ago

I've already worked on one project this summer that has made me rethink that position. This was just another step along that path. I based all of my design off of this example on codepen. I was tempted at first to just copy it over and "finish this up quick" but luckily I was able to notice the lunacy of sacrificing the opportunity to learn in exchange for completion speed when you've got no deadlines and it's a for-fun project. Dodged a bullet there.

I got a ton out of going through the CSS line by line understanding what everything was doing. I don't normally enjoy UI work, but I really got a kick out of figuring out how this all works.

Bugs and good design

Hey, you know what can make fixing a bug really hard? When it's actually 6 bugs because you did a shitty job of designing and building a thing.

There was only once where I was dealing with bugs for multiple cycles, and that was due to having tossed together some code without paying attention to details. The few times I stopped to do a process interaction diagram or a pencil and paper UI mock up, it payed dividends. Never underestimate the power of planning before you act.

oops, forgot that my handwriting is encrypted, have fun

The brains working memory is limited, use external sources when possible.

Going Forwards

I'm really intent on getting good at making my own tools. A youtube downloader is something that I could easily have found somewhere, but this was good practice at rolling my own gear. Web skills seem super useful for that, and web skills being used to make desktop apps (electron) is also a win, so I'm glad to be trekking along this route. Who knows, next tool I make I might even correctly estimate how long it will take :)

Tsuyoku Naritai!