More random ideas

Another bunch of random ideas off my chest. If interested, check out the previous set also, or the web app ideas before them. The usual disclaimers apply…

1. Facebook downvote button

Obligatory disclaimer: I don’t have a Facebook account. But I did have one for a short period, so I have a rough idea what it is about. Unless things have changed dramatically, what is sorely missing is the dislike button. Of course it goes against the feel-goody nature of the whole experience, so probably it will never be added.

On the other hand, many elements that are “likable” are also commentable in some way. So the idea is a browser plugin that adds the thumbs-down button within the browser (something like a GreaseMonkey script). When the user clicks it, it writes a comment with the text “I don’t like this”. Those who have the plugin installed will have these comments hidden and only see the dislike-count summary of them. Those without the plugin will see the comments, which make sense on their own, so the whole system degrades gracefully.

2. Software feature matrix

This one is a website built around the idea of unbiased comparison of products. It groups existing software or web apps into categories and lists a large set of agreed-upon features, ticking those that a software product implements, with extra information where it does not fully implement it, etc. Such tables have been written for many categories of software, for example this list of CMS software on wikipedia, but the hypothetical website would contain tables for every imaginable category, both Desktop software and web apps, with up-to-date price information and many other features. How to collect the data and how to ensure the information is unbiased, are nontrivial questions, but if done well, such a website could be quite useful.

3. Namespace explorer

There exist very good services that help us in coming up with domain names for a project. However, nowadays you might also want to ensure that you can find a matching account name on Twitter, Gmail, Facebook and who knows what other services. This application would suggest names that are available on all these services and would automate to some extent the creation of accounts. Some intuitive navigation interface or visualization of these namespaces to help find available names.

4. Paper airplane simulator

Software for modeling paper airplane folding and simulation of their aerodynamic behavior. Additionally, a system that comes up with new folding designs, evaluates and improves them using genetic algorithms or other optimization techniques.
Karl Sims’ evolved creatures meet Robert Lang’s origami work.

5. Juggling tricks optimizer

And you thought the previous idea was childish and useless. This one supposes a rich language for describing the mechanics of juggling n balls. Basic siteswap notation (although beautifully compact) doesn’t capture the full range of possible patterns. The hypothetical language could describe throws, catches, multiplexes, hand movements, the anatomically possible range and speed of movements and the physical plausibility of every ball trajectory, possibly including collisions.

Using this language we can describe any juggling pattern ever performed in the past or in the future. Now all we need is a pair of scoring functions. The first function tells how difficult a pattern is (described as a string in our language), based on the speed of movement, the resting time between throws/catches and various physiological considerations. The other function tells how interesting the pattern is. I am not even speculating on how such function would look like. Interestingness is related to difficulty, but there are some easy tricks which are very nice (and vice versa), so there is something more happening here. Having these components in place (a big if, I know), we can start optimizing using our favorite genetic algorithm from the previous idea.

The system then invents the most interesting, most hard to perform (but possible!) juggling trick. Then it designs the most interesting – yet easy pattern. Tweak the two functions, optimize again, invent, juggle, etc.

6. Car parking game

A simple game (mobile or desktop) with realistic mechanics but extremely simple graphics and control. Actually control would not necessarily be simple, but it would instead resemble the control of a (manual) gear shift car with the 3 pedals and all. The cars are basically rectangles, but the acceleration, steering, braking, collision are realistic as much as possible. Possible tasks include parking in some small place, side-parking, turning in 3 steps in a small place, etc. etc.

Also suitable as a programming project for children.

7. Song illustrator

This plays on a misconception I had when I was 4 or 5. I was familiar with audio cassettes, from which I would listen to stories and songs for children that my parents would put on for me to hear. I had heard about video players before, and I vaguely understood that they are playing moving images (I was familiar with TV already), but I seriously misunderstood something: I thought that video players could play the same audio cassettes I was listening to (say, “The Little Prince”, being read by someone). As they played the audio cassettes, I thought they would render the moving images on the spot, creating vivid animations similar to those I imagined upon hearing the text (or more interesting). It never crossed my mind that in order to have a video version, a bunch of actors would have to go through the trouble of acting it all out in front of a camera. That is so much worse than the way I originally imagined it.

