Here Comes Another Summer
Let me preface this as usual by reminding everyone that I am really not comfortable writing or talking about the web.
Last year I shared a side project I had been working on, Sound of Summer, which I built on top of some metadata I’d been storing for songs in iTunes. It was very fulfilling! I built it using Ruby on Rails and deployed it to Heroku because some of the APIs I was using required a server side component and I was just sick of PHP. But because of an API upgrade, I was able to take it off of Rails and make it completely client-side. This was very liberating somehow.
I converted the sqlite database to XML to JSON and refactored my Javascript (well, jQuery) to parse and display the JSON, in addition to rewriting everything using a module pattern. Purists might feel that this is a step backwards in terms of its place on the web, because it doesn’t function without JavaScript. Maybe I’ll build a fallback one day. But here’s something for the purists: I replaced as much jQuery as I felt comfortable doing with native Javascript. This doesn’t amount to much because I feel my time would be more wisely spent applying this to a new project I have in the works, so judge not.
Historically, the benefit of jQuery was that it made targeting a variety of browsers easy. But, and not to be naive because there is still fragmentation, modern browsers are not as fussy to target with native Javascript. This is coupled with jQuery 2.0 dropping support for older versions of Internet Explorer (but like, unless I am misreading the landscape, I thought the point of jQuery was to make it easier to support browsers nobody likes). As attitudes toward the web stress performance, I fear that jQuery might fall out of favor for native methods, and knowing Javascript inside the jQuery paradigm will become one of those antiquated skills like chimney sweeping or knowing Flash.
With this revision, I’ve also integrated Grunt more deeply into my workflow. Grunt, it is my favorite tool of 2013, especially when I misspell it. It’s better than syntax highlighting. When I built Ovrture, I used it for grunticon and as a build tool to minify my js and css, but this time I also used it as a watch tool to handle Compass, JSHint and HTML validation with live reloading. I’m really insecure about my Javascript even though I shouldn’t be, and I’m glad to be using JSHint because it hardly ever tells me I’m doing anything wrong. Now I can write perfect everything.
Essentially I did this because I want to put my work up on GitHub. My Ruby isn’t very strong because I’m not a Ruby developer, and when Sound of Summer was on Rails, I felt ashamed for that to be a representation of my ability when it had been cobbled together using Rails, and carefully considered on the front-end to the best of my ability at the time. This is like my first public thing on GitHub and it’s a huge deal because I just feel so ashamed of everything all the time. This is why I’m so vague and flippant when I write about making internet and why I am unable to answer the question “What are you working on?”. It’s so easy for me to say “I’m not working on anything interesting and I’m so bad at everything I’m doing” and steer the conversation toward the subject of perpetual nervousness.
I used to think this was a Chloe Problem but apparently it’s also a Woman Problem, which I discovered over the spring when the Ada Initiative was offering free private GitHub repos to women. Apparently a lot of women are intimidated to make their work public for fear of humiliation. This sucks, but it was comforting to know that there are other women who feel so shitty about themselves for imagined reasons. I don’t know how to fix this in myself or in the community of female developers, but Sound of Summer is now on GitHub for your perusal.