Matt Webb (Schulze & Webb)FuelBand for alpha waves

I was waiting for a bus the other day, and had a pretty good time stand there, wool gathering, contemplating the world, thinking about the various things I needed to do, etc.

And on the bus after I thought: I don't give myself enough time to stop and think.

And then I thought: I don't give myself enough time to exercise either, and what I did in that case was buy a Nike+ FuelBand and monitor how many steps I take each day. (There was a surprise there: Factoring out exercise, there's a huge variation in my regular everyday activity, a four-times difference between quiet days and active days although they feel much the same.)

So I bought a MindWave from Neurosky which is a portable electroencephalography (EEG) headset with dry sensors. That is, it measures faint electrical activity on my head to read my brainwaves, and it's "dry" so I don't need to soak the sensors in saline or anything like that.

In theory it should be able to measure when I'm concentrating, when I'm excited/agitated, and when I'm relaxed.

It comes with a dongle to plug into my Mac so I can read the data from it using the MindWave developer tools. (In retrospect I should have bought the MindWave Mobile which uses Bluetooth and can also connect to the iPhone.)

It's a shame the MindWave doesn't store data itself -- if I want to get long-term readings then I will have to keep it paired with my Mac and store and analyse the data there.

Why? Because I'd like to wear this the whole time, and become more mindful of how much time - and for how long - I'm concentrating, reflecting, etc. And over time, being mindful of this, could I see whether I'm happier/more productive/more creative when I spend (say) regular time each day reflecting, or long periods of time on a single day concentrating, and so on.

Companies I would start if I wasn't doing this one:

The models currently in this space are exemplified by two companies, both based on Neurosky's technology:

  • Home of Attention, which caters to managers for trainers and managers for education and self-improvement. In their literature there are phrases like : You learn to relax at any time, You learn how to use your concentration to access any required performance at an instant. Other companies focus brain training on different sectors, and adjust their branding accordingly.
  • Toys and games, of which my favourite is the Necomini cat ears headset. These ears perk up when you see something interesting (food, a pretty boy), and fall when you relax. A neat toy... and done right it would be entertaining to see these in bars, although I have a feeling they're really a Hypercolor for checking people out.

Neurosky themselves have an app store.

But I think these companies are missing a trick. I'd like to introduce focus, good design, and vertical integration, and take lessons from successes like Nike+ and Foursquare.

I would love to take the Neurosky MindWave technology, have it store data for later syncing as a Bluetooth Smart Device, make it look great, wrap a FuelBand self-awareness and goals iPhone app around it, build in a mood tracking feature for feedback - maybe correlate it with email and calendar/todo list activity, Twitter/Facebook updates (for another mood datapoint), and Foursquare (for location) - and sell it as a headband.

You would share the time you'd spent reflecting each day on Facebook. There would be challenges, and self-awareness. I might bootstrap a distributed network of gym instructors for meditation (we'd have a marketplace for subscription yogis).

Kind of a cross between Brain Age (or Brain Training depending on your territory), FuelBand, product sales plus subscription services, quantified self, and mental well-being.

The really interesting stuff would happen when we start using machine learning across vast amounts of data from tens of thousands of individuals, all submitting brain wave and activity/mood data. We'd data-mine like crazy. What would we learn? It would be a little like 23andme, the data-mining + pathologies + gene sequencing company, and a little like Knewton with their personalised, adaptive learning. Maybe we would end up saying things like:

You know you need to be on top form in 5 days? We know from past behaviour and by looking at people like you that you need to spent 30 minutes more per day in uninterrupted quiet reflection in order to achieve this. Here's your goal. Go!

There's not quite a business here, not at launch... but after you find out what combinations of which mental states over a day promote what kind of behaviours, and you can help people be mindful of that? There's something really big there, I'm sure.

I wish I had more hours in the day.

Right now

I am using my MindWave and playing Blink/zone to explode fireworks whenever I blink. When I don't blink they don't explode, when I do blink they do. It works surprisingly well. It's a weird experience to have something I regard as so interior picked up by a computer.

Norman Walsh (Sun)The short-form week of 8–14 May 2012

<article class="essay" id="content" lang="en">

The week in review, 140 characters at a time. This week, 9 messages in 11 conversations. (With 1 favorite.)

This document was created automatically from my archive of my Twitter stream. Due to limitations in the Twitter API and occasional glitches in my archiving system, it may not be 100% complete.

In a conversation that started on Monday at 01:58pm

Google’s geocoding-by-wireless-AP service thinks the Ronald Reagan Building is in Kissimmee Florida.—@ndw
@ndw yeah, had a similar thing, but thought I was in Talahasse when checking in from Ohio.—@kingargyle
@ndw maybe they're following a boomerang route http://t.co/NGJ844Jn—@vancouverizer

Wednesday at 10:05am

from @ndw http://t.co/sjplv0wH url fragment ids for plain text files: http://t.co/QWpy3I5V—@loppear

In a conversation that started on Thursday at 11:50am

You know all those mean things I’ve said about United’s new website? Now I’ve seen US Air’s. The United one’s not that bad.—@ndw
@ndw Hah. Try Ryanair.—@docum3nt
@ndw #Winning by #sucking less.—@bsletten

In a conversation that started on Thursday at 03:39pm

“Like us. Follow us. Be social with <name of company>.” You’re kidding, right?—@ndw
@ndw Sadly, they are dead serious—@whovingh

In a conversation that started on Thursday at 03:51pm

I'm trying to select a new browser-based JS test framework for ReSpec. Lots of options… Any favourites to recommend?—@robinberjon
@robinberjon Is there an XML-based option?—@ndw
@ndw shockingly enough, not that girl have seen!—@robinberjon

Thursday at 03:56pm

1. Find interesting technical article on the net. 2. Prepare to forward it widely. 3. Notice it’s dated 2010. Delete mail. Win.—@ndw

In a conversation that started on Thursday at 03:58pm

15% of VMWare Workstation is an ... interesting Mother’s Day sale. No disrespect to the virtualization wielding mom’s intended.—@ndw
RT @ndw 15% of VMWare Workstation is an ... interesting Mother’s Day sale. No disrespect to the virtualization wielding mom’s intended.—@markuspilman

Monday at 06:17am

About once a year I forget the "never take the first flight on Monday rule." Today is that Monday. Blech.—@ndw

Monday at 12:19pm

"May I see your id, please?" You must be joking.—@ndw

Monday at 05:23pm

FAV
What do you call a gathering/group of devops? A panic.—@talios

Monday at 08:12pm

Yes, http://t.co/O6rpCtEww, wiki.{docbook,xproc}.org, and a few other sites are down. Again. Will check when I can.—@ndw
</article>

Amazon Web ServicesDomain Verification for the Amazon Simple Email Service

The Amazon Simple Email Service (SES) makes it easy and cost-effective for you to send bulk or transactional email messages.

As I described in my introductory post (Introducing the Amazon Simple Email Service), you must verify the email address (or addresses) that you plan to use to send messages. The initial verification process must be repeated for each email address.

Today we are introducing a new SES feature. You can now verify an entire domain, and then send email from any address in that domain. In addition to saving you time and effort, this new feature now allows you to use Amazon SES in situations where you don't accept email at the From address, or when you don't know the From address ahead of time.

 You verify a domain by creating a TXT record in the domain's DNS record using information that we provide you as part of the domain verification process. Most (not all) DNS providers allow you to create TXT records. 

If you are using Amazon Route 53 to provide DNS service for your domain, the process is very straightforward; you can verify the domain using the AWS Management Console. Here's a tour...

The first step is to visit the SES tab of the console and add your domain to the Domains tab in the Verified Senders section:

If you are not using Route 53, the next step is to update your domain's DNS settings using the TXT record information displayed in the console:

If you are using Route 53, push the Use Route 53 button and select the domains and subdomains that you want to verify:

Either way (Route 53 or your own DNS provider), Amazon SES will verify your domain within 72 hours. Once the domain has been verified, you'll receive an email and the domain will be marked as "verified" in the console.

You can now send email from any address in the domain!

If you would like to learn more about domain verification, please sign up for the June 12th webinar: Using Domain Verification with Amazon Simple Email Service. The webinar is free but space is limited!

We have also changed the limit on the number of verified addresses and domains allowed per AWS account from 100 to 1000. 

-- Jeff;

 

ProgrammableWeb: APIsTauP

TauPSeismic travel time calculation service
Date Updated: 2012-05-15
Tags: earhquakes, science

ProgrammableWeb: APIsVisual DataFlex Football Pool

Visual DataFlex Football PoolEuropean football information service
Date Updated: 2012-05-15
Tags: europe, football, soccer, sports

ProgrammableWeb: APIsVisual DataFlex Country Information

Visual DataFlex Country InformationCountry information service
Date Updated: 2012-05-15
Tags: international, reference

ProgrammableWeb: APIseCoComa Geo

eCoComa GeoAddress-based geolocation services
Date Updated: 2012-05-15
Tags: geolocation, mapping

ProgrammableWeb: APIsTeleportd

TeleportdSmartphone photo database
Date Updated: 2012-05-15
Tags: aggregator, mobile, organization, photo

ProgrammableWeb: APIsSmartPea Grocery

SmartPea Grocery Grocery store deal and shopping list service
Date Updated: 2012-05-15
Tags: deals, food, Grocery, health, local

ProgrammableWeb: APIsFAROO

FAROOWeb search engine
Date Updated: 2012-05-15
Tags: news, p2p, realtime, search

ProgrammableWeb: APIseCoComa Email

eCoComa EmailE-mail receiving and validation services
Date Updated: 2012-05-15
Tags: email, security, validation

ProgrammableWeb: APIseCoComa Domain

eCoComa DomainDomain name information service
Date Updated: 2012-05-15
Tags: domain, internet, lookup

ProgrammableWeb: APIseCoComa Convert

eCoComa ConvertVarious text conversion services
Date Updated: 2012-05-15
Tags: conversion, semantic, text, tools

ProgrammableWeb: APIseCoComa Video

eCoComa VideoOnline video search service
Date Updated: 2012-05-15
Tags: entertainment, media, search, video

ProgrammableWeb: APIseCoComa RSS

eCoComa RSSCustom RSS feed creation service
Date Updated: 2012-05-15
Tags: feeds, news, rss

ProgrammableWeb: APIseCoComa Marketing

eCoComa MarketingOnline marketing service
Date Updated: 2012-05-15
Tags: advertising, email, marketing, SEO

ProgrammableWeb: APIsMusic Xray S2O Partner

Music Xray S2O PartnerMusic sharing platform
Date Updated: 2012-05-15
Tags: music, sharing, social

ProgrammableWeb: APIsBudget Your Trip

Budget Your TripTravel planning service
Date Updated: 2012-05-15
Tags: database, tools, travel

ProgrammableWeb: APIsFixYa

FixYaQuestion and answer site
Date Updated: 2012-05-15
Tags: answers, business, database, questions, social

ProgrammableWeb: APIsiOpenAt.com

iOpenAt.comBusiness opening hours
Date Updated: 2012-05-15
Tags: retail, shopping, uk

