Techcafeteria

Ubiquitious Blogging

Mozilla.org just released one of the most exciting Firefox add-ons to come down the pike – Ubiquity. This is very alpha – the user interface will definitely mature, so what’s there now is best suited for geeks like me who have always liked command shells and already do things like use the Mac’s Spotlight as their calculator (if you type 2 + 2 in Spotlight, it will tell you it equals 4).

Ubiquity is best described as a macro language for the web, or a personal mashup engine. You assign a hotkey (such as Alt-space or Option-space) and a box comes up, which you can enter ubiquity commands in. I’m not going to tell you all about them – just watch the video:


Ubiquity for Firefox from Aza Raskin on Vimeo.

At this point, Ubiquity’s functionality pretty much requires a Google account – the email, calendar, maps and contacts integration is all with Google’s offerings. I expect that to change rapidly, as developing custom commands for Ubiquity is at a very basic programming level.

The case uses that are immediately apparent include adding maps and multimedia content to emails and blog entries (I use Scribefire – this assumption assumes that you compose your blog in your browser); having a lot of info available without having to tab away from the web page you’re on; and making some complex web tasks far more efficient. Mozilla is ambitious, though – they see Ubiquity as the ultimate personal web assistant, that will someday let you issue a command to book a trip; issue another to set up a multi-party meeting, and, who knows? Vacuum the house and feed the fish. Aza discusses that vision here.

Try Ubiquity out. Install it from here. Let me know what you think, and what case uses you envision for it.

Current Projects

In addition to my primary pursuits—managing technology at Earthjustice and being a good member of my family—I’m working on a few additional projects that I’m also excited about:

  • Virtualization Webinar

I’m preparing a webinar for NTEN on the power and benefits of Virtualization technology. Geeky stuff, yes, but the entire concept of server management has been turned on its ear by this development and it’s fascinating stuff for even smaller nonprofits.

  • Software Purchasing article

Idealware will likely publish an article I’m writing on how to successfully accomplish a major software purchase. How to identify the suitable apps, prepare the Request for Proposal/Quote, and get the right people at the evaluation sessions.

  • BDP Website

The Briggs Delaine Pearson Foundation is a nonprofit in Clarendon County, SC, where the first action in what eventually became Brown vs. the Board of Education began. My Grandmother-in-law was one of the original signers of that petition, along with other family and the attorney, Thurgood Marshall. My wife and I are going to revamp the current website to tell the story in an engaging fashion, invite participation from others, and, ideally, make the site more of a tool in garnering support for an organization trying to accomplish the unfullfilled promise of the Brown decision in the community where it all began.

What are you up to?

Losing Facebook

Where do you live?  Where do you hang out?  Does your social life revolve around a particular location?  Presumably, your social life is only as geographically restricted as your travel budget allows.  You can meet your friends at a coffee shop, mall, park or home.  You don’t always meet them at the same place; and you don’t go to that place to call them..  So why should your online social life be any different?

This week, Google announced that their internet portal page, iGoogle, would be incorporating widgets, or, as they call them, Gadgets that perform the type of social networking functions that online social networks like Facebook, LinkedIn and MySpace provide.  This comes at a time when Twitter, the group chat/micro-blogging tool has been rising up the social staircase and getting a lot of new users and attention.  Twitter, unlike the more established social networks, is more commonly accessed through third-party, desktop applications than the twitter.com web site.

I like this trend.  My primary social networking site isn’t Facebook or LinkedIn—  it’s GMail.  Twitter is the first thing to challenge that.  Because, for me, it’s not about the brand – it’s about communication.  So Facebook has it’s ouvre, it’s demographic market, and, like everyone else, it’s mission to learn everything there is to learn about my network’s shopping preferences, and the slow website and constant “spam your friends” requirements of their tools really puts me off.  LinkedIn has a cleaner, more professional aesthetic that I find a lot less annoying, but my favorite new feature of theirs is the ability to subscribe to the feed of my network updates in my RSS reader (something Facebook doesn’t provide).  So I’m rooting for the destruction of the social networking brands, and the ultimate incorporation of powerful social tools into my my desktop, RSS Reader and email.

At that point, I’ll be able to take advantage of the powerful interpersonal tools that the web enables. I’ll still travel to my friends and associates web sites; and I’ll still visit the Ning and Drupal communities that matter to me.  I won’t need a middle man like Facebook or MySpace.  That will be a happy day!

Random Identity

