Your costs need a little inflating;) Add the following:
It tends to cost a company three times your salary to employ you (including office space, equipment, salary and benefits, etc). That's closer to $120 per hour for your hypothetical worker.
Losing 1/2 hour productivity means paying out $120 without getting in the minimum of $150 the company should be trying to make out of your time. This means an actual cost of $120, but an economic cost of $270, per employee.
Annual subscription to a commercial desktop antivirus: $25 per employee. Without this you have no hope of cost-effectively containing a virus that hits you before there is a patch for the mail/file server anti-virus. Add extra for commercial products with easy-to-use remote administration for all those end-user desktops; and even more for network admin time if there is no remote administration.
Any company that has to take down their mail server due to volumes generated by a worm (and it happens a lot), and that is reliant on e-mail for internal communication (also very common), can write off $270 per employee per hour that the server is down. That's up to $27000 per hour in a 100-person company. Ouch.
Now image a multinational with +2500 employees that has to take all their mail servers offline for 36 hours to clean up. It's happened. It's expensive.
Sanity prevails:) I'm going to add my 2c on the nature of this patent.
While I don't agree that this should be patentable, it's a fairly limited patent. It describes a system in which software is specified as components, and any number of people may submit their code for a component; at the end of the day the best code wins.
Specifically it does not cover the software being specified as components and the components being put out to tender, with a single supplier / developer being chosen in advance to develop the component.
In short it would be better to call this a system for rewarding volunteers rather than one for paying open source developers.
Anyone can generate votes with "unique numbers" that don't belong to them. Some may be invalid, others are successfully forged. Unless the "unique number" is a randomly-generated 128+ bit number, forgery is quite possible.
It is trivial to trace the vote back to the voter. Method #1: decrypt the vote. Not supposed to happen in theory, but in practice not unlikely. Method #2: given a voter's unique number, generate all possible votes and match the results. Can be defeated by including a random number in the "clear" vote, but this is precisely why securing a system like this is hard.
No paper trail. I can make five votes and only send one out, then "prove" later that I voted for a different candidate. Actually there is no proof either way.
The basics of pen-and-paper voting are that you prove your identity and the fact that you haven't already voted in order to get admission to a voting booth. You then get one ballot paper and cast your vote, and put it into a box. There is no way to reconcile who you voted for.
It is very difficult to do this electronically. Once you prove your identity it is generally trivial to link the vote to the identity.
An argument you missed is that upper/lower case is poorly defined for Unicode.
Is VARPTR a Variable Pointer or a Variant Pointer? Is a "variable pointer" something that points to memory that can be changed (a variable), or a changable pointer? Does a "variant pointer" point to a variant variable, or can it be changed to point to different types of variables?
Meaningful names are long to reduce ambiguity. It shouldn't be necessary to read the code to understand the intent of a variable or function.
Most arguments for case insensitivity are that it is easier or less error prone. If you can't handle getting the case of a name correct, you almost certainly don't have the ability to manage checking parameters and states, or generally doing any of the work involved in writing quality software.
Case sensitivity forces consistency. Interfaces are usually designed and approved by more experienced developers who pay the proper respect to naming ; a case sensitive language prevents the case from being changes, possibly confusing the meaning of the variable or function.
You are in a board room. Its long, polished oval table and leatherette chairs are quite intimidating. A filter coffee machine bubbles quietly in the corner.
A Board Member is here.
A Chairman is here.
An Executive Directory is here.
An Axe is on the floor.
Do not talk to a doctor about ADHD (but be sure to notify your family doctor of the situation). Doctors aren't trained to diagnose or treat ADHD (yet they think they are). Talk to a child psychiatrist, or whatever you call a medical professional in your part of the world that specialises in childhood psychological disorders and has the ability to prescribe medication.
The practice of going to doctors rather that appropriately qualified professionals for this sort of problem is a big contributor to the incidence of AD(H)D misdiagnosis. IANAD, but I do have a degree in psychology.
There are two important points that need to be made here. First, ADHD and ADD are different things, with ADHD having a biological basis (underdevelopment of certain parts of the brain). Second, a psychological disorder is diagnosed based on the affect on the individual's quality of life, not on symptoms alone.
I agree with a lot of what you have to say, but a lot of it is caused by misdiagnosis. Parents tend to forget that children are hyperactive for no better reason than that they are children. But today's is a busy world, and parents would rather see their children drugged than spend the time helping them to develop properly.
When children can't complete their assigned tasks (especially schoolwork) when they are a year older than children who can, there is a potential problem. Such children often never develop an ability to concentrate, and need drug therapy to assist them for a period, while they are taught techniques to cope with their inability to concentrate.
Treating AD(H)D is not (or shouldn't be) about conformity. It is about giving a child the ability to concentrate, which they can apply when they need to. Concentration is a vital life skill -- required for everything from not burning the toast to passing tertiary courses and getting a decent job so you can support yourself.
Perhaps the most important thing the original poster needs to do is speak to his daughter. This is often something parents don't do, and it is necessary. The child needs to give her opinion on whether or not she can concentrate, and how she feels about treatment. That said, I would be of the opinion that neural therapy has a lot of potential to teach a person to cope with ADHD.
Arguably, yes. You are always potentially at liability when you provide infrastructure. In general if it is reasonable to believe that what you are providing is being used for illicit purposes, you need to take steps to ensure that this is not the case, in order to protect yourself.
That said, I must make it clear that I'm not familiar with the mechanisms of Freenet; and I need to draw your attention to this:
Freenet is free software which lets you publish and obtain information on the Internet without fear of censorship. To achieve this freedom, the network is entirely decentralized and publishers and consumers of information are anonymous. Without anonymity there can never be true freedom of speech, and without decentralization the network will be vulnerable to attack
This is the introductory statement to Freenet. Significantly it is phrased in terms of freedom of speech, and does not mention that it can be used to violate Copyright.
Compare that with MUTE, which is described as a system for preventing the RIAA from catching you in the act.
The fact that Freenet is not clearly intended for violating Copyright, and likely has substantial non-infringing use, will stand for something in court. At the very least the prosecution would have a more difficult job proving that you should have reasonably suspected that your infrastructure was being misused.
Copy protection hurts paying customers and the providers. I don't play many games... actually I don't play any anymore. The last three I have purchased wouldn't run on my computer, and in all cases it came down to issues with the copy protection.
I think the book idea is a good one. A lot of old role-playing games used to do this ("You see a box. Read paragraph 230."), and it was pretty effective at making people buy the original.
hence a lot of these sorts of systems are still hand coded in assembler , never mind C.
This is just plain wrong. Most vehicle manufacturers apply the MISRA guidelines for C for their embedded systems. These are intended to provide quality assurance and highly robust systems.
The guidelines/rules actively discourage the use of assembly language except where necessary to inteface with hardware. It is much more difficult to develop robust assembly than robust C.
The idea that assembly is significantly faster than C is also a myth, unless you have an exceedingly poor compiler. Compilers are good at micro- and macro- optimisation, and often choose better instructions and constructs than a developer. There are very few developers that dedicate themselves to complete familiarity with a processor architecture and its instruction set (without which you simply can't optimise efficiently).
van Rossum makes the error of assuming a program is a single entity, rather than a collection of components with properly defined interfaces.
A 100,000 line program comprising 19 components of 5,000 lines each, all having a well-defined interface, and a 5,000 line application to bind them, is easily maintainable, even by a single developer.
Complexity increases dramatically as the number of line per component increase, but slowly as the number of components increase. It is a misnomer to judge overall complexity on the total SLOC when you have a highly modular system.
Anyone bothered to read the MUTE site should be really worried about now. Apart from technical problems and generally suspicious statements, the entire workings of MUTE place every user at the risk of contributory infringement of copyright.
Why doesn't MUTE protect you? Because the "RIAA node" only needs to download a single copyright file and use netstat to take the address of its peer (neighbour) node. It then has the ability to track you (i.e. the neighbour, via your ISP) and has proof of your contribution to the infringement (you actively provided infrastructure for the transfer of the copyright material).
But they need to show you have knowledge of the activity, right? Wrong. First because they'll just subpoena you anyway and it will cost lest to pay the requested amount than to fight them. Second because they only have to prove on a balance of probabilities that you were aware that your "service" was being used for illicit purposes. More on that later.
You also can't claim that you were just providing a service "like an ISP", because you're not. ISPs protect themselves by being telecommunications carriers (which are largely exempt from monitoring content), or having appropriate AUPs with the customers they provide the service for, or responding in an appropriate manner to compliants. For example if you can't or are not prepared to remove known illegal material from your service when you are notified about it, you become a contributory infringer!
Alright, so why can ISPs get away with it and you can't? Because they have AUPs, because they respond to complaints, and most importantly because there is a significant non-infringing use for their network. MUTE, on the other hand, is described specifically as a network dedicated to preserving your anonymity for the purpose of trading in illegal MP3s without getting caught by the RIAA.
Here's an anecdote for you: a landlord was arrested for pimping and money laundering. When he pleaded ignorance the police demonstrated to the court that they could ask virtually any member of the community where there were prostitutes and drug sellers at the building in question, and the answer would be "Yes". So a "reasonable man" was aware of the problem, yet the landlord tried to protect himself by never looking into it. Running a brothel is an offense that attaches to the property owner -- it is his responsibility to take reasonable measures to ensure that the property is not being used for illegal purposes.
The other problems? Phrases like "military-grade encryption" don't inspire confidence, especially in a system that uses asymmetric cryptography without a PKI (and a PKI in this system would pretty much kill the idea of being anonymous). The "RIAA node" could happily perform a man-in-the-middle attack on all secure connections that are established through it.
In general the documentation on MUTE appears to give little consideration to side-channel attacks, concentrating on how secure and anonymous the system is algorithmically.
Tcl/Tk proper is not a bad idea either. If one does not need the GUI part (Tk) then Tcl is relatively easy to integrate into a project, and is under 200k.
HowToEmbed from the Tcl Wiki is a good starting point, and MkTclApp may help.
Tcl has very consistent and simple syntax (although it can get rather confusing at times), and it is very simple to add new command into your application that are exposed via Tcl. One of the nicest aspects of Tcl is that is it seriously multi-platform.
Of course this all depends on the requirements: how powerful does the language need to be, what functions must it provide, what types do you need it to be able to handle, how small is "lightweight", etc.
Furthermore: an ISP (or its software) can't distinguish between pop-ups a user wants/needs, and those a user doesn't; and blocking ads may force the user to violate their AUP.
I know of several sites that use an auto-pop-up login dialog or have an AUP that prohibits the blocking of ads from the site.
To make matters worse, there are alreay some sites that are using TV-like advertising -- any link click could be replaced by a full-screen on-page animated (flash or image) advert that has Javascript ensuring it is fully loaded and displayed before allowing you to click on the "on to the link I really wanted, please" button. Attacking pop-ups (which are a minor annoyance on most sites) will just make this sort of advertising more common (and it is a major annoyance, esp. for people with limited bandwidth).
CVS is a source control tool. ClearCase is a configuration management tool. There is a whole world of difference, which is why ClearCase sucks if you're using it purely for source control.
Fortunately someone seems to know the difference between a contactless smart card and an RFID tag;) Now that the card institutions have invested heavily in smart cards and EMV, they have no intention of going back to a simple insecure account number system like a regular magstripe card.
Extending EMV to use contactless smart cards will not be difficult, and will provide end-to-end security based on RSA and a PKI.
We've apparently got about 80 years of coal left (in SA), but its going to get more expensive to mine it, and more in demand for coal-to-oil conversion as oil becomes scarce. This is obviously a consideration in considering new coal-fired power stations to meet expected power deficits, hence the pressure to move to alternative fuel sources sooner rather than later.
But yes, coal availability isn't an issue for now.
I personally think that the money could be better spent given South Africa's problems
Except you should know that although Eskom is state-run it is independantly financed, including its R&D (although it can get special project funding from certain ministries, like any other organisation).
So its a bit pointless to say "the money could be better spent" on something not related to Eskom. Besides which:
Our power is about the cheapest in the world. It has been identified as a priority to keep it that way to give SA a developmental edge.
Because most power is generated from coal-fired stations in the east, we waste a huge amount in transmission. Technologies that can reduce this waste without introducing transportation costs will benefit us significantly in the long term.
We are facing a peak power deficit by 2008, so we need to plan to have additional capacity available by then.
... and then there's the export potential. All very good reasons to invest in PBMR.
Yeah, this is the big problem. You need to encase the waste in something is can't really leak through and something impermeable to waster. Then you need to encase it in concrete or the like to prevent damage to the inner casing. Then you need to store it somewhere where you know its not going to get stolen or damaged (by erosion, corrosion, earthquakes, construction activity, world war 3, etc).
But the real problem is probably the "do it and forget it" attitude. Disposing of radioactive waste is something like making computer backups -- you have to check on it periodically and maintain it. This means we only have to design a way to store waste for (say) 200 years, but that every 25 years it must be subject to a full inspection and possible "resealing". If, after 200 years, we have a better way of dealing with the waste (space elevator makes disposal into deep space cheap) we can do that.
The basis for this technology has been around for at least 30 years, as you would know if you read the background on the site. The PBMR is not the same technology as the
AVR or THTR at Hamm-Uentrop.
The THTR reactor was not closed due to technical problems. The problems it experienced were related to the loading of fuel, an issue addressed by the PBMR. Even Greenpeace admits regarding the THTR "In 1989 the reactor was permanently closed due to both economic and
political reasons."
Whenever the issue of pebble-bed reactors has been discussed there has been allusion to "problems" in all reactors produced so far (in Germany, Japan and the US) -- without indicating that none of these reactors have been closed down for safety reasons! The biggest problem with these reactors so far has been getting them to reliably and economically perform their purpose.
As for information exchange so that South Africans know whats getting build "in their back yard" - we have a strong anti-nuclear lobby already. Unfortunately we also live in a country where 16% of the populate are illiterate and only 25% have completed secondary education -- so just how do you think it is possible for the public to make an educated decision on how long our coal reserves are going to last, whether a particular incarnation of nuclear technology is better or worse than pumping out greenhouse gasses, and what our electricity requirements are going to be in 2010?
Indeed, the crux of the matter comes down to the statement:
The unbridled use of the go to statement has an immediate consequence that it becomes terribly hard to find a meaningful set of coordinates in which to describe the process progress
-- "Goto Considered Harmful" (Communications of the ACM, 11, p147-148, 1968)
But few people, in taking this paper as gospel, recognise the assumption in its construction:
Let us now consider how we can characterize the progress of a process. (You may think about this question in a very concrete manner: suppose that a process, considered as a time succession of actions, is stopped after an arbitrary action, what data do we have to fix in order that we can redo the process until the very same point?)
-- "Goto Considered Harmful" (Communications of the ACM, 11, p147-148, 1968)
Dijkstra's argument centres around a visual identification of the source code location versus the progress of executing code. Purely nested code in a single-threaded environment makes such identification relatively simple... assuming a program that behaves according to the sequential model he describes.
But in modern computing the scenario is different. Any function call could result in a thread creation as a byproduct, or interaction with another thread or process that has an effect not visually obvious in the code. Is this an argument for the abolishment of threaded programming?
Consider too the implementation of a finite state machine (which by its nature does not conform to Dijkstra's model). An implementation using goto statements is trivial and can be easy to follow. In a nested language a state machine engine must be developed, able to coordinate the transition between states (often stored in a state table).
This is not to say that the latter is inferior or not elegant; but in my experience few programmers have a sound theoretical background and thus do not notice that what they are building is a state machine. As a result we see an ugly collection of loops, case statements and simple conditions to attempt to control the flow of the process, which are often require consderable effort to unravel.
So then what is more harmful? Had the developer used goto he would have produced a trivial and unstandable implementation (perhaps not ideal for maintenance though). Applying the gospel that "goto is harmful" results in a tangle of code that is neither readable not maintainable.
I know this is news to most people, but computer science is not about programming. If you want to learn how to program, how to develop large systems and databases... study the commerce subject "Information Systems".
Computer science is about the science of computing. It is about understanding and advancing the state of computing through the advancement of computing theory.
The fact that practical application or emperical testing of the techniques requires computer science students to have rudimentary programming skills in no way qualifies them to actually develop software.
Fortunately most "computer science" degrees are only half focused on the science aspect, and draw in a lot of what they call "engineering": how to use the theory to build a system. This is largely a reaction by universities to the public perception that computer science is about programming.
A select group of institutions recognise that software engineering deals very little with building the system, and mostly with the management of the process to ensure that a quality product is delivered on time and on budget.
I think this comment hits the problem squarely on the head. There are very few people involved in advancing the science of computing. Most are involved in developing software and, at best, they want a quick synthesised version of the most applicable theories.
Your costs need a little inflating ;) Add the following:
Sanity prevails :) I'm going to add my 2c on the nature of this patent.
While I don't agree that this should be patentable, it's a fairly limited patent. It describes a system in which software is specified as components, and any number of people may submit their code for a component; at the end of the day the best code wins.
Specifically it does not cover the software being specified as components and the components being put out to tender, with a single supplier / developer being chosen in advance to develop the component.
In short it would be better to call this a system for rewarding volunteers rather than one for paying open source developers.
The basics of pen-and-paper voting are that you prove your identity and the fact that you haven't already voted in order to get admission to a voting booth. You then get one ballot paper and cast your vote, and put it into a box. There is no way to reconcile who you voted for.
It is very difficult to do this electronically. Once you prove your identity it is generally trivial to link the vote to the identity.
Meaningful names are long to reduce ambiguity. It shouldn't be necessary to read the code to understand the intent of a variable or function.
You are in a board room. Its long, polished oval table and leatherette chairs are quite intimidating. A filter coffee machine bubbles quietly in the corner.
A Board Member is here.
A Chairman is here.
An Executive Directory is here.
An Axe is on the floor.
Do not talk to a doctor about ADHD (but be sure to notify your family doctor of the situation). Doctors aren't trained to diagnose or treat ADHD (yet they think they are). Talk to a child psychiatrist, or whatever you call a medical professional in your part of the world that specialises in childhood psychological disorders and has the ability to prescribe medication.
The practice of going to doctors rather that appropriately qualified professionals for this sort of problem is a big contributor to the incidence of AD(H)D misdiagnosis. IANAD, but I do have a degree in psychology.
There are two important points that need to be made here. First, ADHD and ADD are different things, with ADHD having a biological basis (underdevelopment of certain parts of the brain). Second, a psychological disorder is diagnosed based on the affect on the individual's quality of life, not on symptoms alone.
I agree with a lot of what you have to say, but a lot of it is caused by misdiagnosis. Parents tend to forget that children are hyperactive for no better reason than that they are children. But today's is a busy world, and parents would rather see their children drugged than spend the time helping them to develop properly.
When children can't complete their assigned tasks (especially schoolwork) when they are a year older than children who can, there is a potential problem. Such children often never develop an ability to concentrate, and need drug therapy to assist them for a period, while they are taught techniques to cope with their inability to concentrate.
Treating AD(H)D is not (or shouldn't be) about conformity. It is about giving a child the ability to concentrate, which they can apply when they need to. Concentration is a vital life skill -- required for everything from not burning the toast to passing tertiary courses and getting a decent job so you can support yourself.
Perhaps the most important thing the original poster needs to do is speak to his daughter. This is often something parents don't do, and it is necessary. The child needs to give her opinion on whether or not she can concentrate, and how she feels about treatment. That said, I would be of the opinion that neural therapy has a lot of potential to teach a person to cope with ADHD.
Still, they'd be printing it pretty small ;)
Arguably, yes. You are always potentially at liability when you provide infrastructure. In general if it is reasonable to believe that what you are providing is being used for illicit purposes, you need to take steps to ensure that this is not the case, in order to protect yourself.
That said, I must make it clear that I'm not familiar with the mechanisms of Freenet; and I need to draw your attention to this:
This is the introductory statement to Freenet. Significantly it is phrased in terms of freedom of speech, and does not mention that it can be used to violate Copyright.
Compare that with MUTE, which is described as a system for preventing the RIAA from catching you in the act.
The fact that Freenet is not clearly intended for violating Copyright, and likely has substantial non-infringing use, will stand for something in court. At the very least the prosecution would have a more difficult job proving that you should have reasonably suspected that your infrastructure was being misused.
Copy protection hurts paying customers and the providers. I don't play many games ... actually I don't play any anymore. The last three I have purchased wouldn't run on my computer, and in all cases it came down to issues with the copy protection.
I think the book idea is a good one. A lot of old role-playing games used to do this ("You see a box. Read paragraph 230."), and it was pretty effective at making people buy the original.
This is just plain wrong. Most vehicle manufacturers apply the MISRA guidelines for C for their embedded systems. These are intended to provide quality assurance and highly robust systems.
The guidelines/rules actively discourage the use of assembly language except where necessary to inteface with hardware. It is much more difficult to develop robust assembly than robust C.
The idea that assembly is significantly faster than C is also a myth, unless you have an exceedingly poor compiler. Compilers are good at micro- and macro- optimisation, and often choose better instructions and constructs than a developer. There are very few developers that dedicate themselves to complete familiarity with a processor architecture and its instruction set (without which you simply can't optimise efficiently).
van Rossum makes the error of assuming a program is a single entity, rather than a collection of components with properly defined interfaces.
A 100,000 line program comprising 19 components of 5,000 lines each, all having a well-defined interface, and a 5,000 line application to bind them, is easily maintainable, even by a single developer.
Complexity increases dramatically as the number of line per component increase, but slowly as the number of components increase. It is a misnomer to judge overall complexity on the total SLOC when you have a highly modular system.
Anyone bothered to read the MUTE site should be really worried about now. Apart from technical problems and generally suspicious statements, the entire workings of MUTE place every user at the risk of contributory infringement of copyright.
Why doesn't MUTE protect you? Because the "RIAA node" only needs to download a single copyright file and use netstat to take the address of its peer (neighbour) node. It then has the ability to track you (i.e. the neighbour, via your ISP) and has proof of your contribution to the infringement (you actively provided infrastructure for the transfer of the copyright material).
But they need to show you have knowledge of the activity, right? Wrong. First because they'll just subpoena you anyway and it will cost lest to pay the requested amount than to fight them. Second because they only have to prove on a balance of probabilities that you were aware that your "service" was being used for illicit purposes. More on that later.
You also can't claim that you were just providing a service "like an ISP", because you're not. ISPs protect themselves by being telecommunications carriers (which are largely exempt from monitoring content), or having appropriate AUPs with the customers they provide the service for, or responding in an appropriate manner to compliants. For example if you can't or are not prepared to remove known illegal material from your service when you are notified about it, you become a contributory infringer!
Alright, so why can ISPs get away with it and you can't? Because they have AUPs, because they respond to complaints, and most importantly because there is a significant non-infringing use for their network. MUTE, on the other hand, is described specifically as a network dedicated to preserving your anonymity for the purpose of trading in illegal MP3s without getting caught by the RIAA.
Here's an anecdote for you: a landlord was arrested for pimping and money laundering. When he pleaded ignorance the police demonstrated to the court that they could ask virtually any member of the community where there were prostitutes and drug sellers at the building in question, and the answer would be "Yes". So a "reasonable man" was aware of the problem, yet the landlord tried to protect himself by never looking into it. Running a brothel is an offense that attaches to the property owner -- it is his responsibility to take reasonable measures to ensure that the property is not being used for illegal purposes.
The other problems? Phrases like "military-grade encryption" don't inspire confidence, especially in a system that uses asymmetric cryptography without a PKI (and a PKI in this system would pretty much kill the idea of being anonymous). The "RIAA node" could happily perform a man-in-the-middle attack on all secure connections that are established through it.
In general the documentation on MUTE appears to give little consideration to side-channel attacks, concentrating on how secure and anonymous the system is algorithmically.
Tcl/Tk proper is not a bad idea either. If one does not need the GUI part (Tk) then Tcl is relatively easy to integrate into a project, and is under 200k.
HowToEmbed from the Tcl Wiki is a good starting point, and MkTclApp may help.
Tcl has very consistent and simple syntax (although it can get rather confusing at times), and it is very simple to add new command into your application that are exposed via Tcl. One of the nicest aspects of Tcl is that is it seriously multi-platform.
Of course this all depends on the requirements: how powerful does the language need to be, what functions must it provide, what types do you need it to be able to handle, how small is "lightweight", etc.
Furthermore: an ISP (or its software) can't distinguish between pop-ups a user wants/needs, and those a user doesn't; and blocking ads may force the user to violate their AUP.
I know of several sites that use an auto-pop-up login dialog or have an AUP that prohibits the blocking of ads from the site.
To make matters worse, there are alreay some sites that are using TV-like advertising -- any link click could be replaced by a full-screen on-page animated (flash or image) advert that has Javascript ensuring it is fully loaded and displayed before allowing you to click on the "on to the link I really wanted, please" button. Attacking pop-ups (which are a minor annoyance on most sites) will just make this sort of advertising more common (and it is a major annoyance, esp. for people with limited bandwidth).
CVS is a source control tool. ClearCase is a configuration management tool. There is a whole world of difference, which is why ClearCase sucks if you're using it purely for source control.
Please mod the parent up
Fortunately someone seems to know the difference between a contactless smart card and an RFID tag ;) Now that the card institutions have invested heavily in smart cards and EMV, they have no intention of going back to a simple insecure account number system like a regular magstripe card.
Extending EMV to use contactless smart cards will not be difficult, and will provide end-to-end security based on RSA and a PKI.
We've apparently got about 80 years of coal left (in SA), but its going to get more expensive to mine it, and more in demand for coal-to-oil conversion as oil becomes scarce. This is obviously a consideration in considering new coal-fired power stations to meet expected power deficits, hence the pressure to move to alternative fuel sources sooner rather than later.
But yes, coal availability isn't an issue for now.
Breathing in a common chemical like dihydrogen monoxide will kill you within a minute. You'll still live for years after breathing depleted uranium.
Except you should know that although Eskom is state-run it is independantly financed, including its R&D (although it can get special project funding from certain ministries, like any other organisation).
So its a bit pointless to say "the money could be better spent" on something not related to Eskom. Besides which:
... and then there's the export potential. All very good reasons to invest in PBMR.
Yeah, this is the big problem. You need to encase the waste in something is can't really leak through and something impermeable to waster. Then you need to encase it in concrete or the like to prevent damage to the inner casing. Then you need to store it somewhere where you know its not going to get stolen or damaged (by erosion, corrosion, earthquakes, construction activity, world war 3, etc).
But the real problem is probably the "do it and forget it" attitude. Disposing of radioactive waste is something like making computer backups -- you have to check on it periodically and maintain it. This means we only have to design a way to store waste for (say) 200 years, but that every 25 years it must be subject to a full inspection and possible "resealing". If, after 200 years, we have a better way of dealing with the waste (space elevator makes disposal into deep space cheap) we can do that.
The basis for this technology has been around for at least 30 years, as you would know if you read the background on the site. The PBMR is not the same technology as the AVR or THTR at Hamm-Uentrop.
The THTR reactor was not closed due to technical problems. The problems it experienced were related to the loading of fuel, an issue addressed by the PBMR. Even Greenpeace admits regarding the THTR "In 1989 the reactor was permanently closed due to both economic and political reasons."
Whenever the issue of pebble-bed reactors has been discussed there has been allusion to "problems" in all reactors produced so far (in Germany, Japan and the US) -- without indicating that none of these reactors have been closed down for safety reasons! The biggest problem with these reactors so far has been getting them to reliably and economically perform their purpose.
As for information exchange so that South Africans know whats getting build "in their back yard" - we have a strong anti-nuclear lobby already. Unfortunately we also live in a country where 16% of the populate are illiterate and only 25% have completed secondary education -- so just how do you think it is possible for the public to make an educated decision on how long our coal reserves are going to last, whether a particular incarnation of nuclear technology is better or worse than pumping out greenhouse gasses, and what our electricity requirements are going to be in 2010?
Indeed, the crux of the matter comes down to the statement:
But few people, in taking this paper as gospel, recognise the assumption in its construction:
Dijkstra's argument centres around a visual identification of the source code location versus the progress of executing code. Purely nested code in a single-threaded environment makes such identification relatively simple ... assuming a program that behaves according to the sequential model he describes.
But in modern computing the scenario is different. Any function call could result in a thread creation as a byproduct, or interaction with another thread or process that has an effect not visually obvious in the code. Is this an argument for the abolishment of threaded programming?
Consider too the implementation of a finite state machine (which by its nature does not conform to Dijkstra's model). An implementation using goto statements is trivial and can be easy to follow. In a nested language a state machine engine must be developed, able to coordinate the transition between states (often stored in a state table).
This is not to say that the latter is inferior or not elegant; but in my experience few programmers have a sound theoretical background and thus do not notice that what they are building is a state machine. As a result we see an ugly collection of loops, case statements and simple conditions to attempt to control the flow of the process, which are often require consderable effort to unravel.
So then what is more harmful? Had the developer used goto he would have produced a trivial and unstandable implementation (perhaps not ideal for maintenance though). Applying the gospel that "goto is harmful" results in a tangle of code that is neither readable not maintainable.
I know this is news to most people, but computer science is not about programming. If you want to learn how to program, how to develop large systems and databases ... study the commerce subject "Information Systems".
Computer science is about the science of computing. It is about understanding and advancing the state of computing through the advancement of computing theory.
The fact that practical application or emperical testing of the techniques requires computer science students to have rudimentary programming skills in no way qualifies them to actually develop software.
Fortunately most "computer science" degrees are only half focused on the science aspect, and draw in a lot of what they call "engineering": how to use the theory to build a system. This is largely a reaction by universities to the public perception that computer science is about programming.
A select group of institutions recognise that software engineering deals very little with building the system, and mostly with the management of the process to ensure that a quality product is delivered on time and on budget.
I think this comment hits the problem squarely on the head. There are very few people involved in advancing the science of computing. Most are involved in developing software and, at best, they want a quick synthesised version of the most applicable theories.