Don't worry. There is a bug in the Time Lord software...in leap years, on Dec 31st, the regeneration limiting device stops working, and so the Doctor can be safely regenerated...guess who wrote the Time Lord software...
I don't think the PS3 has the problem you mention (SPEs not being able to work directly on VRAM). It has a huge bus and it can easily stream huge amount of texture data from the SPE cores to the GPU.
It's just pattern matching. The seagull did not do any analysis, it just matched the situation with previous ones and decided when it was best to swoop down and pick up the food.
The reason there are no real progress on AI is because the scientists think the brain works with computer algorithms, which is wrong. The brain works by pattern matching: any data fed to it are matched to existing patterns in the brain, and the most successful match is used to recall the appropriate reactions. In short:
Input => pattern matching => reaction => output.
Consciousness simply arises from building a model large enough to accommodate a small 'universe' that the brain has a place into.
On the desktop, Microsoft has no competition. The only possible competitor is Apple.
Apple does not need to support every piece of hardware under the Sun. They could support specific configurations with components from major hardware vendors.
Apple has something truly invaluable in their hands, their operating system. Software is worth many times more than hardware. the value of OS X is in the billion dollars category. This is because software runs the world.
In the future, there would be no journalists that will unravel the future Watergate scandals, for the following reasons:
1) it would be extremely dangerous. We are marching towards fascism (not only in the US, but in Europe and Asia as well), and any investigator will end up the same way Anna Politkovskaya did.
2) revenue in the press will not come from uncovering the truth, but from other types of lighter news. Why try the hard stuff when the light stuff is just (or more) profitable?
In this light, there is no room for printed newspapers any more. Only the lifestyle newspapers will remain, until housewives become computer-literate.
In the old pre-internet days, it was much easier to just ask the neighbor to hand you the game tape or disk or CD so as that you can copy it, than going out and buying it.
In these days, it's still easier to just download a copy than going out and buy the game. With broadband connections, it takes a few hours to download the game (you can start the download at night or before going to work and then in the morning or after work you have the game).
Online purchases is something that most people do not trust, and they are right to do so.
People pirate games in all price ranges. Even if a game costs $10, it will be pirated if it's one click away instead of going to the shop to buy it.
So, piracy is more about access than value.
In order to diminish piracy, there are a few things than can be done:
1) internet communications should be encrypted at all points (even DNS). Granted, that's a huge step economically (and perhaps technologically), and certainly something governments would fear, but that's the only way to unlock the online economy. As long as this does not happen, people will not trust online transactions.
2) games should be delivered incrementally to the customer. Why should I want to download a full game if I don't want to play it? I want to try it. Demos are a step in the right direction, but then after playing the demo, I don't have the option of downloading just the next level, I must purchase the whole game.
Someone makes a filesystem in the 70s, and then 30 years later is still accessible...I don't think that's gonna be the case with Windows in 30 years in the future!
Euphoria and ABC are excellent introductory programming languages. Both are very simple, programs written in them are quite readable, and you can do useful things with them:
Operating system progress has virtually halted for more than a decade because of the Windows monopoly. THAT is the problem here, not users trying to come to grips with a needlessly complicated and inconsistent tool.
And what the open source community did? it duplicated an even older operating system, i.e. Unix.
There are other factors that affect the development of operating systems:
Operating system progress depends on programming language progress. Unfortunately, no one has come up with a safe alternative of the C programming language.
CPU designers have minimal security built in CPUs. Process-level security is not adequate, what it is needed is a security model within a process. As it is right now, code within a process can access anything in the memory managed by the process.
Don't think that Unix is any safer than Windows in this case. This bug is analogous to the Unix worm 20 years ago.
I once had two managers asking me what is this Linux company and if it is as big as Microsoft...
In the end, the year of Linux on the desktop will come not when technology matures, but when it is advertised appropriately...it seems Linux has a marketing problem!
(disclaimer: I have an MSc in Software Engineering)
All software development methodologies are extremely bad:
1) they are boring. 2) they are extremely complex. 3) they do not produce results fast enough. 4) they require specialized tools. 5) they are not precise enough. 6) produce extremely large amounts of paper work.
In other engineering disciplines, methodologies are extremely well defined. For example, in order to design a bridge, the civil engineer has to take certain steps in a specific order. A civil engineer does not have to battle his/her methodology all the time.
In software engineering, software development methodologies get in the way. The software engineer has to constantly think of how to work around the methodologies, because the methodologies are worthless.
This is a big problem in teaching software engineering. Which methodology to teach? there is no clear best approach, and software engineers are taught every method in existence. This is confusing, to say the least; when these engineers enter the market, either they are unable to apply their half-assed knowledge of software engineering methods, or the methods are so costly that their managers do not allow the engineers to apply those methods.
Due to all the above, software development is a craftsmanship, an art, and not an engineering activity. The academia is not interested in solving the problem because it's not research and only research pays their bills, the market is not interested in solving the problem because the market is interested in results, and therefore the problem is perpetuated...and the poor software engineers/programmers are stuck in the middle...
One fundamental mistake in the education system is that there is no clear distinction between education for becoming a computer scientist, education for becoming a software engineer, and education for a programming/IT position.
In order to be a computer scientist, one has to learn: lambda calculus, automata, compilers, parsers, algorithms, binary logic, set theory, discrete algebra, graph theory, and other stuff mostly related to mathematics.
In order to be a software engineer, one has to learn: software development methodologies, the software cycle, analysis and design, formal methods, testing methodologies, software cost analysis, etc.
In order to be a programmer one has to learn: programming languages (Java, c++, C#, C, javascript, etc), IDEs (Visual Studio, Eclipse, etc), databases (SQL Server, Oracle, MySQL), protocols (html, xml, sql, etc), other tools (web servers, application servers, web browsers etc).
The 3 categories are all related to each other, because they are for computers, but they should not be mixed; they are different roles. Unfortunately, most education programs do not separate them, and thus people get confused and choose courses that are not suitable for them. Eventually, these people get bored, educated badly, and when they enter the market, they can't serve the needs of the market...
The division of software engineers into database, financial, medical, commercial, real-time, distributed etc systems is wrong. In order to develop any application in these fields, the programmer needs skills from the other fields. For example, commercial, financial and medical applications may need database skills; financial, medical and real-time systems may need distributed programming skills etc.
There must be a separation of concerns: the business logic is the domain of the analyst, while the software logic that implements the business logic is the domain of the software engineer.
...black mamba... (over 100 km/h speed!)
Are these mini nuclear reactors easily hacked so as that they can be used as terrorist threats?
It would be really bad if these devices spread around, and then be easy targets for terrorists.
Deep Space 9 does not fit into Star Trek. It could be another separate show, a wonderful show, but it has a style which is not Star Trek.
Imagine a doctor as cunning and stupid as the Black Adder...a major TV hit!
It's good entertainment, but there is no science in it, is it?
Don't worry. There is a bug in the Time Lord software...in leap years, on Dec 31st, the regeneration limiting device stops working, and so the Doctor can be safely regenerated...guess who wrote the Time Lord software...
Interesting case.
1) this bug is a logical bug. Could it be avoided by using more advanced programming languages? for example, a purely functional one like Haskell?
2) has anyone ever thought of doing a loop-less programming language? a language that somehow allows 'gotos' but does not have the problems of loops?
And let's not forget the programming issues...far pointers anyone?
What about the case that all cars have radars? wouldn't it be best? we would have very few accidents then.
I don't think the PS3 has the problem you mention (SPEs not being able to work directly on VRAM). It has a huge bus and it can easily stream huge amount of texture data from the SPE cores to the GPU.
It sounds ok for every day English use, but what about other languages?
And what if a word is not found? how is the word then typed?
It's just pattern matching. The seagull did not do any analysis, it just matched the situation with previous ones and decided when it was best to swoop down and pick up the food.
The reason there are no real progress on AI is because the scientists think the brain works with computer algorithms, which is wrong. The brain works by pattern matching: any data fed to it are matched to existing patterns in the brain, and the most successful match is used to recall the appropriate reactions. In short:
Input => pattern matching => reaction => output.
Consciousness simply arises from building a model large enough to accommodate a small 'universe' that the brain has a place into.
I couldn't agree more.
On the desktop, Microsoft has no competition. The only possible competitor is Apple.
Apple does not need to support every piece of hardware under the Sun. They could support specific configurations with components from major hardware vendors.
Apple has something truly invaluable in their hands, their operating system. Software is worth many times more than hardware. the value of OS X is in the billion dollars category. This is because software runs the world.
In the future, there would be no journalists that will unravel the future Watergate scandals, for the following reasons:
1) it would be extremely dangerous. We are marching towards fascism (not only in the US, but in Europe and Asia as well), and any investigator will end up the same way Anna Politkovskaya did.
2) revenue in the press will not come from uncovering the truth, but from other types of lighter news. Why try the hard stuff when the light stuff is just (or more) profitable?
In this light, there is no room for printed newspapers any more. Only the lifestyle newspapers will remain, until housewives become computer-literate.
In the old pre-internet days, it was much easier to just ask the neighbor to hand you the game tape or disk or CD so as that you can copy it, than going out and buying it.
In these days, it's still easier to just download a copy than going out and buy the game. With broadband connections, it takes a few hours to download the game (you can start the download at night or before going to work and then in the morning or after work you have the game).
Online purchases is something that most people do not trust, and they are right to do so.
People pirate games in all price ranges. Even if a game costs $10, it will be pirated if it's one click away instead of going to the shop to buy it.
So, piracy is more about access than value.
In order to diminish piracy, there are a few things than can be done:
1) internet communications should be encrypted at all points (even DNS). Granted, that's a huge step economically (and perhaps technologically), and certainly something governments would fear, but that's the only way to unlock the online economy. As long as this does not happen, people will not trust online transactions.
2) games should be delivered incrementally to the customer. Why should I want to download a full game if I don't want to play it? I want to try it. Demos are a step in the right direction, but then after playing the demo, I don't have the option of downloading just the next level, I must purchase the whole game.
Someone makes a filesystem in the 70s, and then 30 years later is still accessible...I don't think that's gonna be the case with Windows in 30 years in the future!
It's impressive that no one has commented on the programming languages...
Seriously, for how long would we have to put up with these inferior languages? their design flaws have cost so far billions of dollars!!!
New laws create more crime types, not more crime.
Euphoria and ABC are excellent introductory programming languages. Both are very simple, programs written in them are quite readable, and you can do useful things with them:
And what the open source community did? it duplicated an even older operating system, i.e. Unix.
There are other factors that affect the development of operating systems:
Don't think that Unix is any safer than Windows in this case. This bug is analogous to the Unix worm 20 years ago.
I once had two managers asking me what is this Linux company and if it is as big as Microsoft...
In the end, the year of Linux on the desktop will come not when technology matures, but when it is advertised appropriately...it seems Linux has a marketing problem!
(disclaimer: I have an MSc in Software Engineering)
All software development methodologies are extremely bad:
1) they are boring.
2) they are extremely complex.
3) they do not produce results fast enough.
4) they require specialized tools.
5) they are not precise enough.
6) produce extremely large amounts of paper work.
In other engineering disciplines, methodologies are extremely well defined. For example, in order to design a bridge, the civil engineer has to take certain steps in a specific order. A civil engineer does not have to battle his/her methodology all the time.
In software engineering, software development methodologies get in the way. The software engineer has to constantly think of how to work around the methodologies, because the methodologies are worthless.
This is a big problem in teaching software engineering. Which methodology to teach? there is no clear best approach, and software engineers are taught every method in existence. This is confusing, to say the least; when these engineers enter the market, either they are unable to apply their half-assed knowledge of software engineering methods, or the methods are so costly that their managers do not allow the engineers to apply those methods.
Due to all the above, software development is a craftsmanship, an art, and not an engineering activity. The academia is not interested in solving the problem because it's not research and only research pays their bills, the market is not interested in solving the problem because the market is interested in results, and therefore the problem is perpetuated...and the poor software engineers/programmers are stuck in the middle...
One fundamental mistake in the education system is that there is no clear distinction between education for becoming a computer scientist, education for becoming a software engineer, and education for a programming/IT position.
In order to be a computer scientist, one has to learn: lambda calculus, automata, compilers, parsers, algorithms, binary logic, set theory, discrete algebra, graph theory, and other stuff mostly related to mathematics.
In order to be a software engineer, one has to learn: software development methodologies, the software cycle, analysis and design, formal methods, testing methodologies, software cost analysis, etc.
In order to be a programmer one has to learn: programming languages (Java, c++, C#, C, javascript, etc), IDEs (Visual Studio, Eclipse, etc), databases (SQL Server, Oracle, MySQL), protocols (html, xml, sql, etc), other tools (web servers, application servers, web browsers etc).
The 3 categories are all related to each other, because they are for computers, but they should not be mixed; they are different roles. Unfortunately, most education programs do not separate them, and thus people get confused and choose courses that are not suitable for them. Eventually, these people get bored, educated badly, and when they enter the market, they can't serve the needs of the market...
The division of software engineers into database, financial, medical, commercial, real-time, distributed etc systems is wrong. In order to develop any application in these fields, the programmer needs skills from the other fields. For example, commercial, financial and medical applications may need database skills; financial, medical and real-time systems may need distributed programming skills etc.
There must be a separation of concerns: the business logic is the domain of the analyst, while the software logic that implements the business logic is the domain of the software engineer.