My Photo

Partners

Blog powered by TypePad

Disclaimer

  • The individuals who post here work at SharedBook Inc. and SharedBook Ltd (collectively “SharedBook”). The opinions expressed here are their own and may not reflect the opinions of SharedBook. The information here is not guaranteed to be complete, correct or up-to-date and SharedBook does not warrant the reliability of any advice, opinion, statement of other information displayed here. SharedBook reserves the right to correct any errors or omissions on this blog and to remove any inappropriate comments within the scope of our User Agreement at any time without notice.

Smart Button

Open API

June 30, 2008

Inspector Gadget

A few weeks ago I've attended a night conference with several of our R&D team members at the Google-Israeli-center.
It was a pleasant evening at one of the highest buildings in Tel-Aviv (it has a nice view). Besides meeting some of Google’s professionals and enjoying their hospitality, they ran 5 mini-lectures of 15-20 minutes each on some of the Google's leading projects.
The 5 topics the presented were:

1. Google-API and GData
2. Google-Maps
3. Google-OpenSource projects
4. Google Web Toolkit (GWT)
5. Google-Gadgets

Although, it was only a glimpse and no major innovations arose in those short lectures, it did trigger our brain cells to come up with some cool applications for SharedBook.

One of the POCs (Proof of Concept) that we created shortly afterwords was the SharedBook-Picasa-Google-Gadget. This gadget creates a book that is auto-populated with the photos of your Picasa album. Currently this album has to be public - “unlisted albums”, as Google calls them, are not supported.

Why should you favor using a Google-Gadget over a simple div / iframe in your web pages?
The main advantages that we found are:
1. Google has a huge Google-Gadget repository that reaches a large audience. Publishing your gadget there has a better chance of creating a buzz.
2. Google-Gadget special services – the Google-Gadget can use some services that you cannot use from a proprietary div / iframe. For example, persistency. Google-Gadget allows you to store data on Google servers, and fetch it later.
3. Interoperability between Google-Gadgets. You can have several gadgets, each has its own capabilities, and they can share or exchange information.
4. Incorporation of a gadget into iGoogle. iGoogle is a kind of a homepage you may set and customize in your Google account. You can easily add Google-Gadgets into this page.
5. Using Google-Gadgets in your Desktop applications. A presentation on this can be found here.

Some Disadvantages we encountered:
1. Editor - the current GG editor is limited, uncomfortable and buggy.
2. A black box – the gadget performs certain functionalities behind the scenes which in complex gadget you might want to debug or see its code. You can tell what’s happening there only to a certain extent.

Need some tips and references to get you started with Google-Gadgets?
Here are some of which we used:
1. If you develop a simple Google-Gadget that doesn’t require special services (e.g. persistency, Google-Gadgets interoperability), start by writing a simple html page with your form and Javascript functionality. Once this page behaves as you wish, embed the code into the Google-Gadget-Hello-World skeleton that Google gives you.
2. Check your Google-Gadget both in Firefox and in IE. The behavior differs!!!
3. Getting started – can be found here.
4. Google-Gadget Editor - can be found here.
Make sure you sign in to your Google account first. This way you can open and save files to your account.
5. Google-Gadgets Repository - can be found here.

Overall, we had a very positive experience with the Google-Gadget.
We would be glad to hear your thoughts, both about the Google-Gadget in general and about our SB-Picasa-Gadget.
What would you add / improve?

February 07, 2008

The Year of the Snake

Recently the TIOBE Programming Community index declared Python the programming language of 2007. The TIOBE site writes "There is no clear reason why Python made this huge jump in 2007..." Indeed at first this news looked surprising but after some thought it made sense. We in the Java community were hearing a lot about the growing popularity of dynamic programming languages. The most vocal were the Ruby-on-Rails followers that declared that Java is dead and the future is Ruby and RoR. Even Sun followed the hype and scurried to support Ruby on the Java Virtual Machine ignoring the Python implementation (i.e. Jython) which was already running for several years but stagnated until recently.

We began using Python for application development extensively about a year ago to develop cool applications such as Blog2Print that use our Open API. Dynamic programming languages are advocated as being very productive and indeed after a short while Python delivered on this promise.

Our experience showed us that unlike other dynamic languages such as Perl or Ruby, Python's clean and explicit syntax was easy to learn and even a newcomer to the language could quickly become productive. Bruce Eckel said in an interview that Python "has a very even learning curve. Maybe it's not even a curve, it's kind of a straight line." Python's ease of use doesn't come at the expense of power, as you continue to learn and use the language you discover more powerful ways and concepts that help you achieve your goals faster and in a more elegant way. Another reason to choose Python is its matureness and track record in production system. Python has been around for many years and it is used in a lot of high profile companies such as Google, YouTube and Industrial Light & Magic.

