Archive for February, 2009

Free resume reviews

We know it’s a tough time to be looking for a job right now, so we’re pleased to announce we have partnered with Resume Boutique to offer free resume reviews via Backboard.

Stand out from the crowd with the best resume you can offer. Just upload to a Backboard and paste the URL into the request form.

Reviews are free through March 31, so dust off that resume and upload it for your free expert review.

Comments off

Pimp my JavaScript, part 2: The biggest gotcha

Every language has its gotchas.

In Ruby, for example, zero and the empty string both evaluate to true in a boolean context. In PHP, several of the built-in functions aren’t functions at all but are really just language features disguised as functions. In Perl, the local statement doesn’t make local variables, but the my statement does. In Objective-C, you can send messages to nil and nothing happens.

Of course, those other languages are a whole different blog post: today’s topic is JavaScript, and what may be its most subtle gotcha.

Consider the following two relatively similar functions. The first is in JavaScript:

function alertLater() {
    var local;
    for (local = 1; local < 6; local++) {
        setTimeout(function () {
            console.log(local);
        }, local * 1000);
    }
}

The second is in Ruby:

def alertLater
  threads = []
  (1..5).each do |local|
    threads << Thread.new do
      sleep local
      puts local
    end
  end
  threads.each { |thread| thread.join }
end

What is the output from each?

Read the rest of this entry »

Comments off

Effective online menus for restaurants

Ever noticed how most restaurant websites link to PDFs of their menu?

As a potential customer, I really don’t want to have to download and open the menu of five or six different restaurants to figure out where I want to eat.

At the same time, the restaurant owners want me to be able to see the menu right away, so the butter-dipped lobster tail catches my eye.  The more potential customers that see the menu, the better.

Imagine if those restaurants used embedit.in to display PDFs of their menus on the website.  The menu shows up right in the page, tempting me with the caramel-apple cheesecake.  Restaurants retain the flexibility to change the embed as often as they would like.  It’s a win-win for everyone.

As an example, here’s the dinner menu for the Palo Alto cajun spot Nola, sized to fit the Increo on Ideas blog:

Comments (2)

Text highlighting and speed improvements

Last week brought some big changes to Backboard.  A few things that we wanted to push didn’t quite make it into that release, so yesterday, we updated Backboard yet again with some nifty new features.  Upload a new Backboard and check them out!

Text highlighting

Ever find yourself wanting to highlight the text in a Backboard instead of underline or circle it?  Well now you can.  Simply mouse over the text in question and highlight away.  You’ll still get the familiar text entry box to make your suggestions, but now the selected area behind the text will remain highlighted.

Text highlighting example.

The need for speed

If you have a lot of Backboards on your My Backboards page like we do, then you probably noticed that the page took some time to load.  Well wait no longer, we’ve significantly improved the loading speed of the My Backboards page.  Images are only loaded when you need them and no earlier, meaning the page loads and responds much quicker.  We also made some tweaks to the javascript loading on other parts of the site to improve response times and will continue to look for places we can improve the speed of the site.

As always…

We love bringing you new features and we hope you’re as excited about these changes as we are.  As always, let us know what you think!

Comments off

The easiest tech demo, ever

I gave a short three-minute presentation to the Silicon Valley JavaScript Meetup Group last month about Backboard. I talked a little bit about Backboard and how it does real-time feedback using Orbited. Enjoy!

Comments off

Deadlines, downloads, and dead tree editions

For the second time in as many days, Backboard has major new features! We’ve been really busy doing lots of great stuff, and the whole team is excited to share them with you today.

A new look

The first change is the most obvious: Backboard has a fresh new look:

Backboard's new look

Time zones

The Backboard team lives and works in California, in the heart of Silicon Valley, and having Pacific Standard Time on the server works great for us. But we realize that some of you live in other time zones, so we’ve added support for multiple time zones.

If you don’t change anything, Backboard will make its best guess as to what the correct time zone for you is, but you can always set it by visiting your account settings:

Change your time zone

Deadlines

Want all of your feedback by a certain time? Backboard can’t force your colleagues to be any less lazy, but it can tell them by when you want their feedback.

Add a deadline

Backboard will email your colleagues when the deadline is approaching and tell them if they’ve missed it. Castigating them for being deadbeats, though, is still up to you.

Built-in printing, with markup!

One feature requested more than any others is printing your documents with feedback. Even though we love extolling the virtues of a paperless office, there still are times when you’d love to have a hard copy. Wait no longer: right below your document, you’ll find a print button that will give you the option to print the document, the feedback, or both:

Print button

Read the rest of this entry »

Comments (1)

Document Annotation Artists

Since Backboard first launched red pen annotation, I’ve been amazed by all the creative ways to leave feedback.  Each member of the Backboard team expresses themselves differently: circles, underlines, big cross-outs, arrows; you name it, we’ve seen it.

Like Carlos, a new Backboard user that posted on our feedback Backboard last week, sometimes you need a little more structure to your drawing.  If you’re not into free form annotation, you can hold down Shift while you’re drawing to create a straight line or the Option (Mac)/Alt (Windows) key for an oval.  The perfectionists out there can use both for a perfect circle.

Lately, the Backboard team has taken annotation to the next level (whether it’s a level up for its creativity or a level down for its ridiculousness is up to you to decide).  After feedback is closed on team Backboards, small red-pen animals, vehicles and other doodles often show up.  Here’s a sample for your enjoyment:

Annotation Art I

And my personal favorite, TROGDOR the BURNiNATOR burninating the countryside.  On the original Backboard, this is an animation.  Mouse over the first part of the feedback and see TROGDOR brighten.  Mouse over the second part, and see his burninating.

Annotation Art II

We’d like to share the fun with the Backboard community.  Link me to the Backboard featuring your best feedback art (in the comments) by Wednesday, February 11.  I’ll set the best annotation artist up with a complimentary month of a premium Backboard account.

Comments off

Pimp my JavaScript

As the Backboard experience gets richer and richer, more of it moves to the browser from the server. It’s a win-win-win: Increo gets less load on our servers, you get better response time on your computer, and the team gets to write code in the awesome language that is JavaScript.

As such, we’ve spent a long time working on making it as consistent and manageable as possible. With apologies to Wil Shipley, some basic suggestions for maximum JavaScript happiness follow.

Use a JavaScript framework

If you’re still writing JavaScript without relying on one of the myriad open-source DOM-savvy Ajax frameworks, you’re wasting your time and effort. You have lots of choices:

Backboard is built on the (large and supple) shoulders of Prototype, but we hear they’re all pretty good.

Don’t host your own copy, though: use Google’s hosted version. That way, your whole app loads faster when your users don’t have to even download the JavaScript file because it’s already in their caches.

Use namespaces, or the next best thing

Sure, JavaScript is technically a language with a flat namespace, but since it’s prototype-based instead of class-based, you can just use objects. Instead of this:

function my_namespacer_hopefully_nobody_collides_runRequest(arg1, arg2) {
    return "Haha! This function has a really long name!";
}

you can have a simple “namespace” object of your own:

var MyStuff = MyStuff ? MyStuff : {
    runRequest: function (arg1, arg2) {
        return "So much better!";
    }
}

You may think you’re organized enough to keep everything straight, but once you start pulling in libraries and other people’s code, you’re going to be in a world of hurt. After all, you don’t want your next big app looking like PHP.

Employ some automated syntax checking

And by “some automated syntax checking”, I mean JSLint. We use the following set of options for our source code:

JSLint options

The face of Backboard (that is, the JavaScript that runs in the browser) is almost 1,300 lines of JavaScript. Running it through JSLint helps prevent dumb errors and bugs and it keeps all of us honest. Having an easy way to enforce coding guidelines makes it easier for everybody to work together and make your quality consistent.

Let your server deal with download efficiency

Shipley sez “Tiny code is always best”, but I’m pretty sure what he means is you should express yourself briefly, without wasting code writing extra methods you don’t need or class hierarchies just because you can.

Repeat after me: whitespace is okay. So are comments.

You’re better off writing beautiful, well-documented, understandable code and having your application compress it with things like JSMin or the YUI Compressor and mod_deflate.

Those 1,300 lines of JavaScript in Backboard started at 46 kilobytes; after running them through JSMin and mod_deflate, they’re 8.2 kilobytes. Having it set up to run automatically is an order of magnitude more worthwhile than any effort to minimize code size.

All of this leads us ever closer to JavaScript happiness. And, of course, that’s the whole goal, right?

Comments off

Fighting spam with email plus-addressing

Spam is a constant problem — I would guess this not news to you — and there are countless software packages and tools available to fight it with varying success rates.

One common technique is to use a temporary or disposable email address when signing up for online services so that it doesn’t matter if the company turns around and spams you or, worse yet, sells your address. You could use your old Hotmail address for this purpose or even a custom service like Mailinator.

Often, you have a better technique right at your fingertips that requires no extra effort on your part: plus-addressing.

Let’s say your email address is:

john.doe@gmail.com

You will also receive email sent to:

john.doe+anything@gmail.com

That is, you can add a plus sign and then any word to your email address, and it will still be delivered to you!

Next time you sign up for an online service, use a +servicename sub-address. If you start receiving spam at that address, not only can you hold the service accountable but you can easily set up a rule in your email program to delete it all.

Email providers vary in their support of sub-addressing and some (such as Yahoo) use minus-addressing instead (where the plus sign is replaced by a minus sign), but with a few quick test emails you should be able to figure out what works for you.

With Backboard, we promise to never disclose your email address to anyone and we have gone to great lengths to make sure you get the smallest amount of email required to make the service work.

If you want to test us though, sign up for Backboard with a +backboard sub-address and see for yourself!

Comments