July 27, 2011

on teaching digital media

Filed under: thinking — .hc @ 6:10 pm

A seminar can be a wonderful setting for lecture and discussion, a group gathered around a table to focus on a specific topic for a couple hours. The minimal setting provides few distractions and keeps people focused on the topic at hand. A good lecture communicates a focused chunk of information, allowing the whole concept to unfold in the listeners’ minds. These time honored formats work well when dealing with subject matter that requires lengthy digestion before the student is ready to put forth questions and ideas of their own.

The traditional classroom format, however, is rarely a good setting for learning technical skills. The vast majority of students learn these concepts best when hands-on practice is central, and in combination with discussion, lectures, and reading. With most subjects taught at the university level, students already have the foundation of skills needed to approach the material. With most technical subjects, the students have to learn to read and write, in effect, before they can grasp the concepts in a meaningful manner. For example, to develop software, one must know how to program, even an excellent understanding of the concepts alone is not sufficient.

The major difference between these processes of learning is the length of the feedback loop. When working with theoretical concepts, it takes a significant section time to absorb and process each chunk of information before the student can start to discuss the ideas. With programming, there are many details that take a long time to explain that become quite apparent when trying it immediately, each tiny step along the way. An essential part of learning programming and electronics, among other things, is rapid feedback. The student hears a bit of new knowledge, attempts to utilize it, then sees what works and what didn’t. This is what makes hands-on learning work. Therefore, theory should be kept in seminars and lectures, and the essential skills should be broken out into hands-on sessions. In new media, these two sections are equally important; one needs to know the theory to understand the design issues, while technical skills are required in order to implement ideas effectively.

When practicioners have a solid understanding of the concepts combined with competence with the technology, their approach to the tools they use changes. Then it is not sufficient to just use the tools that someone else created. Instead, they customize their tools in a meaningful manner. In effect, the tools themselves should no longer be read-only, but instead, read/write. This approach works well when incorporated into the learning environment, giving the students a sense of ownership over the tools they use. I believe this is far more important than the latest, greatest features. Great art and media has been made with the tools of 50, 500, or even 5000 years ago, and many a talented artist has been distracted by the latest nifty technology.

on programming

Filed under: thinking — .hc @ 6:08 pm

I have long been interested in how computers and media can be shaped to work with how the brain works. Our personalities are even shaped by the media we consume, in some ways quite literally. Our plastic brains shift regions to different skills required by different media: there is good evidence that reading text has supplanted some of our skills at understanding faces; and many new internet-based media are highly tuned engines of distraction and fleeting attention. The media we consume and the tools we use to create that media are not only shaped by culture and cognition, but indeed in turn they end up shaping culture and cognition as well.

My own personal experience with digital media began with BBSes in the mid 80s. I explored that little world and even had my own BBS for a short while. I’ve been active on the internet since 1994, starting with newsgroups, and have all along been thinking about how the medium shapes the interactions and community. Media affects culture, and culture affects media: I saw this clearly illustrated when comparing the computer music culture of the early nineties to the dotcom culture of the late nineties that was immersed in. Decentralization was a key focus of the development of personal computers and internet media, while centralized command and control was the driving force of the US military’s push for computing and networking. These two cultures, though in tension, are apparent in how the internet is now influencing people around the world.

Ultimately, the basis of all these digital media is programming, from the most basic aspects of TCP/IP to the latest spin on some combination of text, sound, video, and interaction. To understand digital media and its possibility, one needs to understand all aspects of it from how to make a good narrative to what are technical limitations and what are design choices when it comes to Facebook.

This is one of the reasons I am keenly interested in programming literacy, and the art world has proven fertile ground for this exploration. In particular, I believe that everyone who uses a computer should also be able to program a computer. No one would ever consider teaching someone to read without teaching them to write. How the subject is taught is only one hurdle to true read/write computer literacy. I consider the programming languages themselves to be much greater hurdles. The vast majority of current programming languages were designed by engineers, for engineers. When we design programming languages with general literacy in mind, then we can produce languages that enable broad read/write computer literacy. This is the core reason why I am core contributor to Pure Data (Pd) and Arduino, and follow the progress of Processing and Python closely.

