Tuesday, 17 July 2012

Flipping the queue and serve model

Restaurants have it right: customers should be seated when being served. How can this model be extended to other retail environments?

For banks and other retain establishments where the customer goes to a service desk (or joins a queue): the store is provisioned with seating in excess of the number of serving staff, with seating in pairs (one for the customer one for the service personnel) or groups (for families). Upon entering the store, a customer takes a seat and is added to an electronic queue (via automatic sensing or the push of a button). The service personel move to each customer in turn to address their needs. Obviously such a store would need to be larger than an existing equivalent, as a standing queuer takes up less space than a sitting queuer. But other than that, the service models are equivalent.

For stores where the customer collects items from shelves, the above model would need to be expanded upon to include a barcode reader at each seat, but it otherwise equivalent.

Sunday, 15 July 2012

Beyond eye-droppers: extracting useful data from images

There are three key elements to images: lines; areas; and gradients. The eye-dropper tool allows extraction of color information, and the clone tool and copying and pasting can be used to extract and use lines, areas and gradients. But most techniques are quite manual. It would be good to have some tools to make it easier.

Capturing lines


The user draws a line over the line they see in the underlying data. These lines can be straight or squiggly. The image program extracts the data from the image to create a line data file. The user can then draw a line (which can be straight or differently squiggly) from that file.

A key feature is that the perpendicular axis to the line is maintained. For example, if in the original image the line is red on the left, green in the middle and blue on the right, then when lines are drawn from the image file the left of the line is red, the middle green and the right blue.

As the line the user wants to draw may be longer than the line captured from the original image, the data would need to wrap around, and be merged into the start.

Capturing areas

The user selects an area from an image. The area can be any shape. A texture file is generated using the copy and flip method to ensure no seams. As the original area is not required to be a square, the gaps must be filled with relevant content.

The user can then draw the area using a brush or fill.


Capturing gradients

The user selects an area from an image and a starting point. The area can be any shape. A gradient file is captured, being the color differential to the starting point of each pixel in the area selected. Any gaps in the area are filled with matching content.

To use the tool, the user selects a starting point and an area, and then applies the gradient. The colors of each pixel are adjusted relative by the gradient overlay.

Auto-extraction

It might be possible to automate these tools with line, area and gradient detection, such that an auto-detect function can be run on an image and a set of line, area and gradient files generated.

A thought on databases

It seems to be that there is a fairly generic database structure that could be useful for many applications whereby every record in the database can link into any other record, with those links being either hierarchical or non-hierarchical.

The database would require three tables: a records table; a hierarchical relationships mapping table; and a non-hierarchical relationships mapping table.

A potential use is a hierarchical tagging mechanism, whereby tags are not a separate class of data to the items they are tagging: they themselves are records in the main database table. A tag can be a daughter of any number of other tags.

When viewing a single record you can see its parent list, its child list, and its related list (i.e. non-hierarchical relationships). It would be possible to do queries such as: show all records that are the immediate descendants of record X and have any kind of relationship with record Y.

Home automation: individuals components and grouping

When home automation eventually becomes mainstream, I would  like to have control down into smallest components, but also be able to apply my own groupings to have control at an aggregated level.

For example, a room will typically have several speakers. I would like to be able to control these speakers individually (allowing me to balance the sound based on where I'm sitting), but also in aggregate (changing the volume for the room up and down).

Likewise, rooms will likely have several sensors, for example several thermometers placed around the room. It might be useful to have one action dependent on the temperature of a particular thermometer, whilst otherse are dependent on the aggregate value (maximim, minimum, average, standard deviation, etc).

A question to ask yourself: Unique offering


Have I got anything unique to offer the world? Obviously the literal answer to that is 'yes', so the question needs qualification: Have I got anything materially unique to offer the world? Have I got something to offer that is markedly different from anything else anyone else has got to offer?

Sunday, 8 July 2012

The multipolar technological arms race

That we live in, and are increasingly moving towards, a multipolar world is frequently discussed in the media. An interesting parallel to this trend is that we are also moving towards an increasingly multipolar technological arms race (technological escalation), with an even broader set of participants.

The WWI naval arms race had a handful of key players (most significantly Britain, France, Germany and Russia), which, after the Triple Entente, really had two poles. The Cold War arms race again had two poles (the USSR and NATO). The sovereign participants in our current technological arms race number in the tens (the G-20, etc).

But in addition to the sovereign participants, we also have private sector participants, criminal participants and grassroots/activist participants (e.g. Anonymous).

Why is this an arms race? And who is racing against whom?

War, and in particular cyber war, still remains a possibility in our relatively peaceful world, driving much of the national technological arms race. Additionally, nations invest technologically to maintain or increase economic advantage over other nations, and to maintain law and order within their nation. In some cases, national technological investment may be undertaken to maintain the power of the ruling/influential elite over the common citizen.

Private sector technological investment is principally aimed at maintaining competitive advantage over other companies. However, there is trend where private sector technological investment is aimed at controlling the consumer (digitial rights management is an example). The private sector invests technologically to protect against foreign nations that would attack the private sector as a proxy, potentially against direct company-to-company cyber warfare, against criminal attack, and against grassroots/activist participants.

Criminal technological investment is principally aimed at facilitating the illegal accumulation of wealth from nations, companies and individuals. Criminal organisations must invest technologically to outwit the technological defences of their targets, and also to build defensive (i.e. anonymising) capability to protect against attacks from governments, companies and white-hat activist groups. There is an overlap between the criminal participants to the arms race and the activist participants, where the criminal intent is not obtaining wealth, but pursuing an activist cause.

The range of pursuits of grassroots/activist participants is broad. It could be: battling against government technology that infringes against freedom of speech; battling against private sector technology that takes advantage of the consumer; battling criminal technology that takes advantage individuals. Patriotic activist groups may support the technological capability of the nation. And in some cases, technological escalation may be directly between activist groups.

Conclusion: pretty much every category is racing against every other category in some way or another.

So what?

Well, as a non-criminal consumer and citizen, the activist participants best represent my interests, perhaps followed by the nation state of which I am a citizen and inhabitant (much potential for debate here!). I already support my nation state's technological investment via taxes, but I don't support activist participants. Perhaps I should, perhaps there need to be more obvious ways to do so, and perhaps there needs to be a wider awareness of the need to do so if the participants who best represent my interests are going to win.


Intellectual conformity

The equilibrium state in intellectual matters is intellectual conformity, as truth is absolute. Intellectual disagreement is caused by: an inaccurate model of the truth; an absence of information on one or more sides; a breakdown in logic in one or more sides. Any intellectual standoff should be solvable by addressing these factors, and an important part of that resolution is diagnosing which of these is the cause.