One of the most frustrating things I do in my daily work is wrangle with CSS. Trying to get a particular website to display correctly on multiple browsers and screen resolutions without ruining my HTML semantics can be an extremely painful process. Anyone who’s ever had to do this knows the reason: browsers implement CSS differently, and sometimes (in the case of Internet Explorer) incorrectly and without any sort of sanity. The causes behind these different implementations are various, but they include varying interpretations of the standard, disregard for the standard, and the fact that users cannot submit patches to improve CSS support in proprietary browsers.
Groaning about CSS bugs in Internet Explorer is a favorite topic on forums across the Web, but most people seem resigned to their existence and (begrudgingly) implement their own hacks and fixes, including reverting to table-based layouts. I have never seen or heard a cogent discussion of the reasons why Internet Explorer is the way that it is, or what can be done about it.
This problem is not unique to web browsers and web design. It is an inherent tension present whenever proprietary software is used to read and write data that’s supposed to adhere to an open standard. Open standards tends to evolve; proprietary software does not tend to evolve to meet them. This is partly due, I assume, to a resource allocation problem: it’s possible that even huge proprietary software companies like Microsoft can lack the resources (or willpower) to stay abreast of changes in standards over which they have little control. A bigger contributor is psychology: a culture of software ownership does not tend to foster the values of deferring to standards for the good of a group, sharing code and patches, or contributing in any other way to a community which does not recognize software property “rights.”
I have started my first “official” free software project! It’s called Mnemonic and it is available from launchpad.net. Here’s how I have described it:
Mnemonic is a Python library for analyzing experimental data about human memory. It contains functions for performing several specialized analyses and a library which allows users to readily build their own analyses.
If you want to check it out, and you have the Bazaar version control system, you can get it this way:
$ bzr branch lp:mnemonic
Mnemonic is in the earliest stages of development, but I would welcome contributions from anyone who finds it useful. My hope is that it will one day replace the MATLAB codebase at the Computational Memory Lab, where I work as a Research Coordinator. Please let me know if you use it!
I have a second-generation MacBook (bought in spring of 2007), and due to a bunch of recent issues which have turned me off from OS X (e.g., the machine randomly will fail to wake up from sleep, compiling software is a huge pain, etc.), I have been aroused from my complacency and have decided to try my hand at getting gNewSense, an all-free software derivative of Ubuntu, running. I didn’t expect this to be an entirely painless or automatic process — I had tried Ubuntu on the same hardware a little over a year ago, and found it to be lacking — but I needed a distraction from studying for the GRE, and so I dove in last weekend and burned a LiveCD.
Dear GRE PowerPrep Tech Support:
I want to inform you that, because your software is proprietary and because it is only made for the Microsoft Windows operating system, I am completely unable to use it. I hope that you will take the technical steps necessary to make the software available on other platforms, and release the source code under a free software license, such as the GNU GPL.
I have tried to run the software in a variety of ways: I first tried to use it at home, using the WINE Windows compatibility layer for POSIX systems, without success. I also tried to use a Windows machine at my library, but I cannot use it on that computer either, because I do not have the administrative privileges required to install the software. I do not have access to another machine which runs Microsoft Windows. The PowerPrep software is therefore completely unusable to me.
I feel that this puts me at an unfair disadvantage as I prepare to take the GRE, and I am sure there are others who are similarly disenfranchised. I hope that ETS views this as a problem and will take steps to remedy it. The best way to make sure that everyone has an equal opportunity to use your software to prepare for the GRE is to release the source code and compiled packages for a variety of platforms. You won’t lose any money, since no one is paying for the software except by paying to register for the test, which they will continue to do; and you’ll be ensuring fair access to your software and services to everyone, regardless of their choice of computing platform.
I hope you will consider this issue as you make revisions and prepare future releases of the PowerPrep software.
This Slashdot story details a proposal the Motion Picture Association of America has submitted to the FCC. The proposal would allow the MPAA to use Selectable Output Control (SOC) on the distribution of high-definition films, which would prevent consumers from saving them to (e.g.) a DVR. The MPAA claims their proposal would benefit consumers because it would allow them to distribute these films on cable and satellite networks before they are released on DVD, and because it would provide consumers an “incentive” to buy and HDTV before the digital transition.
Here are the comments I sent the FCC:
I was recently approached by Michael Weisberg about a problem he was having using NetLogo. He has designed a NetLogo model and is running many repetitions of it to collect a broad dataset. This process is getting computationally expensive, and he wanted to farm out the experiment runs to different threads to speed up processing time.
I don’t know all the details, but it turns out that NetLogo, despite being Java-based, is not multithreaded, so Professor Weisberg is running these jobs on separate NetLogo instances running on separate machines, linked up by Apple’s Xgrid. He needed a way to take an experiment definition and split up the runs, so that the work could be spread to different nodes in the grid.
I want to draw attention to two sites that I’ve recently discovered, and which deserve the attention of democratically (small “d”)-minded folk: Change-Congress.org and Metagovernment.org. The first is about the United States government. The second is a “meta” government, an open document that aims to (eventually) govern governments.
Read the rest of this entry »