- Calendar -

March 2010
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

- Archive -

- Browse By Random Tag -

- Most Commented -

- Random Favourites -

- Blogs I Like -

- Email Viruses Received -

- My Geek Code -

-BEGIN GEEK CODE BLOCK-
Version: 3.12
GIT d-- s: a- C++ UL++ P+++ L+++ E--- W+++ N+ o-- K- w--- O- M-- V- PS+++ PE-- Y++ PGP t++ 5+++ X R tv b+ DI+ D++ G e h r+ y+
--END GEEK CODE BLOCK--
Get The Encoder
Get The Decoder

- My Blog Code -

-BEGIN BLOG CODE BLOCK-
B6 d+ t++ k+ s++ u-- f i++ o+ x+ e l c-- --END BLOG CODE BLOCK--
Blog Code Encoder
Blog Code Decoder

- The Internet is Cool -

- Nifty Blog Toys -

RSS Feed

- Content License -

Blog

Homelessness: A Better Choice for Action

Ask anyone in this town and most of them will tell you that the primary problems in Vancouver are homelessness, and the high cost of living. It's so bad that over the Olympics, the Pivot, an activist group based in the Lower East Side, held a sit-in protest in the form of a field of red tents surrounded by placards and signs with slogans like "homes not games" and "homes for everyone". (Flickr, Now Public) There were staged protests downtown and even a riot -- all for good reason: here in Vancouver, the disparity between the rich and poor is out of control.

So what do we do about this? Obviously the current tactics aren't working. The world came to Vancouver and no one cared to really do anything about our most desperate citizens. For the most part, that whole area was ignored and tourists were advised not to go there. What good is a protest if no one cares about what you're saying? A riot? That only fuels the opposition. No, what's needed is to move counter to the gentrifying forces in this city.

The problem is the location. Everyone in Vancouver knows that the poorest people live in the Lower East Side. We also know that that neighbourhood is something we want to avoid if we don't fancy the stench of human urine, or the sight of public drunkenness and dirty needles. The richest, most powerful people in Vancouver never go there. They don't even drive through Hastings if they can help it. What good is a protest if the only people who see it, are affected by it, are those who already support you? No, if you want action to be taken, you need to inconvenience people, you need to make people see what's going on and remind them that just because they've managed to ignore the problem, the problem hasn't solved itself.

The red tent protest was held near Abbot & Cordova in an empty lot opposite an Army & Navy frequented only by people who live in the neighbourhood. Given that fixing the homelessness problem will require action by a considerable number of people outside of this demographic, this is not a good choice for action. Instead, I think that the homeless population needs to get the held somewhere, anywhere that isn't the Lower East Side. Hold tent-city protests in David Lam Park (Yaletown has one of the highest per-capita incomes in Vancouver) or in any open (public) spaces south of 16th... you know, where all the rich folks who own most of this city live?

Sleeping in the street is an accepted norm at Hastings and Main, but about Granville and Broadway? Generally speaking, cities (especially Vancouver) like to corral their poorest citizens and then gradually push them from neighbourhood to neighbourhood through gentrification, never solving the problem. Therefore, the answer to newer, more expensive buildings moving into the Lower East Side shouldn't be to move East (as the powers that be are hoping), but instead to relocate to Kits and Point Grey so those responsible for the gentrification can experience the fruit of their labours.

The problem in Vancouver isn't homelessness and the high cost of living, it's not even that nobody cares about these issues, because thousands of people do. No, the problem in Vancouver is that the right people don't care about these issues because they don't have to. Fix that, and I'm sure something useful will be done.

#Olympics

I'm trying to come to terms with the Olympics. I suppose that it's about time since the party's been going on for over a week now. The thing is, I've got two problems with the whole event:

  • I've never cared about Olympic sports
  • It's the ultimate smack in the face to the working poor in this city

Now don't get me wrong, I think that the Riot 2010 people are just silly, self-righteous, angry, rabble-rousers intent on breaking things in a fit of helplessness. I don't support them, but I also won't deny that many of their grievances need to be addressed.

