clarkbw is currently certified at Master level.

Name: Bryan Clark
Member since: 2003-10-31 05:47:51
Last Login: 2007-04-09 17:43:01

FOAF RDF Share This

Homepage: http://www.gnome.org/~clarkbw/

Notes:

I'm a graduate of Clarkson University with my Bachelors and Masters in Computer Science. My research areas are in Human Computer Interaction.

Check out mugshot.org



My Blog has moved to gnome.org, here's the link: Bryan Clark

Projects

Recent blog entries by clarkbw

Syndication: RSS 2.0

Open Source Design: Versions and Forking

It’s almost the new year so I’m getting started early in trying something new.

I moved to using only HTML/CSS for almost all of my mock-up purposes a while ago (see Why we skip Photoshop) . It’s just as fast, interactive, and removes much of the translation issues that that happen when an image is converted into HTML.

While the switch to HTML mock-ups has been good, I’ve continued to encounter the same issues I had with Photoshop images where I have to systematically save new versions of the original source and output.

Versions?

I’ve had many different approaches in trying to version my files.

No index file, just use the HTML list page the web server provides.

  • version 1/
    • prototype.psd
    • prototype.png
  • version 1.1/
    • prototype.psd
    • prototype.png
  • version 2/
    • prototype.psd
    • prototype.png

Or just appending the version numbers to each of the files as you save them.

  • prototype-1.psd
  • prototype-1.png
  • prototype-1.1.psd
  • prototype-1.1.png
  • prototype-2.psd
  • prototype-2.png

Later I end up with a mess of files with version numbers and I don’t really remember what happened changed in each of the versions. This is both true for myself and for anyone else who browsed my designs later.

I’ve also tried creating an index.html file so I could link to all the different versions and describe them but that index file is hard to maintain; eventually getting old and out of date.

Forking?

Oh so you want to participate in the design process? A remix of my mock-up simply means you have to choose a version and then copy all the files onto your own web server and try to get my attention so we can discuss your changes.

Active?

Am I still working on this mock-up or have I moved on? You’ll probably never really know because there’s no easy way to tell. If I have an index.html file then hopefully I put the last active date on it or if I don’t you could use the last modified time in the directory listing.

A New Way!

My new trick that I’ve recently started trying is to use GitHub Pages to host my HTML mock-ups. So far it seems to fix my version and forking problems.

Versions

I’m keeping a simple rule that each check-in must work (I can’t break the whole thing) and I should describe the changes in my commit messages as much as possible so myself and others can understand why the mock-up might have changed drastically.

There is no version numbering to deal with here since git does all the versioning. The GitHub page only displays the latest version, which is a little bit of a setback, but anyone can clone the source and then checkout the older versions locally.

Forking

Not only does GitHub provide a super simple way for people to fork my mock-ups but it also allows me to see what those people are doing by keeping track of the forks and their progress. I could actually incorporate changes from someone else into my mock-ups by merging them in.

Active

It’s pretty easy to see from the source view the last time I was actively working on a mock-up. And you could drop over to my profile view to see what other mock-ups I was more actively working on.e Bonus!

Next

I’m going to try to add some standard pieces to my pages so it’s easy to find the source code and perhaps a README page which quickly describes how to see the older versions of the mock-ups.

Any other ideas?

Syndicated 2010-12-28 23:04:54 from Bryan Clark

Thunderbird Conversations

Jonathan Protzenko, who worked with us over the summer, released Thunderbird Conversations the other day.

If you haven’t tried it out already you really should. We’ve been demoing it on the road for quite a while and I’ve been using it as my main way to interact with Thunderbird for weeks now.

Check out the TB Conversations Video for how it works.

Note: Thunderbird 3.3 is required for Thunderbird Conversations

See the Thunderbird Conversations post on the Mozilla Labs site for all the details.

Syndicated 2010-12-09 00:48:40 from Bryan Clark

Vancouver Go-Kart Spring GT

