Scientists (by )

I've been reading a book lately called "The Brain that Changes Itself", which discusses a once-controversial theory that the adult brain can rewire itself in the same manner as the developing brain, with the main difference being that it just requires more effort to focus the attention. It used to be believed that once the brain had finished developing, its structure and function was fixed. However, it turns out that, with the right approach, the victims of strokes and the like can retrain their brain to perform the lost functions with different bits of neural tissue.

But that's not what I'm writing about today.

One of the things that has struck me in the book's account of how the neurbiologists rejected this controversial idea, along with previous impressions I had obtained from other sources, is that the academic community is riddled with idiots who reject evidence that contradicts their beliefs about their field.

To see why this is crazy, look at it like this. Science is, largely, about finding the underlying truths of the Universe. The problem is that these underlying truths can rarely be directly observed (and we've figured most of the ones that can out by now). One cannot directly percieve an electron, but one can deduce its existance by perceiving the effect of an electron gun in an evacuated chamber pointed at a phosphorescent screen. But there are multiple interpretations of that experiment - perhaps there are tiny charged particles being released which stimulate the screen into producing light... or perhaps the electron gun actually causes the metal of the negative electrode to ablate and the resulting ion cloud then condenses into an invisibly thin thread which coils out across the vacuum until it touches the screen, whereupon electricity flows directly down the wire and causes the spot of light. Perhaps the vacuum is required, not because air inhibits the free motion of electrons, but because the air disrupts the formation of the thread.

Yet we can rule out the thread theory in a number of ways, and there are other experiments that show that electrons are discrete charged particles. It's the weight of a whole heap of evidence that all reinforce the correct theory and disprove all the alternative theories. However, one can never be entirely sure that another theory has yet to be discovered, which all the existing experiments fail to disprove - but which leads to the development of an experiment which disproves the electron theory, and reinforces the new theory. Perhaps there are no electrons; but the "electron theory" has provided us with useful predictions, and nobody has yet found fault with it. So we stick with it. Even if it's wrong, it's useful - and if we ever find it's wrong, that will give us the clues required to find a better theory.

But there are levels of deduction involved here. We directly observe the construction of electron guns and the appearance of spots of light with our eyes. We apply previously reinforced beliefs that the electrical power supply we connect the electron gun to will provide a voltage, and that the electron gun will therefore emit electrons. We observe the appearance of a spot of light, and therefore conclude that the electrons flew through the chamber and caused the spot of light. And from that, combined with existing knowledge about the nature of light and matter, we construct a theory that electrons can travel through a vacuum then cause phosphorescent screens to glow. Each level of further deduction is less certain then those that it builds upon, since its truth depends on their truth, plus a further step of deduction - which might be wrong in itself.

So what do we do when new evidence comes and appears to disprove our theory? Say somebody publishes the results of an experiment that show that, if a kitten is within one metre of the chamber, the spot of light on the screen grows into the kanjii for "potato". The electron theory does not predict this. Have we disproved the theory of electrons? Or have we merely discovered that kittens emit complicated high-frequency magnetic fields that disturb the paths of nearby electron beams? Well, I'm sure further experiments would be performed, surrounding kittens with Hall sensors and SQUIDs and the like, but for now, let's imagine we only have that one data point to look at.

Electron theorists would probably question the validity of the experiment at all. For a start, it is a leap of faith that the experiment was set up correctly. Perhaps the electron gun itself is defective and projects the kanjii symbol directly, and the kitten has nothing to do with it. Perhaps there are coils under the bench generating magnetic fields that steer the beam to draw the symbol, either accidentally or as part of a deliberate academic prank. In this case, with seemingly unrelated objects (kittens) having suspiciously unexpected consequences (kanjii characters), that is a distinct possibility, so the kitten theorists would be under additional burden of proof to recreate the experiment - and to ask electron theorists to defend their theory by recreating the experiment themselves to show that it does not occur with "trusted" equipment. For sure, the academic community does need some level of protection from a "denial of service" attack from charlatans assaulting it with fraudulent claims that have to be tediously experimentally dismissed. There is scope to accidentally perform flawed experiments due to overlooking some factor or failing to test all the equipment used for defects, leading to honest results that turn out to be misleading. This gives some credibility to the concept that some data can be rejected out-of-hand for contradicting widely-held theories, but it is all too easy to take conformist censorship at this level too far and reject evidence that actually shows flaws in currently-sacred theories.

But what if the conflicting evidence is less silly, or it is independently and widely confirmed in other experiments, showing there is definitely some effect at work? Perhaps kittens do emit mysterious high-frequency magnetic fields - in which case, our theory of electrons is still valid; it's just our theory of kittens which was wrong. As physicists are often more familiar with electrons than kittens, it's easy for them to defend their electron theory and question the researcher's grasp of kitten theory, thereby making it somebody else's problem. Meanwhile, biologists asked to defend the theory that mammal tissue can't generate intense, high frequency, magnetic fields might point to excellent arguments about the maximum rates of charge movements in various tissues, and tell the physicsts that their electron theory must be all wrong. At least we now have some kind of debate, rather than outright censorship, but - particularly in cross-specialisation problems like this one - it's all too easy for both sides to just ignore the evidence and blame it on the other.

But what makes scientists so defensive? Good scientists realise that the data is all we can be sure about (and, even then, we must be careful of experimental errors, or failing to control for unknown influences). They treat theories as temporary affairs, which suffice until they are found wanting, or something better is found. Where does this academic Nazism emerge, where academics will often jump immediately to questioning the motives and competence of people who hold views that contradict the mainstream, leading to the mainstream remaining mainstream long after the weight of contradicting evidence becomes overpowering?

I think a part of the problem is the fact that scientists with new ideas have to fight so hard to get them heard over the mainstream in the first place - they find it hard to give up the fighting mentality once they've been accepted.

Another part of the problem might be human nature - scientists are taught the existing lore of their field in lectures where they soak it all up, and probably record it in their minds as unassailable truth. I suspect they are much more open to reconsider theories they encounter as "new" after having lived, for a while, in an academic world in which no theory explaining the behaviour in question had yet emerged. Theories considered "complete" when they were learnt are probably rarely questioned.

Cloud Storage (by )

Currently, you can go to various providers and buy online storage capacity (IMHO, rsync.net is best, after research I did to find an offsite backup host for work). It's more expensive than a hard disk in your computer, and miles slower, but it has one brilliant advantage: it's remote. So it's perfect for backups.

And that's the heart of a free market - storage is cheap to the cloud providers (they just buy disks, and in bulk at that), but their storage has more value to you than your own storage because of it's remoteness. So they can rent it to you at a markup, and you get a benefit, and everyone is happy. Money flows, the economy grows, and one day we'll get to have affordable space tourism et cetera.

But large, centralised, cloud storage providers are attractive targets for people who want to steal data. They become centralised points of failure; if they go bankrupt, lots of people lose their backups. Therefore, it's smart to do your backups to more than one of them, just in case. But that means setting up your systems to talk to each one's interfaces, arranging payment and agreeing to terms and conditions with them all individually, and so on.

Surely this state of affairs can be improved? With ADVANCED TECHNOLOGY?

Well, I think it can, and here's how. Read more »

Lords of a new economy (by )

Pondering Bitcoin, I recently opined:

Who sets the difficulty of the puzzle and all that? The computers in the network do - when the system was created, rules were agreed, and written into the software. As everyone runs software following those rules, anybody solving easier puzzles or trying to award themselves more bounty for doing so will have their bounty-claiming transaction rejected as invalid. To loosen the rules, a majority of the computers in the system will all need to accept the new rules - so it will require consensus from the community.

I've been thinking more about this. Read more »

Garden design (for geeks) (by )

When I was about 11, I designed a garden. I remember drawing a plan of it on a page of my spiralbound notepad. Sadly, that means the original design is now long gone, but that's irrelevant - the original design assumed a plot of land the exact same shape as a page of my notepad, which is unlikely.

The important thing is that I can remember the concept.

The idea was simple - I think of a garden as a fun place to relax. Be that a pleasant spot to read a book, or a venue for a party. Where, to me, "party" involves a buffet and background music and people mingling and chatting.

Therefore, I wanted to pack in a pleasing variety of spots to read/sit/chat into a limited space. Also, being a geek, I wanted it to be intellectually interesting.

So the answer was obvious - it had to involve a maze. But more than that. Two mazes. Why not have a stream and little ponds that forms a water-maze, and then overlay that with a maze you can walk, with little bridges and stepping stones and the like where it crosses the stream, to add interest? And use a variety of materials for the maze; hedges, walls, balustrades, the stream itself - all can form barriers of varying solidity. I love strings of lights in trees and bushes, so let's run lights around it. And have lights in the stream and its ponds. Lights are pretty at night.

One idea that appealed to me was that, for parties and the like, you could have little boats with candles in circulating around the stream. Of course, if it's an actual natural stream, then all the boats would end up stuck at the grating you'd need to put up to stop them all going downstream - but if it's an artificial one (in effect, a long thin pond that wriggles around the place) you could encourage a continuous current around it by putting pumps around the place, sucking in water then emitting it in a jet, with the jets and inlets all aligned around the circuit to push the water in the same way. Extra points for style: Computer control of the pumps so, at the end of the day, you can cause all the boats to congregate in one place for easy collection...

There would need to be a more open patio / lawn area joining the maze to the house, for when you need to gather everyone together to eat and so on. And it would be nice if the other end of the maze led into some more wild and natural terrain such as woodland, after all that order. But the maze would pack a lot of different little nooks into a relatively small space, creating a garden that seems a lot larger than it really is...

I'd draw up a plan, but of course, the actual implementation totally depends on what the land you have is like, and what bits of random architectural salvage turn up to build the maze out of!

AURUM (by )

My recent thoughts about bitcoin reminded me of earlier thoughts I'd had about digital currency.

Cryptographic digital currency is a way of transferring value without trusted third parties being involved in every transaction, but within a closed domain, it's easier to go for a trusted party and cut out all the crypto maths. Which is why we have printer credits managed in a central database when we use a shared printer. We may use a digital currency to buy a credit, but once we have credits, we're happy for the owner of the printer to just store our balance in a database and decrement it whenever we print.

And within a company, complex processes are used to transfer money in and out of the company's actual bank account, but budgets within departments are usually allocated by just asking somebody to update a spreadsheet. Money moves within the company using easier, faster, simple methods than bank transfers, writing cheques and letting them clear, or exchanging cryptographic keys.

It's the same story for "ulimit" mechanisms in computer operating systems, and language-level sandboxes, that allocate budgets of things like CPU time and memory space to software running in a computer.

So, when I set out to design AURUM, the resource limit system for ARGON, I decided to make a unified abstraction across all of the above. A process has a budget, which contains arbitrary amounts of arbitrary resources; and it can subdivided that budget into sub-budgets.

That's just an accounting system, though. It needs to integrate with actual resource managers. For something like CPU time, for efficiency, the scheduler probably wants a nice simple machine word reserved for "jiffies in the budget" attached to a process context in a hardcoded way. So the AURUM system probably needs a handler for "run out of jiffies" that takes more from the actual AURUM budget and "prepays" them into the process context - and when the process' balance is requested, knows to ask what's been prepaid and not yet used, so it can report honestly. If the process is stopped, any remaining balance needs to be put back in to be re-allocated to the parent process' budget. And so on.

Similarly, interfaces to actual electronic banking (spend money in a budget by causing an actual bank transfer, or bitcoin transaction, or whatever to happen), and interfaces for incoming budgets from external sources (a bank account interface that fires off a handler when an incoming payment is detected - with that payment as the handler's budget so it can then allocate it appropriately), and so on, can be built.

And a power-constrained mobile device might have joule budgets - and operations such as driving motors, transmitters, and lights might use them up. That would be neat for handheld computers and deep space probes, which can then run less-trusted code in a sandbox with controlled access to expensive resources.

That's all well and good as a way to manage finite resources in a system, but the next level is to take a step back, look at the system as a whole, and see how this facility can be used to do other cool stuff.

This leads naturally to the semi-forgotten discipline of Agoric computing which seeks to make marketplaces and auctions a core tool to solve resource allocation problems. This has scope within an ARGON cluster, if it's shared between multiple organisational units, which can then use budgets purely within AURUM to manage their shared use of the computer resources and to contribute towards its upkeep accordingly.

But, more excitingly, with mechanisms like Bitcoin allowing for money to be transferred across trust boundaries, it starts to become practical to think about allowing our computers to participate in economies between them. What if my desktop PC and servers rented out their space disk space, CPU time, and bandwidth to all comers? And with the money they accumulated from doing so, in turn rented offsite disk space for their backups, and when I gave them a particularly tough job to do, hired some extra CPU and bandwidth to do it, dynamically? Without me having to hand-hold it all as the middleman, pulling my debit card out to pay for resources... If I wanted to do lots of resource-intensive work I might put more money in from my own pocket to give it more to hire extra resources with; if I tend to under-use my system and it makes profits from renting out spare capacity, then I could take cash from it from time to time.

I guess the first step would be to create standard protocols in AURUM for things like auctions and commodity markets, to facilitate transferring between different 'currencies' such as CPU time, bitcoin, fiat currencies, printer credits, disk space, and the like. And a standard interface to bank accounts, where balances and transaction histories can be queried, and transfers requested. A bank account in the context of AURUM would be a third party that holds control of some budget on your behalf, so it should look like an ordinary budget in every way possible. That would make it practical to have software that needs a given resource to find a way, through a registry of trusted markets, to convert them into the resources it wants.

That'd be neat...

WordPress Themes

Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales