Global Adaptation Index: Revealing a Country’s Vulnerability to Challenges

 

After my summer in Geneva, I’ve been looking out for smart visualizations of global social, environmental and economic issues.  Here’s one I found this week from Infosthetics:

FROM INFOSTHETICS: The Global Adaptation Index [globalai.org] by Development Seed presents a country’s ‘vulnerability’ to global challenges (e.g. food, health, infrastructure) and contrasts this parameter to its perceived ‘readiness’ (e.g. economic, governance, social). The sophistically designed and highly interactive website aims to make people more aware to prioritize investments for more efficient responses to the immediate global challenges ahead.

 

According to them, New Zealand, Australia and Denmark are the ‘most ready’ – but they don’t do a great job explaining what this means right away, so there is somewhat of a disconnect between the visualization and the meaning readers can extract from it. FYI, Readiness targets those portions of the economy, governance and society that affect the speed and efficiency of absorption and implementation of Adaptation projects.

via Global Adaptation Index: Revealing a Country’s Vulnerability to Challenges – information aesthetics.

Are you a Connector?

An inside look at my new Facebook app and how I made it

Inspired by my recent dive into social network analysis and Malcolm Gladwell’s book “The Tipping Point,” I decided to make a little Facebook app: Are you a Connector?

When I read “The Tipping Point” a couple of years ago, I, like I assume others have, used Gladwell’s test to see if I am a ‘Connector’ by counting up the number of my contacts with the surnames from his list.

Share

I got a score in the low 20′s then and I’m still around 23 today — this time according to my Facebook connections. So I thought it would be fun to make a Facebook app that uses the Graph API to match the surnames of your Facebook friends with those on Gladwell’s list to give you a score the same way his test does. It’s not an exact science, but generally if you have significantly more than the average score for your age range then you are likely a Connector. Kind of cool, right?

So if you check out my app you’ll see I explain what a connector is (someone who knows a lot of people, more than most) and what your score means. You won’t get a straight answer such as “Congrats! You’re a Connector!” or “Sorry, dude. You’re not a Connector. Have you tried Meetup.com?” because there is no exact value to confirm whether or not you are. You can check out the chart I made (right) based on Gladwell’s averages to see where you fall for your age range and see that you are either about average, slightly above average or way above average in Gladwell’s ‘Connector’ zone.

For more background on the ‘Connector’ test, read “The Tipping Point” or check out Gladwell’s excerpt on his blog.

How I created the app

