Posts Tagged ‘rms’

Our Education Disease

May 20, 2011 1 comment

We are sick of education. We as a nation, a society, a world, and individually are making ourselves sick over education. I can’t speak for people in other countries, but as an educator in the United States at several levels I have repeatedly seen people make themselves physically and mentally ill over education. We need to do something about it. We don’t need to do away with school, but we need to seriously re-think what we tell people about school, our values as a society and our valuation of human life.

Another semester has come to an end, which means I’ve seen another set of young people come into my office to beg for me to change their grades; I’ve seen more people crying in my office about how they need to pass a class; they’re afraid that if they don’t pass they won’t graduate; they’re afraid that if they don’t pass they are not good people. It’s as if their lack of comprehension of a model of predation or population genetics means they are not good people. Of course I want them to learn, but does that mean I want them to destroy their lives and develop a mood disorder over learning what I’ve chosen to learn? Not only do I see university students — people over the age of twenty, mostly — crying over this stuff, but some have looked on the verge of vomiting over their fear of failing a required class. After one of these meetings the other day I decided that it’s not just the students’ fault, and that’s a silly way to assess the situation. No, it doesn’t matter whose fault it is. Instead this is a sign of everybody doing something seriously wrong.

Education Problems are Our Problems

First let’s establish that if there’s a problem with education there is a problem with our entire society. I don’t just mean that getting an education is a fundamental part of our society, or that in America we really value education. I don’t mean that since education has been made particularly important in capitalist society that a problem with education is a problem with the whole society. What I mean is that if there is a problem anywhere it’s a problem with everything. It’s a problem for everyone and everything we do. Richard Stallman often reminds people who software freedom is important not because computers are an important industry (i.e. make somebody a lot of money), but because using computers is a part of our lives now. If you doubt that’s true, think of how often you make scheduling decisions based on the performance of a piece of software: do you ever schedule a meeting at a particular time because your calendar software makes it easier to do so? Do you ever leave the house later because your web browser wouldn’t load the article you wanted to read over breakfast? Do you ever leave the house or office a little later so you can download something onto a mobile device? Think about it and you’ll see that anything you do with a computer affects your whole life, just as your diet affects your whole life.

Education is the same way. If there’s a problem with our education system, the way we teach, and the reason we learn (i.e. our values) then there’s a problem with our whole lives. We can’t ever say “That’s a problem for the schools,” or “That’s the teacher’s problem.” It’s our problem. If your kid is having a problem learning or understanding why he should be learning something, it’s your problem.

The Symptoms

Not only are students crying in my office, but there are larger societal signs of the problems created by our you-must-go-to-college-society. Consider that when I graduated from high school, I had a range of friends with varying interest in college. I wanted to go to college because I wanted to be a professor; I can’t do that without a college degree, plus a Ph.D. and (I thought at the time) a Master’s degree. But I only applied to one university. I didn’t apply to a “safe” school plus Harvard, Dartmouth, Yale, Stanford, Washington University, Scripps, Pomona, Miami University, Beaverton College, Reed College… . I had other friends who weren’t going to college at all: they had taken courses in computer networking, database administration and other topics at vocational school, or were headed to community college to take those courses. Nowadays I know people with BAs in computer science who are doing those jobs. If you can do that job with a high school diploma or a BA, doesn’t that seem a little off to people?

College-entrance-syndrome begins in kindergarten. My son will be going to kindergarten soon and I am shocked at the stuff I’ve been hearing from people. I should have known things would be different now that every toy has pop psychology jargon written all over it. Parents have told me “Oh, that’s a good school, she went to kindergarten there and she learned all her skills.” Learned what? I don’t know about you, but in kindergarten I learned about primary colors, my feelings, don’t talk to strangers, and to be nice to people. An administrator at a charter school recently told me that kindergarten is the new second grade. My brother in Texas just told me that the Dallas public schools are paying teachers to quit, while they’re spending millions of dollars on testing.

Educators automatically tell kids that they ought to go to college. I’m sure even I fell into that habit when I was working in middle and high schools. Think about it and you’ll see how weird it is. It makes sense to have had that attitude with poor kids in the fifties and sixties, and with GIs coming out of the most violent conflict in human history. In the former case you had people who definitely would benefit from the vocational and educations opportunities of college; in the latter you had trained killers already familiar with the newest technology, knowledge that would be wasted if we didn’t interest them in something before they started killing again. My father-in-law’s family is a great example of a family working hard so their children could benefit and go to college.

