Friday 14 October 2011

A new online privacy model.

I was reading through an old Slashdot post of mine and it got me thinking.
Privacy in the online world is a tricky thing. Many companies exist to sell your online information. Facebook and Google being the two headline companies. But it got to me about how it is now almost mpossible to do anything online without losing your privacy. One reaction might just be to give up on those who do that. You get plenty of people who refuse to use facebook or google or whatever because of privacy concerns.

But y also can't use price comparison websites,(they sell your information as part of their service) Most large company's websites (amazon, screwfix, M&S, Tesco - sorry for the UK slant there). Basically anything you do at all on the web gives away your privacy.



That said, you can't go outside because people will take photos of you and with face recognition software that will soon be available you'll be tracked by these. By the way I'm saying soon as any point within your lifetime because once online photos stay online forever, so if the technology is developed by anyone in the next 10-20 years then you need to be concerned.
Face it, technology has meant the end of privacy as we have expected it in the past. Kind of like it has meant the end of the copyright/distribution as RIAA has known it. How we deal with this is the next question, but hiding under a rock is a very luddite reaction.

I'm not saying we should all give out credit card details out to anyone, and post photos of what I got up to with the wife last night on LinkedIn, but the world has changed and hiding from it won't help. We need a new model of privacy.

So what do I suggest? Well the first thing is we have to carry on with Zones of Trust. Google quite literally knows everything that I get up to. It has all my photos, all my calendar entries and all my personal documents and plans. While this is convenient it is also not really sensible. Even my fiancée does not have quite that level of access to my information. Likewise I have to remember that anything I do in a public place will become public record for eternity. Also realise that soon enough everything I have ever done in a public place will be similarly searchable and available.
Here's the turnaround though, it will be similarly available for everyone else too. Thinking of taking a new job well not only does your boss google stalk you, but you can do the same to him and all the other interview candidates. I can easily imagine my nephews growing up in a world where that information is commonplace and accepted. Likewise your browsing habits, all your browsing habits will be available. I imagine it will start off by someone launching a service where you can add to your facebook profile your browsing history. People already like websites or +1 them to show off stuff they find, so why not show everything? Someone will do it and some kids will start using it amongst their friends and it will spread.
All of this I see as a good thing but I don't think the older generation will get it, but I am starting to see people ever more so now having no expectation of privacy and this ending in a more open and honest society.

Thursday 1 September 2011

Washing machine patent

Random patent idea.
Rather than setting a timer on the washing machine to come on overnight have a sensor that from the colour and intensity of the light works out when nighttime it and runs then automatically.

Just a thought

Tuesday 16 August 2011

Programming Hardware vs Programming Software

I think after all these years of being a hardware engineer looking at the world of software engineering with a mixture of scorn, pity, bafflement and incomprehension I've put my finger on a fundamental truth.
First some background:
Hardware engineering has no problem with parallelism and concurrency. In fact all the languages used rely on this so that it can be synthesised into hardware with relative ease. However The development pace is regarded as relatively slow.
Software engineering is (mostly) built around the model of a von Neumann model of a processor randomly accessing memory. For better or for worse most languages are one way or another linked to C's assumptions and models. Now maybe it would be more correct to describe it as Turing architecture, but let's move on. These systems and ways of thought have huge problems with parallelism, but exhibit relatively rapid code development. The model of one thing must happen before another is one that is easy to deal with and therefore debug.
What strikes me is this falls down in complex systems where you actually are quite happy with things happening at the same time, but I haven't been able to put this into words. It became clear to me today trying to reverse engineer some C code that I didn't understand that I am going about this the wrong way.
I like a system to have clearly defined boundaries. A chip has input and output busses. You cannot from outside a chip package get inside and modify the internal registers without going through the interface, it just physically isn't possible. Well defined interfaces are not only desirable, they are all that is physically possible.
Now if you talk to a software engineer they will say they like well defined interfaces too. They like structured code and hate things that cause spaghetti. I realised today that if that were true then the world of software would be very different.
At the most simple level it is considered a good thing that I can in some code initialise a bunch of data structures and then call a do_frame() function that accesses unknown elements of a variety of objects and produces a result. Worse than that there are many situations where hidden away in hundreds of lines of code is a little reference to an object that pulls in the thing that does all the work. Throw in globals, pointers and complex objects and the aim seems to be not only to abstract out the complexity (which is good) but abstract out the functionality (which is bad). This is I think the important point that in most hardware I have seen because there is a data flow and interfaces are isolated even if you have abstracted the complexity you have to show the functionality. A hardware block cannot sneakily change the contents of your SDRAM unless you explicitly connect it up.

