I have programming ADD. I’ve documented it in places before. Ya know, blogs that no longer exist because I have ADD so I stopped using them. And at this point, I have no idea where the content from them is anymore.
This round of ADD I think has set me on the path that will last awhile though.
the before
- Ruby
- Opal
- Atom (with Vim keybindings of course. Side note: I don’t know who t9md is but so many of the plugins he’s built for Atom became things that I used on a daily basis)
the after
- Elixir
- Elm
- Visual Studio Code (still with my Vim keybindings)
- Ghost for this blog (this will be the one I finally update regularly! yeah)
It’s hard to hate my tech ADD since it has led me to things like Ruby that I otherwise wouldn’t have tried had I been content to stick with the same toolset forever (once upon a time, it was even messy PHP).
But it’s also hella frustrating because I spend a large time just spinning my wheels, having zero clue what I’m doing and getting nothing accomplished. And these days, I measure my developer happiness by how many things I can “ship” I guess. Me from way back was content to learn stuff just to learn it. Me from now just wants instant knowledge so I can build what I want to build and then go fly a kite (literally or idiomatically).
the spark of ADD
It was a random freaking youtube video. Specifically, youtube recommended Kevin Yank’s talk on Developer Happiness on the Front End with Elm (ya know, cause I’m a nerd and watch conference talks on youtube). And it got me looking at Elm again (I think the first time I heard of it, I barely even gave it a second glance).
And starting to seriously consider Elm led to “hey, I need a backend language to match too!”. I had plans to pursue both Elixir and Haskell, but Elixir quickly took the lead.
Based on my being a nerd and looking up my internet history, the whole thing started May 27th when I stumbled on the Kevin Yank video. Though I pursued elm first, I abandoned the laundry weather idea I was working on to switch to Elixir (ADD, hello!). It wasn’t until July 12th that I finally released something that actually used Elixir, specifically Severe Weather Outlook’s Watches page, where there’s an Elixir scraper that’s dumping the watch data to a format that can be used by SWO (currently powered by Middleman).
I had debated on trying to do the weather watches page in Elm, but thought that was too much to take on so soon. I’ve learned that I’m someone who needs to ship code regularly when working on something. Otherwise, I go a bit insane. So I defaulted to the Middleman tools I knew and loved instead.
Next, I got most of the way done with scraping Canada’s weather alerts but ended up having a timezone issue that was enough to derail me for the time being. I know exactly where the code is going to be used. I have plans to build a North American severe weather alerts thing combining data from the US, Canada, and Mexico. Why? Because!
And at some point, I finally started working on Elm again. And specifically Tertremo has been on my list for-freaking-ever to rebuild. I have many failed attempts at starting a Rails project for it (“many” because I’d forget how far I had gotten, so I’d just restart from scratch when I’d come back to it rather than trying to figure out what I had done already (which wouldn’t have been much anyway)).
And as of minutes before the month’s end, Tertremo the earthquake tracker now exists. In Elm. Technically, it’s actually powered by Elixir/Phoenix, but I’m not using any of the dynamic features of that yet.
Oh, but good lord did I have so much pain trying to deploy the site. Like, “oh hey, I think I’m finally at a place where I’m comfortable with this being version 1, so let’s deploy!” Five hours later and many eff bombs..
I’d be rich right now if I had a swear jar from the deploy. It was just one thing after another. And I really had it in my mind that I wanted to launch this thing before month’s end, and I was running out of time. It’s kind of all a blur now, but it was a bunch of different issues:
- where do I deploy? gigalixir? heroku? my own VPS? (I got halfway into going with gigalixir before discovering that you get one free app per account (as opposed to the bucket ton I’ve messed with on heroku over the years), so why even bother learning their system if I only get to do it once? I ended up finally getting it to work on heroku, but I’ll move it to a VPS at some point in the future
- phoenix 1.3.0 had come out since I started the project and my site was using something from the RC version that they removed in the final release
- sass files wouldn’t build (short story, needed a ruby build pack and that build pack had to be run first, otherwise sass wouldn’t be available when brunch would try to compile the assets)
- uglify was freaking on my ES6 JS code which led to me futzing with things trying to get babel to convert my ES6 code and then having to work around the fact that I no longer had global variables
- elm-make wasn’t available (add elm as dependency to the brunch project)
I think that’s the list. But it was just such a massive cluster fuck of one thing after another. I was thinking deploying would be a hassle free 30-60 minute project. But nooooooo.
But short story, the new Tertremo exists. I’m content. I’m so content that I don’t even care that I left the elm debugger enabled in production (see screenshot).
I’ve got big plans and the old middleman build of it just wasn’t going to cut it for what I’d ultimately like to do with it. Viva la future.
and finally, a text editor
I played with Visual Studio Code sometime before. I was already using Atom at that point. Honestly, I don’t remember what it was I didn’t like about VSCode. Maybe the Vim support wasn’t as mature. Maybe it was just that there wasn’t anything compelling to get me to switch.
But I went to a tech meetup, and everyone there was using it. So you know, see bridge and jump off it, or some metaphor of that sort.
So in addition to losing time to learning two new programming languages, I lost time due to switching my editor. Of course, that lost time was only an evening as I dug around looking for way to get my keys setup how I like (like binding ctrl+J and ctrl+K to up and down on menus so I don’t have to use the arrow keys).
It’s still not quite as good as all of the things I had configured in Atom, but I think I’m keeping it at this point. I feel like there’s probably some killer feature(s) I found that I simply can’t remember because I’m beyond sleepy at this point. But.Must.Finish.Blog.Post.
oh yeah, and a blog
I’ve been wanting to blog again. I don’t have any major plans, I just wanted somewhere to write about what I was working and what I had discovered whenever the need struck.
It came down to Ghost and Gatsby and Ghost basically won out for two reasons:
- gatsbyjs is impressive but I have zero intention of learning reactjs at this point. So I’d likely use a template and never modify it
- Well, if I’m never going to modify it, I might as well go for the thing that should be good enough as is such that I don’t spend my tinkering time on my blog. I should spend that tinkering time on projects. Like tertremo.
in conclusion, I’m sleepy af
So there it is. I didn’t intend to write this much. And I’m pretty sure I never intend to. Which must be why I only blog about once a year now.
But in a year’s time, Ghost will be old news and I’ll have to find the latest hotness in blogging before I can write a single word….