Writing made easy for young students: Introducing WriteType

After several months of development, it is finally time to introduce the world to WriteType.  WriteType is an application designed to aid young students in writing and typing on the computer.  It offers text completion to make touch typing more efficient.  It also will read back the document with one of the four implemented text-to-speech engines, enable teachers to easily highlight areas for review, and more.

Why does WriteType exist?

My mom (an elementary school teacher) came home one day raving about the new coolest piece of technology acquired by her school.  These devices helped students to type more easily by offering them suggestions as they typed.  Becoming slightly suspicious, I asked for more information.

Apparently, the school had been purchasing these $400-500 devices because they offered word completion.  These devices, vaguely reminiscent of the infamous AlphaSmart series, were anything but ergonomic or easy to use.  Word completion was the killer feature that made paying $500 to type on a itsy-bitsy LED screen seem like an attractive offer.  It would seem that a feature included by default in most cell phones would have at least one desktop implementation, however a little bit of research showed that this awkward brand of “computer” was indeed the only way to make use of auto-completion while typing documents.

The shock effect alone was enough to motivate me to spend the weekend hacking up an initial version.  I sent out some early versions a local elementary school to be tested.  But as time went on, I began hearing from other people as well.  If a program that achieves such a feat was in such high demand, it is quite amazing that no proprietary software company has made any attempt to capitalize on the needs of schools.  Of course, readers of my blog understand how I feel about greedy educational companies who claim to want what is best for education but really just want to be filthy rich.  Because of these beliefs, I had no choice but to release WriteType as free software.

Where can WriteType be downloaded?

Downloads are available at the WriteType homepage.

How can YOU help WriteType?

  • Teach WriteType to a child or give it to a school
    • By helping out students, you are helping WriteType.  WriteType exists to benefit students, so the more that have access to it, the better.
  • Submit bug reports
    • I am able to test WriteType on a GNU/Linux computer, but my testing can only go so far.  It is vital that WriteType is stable if it is to be used to benefit students.  Bug reports can be submitted on Launchpad.
  • Submit feature requests
    • The best feature request come from those who use WriteType frequently.  Any problems, suggestions, etc. can be submitted as a Launchpad bug report with the tag “feature”.
  • Package WriteType for Windows
    • I have a limited ability to make packages for Windows, so more higher-quality Windows releases would be greatly appreciated, since that is what most schools will (unfortunately) be running.
  • Package WriteType for your GNU/Linux distribution
    • Currently, I have only a .deb package and a Python package.  Any other packages would be welcomed.  I also tried (unsuccessfully) to create a working PPA on Launchpad for *buntu distributions.  If anyone with experience on this would be willing to give me some advice, that would be very much appreciated.
  • Translate WriteType
    • If you are interested in translating, let me know and we’ll talk privately about it.
  • Submit a patch or join the development effort
    • If you are a Python developer, I would love your help!  The more, the merrier!

If you have any questions, you can ask in Launchpad Answers or leave a comment.  I hope you enjoy WriteType!

Published in: on May 15, 2010 at 8:03 pm  Comments (18)  

The Magic Black Box Paradox of Freedom

The free software community understands that free software gives the user more freedom than proprietary software.  Proprietary software confines its users, prohibits them from making changes that would allow everyone to benefit, etc. Free software advocates (myself included) have a habit of claiming that using free (libre) software means the same thing as having freedom.  But does the fact that someone is using free software necessarily imply that the person has as much freedom as is possible?

Freedom is the ability to do what one wants.  Some restrictions to freedom are understandable and necessary.  No sane individual would argue for the freedom to kill, or the freedom to steal.  In modern society, restriction on an individual’s freedom are most acceptable if said restrictions protect the freedom of others.  The freedom to kill takes away the freedom to live from the killed.  The freedom to steal takes away the rights of property from the robbed.  However, an argument against hate speech, because it hurts others’ freedom to feel safe, is much more controversial.  A line must be drawn somewhere that establishes the maximum possible freedom for all individuals.

In the same way that freedom must be balanced to give the maximum amount of freedom to everybody, each of us must make decisions to balance our own freedom every day, whether or not we realize it.  When we purchase a candy bar, we give up our freedom to spend that money elsewhere.  We also, however, gain the freedom to use the purchased candy bar in any way that we choose.  In other words, we exchange one freedom for another.

In computer software, the application of this idea is less straightforward.  Each person must make a choice between free software and proprietary software.  Those who value freedom will always choose free software.  Those who have less respect for freedom, though, will likely choose the proprietary software.  To these people, the restrictions of the software are not worth the possible loss of “the freedom to understand how to use an interface at first glance” or “the freedom to use one’s computer the same way one has always been using it”.  They make the choice to give up “the freedom of not having someone else completely control one’s computing environment” in exchange for some other smaller freedoms.   However, those who recognize the importance of “the freedom to understand one’s computing environment” make a few sacrifices.  They give up a little bit of their “freedom to spend one’s time how one pleases” in order to learn some new ways of doing things.  They may give up some of their “freedom to spend one’s money how one pleases” in order to get some professional help.  But in the end, these fans of freedom are the ones who have more of it.  Those who do not care about their freedom give up a little of it every day when they submit to the developers of the software they use.  Those who care made a small sacrifice which allowed them to never have to worry about these restrictions again.

