As another year comes to an end it’s time to get ready for the next year. I had a great year with lots of great new experiences, but I’m looking forward to having an even better year ahead. I have some great tech-related projects planned for the year ahead that I can’t wait to get started on. They’re in no particular order, since I consider them all equally important. Here goes:
1. Moving from Subversion to Git
Last year I started keeping my files under version control in a Subversion repository on an old Mac I used as a server. Though it was a good way to keep things in sync between my desktop, laptop and school machines, it hasn’t made my workflow as easy as I hoped it would. Due to a number of reasons, I’ll be moving my files to Git very soon. From what I’ve read on the internet, moving from Subversion to Git is a simple affair. This is the first major thing I’ll do after getting back to campus and a broadband internet connection.
2. Learning Lisp and C
I’ve been doing a lot of Python programming over the last year. I really like Python and I think it’s a great language that all developers should have a chance to use at some point. But I’m ready for a taste of something different. I’ll be using C and C++ a lot for my courses next semester and Lisp is a language I’ve been hoping for a while to explore in more detail. As Paul Graham says in ‘On Lisp’ C and Lisp are at two sides of the same coin: C models computers while Lisp models computation. I hope to have a worthwhile learning experience with these two different, but complementary languages. Along the way, I’d like to get more proficient in hacking Emacs.
3. More work on The Bytebaker
I made a decision to give more effort to blogging and writing in general when I moved this blog to its own domain. I’m going to keep up that effort in the new year. I’ll publishing more posts, hopefully of an increasing quality as well as putting up longer articles from time to time. In the latter half of the year I’m planning to move to independent hosting so that I can have more control and offer readers more features.
4. Research projects
My current research involving formal grammars is starting to gather steam and I can sense some really exciting work in the months to come. There are already a number of things that I’m interested in looking into and I would like to have publishable material by the time summer break rolls around. There is also a possibility I might have a chance to do work related to software engineering tools. Ever since I became interested in compilers, I’ve been thinking about the importance using proper tools and so this new work should prove to be enlightening.
5. Exploring Parallel Programming
Parallel programming is growing to become both one of the biggest challenges and opportunities of our time. My college has a small cluster running the Hadoop framework for parallel programming. I’m going to be doing some preliminary work to get used to the framework and the basic concepts and then I’ll be looking around for interesting projects to work on.
There are some other things that I’m interested in (Scala, low-level programming), but I’m going to try to focus on the ones I’ve mentioned above. At the same time, I’m open to change and if it seems that something else is worth pursuing, then I might have to reevaluate my priorities.