It’s Not About the Software

A few days ago, I had an epiphany.  I, like many of my readers, have spent a good portion of my life advocating for libre software.  There has always been a particular glow to the idealistic concept of information flowing through society, and to the possibility of adaptation to a particular context.  Unfortunately, as most advocates and critics alike have come to learn, a good portion of libre software is known to few beyond the developer, and modifications to suit a particular need are not nearly as common as advocates would have one believe.

What, then, is the allure of libre software?  Is it the simple possibility of these theoretical ideals?  Why should we use, develop, or recommend libre software over the alternative proprietary platforms that my have more features?  “The development model,” claim some, “is collaboration based, and ensures no malignancies will enter into the codebase.”  However, only some libre software is developed this way.  Many projects are quite unforgiving to new contributors, and most projects never pique the interest of anyone at all for contributions.  Because of this, malignancies cannot necessarily be avoided.  When nobody is interested in or capable of (without a fork) making changes, the hypothetical options available to prevent intentional dysfunctions dissolve in practicality.

“There are other benefits,” advocates say.  “The developers actually care about the work they do, so it is better written, and more help is available.”  Some projects contain almost artfully-written code.  These examples are frequently studied by new programmers and taught in universities for their quality.  Unfortunately, resulting from the fact that an ideology can’t use a keyboard, this isn’t true for all libre software.   “Spaghetti code” would be a complement for a good chunk of the libre code one could find online.  Developers of libre software also tend to be more approachable, but again, this is only true in some cases.  Plenty of libre software is unmaintained.

Finally, we get to a discussion on “freedom”.  This particular word was enough to segment the community into the free software community and the open source community.  No matter what the reader’s opinions are on the subject, it does bring up many valid points.  All libre software gives its users permission to give away or sell copies to others.  For those that know how to program, libre software does indeed provide the opportunity for modifications to be made.  Consequently, it ensures that those modifications can be sold or distributed.

There are a few flaws to this paradigm, though.  People who do not know how to program and have no capacity to learn do not have the freedom to make changes.  The need to hire someone to do one’s work is not freedom.  Other than having a wider choice on developers to hire, it might as well be proprietary software.  Yes, libre software allows redistribution without cost, but so does freeware and shareware.  Libre software still appears to be much more free than freeware or shareware, though.  Why?

I have been dealing with this question recently, and it has been incredibly frustrating.  Why should I advocate for libre software?  Am I trying to impose something that works well for me onto others and insist that it will work well for them too?  What advantage is libre software to people who will never learn programming?  Why would I never advocate for proprietary software?

Then it hit me.  Like a freight train.  My epiphany.  I would never advocate for proprietary software because it’s a product.  I don’t endorse products; I fight for ideas.  That was it. 

Libre software is not a product.  It’s an idea.

Why had I never seen it before?  Products are marketed and pitched to consumers in hopes that they will buy them.  Ideas are excitedly shared with others by those who create them, and propagated by anyone who is interested.  Libre software gives as much freedom as does an idea.  Just as not every individual can make modifications to software, not every individual can implement every idea.  In fact, most are specific to particular people, groups, or situations.  But ideas are intrinsically free, and no amount of marketing or packaging can change that.

All of the aforementioned benefits cited in libre software packages can be traced to their identity as ideas.  People tend to stand behind their ideas, which is why libre software is usually so well supported.  Ideas can be built upon and improved by others, hence the high quality of some libre software and the general absence of “anti-features”.  The goal of a product is to be used in as many places as possible.  The goal of an idea is to be as useful as possible.  Their forms are sometimes so similar that it becomes difficult to distinguish between the two.  Ideas naturally lend themselves to be duplicated, reused, and adapted for a particular purpose.  Products are sold to meet a need.

This general idea can be used to gain a new perspective on how libre software should be viewed.  Basing one’s infrastructure on ideas instead of products helps to focus the effort on what is really important.  Products can be discontinued forever with the flip of a manufacturer’s wrist.  Ideas are eternal.  They can be used, duplicated, adapted, and discarded at the leisure of the individual.  There is no need for any given software package, free or proprietary.  There is a great need, though, for the functions said software performs.  While products have certainly put dents in human civilization, only ideas have reshaped the word.  In the words of Ralph Waldo Emerson, “It is a lesson which all history teaches wise men, to put trust in ideas, and not in circumstances.”

As I’m sure you know, a blog entitled “A High School Student’s Views on Software Freedom” can’t possibly last forever.  In a few days, that title will become irrelevant as I enter the freshman class at the University of Minnesota to study neuroscience and physics.  As a result, I am shutting down this blog for good.  I’m always up for discussion, so feel free to comment or contact me on my website, and I’ll be sure to get in touch.  Until then, enjoy life, make waves, let those ideas flow, and continue to abide the other side of the divide.

Published in: on August 27, 2011 at 5:44 pm  Comments (13)  

Announcing WriteType 1.0.98

The next version of WriteType (1.0.98) is now available for download!  WriteType is a word processor designed to make typing easier and more efficient for young students and students with disabilities.

What’s new in this release?

  • Grammar checking: WriteType now has an enhanced grammar checking system.  It will check for common grammatical mistakes, and offer to correct them.
  • Translation support: WriteType is now multi-lingual!  A special thanks to Emilio Lopez and Harm Bathoorn for providing Spanish and Dutch translations.
  • Word list sorted by use: The words you use most frequently within your document will float to the top of the list of word completions.
  • Tab word completion: Now it is possible to select words from the list of suggested completions by tabbing and back-tabbing through the list.  For convenience, the arrow keys may also be used.
  • Auto-save support: WriteType autosaves your document frequently so that you never have to worry about losing any work.
  • Changed file extension: Files created with WriteType are .wtd files instead of .html files.  There is no difference in formatting; the new format simply allows WriteType to be selected as the default file handler.
  • Diction checking: Advanced writers can use the diction check feature (courtesy of GNU Diction) to improve their writing style.
  • Readability and statistics: It is now possible to figure out at what level you write.
  • Fresh new look: WriteType has a new, more refreshing icon set.
  • Lots of bugs: If you were experiencing a problem with the last version of WriteType, chances are this version fixes it.
  • Some stuff I’m probably forgetting: Hey, I’m human!

How can you help?

If you would like to help out, there are all kinds of ways for you to do so.  Translators, packagers, testers, and programmers would be very much appreciated.  If you are a Debian developer and are interested in sponsoring WriteType, please let me know as well.  As always, however, the best way you can help WriteType is by getting it into the hands of students who could use it! I didn’t create WriteType for my own benefit, and letting it sit abandoned on a server isn’t helping anybody.

Getting WriteType

Download Ubuntu and Debian Sid .deb

Download Debian Lenny .deb

Download Python package (install using “python install”)

Bzr Branch

Other Links

Initial Release Announcement

Launchpad Page


Published in: on September 2, 2010 at 3:47 pm  Comments (15)  

The Decompiler Dilemma

The whole advantage to free software is that you can take it apart and look at it, right? That is what most free software advocates would have you believe. So what would happen if the GNU Project released a Perfect Decompiler, a decompiler that could perfectly decode any binary into source code understandable by humans? (For the theoretical purposes of this discussion, let us also assume the impossible case that the binary is decompiled into a verbatim copy of the original source code.) Would this help or hurt the Free Software Movement?

The only barriers ensuring that proprietary software remains proprietary would be those of law. In a pure state of anarchy, a perfect decompiler would be indistinguishable from having all software released as free software. It would essentially render the Free Software Movement perfectly successful in anarchist states. Complete access to the source code of any application could be obtained with little effort, and modification would be limited only by the quality of the newfound code. In the world as it exists today, however, this would not be the case. Proprietary software licenses across the board prohibit disassembling in the first place, and copyright laws prohibit the possibility of doing anything interesting with the decompiled code. It would seem that, besides abandonware and oddly-permissive proprietary licenses, a perfect decompiler would be meaningless to the Free Software Movement due to the artificially imposed limits of the government. Is that necessarily so?

One current roadblock to the Free Software Movement is the diamond-water paradox. The diamond-water paradox points out the fact that water is necessary for survival, yet free, whereas diamonds are useless but highly treasured. Like water, free software has an infinite availability. Like diamonds, the supply of proprietary software is limited by cost. It makes no difference which is more important or useful; when monetarily limited, proprietary software will be seen as having more value than free software. No matter what the quality is, only a fool would exchange something of greater value for something of lesser value. Free software users simply value freedom much more than purchase price, making the free software option more valuable. This is where free software advocates stumble: in order to change what software people use, they must change their entire set of ideals and ways of thinking.

The most common arguments for the promotion of free software involve uncertainty as to how one is being treated, privacy, the ability to control one’s experience, and the ability to share. With a perfect decompiler, uncertainty and privacy could be addressed very easily. After the release of such a decompiler, a fairly large number of privacy-indifferent companies would have their reputations damaged until they released privacy-respecting software updates. After a package of unapologetic apologies, the effects of distrust would be fairly short-term, and would not in themselves result in a significant drop in sales.

The ability to control one’s own experience is, more often than not, seen as a form of individualism. Big companies can never sue every individual that questions their castle on a cloud. Just like the world of software patents today, the actions of independent developers would go unnoticed, for the most part. In other words, only big companies that made modifications to software (and developers who intended to resell modifications) would be hurt by the inability to modify source code, and individuals would be able to make all the changes they wanted. To individuals, this would sound like something that would trip up only large corporations, when in reality, it is from those large corporations that the most useful and important modifications come.  Plus, nobody would ever come to depend on a platform that cannot be reliably run in any situation.  The mixing of individualism and formal/corporate usage is a difficult concept to understand, and one that many seasoned free software advocates still do not grasp.

Finally, the ability to share is seen by a large percentage of the population as a right that already exists. The sharing and usage of illegal proprietary software is so rampant today that the ability to share decompiled code (modified or vanilla) would not be immediately seen as a problem. While it is debatable whether or not this is the path down which society should be going, many of those savvy enough to legally share software are already doing so.

Keeping these ideas in mind, why would any non-philosophically-inclined individual see the value of free software with the availability of the perfect decompiler? Besides existing free software sympathizers, the grounds for showing the advantage of free software would be so small that even the philosophically inclined would have trouble seeing the value of complete freedom as outweighing the value of practicality.

The relevance of this is fairly straightforward: access to the source code is all that many free software supporters really want. It is hammered into the community members’ minds by the most philosophical among them that the term “free” is what is important; however when asked to justify reasoning, it is much more rare to hear reasoning that protects the freedom to redistribute modified or vanilla copies when given access to the source code. It just makes things more difficult for both parties, and is often left out of the explanation of freedom. But does “freedom” really make sense without the holistic picture?

It would not be logical to discuss only the Free Software Movement, however, without giving a nod to its step-sibling movement, the Open Source Movement. The Open Source Movement has made huge contributions to the Free Software Movement, and a significant number of people consider themselves members of both efforts. Open source, however, respects only the interests of businesses trying to maximize profits, without giving a nod to its consumer-protecting step-sibling.

The two most commonly cited reasons that businesses release their software as open source are to gain more users and to develop a community around it. Open source software will not draw a significant number of new users, as we saw above. Consumer ideals are the greatest draws to free software, so open source’s added appeal would be very, very small if a perfect decompiler was developed, considering our explanation. (This reasoning ignores the “no cost to the consumer” mentality of such software because, if the source code was easily decompilable, the illegal acquisition of no-cost versions of proprietary software would be significantly more user friendly and commonplace than it is today.)

A much more difficult question is whether or not communities could be created around a company’s open source software. Even now, though, communities don’t develop overnight. Many times, they don’t develop at all. So exactly how could companies make the decision to give up their monopoly forever in order to get a piece of the profit the community has to offer? With “trade secrets” now readily available, it would seem that there would be much less harm in declaring a particular piece of software “free”. Does that mean companies would be more likely to make this dive into open source?

Community dynamics in software can generally be simplified by focusing on one target niche at a time. In general, there are a limited number of people in the world interested in contributing to free software projects that fill the niche that scratches their itch. The ideas of game theory and Cournot competition suggest that, if all software in a particular niche is identical, all of that software will eventually be open source. Differences do exist among pieces of software, though, and these differences prevent every company from choosing open source and filling the world with truly free software. Traditionally, open source has been seen as a “last resort.” But it has only been a last resort when one company wants to gain an advantage over its competitors. Because every software company would be equally shaken by the same deadly handshake, there would be no additional incentive to gain a relative advantage. One could go as far as to argue that the availability of community members in each niche would decrease, because some of those once interested in programming free software would begin illegal underground work. But again, this would be an industry-wide decrease in resource availability. The relative advantage gained over competitors would just be less.

