Microspeak: Science project


A science project is a feature that is really cool and challenging from a technological standpoint but is way overkill for the end-user scenario at hand.

Back in the late 1990's, a bunch of us cooked up this idea for a networked screen saver that ran at night after most people had gone home from work. You told it the physical location and compass orientation of everybody's monitor. The networked screen saver created a virtual red bouncing ball that traveled around the building in three dimensions. The screen saver showed a viewport into the three-dimensional virtual world that contained the bouncing ball.

This is a clear example of a science project: Nobody's going to sit there and type the positions and orientations of every computer monitor in the building. Even if we wrote this screen saver, nobody would actually use it. Most of the enjoyment is in actually writing the screen saver than in actually running it.

One type of science project has high set-up costs for low benefit, like our bouncing ball screen saver.

Another type of science project requires hardware that very few people have right now. For example, "If you have a tablet connected to at least two touch-enabled external monitors, then you can..."

A third type of science project is simply trying to solve a problem that nobody really considers to be a problem. You're doing it just for the Gee Whiz factor. For example, "If you have a pair of Bluetooth headphones, and you walk back into range of your computer, the computer can automatically unpause your music." Yeah, I guess you could do that, but it also means that while you are away from your computer, you're walking around looking like an idiot because you're wearing headphones.

Now, there may be an actual useful feature hiding inside a science project, but until you find that feature and bring it to the surface, what you basically have is a science project.

