Sunday, April 24, 2016

Sunday, April 10, 2016

Saturday, January 02, 2016

I'm Really Excited About ReactJS

Read why I'm Really Excited About ReactJS over at my new blog

Note: I'm migrating all my posts to the new site. This site will eventually redirect there! Please update your feeds.

Monday, October 19, 2015

The Lure of the Dead Project

Dead projects can be a constant lure. When you put down a body of code work and call it either defunct or completed, its hard to avoid the feeling there is something more to do. Whether its work you’ve decided was complete, but later come back to in your mind with ideas of new features and improvements, or work you’ve walked away from intentionally or through neglect and feel a guilt to return to that you cannot shake, old projects have a way of pulling your attention back to them. This constant pull can be terrible for concentration and painful for motivation on new work when you feel this desire to sink your time into something you’ve already gotten away from. Maybe you stopped working on that project because there were simply more interesting things to do with your time, or it was moving in a direction that wasn’t as interesting for you. Maybe you just have too many projects going at once and needed to do the responsible thing as an adult and recognize when you and too much on your plate.

There are many reasons you might walk away from a project, and some times its healthy and helpful to identify that reason and be really clear with yourself when a project is truly finished, or just finished for you. It can be helpful to put an explicit “DONE” label on something, even if there are definitions by which it isn’t done, because you need to make yourself stick to those decisions about moving on to other projects.

I’ve tried to do better at this.

I’ve begun a series of posts where I do public post-mortem on my own projects, even if they are ones I hadn’t previously publicized. The goal here is two gold. First, I think its useful inside my own mind to really put together my thoughts at the end of a project and even long after and document what I learned from and through the project. But, secondly, that public announcement of not working on a project might be more valuable than the public declaration you make when you begin a project. I proclaim “I’m done with this. if you see me picking this up again, question my motives and question what I’m neglected to pick this back up."

Some times it just as simple as deleting a project from your machine, even if you keep a back up or a Github page for it. Make it harder to return to. If you really want to close that chapter in your life, maybe take the repository down if it isn’t maintained or if it never had other users anyway. In the most strict response to the urge to return you might find yourself deleting all traces of a project you once held dear.

A lot of these projects are done to scratch some personal itch, so get invested in an existing solution that scratches that same itch, even if it doesn’t quite get it. learn to appreciate tools for being just good enough. Get invested enough that you would be seriously determining to your workflow if you tried to leave that solution for your own half baked versions.

Fight the lure of the dead project, because you let it die for a reason.

Monday, October 12, 2015

The Practice of "Vanilla JS"

I try to keep my skills up and its hard to do when the thing you try to have skills in is always changing. The web landscape is always in flux, at a seemingly ever-increasing pace. Javascript represents only one area of the web, and as a language within a much greater ecosystem even that microcosm can keep you busy with the evolution of the language itself (ES6), constantly rolling out new in-browser APIs (like the new Web Cryptography API), and learning to sling this language both inside browsers and on backends (Node.js).

One of the best tools I have to keep these skills sharp is the practice of what you call “Vanilla Javascript”. I try hard to find lots of small opportunities to practice Javascript without the abstractions of all the myriad of libraries and frameworks that might obscure it even in the course of a single day’s work. I find two simple strategies help me poke through the cushion these tools provide to make sure I don’t forget what’s under the hood.

  • On a new project, especially a smaller one, I’ll build what I can using no JS libraries until the need really presents itself. Its wonderful how many tasks you’d turn to jQuery in the past for are just fine to approach using nothing but standard APIs today.
  • At any time, I try to have one toy project i might come back to when I have some time to kill, which I keep a “plain only” rule on. These are just private throwaway projects, but useful to give me a sandbox to avoid the pressures that usual projects bring to the table with a necessity of a toolchain’s safety net.

The effort is small, but the impact of keeping yourself reminded of the language and APIs underneath jQuery, Angular, React, or whatever other JS toolset you prefer is undoubtedly valuable. 

The next time you’ve got a new task JS to complete, give yourself a quick challenge in accomplishing it without a library. But, find a balance, and don’t force yourself to do what you really should use a library for. Just give yourself that chance, now and then, to discover some new Vanilla JS you may have not known before or to revive some understand which had gotten rusty.
I write here about programming, how to program better, things I think are neat and are related to programming. I might write other things at my personal website.

I am happily employed by the excellent Caktus Group, located in beautiful and friendly Carrboro, NC, where I work with Python, Django, and Javascript.

Blog Archive