Thursday, December 22, 2011

Future scenario: personal AI drone cameraman

Here's a possible future scenario.

There's really cheap, light, compact drones (mini helicopter things) with good AI, an on-board camera, and really good battery life. They're quiet, too.

You and a friend go on a hike together, and take one of these with you.

At the start of the hike you take it out and tell it to follow you. (it's got voice control, so you just tell it what to do).

You tell it to take shots every once in a while. Its AI is good enough to compose reasonable shots, ensuring it gets one or both of you in the frame.

Perhaps it can even spot things of interest on the side of the track (e.g a big mushroom nestled in a rotting log on the side of the track) you might have missed.

You come to nice waterfall beside the track so you ask the drone to fly out so it can get a shot of both of you with the waterfall in the background.

It flies out to where it thinks it might get a good shot. It's transmitting the image to your phone so you can see what it looks like. You want it to move more to the left and get a little lower so you tell it that.

At the end of the walk you sit down on a picnic blanket and have lunch together. You figure it'd be nice to get a shot of both of you having the picnic so you instruct the drone to take one.

(and of course that's just one of many possible scenarios, many no doubt with a sinister edge, that such technology might make possible).

Thursday, November 10, 2011

Reframing how digital content is sold

Perhaps we could change how digital content (e-books, MP3s etc) is offered for sale.  Instead of "buy a copy of this item", offer it as "pay for the effort that went into creating this item".

Buying a copy means buying some bits, and since bits sound insubstantial and making copies of bits is effortless, it doesn't sound like it should be worth much money.

But when you frame it as paying the content creator for their effort, that sounds (to me) like something that's worth more.

This is about changing how people view what it means to purchase digital content.  There's obviously a big question about how that could be achieved and I'm not sure of the answer.

One component of that is the user-interface in online-stores.  I wonder if you could replace the 'buy' button with something else?  Replace it with something that suggests you are giving money to pay for the effort that went into creating that content.

Perhaps it could be a 'pay' button, with hover-text saying "pay for the effort that went into creating this item".

Obviously you'd want it to be something pretty short and sweet.


update: I wonder if the visual "branding" used by Creative Commons might serve as a model for this.  There are a range of buttons that represent particular Creative Commons licences (see the image to the right of this paragraph for an example).  Perhaps you could have something analogous to this and by, instead of a 'buy' button, having a special button that represents this notion of paying for the creation of the content instead of for the content itself.

Saturday, September 10, 2011

Idea: hold-and-swipe touch-screen gesture

An idea for a type of touch-screen gesture for phones: the user places their left-thumb anywhere on the screen and keeps it in the same place, and at the same time they swipe across with their right-thumb.

You can think of the left-thumb as acting like a modifier, like the shift-key.  A left-handed person could keep their right thumb stationary and swipe their left thumb - it'd have the same effect.

Each different swipe direction (up, down, left or right) could be recognised as a distinct gesture with its own distinct meaning.

I don't know if anyone has used this type of gesture before, but the benefit of it is that it's quite easy to perform.  Which is one of the challenges with gestures: finding ones that are really quick and easy to do.

Wednesday, September 07, 2011

On distinctions made between 'data', 'information' and 'knowledge'

Someone recently asked me what I thought about the distinction between data, information and knowledge.  I emailed them a response, and I thought I might as well turn that response into a blog post.

I think that it's good to recognise that not all "information" is the same, and that there is a kind of spectrum between 'raw data' and 'deep knowledge'.

But I'm not that keen on all the arguments about how you distinguish between these three concepts.  I just don't think we have a clear enough picture of what *any* of them are to draw sharp lines between them.  I also doubt there are any *sharp* lines to be drawn along that spectrum.

But aren't these sorts of arguments what is required to get a clearer understanding of the concept?  I don't think so.  I think our current understanding of these concepts is a "pre-scientific" one, and that what these arguments are doing is trying to find some set of criteria within these concepts that sharply distinguishes each from the other.  

I think that task is doomed to failure.  Here's aanalogy: when philosophers had a "pre-scientific" understanding of matter, they could get into all sorts of arguments about what was the difference was between liquids, solids and gasses (this is a thought-experiment, I don't know the historical details well enough to know specifically what happened).  But they were never going to solve the problem just trying to find some criteria to sharply distinguish these concepts from each other.

We now know that what was required was to get an understanding that we'd now label with terms like 'chemistry' and 'physics' -- an understanding in terms of molecules, atoms, etc.  What was required was to go deeper than their phenomenal concepts of 'liquid', 'solid' and 'gas'.  To have an understanding of what each of those things actually are, rather than just how to distinguish between them.

So, in the case of data, information and knowledge we need to go beyond our phenomenal notions of them and get at their "underlying physics", so to speak.  And when we do so we may find that -- like with 'liquids', 'solids' and 'gasses' -- there is an underlying unity there.

Nassim Taleb on the lack of respect for those not doing steady and predictable work

Our society doesn't really understand work that doesn't deliver steady and predictable results.  People working away on this kind of work tend not to get much respect.  This is a real problem, because such work is essential to society.  In The Black Swan, Nassim Nicholas Taleb nicely describes what it's like for people having to deal with this lack of respect:

     Every morning you leave your cramped apartment in Manhattan's East Village to go to your laboratory at the Rockefeller University in the East Sixties. You return in the late evening, and people in your social network ask you if you had a good day, just to be polite. At the laboratory, people are more tactful. Of course you did not have a good day; you found nothing. You are not a watch repairman. Your finding nothing is very valuable, since it is part of the process of discovery—hey, you know where not to look. Other researchers, knowing your results, would avoid trying your special experiment, provided a journal is thoughtful enough to consider your "found nothing" as information and publish it. 
     Meanwhile your brother-in-law is a salesman for a Wall Street firm, and keeps getting large commissions—large and steady commissions. "He is doing very well," you hear, particularly from your father-in-law, with a small pensive nanosecond of silence after the utterance—which makes you realize that he just made a comparison. It was involuntary, but he made one. Holidays can be terrible. You run into your brother-in-law at family reunions and, invariably, detect unmistakable signs of frustration on the part of your wife, who, briefly, fears that she married a loser, before remembering the logic of your profession. But she has to fight her first im­pulse. Her sister will not stop talking about their renovations, their new wallpaper. Your wife will be a little more silent than usual on the drive home. This sulking will be made slightly worse because the car you are driving is rented, since you cannot afford to garage a car in Manhattan. What should you do? Move to Australia and thereby make family re­unions less frequent, or switch brothers-in-laws by marrying someone with a less "successful" brother? 
     Or should you dress like a hippie and become defiant? That may work for an artist, but not so easily for a scientist or a businessman. You are trapped. 
     You work on a project that does not deliver immediate or steady results; all the while, people around you work on projects that do. You are in trouble. Such is the lot of scientists, artists, and researchers lost in society rather than living in an insulated community or an artist colony.
(pg 86)

     Many people labor in life under the impression that they are doing something right, yet they may not show solid results for a long time. They need a capacity for continuously adjourned gratification to survive a steady diet of peer cruelty without becoming demoralized. They look like idiots to their cousins, they look like idiots to their peers, they need courage to continue. No confirmation comes to them, no validation, no fawning students, no Nobel, no Shnobel. "How was your year?" brings them a small but containable spasm of pain deep inside, since almost all of their years will seem wasted to someone looking at their life from the out­side. Then bang, the lumpy event comes that brings the grand vindication. Or it may never come. 
(pg 87)

This touches a nerve with me, as my research is definitely a long way from the steady and predictable, though I would say that I've been pretty fortunate in that I have had support and understanding from people.

Thursday, August 25, 2011

The sound of things just out of reach

#music. Songs that evoke a sense of things just out of reach, whether hazy childhood memories or something ethereal. All the songs here share a family resemblance that is best exemplified by Boards of Canada's music.

Memories of times past.

The bittersweet beauty found in desolate isolation


Subtle Euphoria

Also somewhat similarly evocative

Sunday, July 17, 2011

iPhone app idea: "flow forms"

Some iPhone app ideas. Feel free to make use of them. If you do, an acknowledgement is all I'd ask. I'd play around with some of these ideas myself, but my PhD is what I need to focus on at the moment.

"Flow forms"

This idea is for a novel (at least as far as I know) type of UI for tasks like adding new expenses in an expenses app, where each time you do it you choose from the same set of options and you frequently perform the task.

The point of it is to make doing the task as fast and fluid as possible.

It aims at doing this by removing two sources of friction that you find in the existing form-like UIs normally used to perform these sorts of tasks.

How the normal UIs work. There's a screen for the form, showing the different fields. You tap a field to be taken to a screen for the various options for that field. After you've chosen a value for the field, you're returned back to the main screen for the form.

Friction 1: you have to complete a task before you can see the screen for the next task. A task is either tapping a field to select it, or tapping a value for the field. So you have to tap a field's name before you can see the screen for choosing the value for that field. So when you go to perform that next task you have to take a little bit of time to survey the layout of the screen and find the item you want. Even if you're familiar with the screen's layout and roughly where the item you want is located on it, it still takes a little bit of time to find that item.

Fiction 2: a lot of finger movement. You have to move your finger around a bit - to tap a field here, to tap a field-value there, and so on. This doesn't sound like adding friction, but I think it is something that can be reduced.

These might not sound like much, but if you're frequently using the same form these things start to feel tedious.

The basic idea of the proposed technique.

The form would be just one long page, which would continuously scroll up the screen. Below each field name would be one or more horizontal bands, each divided into equal-sized cells. Each of those cells would represent a different value for the field. To fill out the form the user just needs to slide their finger to the left or right as the form scrolled by.

Essentially the user only needs to move their finger along one dimension, thus simplifying the task. And all they need to do is select field values. They don't have to tap to go to the next field. And the hope is that if the next field is visible on the screen while they're entering the current one, they will have some sense of where the items of a field are located before they come to select them.

Here's some more specific details of one way it could work:

  • the line for selecting a field's value would be divided into N equally-sized segments, where N is the number of different options. (if there were too many options I'd be split up over multiple lines).

  • probably have these lines fairly thick - like 2.5 cm, so that the user has a fair bit of time to select the item as it scrolls past.

  • each segment would contain an icon (or short-description, if there is one) representing the particular value.

  • when the user has their finger on a segment, it would show a label describing the value.

  • the user could swipe their finger across a line to see the descriptions of all the items.

  • if the user made a mistake or missed entering a value for a field, they could scroll the screen back down just like they do in other applications.

  • perhaps they could also be a way to pause the scrolling.

  • perhaps the user could flick their finger up (just like they do in documents on the iPhone to scroll down) to quickly move down to the next field, once they've selected a value in the current field.

  • the user may not want to enter the values for all of the fields. if they've only entered a couple of fields and want to save the record, they could click a save button (or perhaps a two-finger sideways swipe).


  • how to handle the input of numbers? Would it just scroll a keypad into view and then pause the scrolling while you enter in the value? Or could number-entry also be handled in a similar fashion to the rest of the form entry?

    • it could show eleven choices across two rows: one for each of the ten digits and one for the decimal point.

    • if after you selected on of those you moved your finger over to a 'gutter' area on the side of the screen it would assume you'd finished entering in the numeric value.

    • but if you instead kept your finger within those gutters it would add another two rows for selecting another digit or decimal place.

    • the above process would continue on until you'd finished entering the number in.

    of course the question is whether this, or some alternative, would be convenient and fast enough.

  • similarly, how to handle the input of textual values (such as for a 'note' field for an expense item)? Would it just scroll up a keypad and a text area and pause the scrolling while you enter in the value? Or might there be useful way of entering it in a 'flowing' fashion, like I described concerning entering in numbers?


  • ideally it would show the fields in an order such that the most commonly used fields come first. I typically just enter two field values, and if these were the first two that came up I could just save the record after I'd selected values for them.

  • since the user is likely to buy the same item a number of times (e.g. I buy the same coffee everyday, or I might get a packet of chips every day) their muscle memory may be able to learn the path their finger traces out to enter the expense for that item.

  • to make entry even faster, you have an option to control the speed it scrolls at. As you got more familiar with it you could increase the speed. Perhaps there could be a speed-control slider that sat at the top of the screen next to the save button. It could even have a setting to automatically -- but gradually -- increase the speed over time. For example, it could get gradually faster every month.

