Jobs versus good government.

Glen | March 11, 2010 3:22 am

I actually want to write about Obama’s attempt at student load reform, but before I do I want to mention an excellent article at truthout discussing Beck, Coulter, and Limbaugh. The author (one Davidson Loehr) gives a brief review of Julius Streicher, who would seem to be the closest thing to a real life Howard W. Campell Jr. as exists, and compares his crimes (for which he was hung at Nuremburg) to the activities of Coulter, Beck, and Limbaugh. It’s a good read, and mostly on the money. He makes a very strong case against Coulter and Beck, but if the quotes he uses for Limbaugh are the best he could find, his case is pretty weak there. Limbaugh is probably guilty of little more than paving the way for Beck and Coulter and Fox news.

Moving on to Obama’s student loan overhaul: I just read an article at the NYT called Obama’s Student Loan Overhaul Endangered. For those of you who don’t know, the American student loan system works as follows: Most student loans are made by private, for profit companies, with government guarantees. In other words, the private companies take the profit, while the federal government takes the risk. This is essentially the same problem people discuss with the bank bailouts (and the airline bailouts, and the automotive bailouts…) with one important difference: Here the situation is planned in advance. It’s not an attempt at averting an even worse catastrophe, it’s just an example of successful (for the profiteers) lobbying. For federally subsidized loans, the govt makes the interest payments until graduation. Student loans are exempt from bankruptcy, so even if you go bankrupt, you will still owe on the student loans.

Obama’s plan is to loan the money directly, which would save the government billions of dollars, which he would use to expand Pell grant scholarships. This is no-brainer policy reform. The only people who lose out are the lenders, who, let’s face it, are parasitic users who have obtained their risk-free, merit-free profits by gaming the U.S. political system.

But the education bill is strongly opposed by some Senate Democrats, particularly those in states where for-profit student lenders are major employers. In a letter to the majority leader, Senator Harry Reid of Nevada, six Democrats said they disliked the president’s proposal.

“We write to make you aware of our concern with provisions of contemplated student lending reform that could put jobs at risk,” the senators wrote. “Increase our nation’s commitment to higher education funding is a priority, but we must proceed toward this objective in a thoughtful manner that considers potential alternative legislative proposals, while still delivering an equivalent amount of savings over the next ten years.

So, who should be haranguing for this? They are: Senators Thomas R. Carper of Delaware, Blanche Lincoln of Arkansas, Ben Nelson of Nebraska, Bill Nelson of Florida, Mark Warner of Virginia and Jim Webb of Virginia. Now, I’m a huge fan of Webb for his courageous attempt at justice reform. He’s also one of the most reasonable and ethically consistent senators with regard to foreign policy. I might not agree with all his conclusions, but I thnk he’s a pretty good guy who works hard at being ethical. So in the end, the system is to blame, not the individuals. I’m not familiar with the others, but probably the same holds true. It’s not hard to see how this probably played out: Contributions buy you access. Once the lenders have access they make a spiel about how this is going to cost their state X jobs, and probably paints the whole thing as a political liability for the Senator in question. At that point the senator in question either cynically decides in favor of the local over the national interests (this amounts to self interest through the election process), or decides that he (or she) has to pick their battles carefully, and this one isn’t worth fighting.

What really gets me is couching the conflict of interest in terms of national interest vs jobs, where the real issue is national interest v.s. private wealth. Why? Well, the loans are going to made anyway, which means the jobs are needed anyway. The only difference is who’s doing the work, and where. So it’s not a question of jobs, it’s a question of whether or not we want to let some asshole(s) with money and connections profit from the student loan process or not. Who are these assholes? Well, Sallie Mae is at the top of the list.

The whole “jobs vs X” line is overplayed, and pretty transparent. It used to be used to great effect to torpedo environmental protections. Of course, environmental protections typically create jobs. It’s automation and outsourcing that destroys work places. Hopefully the american voter is gradually getting wise to this line of bullshit. So write your senator and tell them you don’t fall for that jobs versus X bullshit anymore, and you expect him (or her) to vote with your interests in mind, not with Fannie Mae’s.

The info wars: Disney

Glen | March 10, 2010 3:28 am

