I haven't been writing here much recently, mostly because I've been spending my spare time writing code instead of blog posts. Since my last two posts are embarrassingly inane, I thought I'd put things back in balance. There are a wealth of excellent new resources for the self-taught programmer, but I've enjoyed classes at Udacity the most (and I am most optimistic about their prospects for remodeling education). Here are a few things I've made during my latest absence:
DaveDaveFind
DaveDaveFind is a very simple search engine that I built for an end-of-class contest in Udacity CS101, which promised that I'd learn to build a search engine. It indexes the course documents, discussion forums, and lecture videos. I'm amazed that it worked at all, but I did it by breaking big problems into small parts and reading a lot of documentation, which were two very good lessons to learn. I also learned to use Google App Engine and Bottle, interact with a simple API, work with a database, parse HTML, and all about software licensing. I also kept lots of notes, and of course the code is open source.
Tabminder
After a lot of self-study and my first Udacity course, I felt pretty comfortable in Python and wanted to learn Javascript, so I decided to write a Chrome extension. I designed Tabminder to complement StayFocusd, a wonderful tool that limits distracting browsing. Tabminder prevents me from wasting my daily distraction quotas by presenting a gentle reminder after every few minutes spent in a distracting tab. I learned all about Chrome extensions, message passing, localstorage and Javascript to make this, and I was pleasantly surprised at how much background knowledge from Python transferred over once I got a handle on working with the DOM. It is probably very bad, but I have not broken it yet. Here's the code.
Kicksaver
Kicksaver is my latest weekend project. It's a simple web app that finds and sorts Kickstarter projects that will end soon without meeting their funding goals. It also tweets endangered projects every once in a while. I've seen a few friends launch Kickstarter projects and stress out over meeting the funding threshold, and wanted to send some good karma towards starving internet artists. To build this project, I learned how to use App Engine's built-in webapp framework, how to use OAuth to interact with the Twitter API, and all about using AJAX to load new projects. I think the code is much cleaner than my earlier projects, thanks to CS253 and CS212, the courses I'm taking now. (It was also linked by The Verge this afternoon, so I'm currently learning a little about scaling!)
Everything I've done so far is open-source and free to fork. If you're interested, check out the code on Github here.
















