Friday, 5 September 2014

On the time of whom?

Another Sunday morning Speculation, (where one of the many things that puzzle me get posted in the form of a research hypothesis.)

It is the start of a new academic year for many and that gives me the perfect setting for something that I've wondered for a while:

Imagine that ten women arrive at University and are all put together in the same house. They have communal everything and sleep in a long dormitory with five beds down one side and five down the other, (more like a boot-camp than a University.)

My question, (and I can find no papers on this) is this: presuming that when they arrive they are not all menstruating on the same day of the month, and that with time they sync up - which girl is the anchor that they move into sync with, (if any - maybe it is more egalitarian than patriarchal and they all move the required time to arrive at a mean time, (statistics, not puns!) )

Then the next questions are: how and why? If it is controlled by pheromones then it should be possible to create a contraceptive mist that would change cyclically to avoid the more rapid sections of hormonal fluctuation that exist, (e.g. day 13 oestrogen crash). Which could lead to happier lives, (but further speculation is poetic at best and futile or damaging, until the first question is confirmed.)

Monday, 4 August 2014

Dark thinking with Quaternions

When I hear about the fourth, (or more) spacial dimensions it reminds me of
Quaternion multiplication.

I am impressed the indignation for the square-root of -1 seemed to be an impediment to an equation, and the gall of using i as a solution. I'm amused that in many cases that provides the solution to an actual equation resulting in a solution back in the plain of the number line.

Just as we can avoid the physical limits of three gimbals and the associated problems with Euler angles by converting our calculation to using quaternions I would argue that i,j and k do not exist, but that we need to imagine that they do in order for our minds to accept the logic that teleports us from problem to solution.

Friday, 27 June 2014

Dark Energy vs Dark Matter

(some) Speculation, (not proven science!)

Dark Matter = missing mass of a galaxy, (about 26.8% of stuff)
Dark Energy = fuel the expansion of the universe (about 68.3% of stuff)

If all visible matter from the standard model is only about 5% of mass-energy within the space-time of this universe, and theoretically, about half of all mass-energy should be anti-matter, then 13.4% of stuff should be anti-dark matter and 34.15% should be anti-dark energy.

Until we prove otherwise I'm going to presume that Dark Matter is cosmic phlogiston and the measured variations in the rotation of stars within some galaxies is caused by a property of either space-time or the interaction between space-time and mass-energy.

Dark Energy, on the other hand is proof of other {mem}brains interacting with this one.

Bonus round

Is there an experiment to demonstrate the speed of force through a solid? (To disprove the "fastest way to communicate with the moon is to send Morse code by constructing a solid rod all the way from earth, and pushing on one the Earth end to press the Morse key on the moon.") I can see that the inertia of the rod would prevent the message getting there faster than a laser photon, but how much slower would it be?

Wednesday, 25 June 2014

Programming paradigms and economic modles

(Haskell has a functional paradigm while Objective-C is imperative.)

"If  John Maynard Keynes economic model can be thought of as being functional then Friedrich Hayek's model would be imperative."

Discuss. Which is more socialist.


Keynes seems to see the macro financial system as being as static as a Haskell variable, which leads to the conclusion that a government can inject/invest its way out of a financial crisis. This idea comes from the perceived perpetual existence of society and that a nation is a perpetual-money-machine that sometimes needs a kick.

