 |
|
Tuesday, April 1. 2008
At least, I hope its not an April Fool's joke. It looks more like someone's lawyers go up to 11. From the Slideshare API Terms of Service. (iii) use the SlideShare APIs to operate nuclear facilities, life
support, or other mission critical application where human life or
property may be at stake. You understand that the SlideShare APIs are
not designed for such purposes and that their failure in such cases
could lead to death, personal injury, or severe property or
environmental damage for which SlideShare is not responsible;
Thursday, January 31. 2008
I mentioned in the previous post that a widget is just some code that people can stick on their website. A web-based widget can be directly embedded (such as a Flash or Flex application), or it could simply be an IFRAME linking to code somewhere else. For this example, I created the file widget-photo.php and linked to it from an iframe.
The cool part of this example isn't that a page "lives" within another. The magic happens when the user searches for their local congressperson. When a last name is submitted, the code within the embedded page makes a couple API calls. Using the SunlightLabs API, the PHP script asks for a list of congresspeople with the given last name. The SunlightLabs API returns a nicely-formatted JSON result set. We have officially used an API.
A mashup is just an easy way of saying that two or more functionalities have been combined in hopes of producing something more interesting / helpful / meaningful / awesome, etc. A pretty solid mashup example is HousingMaps, which mashes together craigslist and Google Maps.
The example isn't over yet. We have just returned data regarding a congressperson or bunch of congresspeople. We're about to display them, but there's something we forgot before making this a true mashup. For each congressperson, we're also making a call to the CARMA API to try and find some other information related to that person. We make a call, enter the congressperson's name for the input, and in exchange are given an XML file of that congressperson and their CARMA statistics. How we choose to display all this information is anyone's call from here.
Mission accomplished.
Source: http://tech.forumone.com/code_examples/widget-photo.phph
Wednesday, January 30. 2008
In the next several months, we'll be rolling out several widgets that take full advantage of CARMA's Application Programming Interface.
The CARMA website, especially with the Dig Deeper tool, allows the user to sift through vast amounts of cleanly presented CO2 emissions data like never before. Plants, companies and locations can be filtered by numerous criteria, including but not limited to: future power output, present CO2 emissions, past intensity and parent location. Maps present an intuitive display to compliment the raw data.
With all this information in the CARMA database, there's no wonder that some connections were left untouched. We just couldn't add too much information to the website without it getting overwhelming for the casual visitor. If you have unanswered questions after viewing the CARMA site, then the chances are that the API might be worth looking in to.
With the CARMA API, you can create a widget to simply repackage CARMA data. Examples include:
1. Displaying the future emissions of planned power plants by location.
2. Displaying trends in emissions and carbon intensity for specific plants, companies, or geographic regions.
3. Looking up the carbon intensity of power providers by zip code in the U.S.
You can also mashup data from CARMA and other sources:
1. Using the carbon intensity of individual power companies to calculate accurate carbon footprints for individual users.
2. Mashing up CARMA’s emissions data with campaign contribution data for congressional districts.
3. Mashing up CARMA’s power company emissions data with financial information.
Remember that a lot of the plants have coordinates, so creating visually-appealing map widgets (perhaps mashing up with other types of geographic data, like asthma rates) is entirely possible.
A widget is a little chunk of code that people can call their own and place on their blog or website. For example, this widget simply grabs the latest RSS feeds from somewhere. Some other widgets are more interactive, such as for weather, allowing users to enter some inputs (in this case, their zip code).
Calling the API is relatively simple, and it returns data back in XML format. Let's say that you wanted to get the raw data for the state of California. You can simply browse to http://carma.org/api/1.0/searchLocations?name=California. To build a widget, you could make multiple API calls and even mash it up with external data sources (like Yahoo! finance).
We created the API so anyone can download the raw data and use it to form their own connections. Forum One will be creating several widgets to showcase the great potential of the API, but the real excitement comes from how you interpret and display the data.
Wednesday, December 5. 2007
Finally, in 2007, some people have figured out how to provide email communications as an open service. Despite the popularity of syndication feeds with first-adopters, and tech-savy users, e-mail remains as the medium of choice to reach most stakeholders. This may be changing, as younger users see e-mail as a tool old people use, but that is a post for another day.
Programmable web lists 16 online APIs available for working in one way or another with email. Traditionally, you had the choice of outsourcing it to a proprietary vendor, or keeping it in-house. The former meant your data was silo'd away, frequently with only rudimentary tools for importing or exporting data. The latter, required you have technical expertise on operating and maintaining mail servers 24x7, a full time job for sure.
E-mail APIs provide rich access to your lists.
Programmatic access via one of these services opens up a number of intriguing integration opportunities, both for how you manage communications internally, and how you present email offerings on your own site. You could:
- Integrate sending email blasts to constituents with another contact management application or your membership management database.
- Automate regular email messages, generated from content added to your Website or CMS
- Customize the subscription process to your liking. Visitors would never have to leave your website to a 3rd party site, instead your web server talks behind the scenes with the email service through the API.
Thursday, November 15. 2007
With the help of Forum One, the Center for Global Development (CGD) launched a web-based initiative aiming to reduce global carbon emissions. CGD believes that public disclosure is one of the best steps towards solving a problem, and they came into the CO2 front with some pretty heavy artillery. Kevin Ummel and David Wheeler at CGD worked tremendously hard not only to find and sanity-check the emissions data, but to sculpt it in a way that many will undoubtedly find meaninful. The database itself consists of information for 50,000 power plants and over 4,000 power companies. Google maps have been used to add some flesh to the raw data, and a colored icon is attached to every item to further reinforce the numbers.
 What's coolest about CARMA is the ability to "dig" through all the data to find stuff that you'd consider meaningful. The Dig Deeper section allows you to drill down to find plants and companies in your area, as well as the most troublesome (or greenest) ones in your region/country/continent/etc.
