18 March 2013

The Hard Problem of Consciousness


Personally I find the phenomena of human consciousness to be a powerful evidence that there is more to reality than the physical material world that naturalism is selling to us. Following is an attempt to gather and articulate my reasoning.

What is the ‘hard problem of consciousness’

David Chalmers introduced ‘the hard problem of consciousness’ as the internal experience that we perceive. “It is undeniable that some organisms are subjects of experience… Why should physical processing give rise to a rich inner life at all? It seems objectively unreasonable that it should, and yet it does.” Questions include: why do we experience colour, sound, emotions – as distinct from the physical questions of how we collect, transmit and process this information.

It is distinct from other problems of consciousness, which he calls the ‘easy problems’ (although non-trivial in themselves), such as creativity, learning, introspection, and so on. The hard problem focusses on experience – why we perceive anything at all. Whereas the other problems are all just about behaviours – the way the brain reacts to stimulus. They’re essentially just information processing problems: receive input, access memory, process, produce output.

The answer does not lie in physical matter

Clearly brains are made of atoms. A single atom has a (relatively) simple behaviour. Apply some stimulus, and it will exhibit a somewhat predictable result. Put a small number of atoms together and their limited behaviours combine to be collectively more complex. Exponentially. So it’s perfectly reasonable to expect that a brain-sized bag of atoms can exhibit behaviours at least as complex as the brain itself. But at the end of the day, actions within are still just like long causal chains of dominoes. Individual atoms are just reacting to the forces on them.

So what physical thing might be doing any sort of experiencing or perceiving? Physically, we still only have atoms. If a single atom has zero ability to experience, then neither does two or any number of atoms together. Regardless of how complex the structures, and how complex the behaviour, there is still nothing to do the perceiving.  If you have a whole stadium full of blind people, then corporately they still wouldn’t figure out whether the lights were on just by talking to each other. Chalmers suggests that maybe atoms do have their own simple experiential life - I'm far from convinced.

It should also be noted that the physical atoms – in the form of proteins and so on – that comprise the brain are being constantly refreshed, without apparent interruption to experience.

The answer does not lie in informational structures

It is often argued that experience must be an emergent property of the complex network of interconnected brain bits. However, I find this unconvincing. Informational systems still just produce behaviour. They can all still be distilled down to a Turing machine equivalent. (A Turing machine is the mathematical description of a computation process. Again: receive input, access memory, process, produce output.) Experience is not found at the logical level either.

A thought experiment: Physics tells us that only a finite amount of information can be packed into a space. What if we could capture a brain (or an entire person) into a set of bits. A complex algorithm could be devised to ‘simulate’ the brain on a Turing machine. It could then be converted to a universal Turing machine (bigger dataset, tiny algorithm). What are we left with: the entire logical structure of a functioning brain would just be a phenomenally long string of ones and zeros flipping on and off. It could still produce the same complex array of behaviours – but where is the ability to experience hiding in that string of bits? How does it perceive the colour blue?

A second: consider a constructed brain where it was possible to capture and log every logical input and output (along with its precise time and location) at each functional logical unit – as fine-grained as desired. Now rewire each functional unit so that it ignores its input and instead plays back from the log; and rerun it with the same stimulus. Every unit will give the same result as before, and present itself to the rest of the network in the same manner as before. It appears to run equivalently to the first run, even logically at the most granular level.  However, the entire execution is a fraud – just a play-back of a fixed stream of data, devoid of experience.

One question…

While we’re simulating brains, what might we get if we perfectly scanned and simulated a real brain? Would this demonstrate that experience derives from the physical? No. It may be observed to behave like the original brain, but we have no way of verifying if it is actually experiencing anything. After all, only the entity itself can be aware of its own experience. It may be what is often called a philosophical zombie – behaving, but not perceiving.

Natural or beyond

Whatever the solution to the hard problem may be, it is generally presented that the answer will be found without needing to invoke anything beyond the physical world that science is comfortable with. I find this to be circular reasoning. We are told that consciousness can be fully explained by the material world, because that is all there is. We are told that the physical world is all there is because we are not aware of any phenomena that cannot be explained by physical laws. Hmm.

To me, a much more satisfying answer is a dualist approach. The brain gathers information. It does a great amount of processing, and problem solving. But ultimately it has a non-physical element that is able to genuinely experience the data gathered by the brain. I call it a soul. But whatever it is, the problem is real, and I really don’t think it’s going to be solved with hand-waiving and a material reality alone. I’m not suggesting “we haven’t found an answer yet, so it is reasonable to appeal to the super natural”. Rather, I am arguing a case that there can be no answer in the natural alone.

The logical next question is ‘what good is an observing soul if it can’t influence the behaviour of the deterministic brain?’ That can be for another post.

15 September 2012

Interpreting the Bible


Today I got asked "Is it possible to accurately channel the bible, given that there are so many different interpretations available? Genuine question, not flamebait." Thought I'd repost the reply here.

Sure, fair question. Assuming it isn't about translations or source of text. (But if it is, these are built on evidence-based processes using thousands of historical manuscripts, etc. Be suspicious of anyone says that only 'their' translation is correct). Different translations often serve different purpose (e.g. with varying tradeoffs between readability vs more literal translation of original text, which have less readable grammatical structures)

Facetiously, there are so many different interpretations because people try to interpret it, rather than just read it. Reading the Bible is a comprehension exercise, like reading the paper, and for the most part it's pretty clear what it says. Unclear parts often become clear once more context is read; or when historical customs/geography/sayings are uncovered (often in the footnotes). Some parts are just plain unclear, but these tend not to be about topics that catch the public eye. Given it's a book to be understood by all people in all times, I wonder if some parts just aren't meant for us now.