It can thus be concluded that, even if all source code was made available, it would not increase the number of companies that elect to “make the most of the situation” by choosing open source. Each company in each niche would not turn their eyes to open source because, when enough companies use this route, the advantage to doing so disappears. The number of software developers in the world (and especially the number interested in contributing to free software) is finite, so additional opportunities for contribution only mean more fragmentation and a shrinking community for each company that has already chosen open source. With lowered overall profits from the state of the industry, it would not be economically wise for companies to take advantage of the situation.

It would be naive to suggest, however, that the proprietary software industry would accept such a decompiler without a fight. Both legal and technical means would be used to achieve the end of keeping software restricted in such a way that makes it marketable using the same strategies as physical products. There would no doubt be at least one massive class action lawsuit from the software industry. Depending on the position of the various governments of the world at that particular time, it may or may not be ruled illegal on the spot. (The American government would probably follow the model of the DMCA and rule the usage of the decompiler itself illegal because it gives citizens the power to do illegal things.) Really, though, decompiling software and improperly distributing copyrighted material is already illegal, so it would never stop the effects. How else would the companies fight?

Lawsuits would be their best tool. Yes, they would likely use the same technique the entertainment industry uses today (make a big deal out of it every time a consumer is sued), but there would be much worse cases. The most damaging would be those where the software industry creatively manages to persuade the government that causation is synonymous with correlation. With the right (or wrong) wording, the proprietary software companies could conceivably claim the illegitimacy of accessing any source code to which one doesn’t own the copyright. In other words, this would outlaw truly free software. With enough money, who knows how far preposterous claims such as this could make it. These kinds of claims severely damage the freedom of those partaking in legal activities for ethical causes, a very negative yet plausible effect.

There are more fighting techniques beyond lawsuits, though. For example, there would certainly be obfuscater wars, whereby a software company continuously develops a source code obfuscater to bide time before the obfuscation technique is implemented by the authors of the decompiler. There would be company personnel hired exclusively to expose those who use the software illegally. More means would be used, but I won’t detail them here. The biggest thing they have in common is their heightened cost. This is already a problem with proprietary software: part of the purchase price includes the costs necessary to restrict the user. This would only make the issue much worse, and create more of a need for true freedom.

Taking every view into consideration, it is surprising to see how an action most would think coincides with the goals of the Free Software Movement would actually hurt it. People would see free software as having much less value, and there would be less ground for encouraging its use. Companies would not release all their source code to make the most of the situation; if anything, they would change by becoming less likely to do so in the future. The corporations would work through both technical and legal channels to prevent users from changing their software, and in the process, they would tread on the rights that keep the Free Software Movement alive and thriving today.

This just goes to show the importance of finding the source cause of a problem. It would seem (and many assume) that the root dilemma of the Free Software Movement is the inability to access the source code of all software. In reality, though, the problem is about the legal inability to deal with such source code. Free software advocates advocate using free software for reasons involving read access to the source code, but rarely touch on the most basic concepts of true freedom. This example is, of course, a fictional extrapolation, but an extrapolation from which an important lesson can be drawn. Like all things in the world, the Free Software Movement cannot continue stably on any path but one founded on the most basic and important ideals. The foundation of a house only works when it supports the entire structure.

Published in: on August 16, 2010 at 7:52 pm  Comments (11)  
Tags: , ,

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)  

Five things Free Software has taught me

I’ve been in Free Software for a few years now and learned a ton from it.  Sure, I learned how to use new types of software, became efficient on them, and honed my programming skills, but stopping there would be missing the point.  Free software has so much more to offer than just computing and technical benefits.  In fact, the technical side is the least important thing I’ve learned from my experiences.  Free Software has brought me far beyond knowledge of its source code and taught me lessons I will value for a lifetime.

1. Centralized control isn’t worth it

When one single governing body gains absolute control over something, it is only a matter of time before that governing body increases its power tremendously.  Many times, it does this in order to avoid vice, but counterintuitively, only ends up creating more of it in the process.  Take any modern established proprietary software company that started out in the 60’s or 70’s for example.  These software companies were revolutionary in their decision not to share their software for the benefit of learning, but rather, keep it a secret in order to make money from it.  As time went on, the companies began imposing slightly harsher methods upon users in an attempt to foil the plans of those who refused to pay.  This was the beginning of techniques such as license keys.  As users developed ways around the methods, the methods kept getting progressively harsher, severely punishing casual proprietary software users who had been legally using and paying full price for the software since the beginning.

It would not be enough to stop here, though.  Proprietary software companies, caring only about eliminating competition, have no regret in choosing not to support competitors’ file formats (or even worse, supporting them incompletely), slowing down their software to sell the user a “speed upgrade”, and spying on the user without his/her consent to aid their marketing departments.  They even have no shame in not bothering to release security updates until there is already an epidemic.  Users don’t have the freedom to correct any of these because one company alone controls all aspects of the software in question.

Just the other day, I overheard a conversation between two of my peers.  It went something like this:

“I got a new iPhone the other day!”

“Sweet!  Are you going to try to hack it?” (Note: “Hack” here is used in the sense that it has come to mean in today’s society: breaking security.)

“I don’t know.  I know someone who broke into his iPhone and bricked it.  And, I mean, you can’t just go into the store and ask for a repair, because you’ve voided your warranty by hacking it.”

“I hacked my iPhone.  It worked perfectly.  And it is awesome!  Now I can run all sorts of apps on it that aren’t in the App Store!”

It is sad to see that people today actually have to use the term “breaking in” to describe changing the software on the cell phone they own.  People now willingly accept the fact that they just can’t run any application that the developing company didn’t authorize, because this restriction has become so common.  In the case of the iPhone, owners have to make a decision as to whether they want to try to modify the software on the device they own (described as “hacking”) and risk an update from Apple that destroys their phone, or use a device that performs only as Apple wishes it to perform.  Purchasing an iPhone is willingly handing over complete control of the device to Apple because this approach has been so tightly ingrained in society as necessary.

2. The strongest approach is a philosophical approach