The question we need to ask today is “do you need to go to college to work at Hooters?” Do you need to go to college to manage a Hooters? According to College Conspiracy most college graduates end up working at jobs that require no higher education, whereas high school graduates that don’t go to college enter the workforce earlier, gain more skills and advance more rapidly than college students. Also according to the film, most college graduates who do become successful don’t believe that their college education has much to do with starting a successful business. I’m not asking about the economic value of these people or their jobs, instead I’d like to ask: are you a bad person if you choose to work as a waiter?

Also consider the futility of telling kids to go to college “just because” it will do them better in some unspecified way. One of my brothers is a musician, meaning he chooses to live in poverty. He recently told me that high school administrators learned very quickly that they couldn’t motivate him by telling him “Well, if you want to get into a good college…” He’d interrupt them and say “I don’t want to go to college, I want to play my drums.” And he does.

We need drummers. And we need farmers, and waiters, and lots of people who are still perfectly good people without going to college. My grandfather was a brilliant builder, designer and artist with a seventh-grade education. Maybe not everybody needs to go to architecture school. Maybe they need to learn trades like my friends who learned networking and database administration without going to college.

That brings up the really sick part of all of this: why we’re telling kids they have to go to college. Most often we tell them because it’s the only way they’ll “make it.” What does that mean? Well, usually when you press people they’ll tell you it means making a lot of money. Oh? Is that what it takes to be “successful?” Is money what it takes to be happy? Is money what people really need? So people are told to go to school in the long-term to make money.

I shouldn’t need to tell you that I think this not only debases education, it debases the people we tell it to. If the only way to be happy is to have a lot of money — or even a lot of prestige, i.e. becoming a doctor — and the only way to earn a lot of money is to go to school then what good is learning? What if you’re not good at school? What if you don’t need to go to school? What if you don’t want to go to school? Do you really need to be Mark Zuckerberg or Bill Gates to be a good person? Do you even need to try?

The Disease

The problem in all of this is that school has become a means to an end, rather than an end in itself, at least in America. I don’t think that every kid should love going to school — I hated it — but kids should be taught the value of learning. They shouldn’t be taught that learning is only for school; they shouldn’t be taught that learning is just one thing you do sometimes; they shouldn’t be taught that the job of learning is to make you a lot of money. They certainly shouldn’t be told money is the key to happiness.

One of the first times I realized I was different was in Junior High school. One of my neighbors saw me on the bus; I was reading The Extended Phenotype by Richard Dawkins, a book that in retrospect I totally did not understand but I read it anyway because I knew I was challenging myself, and it was cool. She said “Why are you reading? School’s over.” I can’t remember my response, but I can remember thinking the question was coming from someone who had completely wrong ideas about why we learn, and I felt sad for her.

My son recently received a book as a gift and on the cover was a banner that read “Time to learn!” I wouldn’t ordinarily think this was anything weird: it’s a good message to send that learning is exciting, right? However, we don’t reserve learning for when we’re in school or while we have a book to read. Children love to learn; they don’t need to even be in school, really. They certainly don’t need to be told “Okay, now we’re going to learn.” It’s what they do. My son is learning when he’s playing with Legos, when he’s on the playground, or when he’s reading a book. My other son is learning right now watching a Neil Peart drum solo, but I didn’t say “Okay, Khalil, it’s time to learn something; there will be a quiz afterward,” before I showed it to him.

What do schools tell kids instead? A recent lunchtime conversation with an undergrad, a graduate school drop-out, a grad student/TA (me) and a professor revealed the horrible truth. Had I forgotten it? The undergrad reminded me that throughout high school, students are told that they are in school expressly so that they can go to college. My professor colleague then said “So now people are going to college just so they can get into medical school?”

Did Richard Stallman Invent the eBook?

February 2, 2011 4 comments

Lately you’ve heard me say that my feelings toward laptops have changed. Since getting my new laptop, some of my feelings toward reading have changed as well. I love paper, and I love the look of printed letters, and well typeset text on the page. That won’t change. However, I noticed that most of the texts that I read (journal articles) I can read in online versions without missing much of the content. I’ve started exclusively reading current articles either online or in PDF form on my laptop and I’m glad to be conserving paper.

One thing that hasn’t changed — things that I’ve always read on my computer — are GNU manuals. GNU manuals are written in an ingenious format called TeXinfo which enables the author to produce appropriate output for several different ways of reading: PDF, HTML and the online info format, most easily read in Emacs. If you’re running GNU/Linux, you will find tons of manuals in this format by typing “info” into a terminal. Within Emacs, type “F1 h” (that’s press and release F1, then press and release ‘h’). Either way you should get a menu of topics, each covered by its own info manual.