Users can download the raw data in CSV or XML formats on just about every page, and if that's not thorough enough, there's a full-featured API. With the API, anyone could pull out data and use it for their own website -- perfect for custom widgets. Examples and helpful tips will shortly be added to the API documentation as well.
Even though we knew from the start that this is a really cool initiative, we had no idea that it would make it to the front page of sites like CNN and NPR. On the day after launch (11/15), the first server buckled under the enormous load, causing a bit of chaos. The site was down for a good 20 minutes while Rackspace upgraded to a new server. However, all is well again, and the steps made towards correcting the problem will be on a follow-up post.
Thursday, November 1. 2007
Today Google will announce the details of Open Social (link should be live in a few hours) a set of web API's that will let developers write applications that plug into any participating social network (launch partners include Salesforce, LinkedIn, Ning, Hi5, Flixter, Friendster, Orkut, and others).
This announcement effectively does for the web what FaceBook's API platform did for their single social network, allowing developers to tap into:
- Profile Information (user data)
- Friends Information (social graph)
- Activities (things that happen, News Feed type stuff)
This announcement is huge for anyone that is currently developing a strategy for how your organization should leverage Social Networks. Jim Cashel recently noted in his Influence post, The Rise of Social Media that social networks are powerful web communications allies that every organization should be using. He challenges organizations to start now to formulate their strategies for reaching into these social networks to connect with their users. Well, smart organizations now have a technical tool at their disposal that will let a forward thinking strategy become real across many networks in short order. Taken in conjunction with the recent API announcements from leading nonprofit eCRM vendors (Convio and Kintera), you can now realistically envision creating a single social networking application that integrates directly with your organization's CRM and plugs seamlessly into any Open Social participating network.
Monday, October 15. 2007