F.A. Hayek focuses on the individual micro economics and scales up, (ad absurdum from Keyne's point of view.) This is more realistic because indefinite growth on a physically finite planet is ludicrus.

Keynes might point out that money, like numbers themselves are infinite.

Tuesday, 24 June 2014

Stairing at a Designing

When I first saw MinuteLabs Corner-reflector I was designing a new wooden staircase. It was to connect the upper floor of a house with a lower one, but with some unusual constrains. I looked into the local laws that I could find, and the usual calculations dictated by logic and human proportions, (I didn't find www.blocklayer.com Stairs Calculator until much later.)

To that end I plan to create an interactive system where by you enter the height, [0] (between the ground level of the upper floor and the lower level) and the depth within which the staircase has to fit. You can toggle risers on or off, (for steep stairs they would be off automatically.)

Then the system would calculate how many steps you would, (or should) need and how close to being a ladder, (vertical) or decking, (horizontal).

The BlockLayer site even calculates the piece of wood that you need. The only option that it seems to be missing is the ability to set the treads into slots in the stringer, (the long side part of the staircase) rather than notching.

Once I dig out my notes, I'll add the measurements, calculations and regulations that I found.

[0] Actually just dragging the staircase like the laser in the corner-reflector seems like a better human interaction design.

Sunday, 8 June 2014

Windows Desktop Automation

Have you ever needed to have your mouse click over and over while you were not there? Do you want to set up hotkeys to auto-complete a piece of text, (like an email sign-off) that you find yourself doing over and over each day?

I downloaded nine different piece of software and "Auto Clicker", though commercial, did seem to be winning.

I wanted something that could click three buttons, in order, with a 10 second pause between loops. Most importantly it had to be able to loop until I stopped it.

Then I found AutoHotKey. It was not the easiest to use. I did have to read the amazingly well written manual, (and in this day-n-age it seems that no one wants to read manuals, or rather RTFM==design_flaw.)

It reminded me of NSIS (Nullsoft Scriptable Install System) and one I got used to it, (about five minutes) I started to see just how powerful AutoHotKey is. First of all I added:

F6:: Reload ; why isn't this in the default script?

So that I could reload the changes as I hacked them. You see AHK is powered by a simple, yet hugely comprehensive, scripting language.

But wait - there's more! I was thinking, "wouldn't it be nice if I could train AHK." I wanted to be able to do the clicking on the screen and have it just learn. I didn't want to have to use the "Window Spy" that came with it. Well with v1.0.48.05 there is, ( C:\Program Files (x86)\AutoHotKey\AutoScriptWriter\AutoScriptWriter.exe which will do just that!.

So if you have written a program, (or even just a bash script) then AHK will be simple. If email confounds you then www.asoftwareplus.com 's "Auto Clicker Typer" might be more your speed, (though it would not loop for ever, I could get close with ACT by using copy-n-paste to duplicate my three buttons many times, (a few hundred) and then setting the Loop option to over nine thousand.) The biggest problem with ACT was the errors when it tried to access the HKEY_LOCAL_MACHINE\Software\AutoClickerTyper\AutoScript entry in the registry, (though clicking Continue seemed to work in most cases.)

So AutoHotKey is officially added to my list of "good stuff" in the windows software category. Thank you Chris Mallet and others.

Tuesday, 27 May 2014

Nuage

We are each surrounded by information. This data is one way to store, catalogue and process all aspects of our lives. The miasma of data does not belong to us, but the parts that we want and need to store and access certainly can feel very personal. I don't share my pa$$word with anyone. If they have to have access they are issued with their own key.

For the past couple of years, in my spare time, I have been thinking about the most practical ways to store this data.

Then I met tiddlywiki. The moment that I saw how tiddlywiki could work with a server I saw one way to unify all of your personal data; securely store it in a distributed fashion and give others access. Even the configuration was going to simply be another piece of data within miasma, (or rather me-as-data.)

Each atom of information is a "ma" - deliberately still dividable, (literally into two separate letters, but metaphorically this means data systems can divide a piece of data into arbitrary blocks and encrypt and store them as efficiently as possible. (Even extract and re-encrypt if a better or more secure system is discovered.)

Using Shamir's Secret Sharing access can be granted, or revoked to the granularity required by the user.

I wanted the system to be able to store itself on multiple locations and have the flexibility to automatically merge distributed collections between locations and time, (credit to git-scm.)


So each ma of data has to have the option of being encrypted in one or more ways, depending upon the access of the recipient. For example, we can sign the data with one of our secret keys and encrypt the data with the public key of the recipient. For a transitory message, "shall we have pizza tonight?" that is not only over kill, it is disempowering. Communities may agree that certain individuals should have access to that piece of information. [0] Through meta-data mining a corporation could profit from sending your pizza vouchers or some other action, when clearly your message was not meant for public consumption. This is passive corporate abuse, (I'm working hard not to call it digital-rape.) Just because person A's perception of person B is interpreted as communicating one intention [1], it does NOT enter person B into any form of contract with person A and it does not entitle person A to use person B or to push them into having to respond. (Yes, I'm tired of spam, cold-calls and heckles.) There are too many people in the world for society to demand a "no" when a lack of response should equate to "leave me alone, I don't even want to burn through another second of my short existence receiving an apology from you." (Though large cash compensation is fine, as long as you don't imagine that you are purchasing anything. Think of giving money as a modern form of plenary indulgence.)

So as you can see - the moment that you move out of the field of math and into data you have to consider the wider social aspects, (and they are many and varied.)

The Practical

ref: http://cookieclicker.wikia.com/wiki/Cookie_Monster_%28JavaScript_Add-on%29#Using

I envisage a tiddlywiki style javascript overlay that can be loaded from any hosting site, ( github, pastebin, your local USB flashdrive) from a bookmark as an overlay to any, (and all, or just HTML5 Local Storage [2]) data storage, (webmail). That can leverage the remote site as a data storage system, (unsubscribed IMAP tree) to store the various pieces of data encrypted with a symetrical key, (AES) and re-encryptable on the fly, (decrypt -> encrypt{3DES} -> store) the moment that the existing key is compromised or the protocol falls to cryptoanalysis.

The system, (lets call is nuage) will also be able to share collections of data with individuals, (if it is an overlay to a webmail, then it can 7zip the data into an attachment and send it, and if they recipient has the same system, then it can process the message without user intervention.)

Most importantly the system will let you dump a backup to local disk as an encrypted archive, (either encrypted with a passphrase that you chose or with one that you never know that rests within the system's own meta-metadata and is shared to one of your nuage remote locations.)

Lastly - it has to be distributed. A copy can be forked onto or into any and all storage media and self merging. (Yes, that's going to be fun for someone.)

So each "ma" could take the form of

{"ma":"{AES}example_encrypted_data","ver":"0.1","cdate":"201404041228"}

Though it is important that the meta data of ver(sion) cdate, adate, mdate, be optional and that the type of encryption be stated either at the start of the string, (thanks dovecot) or as a separate meta string "enc-type":"elgamal" with the option of the "key ID":"EE87B9F78EFC079FB0A4B4DE4AC889DAFA479164" (there will be times when linking a piece of data with a key will be damaging, so having the ability to leave the user to store that piece of information in their head is important. That said, I've found that addresses and especially passwords should have a data on them, so that the system can let me know which ones have not been changed for $update_pw_after_x_days.)

At other times you want to be able to identify a piece of data so:
{"ma":"{PLAIN}example","sig-type":"elgamal","hash-type":"sha1","hash":"7893883873a705aec69e2942901f20d7b1e28dec"}

(Obviously this would also have to reference the public key in question.)

There is a lot of room for expansion, and thankfully javascript has matured, (and more importantly the libraries now exist) to be able to implement this idea.

[0] police access to encryption keys
[1] "We are both here for the same thing!"
[2] due to the limits of locl storage, a progress bar must be available.

About this blog

Sort of a test blog... until it isn't