I recently listened to an old Alex Jones – Noam Chomsky interview.  I absolutely detest Alex Jones, who’s essentially the Rush Limbaugh of the tinfoil hat crowd.  What I find reprehensible in his pseudo-journalism is the net effect of it, which is to discredit and marginalize legitimate points of concern in the political spectrum, for example corporate manipulation (well, ownership) of the media and manufacturing consent being perhaps the most vital.

The problem is AJ has a much bigger audience and visibility than intelligent, reasonable individuals (like Chomsky) who are working hard at exposing this stuff and educating people.   So when you start talking about corporate and elite ownership of the media, the average person will likely have heard these concepts first from a wing-nut source like Alex Jones, and will likely glaze over.  So while A.J. ended his interview with Prof Chomsky by calling Chomsky a corporate-elite schill, the truth is that A.J. does far more to further the corporate-elitist agenda.  I’ll be discussing that at some other point, but I want to talk about a concrete example of this kind of corporate media control that’s taking place right now.

Maybe you’ve heard about the Campaign for a Commercial-Free Childhood?  These guys a a national coalition of health care professionals, educators, advocacy groups, parents and individuals whoare trying to “reclaim childhood from corporate marketers”.   They managed to push Disney into offering refunds on their “Baby Einstein” videos, because (surprise!) watching a video doesn’t educate your kids, and in fact watching videos is probably harmful for young kids, no matter what’s being watched.  This wouldn’t be a problem if Disney hadn’t claimed that these videos were “education”.

So Disney had to offer refunds, and the companies involved had to drop the word “educational” from their marketing.  Good news all around.   But mega corporations (and Disney’s among the worst) doesn’t like it when people try to execute some kind of democratic control or accountability.  So Disney called up the Judge Baker Children’s Center (a Harvard affiliated children’s mental health center).     Apparently Disney put pressure on Judge Baker, who in turn pressured the heroes in this story not to advocate against corporations, and not talk to the media.  Wow.  Now the JBCC is evicting the C.C.F.C., apparently because “the mission of the C.C.F.C — to protect children from harmful exploitation by corporate marketers — is not in line with the Judge Bake mission”.

Now Karen Schwartzman said Judge Baker received no money, and no promise of money from Disney, so one has to wonder what form of motivator Disney used?  Hints of research grants (this wouldn’t be money to JB after all, but to the childrens center), or pressure through Harvard (does Disney donate or have joint research programs with Harvard)?  Or perhaps it was just the threat of frivolous lawsuits.  Disney is a particularly nasty beast, because, in addition to having the huge financial resources available to all major corporations, they have such an overwhelming hold on the American collective unconcious.  I think it’s hard for the average American to think of Disney as evil, which no doubt has  helped in Disney’s efforts to plunder and deny the public domain.

There’s a fairly good article at the NYT.

America’s lack of conservatives

Glen | January 27, 2010 2:33 am

My mother and aunt Herta called me last night. I forget how we got to it, but I was explaining to Herta how low taxes are here in Switzerland, and how much more the Swiss government provides with that money than the American government manages to provide despite a much higher tax rate. How big is the discrepancy? I have roughly %13 in withholdings, including all taxes and unemployment insurance. Switzerland has a private, but highly regulated medical insurance system (a lot like what Obama is trying to push through), so I do have additional health care costs, compared with other countries. That money pays for an incredibly stable and responsible government, which takes great pains to protect the air and water quality, provide an excellent education system with top class university educational available, virtually for free, for anyone willing to work for it. They have the best mass transit system I have ever seen anywhere. They do a commendable job protecting the environment. Crime is virtually non-existent and emergency systems and infrastructure are second to none.

So we got to talking about how this works so well, and I said I thought it was partly thanks to the excellent system, and partly thanks to the culture (which has its defects, but certainly contributes to the well functioning democracy). Herta made the comment that yes, the Swiss are very conservative, responsible voters. So I took a breath and said, well, yeah, that’s right, the Swiss are conservative in the sense of the english adjective, but not in the sense typically used in American politics.

The problem is, there is no real conservative political group in the United States, if we consider conservative to mean cautious, thinking far into the future, and making sober careful political decisions. American so-called conservatives, i.e. the Republican party, are dangerous radicals. Whenever the Republicans are in power they institute dangerous and radical social, political, environmental and economical changes, whose consequences often take many years to manifest. A real conservative would carefully weigh the merits and demerits of opening new territories for exploitation. A real conservative would have looked at the trends with oil production and the consequences of oil dependence and global climate change back in the seventies, and begun making plans. American so-called conservatives just say “deregulate!”, “drill baby drill”. The Republicans, who call themselves conservatives, essentially follow the greedy-algorithm, which basically consists of the “take the step which gives me the largest immediate gain”. This algorithm leads to dangerously unstable outcomes, both in computational science, and in real life.

