ProgrammableWebBuild Fully Functional Apple Watch Apps with WatchBench

Alpha Software has released a product for quickly building small apps for the Apple Watch called Alpha WatchBench. WatchBench is free and soon to be available in the App Store. It runs entirely on the iPhone; no external computer is needed. The tool was created by Alpha Software’s CTO, a man you know of but might not know by name.

ProgrammableWebMuleSoft Announces Major New Release of Anypoint Platform

This article is a company-provided press release and ProgrammableWeb cannot vouch for the accuracy of the statements within. If you have questions regarding the information below, please contact the company that issued the press release.

Jeremy Keith (Adactio)100 words 067

There’s something to be said for focusing on one particular kind of work. There’s a mastery that only comes with repeated practice.

On the other hand, I have to tendency to get bored of doing the same thing. Repetition is good for skill-building but it has the downside of being …repetitive.

Today Charlotte and I took part in a client workshop, getting right down to the nitty-gritty of cataloging interface elements at a granular level. Then I published a long rambling post on the nature of the web.

From sea level to the stratosphere—it’s good to mix thing up.

ProgrammableWebTemboo API Platform Puts Industrial IoT In Reach of Devs

IoT platform Temboo has partnered with device manufacturers to embed their Internet of Things (IoT) SDKs into new device lines, including the recently released ARTIK chips from Samsung<spa></spa>

ProgrammableWebAndroid M Preview Means New Tools for Developers

At Google I/O today the company announced a developer preview for Android M. Google hopes developers will take a look at the pre-release operating system and provide feedback ahead of the platform's general release in the fall. In order to target apps for Android M, Google also updated many of the developer tools for Android. 

ProgrammableWebDaily API RoundUp: Mezzanine, GoDaddy, Wunderlist Libraries

Every day, the ProgrammableWeb team is busy, updating its three primary directories for APIs, clients (language-specific libraries or SDKs for consuming or providing APIs), and source code samples.

ProgrammableWebTwitter Adds Quoted Tweet Data to APIs

Twitter has updated its APIs to include additional data associated with quoted tweets. Earlier this year, Twitter revised its Quote Tweet functionality, making it possible for users to comment on an existing tweet by embedding it as it appeared originally.

ProgrammableWebEvernote Releases v2.0 of Android SDK at Google I/O

To coincide with Google I/O today, Evernote has released version 2.0 of its Evernote for Android SDK.

ProgrammableWebPostman API Development Platform Eases API Construction

ProgrammableWeb first covered Postman in a product review a mere quarter after the company's launch. Since the review, 15 months have passed, and Postman has made some major strides toward its goals of customer attainment and innovation within the API economy.

Jeremy Keith (Adactio)Web! What is it good for?

I have a blind spot. It’s the web.

I just can’t get excited about the prospect of building something for any particular operating system, be it desktop or mobile. I think about the potential lifespan of what would be built and end up asking myself “why bother?” If something isn’t on the web—and of the web—I find it hard to get excited about it. I’m somewhat jealous of people who can get equally excited about the web, native, hardware, print …in my mind, if it hasn’t got a URL, it’s missing some vital spark.

I know that this is a problem, but I can’t help it. At the very least, I have enough presence of mind to recognise it as being my problem.

Given these unreasonable feelings of attachment towards the web, you might expect me to wish it to become the one technology to rule them all. But I’ve never felt that any such victory condition would make sense. If anything, I’ve always been grateful for alternative avenues of experimentation and expression.

When Flash was a thriving ecosystem for artists to push the boundaries of what was possible to deliver to a web browser, I never felt threatened by it. I never wished for web technologies to emulate those creations. Don’t get me wrong: I’m happy that we’ve got nice smooth animations in CSS, but I never thought the lack of animation was crippling the web’s potential.

Now we have native technologies that can do more than the web can do. iOS and Android apps can access device APIs that web browsers can’t (yet). And, once again, while I look forward to the day that websites will be able to do all the things that native apps can do today, I don’t think that the lack of those capabilities is dooming the web to irrelevance.

There will always be some alternative that is technologically more advanced than the web. First there were CD-ROMs. Then we had Flash. Now we have native apps. Each one of those platforms offered more power and functionality than you could get from a web browser. And yet the web persists. That’s because none of the individual creations made with those technologies could compete with the collective power of all of the web, hyperlinked together. A single native app will “beat” a single website every time …but an app store pales when compared to the incredible reach and scope of the entire World Wide Web.

The web will always be lagging behind some other technology. I’m okay with that. If anything, I see these other technologies as the research and development arm of the web. CD-ROMs, Flash, and now native apps show us what authors want to be able to do on the web. Slowly but surely, those abilities start becoming available in web browsers.

The pace of this standardisation can seem infuriatingly slow. Sometimes it is too slow. But it’s important that we get it right—the web should hold itself to a higher standard. And so the web plays the tortoise while other technologies race ahead as the hare.

Like I said, I’m okay with that. I’m okay with the web not being as advanced as some other technology stack at any particular moment. I can wait.

In fact, as PPK points out, we could do real damage to the web by attempting to make it mimic some platform that’s currently in the ascendent. I disagree with his framing of it as a battle—rather than conceding defeat, I see it more like waiting out a siege—but I agree completely with this assessment:

The web cannot emulate native perfectly, and it never will.

