Various ideas

This is a listing of various ideas of mine that I haven't had the opportunity (i.e. time and energy) to actualize. Some of these would-be projects will probably never even be started. Nonetheless, I think some of these things would be nice to have around. Therefore, and in the name of openness and freedom, they are free for the taking, so to speak. If you think you will be able to to make any of these thoughts, most of which are not very carefully laid out, I'm afraid, a reality, please, by all means, go right ahead!

Free Image Stock

Some time ago I got a digital camera (a Canon Digital Ixus V3), which is a lot of fun. I started thinking about putting images of various everyday items (such as bananas) online, creating a stock of free images for use by anyone for anything.

There is already a lot of places on the web where you can get images free of charge, but everything I have found (though I haven't really looked that carefully) is either rather specific or comes with undesirable restrictions on how you can use the images.

I want to provide images that are either in the public domain or covered by some non-restricting license (e.g. the Creative Commons Attribution Share-Alike license).

What exists today?

There is a number of sites where you can get images already. Some of these are in the public domain, some are restricted in various ways. This list is not comprehensive; use Google!

What needs to be done?

I could just start putting static pages up with photos and thumbnails as I shoot them, but in order to make this kind of thing worthwhile it probably needs to be a community effort. People would be able to upload images, descriptions and other meta-data, comment the images, rate the quality and so on.

Here is a short summary of what needs to be provided:

Social Intents Advertiser

Sometimes when you want to do something together with someone—e.g. catch a movie—it doesn't really matter with whom you do it. It's what rather than who that matters. What you usually do then is pick up the phone and start calling your friends, but as it happens, they're too busy, tired, uninterested in that particular movie or whatever, or maybe you're just too lazy to call people.

Sometimes you wouldn't know whom to call anyway.

Wouldn't it be nice to have a way to let people know what you want to do and that you want to do it with them? Sometimes this would be broadcasted to the world (i.e. anyone who's listening), and sometimes it would just be sent to the select few that you have listed as friends (of some degree).

I'm imagining a protocol and software that would let you store what you want to do and what group of people with whom you're interested in doing that particular thing. It would run on various kinds of mobile and Internet-connected hardware, such as smartphones, palmtops and wireless laptops and would use the Internet or whatever means of communications that is available to communicate your wishes to people on your contact list or whomever happens to be nearby. Perhaps Zeroconf could be used to establish connections with others using whatever connection method is available, e.g. IEEE 802.11, Bluetooth and IrDA.

They way it would work is that the software lets you describe semantically the activity you are interested in and the relevant group of people with whom you want to perform said activity. Then the software starts looking for matches, until one or more is found, all possible candidates for matching are exhausted or a specified time limit (or perhaps another resource limit) is exceeded.

A couple of examples are in order.

The Visit to the Cinema

As mentioned before you want to see a movie—probably a particular movie, but perhaps any movie in some specified genre. The semantics of the activity are very simple to model in this case. Depending on you preferences, you probably want to see the movie only together with someone you know fairly well. Therefore you select acquaintances above a certain degree (which could be a numeric value or a description such as "friend" or "close friend") as your target audience. You probably also select a time frame, such as anytime today, but as soon as possible, or this week between 18.00 and 22.00. You might also select a geographical limit, such as within one kilometer of your home or within the city border. (In a more complex scenario the software might know that you will be traveling during the specified timeframe and use a time-dependent geographical limit mapped to your itinerary while searching.)

Now the software knows enough about your request to start searching for matches. In this case the target audience is well-defined, and the software just needs to find out where the potential matches are, and how they can be contacted. This could be solved using a peer-to-peer model or a client-server model with a global hub to which everyone is connected (or connects intermittently). When potential matches are found, the software sends them a message explaining your desire to catch a movie. Depending on how intrusive they have configured their software to be (which might depend of their level of relationship to you), they might be presented with your message as soon as it arrives, or their software might check first if they are available at the particular time and if they will be in your vicinity before bothering them with your request. They might also have configured their software to know that they are always interested in seeing a sci-fi movie (or whatever) on weekday evenings unless they have scheduled something else or have to get up early the next morning. That way their software will only present them with your request if it mathches such a preconfigured declaration of interest.

The Date Finder

Another—and quite different—use of the software might be to find someone you don't yet know. Perhaps you want to find another single of the opposite sex to have a drink with. You could specify what you're interested in, what you do for a living, what kind of personality you have (or believe yourself to have)—in general what kind of person you are. You could also specify what you are looking for, e.g. a partner or just someone to hang out with. Thus whenever you are in the vicinity of someone else running the software you would advertise your intents, and if there is a match between your description of yourself and what the other partner is looking for (and vice versa) the software will notify you. If you think that kind of instant discovery would be too embarrasing and sudden, you might configure the software to just exchange contact details with possible matches for your (and their) later review.

Technically, this would be a peer-to-peer situation where the software uses whatever means of communication is available to exchange data with everyone you meet. Of course you could also use the Internet-connected hub model of above to do an exhaustive search, but that wouldn't differ from existing date-finding services of today. The benefit and uniqueness of this system would be the possibility to discover matches on the fly.

Issues

The most difficult part of this project would probably be writing software that allows the user to specify semantically strong statements about what they want to do and with whom (and when, where and how) in an easy-to-grasp, intuitive way.

Security would of course be an issue. If you have restricted the target audience, you don't want anyone passing by snooping on what you are communicating. A PKI would definitely be needed.

Designing the software and protocol for this system would probably not be easy, but the rewards are exciting. I think this has the potential to change socializing in a way similar to the cell phone during the nineties.


Andreas Ehn

I support the Web Standards Project and Burn all GIFs.
Valid XHTML 1.1! Valid CSS! Mandatory disclaimer