Review: Highrise, part 2

RubyOnRails : Posted by Robby Russell at March 20, 2007 06:53 PM

It’s been five days since I posted my initial review of Highrise, that shiny new application by our friends at 37signals. I’ve been getting adjusted to my new process of managing contacts and have had to remind myself a few times that there is a brand new tool that aims to make my life a little easier.

Contact Form Integration

I haven’t heard about a Highrise API available yet, but I will definitely be looking into tighter integration once that is available.

Direct Submissions (not yet)

It seems that Highrise isn’t going to allow direct emails to be sent to it, they need to come from an existing contact in your account. For example, our contact form sends an email to our customer service mailing list. At one point, we had it connected to the Basecamp API to submit each new contact request as a new message in a designated project, but it didn’t really give me what I was looking for. Since each user in Highrise has a custom dropbox email address, I thought that I would try to link up the contact form to submit directly to Highrise.

I got the following response back from Highrise. ;-)

Hi Robby- An email was sent to your Highrise dropbox from john@cusackforpresident.com. This address does not correspond to any address that you have recorded for yourself in your Highrise account, and so the email was discarded.

So, in the meantime, I’m following this process with new contact requests as well as the other people at PA who are responsible for responding to Contact Requests.

Contact Request Submission

So… let’s say that John Cusack (one of my favorite actors while growing up) is having a weird dream and wants to get a website built for the record store that he ran in High Fidelity.

PA Contact Request Form

He fills out the form and submits it, which our application than stores and also sends over his contact information to our customer service email address.

A few minutes later…

Manually Review in Mail.app (and apply 2-minute rule)

Here I am in Mail.app and doing a double-take… “is that the real John Cusack?” (no, it’s just test data).

Email in Mail.app

I then ask myself the following questions…

  • Can I answer this in less than 2 minutes?
    • If yes, respond immediately (forward to Highrise, if contact info will be needed again)
    • If no, forward to Highrise

Okay, so I’ve decided to forward this contact to Highrise as I decided to go ahead and speak with John over the phone, since he was kind enough to leave his phone number.

As I mentioned in my last post, I’m using Act-On for forwarding emails to Highrise.

(back-tic h)

Mail.app with Act-On

...and off the email goes.

View/Edit message/contact in Highrise

I’m now logged into Highrise and looking at my dashboard. As you can see, John Cusack is now at the top of my dashboad and waiting for me to decide if I want to do something with it.

Highrise Dashboard

Schedule Follow Up tasks

As I mentioned, I spoke with John over the phone and promised him that I’d send him a follow up email with a proposed date/time for a meeting next week.

Adding task in Highrise

...and that’s one way that I’m now using Highrise to getting all my contacts organized.

Five Day Review

Well, after five days of using Highrise, I’m still impressed with it. Our Administrative Assistant began using it last Friday and is using it to schedule follow up tasks for me. This definitely beats the old process of leaving post-it notes on my desk with names and phone numbers. :-)

We also upgraded to a paying account and paid for invoice #4.... and I plan to hit contact #200 later today within our account.

A few bugs:

  • Forwarding email from Thunderbird doesn’t currently work (as of last Friday)
  • A few forwarded emails from Mail.app didn’t work right (garbled… html emails perhaps?)

Also… it appears that 37signals has opened the doors to the public earlier today.

Have fun!

Review: Highrise, part 1

RubyOnRails : Posted by Robby Russell at March 15, 2007 11:45 PM

So, today I got what I’ll call a platinum ticket from one of our pals at 37signals for their upcoming new application, Highrise, which is what they’d call a “shared contact manager.” The rest of you can keep hoping that you’ll win a golden ticket this weekend. ;-)

For the past year and a half, I’ve been wanting to build some sort of contact and task management tool for organizing all of the contact requests that PLANET ARGON receives about our Design and Development and Rails Hosting services. If I go away for a week, I come back to a huge backlog of people who may be waiting a response from me. Having a tool to allow others at PA to see what is in my queue and in some cases, respond on my behalf… has been needed. When I first heard about Highrise long ago, I got excited and have tried several different tools and each of those tools has left me feeling uneasy. Perhaps I’ll post some reviews of the other tools one day.

First Impressions

The signup process looks familiar… :-)

highrise signup

Look and Feel

Well, it definitely looks and feels like a 37signals application. There might have been a time when I thought that would be silly… but really, when you look at other product suites, consistency is extremely important to the user experience. While they are definitely going to attract people to Highrise who have never used any of their other products, I’d also expect a huge majority of their initial customers will be users of their other products. It’s obvious that Highrise was in response to a void in the market that people (likely customers) were asking for in other products like Basecamp.

Highrise has all the Ajaxy goodness that you’d expect in a brand new modern web application. Most of it seems very intuitive, but I found myself getting caught up on the extra tabs across the top of the screen. When new tabs appear, my natural response was to try to close them when I was finished looking at the page. Perhaps this is just a design decision that I’ll learn to really like. At the moment, I’m still not quite sure because I expect the tabs to change quite frequently.

Highrise tabs

(few minutes later)

Actually… I wonder if the interface designers at 37signals did this to help their users avoid having several tabs open in their web browser. I use Safari for Basecamp and generally have 5-8 tabs open throughout the day for different projects that our team is working on because the Dashboard view doesn’t really give me a good feel for what is happening throughout the day on our various internal and client projects. I’ll try to pay attention to my usage habits to see if I’m opening less browser tabs in Highrise.

So far, this is the one thing that I’m not quite sure about (yet).

Highrise meets Act-On

Once I saw that you could forward emails to Highrise and it’d auto-magically create a contact and store it, I jumped for joy (not literally… but I got an evil grin). I have been using (more like heavily relying on) Mail Act-On for what seems a really long time. I’m constantly forwarding emails off to my colleagues to keep things from sitting stagnant for too long. So, guess what I did?

Mail Act-On + Highrise

This is working beautifully and allowed me to move about 20 contact requests to Highrise in just a few minutes.

With this new ability, I can remove that one project in Basecamp that I was using to collect contact request information. That information now has a proper home!

Manage your Peeps

PLANET ARGON peeps

I’m taking more screenshots and going to continue putting more of our contacts into Highrise… so… consider this part one of a short series of posts.

To be continued…

Typo Blog 4.1 for Rails released and 4.2 expected soonafter...

RubyOnRails : Posted by Benjamin at March 15, 2007 05:38 AM

Remember that blog named Typo, the one that was really active under development and a lot of us got our start with when rails first became known as the hip framework that it is? Well, they’ve been plugging away for six months or so in the back of seedy bars and diners on their laptops to finally release their 4.1 version with talk of 4.2 soonafter. I even have to upgrade myself for the ruby on rails blog which is still running typo for those of you curios enough to ask…

