A Bill of Righteous intent

Before the Bill of Rights for Users of the Social Web, there were various efforts at establishing clear policies or practices related to the ownership, scope and providence of so-called user data. While I can’t name them all, I might cite , The Cyberspace Charter of Rights, the DigitalConsumer’s Bill of Rights and then Attention Trust afterwards. This is clearly not a new problem, but it has gained renewed prominence owing to the wide adoption and popularity of social networks.

As such, I want applaud the authors’ effort on pulling this together in a timely fashion, and offering it up to the world to discuss, improve upon, and ultimately see to its implementation.

Continue reading “A Bill of Righteous intent”

MarsEdit 2.0 is out!

MarsEdit Software Update

I’ve been involved for many months in the MarsEdit beta list, even before Ranchero (Brent Simmons) sold it to Red Sweater Software (Daniel Jalkut). Today, after months of long work, Daniel has finally released MarsEdit 2.0.

Besides an exhaustive UI overhaul, MarsEdit now supports Flickr account access through its new Media Manager, support for the WordPress ATOM XML-RPC protocol for adding categories and custom code macros among other things.

Brent’s written up the release, as well as TUAW. For $30, it’s a pretty solid deal for a great piece of software.

Groups for Twitter; or A Proposal for Twitter Tag Channels

Twitter / Mr Messina: how do you feel about using # (pound) for groups. As in #barcamp [msg]?

This is the post that I alluded to in my last one about Whispering Tweets. I’ll make a disclaimer right now that the title of this post is misleading and actually not about Groups for Twitter. In fact, I’m not at all convinced that groups (at least as they are commonly understood on sites like Flickr) are ultimately a good idea or a good fit for Twitter. But, I do think that there is certainly some merit to improving contextualization, content filtering and exploratory serendipity within Twitter. This is a rather messy proposal to that effect.
Continue reading “Groups for Twitter; or A Proposal for Twitter Tag Channels”

Whispering Tweets

Twitter / Mr Messina: !psst... I'm whispering...

As a preface to the post that I intend to write next, I wanted to quickly jot down an idea that I think would be useful for Twitter… it’s partly inspired by my own instinct towards openness and partly clarified by Lane Becker‘s comment about Twitter Groups (the topic of my next status):

Personally, I’m not particularly interested in being able to create groups of people I can send certain subsets of messages to. That kind of fine-grained privacy management stuff drives me crazy on sites like Vox. Maybe I’m old-skool, but it feels like people in that environment are all about what they’re hiding, not what they’re sharing, and I prefer sharing. Hiding inhibits usage and growth, and it’s lame like high school. Don’t do it.

Emphasis added.
So it’s interesting that Twitter went with a binary model of privacy — either you have it or you don’t. Sure, you can direct message folks, but in terms of your complete timeline, either the world knows what’s up with you or they don’t. This is certainly straightforward and easy to grok, but doesn’t really allow for a third option, which would be a form of conservative promiscuity: a very public timeline with support for statuses that can only be seen by your innermost circle (or even just yourself).

The first step would be to set up a “whisper circle” or “inner circle” that will receive your whispers. This leaves you free to maintain a public timeline while adding the ability to restrict at least some of what you’re doing to a small, and more intentional, audience.

N. B.: You would only get one “inner circle” to start. For real private messaging circles, you really should just use email or Pownce. As far as I’m concerned, use the best tool for the job. This proposal is being made with the knowledge that many people would be interested in having personal d-lists or buddy sets like Pownce, but I’m defying that out of concern that overloading Twitter with this kind of management functionality would turn Twitter into something it’s not and wasn’t intended to be — which is a replacement for email in 140 character chunks.

I propose a very simple syntax for these kinds of messages: just begin your message with a bang (!) and then type your message as usual (yes, I do realize the irony in using the exclamation point for whispering). An example:


!psst... I'm whispering...

This status will only show up in the timelines of those friends who have been added to your inner circle. It will not show up in any public timelines. To reply to a whisper with a whisper, one of my friends could use either:

!@factoryjoe I can hear you. or @factoryjoe !I can hear you.

In either case, the use of an @reply to my whisper should not betray my confidence and would guarantee that I’d get the response in my replies. Like private tweets, only my inner circle at the time that I sent the message would be able to see my “whisper stream”.

I should also note that the name “whisper” comes from IRC lingo. It will make sense why I’m using both this syntax and this name in my next status on Twitter Channels — and, as an old Dodgeball user, the use of the bang to preface a message has been done before.

For now I’m curious about your thoughts on the usefulness of this proposal. Again, it’s incomplete without my next post, but as a simple protocol and as a way to bring back some folks who have gone private to living in the sunlight again, I thought I would offer it up for feedback.

Keynote Template for laying out iPhone apps

November 9, 2008. I’ve updated my template to include the 3G iPhone and to support better layering on individual slides. Now available on its own page.

iPhone TemplateBlake Burris reminded me that during I had created a simple Keynote template for laying out flows for iPhone apps, similar to the approach I took in developing exPhone using a Keynote document to do the basic wireframing and page layout design.

Four states come with this template, and can be seen in the figure above. Go ahead and download it and lemme know what you think — if this is useful. And, of course, you’ll need to make use of this.

WordPressMU: Making a smart platform choice

I recently engaged in an interesting discussion with a client about their choice of platform technology for their website and community build-out. Their current website is built in .NET and they’re getting to the point where things are about to start getting set in stone in terms of scaling and overall architecture and it kinda freaked me out that they’d continue down this path using a platform that I think offers little when it comes to organic community-building or much in the way of “doing web things right”.

I decided I’d write up my arguments for switching platforms in the hopes that I might test my thinking and in the process persuade our client to move to a more community-forward platform.

Continue reading “WordPressMU: Making a smart platform choice”

The story of exPhone.org

At FOO Camp, we held a session on Green Code and discussed various tactics for reducing power consumption by reducing (primarily) CPU cycles through wiser platform decisions and/or coding practices.

exPhone badgeSomewhere in the discussion we brought up the impending launch of the iPhone and it occurred to me that there really wasn’t any substantive discussion being had about what to do with the many thousands of cell phones that would be retired in favor of newer, shinier iPhones.

Thus the seed for exPhone.org took root and began to germinate in my mind — as something simple and feasible that I could create to raise awareness of the issue and provide actionable information for busy people who wanted to do the right thing but might not want to wade through the many circuitous online resources for wireless recycling.

I had a couple constraints facing me: first, I needed to get this done while Tara was traveling to Canada as I wanted it to be an [early} surprise birthday present. Second, I needed to get it done before so I could leverage the event to promote the site. And third, I had other competing priorities that I really needed to focus on.

exPhone Keynote LayoutI went about designing the site in Keynote (my new favorite design tool), relying heavily on inspiration from Apple’s section. I did a bunch of research and posted a lot of links to a Ma.gnolia group (in lieu of a personal set) and created a Flickr group at the same time. I of course also registered the associated Twitter account.

As I went about developing the site, I felt that I wanted to capture everything in a single page — and make it easy for printing. However, I brought my buddy Alex Hillman into the project to help me with the trickier PHP integration bits (his announcement) and he convinced me that multiple pages would actually be a better idea — not to mention compatible with my primary purpose of encouraging sustainable behavior! — and so we ended up breaking the content into three primary sections: Preparation, Donation and Recycling.

We riffed back and forth in SVN and things started to solidify quickly and we quickly realized that we should make the site more social and interactive. And, rather than build our own isolated silos, we decided we’d pull in photos from Flickr, bookmarks from Ma.gnolia and Delicious and use the groups functionality on Flickr and Ma.gnolia. This meant Alex simply had to toss the feeds into Yahoo! Pipes, dedupe them and then funnel the results in a SimplePie aggregator on our end to output the resultant feeds. It turned out that Pipes was, for some reason, not as reliable as we needed and so Alex ripped them out and ended up bumping up SimplePie’s caching of the direct feeds.

Alex put in extra effort on the Flickr integration side, creating an exPhone user account on Flickr and setting up email posting to make it super simple to get your photos of your exphones on to the site. All you have to do is take a photo of your exphone and email it to myexphone@exphone.org with a subject like this: tags: exphone, ‘the make and model of your phone’ (yes, the make and model should be in single quotes!). We’re kinda low on photos on there, so we’d love for you to contribute!

Lastly, I’ve gotta give props to The Dude Dean for his SEO tips. I’m typically not a fan of SEO, but I think when applied ethically, it can definitely help you raise your relevance in search engine results. We’re nowhere in sight, but I’d love to get up in the cell phone recycling results.

I’ve written this up primarily to demonstrate an evolving design process (Keynote to HTML to SVN prototyping to iterative launch) and the use of existing technology to build a simple but rich web application. By leveraging web services via various APIs and feeds, Alex and I were able to build a “socialized” site will little original development where most of our efforts were focused on content, design and behavior. I also made sure to mark up the site with microformats throughout making it trivial to add the organizations I mentioned to your address book or reuse the data elsewhere.

I like the idea of “disposable web apps” or “single purpose apps” that provide useful information, useful functionality or simply reuse existing materials in a novel or purposeful way. I’m also thrilled that Alex and I cobbled this thing together from scratch in a matter of three days. Yeah, it’s not a long-term, high value proposition, but it was great fun to work on and is something concrete that came out of that discussion at FOO Camp.

I of course welcome your thoughts and feedback and invite you to add your own stories, links or photos to the site!

What is a DevCamp?

DevHouse + BarCamp = DevCamp

While the event is still fairly fresh in my mind, I wanted to take a moment to extract some of the elements that I think made iPhoneDevCamp such a success. I’d like to put down my thoughts on how others can emulate our model towards yet another extension of the community-run, grassroots-driven event known as BarCamp — into a new style of event that shall be called DevCamp*.

You’ll note that in the original logo deliberations for iPhoneDevCamp I was very intentional about not including iPhone-specific artwork in the mark, instead choosing something more generic to the idea of building or construction. Fortunately Louie Mantia pitched in and was able to help me refine some of the ideas that I had and we ended up with the logo above — which you can download in vector form.

Anyway, getting back to the event itself…

First and foremost, the event set out to capture the spirit of four successful event models before it: SuperHappyDevHouse, BarCamp, Mash Pit and Mac Hack. It helped a great deal to have had experience running those events before and we relied on our collective instincts to keep the event flowing and ensuring that the participants were both enjoying themselves and contributing to the overall atmosphere of the event.

Equally important in the success of the event were the people involved. It was a rare privilege to work with such dedicated and passionate folks and I really can’t say enough how much the model of selflessness Raven Zachary, Christopher Allen, Dominic Sagolla, Blake Burris, Whurley, Jerry Murray and countless others portrayed over the weekend. First time participants eagerly volunteered their energies to improving the event for others in incremental but crucial ways. In all my experiences with BarCamps, DevHouses and DevCamps, the lesson is consistently that these events are all about the people who come together for each other — and go out of their way to improve the experience of their fellow campers.

It’s truly remarkable to see, but I’ve seen it over and over again and I think it’s at the heart of what’s been called the “Spirit of BarCamp“. iPhoneDevCamp was no different and carried forth a tradition that’s come to define our community and the events that we host.

Moving right along…

An essential aspect of this event, like the first BarCamp, was implicitly “embracing the chaos” as we like to say. The first BarCamp was organized in six days and catered to nearly 300 people. iPhoneDevCamp was planned in only three weeks and catered to nearly 400 (if not more). We were able to cobble together an incredible venue stemming from a simple tweet. We pulled in over forty sponsors who provided. When Raven originally put out the call to Whurley and me about throwing this event, we had no idea how it might turned out — and embracing that uncertainty and being transparent about our progress lead us to be open to the twists and turns along the way that ultimately resulted in an incredibly worthwhile experience.

In fact, Christopher Allen’s participation didn’t materialize into much later into the event planning process. His desire to rekindle aspects of the original Mac Hack that he chaired in 1993 lead us to step back and encourage Chris to take the reigns and bring his experience to bear. Sure enough, he did a fantastic job of guiding the Hack-a-thon and presiding as master of ceremonies. He was able to deftly get people on the same page and describe how we were to work with one another and really join in the spirit of collaboration and learning.

It was this aspect of education that I hoped would resonate most with participants — and that with an open atmosphere where no question was off limits, we’d see some really interesting and inspiring thinking about how to embrace the constraints of the iPhone as an opportunity palette — and to really push what might seem conventionally possible with just a cell phone with an internet connection and a web browser.

I would argue that it was the imposition of external and topical constraints that lead to such enormous focus and productivity. I’d add to that the utter necessity of having a widely diverse assortment of skilled participants in attendance in order to be able to approach problems from multiple perspectives and skillsets and to not accept simple technical limitations as barriers to executing on a vision. As Kent Bye put it:

Twitter / KentBye: DevCamp model of connecting teams of IA/Designers, coders & UI testers to create projects is a lot more productive than BarCamp-style demos

Again, I think this underscores my point that is a good thing, simply because it enriches the fabric of the intelligence available for solving problems in new and unexpected ways. It’s no surprise that Tilt, one of the favorite apps of the camp, was developed by a small but diverse team made up of a game designer, an artist, a couple developers and a documentary filmmaker.

So the best design pattern that I would extract from this event comes, historically, from Chris Allen’s experience at Mac Hack and deserves something of a brief retelling:

On Saturday morning, the organizers were huddled in the ops room reviewing how to most appropriately award the incredible schwag our sponsors had donated. We had a bunch of iPod and iPhone add-ons, a number of tchotchkes and other ephemera, but we also had a couple iPhones, a couple Adobe Creative Suite Design Premium packs and various other top quality prizes… but we wanted to make sure that we had an equitable way to distribute the prizes. We started brainstorming:

“We could do a raffle.”

“We could have a hack contest for best app.”

Chris Allen broke into the discussion and told us that instead what they used to do at Mac Hack was reward participation and helpfulness. He proposed that staff get 100 or so total “special tickets” that we’d pass out throughout the event to people who were being the most helpful, the most constructive or generally contributing something to the event that didn’t necessarily directly benefit themselves. These special tickets were the ones that would be used for the big prizes drawing — the iPhones and Creative Suites — and the regular tickets would be dispensed as people arrived as an incentive for sticking around for the entire event.

By focusing on helpfulness and enculturating a spirit of coopetition, we avoided zero-summing the event by encouraging and refocusing energy on sharing, co-educating and building things collaboratively. Eventually people were having so much fun doing pure experimentation and hacking that they forgot all about the prize tickets… providing the perfect opportunity to swoop in and reward their participation. All in all, this approach worked extremely well and is a pattern, again, that I think should survive iPhoneDevCamp and carry forth into other such DevCamps.

To bring this all together — what I’m most proud of out of this event is how it brought people together to solve (or at least hack on) some pretty challenging and vexing problems and to do so with utter abandon, wearing one’s passion on her or his sleeve. It was an opportunity to learn in an open environment where diversity and raw talent were at a premium. There was no room for posturing or pretentiousness. And I think for folks not familiar with the camp community, like Michelle Quinn of the LA Times, this was a novelty and not something that she’s used to at conferences or events.

And I think it’s a testament to those involved and those who helped organize the event that we’ve set the bar exceedingly high for subsequent iterations. Like BarCamp and SuperHappyDevHouse before it, DevCamp offers a free, compelling, low-cost event model for organizing people around their passions. While there is already talk of subsequent iPhoneDevCamps, there is also interest in extending the model already. I’m excited to see how people can take this original design and stay true the values of openness, diversity, education, and the passionate pursuit of ideas and expertise.

came before Raven’s creation of the iPhoneDevCamp name. I believe Raven coined the name independent of the prior event but seems like a good idea to extend the name outward, while we have momentum.

My default WordPress setup: 17 must-have plugins

WordPress iconWordPress is my favorite blogging platform and has been for a long time. It gets the basics right and never overwhelmed me as I grew up in my blogging experience. However, like Firefox, WordPress is also eminently extensible and makes it easy to both get more out of the platform the longer you’re on it and the more plugins you add to customize your experience.