Fedora 12: Configuring it like I like it.

Glen | January 13, 2010 8:45 am

Well, Fedora 12 is out. I use Fedora, because their target audience is people who would be inclined to, and be able to, contribute to free software. This means the target audience is more savy than the target audience for, for example, Ubuntu. I’m tired of OS’s aiming at the least common denominator. An OS that’s efficient for a skilled user differs from one that attempts to idiot proof things.

Of course there are a few steps needed to get Fedora working like I want it to. They are only slightly modified from my Fedora 11 steps:

  1. Fix the DNS lookup bug. On all the machines I administer, this manifests itself as massive dns lookup failures, with the effect that although you can ping an address, you don’t have any internet access (no web browser, no yum…). This answers the question: I have an internet connection, but I can’t use the web, WTF?
  2. Access to fusion.  Fusion provides all that useful stuff that’s not in the default fedora repo, like mplayer and codecs that might be subject to patents.
  3. Add MP3 support/get Amarok working.
  4. Get Flash working (people need their youtube).
  5. Graphics acceleration
  6. Add ntfs support.
  7. Disable physical file folders.
  8. Enable Ctl-Alt-Backspace
  9. Deal with the “my laptop hangs while booting bug” if applicable

1. Fix the DNS bug
Apparently there is a known bug, which mucks up the domain name lookup with certain ISP’s, of which bluewin (my ISP) is one. In the bug description the complaint is that you get unreliable name lookups, but in the case of bluewin (my isp), you get no successful lookups. A workaround is:

  1. Find out the network interfaces the machine has using the command “route -n”.
  2. Create a file: /etc/dhclient-< your network interface name here >.conf consisting of the line
    prepend domain-name-servers 127.0.0.1;
  3. Start dnsmasq (’service dnsmasq start’).
  4. tell dnsmasq to start every time the computer does (‘chkconfig dnsmasq on’)
  5. restart the network connection (’service NetworkManager restart’)

So on Sunny the Sony I want to get my wireless LAN working right on Bluewin. Running ‘route -n’ tells me my network interface is ‘wlan0′ (which I could have guessed). So I do the following (as root of course):

echo 'prepend domain-name-servers 127.0.0.1;'  >  /etc/dhclient-wlan0.conf
service dnsmasq start
chkconfig dnsmasq on
service NetworkManager restart

And presto, my internets work again. I don’t put it on this list, but at this point I run a ‘yum -y update’ to get the base install up to date.

2. Access to fusion:
Fusion is a merge of the largest existing repos, and means to be the extra repo for fedora, including (separate) free and non-free packages that Fedora is not able to ship of license or export regulations.  The following will get you both the free and non-free (as in freedom, not in cost) repo’s:
su -c 'rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'

3. mp3 support.

I still use Amarok, which I am still unsure about recommending. I found Amarok 1 vastly superior to the alternatives however, so I’m hoping Amarok 2 eventually becomes awesome. In addition to Amarok, I want lame for when I rip my CD’s for my car mp3 player, mp3 support for Totem, etc. So I do the following:

yum -y install amarok lame* gstreamer-plugins-ugly xine-lib-extras-freeworld

And things seem to be running all right.

4. Get Flash (i.e. Youtube) working This solution comes from here
Go to  http://get.adobe.com/flashplayer/ , get YUM for Linux, and perform the install.  Then,
yum -y install flash-plugin libcurl
yum install nspluginwrapper.{i586,x86_64} alsa-plugins-pulseaudio.i586
rpm -ivh adobe-release-i386-1.0-1.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
5. Enable your 3d hardware acceleration.

While it’s possible to just download the nvidia installer and get things running, you’ll have to recompile the driver every time you update the kernel.  So it’s easier to use the fusion repository.  You’ll also have to disable the nouveau drivers, which prevent the kernel from loading the nvidia drivers.  This can be done by recreating the initrd, or by adding a command line option to the kernel.  I do the former with the following command:

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut /boot/initramfs-$(uname -r).img $(uname -r)