Here’s the scoop on what’s new:

The changelog is quite impressive, but I’ll only deal with the visible part of the iceberg :

* Ruby on Rails 1.2 support.
* Complete functionnal revamping of the back office, and partial ergonomic rebuild.
* Internationalization and localization support using localization plugin. The application now runs in French.
* Comment and trackback default moderation.
* Lots of bugfixes and code improvement.
* RSS support for tags and categories.
* Plugins now use Rails plugin engine. We’re gonna release packed plugins soon.

Typo 4.2 is due in 2 months, and the roadmap is quite impressive :

* Support of a publishing workflow and users roles.
* Multiple blogs support with a single Typo instance.
* Switch from Localization to Globalization.
* Integrate proposed patchs as plugins.
* Finish the admin revamping.
* Support more languages.
* Stop doing stupid things like starting to support localization the day before the planned release date.

The project is looking for translators a designer to work with me on the admin while I’m doing the ergonomic stuffs.

You can download the source or install Typo via the gem :

laptop # gem install -y typo laptop # typo install /some/path

[edit] There’s a bug in the migration process if you come from the 4.0 version. Before doing the migration, edit db/migrate/056createnotifications.rb and comment the following line : drop_table :notifications

If you have already started the migration, comment both lines : renametable :notifications, :oldnotifications drop_table :notifications

Ruby on Rails goes 1.2.3 and Mongrel has come a long ways too!

RubyOnRails : Posted by Benjamin at March 14, 2007 08:26 PM

The Ruby on Rails team is at it again with another update to… you guessed it, Ruby on Rails. According to the administration, this release irons out the few wrinkles there was between Ruby 1.8.6 and Rails 1.2.2. Not a critical upgrade for most but a useful one for all of us using Ruby 1.8.6.

On another note, why stop at upgrading rails.

Check out the latest version of mongrel as well. That fine piece of software has really gone a distance. That isn’t to say I haven’t had some unexplainable issues lately with session freezes but that could be config issues on my part. I’ll actually be posting about it once Tommy or I figure it out.

To upgrade both of them, simply do: gem update rails mongrel -y

And there you have it! Have fun and try not to lose your wrench!

Poor Communication and IT Projects

RubyOnRails : Posted by Robby Russell at March 12, 2007 10:25 PM

InformationWeek has a short story titled, Poor Communications, Unrealistic Scheduling Lead To IT Project Failure.

“Communications failures top the list of reasons IT projects fail, according to poll results from the Computing Technology Industry Association.

About 28% of 1,000 respondents identified poor communications as the main cause of project failure, according to CompTIA, which offers project management training.”

So, while we’re all spending so much of our time focused on improving our technical skills, are we also investing our time into becoming communication superstars?

If you look back at the following posts, you’ll see some links to some excellent books on this topic.

Stikkit wins award at SXSW

RubyOnRails : Posted by Robby Russell at March 12, 2007 01:13 PM

After kicking myself all weekend for not heading to SXSW... was getting ready to head to sleep last night and saw a post by Michael Buffington announcing that Stikkit won an award for Best Technical Achievement.

Congrats to Rael, Michael, and the rest of the Stikkit team!

Invited to the Microsoft Technology Summit 2007

RubyOnRails : Posted by Robby Russell at March 12, 2007 01:01 PM

As mentioned a few weeks ago, I’ll be up in the Seattle area in a few weeks. I took the invitation to head to the 2007 Microsoft Technology Summit in Redmond, WA. When I received the invitation… my immediate response was, “Why me?”

Their response?

“The event is specifically for people other than Microsoft fanboys… they want to have a dialogue with influential members of the developer community outside of their comfort zone to see what we can learn from each other..”

Fair enough. Perhaps they’ll convince me to switch our entire team to Microsoft products… but I highly doubt my team would be cool with that. ;-)

It looks like Michael Koziarski (of Rails Core fame) will also be at the event. Supposedly, there will only be 50-60 people… so if you’re also going to be there, let me know.

I’m not sure what to expect yet from the event and they don’t have a web page dedicated to it. The most that I could find was a few blog posts from attendees of previous years. I plan to do some blogging during the event to share my experiences (good and bad).

p.s. thanks to those who invited me to have drinks/dinner while I’m staying in Bellevue. I’ll be responding to your emails in the next week. if you’re interested in meeting up, drop me a line.

Seth Godin on Dialogue

RubyOnRails : Posted by Robby Russell at March 09, 2007 05:37 PM

It appears that Seth Godin is catching on to the concept of Dialogue.

Seth writes, “Some organizations are good at listening. Some are good at talking. A few are even good at both.”

I’ve been spending a lot of time thinking about how I listen to clients, employees, friends, and family. All of our relationships are a series of conversations. Sometimes we can have healthy dialogue, sometimes we just fall victim to debate. (see Dialogue vs Debate)

If you’re really interested in Dialogue, I’d encourage you to review the technology of Dialogue... and check out the Dialogue-Driven Development project and introduce yourself.

RadRails moves to Aptana

RubyOnRails : Posted by tshine at March 08, 2007 03:06 AM

I was hanging out in #radrails on IRC when Kyle Shank (lead developer of RadRails) came in the room and announced that RadRails will be moving over to the Aptana project (http://aptana.com). This will mean that developers will have the power of Aptana's HTML, JS and CSS editors along with the features they have already grown to love from RadRails such as templates, database view, code generators, rake tasks view, etc. This appears to be a win win situation. I would like to take this time to thank Kyle Shank and Matt Kent for getting RadRails to the point it is today. I have used RadRails since the first version and have high hopes for its future in the hands of the Aptana developers. Please join us in #aptana on IRC (freenode) to help get the community started.

Free PeepCode Coupon and T-Shirt

RubyOnRails : Posted by topfunky at March 06, 2007 06:42 PM

Since yesterday’s product toss went so quickly1, how about another shot?

In the photo above you can see the my final project from my letterpress class (printed last night).

I designed this as a fake concert ad where most of the band names include some kind of typographical term2. The first three people to correctly identify at least 8 of the 9 will receive a coupon for an episode of PeepCode and a PeepCode t-shirt shipped to their house at my expense (anywhere in the world).

Void where prohibited. The Topfunky Corp is not responsible for lost, misdirected, or SPAM-tagged email. Employees of the Topfunky Corp not eligible. Entries by people with either “Jacob” or “Harris” in their name will be checked twice to verify accuracy.

UPDATE! Congrats to Michele Finotto, Keith Frost, and Luke Redpath for being quick on the trigger and also having correct answers. They will be receiving a PeepCode t-shirt in the mail soon.