The fact is that we've spent billions of dollars throwing a party for athletes, while in true Vancouver style, we've politely ignored the people trying to bring attention to the fact that those funds should have been spent elsewhere. Hell, we didn't even have the decency to kidnap the homeless population and intern them in Chiliwack for the duration of our capitalist shindig. No, we put up banners, threw a party and played music, right next door to the most desperate community in the country. We rubbed our disinterest in their faces and were then surprised and even outraged when a few of them got angry and started breaking things.

But this is nothing new really. The haves never care about the have-nots until someone threatens to cut off a few heads. You won't catch me marching with the Olympics Resistance Network though, because whether they want to accept it or not, this whole party became a force of nature the moment Vancouver won the bid.

It took me a few days to realise it, but despite our own transgressions mentioned above, there's still considerable good to come out of this and those who oppose(d) this event would do well to consider it. For the first time in over twenty years, Vancouver is actually multicultural again. There are Greeks, Swedes, Koreans, and even a few Ghanaians in this city for a few remaining days. Real German food can be sampled in their "house" and Russia has commandeered Science world to showcase itself to the planet.

We made the wrong choice. We should have supported our fellow citizens and used that fortune to build a city of which we could be proud. We didn't and we will reap what we've sewn for years to come, but there's no sense in shouting at the rain: take advantage of the fact that the world is here! Meet with foreigners, ask them how they build their cities and care for their people, and maybe, we'll find some opportunities to learn something new about how problems are tackled differently. Clearly, we could use some pointers.

Gush

Blogs are part personal record, part external communication, and lately, due to my own over-capacity life, I've been neglecting it to the detriment of both these factors. I apologise for this, and there's a lot more I want to write about but I simply don't have the time lately.

I wanted to get one thing in though -- if only because it's been going on for some time without a public note and this is the kind of thing you want to write in a blog. So at the risk of sounding a little too much like the XKCD guy, I just wanted to record the fact that I've been dating this amazing girl for a few months now. She's smart, and pretty, and she smells really, really good :-)

That's all for now. Back to work!