It’s also necessary to lower the system protection so SElinux doesn’t stop the driver from loading:

setsebool -P allow_execstack on

Finally, you can install the drivers:

yum -y install kmod-nvidia-PAE

Obviously, if you aren’t using the PAE kernel, you’ll have to adjust. You also have to adjust the installed driver if you’re using a GeForce5 or older card. Details can be found here .

6. Make the fat drive writeable, and add NTFS write support, so people can easily work with Windows.
For any fat partition, change the umask in fstab to 000. For NTFS support:

yum -y install ntfs-config.noarch
7. Disable “physical” file folders. This is the annoying behavior, default in gnome, that opens a new window for every folder that you open. Get rid of it by double clicking on a folder, and in the resulting window open edit->preferences->Behavior, and check the box for “Always open in browser windows”. There is a scriptable way to do this, so if someone wants to tell me, please do.
8. Enable ctl-alt-backspace.It always frustrates me when a distro moves away from supporting the power use to supporting the neophyte. I think there are plenty of neophyte oriented OS’s and distros around. I use Fedora instead of Ubuntu because Ubuntu aims too much at the dumb asses, and Fedora tends to support the people who want to learn and be efficient. Unfortunately the Fedora guys do make dumb-ass-friendly decisions, such as the decision to disable ctl-alt-backspace, which I find to be a very poor decision. Who hits this key sequence by accident? Anyway, to enable it in Fed 11 do System->Preferences->Keyboard, choose keyboard layout options and enable the checkbox for “key sequence to kill the x server”.
Fedora claims to be aimed at people who are willing and able to contribute to open source software.  I think people who fall into that category would prefer to have ctl-alt-backspace enabled by default.  What do you say guys?
9. Fix the tpm_tis bug
On several laptop models, including my Sony SZ750N, there is a bug which results in fedora seeming to hang at boot. In fact, it just boots very slowly, forcing me to wait about 6 minutes, occasionally putting out something to the effect of: “tpm_tis: 00:0a 1.2 TPM…” etc. etc. There’s a discussion of the bug here. The workaround is to add “tpm_tis.interrupts=0″ to the kernel boot options (e.g. by editing grub.conf).

Java Gripes

Glen | December 8, 2009 7:51 am

I, for my sins, am now programming in Java. By now I have a lot of experience programming with a pretty large number of programming languages. Java, C++, C, Basic, Visual Basic, SQL, Python, Perl, php, Matlab, etc.

While I have to admit to having a prejudice against Java as YAPL (Yet Another Proprietary Language), I knew that in all likelihood I’d be working in it for some time, and I did my best to reserve judgement and find what is good in the language.

By now though, I think I’ve gotten good enough in Java to have an informed opinion. While Java has its strengths, and it could certainly be worse (it could be visual basic for example), I’m generally unhappy with it. I think the big problem I have with Java is it marketed to be used in application domains where it simply isn’t right choice. I suspect that for medium sized projects, free projects, projects which require a heavy network integration or should run as an applet, it’s probably a good language. For certain problems I would even believe that it’s the best choice.

But for large, complex projects, in particular projects in which you want to sell a binary and not sell a source code, forget it, Java’s a nightmare. But I don’t want to get into an encyclopaedic discourse of the ills of Java. I actually just want to use this forum to vent my frustrations with the language, and keep a kind of running diary as problems cross my mind. I suspect it will be useful when I need to explain to someone why I don’t care for a language. Normally when I get involved in such conversations my frustration is to palpable for me to explain my concerns lucidly: I’m to busy trying to get my head above the frust.

For today, let me just gripe about how Java has too many advocates. I suspect that this ill, along with most of Java’s ills, stem from the fact that java is owned by a corporation which expends a lot of money and energy trying to brand the language, generate a community, and in general get people feeling all tribal about being a Java programmer. Consider this blurb on the back of “Killer Game Programming in Java” which has on it’s back cover blurb “As a result [of poor documentation] Java has become a second-class citizen to C, C++, and assebly language when it comes to hardcore game programming. This book changes all that…”