Now don't think that I'm trying to say hardware methodology is superior, also don't try and say that this is the difference between good code and bad code. Perhaps it is good language vs bad language, but whenever I complain about C's memory model and the dangers of how it handles structures and pointers I am told that that sort of functionality is possible in any useful language. Granted verilog will allow you to do cross hierarchy references of the type that will allow you to break hierarchy, but the syntax to do that is so obvious and rarely used that it stands out like a sore thumb when it is used and therefore isn't used except in very rare circumstances. Languages like C seem to hide this sort of trickery and therefore programmers embrace it, or at least excuse it's existance.


So I guess that has been my epiphany, that software is written to hide complexity in all its forms. Hardware has its complexity constrained by the physical need to have defined interfaces and so has complexity hidden by use of hierarchy.
As a side note I've long thought that each individual engineer will make things just as complicated as he is able to understand it. Even when they try and make things simpler they'll often do that to reflect what they think is complex potentially introducing what another person would see as extra complexity to achieve this. Further given those two forces a system will converge to be slightly more complex than the team of people working on it can comprehend. I take great pride in trying to make things simple, but realise that often I must spend so much time trying to break things down that I can't see the wood for the trees. Sometimes you read others code and it is complex, but succinct.
Well I guess if this was easy then anyone could do it.

Tuesday 1 March 2011

Novel thoughts

So I've been working on my novel again.
I think it's reached a point whereby I can keep fiddling with it, but it either needs a complete re-write, or I just need to publish it.
I think I'll do something I've been thinking of for a while and setup a new blog to publish it but do it one section at a time. Then what should I call the blog?

You see the problem is that I have written it for myself as something I think I'd like to read. Which means it's quite geeky, full of exposition and suffers poor character development. But then whenever I read it to try and improve it, I enjoy re-reading it, to the point that it's beginning to feel like masturbation.

So I just need to finish this part about how to commit crime in in crime free society and then I think I should do something about it. The working title is "Sonnets from a proton" if that gives you some idea of how embarrassing this could be...

A new form of government

After my last post I thought I'd post this.
A while ago I came up with an idea for the full devolution of democracy, using online voting to the n'th degree. Based as much as possible on various voting/communal online systems. I'm not saying it's without flaws, but I present it here for comment and improvement.

The basic idea goes that everyone has the vote on every single subject.
But i hear you cry, this would be crazy, for a start there'd be too many decisions every person to make.
Correct. That's why you can appoint proxies.
For example if the subject to be voted upon concerned agricultural policy, and your mate Hugh nicely summed up your views on the subject, or at least summed them up enough that you trusted his views then you'd let him vote on your behalf for all fishing related things.
Let's say you met this guy Jeremy down the pub and you liked his ideas on the transport system, you could delegate your transport related votes to him.

