Ruby, Rails, learning, projectsI wanted a small project to play around with. A project that was small and simple that I could actually get done in my free time. An app I would use myself. I ended up deciding to build NothingCalendar, which was inspired by CalendarAboutNothing. It let’s users track events, anything they feel like tracking over time. Mark off days you worked out, kept to your diet, worked on writing, studied, quit smoking, or anything else. The idea was a simple way that I could add marks on a calendar on my phone, and have it sync-able and shareable. I also wanted it to be useable when you are offline, since phones loose connection often in metros, planes, lines, etc. One goal with the project is to keep it is small enough that I can build it and play around with different ideas. It is such a small app, that I could rewrite the entire thing with a new methodology if I wanted. Which is exactly what I plan on starting to do. I wanted a app that I could practice new skills and techniques on, while still being useful, and something I would use on a day to day basis. I started working on the project with the idea to build up a chain of doing some open source experimental development having a playground to try things and learn. A small app where I could push myself to look at new technologies, and to force myself to release them into a production environment, opposed to another one off script or tests that never see the light of day. I highly recommend forcing yourself to do a bit of development every day, it is recommended by a bunch of smart people (Andrew Hunt and David Thomas’s The Pragmatic Programmer: From Journeyman to Master, Chad Folwer’s The Passionate Programmer, Paul Graham’s Hackers and Painters). I was in part inspired by Chris Strom (@eee_c), who has done incredible work keeping up a chain and blogging about what he learns. NothingCalendar is a testament to what you can do in about 15 minutes a day. That is about how much time I have spent on it most evenings. Just forcing myself to do a bit every day, has led to my longest streak on CalendarAboutNothing (66 days at the moment). Just remembering to code a bit everyday, keeps the project in your mind, keeps you improving it. It also makes refactoring little things a perfect task, you only have a few minutes take something on. Complete a tiny refactoring of from a todo list and check it in. I frequently just check in #TODO comments, and grep for them when I don’t have much time or an idea of what to work on. After a tiny todo, call it a day and know you will have more time sometime soon to do something more substantial. Please give NothingCalendar a try, and let me know how it goes or any problems / feature ideas. I will will be working more more on it each day, and trying to rewrite large parts of the app using some new ideas.