Ugh. That’s just typical of the Java world. The book jacket isn’t trying to sell a book, it’s selling Java to a problem domain. The fact is Java isn’t the right choice for a “hardcore” game. My understanding of the term “hardcore gaming” is pretty much, by definition, to be “resource intensive”. That means efficiency and complexity (both algorithmic and code-complexity) are an issue, and that’s where Java just isn’t a good choice. Not only that, but games tend to be commercial undertakings, which means selling binaries and license management etc, which means obfuscation, which means you can’t break your code down properly into modular units and libraries. Generally if it’s really computationally intensive, you want to manage your own memory…

Now, I have to use Java for a 3D application. I have no choice. So I’m happy to have the book and I’m sure it will be useful to me. I’m also sure that there are a number of applications for which Java’s 3d apps are a good choice (smart phones, web apps, free software projects), but trying to convince the reader that the only thing keeping Java from being as good a platform as C++ and assembly is the documentation, well that’s just disingenuous shilling. The Java community is like the P.T. Barnum of programming communities.

Atheism and the holidays

Glen | December 2, 2009 4:50 am

Well, Switzerland just passed an anti-minaret initiative, which forbids the construction of new minarets in Switzerland.  It was a very dissappointing result.  Preliminary polls indicated that only 36 percent of Swiss favored such a law, which leads  me to believe that the racist, fear-mongering, irrational and emotion-based ad campaign was successful.  Members of the EU made public statements to the effect that ’some issues shouldn’t be up to the people”, in other words, Switzerland suffers from an excess of Democracy.

Well, sometimes Democracy leads to poor results, but so does every other form of government.  Who decides what gets to go to the people?  Would Switzerland be better off with a top-down psuedo-democracy like the United States, where the corporations reign so supreme we’re struggling to impose some oversight on health insurance providers?  Nuts…

Now me, I’m almost okay with the minaret ban.  The only real problem is, it’s discriminatory.  The SVP claim that there is a need to  ban minarets because they symbolise political power of a religion.  I actually agree with that completely.  However, to be fair, we need a ban on all new religious towers.  Band the goddamn church towers I say.  I can’t tell you how many people I know who get awoken by goddamn church bells every weekend.

Bettina was so upset she started talking about moving to the states.  Well, if we ever fix our health care system, that might be something I would consider.  Certainly I don’t think such a ban would stand up in America, but that’s largely because we have such an undemocratic system of government, where the laws scarcely reflect the will of the people.    On the other hand, religious tolerance is a deeply engrained ideal in America, so perhaps a similar vote would turn out differently there.  I’m not entirely sure.

America does idolize religious tolerance and freedom.  You have the freedom to believe whatever you like, as long as you choose to believe some irrational bullshit based on some book written by a lunatic or a charlatan at least a hundred years ago.  It’s perfectly acceptable to believe that god screwed some virgin 2000 years ago, that the earth is only 4000 years old, that jesus actually lived in the states at some point and that the indians are the lost 13′th tribe of Israel.  But god forbid you believe in reproducibility and the evidence of your senses.  God forbid you believe in rational thought.  If you conclude that the idea of a cosmic father figure is kind of silly, well, apparently you’re as bad as Hitler in America’s eyes.

Think I’m exagerating?  Maybe.  The NYT has a nice article about secular humanists, who are conducting a billboard campaign.

“We don’t intend to rain on anyone’s parade, but secular people celebrate the holidays, too, and we’re just trying to reach out to our people,” said Roy Speckhardt, the executive director of the American Humanist Association. “To the degree that we are reaching out to the godly, it’s just to say that you can be good without god. So their atheist neighbor down the street shouldn’t be vilified as though he is immoral.”

There have been some interesting responses:

The head of the Catholic League linked secular humanists to figures like Hitler and the serial killer Jeffrey Dahmer. The publisher of “Santa Claus Is Coming to Town” complained about the signs. In Cincinnati, a billboard that said “Don’t believe in God? You’re Not Alone” had to be moved after the owner of the billboard property said he had received threats. In Moscow, Idaho, a sign that said “Good without God. Millions of humanists are” was vandalized twice in three weeks.

Man, so secular humanists are like Hitler and Jeffrey Dahmer. I found the following bit particularly humorous:

“It is the ultimate Grinch to suggest there is no God during a holiday where millions of people around the world celebrate the birth of Jesus Christ,” said Mathew D. Staver, founder and chairman of the Liberty Counsel, a conservative religious law firm, and dean of Liberty University School of Law in Lynchburg, Va. “It is insensitive and mean.”

