Thursday, August 11, 2016

The scourge of easily accessible abstraction

In software, we are swimming in abstractions. We also have amazingly abstract tools that greatly enhance our ability to create even more abstractions.

"William of Ockham admonished philosophers to avoid multiplying entities, but computers multiple them faster than his razor can shave." -- John F. Sowa, Knowledge Representation.

Remember that the next time you are de-referencing a URL to get the address of a pointer to a factory that instantiates an instance of meta-class for monad constructors...



Wednesday, August 03, 2016

Sebastian Rahtz, RIP

It has just now come to my attention that Sebastian Rahtz passed away earler this year.
RIP. Fond memories of conversations on the xml-dev mailing list.

https://en.wikipedia.org/wiki/Sebastian_Rahtz


Wednesday, July 20, 2016

Software self analysis again

Perhaps a better example for the consciousness post  would have been to allow the application on the operating system to have access to the source code for the hypervisor two levels down. That way, the app could decide to change the virtualization of CPUs or the contention algorithms on the virtualized network interfaces and bootstrap itself a new hypervisor to host its own OS.

The question naturally arises, what scope has an app - or an OS - got for detecting that it is on a hypervisor rather than real hardware? If the emulation is indistinguishable, you cannot tell - by definition. At which point the emulated thing and the thing emulated have become indistinguishable. At which point you have artificially re-created that thing.

This is all well worn territory in the strong Vs weak AI conversations of course.

My favorite way of thinking about it is this:

1 - we don't understand consciousness and thus we cannot be sure we won't re-create it by happenstance, as we muck about with making computers act more intelligently.

2 - If we do create it, we likely won't know how we did it (especially since it is likely to be a gradual, multi-step thing rather than a big-bang thing)

3 - because we won't know what we did to create it, we won't know how to undo it or switch it off

4 - if it improves by iteration and it iterates a lot faster in silicon than we do in carbon, we could find ourselves a distant second in the earth-based intelligence ranking table rather quickly :-)

Best if we run all the electrical generation on the planet with analog methods and vacuum tubes so that we can at least starve it of electricity if push comes to shove:-)

Saturday, July 16, 2016

English as an API

Like the last post, this I am filing under "speculative"

Chat bots strip away visual UI elements in favor of natural language in a good old fashioned text box.

Seems kind of retro but, perhaps something deeper is afoot. For the longest time, we have used the phrase "getting applications to talk to each other" as a sort of business-level way of saying, "get applications to understand each others APIs and/or data structures."

Perhaps, natural language - or a controlled version of natural language - will soon become a viable way of getting applications to talk to each other. I.e. chatbots chatting with other chatbots, by sending/receiving English.

One of the big practical upshots of that - if it transpires - is that non-programmers will have a new technique for wiring up disparate applications. I.e. talk to each of them via their chat interface, then gradually get them talking to each other...

Hmmmm.



The surprising role of cloud computing in the understanding of consciousness

I am filing this one under "extremely speculative".

I think it was Douglas Hofstadter's book "I am a strange loop" that first got me thinking about the the possible roles of recursion and self-reference in understanding consciousness.

Today - for no good reason - it occurred to me that if the Radical Plasticity Theory is correct, to emulate/re-create consciousness[1] we need to create the conditions for consciousness to arise. Doing that requires arranging a computing system that can observe every aspect of itself in operation.

For most of the history of computing, we have had a layer of stuff that the software could only be dimly aware of, called the hardware.

With virtualization and cloud computing, more and more of that hardware layer is becoming, itself, software and thus, in principle, open to fine grained examination by the software running on....the software, if you see what I mean.

To take an extreme example, a unix application could today be written that introspects itself, concludes that the kernel scheduler logic should be changed, writes out the modified source code for the new kernel, re-compiles it, boots a Unix OS image based on it, and transplant itself into a process on this new kernel.

Hmmm.

[1] Emulation versus re-creation of consciousness. Not going there.

Monday, June 20, 2016

The subtle complexities of legal/contractual ambiguity

The law is not a set of simple rules and the rule of law is not - and arguably cannot -be reduced to a Turing Machine evaluating some formal expression of said rules.

A theme of mine for some time has been how dangerous it is to junp to conclusions about the extent to which the process of law - and its expression in the laws themselves  - can be looked upon purely in terms of a deductive logic system in disguise.

Laws, contracts etc. often contain ambiguities that are there on purpose. Some are tactical. Some are there in recognition of the reality that concepts like "fairness" and "reasonable efforts" are both useful and unquantifiable.

In short there are tactical, social and deep jurisprudence-related reasons for the presence ambiguity in laws/contracts.

Trying to remove them can lead to unpleasant results.

Case in point : the draining of millions of dollars from the DAO. See writeup on Bloomberg : Ethereum Smart Contracts

Friday, June 17, 2016

25 years if the Internet in Ireland - a personal recollection of the early days

So today is the Internets 25th anniversary in Ireland.
In 1991 I was working with a financial trading company, developing technical analysis software for financial futures traders in 8086 assembly language and C using PCs equipped with TMS34010 graphics boards.

I cannot remember how exactly...possible through the Unix Users Group I ended up getting a 4800 KBS modem connection to a Usenet feed from Trinity via the SLIP protocol.

Every day I would dial up and download comp.text.sgml from Usenet onto my Sun Roadrunner X86 "workstation".

Not long thereafter, Ireland Online happened and I was then dialling up Furbo in the Gaeltacht of Connemara because it was the first access point to the WWW in Ireland.

I ditched my compuserv e-mail account not long after and became digitome@iol.ie on comp.text.sgml

So much has changed since those early days...and yet so much as stayed the same.