I took a brief trip to Second Life the other night, yet another web 2.0 trend that, like Facebook, sends my normally open-minded and curious instincts running for shelter.  I’ve never been into gaming, and I obviously don’t use the internet in order to do things anonymously – my username is based on my real name just about everywhere.  But I’m looking for any means possible to improve communication at my geographically diverse company, and to do it while reducing our carbon footprint.  So that’s quite a challenge – how do we improve communication while cutting down on flying, when we have offices in Honolulu, Juneau and D.C., among other places?

So it struck me that Second Life, as a virtual meeting place, has, at the very least, potential that should be vetted.  I have yet to do that vetting – I plan to give it a shot tonight by attending a virtual meeting with the Techsoup virtual community. On Wednesday, I created an account and figured out just enough about how Second Life works in order to get to the meeting later. Reactions:

Good:

  • Second Life supports voice, if you have a microphone and stereo speakers, and does it well enough that, if you’re conversing with someone who is, in the Virtual Reality, standing to your left, their voice will come from the left speaker.

  • It was easier than I thought it would be to move around and figure it all out.  Your mileage might vary.  It is, necessarily, a somewhat busy interface.

Bad:

  • You are not only advised to not use your real name, you can’t.  The account creation process lets you create a first name (text input box) ad select a last name from about 25 in a drop down list.  After being advised to “pick my name carefuly, it’s permanent, and can’t be changed”, I had little option to actually pick a name that I identified with or took seriously.

  • Big roots in the gaming community, obviously.  The account creation process offers you ten avatars to choose from (avatars being the cartoon images that will represent you in the virtual world).  Five female, five male – I was not going for the female impersonation thing, so that left me five.  Of those, one (“Boy Next Door”) was fairly innocuous, although it looked about as much like me as Fred from “Scooby Doo” does.  If I didn’t want to be Fred, my choices ranged from anthropomorphic fox people to what must be villains from the old “He-man, Master of the Universe” Saturday morning cartoon.  Mind you, I was able to customize Fred’s appearance, and while I was shooting to make him look like me (I know, completely unclear on the concept here), as close as I could get resembled my punk rock days in the late seventies.

So, I’ll do a follow up post after I get to do what I set out to do, and evaluate Second Life as a virtual meeting place.  But, already, I’m trying to imagine how I explain to the eighty or so Earthjustice Attorneys that step one is to pick a name like “John Vigaromney” that you’ll be known as, and step two is to decide whether you want to look like a furry animal or a grim reaper.  Then determine whether the avatars will reduce any serious meeting on global warming or mountaintop protection strategies to jokes and hysterical laughter.

I’m really not looking for Second Life, but there’s a huge—and maybe critical—application for Supplemental Life, which lets online collaboration more intuitively replace travel.

NTC08 Part 2: In Honor of Marnie Webb

At the NTEN awards on Friday, Marnie Webb took the Person of the Year award, and rightly so!  In honor of Marnie, a key originator of the nptech community, I want to share the story of how I met her.  And try to make her blush a bit more.  :-)

In 2004, I was reading Jon Udell’s Infoworld columns about a new technology called “Really Simple Syndication”, RSS.  The technology interested and thrilled  me a bit, because it looked like it might provide a much needed management tool for web-based information (which it did).  In early 2005, I was browsing through popular bookmarked web sites at Del.icio.us, a web site that made innovative use of RSS, and saw a link entitled “The Top 10 Reasons that Nonprofits Should Use RSS“.   I noted that the author, one Marnie Webb, of course, worked near me in SF at Compumentor/Techsoup. The next week, I ran across a  post by the same Ms. Webb to the del.icio.us mailing list.  Armed with the knowledge that there was someone else obsessed with the same technology trends and potential that I was, I emailed her and said “You don’t know me, but we have to have lunch”.

The rest is this story—this blog, Techcafeteria, my happiness in finding/joining NTEN, which Marnie introduced me to.  We started up the nptech aggregator web site, as the next logical progression in Marnie’s campaign to get people around the world referring useful information to each other via that ubiquitious tag.  But I am positive that my story is far from unique—Marnie is one of those people who, in her unassuming way, promotes ideas and community. So, good work NTEN, and great work Marnie! A well-deserved award.

Data Exchange Article Up at Idealware

