<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<?xml-stylesheet type="text/css" href="http://tonyagudo.net/styles/feed.css"?>
<title type="html">Open Source</title>
<link rel="alternate" type="text/html" href="http://tonyagudo.net" />
<link rel="self" type="application/atom+xml" href="http://tonyagudo.net/archives/open_source/index-atom.xml" />
<updated>2008-08-02T01:30:56-04:00</updated>
<author>
<name>Tony Agudo</name>
<uri>http://tonyagudo.net</uri>
</author>
<id>http://tonyagudo.net/</id>
<generator uri="http://nanoblogger.sourceforge.net" version="3.3">NanoBlogger</generator>
<entry>
<title type="html">OpenGate: Not so "Open" at all</title>
<author>
<name>Tony Agudo</name>
</author>
<link rel="alternate" type="text/html" href="http://tonyagudo.net/archives/2008/05/26/index.html#e2008-05-26T21_34_57.txt" />
<id>http://tonyagudo.net/archives/2008/05/26/index.html#e2008-05-26T21_34_57.txt</id>
<published>2008-05-26T21:34:57-04:00</published>
<updated>2008-05-26T21:34:57-04:00</updated>
<category term="Open Source" />
<category term="Second Life" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>
If you've been around Second Life long enough, chances are you've come 
across a"Stargate(TM)". Based on the TV show of the same name, they are 
networked teleportation devices that take you to any other place where 
another stargate is. In my early days of SL, I was even friends with the 
creator of a Stargate network. The other day, I had gotten a copy of 
Doran Zemlja's "<a 
href="http://www.slexchange.com/modules.php?name=Marketplace&file=item&ItemID=308348&allReviews=1#reviews">OpenGate</a>", 
which is an open source Stargate network licensed under the GNU GPL. I 
had put up an OpenGate right at my store's front door, hopefully to help 
bring in more customers. Today I had an interesting idea: Why not make a 
triangular Stargate? It shouldn't be too hard to do.
</p>
<p>
Boy, was I wrong. I did make a simple prototype, no problem. But when I 
moved all the appropriate objects, textures and scripts over, the shape 
reverted to a regular gate. WTF? "Ok, no problem, just find the script 
the function call that reverts the shape, and comment it out". The only 
problem? ALL the scripts are virtually unreadable to a mortal's 
eyeballs. I complained about it on the OpenGate network group, and I was 
told to look on the OpenGate website for why Doran did this. What i 
found made absolutely no sense at all:
</p>
<p>
<i>People who've looked at the source code in-world have noticed that is pretty much unreadable. The first question I'm asked is "why the obfuscated code?"
<br/
I'm trying to kill several birds with one stone here.
<br/>
During development of the first gate network, I would often succumb to the temptation of modifying the code in world to fix bugs. The result was that the online tarball would become out of sync with what was actually in use, and I lost much time scratching my head over which version was correct.
<b>
Obfuscating the in world code forces me to do development out of world.
<br>
There is a fair amount of shared code between the different scripts. On several occasions I found that I had different versions of key algorithms in different scripts, and this caused many headaches. To avoid this, I wanted to use C/C++ style #includes and #define macros, and that necessitated moving to a development platform with real development tools.
<br>
To some degree, obfuscated code is a natural result of using #include and #define macros.
<br/>
Often people would make changes on their objects and submit them back to me for inclusion in the project. Such code had often gone through several iterations of copying and pasting in different tools, and it was often difficult to get a clean diff to figure out what had changed.
<br/>
Obfuscating the in world code should help reduce this problem. I will no longer accept contributions that do not diff cleanly against the code in the distribution.
<br/>
<b>Many well meaning people who used the objects in world took them apart, picked a single script, and found their favorite nit to pick in the name of readability, efficiency, reduced memory, or reduced lag, and "fixed" them</b>. They often did this without understanding the complete design, especially without understanding how the different scripts interoperated with each other, how the different objects interacted within a single gate, or how the individual gates interacted with each other in the gate network as a whole. On a few occasions this led to disruptions of the gate network. Now that the distributed chord algorithm is in use, these problems are magnified.
<br/>
Obfuscating the in world code increases the level of effort required to make changes, and should reduce the number of frivilous unconsidered changes.</i>
</p>
<p>
That last sentence and paragraph burned me up. She's 
obfuscating the code to actively discourage other people from making 
changes. While this doesn't technically violate the GPL's terms, it's 
actually a way of trying to be cute with it. Whenever I make a project, 
I always try to keep the code as neat and easily readable as possible, 
not just for me, but for anybody who wants to study it, modify it, and 
even sell their own modifications. That's the nature of the GPL at work. 
If Doran doesn't want other people to make changes and submit them for 
inclusion, she should have chosen a different license.
</p>
<p>
Yes, you read that last sentence right. It seems to me that Doran 
doesn't totally grok the GPL. A good GPL project doesn't put up 
obstacles to code changes, it removes as many as possible. So what can 
be done about a poor GPL project like this one?
</p>
<p>
Answer: <strong>Fork it and do it better!</strong>
</p>
<a href="javascript:HaloScan('opengate');" target="_self"><script type="text/javascript">postCount('opengate');</script></a> | <a href="javascript:HaloScanTB('opengate');" target="_self"><script type="text/javascript">postCountTB('opengate'); </script></a>]]>
</div>
</content>
</entry>
<entry>
<title type="html">Microsoft and Open Source vs. Patents</title>
<author>
<name>Tony Agudo</name>
</author>
<link rel="alternate" type="text/html" href="http://tonyagudo.net/archives/2007/11/10/index.html#e2007-11-10T01_08_05.txt" />
<id>http://tonyagudo.net/archives/2007/11/10/index.html#e2007-11-10T01_08_05.txt</id>
<published>2007-11-10T01:08:05-04:00</published>
<updated>2007-11-10T01:08:05-04:00</updated>
<category term="Open Source" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>
I had just read <a 
href="http://yro.slashdot.org/yro/07/11/09/0542226.shtml">an article</a> over on Slashdot about Microsoft settling a patent infringement lawsuit. What struck me about the article is that Microsoft's settlement involved paying the patent holder, Timeline, about $5 million dollars in exchange for licenses to the patents in question. This actually pours cold water over Steve Ballmer's claim that open source is not a respecter of "intellectual property", because the settlement shows that his company is just as guilty. In fact, on doing a cursory search, I discovered that Microsoft has been found to have infringed patents <a href="http://walkingwithelephants.blogspot.com/2007/10/dear-steve.html">since 1988</a>. And Steve Jobs' company <a href="http://www.google.com/search?q=Apple+patent+infringement">is no saint either</a>. Sorry guys, you talk a good game but the facts put the lie to your words.
</p>
<p>
So what can we do against patents? Under the current regime, not much. If you can't find prior art or demonstrate obviousness, you're at the mercy of the patent holder. In fact the patent system has spawned a new class of companies whose sole business model is acquiring patents, licensing them and/or suing other companies over them. These companies, known commonly as "patent trolls", are software companies' worst nightmare. They cannot be countersued, and they can even sue companies who have previously owned the patents given to them(aka backstabbing).
</p>
<p>
The only way to really get rid of the patent problem is to literally get rid of software patents. Think about it. Europe has done precisely that, recognizing that copyright, trade secrets and trademarks can protect software more than adequately and that software patents actually stifle innovation. There are no patent silos held by major corporations to clobber competitors with, and no patent trolls to worry about. Ideas would flow more freely and spur on innovation(which ironically is the reasoning behind patents in general).
</p>
<p>
So in the end, despite Steve Ballmer's patently ridiculous blustering, Microsoft may wind up standing with open source to oppose patents because it actually does make good business sense. Watch for the attitude change when Bill Gates formally retires next year.
</p>]]>
</div>
</content>
</entry>
</feed>