As the main partitioner between the Free Software Movement and the Open Source Movement, it is apparent, in this regard alone, that it must have a significant amount of meaning.  When one really digs into the specifics, though, this idea becomes even more important.  Nobody would ever build a skyscraper without spending tiring hours on a sturdy foundation to keep the building up.  Likewise, constructing a movement on the grounds that a development style always produces less-buggy, more secure, or more featureful software is worthless.  On these foundationless grounds, what would be the problem with using Skype and locking not only yourself, but also all of your friends, into one company’s software and protocol?  When cost gets thrown into the mix, things get even uglier.  One who bases his/her opinions on these subjective measures would be enticed by high-quality software available at no cost.  Though I make no claim to it’s quality, even Microsoft Windows is “free of cost” to consumers.

The majority of the people in the world choose not to pickpocket.  But why?  It couldn’t possibly be too difficult.  If the thief runs, he/she probably won’t get caught, and it is a quick way to make some extra cash.  Most people believe it is wrong to steal, and therefore, won’t rob a wallet.  The philosophy that one should not steal overrides the benefits that may come from stealing someone’s wallet.  It is the same reason that Vegans don’t wear leather, Mormons abstain from caffeine/alcohol, and environmentalists drive hybrid cars.

When it comes to software, though, the majority of people take a lesser stance.  For those “casual users” who have somehow learned about the Free Software Movement, few will take the philosophies seriously since they create so much inconvenience and trouble.  Would one be likely to support dismantling one’s house upon learning that it was seated upon a sacred ancient burial ground?  Because it creates so much inconvenience and would be outrageously expensive, most people would likely ditch this new ethical dilemma, on the grounds that they had very little opinion about it before it began affecting their life.  Yes, the house is ruining the sacred area, but nobody informed the homeowner in question about this problem before the purchase, so the shame should be placed elsewhere.

When one keeps a 100% philosophy-based center when making every-day choices, it is impossible to make a regrettable decision on those aspects in which one has philosophies or values.  Putting morals before convenience and ease may be tough at times, but it will help ensure permanent solutions that carry much more meaning.

3. An open and creative mind does wonders

Before I became involved in Free Software, I had far different opinions, ideas, and beliefs than I do today.  Free Software helped me open up my mind to new and unfamiliar concepts.  This software universe had been going on behind my back for years.  If there was this much in software alone that a technology-savvy guy had never even heard of, I figured, there must be quite a bit out there.

One of the best parts about the Free Software community is that it is composed of a huge diversity of people with a huge diversity of ideas.  Richard Stallman’s is a perfect example.  Most of his ideas and beliefs, especially his political ideals, are somewhat unorthodox and not widely accepted.  Previous to reading his opinions, I had laughed Ralph Nader off as a joke, as I had heard nothing but humor about him previously in my life.  When I actually met someone who supported him, I took the time to understand his politics.  It just so happened that I shared some of Nader views.  I stopped my warrantless distaste for the 3rd party candidate, and gained a great deal of respect for the man.

Another good example can be drawn from my life.  I am a composer, and one of the biggest hurdles for me in switching to exclusively Free Software was my sheet music typesetting software.  I used a proprietary package under Wine for quite some time, because none of the other options available did what I wanted.  Or so I thought.  I had tried Free Software packages to fill this purpose, from Rosegarden, to MuseScore, to Lilypond, to Canorus.  I convinced myself that, since none of them behaved exactly like the proprietary package I was used to using, none of them were as good.  Some time later, I decided the final movement of of my last piece of proprietary software should end soon, and that I best move to exclusively Free Software.  I forced myself to use MuseScore for my next composition project.  By the time I was done, I had actually forgotten how to use my old piece of proprietary garbageware.  MuseScore did everything I wanted and more.  Yes, it behaved slightly differently, but I found I could be much more efficient – while using Free Software!  It was a double win for me.

For developers, opening one’s mind to unfamiliar creative ideas is essential to creating practical solutions.  The majority of those working on Free Software are autonomous and get to choose what they want to work on.  (Even of the large corporately-funded developer base, many have a great deal of liberty in this regard.)  They are not told to implement specific attributes by their management, or pressured by paying customers to add a certain feature.  They work because they want to help themselves, their user base, or their software project.  There is plenty of room for experimentation.  One of the main arguments used for Free Software is the advantage of not reinventing the wheel, yet in the case of nearly every hole in the software platform to fill, there are at least two equally effective options.  KDE and Gnome.  Grub and Lilo.  OpenOffice and Koffice.  Emacs and Vi.  The list goes on.  These pairs exist because the developers had different ideas as to how to design an application, which features to implement, and what the goals of the project were.  In all of the cases above, the synergy created between the pairs has only gone to further enhance both projects.  In other words, contrasting ideas have improved each other.

4. Knowledge was meant to be shared

Back in the middle 1850’s, when the Industrial Revolution was beginning in Britain, the country attempted a quarantine of ideas.  Britain was the first country to go through an industrial revolution, and wanted the ideas for the machine designs to stay contained within the country so that it might prosper economically.  It was a failure.  It was unbelievably naïve of them to think they could stop the spread of an idea.  As the cliché goes, “If we both have an apple, and we exchange apples, we each still have one apple.  But, if we each have an idea and exchange those, each of us has two ideas.”

Some companies try to restrict the flow of this knowledge.  In fact, many companies do this and expect to get away with it.  They believe that putting DRM on digital media will prevent it from being illegally pirated.  They believe that product activation procedures will prevent it from being illegally shared.  They believe that information can be contained.  Even in the days before the Internet, information and so-called “intellectual property” could still be, and were, exchanged.  As the information age went on, though, corporations became progressively more obsessed with controlling the spread of knowledge.

This trend of open information holds true even in tightly-protected situations.  The Watergate scandal leaked to the press through one of US President Nixon’s most trusted colleagues.  Microsoft was recently discovered to be using code stolen from a competitor on a social networking site, even though the code was never released.  Pictures from the Iran protest in early June of this year circulated the Internet, despite the efforts of the government to prevent their spread.  The examples continue, but all hit the same chord: there is no use in preventing the spread of information.

So instead of working to prevent this spread, why not encourage it?  Why not get the ideas, capabilities, and functionality of any given piece of software out to as many people as possible and kindle the flame?  There are many ways to make money, so why choose a method that requires investing just as much time and effort into making software that lots of people want to use as trying to prevent the usage of said software?  It sounds counterintuitive and/or just plain stupid on paper, but is generally seen as the traditional and conservative way to do it.  Physical products must be treated differently than knowledge.  Government can assist in the process of selling knowledge in the same way as a physical product, but due to the nature of the commodity, it will never be the same.

