Malcolm Blaney: blog

Indie-config using the Universal Sign-In Button

By Malcolm Blaney on
I mentioned at the end of my last post that I wanted to add a new link header to my home page to make web actions easier. I've done that now, and so have a webaction endpoint that can be discovered (along with all the others).

Since web actions can now be discovered from my home page, I can use my Universal Sign-In Button to find the config for me:


When it finds the config, it automatically applies it to the page the same way indie-config works after receiving a message from a hidden iframe. The dialog shown above then closes automatically.

This solves the problem of "over sharing" my config via the browser's protocol handler, and still allows me to share the information with other sites as simply as possible, which is with one click. Another advantage of this method is that I don't have to "prep" the browser by logging into my site and activating the protocol handler. It is also easier to see what my web action page is set to when I am logged in as it's now just a field in my profile information.
likesharereplyWant to share this? Click to choose a site:settings
likesharereplyWant to share this? Click to choose a site:settings
likesharereplyWant to share this? Click to choose a site:settings

Universal Sign-In Button

By Malcolm Blaney on
The Universal Sign-In Button is a customisable bookmarklet that will auto-fill a sign-in form on the page you are currently visiting and submit it for you. It's a one-click way to tell the current page who you are.

The rest of this post explains why such a button is necessary. If you would like to create your own button, you can head straight over to this page.

Ok, so why do I want to tell the page I'm visiting who I am?

One of the advantages the big data silos have over the IndieWeb is that everyone has an account on them. That means small sites can create sharing links that link back to Facebook, Twitter, (or maybe even Google+) and the visitor will be able to interact with the link in a meaningful way. A site could even embed a comment form provided by one of these sites, knowing their visitors will most likely be logged in. This creates a social layer between small sites and the big silos that reinforces their position as the place where it's easiest to share links and comment on what you read.

On the IndieWeb, there is no comparable singular point of focus. That makes it just a little bit harder to re-create that social layer. Indie-config is a really nice way to solve this problem, it registers a protocol handler in the browser that contains your custom url. Unfortunately this technique suffers from a privacy problem. The process that allows you to automatically tell a site who you are can be implemented by anyone. That means you really need to check who is requesting your config from your site, and give them permission before you visit their site.

The way to fix that is for browsers themselves to implement indie-config, and to require your permission before giving your details to a new site. Since that's not going to happen any time soon, we need another way to easily tell a website who we are, without giving this information automatically to every site we visit.

I've written a bookmarklet that can do just that. A bookmarklet is a standalone piece of javascript that can be saved as a bookmark, and when opened will run on the current page. I've called it the Universal Sign-In Button because it lets anyone sign into any website with one click. The nice thing about this solution is that some browsers (ie Firefox) will let you customise the location of the bookmarklet, so I can have my Sign-In button right next to the address bar:


You can use this button to sign in to any site that supports IndieAuth. I've used it to sign in to the IndieWeb wiki, Quill and my own site. It doesn't have to just be used with IndieAuth however. I mentioned indie-config above, well instead of using the browser's protocol handler to find my config, I can create a second bookmarklet containing the url that returns the config.

To make this button more 'universal' however, my next project will be to add a new rel value, rel="webaction", to my home page. That way, if a form supports webaction discovery, only one button will be required.

If you would like to create your own button, please visit this page.
likesharereplyWant to share this? Click to choose a site:settings
likesharereplyWant to share this? Click to choose a site:settings
likesharereplyWant to share this? Click to choose a site:settings

Consciousness produces life

By Malcolm Blaney on
Conventional wisdom has it that life somehow produces consciousness, but what if it's the other way around?

After writing about the Universe being conscious, I really enjoyed reading this perspective on life arising from information processing. As I wrote earlier, consciousness could be regarded as an information field spanning the universe. Life then, emerges from consciousness as a gradual build up of stored information. As more information is stored, more predictions can be computed about the future, giving a higher chance for survival.

The article starts off describing information storage at a biological level, but I was glad to see it go beyond that into physical processes. The late Robert Pirsig also wrote about the opportunistic nature of the universe extending beyond biological evolution. In his second book, Lila, he attributes the reason for life being carbon based on the very nature of the carbon atom. It  provides the most flexible combination of valence bonds with other atoms, giving it the highest chance of forming useful molecules. Evolution is therefore only a continuation of a long held practice by the universe to build on what it already has.
likesharereplyWant to share this? Click to choose a site:settings
likesharereplyWant to share this? Click to choose a site:settings
likesharereplyWant to share this? Click to choose a site:settings
likesharereplyWant to share this? Click to choose a site:settings
likesharereplyWant to share this? Click to choose a site:settings

Added Quill as a web action fallback #indieweb

By Malcolm Blaney on
I decided to add Quill as a web action fallback because it provides urls that can publish likes, reposts and replies via micropub. This is what the dialog looks like now, when indie config doesn't find a protocol handler:

While making these changes I discovered indie config wasn't working at all with the latest version of Firefox, but it seems to only affect the Linux version. To get around that I also added an input field so that users can point to their own web action handler, so no registration is needed.