If we accept that, then we can play to the web’s strengths (while at the same time, playing a slow game of catch-up behind the scenes). The danger comes when we try to emulate the capabilities of something that isn’t the web:

Emulating native leads to bad UX (or, at least, a UX that’s clearly a sub-optimal copy of native UX).

Whenever a website tries to emulate something from an operating system—be it desktop or mobile—the result is invariably something that gets really, really close …but falls just a little bit short. It feels like entering an uncanny valley of interaction design.

Frank sums this up nicely:

I think you make what I call “bicycle bear websites.” Why? Because my response to both is the same.

“Listen bub,” I say, “it is very impressive that you can teach a bear to ride a bicycle, and it is fascinating and novel. But perhaps it’s cruel? Because that’s not what bears are supposed to do. And look, pal, that bear will never actually be good at riding a bicycle.”

This is how I feel about so many of the fancy websites I see. “It is fascinating that you can do that, but it’s really not what a website is supposed to do.”

Enough is enough, says PPK:

It’s time to recognise that this is the wrong approach. We shouldn’t try to compete with native apps in terms set by the native apps. Instead, we should concentrate on the unique web selling points: its reach, which, more or less by definition, encompasses all native platforms, URLs, which are fantastically useful and don’t work in a native environment, and its hassle-free quality.

This is something that Cennydd talked about recently on an episode of the Design Details podcast. The web, he argues, is great for the sharing of information, but not so great for applications.

<object data="" height="24" type="application/x-shockwave-flash" width="290"><param name="movie" value=""><param name="wmode" value="transparent"><audio controls="controls" preload="none" src="">22: Poor Man’s Pokemon (feat. Cennydd Bowles) – The Design Details Podcast on Huffduffer</audio></object>

I think PPK, Cennydd, and I are all in broad agreement, but we almost certainly differ in the details. PPK, for example, argues that maybe news sites should be native apps instead, but for me, those are exactly the kind of sites that benefit from belonging to no particular platform. And when Cennydd talks about applications on the web, it raises the whole issue of what constitutes a web app anyway. If we’re talking about having access to device APIs—cameras, microphones, accelerometers—then yes, native is the way to go. But if we’re talking about interface elements and motion design, then I think the web can hold its own …sometimes.

Of course not every web browser can match the capabilities of a native app—that’s why it’s so important to approach web development through the lens of progressive enhancement rather than treating it like software development no different than that of native platforms. The web is not a platform—that’s the whole point of the web; it’s cross-platform. As Baldur put it:

Treating the web like another app platform makes sense if app platforms are all you’re used to. But doing so means losing the reach, adaptability, and flexibility that makes the web peerless in both the modern media and software industries.

The price we pay for that incredible cross-platform reach is that features on the web will always be lagging behind, and even when do they do arrive, they won’t be available in all web browsers.

To paraphrase William Gibson: capabilities on the web will always be here, but they will never be evenly distributed.

But let’s take a step back from the surface-level differences between web and native. Just as happened with CD-ROMs and Flash, the web is catching up with native when it comes to motion design, visual feedback, and gestures like swiping and dragging. I don’t think those are where the fundamental differences lie. I don’t even think the fundamental differences lie in accessing device APIs like cameras, microphones, and offline storage—the web is (slowly) catching up in those areas too.

What if the fundamental differences lie deeper than the technical implementation? What if the web is suited to some things more than others, not because of technical limitations, but because of philosophical mismatches?

The web was born at CERN, an amazing environment that’s free of many of the economic and hierarchical pressures that shape technology decisions elsewhere. The web’s heritage as a hypertext document sharing system for pure scientific research is often treated as a handicap, something that must be overcome in this age of applications and monetisation. But I see this heritage as a feature, not a bug. It promotes ideals of universal access above individual convenience, creation above consumption, and sharing above financial gain.

In yet another great article by Baldur, called The new age of HTML: the web is being torn apart, he opens with this:

For web development to grow as a craft and as an industry, we have to follow the money. Without money the craft becomes a hobby and unmaintained software begins to rot.

But I think there’s a danger here. If we allow the web to be led by money-making, we may end up changing the fundamental nature of the web, and not for the better.

Now, personally, I believe that it’s entirely possible to run a profitable business on the web. There are plenty of them out there. But suppose we allow that other avenues are more profitable. Let’s assume that there’s more friction in making money on the web than there is in, say, making money on iOS (or Android, or Facebook, or some other monolithic stack). If that were the case …would that be so bad?

Suppose, to use PPK’s phrase, we “concede defeat” to Apple, Google, Microsoft, and Facebook. When you think about it, it makes sense that platforms borne from profit-driven companies are going to be better at generating profit than something created by a bunch of idealistic scientists trying to improve the knowledge of the human race. Suppose we acknowledged that the web isn’t that well-suited to capitalism.

I think I’d be okay with that.

Would the web become little more than a hobbyist’s playground? A place for amateurs rather than professional businesses?


I’d be okay with that too.

Y’see, what attracted me to the web—to the point where I have this blind spot—wasn’t the opportunity to make money. What attracted me to the web was its remarkable ability to allow anyone to share anything, not just for the here and now, but for the future too.

If you’ve been reading my journal or following my links for any time, you’ll be aware that two of my biggest interests are progressive enhancement and digital preservation. In my mind, these two things are closely intertwingled.