ProgrammableWeb: APIsFor Wanted

For WantedBuying and selling platform
Date Updated: 2012-05-15
Tags: classifieds, selling, shopping

ProgrammableWeb: APIsInformatica Cloud

Informatica CloudData integration service
Date Updated: 2012-05-15
Tags: cloud, Data, enterprise, sharing

ProgrammableWebGumroad Aims To Make Selling Items as Simple as Sharing Them

GumroadEver tried to sell something on the Internet and hoped that the process was simpler than what it currently is? What if selling an item on the Internet was as simple as sharing the item for sale with your friends on the social web? Gumroad, a San Francisco based startup has adopted that philosophy and wants to take the pain out of selling an item on the web and it also provides the Gumroad API for its core features.

Gumroad simplifies the process of selling any item by doing things in a certain way. First, it wants you to sell your item to your friends, followers in the same way that you communicate to them i.e. by sharing that information. You do not need to setup any store. In case of digital items like MP3’s of your songs or an eBook, you can host the download in a secure download link and the buyer will be sent the link once purchase is complete. You set your pricing and gumroad takes a fixed cut of 5% and $.25 of the transaction cost.

Gumroad also provides an API to go with their web site. The Gumroad API currently offers the core functionality of authentication and setting up your items for sale. The API is REST based and uses JSON for its data format. Authentication is done by a secure HTTP call passing in the username and password. Once authenticated, you can perform various API actions to maintain your list of items for sell, including creating a new link, editing, deleting, enabling/disabling,etc.

For example, to create a new link for an item up for sale, do a POST to https://gumroad.com/api/v1/links with request parameters like name, url, price and description.

The API may be limited but it is good enough to get going and it won’t be long before developers would write mobile applications using them.

What do you think of the Gumroad approach to selling items on the web? Simple is definitely their forte and it would be interesting to see the traction they get in a few months from now.


Sponsored by

Related ProgrammableWeb Resources

Gumroad Gumroad API Profile

Amazon Web ServicesAWS Cloud Storage for the Enterprise

There are a lot of storage options available to AWS users -- Amazon S3, Elastic Block Storage, and the AWS Storage Gateway, along with ancillary services such as Amazon CloudFront for content distribution, AWS Direct Connect for dedicated network connections, and Amazon Elastic MapReduce for large-scale data processing.

Our customers are using these services to implement cloud-based backup, disaster recovery, and archiving for entire enterprises.

In order to help you make sense of all of these options and to give you a better sense of how AWS can help you, we have created a day-long event devoted to cloud storage for the enterprise.

The AWS Cloud Storage for the Enterprise event will take place on June 6th in New York, and will run from 10:00 AM to 5:30 PM. In addition to keynotes from Stephen Schmidt (Vice President, Security Engineering and Chief Information Security Officer for AWS) and Matt Tavis (AWS Solutions Architect), you will get to hear directly from AWS customers. Stephen will focus on the all-important question of data security in the cloud, and Matt will discuss the ways in which the cloud is transforming the storage strategies that our enterprise customers are putting in to play.

They'll also coever some lesser-known topics such as cloud-as-a-tier, NAS-like functionality with the cloud, long term data archiving with high performance record retrieval, high speed data transfer in and out.

The event is free, but you will need to register.

-- Jeff;

ProgrammableWebWhy REST Keeps Me Up At Night

This guest post comes from Daniel Jacobson (@daniel_jacobson), director of engineering for the Netflix API. Prior to Netflix, Daniel ran application development for NPR where he created the NPR API, among other things. He is also the co-author of APIs: A Strategy Guide and a frequent contributor to ProgrammableWeb and the Netflix Tech Blog.

NetflixWith respect to Web APIs, the industry has clearly and emphatically landed on REST as the standard way to implement these services. And for good reason… REST, which is generally implemented as a one-size-fits-all solution, is an excellent choice for a most companies who wish to expose their content to third parties, mobile app developers, partners, internal teams, etc. There are many tomes about what REST is and how best to implement it, so I won’t go into detail here. But if I were to sum up the value proposition to these companies of the traditional REST solution, I would describe it as:

REST APIs are excellent at handling requests in a generic way, establishing a set of rules that allow a large number of known and unknown developers to easily consume the services that the API offers.

In this model, everyone knows how to behave and it can be incredibly powerful. The API providers establish a set of rules and the API consumers must adhere to those rules to get what they want from the API. It is perfect, right? In many cases, the answer is obviously yes. But in other cases, as our world scales and the number of ways for people to consume digital content and services continues to expand, this one-size-fits-all model is likely to fall short.

The potential shortcomings surface because this model assumes that a key goal of these APIs is to serve a large number of known and unknown developers. The more I talk to people about APIs, however, the clearer it is that public APIs are waning in popularity and business opportunity and that the internal use case is the wave of the future. There are books, articles and case studies cropping up almost daily supporting this view. And while my company, Netflix, may be an outlier because of the scale in which we operate, I believe that we are an interesting model of how things are evolving.

Netflix is currently available on over 800 different device types, including game consoles, mobile phones, TVs, Blu-ray players, tablets, computers, and almost any other device that can stream video. Our API alone handles more than two billion incoming requests on peak days, which translates into almost ten billion real-time outgoing requests from the API to internal dependency services. These numbers are up by about 70x from just two years ago. Most companies do not have that kind of scale, but it is clear that with the continued growth of the device market more companies are resetting their strategies to be less about the public API and more about internal consumption of their own APIs to support device proliferation. When this transition occurs, the API is no longer targeting “a large number of known and unknown developers.” Rather, the key audience is a small number of known developers.

The potential conflict between the internal and public use cases is in the design of the API itself. Keep in mind that the design implications will not be problematic in many scenarios. It becomes a potential problem if the breadth of devices becomes so wide that the variability of features across them becomes substantially harder to manage. It is the breadth of devices that creates a problem for the one-size-fits-all API solutions.

If your target is a small group of teams with whom you have close relationships, the dynamics around the API change. For Netflix, we persisted on the one-size-fits-all REST model for quite a while as more and more devices got added on top of the API. But given our scale, one thing has become increasingly obvious. Our REST API, while very capable of handling the requests from our devices in a generic way, is optimized for none of them. This is the case because our REST API focuses on resources that are meant to be granular representations of the data, from the perspective of the data. The granularity is exactly what allows the API to support a large number of known and unknown developers. Because it sets the rules for how to interface with the data, it also forces all of the developers to adhere to those rules. That means that each device potentially has to work a little harder (or sometimes a lot harder) to get the data needed to create great user experiences because devices are different from each other.

The differences across these devices can be varied and sometimes significant. Here are some examples of variances across devices that may be challenging for one-size-fits-all models:

  • Different devices may have different memory capacity
  • Some devices may require a unique or proprietary format or delivery method
  • Some devices may perform better with a flatter or more hierarchical document model
  • Different devices have different screen real estate sizes which may impact which data elements are needed
  • Some devices may perform better having bits streamed across HTTP rather than delivered as a complete document
  • Different devices allow for different user interaction models, which could influence the metadata fields, delivery method, interaction model, etc.

Just think about the differences between an iPhone and your TV and how they beg for different user experiences. Moreover, the XBox and the Wii, both of which project to the TV, are different in the way users interact with them as well as in the hardware constraints, both of which may require different APIs to support them. When considering more than 800 different device types, the variance across them becomes overwhelming. And as more manufacturers continue to innovate on these devices, the variance may only broaden.

How do you know if your company is ready to consider alternatives to the one-size-fits-all API model? Here are the ingredients needed to help you make that decision:

  • Small number of targeted API consumers is the top priority
  • Very close relationships between these API consumers and the API team
  • An increasing divergence of needs across the top priority API consumers
  • Strong desire by the API consumers for more optimized interactions with the API
  • High value proposition for the company providing the API to make these API consumers as effective as possible

If these ingredients are met, then you have the recipe for needing a new kind of API.

Because of the differences in these devices, Netflix UI teams would often have to do a range of things to get around our REST API to better serve the users of the device. Sometimes, the API team would be required to extend the base service to handle special cases, often resulting in spaghetti code or undocumented features. And because different teams have different needs, in the REST API world, we would often need to delay feature development for some due to the challenges around prioritization. In addition to these kinds of issues, significant performance and/or architectural problems are bound to emerge. For example, these more granular APIs often result in chattier interactions between device and server or chunkier payloads, as I discussed in a previous post on the Netflix Tech Blog.

To solve this issue, it is becoming increasingly common for companies (including Netflix) to think about the interaction model in a different way. Rather than having the API create a set of rather rigid rules and forcing the various devices to follow them, companies are now thinking about ways to let the UI have more control in dictating what is needed from a service in support of their needs. Some are creating custom REST-based APIs to support a specific device or category of devices. Others are thinking about greater granularity in REST resources with more batching of calls. Some are creating orchestration layers, such as <http>ql.io, in their API system to customize the interaction. These are all smart and practical ways around the problem. But with the growing number of devices, the increasing urge for companies to be on as many of them as possible, and the desire for continued innovation across these devices, these various solutions are still somewhat restricted. They are still forcing the developers to adhere to server-side rules and non-optimized payloads in an effort to have a one-size-fits-all solution. These approaches are closer to the flexibility needed in that they are not as rigid as the typical REST-based solution, but when supporting as many devices as Netflix does, we believe they fall short for us.

For Netflix, our goal is to take advantage of the differences of these devices rather than treating them generically. As a result, we are handing over the creation of the rules to the developers who consume the API rather than forcing them to adhere to a generic set of rules applied by the API team. In other words, we have created a platform for API development. In my next post, I will discuss in more detail our implementation of this approach. In the meantime, if you are interested in helping us solve these and other problems, we are hiring!</http>


Sponsored by

Related ProgrammableWeb Resources

Netflix Netflix API Profile, 23 mashups

Uche & Chimezie OgbujiA Perspective on Life