On the heels of Kinterra's Open Connect API launch, Convio has now officially launched their Convio Open Initiative. The initiative pulls together the interoperability work they've done in the past - their API, Connectors, and Extensions (more on those below) and ties it up in an "initiative" bow.
Unlike Kinterra's SOAP-based offering, Convio's API is REST-based. This will make the toolkit more usable for developers without heavier-lifting integration experience. According the announcement the API provides:
- Create New Constituent Records – allows organizations to create new records in the Constituent 360 database
- Fetch Constituent Records - allows organizations to request XML or JSON formatted biographical data for a constituent record stored in the Constituent 360 database
- Update Constituent Records - allows organizations to create and/or update constituent records in the Constituent 360 database
- Manage Group Membership and Subscriptions - allows organizations to manage constituent group memberships (add/remove) and interest category preferences (add/remove)
There is a footnote stating that not all of the functions will be fully "supported" until the next product release sometime later this year.
In addition to the RESTful API they're providing "connectors" and "extensions".
Connectors are a set of packaged integrations for specific industry's leading database systems (Salesforce.com, Blackbaud, MPower Systems MPX and Target Software Team Approach are mentioned on their site).
Extensions are essentially plugins for the Convio product that let organizations take advantage of the leading social media and networking sites of today. Extensions include a Facebook Application; and RSS feed creator (which is only available for the Convio CMS tool);
This is a great start, and we're already eager for the next versions to expose more of the Convio-managed content like Actions, Events, and Campaigns. That next level of openness would give Convio clients the freedom to present their message and member interaction in new ways, and should drive yet another way of innovation in online constituent engagement.
( thanks to Holly at the NTEN blog for the heads up)
Friday, October 12. 2007
Worth closer inspection, today Kintera announced that they've published an open API to allow integration directly with Kintera Technology. You can view the API documentation here. Some initial thoughts:
- You need a Kintera Sphere account with the API enabled (duh).
- If you are on PHP, they recommend version 5, since PHP4 will be dead soon.
- Sample code is available for C#, Java, and PHP. Must mean that that not a lot of Kintera clients have Ruby, Python, or Perl sites.
- The API is SOAP based, which is a little heavier to program, and can be difficult to debug.
- The API has methods for describing entities (business objects), creating new records, retrieving one or more records, updating a record, and deleting a record.
- A sign that they've thought ahead, for making batch operations easy, there is a GetUpdate method to return updated records within a specified time frame.
- Seems like you'll be able to run arbitrary queries in the CRM database, and also Execute transactions.
- One potentially worrying aspect, is that the API does not apply entity access restrictions. I'm not versed in exactly what that means, but it sounds like you are connecting as the equivalent of "root" and can do almost whatever you want via the API.
- I couldn't find any mention of the API being rate limited to so-many queries or calls a day.
HT: Non-profit Tech Blog
|
|
Comments
Mon, 21.04.2008 13:43
Hi Vikram-- Have you set up your repository in Subversive and successfully connected?
Mon, 21.04.2008 12:56
On checkout as.. dialog you asked to choose "Check out as a project configured using the New Project Wizard." That [...]
Fri, 11.04.2008 06:06
Excellent post, very detailed and I especially like the images. It helped me a lot with my set up.
Thu, 03.04.2008 01:55
How can they say that they're "not responsible" for "death, personal injury, or severe property or environmental [...]
Tue, 01.04.2008 23:29
Hi Marcel-- Make sure you follow the pre-step I have above and ensure you've installed one of the two Subversion [...]
Tue, 01.04.2008 20:21
Please help when I try to import, I don't have Other/Checkout Projects from SVN. Where is my problem?
Thu, 21.02.2008 05:58
Great, this was useful.
Wed, 13.02.2008 09:26
Thanks , I was trying hard & hard with http://www.eclipse.org/pdt/ins tall.php but success came here... thanks for the [...]
Wed, 06.02.2008 15:39
I had to find packages for e Redhat EL3 server, the following worked for me: Catdoc [...]
Wed, 30.01.2008 14:38
Yeah, it does. Just remember that a function is specific to the database in which it's created. If you're trying to call [...]
Wed, 30.01.2008 14:17
Awesome - I didn't know you could calculate and transform fields using functions that way. Does it work with custom [...]
Tue, 22.01.2008 20:49
Hehe... DNS hosting services I toyed with including in the tutorial but it's really a bit too much for the one-man (or [...]
Sat, 19.01.2008 18:51
Awesome, thanks very much for the guide!
Wed, 16.01.2008 14:21
I'd have to say that I like #2, its much more of a natural web experience to me. We don't always have to emulate [...]
Wed, 02.01.2008 16:10
It's fashionable this time of year to create some sort of year-end "best of" or "top ten" list [...]