Correct Answers
bastarda
A gothic script from France and Germany used in the 14th and 15th centuries. Was used for documents of minor value or importance.
beardline
The lower extent of descenders in letters like g, p, or y.
mutton
A measurement equal to the width of the letter “m.” Also called an “em space.”
nut
A measurement equal to the width of the letter “n.” Also called an “en space.”
hedera
A decorative character in the shape of an ivy leaf.
slug
A piece of lead or other metal used to make space between lines of text.
pilcrow
The paragraph sign. ¶
full bleed
The technique of printing past the edge of a page, or printing out to an area and then cutting the paper to a smaller dimension.
neitherhanded
Not technically a typographical term, but refers to typefaces that do not lean to the right or the left. Early typefaces were made to look as if they had been drawn by a right-handed person, but others abandon this and have a more upright appearance (for example, bodoni).

Thanks to everyone who entered, including Jacob Harris!


1 Ten coupons in about 15 minutes. Honestly, I’m a little worried that people are stalking my blog so frequently that they notice within one minute of a new blog post.

2 Most of the people in the class didn’t find this funny, which baffles me. How is “The Rusty Slug” not funny?

20 Trusted AJAX, DHTML and JavaScript Tool Sites

RubyOnRails : Posted on Max Kiesler at March 06, 2007 06:33 PM


AJAX Tools AJAX Patterns
AjaxPatterns.org began as a collection of design patterns, which formed the basis of the book, Ajax Design Patterns, and grew into a publicly editable wiki on anything and everything Ajax. All pages (except this homepage) are now editable, no registration required. Feel free to contribute!

FiftyFourEleven
Ajax examples (XMLHttpRequest examples), code snippets and proof of concepts - the links below should help get you started on building your own functions with XMLHttpRequest and Ajax.

Google Web Toolkit - Build AJAX apps in the Java language
Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don't speak browser quirks as a second language. Writing dynamic web applications today is a tedious and error-prone process; you spend 90% of your time working around subtle incompatibilities between web browsers and platforms, and JavaScript's lack of modularity makes sharing, testing, and reusing AJAX components difficult and fragile.

Kabuki Ajax Toolkit
The Kabuki Ajax Toolkit (AjaxTK) is now available for separate download for object-oriented UI programmers that want to deliver some of that Zimbra Ajax richness within their own web applications.

MiniAjax
A showroom of nice looking simple downloadable DHTML and AJAX scripts.

Moo.ajax
Moo.ajax is a very simple ajax class, to be used with prototype.lite from moo.fx. It's roughly based on the prototype one, so their usage are very similar.

Nomadic Functions
Why include ten .js files (ala Yahoo UI) to create one simple effect? This may be a drastic example, however, in any case, even when using MooFX's small 2k library you are including a lot of filler code. What's the solution? Nomadic Functions. Nomadic functions are small, optimized, and fairly specific. An example may be anything from a simple Drag & Drag function, to a AJAX Star Rating, or a Text Scroller. They are like widgets... but even smaller.

Oracle - Web 2.0 and Ajax Resources
On this website you will find hype free Ajax and Web 2.0 collateral, samples and pointers that you will find useful when building web applications today. In addition to having a strong focus on today's Web 2.0 technologies and Ajax, this page will also expose component information, best practices and hints and tips about the ADF Faces Rich Client components in JDeveloper 11.

Sun - Ajax Developer Resource Center
Details on AJAX App Development, Free Articles, Tips, Tools & More.

Yahoo! User Interface Library
The Yahoo! User Interface (YUI) Library is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, DHTML and AJAX. The YUI Library also includes several core CSS resources.

DHTML Tools DhtmlGoodies
DhtmlGoodies was launched the 6th of September 2005. The site is developed and maintained by Alf Magne Kalleland from Norway. The purpose of this site is to provide you with a library of well working DHTML and AJAX scripts.

Dthmlsite
At DHTMLSite, you will find a directory of useful AJAX/DHTML scripts and tutorials.

Dynamic Drive
One of the largest and best places on the internet to find DHTML scripts and tutorials.

Javascript Tools DZone Snippets - Javascript
Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Face
FACE was developed to allow standards-compliant web developers to put more life and energy into their pages, without having to learn Javascript or Flash: all it takes is basic math skills and a good understanding of CSS. FACE is built entirely from JavaScript and the CSS that you provide to control the animation.

Javascript Toolbox
This site is intended to be a repository of code and reusable libraries which address common needs that many web developers encounter. The code found here is based on standards but also tries to be backwards-compatible for browsers which don't support the standards. The information on the site emphasizes standards-compliance for best results, and best practices which should be followed. This is not a site containing snippets of code submitted by anonymous, unreliable coders. All code on the site is written by one person, in a consistent fashion, tested thoroughly, and used in practice by thousands of web sites around the world.

PublicWarehouse - Javascript Database
An amazing list of scripts in almost any category you can think of.

Remedial JavaScript
The JavaScript Programming Language suffers from premature standardization. Some feature omissions can be corrected by adding new functions and basic methods to our standard programming toolkit. That is what we will be doing here. There are functions that I feel should have been in the Standard and required in every implementation. Fortunately, JavaScript is such an expressive language that we can easily fix the omissions locally.

Ten Javascript Tools Everyone Should Have
Javascript frameworks have exploded on the scene over the last few years but they're no replacement for a good toolbox: those little snippets of code you seem to include in every single project. Here's my list of 10 essential Javascript tools everyone should have at their fingertips!

Top 10 Custom JavaScript Functions of All Time
If there was ever a universal common.js shared among the entire develosphere, you'd fine these ten (plus one bonus) functions. It would be the swiss army knife no developer would go into production without. They have no doubt been tested tried and true and have proven usefulness and helpfulness to all those who've used them. So without further ado, here are what I believe to the top ten greatest custom JavaScript functions in use today.

PeepCode Page Caching and httperf

RubyOnRails : Posted by topfunky at March 05, 2007 11:37 PM

Programmers love to see benchmarks and statistics. Admit it! You love it as much as I do. Show us a table of figures or a chart and we go ga-ga.

Who cares that these “authoritative” benchmarks often measure incomplete implementations or fail to re-measure their data when presented with red flags such as the idea that Rails 1.2 is 2-4 times slower than 1.1.6. Or that most omit one of the most basic of statistical measurements.

Many of these are presented innocently and without the intent to deceive but they aren’t models for meaningful benchmarking. Most of the time you’re not looking for big numbers and shocking statistics, you just need to find out which implementation is faster.

If I fragment cache my tag cloud, will it really make the site any faster? Are memcached sessions across the network really any faster than ActiveRecord sessions?