I just want to mock the guy for using the word “Grinch” in such a dumb way, and to further mock him for working for the “Liberty University”, and being chairman of the “Liberty Council”. How very newspeak.

You know, as an atheist I’m constantly subjected to religious propaganda, in advertisements, in television shows and movies, at people’s weddings… recently I was at a wedding where the priest recited that verse that goes “and the lord god gave us dominion over the earth and all the animals and all the fish and the sea… be fruitful an multiply…”. Is there a more harmful belief in this day and age, than to think that we should dominate the planet, that we need more children? What we need is a little more respect for our fellow living creatures, rather than more dogma saying we’re somehow special and it’s okay for us to do whatever we like to the little fishies, as they are ours to do with as we see fit.

On the other hand, I’m encouraged that the percentage of Americans identifying themselves as having no religion has more than doubled since 1990. I think we can thank the religious right for giving religion such a bad name, and encouraging people to start thinking for themselves.

Running Skype on 64 bit linux

Glen | October 2, 2009 1:25 am

The skype client for linux is 32 bit. So to run it on a 64 bit Linux installation you have to install 32 bit libraries. In a quick aside, I gotta say: Skype devs, 64 bit tech has been around for years… what the hell is taking you gyum search , the following will get you there:

yum -y install libXScrnSaver.i586 libXss qt.i586 qt-x11.i586

Gecko’s Guide to GIT

admin | September 23, 2009 5:48 am

I’ve convinced my work colleagues over at Gecko-Research to start using Git.  I’m a git neophyte myself, but now I’m in the position of setting up our Git repository, and teaching my colleagues how to use it. I’ve written up a little guide to using Git, aimed as a reference for myself and my colleagues.   As such, it’s just a list of the commands that we use on a regular basis, or the situations we are often confronted with (and how to deal with them).  The post is totally a work in progress, so it will likely change quite a bit over the next few months as I flesh it out as needs arise.

If you are interested in a general introduction to git, or a tutorial, I would suggest one of the following:

Git has a reputation for being difficult to use, or counter intuitive, but I think that’s just due to it being a distributed rather than central revisioning system (based on the concept of a central repository).  Some things do get tricky, but I think it’s primarily because git lets you work in new ways that can potentially trip you up.

Central repository systems are easy to conceptualize,  and they’re what people of our generation are used to, so they are easy to get started with.  Git  is based on a distributed model, in which each repository is equal (we can assign different roles to different repositories, but it’s not technologically imposed).    Considering that distributed systems are so becoming the norm (bittorrent, wikipedia, the free software movement, multi core computing, creative commons, blogging, twitter…) ,  I suspect tech heads growing up now will find thinking in a distributed way as simple as we old farts find the top-down, central-repository, client-server model.

Daily Use

Note that these comments are aimed at my colleagues. Your work situation may vary.

commiting

You should commit your work whenever you get anything done that can easily be summed up in one line (the commit message). There are other reasons to commit, so when in doubt, do a commit. It’s easy to go back if you need to. Committing doesn’t go on the net, it just tells your local git repository that you got some work done, and puts those changes onto the local index (git’s database of what’s what). Frequent commits will save you hassles. The command is:

 git commit -a

The -a tells git to commit all modified files (which are being tracked). You can also just commit specific files by using

 git commit <list of files>

more to come…

Configuration

gitignore file:

A gitignore file specifies intentionally untracked files that git should ignore.  It concerns files that are not tracked by git, and that you don’t want to track with git, so temporary files, results of compilation, compled documentation, etc.  The man page is here.  When git is determining what files to ignore it:

  1. Checks for a relevant command line option
  2. Check patterns from a .gitignore file in the same directory as the path, or in any parent directory.
  3. Check for patterns in $GIT_DIR/info/exclude
  4. Check for patterns in the configuration variable core.excludesfile

The man page describes the patterns, which are anyway pretty close to the usual *nix conventions that you’ll probably just get them right.  As an example, here’s my .gitignore file for a netbeans project:

*.class
*~
build/
javadoc/

This tells git to ignore any build or javadoc directories, as well as emacs temporary files.  Taking the time to setup a .gitignore file when you are starting a new project with git will make everything else more convenient down the line.

Collaboration: tracking multiple branches

