The HeliOS Project is now.....

The HeliOS Project is now.....
Same mission, same folks...just a different name

Search the Blog of helios and all comments


Sunday, May 31, 2009

A hard look at Adobe

Typing with one hand tends to force one to brevity. A seemingly minor injury has caused some temporary paralysis in my left arm so this comes to you courtesy of my right hand. Timing and Fate, being close cousins, have given me a chance to publish something here that I think is not only worthy of your consideration...I believe it merits your action, and mine.

Many who have contributed greatly to our societies began their efforts at a young age. From Edison to Tesla, Einstein to Stallman, their passions and beliefs drove them to ultimately become who they were fated to be. I've recently become aware of a young man who may well evolve into one of our great contributors. We middle-aged folks seem to think we have the market cornered on common sense and good ideas. For the most part, we do.

Every once and a while, someone much older than their years asks to be listened to. Max Shinn has my attention, and I think he should have yours as least for now...for this moment, give Max some reasonable thought and feedback. The comments here have been known to get fairly rough and tumble but for now, if you disagree, do it without discouraging someone who may grow to be the next John Hall.

You never know.

Ladies and Gentlemen, Max Shinn aka Trobonechamp.

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.


Anonymous said...

Kudos to you Ken for giving the lad a platform for his ideas. His logic and presentation are good and I appreciate his dedication. I do hope you did provide him with extra layers of skin. Maybe a good source for that would be karen.

Unknown said...

Max, if you're reading this, I was the one who pointed you towards the comments on LXer for points that were brought up for consideration. I hope you didn't take what I said as spam. Your writing is a breath of fresh air. I look forward to future blog posts of yours. :)

aikiwolfie said...

My answer to the Adobe Flash problem is simply not to use Flash. Modern standards compliant XHTML, CSS and Javascript are more than capable of doing the same job, faster, better and with more versatility.

Of course the best reason to opt for XHTML, CSS and Javascript is it's human readable. When a bug is spotted it's easy to fix with nothing more than a text editor.

Firefox 3 now supports embeded videos as well. So really there is no point to Flash any longer. It's a legacy technology like IE holding the rest of us back.

DouglasT said...

I do a lot of accessibility work in web design. Accessibility and flash really don't go together, so I'm already not using it.

rossperk said...

Unfortunately, the "Just don't use Flash" solution is a solution that can only be applied by the programmer.

The user (web surfer) has little control of the situation, most of the time, since most services built on flash contain content unique to that site. It's either use the flash interface, or don't use the site (which is hardly a solution).

Stephen said...

Absolutely. The points made in this post well thought out and articulated. It is heartening to see, in this fight for freedom, that the virtues of out comrades shine so brightly.

Ken, I would urge you to point "HacktoLive toward this post and ask him to reconsider the wisdom of including "Moonlight", Novell's patent plagued port of Microsoft's "Silverlight", in his "SuperOS". Silverlight is of course, Microsoft's answer to Adobe's Flash.

Anonymous said...

To the claim, "Nobody can build a skyscraper alone," I suggest the open source community help create the tools for a person to design, license and then construct a skyscraper on a budget. Not some cookie cutter skyscraper, but an imposing and original one. The chief obstacle is doing it without the crane. If people want an open source car, or bridge, go one step further, and make an open source skyscraper built by just one person.

Anonymous said...

"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."

I don't disagree with the comments about flash slowing down systems or causing instability. but i do have to wonder how much documented evidence there is of backdoors in binary blobs?
It seems a lot of linux / bsd distributions don't include blobs for this reason, but don't provide any evidence that it ever took place.
does anyone know of any evidence for this or is it just a rumor?
I won't say it's impossible, after all without access to source anything could be in the flash player, but is there any hard facts to back up such claims?

axx said...

As a side note, it should be more often taken in consideration that Flash-based sites are not readable by accessibility programs such as the ones used by blind people.
So Flash also discriminates by excluding people with disabilities.

I suppose it's not as bad for things such as Youtube videos, but even then, I'm not sure there's a clear global shortcut to start playing them..

And anyway, the fact that flash content is not indexable is annoying as hell.

Can't HTML 5's canvas solve much of this? Just a thought, I'm no programmer.

joetainment said...

If there was an excellent alternative to Flash (and silverlight or java fx) it could definitely gain a lot of popularity.

I would propose a sandboxed version of python or other similar scripting language, and the ability to run content, libraries etc for the internet, in its safe sandbox.

This would be similar to using Java Applets, but would be Free Software based, and use human readable interpreted code.

All we need is a safe sandboxed runtime to use as a browser plugin. We already have the scripting languages and many many libraries.