Comments (31)
  1. John says:

    Kind of like bolting phone/tablet features onto a desktop OS?

  2. Jeff says:

    The bluetooth headphones/pausing music made me think of something I always wanted in Windows: when I lock my workstation, media player (or iTunes, or whatever is playing my music) should automatically pause my music.

  3. Roger Lipscombe says:

    @Jeff: I wrote an app that stops Windows Media Player when I lock my PC. Basically, handle WM_WTS_SESSION_CHANGE, with wParam == WTS_SESSION_LOCK. Then FindWindow("WMPlayerApp") and SendMessage(hWnd, WM_COMMAND, 0x4979, 0). It only works with Windows Media Player, and it stops, rather than pauses the music, but it stops my workmates unplugging my headphones when I walk away from my desk and leave the music playing.

  4. @Roger: There's a whole menagerie of media messages you can use, one of which will pause the music. Even better, it works with any media player that supports them. There's a whole list here: msdn.microsoft.com/…/ms646275%28v=vs.85%29.aspx

  5. DougB says:

    We used to have a person who would leave their phone charging in their cube, playing music while they walked around the room with their bluetooth headphones. All of sudden their music would come blaring out of their cube at full volume because the person had walked out of range for their bluetooth headphones and no one could turn it off because their phone was locked. After the third time they forgot about this "feature" we just unplugged their phone and took the battery out. Problem solved. Of course he wasn't too happy when he discovered that a) his phone wasn't charged and b) his reminders weren't working, and c) everyone was going straight to voicemail when they called.

  6. Vilx- says:

    @Jeff – I've been using a Winamp plugin for this purpose for ages. Bonus points – if the currently playing music is a live stream, it is stopped instead of paused.

  7. John, nice point about the Windows 8 Start Screen I presume :) I agree, but have to consider mitigating factors. The Start menu gets too big and the Sidebar gets a bit difficult to use on some form factors.

  8. Mark says:

    I actually think that pausing music when out of range of Bluetooth headphones is a legitimate feature. Similar to Windows Phone pausing music playback when you unplug wired headphones. I would love to have that happen with my Bluetooth headphones as well.

  9. Jim says:

    Science Project sounds so strange inside the company. Here, no projects are based on science?

  10. Kyte says:

    @Roger Lipscombe: You could try simulating the VK_MEDIA_PLAY_PAUSE key. That'd work on any player that already works with standard media keys.

  11. @Kyte:

    This may be a toggle VK, and will unpause play if it was paused at that time.

  12. Joshua says:

    Fixing accessibility bugs seems to have been reduced to science project by the amount of attention it gets.

  13. John 2 says:

    Kind of like bolting phone/tablet features onto a server OS?

  14. GWO says:

    @John – No, a science project is *really cool*, so the exact opposite of bolting tablet features onto a desktop OS

  15. Daniel Neely says:

    The idiot factor in the third project could be removed to turn it into something cool.  You're outside listening to music on your headphones, when you walk into the house and approach your computer the music you're playing automatically hands off from your phone(?)/headphones to your PC/Stereo speakers.  Bonus points for getting the timing close enough to seemlessly hand off in mid song instead of between then.

  16. Silly says:

    …while you are away from your computer, you're walking around looking like an idiot because you're wearing headphones

    Well I guess a scientist's response to this would be to hack a back of the envelope sketch of how to implement some sort of "directed 3D holographic sound localisation" (sorry: terrible abuse of words) technology to replace the need to wear headphones, in a similar way to how researchers are apparently working on screens that don't need 3D glasses to watch 3D.

  17. GregM says:

    "This may be a toggle VK, and will unpause play if it was paused at that time."

    So you probably want APPCOMMAND_MEDIA_PLAY and APPCOMMAND_MEDIA_PAUSE

  18. These automated media handoffs can be a real surprise… Like in an anecdote about a guy who had his unsavory video automatically picked by a nearby wireless video mirroring from his iPad (or Mac?) to a TV…

  19. Drak says:

    @Silly: I saw a prototype of a non-3d glasses 3d screen at a motor show 4 years ago. I think the technology is there, it's just too expensive and clunky at the moment.

  20. Baking Soda Volcano says:

    I gotta admit the bouncing ball idea does sound like it would be cool to watch in action. Perhaps "art project" would be more appropriate.

  21. Jonathan says:

    As a non-American, the term "Science Project" is not obvious to me. Based on my analysis of American sitcoms, I presume the term refers to the middle-school tradition of "Science Fair", where students construct volcanoes out of Sodium Bicarbonate or such.

  22. Neil says:

    Long ago when you could use a standalone media player application to listen to a radio station, I used to listen to two stations, one of which used Media Player and the other used RealPlayer. However Media Player would turn itself off if you switched user, which was not the behaviour that I wanted. I was too lazy to find out whether this could be changed since I simply stuck to listening to the other radio station instead.

    (These days both stations require Flash.)

  23. Ian Yates says:

    Off-topic a little, but your Bluetooth project brought a several-times-a-day-mini-annoyance to mind.

    My Windows Phone 8 does the Bluetooth audio thing already – kind of annoyingly actually.  Once it sees my car's Bluetooth it will start my podcast, even if I haven't switched the car over to Bluetooth audio.  Ok, I can live with that.

    BUT…

    If I am driving and have the phone podcast stopped, and then turn off my car, the phone sees the Bluetooth status toggle and STARTS the podcast.  The toggle takes about 10-15 seconds to be noticed so I am in the habit of pausing my podcast, turning off the car, waiting 15 seconds, then pausing the podcast again.

    My Win phone 7 did't do this.  Many different podcast apps have the same flaw so I assume it's a phone/OS issue (Nokia Lumia 920 from Telstra in Australia).  Not sure if the built-in podcast stuff does this as we non-US people can't get podcasts natively on the phone :(

    On topic:

    I'd love to do something about the bouncing ball though.  Maybe involving webcams a little too so you could somehow involve some chase of people through the office and, if each PC had line of sight to at least one other PC, an auto-sync could be done so the ball traversal could be automatic.  That would be cool!

  24. My Windows Phone 8 does the Bluetooth audio thing already

    This is typical "we know what you want, and screw you, because it's cool" attitude.

  25. Maurits says:

    @Jonathan: correct, but in America the volcanos are made out of baking soda.

  26. configurator says:

    At a previous job a couple of developers took a day to develop a networked Tetris games. Our computer were arranged in a grid, so each one showed a block, and one computer was used to control them all. Fun part was that a few computers had their screen savers activate in the middle of the only game we managed to play, so you had a few blue holes in the middle of the game board.

  27. What would be most cool is to combine the screen saver bouncing ball code and the bluetooth headset project together so that as you walk around the building, your music plays on whatever the nearest PC is. Basically the player follows you around the network. Seamlessly.

  28. dave says:

    @Maurits: "correct, but in America the volcanos are made out of baking soda"

    I'm not sure whether this is a witty comment on the state of American high-school science, but 'baking soda' is simply the cook's name for sodium bicarbonate.

    (cf. 'baking powder' = sodium bicarbonate + potassium bitartrate)

  29. TK says:

    Back in the days when a Ferranti Argus was state of the art I had a college who programmed a "worm" using suitable characters that moved across each attached terminal in turn thereby endlessly circumnavigating the room.  I thought that was pretty inventive at the time.

  30. Anonymous says:

    Actually, Dave,

    The chemical name for baking powder is sodium hydrogencarbonate and its chemical formula is NaHCO3.

  31. GregM says:

    Actually, Anonymous, baking *powder* doesn't have a chemical name, it is a mixture of stuff, as dave said.  The chemical name for baking *soda* is sodium hydrogencarbonate, or sodium bicarbonate.  

Comments are closed.