Since deciding on Sunday that my programming goal should be better programming, rather than learning a new language, I started reading advanced topics in Unix/GNU programming: processes, pipes, IPC, etc. I was thinking “Man, I need to get that classic book Advanced Programming in the Unix Environment.” Unfortunately this book is HUGE, I wouldn’t carry it around with me, as reducing back strain is currently high on my agenda. It also dates from 1992 (around the time I first used Unix) and some things have changed since then. Most of the things the book is about have not changed, but most texts show their age in one way or another. Most Unix texts from this time look like casualties of the Unix wars, with more than half their content explaining incompatibilities between different version of Unix, and the pitfalls of writing portable programs.

So of course, I went for (what I thought was) the next best thing, something I already had and could carry around with me at no extra weight: the GNU C Library Manual (in the info menu, type “m” and then enter “libc” and hit Enter). I have been reading about the basics of IPC and processes for a while off and on, and there were things that I just didn’t get about them. I get them now, having read them in the Libc manual. For example, I didn’t understand that a child process and its parent process receive different return values from fork(); the Libc Manual spells this out so clearly I wonder why I didn’t think of it before. I didn’t get how the child process and parent process’ distinct code portions were triggered, but that was only because I hadn’t read the f’ing manual.

These manuals don’t read like terse manpages, they read like manuals that you would actually want to read. The Libc manual and the Emacs manual both repeatedly surprise me. Emacs users often joke about learning new “features” of Emacs that have actually existed for decades. Whenever I am frustrated with Emacs in some way, I’ll usually find a workaround, and then months later I’ll be reading the manual for some unrelated cause and find a solution to my problem. It was right there the whole time! You can imagine how empowering reading these manuals is.

The weird thing is that although I’ve repeatedly had this experience with GNU Manuals, they aren’t the first thing that I go to. I need to change that habit. We often treat reference materials as though we shouldn’t sit and read them, we should instead browse through them until we find what we need and then put them away. That’s what manpages are for. GNU Manuals are different. GNU Manuals actually tell you what’s going on and what to do: they are great for beginning programmers. I’m not going to waste my time going to the library; I’m going to read the Libc Manual.

eBooks, rms and DRM

Recently ebooks outsold paperbacks on People may be treating this as the final sign that the death of paper is coming, but I don’t, for one considering that Amazon has been set up as an ebook store from the very beginning, i.e. they’re on the friggin’ web — it’s obvious they would try to compete by delivering their content as quickly and conveniently as possible. I’ve always seen it as a goal of theirs, although I think back in the 90s most of us thought ebooks would just be webpages, rather than something you’d actually carry around, i.e. we thought they would be different enough from regular books to combat the problems of regular books.

Amazon however has a different idea: they and their competitors would like you to think of ebooks as the same as regular books, just lighter weight, and easier to pay for. Their ridiculous idea of “e-lending” is so stupidly backward that I laughed out loud when I heard of it:

They have managed to recreate, in the palm of a reader’s hand, the thrill of tracking down a call number deep in the library stacks only to find its spot occupied by empty space. With a clever arrangement of bytes, they have enabled users to experience the equivalent of being without their books while their friends’ dogs chew on them. Maybe if we’re lucky, next they’ll implement the feature that allows two electronic pages to be stuck together as if by gum, or that translates coffee spilled on the screen into equivalent damage to the digital pages.–John Sullivan, Lending: A solved problem

They’ve done this with DRM or “Digital Restrictions Management.” Its practitioners call it “Digital Rights Management,” which I think is sinister enough: do you want your rights digitally managed? They’ve managed to make ebooks just as problematic as paper books, and why?

The question of their motives becomes so much clearer when we consider that not only did Richard Stallman create great free books about computing, like the Emacs Manual and the GNU Libc manual, he also helped create the best ebook reader out there (info), and all with the goal that it will facilitate user freedom. The choice is yours: do you want ebooks to be as inconvenient as regular books? Or would you rather have convenient, indexed, hyperlinked text written by people who care about you and your freedom? The choice is clear to me.

Some Further Reading

