It's not about price. Building software is about composing commodities into something that is not yet a commodity. With microsoft you have to pay for the commodities. With OSS you get the commodities for free and, depending on the license, your creation becomes a commodity for others to use.
The problem for MS is that because of their position on OSS, they are denying themselves access to a huge repository of commodities. While occasionally some OSS commodity slips in (like the BSD TCP stack), most of the development of MS goes into developing their own commodities. While this costs money it does not add value. This is the primary problem that MS faces. As long as they can keep their profit margins upwards of 85% they can sustain this style of development. Arguably, in the short term it is what keeps their profit levels at this insane level. In the long term, however the amount of MS proprietary software commodities will force them to cut cost somehow.
Wordprocessors are a commodity. When you buy MS Office, you don't buy a word processor but a whole bunch of integrated features and applications. The fact that control+b makes selected text bold is not in any way valuable (15 years ago this was a key feature): it's a required commodity that you can get for free from many software products. Yet MS has to ensure this feature never breaks in ms office and must keep maintaining this and similarly invaluable features forever.
With open source the costs for solving this problem are shared. IBM understands this and is basing their business model on the notion that sharing cost for developing software commodities is a better idea than inhouse, proprietary development. They invest because they need the commodities, they share because they know others are willing to invest too. Ultimately this reduces the cost of commodities that IBM needs to offer value to their customers.
MS competes with itself and all other software companies. Ultimately, Bill Gates' billions won't be enough to sustain this business model. Until that time, the money will keep on pooring in. But there will be a time that MS will either adapt or disappear. Considering that most of their traditional revenue generators are now commodities, that time might be not so far in the future. MS struggle to find replacement revenue generators has so far been far from succesful (xbox, msn, windows media, tablet edition). Basically the PC market has already converted from a growth market to a replacement market. Each replacement is driven by new features, not by old features.
The sad thing is that outlook 2000 compares quite favorably to the rest of the field, even today. Especially if you consider that some of its key features weren't tested because all the other clients wouldn't pass the test.
I use thunderbird on a daily basis but outlook 2k3 is on a different level as far as UI polish and features go. It is a very powerful tool for coordinating large quantities of mail, appointments, contacts etc. The reason I use thunderbird is that outlook is overkill for popping mail once in a while. Additionally, I like some things in thunderbird such as extensions and UI. Also its development status and the ability to influence its development is appealing. I see thunderbird as a nice testbed, a good outlook express replacement but not a corporate mailclient. The only two clients that come close are evolution and kontact. Comparing those two to the full featureset of outlook 2k3 would be an interesting read.
I don't mind people pushing alternative mail clients. What I do mind is this attitude of ignoring features in outlook in order to prove the point that some OSS client is better. If you do a comparison, make it a fair comparison. At least the developers of the mac outlook had the guts to say that thunderbird has a superior mime implementation compared to outlook. This is true and acknowledging it internally allows them to focus on improving this in outlook.
All their behavior of the past few years suggests they have no clue. I mean they've wasted billions of dollars and still people download mp3s. Their more succesful strategies (suing individuals, companies) only have a temporary effect (new better networks replace the old ones). My impression is that they are rather desperate and have basically concluded that without big brother legislation they can't properly do their jobs.
The only purpose of this tool/technique is to push legislators to pass such laws. The sideeffect this will have that p2p technology will evolve to make this even harder (mute, freenet are still evolving, so is gnutella).
Crappy hardware or drivers is the cause probably (or empty battery:-). I find your attitude quite offensive for a 'senior IT manager'. If you are worthy of the jobdescription you should know that posting an extremely vague description of a problem and combining it with a completely unfounded accusation that some program is the cause is not very constructive to solving the problem.
I know firefox is an excellent product (have been using it and its predecessors for about a year now) and I am sorry that a combination of crappy hardware and god knows what other kind of shit you have on the machine is preventing you from using it. You should consider that there are many thousands of users that are not rebooting every hour and are generally happy firefox users. Given that, it is very unlikely that firefox is the cause of your problem, if it is file a bug (you did look in bugzilla?)
The kind of error that stops a machine like you describe is usually some form of hardware/driver problem. I've had a laptop once with crappy nvidia drivers (WHQL & dell certified and everything) that randomly locked up every few weeks. The problem stopped when I updated the drivers. In your case, the video drivers may also be the cause (especially when considering the typical quality of drivers shipped with machines). If you want to blame anyone, blame your hardware vendor (or sysadmin) for not properly testing the hardware software combination they gave to you.
With Java you can do this. Just run the code in a sandbox. Alternatively you can use some trusted third party and signatures. Or you can do both (authenticate other party and allow verified and validated code to do whatever it is authorized to do). The JINI architecture works along these lines (although it seems rather dead nowadays). It can be very secure if you set it up properly.
Brain dead troll alert. This is not insightful, it is bullshit. Open source compilers for java exist, open source java virtual machines exist. I hope your other technical decisions are more informed.
Anyway AC's commenting on the moderating cannot be taken seriously. I wouldn't have seen this shit if some 'braindead' moderator hadn't wasted his moderating points on this. I suspect he accidentally used his mousewheel whilst submitting his moderation.
Interesting question. I believe that technology is not the decisive factor (otherwise X would have been replaced years ago). Maturity is and critical mass of end users is too. Historically, unix systems came with X-windows. So all unix gui applications are written to work at least on that. There is no incentive for the developers of these applications to support experimental alternatives.
Consequently these alternatives rarely gain critical mass and are typically abandoned in a half finished state. Enough of a proof of concept to inspire other developers but typically too impractical to be of any use to end users. This is too bad because with the current state of XFree86, on the fly changing of resolution still is a novelty (not implemented in most mainstream distros) and so are many other features that ship ready to use with other popular windowing systems (for the past decade or so). If you hack your xfree86 system this way or that way you can bolt on most of the stuff but the point is that this is not an easy process and is mostly unsupported by tools. I clearly remember the days that you had to hack your xfree config file to get the bloody mouse working properly (a standard ps/2 wheelmouse). Currently most distros fix this by generating the config file themselves instead of using the crappy tools that come with xfree86. This seems to be the only way for linux vendors to pretend that xfree is easy to use.
I think it is both admirable and foolish to attempt to fix this. Predictably the attempt will fail. I have some hopes that the recent xfree fork might bring some changes. The whole licensing debacle might speed things up a little.
For the record, if you try, you will find that explorer hides options like delete and rename on system folders like program files. If you finally find a way to delete using explorer (e.g. by hitting delete) you get an error message. It's not impossible but if you manage to delete your program files folder, you fully deserve the missery. There's several layers of protection and warnings.
Very few commercial sites can afford not to support 5% of their users. If you can afford to do so, your site is not important.
I'm working for a company that has to support mozilla in its web based systems because customers demand it. Right now that is giving us trouble because a few years ago we thought like you (i.e. it is our own fault that we are having some maintenance overhead now).
> A lot of W3C standards seem overlooked by some pretty big sites.
That is because there are a lot of very complex standards with little or no toolsupport. Most of the implementations of the major w3c standards are incomplete and/or inconsistent with the specification.
As a content provider (i.e. a website maintainer) there is no point in producing stuff that the majority of the visitors cannot display. Basically anything beyond xhtml1.0 and a subset of CSS1 & 2 w3c standards compliant documents are totally pointless if the intention is that anyone can access them.
BTW. I agree that slashdot is long overdue in supporting standards. Sites like wired.com and espn.com show that it is possible to save bandwidth (considering that/. partially depends on donations/subscriptions they owe it to their paying readers not to waste pennies on that) and deliver content in a standards compatible way.
The list of changes is pretty much limited to being more tolerant to newer unicode specifications (which xml depends on and which werent available at the time xml 1.0 was finalized)and to avoid similar adjustments to the spec in the future. I.e. any well formed xml 1.0 document is also xml1.1 compliant. There may be some exotic xml1.1 documents (using some unicode exotic characters) that are not well formed xml 1.0. This change is very defensible, unless you are willing to freeze the unicode spec four years ago. The changes have no consequences whatsoever for the validity of existing xml documents (correct me if I'm wrong) and they should work exactly the same (namely as specified by the w3c) in xml1.1 processors.
J# is totally useless for anyone that downloaded a sun sdk after 1998 (the year they launched java 1.2 if I'm correct).
What I was thinking about is something like a more or less transparent bridging of the boundaries between both virtual machine architectures (e.g. java objects calling a.net object or vice versa, C# class extending JPanel, that sort of thing). That should require a fair amount of tinkering at the virtual machine level but it is not impossible IMHO.
Both MS and Sun are too entrenched to do this but IBM typically has to work with both of them (or at least their customers require them to).
Absolutely, competition is good. On the other hand I think Java itself was a good motivation for developing.Net. I don't think MS would have been as eager to put development and research resources into it otherwise.
This is what competition is about. MS already has C# 2.0 designed (which sports many of the features introduced/present in jdk1.5) and no doubt they'll start marketing that in a couple of months. It's a technological arms race. Of course the big question is which of the two will make the first move to support the other. My guess is that they will let IBM do the hard work. Already there is some.Net support in eclipse.
If safety is critical, don't use any C variant. Really, 99% of security problems can be attributed to stuff the java virtual machine prevents from ever happening (e.g. buffer overflows). This type of error is routinely discovered even in C programs that have been subjected to multiple code reviews (e.g. some of the server software that is shipped with BSD). In a C/C++ program, discovering an error at run-time is usually fatal whereas in Java you simply handle the exception (and of course you build in some stuff to recover nicely from such unfortunate events).
As others have pointed out, templates are planned for the next Java release (in addition to a number of other nice language features). Compared to C++, the Java version of templates is particularly strong on typesafety (which in Java was a hard requirement whereas in C++ it is just convenient to have). If you go to javalobby.org, you can sign up for an alpha release of the jdk1.5. Alternatively, you can download some extensions that will work with existing versions of java.
Anyway, there are real-time variants of Java if you need hard real time and for soft real time stuff you can configure the garbage collector to be less of a pain in the ass (with a few percents performance penalty). Garbage collection used to be a problem when SUN still used a very naive garbage collecting algorithm, that was fixed long ago.
This is true for an increasingly smaller amount of applications, mostly in the hard real-time/embedded domain. And even there Java is showing up with acceptable performance.
The key thing is to know that you are making a tradeoff. Undenieably there are times when the overhead of managing a C project is to be preferred over the faster, less buggier development in a higher level language (not necessarily Java).
Google is a great place to start before you buy a product. I usually research in advance what kind of problems I can expect with a certain part by looking what kind of complaints there are on google groups. I recently broke my own rule and bought a Trust tablet thingy. I still regret it (in short, it is absolute crap and there's not much that can be done to fix it).
No buffer overflows come from using flawed 1970's technology. Modern computer languages are immune to the worlds largest security problem: (i.e. buffer overflows) because they do something automatically that C programmers are supposed to do manually.
Eliminate the buffer overflow and malicious input becomes invalid data which can be dealt with in a controlled fashion rather than executable gibberish.
I think MS is very well aware of the kind of trouble their in. The author of this article is however very wrong to put the blame on technology. MS problem is fundamentally that they are no longer operating in an exponentially growing market. PC sales used to grow exponentially. Until the market basically stopped growing exponentially a few years back. Then MS shifted attention to the exploding server market. That imploded in 2001. Then it shifted attention to other exponentially growing markets. That didn't work either.
Currently MS depends on replacement sales (os/office & server). This is basically a very steady market with very little competition and outrageous margins. It still generates lots of revenue. The only problem is that the replacements are competing with previous versions of the same thing. There's only so much people are willing to pay for incremental improvements. In order to complement this (still spectacular) revenue stream with revenue that does have the potential to grow exponential, MS has ventured into new markets (gaming, isp, settop, mobile) with (so far) mostly negative results.
In other words, they have chosen to solve the fundamentally non technical issues they have by developing/extending other technology. In the long run they'll figure out that developing new technology is the key means to keep existing products profitable. People'll still be buying windows in 10 years. Much of the new technology currently fragmented over MS product lines will be consolidated into it. In the process they'll reorganize and cut some of the accumulated dead weight that any exponentially growing company would collect over 25 years of exponential growth.
In a few years the initial OSS goldrush will be over and MS will integrate some of the associated practices into their own business (like other businesses). The GPL will most likely never feature prominently in MS products but other licenses might very well be adopted (e.g. BSD style licenses) in a similar style that Apple has used for their products.
The ironic thing is that these security things severely limit the life time of a game. After the release of the game there is a peak in online game play. A few months after there's only the usual clan nuts left (no offense but for the casual player that totally sucks). All the people who bought the game have likely bought another game and the people who used the crack can't play online anyway. As a consequence I am very selective in what I buy.
Games like quake (I & II) and doom took off because of illegal copying. There are so many copies that you can still find quake I servers with players on them (for the record I played this game online in 1997). Basically none of the games on the shelf right now are going to be played online in seven years. The chance that you will find someone who bought the game and is still playing in seven years is very low.
There's this tool that will help you identify what codecs a particular codec is actually using. Don't blindly install a codec pack. Usually there's a lot of crap in there that you don't need.
I find that ffdshow (supports most divx/mpeg4 variants) + AC3 filter, both of which are available on sourceforge, play most files. So far I've encountered two exceptions: 3ivx, you need their decoder, and mpeg 2 files. For the latter a codec usually comes with dvd playing software. A good alternative is the elecard codec (shareware). There is also a directshow filter for mpeg2 on sourceforge as well (mpeg2ds), but it doesn't seem to work for me (not surprising since it is alpha code).
Usually if you know what codecs were used for encoding, it is trivial to find a matching decoder using google. Avicodec can help you with that for avi files.
Calling is more intrusive than emailing. If you start getting calls from people telling you to read your mail (or, worse, because it is more effective), you are not working very efficiently. Handling email at regular intervals during a working day can be very effective (e.g. when you come to work in the morning, when returing to your desk from a meeting/lunch/whatever, etc.).
I work in a university so I have a lot of people around me who are not very efficient. There's an interesting correlation between response time and efficiency. There are people in my building who don't respond at all unless you go to their office. That costs me time and I imagine it disrupts their daily routine of doing nothing as well. For many bureaucratic things, human response time is the critical path. The most responsive people I know are also very productive and efficient people.
I agree with your comments on using proper HTML and proper mimetypes. I don't agree with the rest. I'm against sending plaintext messages in addition to HTML (seems wasteful). Converting HTML to plain text is so easy that the fact that some email clients can't do that is inexcusable (nice 1st year programming exercise). I think it is quite embarrasing that people still voluntarily choose to use disfunctional software (I recently told a colleague to install some decent software and stop wasting my time when he complained that he couldn't read my message in pine. He has a 1.8GHZ P4 on his desk BTW). I was sending HTML messages in 1996. WTF is taking developers of command-line email clients so long to implement functionality that any CS student should be able to do in their sleep?
X is just a protocol. The whole problem is that most implementations of X are not particularly good implementations of a 2D windowing system. When you make remarks about those problems to an X proponent, you get the (correct) reply that it is not a problem with the protocol. He will then kindly request that you whine about your problems somewhere else.
The problem with XFree86 is that it is developed by people who are not particularly interested in improving it (at least I have no other/better explanation for the current configuration interface. There are so many obvious potential improvements that you just have to wonder what the fuck these guys are doing). This is basically the reason for the fork.
It's not about price. Building software is about composing commodities into something that is not yet a commodity. With microsoft you have to pay for the commodities. With OSS you get the commodities for free and, depending on the license, your creation becomes a commodity for others to use.
The problem for MS is that because of their position on OSS, they are denying themselves access to a huge repository of commodities. While occasionally some OSS commodity slips in (like the BSD TCP stack), most of the development of MS goes into developing their own commodities. While this costs money it does not add value. This is the primary problem that MS faces. As long as they can keep their profit margins upwards of 85% they can sustain this style of development. Arguably, in the short term it is what keeps their profit levels at this insane level. In the long term, however the amount of MS proprietary software commodities will force them to cut cost somehow.
Wordprocessors are a commodity. When you buy MS Office, you don't buy a word processor but a whole bunch of integrated features and applications. The fact that control+b makes selected text bold is not in any way valuable (15 years ago this was a key feature): it's a required commodity that you can get for free from many software products. Yet MS has to ensure this feature never breaks in ms office and must keep maintaining this and similarly invaluable features forever.
With open source the costs for solving this problem are shared. IBM understands this and is basing their business model on the notion that sharing cost for developing software commodities is a better idea than inhouse, proprietary development. They invest because they need the commodities, they share because they know others are willing to invest too. Ultimately this reduces the cost of commodities that IBM needs to offer value to their customers.
MS competes with itself and all other software companies. Ultimately, Bill Gates' billions won't be enough to sustain this business model. Until that time, the money will keep on pooring in. But there will be a time that MS will either adapt or disappear. Considering that most of their traditional revenue generators are now commodities, that time might be not so far in the future. MS struggle to find replacement revenue generators has so far been far from succesful (xbox, msn, windows media, tablet edition). Basically the PC market has already converted from a growth market to a replacement market. Each replacement is driven by new features, not by old features.
The sad thing is that outlook 2000 compares quite favorably to the rest of the field, even today. Especially if you consider that some of its key features weren't tested because all the other clients wouldn't pass the test.
I use thunderbird on a daily basis but outlook 2k3 is on a different level as far as UI polish and features go. It is a very powerful tool for coordinating large quantities of mail, appointments, contacts etc. The reason I use thunderbird is that outlook is overkill for popping mail once in a while. Additionally, I like some things in thunderbird such as extensions and UI. Also its development status and the ability to influence its development is appealing. I see thunderbird as a nice testbed, a good outlook express replacement but not a corporate mailclient. The only two clients that come close are evolution and kontact. Comparing those two to the full featureset of outlook 2k3 would be an interesting read.
I don't mind people pushing alternative mail clients. What I do mind is this attitude of ignoring features in outlook in order to prove the point that some OSS client is better. If you do a comparison, make it a fair comparison. At least the developers of the mac outlook had the guts to say that thunderbird has a superior mime implementation compared to outlook. This is true and acknowledging it internally allows them to focus on improving this in outlook.
All their behavior of the past few years suggests they have no clue. I mean they've wasted billions of dollars and still people download mp3s. Their more succesful strategies (suing individuals, companies) only have a temporary effect (new better networks replace the old ones). My impression is that they are rather desperate and have basically concluded that without big brother legislation they can't properly do their jobs.
The only purpose of this tool/technique is to push legislators to pass such laws. The sideeffect this will have that p2p technology will evolve to make this even harder (mute, freenet are still evolving, so is gnutella).
Crappy hardware or drivers is the cause probably (or empty battery :-). I find your attitude quite offensive for a 'senior IT manager'. If you are worthy of the jobdescription you should know that posting an extremely vague description of a problem and combining it with a completely unfounded accusation that some program is the cause is not very constructive to solving the problem.
I know firefox is an excellent product (have been using it and its predecessors for about a year now) and I am sorry that a combination of crappy hardware and god knows what other kind of shit you have on the machine is preventing you from using it. You should consider that there are many thousands of users that are not rebooting every hour and are generally happy firefox users. Given that, it is very unlikely that firefox is the cause of your problem, if it is file a bug (you did look in bugzilla?)
The kind of error that stops a machine like you describe is usually some form of hardware/driver problem. I've had a laptop once with crappy nvidia drivers (WHQL & dell certified and everything) that randomly locked up every few weeks. The problem stopped when I updated the drivers. In your case, the video drivers may also be the cause (especially when considering the typical quality of drivers shipped with machines). If you want to blame anyone, blame your hardware vendor (or sysadmin) for not properly testing the hardware software combination they gave to you.
I know SUN is still pushing it with some moderate success but it hardly is the thing it was hyped to be five years ago (and IMHO never will).
With Java you can do this. Just run the code in a sandbox. Alternatively you can use some trusted third party and signatures. Or you can do both (authenticate other party and allow verified and validated code to do whatever it is authorized to do). The JINI architecture works along these lines (although it seems rather dead nowadays). It can be very secure if you set it up properly.
Brain dead troll alert. This is not insightful, it is bullshit. Open source compilers for java exist, open source java virtual machines exist. I hope your other technical decisions are more informed.
Anyway AC's commenting on the moderating cannot be taken seriously. I wouldn't have seen this shit if some 'braindead' moderator hadn't wasted his moderating points on this. I suspect he accidentally used his mousewheel whilst submitting his moderation.
Marking no karma bonus.
Interesting question. I believe that technology is not the decisive factor (otherwise X would have been replaced years ago). Maturity is and critical mass of end users is too. Historically, unix systems came with X-windows. So all unix gui applications are written to work at least on that. There is no incentive for the developers of these applications to support experimental alternatives.
Consequently these alternatives rarely gain critical mass and are typically abandoned in a half finished state. Enough of a proof of concept to inspire other developers but typically too impractical to be of any use to end users. This is too bad because with the current state of XFree86, on the fly changing of resolution still is a novelty (not implemented in most mainstream distros) and so are many other features that ship ready to use with other popular windowing systems (for the past decade or so). If you hack your xfree86 system this way or that way you can bolt on most of the stuff but the point is that this is not an easy process and is mostly unsupported by tools. I clearly remember the days that you had to hack your xfree config file to get the bloody mouse working properly (a standard ps/2 wheelmouse). Currently most distros fix this by generating the config file themselves instead of using the crappy tools that come with xfree86. This seems to be the only way for linux vendors to pretend that xfree is easy to use.
I think it is both admirable and foolish to attempt to fix this. Predictably the attempt will fail. I have some hopes that the recent xfree fork might bring some changes. The whole licensing debacle might speed things up a little.
For the record, if you try, you will find that explorer hides options like delete and rename on system folders like program files. If you finally find a way to delete using explorer (e.g. by hitting delete) you get an error message. It's not impossible but if you manage to delete your program files folder, you fully deserve the missery. There's several layers of protection and warnings.
Very few commercial sites can afford not to support 5% of their users. If you can afford to do so, your site is not important.
I'm working for a company that has to support mozilla in its web based systems because customers demand it. Right now that is giving us trouble because a few years ago we thought like you (i.e. it is our own fault that we are having some maintenance overhead now).
> A lot of W3C standards seem overlooked by some pretty big sites.
/. partially depends on donations/subscriptions they owe it to their paying readers not to waste pennies on that) and deliver content in a standards compatible way.
That is because there are a lot of very complex standards with little or no toolsupport. Most of the implementations of the major w3c standards are incomplete and/or inconsistent with the specification.
As a content provider (i.e. a website maintainer) there is no point in producing stuff that the majority of the visitors cannot display. Basically anything beyond xhtml1.0 and a subset of CSS1 & 2 w3c standards compliant documents are totally pointless if the intention is that anyone can access them.
BTW. I agree that slashdot is long overdue in supporting standards. Sites like wired.com and espn.com show that it is possible to save bandwidth (considering that
The list of changes is pretty much limited to being more tolerant to newer unicode specifications (which xml depends on and which werent available at the time xml 1.0 was finalized)and to avoid similar adjustments to the spec in the future. I.e. any well formed xml 1.0 document is also xml1.1 compliant. There may be some exotic xml1.1 documents (using some unicode exotic characters) that are not well formed xml 1.0. This change is very defensible, unless you are willing to freeze the unicode spec four years ago. The changes have no consequences whatsoever for the validity of existing xml documents (correct me if I'm wrong) and they should work exactly the same (namely as specified by the w3c) in xml1.1 processors.
J# is totally useless for anyone that downloaded a sun sdk after 1998 (the year they launched java 1.2 if I'm correct).
.net object or vice versa, C# class extending JPanel, that sort of thing). That should require a fair amount of tinkering at the virtual machine level but it is not impossible IMHO.
What I was thinking about is something like a more or less transparent bridging of the boundaries between both virtual machine architectures (e.g. java objects calling a
Both MS and Sun are too entrenched to do this but IBM typically has to work with both of them (or at least their customers require them to).
Absolutely, competition is good. On the other hand I think Java itself was a good motivation for developing .Net. I don't think MS would have been as eager to put development and research resources into it otherwise.
.Net support in eclipse.
This is what competition is about. MS already has C# 2.0 designed (which sports many of the features introduced/present in jdk1.5) and no doubt they'll start marketing that in a couple of months. It's a technological arms race. Of course the big question is which of the two will make the first move to support the other. My guess is that they will let IBM do the hard work. Already there is some
If safety is critical, don't use any C variant. Really, 99% of security problems can be attributed to stuff the java virtual machine prevents from ever happening (e.g. buffer overflows). This type of error is routinely discovered even in C programs that have been subjected to multiple code reviews (e.g. some of the server software that is shipped with BSD). In a C/C++ program, discovering an error at run-time is usually fatal whereas in Java you simply handle the exception (and of course you build in some stuff to recover nicely from such unfortunate events).
As others have pointed out, templates are planned for the next Java release (in addition to a number of other nice language features). Compared to C++, the Java version of templates is particularly strong on typesafety (which in Java was a hard requirement whereas in C++ it is just convenient to have). If you go to javalobby.org, you can sign up for an alpha release of the jdk1.5. Alternatively, you can download some extensions that will work with existing versions of java.
Anyway, there are real-time variants of Java if you need hard real time and for soft real time stuff you can configure the garbage collector to be less of a pain in the ass (with a few percents performance penalty). Garbage collection used to be a problem when SUN still used a very naive garbage collecting algorithm, that was fixed long ago.
This is true for an increasingly smaller amount of applications, mostly in the hard real-time/embedded domain. And even there Java is showing up with acceptable performance.
The key thing is to know that you are making a tradeoff. Undenieably there are times when the overhead of managing a C project is to be preferred over the faster, less buggier development in a higher level language (not necessarily Java).
Google is a great place to start before you buy a product. I usually research in advance what kind of problems I can expect with a certain part by looking what kind of complaints there are on google groups. I recently broke my own rule and bought a Trust tablet thingy. I still regret it (in short, it is absolute crap and there's not much that can be done to fix it).
No buffer overflows come from using flawed 1970's technology. Modern computer languages are immune to the worlds largest security problem: (i.e. buffer overflows) because they do something automatically that C programmers are supposed to do manually.
Eliminate the buffer overflow and malicious input becomes invalid data which can be dealt with in a controlled fashion rather than executable gibberish.
I think MS is very well aware of the kind of trouble their in. The author of this article is however very wrong to put the blame on technology. MS problem is fundamentally that they are no longer operating in an exponentially growing market. PC sales used to grow exponentially. Until the market basically stopped growing exponentially a few years back. Then MS shifted attention to the exploding server market. That imploded in 2001. Then it shifted attention to other exponentially growing markets. That didn't work either.
Currently MS depends on replacement sales (os/office & server). This is basically a very steady market with very little competition and outrageous margins. It still generates lots of revenue. The only problem is that the replacements are competing with previous versions of the same thing. There's only so much people are willing to pay for incremental improvements. In order to complement this (still spectacular) revenue stream with revenue that does have the potential to grow exponential, MS has ventured into new markets (gaming, isp, settop, mobile) with (so far) mostly negative results.
In other words, they have chosen to solve the fundamentally non technical issues they have by developing/extending other technology. In the long run they'll figure out that developing new technology is the key means to keep existing products profitable. People'll still be buying windows in 10 years. Much of the new technology currently fragmented over MS product lines will be consolidated into it. In the process they'll reorganize and cut some of the accumulated dead weight that any exponentially growing company would collect over 25 years of exponential growth.
In a few years the initial OSS goldrush will be over and MS will integrate some of the associated practices into their own business (like other businesses). The GPL will most likely never feature prominently in MS products but other licenses might very well be adopted (e.g. BSD style licenses) in a similar style that Apple has used for their products.
The ironic thing is that these security things severely limit the life time of a game. After the release of the game there is a peak in online game play. A few months after there's only the usual clan nuts left (no offense but for the casual player that totally sucks). All the people who bought the game have likely bought another game and the people who used the crack can't play online anyway. As a consequence I am very selective in what I buy.
Games like quake (I & II) and doom took off because of illegal copying. There are so many copies that you can still find quake I servers with players on them (for the record I played this game online in 1997). Basically none of the games on the shelf right now are going to be played online in seven years. The chance that you will find someone who bought the game and is still playing in seven years is very low.
There's this tool that will help you identify what codecs a particular codec is actually using. Don't blindly install a codec pack. Usually there's a lot of crap in there that you don't need.
I find that ffdshow (supports most divx/mpeg4 variants) + AC3 filter, both of which are available on sourceforge, play most files. So far I've encountered two exceptions: 3ivx, you need their decoder, and mpeg 2 files. For the latter a codec usually comes with dvd playing software. A good alternative is the elecard codec (shareware). There is also a directshow filter for mpeg2 on sourceforge as well (mpeg2ds), but it doesn't seem to work for me (not surprising since it is alpha code).
Usually if you know what codecs were used for encoding, it is trivial to find a matching decoder using google. Avicodec can help you with that for avi files.
Calling is more intrusive than emailing. If you start getting calls from people telling you to read your mail (or, worse, because it is more effective), you are not working very efficiently. Handling email at regular intervals during a working day can be very effective (e.g. when you come to work in the morning, when returing to your desk from a meeting/lunch/whatever, etc.).
I work in a university so I have a lot of people around me who are not very efficient. There's an interesting correlation between response time and efficiency. There are people in my building who don't respond at all unless you go to their office. That costs me time and I imagine it disrupts their daily routine of doing nothing as well. For many bureaucratic things, human response time is the critical path. The most responsive people I know are also very productive and efficient people.
I agree with your comments on using proper HTML and proper mimetypes. I don't agree with the rest. I'm against sending plaintext messages in addition to HTML (seems wasteful). Converting HTML to plain text is so easy that the fact that some email clients can't do that is inexcusable (nice 1st year programming exercise). I think it is quite embarrasing that people still voluntarily choose to use disfunctional software (I recently told a colleague to install some decent software and stop wasting my time when he complained that he couldn't read my message in pine. He has a 1.8GHZ P4 on his desk BTW). I was sending HTML messages in 1996. WTF is taking developers of command-line email clients so long to implement functionality that any CS student should be able to do in their sleep?
X is just a protocol. The whole problem is that most implementations of X are not particularly good implementations of a 2D windowing system. When you make remarks about those problems to an X proponent, you get the (correct) reply that it is not a problem with the protocol. He will then kindly request that you whine about your problems somewhere else.
The problem with XFree86 is that it is developed by people who are not particularly interested in improving it (at least I have no other/better explanation for the current configuration interface. There are so many obvious potential improvements that you just have to wonder what the fuck these guys are doing). This is basically the reason for the fork.
Yep. Considering most system crashes are directly related to software written in C this is a statement of remarkable ignorance.