Recently I took a look at the numerous WordPress blogs I maintain and decided to extract some of the best plugins I use across them. They range from spam management to reporting and stats to authentication and better overall functionality. Here we go:

  • Akismet: the best comment spam protection this side of dodge. It fortunately comes pre-installed, though you’ll still need an API key from WordPress.com.
  • Clutter-Free: a simple plugin for customizing the WordPress composing interface. If you never turn off comments or worry about editing the slug, this is a handy plugin to keep things nice and tidy.
  • Comment Timeout: I just started using this one recently when it turned out that 90% of my comment spam was showing up on older posts. This one’s a life saver.
  • Diagnosis: this is a really useful plugin for finding out information about the server that you’re hosted on. Essential for debugging compatibility problems (like which version of PHP you’re on).
  • FeedBurner FeedSmith: Steve Smith originally wrote this plugin to make it easy to use FeedBurner for syndicating your blog and now FeedBurner has taken over its maintenance. Super easy to use and super useful.
  • Maintenance Mode: whenever I need to upgrade WordPress, I always flip the switch on this plugin giving my visitors a pleasant down-time message. It doesn’t come with LOLCats out of the box, but you can customize it to be if you’re feeling adventurous.
  • Share This: Alex King creates incredibly useful plugins and this is one of them. If you want to make it easy for your visitors to share your posts on bookmarking or social network sites, this is the one plugin you need.
  • TanTanNoodles Simple Spam Filter: Matt is skeptical about this plugin, but I find it useful. Essentially you can blacklist certain words and this plugin will delete any comments found to contain those words, as well as pre-filter comments as they’re being submitted. Whether it’s redundant to Akismet or not isn’t important to me — I need all the anti-spam kung fu I can get!
  • Trackback Validator: this plugin is part of a research program out of Rice University. I don’t know how well it works, but I certainly have very little trackback spam since installing it!
  • Subscribe To Comments: unless you’re a co.mments or coComment user, it’s often a pain to stay on top of comments you’ve left on other blogs. Subscribe To Comments adds a checkbox below your comment box to allow your readers to subscribe to comment followups via email.
  • WordPress.com Stats: like Akismet, this is another Automattic product. If you have a WordPress.com account, this plugin will gather visitor stats on your blog and integrate them with your WordPress.com dashboard.
  • WordPress Database Backup: this one is also pre-installed by default and is recommended as part of the routine for upgrading WordPress. Every time you increment your install, you should do a backup with this plugin.
  • WordPress Mobile Edition: Alex comes through with another hugely useful plugin for converting your site to be mobile-phone friendly. I’m currently working on a skin for the iPhone, but for everything else, this one works wonders. Highly recommended.
  • WordPress Reports: If the WordPress.com stats aren’t enough for you, Joe Tan has written an awesome plugin that merges your FeedBurner and Google Analytics stats into a very readable page of infographics.
  • WordPress OpenID (+): of course if I’m going to be running multiple WordPress blogs, I’m not going to want to remember multiple usernames and passwords across them. Instead, I use OpenID. Will Norris‘ work on Alan Castonguay original plugin fixes some bugs and update the JanRain library to avoid a number of compatibility errors.
  • WP-Cache: if you get any kind of traffic whatsoever, this plugin is a lifesaver, especially in spikes from Digg and elsewhere. Turn it off while testing but otherwise, leave it running.
  • WP-ContactForm: Akismet Edition: I used Chip Cuccio‘s WP-ContactForm for some time but found that it was a bit too restrictive with its spam fighting tactics. I switched to this version, which uses Akismet rather than regex rules and have found that it’s a better balance for me.

So there you go. That’s the list that I use for every WordPress blog that I start. I should ask: how many of these do you use? What’s your favorite list of WordPress must-adds?

Oh, and bonus! I start every theme I work on with . It’s extremely flexible, fully classed (including native support for microformats) and now there’s a contest for best skins on until the end of the summer. Definitely a must-have for any new blog I work on.

OpenID is for small business

Blinksale OpenID Signin Form

I’ve had this opinion for some time but felt that it was time to memorialize it: OpenID is not only the domain of grassroots developers, but it also (and should be more so) is the domain of small and independent businesses.

What better way to know and serve your customer than to be able to both identity who they are consistently and, where appropriate, hook up complementary services between sites through on uniform authentication experience?

Blinksale announced its support for OpenID today, only two weeks after 37 Signals upgraded Basecamp, their flagship collaboration app, to support the protocol following a successful trial on Highrise, their contact management web app. In the comments, Jason pointed out that the Open Bar feature of Basecamp enabled by OpenID will eventually be present in all their apps, hinting at how OpenID helps you better serve your customers across disparate applications.

I think that this is where OpenID will really shine — where you can have web applications like Basecamp, Highrise, Harvest, Blinksale, Freshbooks, Pownce and others all working seemlessly together even if they’re provided by different vendors, simply because they’re able to treat you as the same person as you move from one to another.

Screw big business adoption; the place where OpenID wins is with the little guys in small business — and with the grassroots folks who are agile, who can move to adopt this technology and who realize that this is the best chance they’ve had to really start treating their customers like real people instead of isolated records in their user database like all the big guys have for so long.

And I’m absolutely thrilled that business likes Blinksale and 37 Signals are starting to see this and turn this into a reality.