My article “XML, API, CSV, SOAP! Understanding the Alphabet Soup of Data Exchange” is up at idealware.org.  This is intended as a primer for those of you trying to make sense of all of this talk about Application Programming Interfaces (APIs) and data integration. It discusses, with examples, the practical application of some of the acronyms, and suggests some recommended practices around data system selection and deployment.  Credit has to go to Laura Quinn, webmaster at Idealware, who really co-wrote the article with me, but didn’t take much credit, and our reviewers,  Paul Hagan, Steve Anderson and Stephen Backman, who added great insights to a pretty heady topic.

The article went through a lot of rewrites, and we had to cut out a fair amount in order to turn it into something cohesive, so I hope to blog a bit on some of the worthwhile omissions soon, but my day job at Earthjustice has been keeping me pretty busy.

Rails Wrap-up

So, I came to this Rails conference looking for a few things. It’s not over, but I think I’ve got a good sense what I’ll walk away with tomorrow.

I started to learn a bit about Rails while considering joining a software start-up (in the non-profit space). I spent a month hammering away with a few O’Reilly books and a sample project, then got pulled away by real world concerns like starting up my new career fast so my family won’t starve. I got far enough to get the concepts and philosophy, master the innovative database management (activerecord), and start an app that I plan to finish and publish as part of Techcafeteria someday. Along the way, I loved the rapid development features and recognized Rails as a bit of a conceptual leap in programming/scripting, that values efficiency of following conventions over coding. Being oriented toward finding the fastest paths to the best results, I was also intrigued by how Rails builds Ajax functionality into the code (I just never bothered to get beyond the basics of Javascript, preferring server-side programming, I bias I now regret…) But I also grew concerned about the platforms speed and scalability, concerns that my friends at Social Source Commons (SSC) would second, I suspect.

So, the four areas that the conference could have helped me with, and how it did:

  1. Learning more of the scripting language. Not so much—maybe a referral to the book I’m missing that will glide me right over that hump.

  2. Ajax intro – pretty good. I attended a few sessions on Prototype and Scriptaculous that gave me a far better handle on how they work .

  3. Ruby Scaling—an awesome session on the proxy cache and other options out there to speed up Rails, with pointers to what bottlenecks it. This was likely the most valuable thing, and I’ll be contacting Gunner to offer to take a look at the SSC platform and see if we can apply some of what I learned.

  4. Where it’s going, as I reported on yesterday. Among web scripting languages, PHP and ASP/.NET are the kings today. My prediction is that Ruby on Rails will eclipse them, and gain broad adoption among web 2.0 developers and corporations looking for in-house app development tools. The main limitation – performance – is being addressed and will be fixed, no question.

The benefit of having a functional application roughly 60 seconds after you think of a name for it is phenomenal, and the developers are completely geared toward continuing to make it the out of the box solution for speedy delivery of standards-based, current tech web applications.

Instant Open API with Rails 2.0

Day 2 at the Ruby on Rails conference – after the Keynote.

My main focus is on technology trends that allow us all to make better use of the vast amounts of information that we store in myriad locations and formats across diverse systems. The new standards for database manipulation (SQL); data interchange (XML) and data delivery (RSS) are huge developments in an industry that has traditionally offered hundreds different ways of managing, exporting and delivering data, none of which worked particularly well—if at all—with anybody else’s method. The technology industry has tried to address this with one size fits all options—Oracle, SAP, etc., offering Enterprise Resource Platforms that should be all things to all people. But these are expensive options that require a stable of high-paid programmers on hand to develop. I strongly advocate that we don’t need to have all of our software on one platform, but that all data management systems have to support standardized methods of exchanging information. I boil it all down to this:

It’s your data. Data systems should not restrict you from doing what you want to do with your data, and they should offer powerful and easy methods of accessing the data. You can google the world for free. You shouldn’t have to pay to access your own donor information in meaningful ways.

How can the software developers do this? By including open Application Programming Interfaces (APIs) that support web standards.

So what does this have to do with Ruby on Rails? At the Keynote this morning, David Heinemeier Hannson showed us the improvements coming up in Ruby for Rails 2.0. And he started with a real world example: an address book. Bear with me.

  1. He created the project (one line entered at a command prompt).

  2. He created the database (another line)

  3. He used Rails’ scaffolding feature to create some preliminary HTML and code for working with his address book (one more line).

  4. He added a couple of people to the address book.

At this point, with a line or so of code, he was able to produce HTML, XML, RSS and CSV outputs of his data. The new scaffolding in 2.0 automatically builds the API. I could get a lot more geeky about the myriad ways that Ruby on Rails basically insures that your application will be, out of the box, open, but I think that says it well.