'Canadian Pride' (At Grandma's Request)

My grandmother just sent this to me with the added request that I distribute it to those in my own networks. I can agree with the sentiment and so I'm doing just that. It's about time that Canadians recognised that our place in this world is more than "America's Hat":

I am old enough to remember when the Great Lakes St. Lawrence Seaway was debated and ultimately opened to navigation in 1959. Construction of the 306 km. stretch of the Seaway between Montreal and Lake Ontario is recognized as one of the most challenging engineering feats in history.

Discussion with the U.S. had been ongoing over the past thirty years but in the end they decided not to participate in such a major undertaking. Canadian public opinion was pushing our politicians to go it alone and in July , 1951 Premier Frost of Ontario publicly asked the United States to “Please, get out of the way and let us get on with the job.” The Federal Government followed within days and announced we would build the St. Lawrence Seaway. It was a time of Canadian pride. The United States then decided that they would participate in the building of the Seaway and the project went ahead.

I tell this story because I wonder where our Canadian pride has gone. We were a much smaller nation in the 1950’s but we felt we could do it. Now it seems we must ask the U.S. to make our policy on climate change, auto emissions etc.

Shirley Quinn,
Armstrong, B.C.

Unrepresented

So that word is floating around again "Prorogue". For those of you who missed it, I'm sorry to be the one to break it to you, but we've all been without representation in the federal government now for almost a month now. Stephen Harper, our Prime Minister decided to shut down parliament back in December and won't be affording us representation until some time in March.

That's three months paid vacation for a parliament that sat for only 49days last year. Three months without the business of government being done, without your voice being heard in the House. Sure Harper still gets to be the boss and represent Canada abroad and at the Olympics, and no, our soldiers in Afghanistan don't get to take a break. Addressing our commitments on climate change won't happen by the Copenhagen deadline, and we're all still paying taxes for the privilege of living in a democracy.

People have staged (successful) revolutions for less.

In Canada though, where we once saw only apathy, there appears to be some exciting movement among the grass roots. Hundreds of thousands of people have joined a Facebook group denouncing Harper's Conservatives for this move and the numbers keep growing. Support for the Conservatives has begun to dwindle as well and now there are rallies planned around the world in condemnation of this prorogue.

Here's a list of what proroguing means to Canada:

  1. Committees investigating accusations of torture of Afghan detainees stop working.
  2. Questions about Canada's inaction at the Copenhagen climate-change summit are silenced. Opportunities to move forward with Canada’s plan for sustainable development are stalled for over a month.
  3. Discussions and decisions about the pension crisis affecting Canada’s seniors stops.
  4. All 37 bills being debated in Parliament are thrown in the trash. Discussion on bills starts from scratch in March, wasting months of hard work by all parties. These bills included new crime legislation, and limits on credit card insurance rates, etc.
  5. Your MP cannot raise your concerns in Ottawa
  6. Harper will still appoint Conservative senators, giving him control of the Senate.

Frankly, it's actions like these that make it hard for me to claim that I live in a democracy. Instead, it might be more accurate to say that we've become a cyclical banana republic. As for what the other parties are saying...

  • The Liberals have flat-out said that they're going back to work with or without the Conservatives on January 25th, the original date that Parliament would have reconvened.
  • The NDP have similarly said that they will be "on Parliament Hill" on the 25th, though I'm unsure as to what that means exactly.
  • The Bloc Québécois have condemned the prorogation but as far as I can tell, have not said anything about showing up to work.
  • The Greens, not in possession of a seat (yet) also condemned the Harper move and will be out at the rallies tomorrow across the country as well.

So what can you do? Some suggestions:

  • Tell your friends and family about this. A lot of people still don't know that they're paying taxes to a non-existent government and the Conservatives are counting on an ignorant public to keep them in power. Don't let them have it.
  • Join in on one of the rallies this Saturday, January 23rd. They're happening all over the world in Vancouver, Toronto, New York, Amsterdam and even Costa Rica. Details are on noprorogue.ca. Vancouver's rally starts at 1pm at the VAG, while Toronto's starts at 1pm at Dundas Square.
  • Call your MP. If (s)he's a Conservative, tell them to get back to work. If they aren't, tell them to consider all alternatives for bringing democracy back to our government. The Coalition is still an option, if only the opposition parties can learn to get along.

I'll be at the event in Vancouver, so if you care to come along, let me know and we can meet up :-)

It's a Wonderful Life

A lot of people have read this thinking that it was an exercise in self-loathing or a cry for help of sorts. Nothing could be further from the truth. It was purely an existential question based in the thinking that at the core, humanity hasn't changed that much through the course of our history. New titles, different roles is all. Anyway, thanks for the support everyone, but I'm fine, honest :-)

You know how in that movie, George Bailey finds out just what the world would be like if he'd never existed? The moral of the story is supposed to be how significant your own minor contributions have been to the tapestry of your life, but I was just thinking...

In the grand scheme of things, the unremarkable of us (that is to say, pretty much everyone but a remarkable few) don't really have lasting effects on the world as a whole. Rather, our greatest effects, if we have any at all, are usually on those we care about, those to whom we are closest.

Given this reality, is this idea that we are somehow integral to "the world" in our own small way, really just a egocentric fantasy? How different would the world really be if one of us never existed? Wouldn't it be more honest to say that the tiny part of the world about which we care the most would be different? Isn't it a bit presumptuous to think that every one of us is integral to the balance of society?

Humanity hasn't changed much in the last few thousand years. Sometimes, I wonder if any of us really matter at all.

Facebook Page Syncronisation

This is going to be a rather technical post, coupled with a smattering of rants about Facebook so those of you uninterested in such things might just wanna skip this one.