I was pleasantly surprised by how easy it was to get started creating a Facebook app. (Go to http://facebook.com/developers to get started with your own app!) I decided to use Facebook’s PHP SDK and couldn’t believe that it took me only 4 hours (from about 10 p.m. to 2 a.m. MST Sunday night) to create my app. Then I did a little IE debugging and cleaned it up before sharing it with my fellow Facebook friends tonight — super easy!

So, following Gladwell’s guidelines for getting a ‘Connector’ score, I set up my new Facebook app by downloading the PHP SDK from GitHub and using that to pull in the Graph API.

The SDK makes it easy for you to pull in user Facebook data using the Graph API:

if ($session) {
  try {
    $uid = $facebook->getUser(); //This (obviously) gets the user
    $me = $facebook->api('/me'); //This pulls the user's Facebook data

And I just added one more variable to grab the app user’s list of friends:

$myFriends = $facebook->api('/me/friends');

Then I created an array of the friends’ names:

$friendsData = $myFriends['data'];

To finish it up, I looped through each friend’s name, adding a test for people with three+ names and a test to see if each last name matched one of the 250 surnames from Gladwell’s list. And voilà — your count = your ‘Connector’ score.

Your Score: $count;

Some snags I ran into:

  • For whatever reason (something having to do with Canvas), there is a bug in IE (of course) that causes iframed Facebook apps to keep refreshing the page over and over. To fix this, just add this before the HTML:
    header('P3P: CP="CAO PSA OUR"');
    
  • You need to request permission to post results, status updates, or get other user info like birthdays and work history if you want to use it in your app. To do this add the following to your authentication code and you should be set (See Facebook’s developer docs on extended permissions):
        $session = $facebook->getSession();
        $loginUrl = $facebook->getLoginUrl(
                array(
                'canvas'    => 1,
                'fbconnect' => 0,
                'req_perms' => 'email,publish_stream,status_update,user_birthday,'
                )
        );
    

So that’s it. I hope you enjoy the app! And as always, I welcome feedback and questions.

Remembering 9/11: Covering an anniversary



I had the privilege to produce a special anniversary page for the ninth anniversary of Sept. 11 in 2010. This project was a huge undertaking. We wanted to make it visual and interactive without making it tacky or inappropriate and I hope we pulled it off.

The anniversary page features an interactive photo slideshow, news page gallery, and video player commemorating Sept. 11. My favorite feature is the “Share you stories” section which allows users to share a video log memory or a written submission right on the page with the “Send us your story” and “Record your story” buttons, respectively.

We partnered with Livestream, who helped us build a custom recording module that allows users to use their webcam to record their story instantly and send it to our video CMS. We also built a custom tool that uses a Google form to submit written stories to our own CMS or editing and publishing on our sites.

This special section was featured on USA TODAY and throughout the Gannett news network. You can view USA TODAY’s page at http://911.usatoday.com.

The Long Road

It’s the middle of July and I just ended a 4  1/2 -week graduate course in computer science at Georgetown.  Why am I writing this in a blog post?  Because I wanted to share this experience.

Before I go into any detail, something you should know:

Would I recommend taking a condensed course in computer science over the summer? No.

Would I recommend taking a computer science course in general? Yes.

Like a lot of people, even when I was in high school and undergrad I felt I missed the boat to learn computer programming.  But I’m happy to say that now, as a graduate student, I’ve finally learned (accepted) that it’s never too late to learn anything — you never know how difficult something is until you try it.

That said, computer science isn’t something you can learn by osmosis. It requires practice. Lots of practice.  So, if you’re thinking about learning, don’t take a condensed course like I did— especially if you have a full-time job and are taking it at the graduate level (With all math and comp sci grads…)  You’ll thank yourself later when you realize you’ve taken a longer path that’s allowed you to absorb the material and learn more.

Despite the brief course, I’m grateful for the short and intense learning experience I had. I was forced to immerse myself in all things C++ and OOP — and true immersion isn’t something you can fake.  Like any foreign language, programming languages require you to spend a lot of time actually using them. There’s no easy way to pick it up other than using it. Learning a language is hard and it helps when you’re able to talk about it and learn from experts in a class environment.  Courses also help you budget your time and projects in a proven sequence. If it isn’t obvious, I’m a fan of courses because you gain the benefit of sharing and learning from experts and others in the class.

If you can’t afford to take a course, I know a lot of programmers who are self-taught who are great at what they do.  Whether you decide to take a course or not, my only advice is that you dedicate a lot of time to learning programming. It’s time-intensive, but it will pay off in the end. You can’t BS your way around it.

Why I’m writing this

This class I took was kind of the beginning of a major overhaul of the way I’ve gone about teaching myself web development and design techniques in the past.  Like a lot of people, I’ve learned a lot by dabbling in tutorials and teaching myself as I go. Even before this class, I wasn’t exactly a novice in web development, but this summer I’m trying to ‘step my game up’ — and in doing so, I’m going to share my projects and works in progress on this blog.

Why programming?

I’ve found learning web development and programming to be extremely rewarding in my work as a multimedia designer for news applications.  Having the ability to build and execute multimedia products from start to finish has been an extremely satisfying aspect of my job.  It used to be that web projects I wanted to do ended up taking forever for someone else to develop or wouldn’t get done at all because of the lack of expertise in my department.  Now, I’m able to create whole web pages on the fly. Knowledge is power.   And programming is problem solving. It teaches you not only how to literally build something, but also how to logically solve problems in ways most people aren’t used to.

I’m hoping to use this blog to keep track of my current and upcoming web design and development projects so you can see what I’m up to. I’ll also post a note about some things I’ve done in the last year or so, but this blog is really going to be about going forward. Please feel free to let me know know what you think and ask me questions!

Sketching with Processing

Those who know me know I love my chalkboard wall. I wanted to try to recreate a virtual chalkboard using Processing – which is very simple. Check it out by clicking to draw on the “chalkboard” above.



Share

If you haven’t checked out Processing, you should. Processing is an open source programming language and environment for people who want to create images, animations, and interactions.

Here’s how simple it is to create a simple chalkboard like the one above using Processing:

void setup() {
  size(590, 400);
  fill(255);
  background(51);
}

void draw() {
  if(mousePressed) {
    stroke(255);
  } else {
    noStroke();
  }
  line(mouseX-1, mouseY, mouseX+1, mouseY);
  line(mouseX, mouseY-1, mouseX, mouseY+1);

}

Here are a few uses of Processing that have inspired me:

Just Landed: Processing, Twitter, MetaCarta & Hidden Data by Jer Thorp

On the Origin of Species: The Preservation of Favoured Traces by Ben Fry

Solar with lyrics by Robert Hodgin