5. Anyone can make a difference

When I started off in the world of Free Software, I wanted to contribute, but didn’t think that an 8th grade student would be able to contribute anything worthwhile.  I proved myself wrong, and joined the Joomla! Documentation team, writing and editing documentation for the software package.  As I learned later, documentation was one of the most lacking areas in the Free Software community.  When I started learning to program in PHP, I wrote small extensions for the Content Management System I then knew so well.  They were small enough to be easily written by someone with little experience, yet useful enough to be widely-deployed.  I moved on to larger applications and contributions.  Frequent emails from users of my software showed me just how much of a difference I was making for them.

No matter what you do, remember that your actions do make a difference.  If you find a bug, report it!  The first bug report of your life may be a little shaky, but how else can one learn to report bugs?  Your reports make the software better for everyone.  Just maybe that crash you reported will save some people from a major data loss in the future.  If you have decent writing skills, consider writing or improving some documentation for your favorite Free Software application so others will have a less frustrating learning curve.  Translating documentation or an application itself opens up that software to a new demographic of people, most of whom could not possibly use the application prior to your translation.  Bringing up Free Software in a conversation and/or promoting it more seriously opens the philosophies and the software itself up to new people as well.

Even a simple “thank you” to a project member can go a long way.  Free Software isn’t written by machines; it is written by countless individuals that give up a significant amount of time each day to do what they do.  Showing appreciation helps developers know their work is worthwhile.

Now, just for a second, I challenge the reader to imagine what the world of Free Software would be like if nobody believed they could make a difference.  Very little Free Software would be written, and that which was written may not be released to the public.  A completely Free operating system would be out of the question, as only small research projects would exist.  Businesses, with no faith in their ability to succeed with Open Source, would resort to writing proprietary software that can be sold on a shelf.  The Free Software Movement would be inexistent without this wisp of a thought.  In fact, Richard Stallman wouldn’t have bothered writing the GNU system if he thought his project wouldn’t mean anything.

It is so easy to imagine how horrible the world of Free Software could be like this, so why do people all too often let it slide in the “real” world?  This world is so much bigger than the Free Software Sphere that people tend to feel that their actions mean less.  However, they seem to be forgetting that, while some action we make won’t directly influence everybody, every action we make affects somebody.  And just maybe, when one totals the sum of the somebodies and the somebodies of those somebodies, just maybe every one of us changes the world every day.

Because our actions mean so much, it is vital that one governing body, be it a corporation, government, or other mass, doesn’t take away our freedom to express ourselves as we please.  We would no longer be changing the world in our own way, but in the way desired by this group in power.  It is vital that we keep a philosophical approach so that our beliefs stand behind our actions.  Even if we make an unwise decision, we make it for a rational reason that shines through to others.  It is vital that we keep an open mind to ensure no good idea goes unnoticed, and a creative one to generate good ideas of our own.  One man’s seemingly worthless idea may be another man’s inspiration.  It is vital that there is an uninterrupted stream of knowledge, and that information is not held back for personal benefit at the cost of others.  Knowledge and information are the building blocks of change.  These concepts are vital not only to software, but also to every-day life.

And to think some people only see the technical benefits.

Published in: on December 20, 2009 at 4:42 pm  Comments (69)  
Tags: ,

The Situation Now (2019)

Sam opened his eyes to the sun shining in his window, birds chirping outside, and the smell of a fresh summer breeze.  It was a glorious day, perfect for the launch of the campaign.  Sam got himself ready, grabbed a bite to eat, and jumped on the bus on his way to his job at the Proprietary Software Foundation.

Sam loved his job at the PSF.  He joined right when it was founded in 2014, in response to the Global Crash of 2012.  Since the crash, everyone began to falsely associate proprietary software with insane amounts of centralized control, DRM, and restrictions, just because of a single coding bug.  This bug in the way Windows handled time, found in Windows 95 through Windows 7, caused a crash that resulted in random data being written directly to all of the root filesystems at midnight on December 1, 2012.  People had wrongly accused Microsoft and the nature of proprietary software for the resulting crash of the global economy, when in reality, the only person at fault was the developer who made the error.  The PSF was founded by Sam and some fellow Novell employees to right this wrong misconception.  Free Software was getting its dirty hands on the world’s devastated (formally proprietary) computers, so the PSF had to work quickly as to ensure the world’s technology system was not rebuilt using Free Software.

This particular day was very important for Sam and the PSF, though.  It was the day they launched their “GNU/Linux Lies” campaign in downtown Seattle, explaining to passer-byers why proprietary software is more ethical than Free Software.  The PSF had been facing greater difficulties ever since 2016, when the Closed Source Initiative was founded.  This organization focused only on the practical benefits of proprietary software.  Their stance was less powerful because it wasn’t based on ethics and philosophy, yet it gained so much more momentum.  Instead of fighting for essential developer rights, the Closed Source Initiative advocated that companies cannot free their source code, because doing so loses them some business opportunities.  While closed source campaigns still helped the cause of the PSF, they defeated the point that developers should be able to do whatever they want with the software they create.

Unfortunately, though the cause was ethical, Sam and the PSF could not seem to get much traction.  Any traction that was made for proprietary software was made by the closed source movement, not the proprietary software movement.  It seemed that ethics didn’t matter anymore.  The world was using this unethical “Free Software” with no regards whatsoever for the rights of the developers.

The only thing Sam found useful about the Free Software Movement was its historical value.  Since the Free Software advocates had based their arguments on values instead of practical benefits, as Sam understood it, they gained momentum after the Global Crash.  He thus concluded that, while closed source software was making some strides, only the principled approach that the PSF took would ever lead to mass acceptance.

The demonstration in downtown Seattle would help show the public these principles.  Parents with young children could come down and have their kids color one of many pictures, including happy spring days, smiley faces, and baby bunnies, with the promise that they would be prominently displayed throughout the city and in the PSF offices.  Once the child finished, the PSF volunteers would gently take the picture from the child, congratulate him/her on doing such a great job, and then spit on it, tear it up, and burn what was left in full view of the parent and the child.  Then, they would be asked how it felt to have their work destroyed, and why they would ever encourage that sort of behavior by using Free Software.  Sam thought it would be a great presentation, and demonstrate the principles of proprietary software well.  (For those without young children, he also had coloring sheets of a bearded man waving a red flag with the caption “Richard Stalin at work”.  These are the pictures that would really be displayed throughout the city.)