Another question I have is: are there any other sorts of tasks or apps that this kind of UI technique might be useful for?

And finally, obviously it'd require a lot of experimentation to figure out how best to have the UI work. There's lots of different ways the basic idea could be done. Hopefully there would be one that is workable and which would make the task quicker and easier to perform.

iPhone app idea: "battlechat"

Some iPhone app ideas. Feel free to make use of them. If you do, an acknowledgement is all I'd ask. I'd play around with some of these ideas myself, but my PhD is what I need to focus on at the moment.


An app for a kind of verbal battle amongst friends.

I'm thinking of like the verbal battles rappers do. I'm also drawing on my own experience when I used to be bored at work I used to have a lot of email conversations with a friend that basically came down to creative ways of insulting each other.

So this'd be an app that was like a mix between real-time (textual) chat between a bunch of friends, but with some competitive elements thrown in, to make it a bit game-like.

There'd be lots of different ways you could do this kind of thing, and getting it right would probably involve a lot of experimentation.

Here's one possibility.

The game is played in rounds. Each round lasts a set amount of time (e.g. 15 seconds). Players can type in whatever they want to say. And obviously they can make comments on what the others say.

At the end of the round, the players anonymously vote on who said the 'best' stuff.

The more 'votes' you get, the more "ammunition" you can use and you can choose who to expend it on. Players would start off with some amount of health and when they're 'fired on' they loose health. They get knocked out when their health reaches zero, and have to sit on the sidelines, so to speak.

