Funny thing is, he links to the IBM ISP saying that it is exactly the same as the OSP... However, if you follow that link and read the IBM doc, it says nothing about being able to revoke the promise for future versions of the same spec the way the OSP specifically states.
Further, he links to the SUN agreement saying that it is the same as the MS one in regards to implementations, SUN explicitly gives you the right to implement ODF 1.0 *AND ANY FUTURE VERSION* of ODF. This 100% contradicts what he says in his article (he says sun and IBM also have provisions that limit the applicability of the promise to a single version or set of versions of the specs in question). He is either willfully misrepresenting or he is ignorant.
There are horror stories about every domain registrar I've heard of, Verisign, register.com, network solutions, they charge way too much, and there are a huge number of bad stories about all of them... Horrible customer service, domain front running, and I'm sure they pull domains at a moments notice too.
The other options are small time bit players that you have to worry will go out of business and take your domain with them.
well.. see you came from an islamic country so they couldn't touch you cause they'd get sued for profiling... They aren't allowed to screen people coming from/going to islamic countries...
Seriously, every time I've flown with my family my 8 year old brother gets selected for the "secondary" inspection. It's pretty funny, last time he didn't even try to walk through, walked straight to the yellow feet... and they actually had him selected, they asked "how did you know?" He said 'you always pick me, I must look like a terrorist I guess..."
We don't look for people with the ability to solve problems on a particular platform. The fact that we use many precludes us from looking for expertise in any one. We look for generalists. We aren't looking for "rote algorithms" either. The questions are not phrased as "write us a quick sort", they are word problems/puzzles which have the end result of going through the problem solving process and coming up with a methodology that looks a lot like quick sort, or binary search....
And we are looking for the approach, the methodology they go through in arriving at the solution more than the solution itself, but when they should arrive at binary search, and they come up with sequential search... well that's a problem isn't it?
I hate the foxpro too... it is going away being replaced by c# and python, but there is still legacy stuff out there... the new people we hire don't ever touch it, we have 2 legacy guys that watch over it...
Sure there may not be a shortage of IT resumes on monster... But there sure is a shortage of people who can back up their resumes with actual demonstrated work/skill.
We are offering market wage, and we are hiring entry level people, maybe 1 in 30 of the people we interview actually demonstrates the minimum of critical thinking and problem solving skills needed to be a decent software developer. Our interviews are not concentrated on any one platform, we have stuff in foxpro, java, python, php, c++ and c#... So our interviews are focused on critical thinking and problem solving. We have a couple basic problem solving questions and 2 algorithm questions which we routinely ask.. This is stuff I learned in high school, or my 2nd year algorithms class in college. People who are professing CS degrees and 0-5 years experience are routinely getting these questions wrong.
Even the few people we have hired over the last 3-6 months have been disappointing in their ability to a) learn new languages, b) learn and follow best practices, c) demonstrate real troubleshooting/bug fixing skills. C is probably my biggest pet peeve, as a manager I don't know how many times in the last 6 months I've had to go to a programmers system when they say "I'm getting this error and I don't know what it means" and the error message very clearly lays out the problem, the line it is occurring on, etc...
Either CS degrees are seriously lacking in rigor since I participated ~ 8 years ago, or they are just rubber stamping people that shouldn't be passing the classes.
Umm.... why won't he switch browsers? IE6 is the end all be all of browsers to this guy? That seems pretty stupid. windows 2000 is EOL'd they are not going to make any new software work on it. I'd be surprised if IE 8 runs on XP.
If he is going to run windows 2000 for the rest of his life, I'm pretty sure he is doomed. Why not install ubuntu at least?
Look, all software has undocumented APIs (even open source software). They are left undocumented intentionally for the following reasons: a) you cannot rely on the methods to return the "right" answer all the time b) the methods are not stable yet (IE, next week the devs might add a new parameter, completely breaking all existing code using that API) c) the methods in question are only usable from a specific code path, and any other use would be wrong
In the case of MS they added a 4th reason: d) To bypass a bunch of system overhead, and give our internal programmers a huge performance advantage I would add to that the fact that I'll bet you anything the MS APIs in question are 100% documented for internal eyes only. The APIs in question in MS are fully stable, usable, and well documented, they just won't release that documentation to the rest of the world.
In this case, it is quite clearly a case of Apple having some APIs which fall under a, b, or c and therefore should not be used at all. Even the Apple dev says its a huge headache using these things cause they aren't stable and cause regressions.
Further, in this specific case there is public documentation of a work around, and the work around is the right way to fix this problem, because the API is not stable, may change in the future, and would then cause huge headaches for the Firefox devs to deal with the regressions.
Unfortunately, as the Apple dev stated, that is absolutely the WRONG approach, because then any application that embeds gecko bypasses the throttle, which is there for a good reason. And any drawing that application does (whether related to gecko or not) can flood the machine with requests to draw the screen, even if the screen can't be redrawn that fast.
The idea of this throttle is simply to make screen redraws occur in a controlled and maintainable way which will not run away with all of the horse power of the CPU/GPU updating the screen 200 times a second. If your application needs to refresh the screen more, then put the XML config in, if not, then no problem, even if you write some bad code which tries to update the screen 200 times a second, the OS protects itself and doesn't let you.
The difference here is that the "problem" that firefox was hitting is a completely documented FEATURE and has been around since 10.4.
Also, There is a 100% documented, public, and simple way to disable the feature. The Firefox dev found this configuration, added 2 lines of XML to firefox, and bam, done, speedy. So I really don't see the comparison to MS at all.
Also one of the comments on the blog is from a webkit developer at Apple who says "yeah, these APIs basically suck, and they are here for backwards compatibility with Tiger, and they aren't stable, and cause us hundreds of hours of work dealing with regressions, so don't use them, use the perfectly acceptable and documented configuration setting, if there is anything in these APIs that should be made public, it will be once it is stabilized and reliable" He then gives examples of other APIs that have gone through the same process.
In the end this is 100% open to the public, any software can use this configuration setting to get around this potential performance bottleneck. The reason FF3 was "suddenly" slower than FF2 is they changed from Carbon to Cocoa (2 totally different frameworks) and the new feature is only applied to Cocoa apps. So in short, FF changed hundreds (probably thousands) of lines of code to use a new framework, and found a performance bottleneck, and then found the documentation about it, and changed configuration to avoid the bottleneck... How this is news at all baffles me, that sounds like a normal day in my life.
I didn't read it that way at all. He said "we're using APIs that are secret because they aren't solid yet, and in reality, we hate the secret APIs because they cause regressions and waste hundreds of man hours, as soon as the APIs are stable, we'll make them public".
As for the specific problem encountered in firefox, there is a perfectly acceptable and PUBLIC way of achieving the same thing, so why use the API? Especially since as he mentions in his post, it is the WRONG way to do it.
Still, RedHat could rebrand it then as whatever they want, they would eat MS's lunch.
Especially given the nightmare that is Vista, MS would lose a huge amount of money by doing this. People don't care what the software is called, if it is RedHat Redmond Compatibility Pack, and it runs everyone's software the same, they'll be more than happy to save thousands of dollars on it by getting it from someone else.
The problem with your argument is that MS would lose a lot if they distributed XP as GPL. Red Hat (or anyone else) could then compile that code, and distribute it again for free or for a minimal fee, completely undercutting MS's main business.
well, obviously those translators are using the spec and therefore fall under this problem. Developing an open source OOXML translator is probably in violation and to do it right will cost millions in attorneys fees.
I'm not sure if it is "real" open source, IE, the source is available, however the license is the Zimbra Public License (now the Yahoo Public License). I don't know if that license is actually OSI certified, but it seems much more restrictive than the GPL or BSD license. To me it seems much more like the Sugar CRM license, which I know I've read/heard is not truly an open source license because of the restrictions it puts on the user/contributor when accessing or modifying the source.
Zimbra is a for profit company and they have real revenues, and a set of engineers working full time on the product, as well as a bunch of service/support engineers that help companies deploy zimbra. I am sure that this continues now that the company is owned by Yahoo.
The real challenge comes from the piece that actually makes zimbra competitive, and that is the closed source/proprietary outlook connector which lets you use outlook with a zimbra server just like it were an exchange server. This will be gone and is not open source as soon as MS takes over.
If MS buys Yahoo, what happens to Zimbra? Yahoo just bought them, and I'm 100% sure MS will kill that project the day they take over, they don't want any competition for exchange, and certainly not open source competition.
Zimbra might not be the greatest software, but it is in my opinion the best open source collaboration/email software out there. It is the only serious competitor to exchange in the open source world. And it will be gone if MS completes this takeover.
So, in reading that article, vista was slower primarily because they stopped using cached I/O. The explanation seems to be that file copies weren't actually any faster in XP they just *LOOKED* faster because they closed the copy dialog before the copy was actually completed (IE, the dialog closes when the file is completely read from the source, not when it is completely written to the destination).
In Vista they changed this so the dialog actually closed when the copy was complete, but now in SP1 they have gone back to the previous setup.
The proof of the fact that MS is not going to sue anyone over linux patents is this:
They have not sued Google. MS hates Google, they want to destroy them, they are doing everything in their power to destroy them, if MS had valid patent claims against Linux they would be using them, actively, forcefully, against Google. Google without Linux is well... does it even exist?!? I guess they could move to a BSD?
Anyway, the point is, MS is spending billions in R&D to try to catch google in search and online marketing (heck, they may spend 44 Billion to try to close the gap by buying Yahoo). If they had a valid patent claim against Linux they could probably spend 50 million in the courts and get the same, if not better result. If Google had to give up linux, they would have to do quite a bit of work, probably stop all new projects for at least 6 months to a year. Better yet (for MS), if MS in the judgment got a % of all of google's sales (because all of their sales depend on linux). Then Google would have to fund their biggest enemy. Heck, any judgment against google would be retroactive, MS could probably get 5-10 billion off Google since their whole business is based on violating MS's patents (assuming of course that their are valid patent claims against linux).
mind you this is not a complete disconnect of the service, the users can still browse the net, send/receive email, everything appears normal.. Just the VoIP ports are blocked, I've even tried non-standard ports to try to get around this, but Cox figures it out and blocks it after a week or so, which is why I believe they are actually doing some sort of packet inspection to see what the packets are.
Cox actively inspects and drops all IAX and SIP traffic as well, I ran a small phone service for a few friends in Las Vegas using IAX/SIP and asterisk.
This service worked great for my friends on Embarq's DSL service, however, after a week or two, all of my friends with Cox could not connect to my asterisk server anymore. I did not see any traffic coming from them at all. If they unplugged their adapters for a week or so, then they could suddenly connect, for a day or two maybe, then they would be off again.
Repeated calls to Cox revealed nothing, their tech support people deny blocking anything, obviously a line they are told to repeat. But they are actively denying access to alternative VoIP services since they launched their own.
In theory I agree with you, I am the same way, I can't just work non-stop on a single project, I do need a "break" project or two that I can work on when I hit a wall in one area.
Unfortunately theory is not reality.
The problem with this system is what happens when there is a critical blocker on 2 projects at the same time? Or, as happens more often, I'm deep in the code in one project, going to town, in a groove, and a critical blocker bug comes up in another project... Now you've just totally tanked your great productivity you had going on in the other project, you're probably not at a good stopping point, you have to take a bunch of notes, or somehow document what it is exactly you are doing, so that you can come back in some sort of a sane way in 2-4 hours once you've solved the problem in this other system. This is where the problem lies, you end up having to do a huge context switch, at more likely than not, a very bad time when you've got all these threads of execution, data paths, etc in your head. You're juggling 10 balls, and you can't just put them down, you have to document each ball's exact location so you come back and start back up where you left off.
Ok, I'll grant all that, driving is probably not the best example. How about this:
I can write software and I can implement complex networks involving multiple protocols, VPN, BGP, whatever. If I were to attempt to do both at the same time (by the same time I mean I have my IDE open in one window and a set of 4 terminals connected to 4 routers, and I am actively trying to build a software product and configure the routers at the same time). It would easily take 2-5 times longer to perform the two tasks as if I just opened my IDE wrote the software, then closed the IDE and configured the routers in a serial fashion.
As an added bonus the software would probably be unreadable, unmaintainable crap, and the network would probably be unreliable in the "multi tasking" scenario whereas the code and config would be rock solid tested and nicely documented in the serial attempt.
while congress has its role, don't let the courts off. Certainly this is also corporate as the corps have the money to buy the best lawyers which invariably sways a court.
Software patents, business method patents, patents on plants, genomes, general biology, and chemical compounds (seriously you invented putting 3 carbon atoms together?!?) etc are all here because the courts have ruled that the USPTO must allow them, not because congress said so. As I said, this is still driven by corps suing, filing suit, etc and successfully litigating that "XYZ thing they want patented should be", but it wasn't/isn't mandated by congress, these things have been mandated by courts.
Sure our brains can handle multiple tasks at the same time while we sleep, like breathing, and keeping our tongues from falling into our throats.
However, these things are controlled by different parts of the brain. I'm not quite sure, but I think that is the point of the cell processor, doesn't it have simpler logic pieces that are dedicated to performing a single task?
Anyway, in the end the prefrontal cortex is the "higher level cognitive" part of the brain, if you are trying to drive and write an email you will have a hard time staying on the road or have bad grammar or most likely both. You cannot multitask, you only have one processing thread that can handle these functions, so you are at best preemptively multitasking (IE you get an interrupt when your car hits the rumble strips and stop paying attention to the email and pay attention to the road for a few seconds)
This gets even more difficult as the level of cognition required to achieve any task increases (IE, programming, researching complex economic, biological, statistical, etc data, writing a book, designing/engineering a building) because now you have a huge data set you need to unload/load in order to begin effectively processing the task.
Well the average "multi-tasking" that I have encountered in the modern workplace is not of the type you describe.
Currently I am a member of 4 dev teams, working on 4 different products. It is 100% ineffective frustrating, and stressful (but so management has decided to structure the teams, most of the devs here are on at least 2 or 3 teams). Sure, at any one time I'm only working on 1 thing, because you can't physically type in 4 different windows at the same time. However, it is extremely difficult to get ANYTHING done. On a day where I have zero interruptions, and am able to focus and work on a single product all day, I can probably produce 1-2k lines of working code (given that the features are just in need of coding, and there isn't a lot of "ok let me think about this for 3 hours to figure out the best way to do it", if there is design/algorithm work obviously not as much code gets written, but this is even harder work to context switch on). However, I get a day like that maybe once a month, and its usually a saturday. On a regular day, even with prioritized task lists, when I have to touch 2 of the 4 products in single day, I probably can only produce 5-600 lines of working code total, it cuts my productivity in half, just the 1 context switch. Most days (probably 4 of 5) I touch all 4 products each day... Under these circumstances, I can only produce 1-200 lines of actual working code.
Context switching in software development is EXTREMELY expensive. Just like in this guy's driving example, what he is describing while his car careens off the road and he's still thinking "where did the phone go? I wonder if it was a nude pic?" is a context switch. Context switching even in SMP machines is expensive and they are designed for this purpose. It is the reason why there are limits to improvements you can achieve through parallelism. For some processes/tasks sure you can fully parallelize them, but there are plenty of tasks, and I'd argue the majority of creative type work (programming, system design, network design, research, book writing, painting, song writing, etc) are of the type which cannot be context switched easily.
Sure I can pay my bills and book a vacation online at the same time, but programming in parallel is a big no no. Our brains were not designed as and are not SMP computers, they aren't even very good preemptive multitasking machines (a single processor computer). A decent CPU can probably context switch in.1ms, but even for trivial tasks (like I'm cooking spaghetti sauce in this pan, *INTERRUPT--The water is boiling* CONTEXT SWITCH, put noodles in water, lower heat, *INTERRUPT--Sauce simmering too vigorously* CONTEXT SWITCH, stir sauce) Even something simple like that the context switches will take 1-5 seconds, many thousands of times slower than a CPU, and those context switches have next to zero data overhead associated with them. Context switching is not cheap in silicon, and it is a lot less cheap in my experience in carbon.
Funny thing is, he links to the IBM ISP saying that it is exactly the same as the OSP... However, if you follow that link and read the IBM doc, it says nothing about being able to revoke the promise for future versions of the same spec the way the OSP specifically states.
Further, he links to the SUN agreement saying that it is the same as the MS one in regards to implementations, SUN explicitly gives you the right to implement ODF 1.0 *AND ANY FUTURE VERSION* of ODF. This 100% contradicts what he says in his article (he says sun and IBM also have provisions that limit the applicability of the promise to a single version or set of versions of the specs in question). He is either willfully misrepresenting or he is ignorant.
Where?
There are horror stories about every domain registrar I've heard of, Verisign, register.com, network solutions, they charge way too much, and there are a huge number of bad stories about all of them... Horrible customer service, domain front running, and I'm sure they pull domains at a moments notice too.
The other options are small time bit players that you have to worry will go out of business and take your domain with them.
So... what is your list of A grade registrars?
well.. see you came from an islamic country so they couldn't touch you cause they'd get sued for profiling... They aren't allowed to screen people coming from/going to islamic countries...
Seriously, every time I've flown with my family my 8 year old brother gets selected for the "secondary" inspection. It's pretty funny, last time he didn't even try to walk through, walked straight to the yellow feet... and they actually had him selected, they asked "how did you know?" He said 'you always pick me, I must look like a terrorist I guess..."
We don't look for people with the ability to solve problems on a particular platform. The fact that we use many precludes us from looking for expertise in any one. We look for generalists. We aren't looking for "rote algorithms" either. The questions are not phrased as "write us a quick sort", they are word problems/puzzles which have the end result of going through the problem solving process and coming up with a methodology that looks a lot like quick sort, or binary search....
And we are looking for the approach, the methodology they go through in arriving at the solution more than the solution itself, but when they should arrive at binary search, and they come up with sequential search... well that's a problem isn't it?
I hate the foxpro too... it is going away being replaced by c# and python, but there is still legacy stuff out there... the new people we hire don't ever touch it, we have 2 legacy guys that watch over it...
Sure there may not be a shortage of IT resumes on monster... But there sure is a shortage of people who can back up their resumes with actual demonstrated work/skill.
We are offering market wage, and we are hiring entry level people, maybe 1 in 30 of the people we interview actually demonstrates the minimum of critical thinking and problem solving skills needed to be a decent software developer. Our interviews are not concentrated on any one platform, we have stuff in foxpro, java, python, php, c++ and c#... So our interviews are focused on critical thinking and problem solving. We have a couple basic problem solving questions and 2 algorithm questions which we routinely ask.. This is stuff I learned in high school, or my 2nd year algorithms class in college. People who are professing CS degrees and 0-5 years experience are routinely getting these questions wrong.
Even the few people we have hired over the last 3-6 months have been disappointing in their ability to a) learn new languages, b) learn and follow best practices, c) demonstrate real troubleshooting/bug fixing skills. C is probably my biggest pet peeve, as a manager I don't know how many times in the last 6 months I've had to go to a programmers system when they say "I'm getting this error and I don't know what it means" and the error message very clearly lays out the problem, the line it is occurring on, etc...
Either CS degrees are seriously lacking in rigor since I participated ~ 8 years ago, or they are just rubber stamping people that shouldn't be passing the classes.
Umm.... why won't he switch browsers? IE6 is the end all be all of browsers to this guy? That seems pretty stupid. windows 2000 is EOL'd they are not going to make any new software work on it. I'd be surprised if IE 8 runs on XP.
If he is going to run windows 2000 for the rest of his life, I'm pretty sure he is doomed. Why not install ubuntu at least?
Look, all software has undocumented APIs (even open source software). They are left undocumented intentionally for the following reasons:
a) you cannot rely on the methods to return the "right" answer all the time
b) the methods are not stable yet (IE, next week the devs might add a new parameter, completely breaking all existing code using that API)
c) the methods in question are only usable from a specific code path, and any other use would be wrong
In the case of MS they added a 4th reason:
d) To bypass a bunch of system overhead, and give our internal programmers a huge performance advantage
I would add to that the fact that I'll bet you anything the MS APIs in question are 100% documented for internal eyes only. The APIs in question in MS are fully stable, usable, and well documented, they just won't release that documentation to the rest of the world.
In this case, it is quite clearly a case of Apple having some APIs which fall under a, b, or c and therefore should not be used at all. Even the Apple dev says its a huge headache using these things cause they aren't stable and cause regressions.
Further, in this specific case there is public documentation of a work around, and the work around is the right way to fix this problem, because the API is not stable, may change in the future, and would then cause huge headaches for the Firefox devs to deal with the regressions.
Unfortunately, as the Apple dev stated, that is absolutely the WRONG approach, because then any application that embeds gecko bypasses the throttle, which is there for a good reason. And any drawing that application does (whether related to gecko or not) can flood the machine with requests to draw the screen, even if the screen can't be redrawn that fast.
The idea of this throttle is simply to make screen redraws occur in a controlled and maintainable way which will not run away with all of the horse power of the CPU/GPU updating the screen 200 times a second. If your application needs to refresh the screen more, then put the XML config in, if not, then no problem, even if you write some bad code which tries to update the screen 200 times a second, the OS protects itself and doesn't let you.
The difference here is that the "problem" that firefox was hitting is a completely documented FEATURE and has been around since 10.4.
Also, There is a 100% documented, public, and simple way to disable the feature. The Firefox dev found this configuration, added 2 lines of XML to firefox, and bam, done, speedy. So I really don't see the comparison to MS at all.
Also one of the comments on the blog is from a webkit developer at Apple who says "yeah, these APIs basically suck, and they are here for backwards compatibility with Tiger, and they aren't stable, and cause us hundreds of hours of work dealing with regressions, so don't use them, use the perfectly acceptable and documented configuration setting, if there is anything in these APIs that should be made public, it will be once it is stabilized and reliable" He then gives examples of other APIs that have gone through the same process.
In the end this is 100% open to the public, any software can use this configuration setting to get around this potential performance bottleneck. The reason FF3 was "suddenly" slower than FF2 is they changed from Carbon to Cocoa (2 totally different frameworks) and the new feature is only applied to Cocoa apps. So in short, FF changed hundreds (probably thousands) of lines of code to use a new framework, and found a performance bottleneck, and then found the documentation about it, and changed configuration to avoid the bottleneck... How this is news at all baffles me, that sounds like a normal day in my life.
I didn't read it that way at all. He said "we're using APIs that are secret because they aren't solid yet, and in reality, we hate the secret APIs because they cause regressions and waste hundreds of man hours, as soon as the APIs are stable, we'll make them public".
As for the specific problem encountered in firefox, there is a perfectly acceptable and PUBLIC way of achieving the same thing, so why use the API? Especially since as he mentions in his post, it is the WRONG way to do it.
Still, RedHat could rebrand it then as whatever they want, they would eat MS's lunch.
Especially given the nightmare that is Vista, MS would lose a huge amount of money by doing this. People don't care what the software is called, if it is RedHat Redmond Compatibility Pack, and it runs everyone's software the same, they'll be more than happy to save thousands of dollars on it by getting it from someone else.
The problem with your argument is that MS would lose a lot if they distributed XP as GPL. Red Hat (or anyone else) could then compile that code, and distribute it again for free or for a minimal fee, completely undercutting MS's main business.
well, obviously those translators are using the spec and therefore fall under this problem. Developing an open source OOXML translator is probably in violation and to do it right will cost millions in attorneys fees.
I'm not sure if it is "real" open source, IE, the source is available, however the license is the Zimbra Public License (now the Yahoo Public License). I don't know if that license is actually OSI certified, but it seems much more restrictive than the GPL or BSD license. To me it seems much more like the Sugar CRM license, which I know I've read/heard is not truly an open source license because of the restrictions it puts on the user/contributor when accessing or modifying the source.
Zimbra is a for profit company and they have real revenues, and a set of engineers working full time on the product, as well as a bunch of service/support engineers that help companies deploy zimbra. I am sure that this continues now that the company is owned by Yahoo.
The real challenge comes from the piece that actually makes zimbra competitive, and that is the closed source/proprietary outlook connector which lets you use outlook with a zimbra server just like it were an exchange server. This will be gone and is not open source as soon as MS takes over.
If MS buys Yahoo, what happens to Zimbra? Yahoo just bought them, and I'm 100% sure MS will kill that project the day they take over, they don't want any competition for exchange, and certainly not open source competition.
Zimbra might not be the greatest software, but it is in my opinion the best open source collaboration/email software out there. It is the only serious competitor to exchange in the open source world. And it will be gone if MS completes this takeover.
So, in reading that article, vista was slower primarily because they stopped using cached I/O. The explanation seems to be that file copies weren't actually any faster in XP they just *LOOKED* faster because they closed the copy dialog before the copy was actually completed (IE, the dialog closes when the file is completely read from the source, not when it is completely written to the destination).
In Vista they changed this so the dialog actually closed when the copy was complete, but now in SP1 they have gone back to the previous setup.
The proof of the fact that MS is not going to sue anyone over linux patents is this:
They have not sued Google. MS hates Google, they want to destroy them, they are doing everything in their power to destroy them, if MS had valid patent claims against Linux they would be using them, actively, forcefully, against Google. Google without Linux is well... does it even exist?!? I guess they could move to a BSD?
Anyway, the point is, MS is spending billions in R&D to try to catch google in search and online marketing (heck, they may spend 44 Billion to try to close the gap by buying Yahoo). If they had a valid patent claim against Linux they could probably spend 50 million in the courts and get the same, if not better result. If Google had to give up linux, they would have to do quite a bit of work, probably stop all new projects for at least 6 months to a year. Better yet (for MS), if MS in the judgment got a % of all of google's sales (because all of their sales depend on linux). Then Google would have to fund their biggest enemy. Heck, any judgment against google would be retroactive, MS could probably get 5-10 billion off Google since their whole business is based on violating MS's patents (assuming of course that their are valid patent claims against linux).
mind you this is not a complete disconnect of the service, the users can still browse the net, send/receive email, everything appears normal.. Just the VoIP ports are blocked, I've even tried non-standard ports to try to get around this, but Cox figures it out and blocks it after a week or so, which is why I believe they are actually doing some sort of packet inspection to see what the packets are.
Cox actively inspects and drops all IAX and SIP traffic as well, I ran a small phone service for a few friends in Las Vegas using IAX/SIP and asterisk.
This service worked great for my friends on Embarq's DSL service, however, after a week or two, all of my friends with Cox could not connect to my asterisk server anymore. I did not see any traffic coming from them at all. If they unplugged their adapters for a week or so, then they could suddenly connect, for a day or two maybe, then they would be off again.
Repeated calls to Cox revealed nothing, their tech support people deny blocking anything, obviously a line they are told to repeat. But they are actively denying access to alternative VoIP services since they launched their own.
In theory I agree with you, I am the same way, I can't just work non-stop on a single project, I do need a "break" project or two that I can work on when I hit a wall in one area.
Unfortunately theory is not reality.
The problem with this system is what happens when there is a critical blocker on 2 projects at the same time? Or, as happens more often, I'm deep in the code in one project, going to town, in a groove, and a critical blocker bug comes up in another project... Now you've just totally tanked your great productivity you had going on in the other project, you're probably not at a good stopping point, you have to take a bunch of notes, or somehow document what it is exactly you are doing, so that you can come back in some sort of a sane way in 2-4 hours once you've solved the problem in this other system. This is where the problem lies, you end up having to do a huge context switch, at more likely than not, a very bad time when you've got all these threads of execution, data paths, etc in your head. You're juggling 10 balls, and you can't just put them down, you have to document each ball's exact location so you come back and start back up where you left off.
Ok, I'll grant all that, driving is probably not the best example. How about this:
I can write software and I can implement complex networks involving multiple protocols, VPN, BGP, whatever. If I were to attempt to do both at the same time (by the same time I mean I have my IDE open in one window and a set of 4 terminals connected to 4 routers, and I am actively trying to build a software product and configure the routers at the same time). It would easily take 2-5 times longer to perform the two tasks as if I just opened my IDE wrote the software, then closed the IDE and configured the routers in a serial fashion.
As an added bonus the software would probably be unreadable, unmaintainable crap, and the network would probably be unreliable in the "multi tasking" scenario whereas the code and config would be rock solid tested and nicely documented in the serial attempt.
while congress has its role, don't let the courts off. Certainly this is also corporate as the corps have the money to buy the best lawyers which invariably sways a court.
Software patents, business method patents, patents on plants, genomes, general biology, and chemical compounds (seriously you invented putting 3 carbon atoms together?!?) etc are all here because the courts have ruled that the USPTO must allow them, not because congress said so. As I said, this is still driven by corps suing, filing suit, etc and successfully litigating that "XYZ thing they want patented should be", but it wasn't/isn't mandated by congress, these things have been mandated by courts.
Sure our brains can handle multiple tasks at the same time while we sleep, like breathing, and keeping our tongues from falling into our throats.
However, these things are controlled by different parts of the brain. I'm not quite sure, but I think that is the point of the cell processor, doesn't it have simpler logic pieces that are dedicated to performing a single task?
Anyway, in the end the prefrontal cortex is the "higher level cognitive" part of the brain, if you are trying to drive and write an email you will have a hard time staying on the road or have bad grammar or most likely both. You cannot multitask, you only have one processing thread that can handle these functions, so you are at best preemptively multitasking (IE you get an interrupt when your car hits the rumble strips and stop paying attention to the email and pay attention to the road for a few seconds)
This gets even more difficult as the level of cognition required to achieve any task increases (IE, programming, researching complex economic, biological, statistical, etc data, writing a book, designing/engineering a building) because now you have a huge data set you need to unload/load in order to begin effectively processing the task.
Well the average "multi-tasking" that I have encountered in the modern workplace is not of the type you describe.
.1ms, but even for trivial tasks (like I'm cooking spaghetti sauce in this pan, *INTERRUPT--The water is boiling* CONTEXT SWITCH, put noodles in water, lower heat, *INTERRUPT--Sauce simmering too vigorously* CONTEXT SWITCH, stir sauce) Even something simple like that the context switches will take 1-5 seconds, many thousands of times slower than a CPU, and those context switches have next to zero data overhead associated with them. Context switching is not cheap in silicon, and it is a lot less cheap in my experience in carbon.
Currently I am a member of 4 dev teams, working on 4 different products. It is 100% ineffective frustrating, and stressful (but so management has decided to structure the teams, most of the devs here are on at least 2 or 3 teams). Sure, at any one time I'm only working on 1 thing, because you can't physically type in 4 different windows at the same time. However, it is extremely difficult to get ANYTHING done. On a day where I have zero interruptions, and am able to focus and work on a single product all day, I can probably produce 1-2k lines of working code (given that the features are just in need of coding, and there isn't a lot of "ok let me think about this for 3 hours to figure out the best way to do it", if there is design/algorithm work obviously not as much code gets written, but this is even harder work to context switch on). However, I get a day like that maybe once a month, and its usually a saturday. On a regular day, even with prioritized task lists, when I have to touch 2 of the 4 products in single day, I probably can only produce 5-600 lines of working code total, it cuts my productivity in half, just the 1 context switch. Most days (probably 4 of 5) I touch all 4 products each day... Under these circumstances, I can only produce 1-200 lines of actual working code.
Context switching in software development is EXTREMELY expensive. Just like in this guy's driving example, what he is describing while his car careens off the road and he's still thinking "where did the phone go? I wonder if it was a nude pic?" is a context switch. Context switching even in SMP machines is expensive and they are designed for this purpose. It is the reason why there are limits to improvements you can achieve through parallelism. For some processes/tasks sure you can fully parallelize them, but there are plenty of tasks, and I'd argue the majority of creative type work (programming, system design, network design, research, book writing, painting, song writing, etc) are of the type which cannot be context switched easily.
Sure I can pay my bills and book a vacation online at the same time, but programming in parallel is a big no no. Our brains were not designed as and are not SMP computers, they aren't even very good preemptive multitasking machines (a single processor computer). A decent CPU can probably context switch in