I'm more amused that Bill Gates' charity is mentioned at all. He has more money than the rest of the top ten richest people combined, but Warren Beaty gets the credit for donating the most, and Bill's donations are coming under scrutiny (his investments tend to be in industries that create the harm his donations only partially cure, so he often ends up doing bugger all other than turn a profit off the tax credits).
Danger isn't the issue, and if it were, current is vastly more dangerous than voltage. (Static discharges that you survive on a regular basis can be tens of millions of volts.) DC is much more troublesome to transport because of waste, not because it's a hazard. If you want to conserve power, then anything that wastes energy is a Bad Idea.
Well, AC is much easier to transport, for a start. DC is, in general, horrible for anything of size. I'd actually go the other way - increase the voltage to homes. The UK domestic power outlets are 240 volts, 50 Hz, 13 amps. Modern American homes have two independent sets of circuits, so that they can provide power to major appliances, as they only handle 120 volts each. In the end, you might waste anywhere from twice to eight times as much over the American home's electrical supply, through the use of much higher currents. (Power lost is proportional to current squared.)
What else can be done? Well, power cables are generally aluminium, which means you've high resistivity, which means lots of power being wasted. That one is tougher, as the really good conductors are all expensive and relatively rare. The current is also usually very high, which wastes power in transmission and in the transformers on both sides. You can only step the voltage up so far, though, before the air breaks down. Which can be a problem. Superconductors are unlikely to solve the problem, because of the way they work, and I can find nothing on the use of waveguides for this kind of heavy hauling. Looks like we'll have to wait for copper mining in the asteroid belt before this is significantly changed, but there may be some useful savings that can be made with the current system, if it were tuned better.
As for servers - well, generally they have some serious PSUs. Problem is, large power supply units are less efficient. The current designs scale amazingly badly. If that's an unsolvable, then you'll be better off with a great many very small PSUs. It's more expensive up-front, bulkier and heavier, but if you waste less, you waste less.
Cooling is also an issue. Servers tend to be air-cooled (not good) using fans that are badly positioned (often recycling the air from the outlets) and with absurd airflow (the same air is pulled over multiple components, making the cooling inefficient). Even most heavy gaming machines have the last two of those fixed and take less power to produce the same level of cooling as a result. And no gamer, however serious, has the kind of money that can be thrown at producing a quality solution for a top-of-the-line server, if a corporation really gave the kind of damn they want others to believe they give. Cooling is important, because as temperature goes up, resistance goes up and compute performance goes down (which means you burn more resources to merely stand still).
There are also an amazing number of insanely inefficient components in servers - mostly because they're cheap. It's more cost-effective to waste power than to build the damn thing right in the first place. Software is no better. Since when have you seen programmers look at the heat generated by an instruction, or compiled with the -Oheat option set? Since when have you seen a compiler that even HAD a -Oheat option?
Correction taken. CMYB (Cyan Magenta Yellow Black) is the standard for printing, yes. CMY is basically RGB rotated, so the printing press would then use a mix of the three primary colours for everything other than red, green or blue. The red, green and blue would need to be inks that were specifically designed to be very pure wavelengths, so they would not be your regular mixes by any stretch. The idea is that a composite red and a pure, monochromatic red should look like exactly the same red to the human eye. However, you want it such that a composite red and a monochrome red have different characteristics as far as the CCD is concerned.
You'll find an example CCD distribution for Sony's ICX285AL CCD on page 8 of the PDF. By comparison, the human eye's response looks very different, with different receptors in each case picking up what is nominally the same colour.
You are correct, this would be horribly expensive. I think I may have mentioned that myself, in my original post.:) It would double the cost of the machines and quadruple the cost of ink. At least. It would also halve the effective throughput.
Why not use a 4-colour printer, where you have red, green, blue and then some non-primary colour that is monochromatic? A 0 is represented by the colour mix, a 1 by the monochromatic version. Just as easy to discern, as the monochromatic pixels will be picked up differently (giving you essentially the same shift as their technique) but would involve ZERO distortion of the image. "Hard to discern" is not the same as "no visible change".
This method can trivially be extended to any number of non-primary colours, with sufficient distance from each other. At worst, you get four (any two mixed, plus all three, versus the monochromatic version of each), giving you four times the information that can be stored as a straight 1 or 0.
Still not enough? Then add two more states (1:3 monochrome:mixed and 2:3, respectively). This gives you 4 possible states, ie: 2 bits per pixel, ie: eight times the information of this colour distortion method, and I'm not changing a damned single pixel's value in the process.
Fujitsu's method would be much harder to extend, as it's lossy, by deliberately introducing distortions. Eventually, if you add enough distortion to an image, you'll wreck the image. My alternative is lossless. There is no noise. I'm merely substituting one method of producing a value for another method of producing exactly the same value. There is no noise. You can extend the method as far as technology is capable of distinguishing the types of composition, and the human eye is guaranteed to register ABSOLUTELY ZERO change, because value-wise, there has been absolutely zero change. You can remove the information from the image and replace it with new information as often as you like, because there has been nothing lost at any stage.
Am I some sort of genius? No, I just read the Madame Tetrachromat article on Slashdot a few years back and realized that you could use the same technique to deliberately hide information in plain sight. I also read articles explaining the limitations of RGB and why monitors cannot display all colours correctly to the human eye. By adding secondary colours in monochromatic form, you can produce a more "correct" image. By implication, the "right" colours would be hard for the eye to pick out but trivial for an RGB camera.
So why didn't Fujitsu go with this method? VHS versus Betamax. A six- or seven-colour printer might be superior in how much information it can encode. It might also be superior in the quality of colour printing it can do under normal conditions, perhaps by a significant margin in some cases. It would also be hard to sell to customers who already have perfectly good RGB printers and would be a lot more expensive. People use 6.1 megapixel digital cameras and then convert to highly-compressed JPEG format because they prefer to burn quality than burn money. This will be the same. People will accept the loss rather than pay more for a cleaner image. They always have.
(But I still think a true 7-colour printer would be damn amazing.)
To this day, I have never been able to understand the proof, first presented at the 300 Years of Gravity conference at Cambridge University in the mid 1980s. But apparently all Black Holes - regardless of mass, regardless of angular momentum, regardless of whether the singularity is a point or ring, regardless of any conditions whatsoever - have identical internal resistance, and if this resistance is calculated, it is fixed at 33 ohms.
If anyone can actually provide an explanation (not merely a proof), I'd love to see it myself.
Technically, you could argue that all USENET groups (and therefore Google, as Google carries newsgroups) are a form of social networking. All sites that provide blogs (such as Groklaw, Slashdot, The Guardian newspaper, the BBC News, CNN) would also be covered. Hell, the discussion pages on all Wikis are technically blogs, so there goes Wikipedia, friends and family. Many technical sites provide web archives of mailing lists and/or web-based forums, so there goes Sourceforge and any University or College that carries Open Source products. Many commercial software websites have online chat rooms for technical issues, so you'd have to eliminate those as well. Virtually all fansites for movies, TV shows, etc, also provide some kind of web-based posting service, so you'd end up kicking those out as well. Oh, and Craigslist would need to die, too.
By my reckoning, this leaves you with FTP sites that have no upload facility, the few remaining Gopher servers, and maybe the local taxi cab company.
To give the AC a chance (a small one, true, but a chance nonetheless), it is technically possible to manufacture a quantum state that is so violently unstable that it will literally explode, generating far more energy than was put in.
Yeah, yeah, violates the laws of thermodynamics, etc. Homer's going to hate this. It's called "Inflation Theory" and involves generating a bubble that grows fast enough that the quantum foam inside cannot recombine. As the quantum foam switches from being virtual to being physical, the probability of a particle being matter is greater than that of it being antimatter, which results in a net positive increase in the total matter/energy in the system.
Is this likely to happen? No. Is this likely to happen within the next couple of hundred years, even if we build a supercollider the diameter of the planet? No. The energy density required are stupendous. I recall seeing it put at the same as the total energy released from a hydrogen bomb packed into a cubic centimeter. Supernovae that produce neutron stars or magnetars do not produce high enough energy densities to kick in inflationary effects.
Would it matter if it did happen? Probably not. The only known strong candidate for an inflationary event was the Big Bang (and even that has been disputed). It has been suggested that when a supermassive Black Hole forms, the required energy density is reached, creating a "blister" or "bubble universe" attached to this one via the singularity. If that does indeed happen, the massive blast of energy would never reach this universe and therefore have zero impact on anything in it. Once the Black Hole evaporates, the bridge no longer exists (since it requires the singularity) and still nothing can cross.
The kind of Black Hole that the LHC could churn out - quantum black holes - barely qualify as black holes at all. Singularities have to have spin, but the net energy of a virtual particle (which a quantum black hole is) must be zero. I think it is most unlikely, then, that a qbh is even in the same class of objects as those formed from sufficiently large supernovae. There are other criteria for black holes (one of the oddest, IMHO, is that all black holes have an internal resistance of 33 ohms) and it would be extremely odd if any of them were satisfied by a qbh. As qbh's continuously form and unform throughout all quantum foam, and as we're not seeing any background Hawking Radiation, I would have to say that these are totally different animals and that they are not Black Holes at all in the same sense as their supermassive cousins.
Some flexibility/parallelizability (is that a word?) trade-off is done with the OpenMP extensions to C, and also in Universal Parallel C (UPC). These are decent-enough languages, for many things, but don't expect someone to write a clone of Linux using either. There are also languages specifically designed for parallel processing, such as Occam. KROC (a portable Occam compiler that works well with Linux) is great, if what you want to do is Occam programming. Hey, nothing wrong with the language - I love it - but it is not well-suited to some of the heavy-lifting people want parallelism for. No dynamic structures, for example. Memory management is not easy or nice under a parallel environment, but killing off malloc makes it a nightmare to write anything of any complexity.
In reality, people suing companies for misleading statements generally don't get very far. The vast majority of lawsuits against tobacco companies, where the case of deliberate deception is well-documented, are either thrown out on initial trial or thrown out on appeal. None at all have had any serious impact on either the industries or their advertising. "But it's so well-known now", some might cry. Yes, by sheer dumb luck, papers proving that information had been withheld by tobacco companies came to light. I'm not sure I like the idea of any kind of legal, ethical or moral code based purely on habitual luck.
I would essentially divide adverts and claims into one of five categories:
Those which are correct in their claims, as understood by the average person in the target audience, often enough to be of genuine use and benefit;
Those which are correct in their claims but are poorly presented and therefore not understood correctly;
Those which are genuinely believed correct by the claimant but, in fact, are not correct in fact;
Those which are nominally correct, but are intentionally misleading because of what is not said;
Those which are known falsehoods, intended to deceive a gullible and uninformed public by playing on their ignorance
Only the first deserves total protection under commercial free speech. (Incidently, for those who have forgotten, the EU is not subject to the US Constitution. Yet. That military invasion is scheduled for next week on thursday.)
The second and third deserve a mild reprimand and maybe some assistance in clearing up confusion. Nobody deserves to be censured for doing their best, but inaccuracies that can cause greater harm need to be prevented. This shouldn't require censorship. Mutual respect, a little compassion and a little assistance would be to the benefit of everyone - society, company and government alike. You cannot outlaw ignorance, but you can get someone a library card.
The fourth and fifth have no place in society. Nobody - nobody at all - is so skilled in all subjects and all disciplines that they can accurately identify such lies, and far too often, one lie is sufficiently lethal. A fully-qualified neurologist can call bullshit on an anti-depressent claim, but is completely unqualified to tell you if a car advert is being honest. A mechanical engineer might be able to tell you about the car advert, but are unlikely to have the material science expertise to judge wood-treatment products.
Society isn't willing to pay each and every member within it to hold a dozen PhDs, so should not be expecting individual members to have earned them. Society is only willing to pay for education to the level of a sixteen-year-old, in many countries, and should set the standards of what the members of society can fully comprehend accordingly. If it gave better education, those standards would rise accordingly, but if they are to be meaningful, they must also be achievable. Personally, I think that moving the baseline up to a masters level in at least one subject would go a long way to removing the harm of bad advertising, and that if education were to such a standard, laws on commercial free speech could be more relaxed. You can expect more of people when they're capable of giving more. However, as long as ignorance and lack of education is not only the norm but a cost-effective way to live in many countries, standards on commercial speech have to be sufficiently restrictive for these artificial sheep to be kept alive.
I guess it was meant in humour. Obviously a compiler that can't compile itself isn't much use as a compiler, so an automatically-parallelizing compiler could automatically parallelize itself. The herustics involved in parallelizing tend not to be amenable to much parallelizing and are NP-complete, which means you don't actually get very far down that road. Debugging, though, isn't an issue. The point is that the compiler does the lifting work, you only need to debug the method. The method will be something of the form: X depends on Y, so X cannot start until Y finishes, so Y is the largest contiguous block that can be truly parallel. Y can be split into parallel tasks N different ways. Y(1) takes t(1) clock cycles to finish, Y(2) takes t(2) clock cycles, and so on. First go round, fastest way wins.
You then profile, look at the overheads, and eliminate certain possibilities from the list. You then repeat the method. Basic herustics. Nothing complicated in herustics - they're actually quite easy to debug. Much gentler on the brain cells, they're just slooooow. Oh, and the compiler should be using various sizes of X and Y, as some functions in the code may be subject to coarse-grain parallelism, others will work better with fine-grain. The compiler has to try very few possibilities to get something that works, but has to try an impossibly large number to get something that works at nearly the speeds of well-written hand-turned code.
Debugging has never been a real issue in programming, although those wanting to be paid more will tell you it is. In the same way that Software Engineering espouses programming from a formal specification, it is perfectly possible to turn any existing sequential program into a formal specification. How does this help? Because it is much easier to prove a specification correct than it is to prove a program correct. By producing a specification that describes a program exactly as it is written, any bug in the program will also be in the specification, in exactly the same place. That makes it much easier to find and therefore debug.
Specifications and programs are one and the same thing, if they are complete and correct. It's a transform, no different from FFTs, Laplace, or cartesian-to/from-polar mappings. Transform into the easiest domain to work in, then transform back into the doman the computer will find easiest to work in. This isn't hard, guys.
And this goes back to the automatic parallelization. Sequential logic and parallel logic must ultimately be the same, since the programs do the same thing. Therefore, one is just a transform of the other. Understand that and there is no problem. You want to debug sequential code? Sure, apply the transform. You want to run parallel code? Sure, apply the transform. If you have a problem with transforms, practice on a slide-rule for a bit.
This problem was "solved" (on paper) in the mid 1970s. Instead of writing a highly complex parallel program that you can't readily debug, you write a program that the computer can generate the parallel code for. Provided the compiler is correct, the sequential source and the parallel binary will be functionally the same, even though (at the instruction level) they might actually be quite different. What's more, if you compile the sequential source into a sequential binary, the sequential binary will behave exactly the same as the parallel version (only much slower).
Any reproducable bug in the parallel binary will be reproducable given the same set of inputs on the sequential binary, which you can then debug as you have the corresponding sequential source code.
So why isn't this done? Automagically parallelizing compilers (as opposed to compilers that merely parallelize what you tell them to parallelize) are extremely hard to write. Until the advent of Beowulf clusters, low-cost SMP and low-cost multi-core CPUs, there simply haven't been enough machines out there capable of sufficiently complex parallelism to make it worth the cost. Simply make a complex-enough inter-process communication system, with a million ways to signal and a billion types of events. Any programmer who complains they can't use that mess can then be burned at the stake for their obvious lack of appreciation for all these fine tools.
Have you ever run GCC with maximum profiling over a program, tested the program, then re-run GCC using the profiling output as input to the optimizer? It's painful. Now, to parallelize, the compiler must automatically not just do one trivial run but get as much coverage as possible, and then not just tweak some optimizer flags but run some fairly hefty herustics to guess what a parallel form might look like. And it will need to do this not just the once, but many times over to find a form that is faster than the sequential version and does not result in any timing bugs that can be picked up by automatic tools.
The idea of spending a small fortune on building a compiler that can actually do all that reliably, effectively, portably and quickly, when the total number of purchasers will be in the double or treble digits at most - say what you like about the blatant stupidity rife in commercial software, but they know a bad bet when they see one. You will never see something with that degree of intelligence come out of PCG or Green Hills - if they didn't go bankrupt making it, they'd go bankrupt from the unsold stock, and they know it.
What about a free/open source version? GCC already has some of the key ingredients needed, after all. Aside from the fact that the GCC developers are not known for their speed or responsiveness - particularly to arcane problems - it would take many days to compile even SuperTuxKart and probably months when it came to X11, glibc or even the Linux kernel. This is far longer than the lifetime of most of the source packages - they've usually been patched on that sort of timeframe at least once. The resulting binaries might even be truly perfectly parallel, but they'd still be obsolete. You'd have to do some very heavy research into compiler theory to get GCC fast enough and powerful enough to tackle such problems within the lifetime of the product being compiled. Hey, I'm not saying GCC is bad - as a sequential, single-pass compiler, it's pretty damn good. At the Supercomputer shows, GCC is used as the benchmark to beat, in terms of code produced. The people at such shows aren't easily impressed and would not take boasts of producing binaries a few percent faster than GCC unless that meant a hell of a lot. But I'm not convinced it'll be the launchpad for a new generation of automatic parallelizing compilers. I think that's going to require someone writing such a compiler from scratch.
Automatic parallelization is unlikely to happen in my lifetime, even though the early research was taking place at about the time I first started primary school. It's a hard problem that isn't being made easier by having been largely avoided.
When I saw the title "A New Approach to Mutating Malware", I was looking forward to an excellent piece on how to develop polymorphic destructive code, or maybe a way to infect viruses with Polonium-210. But all I got was some cheesy article on how to use a network intrusion detector to shut down malware. Boooring.
...in tracking down the plans for the DH98 DeHavilland Mosquito was that it took nearly ten years of querying every known hobbyist and vintage aircraft group known to man, virtually every museum with a DH98, British Aerospace (the last company to own a flying Mosquito and the owner of the DeHavilland intellectual property) and a group that now sells reproduction DeHavilland aircraft.
Ten years. And that's for a plane that effectively stopped existing three or four years before I even started the quest.
(In the end, I did obtain some very basic plans for the airframe and wings, from the Windsor Bomber Group, but only because they wanted me to do some data conversion for them. I still don't have nearly enough information to even build a basic flight sim model.)
For more "in demand" designs - stuff that would have enough value to hobbyists to be able to bleed 'em dry for parts to keep to FAA safety standards - there is not a hope in hell you'll ever see those plans, whatever the FCC may rule. When it's a choice beyween your life and their wallet, it doesn't take a genius to figure out which the corps are going to side with.
People should also realize that it's non-trivial stuff. I remember when Esther Ranzen's "That's Life" was on the BBC - more than a few shows involved investigative reporting on malpractice in cosmetic surgery. Then, there was the case in the past few days in the UK of a teen dying from plastic surgery that went wrong. And not that long ago, there was a scandal in the US, where it turns out that basements are being turned into plastic surgery operating theaters for the poor and the illegals.
At this point in time, I don't know what anyone can do. More restrictions will simply create more deaths and injuries at bargain prices. Fewer restrictions will mean the incompetent at higher levels will destroy more lives. The medical profession has no interest in policing itself - no profession ever does. The insurance agencies pony up the cost for the malpractice, and then charge it to the insured, so neither the doctor nor the insurance company suffer any real consequences in the whole deal. The press only give a damn if it brings in advertising, and most advertising is about products and services to make you look good. Guess what isn't going to get reported on in any depth. "Just a few bad apples. Nothing to see here."
Nothing meaningful will come of all this, and the whole thing will repeat next year. Don't bother writing a new story on it, when it happens - just dupe the one we've got, but change the links.
Uh, no. Any organization that does not take IT security seriously will fare badly until the attack vector is not only pointed out to them, but is used to swat them around the ear until they get the message. The DoD is sometimes in this category, and sometimes it isn't. They do manage to go all-out whatever category they happen to be in in that field for that week, so when they do badly, it's grotesquely obvious. When they do well, such as when the BASS group did their Internet Security Audit, it's much less obvious but equally important.
Bear in mind that there are a few billion zombies out there and most are on corporate and home machines, not military installations. The SuperBowl's website was hardly a Government facility, and the numerous tales of credit card number downloads from e-commerce sites were hardly the fault of the Executive Branch. They were the fault of much smaller organizations who suffered from significant blindness on security.
(The only thing I can blame the Government for, for the bulk of attacks over the Internet, is that it is still legal to have sensitive personal information on an unsecured machine. If it were outlawed to place credit card numbers on vulnerable systems, the number of reasons for such attacks would plummet and the number of attacks that cause actual - as opposed to accountant's fictional - harm would drop to near-zero.)
With closed source and "security through obscurity", you do not know - nor have any means of knowing - who is examining the code, their qualifications, their abilities or their resources. The same is equally true of open source. The difference is that, for closed source, you eliminate your ability to either compensate for, or exploit, this unofficial work. It will happen - code is stolen all the time, even from companies as closed-up as Cisco - but even to acknowledge it could cause irreparable harm. The number of well-publicized cases is very small, compared to the number of cases that are shown later to have happened.
Closed-source, then, offers no meaningful protection to the companies involved. Precisely because they have no objection to stealing from competitors, corporations who rely on trade secrets and security through obscurity invalidate the very model they are based upon. If you work on the basis of all people being corruptible, you cannot also work on the basis of people not being corruptible. If you abuse the trust of others, you will inevitably be subjct to the abuse of trust.
Open source doesn't guarantee that the eyes looking at the code are of any particular quality, or that they'll give information back, or that they won't steal the code anyway. But at least you know the possibilities and accept them, you don't pretend they don't exist.
In the end, the difference between the two models is that one deludes the managers into believing they have something nobody else has. Open Source has its own delusions - that the developers can do a damn thing if a corporation takes the code, patents it, and sues said developers into oblivion, for example. One could argue that both are virtually unsurvivable disasters and that you might as well go for the one that gets you the money and the groupies. On the other hand, the reality is that programmers don't make money (managers do) and the last geek known to have had groupies was Socrates.
However, I would argue that since 99% of people will need to buy a new high-end machine to run Vista, the added expense of those people buying an encryption processor is simply not significant in comparison to the net cost. In consequence, the design constraints should not be to what can be done in software alone, but what can be done within a reasonable added cost per unit. If anything, the hardware manufacturers should love that, because it forces the other 1% to buy new machines as well. It's no skin off their teeth, as people WILL buy the machines as the users are locked into that solution. The users have no effective choice.
You are correct that encryption does not solve anything, and that it just changes where the problem is. The problem-spaces are not necessarily of equal complexity, and if the encryption method (including passkey generation) is any good, the complexity of the decrypt is significant. The problem, as you correctly note, is that many people choose stupid passkeys.
The problem I was drawing attention to is that if you can examine the disk and obtain significant information about the data on the system, then you can determine if an attempt to break the security is successful, because you expose the same information you already have. It may also, in some circumstances, eliminate the need to decrypt the disk at all. (If what you want are images, say, then the images will be visible even with the disk in fully encrypted form.) If decryption is actually needed, it may also weaken the strength of the passkey, as you may be able to obtain significant information in both encrypted and decrypted forms, or encrypted using a derivable successor encryption key. The latter is a big part of how Enigma was broken.
This is not the forensics that was being discussed, that is true. This is, however, a major problem that ALL block encryption methods with weak chaining with bulk data will suffer from.
Yes, no, maybe. If you look at the claims made by the 2DEM developers, you can discover some information from any encrypted file/disk that uses a block cipher that uses a simple chaining mode. There is no reason to believe Microsoft used a particularly sophisticated encryption mode, there is no reason to believe that other whole-disk systems use only simple chaining modes.
I was thinking more along the lines of Emma Peel's quip to beware the diabolical masterminds, but I guess Pinky and The Brain works just as well here.:)
Heh! I'm less an OSS afficado (although that label still definitely applies to me) as I am an information afficadio. In the end, OSS is merely one more model of information dispersal, no matter what any person's opinion on OSS happens to be. The key is that it's all about information. Without that, OSS has no inherent value. It's just a bunch of magnetic states on some iron oxide.
Would you have any objection to me adding some references to your project on a few OSS project sites?
I'm more amused that Bill Gates' charity is mentioned at all. He has more money than the rest of the top ten richest people combined, but Warren Beaty gets the credit for donating the most, and Bill's donations are coming under scrutiny (his investments tend to be in industries that create the harm his donations only partially cure, so he often ends up doing bugger all other than turn a profit off the tax credits).
I don't agree. Bullets have feelings too and we should not subject them to such a fate.
Danger isn't the issue, and if it were, current is vastly more dangerous than voltage. (Static discharges that you survive on a regular basis can be tens of millions of volts.) DC is much more troublesome to transport because of waste, not because it's a hazard. If you want to conserve power, then anything that wastes energy is a Bad Idea.
What else can be done? Well, power cables are generally aluminium, which means you've high resistivity, which means lots of power being wasted. That one is tougher, as the really good conductors are all expensive and relatively rare. The current is also usually very high, which wastes power in transmission and in the transformers on both sides. You can only step the voltage up so far, though, before the air breaks down. Which can be a problem. Superconductors are unlikely to solve the problem, because of the way they work, and I can find nothing on the use of waveguides for this kind of heavy hauling. Looks like we'll have to wait for copper mining in the asteroid belt before this is significantly changed, but there may be some useful savings that can be made with the current system, if it were tuned better.
As for servers - well, generally they have some serious PSUs. Problem is, large power supply units are less efficient. The current designs scale amazingly badly. If that's an unsolvable, then you'll be better off with a great many very small PSUs. It's more expensive up-front, bulkier and heavier, but if you waste less, you waste less.
Cooling is also an issue. Servers tend to be air-cooled (not good) using fans that are badly positioned (often recycling the air from the outlets) and with absurd airflow (the same air is pulled over multiple components, making the cooling inefficient). Even most heavy gaming machines have the last two of those fixed and take less power to produce the same level of cooling as a result. And no gamer, however serious, has the kind of money that can be thrown at producing a quality solution for a top-of-the-line server, if a corporation really gave the kind of damn they want others to believe they give. Cooling is important, because as temperature goes up, resistance goes up and compute performance goes down (which means you burn more resources to merely stand still).
There are also an amazing number of insanely inefficient components in servers - mostly because they're cheap. It's more cost-effective to waste power than to build the damn thing right in the first place. Software is no better. Since when have you seen programmers look at the heat generated by an instruction, or compiled with the -Oheat option set? Since when have you seen a compiler that even HAD a -Oheat option?
You'll find an example CCD distribution for Sony's ICX285AL CCD on page 8 of the PDF. By comparison, the human eye's response looks very different, with different receptors in each case picking up what is nominally the same colour.
You are correct, this would be horribly expensive. I think I may have mentioned that myself, in my original post. :) It would double the cost of the machines and quadruple the cost of ink. At least. It would also halve the effective throughput.
This method can trivially be extended to any number of non-primary colours, with sufficient distance from each other. At worst, you get four (any two mixed, plus all three, versus the monochromatic version of each), giving you four times the information that can be stored as a straight 1 or 0.
Still not enough? Then add two more states (1:3 monochrome:mixed and 2:3, respectively). This gives you 4 possible states, ie: 2 bits per pixel, ie: eight times the information of this colour distortion method, and I'm not changing a damned single pixel's value in the process.
Fujitsu's method would be much harder to extend, as it's lossy, by deliberately introducing distortions. Eventually, if you add enough distortion to an image, you'll wreck the image. My alternative is lossless. There is no noise. I'm merely substituting one method of producing a value for another method of producing exactly the same value. There is no noise. You can extend the method as far as technology is capable of distinguishing the types of composition, and the human eye is guaranteed to register ABSOLUTELY ZERO change, because value-wise, there has been absolutely zero change. You can remove the information from the image and replace it with new information as often as you like, because there has been nothing lost at any stage.
Am I some sort of genius? No, I just read the Madame Tetrachromat article on Slashdot a few years back and realized that you could use the same technique to deliberately hide information in plain sight. I also read articles explaining the limitations of RGB and why monitors cannot display all colours correctly to the human eye. By adding secondary colours in monochromatic form, you can produce a more "correct" image. By implication, the "right" colours would be hard for the eye to pick out but trivial for an RGB camera.
So why didn't Fujitsu go with this method? VHS versus Betamax. A six- or seven-colour printer might be superior in how much information it can encode. It might also be superior in the quality of colour printing it can do under normal conditions, perhaps by a significant margin in some cases. It would also be hard to sell to customers who already have perfectly good RGB printers and would be a lot more expensive. People use 6.1 megapixel digital cameras and then convert to highly-compressed JPEG format because they prefer to burn quality than burn money. This will be the same. People will accept the loss rather than pay more for a cleaner image. They always have.
(But I still think a true 7-colour printer would be damn amazing.)
If anyone can actually provide an explanation (not merely a proof), I'd love to see it myself.
By my reckoning, this leaves you with FTP sites that have no upload facility, the few remaining Gopher servers, and maybe the local taxi cab company.
Yeah, yeah, violates the laws of thermodynamics, etc. Homer's going to hate this. It's called "Inflation Theory" and involves generating a bubble that grows fast enough that the quantum foam inside cannot recombine. As the quantum foam switches from being virtual to being physical, the probability of a particle being matter is greater than that of it being antimatter, which results in a net positive increase in the total matter/energy in the system.
Is this likely to happen? No. Is this likely to happen within the next couple of hundred years, even if we build a supercollider the diameter of the planet? No. The energy density required are stupendous. I recall seeing it put at the same as the total energy released from a hydrogen bomb packed into a cubic centimeter. Supernovae that produce neutron stars or magnetars do not produce high enough energy densities to kick in inflationary effects.
Would it matter if it did happen? Probably not. The only known strong candidate for an inflationary event was the Big Bang (and even that has been disputed). It has been suggested that when a supermassive Black Hole forms, the required energy density is reached, creating a "blister" or "bubble universe" attached to this one via the singularity. If that does indeed happen, the massive blast of energy would never reach this universe and therefore have zero impact on anything in it. Once the Black Hole evaporates, the bridge no longer exists (since it requires the singularity) and still nothing can cross.
The kind of Black Hole that the LHC could churn out - quantum black holes - barely qualify as black holes at all. Singularities have to have spin, but the net energy of a virtual particle (which a quantum black hole is) must be zero. I think it is most unlikely, then, that a qbh is even in the same class of objects as those formed from sufficiently large supernovae. There are other criteria for black holes (one of the oddest, IMHO, is that all black holes have an internal resistance of 33 ohms) and it would be extremely odd if any of them were satisfied by a qbh. As qbh's continuously form and unform throughout all quantum foam, and as we're not seeing any background Hawking Radiation, I would have to say that these are totally different animals and that they are not Black Holes at all in the same sense as their supermassive cousins.
Some flexibility/parallelizability (is that a word?) trade-off is done with the OpenMP extensions to C, and also in Universal Parallel C (UPC). These are decent-enough languages, for many things, but don't expect someone to write a clone of Linux using either. There are also languages specifically designed for parallel processing, such as Occam. KROC (a portable Occam compiler that works well with Linux) is great, if what you want to do is Occam programming. Hey, nothing wrong with the language - I love it - but it is not well-suited to some of the heavy-lifting people want parallelism for. No dynamic structures, for example. Memory management is not easy or nice under a parallel environment, but killing off malloc makes it a nightmare to write anything of any complexity.
I would essentially divide adverts and claims into one of five categories:
Only the first deserves total protection under commercial free speech. (Incidently, for those who have forgotten, the EU is not subject to the US Constitution. Yet. That military invasion is scheduled for next week on thursday.)
The second and third deserve a mild reprimand and maybe some assistance in clearing up confusion. Nobody deserves to be censured for doing their best, but inaccuracies that can cause greater harm need to be prevented. This shouldn't require censorship. Mutual respect, a little compassion and a little assistance would be to the benefit of everyone - society, company and government alike. You cannot outlaw ignorance, but you can get someone a library card.
The fourth and fifth have no place in society. Nobody - nobody at all - is so skilled in all subjects and all disciplines that they can accurately identify such lies, and far too often, one lie is sufficiently lethal. A fully-qualified neurologist can call bullshit on an anti-depressent claim, but is completely unqualified to tell you if a car advert is being honest. A mechanical engineer might be able to tell you about the car advert, but are unlikely to have the material science expertise to judge wood-treatment products.
Society isn't willing to pay each and every member within it to hold a dozen PhDs, so should not be expecting individual members to have earned them. Society is only willing to pay for education to the level of a sixteen-year-old, in many countries, and should set the standards of what the members of society can fully comprehend accordingly. If it gave better education, those standards would rise accordingly, but if they are to be meaningful, they must also be achievable. Personally, I think that moving the baseline up to a masters level in at least one subject would go a long way to removing the harm of bad advertising, and that if education were to such a standard, laws on commercial free speech could be more relaxed. You can expect more of people when they're capable of giving more. However, as long as ignorance and lack of education is not only the norm but a cost-effective way to live in many countries, standards on commercial speech have to be sufficiently restrictive for these artificial sheep to be kept alive.
You then profile, look at the overheads, and eliminate certain possibilities from the list. You then repeat the method. Basic herustics. Nothing complicated in herustics - they're actually quite easy to debug. Much gentler on the brain cells, they're just slooooow. Oh, and the compiler should be using various sizes of X and Y, as some functions in the code may be subject to coarse-grain parallelism, others will work better with fine-grain. The compiler has to try very few possibilities to get something that works, but has to try an impossibly large number to get something that works at nearly the speeds of well-written hand-turned code.
Debugging has never been a real issue in programming, although those wanting to be paid more will tell you it is. In the same way that Software Engineering espouses programming from a formal specification, it is perfectly possible to turn any existing sequential program into a formal specification. How does this help? Because it is much easier to prove a specification correct than it is to prove a program correct. By producing a specification that describes a program exactly as it is written, any bug in the program will also be in the specification, in exactly the same place. That makes it much easier to find and therefore debug.
Specifications and programs are one and the same thing, if they are complete and correct. It's a transform, no different from FFTs, Laplace, or cartesian-to/from-polar mappings. Transform into the easiest domain to work in, then transform back into the doman the computer will find easiest to work in. This isn't hard, guys.
And this goes back to the automatic parallelization. Sequential logic and parallel logic must ultimately be the same, since the programs do the same thing. Therefore, one is just a transform of the other. Understand that and there is no problem. You want to debug sequential code? Sure, apply the transform. You want to run parallel code? Sure, apply the transform. If you have a problem with transforms, practice on a slide-rule for a bit.
Any reproducable bug in the parallel binary will be reproducable given the same set of inputs on the sequential binary, which you can then debug as you have the corresponding sequential source code.
So why isn't this done? Automagically parallelizing compilers (as opposed to compilers that merely parallelize what you tell them to parallelize) are extremely hard to write. Until the advent of Beowulf clusters, low-cost SMP and low-cost multi-core CPUs, there simply haven't been enough machines out there capable of sufficiently complex parallelism to make it worth the cost. Simply make a complex-enough inter-process communication system, with a million ways to signal and a billion types of events. Any programmer who complains they can't use that mess can then be burned at the stake for their obvious lack of appreciation for all these fine tools.
Have you ever run GCC with maximum profiling over a program, tested the program, then re-run GCC using the profiling output as input to the optimizer? It's painful. Now, to parallelize, the compiler must automatically not just do one trivial run but get as much coverage as possible, and then not just tweak some optimizer flags but run some fairly hefty herustics to guess what a parallel form might look like. And it will need to do this not just the once, but many times over to find a form that is faster than the sequential version and does not result in any timing bugs that can be picked up by automatic tools.
The idea of spending a small fortune on building a compiler that can actually do all that reliably, effectively, portably and quickly, when the total number of purchasers will be in the double or treble digits at most - say what you like about the blatant stupidity rife in commercial software, but they know a bad bet when they see one. You will never see something with that degree of intelligence come out of PCG or Green Hills - if they didn't go bankrupt making it, they'd go bankrupt from the unsold stock, and they know it.
What about a free/open source version? GCC already has some of the key ingredients needed, after all. Aside from the fact that the GCC developers are not known for their speed or responsiveness - particularly to arcane problems - it would take many days to compile even SuperTuxKart and probably months when it came to X11, glibc or even the Linux kernel. This is far longer than the lifetime of most of the source packages - they've usually been patched on that sort of timeframe at least once. The resulting binaries might even be truly perfectly parallel, but they'd still be obsolete. You'd have to do some very heavy research into compiler theory to get GCC fast enough and powerful enough to tackle such problems within the lifetime of the product being compiled. Hey, I'm not saying GCC is bad - as a sequential, single-pass compiler, it's pretty damn good. At the Supercomputer shows, GCC is used as the benchmark to beat, in terms of code produced. The people at such shows aren't easily impressed and would not take boasts of producing binaries a few percent faster than GCC unless that meant a hell of a lot. But I'm not convinced it'll be the launchpad for a new generation of automatic parallelizing compilers. I think that's going to require someone writing such a compiler from scratch.
Automatic parallelization is unlikely to happen in my lifetime, even though the early research was taking place at about the time I first started primary school. It's a hard problem that isn't being made easier by having been largely avoided.
When I saw the title "A New Approach to Mutating Malware", I was looking forward to an excellent piece on how to develop polymorphic destructive code, or maybe a way to infect viruses with Polonium-210. But all I got was some cheesy article on how to use a network intrusion detector to shut down malware. Boooring.
Ten years. And that's for a plane that effectively stopped existing three or four years before I even started the quest.
(In the end, I did obtain some very basic plans for the airframe and wings, from the Windsor Bomber Group, but only because they wanted me to do some data conversion for them. I still don't have nearly enough information to even build a basic flight sim model.)
For more "in demand" designs - stuff that would have enough value to hobbyists to be able to bleed 'em dry for parts to keep to FAA safety standards - there is not a hope in hell you'll ever see those plans, whatever the FCC may rule. When it's a choice beyween your life and their wallet, it doesn't take a genius to figure out which the corps are going to side with.
At this point in time, I don't know what anyone can do. More restrictions will simply create more deaths and injuries at bargain prices. Fewer restrictions will mean the incompetent at higher levels will destroy more lives. The medical profession has no interest in policing itself - no profession ever does. The insurance agencies pony up the cost for the malpractice, and then charge it to the insured, so neither the doctor nor the insurance company suffer any real consequences in the whole deal. The press only give a damn if it brings in advertising, and most advertising is about products and services to make you look good. Guess what isn't going to get reported on in any depth. "Just a few bad apples. Nothing to see here."
Nothing meaningful will come of all this, and the whole thing will repeat next year. Don't bother writing a new story on it, when it happens - just dupe the one we've got, but change the links.
A clickable map of the Linux kernel. Who says Linux is a rat's nest of calls? I can clearly see it's a dinner plate.
Bear in mind that there are a few billion zombies out there and most are on corporate and home machines, not military installations. The SuperBowl's website was hardly a Government facility, and the numerous tales of credit card number downloads from e-commerce sites were hardly the fault of the Executive Branch. They were the fault of much smaller organizations who suffered from significant blindness on security.
(The only thing I can blame the Government for, for the bulk of attacks over the Internet, is that it is still legal to have sensitive personal information on an unsecured machine. If it were outlawed to place credit card numbers on vulnerable systems, the number of reasons for such attacks would plummet and the number of attacks that cause actual - as opposed to accountant's fictional - harm would drop to near-zero.)
DeeDee!!! How many times must I tell you not to press any buttons?
Closed-source, then, offers no meaningful protection to the companies involved. Precisely because they have no objection to stealing from competitors, corporations who rely on trade secrets and security through obscurity invalidate the very model they are based upon. If you work on the basis of all people being corruptible, you cannot also work on the basis of people not being corruptible. If you abuse the trust of others, you will inevitably be subjct to the abuse of trust.
Open source doesn't guarantee that the eyes looking at the code are of any particular quality, or that they'll give information back, or that they won't steal the code anyway. But at least you know the possibilities and accept them, you don't pretend they don't exist.
In the end, the difference between the two models is that one deludes the managers into believing they have something nobody else has. Open Source has its own delusions - that the developers can do a damn thing if a corporation takes the code, patents it, and sues said developers into oblivion, for example. One could argue that both are virtually unsurvivable disasters and that you might as well go for the one that gets you the money and the groupies. On the other hand, the reality is that programmers don't make money (managers do) and the last geek known to have had groupies was Socrates.
However, I would argue that since 99% of people will need to buy a new high-end machine to run Vista, the added expense of those people buying an encryption processor is simply not significant in comparison to the net cost. In consequence, the design constraints should not be to what can be done in software alone, but what can be done within a reasonable added cost per unit. If anything, the hardware manufacturers should love that, because it forces the other 1% to buy new machines as well. It's no skin off their teeth, as people WILL buy the machines as the users are locked into that solution. The users have no effective choice.
The problem I was drawing attention to is that if you can examine the disk and obtain significant information about the data on the system, then you can determine if an attempt to break the security is successful, because you expose the same information you already have. It may also, in some circumstances, eliminate the need to decrypt the disk at all. (If what you want are images, say, then the images will be visible even with the disk in fully encrypted form.) If decryption is actually needed, it may also weaken the strength of the passkey, as you may be able to obtain significant information in both encrypted and decrypted forms, or encrypted using a derivable successor encryption key. The latter is a big part of how Enigma was broken.
This is not the forensics that was being discussed, that is true. This is, however, a major problem that ALL block encryption methods with weak chaining with bulk data will suffer from.
Yes, no, maybe. If you look at the claims made by the 2DEM developers, you can discover some information from any encrypted file/disk that uses a block cipher that uses a simple chaining mode. There is no reason to believe Microsoft used a particularly sophisticated encryption mode, there is no reason to believe that other whole-disk systems use only simple chaining modes.
I was thinking more along the lines of Emma Peel's quip to beware the diabolical masterminds, but I guess Pinky and The Brain works just as well here. :)
Would you have any objection to me adding some references to your project on a few OSS project sites?