4th Grade Egg Drop Project

My 4th grade daughter was recently given the customary elementary school egg drop project. I was out of town for the week leading up to the event which meant I couldn’t help her with the design, so we took a separate but collaborative approach. She designed a solution on her own, and when I got back into town (the day before the event), I designed my own solution. The plan was to take the best ideas from each design and combine them into one.

The rules of the challenge were as follows:

  • No parachutes, streamers, or balloons.
  • No bubble wrap or Styrofoam.
  • No food products (other than the egg, of course).
  • Each project had to have an easily accessible door so the teacher could load the egg.
  • The entire project couldn’t be more than 1.5 pounds (including the egg).

My daughter went with an empty peanut butter jar lined with foam squares:


I went with a plastic food container suspended by rubber bands inside of a 6″ x 6″ box:


Both seemed to be sound concepts, so we combined them into one:


It turns out the box we used wasn’t deep enough and the rubber bands weren’t quite secure so the egg broke when dropped off the roof of the school. So the next iteration used a 12″ x 12″ box, popsicle sticks to hold the rubber bands in place (on the outside of the box), and velcro to keep the lid closed:


Both her project and mine were thoroughly tested, and both were a success. We celebrated with a lunch of scrambled eggs:


Building The Virtual Keyboard From TRON Legacy

tron_keyboard_500I’ve become a bit of a keyboard geek (proof here and here), so when I re-watched TRON: Legacy recently and saw Sam use that very cool blue-green virtual keyboard, I decided I had to try it for myself. I built one using two iPads and discovered it’s much more difficult to use than it looked in the movie. Below is an explanation of the project as well as my conclusions.

If you’re interested in the code I used to build the prototype, it’s all available on GitHub.

A Simple Phishing Vulnerability in Mobile Safari

I recently put together a demo of a very simple, yet very convincing, phishing attack targeting mobile Safari:

It works by first checking the user agent and determining what kind of device the request is being made on. If the device isn’t an iPhone, the user is simply forwarded to PayPal.com and will never know the difference. But if the request is made from an iPhone, the user gets the special phishing login screen which does the following:

  1. Shows an image of Safari’s location bar at the top which implies that the user is on PayPal.com.
  2. Scrolls the actual location bar off the screen quickly enough that very few people will notice it.

Since this attack targets mobile devices, it’s pretty safe to assume that many (probably most) users won’t be paying very close attention, and will likely not notice the actual location bar being hidden. The effect is so fast that even users who do notice probably won’t think anything of it.

I really like that mobile Safari lets you hide the location bar in order to have more pixels for actual content, but perhaps there’s a way to tweak the design in such a way as to make malicious applications of this feature less feasible.

My Current Keyboard Configuration

my_keyboard_configurationThe picture above is one of my home workstations where I think I’ve finally gotten the right keyboard/pointer configuration. Here’s what you’re looking at:

  • The black keyboard on the bottom is a Filco Majestouch mechanical keyboard with MX Cherry Brown switches (review with video here). This is what I use for most of my typing. The Alt and Windows keys have been swapped and Alt and Command remapped in software to make it more Mac friendly.
  • The keyboard above it is an Apple bluetooth keyboard. I use it for typing when I’m in virtual meetings in order to keep the noise down (it’s very quiet while the mechanical keyboard is way too loud for meetings), and for its media keys (volume up, volume down, and mute). (If you want media keys on your non-Apple keyboard, see this post by Grant Skinner.)
  • The mouse is an Apple Magic Mouse. Mice are very personal objects which people feel strongly about, so I’m not going to claim that it’s the best. In fact, I have a few Logitech mice which are equally good if not better. But I enjoy the accuracy and the gestures of the Magic Mouse enough that I’ve stuck with it. (In my opinion, this is the first mouse Apple has ever made that’s usable.)
  • The trackpad beside the top keyboard is the Apple Magic Trackpad. I use it for gestures and sometimes for scrolling. I also sometimes connect the bluetooth keyboard and trackpad or mouse to my phone.
  • The phone is a Galaxy Nexus. I usually have my iPhone 4S beside it, but I used it to take the photo. I rely on them for notifications. Rather than having alerts pop up on my monitor all the time and distract me, I use my phones for email, calendar, and text notifications. (I have two phones because I do mobile development — and because I love them both.)
  • I have an Energizer family sized battery charger off to the side to keep the keyboard and pointing devices powered. I find I’m swapping out batteries about every two weeks.