As part of my work on my new company, I'm building a syncroniser for status updates between Twitter, Facebook, and our site. Eventually, it'll probably include additional services like Flickr, but for now, I'm just focusing on these two external systems.

A Special Case

Reading this far, you might think that this isn't really all that difficult for either Twitter or Facebook. After all, both have rather well-documented and heavily used APIs for pushing and pulling data to and from a user's stream, so why bother writing about it? Well for those with my special requirements, I found that Facebook has constructed a tiny, private hell, one in which I was trapped for four days over the Christmas break. In an effort to save others from this pain, I'm posting my experiences here. If you have questions regarding this setup, or feel that I've missed something, feel free to comment here and I'll see what I can do for you.

So, lets start with my special requirements. The first stumbler was the fact that my project is using Python, something not officially supported by Facebook. Instead, they've left the job to the community which has produced two separate libraries with different interfaces and feature sets.

Second, I wasn't trying to syncronise the user streams. Instead, I needed push/pull rights for the stream on a Facebook Page, like those created for companies, politicians, famous people, or products. Facebook claims full support for this, but in reality it's quite obvious that these features have been crowbared into the overall design, leaving gaping holes in the integration path.

What Not to Do

  • Don't expect Facebook to do the right/smart thing. Everything in Facebookland can be done in one of 3 or 4 ways and none of them do exactly what you want. You must accept this.
  • Don't try to hack Facebook into submission. It doesn't work. Facebook isn't doing that thing that makes sense because they forgot or didn't care to do it in the first place. Accept it and deal. If you try to compose elaborate tricks to force Facebook's hand, you'll only burn 8 hours, forget to eat or sleep in the process and it still won't work.

What to Do

Step 1: Your basic Facebook App

If you don't know how to create and setup a basic canvas page in Django, this post is not for you. Go read up on that and come back when you're ready.

You need a simple app so for starters get yourself a standard "Hello World" canvas page that requires a login. You can probably do this in minifb, but PyFacebook makes this easy since it comes with handy Django method decorators:

# views.py
from django.http import HttpResponse, HttpResponseRedirect
import facebook

@facebook.djangofb.require_login()
def fbCanvas(request):
    return HttpResponse("Hello World")
Step 2: Ask the User to Grant Permissions

This will force the user to add your application before proceeding, which is all fine and good but that doesn't give you access to much of anything you want, so we'll change the view to use a template that asks the user to click on a link to continue:

# views.py
from django.shortcuts import render_to_response
from django.template import RequestContext
import facebook

@facebook.djangofb.require_login()
def fbCanvas(request):
    return render_to_response(
        "social/canvas.fbml",
        {},
        context_instance=RequestContext(request)
    )

Note what I mentioned above, that we're asking the user to click on a link rather than issuing a redirect. I fought with Facebook for a good few hours to get this to happen all without user-input and it worked... sometimes. My advice is to just go with the user-clickable link. That way seems fool-proof (so far).

Here's our template:

<!-- canvas.fbml -->
<fb:header>
    <p>To enable the syncronisation, you'll need to grant us permission to read/write to your Facebook stream.  To do that, just <a href="http://www.facebook.com/connect/prompt_permissions.php?api_key=de33669a10a4219daecf0436ce829a2e&v=1.0&next=http://apps.facebook.com/myappname/granted/%3fxxRESULTTOKENxx&display=popup&ext_perm=read_stream,publish_stream,offline_access&enable_profile_selector=1">click here</a>.
</fb:header>

See that big URL? It's option #5 (of 6) for granting extended permissions to a Facebook App for a user. It's the easiest to use and hasn't broken for me yet (Numbers 1, 2, 3 and 4 all regularly complained about silly things like not having the app instaled when this was not the case, but your milage may vary). Basically, the user will be directed to a page asking her to grant read_stream, publish_stream, and offline_access to your app on whichever pages or users she selects from the list of pages she administers. Details for modifying this URL can be found in the Facebook Developer Wiki.

Step 3: Understanding Facebook's Hackery