Last person standing wins.


I can imagine the players being represented by their twitter or facebook picture, but with cartoon facial expressions and arms and legs attached to them (the facial expressions wouldn't have to be matched up with the face in the picture, or wouldn't even require a face in the picture, for the effect to work, I suspect... the idea is to do it for comic effect). Then when they're hit with some ammo, the cartoony facial expression shows an expression of pain, falls over, etc.

After thinking of this idea I came across which while very different also works on the idea of adding game-like elements to more socially-oriented activities. That's a general area that could be explored.

iPhone app idea: 'ground control' side-scrolling car game

Some iPhone app ideas. Feel free to make use of them. If you do, an acknowledgement is all I'd ask. I'd play around with some of these ideas myself, but my PhD is what I need to focus on at the moment.

'ground control' 2D side-scrolling car game

In this game the player doesn't control the car, but the ground level. Sliding their finger up raises the height of the ground at that point, and also increases the slope of the ground leading up to that point. Sliding their finger down lowers the ground level.

The screen is constantly scrolling across with the car always moving forwards. The car might always sit about 1/3 in from the left of the screen.

Steeper uphill makes the car move slower. Steeper downhill makes it go faster. A small uphil can be used as a jump, making the car fly through the air.

These techniques could be used to make the car avoid static and moving obstacles, jump over crevices, etc.