I have two other workstations: one for Windows, and one at the office. They’re both different just to mix things up a bit, so maybe I’ll get pictures of them at some point, as well.

Using a Mobile Device as a Desktop Computer

Part 1

Part 2

Part 2 Table of Contents:

Some friends of mine and I are experimenting with what it’s like to use a mobile device (in this case, a Galaxy Nexus) as a desktop computer. With the addition of a bluetooth keyboard, multi-touch trackpad, and a monitor, I found that the experience is surprisingly good.

I don’t demo all that many applications in the video for fear of inadvertently showing sensitive data, but I think I show enough that you can get an idea for how close we already are to this type of computing model. In fact, I think if you were to set up a workspace like this for someone who didn’t have “professional” needs (such as writing code or video editing), and/or someone who didn’t have a lot of preconceptions about how a computer should work, they would be perfectly happy with the experience. I was able to do all of the following with relative ease:

  • Browse the internet.
  • Read news.
  • Manage my calendar, tasks, contacts, etc.
  • Read and write email almost as easily as I can on my desktop.
  • Listen to music and podcasts.
  • Chat on IM.
  • Edit documents.
  • Do some light photo editing (in the default gallery application).
  • Participate in social networks (Google+, Twitter, and Facebook).
  • Watch videos on YouTube and Netflix.

In other words, I was able to do most of what many people do with desktop computers on a daily basis. Of course, there were a few key things I wasn’t able to do such as:

  • Write code. I’m sure it’s possible, but definitely not practical, and probably not something I would enjoy.
  • Advanced editing of things like photos and video.
  • Advanced file management. With this kind of computing model, you definitely want to keep as much data in the cloud as possible since the file system is generally de-emphasized on mobile devices.

Keep in mind that I’m using a stock Android device with whatever capabilities are already in the OS. If you’re willing to go as far as installing Linux on your phone, you can do far more than this. Additionally, operating systems will likely have much better support for this kind of model in the future — in particular, Windows 8 with Metro.

I’m really curious about whether this kind of interaction represents the future of computing. Are we moving toward a model where we use multiple computers and mobile devices with all our data in the cloud, or in five to ten years, are we all just going to use our phones for most of our computing needs? I’m guessing it’s going to be somewhere in the middle (as these things tend to be), but I’d love to hear your thoughts.

Update: I’ve been getting a lot of questions about the cables I used to make this work. Here’s all you need to know:

  • For the display, I used a Samsung MHL to HDMI adapter (along with an HDMI cable, obviously). If you want to do audio through your monitor, make sure your HDMI cable supports audio.
  • For a USB keyboard and mouse, you’ll need a micro USB host mode OTG cable, and a powered USB hub. (I used a bluetooth keyboard and mouse, so this isn’t in the video.)
  • For audio (if you don’t have speakers in your monitor), I just used a standard 3.5mm audio cable from the phone to my computer speakers.

Thanks to Matt Pandina for helping to get this working.

Turn Your Old Phone Into a Complete Sound System


I haven’t had a real sound system in years. As soon as we gave up CDs, there didn’t seem to be much of a point anymore. Everyone in my house has their own devices with their own music, and if we ever want to listen to the same thing (rarely), someone just plugs their phone into the set of common speakers in the living room.

But even in an environment where everyone has constant access to their own personal content, it’s nice to occasionally share an experience. I’ve missed putting music on in the background while we eat, or sharing something new with those around me, so when I recently got a new Android phone (Galaxy Nexus), I decided to turn my next-to-worthless Droid X into a dedicated sound system.

