Archive for November, 2008

Secret Features

Tuesday, November 25th, 2008

I have a secret.

Last Wednesday night, when I should have stayed home and gotten rid of a cold, I instead went out to a big gala event to celebrate the secret renaming of the Tri-Borough Bridge to the Robert Kennedy Bridge.  Hey, I wanted to see what all the fuss was about, and it was to support a good cause!

It was great to see Alec Baldwin and other uber-famous people perform Speak Truth to Power, and I tried to ask Martha Stewart what she thought of the whole Mark Cuban thing, but she just smiled.  I don’t think she heard me over Kerry Kennedy’s passionate speech.

Those people all have their secrets, too.

I have another secret. Last Thursday night, when I REALLY should have stayed in bed, I again went out to another event for Witness, because who doesn’t want to meet Peter Gabriel, or take home Michale Stipe’s signed iPod?

Zenbe has its own secrets. Its loaded with secret features that make your email experience better. Except that, unlike a real secret, we don’t want them to be secrets.  They are just so embedded in the app, and so task specific, we have a hard time explaining them in the UI.

Here are some of my favorite, or most aggravating ones:

Picking an Avatar from Flicker

Avatars are fun, but its intimidating to pick one. Thats why we added the Flickr Tab to the avatar picker.  Just click on the pencil (a pencil icon means “edit this” anywhere in Zenbe) on any Avatar space, then select the Flickr Tab. Enter a search phrase, I usually just pick the person’s name, or maybe an animal or idea that represents the person, and see what Flickr spits up.  There is always and interesting image that you can associate with the person.

Finding Email or Files with the gray filter bar

Those gray bars that appear in every list, in the mail tab or files view, are filter controls. You can use them to find email or files in the view you are in. If you are in your Inbox, and filter on a tag, you will only see items with that tag, that are in your Inbox.  This is different from the search box in the upper right, which searches ALL YOUR EMAIL (or all your files) wherever it might be. 

Tagging a File makes it easy to find, and keeps it around

You can organize files separately from email. If you go to the files tab, and use the tag filter control, you can quickly find any files that are associated with that tag.  If you tagged an email, any attachments in that email will show up.  You  can also tag files on the files tab, and they will show up too. If you tag a file, we know you care about it, so even if you delete the email, Zenbe will keep the file. 

Keyboard shortcuts

They are there, just read the help to learn more. 

I’ll write more about all our wonderful secret features later. Right now, i have to get back to shaking this horrible cold…

Browsers and Performance

Saturday, November 22nd, 2008

At Zenbe we try to keep tabs on what people are saying about us in the Twitterverse, the Blogosphere, Get Satisfaction and of course our own user forums.

One topic that’s come up recently is the performance of Zenbe webmail. We are currently experiencing a few issues with the performance of loading email headers for users who have a lot of messages in their Inbox or a particular tag, particularly when in Conversation View mode.

The good news for those who are experiencing this is that we’re working really hard on fixing it. Two of our engineers – Aaron and Aram – are actively working on optimizing all SQL queries related to message retrieval as well as upgrading and tuning our Apache Solr search engines so that we can offload more queries to them.

We hope to have some nice speed performance improvements out to you within about a week.

The factors that affect web site performance are complex and varied, but I’d like to mention a few things we either currently do or are investigating to make Zenbe as fast as possible.

Our site relies on a lot of Javascript libraries we wrote in order to provide a high level of interactivity, as well as fair amount of images and CSS to provide a nice UI. We’ve worked pretty hard on packaging and serving this content in the most efficient manner possible and implement many of the excellent guidelines published by the Yahoo performance team. We compress most of our content, combine our script, CSS files and many images to reduce the number of requests your browser makes, and add headers that prevent your browser from asking for static content (i.e. an image) unless a newer version of that content is available.

A few of our developers – Jade, Jeremy and Will – are working on using the HTML5 <canvas> element to draw many of our UI elements using native browser capabilities, which will allow us to get rid of a lot of the images that you currently download when using Zenbe.

Right now the majority of our content is served from our primary data center in Texas. We monitor our ping times to the content servers from various locations around the world via Pingdom. Our average ping time across all servers is between 50 and 70 milliseconds. The closer you are to our data center, the faster you get your data. So if you happen to live in Texas you’re very lucky. For everyone else we’re looking at some solutions to bring downloaded content like images and Javascript files closer to you via a content delivery network and are particularly interested in Amazon’s new Cloudfront service.

Finally, I want to note an important point: not all browsers are created equal. Zenbe heavily leverages AJAX technology, which – in a nutshell – means that in most cases we request raw data from our servers, and then use Javascript and CSS to render that data into the UI elements in your browser.

Different browsers use different Javascript engines, which has a major impact on how fast sites like Zenbe can render data in a particular browser. Our preferred supported browsers are Apple’s Safari (available for both the Mac and PC) and Mozilla Firefox. We’re really excited about the new Google Chrome browser and find that Zenbe performs incredibly fast in it. We’ll be adding it to our officially supported browser list soon.

IE7, unfortunately, performs much worse. According to Javascript pro John Resig’s benchmarks, it performs about 10x slower than the fastest browser (Google Chrome) when running the SunSpider testing suite. In fairness, there are some complexities related to time resolution accuracy when measuring Javascript performance, but nonetheless we actively try to measure our Javascript performance using Robert’s JSLitmus Javascript benchmarking toolkit that he built during a recent IE7 performance overhaul.

We still think we can do better in IE7 and will continue trying to squeeze performance out of it. But if you are using IE7 and have the opportunity to install Safari, Firefox, or Google Chrome, then definitely do so. I think you’ll be pleasantly surprised, not just at how much faster Zenbe feels, but at how much faster web browsing in general is.

Brief downtime Saturday, Nov 22, 9:30 am EST

Friday, November 21st, 2008

Zenbe.com will be down briefly from 9:30 am to 9:35 am EST Saturday, November 22.

Zenbe Lists will be unaffected.

During the downtime, we’ll upgrade our message search software. This is a prerequisite for some upcoming changes to make searching faster.

Conversation and Favorites View

Thursday, November 20th, 2008

Greetings blog readers! This was an exciting week here at Zenbe. We released two great new features: Conversation View and Favorites View:

Conversation View

Conversation View allows you to see all email messages related to a particular conversation with a single-click. To enable conversation view, click on the conversation icon in the mail toolbar:

Conversation View Toggle

Once you toggle Conversation View on, you’ll see a count of the number of emails associated with each conversation in your message listing:

Conversation View Count

Once you open the message, any unread messages in the conversation will be expanded, but you can easily go back and expand any previous messages to get a full history of the conversation.

Try it out! If you don’t like it, you can always go back to a regular message listing by toggling the icon in the mail toolbar.

Favorites View

In a previous blog post I explained how you can designate certain contacts as Favorites. Just open the Address Book on the right-side of the screen, and add a blue start next to your Favorite contacts:

Favorite Contacts

Whenever your Inbox is overloaded with messages, just click on the Favorites link in the mail sidebar and only messages in your Inbox from your favorite contacts will be shown:

croppercapture53 Conversation and Favorites View

It’s a great way to see your most important email at the beginning of the day or after coming back from vacation without having to fuss around with rules.

Media Coverage

This week we got a lot of nice media coverage. In case you missed it, check out the articles by Mashable, Techcrunch, Ars Technica and MakeUseOf.

We’re Out of Beta

Yay, we’re out of Beta! What does that mean? Well, first and foremost it means the word “beta” is not next to our logo. But we did more than that. We redesigned zenbe.com to do a better job highlighting the unique features we offer. And we opened signup to anyone who wants an account.

Some of you have said, “Hey I signed up for Zenbe but never got my signup confirmation email!” In most cases, you’ll get an email confirming your signup in 24 hours. However, as a free webmail provider we take extreme precautions to prevent people from signing up for our service to send spam. We try to control the flow of the number of signups and where people are signing up from to prevent spam outbreaks we’ve experienced in the past. So if you haven’t received your confirmation yet, please bear with us – we’re working on it.

Nominate Us for a Crunchie

Do you love using Zenbe? If so, nominate us for a Techcrunch Crunchie award. We’d love your support in the “Best Design” or “Best New Startup of 2008″ category.

No Email for the President-Elect?

Sunday, November 16th, 2008

Regardless of my political affiliation, as a technologist I’ve been watching with interest as President-elect Barack Obama reveals some ideas about how bring aspects of the technology his campaign used so successfully into the executive office.

I’m impressed how quickly change.gov was released to publish transition information online. Obama plans to hire a national Chief Technology Officer which has caused quite a flutter among the Silicon Valley crowd and stimulated a lot of interesting ideas like opening select government data via standard APIs. And in one of the clearer signs we’re moving into a postmodern presidency, the weekly presidential radio address will also be broadcast on YouTube.

Notably, the potential for new technology to change politics is bi-partisan. Members the Republican party launched their own site to organize opinion and increase activism.

With the air abuzz with technology talk in Washington, it surprised me a bit to learn in the New York Times today that when Barack Obama is sworn into office, he’ll likely lose the ability to communicate via email “because of security risks and fear that messages could be intercepted.”

I certainly understand these concerns but find the notion of a President cut off from email disappointing. The email archiving controversy that plagued the current administration does underscore the risks of using email, but also points out the fact that the Oval Office badly needs a robust, secure, and compliant email infrastructure. Instead of fearing email, I would like to see the incoming administration propose some improvements and safeguards for email in Washington as part of the technology policy the proposed national CTO will responsible for developing and deploying.

I feel bad the President-elect may have to give up his Blackberry for another reason. Shouldn’t the person who holds one of the most difficult jobs in the world be entitled to play a quick round of Brick Breaker every now and then?  Hmmm, on second thought…

Why Zenbe

Sunday, November 9th, 2008

Tom and I squeaked into Return Path’s conference on email reputation and deliverability last Thursday. It was surprisingly worthwhile. I wanted to hear ISPs talk about their email policies, but I felt bad for the ISP panel people. They were smart, focused, clearly understood their role, their customers, and the impact of the trade offs they have to make. Meanwhile, the audience, composed of email marketers representing major brands, asked the silliest questions I could imagine, questions that spoke of a deep ignorance of how email operates. Come on, guys. If you are going to vibrate electrons enough to churn out hundred of million’s of email a year, you should take the time to know about FBLs and that spam-traps don’t sign up to buy perfume.

We got to hear Seth Godin give his typical energizing presentation on marketing, and on how not to approach it. Its always fun, and mildly irritating, to hear a passionate speaker tell you what you should already know, but can’t figure out how to put into practice. Seth is like Gary Vaynerchuck, or Jim Cramer, but for marketing, and better. Maybe you will learn something when you read his stuff, maybe not, but it will probably be entertaining.

After killing some time at Cosmic Collisions, I watched Fred Wilson and others talk about email and messaging. They mostly spoke about relevance. They wanted an email client that could show them what they cared about. Email’s last-in-first-out grid view doesn’t do the trick.

That is exactly why we created Zenbe. Of course we have the classic email view on the Email tab for now, but we are working on changing the way you interact with your email. Soon, we will release our “Favorites” view. This is essentially a different Inbox, with a different UI, that only shows communication from the people you care about. We would like to automatically determine who is important to you, and we will, someday, but for starters we let you pick who you care about, and then let you communicate and share in an interface that is much friendlier than traditional email clients.

Favorites is just a crude start. We really want to be able to create different groups, we call them networks, and communicate with them each in a different experience. An upcoming version of Zenbe will let me group my friends, or co-workers, or any overlapping network of contacts, and let me see all their communication, email, facebook updates, twits, shared files, events, anything I find appropriate, in a separate view.

Work email won’t get in the way of my social email. When I login to Zenbe and open a window, everything in that window will be relevant to what I want to do, then.

Zenbe has already improved your email experience, but you have not seen anything yet!

Now if Seth could help me explain that Zenbe is a purple cow…

JSLitmus – A Tool For Testing JavaScript Performance

Friday, November 7th, 2008

Zenbe’s webmail application makes heavy use of  JavaScript to provide a highly-interactive experience, so naturally JavaScript performance is an important consideration for us.  While we do use the handful of tools available for profiling JavaScript – Firebug’s “profile” feature being the most notable – often the best way to hone in on a particular issue or area is to write a small, dedicated test that allows a specific code pattern to be quickly evaluated and tuned on all of the platforms we have to support.

There are a number of bugaboos with ad-hoc tests however. Generating good timing data is tricky, as is formatting the results to get a useful report.  To take the pain out of this, we’ve been using a script we wrote in-house a while back, and that we’re now officially releasing as the “JSLitmus” tool.  JSLitmus is designed specifically to allow you to quickly and easily write a JavaScript test (or test suite), run it on any modern browser, and document and share the results.  You can find out more about it here, but to give you a feel for what it’s used for, let me walk you through an issue you may be familiar with: variable scope as it pertains to performance.

It’s fairly common knowledge that JavaScript performance is affected by the scope in which variables are defined. Variables defined locally within a function are faster than global variables or variables defined in closure scopes.  But what does that really mean?  When do we need to care about this?  How much faster are they?  Does it matter which browser?  How does the difference compare to, say, the overhead of a function call?

To answer these questions, I wrote up a simple test suite using JSLitmus, the results of which are shown in the graphs below.  Each graph shows the number of times per second a particular browser was able to perform a “++” operation on variables in different scopes.  The performance of an empty function call is also shown for reference.  Longer bars are better.

 JSLitmus   A Tool For Testing JavaScript Performance

 JSLitmus   A Tool For Testing JavaScript Performance

 JSLitmus   A Tool For Testing JavaScript Performance

 JSLitmus   A Tool For Testing JavaScript Performance

[All tests performed on a 2GHz dual-core MacBook in MacOSX or Vista. You can view the test code, or go to the JSLitmus home page to run the test for yourself - it's on the right-hand side.]

With these results, we can make some interesting observations that may prove useful as we optimize our code:

  • Local variables are faster, as expected, but the difference between local and global vars is surprisingly high: 5x-25x.
  • We can speculate that the top three browsers use similar variable resolution logic since the relative performance within each graph is similar.  Opera’s exceptional performance with closure variables makes it unique.  This has interesting ramifications for libraries that make heavy use of closures, such as Prototype and jQuery.
  • Roughly speaking, 2-4 references to a global or closure variable are as expensive as an empty function call – with IE and it’s markedly poor function call performance being the exception.

As you can see, JSLitmus lets us quickly gain a much better insight into these kinds of performance issues, with only a modicum of effort.  Enjoy, and happy testing!

ZenPages in the Workplace

Monday, November 3rd, 2008

All to often businesses find themselves scurrying around, trying to figure out who was responsible for what, when it’s due and the current status of the project.  Instead of firing off a bunch of frazzled emails, just go to the project’s ZenPage, where the latest draft, the list of deliverables and due dates, and all associated email communications live in one place!

ZenPages allows page members to not only share emails, but also post and share documents, deadlines and due dates while effectively streamlining the communication process within the team.  The ability to invite new members to the project’s ZenPage as they’re needed means you can share the entire project at a glance, instead of sorting through your emails and slowly passing along all the relevant information to the newcomer.

With ZenPages, you can bring order to your email warzone– at work!!

Event Planning on Zenpages

Monday, November 3rd, 2008

When you are planning a major life event, like a wedding, buying a home or even going on vacation, there are  a lot of moving parts and to-dos that can fall through the cracks. For example, with wedding planning, you may be in communications with the caterer, the florist, the bakery, the wedding planner, etc. You may already know that Zenbe makes it easy to organize, search and sort emails within your inbox, but add on top of that pictures, brochures, estimates and more, things can get overwhelming.

ZenPages takes organization one step further by keeping track of everything in one place. Furthermore, if you have a planning partner or two, ZenPages collaboration features can help everyone keep track of calendars, project status, the latest communications and responsibilities. Manage emails, files, attachments, etc and easily share with your significant other, your mother and anyone else involved!

Don’t stress, it’s all right there on your ZenPage.  Click here for a short demo that will show you how to use zenpages to de-stress your next major event!