LGPL licensing would work well, so that companies could built proprietary content if they wanted, but would have to contribute any changes to the core back.

Also, something like python could be very very fast. (Python even has modules that can compile CPU expensive parts of the program to C and then to machine code.)

We already have lots of great multimedia framewords that have python binding (or bindings for other languages). It would be quite possible to create a runtime / browser plugin taking advantage of those.

The free software community has the ability to do this by combining other software that is open source and already exists. A developer friendly language like python would offer a very low barrier to entry, while allowing robust applications.

More Reasoning:

Although XHTML, javascript, etc are an excellent way to go, there are many situation in which they don't suffice. One example is cross browser incompatibilities etc.

Also, flash and as3 is often used for rapid application development and delivery interactive intensive multimedia, and sometimes even 3D graphics. (See papervision3d!)

I do professional flash as3 programming myself, but it is obvious that better ways of accomplishing the same thing exist.

For example, the 3D rendering capabilities in python (using the python-ogre libraries) are much much better than flash as3 based systems like papervision3d.

Perhaps the existing Java applet plugin could be improved/modified to allow many of these ideas. If it could be made to run interpreted human readable code, and have bindings for some very optimized 3d and multimedia libraries, then we would have a solution.

Sum Yung Gai said...

I simply choose not to have Flash loaded on my home computers. At work, I'm required to do so due to some online "training" videos that I'm ordered to view on occasion. But home is a different story. I decided I don't need the "pr0n" or other online ads after all. I'm way too busy with stuff that actually matters in life. :-) CPU spikes from Web browsers aren't an issue for me ever since.

If I really want to view a YouTube video, and there are some good eductational ones (e. g. the ones on handloading), then that's what the "youtube-dl" script and MPlayer/GXine are for.

And yes, all my home computers run GNU/Linux or BSD.


Jose_X said...

Great explanation. I vote to make sure we put effort in moving forward with competitive alternatives to flash that are 100% open.

However, the last thing we need is to beat up on Adobe so that this monopolist gets replaced with the Megamonopolist that is trying to conquer this space with their even more closed technology. The last thing Linux, FOSS, and consumers everywhere need is a more influential and controlling Microsoft.

If adobe can spy on us (this can be limited quite a bit with things like selinux), just imagine the poor folk caught in Microsoft's web.

Microsoft is also the main competitor to an often criticized Google. The last thing we need is to have Google be replaced by Monopolysoft. That would be really bad news for Linux, FOSS, and families everywhere.

If Google can spy on us (this can be limited through the websites we visit and things like control over cookies and through anonymous browsing), just imagine the poor folk that would be caught in Microsoft's extended web. [Microsoft already has access to your web browsing if you use their operating system.]

My recommendation then is that we focus on spreading Linux ahead of efforts to subdue the little giants out there (especially whenever there is a good change we would be strengthening MegaMonopolysoft's hand since that would harm Linux+FOSS advance).

Anonymous said...

I've found this small, nifty Firefox extension called FlashBlock. It lets the user decide whether any Flash file should be displayed, by substituting every Flash content with a small circular button (aka "play" button). Only after clicking it the content is being played - very useful protection against CPU spikes.

Chris Lees said...

I do agree about Flash, as I do with all closed-source/restricted software.

Unfortunately there isn't a good solution, except to implement all Flash functionality into standard HTML and Javascript and try to encourage web developers to use those rather than Flash.

However, we're in a different situation to what we've been before. Microsoft is also in this game with a product that is much more restrictive. Not only does the Silverlight code possibly contain backdoors, but it's only available on Windows and OS X ia32. There is more likely to be a threat to open-source implementations than with Flash, too.

Silverlight is spreading like a disease, and as such I'd prefer to support Flash until Silverlight is defeated. Silverlight is a common threat to Adobe and Linux users and I think we should work together with Adobe to get rid of the disease.

Anonymous said...

I'm a game developer currently using Flash and unfortunately there just aren't any viable alternatives for viral browser-based games.

Java is too problematic, doesn't have the install base and game portals won't take it. And when users are prompted with "Firefox needs to install a missing plug-in" 90% of the time they will just skip it and go somewhere else.

For 3D game development there's opportunity if someone could once again* develop a web-player for Blender, along the lines of Garage Games' "Instant Action" project. Then we could develop 3D games in fully open source tools for an open source player.

As far as I can tell that's the shortest path to creating a popular open source web format (for games at least). Even then you would need some killer apps to convince people the install is worth it.

As for web pages, I totally agree that standard tools PHP, XHTML, CSS, etc are the way to go. I'm a total Flash fanboy for games or tools but I would NEVER develop a website with it.

* They tried a Blender web-player once already but only developed it for Internet Explorer! (insert forehead slap)