So I read a book today called Little Brother. You should read it, it's only about 200 pages you can finish it in a few hours, I promise it's a good read. I'll even wait while you do it....
Alright for those of you who don't have the time I'll give a brief synopsis. *SPOILERS WARNING: This post contains detailed information about the book Little Brother*
The terrorists bomb the Bay Bridge, Department of Homeland security steps in and locks people up, this story follows a young hacker who gets swept up by DHS and debased. They let him free with an admonition to never tell anyone. And he watches as his city is turned into an Orwellian nightmare before his eyes. He fights back, the underdog, against the DHS... It's really much better to read the story.
It got to me, made me a little wide-eyed, worrying about how this might come to happen.
I got over it, I'm not ready to fight the government, I suppose if things get a little too 1984 for me I'll run away. It's just not a fight I want to enter, I don't want to fight against people I know and care about because they think it's right for a government to revoke our rights to peace and happiness. I'll just leave em to their own devices.
But that doesn't mean I can't help passively. So I've decided to go dark. For me that means that this is my last traceable post... I thought it only fitting it be about this.
So what kind of inconveniences am I going to run into?
I've decided using the Tor onion routers for firefox and gaim. That will make things slower, but generally more anonymous.
I've decided to make a conscious effort to use https in order to run over the secure socket layer when it's available (like in gmail).
I've decided to try to remember to log out of gmail before surfing. Did you know that they can trace every google search you make while you're logged in.
I'm gonna try to go without cookies
I'm going to start encrypting my communications to certain people.
Why am I doing this? Do I have something to hide?
Nope. I don't have a single thing to hide. And probably never will. I'm totally boring. But reading "Little Brother" it made me think, "What if there are people out there who need to hide, but there isn't enough encrypted traffic to hide in." So I can help them hide by going dark myself. And who knows maybe I will have to use it.
So do I support the terrorists who bomb us?
Not really. I don't think bombing people is a very neat way to express yourself. But I must admit I am very partial to privacy... So if it's a choice between not knowing when terrorists are going to bomb me, and being able to live my life privately. I'm gonna have to side with privacy. Terrorist bombers will find holes in the system... just like spammers... just like media campaigns... just like any unwanted offense. I don't want the system to be tighter because the only person it's squeezing is me.
Why won't you actively fight for your privacy rights?
I'm busy. I want to build robots. And like I said before, fighting for people who don't want to be fought for is futile. If the people want cages... give them cages. Just count me out.
I'll try to post something about living in the darknet later. Oh if any of you want to join me here's my Public Key:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.6 (GNU/Linux)
mQGiBEgpNdkRBACdkLqN3LoXfYJkk4qDWSNdzsLo/BQt/McsZ+4mLNRFmeSqnCOS
RFGpj5tnjNzCK54E7kHjfYK3CBmYlnkbJPsb9vN4G6fShhV6f4YnVgwjW3kgemLL
/j8LbMv6H9SpeAGm6xI3YCZZxz1Yphi5tTEj4noxJICIc0ISvA7InT1aHwCg0NPw
RtoNzdLJ81EFvpw0ZVds1E0D/2XqUrbCJoCHFRy2rxTGLf8gFbCHvw6jkKnKTfvU
26q40u3m2Cq+haulDGqX/NumlMndWA6dfz2LZjnaLt5hl3wKiNP7N9NFEQQc827w
uMLBZz329vhV/QaLAznsq5glRosqmLiR5NbdWuJA61R4bODcXry5T0A6rcAjQS7m
cQXxBACJKAlcoKS4dTXRQ1H8axvH0Aipmr0PUZKdxqpeXLV69cjLf9XeDCPYzDkh
0/kdCc/JWYRK5rgAdXVuE3ylsNMaEJOsdHQPQXN1m84RjEj/6swpyfipEndII/9K
eVRmPDLEO5jKAT60h3AteXottHK4Cz+r8yrQUjsMr8lHtWdAebQ9SmFzb24gU2No
YWNodGVyIChFYXJ0aHMgV2FycmlvcikgPGphc29ub2ZlYXJ0aCtwZ3BAZ21haWwu
Y29tPohgBBMRAgAgBQJIKTXZAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ
Gonsm9xPhtmLKQCgqUKT0CswiGqw+MlsKgh+Bnc9Z1gAoLLEIe8aThnWJuStDa14
dxm9nlU1uQINBEgpNf0QCACcjXjFxoH3HKPK9TfJs/vG0jmeUhR29NXe4R2YBFXg
YE2y5qLx6e83OS31b6sgP092aLbW4yT44dztCObj1V02RhQrjf400wFCIYbAWWhd
tW05kSerZCxUSWrAA8b96vOX/STIzrh74u3k4eqcStes30tmVeAXnh39VNMRb5mB
XUst6/X2EFcXKvZesUebwFlTcU73harWelTtaJjOp5Vc5gTB9/0pX9jdvF0GSTGN
5wAzOEl6gWPfdXg35E5cXPg1rxPXL5fuLomD1EcFl0EpzYhUb/wSGS3KOyrut8lS
hDLMiYJ0qLl8w0FSLe8hNA8oZXyxcJgYI+G1Ze/ERt/HAAMFB/0V0uKRQ7Icrpkl
CmtteN+4SnCvZaNpGHbRZEV9/Vx98raYOILYdL2tBiPukGDRRxce6pw9t7SbtTV1
roEVISC8rULA4IWtdX38YkO48JEMh/3mB03H2yXuKLnbgakp6dUqA5g3QT/YQTHn
5vc0QAHDKZfzZD17ljjBLy40WT+pGi/8cB2I1wcSnv4FqkSOwAJOUOMW7GSg1qLs
rG6nMD8sfhltIPfCxoTvHvhNYvI24URL6t5v2NWR5nTxReDUlQD7Tu8afFLPrpnm
odA2uyOpM4RW/Zb7t30xnlg7WvBU4cpTGOLeGtpYozwotymJMyg4qEGWCdDZPl7o
WZc2kuFkiEkEGBECAAkFAkgpNf0CGwwACgkQGonsm9xPhtm60gCeLlN9KJ1ofbWM
ftBh+bw4ZfgOT00AmgI/hQ9LkccqRHh+lK7KURvqbmNc
=H3Nj
-----END PGP PUBLIC KEY BLOCK-----
Send me your public key and I'll consider you a friend. If you're really a secret DHS agent pretending to be my friend... well done... you've infiltrated a group of revolutionaries... I happen to be a pioneer in the art of sitting on my butt, doing nothing.
Monday, May 12, 2008
Friday, May 9, 2008
I want to work for you
Your company must be making a difference. I don't mean a difference in what kind of software an average engineer will use. I mean a difference in the path of technology of the world. If you are working on robots, or nanotechnology, or synthetic biology, or space exploration, or superconductivity, or brain augmentation, or extending lifespans. Any of the hundreds of applications that will be useful to bring us closer to the singularity. I want to work for you.
I am a programmer, that means I know programming languages and how to use them. I am not an expert in any one language, but I have used almost all of them. I'm learning lisp to work on AI (I will keep doing that until you hire me). I studied Java and C++ in school, and continue to use it wherever I'm working now, they are unimportant languages unless used to solve complex dilemmas and no place I have worked has ever provided me with any.
I am a simplifier, I take complex systems and break them down in order to create the simplest solutions. As a programmer this makes me exceptional at design, I use my abilities to force the creation of the simplest structure that will work. I don't believe complex and elegant work well together. Complexity makes things harder to work with and should be hidden behind abstraction so it does not spread. I think any lasting code (that will remain in production for more than 5 years) should value simplicity over clever hacks and creative solutions. Solutions to programming problems should not look creative in the end, it may take all your ingenuity to come up with the idea, but in the end it should look simple, like it always belonged where you put it.
I am a creative thinker, however I am not good at generating original plans. This means that if you provide me a framework I will work exceptionally creatively and design you the best possible solution to the problem posed. The tighter the framework the more elegant my solutions tend to be. If you tell me to make "something cool", I won't have anything for you.
I am open. I believe in truth in communication. I am a facilitator, I work with all teams and value every well reasoned opinion. I refuse to "hang with the engineers", I am equally capable of discussing with product managers, designers, customers. I do not lie, I will not attempt to further my career at the expense of others, I will tell you about any aspect of my life if you ask.
I am steadfast. To change my opinion you must make me agree with you. This is an impossible task unless you speak with logic and conviction. If you fail to convince me of a direction I will still follow your orders, but I will likely be slower and less creative in a direction that I don't agree we should go. I don't waver on opinions without solid backing, all of my choices are well reasoned to start with.
I should work for you. You should pay me to learn, and build whatever you ask. I will go to school to learn more for you, I will work as hard as I can to help bring about the singularity before I die. You should harness my powers, rather than let me languish in a cubicled prison.
I am a programmer, that means I know programming languages and how to use them. I am not an expert in any one language, but I have used almost all of them. I'm learning lisp to work on AI (I will keep doing that until you hire me). I studied Java and C++ in school, and continue to use it wherever I'm working now, they are unimportant languages unless used to solve complex dilemmas and no place I have worked has ever provided me with any.
I am a simplifier, I take complex systems and break them down in order to create the simplest solutions. As a programmer this makes me exceptional at design, I use my abilities to force the creation of the simplest structure that will work. I don't believe complex and elegant work well together. Complexity makes things harder to work with and should be hidden behind abstraction so it does not spread. I think any lasting code (that will remain in production for more than 5 years) should value simplicity over clever hacks and creative solutions. Solutions to programming problems should not look creative in the end, it may take all your ingenuity to come up with the idea, but in the end it should look simple, like it always belonged where you put it.
I am a creative thinker, however I am not good at generating original plans. This means that if you provide me a framework I will work exceptionally creatively and design you the best possible solution to the problem posed. The tighter the framework the more elegant my solutions tend to be. If you tell me to make "something cool", I won't have anything for you.
I am open. I believe in truth in communication. I am a facilitator, I work with all teams and value every well reasoned opinion. I refuse to "hang with the engineers", I am equally capable of discussing with product managers, designers, customers. I do not lie, I will not attempt to further my career at the expense of others, I will tell you about any aspect of my life if you ask.
I am steadfast. To change my opinion you must make me agree with you. This is an impossible task unless you speak with logic and conviction. If you fail to convince me of a direction I will still follow your orders, but I will likely be slower and less creative in a direction that I don't agree we should go. I don't waver on opinions without solid backing, all of my choices are well reasoned to start with.
I should work for you. You should pay me to learn, and build whatever you ask. I will go to school to learn more for you, I will work as hard as I can to help bring about the singularity before I die. You should harness my powers, rather than let me languish in a cubicled prison.
Wednesday, May 7, 2008
My Kaizen List
I just found this wiki article on kaizen through lifehacker, and it struck a good chord with me. Continual small improvement always seems doable to me. So I've decide to set up a kaizen list. Which I've decided will be a list of three things that I will attempt to continually improve. The list can shift but whatever is on the list should get some attention each day, even if it's just to think about or read an article about it. I can't cop out of the list by using blanket statements like "get better at programming" because that could mean anything and doesn't get to a really solid goal. My current list includes only two, but I will look for a third over the course of the week.
My List:
1) Lisp
2) SCA swordfighting
3) ???
My List:
1) Lisp
2) SCA swordfighting
3) ???
Tuesday, April 15, 2008
Where is our Master of Orion?
Last summer we discussed twin announcements from Intel and IBM/AMD about a new chip manufacturing technology dubbed high-k/metal gate. Intel is using the tech to improve speed and power consumption in its 45-nm chips. IBM, along with its manufacturing partners, just demonstrated chips it says show that high-k/metal gate technology at 32 nm can result in performance gains up to 30% and power savings up to 50%, compared to 45-nm process. IBM plans to be manufacturing 32 nm parts by the end of 2009. (AMD is not using high-k/metal gate yet, but it has access to the technology by virtue of its agreements with IBM.)
I read that article summary from Slashdot and one thing stuck out to me:
AMD is not using high-k/metal gate yet, but it has access to the technology by virtue of its agreements with IBM.
Holy smokes. Did anyone else get Master of Orion flashbacks? Regular articles are considering technologies as commodities. Something to be traded between
Imagine what would have happened if they had been working on different aspects rather than competing to the same technology. Looking at it from a Master of Orion viewpoint when we bump up our electronics research we get no more research points because they're all researching the same thing.
When you play Masters of Orion you get the sense that the whole race is working together to expand knowledge, and explore space. That there are teams of scientists inventing because that's what they're good at and what they produce is useful, to everyone. You probably didn't even imagine an internal currency for the planets you controlled. If the scientists wanted food the farmers would give it to them. If the factory workers needed ore the miners would get it for them. Not because they were paying internally but because they were working together as a whole. As a single race.
I have heard theories that the human race won't band together until it faces an outside threat. Perhaps any extraterrestrial societies are merely waiting for us to destroy ourselves. It seems rather likely, because we don't have our own... Master of Earth.
As I posit the position that the human race needs a leader, I'm not sure what that leader would be like. Enough humans don't want to be led, or wouldn't like the direction of leadership, that I might say it was impossible. But without it I think we will limp along slowly, and might destroy ourselves before we find something to band together about.
Thursday, April 10, 2008
I thought robotics was stalled
How naive it turns out I was. I thought because robotics wasn't there, in my face, advancing all products, that robotics was dead. It turns out all the problems are being secretly solved. Oh it's no conspiracy, but you have to specifically look for them to see anything more than the Roombas around.
That may just be because of my country, it seems huge leaps in robotics are occurring in Japan. As they say necessity is the mother of invention, it turns out Japan is suffering from too few children being born and so there will not be enough people in the workforce to support the retiring population (they call the problem the graying of Japan). And so they hope to replace a large portion of those retiring individuals with robots.
I also thought robotics was still in the individual hobbyist phase. Programming started out that way as well. With most of the new development occurring as individuals figured out what these crazy "computers" could do. But it turns out I'm behind the times... behold:
The Microsoft Robotics Platform
While I have had no experience with the robotics platform. Nor can I state for certain Microsoft is of any help, I can suggest this parable.
That may just be because of my country, it seems huge leaps in robotics are occurring in Japan. As they say necessity is the mother of invention, it turns out Japan is suffering from too few children being born and so there will not be enough people in the workforce to support the retiring population (they call the problem the graying of Japan). And so they hope to replace a large portion of those retiring individuals with robots.
I also thought robotics was still in the individual hobbyist phase. Programming started out that way as well. With most of the new development occurring as individuals figured out what these crazy "computers" could do. But it turns out I'm behind the times... behold:
The Microsoft Robotics Platform
While I have had no experience with the robotics platform. Nor can I state for certain Microsoft is of any help, I can suggest this parable.
A young monk and an old monk approach a swift-flowing river. The young monk spies the river and begins picking up some hefty rocks to make a bridge. The old monk carries nothing but searches the riverbank as they approach. The young monk tosses his large rocks at intervals in the river, but just as swiftly as he tosses them they begin to be rolled downstream.
"Ahh, wise master how shall we cross the river," he cries. The old monk moves downstream a ways and begins to try to heave a heavy boulder into the river.
"Master, though I trust your wisdom, that boulder will do us no good, we cannot cross on just one boulder and we cannot lift enough of them to make a path. That is why I only chose large stones," the young monk sighs. Dutifully he helps the elder monk lift the rock and heave it into the river. Then the old monk sits, tired from is effort.
The young monk remains standing and says, "Master what shall we do now?"
"Wait," suggests the old monk, a twinkle in his eye.
Hours pass and the young monk begins to notice that some of the rocks, rolling down from farther upstream, are lodging against the boulder. Into the next day they observe a growing outwelling of rocks. Until the old monk deemed it safe to cross.
As they left the far riverbank the old monk began lecturing.
"You see, all the work tossing large rocks could not solve the problem. Individually they were not strong enough to hold the tide, and they could not work together. But one large effort on the boulder, though as you stated it would be impossible for us to use the boulder to cross, left a space for other rocks to cling. To work together and form the bridge, until even the boulder platform was unnecessary."
Wednesday, April 2, 2008
Universal Documentation
Wikipedia is amazing as it grows it is becoming something of my concept of a set of Universal Documentation.
Did you know there is documentation on building a FTL spaceship? If you dig in you'll see the reason they haven't built it is they need exotic matter, but if you dig further than that you'll see that matter can be shown to be exotic matter. Holy Crap!?! But I digress.
There is a fundamental problem with wikipedia. The problem is people don't know everything. And wikipedia doesn't take them all the way back to something they know so they can hang the information somewhere.
The problem illustrates itself best in mathematics. Regardless of what level of mathematics you are comfortable with, there are certain portions you don't know. It's made even more tricky because of the symbols they use. Did you look at the wikipedia article on exotic matter? Did you notice Forward's Analysis? And the equations used there:
P(sys) = (v x m) + (v x (-m))
Do you know what v and m are for? I happen to know that P(sys) is talking about potential energy (but that's because I remember something from my physics classes).
The trouble is wikipedia doesn't provide links for you to learn. It's a dead end, you can't understand what they're talking about so you quickly lose the knowledge. You might contend here that I could whip out my physics book and learn the requisite knowledge.
Ever tried searching a physics book for a specific type of instruction? It's not easy, and I certainly wouldn't recommend it on a more regular basis than once a week. That combined with the fact that you may not even be able to learn from the textbook, leaves this a dead end.
Imagine wikipedia articles where hovering over the variables in an equation tells you what they are describing and clicking on them takes you to documentation of what that thing is. Imagine being able to dig far enough down to find something you do understand and work your way up until you understand the math and physics they are describing.
That is perfect Universal Documentation.
The troubles I see with this are the same problems I have with physics books. They're not written by people who are good at getting their point across, they are written by people who are good at physics.
I wonder if I could start at the bottom and work up. If I started with mathematics, branching for different types of mathematics, branching further for physics.
What an insane idea, but just imagine if anyone in the world could contribute to scientific discussions.
Did you know there is documentation on building a FTL spaceship? If you dig in you'll see the reason they haven't built it is they need exotic matter, but if you dig further than that you'll see that matter can be shown to be exotic matter. Holy Crap!?! But I digress.
There is a fundamental problem with wikipedia. The problem is people don't know everything. And wikipedia doesn't take them all the way back to something they know so they can hang the information somewhere.
The problem illustrates itself best in mathematics. Regardless of what level of mathematics you are comfortable with, there are certain portions you don't know. It's made even more tricky because of the symbols they use. Did you look at the wikipedia article on exotic matter? Did you notice Forward's Analysis? And the equations used there:
P(sys) = (v x m) + (v x (-m))
Do you know what v and m are for? I happen to know that P(sys) is talking about potential energy (but that's because I remember something from my physics classes).
The trouble is wikipedia doesn't provide links for you to learn. It's a dead end, you can't understand what they're talking about so you quickly lose the knowledge. You might contend here that I could whip out my physics book and learn the requisite knowledge.
Ever tried searching a physics book for a specific type of instruction? It's not easy, and I certainly wouldn't recommend it on a more regular basis than once a week. That combined with the fact that you may not even be able to learn from the textbook, leaves this a dead end.
Imagine wikipedia articles where hovering over the variables in an equation tells you what they are describing and clicking on them takes you to documentation of what that thing is. Imagine being able to dig far enough down to find something you do understand and work your way up until you understand the math and physics they are describing.
That is perfect Universal Documentation.
The troubles I see with this are the same problems I have with physics books. They're not written by people who are good at getting their point across, they are written by people who are good at physics.
I wonder if I could start at the bottom and work up. If I started with mathematics, branching for different types of mathematics, branching further for physics.
What an insane idea, but just imagine if anyone in the world could contribute to scientific discussions.
Wednesday, March 12, 2008
I [heart] open source
Some people might say that as a programmer loving open source I am embracing the end of my career. I've never met anyone who has an informed opinion about it, but I assume that there are people saying Open Source is about doing work without getting payed. I imagine critics look at Open Source developers as if they're out of their minds to be creating things that corporations just steal from them.
I also think corporations should ensure they only use open source code. Woah... back up the train, if they do that then how will I get payed. Here's the magic, if they use open source code they'll pay me to make it better (or at least better for them). And what's more since it's Open Source, I'm making it better for everybody.
So a question comes to mind. How is that better than the current state of software design? To answer that you must understand what the current state is. Currently a software engineer (or a team of them) is hired either by an independent software company or by a company that does something else (like making tires). There are two distinct patterns that are followed depending mostly on the size of the programming department.
If an programmer works for a large programming department typically he spends a significant ramp up period learning the coding practices, which is way "this company makes code". This set of coding practices is entirely different from any practices he's used before (if he's worked for another company his skills at that companies coding practice are useless). The problem is these practices grew organically with generations of programmers before him making their stamp in trying to enforce rigidity and fault tolerance into the chaotic programming world. No company does it the same, and thus the code and the practices are one off products.
If an programmer works for a small programming department typically they just ask him to "make some programming happen". The engineer works his best (or sometimes his laziest) to set up a framework and build what the boss wants. Normally the code is buggy and barely conforms to what is necessary because the programmer created it himself with very little input. Then he continues to grow his team while creating a list of coding practices so that he can get others to work on the same system he's working on without messing it up too badly.
It's a pretty dystopian world where no programs will ever work together and every company is reinventing the wheel (poorly).
With Open Source you get thousands of eyes looking at code, looking for faults and fixing them. With Open Source you get hundreds of new programs that evolve and grow into something everybody can use. With Open Source you can pay a fraction of the price (just the price to pay some programmers to tweak the program to your specifications). Or pay whole teams of engineers to develop brand new exciting programs.
Now a company might question why they have to be the ones to "pay money" to Open Source. The other companies aren't paying, so why should they. They can just continue making their proprietary code and steal Open Source stuff when it does what they want it to.
First, if you do that open source will die. Eventually these programmers and hackers will not have the fortitude to keep making programs for ungrateful businesses. They may even make a new copyright so that no company with proprietary code can use their source, if they got angry enough.
Second, you limit the amount of open source you can use. Because you wouldn't want to "waste time" working on open source code that other people would get to use for free. So when you could have just tweaked Trac you end up rewriting the whole thing. Only more buggy.
Right now companies are taking the fruit that fall from the open source tree because it's free. Some companies are tending the tree, because they understand the advantage in the long run. Others are still buying programmers and forcing them to create the same fruit that could be had from Open Source, and those programmers, though they try their hardest will be no match for what Open Source brings to the table. You try being one programmer against hundreds, see how it feels. To have to find all the bugs on your own, to code without having other people to watch and help.
I can't wait until all code is Open Source and companies hire me to make programming advances in the direction they want to go. Think of the conversation like this:
"I'm glad you could come in, tell me what code bases have you worked in."
"Well I've been working inside Mozilla (I did a change for Ford that allowed them to open up 3D models). I've done some work on E-Term at home because I wanted to embed it in my desktop. I've made some changes to compiz-beryl to allow ATT to flip between 3D renderings of network maps in real time."
"That's great. I can't tell you much at this stage but we'll need your 3D expertise on some modifications to Gnome."
You stand there happy as a clam knowing that while you are working for one company you're providing a service to humanity as a whole by making their programs stronger and more capable with no strings attached.
I also think corporations should ensure they only use open source code. Woah... back up the train, if they do that then how will I get payed. Here's the magic, if they use open source code they'll pay me to make it better (or at least better for them). And what's more since it's Open Source, I'm making it better for everybody.
So a question comes to mind. How is that better than the current state of software design? To answer that you must understand what the current state is. Currently a software engineer (or a team of them) is hired either by an independent software company or by a company that does something else (like making tires). There are two distinct patterns that are followed depending mostly on the size of the programming department.
If an programmer works for a large programming department typically he spends a significant ramp up period learning the coding practices, which is way "this company makes code". This set of coding practices is entirely different from any practices he's used before (if he's worked for another company his skills at that companies coding practice are useless). The problem is these practices grew organically with generations of programmers before him making their stamp in trying to enforce rigidity and fault tolerance into the chaotic programming world. No company does it the same, and thus the code and the practices are one off products.
If an programmer works for a small programming department typically they just ask him to "make some programming happen". The engineer works his best (or sometimes his laziest) to set up a framework and build what the boss wants. Normally the code is buggy and barely conforms to what is necessary because the programmer created it himself with very little input. Then he continues to grow his team while creating a list of coding practices so that he can get others to work on the same system he's working on without messing it up too badly.
It's a pretty dystopian world where no programs will ever work together and every company is reinventing the wheel (poorly).
With Open Source you get thousands of eyes looking at code, looking for faults and fixing them. With Open Source you get hundreds of new programs that evolve and grow into something everybody can use. With Open Source you can pay a fraction of the price (just the price to pay some programmers to tweak the program to your specifications). Or pay whole teams of engineers to develop brand new exciting programs.
Now a company might question why they have to be the ones to "pay money" to Open Source. The other companies aren't paying, so why should they. They can just continue making their proprietary code and steal Open Source stuff when it does what they want it to.
First, if you do that open source will die. Eventually these programmers and hackers will not have the fortitude to keep making programs for ungrateful businesses. They may even make a new copyright so that no company with proprietary code can use their source, if they got angry enough.
Second, you limit the amount of open source you can use. Because you wouldn't want to "waste time" working on open source code that other people would get to use for free. So when you could have just tweaked Trac you end up rewriting the whole thing. Only more buggy.
Right now companies are taking the fruit that fall from the open source tree because it's free. Some companies are tending the tree, because they understand the advantage in the long run. Others are still buying programmers and forcing them to create the same fruit that could be had from Open Source, and those programmers, though they try their hardest will be no match for what Open Source brings to the table. You try being one programmer against hundreds, see how it feels. To have to find all the bugs on your own, to code without having other people to watch and help.
I can't wait until all code is Open Source and companies hire me to make programming advances in the direction they want to go. Think of the conversation like this:
"I'm glad you could come in, tell me what code bases have you worked in."
"Well I've been working inside Mozilla (I did a change for Ford that allowed them to open up 3D models). I've done some work on E-Term at home because I wanted to embed it in my desktop. I've made some changes to compiz-beryl to allow ATT to flip between 3D renderings of network maps in real time."
"That's great. I can't tell you much at this stage but we'll need your 3D expertise on some modifications to Gnome."
You stand there happy as a clam knowing that while you are working for one company you're providing a service to humanity as a whole by making their programs stronger and more capable with no strings attached.
Subscribe to:
Posts (Atom)