update, 02 Aug 2011: I just heard about the game 'Bumpy Road' which works using this kind of mechanic (see the video on the linked page). It seems to use the mechanic in a different way, though. It seems it as effectively like an alternative to having a 'jump' button. I was thinking more of it as a way of changing the landscape ahead of the car, to speed it up or slow it down or to create ramp-like jumps.

update, 10 May 2012: The iOS game Contre Jour involves a mechanic where you raise and lower the ground-level.

Sunday, June 19, 2011

Chinese Steamed Sponge Cake

Chinese Steamed Sponge Cake

This simple cake is mildly sweet, and has a mild, slightly eggy flavour. It also has a somewhat unique texture.

My mum used to make it sometimes when I was growing up, and I've always liked it. I haven't seen it in Chinese restaurants or bakeries, so many people would probably have never seen it before.

I'm afraid I don't know what recipe book this recipe was originally from. I've just got a photocopied page of this recipe.

  • eggs, 4

  • sugar, 1 cup. brown sugar is probably better for this

  • oil, 6 dessertspoons

  • milk, 6 dessertspoons

  • plain flour, 1 ½ cups

  • baking powder, 1 tsp

  • Beat the eggs and sugar together until thick.

    Add the oil and milk.

  • Sift the flour and baking powder.

    Stir it into the egg mixture till smooth.

  • Pour this mixture into a 9 inch sponge tin

    • (or you multiple smaller containers, like small ramekins).

    Leave the tin uncovered.

  • Steam it for 25 minutes

    • e.g. put the tin into a large saucepan and let it stand on a small rack above the water.