<p> <div class="zemanta-img" style="margin: 1em; float: right; display: block;"><a href="http://commons.wikipedia.org/wiki/File:Bike_Helmet.jpg" target="_blank"><img alt="A bike helmet" height="225" src="http://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Bike_Helmet.jpg/300px-Bike_Helmet.jpg" style="border: none; display: block;" width="300" /></a> <p class="zemanta-img-attribution" style="font-size: 0.8em;">A bike helmet (Photo credit: <a href="http://commons.wikipedia.org/wiki/File:Bike_Helmet.jpg" target="_blank">Wikipedia</a>)</p> </div> <div class="zemanta-img" style="margin: 1em; float: right; display: block;"><a href="http://www.flickr.com/photos/15203873@N08/6101743537" target="_blank"><img alt="Train Tracks" height="180" src="http://farm7.static.flickr.com/6187/6101743537_614bb6d603_m.jpg" style="border: none; display: block;" width="240" /></a> <p class="zemanta-img-attribution" style="font-size: 0.8em;">Train Tracks (Photo credit: <a href="http://www.flickr.com/photos/15203873@N08/6101743537" target="_blank">tony_donnelly</a>)</p> </div> <p>&nbsp;</p> <p>A little under over an hour ago, I had a near death experience that I felt compelled to write about. &nbsp;To a person who isn't aware of what I'm going through now or what I have been going through for many years, this might seem a bit hyperbolic. &nbsp;However, I suspect that when this whirlwind of injustice I'm going through is finished, that today's events will be even more symbolic for me.</p> <p>Lately, I've taken to bike riding every day near the Shaker parks where I am. &nbsp;I ride about 5 miles one day, 3 miles the next day, and so on. &nbsp;I'm 35, and getting to the point where my mind still thinks I'm as athletic as I used to be but my body is telling it otherwise. &nbsp;My professional life had become very sedentary and the essential hypertension diagnosis that is the downside of the genes I've been blessed with has made me very self-conscious of my health. &nbsp;Major changes in my life have given me the opportunity to rededicate myself to an active lifestyle.</p> <p>Yesterday, my 12-year son and mom were teasing me that 5 miles is not that much and hardly a reason to have sore muscles afterwards. &nbsp;So, I was swelling with alot of hubris as I was racing down the bike path that I take everyday, this afternoon. &nbsp;I normally continue on the bike path and backtrack, however, as a result of the hubris, I decided (in a split second decision) to bear a very sharp right off the path towards a train track crossing. &nbsp;My intention was to lengthen the path a bit and take a semi-off road path in the process.</p> <p>I had a helmet on and some open-finger gloves and was blasting Outkast's 'Elevators (Me and You)' in my ear, feeling emboldened from the adrenaline pumping through me as I was peddling as hard as I could. &nbsp;As I approached the train track crossing, I noticed there was a drop from the path to the wooden planks and I think - at the time - my intention was to hop down and back up. &nbsp;However, about 10 feet from the crossing, I realized - in absolute horror - that the drop was much <strong>more</strong> significant and there was no way I was going to make it at the speed I was going.</p> <p>I remember a shriek of horror escaping my lips - barely audible - and me panicking and pressing on the brakes. &nbsp;Either I pressed only the front brakes or the back breaks were not as strong as they should have been, but the nearly fatal result was that my bike began to capsize forward in slow motion as I was thrown off the bike towards the crossing comprised of wooden planks and <strong>solid</strong>-iron train tracks. &nbsp;I was flying towards the tracks at about 10 miles an hour and at an angle of about 45 degrees, head first.</p> <p>My instinct kicked in and I tucked into a tumble, taking a majority of the impact on my left shoulder, then my helmeted head, and eventually my right knee. &nbsp;I'm certain that were it not for the lucky angle in which I was thrown from the bike, my tuck, and the helmet which took a direct hit after my tumble, I would have been more seriously injured and probably would have been knocked unconscious. &nbsp;This would have had fatal consequences, as I'll explain later.&nbsp;</p> <p>Now, when I started to get up, lying sprawled in the middle of the train tracks under the rays of a sun overlooking an incredibly beautiful day, I took measure of my injuries and was stunned to find out that the most damage I had sustained was a series of surface wounds on my left knee. &nbsp;The back and left side of my head, which crashed into the floor of the train tracks, was not hurt in the way that would have led me to be concerned about a concussion. &nbsp;In a previous life (so to speak), I had my skull bashed in such a way that I needed several stitches on my skull and was therefore aware of the sensation of a serious head injury.</p> <p>However, the helmet did its job. &nbsp;I got up, and my immediate emotions were: shock at being able to walk off the tracks, sheer joy from being okay, and then eventual embarrassment. &nbsp;&nbsp;</p> <p>I looked around and saw there was no one in sight. &nbsp;I think <strong>no one</strong> witnessed this horrific bike accident. &nbsp;I walked off the tracks to my bike, which was also relatively unscathed, with the exception of the back wheel which was wobbling a bit. &nbsp;I gathered myself, pushed the bike to see if it was still functioning, and then froze in a chill as I heard the rush of a train ride through the spot where I was, no more than a minute or two after my incident.</p> <p>I'm certain, that if I had been knocked unconscious, with no one to witness what happened or warn the oncoming train, there would have been yet another horrible chapter added to my life, except it would have been the last one.</p> <p>I rode my bike gingerly to determine I hadn't broken anything, which is a good thing because I have no health insurance anymore. &nbsp;I turned back around, stopped, got off my bike, and immediately sat under a tree to meditate first and then contemplate my near death experience. In retrospect, my life didn't flash in front of my eyes in the moments I realized I was tumbling at full speed towards the depressed crossing. &nbsp;Rather, the only thought I had was: "<em>I don't want to die, I have so much unfinished business!</em>"</p> <p>It wasn't until I sat down under that tree that it all hit me and I realized how petty all the craziness I have been going through is in contrast to all that you stand to lose when you die. &nbsp;It was then that I realized also that the only other injury I had sustained was the shoulder that I tucked to break my fall and that took the initial impact. &nbsp;</p> <p>There was an ugly bruise on it, but nothing more. &nbsp;The bruise, which doesn't show so much on skin as dark as mine, partially covered the inconspicuous tatoo I have had there since Halloween night in New Orleans, 1996 that reads: Umunne Kwenu. &nbsp;It is a formal address given when speaking to a gathering of Igbos and literally means: 'Son's of my mother [my brethren], affirm yourselves.' &nbsp;</p> <p>So, I got up, smiled from the knowledge that I escaped a horrible death, called my mother to let her know what happened and rode my injured bike and body home. &nbsp;The three lessons I take from this: 1) There is always a small victory in being able to walk away from a horrible situation 2) Bike helmets are life savers, for real 3) The fragility of life always has the power to wipe away hubris and almost any other such emotion in a split second.</p> <div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" href="http://www.zemanta.com/?px" title="Enhanced by Zemanta"><img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=9c35c492-676c-49b4-bfa5-1d74e271f337" style="border: none; float: right;" /></a></div> </p> <p><a href="http://copia.posterous.com/a-perspective-on-life">Permalink</a> | <a href="http://copia.posterous.com/a-perspective-on-life#comment">Leave a comment&nbsp;&nbsp;&raquo;</a> </p>

Uche & Chimezie OgbujiThe Lay of Analytics

<p> <div>A few minutes ago I posted a link on Facebook to a recent technical report to which I'd contributed. Many of my Facebook friends are non-techies, and one of them asked: "could you say that again, poetically?" Which is a genius request, really! The technical report concerns&nbsp;<a href="http://en.wikipedia.org/wiki/Data_analytics">data analytics</a>, so here's a brief lyric to get the gist to my non-technical friends.</div> <p></p> <blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"> <div>I wandered lonely as a cloud and tried to figure out</div> <div>Where all my customers had gone, to bring them back about;</div> <div>But from a million visitors how could I see the trend?</div> <div>What made them walk out of my store, and what did make them spend?</div> <div>And so I bought some software which could crunch the number stew</div> <div>And tell me as a business just exactly what to do.</div> <div>The best such tools let me explore without insisting on specifics;</div> <div>I asked a geek "so what's that called?" He said: "Smart Analytics."</div> </blockquote> <p></p> <div>BTW the report in question is <a href="http://www.pwc.com/us/en/technology-forecast/2012/issue1/download.jhtml">PwC's latest "Technology Forecast" report</a> (PDF download), focusing on data analytics. There's also a sidebar on Zepheira's Freemix product on page 39.</div> </p> <p><a href="http://copia.posterous.com/the-lay-of-analytics">Permalink</a> | <a href="http://copia.posterous.com/the-lay-of-analytics#comment">Leave a comment&nbsp;&nbsp;&raquo;</a> </p>

Uche & Chimezie OgbujiBrief notes on upgrading a 2010 MacBook Pro SSD

<p> <p style="font-family: Lucida Grande,Verdana,Arial,Helvetica,sans-serif; font-size: 13px; line-height: 18px;">I have a&nbsp;2010 MacBook Pro which came with a 120GB SSD. I ran out of space on the drive and took it upon myself to upgrade to a bigger one. Found&nbsp;<a href="http://www.buy.com/prod/sandisk-extreme-240gb-2-5-sata-iii-solid-state-drive-ssd/227072805.html" style="color: #007bff;">a great deal</a>&nbsp;($220) on this&nbsp;SanDisk Extreme 240GB 2.5" SATA III SSD and was ready to swap it out with the old drive. &nbsp;It turns out I'd lost out on the lottery and received <a href="http://www.tuaw.com/2011/07/26/macbook-airs-using-ssds-from-both-toshiba-and-samsung/">one of the slower Toshiba SSDs rather than one of the faster Samsung ones</a>, so I knew the SanDisk was bound to be an improvement. After making sure my Time Machine backup was up to date I cloned my old SSD to the new one using a SATA-to-USB dock and&nbsp;<a href="http://www.bombich.com/" style="color: #007bff;">Carbon Copy Cloner</a>.</p> <p style="font-family: Lucida Grande,Verdana,Arial,Helvetica,sans-serif; font-size: 13px; line-height: 18px;">I started by watching&nbsp;<a href="http://www.youtube.com/watch?v=iv91m2z6DPY" style="color: #007bff;">this video</a>&nbsp;to get a sense of my way around the inside of the laptop. The video covers a slightly different task, but I wasn't looking for hand-holding, but just the general layout and gotchas. &nbsp;One of the things I gathered is that it's important to use high-quality philips and torx bits, and in my case I used a Wiha set. &nbsp;It was pretty easy to take out the old SSD and plug in the new one. I couldn't find my anti-static wristband, but I made sure to wear only cotton clothing, and to touch the power supply chasis of a nearby, plugged-in desktop PC every minute or so to avoid zapping anything.</p> <p style="font-family: Lucida Grande,Verdana,Arial,Helvetica,sans-serif; font-size: 13px; line-height: 18px;">With the new SSD in place, the first boot took an eternity. Almost ten seconds from pushing the power button to the grey Apple icon, and almost another ten seconds before the little spinny boot process indicator, but it did boot up fine. I've heard that SSDs need a few days to "settle in" before they're at proper performance levels, but other than the super-slow boot-up , I haven't had any other problems. I was back to working normally right away with the new SSD. &nbsp;Using&nbsp;<a href="http://itunes.apple.com/us/app/blackmagic-disk-speed-test/id425264550">Blackmagic Disk Speed Test</a> I get speeds of around 220MB/s for read and 260MB/s for write, which is quite an improvement (and this is before any possible "settling.")</p> </p> <p><a href="http://copia.posterous.com/brief-notes-on-upgrading-a-2010-macbook-pro-s">Permalink</a> | <a href="http://copia.posterous.com/brief-notes-on-upgrading-a-2010-macbook-pro-s#comment">Leave a comment&nbsp;&nbsp;&raquo;</a> </p>

ProgrammableWebAPI Strategy Lessons from Factual’s Upgrade of its Mobile/Local APIs

This guest post comes from Dan Woods, CTO and Editor of CITOResearch.com and co-author of APIs: A Strategy Guide. He writes about API Strategy and related topics.

