Loud minority of color haters

I was struck by one sentence in the git-svn course.  It’s about the way a computer program displays its output. It’s about colors. Some people like to see code annotated with color, like this:

Colorful code

You can see, that keywords from the programming language are highlighted. Colors are a new channel of information transfer, highlighting code syntax allows us to use our natural ability of color recognition, to work with the code more efficiently.

Without colors, this code looks like this:

Code with no colors

Sure, you can still read the code. But… is the word “class” is spelled correctly? Are all the quotes balanced?  You don’t know, unless you examine it quite carefully.  With syntax highlighting, you can determine that by looking: is it yellow or not?

However…

some people hate colors way more than the rest likes them

…and that’s the reason why color highlighting is turned off in git by default. I once heard a convincing argument against colors: that command “ls” with option “–color” calls function stat() on every file it lists, which under certain circumstances is a highly undesired thing; but this argument was then followed by “real UNIX doesn’t have colors” (is it a form of a “real programmer” thing?), which destroyed the whole impression. Yes, sometimes you might want to turn colors off…

But why turn the option off by default for the whole project? The majority has to give in because of loud minority?

In a democratic system, and I believe Free Software movement is about democracy, software should be optimized for the largest benefit of the whole, or at least the majority.

If I find myself among the minority and I can’t get the majority willfully convinced to my option (without hate speeches), I’m going to give in. And I expect the same from others.

Advertisements

Watching an interlaced DVD with MPlayer

Resuming my tech-notes blogging…

I’ve recently bought three Studio Ghibli’s movies. I don’t have a TV-set (yes, lenina, I’m still not watching any TV), so I’m watching DVDs on my laptop. DVDs I got are interlaced, when watching them on a computer, you can see small horizontal stripes along the sides of moving objects.

On a TV-set, this is not a problem, actually, interlacing makes animation on TV-set smoother. But on a computer, all you get from interlacing is stripes.

MPlayer comes with few deinterlacing plugins, from which yadif and kerndeint seem to work best (but I’m open to other suggestions). However, my video output is GL:

maciej@clover ~ $ cat .mplayer/config
vo = gl
autosync = 20
monitorpixelaspect = 1
af = volnorm=2:0.6
ao = pulse

The problem with those deinterlace filters is that they don’t cooperate with the gl video output. Fortunately, there’s an easy fix for that: append scale filter.

mplayer -vobsubid 1 -vf kerndeint,scale dvd://5

Replace 5 with your title number. The vobsubid option tells MPlayer to display subtitles. I like to watch Japanese movies with the original soundtrack and English subtitles. Usually, English dubbing reveals too much about the characters and lacks the original expression.

Scientists, share your source code

It’s a typical example: the paper is published, describing a new algorithm for data analysis. Mathematical background is described in the paper, roughly. A piece of software that implements it, is written and available for download from a web-site. You visit the web site, download it and run it. You get unexpected results. You wonder what’s happening. You go back to the site and look for the source code ― and it’s not there.

I’ve recently visited and tested two pieces of software doing basically the same thing: predicting missing genotypes. There is no source code for any of those two, and fastPHASE additionally needs you to register and accept an academic license to use it, introducing an annoying delay in obtaining the program.

By the way, why are all those scientific program names written in UPPERCASE? Because it creates an impression of IMPORTANCE? Just a side note.

Scientists work for the sake of humanity (I hope), striving to make our world a better place. Right? So why don’t they make the source code available?

Not releasing source code of scientific software is a Bad Thing, because it harms research in the field and is antisocial. The ones that lose, is the closed-source project itself, other projects in the field, and subsequently, everyone who could have benefit from the research. The only one who can possibly benefit from it, is only the author, but I highly doubt that they ever do.

Keeping the source code secret is a typical practice for corporations, who seek to profit from selling the binaries. I don’t know what business model can be built on restricted source code access in science, but I don’t think they’re every going to make any money on that.

What could be other reasons not to release the source code? Remaining the sole author, keeping all the credit? Keeping complete control? Hoping to sell license to business clients?

The main effect of making the source code unavailable is that the program internals cannot be inspected and analyzed. It’s only a binary that is available; people can obtain it and run it, without being able to modify it.

All the general arguments pro open-source software apply to the scientific software. Obstructing the software has several negative results.

  • Fewer people use the program.
  • None of the users can adapt or fix the program.
  • Other developers cannot learn from the program, or base new work on it.

I think that should be enough, but I would like to add two points that apply specifically to scientific software.

Loss of credibility

In scientific research, they key point is to prove and verify the results. With closed source, other scientists can only run the software and examine the output, without being able to check if the program really does what the paper describes. Being unable to do that, the rest of the world has to believe the authors. Do they have something to hide?

I don’t think scientists would actually question a paper as a whole because of the source code unavailability, but it certainly makes raises some concerns about its quality.

It’s antisocial

Scientific research is usually funded from government grants, which in turn come from tax payers. Scientists are not corporations who fund themselves. It’s the society, it’s the other people who effectively pay for the research (through various funding organizations), and I believe it’s a moral obligation to, if they share their research results, share them fully.

By not releasing the source code, they only make an impression of publishing their work. They can get away with that, because many people will think that, if they can download the program and run it, it’s “available”. But it’s not!

Please, dear scientists, do what guys from projects such as GNU Octave, or R project do: share your source code. Everybody will benefit from it, including your projects and yourselves.

Spin

Spin website screenshot
Have you seen the short (8 minutes) film “Spin” from Double Edge Films? You can watch it on-line, or find it as a part of a German television program about the Open-Source and Creative Commons licensed movies. It’s also available in Google Video, but at least on my computer video and audio go out of sync, what effectively destroys the expression of the sound and image. The television program has the best quality. Spin begins in about 24 minutes 30 seconds of the program.

Maybe I’m biased with this, but the Spin’s story is much like software development and bugfixing. I couldn’t think of it any other way that the DJ is a programmer, the city is a program and all the wrong events are software bugs.

Forum with tags

Since 2003, I’ve been maintaining a forum. It was constantly growing, from 60 users to 1800 at the time of writing. As the forum was growing, the demand for moderation work was growing as well. I recruited moderators from the most active and trustworthy users. It helped maintain the order on the forum, but the load on the moderators was constantly increasing.

While learning about the new Web 2.0 services, I got an idea of finding a forum engine with tags. I found a mod for phpBB, which adds tags, but I must confess that I don’t particularily like phpBB and want to move out of it.

Continue reading “Forum with tags”

Gentoo installation feelings

Starting from my favorite Gentoo site, I came across this site, where I found this:

“The Gentoo install was like finding a forest, cutting down the trees, breaking a leg, getting out of the hospital, coming back, taking out the stumps and clearing the land of rocks, planting wheat, building a mill, making flower, making dough, then building an oven in which to burn it to a crisp, stealing a cow, milking it, churning the butter, picking berries, making jam. YUMMY! Breakfast is ready, but you don’t have time to eat because it’s time to update everything, including GCC, which also means a complete recompilation of everything.”

ROTFL! You’ve made a good point, to a degree. But do you know what has pushed me out of Slackware?

Continue reading “Gentoo installation feelings”

Why rewrite Wengophone?

I’m still using Wengophone Classic, which works well, it just has some annoying issues.  I would expect the developers to eventually fix them, but the whole development powers are invested in the Wengophone NG (a.k.a. 2.0). So those little things will keep bothering me until the new version of Wengophone is usable, which doesn’t seem to happen soon. They publish the betas, but I neither could run the binary version nor compile the source code.

The main three problems are not that big, but since they happen very often, they get more and more annoying.

Continue reading “Why rewrite Wengophone?”