Do we still need a Save button?

Doing some basic mobile development for Android has led me to question a lot about what we take for granted with Desktop applications, and one of the reasons people find these smart phones and tablets a bit more intuitive to deal with. One of the big points is around the Save question.

Ask yourself for a moment, is there any desktop application you use where automatically saving every key stroke would be a bad thing? And for the few of you that can come up with an example, is that content that you are already explicitly versioning with some other system, like source code?

The existence of Save is part of what make computers fragile, or at least feel fragile, to people. You have to be ever vigilant of your data. The price of that vigilance is less productivity, as you always have to remember that you have to Save. Everyone has a moment when they lost some really hard work when they lost that vigilance for a short period of time.

In mobile, there is no time to Save. You have a mobile app open, you are waiting for a bus, and it shows up. You are done, and the phone goes in your pocket. If you had to remember to save, that state is lost. This is a much more natural interaction, and a much more expected one.

When you leave your house in the morning, you don’t nail all your furniture to the floor. You have a pretty good expectation that when you return home your couch and tv will be where you left them, they won’t all have been pushed to a corner, requiring you to reassemble your living room every night when you come home.

The way the real world works is when we push something someplace, it stays. The fact that personal computers broke this metaphor is part of what makes normal people get really nuts about computers. Yes, making software without a save button is harder for developers, but it creates a sense of durability that users really do resonate with. It’s a best practice in mobile, and hopefully something that will bleed over into the desktop application space.

Not a UFO

On one of the photo sites I follow someone posted this image with a leading title that suggested this was a ufo confirmation:

In 5 of the 21 frames that make up the animated gif there are 2 red, a blue, and a green dot, all in a line (you might need to pull the image into your favorite image editor and zoom in to see the second red and blue dots).

Taking pictures of things in space isn’t like taking pictures in your back yard. You don’t take color images, instead you take long exposure black and white images with very specific color filters over your camera lens. The images are then post processed, having each filter corresponding to a different color.  These images are called false color for that reason.

This works pretty well for imaging things that don’t move very quickly, but creates a very funny effect for things that are moving fast through the frame, because the object is in a different position in each color. This is what asteroids or satellites look like when they are captured in an astro photograph. The Sloan Digital Sky Survey has a whole chapter on their website on finding asteroids in their images. The pattern in the SDSS data is a little different because their imaging equipment is different than what we are seeing here. Galaxy zoo also has some really good information on funny things you see in CCD images.

Which raises a good question, what are we looking at? It turns out this is one of the sample runs of the Palomar 200 inch telescope showing off their adaptive optics in 2006. These 21 frames were taken from earth, through our atmosphere, with manipulators bending the mirrors on the telescope to reverse out atmospheric distortion. Really impressive stuff.

Update: given the rotational speed of Neptune, you are looking at between 3 and 4 hours worth of time elapse here.  That means you could calculate the angular velocity. This would push for it being an asteroid instead of a satellite because it is actually moving reasonably slowly in terms of degrees per hour.

Update 2: it could also be a moon of Neptune, many of them end up about that close, and orbit fast enough that they could move like that in the frame.

VMWare’s new stand

Read over at James Governor’s redmonk blog:

Maritz said that other major tech firms were still “consolidating the client/server stack” while VMware wanted to capture a new wave of application development.

“Developers are moving to Django and Rails. Developers like to focus on what’s important to them. Open frameworks are the foundation for new enterprise application development going forward. By and large developers no longer write windows or Linux apps. Rails developers don’t care about the OS – they’re more interested in data models and how to construct the UI. Those are the things developers are focusing on now. The OS will fade into the background and become one of many pieces. We plan to do the best job of supporting these frameworks.”

Or as he said to the analysts:

“Our goal is to become the home of open source and open framework-based development”.

I think this is really what the “post PC” era really means, desktop applications are going to become a niche market, only to be used if the task can’t be done on the web, in the cloud.  Lots of really interesting stuff in that article that you should check out.

Programming is Hard

This is a great essay about not beating yourself up for feeling stupid when you try to learn something new in programming:

The problem is that while you’ve uncovered a wonderful world that makes coding seem so approachable and fun, you’re unknowingly making a giant leap by thinking it’s somehow also easy.

This might not seem like a big deal, but it’s huge. Every single time (and this will happen constantly) you come across a concept that seems foreign or difficult or even just unintuitive, instead of thinking “It’s OK. Programming is hard.” you’re going to be thinking “This is supposed to be easy. What’s wrong with me? I must be stupid.” These feelings will keep you from seeking help or pushing through to discover why things work the way they do, and that is what’s stupid.

Programming is not always intuitive, it’s inherently complex, and it’s challenging. Once you start feeling like you’ve gotten a handle on it, you’ll learn something new that will make things seem even more complex for a while. Your level of stupidity is certainly up for debate, but not being able to program without long hours of steady practice is not an indicator of intelligence one way or the other. The discomfort is normal, so get over the self-consciousness now and fight it whenever it appears in the future.

I agree, I wish I had this advice when I first entered the field. It took me the better part of a decade to come to the same realization, that you felt stupid because you were really learning a lot of new and unfamiliar stuff. It makes you grow as a developer, and as a person, and is also probably fending of future brain degradation in the process. My most recent experience was relearning the math for Where is Io.

I spent days just trying to understand what should be a simple coordinate transformation, so much so that I almost gave up the project multiple times for being too hard. But the problem was, I knew someone else had figured this out, so it couldn’t be beyond me. A few weeks of banging my head against the table eventually got me past that. It would have been easy to just walk away, it was a hobby project after all, but pushing forward and overcoming the challenges made it that much more rewarding on the other side.

Speaking Tonight in New Paltz

Tonight I’ll be giving the Mid Hudson Astronomical Association talk on the basics of celestial mechanics, and what I figured out to make my Where is Io application.  The talk picked up the poetic “Tracking the Movement of the Heavens” title somewhere along it’s development.

This is going to be a tough talk, given how varied our audience tends to be, but I’m hoping that I’ve got enough hooks to get people in early, and plenty of meat for people that want to know more. The practice run through after work last night went quite well, the narrative turned out to be stronger than I realized, and I got some good feedback that definitely makes this a better presentation.  Thanks to Mike, Jeremy, and Sean for that.

Presentation Tips: 3 Good Moments

“A good movie is three good scenes and no bad scenes.”

– Howard Hawks

Having just gotten back from CPOSC, filled with some very good presentations, I realized the old adage about movies applies to presentations as well. If you have 3 really good moments in your presentation, and nothing really bad, your audience will walk away satisfied. We’re not all going to be TED Talk speakers, but setting the bar at 3 good moments is something attainable.