So this idea is a modest version of the original concept: take a song together with the lyrics, feed it into this program, which then creates a video for it automatically and synchronizes it to the music. As a first approximation it finds Flickr images corresponding to the words from the lyrics and makes a slideshow out of those. I know, reality is not so interesting sometimes.

8. Visa matrix

Back to more realistic waters, this one is a useful tool for world-travelers and world-citizens. If there are 200 countries, make a 200-by-200 matrix, where the column shows your citizenship, the row shows which country you want to travel to and the entry shows what document you need to travel there. For a summary view (for example as a printable poster), the entries can be color-coded: from green to red showing “no document needed”, “passport needed”, “visa needed”, “entry not allowed”, etc. In the online version the cells contain links to the embassy websites where more information is available and the visa application can be initiated. All the necessary information is publicly available already, it is just not collected (as far as I know) in one place like this.

9. Online store where you can negotiate

Extremely half-baked, I am thinking this out as I write it down. They say “everything is negotiable”. While that holds only in a limited way, say in a usual mall in North America, it is very true in a bazaar, in the other side of the world. The price you get depends on how much you need it, how desperate the seller is to get rid of it, your and his/her negotiation skills and many other factors. While not all of these can be captured in an online store, certainly some subset of it could be. Currently the online stores give “offers” to you, which is too rigid. They might even give personalized offers, knowing your shopping history, personal data, etc.

In many cases, however, they might be perfectly willing to sell the product at a cheaper price if they knew for sure that I was not going to buy it for anything more than that. On the other hand they want me to pay the maximum amount that I can afford and that I am willing to pay. Probably there are legal restrictions on the exact ways to perform such price segmentation, but in theory there could be an online store where I can make a counteroffer: “oh no, I’m not buying that e-book reader for $129, I’ll pay $99 maximum, and that’s it. At most, I can spend another $20 to buy some books, but that’s all I can spend today. Take it or leave it.” Once an offer is made (from either side), it is binding. The online store would have my purchasing- as well as negotiation history, so it could decide whether it would take my offer or would rather make a counter-counter-offer and so on, ad-infinitum.

10. Random wiki image as wallpaper

Wikipedia has a nice “Random article” feature, that can easily take information-addicts on an hours-long semi-pointless article-hopping ride. Something slightly less addictive is the WikiMedia random file feature:

The results are mostly images. You clicked it? Now click it again! A slideshow of these would make a nice, educational screensaver or periodically-updated wallpaper. There should be some check to filter out images that are too small, that are obviously uninteresting (such as portions of maps or flags of countries), and some context would be nice also, such as title, description, maybe titles of a few of the linking articles.

EDIT: I made this:


#1 Mike Rhoads on 02.15.11 at 9:43 pm

The Facebook dislike button will never happen. They’ve invested too much effort into getting big brands to covet “being liked”. Giving users the ability for users (or competitors) to start dislike campaigns on brands and organizations will turn them off completely.

Also, between users the dislike button provides an easy way to give negative feedback. There are too many use cases that just shouldn’t allow for negative feedback at the risk of pissing off users (ex: the ability to dislike a photo of someone’s new born baby).

#2 lkozma on 02.15.11 at 9:49 pm

Mike, I agree, but what I was suggesting was something that a good programmer could throw together in a few hours and would work even without Facebook’s blessing, i.e. it would basically just automate the writing of an “I don’t like this” comment, which you can already type in whenever you want.

#3 lkozma on 05.08.11 at 9:45 am
Visual poetry is like #7.

#4 Bouke on 07.09.11 at 2:32 pm

The wallpaper thing is actually pretty awesome, I might have to make that!
I now have this as my wallpaper:

#5 pwb on 07.09.11 at 4:04 pm

For #9 we are providing “falling price schedules” which is kind of a form of automated negotiation. See

#6 lkozma on 07.19.11 at 9:44 pm

@Bouke, I just finished a simple implementation of that idea, if interested, take a look:

#7 Jim Demello on 12.10.17 at 7:50 am

I have a question about Shannon’s juggling theorum: does it also hold true for a shower pattern?