The nice thing about adding this input field is that it can re-use the iframe on the page that was already created for the initial check (the same event handler is still waiting for a message from it). If the new url manages to post a message from the iframe, the new config details are saved in local storage and shown to the user. Otherwise it shows a message in the dialog above saying the config wasn't found.
likesharereplyWant to share this? Click to choose a site:settings

The Universe is Conscious

By Malcolm Blaney on

"The two slit experiment contains the only mystery. We cannot make the mystery go away by 'explaining' how it works ... In telling you how it works we will have told you about the basic peculiarities of all quantum mechanics."

- Richard Feynman

The Double Slit experiment is a simple idea to get your head around, however it's application to Quantum Mechanics is not. In this case, particles travel towards a barrier which has two slits through which they can travel. On the other side of the barrier is a screen which measures where they hit. When the particles hit the screen, they do not do so randomly, but instead form an interference pattern. That is, their journey to the screen follows a path that can only be explained by wave-like proprieties created from passing through both the slits.

The revelation of the double slit experiment is that even when only a single particle is present, it will follow an interference path to the screen. It's not just that a large number of particles together act like a wave, a single particle also has wave-like properties. Hence the application to quantum mechanics.

The classical and most widely accepted explanation for this effect is known as the Copenhagen Interpretation. It was first introduced by Neils Bohr and Werner Heisenberg in 1925 and states that all particles have a wave particle duality, and therefore in the experiment, all particles travel through both slits. It's not until we try and measure their position (on the screen) that the particle like nature is discovered.

It's poor cousin in the theoretical physics world is Pilot Wave theory. It was described by Louis de Broglie and improved upon by David Bohm, and states that particles actually only travel through one slit, but their movement is dictated by a wave in which the particle travels. The reason why this theory is less accepted is because the presence of the wave itself. It is seen as a theoretical construct that requires "hidden variables" for it's explanation.

Classical quantum mechanics doesn't suffer from the hidden variable problem, but none the less has it's own problems to deal with. As I said earlier, only when a particle hits the screen does it cease to display wave like properties. This is called the wave function collapse and it is intricately linked to our own consciousness. This is because the collapse to a discreet, measurable position requires an observer. This leads to further theories that need to be accepted such as the many worlds theory, where all measurements lead to multiple outcomes in alternate realities.

But what if we accept the hidden variable associated with Pilot Wave theory? That would mean to try and understand the wave itself. If the movement of any particle is decided by a wave that is external to it, yet bound to it, then surely we can understand something of the nature of this wave?

The Double Slit experiment provides the simplest case of interaction for us, so that we can look at what properties the wave might have. The wave a particle travels on displays classical interference patterns, that is it interacts with the world of particles that pass through it, and it therefore contains information about those events that it reacts to. This is either true, or their is no separate wave function to speak of. This is referred to as the non-locality principal, which the Pilot Wave theory relies on. The calculations behind the theory show that the wave function is a universal phenomenon.

The wave function can be described as the movement we see in an information field. This field is a continuum inhabiting all space, and imparts some of it's knowledge on particles travelling through it. It also receives information from those particles. In this way, their appears to be a universal knowledge layer underpinning all matter. It seems to interact with the energy levels of everything in it.

What are other ways to think of this information field, with it's ability to store and impart knowledge on the world around it. I would like to think of this as consciousness itself. It is the information store that grounds all matter. In this way, it can be said that everything is conscious, because it inhabits this field. The universe is conscious.

It also explains our own consciousness. We don't have a consciousness that is separate from the world around us, as their is only one consciousness that encompasses the universe. What we have as individuals is self awareness. All animals have this to some extent, ours is merely the most expressive, thanks to our higher levels of cognition. That higher cognitive function also allows us to interact with universal consciousness at a higher level. There is a feedback loop that allows our own self awareness to become more integrated with that consciousness. The more we think, feel and understand, the stronger this process becomes.


After writing this, I read some great articles on Nautilus that led me further down the rabbit hole, they're worth a read: and
likesharereplyWant to share this? Click to choose a site:settings
likesharereplyWant to share this? Click to choose a site:settings now supports fat pings

By Malcolm Blaney on
I just finished adding support for WebSub fat pings to dobrado, so now uses them too :-)

I've also submitted implementation reports for all three pieces of the WebSub puzzle (hub, publish & subscribe) because as an integrated reading and writing system, dobrado uses the whole lot. I waited until after I had fat pings supported because that is now a mandatory part of the spec. Thin pings were definitely easier to implement, so this does raise the bar a little for potential hub implementers.

There's still a fair bit I haven't implemented, but I think the rest is optional... lack of content authentication might be an issue as I don't do anything with hub.secret. oh well maybe later.

While making these changes I thought a bit about what partial feeds might look like in microformats. If you wanted to pass lots of messages around using WebSub fat pings (like maybe a chat log), you wouldn't necessarily want to share the full page each time. To send a partial feed as the payload, we could dynamically change the scope of the h-feed to only wrap newer h-entry's. My feed parser looks for an h-feed first, so it would only use the new entries for the payload. The older entries could remain on the page and visually wouldn't look any different.
likesharereplyWant to share this? Click to choose a site:settings