Think of what this means to the average small business or non-profit:

  • You need a database to track, say, web site members, and you want to further integrate that with your CRM system. With rails, you can, very quickly, create a database; generate (via scaffolding) the input forms; easily export all data to CSV or XML, either of which can be imported into a decent CRM.

  • You want to offer newsfeeds on your web site. Create the simple database in Rails. Generate the basic input forms. Give access to the forms to the news editors. Export the news to RSS files on your web server.

This is powerful stuff, and, as I said, an instant API, meaning that it can meet all sorts of data management needs, and even act as an intermediary between incompatible systems. I still have some reservations about Rails as a full-fledged application-development environment, mostly because it’s performance is slow, and, while the keynote mentioned some things that will address speed in 2.0, notably a smart method of combing and compressing CSS and Javascript code, I didn’t hear anything that dramatically addresses that problem. But, as a platform, it’s great to see how it makes actively including data management standards a native output of any project, as opposed to something that the developer must decide whether or not to do. And, as a tool, it might have a real home as a mediator in our data integration disputes.

The Rails Thing

It’s Thursday morning, and I’m in Portland, Oregon at the 2007 O’Reilly Railsconf, all about the web programming language/environment/framework called Ruby on Rails. I was introduced to Ruby on Rails by a friend/associate who I hope to be doing some work with soon – we’re part of a group looking for funding to develop some applications. I program in a few languages, mostly PHP, but agreed to learn Ruby on Rails after being introduced to it.

Ruby on Rails, it turns out, is a controversial language, in a way that is very reminiscent of the Apple vs. everything else debate. Rails enthusiasts are very attached to the platform, and adherents of Java, C, and even PHP, tend to be very skeptical, with complaints that the structure is too rigid and that the language only goes so far. They might be right – I’m not fluent enough yet to know. But there are a few definite things that have me interested in Rails.

  1. Rails abstrats the database creation and management process in a really fascinating way. Using the MVC framework—model, views, controller—you basically develop your database using plain english to describe the relationships between tables. This really works for me. To create the database, you write some very simple code that adheres to certain naming conventions, and then you can manage the database almost exclusively from the code.

  2. Once the database is created, Rails uses a method called scaffolding to automatically create forms for database manipulation. With one line of code in your controller, you can very simply grab data from multiple tables using a simple syntax. Rails makes it all very, very easy.

  3. I’m looking for a holy grail, of sorts, something that falls halfway between a programming language and a content management system (CMS), and this comes close. What can we use to rapidly develop interactive, web-based applications that doesn’t lock us into the type of assumptions that Drupal and (the current version of) Joomla do, but don’t require building the whole thing from scratch? Ruby on Rails is still a pretty complex thing for most techs at non-profits to budget the time to learn, but it’s intriguing, as is the move in the next release of Joomla to have it sit atop a Ruby on Rails-like framework (that, unfortunately, lacks the database routines).

I’m also looking at Javascript/ajax libraries – I’m in one right now on Prototype and scriptaculous, but the presenter is the developer of scriptalicious and his presentation style is somewhat coma-inducing…

Update on OpenID server

A quick addendum to my last entry:

First, my apologies if you’re trying to play. For some reason, the DNS change that will allow you to access openid.techcafeteria.com is taking a looonng time to propagate. I’ve asked my ISP about this. And it makes no sense to give you the ip or an alternate name – you need the actual name to get this working.

Don’t trust me to maintain techcafeteria.com 24/7 for as long as you may live? Good thinking! I’m hosting this on my home box, because I can’t hack PHP sufficiently in order to get it going on my ISPs system. So this is what’s cool about OpenID. It’s relatively easy to become an OpenID provider, if you have your own server. I think it took me two hours or so to get it all set up. So there will be plenty of providers out there. And OpenID gives you an option for setting up a permanent address on any server where you can create a simple page (regardless of whether it’s your system or if it has anything related to OpenID installed) and then referring it to your OpenID provider. So, if I take my system down (I do that about twice a year), you can register somewhere else and simply point your URL to their system. It’s very flexible, and you’ll have the instructions in front of you after you create your ID on my server.

In addition to OpenID.net here are two important resources:

OpenID Enabled is a wiki devoted to OpenID. Very thorough!

The OpenID Directory is an early stab at collecting all of the sites that allow you to log in via OpenID. It’s also an OpenID provider, if you’re looking for that backup.