The day didn’t turn out so well for Sam.  Even with the colorful metaphor he engineered, people still didn’t seem to understand the concept of enforcing developers’ rights.  In fact, to Sam’s surprise, it even infuriated some people, and turned them against the values of proprietary software.

After hours of failure, he finally gave up. People just didn’t seem to understand the point.  Maybe his metaphor wasn’t elaborate enough.  He went back to the office and booted up his computer to check some emails before going home.  Sure, the software it used was very old, however all of the newer versions of the same software used a free license.  Even Microsoft, which used to be the proprietary software giant, started licensing all of its products under a Free Software license.  Sam refused to use Free Software, so he had to make some sacrifices.  While some companies were starting to make proprietary software again, most did not, forcing him to use older versions of certain pieces of software.

“It just isn’t fair,” Sam thought.  “Why does the Free Software Foundation get a multi-million dollar advertising budget, endorsement from large corporations, and tens of millions of supporters, while the Proprietary Software Foundation only has a small niche of support?”  He knew, though, that there used to be others just like him fighting for the opposite cause.  However, there were more, many more, than the three guys sitting around the table at the PSF.  He thought of the Proprietary Software Movement as more of a fan club in comparison to what the Free Software Movement was.  Back then, though, they had so many supporters in comparison to those who supported proprietary software.  Sam knew that if that many people supported proprietary software, it would be so much more common, and developers wouldn’t be practically required to freely license their code in order to compete.  Who on earth would use a proprietary alternative to a Free Software application?  Sometimes he found it frustrating, but he knew that he would probably spend his whole life fighting for the values behind proprietary software.  And he thought to himself, as he walked off to the bus stop, that a life advocating for proprietary software would be a life well spent.

Published in: on October 10, 2009 at 5:10 pm  Comments (10)  

Free as in Car Keys

I have been working as an intern with the FSF this summer.  The majority of my time has been spent on a new program that will take a stab at revolutionizing the world of Free Software.  This initiative, called GNU Generation, works to fill a vital time-sensitive hole in the world of Free Software: involving young people.

Yes, all Free Software contributors are important, but none so much so as young people.  Microsoft, Apple, Infinite Campus, and other malevolent software companies are constantly trying to wedge themselves into this market.  Why?  They recognize the importance of this age group.  Young people are the future, and if that future is going to involve Free Software, they have to learn about it and its importance early on.  That is why GNU Generation targets the 13-18 year old age range.  This age group in particular is just beginning to discover talents, interests, and ethics.  More than any other age group, they understand the importance of freedom, decentralization, and improving “the system”.  The only thing 98% of this age group know about is “free of cost software” and “paid-for software”.  In fact, the majority of them haven’t ever used a single piece of Free Software in their whole life, let alone understood it.  Most of those who have used Free Software have used only OpenOffice or FireFox due to their “free of cost” benefit without knowing anything about the concepts behind them.

Proprietary software companies can squeeze themselves into this crack simply because they have piles of money.  They are so rich that a major advertising campaign doesn’t even leave a dent in their wallet.  Some of them are so rich that even failed advertising campaigns get as much attention as wildly successful ones.  (**Cough cough** Jerry Sienfeld **cough cough**)  Most proprietary software companies use the methods they do because they are, well, proprietary software companies.  They create their “product”, and sell it in the same method products were sold hundreds of years ago.  This concept is then applied to public relations and marketing.  They don’t recognize the power of the communication age, and that they can have all kinds of unaffiliated people working to advance their company.  Most Free Software projects use a distributed model for development.  Each person contributes his/her efforts to the project, and the project grows.  Though it is not Free Software, Facebook is a wonderful example of this model applied to advertising.  It only took one person in any given circle of friends to sign up before everyone else in that circle had to join.  Eventually, Facebook became the size of medium-sized country.  It never had to run any major advertising campaign.  Instead, it applied Free Software concepts to advertising its proprietary service, encouraging each person to do his/her part.

GNU Generation aims to work in a somewhat similar fashion, without the proprietary edge.  It’s goal is to create a support network for young people to start contributing to and advocating for Free Software.  It is easy to become overwhelmed in a world where people consider “Do you prefer PC or Mac?” to be an intelligent-sounding question that demonstrates one’s knowledge of technology.  (Especially when they assume “Windows” by saying “PC”)  The social “viral” effect has been shown to work as long as long as the objective is easy, accessible, and worthwhile (in the eyes of the general public).  Applying these concepts to the current state of Free Software gives the basis of GNU Generation.

GNU Generation provides services to both Free Software projects and young people interested in contributing.  It aims to create a welcoming environment that encourages and provides resources for high-school-aged students (approx. 13-18) to contribute to Free Software.  Free Software projects can register and submit tasks to be completed by participants.  Participants can choose to either sign up for a one of the tasks created by these Free Software projects, or create their own project.  Creating a project can include either a contribution to an existing Free Software project, or a brand new project from scratch.

Free Software is really something to get excited about.  Through the community created by GNU Generation, hopefully that excitement will persevere through the years to come.  Unfortunately, it will take more than just a small little campaign to make this happen.  It will take the cooperation of all Free Software users, developers, and advocates to really get the message across.  So if you value your freedom, and would like Free Software to succeed, take the time to talk to your family and friends about the importance of Free Software and the values it carries on its shoulders.  Together, we can create a real GNU generation.

The GNU Generation Homepage

Published in: on August 21, 2009 at 9:57 am  Comments (3)  
Tags: , , , ,

Presenting The Hablator “Rose” (0.5) Chat Script

For the last few months, I have been preparing The Hablator “Rose” 0.5 for a release.  That release is finally here!  This release is significant because it is the first time I have added features that innovate instead of ones that just copy other chat scripts.  Of course, it still maintains its low server and client side requirements, and easy installation.  Lets take a look at some of the newest features The Hablator has to offer.

