.: An idea in need of an implementation | 2003-02-20 03:44PM :.
Background - Today I was talking with a friend, Jim, and he had an awesome idea. I think it's just too good to go unimplemented. The basic premise is that anybody can, via mobile devices connected to the internet, leave "notes" that are tied to certain geographic locations. People that visit the location can read the notes others have left.
The basics - I feel like expanding upon the idea and providing an implementation. So here are my thoughts. Basically, the database would tie comments to a certain location in the world, and comments would be posted from mobile devices equipped with GPS receivers. People would be able to query for notes of certain types within a certain radius of their current location, search them for keywords, etc. Each comment would have at least one category or keyword associated with it, so that messages could be grouped and filtered using predefined categories.
The service could be used to comment on the quality of restaurants in the area, or whatever. Given that a client could be set up to poll the server every so many minutes and alert the user when messages matching certain criteria are found, it could be a way for the user to find locations offering wanted services while doing nothing more than walking/driving around town. Somebody busted for running a stop sign could even check to see if anybody else thought it was hard to see and possibly use that in his defense.
Anonymity and the spam problem - The main problem I see is weeding out spam and other messages that don't belong in the system. I don't see a way to do this if everyone is anonymous, except by applying a blanket message filter. That may not be such a bad idea, given that filters like the one I implemented for my own email are surprisingly effective. The filter could even have a separate data set per category to help it weed out messages that don't belong in that category. Unfortunately, people may eventually find ways to craft messages to get around the filter (creating an ongoing maintenance problem in training the filter), and it doesn't really help in removing messages that don't look spammy, but are just plain incorrect.
So, a fully anonymous system is unlikely to work. I think the best way is some kind of moderation system. I'm going to have to look into various systems, like those implemented by Slashdot and Everything2. I'm thinking that, like Slashdot, anonymous posting would be allowed, but nobody would be able to see it unless it was useful enough to be moderated up, or you wanted to see anonymous messages. Messages posted by newly-created accounts would have a higher score than those posted anonymously, but still not one high enough for the messages to be visible to the general public. A person would have to gain credit by having it bestowed upon them by others. Messages posted by people with higher credit would have a higher starting score, and the votes of people with more credit should weigh more in determining the score of a message. People with higher credit would also be able to post comments more often.
What I have to think about, though, is how to prevent people from artificially inflating their own credit, while still presenting an incentive to give credit to other people. If there is a finite amount of credit in the system, that would probably go a long way towards preventing people from being able to create tons of accounts and give all their credit to the main spam account. However, it may also cause people to be too stingy about giving their credit away to others. Perhaps a good compromise would be that users above a certain credit level gain credit over time at a rate proportional to their current credit level. For instance, users with at least 50 credit (say credit goes from 0 to 100) gain interest on their credit. Thus, users with more credit would gain credit faster (although credit would be capped at some maximum, probably), and newly created accounts would gain no credit at all. If new accounts gained credit, even very slowly, people could create tons of accounts and use them to snowball into a massive spam machine.
The human aspect - This tool could be a great boon to socialization (and perhaps more seedy activities as well...), so the ability to expose personal information to other users would be a desired feature. Of course, people should be able to choose exactly what information is revealed to other users, including whether they even show up on other people's "radar". Given that the system would operate using GPS devices, you could search for other people in your area, or have the system alert you when somebody matching certain criteria enters the vicinity. I think to be truly useful for socializing, though, there needs to be some kind of instant messaging system, by which you can send a message to one or more people matching your criteria. You could even find people offering services this way.
Now, if only I could think of a name for the system, I could get started.
.: capsules | 2003-02-20 05:04PM :.
Since my mind has been on collision detection lately, it occurs to me that periodically polling your bounding sphere is a poor way to collect nearby nodes. A better (but still not perfect) method to make would check for nodes within a certain distance of the line segment defined by your current position (T) and the position of your last check (T-1). Assuming you walked in a straight line, that should give you all the data that was nearby at any point between T and T-1.
.: Got a name | 2003-02-20 09:01PM :.
I've got it! I'll call it globlog! The "globe log".
.: lack of motivation sucks | 2003-03-10 01:18PM :.
Well, about 10 minutes after the last post, I created the database to hold all the data. But I've been too lazy to create any kind of API to access the database. Being unmotivated sucks.