So you see how in the previous section, adding enable_profile_selector=1 to the URL will tell Facebook to ask the user to specify which pages to which she'd like to grant these shiny new permissions? Well that's nifty and all, but they don't tell you which pages the user selected.

When the permission questions are finished, Facebook does a POST to the URL specified in next=. The post will include a bunch of cool stuff, including the all important infinite session key and the user id doing all of this, but it doesn't tell you anything about the choices made. You don't even know what page ids were in the list, let alone which ones were selected to have what permissions. Nice job there Facebook.

Step 4: The Workaround

My workaround for this isn't pretty, and worse, depends on a reasonably intelligent end-user (not always a healthy assumption), but after four days cursing Facebook for their API crowbarring, I could come up with nothing better. Basically, when the user returns to us from the permissioning steps, we capture that infinite session id, do a lookup for a complete list of pages our user maintains and then bounce them out of Facebook back to our site to complete the process by asking them to tell us what they just told Facebook. I'll start with the page defined in next=:

# views.py
@facebook.djangofb.require_login()
def fbGranted(request):

    from cPickle import dumps as pickle
    from urllib  import quote as encode

    from myproject.myapp.models import FbGetPageLookup

    return render_to_response(
        "social/granted.fbml",
        {
            "redirect": "http://mysite.com/social/facebook/link/?session=%s&pages=%s" % (
                request.POST.get("fb_sig_session_key"),
                encode(pickle(FbGetPageLookup(request.facebook, request.POST["fb_sig_user"])))
            )
        },
        context_instance=RequestContext(request)
    )
# models.py
def FbGetPageLookup(fb, uid):
    return fb.fql.query("""
        SELECT
            page_id,
            name
        FROM
            page
        WHERE
            page_id IN (
                SELECT
                    page_id
                FROM
                    page_admin
                WHERE
                    uid = %s
            )
    """ % uid)

The above code will fetch a list of page ids from Facebok using FQL, and coupling it with the shiny new infinite session key, bounce the user out of Facebook and back to your site where you'll use that info to re-ask the user about which page(s) you want them to link to Facebook.

Step 5: Capture That page_id

How you capture and store the page id is up to you. For me, I had to create a list of organisations we're storing locally and let the user compare that list of organisations to the list of Facebook Pages and make the links appropriately. Your process will probably be different. Regardless of how you do it, just make sure that for every page you wish to syncronise with Facebook, you have a session_key and page_id.

Step 6: Push & Pull

Because connectivity with Facebook (and Twitter) is notonoriously flakey, I don't recommend doing your syncronisation in real-time unless your use-case demands it. Instead, run the code via cron, or better yet as a daemon operating on a queue depending on the amount of data you're playing with. However you do it, the calls are the same:

import facebook

# Setup your connection
fb = facebook.Facebook(settings.FACEBOOK_API_KEY, settings.FACEBOOK_SECRET_KEY)
infinitesessionkey = "your infinite session key from facebook"
pageid             = "the page id the user picked"

# To push to Facebook:
fb(
    method="stream_publish",
    args={
        "session_key": infinitesessionkey,
        "message":     message,
        "target_id":   "NULL",
        "uid":         pageid
    }
)

# To pull from Facebook:
fb(
    method="stream_get",
    args={
        "session_key": infinitesessionkey,
        "source_ids": pageid
    }
)["posts"]

Conclusion

And that's it. It looks pretty complicated, and... well it is. For the most part, Facebook's documentation is pretty thorough, it's just that certain features like this page_id thing appear to have fallen off their radar. I'm sure that they'll change it in a few months though, which will make my brain hurt again :-(

Abstract Sequential

I was up late last night. Very late. So late that it had stopped being late and moved well into being mid-morning before I finally passed out. I should probably look into that, but it was fun ;-)

So what was I doing until 1030 on New Years Day? Blogging and writing code of course. My previous post was only the first of two, the second of which is really long and all about my Facebook/Python/Django experiences. It's not finished/polished yet though, so I haven't published it yet.

