The value of solitude

January 21st, 2012

I just finished reading The Rise of the New Groupthink, and it got me thinking. Here are the first two paragraphs:

Solitude is out of fashion. Our companies, our schools and our culture are in thrall to an idea I call the New Groupthink, which holds that creativity and achievement come from an oddly gregarious place. Most of us now work in teams, in offices without walls, for managers who prize people skills above all. Lone geniuses are out. Collaboration is in.

But there’s a problem with this view. Read the rest of this entry »

Some thoughts on meditation

January 21st, 2012

I’m going to take a break from writing about web development and animation stuff and write about meditation.

More specifically, I want to write about the following sentence, which I heard from a Zen practitioner several years ago and has stuck with me ever since:

Meditation is about learning the state of boredom.

Read the rest of this entry »

Animated sprite with JavaScript

January 17th, 2012

I created this little animated sprite by rendering out a png sequence from After Effects, compressing the images using ImageAlpha, and then modifying some javascript that was used to create an image slide show effect. Of course, after I finished it, I found a better way to do the same thing.

Click on the card to see it flip.

My presentation at Code Academy

January 17th, 2012


This is the presentation I gave at the conclusion of my time at Code Academy.

Why your app needs animation

January 6th, 2012

This post originally appeared on Built In Chicago.

The gist of this post can be summed up in the following three lines:

Abrupt change is inherently disorienting.

Reorientation requires mental effort.

Motion (i.e. animation) explains change.

Let’s unpack those three lines.

You’re probably familiar with this quote from Steve Jobs,

“Computers are bicycles for our minds.”

Bicycles are useful because they allow you to travel greater distances in less time and with less effort than walking or running. In other words: small effort, big results. This is common to all tools, including your app. Tools allow you to accomplish more with less. We can express that in an equation:

utility = increase in results – effort required

The effort required to use a bicycle is mostly physical effort, but computers and apps require mental effort. So how do you decrease the mental effort required to use your app? This is where animation comes in. (Actually, this is where design in general comes in, but I’ll just focus on animation since that is my area of expertise).

First, let’s look at what happens when an app does not have animation. Whenever something changes, the change is abrupt. The user clicks on something, and *boom* it’s different. It happens suddenly and without any visible transition. And whenever there is abrupt change, the user becomes momentarily disoriented, and will ask the question,

“What just happened?”

Answering that question requires mental effort. Usually, the user is able to figure it out within a fraction of a second without ever becoming conscious of the small uptick in mental effort. But the uptick is there, and over time, those upticks add up. Returning to our equation, utility = increase in results – effort required, every uptick in mental effort is a downtick in the utility of your app.

Animation, when used properly, prevents the user from ever asking, “What just happened?” because they can see what just happened. It’s obvious what happened, and no (or very little) mental effort is required. They click on something, and a new menu comes in from the left while the original page fades into the background, or whatever it happens to be. The change is explained visually and spatially, within a fraction of a second, so that your users don’t have to spend that fraction of a second figuring it out for themselves.

(If you want to delve deeper into these concepts, I recommend the book Don’t Make Me Think: A Common Sense Approach to Web Usability by Steve Krug.)

PocketChange Demo (work in progress)

December 19th, 2011

Pocket Change app idea

November 28th, 2011


Above is a very rough sketch for a budgeting app idea that I’m working on, based on the Envelope System.

The general idea is to help the user not only budget their money, but also to conceptualize of it as if it were physical cash. Using cash gives us a much more immediate sense of how much money we’re dealing with, which leads to wiser spending decisions. But plastic is way more convenient and safer to carry around. So this app will attempt to make the best of both worlds.

It’s organized into three separate modules/stages: Budget, Pocket, and Change.


BUDGET
This is the equivalent of the envelopes in the Envelope System, where you set the dollar amount that you want to set aside for each category in your budget. Pretty straight forward. Nothin’ fancy.


POCKET
Before you start spending, you have to transfer money from your budget to your pocket. You can only record transactions for which you have enough money in your pocket. (The money in your Pocket is still separated into categories, in case you were wondering).

From a practical point of view, this part of the app is completely unnecessary. Why not just deduct straight from the budget whenever you make a transaction? Because the purpose of the Pocket is psychological, not practical. This is what helps you conceptualize of your money as if it were physical cash. When making purchasing decisions, there’s a big difference between thinking “Oh, I’ve got plenty of money in my checking account” and “I’ve only got $12 in my pocket right now”. Plus, putting money in your Pocket before spending it forces you to plan ahead and avoid impulsive purchases.


CHANGE
When you record a transaction, money is deducted from your pocket, rounded up to the nearest dollar, and the change goes into your Change. So, for example, when you record a purchase of $3.25, 4 dollars get deducted from your Pocket. The left over 75 cents goes into your Change. Over time, your change accumulates just as it would if you put physical change in a jar above the kitchen sink at the end of each day. At any time, you can donate your change to charity or you can return it to your budget.


The idea for this app came to me when I was considering using the Envelope System for my own budget. The problem with the Envelope System is that it only works if you’re using cash for everything. That got me thinking about the psychological benefits of using cash versus the obviously superior convenience and security of using plastic, and feeling frustrated with having to choose between the two. Why not have both?

Please chime in in the comments if you would use this app. It’s still in the very early early stages of development, so I’m trying to get as much feedback on the idea as possible.

Dots!

November 20th, 2011

Another little experiment with the Raphael JavaScript Library. No functional purpose whatsoever, but it was fun to make.

Click the button to make a dot!

JavaScript Toy

November 18th, 2011

My mentor, Josh Davey, helped me get started building this little experiment using the Raphael Javascript Library. If you enter a number in the text field between 1 and 250, the bar will shrink or grow to that height. And if you click and drag the bar, the number in the text field will update.

Update: I figured out how to embed this in the blog post itself, so you don’t have to click a link anymore.

Week 6

November 14th, 2011

We just passed the halfway point of the 12 week Code Academy program. We’ve come a long way in the past 6 weeks. It’s funny. I still feel like a complete newbie to development, but if you had asked me 6 weeks ago how a Model View Controller app structure works, or what CRUD stands for, or how to set up a join table to allow many-to-many associations, or how to authenticate a user, or what scaffolding does and does not do, I wouldn’t have had a clue what you were talking about. I may still have difficulty when it comes to actually doing all the things we’ve learned so far, but I understand the underlying concepts as well as the process of figuring it out.