It seems to be a bit tricky to steam the cake long enough that it is cooked inside (and not sticky) yet not too long and have it dry out too much. You might have to experiment a bit with the timing. Also, if you cook it in multiple smaller containers, like small ramekins, it obviously will cook the center of the cakes more quickly.

Other versions of this recipe

Monday, April 11, 2011

Making Vim copy all yanked text to the system clipboard

In addition to the usual cut and paste operations found in most other editors, Vim has a 'yank' command that can be followed by a motion operator.

So you can type yw to copy a word to the clipboard, or y3w to copy three words, or yip to copy the current paragraph to the clipboard, and so on.

Which is useful. But by default the text copied by the yank command is only accessible from within that same instance of Vim.

So if you've opened another instance of Vim in a new window[1] and you want to paste the text into that, or you want to paste it into another program, you can't.

An IMO problematic solution is to set 'unnamed' in the 'clipboard' option in your .vimrc / _vimrc, like so

set clipboard+=unnamed

this works but it has a downside - it also means all deleted text gets sent to the system clipboard.

Most of the time I delete text because I just want to get rid of it. When I tried setting this option I kept overwriting the clipboard contents (that I did want) with the deleted text that I didn't want.

And if you do actually want to delete text _and_ copy it to the clipboard you can use a cut command - i.e. C-x. So set clipboard+=unnamed doesn't seem like a good idea.

Here's a better solution, that just ensures yanked text is copied to the system clipboard. Just add the following line to your .vimrc / _vimrc:

nnoremap y "+y

The "+ tells Vim to yank into the + register, which is the system register.

[1] I know many people like to work within one Vim instance and use splits/buffers and tabs to arrange their files, and may want to suggest this as an alternative, but I find it very useful to work with multiple Vim instances. It's a long story, but I like to be able to spatially arrange the (OS)windows in a certain way that reflects the relationship between the files in them, and you can't achieve what I want with a single Vim instance.

Tuesday, February 15, 2011

idea: personal subject-lines for emails.

#gmail. Some emails you just read the once and never come back to them. Other emails contain information you'll want to reference in the future, which means you'll need to be able to find them again down the line.

There's lots of things that help in your search for an email - like knowing roughly when it was sent, so you can scroll down to that point in your inbox, or knowing terms mentioned in its body, so you can search on them. Sometimes you scan the subject-lines of the emails in your inbox or search results.

But sometimes those subject-lines are aren't very informative.

Some are just too generic (like "hi"). Or they may just not be specific enough for what you're looking for.

At the times when you know you'll want to find an email again later on, and it's obvious to you that the current subject-line isn't going to be that helpful, it'd be handy if you could stick a 'custom subject-line' over the top of the existing one.

After you'd added this custom subject-line in your inbox, that's the subject-line you'd see for that email, but it'd be clearly distinguished to show that it wasn't the original subject-line, and there'd be a way to find out what that original subject-line was.

As with any possible feature addition, the question is whether its benefits exceed its costs. This feature would be handy in some situations, but is the additional overhead in the UI and effort to come up with and type the new subject-lines worth it, for example? I doubt you could really tell if it's worth it for a feature like this unless you tried it out. You might get some idea from thinking through, in a lot of detail, scenarios of what the UI and usage-experience would be like if it existed.

Sunday, February 06, 2011

Idea: drag'n'drop merge of gmail conversations

#Gmail allows you to drag and drop the conversations in your inbox (for example, you can drag a conversation to a label, to apply that label to it). It'd be great if you could drop one conversation onto another in order to combine them.

Recently I've been planning a holiday with some friends and this planning, and the associated details, like confirmations of flight bookings, spans several separate email conversations.

If I could put them all together in one place it would make it so much easier to deal with the information. (I've submitted this idea as a feature suggestion to the gmail team).

(for interest's sake, the planning is for a trip to South Australia).