In Hackers and Painters, Paul Graham outlined a core idea that drives me in this pursuit: the beauty of programming. There are computer scientists who study the theories of computation, and computer engineers who work on optimizing the whole process. Then there are hackers who live to write beautiful software. This is the kind of programming that happens in the realm of new media, and this is the kind of programming that I aim to inspire in my students. It is not merely the aesthetic aspect, but instead the drive to make things that are spawned by inspiration. The best works of humanity come out of such works of inspiration, even though so much of it does not come anywhere close to the dream.

To create tools that fit in this vision, I have always tied my development work to real media projects, and have been constantly surrounded by practitioners of all types and skill sets. This has created in me a mindset of thinking about how to link these disparate elements together: inspiration and programming, fluid implementation and annoying technical details. To make software tools that truly inspire, it is necessary to constantly reinvent the tools. A constant flow of new students ensures that I cannot become too calcified in my view of the tools. Pd, Processing, and Arduino are three good examples of this idea. These three have all developed out of close work with students.

July 16, 2011

software patents as farce

Filed under: geekery,politics,thinking — .hc @ 2:02 pm

The central idea of the patent system is to encourage people to invest in the research necessary in order to create new, better processes. I don’t know a whole lot about patents outside of software, but it makes sense that if a company has to spend millions of dollars creating a new process, then the security of a 20 year patent would make a company feel a lot better about shelling out on a risky research project. For the past couple decades, patents are also applied to software. Software processes rarely take millions of dollars to create, and much of the innovation that happens in software is created small groups or even a single person working for some time, usually with no thoughts of patents in their mind at all. The Linux kernel was a huge innovation started by a college kid in his spare time, and now is a major source of economic activity. Bittorrent was invented by Bram Cohen while he was unemployed and couchsurfing, and now is something like 25% of internet traffic, give or take. Both Linux and Bittorrent not only forgoe patents, but even copyright, in effect, since they are both Free Software. The insanity of software patents is massively compounded by the fact that the USPTO issues patents on really trivial software features. For example, take this patent awarded to IBM (from Patently Absurd):

“To turn a thin line on a computer screen into a broad line, you go up and down an equal distance from the ends of the thin line and then connect the four points. You probably learned this technique for turning a line into a rectangle in seventh-grade geometry, and, doubtless, you believe it was devised by Euclid or some such 3,000-year-old thinker. Not according to the examiners of the USPTO, who awarded IBM a patent on the process.”

This is all very relevant now because of the wars over software patents related to mobile phones. Apple has been on the war path recently, doing things like trying to prevent non-Apple software from having things like “multi-touch gestures” (which didn’t even invent, they just bought a startup that create one set of ideas on that topic). Apple wants to prevent HTC from selling Android phones in the US altogether, they don’t even seem willing to license the patents to HTC, they just want to block them from the market. Microsoft is making fives times more money by suing companies shipping Android devices that they do selling their Windows Mobile software. A lot of the big software companies do this, this is not anything new. Then there are the software patent troll shell companies that exist purely to sue based on their patent portfolio. And the sad fact of the whole thing is that the big companies are really only using software patents to either defend against software patent lawsuits or bully other companies into paying them. Small companies doing innovative work are forced to patent their software so that they can survive patent lawsuits from big companies. But often a small companies patent portfolio is just too small to matter, like in this classic story of when IBM shook down Sun for money in the 80s.

The whole thing is becoming farcical, with companies like Google patenting lots of software even though Google has expressly and repeatedly come out against software patents altogether. They need them to survive the patent lawsuits with less damage.

And it is worst in the US, since the US allows far more software patents than anywhere else. Places like the European Union and New Zealand pulling back on software patents and many countries in the world never allowed software patents in the first place.

I like the Forbes guy’s way of putting it: “software patents are becoming a tax on innovation”.

« Previous PageNext Page »

Powered by WordPress

google