In addition to those two posts though, I was also inspired by this post on Stephanie's blog about thinking styles to write a Javascript-managed quiz based word-for-word on the pen and paper quiz she pointed to there. For the most part, it was just an exercise for me in how to improve my Jquery-foo, but the subject of the test is fun and interesting too. I'm apparently an "Abstract Sequential" thinker which means that I like things done one way: the right way, and I'm not very good on picking up non-verbal cues. I ranked rather high in both "Abstract Random" and "Concrete Random" too though.

Anyway, if you're so inclined, I've posted the test here. Take it, and let me know what you are!

The Once and Future Me (MMX)

I noticed a number of people posting on Twitter today with the tag #10yearsago and it got me thinking of my actions over this past decade. I started asking questions like what was life like for me back in 2000? What's changed in the world, and what's changed in me over the course of these ten years? More than anything, my father's voice keeps coming up, telling me how life moves so fast. "Blink", he says, "and you're ten years older", and he's exactly right.

Ten years ago, I was still living with my parents in Langley. I claimed to be an environmentalist, while driving 33km to and from work every day and was dying to get the hell out of this province and into the world. My understanding of who I was, and what I wanted was still quite fragile, but at least I was beginning to comprehend that knowing these things was important.

Since then, I've run away from this place and seen the world -- admittedly only few pieces of it, but more than many people around here bother to see in a lifetime. I've lived in the biggest city in Canada, embraced volunteerism and politics and furthered my understanding of the answers to those two important questions.

To be honest, it's hard not to look back on the last ten years of my life and not be pleased with my experiences. I've made a good many mistakes (even made the same ones more than once), but on the whole, I think that I've done good for this world and been true to myself and those I care about. I've learnt more about who I am and what I want than I thought possible, and have no doubt that there's still a great deal more to take in. If my next ten years are as rich as the last, I will be a lucky man.

My concern however is rooted in my father's voice. Indeed, this time has passed quite quickly: I remember having lunch with my father days after 9/11 like it was yesterday, and some days it feels like I'd only recently abandoned Vancouver for a bigger, better life in Toronto... How did I do all of that in just ten years? How much time is left?

There is a life that I want out there, a person I want to be -- is there time remaining to become that man, to build the life I want? Is it folly to try to do both at the same time, or even to convince myself that that life can be achieved? And what if the needs of the various parts of that life are in conflict? When 2020 rings in, and I am 40 years old, will I be able to look back on these next ten years as favourably as those that just passed?

It's a hell of a thing to ask so much of a mere passage of time, but this is who I want to be and what I want out of this life. It may not happen. It may all go sideways. But the path will be mine.

Gnomedex 2009

Way back in September, I went on a "professional development" trip down to Seattle, Americaland for a conference called Gnomedex. The official line on the shindig is that it's all about "human circuitry", the ways in which society interacts with technology and what comes out of it all. The whole thing sounded rather interesting, so I convinced my employer to send me down there on their dime. However, as part of the deal, I had to "report back" on my experiences there... a job I've neglected 'till now. So, in an effort to fill that reporting gap, while simultaneously rejuvenating my slowly staling blog I'm going to post it all here:

General Impressions

I'll get these out of the way so you know whether you want to keep reading or not. I know that the title sounds rather interesting for the sociology-types, tech-nerds, and those that dabble in either but really Gnomedex can be summed up in one sentence: 300 people in a room for 10 hours talking about Twitter. That's it kids, if you're looking for a broader meaning or more interesting conference, Gnomedex isn't it. In fact, if you're a technical type (as I am), I'd go so far as to say that you should avoid this event like the plague.

For starters, the whole thing is a single-track, meaning that at any given time, there's one presentation happening and if it's more boring than watching paint dry, your only alternative is to step out into the hall and socialise with the herds of marketing people trading business cards and dropping names. For many though, this single-track focus is a feature and not a bug. The assumption being that everyone is collectively participating via Twitter during the presentation, people are constantly posting little 140character quips about the talk, and tagging everything #Gnomedex.