Factual PlacesFactual Inc, a company founded by ex-Googler Gil Elbaz that is creating a collaborative data platform, announced extensions to its Factual APIs today that are aimed at improving the ability to target advertising and provide other geo-based capabilities in mobile applications. The three new APIs, Geopulse, Reverse Geocoder, and World Geographies, fill gaps and extend the scope of Factual’s API portfolio. But the way that Factual thinks about its APIs also holds lessons for anyone who is mapping out an API strategy of their own.

Factual offers access to data sets for Global Places, U.S. Restaurants, U.S. Healthcare providers, and World Geographies. Factual’s first batch of APIs provided access to the foundational location data for 50 countries (the Core API), enabled entity resolution for a place (Resolve), and provided mappings to a place from dozens of sources such as Foursquare, Yelp, Eventful and so on (Crosswalk API). The new APIs help mobile app developers, advertising companies and demand side platforms target ads better in the mobile environment, and companies attempting to understand how to target ads:
Geopulse is an API that accepts a latitude and longitude and returns four different types of information, called pulses, related to that location:

  • Factual Commercial Density: the relative density of businesses nearby
  • Factual Commercial Profile: the types of businesses nearby
  • Nearest: the closest Place in the Factual database.
  • Demographics: Age, gender, race, and median income based on US census data (US only).
  • Reverse Geocoder is an API that converts a longitude and latitude into an address (US only) or region (49 other countries).

    World Geographies is an API that provides the names and interrelationships between the world’s natural and administrative geographies — countries, cities, states, continents, regions, and time zones — enhancing the global 60 million businesses and landmarks Factual currently offers. The API provides approximately 6 million geographies and over 8 million place names in numerous languages.

    All of these APIs are being released in beta. The Reverse Geocoder and World Geographies APIs fill gaps that developers of mobile and web asked have asked for.

    The Geopulse API fills an emerging need to assemble as much information as possible related to a specific location. Instead of just knowing that you are at a specific location with a certain type of phone at a specifice time of day, the Geopulse API provides many more signals that can be used to improve the targeting of an ad.

    “The signals were are releasing in GeoPulse are just the beginning,” Factual’s Eva Ho said. “In the future we will layer on top social signals and many other data sets that will further improve the amount of information that can be used by application developers or ad networks. Both groups are hungry for as much information as they can get.”

    The way that Factual is gradually extending its APIs reveals a pattern that should be useful to product managers and designers of APIs or portfolios of mobile apps. The operative principle: Follow the value chain.

    Often, when someone creates an API or a mobile app, the effort is a shot in the dark. Will anyone be interested? How will it make a difference? If the API or application takes hold, the next question is: What comes next?

    Following the value chain means looking at what the API or mobile app is being used for. Ask not only what more can be done but what are the adjacent activities that are related? How can these be supported? Is there an emerging API economy of the sort my co-authors and I described in “APIs: A Strategy Guide”? If so how must the existing APIs grow and what new APIs are required?

    The growth of Factual APIs follows the value chain created by mobile apps. First, the mobile and web apps needed information about places. This is where Factual APIs first took hold. The success of these apps lead to the need to offer better targeting of ads and other services. This is the mission of the APIs Factual announced today.

    “Our early customer wins were all around web and mobile developers,” Ho said. “Their next big worry was how were they going to monetize their applications, and we realized that we needed to provide more data to enable that. Going into local targeting makes complete sense given that we started with this rich dataset of locations.”

    While the first users of the APIs will likely companies who sell targeted ads, it is likely that companies who buy targeted ads will also use the APIs to figure out how to improve their rules for targeting.

    Ho said that many more data sets are on the way. As these data sets create new applications, Factual will undoubtedly follow the value chain with new sets of APIs.


Sponsored by

Related ProgrammableWeb Resources

Factual Places Factual Places API Profile

Factual Factual API Profile, 4 mashups

ProgrammableWeb45 Coupons APIs: Groupon, 8coupons and US Yellow Pages

GrouponOur API directory now includes 45 coupons APIs. The newest is the Wishpot Coupon API. The most popular, in terms of mashups, is the Groupon API. We list 10 Groupon mashups. Below you’ll find some more stats from the directory, including the entire list of coupons APIs.

In terms of the technical details, REST and XML lead the way. It should be pointed out that only 30 APIs in this category have a protocol listed. Many providers in this space do not make their documentation openly available instead preferring to partner with developers before providing access. There are 29 coupons REST APIs. Our directory lists 25 coupons XML APIs and 23 coupons JSON APIs.

The most common tags within coupons are 38 shopping coupons APIs, 12 local coupons APIs and 12 deals coupons APIs.

On the mashup side, we list 12 coupons mashups. We named Frugalmate as mashup of the day yesterday.

For reference, here is a list of all 45 coupons APIs.

  8coupons API: Local deals aggregator

  AisleBuyer API: Mobile commerce services

  AwardWallet API: Loyalty program management service

  Best Buy BBYOpen BBYOffer API: eCommerce shopping services

  BiteHunter API: Dining Deals Search Service

  BuyDeals.in Local Deal API: Local Group Buy Aggregation Service

  Bview Promotion API: Aggregate coupons for UK retailers

  CardSpring API: Payment network service

  CBS Local Offers API: Local Deals Listings

  Cellfire API: Electronic coupon and discount service

  CityPockets API: Daily deal and voucher aggregation service

  Deal Magic API: List of Daily Deals

  Dealinium API: Local deals aggregation service

  DealsGoRound API: Online marketplace for daily deals

  FindMeSpecials API: Find local specials and events

  foursquare Merchant API: foursquare merchant platform

  Getsocio API: Daily deal and group buying website platform

  Grocery Server API: Grocery search engine

  GroopBuy API: Local deals and group buying service

  Groupon API: Group shopping service

  Hyperpublic API: Geographic data collection service

  Lifesta API: Deal buying and selling service

  MasterCard Offers API: Discount, deals, and offers service

  MerchantCircle.com API: Online marketing service for local businesses

  Mphoria API: Deal providing service

  MyDealBag API: Local deals aggregation service

  OfferGrid API: Deal distribution service

  OWS Coupons API: Coupon and deal feed

  Paynoy API: Philippines deal service

  Peixe Urbano API: Brazilian daily deals service

  Pricecut API: Coupons, deals and price comparison service

  RapidPoints API: Rewards program services for small businesses

  RetailMeNot.com Community Ideas API: Online coupons and discounts

  SideBuy API: Local deals and coupons aggregation service

  Spotzot API: Deal targeting and loyalty program service

  Sqoot API: Local deals aggregation service

  StickyStreet API: Loyalty & Customer Management System

  The Dealmap API: Local deals

  ThinkNear API: Local marketing and advertising service

  Tippr API: Daily deals aggregation service

  US Yellow Pages API: US yellow pages telephone directory

  Vouchers.Im API: Shopping coupons and deals services

  Wishpot Coupon API: Coupon aggregation service

  Yipit API: Local coupon aggregation service

  Zixxo API: Online coupons


Sponsored by

Related ProgrammableWeb Resources

Groupon Groupon API Profile, 10 mashups

Daniel Glazman (Disruptive Innovations)Planning du Jour 1

  • matinée : piscine

    FH trempé

  • après-midi ? Re-piscine...

    Encore trempé...

  • soirée : choucroute
  • prévisions pour jour 2 : antibiotiques et grog

developerWorks: Web DevelopmentImprove your XSLT 2.0 stylesheets with types and schemas

The type-aware and schema-aware features of XSLT 2.0 can greatly assist you when you debug a stylesheet, and improve stylesheet quality and robustness in handling all input data. Learn how to use type-aware and schema-aware XSLT 2.0 during the debugging and testing process to avoid common issues with invalid paths, incorrect assumptions about data types, and cardinalities. Also, find examples of XSLT stylesheets that contain errors that would not be caught if schema-aware features were not in use, and discover how explicitly specifying types results in useful error messages.

developerWorks: Web DevelopmentIntroducing Riak, Part 2: Integrating Riak as a heavy-duty caching server for web applications

This article is Part 2 of a two-part series about Riak, a highly scalable, distributed data store written in Erlang and based on Dynamo, Amazon&aposs high availability key-value store. For websites with heavy loads, a scalable caching solution can lighten the load on the application and database servers. This particularly applies to data that is read often but updated only occasionally. Explore an in-depth example of an online betting site and how you can use Riak to implement a caching solution. You also will learn to integrate Riak with an existing website and look at other Riak features such as search and how to use it to directly serve user requests. You will need a working Riak cluster if you want to follow along with the examples. You can find the steps for setting up a cluster locally in Part 1 of this series.

ProgrammableWeb: APIsHelloFax

HelloFaxFax and signature service
Date Updated: 2012-05-14
Tags: esignature, fax, office, printing, tools

ProgrammableWeb: APIsMasterCard PayPass Online

MasterCard PayPass OnlineWallet checkout service
Date Updated: 2012-05-14
Tags: creditcard, mobile, payment

ProgrammableWeb: APIsNimbuzz

NimbuzzMobile chat, text, and voice application
Date Updated: 2012-05-14
Tags: chat, mobile, sms, telephony, text, Voice

ProgrammableWeb: APIsTravelocity

TravelocityTravel booking service
Date Updated: 2012-05-14
Tags: airlines, booking, flight, hotel, travel, vacation

ProgrammableWeb: APIsBetfair Games

Betfair GamesOnline casino-style games exchange
Date Updated: 2012-05-14
Tags: betting, gambling, games

ProgrammableWeb: APIsRaven Slingshot

Raven Slingshotprecision agriculture business tool
Date Updated: 2012-05-14
Tags: Agriculture, business, logistics, tools

ProgrammableWeb: APIsInbox25

Inbox25Email marketing campaign management service
Date Updated: 2012-05-14
Tags: campaign, email, marketing

ProgrammableWeb: APIsPapirus

PapirusTask management, collaboration, and messaging service
Date Updated: 2012-05-14
Tags: collaboration, enterprise, messaging, project-management, tasks

ProgrammableWeb: APIsMESSAGEmanager

MESSAGEmanagerSMS and email message monitoring service
Date Updated: 2012-05-14
Tags: email, monitoring, sms, tracking

ProgrammableWeb: APIsDeliveryWatch

DeliveryWatchEuropean email delivery tracking service
Date Updated: 2012-05-14
Tags: email, tracking

ProgrammableWeb: APIsSirsiDynix Symphony

SirsiDynix SymphonyLibrary automation services
Date Updated: 2012-05-14
Tags: library, managment

ProgrammableWeb: APIsDRCOG

DRCOGDenver area spatial data
Date Updated: 2012-05-14
Tags: denver, government, location

ProgrammableWeb: APIsOnline Whois Lookup

Online Whois LookupDomain Name WHOIS Service
Date Updated: 2012-05-14
Tags: domain, internet, lookup

ProgrammableWeb: APIsUN Comtrade

UN ComtradeUnited Nations Commodity Trade Statistics Database
Date Updated: 2012-05-14
Tags: database, government

Cameron MollRegret.

Kathryn Schulz, as quoted by Maria Popova:

If we have goals and dreams and we want to do our best, and if we love people and we don’t want to hurt them or lose them, we should feel pain when things go wrong. The point isn’t to live without any regrets, the point is to not hate ourselves for having them… We need to learn to love the flawed, imperfect things that we create, and to forgive ourselves for creating them. Regret doesn’t remind us that we did badly — it reminds us that we know we can do better.”

ProgrammableWeb: APIsNew Dawn ACM

New Dawn ACMCase managment software
Date Updated: 2012-05-14
Tags: government, legal, management

Amazon Web ServicesAWS Week in Review - May 7, 2012

Let's take a quick look at what happened in AWS-land last week:

Monday,  May 7
Tuesday, May 8
Wednesday, May 9
Thursday, May 10
Friday, May 11
Sunday, May 13

Stay tuned for another exciting week!

-- Jeff;

ProgrammableWebGecko Landmarks is Changing the Face of the Mapping Industry

Gecko LandmarksGecko Landmarks is working on an easier way of giving directions. The theory behind their madness is that “everyone thinks in landmarks”. They took this idea and ran with it. In fact they have run all over the world with this idea. They have now collected landmark data for every country in the world. Most of this data is now available in the Gecko Landmarks API.

Gecko Landmarks provides services that go further than landmark based mapping. They also provide personal and professional tracking services and Textor, which is an sms application that provides directions using landmarks.

The Gecko Landmarks API is designed for mobile internet companies that could use landmark data to allow their users access to easy to understand location information. The API uses HTTP calls and responses are formatted in JSON, KML, KMZ and CSV.

The Gecko Landmarks API is one of 140 locations APIs in the ProgrammableWeb directory.


Sponsored by

Related ProgrammableWeb Resources

Gecko Landmarks Gecko Landmarks API Profile

Matt Webb (Schulze & Webb)Science questions

SCIENCE QUESTIONS

  • Is it true the human ear never stops growing?
  • If the universe is infinite then why is so much of the night sky black?
  • How come the biggest corn flakes are on the top of the pack and don't sink?
  • Why do people imitate birds by whistling when birds don't have lips?
  • Is it true that dogs see in black and white?
  • Is it true that dogs die from eating chocolate?
  • Is it true that dogs can see ghosts?
  • Was there a dog jesus?
  • If there wasn't a dog jesus, if a dog dies from eating chocolate, does a dog go to heaven?
  • Or does the dead dog become a dog ghost?
  • Is this why dogs can see ghosts?
  • Because ghosts are dogs?
  • And dogs are ghosts?
  • Mountains, are they small or far away?

Amazon Web ServicesAmazon CloudFront - Support for Dynamic Content

Introduction
Amazon CloudFront's network of edge locations (currently 30, with more in the works) gives you the ability to distribute static and streaming content to your users at high speed with low latency.

Today we are introducing a set of features that, taken together, allow you to use CloudFront to serve dynamic, personalized content more quickly.

What is Dynamic Personalized Content?
As you know, content on the web is identified by a URL, or Uniform Resource Locator such as http://media.amazonwebservices.com/blog/console_cw_est_charge_service_2.png . A URL like this always identifies a unique piece of content.

A URL can also contain a query string. This takes the form of a question mark  ("?") and additional information that the server can use to personalize the request. Suppose that we had a server at www.example.com, and that can return information about a particular user by invoking a PHP script that accepts a user name as an argument, with URLs like http://www.example.com/userinfo.php?jeff or http://www.example.com/userinfo.php?tina.

Up until now, CloudFront did not use the query string as part of the key that it uses to identify the data that it stores in its edge locations.

We're changing that today, and you can now use CloudFront to speed access to your dynamic data at our current low rates, making your applications faster and more responsive, regardless of where your users are located.