Python's popularity in the past year may have been influenced by the Ruby-on-Rails hype that caused developers to re-discover Python after finding out that Ruby and Ruby-on-Rails was not their cup of tea. Using Django gave them the flexibility they wanted (according to TIOBE Ruby's popularity went down this year).  Moreover, last year the development of the new and revolutionary Python 3000 has finally started.

So, don't wait - download Python today and enjoy being productive.

November 15, 2007

SharedBook and ODMP Introduce The Officer Down Memorial Book Today

In the space of a few weeks, SharedBook will launch more partner engagements than it has in the last two years. I’d like to think it’s recognition that there’s a lot on the Web that is worth preserving.

We started the series with Create-A-Cookbook for Allrecipes.com last week and today we're introducing The Officer Down Memorial Book with The Officer Down Memorial Page, Inc., every word of which should be preserved as ODMP is a non-profit organization "dedicated to honoring America's fallen law enforcement heroes." According to ODMP, "More than 18,000 officers have made the ultimate sacrifice in the United States and it is with great honor that the ODMP pays a lasting tribute to each of these officers by preserving their memories within its pages."

Hats off to founder Chris Cosgriff for building this site and for reaching back with the help of the National Law Enforcement Officer's Memorial Fund, Inc. to find information about officers who have died in the line of duty as far back as 300 years ago.

If you’d like to make a contribution to the upkeep of the site and for research about other law enforcement officers who may have fallen, please click here. And know that $10 of every book that you buy will also go to these efforts.

ODMP used SharedBook's open API to build integration into our Reverse Publishing Platform.

November 08, 2007

Recipes for Success

OK, so I like a good play on words.  What can I say?  And on this blog - I'm not alone.

Over the past few months Mor, Ann, and Ben have written a few entries about our Open API.  Up until this past week, we have been eating our own cooking and adjusting the ingredients to get things just right.  The fruits of our labor were our Blog2Print application and widget.

This past week represents a major step forward with our API - the launch of the AllRecipes.com Create-a-Cookbook.  Based on the feedback we've received, there isn't any need for me to write about what a great product this is.  Instead I want to point out HOW it was implemented.

This new book was built utilizing our API, and shows the flexibility of the application.  And it takes full advantage of many of the features we first built to accommodate Blog2Print.

Take, for example, embedded photos. For each of the recipes, there is a spot for an accompanying image of the finished dish.  The text for the details and ingredients print around the (right-aligned) image.  Maybe this sounds simple, but what happens behind the scenes is rather complex.  And the image itself is just a simple URL placed inside the text that is sent to our API.

We built this functionality using standard HTML formats and the examples of many blogs.  Now that Blog2Print can handle this, the AllRecipes.com implementation was a snap.

Add a generous amount of our SharedBook core functions - like the auto creation of page numbers and the corresponding table of contents (what's a cookbook without an index of some kind?).  Wrap it up with our customizable soft or hard cover (with your own personal photo) and you have a great pairing!

I expect we will thrill many chefs with a professional cookbook they build themselves.  But I also think we will thrill many Webmasters who are looking for a simple way to implement a SharedBook from their site's content.

Bon Appétit!   

October 31, 2007

Last Day to Enter API Contest

This is just a quick reminder that this is the last day to enter the SharedBook Open API Challenge. Entries close at midnight. This will show you how to submit.

The Web development contest will award the best extensions from third party applications to SharedBook in three categories: 1) social networking, 2) photosharing, 3) a desktop application or a collaborative online community.

Anyone that participates is eligible to receive 10% of any books sold as a result of their development efforts, with a 20% share available to the winners in each category. Winners will also receive their choice of either an OpenMoko mobile phone, a 8GB iPhone™, or $500 cash.

October 22, 2007

Open API Challenge Closes Oct. 31

I just want to let everyone know that entries will be accepted for the SharedBook Open API Challenge through Wednesday, Oct. 31 (ten days from now). These are the highlights:

Open to all programming languages, the contest will award the best extensions from third party applications to SharedBook in three categories: 1) social networking, 2) photo sharing, and 3) desktop applications or collaborative online communities. All participants are eligible to receive at least a 10 percent share of any books sold as a result of their development efforts, with a 20 percent share available to the winners in each category. Winners will also receive their choice of an OpenMoko Neo 1973 mobile phone, an 8GB iPhone™ or $500.

If you would like more information, today's announcement is available here.

October 03, 2007

SharedBook API Contest Extended, Prize Package Enhanced

Just FYI, the entry deadline for the SharedBook Open API Challenge, a Web development contest that is open to all programming languages, has been extended to Oct. 31. In addition, all participants are now eligible to receive a 10 percent share of any books sold as a result of their development efforts, with a 20 percent share available to the winners in each category (resulting from their development).

Here's a quick overview:

Using SharedBook's API, developers can flow content from any Web site – archived materials, database content, photographs and user-generated content, among other items – into a structured book product that can be purchased immediately, or personalized further.

The SharedBook Open API Challenge will award the best extensions from third party applications to SharedBook in three categories: 1) social networking, 2) photo sharing, and 3) desktop applications or collaborative online communities. 

