What am I learning about and what can I write about more?

I’ve been feeling a little distracted, a little stretched these past weeks. I tell people that if they have a hard time blogging, they can look at what they’re learning and write about that, since they’re probably learning at least one new thing every day. Time to take my own advice. =)

Clojure: I’ve been slowly working through the exercises at 4clojure.com, solving two or three a day (56 done now!). I’m slowly getting the hang of loop, for, partition-by, and all these functions that I’m not used to playing with in Emacs Lisp. My solutions are nowhere near elegant, but they get me to the point of being able to read other people’s solutions. That’s how I’ve been learning about interesting functions. I’m also reading through the Clojure core documentation. Hard to remember everything, but I’m getting better at thinking “Hmm, I remember coming across something that might be useful.”

I’m learning this out of curiosity at the moment, since I haven’t thought of any personal projects that are better suited to Clojure than, say, Rails or Emacs Lisp. Maybe I’ll finally get around to coding that script to check the library for the locations of newly-released DVDs, or building something to help me analyze my Quantified Self data. In order to get to that point, I’ll need to learn core Clojure functions, popular frameworks and libraries, and workflow/debugging tools. It seems a little daunting, but it’s a good kind of daunting. I’m chipping away at it steadily. This also helps me empathize with programming newbies, which is great because I’m working on that course to help people learn Emacs Lisp. =)

Gardening: The sorrel I bought from the farmer’s market turned out to have leaf miners. I’ve been removing the rows of eggs under the leaves by hand, and I cut off a few of the affected leaves and trashed them (far, far away from the garden). It’s a pity about the bugs, but at least I’m learning how to identify and control pests.

The blueberries we planted in 2010 have more flowers than I’d ever seen on them before, and some of those flowers are beginning to set fruit. I cut some twigs off the backyard trees to replace the bamboo hoops that were acting as tomato stakes, and I moved the hoops to the front so that I could drape the net over them. I’m beginning to get the hang of this – no more buying stakes for me!

Some of the bok choy plants are starting to bolt, and the Thai basil is flowering. I pinched the tips, hoping that will extend their growth a little further. I’ve been erring on the side of watering almost every day, since our soil is sandy. The soil often feels dry to a few inches’ depth, even if I’d watered just the day before. We’ve been mixing lots of compost into it and laying even more on top as mulch, but it still has a long way to go.

Emacs: This week I’ll polish the fourth segment in the beginner e-mail course for learning Emacs Lisp. It’s wonderful to have reached this point! I’m glad I started this experiment. Writing tutorials is much easier with other people’s feedback, and e-mail seems to be a less intimidating way for people to interact. I’ll probably roll it out as a blog series as well, so that people can find it while searching my blog. After I finish that, maybe I’ll take a short break before doing the intermediate course. That way, I have some time to experiment with the nifty things I’ve been coming across.

So yeah, I’m learning about stuff. Ah! Maybe it’s because I haven’t been writing in the process of doing so. For Clojure, I can write about my solutions to problems and wha I’m learning by looking at people’s solutions. For gardening, I can post pictures. For Emacs, well, I’m used to writing about that already! =) I think the bottleneck there is that I’ve been working on stuff that’s posted on Github and at http://emacslife.com , but I haven’t been posting those notes (or meta-notes about the process) on my personal blog. Since my personal blog is likely to outlive both of those other resources, I should copy things over anyway. Also, I can give myself permission to spend time exploring Emacs instead of answering mail or working on the course, since it’s fun to write about cool features I’m experimenting with.

If I think of writer’s block as learner’s block, it’s easy to chip away at it. Onward!

  • Norman Kraft

    Good for you, starting Clojure. I think about doing that from time to time, but everytime I do, I see things like:

    (def in (java.io.BufferedReader. (java.io.FileReader. “/etc/hosts”)))

    Just to open a file and I think “If I wanted to write Java, I’d just write Java”. It’s a nice Lisp, but it reaches into poorly cloaked Java functions to do some pretty basic stuff, and that always made it feel like a oddball language for me.

    Have you ever looked at Racket? It’s another fun, up and coming Lisp/Scheme, but the library support and community isn’t nearly as large.

    Hopefully, as I watch your adventures with Clojure, perhaps I’ll be inspired to give it another try.