These are simply the philosophical musings of one guy with an inherent love of learning how things work.
Sunday, July 22, 2012
New GIT Project for various Generative Art frameworks
Sometimes I feel like I'm all over the place, sampling all sorts of new stuff and being overwhelmed with the task of weeding out the options to include in my Computer Science classes. My only advice would be to carefully consider what Comp Sci topics you want to cover, and then look for interesting contexts in which to embed them. For me lately, the context has been Generative Art.
I started a wiki on all the applications that I have tried for making Gen Art, but the thing quickly grew too big for me to manage, and too ... ugly ... for anyone else to seriously consider joining in on the work. A wiki done by one person is not really a wiki.
The mistake I made, was starting too early. Of course I was all excited from trying about a bunch of new applications, so I started putting all sorts of stuff on the wiki, including a huge table of the pros and cons of each application. What I should have done instead was to put the whole thing off for a month while I worked in more depth on each application. So that's what I did. I have been working with my co-teacher in the CS department on updating our CS curriculum, so it was the perfect time to think deep about how these new apps could be used, and where they would fit into our CS curriculum.
Now things are much clearer. I have had time to play around with all the apps and have narrowed down my list to the ones that find myself using the most.
You Can't Go Home Again
So ... I was ready to go back to my wiki and clean it up a bit and make it better. And yet ... I didn't want to go back. I'd look at it and think, "what a big mess--there's good stuff here, but my ADHD hates the intimidating way it's all plastered on the wiki!" So I decided to make another change in our CS program, and I'm so glad I did.
In the past, our student developers team would use SVN and TRAC on our own server to host our projects. We also have a private phpbb forum that we use for discussions on current projects. But I have increasingly found myself interested in two very popular alternatives to the above approach: GIT and GitHub.
Rather than go back and redo the wiki I had already started, I created the Helping Hands project on GitHub, and I'm glad I did. Of course I had the usual feelings of "...but this is just a simple project of my own, why put it up on a public repo and let anyone at all see it?" And of course there was the usual guilt I have when something like GitHub is free (as long as the project is open source). But then I spent some time reading research on the lack of women in open source projects. I realized that my fears of putting my work out there for everyone to see was, well, normal.
Browsing GitHub, I entered some search terms like "education" to see what projects were out there that could possibly be similar to what I wanted Helping Hands to accomplish. What I found was pretty surprising. Of the projects I found, almost all of them were little tiny "hello world" type projects that had only one contributor. Some only had a README file. Others had one file of code titled "chapter01problem01.js" and no README file at all. By "education," most were referring to the fact that the project creator was learning something and wanted to keep their work on GitHub. It was pretty clear to me that these were little experiments that someone tried and then totally abandoned. But there they are--doing nothing and not being read by anyone except ... me. Somehow that made me even more inspired to launch Helping Hands on GitHub.
Take the Chance and Share Your Work
The power of a site like GitHub is that they embrace the new business model that is totally killing off big corporations like MicroSoft. They realize that you don't have to nickel and dime users to death to be profitable. The writing is on the wall ( and it's in Chinese , btw).
One of the best ways to get batter is practice. But practice can be an escape environment where you feel all safe and isolated and no one will make fun of your skills. I just want to encourage you to take your work and open it up to others. When I saw a few typical GitHub projects, I got a perspective that GitHub (and open source projects in general) are just as varied as we are as people. If you only see GitHub from an occasional blog post linking to a successful and large project hosted there, well, you tend to think that anything you could create would be laughable. Truth is, laughable is the norm, and on all those flimsy "education" projects there was not one troll on there saying, "this is a bunch of crap, just give up!" The trolls are in our heads, for the most part (or posting comments on CNN.com). The majority of people you will meet on open source projects are willing to help you get started into the exciting world of open source development.
I teach Computer Science at a progressive public high school, using mostly open source tools. I improvise a lot and spend most of my time working with students and writing code in Python, Java, Obj-C, LISP....