A lovely little film all about two very top secret computers--one in the US and one in the USSR. From a summary I found...
Dr. Charles Forbin has completed work on the greatest computer ever built: Colossus. The city-sized mainframe, built into an impenetrable Western U.S. mountain, independently controls the American nuclear arsenal. Coldly, rationally, it will assess threats to the U.S. and take action if necessary. The president tells the world such a computer, independent of human weakness, will create lasting peace. That lasts for only a few days when Colossus discovers his Soviet counterpart and begins communicating. Once merged, they tell U.S. and Soviet leaders that the foolishness of the Cold War must end. By threatening nuclear holocaust, the computers -- collectively called Colossus -- engineer assassinations and isolate governments. Dr. Forbin is put under house arrest. From his private rooms, he begins a mental battle with Colossus. He invents a sexual relationship with assistant Cleo Markham and Colossus unwitting provides Forbin with a confederate. Human efforts to short circuit the nukes are discovered by Colossus who punishes the earthlings with nuclear detonations. As Colossus makes a global broadcast announcing its intention to enforce peace through strength ("Freedom is an illusion," it says), the film ends.
Interestingly, the computers learn to talk to each other through mathematic equations.
I mean really, come on. Only a fool would not know that open source has the capacity for foul play. But with the eyes of the crackers come the eyes of the police, or in this case, the moderators. So, with a simple code review, you can spot an issue. With OS, you have a chance.
OTOH, with any closed source system, you have no code review. You have no chance to spot a security hole, purposeful or not. With CS, you simply have no chance.
Let's review: with OS, you have the opportunity for exposure, but also the opportunity to catch it. With CS, you have no opportunity to know anything. Sounds like the old free markets argument to me. The only person who would really support the CS position is an uniformed tool.
It would produce incredible code. On the other hand, such optimization and performance tuning is a lost art. I've known very few programmers who are great debuggers and optimizers. I generally see three types of engineers:
seeds (people who can create new approaches quickly, grasp lots of ideas, but cannot fine tune or produce solid code to save their lives),
coders (people who need more structure around the problem, but can methodically solve it and produce good code), and
polishers (people who are so detail focused and methodical that they can structure tests, analyze inputs, and find needles in haystacks)
Sadly, the last group seem to be disappearing, where instead we throw batches of Bangalore and Indian engineers or automated test tools at the app, getting it to meet the thresholds of the business spec, and then we move on.
So, for something like Mozilla, the performance to cost is not the main business driver. If it takes 1 sec to show a web page vs. 0.5 sec, most users simply don't care. Thus, the cost relationship.
Just above direct hardware calls anyway. DirectX bypasses so many subsystems in Windows, it's should not be called a Windows API. It's a Glass API. That's why there are so many bugs in DirectX all the time, forcing Windows users to constantly create patches to their drivers. The more exposed to the hardware and the lower the level of programming, the more likely silly bugs will kill you. But you get incredible performance.
Now, I agree that I would not go back, but realize that you still depend upon someone out there, writing fairly low-level hooks for the DirectX calls in the GPU to get the performance you want. Yep, someone's still hacking assembly out there.
But in the end, for most business apps (the kind that care about whether you're using java, c#, dot net, or the langue du jour), it's not about DirectX. It's about cost.
But that's what you know so well. I bet if I took a team of VB programmers who knew VB as well as you know VC++, and then challenged them to produce a series of business oriented apps, in most cases you'd lose. How many VC++ programmers does it take to create a business app? 2 * VB Programmers usually -OR- how long does it take to create and debug a business app in VC++? 2 * VB time.;-) JK!
Guido van Rossum noted in an interview the following statistic, and I think it bears considerably on appropriateness:
This [ed: these stats] is all very informal, but I heard someone say a good programmer can reasonably maintain about 20,000 lines of code. Whether that is 20,000 lines of assembler, C, or some high-level language doesn't matter. It's still 20,000 lines. If your language requires fewer lines to express the same ideas, you can spend more time on stuff that otherwise would go beyond those 20,000 lines.
A 20,000-line Python program would probably be a 100,000-line Java or C++ program. It might be a 200,000-line C program, because C offers you even less structure. Looking for a bug or making a systematic change is much more work in a 100,000-line program than in a 20,000-line program. For smaller scales, it works in the same way. A 500-line program feels much different than a 10,000-line program
So then, unless you quantify the types of apps you build, the team you use, and the results that are expected, my experience has shown me that most of the time, for business apps, it's overkill. Now, if you're in a dev team at a software company, well then, I could consider the other side.
Consider what was done years ago with assembly. The performance was incredible, and the amount of superfluous garbage in the code was minimal. Hey, if you wrote the assembly, why would you spend time putting it in?
Then, with more and more languages, especially ones with VMs, you get further and further away from the hardware. The end result: you lose performance. It does more and more for you, but at the expense of real optimizations, the kind that only you can do.
Now the zealots will come out and say, "Language X is better than language Y, see!" To me this argument is boring. I tend to use the appropriate tool for the job. So:
Python for scripts, prototypes, proofs of concept, or components where performance generally is not an issue.
For desktop apps, Visual Basic (yep, most IT apps are in VB). There is no justifiable reason for an IT department group to write a sales force reporting system in C++! If you want C++, go get a job at a software company. Stop wasting money and time making yourself feel like a hotshot. [I'd consider Kylix here if it was based on Basic. Why? Because honestly, Pascal is just about dead, and Basic is the king of the simple app. Let's just live with it and move on. I do want a cross-platform VB . . . ]
For web apps, well, I stick around PHP/ASP.NET. Why? Portability! And moreover, the sticking point in a web-based app is not the UI layer; it's usually the underlying data extraction and formatting. Don't waste your time with lower level languages there. IMHO it's just not worth it. JSP and Java stuff, yuck! Too much time for too little bang.
Java/C# (also consider mono/LISP for most production apps. Why? Portability! I want no vendor holding me by the balls. I want platform independence on the back end, and these are the few ways to achieve it. I'd include Haskell/OCAML here when appropriate. Perl? I'm loathe to use Perl as production, considering most Perl code cannot be understood 2 weeks after it's written. I'd rather take the hit in performance and be able to pass the code to someone else later.
C++/C for components--just components--where performance is at an absolute premium or there exists some critical library that only has this kind of interface. But this step has to be justified by the team, with considerable explanation why a different architecture could not suffice. Otherwise, the team could waste time checking for dangling pointers when instead it could be doing other things, like finishing up other projects.
Assembly? Only when there is not a C complier around. Embedded stuff. Nowadays, you just do not have the time to play.
Yes, my teams use many languages, but they also put their effort to where they get the biggest bang for the buck. And in any business approach, that's the key goal. You don't see carpenters use saws to hammer in nails or drive screws. Wise up!
The whole codes thing just seemed to smack of a money grab anyway. More or less the equivalent of trade barriers. Consider this approach: - Trader A buys DVD in country X for $n - Trader A sells DVD in country Y for $n+m
Hmmmm. Seems like a nice, free-trade policy that anyone in the Enron Adminstration would support. But codes _try_ to prevent that free trade, saying, hey, you can't sell it over here.
I think the producers of coded DVDs should be sued under WTO rules as prohibiting fair trade.
All of these moves just demonstrate the increasing move back to the mainframe. Now, the mainframe presents a virtual GUI interface to the user vs. a 80x25 green screen. The mainframe now becomes a series of operating system images, working in a virtualized system, providing users with their environment to do their work. Really, look at the "on demand" efforts by IBM and others, or the moves by Microsoft with VirtualPC and continued strength of Terminal Server. And you'll have access all the way down to your PDA/Phone! And once they lick persistent sessions across your instance, well then, you'll never have to reboot again!
The cycle continues yet again. What will create the next requirement to move systems off of the mainframe? I'm not quite sure, but let's hope that VMware (really ESX Server and GX Server--the real reason they bought VMware) does not get too tied to EMC storage virtualization. There are too many good uses beyond creating reasons to buy hard drives or SANs.
That was the major question I though they did not seem to answer, or at least even touch.
I could understand a different species not liking us, and in some way, being what we might call pure evil. Hey, they're different. Species are different. Intelligence does not mean that we all get along.
But in this case, the cylons are now our computers run amok. OK, while I can deal with this change, they never then touched on why they want to kill us? Because we wanted to kill them? Why do they want to kill us now? What does it benefit them? What computational values make them _want_ to expend the resources, et al to go to war with us? They just glanced that one over, and in the end, said, hey, the cylons want to kill us, so there.
Slowly, the foolishness of this entire activity will be seen, and then McBride can be sued into non-existence for taking far too much time with these stupidities. He must be made to pay, a la Kenneth Lay, for his hubris.
First, after you vote, a 2-D bar code is printed. That code contains a record of your vote, with an encryption of the machine you voted at and your selected key. Nothing big, 4 digits. The critical part is the hardware key used on the machine.
A copy of this bar code is printed at the same time inside the system.
If there was an audit, randomly call people to determine their key. Although you could decrypt it, it's better than just leaving the votes lying around. Then, verify the accuracy.
Since I have a printed record at the time of the voting, I can use it to verify my votes. The local voting office could decrypt it, and then I can verify my votes.
I did not say I agreed with the policy, I just said that rules restrict innovation. I consider that policy to be an innovation, but not a very good one.
Innovation depends upon the flexibility to create new responses to an environmental situation or need. Treaties that fix rules around the environmental conditions restrict those responses, and ergo, they restrict innovation. One might also argue that many of our laws restrict innovation--like immediate execution for DNA-proven rapists and murderers as a response to prison overcrowding--but hey, don't throw the baby out with the bathwater.
I was disappointed in your recent article regarding the FSF's enforcement of the GPL and Linksys' router code. Mr. Lyons portrays the enforcement of the GPL as at most intellectual property theft or at least providing competitors with your assets. However, it is Linksys and Cisco that have taken goods and not paid for them, something I believe that even Mr. Lyons would agree is not acceptable.
Regardless of your political views on Richard Stallman, one of the foundations of the GPL he pioneered is that if you benefit from its licensed code, you contribute to it. Over time, all who use it gain the benefits. Those are the terms of GPL code's use. Linksys, and thereby Cisco, have benefited from the contributions of others, including possible competitors. They chose to use GPL'd code over some proprietary code as it directly provided business value to their offering.
Since there has been a direct value to Linksys by using the GPL'd code, it seems only fair that they pay for their use through their contribution that the GPL requires. This contribution is no different than a payment another business might ask for from a vendor that uses its products. Both items have value, and they have a price. In one circumstance, you must contribute code back to the community. In the other, you must contribute money. Both have value, and both are payments. To not understand this rationale is to not understand the basic exchange of a free market.
In my opinion, the GPL is not the appropriate license at all times. I would not recommend its use for something that you consider your strategic competitive advantage. However, if you want the benefits it can provide, and you are willing to meet its contribution requirements, it can be a considerable asset to your IT approach. Linksys made that decision.
I see no legitimate basis for Cisco's continued resistance. They have received value; hence, they must provide payment through their contribution. To receive goods and not pay for them in any other business arrangement would be considered theft.
I applaud the FSF for pursuing proper payment for use of GPL'd code, and I hope that organizations can get past the author's childish "comrade" swipes and demagoguery to see that in many cases, GPL'd code can make a valuable addition to your overall IT strategy where appropriate.
We all need to know of the vulnerabilities, rather than hiding our heads in the sand and pretending they're not there. How else can users make informed decisions about what they use?
I myself recently changed over from IE to Firebird, as I was just too fed up with the system slowdowns, the lack of feature advancement, and the glaring holes IE has. I had to learn about these issues the hard way. How do you expect Mr. and Mrs. Average User to make any sort of informed decision about their situation and vulnerabilities?
Sadly, it seems we've entered the don't ask, don't tell portion of the story. We all know what a success that policy has been elsewhere.
You think that by equating everything with dollar values, you've come up with true measures of worth. That assumption is completely bogus.
More fundamentally, we have artificially low (!) gas prices in the US, as we do not bear the true burden of the costs SUVs and other vehicles put on the environment, on the roads, and on the economy. As a result, we spread out cities and towns out into the green spaces, and then we complain about commutes and price increases. Foolish!
Rather, we should consider the hidden costs of items. While we don't factor in the price of clean air, we should consider the price of your health costs with dirty air. I for one make my decisions not just by the dollar but by my principles, ones that tell me to take as little as I can from the world so that my daughter can have something. That's far more important than just the variance in price between hybrids and standard vehicles.
Lastly, I think it's a fair trade: I care about the world in which I live, and I will pay more for it. Sadly, with the choices out there, the burden is on me, as you seem to be unwilling to take it. As such, I accept the burden, on behalf of both of us.
I mean, this guy is a man who does not take just any one's line of crap to be gospel. He listens, he thinks, he uses his brain. More importantly, he doesn't just "know" -- as the W contends -- that things are one way or the other. He's quite open to the possibility of paranormal activity, that is, if you can prove it.
A man willing to test his own beliefs! My goodness, what more do we want?!!?!
Ducking paparazzi--"you think I'm the real governor, but I'm not. He's over there. Ha ha ha ha." The hologram disappears as he ducks into the limo (Total Recall)
Budgetting--"Deficit?! It's not a deficit!" (Kindergarden Cop)
Wildlife protections--"Hasta la vista, duckies!" (T2)
Political fundraisers--"Feinstein, my name is Freeze! Remember it well because it is the chilling sound of your doom!" (Batman 3)
And lastly, to the Legislature, when he declares himself King of California, "Consider this a divorce." (Total Recall)
From all of us out here that dreamed of stepping on the Martian surface at one time or another, thanks for taking me there--at least in spirit.
Good job all!
OTOH, with any closed source system, you have no code review. You have no chance to spot a security hole, purposeful or not. With CS, you simply have no chance.
Let's review: with OS, you have the opportunity for exposure, but also the opportunity to catch it. With CS, you have no opportunity to know anything. Sounds like the old free markets argument to me. The only person who would really support the CS position is an uniformed tool.
From the comment:
Just a quick note that we all should remember:- It's = it is (contraction)
- its = possessive of it (possessive)
Try to remember it in this fashion: If you know the sex, use the apostrophe (think phallic). If not, no apostrophe.It's a rule we can live by ;-)
- seeds (people who can create new approaches quickly, grasp lots of ideas, but cannot fine tune or produce solid code to save their lives),
- coders (people who need more structure around the problem, but can methodically solve it and produce good code), and
- polishers (people who are so detail focused and methodical that they can structure tests, analyze inputs, and find needles in haystacks)
Sadly, the last group seem to be disappearing, where instead we throw batches of Bangalore and Indian engineers or automated test tools at the app, getting it to meet the thresholds of the business spec, and then we move on.So, for something like Mozilla, the performance to cost is not the main business driver. If it takes 1 sec to show a web page vs. 0.5 sec, most users simply don't care. Thus, the cost relationship.
Now, I agree that I would not go back, but realize that you still depend upon someone out there, writing fairly low-level hooks for the DirectX calls in the GPU to get the performance you want. Yep, someone's still hacking assembly out there.
But in the end, for most business apps (the kind that care about whether you're using java, c#, dot net, or the langue du jour), it's not about DirectX. It's about cost.
Guido van Rossum noted in an interview the following statistic, and I think it bears considerably on appropriateness:
So then, unless you quantify the types of apps you build, the team you use, and the results that are expected, my experience has shown me that most of the time, for business apps, it's overkill. Now, if you're in a dev team at a software company, well then, I could consider the other side.
Then, with more and more languages, especially ones with VMs, you get further and further away from the hardware. The end result: you lose performance. It does more and more for you, but at the expense of real optimizations, the kind that only you can do.
Now the zealots will come out and say, "Language X is better than language Y, see!" To me this argument is boring. I tend to use the appropriate tool for the job. So:
Yes, my teams use many languages, but they also put their effort to where they get the biggest bang for the buck. And in any business approach, that's the key goal. You don't see carpenters use saws to hammer in nails or drive screws. Wise up!
The whole codes thing just seemed to smack of a money grab anyway. More or less the equivalent of trade barriers. Consider this approach:
- Trader A buys DVD in country X for $n
- Trader A sells DVD in country Y for $n+m
Hmmmm. Seems like a nice, free-trade policy that anyone in the Enron Adminstration would support. But codes _try_ to prevent that free trade, saying, hey, you can't sell it over here.
I think the producers of coded DVDs should be sued under WTO rules as prohibiting fair trade.
All of these moves just demonstrate the increasing move back to the mainframe. Now, the mainframe presents a virtual GUI interface to the user vs. a 80x25 green screen. The mainframe now becomes a series of operating system images, working in a virtualized system, providing users with their environment to do their work. Really, look at the "on demand" efforts by IBM and others, or the moves by Microsoft with VirtualPC and continued strength of Terminal Server. And you'll have access all the way down to your PDA/Phone! And once they lick persistent sessions across your instance, well then, you'll never have to reboot again!
The cycle continues yet again. What will create the next requirement to move systems off of the mainframe? I'm not quite sure, but let's hope that VMware (really ESX Server and GX Server--the real reason they bought VMware) does not get too tied to EMC storage virtualization. There are too many good uses beyond creating reasons to buy hard drives or SANs.
That was the major question I though they did not seem to answer, or at least even touch.
I could understand a different species not liking us, and in some way, being what we might call pure evil. Hey, they're different. Species are different. Intelligence does not mean that we all get along.
But in this case, the cylons are now our computers run amok. OK, while I can deal with this change, they never then touched on why they want to kill us? Because we wanted to kill them? Why do they want to kill us now? What does it benefit them? What computational values make them _want_ to expend the resources, et al to go to war with us? They just glanced that one over, and in the end, said, hey, the cylons want to kill us, so there.
Slowly, the foolishness of this entire activity will be seen, and then McBride can be sued into non-existence for taking far too much time with these stupidities. He must be made to pay, a la Kenneth Lay, for his hubris.
Talk about what? ;-)
My goodness, now if anyone says anything that makes you look bad, you're gonna sue them.
It reminds me of the Scientology approach: if anyone says anything bad about you, use the courts to silence them. Lovely.
First, after you vote, a 2-D bar code is printed. That code contains a record of your vote, with an encryption of the machine you voted at and your selected key. Nothing big, 4 digits. The critical part is the hardware key used on the machine.
A copy of this bar code is printed at the same time inside the system.
If there was an audit, randomly call people to determine their key. Although you could decrypt it, it's better than just leaving the votes lying around. Then, verify the accuracy.
Since I have a printed record at the time of the voting, I can use it to verify my votes. The local voting office could decrypt it, and then I can verify my votes.
Thoughts on this approach are very much welcome.
Yep, been in Notes since, what, 1997?!
Cut and paste were disabled, as I recall. A quick PrintScreen twarted that quite quickly.
If you see it on the screen, it can be copied. Perhaps not as well, but yep, it can be copied.
I did not say I agreed with the policy, I just said that rules restrict innovation. I consider that policy to be an innovation, but not a very good one.
Innovation depends upon the flexibility to create new responses to an environmental situation or need. Treaties that fix rules around the environmental conditions restrict those responses, and ergo, they restrict innovation. One might also argue that many of our laws restrict innovation--like immediate execution for DNA-proven rapists and murderers as a response to prison overcrowding--but hey, don't throw the baby out with the bathwater.
I was disappointed in your recent article regarding the FSF's enforcement of the GPL and Linksys' router code. Mr. Lyons portrays the enforcement of the GPL as at most intellectual property theft or at least providing competitors with your assets. However, it is Linksys and Cisco that have taken goods and not paid for them, something I believe that even Mr. Lyons would agree is not acceptable.
Regardless of your political views on Richard Stallman, one of the foundations of the GPL he pioneered is that if you benefit from its licensed code, you contribute to it. Over time, all who use it gain the benefits. Those are the terms of GPL code's use. Linksys, and thereby Cisco, have benefited from the contributions of others, including possible competitors. They chose to use GPL'd code over some proprietary code as it directly provided business value to their offering.
Since there has been a direct value to Linksys by using the GPL'd code, it seems only fair that they pay for their use through their contribution that the GPL requires. This contribution is no different than a payment another business might ask for from a vendor that uses its products. Both items have value, and they have a price. In one circumstance, you must contribute code back to the community. In the other, you must contribute money. Both have value, and both are payments. To not understand this rationale is to not understand the basic exchange of a free market.
In my opinion, the GPL is not the appropriate license at all times. I would not recommend its use for something that you consider your strategic competitive advantage. However, if you want the benefits it can provide, and you are willing to meet its contribution requirements, it can be a considerable asset to your IT approach. Linksys made that decision.
I see no legitimate basis for Cisco's continued resistance. They have received value; hence, they must provide payment through their contribution. To receive goods and not pay for them in any other business arrangement would be considered theft.
I applaud the FSF for pursuing proper payment for use of GPL'd code, and I hope that organizations can get past the author's childish "comrade" swipes and demagoguery to see that in many cases, GPL'd code can make a valuable addition to your overall IT strategy where appropriate.
Very funny!
I myself recently changed over from IE to Firebird, as I was just too fed up with the system slowdowns, the lack of feature advancement, and the glaring holes IE has. I had to learn about these issues the hard way. How do you expect Mr. and Mrs. Average User to make any sort of informed decision about their situation and vulnerabilities?
Sadly, it seems we've entered the don't ask, don't tell portion of the story. We all know what a success that policy has been elsewhere.
http://mathworld.wolfram.com/Dodecahedron.html
I thought the pictures were cool!
More fundamentally, we have artificially low (!) gas prices in the US, as we do not bear the true burden of the costs SUVs and other vehicles put on the environment, on the roads, and on the economy. As a result, we spread out cities and towns out into the green spaces, and then we complain about commutes and price increases. Foolish!
Rather, we should consider the hidden costs of items. While we don't factor in the price of clean air, we should consider the price of your health costs with dirty air. I for one make my decisions not just by the dollar but by my principles, ones that tell me to take as little as I can from the world so that my daughter can have something. That's far more important than just the variance in price between hybrids and standard vehicles.
Lastly, I think it's a fair trade: I care about the world in which I live, and I will pay more for it. Sadly, with the choices out there, the burden is on me, as you seem to be unwilling to take it. As such, I accept the burden, on behalf of both of us.
A man willing to test his own beliefs! My goodness, what more do we want?!!?!
Ducking paparazzi--"you think I'm the real governor, but I'm not. He's over there. Ha ha ha ha." The hologram disappears as he ducks into the limo (Total Recall)
Budgetting--"Deficit?! It's not a deficit!" (Kindergarden Cop)
Wildlife protections--"Hasta la vista, duckies!" (T2)
Political fundraisers--"Feinstein, my name is Freeze! Remember it well because it is the chilling sound of your doom!" (Batman 3)
And lastly, to the Legislature, when he declares himself King of California, "Consider this a divorce." (Total Recall)