Using a phone as a stereo is obviously not a new concept, but using one as a dedicated sound system is only now becoming practical for many people. Decent smartphones have been out long enough now that chances are you either have an extra one that isn’t worth anything anymore, or you probably will within the next year or so. I have a lot of phones and devices, but I think my Droid X is the first spare Android device I own that isn’t really worth selling, nobody else in my family wants, and that I haven’t come to completely hate (there are a lot of bad Android devices out there which I wouldn’t even want to use to stream music).

Fortunately, I’m not an audiophile, so I’m pretty happy with an underpowered and inexpensive setup. My “stereo” consists of the following:

  • An old deactivated Droid X.
  • The Droid X media dock.
  • A pair of old (but decent) computer speakers with a subwoofer.
  • A good wi-fi connection.
  • A few apps:
    • Pandora.
    • Google Music (giving us all access to my entire music collection).
    • Google Listen (for podcasts).
    • The NPR application (mostly for news).
    • An FM radio application (which I’ll probably never use, but that I feel like I should have installed anyway).

If it turns out we use the new setup frequently enough, I’ll probably get some better speakers (any suggestions?), but so far, an old phone, a good wi-fi connection, and a pair of previously disused Altec Lansing speakers are working out surprisingly well.

Artificial Photosynthesis Becomes Reality (as Predicted in “Containment”)

My science fiction record is getting better. Last week, scientists theorized that it might be possible to use the LHC as a time machine (which is the premise of my story The Epoch Index), and this week, artificial photosynthesis, one of the themes of my novel Containment, becomes a reality.

Check out the article on the ACS website for more details, but the general idea is that Dr. Daniel Nocera, a scientist at MIT, says his team has successfully developed the first practical artificial leaf. In his own words:

A practical artificial leaf has been one of the Holy Grails of science for decades. We believe we have done it. The artificial leaf shows particular promise as an inexpensive source of electricity for homes of the poor in developing countries. Our goal is to make each home its own power station. One can envision villages in India and Africa not long from now purchasing an affordable basic power system based on this technology.

In Containment, the concept is called AP, or artificial photosyntheses, since the scientists are not so much interested in creating an artificial leaf as mimicking (and improving on) the chemical processes that happen inside the leaf. Interestingly, the scientists’ objective in Containment isn’t the energy that photosynthesis creates, but the oxygen byproduct.

Here’s a quote from one of the lead scientists studying the problem from Ishtar Terra Station One, humankind’s first permanent outpost on Venus:

The Agriculture Department has perfected stemstock, or meat without the animal, and now we need to perfect photosynthesis without the plant. As much as I love our ferns, the day is coming when we’re going to need more oxygen than they are able to provide us. Without more oxygen, V1 is as big as it’s ever going to get, and it will always be vulnerable to things like pathogens and any number of other events that can unexpectedly destroy plant life.

If this is the kind of thing you’re into, give Containment a try. It’s available in all digital formats, and for this much hardcore science fiction, you can’t beat the price.


Use Emails as Reminders? Here’s a Good Tip

I can’t break the habit of sending myself emails as reminders. I’ve tried various other approaches (todo lists, notes, etc.), but nothing puts an important task right in front of me until I get done like having it in my email inbox.

Most of the reminder emails I send come from my phone (since if I were at my computer, I could usually do whatever I’m reminding myself to do). Eventually I got tired of typing my relatively long name or email address — or rather, enough of it for it to come up as a suggestion — so I created a new Google contact named "me". The only information "me" has is my personal email address, so rather than typing in my name to send myself an email, I simply type "me".

But that’s not all. If you’ve read my previous post, Five Simple Gmail Tips, you know that if you use Gmail, you can append a plus ("+") to your email address, then any arbitrary string after it, and you will still get the email. So rather than just give the new "me" contact my regular email address, I used "my.email.address+todo@gmail.com". In Gmail, I set up a filter based on incoming mail to "my.email.address+todo@gmail.com", so any "todo" email that comes in automatically get starred, and assigned the "todo" label.

So far, this technique has worked out really well. It makes a low-tech, very simple solution slighter higher-tech, and even more effective.

For more email tips, see my previous post, Five Simple Gmail Tips.