My personal favorite feature, and the feature that was the most difficult to add, is translation support.  If you live in the United States and you have friends in China, Russia, and Portugal, you can all log into The Hablator and see the chat messages displayed in your native language.  It relies on Google Translate to perform the translations, so a massive number of languages are available.  In addition to translating just the chat text, the user interface will be displayed in whatever language the user requests.  Since human translations are much better than automated ones, it is possible to create translation files for the user interface.  The Hablator will look for a user interface language file before going to Google Translate.

Another major feature is the addition of “topics”.  During chat sessions, especially larger ones, groups of people will start talking about different things.  In many current chat rooms, this is solved by prefixing the message with the username of the person they are replying to.  This is okay, but has many disadvantages.  First of all, it can get kind of annoying to map out the usernames.  If you enter the chat room while people are having a discussion like this, you will have no idea what is going going.  In many cases, certain people don’t care at all about what is being discussed in one discussion, but has to sort through all of the messages anyway in order to find what he/she is looking for.  “Topics” solve all of these problems.  When somebody is posting a message, they simply click a radio button indicating what topic they are discussing.  Moderators can create and delete topics on the fly.  Each topic is displayed in its own color, so that users can see at a glance exactly what is most relevant to them.  Each topic can also be hidden dynamically, so if some people are not interested in hearing about a certain topic at any one moment, they don’t have to.

Compatibility mode is another major feature.  Very few chat scripts can claim to support every browser.  The Hablator now contains a compatibility mode which allows any browser, from the javascript-lacking Elinks to the feature-filled Firefox 3.5, to chat with others on The Hablator.  Due to the fact that javascript probably isn’t supported when compatibility mode is used, many features had to be removed.  It is still a great way, though, to communicate with your geeky friends that insist on living from a command line.

A bunch of usability improvements have been made as well.  Most importantly, all history is scrollable.  I made a serious mistake last time by only allowing 10 history lines to be shown at the same time.  Now, just like previous versions, all history will be scrollable again.  This version requires less bandwidth, and it has a much more efficient update method, resulting in a faster update.  There is an optional notification displayed when someone posts a new message.  This notification is unobtrusive.  It either blinks or scrolls in the taskbar, an equivalent notification to what a desktop application may do.  The messages are now formatted in a way that is easier to scan.  The new swear words filter is not only easier to set up, but it also makes filtered swear words look nicer.  In addition, you can finally tell exactly who is typing a message, because each user now has his/her own typing light.

One question you probably still have is, “Why, Max, is the codename ‘Rose’?  The other code names, sounded so much tougher.”  Well, I’ll tell you. One of the major features, as you already know, is translations.  The Rosetta Stone has turned into a symbol of multilingualism in modern culture.  If you want to insist on a “tough” name, just remember “Rosie the Riveter“.  The previous code-names have been: ‘Stone’, ‘Bronze’, and ‘Iron’.  They are all named after different ages in human history.  I didn’t plan them very well, mainly because I expected “Iron” to be my last release.  I ran out of ages!  I could have named it “The Hablator 0.5 Neo-classic”, but that might have sounded strange.  Instead, I decided to get off the “ages” system.  I wanted to choose a name that still had some connection, yet one that could still be interpreted as completely irrelevant (or at least for those well-versed in Shakespeare):

What’s in a name? That which we call a rose
By any other name would smell as sweet.

Another question some may have is, “So, why is it called the “0.5 release” if it is stable?”  Version numbering, especially in software projects that do not need specific names for advertising reasons, do not need big numbers.  Ubuntu names its releases by the release date, Linux (the kernel) keeps its version number on 2.6.x, and Firefox just kind of chooses a number.  I just go up 0.1 for every major release.  Any maintenance releases will increase the version number by 0.01.

There are a bunch of other goodies that I didn’t talk about.  If you made it this far, you might as well take another couple minutes to try the demo.  Also, make sure to check out the home page.  I hope you enjoy using it as much as I enjoyed developing it!

Published in: on June 28, 2009 at 7:27 pm  Comments (16)  
Tags: , ,

When you see Flash, Duck and Cover

The best thing anyone can do to continue making the Internet more closed, restrictive, and prohibiting is to use Adobe Flash as it exists today. The Internet was created to allow for the open and unconfined infrastructure to share information; yet, it is being used today for the opposite purpose: to stop this information torrent. Many people do not see Flash as an issue, and don’t view Adobe as a malevolent authoritarian. In fact, though, Flash is the biggest bottleneck on the Internet’s effectiveness in the same way that the variety of world languages spoken worldwide is the biggest bottleneck on the global social network. A change in Adobe’s business strategy with regards to Flash is the only way to turn this unnecessary throttle on the potential of the Internet-connected community into a true innovation and synergistic technology.

Some may not notice the restrictions we experience in our everyday lives. One such restriction is that of software like Flash. In the video market alone, Flash is the number one method used to control access to “intellectual property”. Flash does much more than just restrict video content, though. Unlike HTML and Javascript, which are saved in human-readable formats, Flash files are in a format that only computers can read, so nobody is able to see exactly what these files are doing to their computers. Because of this, anybody can restrict access to the content of the file itself, or even include viruses or other malicious software through the use of Flash Player.

The biggest restricting factor, though, is the fact that consumers must use the software distributed by Adobe in order to view Flash files in their entirety. This is a major problem because, with a 99% market penetration, Adobe can do anything it would like. Adobe Flash is installed on more computers than even Microsoft Windows, which naturally gives them a huge amount of power. The dependency of people on Flash Player is so great that Adobe could chose any day to shut all installations of Flash Player down until the user payed a $40 ransom fee. If Adobe ever fell short of money, this would be a convenient and no-hassle way to gain money, considering most people would end up paying this fee for access to games, videos, and a multitude of other possibilities online we often take for granted. This is only the tip of the iceberg, though. Adobe could block out competitors’ software, spy on the users, or even include a “back door” to allow employees to remotely control anybody’s computer. With Flash’s massive install base, Adobe could technically do anything they want to your computer.

Devoted individuals have begun developing alternatives through reverse engineering, such as “Gnash” and “swfdec”, but those are still unable to be completed due to the lack of cooperation by Adobe. Adobe initiated the “Open Screen Project” to give the appearance that it promoted choice in platforms and ease any fears regarding Adobe’s obsessive control, yet it really just restates the knowledge that was already gained through the effort of previous reverse engineering techniques. The only benefit of the Open Screen Project was the promise Adobe made not to sue any Flash-alternative projects, yet this promise, in reality, just affirms the excessive control Adobe has over the platform. Recently, Adobe sent a Cease and Desist to SourceForge, a company that hosts community-developed software projects, regarding a hosted project called “rtmpdump”. This project opened up features of Flash to average people that were previously only available in Adobe’s Flash Player. Despite Adobe’s claim to transparency and neutrality, SourceForge was required to remove rtmpdump from its site, confirming yet again the massive amount of power Adobe has.

