CrazyEgg Confetti Report

December 11th, 2007 | News

Over the weekend we ran a test with CrazyEgg to get a sense of what visitors were clicking on. We were pretty sure the "Mad Skillz" widget was a popular first stop for most, but wow!

The CrazyEgg Confetti report confirmed our hunch.

CrazyEgg Confetti detail
[See full report]

I have a few ideas on how to improve the "Mad Skillz" widget and maybe we'll make it an even bigger focus on the home page. I'd also like to figure out a way to start capturing any parse failures. A simple button which would do a one-click submit and email us the contents of the input field should be easy to implement.

SVN Commits And New Sugar

December 10th, 2007 | Code

Since the Alpha 1 launch a couple weeks ago we've been steadily hammering away at Datejs enhancements, writing tests and pushing towards our goal of a solid Beta 1 release for early January 2008.

The launch went well and community feedback has been steady and very much appreciated. As defects are discovered we're doing our best to fix immediately and commit the new code to SVN.

Datejs SVN Commit messagesIf you're interested in following along as we commit code to the source repository, you might want to subscribe to the Datejs-commits Discussion Group. The Datejs-commits Group automagically catches all the SVN commit log messages and creates a feed which is then easily consumed into your favourite news reader. We're doing our best to always ensure the SVN log notes give plenty of detail regarding all new code and/or revisions.

A spoonful of SugarPak

For developers partial to the RememberTheMilk.com date input options we added the following API functions and abbreviations.

Date.tod();       // Date.today()
Date.tomorrow();
Date.tom();
Date.yesterday();
Date.yes();

Added a new .at() function which accepts a Time string or Time config object.

Date.today().at("6:15 PM");
Date.today().at({hour: 18, minute: 15});

Added .next() and .last() as static functions to the Date object, so you no longer need to instantiate a Date object first before calling .next() or .last().

// Existing
Date.today().next().friday();
Date.today().last().march();

// New
// The above code still works,
// but if you want to be relative to 'today',
// the following code is tighter.
Date.next().friday();
Date.last().march();

Date logic actually gets fun to write when you start combining the functions to build amazingly readable Date expressions.

Date.next().friday().at("6:15 PM");

[Use Case] Schedule a reminder to be sent a week before the start of the next month at 9 in the morning.

(1).week().before(Date.next().month()).at("9:00 am");

Hope this helps.

Ajaxian + 24 Hours

December 4th, 2007 | News

Well, it certainly was an interesting finish to November.

Late afternoon on Date.parse("Tuesday, November 28, 2007") Ajaxian published a blog post about the Datejs library and within the subsequent 24 hours, 30,000 deadly Datejs ninjas began their training.

30000 Datejs Downloads

I thought people might be interested in seeing some of the community feedback and hard traffic stats we received during that first 24 hours.

AjaxianLet's kick it off where it all started — the "Mad Cool Date Library" Ajaxian blog post by Rey Bango.

"Holy cow!!! All I have to say is wow. This is a VERY cool date library and definitely unique. I’ve not seen anything like this."

When I first saw the post title I read it as "Mad Cow Date Library" and thought, ooh... that sounds interesting. Totally did not make the connection to Datejs at first. Yes, I'm a hoser.

The comments section lit up instantly with opinions and feedback.

 

MashableAround that same time the post "Datejs: A Truly Slick Date Script" by Mark 'Rizzn' Hopkins at Mashable came online.

"It isn’t often when I come across a JavaScript so cool that I feel I must blog about it. In fact, I don’t think I’ve ever come across such a JavaScript before today. Datejs earns this elusive distinction today because it's just so darn good at what it does."

"It is everything I've ever wanted in a form date validation tool, but didn't have the patience to program. Datejs is fast, too. I’m stuck using one of my slowest machines today, and there is no noticeable delay between the typing and the translation of the date."

 

WiredA similar post by Scott Gilbertson at Wired Monkeybites "Sleek JavaScript Library Solves Your Dating Woes".

"It's not often that we run across a JavaScript library that's cool enough to warrant a post, but Datejs really is that cool."

 

Dan Yoder (who is also the co-author of Datejs) posted an excellent introduction to the library and a few thoughts on where we're heading. Check it out.

"...JavaScript was in dire need of a comprehensive and straightforward Date library. And now it has one."

A few others from the Blogosphere...
Marc Grabanski
WebAppers
AJAX Magazine
Black Belt Coder
Dylan Schiemann
nForm
The Home of Jon

The community has been incredibly helpful pointing out parsing failures — many of which were edge case bugs we had not been testing for.

Most were fixed within a few hours.

There's obviously still a lot of work to do with date expressions, but I think we're off to a good start and broader support will come over time. To get the full scope of what the Parser will parse, please browse through the Datejs Test Suite.

Stats from Google Analytics

Total Hits

Visitor Overview

We watched the hit and download count increase pretty steadily throughout the day, but quickly noticed a growing disconnect between the number of hits on the datejs.com website and the total downloads. At the end of the first 24 hours, total website traffic had just passed 6,500 hits, with about 1/2 of that coming directly from Ajaxian. We were expecting a lot more traffic to register from Ajaxian, especially given the 30,000 downloads.

So, the question was, where were all the downloads coming from?

It took some head scratching, but eventually we went back to the Ajaxian post and noticed the very last link, linked directly to the GoogleCode download page. See

Ajaxian - link to download

Unfortunately Analytics does not record stats from the GoogleCode file download pages. That kinda sucks, although the total download count does give us a pretty good idea that the vast majority of Ajaxian readers (I guess approx 20,000) must have clicked the very last link in the post and were shot off directly to the GoogleCode download page, bypassing the datejs.com website. That's pretty interesting and unfortunate because most would have missed the "Mad Skillz" widget on the home page. Oh well.

Visitors by Browser

Huge FireFox usage. Not surprising I guess, given the crowd.

Visitors by Browser

Visitors by Operating System

Check out the 9 iPhone and 2 iPod hits!

Visitors by Operating System

Visitors by Country

Visitors by Country

 

After all was said and done I think it went well and the library is better because of the feedback. Keep it coming.

Please feel free to contact us or post to the forums if you have any questions or comments and we'll do our best to help out.