Most of the time this means benchmarking your entire Rails stack: webserver, app server, Rails, database, filesystem. One of the best tools for benchmarking a full stack is httperf. It has a pretty good set of features and it gives you statistically useful information.

Learn the Basics

I’ve spent the last few weeks picking Zed Shaw’s brain and learning all I can about httperf. I’ve put all that information into the latest PeepCode. It starts with an episode on Page, Action, and Fragment Caching, but if you are already familiar with caching you can jump straight to the main course and view the httperf episode.

More and more I’m finding that the best way I can communicate is through a screencast, but here are a few tips that have helped me:

  • You can’t do benchmarking without knowing some basic statistics. And no, understanding the concept of “average” isn’t enough! Learn about what standard deviation is and what it says about the data you pulled from your benchmarking run. No server performs at exactly 32.746 requests per second…there’s a range of error and if you don’t express your benchmark along with that range then you haven’t communicated anything. It isn’t very hard to understand and the benefit to your powers of evaluation will be huge. If nothing else, you’ll be able to properly criticize poorly executed benchmarks on other blogs! See also Zed’s rant.
  • Learn how to read the output of your benchmarking tool of choice. Even ab gives you some results with standard deviation, but it’s not often used. For httperf, it’s the “Reply rate” line. Here are a few from separate runs against the same server running two kinds of software:
Reply rate [replies/s]: min 100.6 avg 101.0 max 101.4 stddev 0.6 (2 samples)
Reply rate [replies/s]: min 100.6 avg 100.7 max 100.8 stddev 0.1 (2 samples)
Reply rate [replies/s]: min 94.0 avg 96.4 max 98.8 stddev 3.4 (2 samples)
Reply rate [replies/s]: min 103.8 avg 104.4 max 105.0 stddev 0.9 (2 samples)
  • Be a scientist. Running a benchmark should be done with the same care that a chemist measures a blood sample for a trace of a fatal disease. Quit all the other programs you have running. Use two separate computers so your benchmarking tool doesn’t compete with your web application for the CPU.

Here’s a script that will parse a text file full of “Reply rate” lines and give you a Gruff graph as seen above.

Calendar

I’m traveling a bit in March. If you’re at any of these places in the next few weeks, find me and I’ll give you a PeepCode t-shirt (limited to availability):

If not, you can buy a PeepCode t-shirt at my Shopify store (USA only for the first set).

Resources

And a free episode for the first 10 people to figure out how to use this coupon code: PEEP-NUBY

(The coupons were fetched up snappily in about 15 minutes.)

Please Make Fun of the Boss

RubyOnRails : Posted by Robby Russell at March 02, 2007 06:26 AM

While reviewing some articles related to small business management, I came across the following post… titled, Note From Boss to Employees, by Michael Wade. As a young business owner, who only 16 months ago was working in his attic… to now trying to figure out how to run a company with over ten employees (and growing), posts like this remind me that we all have so much to learn. :-)

Here are a few that I appreciated…

“I may not have been given a huge amount of training before being named to a supervisory position. As a result, I’ve had to learn through trial and error. That’s not always bad. Many of my responsibilities can only be learned through practice.”

Yep… that’s me! The only difference is that I promoted myself instead of being promoted by someone else. I’m still not sure what I got myself into sometimes. ;-)

“I will make mistakes. Please give me the same understanding that you’d like me to give you when you blunder.”

This reminded me of a blog post from last year, titled, Avoiding the most common software development goofs, which points out that things like ignorance and stress are often to blame for mistakes in development. I feel like these are reasons for goofs in just about any environment, especially business. Let’s face it. We’re not perfect and we’re going to make a lot of mistakes. Once we’ve agreed on this, let’s take the next step and see what happens.

“If I do something dumb or am on the verge of doing so, please tell me. Don’t hint. Tell me.”

Perhaps this is a common problem for most small business owners. Are employees afraid to tell me that I’m doing something dumb?

“If either of us has a problem with the other’s performance, let’s talk about it.”

As they say, real friends will be honest with you about your faults. Not because they want to make you look bad, but because they care.

Each of the points that I have listed here are pointing to is… healthier Dialogue, which is always a challenge to accomplish… in any relationship… whether with clients, coworkers, bosses, or employees.

I’d like to add a few to this list.

  • It’s easier to ask for forgiveness, than to ask for permission.
  • I’m still trying to get the hang of this GTD stuff, so.. you might remind me if I forgot something.
  • Ask yourself on a regular basis, “Am I having fun?” If not, make time for some.
  • Please make fun of the boss! :-)

Show up smiling

RubyOnRails : Posted by Robby Russell at February 28, 2007 03:20 PM

“Showing up on time …with a smile on your face is almost always more important than what you actually say or do.”—Seth Godin

overhead here...

The case for stating OpenIDs as complete URLs

RubyOnRails : Posted on David Heinemeier Hansson at February 27, 2007 07:35 PM

OpenID will have to co-exist with regular user names and passwords for some time to come in most cases. So as developers we have to come up with good conventions on how to deal with this duality. To do that, it would help greatly if we were able to distinguish an OpenID from a regular user name.

Consider this flow:

OpenID as username

With OpenID distinguishable from regular user names, you don't have to use an additional field to complicate the login or signup screen further.

It seems that there is already some support for the notion of specifying OpenIDs as complete URLs and not just their host names. Both Zoomr and Jyte explicitly encourage/require usage of complete URLs:

Zoomr Openid

Jyte Openid

But there are definitely other cases where just the host name is used. So neither approach seems to have taken hold as a defacto standard. I'd recommend that we move in the direction of full URLs. And if your site only takes OpenID, then you could still reinforce that idea by having login be something like http:// [input field].

quote of the day: server tricks

RubyOnRails : Posted by Robby Russell at February 27, 2007 07:03 PM

Daniel

...overheard on an internal forum…

“My my passion for nifty server tricks will blow peoples minds”Daniel Johnson

Data Visualization Software, Resources, Tutorials and Source Code

RubyOnRails : Posted on Max Kiesler at February 27, 2007 07:01 PM


Consider this list a primer. I've spent the last year looking at data visualizations and have compiled a list of resources that will give you a good view of what's going on in the field. Please use the comments section of this post to let the community know of any useful resources I've left out. Also, if there is enough interest in this post I'll be happy to open up a public wiki on data and content visualization. Please let me know.

Places to see Visualizations

We Feel Fine
Since August 2005, We Feel Fine has been harvesting human feelings from a large number of weblogs. Every few minutes, the system searches the world's newly posted blog entries for occurrences of the phrases "I feel" and "I am feeling". When it finds such a phrase, it records the full sentence, up to the period, and identifies the "feeling" expressed in that sentence (e.g. sad, happy, depressed, etc.). Because blogs are structured in largely standard ways, the age, gender, and geographical location of the author can often be extracted and saved along with the sentence, as can the local weather conditions at the time the sentence was written. All of this information is saved.