It is true that the majority of the world does not understand the fact that using proprietary software is a violation of freedom.  This is because, to the majority of the world, a computer is a magic black box.  Various peripherals, such as a keyboard, mouse, or camera, allow information to be entered.  Then, that information is magically spit back out in a different form, possibly to someone else in a different location.  I personally can’t even begin to understand the workings of a computer.  Really, how can a library full of books be stored on something the size of a hamburger?  More amazingly, how can any single word from any of those books be retrieved in the blink of an eye?  I am a programmer, but I still don’t understand how the software I write can be fed through this little chip in my computer and be displayed on the screen as something humans can comprehend and use to be productive.  The inside of my computer is a black box to me.  I lose a little bit of freedom every time I use a computer.

One can lose freedom without allowing someone else to gain power.  If you fall down the stairs and break your arm, you lose the freedom to use your arm, even though nobody else has gained any freedom from your loss.  When you use a computer to accomplish a task, you lose the freedom to completely control what happens with that task.  If you use free software, you are better off, as you can modify the software or hire someone to do so.  But free software does not in any way suggest that you have all of the freedoms you would have if you were to complete the task at hand without the use of a computer.  Think about Frank, the marketing agent who barely made it to his presentation on time, only to discover that his laptop battery had died.  He didn’t think to bring the power cord, because his battery life was very good.  By relying on the computer to keep one’s information, one loses the freedom of having said information in a human-readable form.  Frank doesn’t have the freedom to grab his Impress presentation out of his machine because he relied on the black box for that.

Freedom is about so much more than knowing what is happening.  It is just as much about being able to do something about it.   Even a full understanding of what is going on means nothing if nothing can be done about it.  As our technology infrastructure gets more and more advanced, we must give up more and more freedom.  Let’s say, for instance, Frank was ready for technology problems and saved a backup of his presentation online.  When he did this, he gave up his freedom of privacy.  He gave up his freedom of controlling exactly what process the file went through.  But, the root of the problem is still there: he lost his freedom by putting it into yet another magic black box. Using more than one magic black box will never solve the problem; it will only alleviate certain symptoms.  Frank will never be able to give his presentation anyway if his co-worker spills his coffee on the overhead projector, something beyond his control. The fact that the information is “safe” does not mean that the information is free.

When it comes to software as a service, does the term “free” mean anything?  The GNU AGPL license is currently seen as the benchmark for a “free web service”.  Even though the software is provided by some 3rd party, it somehow gives the user the impression that they have complete freedom.  If that user wants to put the software on their own web site, they may do so.  But there are so many other things that are being exchanged for that, to a point that makes it unrealistic.  Any data will likely disappear.  Any connections to other users on the site will likely be lost.  The identification associated with the service (the URL) will no longer exist.  Most importantly, though, most people do not have the time or money to put into running such a service.  Running a reliable, dependable web server requires too many sacrifices of other freedoms, so much so that it is often not worth the use of the software in the first place.  I use Identica, MediaWiki, and Launchpad regularly.  This blog even runs WordPress.  All of these are “free software”, which means I have slightly more freedom than I would otherwise.  But I do not expect these pieces of software to give me anywhere near complete freedom.  They are not just on a magic black box; they are on somebody else’s magic black box.

But, then again, one also must look at the other side of the argument.  Services such give users other freedoms they would not otherwise have.  MediaWiki gives me the freedom to collaborate on documents with people around the world.  Identica gives me the freedom to write about random snippets of my life nobody really cares about.  WordPress gives me the freedom to share with you, the reader, this post.  But at what expense do these benefits come?  No reasonable amount of time or effort is ever going to allow anyone to increase their freedom significantly.  Distributed systems, such as Identica and the future GNU Social, would help a great deal, but in most instances such systems would destroy many of the freedoms granted by non-distributed platforms, namely reliability and time.

Am I suggesting that free software doesn’t matter when speaking of freedom?  Not at all.  What I am suggesting is that, on a case by case basis, we need to review how our freedom is affected by decisions related to technology.  The biggest loss of freedom comes from using a magic black box to solve all of our problems.  Using free software helps a great deal, but each instance of computer usage comes with a loss of freedom.  Most of the time it is worth it.  It is much more effective to type documents on a computer.  Corrections can easily be made, additional copies can quickly be produced, and spelling is ensured to be correct.  But the loss of freedom isn’t worth it for every task.  Maybe it would be more reliable to use a pencil and paper calendar instead of putting it into your magic black box.

Things get much more complicated, however, with the introduction of the internet.  Freedom stops becoming black and white, and new problems show up.  Obviously Identica gives users much more freedom than Twitter, but is it enough?  Is the stream of random life events provided by micro-blogging worth the freedom it forces us to give up in the first place?  (Or should we just forget about society’s conclusion that a web page can come even remotely close to representing someone’s life?)

The point I am trying to make is that there are advantages and disadvantages to each decision we make, and in those decision, we have to take freedom into account.  Maybe those funny pictures you posted to Facebook last night don’t bother you now, but who knows what implications they will have when you no longer have control over your information.  Every decision has benefits and disadvantages, and the decision to use technology to accomplish a task should not be made until all of the positives and negatives, especially those representing changes in freedom, have been carefully weighed.

Published in: on May 1, 2010 at 5:07 pm  Comments (14)