For me, progressive enhancement is a means of practicing universal design, a way of providing access to as many people as possible. That includes access across time, hence the crossover with digital preservation. I’ve noticed again and again that what’s good for accessibility is also good for longevity, and visa-versa.

Bret Victor writes:

Whenever the ephemerality of the web is mentioned, two opposing responses tend to surface. Some people see the web as a conversational medium, and consider ephemerality to be a virtue. And some people see the web as a publication medium, and want to build a “permanent web” where nothing can ever disappear.

I don’t want a web where “nothing can ever disappear” but I also don’t want the default lifespan of a resource on the web to be ephemeral. I think that whoever published that resource should get to decide how long or short its lifespan is. The problem, as Maciej points out, is in the mismatch of expectations:

I’ve come to believe that a lot of what’s wrong with the Internet has to do with memory. The Internet somehow contrives to remember too much and too little at the same time, and it maps poorly on our concepts of how memory should work.

I completely agree with Bret’s woeful assessment of the web when it comes to link rot:

It is this common record of public thought — the “great conversation” — whose stability and persistence is crucial, both for us alive today and for those who will come after.

I believe we can and should do better. But I completely and utterly disagree with him when he says:

Photos from your friend’s party are not part of the common record.

Nor are most casual conversations. Nor are search histories, commercial transactions, “friend networks”, or most things that might be labeled “personal data”. These are not deliberate publications like a bound book; they are not intended to be lasting contributions to the public discourse.

We can agree when it comes to search histories and commercial transactions, but it makes no sense to lump those in with the ordinary plenty that I’ve written about before:

My words might not be as important as the great works of print that have survived thus far, but because they are digital, and because they are online, they can and should be preserved …along with all the millions of other words by millions of other historical nobodies like me out there on the web.

For me, this lies at the heart of what the web does. The web removes the need for tastemakers who get to decide what gets published. The web removes the need for gatekeepers who get to decide what gets saved.

Other avenues of expressions will always be more powerful than the web in the short term: CD-ROMs, Flash, and now native. But they all come with gatekeepers. The collective output of the human race—from the most important scholarly papers to the most trivial blog post—is too important to put in the hands of the gatekeepers of today who may not even be around tomorrow: Apple, Google, Microsoft, et al.

The web has no gatekeepers. The web has no quality control. The web is a mess. The web is for everyone.

I have a blind spot. It’s the web.

ProgrammableWebProgrammableWeb Takes Photos Of Google&#039;s 1959 Code The Road Bus