With this change (and the others that I'll tell you about in a minute), Amazon CloudFront will become an even better component of your global applications. We've put together a long list of optimizations that will each increase the performance of your application on their own, but will work even better when you use them in conjunction with other AWS services such as Route 53, Amazon S3, and Amazon EC2.

Tell Me More
Ok, so here's what we've done:

Persistent TCP Connections - Establishing a TCP connection takes some time because each new connection requires a three-way handshake between the server and the client. Amazon CloudFront makes use of persistent connections to each origin for dynamic content. This obviates the connection setup time that would otherwise slow down each request. Reusing these "long-haul" connections back to the server can eliminate hundreds of milliseconds of connection setup time. The connection from the client to the CloudFront edge location is also kept open whenever possible.

Support for Multiple Origins - You can now reference multiple origins (sources of content) from a single CloudFront distribution. This means that you could, for example, serve images from Amazon S3, dynamic content from EC2, and other content from third-party sites, all from a single domain name. Being able to serve your entire site from a single domain will simplify implementation, allow the use of more relative URLs within the application, and can even get you past some cross-site scripting limitations.

Support for Query Strings - CloudFront now uses the query string as part of its cache key. This optional feature gives you the ability to cache content at the edge that is specific to a particular user, city (e.g. weather or traffic), and so forth. You can enable query string support for your entire website or for selected portions, as needed.

Variable Time-To-Live (TTL) - In many cases, dynamic content is either not cacheable or cacheable for a very short period of time, perhaps just a few seconds. In the past, CloudFront's minimum TTL was 60 minutes since all content was considered static. The new minimum TTL value is 0 seconds. If you set the TTL for a particular origin to 0, CloudFront will still cache the content from that origin. It will then make a GET request with an If-Modified-Since header, thereby giving the origin a chance to signal that CloudFront can continue to use the cached content if it hasn't changed at the origin.

Large TCP Window - We increased the initial size of CloudFront's TCP window to 10 back in February, but we didn't say anything at the time. This enhancement allows more data to be "in flight" across the wire at a given time, without the usual waiting time as the window grows from the older value of 2.

API and Management Console Support - All of the features listed above are accessible from the CloudFront APIs and the CloudFront tab of the AWS Management Console. You can now use URL patterns to exercise fine-grained control over the caching and delivery rules for different parts of your site.

Of course, all of CloudFront's existing static content delivery features will continue to work as expected. GET and HEAD requests, default root object, invalidation, private content, access logs, IAM integration, and delivery of objects compressed by the origin.

Working Together
Let's take a look at the ways that various AWS services work together to make delivery of static and dynamic content as fast, reliable, and efficient and possible (click on the diagram at right for an even better illustration):

  • From Application / Client to CloudFront - CloudFront’s request routing technology ensures that each client is connected to the nearest edge location as determined by latency measurements that CloudFront continuously takes from internet users around the world. Route 53 may be optionally used as a DNS service to create a CNAME from your custom domain name to your CloudFront distribution. Persistent connections expedite data transfer.
  • Within the CloudFront Edge Locations - Multiple levels of caching at each edge location speed access to the most frequently viewed content and reduce the need to go to your origin servers for cacheable content.
  • From Edge Location to Origin - The nature of dynamic content requires repeated back and forth calls to the origin server. CloudFront edge locations collapse multiple concurrent requests for the same object into a single request. They also maintain persistent connections to the origins (with the large window size). Connections to other parts of AWS are made over high-quality networks that are monitored by Amazon for both availability and performance. This monitoring has the beneficial side effect of keeping error rates low and window sizes high.
 

Cache Behaviors
In order to give you full control over query string support, TTL values, and origins you can now associate a set of Cache Behaviors with each of your CloudFront distributions. Each behavior includes the following elements:

  • Path Pattern - A pattern (e.g. "*.jpg") that identifies the content subject to this behavior.
  • Origin Identifier -The identifier for the origin where CloudFront should forward user requests that match this path pattern.
  • Query String - A flag to enable support for query string processing for URLs that match the path pattern.
  • Trusted Signers - Information to enable other AWS accounts to create signed URLs for this URL path pattern.
  • Protocol Policy - Either allow-all or https-only, also applied only to this path pattern.
  • MinTTL - The minimum time-to-live for content subject to this behavior.

Tool Support
Andy from CloudBerry Lab sent me a note to let me know that they have added dynamic content support to the newest free version of the CloudBerry Explorer for Amazon S3.  In Andy's words:

I'd like to let you know that CloudBerry Explorer is ready to support new CloudFront features by the time of release.  We have added the ability to manage multiple origins for a distribution, configure cache behavior for each origin based on URL path patterns and configure CloudFront to include query string parameters.

You can read more about this in their new blog post, How to configure CloudFront Dynamic Content with CloudBerry S3 Explorer .

Andy also sent some screen shots to show us how it works. The first step is to specify the Origins and CNAMEs associated with the distribution:

The next step is to specify the Path Patterns:

With the Origins and Path Patterns established, the final step is to configure the Path Patterns:

And Here You Go
Together with CloudFront's cost-effectiveness (no minimum commits or long-term contracts), these features add up to a content distribution system that is fast, powerful, and easy to use.

So, what do you think? What kinds of applications can you build with these powerful new features?

-- Jeff;

PS - Read more about this new feature in Werner's new post: Dynamic Content Support in Amazon CloudFront.

Jeff Barr (Amazon)I’m Still Alive…

I can’t believe I haven’t had time to write a single post so far this year. Here’s what I have been up to:

I have a ridiculously long TODO list, and plenty of things to write about. Stay tuned!

Daniel Glazman (Disruptive Innovations)Where is Daniel

Major lumbago and lots of pain, my back is completely blocked. Don't expect me to be fully available today, a visit to my osteopath has the highest priority right now :-(

ProgrammableWeb71 New APIs: Wishpot, Gecko and Optical Character Recognition

This week we had 71 new APIs added to our API directory including a social eCommerce platform, optical character recognition service, location information services, web marketing services and a mobile printing app. In addition we covered Involver’s launch of a groundbreaking social advertising optimization API. Below are more details on each of these new APIs.

ABBYY Cloud OCRABBYY Cloud OCR API: ABBYY is a provider of OCR, document capture, ICR and language translations services. Their Cloud OCR SDK allows developers to integrate ABBYY's optical character recognition technologies for applications such as photograph and image conversion into searchable text. With the API, users can load images to the OCR server, process with necessary recognition and export parameters, obtain the results of processing. It uses HTTP calls and responses are formatted in XML.

Across CommunicationsAcross Communications API: Across Communications is a web-based service that provides a platform and infrastructure for delivering messages from any computer connected to the Internet to a wide variety of communication devices. This allows users to integrate phone calls, faxes, SMS, ICQ, MSN, numeric pagers, and e-mail. Across Communications' SOAP-based APIs allow users to access many of their services programmatically.

ActPHPActPHP API: ACTPHP.COM LAMP is a web portal for web development centering on LAMP. The site offers a variety of learning resources categorized by Open source products, LAMP platform technologies, WEB front-end development and Website optimization SEO.The API allows users to create secure encrypted passwords and also check it against existing passwords. The API uses RESTful calls and responses are formatted in JSON.

Alau.meAlau.me API: Alau.me is an iOS App referral-tracking platform designed by The Daily Tracker. It creates a short referral link for sharing. Then it can track how many downloads resulted from the link. The API is available with an Alau.me account. It exposes the general functionality of the URL generating and referral-tracking services. It is RESTful and provides JSON responses. Documentation is publicly available in an SDK.

AVANTSSARAVANTSSAR API: Exposing services for integration into service-oriented architectures entails a variety of trust and security issues. It's important to validate both the service components and their composition into secure service architectures. The AVANTSSAR (Automated VAlidatioN of Trust and Security of Service-oriented ARchitectures) API allows users to validate service components as well as their positions in service-oriented architectures.

Bimshare UploadBimshare Upload API: Bimshare is a sharing platform for engineering and architectural models. Users can upload 3D models of their designs and view them from an angle. Bimshare is designed to work in many browsers for professionals, students, and governments. Their API exposes the functionality for generating URLs with models can be hosted. It is a RESTful API and responds in JSON.

BlipfotoBlipfoto API: Blipfoto.com is a photo-sharing website. The site is designed for photographers to develop photo journals, personal projects, and community projects. Users may also use the site as a hosting service to share their photographs with friends and family. The Blipfoto API exposes the websites information for programmatic integration with other services and app development. It runs on a RESTful protocol and returns XML responses by default but can support JSON, JSON-P, and serialized PHP as well.

BreezyBreezy API: Breezy is a mobile printing app that allows multiple devices in a mobile workforce to print from designated machines. It allows users to print widely through a network of printing partners. It works on API with a simple SDK that allows for easy integration with new devices. The API operates on SSL and uses oAuth2 for securing integration.

Caspio BridgeCaspio Bridge API: Caspio Bridge is a cloud database platform used to build interactive web applications through point-and-click wizards. Users can build web forms, databases, and other enterprise management applications without the need for programming skills. The Caspio Bridge API allows third-party integration with existing Caspio applications and other cloud services.

Charities CommissionCharities Commission API: The Charities Commission of New Zealand is a publicly available database of registered charities that serves to build public trust and confidence in the charitable sector. The Charities Commission API provides open data to large amount of charities, their annual returns and officer information. It uses RESTful OData URI querying to pull information from the database.

ChompOnChompOn API: ChompOn is a group-buying platform for publishers. It provides functionality for websites to integrate group-buying options and deals across a network of publishers. ChompOn also analyzes users’ social media for optimization. Their RESTful API exposes the platform’s structure for developers to expand publishers’ services on top of it, as well as for integration with other services. It can provide responses in JSON or XML.

CritsendCritsend API: The service provides email messaging and management, including sending messages to defined recipient lists, receiving messages, and reporting on inbound and outbound traffic. A tagging function allows categorization of messages to select them for special management. Customizable reports allow monitoring of sent messages, bounced messages, response rates, click rates, and other recipient responses.

API methods support defining and sending outbound mail, including recipient lists, message body, file attachments, etc. Methods also handle inbound mail with selective automated replies and redirects for human response. Reporting methods provide traffic summaries, statistics on recipient responses, and alerts of system events.

Da Button FactoryDa Button Factory API: Da Button Factory is an automatic hyperlink button generator. Users specify the text and parameters of their buttons, including font, size, shadow, and more. They must also specify image format output type. The Da Button Factory API exposes the entirety of the website’s functionality. Users specify the parameters of their desired buttons in the request URL.

Dubset MixSCANDubset MixSCAN API: MixSCAN is a music fingerprinting service provided by Thefuture.fm. It allows DJs to stream live mixes legally by identifying each song and attributing the correct authorship and rights. The API is a RESTful and job-based, meaning it provides a small packet of metadata before scanning the mix, and then stays open for further pinging as the mix plays. It provides responses in JSON.

eCoComa ShippingeCoComa Shipping API: The eCoComa Shipping API allows users to retrieve real-time shipping rates from major carriers. Supported shipping carriers include FedEx, UPS, United States Postal Service (USPS), and DHL/AirBorne Express (DHL). This API operates via SOAP using the XML data format.

EMBL Structure FilterEMBL Structure Filter API: The EMBL Structure Filter API is useful for evaluating the locations of candidate short regulatory sequences in proteins which need to be accessible to interact with their ligand domains. To do so, it calculates an accessibility score, secondary structure score, and total score for each match of a regular expression in the query sequence provided by the user.

EnergyIQEnergyIQ API: The service is part of efforts by the U.S. Lawrence Berkeley National Laboratory to encourage benchmarking of building energy efficiency, with clear guidelines for actions to reduce waste and improve energy performance. It is intended both to process data in a way that supports decision-making and to provide access to raw data for an application's own processing.

API methods support direct retrieval of complete datasets as well as querying data for specific building types, sizes, locations, ages, and activities housed (e.g., education, health care, retail, general office, etc.). Requests can specify energy profile details of interest, units of measurement, and chart types for output data.

Exchange Network NAASExchange Network NAAS API: The Exchange Network NAAS API provides programmatic access to security and authentication methods for Environmental Information Exchange Network users. The Exchange Network is a partnership between States, Territories, Tribes, and the U.S. Environmental Protection Agency for the exchange of environmental information. The Exchange Network NAAS API is accessible via SOAP calls using the XML data format.

Excluded Parties List SystemExcluded Parties List System API: The Excluded Parties List System (EPLS) provides information regarding entities declared ineligible to receive Federal contracts, subcontracts, or Federal assistance and benefits. This information may include names, addresses, DUNS numbers, Social Security Numbers, Employer Identification Numbers, or other Taxpayer Identification Numbers, if available and deemed appropriate and permissible to publish by the agency taking action. The EPLS API allows users to search this list programmatically.

FlashFoto Image Processing FlashFoto Image Processing API: FlashFotoInc is an image processing service. They provide a variety of software for image manipulation and detection. These functions include people detection, background removal manipulation, cropping, and more. Their REST API provides access to many of the creative functions as well as data libraries and file management systems. It handles JSON and image data formats, such as JPG and PNG.

GAMEhudGAMEhud API: GameHUD is a video game monitoring and analysis service. Game developers can use it track user statistics such as returning or new users, unique machines, and where players are having difficulty. Their API package provides access to the functionality to three different components of the GameHUD service: machines, game sessions, and game events. The API uses HTTP calls and provides JSON responses.

Gecko LandmarksGecko Landmarks API: The Landmark API allows mobile companies to use landmark data and allow their customers to consume location information in text format. It takes a user's current position expressed in latitude and longitude, and returns the closest landmarks. The API uses HTTP calls and responses are formatted in JSON, KML, KMZ and CSV.

GEMETGEMET API: The service maintains a database of multi-language thesauri, i.e. collections of terms with semantic relationships such as equivalent in meaning, broader or narrower in meaning, or associated in some other way. It provides access to each documented thesaurus and to lists of thesauri. Maintaining thesauri across different languages helps to encourage interoperability through connections between terms expressing similar concepts in different languages.

API methods support retrieval of concept lists from one or more thesauri at multiple levels, either top-most concepts, all concepts, or subsets. Methods also support submission of one concept and retrieval of all concepts from the database related to the one in the request, including those in different languages.

GoalBitGoalBit API: GoalBit is an open source video delivery platform that includes features such as live and on-demand content, premium and user-generated content, large scale and enterprise deployments and more. With the platform, users can manage all aspects of online digital media including ingestion and transcoding, storage, replication and backup, delivery and streaming, acess control and much more. The GoalBit Suit API allows users to access the content on the platform. The API uses RESTful calls and responses are formatted in JSON.

GumroadGumroad API: Gumroad provides simplified online commercial transactions for content creators. When users post their creations to Gumroad, they are then given a point of sale URL that they can then share with their networks. Gumroad supports a variety of payment methods and takes a nominal commission from the transaction. Their RESTful API exposes users’ abilities to enable, modify, or delete their links and more. It responds in JSON.

InboxFeverInboxFever API: The service enables sending and receiving email, along with a feedback function for monitoring communication success, including creation and processing of email, open rates, link clicks within the message, bounce rates, deferral, and related statistics.

API methods support sending email, including recipient address lists, subject lines, message body, etc., as well as retrieving replies and in-bound email. Reporting methods allow access to statistics like messages sent and received, open and bounce rates, link clicks, etc.

Inuvo PPC SearchInuvo PPC Search API: Inuvo offers solutions that help advertisers drive transactions via clicks, sales or leads through various marketing channels. The Inuvo Platform gives advertisers the ability to create and manage campaigns, and allows web publishers with a way to monetize their advertising inventory. Partners can use the API to customize their implementation of the platform. The PPC API lets Inuvo, through a partnership with Yahoo, to provide a sponsored search xml feed giving publishers the opportunity to make money from site or application searches. Full documentation is not publicly available.

Involver Engagement OptimizationInvolver Engagement Optimization API: Involver is a social media marketing platform used on Facebook pages and other social media platforms. The Engagement Optimization API allows marketers to optimize their ad campaigns by passing optimization data to the ad platform of their choice. With it social advertising platforms can pull page engagement data from the platform to optimize ad spend. Marketers can also optimize ad spend by integrating page management with their ad platforms using real-time response from their audiences. Public documentation is not available, developers should contact the provider for more information.

KeynoteKeynote API: Keynote is a provider of Internet and mobile cloud testing and monitoring. Companies use Keynote to know how their web sites, content, and applications perform across browsers, networks, and mobile devices.

The Keynote API lets developers integrate and automate Keynote with other systems and services. Users can use the API to access Keynote measurement data and account information programmatically. With this data, developers can build their own dashboards, create custom reports and more. The API uses RESTful calls and responses are formatted in XML and JSON.

LAITS GMU CoverageLAITS GMU Coverage API: The LAITS GMU Coverage API is a geospatial coverage retrieval service based on the OpenGIS Web Coverage Service Interface Standard. Types of data categorized as "coverages" may include satellite images, digital aerial photos, digital elevation data, and other phenomena represented by values given at each measurement point. The LAITS GMU Coverage API uses the XML data format and operates over SOAP.

LandslideCRMLandslideCRM API: LandslideCRM is a customer relationship management system for enterprises engaged in online sales. This system provides real-time, anywhere access to leads, contacts, information, reports, and more. The LandslideCRM API allows users to access many of LandslideCRM's functions programmatically via SOAP calls.

LiveDocx MailMergeLiveDocx MailMerge API: LiveDocx is a template-based document creation service. It allows developers to create word processing documents by combining user-defined Microsoft Word templates with data from disparate sources, such as XML files and databases. It is typically used to create professional, print-ready documents in DOCX, DOC, RTF, or PDF format. The LiveDocx API makes these functions available programmatically via SOAP calls.

LunapicLunapic API: Lunapic is an online photo editing processor. Users can upload images from their computers or link image URLs to add effects, crop, and more. Users can also add multiple images to one project and create an animation. The API provides total access to the website’s functionality. Users can send requests including multiple parameters and actions.

MemopalMemopal API: Memopal offers cloud based online storage that tries to make storage more efficient. The technology behind Memopal looks for the similarities across all data that users upload, store those parts and then save only the changes that are made to that data. The simple API allows users to download files from their account. The API uses RESTful calls and responses are formatted in JSON.

Microsoft Office ResearchMicrosoft Office Research API: Microsoft Office Research is a feature offered in a number of different Microsoft Office programs. This feature provides access to resources such as dictionaries, thesauri, and various internet research web sites. The Microsoft Office Research API allows registered users to access these services programmatically via SOAP API.

Microsoft SensorMap DataHubMicrosoft SensorMap DataHub API: SensorMap is a tool created by Microsoft to allow non-tech-savvy users to easily publish their data online in a format that is simple to query and is compatible with other data types. The Microsoft SensorMap DataHub API allows users to make realtime data available or to retrieve data from SensorMap.

MixRankMixRank API: MixRank is a spy tool that tracks users’ competitors’ advertisements. It provides analytics on where competitors buy traffic, which of their ads perform best, and more. The API provides access on-site information on ads, advertisers, and traffic sources. This allows developers to generate custom reports from queries to MixRank’s entire historical database. The API is currently private, but can be accessed by requesting permission from MixRank.

MokiMobility +MDMMokiMobility +MDM API: MokiMobility provides a cloud-based mobile device management (MDM) platform allowing developers to manage iOS and Android devices remotely. +MDM is a platform for developers to create single-purpose solutions for iPads and Android tablets. +MDM and it's APIs offer features such as: add/remove Wifi settings, add/remove apps, require passcodes, remote rebooting of Android tablets and more. Full documentation is not publicly available.

Molinspiration Molinspiration API: The service provides tools for cheminformatics such as generating images of molecules and modeling, processing, and manipulating molecular properties and structures. It works with SMILES notation to allow SDfile conversions and generate representations of molecules and fragments. The service can screen results based on molecular fragments and predict biological activity of compounds represented.

API methods support submission of compounds in SMILES chemical notation. Returned data include molecular characteristics needed to fully characterize and modify the compound specified in the request.

MugshotMugshot API: The experimental service processes images from uploaded files or URLs and performs simple face detection. It displays coordinates for faces present in the image along with a browser-viewable version of the image with faces highlighted.

API methods support either uploading a file or specifying a URL along with a request to the service. Returned data include coordinates of faces within the images and URLs for viewable images with faces highlighted.

NorthtextNorthtext API: The service provides basic SMS text messaging integrated with marketing and campaign management functions for targeted management of promotional contacts. Functionality includes control of messaging activity by keywords defining groups of campaigns and accounts.

API methods support specification of message content, recipients (either single or bulk delivery), and timing of message delivery. Methods also support management of contact lists and campaigns, defined by user-assigned keywords.

OCLC EprintsUKOCLC EprintsUK API: OCLC (Online Computer Library Center) is a worldwide library cooperative, the purpose of which is to establish, maintain, and operate a computerized library network. The OCLC EprintsUK API focuses on authority control. Authority control is the practice of creating and maintaining index terms for bibliographic material in the library catalog.

OfforteOfforte API: Offorte is online quotation software that lets users create online proposals and quotes. Users can extend their proposals using social media, video, photos, notices and statistics. Offorte offers an API that allows customers to access their account data. Documentation is not publicly available.

Phospho.ELMPhospho.ELM API: Phospho.ELM is a database of experimentally verified phosphorylation sites in eukaryotic proteins. The database currently contains 8,718 substrate proteins from different species, covering more than 42,500 instances which are fully linked to literature references. The Phospho.ELM API allows users to access this database programmatically.

PictaculousPictaculous API: Pictaculous is a color palette generator service from MailChimps. Users can upload PNG, GIF, or JPG image files and Pictaculous will analyze their colors to return a fitting scheme. Pictaculous's services can also be accessed from a mobile device. Their API accepts binary file data from the acceptable image format types and returns a JSON encoded hex of recommended colors as well as a URL of the received image.

PositionMonitorPositionMonitor API: PositionMonitor is an automatic page rank monitoring system. Users input their website’s URL and search keyword, and PositionMonitor will check its Google, Bing, and Yahoo ranks everyday. Over time, it will also graph the site’s movement. The API exposes the entirety of PositionMonitor’s functionality with fees for some higher level services such as research and webshots. It is a RESTful protocol that returns JSON results.

Sapo Galp FastSapo Galp Fast API: SAPO is a Portuguese Internet service provider whose main web site acts as a web portal featuring a directory of Portuguese sites. SAPO Services provides a large suite of web services and applications to developers worldwide.

The Sapo Galp Fast system allows users to accumulate point when they purchase gas at Galp stations. The points, accumlated via the Fast card, can be redeemed for services or products offered at partcipating service stations. The API lets users see what catalog items they are eligible to acquire, return customer data and return current points accumulated on a card. The API uses REST and SOAP calls and resposes are formatted in XML.

ScienceSeekerScienceSeeker API: ScienceSeeker collects articles from science blogs around the world, allows users to find the latest science news and discussion on any topic. The database includes more than 1,000 blogs and 120,000 posts. The Search API lets users query the database using a number of sorting options such as title, summary, number of recommendations, or posts talking about a specific peer-reviewed article. Developers can integrate the functionality of the API with third party sites or applications. It uses HTTP calls and responses are formatted in XML.

ScriptedScripted API: Scripted is a service that provides blog content from a pool of registered writers. Business request a blog post on any subject or length, and Scripted matches the prompt to a freelance writer to produce the content. Their RESTful API exposes most of the sites functionality, for business and for writers. It responds in JSON automatically but users can request XML instead.

Simple TextingSimple Texting API: Simple Texting offers text message marketing services. The API gives users access to much of the functionality of the platform. Functionality includes the ability to send sms messages, receive inbox messages, check keyword availability, rent and configure keywords, configure forwarding, list contacts and more. The API uses RESTful calls.

SKOS ThesaurusSKOS Thesaurus API: The SKOS (Simple Knowledge Organization System) Thesaurus API provided by Oak Ridge National Laboratory is a tool for organizing knowledge and concept relationships. Users can provide a concept and then retrieve other concepts that relate to it. This API can be accessed via SOAP calls using the XML data format.

SkyttleSkyttle API: Market Sentinel is a UK based company that provides clients with online conversation monitoring. Skyttle is Market Sentinel's text analytics engine. Skyttle extracts patters from textual data through the use of Natural Language Processing (NLP). The API can take text and turn it into constituent terms (meaningful expressions), entities (names of people, place and things), and sentiment terms. Languages supported are English, Spanish, French, German, Chinese, Swedish, Greek, Czech, Italian and Russian. The API uses RESTful calls and responses are formatted in JSON.

SMSGuysSMSGuys API: The service provides SMS text messaging in South Africa, either for bulk delivery or by individual messages. Applications can trigger delivery immediately or schedule messages for future delivery. The system maintains an address book with delivery numbers for each user account.

API methods support specification of message content and recipient, either an individual number or a list for bulk delivery. Messages can be routed for immediate delivery or scheduled for later delivery. Methods also support address book management, with contact list addition, updating, and delete.

St. Louis FREDSt. Louis FRED API: The Federal Reserve Bank of St. Louis is one of 12 regional Reserve banks in the Fed System. The Research Division of the bank looks to promote quality economic research and contribute to economic policy discussions. In support of this goal, it has created APIs that let developers access the data stored on its web site.

The FRED API lets users query the Federal Reserve Economic Data (FRED) and Archival Federal Reserve Economic Data (ALFRED) databases to retrieve specific data. The requested data can be customized according to data source, release, category, series, and other preferences. The API uses RESTful calls and responses are formatted in XML.

SvpplySvpply API: Svpply is a social marketplace for users who want to share items they like or have purchased on the web. Users add items they find online to their Svpply bookmarklet that transfers the items to the public Svpply shop page. The API is RESTful and responds in JSON. Access to collections of products, permalinks, users, and more of the shop’s functionality is exposed through it.

SwiftypeSwiftype API: Swiftype provides search engines for websites. Developers can implant it on their website to design their own site-specific search results. Swiftype has autocomplete capabilities, search analytics, and customizable results. The API is a RESTful protocol and returns results in JSON. It can provides access to many Swiftype functionalities including indexing, searching, and more. The documentation includes Ruby and Python kits. Swiftype is currently available for free in beta, but tiered price structure is to come.

Thinkudo EnlightenThinkudo Enlighten API: Thinkudo Enlighten is a platform that allows companies to better understand the Chinese market. The platform provides users with social media analytics allowing for better decision making. Its API services provide Chinese text analytics, social media search, sentiment analysis and more allowing companies to create social monitoring dashboards. The API uses RESTful calls and responses are formatted in JSON.

TracksGivingTracksGiving API: Tracksgiving is a backend platform built to track charitable giving initiatives. Its goal is to add more transparency and accountability to the giving process. The TracksGiving APIs offer functionality for tracking donation logs, orders, and giving campaigns.

University of Toronto LibrariesUniversity of Toronto Libraries API: The University of Toronto Libraries API allows users to access its Library Management System, the documentation database used for managing and describing library holdings. The University of Toronto uses the Unicorn Library Management System provided by SirsiDynix. This system is accessible via API using SOAP calls.

Unofficial OpenTableUnofficial OpenTable API: Open table is an online restaurant reservation service. With the service users can make online reservations, read restaurant reviews from other diners, and earn points towards free meals. This API allows developers to access the data from OpenTable. Data includes finding single or multiple restaurants, along with information about that restaurant and URLs where reservations can be made. The API uses RESTful calls and responses are formatted in JSON.

VästtrafikVästtrafik API: Västtrafik is a public transport company in West Sweden that is responsible for public transport services including buses, trams, ferries and trains in the County of Västra Götaland. The site provides maps, planning services, timetables and more. Västtrafik offers journey planner and departure board APIs for public transport in West Sweden. The journey planner API exposes services including locations, trip, departure board, journey detail and geometry. It uses RESTful calls and responses are formatted in XML and JSON. The site and documentation are in Swedish.

Visual DataFlex Date FunctionsVisual DataFlex Date Functions API: The Visual DataFlex Date Functions API allows users to retrieve the names of days and months in various languages. Users may also determine the default language ID for a system, or retrieve the IDs for other languages. This API can be accessed via SOAP calls using the XML data format.

Visual DataFlex ElfProefVisual DataFlex ElfProef API: The Visual DataFlex ElfProef API allows users to perform ElfProef tests. This is a CRC (cyclic redundancy check) technique used as a test in Dutch electronic payments to determine if a bank account number is valid. It does so by adding the given number's digits and dividing by 11. Valid numbers will return an integer. This API can be accessed via SOAP calls using the XML data format.

Visual DataFlex ISBN ValidationVisual DataFlex ISBN Validation API: The Visual DataFlex ISBN Validation API allows users to validate ISBN codes that are either 10 or 13 digits long. Note that this API can only determine whether an ISBN number is potentially valid, not which book it is associated with nor whether it is even in use. This API can be accessed via SOAP calls using the XML data format.

Visual DataFlex Temperature ConversionVisual DataFlex Temperature Conversion API: The Visual DataFlex Temperature Conversion API converts temperature values from Celcius to Fahrenheit and vice versa. It can also determine windchill temperatures in either Celcius or Farenheit using the Steadman formula. This API can be accessed via SOAP calls using the XML data format.

Wishpot CouponWishpot Coupon API: Wishpot is a social shopping service that lets users save and share things they find in stores or online. The items are then organized using online lists or registries that can be shared with others.

The Wishpot coupon service aggregates and normalizes a variety of coupons data sources. The Product Portals retrieve coupons from a single service. These coupons can also be queried via an API. The API uses RESTful calls and responses are formatted in XML.

Wishpot Price AlertWishpot Price Alert API: Wishpot is a social shopping service that lets users save and share things they find in stores or online. The items are then organized using online lists or registries that can be shared with others.

The Wishpot Price alert engines enables any requester to track price changes and trigger alerts on specific URLs. The API uses RESTful calls and responses are formatted in XML.

Wishpot PublisherWishpot Publisher API: Wishpot is a social shopping service that lets users save and share things they find in stores or online. The items are then organized using online lists or registries that can be shared with others.

The Wishpot publisher API enables publishers to display and monetize products in their web and mobile properties. The API provides access and optimization for all the top CPC and CPA based product providers.

Wishpot Social CommerceWishpot Social Commerce API: Wishpot is a social shopping service that lets users save and share things they find in stores or online. The items are then organized using online lists or registries that can be shared with others.

The Wishpot Social Commerce framework enables developers to build social, mobile and web commerce applications. Users can build marketplaces, specific mobile shops, dedicated apps, and more. Cart and checkout scenarios are supported through PayPal. The API uses RESTful calls and responses are formatted in XML.

WorkingPoint WorkingPoint API: WorkingPoint is a small business software solutions package. It provides a bundle of tools for accounting, invoicing, and tax and financial reporting. These tools are all accessible on business dashboard. The API exposes the invoice, bill, item, and contact functionalities. It is a RESTful API that returns JSON responses.

Yellowfin Business IntelligenceYellowfin Business Intelligence API: The service provides performance tracking, charting, and reporting services with a variety of options for displaying and formatting business intelligence to support decision making. Charts and indicators can be assembled and embedded in multiple ways to meet varying needs for documenting business activity.

API methods support specification of input data sources and display formats, including time scales and user controls for aggregating data or drilling down to greater detail. Methods allow filtering of data to compose varying views for different audiences.


Sponsored by

Shelley Powers (Burningbird)Homogeneity

homogeneity: noun

composition from like parts, elements, or characteristics

Not long ago, Molly Holzschlag tweeted an innocuous comment:

I'd love to see a woman or group of women edit the HTML5 spec. It'd make for an interesting social experiment. Certainly would be a first.

I re-tweeted her without additional comment, and that started a sequence of responses that surprised me in their vehement rejection of "positive discrimination"—as if the only way that women could possibly be involved in editing the HTML5 spec is because of the result of some kind of reverse discrimination.

Craig Grannel caught the byplay and sent me an email asking if I'd be willing to be interviewed for .net magazine, not only about the tweets, but comments I made about the W3C and sexism. Discussions on this topic have not gone well in the past, and I didn't expect any positive dialog from this interview, but as the saying goes: hope springs eternal.

The interview appeared in Call for greater diversity in web community. I thought that Craig did a decent job of taking my disjointed thoughts and punching them into a coherent whole, but I also decided to publish my full comments. There were a couple of points I made in my response that I wanted to emphasize.

> - How do you think the HTML WG would benefit from female leadership, or, at least, more women being involved? In what ways do you think the "dynamics of an all male leadership" have been negative?

I can't give you a sound bite, because there is a back story to these communications. I guess I'll have to trust that what I write will either not be used, or won't be used in such a way as to cause more problems.

Women are underrepresented in the tech field, but they're even more underrepresented in W3C working groups. Even with the recent addition of a woman to the TAG group, men in leadership positions in the W3C and in W3C working groups is disproportionate.

Unfortunately, women also underrepresented among the W3C representatives from the browser companies, which is why I believe the HTML WG is so badly skewed towards the masculine.

The group's entire focus the last few years has been on basically giving the WhatWG members representing a few of the browser companies whatever they want. The procedures put in place to demonstrate a more "egalitarian" viewpoint have actually done the opposite.

If you've followed along the effort over the years, the debacle over the longdesc attribute, an accessibility aid, is representative of how badly the change process procedures have failed.

And that might be one key to some of the problems women have had in the group. Most of the women participating in the HTML WG have come in from the accessibility movement, and the people interested in accessibility have long been recipients of disdain and derision--typically expressed outside the group, true, but impacting on group dynamics.

However, what happens in public concerns me less than what happens in private. I'm not the only woman who has received a "tsk tsk, must behave better" email from the HTML WG chairs and members. The chairs say they've sent emails of like nature to guys, too, but there's a different flavor to the communications--a patronizing tone that just sets my teeth on edge.

One time, I addressed some of my concerns in an email to www-archives--the dump hole for W3C communications--about my perceptions of sexism in the HTML WG group, and a W3C staff member wrote me to chastise--literally chastise me--telling me that he showed the communications that led to my emails to his girlfriend. and she didn't see anything sexist about them.

As if we women all think alike, like some kind of single celled organism that shows absolutely no differentiation.

Tell me something: do you think the exact same thing as all the men you know? Do you perceive writings the same way? Do you all share the exact same opinions? Then why the heck would any of you expect the same from women?

I actually did formally complain to W3C leadership about my concerns about the HTML WG and underlying, subtle sexism, and their handling of the complaint was appalling. They turned around and communicated my complaint to the HTML WG co-chairs, one of whom sent me a blistering email in response. It was impossible to work with the group after that, and I've had little respect for the W3C management since.

Now I'm greatly concerned, because I'm seeing the same disdain and patronizing attitude directed to an HTML WG member who has been with the group for years, fighting for accessibility. I've watched her become disillusioned, and go from being an active, engaged member, to someone who rarely participates at all.

It's not right.

Can more women in leadership help? I honestly can't say whether we could or not, but I'd like to think it would help to have more women in positions of responsibility and authority. At a minimum, we couldn't make it any worse that what it is. Frankly, the group is too homogeneous. It really doesn't represent the broader Web community.

> - You said: "How about encouraging more women to get involved, rather than chasing out most who were?" What did you mean by that? (Note: from some of the responses in your feed, I can certainly infer, but it'd be good to get your thinking on this.)

I don't want to speak for other women, I can only speak for myself.

I left the HTML WG group. I just couldn't handle the emails telling me to behave, the chastisement, as if I'm a little girl and they're all Daddy. I have better things to do with my time than be condescended to.

What's been frustrating about my decision to leave, though, is people telling me now that "If you don't like what's happening with HTML5, get involved", when I was involved at one time, and had to leave.

What's even more frustrating is an attitude I see from many men and women involved in technology, especially as it relates to the W3C: unless a guy points out that sexism exists, it doesn't exist.

Sexism isn't always overt. It isn't always some guy showing a slide with a naked woman's bum during a tech conference. Sexism can be as much slow erosion as sudden explosion. Women feeling as if we're ignored, that we're patronized, that our contributions weigh less--sexism is as much about subtle perception, as it is about blatant acts.

In my opinion, the W3C, in general, and the HTML WG, in particular, have problems with sexism.

And every time I say this, I get slammed. So here we go again.

Ian Devlin wrote what I felt was a disappointing response to the .net magazine article.

What I did have issue with however, was what I saw as the implied notion that a woman would be better at doing the job of HTML5 editor simply because of her sex.

Isn’t that just as bad as saying that a man would be better at the task at hand simply because he is a man? Such a comment would, quite correctly, cause uproar. Granted the implication probably wasn’t intended, but I think that it was this perceived attitude that started the debate.

No one ever implied that women would do better just because we're women. This was never said: in Molly's comment, in my responses, or in the article. The real focus in all of the remarks was on the lack of diversity in the W3C leadership, and among the working groups. Not only are women not well represented, but even among the men there is little diversity. Those who have defined the HTML5 spec display a remarkable similarity in thought and opinion, matched only by an almost complete lack of empathy.

Could women help? Good lord, we couldn't make matters worse.

There's a second component to my comments, though, that I wanted to re-emphasize: that sexism isn't always overt acts. In fact, I don't really care about overt sexism. Acts of this nature tend to self-implode, and they don't need me to light a match. No, it's the subtle form of sexism that bothers me. As I wrote in the interview response, subtle forms of sexism erode over time. There is rarely anything anyone can point to and say, "Aha! Sexism!" But in the back of you mind, there exists a feeling that no matter what you do or say, you won't be heard, your concerns will not be addressed, your input really isn't welcome.

You just kind of drift away.

Even now, when we have a fresh opportunity to discuss the issues, to address the lack of diversity in the W3C, our concerns are rejected as "positive discrimination". That's the same as saying how dare we hit that fist with our face.

Just as an aside: I did volunteer to be a co-editor of HTML5, back in 2008, I believe it was. My offer was rejected.

ProgrammableWeb16 APIs Used in 7 Days: Facebook, New York Times and Klout

This past week 9 new mashups were added to our mashup directory and 16 different APIs were used to build them. Some of the newer or less frequently seen APIs include 500px, Direct Textbook, Google Street View Image and HasOffers. The most often used APIs this week are Facebook, Flickr and Twitter. And the most commonly used types of APIs were Photos (3 APIs, 4 mashups), Social (3 APIs, 8 mashups) and Internet (2 APIs, 3 mashups). The list below shows which APIs were used by which mashups:

500px 500px used in Picomp'it

Amazon EC2 Amazon EC2 used in BookBargain, Moment

Basecamp Basecamp used in SimplySubscribe.Me

Direct Textbook Direct Textbook used in BookBargain

Facebook Facebook used in BookBargain, Picomp'it, SimplySubscribe.Me

Flickr Flickr used in Picomp'it, Statsr

foursquare foursquare used in SimplySubscribe.Me

Google Gmail OAuth Google Gmail OAuth used in SimplySubscribe.Me

Google Maps Google Maps used in localiz.me

Google Spreadsheets Google Spreadsheets used in Leaderboarded

Google Street View Image Google Street View Image used in localiz.me

HasOffers HasOffers used in hasLockers

Klout Klout used in Leaderboarded

MailChimp MailChimp used in SimplySubscribe.Me

New York Times Best Sellers New York Times Best Sellers used in BookBargain

Twitter Twitter used in BookBargain, Leaderboarded, Malva Weather, Moment

Mashups of the day:
And each day there is one mashup selected to be Mashup of the Day. Here are last week’s winners:

 BookBargain

 hasLockers

 Leaderboarded

 localiz.me

 Malva Weather

 Moment

 SimplySubscribe.Me


Sponsored by

ProgrammableWeb: APIsSvpply

SvpplySocial shopping discovery website
Date Updated: 2012-05-11
Tags: ecommerce, shopping, social

ProgrammableWeb: APIsYellowfin Business Intelligence

Yellowfin Business IntelligenceBusiness intelligence reporting and dashboarding service
Date Updated: 2012-05-11
Tags: analytics, charts, dashboard, enterprise

Footnotes

Updated: .  Michael(tm) Smith <mike@w3.org>