1. PR Tools and Bag of Tricks

    May 31st, 2006

    magnifying_glass.jpg .jpg

    When I work on co.mments, I focus on making it easy for you, adding the features you asked for, and improving the “behind the scene” engine.

    I also take time off to think and reflect what it all means. How co.mments changes the way we talk with each other through blogs. How it puts the focus back on the individual blog. And you, the blogger.

    Jeremy puts it in words better than I could:

    And that is the interesting part. He tracks the conversations through the comments submitted through his service. Instead of looking at the full ginormous blogosphere, he is able to look at the conversations that his users are finding important. Think about that: he’s getting a magnifying glass view of the blogosphere, through the comments.

    Last night I got to talk to Jeremy about all of that. It was a breath of fresh air.

    Beyond the old-new AJAX, the raise of tagging and other valleymemes. We talked about where the tech bubble is going, and what parts of it reach beyond the valley enclave (hint: not much). He’s one of the few who live in the mix of things, but can see beyond the hype.

    We also talked about the decline of Web advertising (another valleymeme coming up?) and what will happen after. I can tell you co.mments will take part in that. More in a future post.

    Anyway, go read Jeremy’s post. He talks about co.mments, but also five other monitoring services that are key, if you want to do great PR. There’s a couple new to me, I’m going to check them out later this week.

  2. links for 2006-05-30

    May 29th, 2006

  3. links for 2006-05-28

    May 27th, 2006


    • My philosophy in persuasion has always been to be very explicit about what I and my product *cannot* do, to reveal any obvious flaws we might have, rather than waiting for the customer to discover them.”
  4. Zoho Virtual Office

    May 26th, 2006

    Favorite-View.jpg

    Zoli’s recent post on Zoho mentioned Zoho Virtual Office. That was news to me, so I decided to give it a try.

    Currently Virtual Office is a downloadable server-side product accessible via the Web, but Zoho will offer a Web-hosted version in the future. Without integration an Office 2.0 is not really Office 2.0, just a collection of online applications. (For those who may not remember, it took Microsoft long years to achieve some level of integration in their Office; for several years and throughout several releases “integration” was copy/paste, and quite painful as such.)

    Overall I like it.

    It’s integrated. Too many Web office apps are point solutions, they do one thing and one thing alone. When it comes to productivity tools, juggling from documents to presentations to calendar is one place where integration helps productivity. I’ve always been a fan of suites, unless there’s strong reason to use point solutions. (I’ll touch on that in a following post)

    I have high hopes for Zoho, they figured the right mixture of features, did a good job integrating them, and delivers it for the right price.

    The UI is clean and elegant, intuitive and simple to use. If you’re using Outlock [sic] you’ll feel right at home. And the back button works as you expect it would.

    I do think the UI could be improved in several ways, though. The left panes eat up screen real estate, a maximize view would help when editing documents. It could use popup layers instead of popup windows, at least on Firefox they’re much faster. And more inplace editing (*cough*AJAX*cough) is always better.

    The “Wiki” leaves a lot to be desired. It’s a quick word processor, but nothing you’d expect from a real wiki. It doesn’t have wiki words, version history, and new content doesn’t show in the dashboard. It also uses font size/type instead of proper HTML headers, which makes the content less useful. Sections exist for a reason.

    Zoho Virtual Office doesn’t have the same breadth of features as MS Office, but it has all the features I use, and prices them just right. You can get a team of 25 users for the price of a single-user MS license.

    It has some import/export capabilities, but overall disappoints. I couldn’t find RSS feeds for new content, iCal support, or any other way to integrate it with other services. And backup should be automated and scheduled, not manual.

    Although it’s a server-side product, installation is dead simple. No assembly required.

    Overall, it just works, the price is right, and it left me impressed with the overall quality.

  5. links for 2006-05-27

    May 26th, 2006

  6. Getting Things Done with Tracks

    May 26th, 2006

    Two thumbs up to Tracks.

    full_screen.png

    Most people will call it a task manager, but Tracks is influenced by David Allen’s Getting Things Done. So it’s not a traditional task manager, but a way to track and manage your next actions (if you haven’t yet, go read the book).

    GTD die-hards will love it for being true to the spirit of GTD. I’m not one of those GTD die-hards. I tried a lot of task managers, some which work best with a PDA, some which are “CRM light”. I tried the Web 2.0 darlings, the ones with the funny names and the ones with the hype, and eventually settled on Tracks.

    It has the right combination of UI simplicity and ease of use. In fact, it’s a great example of where and how to use AJAX to improve useability without unnecessary fluff. Everything it does is on purpose, specifically the stuff it doesn’t do.

    If you’re looking for an Outlook-like experience, you’ll be disappointed. Tracks is not “___ for the Web”, it’s about organizing your next actions the GTD way. Yet, it doesn’t impose any strict set of rules, it guides you gently towards a better way to organize stuff.

    I’m really impressed by But She’s a Girl, the author of Tracks. She found the perfect balance of software that’s opinionated, but doesn’t get in your face. That embraces less is more, without being bare bones. If you’re a software developer, you can learn a lot form the design decisions behind it.

    One caveat. Tracks is a Web-based application, it requires a Web server and used from your browser. But there’s no Tracks host I know of, so you’ll have to arrange your own. I installed it on my computer as a localhost service. It’s built with Rails, so installation is simple … if you’ve done it before.

    If you’re running OS/X, read Jacken’s instructions here.

  7. links for 2006-05-26

    May 25th, 2006

  8. links for 2006-05-25

    May 24th, 2006

  9. links for 2006-05-24

    May 23rd, 2006

  10. Better Web apps: add an Undo button

    May 23rd, 2006

    Because we all make mistakes

    I designed co.mments, so it’s hard to accidentally delete conversations. I did what other Web developers do and added a confirmation popup. It looked good on paper.

    Most times, I really do mean to delete stuff, and confirmation popups just get in the way. When I’m scattered, usually early morning before the coffee kicks in, I end up clicking (and confirming) the wrong stuff. If I’m not paying attention to what I delete, I can’t find it again. Especially when I’m deleting something I added a few days back.

    Software that forces you to think twice before you do anything is software you can’t trust. And software you can’t trust isn’t fun to use.

    So I got rid of the confirmation popup and added an undo button.

    undo.png

    How it works

    It’s surprisingly easy to do. Now I wonder why I didn’t do it before. I’d like to see that in all my favorite apps, so I’m going to share the recipe and code with you. If you’re building the next best Web app, please add this. Or get your favorite geek to add it to their site.

    Each action you do has a URL with all the parameters. I created an undo stack that stores these URLs in the user’s session. Each time you perform an action, the server pushes another undo action URL to the stack. If you just created a new post, the server pushes a ‘delete that post’ URL to the stack.

    An undo button at the top of the page uses the most recent undo action URL. Click on the button and it will perform the ‘delete that post’ action. It also removes that action from the stack, so you can undo the previous action. For co.mments, I set the undo stack to five actions, so you can undo more than one change, but it doesn’t take over the database.

    Since you can perform an action directly or by undoing a previous button, the undo URL includes the parameter undo=true.

    Example using Rails

    Here’s the Rails controller with a create action that creates a new record, a delete action that will undo it, and a before_filter that removes undo actions from the stack:

    # Remove undo action from stack.
    before_filter do |controller|
    controller.undo.pop(controller.params) if controller.params[:undo]
    end
    
    # The create action creates a new record, the undo action deletes it.
    def create()
    # Do something useful here
    record = Record.create(@params)
    # If this is not an undo, add an undo action to delete the record.
    unless @params[:undo]
    undo.push (”Delete newly created record”,
    :action=>”delete”, :id=>record.id)
    end
    # Render page (see below).
    . . .
    end
    
    def delete()
    . . .
    end

    A third method renders the undo form and button, using the last undo action from the stack. The view creates a wrapper element and renders an action:

    <div id="undo"><%= undo.render %></div>

    For AJAX requests, I use RJS to instruct the browser to update the undo button without reloading:

    render :update do |page|
    page["undo"].replace_html undo.render
    end

    Get the code

    I wrapped the code as a Rails plugin. To install the plugin into your Rails app:

    ./script/plugin source http://labnotes.org/svn/public/ruby/rails_plugins/
    ./script/plugin install undo_helper

    You can find the source code here. You can also try it out on the co.mments server.

    Update: I forgot to mention that GMail has had undo for a while, although only for the last action. Hans posted a screen shot of undo on Technorati.