To celebrate the 10 year anniversary of the Google Maps API, Google has decided to hit the road with a tricked-out 1959 General Motors bus that will take members of the Maps team across the country from San Francisco (the site of Google's annual developer event, Google I/O) to Disney World in Orlando, Florida.

Amazon Web ServicesEC2 Instance History

I received an interesting tweet last night. Steve Goldsmith of ITOC Australia (an APN Advanced Consulting Partner and recipient of an AWS Customer Obsession award earlier this year) asked me if I had a historical timeline of Amazon Elastic Compute Cloud (EC2) instance launches:

I didn’t have one, but it seemed like a worthwhile thing to have and so I spent a few minutes putting the following list together:


ProgrammableWeb: APIsDocker Hub Accounts

The Docker Hub Accounts API facilitates Docker user accounts management. The API uses GET/POST methods with JSON over HTTP. Requests are authenticated with either HTTP Basic or OAuth Bearer Token. Use Docker Hub Accounts to update a user and add, list, or delete an email for a user.
Date Updated: 2015-05-28
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsDocker Registry

The Docker Registry REST API stores the images and graph for a set of repositories. Registry uses HTTP PUT/GET methods with JSON calls/returns. Docker Registry does not contain any user accounts data, does not have a local database, and supports multiple storage backends. Use the API to retrieve image layers, get image ancestry, or list repository tags.
Date Updated: 2015-05-28
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsDocker Swarm

Docker is a cloud-based application development platform for building distributed apps, sharing repositories, and automating workflows. Docker Swarm is native clustering for Docker and will turn a pool of Docker hosts into a single, virtual host. Swarm requires Docker 1.4.0 or later and is compatible with Docker Remote API. Developers should note that Swarm is currently in beta and will likely change.
Date Updated: 2015-05-28
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsDocker Remote

Docker is a open application development platform for sharing apps and repositories and automating development workflows. Use the Docker Remote API to access Docker API features like creating a container, searching images, retrieving container logs, or building an image from a Dockerfile. This mostly RESTful API uses JSON for requests/returns and GET/POST methods over HTTP. The Remote API is currently in version 1.18. See the project home page for more detailed information on available API methods.
Date Updated: 2015-05-28
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsDocker Hub

Docker Hub is an open application development platform for sharing apps and repositories, and automating workflows. The Docker Hub API uses HTTP Basic Auth over SSL and JSON for PUT/DELETE requests and returns. In conjunction with Docker Engine, a lightweight runtime tool, Docker Hub facilitates the development of portable apps that can be built with any toolchain and used on any machine. Use the RESTful API to create repositories, manage repository libraries, and update repository library images.
Date Updated: 2015-05-28
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsShapeShift

ShapeShift is a digital currency exchange app. The API uses GET and POST requests over HTTPS with JSON. Use ShapeShift to complete a transaction, request an email receipt, see a list of recent transactions, or return a list of supported coins.
Date Updated: 2015-05-28
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsJust SMS Nigeria

The Just SMS Nigeria API allows developers to integrate the ability to send bulk SMS into their own websites and applications by connecting with the Just SMS messaging gateway. Just SMS is an SMS platform and a subsidiary of TLC Web Solutions, a web design and development firm based in Nigeria.
Date Updated: 2015-05-28
Tags: [field_primary_category], [field_secondary_categories]


US Zip Code, County, City, and State Boundaries API: A simple API that will allow you to integrate multiple GeoJson US boundaries results into your apps and systems.
Date Updated: 2015-05-28
Tags: [field_primary_category], [field_secondary_categories]

Jeremy Keith (Adactio)100 words 066

Today, as part of a crack Clearleft team, I travelled to Leamington Spa. That’s Royal Leamington Spa to you.

This seems like a perfectly pleasant town. Fortunately for us, our visit coincides with a pub quiz down at the local hipster bar—the one serving Mexican food with a cajun twist. Naturally we joined in the quizzing fun.

We thought we were being sensible by jokering the “science and nature” round, but it turned out we should’ve jokered “puppets and dummies” or “musicians in the movies”—a clean sweep! Who could’ve foretold that Andy Budd’s favourite film, Freejack, would feature?

ProgrammableWebWatch the Livestream from Google I/O

Google I/O kicked off on Thursday and we were shown a number of interesting product announcements. Included was news about the developer preview for Android M, an overhaul for Android Wear, the introduction of Brillo and Weave as Google makes a play for the Internet of Things, the release of Android Pay and much more.

ProgrammableWebDaily API RoundUp: Knowvent, Facebook Graph API Libraries

Every day, the ProgrammableWeb team is busy, updating its three primary directories for APIs, clients (language-specific libraries or SDKs for consuming or providing APIs), and source code samples.

ProgrammableWebTwenty Years of Java and Beyond

This article was prepared by a guest contributor to ProgrammableWeb. The opinions expressed in this article are the author's own and do not necessarily reflect the view of ProgrammableWeb or its editorial staff.

Amazon Web ServicesNow Available – Version 3 of the AWS SDK for PHP

Back in the spring of 2002 I wrote a simple PHP wrapper around the then-new Amazon E-Commerce Service. This little wrapper caught Amazon’s attention and before I knew it I was a member of the Amazon Associates team! Later, when I decided to write a book to show people how to use AWS, PHP was the natural choice, along with the AWS SDK for PHP (formerly CloudFusion (formerly Tarzan)). Sadly, my coding skills have atrophied somewhat since then, but I still remain optimistic that I’ll be able to revive them at some point.

Today I am happy to announce that version 3 of the AWS SDK for PHP, a product that resonates with two significant themes in my professional experience, is now available via Composer and on GitHub.

This version of the SDK was built in response to the feedback that we have received on version 2 over the last couple of years. It upgrades the dependencies, improves performance, and was built in accord with the latest PHP standards.

You can now make asynchronous calls to AWS. The calls return Promises; after you issue the call you can wait for it to complete and then access the result. You can chain multiple calls together to create an asynchronous workflow. Promises are also used to implement higher-level abstractions in the SDK including Paginators, Waiters, and the S3 MultipartUploader.

To learn more, read Version 3 of the AWS SDK for PHP is Released on the AWS PHP Developer Blog.


ProgrammableWebApple Watch To Support Native Apps With New SDK

Apple Watch SDK Supports Native Apps


Apple will preview a new SDK at WWDC that will let developers create native apps for the Apple Watch.

Amazon Web ServicesSimplified Multiple Object Invalidation for Amazon CloudFront

Many AWS customers use Amazon CloudFront to deliver content to end users at high data transfer speed with low latency. Because CloudFront has no minimum usage commitment, it is a good fit for web properties of any size.

Each CloudFront edge location caches recently used objects in order to deliver dynamic, static, streaming, or interactive content as expeditiously as possible. CloudFront also allows you to invalidate (remove) an object from the cache before it expires. For example, if you upload a new CSS file for your website, invalidating the file will ensure that your users will see the update the next time they visit the site.

Multiple Object Invalidation
We recently enhanced CloudFront’s invalidation feature by adding support for wildcard invalidations. You can now add a “*” character to the end of an invalidation path to remove all objects that match the path. Wildcard invalidations take no more time than those for individual objects, and can invalidate an unlimited number of objects.

Wildcard invalidation can be of value in many different situations. If you are deploying a new version of your website or web application, you can invalidate the existing content using “/*”. If your content is organized by user name, you can invalidate it using a pattern that looks like “/users/jeffbarr-data”. As you can imagine, wildcard invalidation is often easier to implement. It can also be more cost-effective (see Cost Savings, below).

You can access this feature from the AWS Management Console, AWS Command Line Interface (CLI), AWS Tools for Windows PowerShell, and via CloudFront’s Invalidation API. Here is how you would invalidate multiple objects from the Console:

We also enhanced the limits on invalidation, so you now can have up to 3000 invalidation objects per distribution in progress at one time. This can be one invalidation request for up to 3,000 objects, up to 3,000 requests for one object each, or any other combination that doesn’t exceed 3,000 objects. In addition, you can submit up to 15 invalidation paths that include the “*” wildcard character at one time per distribution. For information about limits on invalidations, see Invalidation Limits.

Cost Savings
You can invalidate up to 1,000 paths per month at no charge when you use CloudFront (each additional invalidation path costs $0.005). An invalidation path that includes the “*” character incurs the same charge as one that does not. You pay for one invalidation path, even if the path matches hundreds or thousands of objects. See the CloudFront Pricing page for more information.

Office Hours
The CloudFront team is planning to demonstrate this new feature at the next CloudFront Office Hour (June 17th, 2015).



ProgrammableWebHow to Tip Bitcoin With a Single Command

This article was prepared by a guest contributor to ProgrammableWeb. The opinions expressed in this article are the author's own and do not necessarily reflect the view of ProgrammableWeb or its editorial staff.

ProgrammableWebGoogle I/O 2015 Features Android Pay

Google I/O 2015 lifts off Thursday at San Francisco's Moscone Center. Per usual, Google will make major announcements during its annual developer conference. Prime on this year's agenda, Google will release Android Pay. Originally announced at Mobile World Congress, Android Pay constitutes a payments API that allows developers to add mobile payments to apps.

ProgrammableWebMapsense Developer Platform Provides Mapping Big Data Analytics

Mapsense, a startup specializing in tools and services for understanding big location data sets, has announced the launch of Mapsense Developer, a suite of tools that developers can use to build location-based applications as well as analyze and visualize massive data sets of location-based information.

Uche & Chimezie OgbujiSketch notes on pulling data from Libhub pages

My company's recent Libhub grand experiment is all about making library catalog information available and harvestable by for machines. The primary machines we have in mind are the search engine Web crawlers who have become the all-powerful arbiters of who can find what on the Web. But that doesn't mean others don't get in on the fun. Anyone with a yen to hack can pull linked data to their hearts content from Libhub pages. Here are a few notes to maybe get folks started.

First of all, you can preview the embedded linked data by using a tool such as the handy Green Turtle Google Chrome extension. Here is a screenshot based on the page for my book, Ndewo, Colorado.

You can pull this RDFa with your favorite tool. In the example snippet below I used rdflib in Python to show an n3 representation (similar to RDF Turtle) of the data embedded in the page.

<script src=""></script>

ProgrammableWeb: APIsMezzanine

The Mezzanine API is a RESTful API that helps developers create custom content types, programmatically interact with the search engine, and customize the way the search engine accesses different types of content. Mezzanine is an open source content management platform, built using the Django framework. It provides a simple, yet also extensible architecture, and is supported by a diverse and active community that utilizes default functionality providing a more integrated and efficient platform.
Date Updated: 2015-05-27
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsGoDaddy Cloud Server

The GoDaddy Cloud Server API is an API for developers created by developers. It is currently in Beta status and is to be a simple API with fast provisioning and KVM Virtualization. The goal of this new GoDaddy Cloud Server API is to bring better cloud hosting solutions, with improved speed and scalability for developer projects and applications.
Date Updated: 2015-05-27
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsDexterity GIVE

Dexterity Ventures Inc. offers an API called the DVI GIVE_api. It is a free API created for website and application developers, and allows for the facilitation of giving and adding social good into projects. With the Give_api, users have the ability to search and access information about charities (such as financial details, locations, types, projects, and other facets) and make donations.
Date Updated: 2015-05-27
Tags: [field_primary_category], [field_secondary_categories]

Jeremy Keith (Adactio)100 words 065

As a conference organiser, it’s easy to see yourself as being in a position of weakness. You’re hustling hard to put on a great event, but you are a victim to the whims of the ticket-buying public. So you might well be tempted to make whatever compromises are necessary just to break even.

But the truth is that, as a conference organiser, you are in a position of power. You decide which voices will be amplified. You might think that your conference line-up needs to reflect the current state of the world. But it could also highlight a better world.

ProgrammableWebDaily API RoundUp: Typeform I/O, CallDirek, Weather Underground

Every day, the ProgrammableWeb team is busy, updating its three primary directories for APIs, clients (language-specific libraries or SDKs for consuming or providing APIs), and source code samples.

ProgrammableWebWhy Micro Moment Based Workflows Should Inform Your API Strategy

At Microsoft’s annual Build conference this year, CEO Satya Nadella announced the company was going all in on the concept of an app-led platform. Developers saw demos such as ordering an Uber straight from your Outlook app on your iPhone based on your calendar appointments.

ProgrammableWebNASA Launches API Portal to Encourage Use of Data Sets

NASA has launched an API portal as part of its ongoing attempts to encourage reuse of the significant data sets available from the U.S. space agency’s missions and other ongoing projects.

Amazon Web ServicesAWS Week in Review – May 18, 2015

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

Monday, May 18
Tuesday, May 19
Wednesday, May 20
Thursday, May 21
Friday, May 22

Upcoming Events

Upcoming Events at the AWS Loft (San Francisco)

  • May 28 – Build Your Own Website: Making Web Development Fun and Easy.
  • June 1 – AWS Bootcamp Getting Started with AWS (10 AM – 6 PM).
  • June 2 – AWS Security Day (Noon – 3 PM).
  • June 4 – AWS Pop-up Loft Pitch Event and Pre-Summer Party (6 PM – 9 PM).
  • June 8 – Advanced AWS Bootcamp: Taking AWS Operations to the Next Level (10 AM – 6 PM).
  • June 9 – Cloud Innovation for Electronics, Semiconductor, and IoT (2 PM – 6 PM).
  • June 10 – AWS Educate Reception and Networking Event: Getting Started with Amazon’s Grants-Based Program and Free Tools for Students and Educators (6 PM – 9 PM).
  • June 11  – Big Data Analytics Loft Talks (6 – 8 PM).
  • June 15 – Amazon EC2 Container Service Deep Dive (1 – 2 PM).
  • June 16 – The Power of Logs and Machine Learning – Hosted by Splunk (11:30 AM – 4:30 PM).
  • June 16 -Fireside Chat with True Innovators, Jeremy Edberg (Reddit/Netflix) and Valentino Volonghi (Adroll) hosted by Dr. Werner Vogels CTO (6 – 9 PM).
  • June 17 – Hadoop Essentials with Cloudera (Noon – 4:30 PM).
  • June 18 – Behind the Scenes with Bugsnag: Responsive Infrastructure with AutoScaling (6 PM – 7:30 PM).
  • June 23 – Behind the Scenes with SignalFx-Operating a SaaS product at Scale with Microservices, DevOps, and Self-Service Monitoring ( 6 PM – 7:30 PM).
  • June 26 – AWS Pop-up Loft Hack Series Sponsored by Intel (10 AM – 6 PM).

Upcoming Events at the AWS Loft (New York)

  • June 25 – Chef Bootcamp (10 AM – 6 PM).
  • June 25 – Oscar Health (6:30 PM).
  • June 26 – AWS Bootcamp (10 AM – 6 PM).
  • June 29 – Chartbeat (6:30 PM).
  • June 30 – Picking the Right Tool for the Job (HTML5 vs. Unity) (Noon – 1 PM).
  • June 30 – So You Want to Build a Mobile Game? (1 PM – 4:30 PM).
  • June 30 – Buzzfeed (6:30 PM).
  • July 6 – AWS Bootcamp (10 AM – 6 PM).
  • July 7 – Dr. Werner Vogels (Amazon CTO) + Startup Founders (6:30 PM).
  • July 7 – AWS Bootcamp (10 AM – 6 PM).
  • July 8 – Sumo Logic Panel and Networking Event (6:30 PM).
  • July 9- AWS Activate Social Event (7:00 PM – 10 PM).
  • July 10 – Getting Started with Amazon EMR (Noon – 1 PM).
  • July 10 – Amazon EMR Deep Dive (1 PM – 2 PM).
  • July 10 – How to Build ETL Workflows Using AWS Data Pipeline and EMR (2 – 3 PM).
  • July 14 – Chef Bootcamp (10 AM – 6 PM).
  • July 15 – Chef Bootcamp (10 AM – 6 PM).
  • July 16 – Science Logic (11 AM – Noon).
  • July 16 – Intel Lustre (4 PM – 5 PM).
  • July 17 – Chef Bootcamp (10 AM – 6 PM).
  • July 22 – Mashery (11 AM – 3 PM).
  • July 23 – An Evening with Chef (6:30 PM).
  • July 29 – (6:30 PM).
  • August 5 – Startup Pitch Event and Summer Social (6:30 PM).
  • August 25 – Eliot Horowitz, CTO and Co-Founder of MongoDB (6:30 PM).

Help Wanted

Stay tuned for next week! In the meantime, follow me on Twitter and subscribe to the RSS feed.


Jeremy Keith (Adactio)Responsive Day Out 3: The Final Schedule

There’s just a few more weeks to go until the third and final Responsive Day Out and I can’t wait! It’s going to be unmissable so, like, don’t miss it. If you haven’t already got your ticket, it’s not too late. And remember: it’s a measly £80.

On June 19th, follow the trail of eager geeks to the Corn Exchange at the Brighton Dome, a short walk from the train station. We’ll be using the main Dome entrance on Church Street and registration starts at 9am, with the first talk at 10am.

<iframe frameborder="0" height="300" src="!1m18!1m12!1m3!1d2520.4188078814436!2d-0.1384269999999801!3d50.8234059999999!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x204845bd08377bb3!2sBrighton+Dome!5e0!3m2!1sen!2s!4v1403001479320" style="border:0" width="400"></iframe>

I’ve already talked about the topics that will be covered on the day. Here’s what I’m planning for the day’s schedule (subject to change):

09:00 - 10:00Registration
10:00 - 10:20Alice
10:20 - 10:40Rachel
10:40 - 11:00Alla
11:00 - 11:15Chat with Alice, Rachel, and Alla
11:15 - 11:45Break
11:45 - 12:05Zoe
12:05 - 12:25Jason
12:25 - 12:45Heydon
12:45 - 13:00Chat with Zoe, Jason, and Heydon
13:00 - 14:30Lunch
14:30 - 14:50Jake
14:50 - 15:10Ruth
15:10 - 15:30Peter
15:30 - 15:45Chat with Jake, Ruth, and Peter
15:45 - 16:15Break
16:15 - 16:35Rosie
16:35 - 16:55Lyza
16:55 - 17:15Aaron
17:15 - 17:30Chat with Rosie, Lyza, and Aaron
17:30 - ??:??Pub!

Now, what with it being a measly £80, don’t expect much in the way of swag. In fact, don’t expect anything in the way of swag. You won’t even get a lanyard; just a sticker. There won’t be any after-party; we can all just wander off to the nearby pubs and cafés instead. And lunch won’t be provided. But that’s okay, because Street Diner will be happening just up the road that day, and I’ve already confirmed that The Troll’s Pantry will be present—best burgers in Brighton (or anywhere else for that matter).

It’s going to be such a great day! Like I said …unmissable.

ProgrammableWebRyft Announces Open API Library for Ryft ONE Platform

Ryft, a big data platform provider, recently announced a new data analytics Open API Library. The API enables seamless integration with Ryft's flagship high-performance data analysis platform, Ryft ONE. Post-integration, big data environments enjoy faster data analysis and real-time intelligence, the company says.

ProgrammableWebTwitter REST API Now Supports Native Video Upload

Twitter has announced native video support through the Twitter API. Twitter launched video support for its mobile applications in January, and since then it has been receiving requests to extend the functionality through its REST API.

Jeremy Keith (Adactio)100 words 064

Jessica and I went to see Mad Max: Fury Road at the Dukes At Komedia last week. We both thoroughly enjoyed it. There’s the instant thrill of being immersed in a rollicking good action movie but this film also stayed with me long after leaving the cinema.

This isn’t really Max’s movie at all—it’s Furiosa’s. And oh, what a wonderful protagonist she is.

Max’s role in this movie is to be an ally. And for that reason, I see him as a role model—one who offers a shoulder, not to cry on, but to steady a rifle’s aim.

ProgrammableWebSalesforce Unveils its Next-Gen Community Cloud

Last week, Salesforce took the wraps off the latest version of its Community Cloud platform. Designed to help companies connect and engage with key stakeholders, including partners, customers and employees, Salesforce Community Cloud offers companies a single platform through which they can build branded, fully-functional online communities with the

ProgrammableWeb: APIsCallDirek

The CallDirek REST API allows developers to access and integrate the functionality of CallDirek with other applications. Some example API methods include managing accounts, retrieving balance information, topping off voice credits, and making calls. CallDirek is a web and mobile application for pinless international calling and making voice phone calls.
Date Updated: 2015-05-25
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsMeaningCloud Coporate Reputation

Use MeaningCloud's Corporate Reputation API to analyze your organization's reputation. The API uses GET/POST requests in either JSON or XML, and supports both HTTP and HTTPS. Authentication is made via API Key, which is available after creating an account with MeaningCloud. Using semantic tagging and a model based on a set of reputational dimensions (like innovation or social responsibility) the API analyzes text to aggregate perceptions about a business. See the project documentation for more detailed information on how the Corporate Reputation model works. Developers should note that, at this time, the API only supports Spanish language text.
Date Updated: 2015-05-25
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsTypeform I/O

Typeform I/O is a forms a service business that allows to generate typeforms. With an API key and documentation, users can create surveys according to automation preferences. The aim is to facilitate surveys due to the aesthetic form design. Multiple resources include tutorials, sandbox, and an active typeform community with the #slackgroup.
Date Updated: 2015-05-25
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsGoogle Chromecast iOS

The API for Google Chromecast iOS supports Apple mobile devices to display entertainment in a TV screen. Within Google developers site, users can access guides to design, send, and receive media. Available in the reference section, API overview, Chrome API, and iOS API.
Date Updated: 2015-05-25
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsGoogle Chromecast Android

The API for Google Chromecast in Java supports Android devices with the aim to display mobile entertainment in a TV screen. Documentation includes classes to interact with Google cast devices, instructions to access Google APIs, and tools to facilitate support. The sample section allows to import code from GitHub and download examples from Android studio.
Date Updated: 2015-05-25
Tags: [field_primary_category], [field_secondary_categories]

Jeremy Keith (Adactio)100 words 063

Brad is visiting Brighton this weekend after his stint at UX London. I’ve been showing him around town, introducing him to the finest coffee, burgers, and beers that Brighton has to offer.

We travelled out to Lewes yesterday evening to partake in Jamie’s birthday celebrations. There followed a night of dancing to a wonderfully fun punk covers band, complete with guest vocal appearances from the extended Freeman family: Jamie doing Elvis Costello, his brother Tim doing The Sex Pistols, his other brother Martin doing The Jam, and his cousin Ben doing The Stranglers.

Ah, so much nostalgia and revisited youth!

ProgrammableWebHow APIs and Mashups Could Replace Patient Portals

The Health IT ecosystem is being driven toward an incentive-driven model through the implementation of Meaningful Use as the government standard for using Electronic Health Records (EHR).

ProgrammableWebDaily API RoundUp: Chromecast, Unofficial IMDb JavaScript Library

Every day, the ProgrammableWeb team is busy, updating its three primary directories for APIs, clients (language-specific libraries or SDKs for consuming or providing APIs), and source code samples.

Jeremy Keith (Adactio)100 words 062

Yesterday Ireland held a referendum to amend its constitution in order to provide equal rights to gay couples who want to get married. Today it’s clear that the “yes” vote is going to carry the day.

This is amazing.

I left Ireland in the early ’90s. When I told people abroad about the medieval legal situation in Ireland on contraception, divorce, and homosexuality …well, people just wouldn’t believe me. Combined with the nationalistic political situation, I got used to a sort of permanent miasma of embarrassment towards the country I came from.

But today I feel a swell of pride.

ProgrammableWebBuild Apps Directly Inside Gmail and Inbox with InboxSDK

Streak, a Gmail-based CRM platform, has announced the launch of InboxSDK, a JavaScript library that provides a set of APIs that allow developers to build applications directly inside Gmail and Inbox. InboxSDK is fully maintained so that it is always up to date with the latest version of Gmail.

ProgrammableWebAmazon Releases SDKs for Login and Pay with Amazon

In an effort to make it easier for developers to add one-time checkout and recurring payments to their applications, Amazon has released new SDKs and developer materials for its Login and Pay with Amazon API.

Jeremy Keith (Adactio)100 words 061

I had band practice with Salter Cane today. It’s been ages since the last rehearsal. Our drummer, Emily, has been recovering from surgery on her foot, hence the hiatus.

I was sure that this practice would be a hard slog. Not only had we not played together for a long time, but we’re trying out a new rehearsal space too. Sure enough, there were plenty of technical difficulties that arose from trying to get things working in the new space. But I was pleasantly surprised by how the songs sounded. We were pretty tight. One might even say we rocked.

ProgrammableWeb5 Things to Consider When Using RESTful APIs and OAuth 2.0

As the Internet of Things gains pace, users are increasingly required to sync data to cloud services.

ProgrammableWebPrime Numbers Technology Releases Traveler Scorecard API

This article is a company-provided press release and ProgrammableWeb cannot vouch for the accuracy of the statements within. If you have questions regarding the information below, please contact the company that issued the press release. API Now Features Similarity Search, a fairly new data-as-a-service platform, has added a similarity search feature to the API. Similarity search allows users to search for articles that are similar to another document. has been busy adding new features and improvements to its API.

Jeremy Keith (Adactio)Browser testing

On just about every client project that I work on, the subject of browser support comes up. Rightly so. It’s an important issue on which to get mutual understanding and agreement. But all too often, this important question is framed in a binary, true/false, go/no-go way: “Which browsers do we/don’t we support?”

Really, the first thing to get agreement on is not a list of browsers, but what we mean by the word “support”. In my mind, that word implies that a user of a particular browser should be able to accomplish the primary tasks on the website, whether that’s reading an article, booking a ticket, or buying a product. That doesn’t mean that the task must be experienced in pixel-perfect fidelity to an ideal visual design.

But to others, that’s exactly what “support” means. Personally, I’d call that optimisation. As Brad puts it:

There is a difference between support and optimization.

So to put it in glib terms, I support every browser …but I optimise for none.

Alright, fine. But I still need to get to some mutual understanding with a client about which browsers will get the optimised experience and which browsers will simply be supported.

Personally, I like the Filament Group’s approach of discussing this in terms of features rather than browsers. It makes sense to me to say the browsers that support geolocation will get the geolocation features, or the browsers that support offline caching will get the offline caching features. There’s no need to produce a list of what those browsers are for each feature, and in any case, the list would be constantly changing and updating with each new browser release.

But—and this is a big but—nine times out of ten, when the issue of browser support comes up, it isn’t about functionality; it’s about branding. What clients generally want to know is which browsers will get the ideal visual design. Obviously the newer versions of Chrome and Firefox are going to get all the lovely layouts, rounded corners, gradients, transparencies, and animations …but what about older versions of Internet Explorer? Even if users of IE8 and IE7 can accomplish their tasks, will the “degraded” visual presentation hurt their experience?

My hypothesis is that it won’t. Users of older versions of Internet Explorer aren’t doing a side-by-side comparison of the same website opened up in the latest Chrome nightly. Considering what their daily usage must be like—unable to use Facebook, unable to use Google services—I suspect that they are happy just to be able to complete their task, regardless of the site’s visual fidelity.

There’s another viewpoint—one that I’ve heard expressed by clients—that even users of older browsers should still get the ideal, pixel-perfect visual design. The hypothesis here is that, by allowing someone to experience anything less than the perfect presentation, the client’s brand will be damaged in the mind of that person.

Like I said, this is something that comes up on most client projects, and this is the point at which we’d have to come to an agreement about which hypothesis we’re going to go with. Of course I’m going to argue in favour of the first hypothesis, but I’ve come to realise that arguing in favour of either hypothesis is the wrong approach. We shouldn’t be debating this …we should be testing it.

We have two competing hypotheses about a group of users. Instead of trying to read their minds, why not test with that group of users to find out which hypothesis is correct? No matter what the results of the test, they will be valuable either way.

Think about the amount of work that’s going to go in to optimising for older browser versions—it’s going to take quite a bit of time and money. It makes sense to ensure that this time and money isn’t being spent on little more than a hunch that pixel-perfection is important to those users. On the other hand, if the test reveals that actually those users really will have a lesser opinion of a brand unless they get pixel-perfect parity with newer browsers, then you’ll know that the time and money spent making that happen isn’t wasted.

Josh wrote recently that 1 hour of research saves 10 hours of development time:

Or, in longer terms if more people appreciated how one day of user research can save weeks of coding I think they would do it more. It is remarkable what you decide to not build after talking to a few people closely.

When it comes to decisions around browser support/optimisation, I think that even a little bit of up-front research and testing could potentially save a lot of time, money, and heartache. I’m not sure exactly what form the testing should take, but I’m interested in figuring it out.


Updated: .  Michael(tm) Smith <>