A neat experiment in social engineering to be sure... or at least it would be if the technology would cooperate. Internet connectivity was flaky at best, and when you could get online, sites aggregating the #Gnomedex hash-tag were freezing up, crashing out or just not responding. Behold: the future of monolithic service architecture. Look upon it and be unimpressed.

The conference also has a very cliquey feel to it, with the majority of people attending returning from previous years, most everyone knows everyone from the last time they were here. Much like Vancouver, Seattle seems to have a rather tight-knit community of social media junkies that really get off on this sort of thing. I'm sure it's nice for them, to have the opportunity to see in-person, those with whom they've been tweeting back and forth for a year, but for someone like myself, in from out of town to learn something... no fun.

The last general note I'll make here is that the event was a big hit with the big corporations. Micros~1 was out in force, pushing Bing like crazy, Starbucks was pushing their new instant coffee, and Amazon was trying to look all edgy by posting some Java code on a wall and asking people to attempt to "solve" it. The only problem? They didn't have anyone on-site that actually understood the code.

Talk: Thingiverse & Makerbot

The coolest part of the conference was generously scheduled at the start. The Makerbot is the future of product distribution. Here's how it works:

  1. You buy a makerbot machine
  2. You download a model file of what you want
  3. The makerbot "prints" it.

Often referred to as a "3D printer", the makerbot will make you anything you want (of a reasonable size) out of ABS plastic. Just keep it supplied with low-cost spools of plastic and feed in whatever 3D model you can find online and *poof* you have one. Potential uses include the practical: the little plastic knob on the A/C unit that broke off last week, to the functional: ornate boxes or jewellery, to the fun & crazy: a 1:1 scale model of Darth Vader's helmet, or Walt Disney's head. Really cool stuff, and lots of potential. The machines sell for just under $750/each, but are produced in batches so they might not be able to ship you one right away until they've filled the order for the batch.

I want one so hardcore.

fold.it

The premise sounded like a good idea, but someone really should have vetted the presenter. fold.it is a nifty video game that has you folding proteins. The idea is that protein folding (Wikipedia) is such a complex process that relying on computers to do the work just isn't practical. However, the scientific community just doesn't have the manpower to do it all manually. So instead, they made a video game that lets non-nerds use natural human understanding to do the job. Fold a protein and experience the joys of flashing lights, bouncing things and celebratory music. Rinse, repeat. It may sound silly, but this tactic is a growing field out there because it works.

Unfortunately, the presenter was 99% scientist, 1% people-person. The presentation was dry, boring, way, way, way over-technical and few people, if anyone in the room had any inkling as to what he was talking about.

Full video of the presentation can be found here.

Spam

This presentation was done by an ex-spammer, about the tactics his former industry of choice use to do that which we despise. Some of the more interesting tactics included:

  • Paying $50 to a student for her login so they could spam an entire .edu domain from her account.
  • Hacking sites to insert code that would redirect people to another spam site, or just pay the site owner to do it for them.
  • Comment spam (posting "comments" on blog posts all over the web that tell you about the awesome power of Viagra)
  • Using tools like "autopligg" to spam digg.com with spam.
  • Creating new blog sites using content from other people's sites (they access your RSS feed) and then riddle the copied site with ads.

Ignite

This guy has what he thinks is a brilliant idea: bring the concept of brevity out of Twitter and into in-person presentations. Take a topic, any topic and talk about it for no more than 5 minutes with 20 slides, at 15 seconds/slide. We sat through about 5 or 10 of these. Uninteresting and uninformative. Seriously people, this is not a good idea, it's just a way to pretend that you can be informed on something while simultaneously not knowing anything about anything.

My Cancer is Social

Drew Olanoff has Cancer, and he's dealing with it by sharing his experiences with the world. For just over 30minutes, Drew talked about what it was like for him to be hit by the news, how it affected him and his family and how reaching out to his online social community (many of the members of which were in the audience) has helped him cope. He's since created a site called Blame Drew's Cancer as a way to make light of, and deal with his situation and there's been a rather large outpouring of support.