The history is about as interesting as the books themselves. Some people think that ebooks (or the concept) is new, just as they think about tablet computers and touch screens. Both touch screens and “ebooks” are about as old as computing itself. If you’re skeptical about that, think of how simple an idea it is: many, many books that you can carry around in your pocket at no additional weight. “Hey let’s use computers,” is a pretty simple solution. Computers were almost built for the task. The only new idea is making ebooks as inconvenient as paper books. I’m reminded of Douglas Adams‘ explanation that if a hitch-hiker wanted to carry a paper copy of The Hitchhiker’s Guide to the Galaxy (a text that bears a strange resemblance to Wikipedia), he would have to carry several enormous buildings with him.

Categories: Freedom, Programming, Tools Tags: , ,

Mark Zuckerberg is TIME Magazine’s Person of the Year? Where’s the “dislike” button? (

December 20, 2010 1 comment

Mark Zuckerberg is TIME Magazine’s Person of the Year? Is this because he made a bunch of money or because he gave some of it away? Where’s the majority of it still going to? What do we really value in American society these days?

Let’s get serious about our values folks: Bill Gates has made himself a model of what I call “laissez-faire-morality,” as in whatever makes him the most money is what’s right for society. So now Mark Zuckerberg is some kind of a social or humanitarian icon for following in those footsteps?

When I introduce the ideas of software freedom to my students, I point out to them that many many institutions have now fully embraced the idea that whatever makes Microsoft the most money is what’s right for society. Facebook is not far behind in influencing schools and universities. I have to actually point out to people that a culture of “illegal sharing” goes against what they learned in Kindergarten. Richard Stallman said it best:

I realized that signing this [non-disclosure] agreement was basically a promise to be a bad person

As long as we promote people like Bill Gates and Mark Suckerberg[sic] as role models (which is what Time is doing whether they admit to it or not) we will be raising conniving little thieves instead of healthy children. Am I supposed to say “Share with your brother” but then say “Don’t share software, you’ll be taking caviar out of the mouth of a really valuable member of society” to my son?

I admit that Facebook has been influential but that doesn’t make it good. Choosing Zuckerberg for such a distinction — albeit one bestowed by a private organization with its own questionable values — is a bad symptom of a society at risk. I’m hitting the Dislike button.

Not f'd — you won't find me on Facebook

Migrating to Distributed Version Control

November 29, 2010 3 comments

A few weeks ago I migrated two major projects to distributed version control systems (DVCS), leaving only one project in Subversion, the one hosted on Savannah. As you can read in my prior posts, I have resisted switching over to DVCS. However, recently I’ve understood the benefits propounded by DVCS adherents, and I’ve found that it has more features than most tutorials let on.

Why Did I Resist?

I resisted DVCS so strongly for a few reasons:

  1. Most arguments for DVCS I encountered were actually anti-Subversion arguments; much of them based on incorrect information about Subversion and CVS
  2. Much of what I read sounded like knee-jerk trendiness: it sounded like people were doing it just because Linus Torvalds says Subversion is stupid
  3. I had an important project (my dissertation!) in Subversion, managed with Trac. I didn’t want to lose all that history by doing a crappy conversion.

When the anti-Subversion arguments didn’t hold up, I ignored them. I thought maybe my working conditions were just different or other people just weren’t reading the manual. Those are still possibilities, but the harder thing to examine was my second reason for dismissal: I assumed that anyone who said these things was a total newbie, who had just been told that DVCS was better. I’ve talked about object-oriented programming proponents often just sound inexperienced with programming. I figured the same was true of DVCS proponents.

However, two things happened that really changed my mind. The first was that I’ve realized that the most annoying thing about somebody questioning my decisions is the feeling that they think my decision is poorly considered when it is deliberate, careful and took me weeks of preparation. It’s very easy to take that attitude with people online: when I don’t hear or see people, I don’t have that mirror held up to me. It’s very easy to just brush something off and say that the other person “just isn’t thinking about it.” Realizing how much that pisses me off when people take that attitude with me, I’ve thought a little more about how I consider peoples’ attitudes online.

Many experience hackers have switched

The second thing was realizing that people whose opinions I know I can value, people who definitely have done their homework, have switched major projects to DVCS. Emacs, my favorite piece of software that I am using right now to right this, is kept in Bazaar now. I know the people who made that decision were doing their homework, not going by knee-jerk reaction, certainly not just to copy Linus Torvalds. Bazaar is also part of the GNU Project.

What about my revisions?

svn2bzr answered my third concern. svn2bzr is a featureful-enough tool that will create Bazaar branches or repositories from SVN repository dumps. It’s really freakin’ easy to create whatever configuration you want:

 > python ~/.bazaar/plugins/svn2bzr/ --prefix=subdir svndump newrepo

This will create a new Bazaar repository in the directory `newrepo’ that contains all the revisions in the subdirectory `subdir’ of the svn repository. This is where Bazaar’s concept of repositories shows its difference.

In a Bazaar repository you can have many branches beneath the repository in the filesystem, and you import a branch by branching into a subdirectory. I did’t get this for a few weeks, so let me give you an example. Suppose I have a branch called `branch’ located at `~/Public/src/branch’ and a repository called `repo’:

  > cd repo
  > bzr branch ~/Public/src/branch here

That creates a branch within the repository called `here’. Now I can create other branches, merge them, etc. The only tricky thing about getting my revisions into a place where Trac could use them was that I needed a repository hosted on HTTP. Then I used the TracBzr plugin to add the repository to Trac. I realized that changeset links are only used in Trac tickets, and since I had so few of those referencing current revisions, changes in the revision numbers wouldn’t matter that much.

Features of DVCS

I heard many, many anti-Subversion arguments and some really bogus arguments for DVCS. People have said “you can’t merge,” “you can’t make branches,” “Subversion causes brain damage” and on and on. The bogus pro-arguments I heard were that you can commit without a network connection, “forking is fundamental,” and that DVCS is “modern.” Answering these arguments is simple: committing without a network connection is not a big deal. On the other hand updating without a network connection is impossible, and it’s a situation I’ve found myself in more often, especially working with a laptop, instead of just two workstations. This is where DVCS was nice. Updating is a bigger problem than committing.

As to “you can’t merge” and “you can’t make branches,” we all know that’s bologna. However, what you can do much better with DVCS systems like git and Bazaar is edit directory structure and rename files. This is a huge advantage of DVCS systems. Bazaar, for instance, totally keeps track of all renames and copies in its history. Subversion, on the other hand, does renames with a DELETE operation and an ADD operation. Not so smooth. A good way to do get something better than CVS, but not the best.

Furthermore, DVCS systems are very good at merging. That doesn’t mean you can’t merge with Subversion — I’ve been doing that for years. However, merging between two branches in Bazaar is much simpler than merging in Subversion. I don’t have to read the help when I’m merging with Bazaar; merging with Subversion is not hard, but it’s not as simple. Simplicity is the name of the game, baby.

A Stupid Git Realization

I had tried using git before and didn’t enjoy it. I’m glad to say I was using it wrong. I had tried using it to manage my webpages, but whenever I pushed my local changes to my remote webpage tree on UNC’s servers, I would get messages about not updating the local tree and stuff like that. It was just confusing. It didn’t really make sense. I wasn’t interested in trying git again, hence using Bazaar for some new projects.

I had a weird realization one night: I was working with the git tree of Guile, and someone on irc had told me that the most updated git source had a known problem. I didn’t want to go get the tarball for Guile 1.9-13, so I thought “Wait, I have the git tree, so I should be able to generate whatever release version I want. How do I do that?”

  > git tag -l
  > git checkout release_1-9-13

and there I had it. Wow! That is cool.

I also followed a simple tutorial to get my webpages working with a hook that would update the local tree (the one served as my homepage) every time.
It seems a simple idea: make a repository in a different directory,
and check out to it every time I push to that repository. Why hadn’t
that occurred to me before? Conversion from SVN to git was insanely simple:

> sudo yum install git-svn
> git svn clone http://path/to/repo webgit


I think I’m done with Subversion. DVCS, at least git and Bazaar, can do a hell of a lot and I really like their features. I wouldn’t mind using Subversion for an existing project, but I think I’m not going to start any new projects with it. I’m also going to take it easy on people who disagree with me online. I’ve seen that at least some of them were speaking from the same position I hope to.

Another excellent Stallman talk

Check out this video of Richard M. Stallman speaking to an audience at the University of Calgary. It’s long, but it’s well worth watching: the most important thing about hearing RMS talk is that he points out how plainly ridiculous and abhorrent the behavior of certain companies and politicians is. The things that he talks about are plain facts, not propaganda, and it’s only denial that keeps people from recognizing that we let people trample our basic freedoms in the name of convenience. He also points out how effective it is not to complain or simply steal in the name of protest; it’s much better to follow the model RMS has for the past twenty-five years, and turn our backs on these people (i.e. use free software).

The great thing about this particular talk is that he talks about much more than software; he spends a lot of time talking about the nature of copyright, the publishing business and the recording industry.

Watch and learn!

Categories: Freedom Tags: ,
%d bloggers like this: