Why you should add a calendar to your eCommerce site – Fab.com

I was playing around on Fab.com and I found it interesting it had a “Calendar” link at the top of the page. I clicked it and I was put to a calendar like page showing the Daily Sales specials coming up in the next week. I think this is an excellent concept for eCommerce sites. It is sort of like their own news paper of coupons right on the site. Knowing when a sale for an item you are interested in is key in the commerce space. Many companies hold promotions or sales on future dates and advertise product or group sales in advance. This is the first time I have seen a company actually promote individual item sales on their site in a calendar format – very cool indeed.

Fab.com also has a nice little widget that rotates the number of likes products have on their site. Once again, great feature. Nicely placed rotating content that is not obtrusive to the site and may actually lead to sales. The cool fade in and fade out java script gives it an elegant look and feel.

Lastly, I can not tell you enough how much Pinterest is changing the online commerce world. If you have sharp images of your products and allow customers to “Pin It” then  you are clearly headed in the right direction. Pinterest is the next “big thing” and the concept is simple, its a virtual pin board.

These guys clearly take pride in the design of their site. I can easily see many commerce related sites using many of these features. Great job Fab.com!

Kick ass Group Calendar for Lotus Notes

I personally have not played with this but it looks fantastic. And as Mikkel describes, this is an Eclipse based UI – looks nothing like a traditional Lotus Notes application. I also agree that while Eclipse does add a level of overhead to Lotus Notes, if more applications were designed like this you would clearly see the benefit of the application platform at your fingertips.

Why choosing Eclipse for Notes 8 was the right choice – lekkimworld.com.



Be Social at Lotusphere, get on Tungle!

I published my Meet the Developers lab schedule on Tungle and the different sessions I will be attending. Do the same to let everyone know where you will be at Lotusphere!

You can install the Eclipse plugin from here using widgets: link

You also check my Tungle.me calendar here.

Tungle.me: The social calendar that does it all!

I installed Tungle a couple of days ago and my first impressions of the site, WordPress plugin, the Notes plugin, and even the iPhone application (essentially all of the places I use calendar) is the stuff just works!  Ok, so saying it “does it all” may be a bit misleading but in my mind with the depth of function, calendars and devices supported its pretty impressive for a young product.

The application is so easy to use on all of the devices that I have to give the Tungle team kudos for making what I consider “brilliant software”. The site allows you to sync with many different calendars, check out the screen shot with all of the various options available:

Lastly, here is a cool widget you can use on your site to have your readers schedule meetings with you. So now, business partners and customers can use my Tungle.me profile to see when I can have a meeting with them.

Lotus Traveler is the killer app for the iPhone

And its not even an app!

So I have had the iPhone for about 6 months now and I have to say it is an amazing device.  Everyone I show the iPhone to is amazed with the different things it can do and the applications it can run.  The biggest surprises I get are when I explain, and sometimes show them, how my calendar, email, and contacts all sync with the iPhone and that its not really even software its just another account.  I have also updated my Notes contacts many times and it reaches the device within minutes.  People who don’t have this capability – which I would assume are most general consumers, are amazed when I show them I just edit my Notes contacts and it synchronizes to the device.  I have also explained that a few times I had to reset the device and it was nothing more than a re-sync to get everything back.  Now that I can accept and reject calendar invites it is almost a complete workstation when it comes to contacts, email, and my schedule.  My girlfriend calls me Jack Bauer because I can do so many things with it and she laughs every time I call it a device and not a phone.

Once again, great job Traveler team!

Creating a calendar entry from an XPage event

One of the areas I struggled with in our demo was creating a calendar entry from the XPage component when the button was clicked in the previous post.  The problem is you need to make sure you include all of the right fields otherwise your calendar entry will not display and open properly in the Notes 8.5 calendar.  The key element I was missing was the”@GetCurrentTimeZone” as the computeWithForm() did not calculate all of the right fields when the note was saved.  For the most part it was straight forward, I had to parse out some of the information so the code looks hackish.

Source Code for event:

var dir = session.getDbDirectory( session.getServerName() );
var mail = dir.openMailDatabase();
var doc = mail.createDocument();
doc.appendItemValue("Form", "Appointment");
doc.appendItemValue("AppointmentType", "3");
doc.appendItemValue("From", session.getEffectiveUserName());
doc.appendItemValue("Principle", session.getEffectiveUserName());
doc.appendItemValue("Chair", session.getEffectiveUserName());
doc.appendItemValue("Subject", context.getSessionProperty("summary"));
doc.appendItemValue("Location", context.getSessionProperty("location"));
doc.appendItemValue("Categories", "Lotusphere 2010");
dt = context.getSessionProperty("begintime");
//Get the date out
date = dt.substr(0, 10);
//Now the time
begin = dt.indexOf("T", 10) + 1;
time = dt.substr(begin, 8);
d1 = session.createDateTime(date + " " + time);
doc.replaceItemValue("StartDateTime", d1);
doc.replaceItemValue("StartDate", d1);
doc.replaceItemValue("StartTime", d1);
tz = session.evaluate("@GetCurrentTimeZone");
doc.replaceItemValue("StartTimeZone", tz[0]);
doc.replaceItemValue("CalendarDateTime", d1);
dt = context.getSessionProperty("endtime");
date = dt.substr(0, 10);
//Now the time
begin = dt.indexOf("T", 10) + 1;
time = dt.substr(begin, 8);
d2 = session.createDateTime(date + " " + time);
doc.replaceItemValue("EndDateTime", d2);
doc.replaceItemValue("EndDate", d2);
doc.replaceItemValue("EndTime", d2);
doc.replaceItemValue("EndTimeZone", tz[0]);
var description = context.getSessionProperty("description");
var speakers = context.getSessionProperty("speakers");
body = "SPEAKERS:nn" + speakers + "nnDESCRIPTION:nn" + description;
doc.replaceItemValue("Body", body);
doc.computeWithForm(true, false);
doc.save(true, false);