This Thursday at 11am PST will mark the beginning the the Spring GT race season in Vancouver. Mozilla Vancouver is set to take on a number of other local companies like Nitobi, mainsocial, KRANKY cafe, and others in several rounds of go-kart racing.

If you’re in the Vancouver, BC area and want to participate just ping @clarkbw or show up at the Richmond Go Kart Track; we have an open reservation. We have local cafes, tech shops, and individuals racing; you’ll fit right in. If you can’t make this weeks race, don’t worry; we’ll be scheduling other (weekly) races on different days and times to make sure everyone can at least participate in a few races.

This is an outdoor track, so dress appropriately. Oh yeah, and neither I nor my employer assume any responsibility for your ass during this activity.

Syndicated 2010-05-10 23:56:23 from Bryan Clark

Gathering Facebook Identities from Email

Looking at the announcement of the Facebook Graph API from Facebook F8 it seems like it will be a little easier to work with the Facebook system.

In Raindrop we already have some integration with Facebook in order to identify emails coming from the Facebook system and help you filter them out. But there is a lot more that can be done to help keep your email, Facebook, and other contacts in a cohesive form.

So here’s a quick code example written in Python to grab Facebook identities from emails sent by Facebook. This could be used to gather Facebook identities and then possibly merge those with twitter and email contacts.

First we need to import a couple things.

import email, json, urllib2

Then we’ll need to grab an email message.  I used Thunderbird to save a Facebook notification email message as an EML file locally, I called that file ‘facebook.eml’ as you can see below.

msg = email.message_from_file(open('facebook.eml'))

Now we have a parsed email message msg object and we want to look for the X-Facebook-Notify header in the email so we can extract what happened.

fb_notifiy = [tuple(t.strip().split("=")) for t in \
              msg.get('X-Facebook-Notify').split(";")]

The object fb_notify contains tuples of information about the type of notification.  Here is an example of an object you might see.

[('event_wall',),
 ('eid', '14102494623'),
 ('from', '21602578'),
 ('mailid', '12bf28cG149a112G63016bG21') ]

Using fb_notify we’ll do a really simple grab of the from attribute because that is what is going to be publicly available from the Facebook Graph.

from_identity = json.load(urllib2.urlopen("http://graph.facebook.com/%s" % fb_notify[2][1]))

Here’s an example from_identity object:

{u'first_name': u'Bryan',
 u'last_name': u'Clark',
 u'id': u'21602578',
 u'name': u'Bryan Clark' }

The from_identity can be used to more clearly identify who Facebook is sending this notification on behalf of and we could try merging this Facebook identity with other identities we already have in our contacts.

I saved all this code into this gist if you want to take a look at it in code only form with syntax highlighting.

Syndicated 2010-04-21 18:58:12 from Bryan Clark

201 older entries...

 

clarkbw certified others as follows:

  • clarkbw certified auspex as Journeyer
  • clarkbw certified jdub as Master
  • clarkbw certified nullity as Master
  • clarkbw certified campd as Master
  • clarkbw certified aldug as Journeyer
  • clarkbw certified hp as Master
  • clarkbw certified Uraeus as Journeyer
  • clarkbw certified fejj as Master
  • clarkbw certified Archit as Journeyer
  • clarkbw certified funrecords as Journeyer
  • clarkbw certified mpesenti as Master
  • clarkbw certified calum as Master

Others have certified clarkbw as follows:

  • mslicker certified clarkbw as Journeyer
  • elanthis certified clarkbw as Journeyer
  • Uraeus certified clarkbw as Journeyer
  • mpesenti certified clarkbw as Journeyer
  • pbor certified clarkbw as Journeyer
  • dobey certified clarkbw as Apprentice
  • ade certified clarkbw as Journeyer
  • lerdsuwa certified clarkbw as Journeyer
  • lucasr certified clarkbw as Journeyer
  • wingo certified clarkbw as Master

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page