There was a lot of hugging, and touchy-feelyness which I obviously didn't identify with, but as a social outsider looking in on the process, I found the whole thing rather fascinating.

Full video of the presentation can be found here.

Frank Eliason - A Twitter Top 10 List with Humour

A Twitter success story. Frank worked at Comcast in support and decided that it might be a good idea to run a Twitter account for the company, so he set one up. Then, he started noticing people bitching out the company for one reason or another, so he responded with something to the effect of: "ok, I'll get right on that" and went about fixing it. The result: a spike in customer satisfaction and stuff got done.

For the purposes of the presentation, he put together a top ten list of reasons why a company should get on board with Twitter and I'm not going to re-post it here. It's already on the Gnomedex blog.

Full video of the presentation can be found here.

Hacker Journalism (Mark Glaser)

Far and away the most disappointing presentation of the conference, though admittedly this is due in part to the rather low expectations I had for the other talks. If anything, this one suffers from a poor choice of title. Rather than "Hacker Journalism", he could have properly adjusted my expectations with something like "Data Reporting with a Purpose" or something.

Glaser's position was simple: journalism is a way of presenting data in a way that helps people understand it, so hacker journalism is using one's mad it-skillz to take big blobs of data and turn them in to non-nerd-friendly graphs and maps. He asked the audience to make suggestions for data mash-ups with maps and/or pie charts etc and then went on to demo a few examples of similar work already out there. One that I make a note of was the Obameter, a graphing app that takes stock of the promises made, kept, and ignored during the course of President Obama's administration. Neat stuff.

Unfortunately, Glaser has a tendency to throw around the term "hacker" in all kinds of contexts 'till the meaning is really quite gone. I get the impression that he thinks that anyone who can use Yahoo pipes is a hacker, or someone who can use Google Maps to draw something nifty should also wear such a title.

In the end, the talk was more about how maps + stats = mash-ups = awesome, and not so much about front-line independent journalism. As this was the presentation to which I was most looking forward, I was rather disappointed.

NerdCraft (Beth Goza)

As cute and fun as this was, I really don't understand how this presentation made it into the event. There was nothing technical or really even social about it, rather Goza talked at length about the subculture of nerd crafters, people who knit, sew, and crochet all kinds of stuff, from sci-fi characters, to katamari costumes. Some of the stuff she had was crazy:

  • Crochet Star Wars characters
  • A knitted panel of the entire first level of Super Mario Brothers (wo baby, awesome)
  • Some crazy person knitted/crocheted a life-size Ferrari
  • A little crochet Hellboy
  • And DnD dice!

All-in-all, I'm not convinced that her presentation was appropriate for the event, but it was a nice break from the rest of it.

Full video of the presentation can be found here. You should check this one out, it's fun :-)

Audience vs. Impact (Giant Ant Media (@giantantmedia))

There to talk to us about what works in social media was the couple that started Giant Ant Media. They opened with some examples of where they started: making 2min flicks about fart jokes, and followed this with what they were doing now, a documentary about youth in Africa called Bongo. The focus of the talk though was really about how to cultivate an online community. Find what both you and your users love and do it. Don't lie, or try to misrepresent yourself because your audience can smell it. Just focus on honesty in production, be it blogging or richer media and all will be good.

Full video of the presentation can be found here.

Closing

The conference was long, and really not much fun, but I salvaged a few nuggets of wisdom from the whole ordeal, my favourite of which was this:

The difference between knowledge and expertise is trust. Knowledge can be acquired, but unrecognised, isn't much use to anyone, while expertise is given by others who offer you their own credibility in praise of your knowledge. In the knowledge economy, this is kid of a big deal.

...and I think that that's where I'll close this one out. Next year, maybe my employer will send someone more marketing-friendly. Nerds really don't belong at Gnomedex.

pit-faulty