So a bill gets proposed in true online democratic fashion (how this happens I'll get back to) and people tag it with tags in order to categorise it according to the various categories. Agriculture, Transport, Education, etc. Obviously most things would have several tags and therefore there would be conflict. This would therefore need you to have an arbiter in case of conflict. Depending on how important the subject was (determined by the amount of acticity on that topic) you would then either delegate it again (perhaps to the equivalent of your MP) or make the resolution yourself.
Ah, but how would the bill get proposed. Simple people could vote bills up or down. If your delegate chose to vote a bill up or down that was within his delegation remit then he would vote it up with the force of all the votes he had control over.

Now there are a number of issues with this system, not least the common problem of people voting for more public spending and lower taxes. There'd be so many on the dole voting for more taxes on the rich that the economy would probably collapse. Given every bill would have an economic impact and assessing the impact of this would be none trivial then how do you even assess the cost of each proposal never mind balance the budget.
My idea, (although it too is flawed) the personal tax allocation. You buy into government services. For example you can vote up or vote down the spending on military, but the cost is shared equally between all taxpayers. You can vote for more or less money spent on roads or whatever but you must pay your appropriate share. Two problems with this, how do you decide what is fair and how do you prevent the race for the bottom.
Simple, when it comes to tax we formalise the agreement that already exists through lobbyists and bribes, he who pays the piper calls the tune - sort of: on a logarithmic scale the more tax you pay the more say you have in financial matters. That is when it comes to tax policy it costs you (at least) four times as much to buy twice the votes. If you as a rich man vote for yourself to pay less tax, you then have fewer votes with which to maintain your position.

As I say it's far from perfect, but it's certainly different from our current scheme.

Who writes the rules

This may be an old theory, but it certainly isn't mine, can't remember where I came across it and it was fairly recently; but it was new to me, so I'll run with it.
The idea goes that in the old days it was the religious leaders who made the rules. It was all about absolute authority and follow these arbitrary rules or else. From there you got kings and the divine right and all that stuff.
Then the lawyers came along with ideas like "No, man has to make the laws for himself" and so you got things like the republic. The idea coming down to anyone who had the right education and connections could make the rules. Yes you had democracies and yes the population had a vote on who made the rules, (to prevent absolute abuse of power) but the general population was not viewed as overtly competent; more-so that like a legal system there were checks and balances placed in the system itself.
Now you've had Wikileaks and the proposal is that this is an attempt to apply scientific/engineering principles to the field of law. This was the new idea to me, so bear with me here. What science and engineering fundamentally say is that it doesn't matter who you are or what your education is, it doesn't matter as long as you are right.* Now this then leads to the concept that as long as information is freely available and debate open and free then the correct way to do things will be found. In fact the best thing people can do is collect data and publish it. It will occasionally cause upsets and disturb the status quo, but it all advances the state of the art.

To me this is an interesting thought, will you have a society that is ruled not by dogma, or a collection of rules debated by a subset of society but an honest effort to find the optimal behaviour for the species. I'm a big fan of Ian M Banks' writing particularly his Culture works and the anarchic society that is the culture. Not that I am an anarchist, I really don't believe that would ever work unless you have the post scarcity society that is the Culture and the benevolent god like puppet masters that are the Minds, but then at that point it's not really a human society anymore is it?
This is a concept that I've tried to explore in my own writings but it's really hard because I also have to first explore a society that is transitioning to a post scarcity society.
now all this is very tempting to try and work into my writings too, but they already becoming a tangled mess of complexity. I really should start publishing them and getting feedback...

Back to the point this is all about the evolution of the memes that that form society, potentially there are a set of memes and laws that form a society that is better than our own, but what are they. One or two very powerful men set out to give their opinion on that and you got religion. Then a greater mass of learned men tried to reason it out. Is the next step to open it up to public debate and iterative improvement?

No idea.


* "While the church knows no argument but force we know no force but argument" springs to mind. Fine there is definitely a hierarchy of respect within the scientific community, but at the end of the day if the lowliest school child came up with a demonstrable proof of anti-gravity, or some way to unify quantum mechanics and relativity then their status (hopefully) wouldn't matter, only the results.

Moving? Buying a House

I've been thinking about the process of moving house (which I've just completed recently).
To sum it up a few things I've noticed:

  • You have to love the property when you are considering buying, you have to want it and feel it is perfect for you. That way by the time you get it, you'll merely tolerate it.
  • It doesn't matter what budgets you make, it's more expensive than you think
  • It doesn't matter ho careful you are, there's more wrong with it than you thought.
  • Fixing things takes a lot longer than you thought.
  • It takes a lot longer to get stuff done once you've moved in
  • Ever wonder how old married couples get that way? I have stopped doing so.
  • It soon becomes clear the work you need to do on it will never end. This is good, and this is bad.
  • You'll always grow to fill the available space in the house, try and make sure you have room for expansion one way or another
  • You have more stuff to pack than you thought.
  • Rental agencies have become worse in the last couple of years at moving out inspections, but that's another story.

All in all a positive experience. I'm not looking forward to doing it again though.