A further issue with the Flash format is its dependency on software patented by multiple companies. These patents make Adobe’s promise worthless, as other companies also have the right to sue when their own patents are violated. Patent law was created to encourage innovation, but when computers entered the scene, corporations found they could benefit from the law by exploiting loopholes that allowed software to be patented. Eventually, trying to patent as many elementary concepts as possible became a business strategy, and any company who didn’t follow this strategy risked a lawsuit. Software patents have ranged from online tests to pop-up windows to hyperlinks to progress bars.  In addition, almost all of the major audio, video, and image formats are or have been covered under numerous patents. As you can well imagine, nearly all computer software is covered by multiple patents from various companies. The biggest companies pool their patents together and agree not to sue each other in exchange for access to the patents from the other biggest corporations. In this way, Adobe cannot be sued for using certain components in Flash, but everyone else can for using those same components.

With the inability for consumers to use any alternative Flash players besides the one created by Adobe, one would expect the official player to be of high quality, right? Studies have found the opposite to be true. Not only does Flash have a huge number of security problems, but it also slows down computers significantly, especially computers that run operating systems other than Microsoft Windows. Flash consumes an average of 50-80% of system resources on Mac OSX. The leading cause of crashes in the Mozilla Firefox web browser, according to the bug reports submitted by users, is the Flash Plugin. Unfortunately, this is something Mozilla cannot improve, no matter how badly their users want it, because Adobe will not allow it. Efficiency can be measured in more than just performance, though. Flash users who want to minimize their carbon footprint will be unhappy to know how negatively Flash affects power usage. Flash, especially banner ads cause ones computer to use much more energy. Simply disabling Flash saves an equivalent amount of power to turning off a light bulb.

The most logical solution to this problem would be for Adobe to allow open access to view, modify, and distribute to the code programmers will understand used to develop Flash. This strategy would have a multitude of benefits for not only consumers and Adobe as a company, but for society as a whole. Collectively, consumers would like the best possible experience online, and Adobe would like to make as much money as possible. Both of these private interests would be stimulated.

Consumers would benefit greatly with Adobe’s decision to allow open and unrestricted modification and distribution to its platform. Consumers would no longer have to worry about what would happen if Adobe tried to exercise excessive control over users, because anyone would be able to modify Flash to exclude the offending features. If this were to happen, Adobe would no doubt lose its reputation; however, if it were to happen today, it is possible that nobody would ever find out. It has been shown by projects such as the Linux kernel that those who can, will make changes to software to scratch personal itches. Corporations will naturally make changes to improve community-developed software when it will help that corporation’s own products. A multitude of corporations currently depend on Flash, making them all candidates to assist in improving Flash Player for the benefit of all. Speed is important to everybody, especially wealthy corporations that want their employees to be as productive as possible. As demonstrated by the Linux kernel, security and stability problems in community-developed software get fixed incredibly quickly.

Adobe is the party that would yield the largest benefit from opening up Flash. Adobe’s business strategy with regards to Flash is to develop a massive number of technologies centering around Flash, and then sell a really expensive software to create Flash videos. The vast majority of these technologies have opened source code to stimulate usage and entice those who like modifiable and redistributable software. Unfortunately for Adobe, these have not penetrated the target market because the product they depend on, Flash, does not allow modification or redistribution. Adobe’s other income with regards to Flash come from licensing versions of Flash Player for use on embedded platforms, such as cell phones. While it is logical to expect monetary reimbursement from large corporations for the ability to use Flash Player, problems arise when these corporations choose not to pay for the license. A notable example of this is with the iPhone. The lack of cooperation by corporations results in Adobe losing control, because it limits access to the software from potential users. Through the exploitation of this target market (all Internet-connected users) Flash has the potential to become a true standard; in this case, Adobe would hold the key to producing content for the standard: “Adobe Creative Suite 4”, its flagship product. Allowing public access and modification to a company’s software is the only way to allow other corporations to help increase that company’s market share. For example, Flash could be improved by search engine companies to allow content to be indexed more easily, benefiting all companies involved and allowing for further standardization.

There are other possible solutions to this problem, though they are not as elegant or effective. For instance, it is possible for some devoted activists to start a new software project to replace Flash. It would have similar features, but would not be compatible with existing Flash scripts. Though many appreciate the value of this type of project, it would nevertheless advance very slowly in what we have come to expect out of modern Internet-based technologies. It would also make extra overhead for the consumer, creating the need to install yet another web browser plug-in. Finally, this solution would divert developer time away from Flash Player alternative projects, such as Gnash and swfdec, which are increasingly necessary, and make it impossible to use the existing jungle of Flash scripts.

Another solution, though much less plausible, is for consumers to stop using Flash altogether. The problems that come attached to this solution are obvious, though. First of all, it is nearly impossible to raise awareness for any cause, especially one that takes a long time for people to understand. In addition, Flash has become too embedded within the lifestyles of many Internet-connected users to “just quit”. With dependencies on video sharing sites, education material, games, and more, only the most devoted users would be able to resist the pressure. This option would be much more effective as a protest technique to convince Adobe to allow modification than it would be as a solution on its own.

As you can see, Flash started out as a slightly obnoxious insect, but it grew over time into the monster that it is today. Adobe has too much control over the software. The control it has makes it impossible for Internet content to be truly accessible to everyone, and requires every user to subject his/herself to Adobe. It also carries a large number of problems along with it that Adobe has no desire to solve, as solving them would not increase its market share. By allowing the modification and redistribution of Flash, both Adobe and its consumers would benefit from the synergy that would be achieved. Nobody can build a skyscraper alone. Until Adobe makes Flash more permissible, Flash users have no choice but to sit in the monster’s mouth and hope it doesn’t get hungry.

This is a copy of the social injustice essay I recently wrote for Language Arts class. If you want the version with in-text citations and a bibliography, feel free to ask.

Published in: on May 29, 2009 at 6:38 pm  Comments (35)