Peter Mayer - Lives Connected
This is an oral history of individuals experiences during Hurricane Katrina and its aftermath. It is also an experiment in content visualization.

Pedestrian Levitation
The creation of the work is based on the movement of pedestrians on a pedestrian crossing in public space. Some pedestrians walk only on the sidewalk and use the pedestrian crossing for crossing the street, other pedestrians freely make shortcuts on the formally imposed trafic situation. Pedestrian Levitation.net is an artwork in public space that reflects on this movement. It visualises the real movement of people, and adds a virtual movement based on the assumption that the mind of people is not subject to gravity or any other physical limitations.

Collective Subconscious
Collective Subconscious is an installation that imprints a dynamic collage of reverberating thoughts on a public space as people move through it. This project involves leaving behind traces of one's thoughts in the space that one passes through and collaging it with other people's thoughts. New messages will be prominently placed while older messages remain in the background and slowly fade out of existence. Words that are repeated over the day by many people will become more prominent and resonates with other instances of the words. As such the display become a visual representation of the state of being for people passing through that area.

3D Live Stats
If you've ever wanted to see your website usage on a large screen in a very visual way this is the application for you. From the demo video the visuals look stunning. As the earth turns you see your website visitors pop up on the globe in real-time also showing you a variety of other statistical data. One of the coolest features is the ability to hook up an interactive whiteboard or SMART board and be able to turn the earth with your fingers. Just like in the movie "Minority Report". I do wish they would produce a web base application so my website visitors could see this information in real-time. Nice product.

Digg BigSpy
One of the first sites that got me interested in real-time data visualizations was digg spy. I had just become hooked on digg when the spy came out, and watching the stories asynchronously roll by was even more intriguing than going to the regular home page. As they say on the digg site, "Digg BigSpy places stories at the top of the screen as they are dugg. As new stories are dugg, older stories move down the list. Bigger stories have more diggs. The projects currently in Digg Labs are the results of collaboration with Digg partner Stamen Design. As the project matures, we'll be releasing a public API to allow outside developers access to this data".

Musiclens
There are many search tools for finding new music on the web. Just type in, "artist, genre or title and you'll find some results. Ho Hum. I've been forced to use this same music search paradigm for years. However, there is a new breed of music sites cropping up that will give you new ways to discover new music. "Musiclens enables users to find pieces of music using very vaguely described criteria, such as loudness (perceived volume), mood or purpose. The search or recommendation query can be enhanced or limited by adjusting the ten navigation control sliders". This site works well and has a great visualization tool.

Gapminder
The Stockholm based website Gapminder provides wonderful interactive content visualizations of important global trends. This non-profit provides information from universities, UN organisations, public agencies and non-governmental organizations to graphically show us the state of what's happing in our world. The site looks at 16 different human conditions and plots them by year and by region. Conditions include, urban population, life expectancy, military budget, and 13 other world conditions you should know. Currently, this is the most important content visualization site for consciously minded world citizens. Please visit this site to see what's really going on in the world you life in. Giant hats off to the developers, Ola Rosling, Anna Rosling Ronnlund and Hans Rosling!

Lovelines
Lovelines is one of the most unique content visualization ideas I've seen recently. "Using a data collection engine created by the artists for their recent collaboration, We Feel Fine - wefeelfine.org, Lovelines examines thousands of blogs every few minutes to find expressions of love and hate, posted by all manner of people. When it can, Lovelines identifies and saves the age, gender, and geographical location of the person who wrote the post, and then presents that information along with the post." Lovelines shows it's data in words, pictures and superlatives. Words and pictures present individual examples of love and hate. Superlatives provides a daily zeitgeist of the most loved and hated things. All in all a very amazing content visualization of how the blogosphere feels about love and hate on a up to the minute basis.

Software to Make Visualizations

Prefuse Visualization Toolkit
A Java-based toolkit for building interactive information visualization applications.

Processing
Processing is an open source programming language and environment for people who want to program images, animation, and sound. It is used by students, artists, designers, architects, researchers, and hobbyists for learning, prototyping, and production.

Packet Garden
Packet Garden captures information about how you use the internet and uses this stored information to grow a private world you can later explore. To do this, Packet Garden takes note of all the servers you visit, their geographical location and the kinds of data you access. Uploads make hills and downloads valleys, their location determined by numbers taken from internet address itself. The size of each hill or valley is based on how much data is sent or received. Plants are also grown for each protocol detected by the software; if you visit a website, an 'HTTP plant' is grown. If you share some files via eMule, a 'Peer to Peer plant' is grown, and so on.

Enterprise Visualizations Solutions

i2
i2 Inc. is the leading worldwide provider of visual investigative analysis software for law enforcement, intelligence, military and Fortune 500 organizations.

ClearForest
ClearForest Corporation is a provider of text-driven business intelligence solutions, supplying the analytical bridge between two previously disconnected worlds of information--unstructured text and enterprise data. Our award-winning solutions offer manufacturers, publishers, federal, chemical & financial service organizations critical links to situational context buried in text for use in Business Intelligence [BI] systems.

Visualization Tutorials

Kyle Scholz Blog
A nice group of visualizations tutorials with example code.

Interactive Visualization of Volumetric Data on Consumer PC Hardware
Interactive visualization is no longer restricted to expensive workstations and dedicated hardware thanks to the fast evolution of consumer graphics. Course participants will learn to leverage new features of graphics hardware to build applications for the interactive visualization of volumetric data. A large body of the course deals with high-quality volume rendering. Beginning with basic texture-based approaches, the algorithms are improved and expanded incrementally, covering illumination, non-polygonal isosurfaces, transfer function design, volumetric effects, and hardware-accelerated high-quality filtering. The final session of the course discusses volumetric flow visualization and aspects of system design. Course participants are provided with documented source code covering details usually omitted in publications.

Websites to Make Visualizations

Swivel
Swivel is a Web site for curious people to explore data. Swivel was founded in December 2005 by Dmitry Dimov and Brian Mulloy. We both studied physics in college, Dmitry in Russia and Brian at the University of Michigan. We both worked together at a big software company. And we both love geeking out about data. Actually, all of us here at Swivel: Tao Ge, Visnu Pitiyanuvath, Seema Sharma, Huned Botee, and Richard Nghiem are a little nerdy about data and curious about all sorts of stuff. Data makes us go.

vuvox
As a workflow and easy to use online service, VUVOX can enable you to create personal, collaborative & emotive expressions using your own digital media - including video, photos, music and text. VUVOX reflects your life. VUVOX founders have created this foundation with your story in mind. Publish your creations to your own website, blog or MySpace page. More About VUVOX

Websites as Graphs
More visually appealing, but with less functionality, is this map by Sala Aharef's Websites as Graphs. It helps you see the density of a network, with color-coded indications of links, images and more, but is not very navigable.

Touchgraph
The TouchGraph Google Browser reveals the network of connectivity between websites, as reported by Google's database of related sites.

Many eyes
Many Eyes is a bet on the power of human visual intelligence to find patterns. Our goal is to "democratize" visualization and to enable a new social kind of data analysis. Jump right to our visualizations now, take a tour, or read on for a leisurely explanation of the project.

outside.in
Philosophically, this site is all about letting locals share their knowledge in ways that make sense to them, and so we've tried to make the tools here simple ones that will encourage many different ways of using the site.

Data Visualization Resources

Visualizing Email Content
This paper describes the interface and content-parsing algorithms in Themail. It also presents the results from a user study where two main interaction modes with the visualization emerged: exploration of "big picture" trends and themes in email (haystack mode) and more detail-oriented exploration (needle mode). Finally, the paper discusses the limitations of the content parsing approach in Themail and the implications for further research on email content visualization.

Non-Flash Content Visualization

Box Grid
New models for content visualization are popping up all the time now. Box Grid was originally developed as an experimental blog site. The two things I find most fascinating about Box Grid are the fact that it was originally released in 2002, and that does not use flash. The interface is all CSS and javascript based. While this type of content visualization will not work for every project it is place where we can start to imagine new ways to surf a website. The source code is also downloadable!

Search Visualizations

Grokker
Search visualization.

Vivisimo
Search visualization.

Snap
Recently new forms of search visualization have been on the rise. Snap is a great example of a new way to view search results. The applications allows you to view an image of the page your about to visit before you go there. The site is broken into two panes one with the search results and the other with a screenshot of the page. In the screenshot pane you can choose three different sizes of screenshots. You can view the site with either a new window or in the larger left pane. As a visual person I found it to be a fun way to browse search results.

mnemo map
Most of the sites that I've featured recently that have to do with content visualization have really been about deep discovery. If you take that notion and apply it to a search engine you have mnemo map. With mnemo you can search Yahoo!, flickr, and YouTube by tags, synonyms and translations for any search term. mnemo, "combines the technologies of social networking, search engines and other data sources to help you formulate search queries and find really relevant information".

Visualization Blogs, Categories and Posts

Visual Complexity
VisualComplexity.com intends to be a unified resource space for anyone interested in the visualization of complex networks. The project's main goal is to leverage a critical understanding of different visualization methods, across a series of disciplines, as diverse as Biology, Social Networks or the World Wide Web. I truly hope this space can inspire, motivate and enlighten any person doing research on this field.

Ben Fry
Ben Fry received his doctoral degree from the Aesthetics + Computation Group at the MIT Media Laboratory, where his research focused on combining fields such as Computer Science, Statistics, Graphic Design, and Data Visualization as a means for understanding complex data. After completing his thesis, he spent time developing tools for the visualization of genetic data as a postdoc with Eric Lander at the Eli & Edyth Broad Insitute of MIT & Harvard. For the 2006-2007 school year, Ben is teaching in Pittsburgh as the Nierenberg Chair of Design for the the Carnegie Mellon School of Design.

Cairns
Content visualization sections in her blog

Josh Spear
Content visualization sections in his blog

Source Code Released for aPop and footoo AJAX Photo Galleries

RubyOnRails : Posted on Max Kiesler at February 26, 2007 05:22 PM


When posting updates to aPop or footoo please post comments on this new post so others can keep up with development. If I find there is an interest in this project I'll start a wiki so members of my community can post new developments. Please let me know if this is something you will use.

Below you'll find links to my original post and to the source code downloads. Please enjoy!

See my original post on the galleries

Download the aPop source code

Download the footoo source code

Meet... Chris, Graeme., and Gary

RubyOnRails : Posted by Robby Russell at February 26, 2007 05:01 PM

Okay, this is a little overdue… but better late than never! ;-)

We’ve had several new people start with PLANET ARGON over the past few months. Some of them are blogging about their experience of working with Ruby on Rails and being a part of our team. I wanted to quickly introduce you to a few of them and their blogs, which I hope that you consider subscribing to.

Chris

For quite some time, we’ve been needing more design assistance, so late last year… we hired Chris Griffin, who moved here last year from Florida. He’s our new User Interface Designer and gets to work within the Rails environment everyday with the rest of us. It seems that Brian and Chris worked over the weekend to get his new blog up. Chris is self-proclaimed genius. I suggest that you keep an eye on his blog… because I’m sure it’s going to be a pretty active one. Chris joining our team marks a pivotal point in our teams evolution as we continue to place more emphasis in our Design and Development process on the User Experience.

Graeme

Graeme Nelson

Our newest hire is Graeme Nelson, who recently moved to Portland from Seattle. He just joined our Design and Development team and if you’ve been reading the Rails-related blogs, you might have seen his blog already. He’s been blogging a lot about using RSpec with Rails and other fun things. He’s been contracting with us since the start of the year and I’m really excited that he’s accepted a job offer and joined the team!

Gary

Gary eats sushi

Last… but not least is Gary Blessington. I believe that I first offered Gary a job with PLANET ARGON about 2 1/2 years ago when we were still focused on PHP/PostgreSQL…. but PHP apparently wasn’t enough of a catalyst. Gary and I previously worked together at Imark Communications several years ago, when I first started doing web development. He was the senior developer on the team and was an important mentor during my early days of developing in a professional environment. Late last year, he hung up his .NET tool belt to become our Design and Development Director. He started blogging earlier this year and is sharing his experience of switching from .NET to Ruby on Rails.

I’ll introduce the others as they start blogging and such. :-)

Good ideas for London in March?

RubyOnRails : Posted on David Heinemeier Hansson at February 26, 2007 05:09 AM

I'm going to London with Mary for a long weekend in the beginning of March. We've both been there a couple of times and consumed the usual suspects of turismo. Skipping those, where should we go? Which restaurants must we dine? What plays, performances, or exhibitions must we see? Thanks, lazy web. You're the best.

OpenID makes web identities real and appealing

RubyOnRails : Posted on David Heinemeier Hansson at February 26, 2007 04:54 AM

I've loved the idea of OpenID ever since I sat down with the boys from Verisign and East Media to hear them talk about PiP and the Rails integration, but I never really got around to playing with it. "How big of a deal is having multiple logins really?", went the thinking. For a lot of people the answer is still "not a lot". But I'm starting to see the light.

Over a few hours today, I read up on and implemented OpenID logins for Highrise. That opened my eyes. Both to how easy it is to get working as an alternate login solution and, more importantly, how decent the flow actually is.

Yes, there's redirection to another site involved, but once you've saved the login for a certain site in your OpenID and you're logged into your provider, you don't even see the redirection. At first that might seem a little scary. Logging into a site without even entering a password? But then again, that's pretty much how I authenticate with my application servers around the world through SSHKeychain and on all sites that gives you Remember me?

There are certainly still concerns to be addressed. Chief among which is probably the phishing issue. But smart men are hard at work and I'm sure we'll be able to come up with something clever. I don't think this or any of the other current uncertainties are reason enough to hold back.

What we need is adoption. Luckily, OpenID seems to have already gotten the attention of plenty of enterprising startups and big behemoths. Most prominent in the latter category is AOL, which with a swing of its wand granted everyone with an AIM account an OpenID. It's as simple as http://openid.aol.com/<screenname>. The simplicity of that solution was part of what got me started today. There's a lot of power in not even having to signup for anything new. At least for getting off the ground.

Making it as easy as not to
So we got millions of people with an OpenID by virtue of their AIM account. Great. Now they just need a place or two to actually use it. That's where the technology comes in. The toolkits. The "making it as easy as not to". While there's already a fair number of generators out there for Rails on the subject, I'm generally not a big fan of generators as anything but learning tools or for setting up conventions. I'd much rather try to find a clever API that's so simple there's no need for boiler plating.

A very first stab at that with Rails that I came up with today is as follows (which I'll wrap up as a plugin shortly):


class SessionController  ApplicationController
  include OpenIdAuthentication
 
  def create
    if open_id?(params[:name])
      open_id_authentication(params[:name])
    else
      password_authentication(params[:name], params[:password])
    end
  end
 
 
  private
    def password_authentication(name, password)
      if @current_user =
          @account.users.find_by_name_and_password(name, password)
        successful_authentication
      else
        failed_authentication "Sorry, that username/password doesn't work"
      end
    end
 
    def open_id_authentication(identity_url)
      authenticate_with_open_id(identity_url) do |status, identity_url|
        case status
        when :missing
          failed_authentication "Sorry, the OpenID server couldn't be found"
 
        when :canceled
          failed_authentication "OpenID verification was canceled"
 
        when :failed
          failed_authentication "Sorry, the OpenID verification failed"
 
        when :successful
          if @current_user =
              @account.users.find_by_identity_url(identity_url)
            successful_authentication
          else
            failed_authentication "Sorry, no user by that identity URL exists"
          end
        end
      end
    end
end

The only extra pieces you need is to implement successful_authentication, which creates the session and redirects into the application, and failed_authentication, which redirects back to the login screen with an error flash message. params[:name] doubles as both a regular user name and as an OpenID. I distinguish between the two by whether it looks like a URL or not (starts with http). The underlying mechanics are delegated to the ruby-openid library.

It's most certainly still half-baked. It only works for the authentication part, not for the create the initial account and get additional attributes part. But it's a start and I'm excited.

I truly believe that OpenID stands a great shot at becoming real and useful even to people who would start yawning at the mere mention of the word "authentication". It won't happen overnight and it certainly won't happen unless we all dig in and make it happen. What's here today is more than good enough to get started. So less excuses, more implementions.

If that pitch still hasn't infected you with OpenID fevor, I recommend watching Scott Kveton's quick pitch. Then digesting Simon Willison's talk on OpenID and his Six cool things you can build with OpenID.

Then consider the fact that Firefox 3 will ship with native support for OpenID and that Microsoft is getting on board as well. Suddenly a future of OpenID everywhere starts looking mighty plausible.

The Host with the Most

RubyOnRails : Posted by topfunky at February 24, 2007 07:52 PM

In the past few years I’ve installed Rails applications on a few different hosts. I won’t recommend any single host for all situations, but here are the ones I’m currently using and what I think they are best at.

DISCLAIMER: This is not an attempt to get hosting referral money…I’ve already done that and ended up putting $1,500 toward a special event for the Seattle.rb. But most of these places have referral plans if you want to mention Topfunky when you signup.

Dreamhost Shared Hosting
Best qualities: Cheap, huge bandwidth, tons of disk space
Worst qualities: Slow
Best for: Static or page-cached sites, static files
Server Specs: Apache 1.x, FastCGI
Currently hosts

I had a Dreamhost account before I learned Rails, so it seemed like the natural place to start installing apps. My first app took a few days to get up and running (but that was before Capistrano).

Dreamhost gives a huge amount of bandwidth. If you’re hosting a podcast or vidcast, this is the way to go (even just for the files). Their cheapest plan gives you 174 GB disk space and 1.74 TB of bandwidth.

However, I rarely login without seeing the load under 5 and it’s often over 15. Shared hosts are finely tuned to serve static files and PHP, but not Rails. At one point I had 5 different sites hosted there, but after a few months of flakiness I moved my blog elsewhere.

The Rails Podcast is still hosted there. It works well because the whole thing is page cached, which lets a shared host do what it does best…serve static files. If you’re running on a shared host I highly recommend using a third-party service like FeedBurner to serve your RSS or ATOM feed since that will constitute the majority of the hits to your site.

Here’s the .htaccess rewrite rule I use:

RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteRule ^podcast\.xml$ http://feeds.feedburner.com/rubyonrailspodcast [R,L]
TextDrive Shared Hosting
Best qualities: Official Rails host
Worst qualities: Strict limits, crashes
Best for: Static or page-cached sites, Subversion hosting
Server Specs: Apache 1.x, FastCGI
Currently hosts

I jumped at the opportunity to get a lifetime account for only $400. I thought, “I’ll be set for the rest of my life and will never need to buy hosting again!”

Unfortunately, seemingly frequent server crashes and stringent resource enforcement made it quite hard to run a Rails app reliably. Yes, the app I deployed was using RMagick and probably had a higher-than-average memory usage. I eventually moved all my Rails sites back to Dreamhost (and later to virtual hosts).

I tried running lighttpd under proxy, but that was even worse. TextDrive bots kill any process that goes over a memory or CPU threshold, which will kill your lighttpd server. And, you are restricted from running applications that monitor processes and restart them.

I haven’t tried to run a Rails app there in the past year, so things may have improved.

It works well for Subversion hosting, which is probably all the benefit I will get out of my $400 lifetime account.

Rimuhosting VPS
Best qualities: Reliable, great support, open-source discount
Worst qualities: None, but requires knowledge of Unix sysadmin
Best for: Rails apps that need to run reliably
Server Specs: 360 MB RAM, Debian Linux, lighttpd, FastCGI, MySQL
Currently hosts

I moved my blog to Rimuhosting after a few months of frustration at Dreamhost. It took a few days to install everything using Ezra’s instructions. I’ve since done a lot of tweaking to fine-tune everything.

It has been very reliable. Although customer support has been helpful and responsive, I haven’t had to use it much. It’s a virtual server, so you have root access but also need to be able to do basic sysadmin tasks: install software, monitor processes, setup log rotation, configure webservers.

A few months ago I installed Apache 2 and Mongrel, but the memory usage was a lot higher than lighty. I reverted to lighty and it has been running great ever since. For the most efficient memory usage, I’ve heard that lighty, FastCGI, and Postgres are the best (but nginx might be a good lightweight option, too).

I also run a few instances of PHP-fastcgi for Mint. This gives me a central place to run PHP without needing to install it on my other Rails-only servers.

The Production Log Analyzer tells me that my blog is serving between 40 and 80 requests per second. The load is usually under 0.1.

RailsMachine VPS
Best qualities: Reliable, solid hardware, great support, easy setup and deployment
Worst qualities: None, but requires knowledge of Unix sysadmin
Best for: Mission-critical Rails apps
Server Specs: 512 MB RAM, CentOS Linux, Apache, Mongrel
Currently hosts

RailsMachine is the best Rails-specific host that I’ve used. The railsmachine gem does all the setup in a few easy commands. It took me a total of one hour from the time I got my SSH login info to the time that I loaded the first page of my fully-functional site. Even better, I know that everything is setup properly with startup scripts, svn, and room for more Rails apps.

Knowing that my site is running on a RAID 10 storage system helps me sleep better at night. Support staff are very quick to respond and have intimate knowledge of Rails. The founder wrote the mongrel_cluster gem.

RailsMachine has been super reliable. You can find lower prices elsewhere, but the quality is definitely worth the price, in my opinion. If you have a site with any kind of revenue, I would recommend hosting it at a high-quality, reliable host like RailsMachine.

My only criticism is that I like Debian flavors of Linux (including Ubuntu), but only CentOS is offered. However, this isn’t too much of a problem.

Slicehost VPS
Best qualities: Inexpensive, quick setup with the deprec gem
Worst qualities: Unknown…have only used for a few weeks
Best for: A couple Rails apps
Server Specs: 256 MB RAM, Ubuntu Linux, Apache, Mongrel, MySQL
Currently hosts

A few weeks ago I was frustrated with the flakiness of the Ruby on Rails Workshops Calendar which was running on Dreamhost. Although I could have stuffed it into one of my existing servers, I wanted to try out the inexpensive Slicehost with a non-critical site.

I used the deprec gem to install Apache, Ruby, Rails, Mongrel, and MySQL in only 45 minutes (screencast). I also wanted to have an extra non-critical server to experiment on (with nginx or other deployment strategies).

I was about to write this article last week, but the entire host was down for about an hour. Fortunately the support staff was very responsive and things were back up quickly.

If you are a full-time Rails developer, I think you owe it to yourself to learn how to operate a server. Spending $20/month on your own education will be worthwhile and will help you make mistakes on your own before making them on a paying client project. Slicehost would be a great environment for that kind of self-education.

Relevant PeepCode Episodes

Ecosystem Navigation and Tiny Visualizations

RubyOnRails : Posted on Max Kiesler at February 21, 2007 03:58 PM


Many community websites have adopted a new form of navigation which works more like an ecosystem and less like a static list. The definition of an ecosystem is "a system formed by the interaction of a community of organisms with their environment". Ecosystem navigation relies on community input including, recency, popularity, and activity. As an avid reader blogs I've always been struck by the similarity in the way their information is presented and navigated. In a standard blog paradigm the reader is presented with a list of blog posts sorted by date, and a list of comments, categories, tags. By scanning this list of information the reader is given a good idea of what the blog is focused on and what topics the author posts about. However, this is less of a ecosystem approach and more of a linear presentation of the authors content. Tags and categories do give blog readers a non-liner way to explore a website and and this was the first area I decided to focus on.

The first tiny visualization that I saw on blogs that addressed the linear nature of the date driven layout was the tag cloud. This construct shows a list of tags used by the author in a weighted list which shows the most popular tags used as larger text and the lesser used tags as smaller text. This meta layer lets the website reader see graphically and quickly the most popular tags used by the author or the community. While tag clouds shows the authors interest, it does not show the readers interests.

Most blog authors have a statistical program that shows them readers interest by tracking incoming and outgoing links to their website. This data shows what the popularity is of an article or category of at any given time. Many of the newer stats programs are also enhanced with real-time charts and graphs which give you an easy way to comprehend all of the data. Whether this information is presented by month, day or even in real-time it shows the author what their readers are interested in. I have found over the years that this data does not always correlate with my blogs date driven navigational hierarchy . Many times my most popular posts on a given day is not the most resent. So I started wondering about the idea of showing blog data by popularity by both myself and my readers.

So was born my category pie chart. I know what you're thinking, "why an imaged mapped graphic -are we living in 1997"? In a work no, this graphic was produced serverside on the fly by real time database information and the image map that controls it is completely accessible. It was built with a software app named ChartDirector which I combined it with my blog application. What's missing at this point is the popularity of category by readers. Once I've created this chart, myself, and my readers can see what categories we are both interested in. This is more of an eco-friendly navigational system. Next steps will also include developing other tiny visualizations of blog posts, comments and archives.

Ecosystem navigation is a convergence of both the authors and readers interest presented by recency, popularity, activity. The next step for me will be to find a real-time convergence in categories, tags and blog posts presented in an easy to understand graphical manner. Consider this a starting point for the discussion. Please let me know what you think about these ideas in the comment section of this post.

Seattle in late March

RubyOnRails : Posted by Robby Russell at February 21, 2007 12:35 AM

I’m going to be hanging out in Redmond, WA. late next month… why? That… I’ll explain at a later date. ;-)

What I can say is that I’ll be available on a few evenings if anybody is interested in meeting up to talk shop, which can include anything from d3, ruby on rails, bdd, agile interaction design... to BBC comedy shows. :-)

I’ll be flying up from Portland to Seattle on Saturday, March 24th. I’m going to try and stay downtown for that night… and then will be staying at Sheraton Bellevue until Tuesday night. So… Saturday-Monday nights are currently open.

I’m also planning to head to the monthly Seattle.rb meeting on Tuesday, March 27th.

If you’re interested in meeting up, drop me a line.

UPDATE If you’re taking the kinky aspect of BDD too serious... please don’t email me. ;-)