Because of some wonky security policies on our institute’s network, we can’t directly push and pull from each other, so we go over a central repository. Many of us work on multiple machines, so we want to use the central repository as a convenience tool for synching up between our machines, but we don’t necessarily want out colleagues pulling our work-in-progress. The solution is for each of us to have our own branch. This post tells us how to start a new branch on a remote git repository. The steps are basically:

  1. Create a remote branch. This can be done with the command
     git push origin origin:refs/heads/new_feature_name

    (assuming your remote repository is called origin).

  2. Make sure everything is up to date with
     git fetch origin
  3. Start tracking the new branch with
     git checkout --track -b new_feature_name origin/new_feature_name
  4. Make sure everything is up to date by doing a pull.
    git pull

The third command,

 git checkout --track -b new_branch origin/new_feature_name

is one you’ll run several times, every time you clone a repository somewhere, you’ll want to use to track all the various branches you are interested in. That way you can checkout your colleagues (or bug fix) branches when you like, and merge them into your work whenever it is useful.

Situations

Deleting a branch. Okay, so you’ve been branching all over the place, and now you realize you have some dead hanging branches you really don’t want cluttering up your repository anymore.   To get rid of a branch on the remote repository, you’ll want to do the following:

git push origin :head/branch_to_delete

An open letter to Antonio Maria Costa

Glen | September 22, 2009 4:06 am

Antonia Maria Costa, the UN “Drug Czar”, has written a letter to the guardian asking “How many lives would have ben lost if we didn’t have controls on drugs”. It riled me up enough that I had to shoot off a response:

One has to wonder if Mr. Costa believes the nonsense he is promulgating, or he is simply performing his function as a propaganda minister for the prohibition industry to the best of his abilities. Both could reasonably be the case.

He posts the question

How many lives would have been lost if we didn’t have controls on drugs?

and goes on to discuss the current policy of drug prohibition as though “control”, “prohibition”, and “regulation” were synonymous. They are, of course, not. We have systems of control in place for the regulation of of alcohol and tobacco, both of which are significantly more dangerous and more addictive than many drugs which are currently prohibited my most nations (for example Cannabis, LSD, Ecstasy). By comparing the effect of regulation of alcohol against the effect of prohibition of alcohol, we can easily see that we protect our citizenry better through regulation than we do through prohibition. Regulation results in less crime, less overdose, less underage use, in short more control than does prohibition.

The current prohibitionist policies and irrational assessments of drug harm result in a situation that is quite simply out of control, and this is what we in the “legalization chorus” object to. Or does Mr. Costa wish to make the claim that things are in control in, say, Mexico? Or the United States for that matter?

How many lives would have been saved if our children had been obtaining honest information about the relative harms of drugs, rather than dishonest propaganda? How many lives would have been saved if our addicts (I am writing as an American here) could have gotten treatment and counselling for their problems instead of getting labelled as a criminal and ostracised as a criminal? How many lives would have been saved if clean needles were freely available? How many lives have been lost in botched drug raids, in drug violence?

The facts, Mr. Costa, speak against you, and your rhetoric and word-play is too weak to obscure them. Of course we need controls on harmful substances. We in the chorus are not asking you to stop controlling potentially harmful substances. We are asking out governments to regulate them. We simply want sane and rational regulation, rather than jingoistic prohibition.

Exit strategies for the war on drugs, part1: Framing the discussion

Glen | September 8, 2009 6:35 am

I am gradually of the opinion that drug-policy reform is now a sure thing, and the discussion will need to shift to alternative policies.  This is the first in a multi-part series, in which I prattle on about what comes next after the war on drugs.  This post attempts to formulate a useful basis for the discussion of the subject.

The Guardian has an excellent article: Prohibition’s failed. Time for a new drugs policy. The first line sums it up perfectly “http://www.guardian.co.uk/commentisfree/2009/sep/06/editorial-drugs-policy-latin-america”.

It’s clear that the debate now needs to be about what comes next.   We’ve created a stupid war against the citizenry our own country.  It’s completely fucking up our civil liberties, and in fact the entire premise is completely unconstitutional. Argentina’s government has realized this, and if we lived in a healthier democracy, we would have figured out the same thing by now. The good news is we seem to be getting there, so the time for figuring out an exit strategy would seem to be now.