Unsurprising, not everyone who presents an 'interpretation' is doing so with honest intentions. Many try to use the Bible in the same way politicians use statistics: for support, rather than illumination. Reasons include:

  • to deceive others
  • to deceive themselves
  • to self promote by trying to value-add


Some ways that people arrive at the wrong meaning include:

  1. like most documents, it's pretty easy to make it say the exact opposite of what it clearly says by quoting out of context; and you see a fair bit of that.
  2. interpreting descriptive text as prescriptive text. (e.g. Abraham did this or that, but that doesn't mean that he was right to do it, let alone that we should do it).
  3. trying to apply Old Testament rules to modern times. The Bible is clear that most don't apply now, along with why they did then, but don't after Jesus.
  4. claiming it says something on a topic that it is silent on. (e.g. should children be baptised? some say yes, some say no, the Bible doesn't really say at all).
  5. try to interpret text that is clearly poetry, parable, dream or metaphore, as literal. With a bit of context it's usually pretty easy to tell which is which.


Watching someone put a clearly wrong interpretation with a clear agenda is about as frustrating as watching people get up and say that climate change isn't happening. :)

p.s. I can't remember where I heard some of these analogies, but felt should at least say they're not original.

3 May 2012

MSBuild Task to generate hash of files

Here's a handy inline MSBuild task to take a bunch of files and generate a hash. I used it to generate a hash of source files in order to determine if an exe has really been changed (given that exe's compile to distinct files each time even if the source hasn't changed).

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<UsingTask TaskName="GenerateHash" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<InputFiles ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true" />
<OutputFile ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Using Namespace="System.IO" />
<Using Namespace="System.Linq" />
<Using Namespace="System.Security.Cryptography" />
<Code Type="Fragment" Language="cs"><![CDATA[
using (var ms = new MemoryStream())
using (var md5 = MD5.Create())
{
foreach (var item in InputFiles)
{
string path = item.ItemSpec;
using (FileStream stream = new FileStream(path, FileMode.Open))
{
var fileHash = md5.ComputeHash(stream);
ms.Write(fileHash, 0, fileHash.Length);
}
}
ms.Flush();
ms.Position = 0;
var dirHash = md5.ComputeHash(ms);
using (TextWriter w = new StreamWriter(OutputFile, false))
{
w.WriteLine(string.Join("", dirHash.Select(b => b.ToString("x2"))));
}
}
]]></Code>
</Task>
</UsingTask>

<Target Name="Demo">
<GenerateHash InputFiles="@(SomeFiles)" OutputFile="res.txt" />
</Target>
</Project>

11 March 2012

GoDaddy Joomla on Windows: fail

Hi GoDaddy Support,

I recently installed the Joomla application. I deployed two instances to: URIs omitted

They are both running extremely slowly. (Between 4 and 10 seconds to respond - way to slow for a web site). I haven't even set up any content on them yet. Can you please help? Why are they running so slowly?

Thanks in advance.


Support Staff Response

Dear Peter,

Thank you for contacting Online Support. I understand you installed Joomla to a Windows hosting plan. This would be why the sites are resolving slowly. If you do not have ASP elements or any other windows only content, I would recommend switching to a Linux hosting plan as these run Joomla much better. You can change your hosting Operating System by following the instructions below.

If you find that you need to switch the operating system of your hosting account, you can do so at any time.

To Switch Your Hosting Account Operating System

  • Log in to your Account Manager.Click Web Hosting.
  • Click Options next to the account you want to use.
  • Go to the Customize tab.
  • From the Plan menu, select a new hosting plan. NOTE: If you do not see the Plan menu, contact customer support.
  • Click Save Changes or Checkout, and then complete your purchase.

This change may make take up to 72 hours depending on the size of the site, the number of databases and other factors that may increase the complexity of the migration. We recommend that you do not try to FTP to your hosting account during the migration. You will receive an email message when we complete your upgrade.

NOTE: If your website contains certain advanced features, such as ASP, ASP.NET, CGI, or PHP applications and you select a hosting plan that does not support those advanced features, your website may no longer function properly after the plan change. Please make sure your website does not contain advanced features BEFORE moving to a plan that may not support them or be prepared to modify your Web content accordingly.

NOTE: If you created databases that are incompatible with the new operating system, you must delete them before proceeding. Data existing in compatible databases will be preserved.

Please let us know if we can assist you in any other way.

Sincerely,

Mike P.

Online Support


*sigh*

9 February 2012

Universal Turing Snake

Random thought for the day: How hard would it be to make a mechanical Universal Turing Machine that used an arbitrarily long Rubik's snake as the tape? ...out of Lego... Hmm...

ShouldSerialize

Sometimes features are staring at you in the face, all you need to do is read the docs. Other times it really feels like things are hidden. Thanks Con for pointing me to ShouldSerializePropertyName - I did a careful look through the MSDN serialization docs in hope of finding this very feature, but didn't have any luck.

What does it do? For any given property, create a bool ShouldSerializePropertyName() method to decide if it should be included in serialization. A bit magical, but does the trick.

Why do I want this? I want to serialize an object graph to XML. But I don't want to render a container element for any empty collections. I think I'm becoming a bit of a pedent when it comes to XML.

Docs (in as much as I could be find any) are over here under Windows Form Controls.

31 January 2012

SQL Optimisation article

Thanks to Martin for pointing me to this Microsoft article on SQL optimization: Best Practices for Semantic Data Modeling for Performance and Scalability. A tightly packed and in depth look at various SQL Server optimisation techniques.