Base pricing for the API books is set at $19.95 for softcover and $27.95 for hardcover. Therefore, the winning developers will receive a minimum of $3.99 each time a book sells as a result of their development. Winners will also receive their choice of an OpenMoko Neo 1973 mobile phone, an 8GB iPhone™ or $500.

Complete details are available in today's announcement or in the contest section of our site.

Thank you to Pete Cashmore and Kristen Nicole of Mashable, John Musser of Programmable Web and Dennis Hayes of Photo News Today for posting the information to date.

September 07, 2007

SharedBook Open API Challenge

This is just a quick reminder that the SharedBook Open API Challenge, our first Web development contest, is open for entries. We are looking for the best extensions from third party applications to SharedBook in three categories: 1) social networking, 2) photo sharing and 3) desktop applications or collaborative online communities. The winner in each category will receive their choice of an OpenMoko mobile phone, a 4GB iPhone™ or $500.

The contest is open to all programming languages. Wrappers have been developed for PHP, PEAR, Java and Python that will help you get started. Please go to the developer's section of our site for more information.

August 29, 2007

Being SMART in Sports ...

I like waking up in the morning and logging miles. Biking, running or even swimming, all these are a great way for me to start the day. To clear my mind, organize my thoughts, and get ready for the challenges of a brand new day.  In fact the idea for our Open API came to my mind during one of my early morning runs. The fresh air, the quiet peaceful sunrise, and the high adrenalin make my thinking sharp and focused. This is where I get the best ideas, and why I like exercising so much.

But, sometimes, all this is not enough to get me out of bed bright and early, before the sun is out. And at such times, I realize that I need to set a new goal for myself.

As managers, setting goals is our second nature. Everyone speaks about SMART goals (SMART stands for Specific, Measurable, Attainable, Realistic and Timely). Setting really SMART goals is an art that requires skill and experience. When it comes to software, I know how to set SMART goals for myself and for my employees, as well as coach others in doing so.

Often, as I coach new managers, we discuss SMART goals. And they find it tricky defining specific, measurable, realistic goals.

This time when I tried to apply these principles to my favorite hobby, suddenly it became tricky for me. To make sure it is timely and specific, I set a particular race as a goal race. Yet, how do I make sure that my goal is realistic, but not easy? How do I measure it? Every race course is different; even the same course on a different day, with different weather conditions can be different. I turned back to all my management experience, trying to apply the same principles to set my race goal – quite challenging. Eventually, with some help from my coach, I managed to do it, and set a SMART goal for myself.

In software projects, when you set good SMART goals – magic happens. Suddenly, the plan becomes clearer. Making a decision on what is important, and what can be spared or postponed to a later phase, becomes very easy in light of the goal. Projects just start running fast forward when you define your goals well. In many cases developers come back to me amazed, saying they never thought they could do this stuff.

The same magic just happened to me in sports now. Suddenly, I got my motivation back. Getting up in the morning and hitting the road feels good. And I am amazed to discover new things about myself as an athlete, doing stuff I never thought I was capable of.

Once again (last time was when I was doing a fast bike race), I discovered how much this crazy hobby of mine, and this crazy job of mine have in common. Both bring huge satisfaction. J

If you want to learn more about SMART goal setting, here is a nice Web site I recently came across discussing how to set goals.

August 24, 2007

ABCs of the SharedBook API

Hi, I'm Benjamin Horst. I fill a variety of roles here at SharedBook including product management and community relations. I'm filling in for Ann today since she posted yesterday in someone else's place. 

We just enhanced a section of the SharedBook Web site catering to developers interested in our Open API. Here I'll describe some of the resources available on these pages to help you find what you need more quickly, so you can come to understand our system faster. This information should be helpful if you are interested in working with our API, or possibly entering the SharedBook Open API Challenge, which we introduced this week.

We provide a general overview of what can be done with the API on the Developers' home page. This is a good page to show to marketers and non-tech people, but if you're looking for the meat of the site, you can skip over it.

Another page will introduce you to the content types that appear in SharedBook's printed books. This page is called the "Starter Kit" and you will find it a good starting point if you're not deeply familiar with our online application and printed output.

Once you're a bit familiar with our terminology and the final form of our printed products, you'll be ready to hit our Methods documentation page. Each method is listed on this page under its general type, and you'll find its parameters spelled out on its own page linked from here.

Now, to really get an understanding of how to use these API Methods, you'll probably want to see some code. We've designed two pages for you. The first is our Resources page, containing API wrappers for PHP, Java and Python, with ASP coming soon.

The second is our Examples page, with actual components that we've developed using our API. Feel free to download these, inspect them, copy them and do whatever you need to learn from them.

To wrap up this quick review of our online support for API developers, we have started two Google Groups. For detailed discussions and technical questions, please join our SharedBook APIs group. If you'd like to follow a less-trafficked group to keep up with our general activities, join or visit the SharedBook Announce group.