The issues aren’t simple. We have a monstrous police-state machinery in place. We have to pull out the troops and integrate them back into society, and provide them with counselling to reintegrate them into normal society. While this should be an easy sell, as there is a peace-dividend (reduced spending on law-enforcement and prisons, improved civil liberties, reduced crime…) the drug-warriors don’t want to give up sucking at the government teat, and form a powerful lobby. The most difficult question of course is “okay, prohibition doesn’t work, what now?”.

Unfortunately, the people who should be working on this are still too afraid to admit prohibition has failed.  While they get up to speed, the most productive discussions in this arena are taking place online, in in the periphery of other discussions. I’d like to discuss the issue more directly.

Goals:

So, let’s identify some (hopefully) uncontroversial goals, by which we can judge whether a drug policy is working or not.

  • minimize addiction rates.
  • minimize overdose deaths.
  • protect children and uninformed consumers.
  • minimize crime (e.g. junkies stealing to get their ‘fix’)

There are other effects which are more difficult to quantify, such as health impacts (cancer and such) and effects on productivity. While these are worth considering, I think it’s a reasonable approach to consider them second-order effects. Once we have a policy which optimizes the easily measured first-order effects, we can worry about the second order ones. The key thing to keep in mind here is prohibition is a nightmarish failure, regardless of which effects you consider. It doesn’t accomplish any of the desired effects. The results of prohibition are so disastrously bad, that complete deregulation might end up working just as well, without the enormous cost (socially and economically) of funding the war.

An error the drug warriors make is framing the discussion in terms of “zero-tolerance”.   They want to completely eliminate all drug use.  What the last 100 years has shown is that that won’t happen. You can keep spending more money, you can keep use the constitution as toilet paper after shitting on people’s civil rights, you can get more and more violent and intolerant, you can impose increasingly draconian laws, and people will still use drugs. The figures are there.  It takes enormous cognitive dissonance to deny them, so let’s stop doing

There remains of course the question of how much we are willing to pay to achieve those goals. I suspect that the people who are so willing to spend billions on the drug war, will be less willing to spend the same billions on counselling, care, rehabilitation, education, and maintenance programs. Fortunately, the drug war has been so damned expensive, anything we come up with likely be much more effective at a greatly reduced financial cost.  This will allow us to frame all such harm reduction spending in terms of savings over the prohibitionist approach.

Having identified a set of goals which I hope we can all agree on, let us consider what will be needed to implement a sane drug policy.  It’s my conviction that a good drug policy will involve the following components.

  1. Rational evaluation of drug harm.
  2. Honest drug education.
  3. Honest drug scheduling (a rational classification system).
  4. A sane handling of the respective classes of drugs.
  5. Reality based assessment of policy effects.
  6. More power to states and communities for deciding drug policies.

Each of these points is non-trivial, and will require some discussion.  Thus they will be the subject of future posts.

Some might disagree with necessity of a drug scheduling system at all, and would advocate regulating all drugs like we do alcohol.  While I see some merits to such an extremely libratarian approach,  I would argue against pursuing such a goal for the following reasons:  It’s unrealistic in today’s political climate, it’s too rapid and extreme a change, and I suspect such a policy might be nearly as harmful as the current policy.  If it’s not clear to me, it’s going to be extremely unpalatable for the average citizen.

Keeping the classification system allows to handle the approach in a more reasonable and rationed manner.  We can agree to pursue a policy that accomplished the stated goals, and analyse each drug case by case, based on a rational assessment of its relative harm, made by qualified medical researchers. It also allows us to separate the questions “do we need drug policy reform”, and “what is a good drug policy for drug X”.  The answer to the former question is simple, the answer to the latter is, in some cases, rather difficult.  For example, I am torn on what constitutes a good policy for Heroin or Crack (I do know that current American policies are the wrong answer, but I’m not sure heroin and crack bars are the right answer).

Conclusion and caveats:

To successfully advocate for drug policy reform, I think keeping the above goals in mind is extremely useful.  It provides a concrete, uncontroversial framework for evaluating the failure of current policy, and provides some useful indications for steps in a positive direction.  There may be additional goals which are useful to bring into the discussion, but in the terrible situation we currently find ourselves in, we should strive to work toward unifying, uncontroversial goals.  Once these are acheived, we can open up more controversial, difficult discussions, such as “what right does the government have telling me what I can put in my body anyway”, or the ethical merits of a drug-free lifestyle versus the spiritual benefits of psychotropic drugs.