ProgrammableWebDaily API RoundUp: Hail, kintone, Coinmap, TalkWalker, Availity

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.

Amazon Web ServicesWelcome to our New Colleagues at Elemental

Earlier today we announced that we had reached an agreement to acquire Elemental Technologies of Portland, Oregon. Elemental has pioneered a number of software-based solutions for multiscreen content delivery and powers many of the world’s most innovative app-delivered video offerings and new services like 4K TV. Elemental customers use its software to process and deliver video streams that are customized for a wide variety of different formats, displays, devices, data rates, and environments. Here’s a recent photo of the Elemental team:

We have been working with Elemental to address shared customers in the Media & Entertainment (M&E) business for the past four years. During this time we have been impressed by their penchant for moving fast and their long-term vision for software-defined video.  We quickly realized that we could work together to create solutions that spanned the entire video pipeline.

Today’s announcement will allow us to work even more closely together to provide media companies with a family of on-premises, hybrid, and cloud-based solutions for Internet-based video delivery. Of course, I’ll do my best to learn about and then share information about any and all new offerings as they become available. Perhaps I’ll even make a trip to Portland to interview the Elemental folks for an AWS Podcast episode.

On behalf of the entire AWS team I would like to extend a warm welcome to our new colleagues!

Jeff;

ProgrammableWebOpen PermID Provides Free Access to Thomson Reuters-Linked Data

Thomson Reuters, one of the world’s leading sources of intelligent information, has launched Open PermID, a set of APIs and tools that organizations can use to access Thomson Reuters’ massive core entity data set. Open PermID provides access to Thomson Reuters-linked entity data via bulk downloads, hypermedia APIs, and online tools.

ProgrammableWebAmazon Announces Mock Integration Feature For API Gateway

Amazon has introduced a mock integration feature for the Amazon API Gateway. Mock integration enables developers to generate API responses from the gateway without backend integration. Accordingly, developers can test apps before app development is complete. Developers can unblock dependent teams whose previous access would have been impossible before completed development.

ProgrammableWebTeleSign Launches Smart Verify to Improve User Verification

TeleSign, a mobile identity solutions company, today announced the launch of TeleSign Smart Verify, a new unified API that hopes to simplify end-u

ProgrammableWeb: APIsPlenigo

The Plenigo API provides an eCommerce platform for digital media distributors. This RESTful API uses OAuth 2 authentication, and responses are in JSON format. Plenigo integrates analytics, product administration and billing in one solution. Services include paywall functions like day passes, vouchers, metered views, pay-per-view or subscriptions. Payment options include PayPal, credit cards, bank transfers and more.
Date Updated: 2015-09-03
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsInformaCast Mobile

InformaCast Mobile API allows developers to enable their users to simultaneously send combinations of text, pre-recorded audio, and images to Android and iOS mobile endpoints such as cellular phones and tablets. While smart devices provide the richest interface and are the primary target, you can also send content via email, SMS messages to any cell phone, and audio calls to any telephone.
Date Updated: 2015-09-03
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsEZRentOut

The EZRentOut API is a service that helps with management of equipment rentals, invoicing, asset tracking, and customers. The API allows for custom integration to users who are paying clients for this API service. EZRentOut strives to change the role of rental orders and equipment by using technology in solving common problems with a fresh perspective.
Date Updated: 2015-09-03
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsBlockspring

The Blockspring REST API allows developers to access and integrate the functionality of Blockspring with other applications and to create new applications. Some example API methods include managing users, managing forms, accessing web services, and importing spreadsheets. Blockspring is a service that allows users to access web services through spreadsheets.
Date Updated: 2015-09-03
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWebDaily API RoundUp: Contentful, Smoke Reports, Rickshaw, Ordoro

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.

Amazon Web ServicesAmazon S3 Update – CloudTrail Integration

You can now use AWS CloudTrail to track bucket-level operations on your Amazon Simple Storage Service (S3) buckets.  The tracked operations include creation and deletion of buckets, modifications to access controls, changes to lifecycle policies, and changes to cross-region replication settings.

AWS CloudTrail records API activity in your AWS account and delivers the resulting log files to a designated S3 bucket. You can  look up API activity related to creating, deleting and modifying your S3 resources using the CloudTrail Console, including access to 7 days of historical data. You can also create Amazon CloudWatch Alarms to look for specific API activities and receive email notifications when they occur.

Effective today we are now logging actions on S3 buckets to CloudTrail in all AWS Regions. If you have already enabled CloudTrail, you do not need to take any further action in order to take advantage of this new feature.  If you are not using CloudTrail, you can turn it on with a couple of clicks (read my introductory post – AWS CloudTrail – Capture API Activity) to learn more.

You can use the log files in many different ways. For example, you can use them as supporting evidence if you need to demonstrate compliance with internal or external policies. Let’s say that you store some important files in an S3 bucket. You can set up a CloudWatch Alarm that will fire if someone else in your organization makes changes to the bucket’s access control policy. This will allow you to verify that the change is in compliance with your policies and to take immediate corrective action if necessary.

You can also monitor creation and deletion of buckets, updates to life cycle policies, and changes to the cross-region replication settings.

Jeff;

Amazon Web ServicesIntroducing the AWS SDK for C++

My colleague Jonathan Henson sent me a guest post to introduce a brand-new AWS SDK!

— Jeff;


After a long effort, we are proud to announce an open-source C++ SDK for scaling your native applications with Amazon Web Services.

The AWS SDK for C++ is a modern C++ interface with lightweight dependencies. We designed it to be fully functioning, with both low-level and high-level interfaces. However, we also wanted it to have as few dependencies as possible and to be platform-independent. At the moment, it includes support for Windows, OS X, Linux, and mobile platforms.

This SDK has been specifically designed with game developers in mind, but we have also worked hard to maintain an interface that will work for systems engineering tasks, as well as other projects that simply need the efficiency of native code.

Features

  • Works with the Standard Template Library (STL).
  • Custom memory management support.
  • C++ 11 features used and supported.
  • Builds with CMake and your native compiler toolchain.
  • Lightweight dependencies.
  • Exception-safe.
  • Extensive, configurable logging.
  • Default credentials providers.
  • Identity management through Amazon Cognito Identity.
  • High-level Amazon S3 interface through TransferClient.
  • Uses native OS APIs for cryptographic and HTTP support.

Code Samples

Storing a value in a Amazon DynamoDB table:

Aws::DynamoDB::DynamoDBClient dynamoDbClient;
PutItemRequest putItemRequest;
putItemRequest.WithTableName("TestTableName");
AttributeValue hashKeyAttribute;
hashKeyAttribute.SetS("SampleHashKeyValue");
putItemRequest.AddItem("HashKey", hashKeyAttribute);
AttributeValue valueAttribute;
valueAttribute.SetS("SampleValue");
putItemRequest.AddItem("Value", valueAttribute);
auto putItemOutcome = dynamoDbClient.PutItem(putItemRequest);

if(putItemOutcome.IsSuccess())
{
    std::cout << "PutItem Success Using IOPS " << putItemOutcome.GetResult().GetConsumedCapacity();
}
else
{
    std::cout << "PutItem failed with error " << putItemOutcome.GetError().GetMessage();
}

Downloading a file from Amazon Simple Storage Service (S3):

Aws::S3::S3Client s3Client;
GetObjectRequest getObjectRequest;
getObjectRequest.SetBucket("sample_bucket");
getObjectRequest.SetKey("sample_key");
getObjectRequest.SetResponseStreamFactory(
    [](){
        return Aws::New(ALLOCATION_TAG, DOWNLOADED_FILENAME, std::ios_base::out | std::ios_base::in | std::ios_base::trunc);
    });
auto getObjectOutcome = s3Client.GetObject(getObjectRequest);
if(getObjectOutcome.IsSuccess())
{
    std::cout << "File downloaded from S3 to location " << DOWNLOADED_FILENAME;
}
else
{
    std::cout << "File download failed from s3 with error " << getObjectOutcome.GetError().GetMessage();
}

It’s that simple! Download the code from GitHub today and start scaling your C++ applications with the power of Amazon Web Services.

Status
We are launching the AWS SDK for C++ in its current experimental state while we gather feedback from users and the open source community to harden the APIs. We also are adding support for individual services as we become more confident that the client generator can properly support each protocol. Support for more services will be coming in the near future. We invite our customers to follow along with our progress and join the development efforts by submitting pull requests and sending us feedback and ideas via GitHub Issues.

Jonathan Henson, Software Development Engineer (SDE)

ProgrammableWebGoogle CSV Download Scripts Replaced by Search Analytics API

Less than a month after announcing its Search Analytics API, Google has now stated that "it's now time to gradually say goodbye to the old CSV download scripts for information on queries and rankings." Google will keep the script downloads available for a bit longer, but will turn off a

ProgrammableWebAnyPresence Updates its Mobile Application Development Platform

Mobile application development platform and backend-as-a-service provider AnyPresence recently announced significant updates to its platform.

According to AnyPresence's CEO, Anirban Chakrabarti, "The foundational capability for digital transformation is the ability to create APIs and microservices that expose access to an organization’s digital assets and services."

ProgrammableWeb: APIsMozilla Web Audio JavaScript

The Mozilla Web Audio JavaScript API allows developers to add audio effects, create audio visualizations, and apply spatial effects. Built as modular routing, the API affords to create audio functions with dynamic effects according to the site. See a work in progress at http://mdn.github.io/voice-change-o-matic/
Date Updated: 2015-09-02
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsAvaility Service Review

The Availity Service Review API is used to authorize service or to refer a patient to a different provider. Information such as patient's status and transport distance is available. This REST API uses OAuth 2, SHA256, or MD5 as authentication methods. Requests must contain an authorization header using the Bearer token scheme. Availity functions as an intermediary between health plans and providers.
Date Updated: 2015-09-02
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsAvaility Capacity to Pay

The Availity Capacity to Pay API returns a member's financial capacity information. Information such as guarantor's high home value and number of adults living with the guarantor is available. This REST API uses OAuth 2, SHA256, or MD5 as authentication methods. Requests must contain an authorization header using the Bearer token scheme. Availity functions as an intermediary between health plans and providers.
Date Updated: 2015-09-02
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsAvaility Configuration

The Availity Configuration API returns validation rules for different resources. Information such as health plan lists and coverage is available. This REST API uses OAuth 2, SHA256, or MD5 as authentication methods. Requests must contain an authorization header using the Bearer token scheme. Availity functions as an intermediary between health plans and providers.
Date Updated: 2015-09-02
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsAvaility Coverage

The Availity Coverage API is used to manage and find information about a member's coverage. This REST API uses OAuth 2, SHA256, or MD5 as authentication methods. Requests must contain an authorization header using the Bearer token scheme. Availity functions as an intermediary between health plans and providers.
Date Updated: 2015-09-02
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsRickshaw

The Rickshaw REST API allows developers to access and integrate the functionality of Rickshaw with other applications. Public documentation is not available; API access comes with account service. Rickshaw is an on-demand delivery and courier service offering same-day delivery for customers and businesses.
Date Updated: 2015-09-02
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsHail

The Hail REST API allows developers to access and integrate the functionality of Hail with other applications. Some example API methods include managing users, retrieving and posting articles, managing tags, and managing content. Hail is a content management system that allows users to create, manage, and publish their content easily across multiple channels and devices.
Date Updated: 2015-09-02
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsTalkwalker

The Talkwalker API is a social media data API that allows for simple integration of online media and social web data into media monitoring applications, databases or data warehouses. This includes social media posts, blogs articles, online media (news, magazines, online news and more), comments, message boards and other social data. All of Talkwalker's social data that is crawled is augmented with advanced text analytics (such as language detection, geographical detection, data categorization, user demographics, related terms, sentiment analysis, influence ranking and clustering information). To obtain access to the API documents and key, contact Talkwalker via the API website's online form.
Date Updated: 2015-09-02
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsNHS Data

The NHS Data API is a REST service API offered in JSON format. The NHS Data API helps developers increase productivity and reduce development time. NHS is short for National Health Service, which is comprised of four publicly funded health care systems in the United Kingdom.
Date Updated: 2015-09-02
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsCloudByte ElastiStor REST

The CloudByte ElastiStor REST API allows developers to integrate the administrative controls for CloudByte ElastiStor's application storage services into their third-party applications. CloudByte ElastiStor virtualizes all of the resources of a storage system, eliminating the need to stack physical storage boxes for each application and manage silos. Users can move storage performance around between applications as needed.
Date Updated: 2015-09-02
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsOrdoro

The Ordoro API provides developers a toolkit to build apps that simplify ecommerce back-office operations. The API can also be used by other complimentary service providers to hook up with the Ordoro platform and create stellar apps that solve merchants’ needs. Ordoro is a shipping and inventory management software company.
Date Updated: 2015-09-02
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWebDaily API RoundUp: WordAi, Coub, Knowtify, Circuit

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.

ProgrammableWebWowza Media Systems Announces REST API for Wowza Streaming Engine

Wowza Media Systems, a software and cloud-based services provider that works to solve the complexities of high-quality video and audio streaming for organizations worldwide, today announced the availability of a public preview version of its REST API for Wowza Streaming Engine software. Wowza hopes to meet the needs of developers by

ProgrammableWebGoogle Pushes Container Management with Container Engine

Containers are fast becoming the norm in how we package and ship applications. They address the critical area of ensuring that users can reliably distribute and run applications across machines. As containers go mainstream, teams have realized that it is no longer about just spinning up a few containers, but about having an environment that manages the cluster of containers and orchestrates activities across them.

Jeremy Keith (Adactio)dConstruct 2015 podcast: Nick Foster

dConstruct 2015 is just ten days away. Time to draw the pre-conference podcast to a close and prepare for the main event. And yes, all the talks will be recorded and released in podcast form—just as with the previous ten dConstructs.

The honour of the final teaser falls to Nick Foster. We had a lovely chat about product design, design fiction, Google, Nokia, Silicon Valley and Derbyshire.

<object data="https://huffduffer.com/flash/player.swf?soundFile=https://dconstruct.s3.amazonaws.com/2015/podcast/NickFoster.mp3" height="24" type="application/x-shockwave-flash" width="290"><param name="movie" value="https://huffduffer.com/flash/player.swf?soundFile=https://dconstruct.s3.amazonaws.com/2015/podcast/NickFoster.mp3"><param name="wmode" value="transparent"><audio controls="controls" preload="none" src="https://dconstruct.s3.amazonaws.com/2015/podcast/NickFoster.mp3">dConstruct 2015: Nick Foster on Huffduffer</audio></object>

I hope you’ve enjoyed listening to these eight episodes. I had certainly had a blast recording them. They’ve really whetted my appetite for dConstruct 2015—I think it’s going to be a magnificent day.

With the days until the main event about to tick over into single digits, this is your last chance to grab a ticket if you haven’t already got one. And remember, as a loyal podcast listener, you can use the discount code ‘ansible’ to get 10% off.

See you in the future …next Friday!

Amazon Web ServicesNew – Resource-Oriented Bidding for EC2 Spot Instances

Earlier this year we introduced the EC2 Spot fleet API. As I noted in my earlier post, this API allows you to launch and manage an entire fleet of Spot instances with one request. You specify the fleet’s target capacity, a bid price per hour, and tell Spot what instance type(s) you would like to launch. Spot fleet will find the lowest price spare EC2 capacity available, and then work to maintain the requested target capacity.

Today we are making the Spot fleet API even more powerful with the addition of bidding weights. This new feature allows you to create and place bids that are better aligned with the instance types and Availability Zones that are the best fit for your application. Each call to RequestSpotFleet includes a single bid price (expressed on a per-instance basis). This was simple to use, but the simplicity disallowed certain desirable features. For example, there was no way to launch a fleet that had at least 488 GiB of memory spread across two or more R3 (Memory Optimized) instances or least 128 vCPUs spread across a combination of C3 and C4 (both Compute Optimized) instances.

New Resource-Oriented Bidding
Our new resource-oriented bidding model will allow you to make Spot fleet requests of this type. Think of each instance in a fleet as having a number of “capacity units” of some resource that affects how many instances you need to create a fleet of the proper size. In my examples above, the resources might be GiBs of RAM or vCPUs. They could also represent EBS-optimized bandwidth, compute power, networking performance, or another (perhaps more abstract) application-specific unit. You can now request a certain number of capacity units in your Spot fleet, and you can indicate how many such units each instance type contributes to the total.

As a result, you can now use resources of multiple instance types, possibly spread across multiple Availability Zones, without having to be concerned about the instance types that are actually provisioned. Each call to RequestSpotFleet already includes one or more launch specifications, each one requesting instances of a particular type, running a specified AMI. You can now include one or both of the following values in each launch specification:

WeightedCapacity – How many capacity units an instance of the specified type contributes to the fleet. This value is multiplied by the bid price per unit when Spot fleet makes bids for Spot instances on your behalf. You can use this, for example, to indicate that you are willing to pay twice as much for an r3.xlarge instance with 30.5 GiB of memory as for an r3.large instance with  15.25 GiB of memory.

SpotPrice – An override of the bid price per unit specified in the request. You can use this value to introduce a bias into the selection process, allowing you to express a preference (for or against) particular instance types, Availability Zones, or subnets.

Here’s a launch specification that would represent the memory-centric example that I introduced earlier (I have omitted the other values for clarity):

Instance Type Instance Weight
 r3.large  15.25
 r3.xlarge  30.5
 r3.2xlarge  61
 r3.4xlarge  122
 r3.8xlarge  244

You would then specify a Target Capacity of 488 (representing the desired fleet capacity in GiB) in your call to RequestSpotFleet, along with a Bid Price that represents the price (per GiB-hour) that you are willing to pay for the capacity.In this example, you are indicating that you are willing to pay 16 times as much for an r3.8xlarge instance as for r3.large.

EC2 will use this information to build the fleet using the most economical combination of available instance types, looking for instances that have the lowest Spot price per unit. This could be as simple as one of the following, using a single instance type:

  • 2 x r3.8xlarge
  • 4 x r3.4xlarge
  • 8 x r3.2xlarge
  • 16 x r3.xlarge
  • 32 x r3.large

Or something more complex and heterogeneous, such as:

  • 1 x r3.8xlarge and 2 x r3.4xlarge
  • 2 x r3.4xlarge and 8 x r3.xlarge
  • 8 x r3.xlarge and 16 x r3.large

Over time, as prices change and instances are interrupted due to rising prices, replacement instances will be launched as needed. This example assumes that your application is able to sense the instance type (and the amount of memory available to it) and to adjust accordingly. Note that that the fleet might be overprovisioned by a maximum of one instance in order to meet your target capacity using the available resources. In my example above, this would happen if you requested a fleet capable of storing 512 GiB. It could also happen if you make a small request and the cheapest price (per unit) is available on a large instance.

About Those Units
The units are arbitrary, and need not map directly to a physical attribute of the instance. Suppose you did some benchmarking and measured the transaction rate (in TPS) for a number of different instance types over time. You could then request a fleet capable of processing the desired number of transactions per second, while knowing that EC2 will give you the of instance types that are the most economical at any given point in time. As I have pointed out in the past, the Spot mechanism sits at the intersection of technology and business, and gives you the power to build systems and to write code that improves the bottom-line economics of your business! There’s a lot of room to be creative and innovative (and to save up to 90% over On-Demand prices) here.

You can also use this mechanism to prioritize specific Availability Zones by specifying a higher WeightedCapacity value in the desired zone. In this case, your launch specification would include two or more entries for the same instance type, with distinct Availability Zones and weights.

Requests can be submitted using the AWS Command Line Interface (CLI) or via calls to RequestSpotFleet.

Available Now
This new functionality is available now and you can start using it today in all public AWS regions where Spot is available.

Jeff;

PS – For more information about Spot instances, take a look at two of my recent posts: Focusing on Spot Instances and Building Price-Aware Applications.

ProgrammableWebAmazon Underground Trumpeted as New Android App Monetization Model

Amazon has announced a new app designed to help developers monetize apps: Amazon Underground. The app offers all the functionality included in the standard Amazon mobile shopping app. However, Amazon Underground also includes over $10,000 in apps, games and in-app items.

ProgrammableWebDaily API RoundUp: Google Maps Roads, Movin, Sighthound, InPlayer

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.

ProgrammableWebHow to get Social and Professional Info From Email Addresses with Pipl

The Pipl Search API allows you to perform people lookups using a variety of search inputs. In this tutorial I will demonstrate how to use the API to enrich the data you have of your newsletter subscribers.

Amazon Web ServicesSubscribe to AWS Public IP Address Changes via Amazon SNS

Last year we announced that the AWS Public IP Address Ranges Were Available in JSON Form. This was a quick, Friday afternoon post that turned out to be incredibly popular! Many AWS users are now polling this file on a regular basis and using it to manage their on-premises firewall rules or to track the growth of the AWS network footprint over time.  If you are using AWS Direct Connect, you can use the file to update your route tables to reflect the prefixes that are advertised for Direct Connect public connections.

Today we are making it even easier for you to make use of this file. You can now subscribe to an Amazon Simple Notification Service (SNS) topic and receive notifications when the file is updated. Your code can then retrieve the file, parse it, and make any necessary updates to your local environment.

Simply subscribe to topic arn:aws:sns:us-east-1:806199016981:AmazonIpSpaceChanged and confirm the subscription in the usual way (you can use any protocol supported by SNS):

You will receive a notification that looks like this each time the IP addresses are changed:

{
  "create-time":"yyyy-mm-ddThh:mm:ss+00:00",
  "synctoken":"0123456789",
  "md5":"6a45316e8bc9463c9e926d5d37836d33",
  "url":"https://ip-ranges.amazonaws.com/ip-ranges.json"
}

You can also build a AWS Lambda function that responds to the changes:

In either case, your app will be responsible for fetching the file, parsing the JSON, and extracting the desired information. To learn more about the file, read about AWS IP Address Ranges.

If you build something useful (environment updates) and/or cool (an intriguing visualization) that you would like to share with the other readers of this blog, please feel free to leave me a comment!

Jeff;

PS – My count shows 13,065,550 IP addresses in the EC2 range as of August 25, 2015.

ProgrammableWebHow Linked Data Solved A Digital Age Marketing Problem

Founder of Apiwise and 15-year veteran of the API space, Dimitri van Hees began his APIcon talk by putting this up on the screen: 0641011744. Is it a number? A registration number? A New Zealand phone number? Maybe a flight number? Perhaps the new coordinates to get back to the island of Lost? Last ten digits of a bank account? Dutch people would immediately recognize it as a phone number.

Amazon Web ServicesAWS Week in Review – August 24, 2015

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

Monday, August 24
Tuesday, August 25
Wednesday, August 26
Thursday, August 27
Friday, August 28

New & Notable Open Source

New Customer Success Stories

New SlideShare Presentations

New YouTube Videos

Upcoming Events

Upcoming Events at the AWS Loft (San Francisco)

Upcoming Events at the AWS Loft (New York)

Help Wanted

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

Jeff;

Daniel Glazman (Disruptive Innovations)Lyonnaise des Eaux, again and again...

En Septembre 2014 et juillet 2015, je poussais deux râlantes contre l'incompétence crasse du Service Client de la Lyonnaise des Eaux. Fin Juillet, un responsable d'agence commerciale de la Lyonnaise m'appelait pour me présenter ses excuses, garantir le rétablissement correct et rapide de mon compte, me proposer un geste commercial (très très light), me proposer un échéancement de ma régularisation, et surtout me garantir qu'un tel boxon ne se reproduirait plus.

Le 7 Août, confiant ou au moins insouciant, je pars en congés estivaux dont je rentre samedi en fin de journée. Comme tout un chacun, je vide alors la boîte aux lettres et découvre, ô divine surprise, un courrier de la Lyonnaise des Eaux m'annonçant trois choses :

  1. la fermeture de mon compte... Ooooh le méchant air de déjà-vu. Mon compte en ligne est de nouveau inactif, cela commence à devenir malheureusement une habitude.
  2. le prélèvement d'une facture de clôture de compte de, excusez du peu, plus de 500€...
  3. évidemment une nette augmentation de mes payements donc peut-être avez-vous, chez Client, une fuite d'eau ? (là, je me retiens très très fort d'émettre une grossièreté bien sonore)

Bon. Donc le retour au Danemark de la famille danoise voisine a eu, contrairement à ce que m'avait garanti le gars de la Lyonnaise, le même effet que précédemment : c'est mon compte qu'on a fermé et on m'impute sa consommation. Encore une fois, la Lyonnaise n'a pas réussi à séparer nos comptes ou n'a tout simplement pas agi comme en Septembre 2014, contrairement aux promesses.

La Lyonnaise des Eaux, c'est Suez et Suez c'est aussi le gaz désormais. Eh bien il y a clairement du gaz dans l'eau à la Lyonnaise. Soit leur Système d'Information (SI) est une vaste blague, soit les manipulateurs de ce SI sont des incompétents complets qui ne méritent qu'un coup de pied dans le cul. Rien n'a jamais fonctionné dans la gestion de mon compte à la Lyonnaise : les gestes techniques n'ont pas été réalisés par les techniciens, la régularisation de compte n'a pas été faite, la séparation de deux comptes sur deux compteurs différents semble une tache insurmontable, aucune des promesses faites n'a été tenue. Le foutoir total.

ProgrammableWeb: APIsMycroft Assistant Integration

The Mycroft Assistant Integration API is a user-friendly web based API. Its purpose is to offer services that analyze the data of your company’s operations (such as current product balance, sales and receipts documents of your products, and accompanying guides), securely and with ease. To achieve its goals, the Mycroft Assistant system provides an open API based on XML technology, with HTTP Secure protocol and assures complete privacy and data integrity. Mycroft Assistant offers automated supply chain management solutions and helps small to mid-sized businesses avoid inventory overstocks/ shortages, reduce waste, cut costs, and maximize profitability.
Date Updated: 2015-08-31
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsCoub

The Coub web API allows you to send and retrieve data from the Coub server via HTTP requests and responses. Almost all of Coub's features are available through the API, such as querying and managing user and channel data, uploading coub videos, searching for a video or channel, and much more. A coub is a looped video that lasts about 10 seconds.
Date Updated: 2015-08-31
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsKnowtify

Knowtify offers engaging marketing experiences with email notifications, user insights, and customer behavior. The JSON API is available with Token authentication with the aim to integrate event data with transactional emails, segment data with digest emails, and behavioral data with behavioral emails. Knowtify is a company that intends to drive lifetime customer loyalty providing its engaging marketing platform.
Date Updated: 2015-08-31
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsMovin

Movin gives people directions indoors. The API is available using a Key with the aim to implement mapping & routing applications. Affordances of the API include to create a MapContainer, load a map, and add a map. Based in The Netherlands, Movin provides solutions for indoor navigation to help visitors find an office route and for asset tracking to find valuable equipment with an accuracy of up to 2 meters. Services beneficial for businesses, airports, and warehouses.
Date Updated: 2015-08-31
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWebHow Indiana’s Legislative Site Foiled Attempts to Scrape It

With Indiana enacting the Religious Freedom Restoration Act earlier this year, the Open States team wanted to access the data to provide the text to the public.

ProgrammableWebHow APIs Power News Organizations

APIs are used in many, many ways in a wide range of industries. However, it seems that some organisations are implementing them in more beneficial ways than others, according to David Weinberger’s recent article for Nieman Reports.

ProgrammableWebDaily API RoundUp: YAY Images, ECMWF, ZebraPlan, Mythic Spoiler

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.

ProgrammableWebCoder Uses 23andMe to Deny Website Access Based on Genetic Makeup

The genetic testing tool 23andMe’s API was recently shut down by its creators, according to an article by Liat Clark on Wired.co.uk. This was in response to an anonymous developer using it to block people from websites based on their gender and genetic makeup.

ProgrammableWebDaily API RoundUp: NAO Robot, Open Movie Database, Sidekick

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.

ProgrammableWebGlidera API Provides Bitcoin Buy Sell Functionality For Third Party Apps

For Bitcoin to become an everyday reality for most people, things like ease-of-use and a high level of security will be important for both business and individuals. Recognising this, Glidera is hoping to produce a service that allows users to buy and sell Bitcoin easily and safely.

ProgrammableWebNetflix&#039;s Falcor is a Data Fetching Gift to Developers

Last Monday, Netflix released a developer preview of Falcor, a data-fetching library. Netflix uses Falcor to power its UIs across all platforms whether it's mobile, desktop, or TV apps.
 

ProgrammableWebUpdated Runscope API Fully Automates Workflow and API Testing

This week, Runscope launched a new and improved Runscope API. The update allows developers to fully integrate Runscope functionality into workflows, and programmatically manage tests, environments and schedules. Previous versions granted access to Runscope data, but the new release allows for full integration and complete control over API test automation and management.

ProgrammableWebAppboy Expands Platform With Webhooks

Appboy, a Mobile Marketing Automation company, announced today it has added webhooks support to its platform.

Amazon Web ServicesAmazon Underground – New Business Model for Android Apps

My friends and family members who build apps tell me that there’s a huge hurdle to cross on the road to monetization. Users are willing and eager to download new games and tools, but can be reluctant to pay to do so and expect a lot for free. While some apps make good use of In-App Purchasing (IAP) as a monetization vehicle and optimize for the (reported) 2% to 10% of the user base, many developers struggle to build an audience and a sustainable business model.

We aim to change things with the new Amazon Underground app for Android phones. This app builds upon the regular Amazon mobile shopping app, providing users with access to over ten thousand dollars in apps, games, and in-app purchases that are actually free. Underground apps and games are also available automatically on Kindle Fire HD and Fire HDX tablets.

As an app developer, you get paid $0.002 (1/5th of a cent) for every minute that a customer is using your Amazon Underground app. You can now focus on building apps that engage your users over the long term. You can build up long-term story lines, roll out additional content over time, and count on a continued revenue stream that is based on actual usage.

To learn more, register for a free developer account, read the eligibility and submission checklist, migrate to Amazon Underground, and submit your app to the Amazon Appstore and read this blog post.

Jeff;

 

 

ProgrammableWebYahoo Tweaks Mobile Developer Suite, Adds Tumblr In-App Sharing

Yahoo held a mobile developer conference in New York City today where it shared some eye-popping statistics about how mobile usage is changing, It also revealed some upates to its existing developer tools that are sure to appeal to some app writers out there.

ProgrammableWebMozilla&#039;s WebExtension API Simplifies Cross-Browser Add-On Development

Mozilla made a number of announcements surrounding add-on development for Firefox, led by the new WebExtensions API.

Jeremy Keith (Adactio)Whatever works for you

I was one of the panelists on the most recent episode of the Shop Talk Show along with Nicole, Colin Megill, and Jed Schmidt. The topic was inline styles. Well, not quite. That’s not a great term to describe the concept. The idea is that you apply styling directly to DOM nodes using JavaScript, instead of using CSS selectors to match up styles to DOM nodes.

It’s an interesting idea that I could certainly imagine being useful in certain situations such as dynamically updating an interface in real time (it feels a bit more “close to the metal” to reflect the state updates directly rather than doing it via class swapping). But there are many, many other situations where the cascade is very useful indeed.

I expressed concern that styling via JavaScript raises the barrier to styling from a declarative language like CSS to a programming language (although, as they pointed out, it’s more like moving from CSS to JSON). I asked whether it might not be possible to add just one more layer of abstraction so that people could continue to write in CSS—which they’re familiar with—and then do JavaScript magic to match those selectors, extract those styles, and apply them directly to the DOM nodes. Since recording the podcast, I came across Glen Maddern’s proposal to do exactly that. It makes sense to me try to solve the perceived problems with CSS—issues of scope and specificity—without asking everyone to change the way they write.

In short, my response was “hey, like, whatever, it’s cool, each to their own.” There are many, many different kinds of websites and many, many different ways to make them. I like that.

So I was kind of surprised by the bullishness of those who seem to honestly believe that this is the way to build on the web, and that CSS will become a relic. At one point I even asked directly, “Do you really believe that CSS is over? That all styles will be managed through JavaScript from here on?” and received an emphatic “Yes!” in response.

I find that a little disheartening. Chris has written about the confidence of youth:

Discussions are always worth having. Weighing options is always interesting. Demonstrating what has worked (and what hasn’t) for you is always useful. There are ways to communicate that don’t resort to dogmatism.

There are big differences between saying:

  • You can do this,
  • You should do this, and
  • You must do this.

My take on the inline styles discussion was that it fits firmly in the “you can do this” slot. It could be a very handy tool to have in your toolbox for certain situations. But ideally your toolbox should have many other tools. When all you have is a hammer, yadda, yadda, yadda, nail.

I don’t think you do your cause any favours by jumping straight to the “you must do this” stage. I think that people are more amenable to hearing “hey, here’s something that worked for me; maybe it will work for you” rather than “everything you know is wrong and this is the future.” I certainly don’t think that it’s helpful to compare CSS to Neanderthals co-existing with JavaScript Homo Sapiens.

Like I said on the podcast, it’s a big web out there. The idea that there is “one true way” that would work on all possible projects seems unlikely—and undesirable.

“A ha!”, you may be thinking, “But you yourself talk about progressive enhancement as if it’s the one try way to build on the web—hoisted by your own petard.” Actually, I don’t. There are certainly situations where progressive enhancement isn’t workable—although I believe those cases are rarer than you might think. But my over-riding attitude towards any questions of web design and development is:

It depends.

ProgrammableWeb: APIsFortytwo IM Gateway REST

The Fortytwo IM Gateway REST API is a messaging API. The IM REST interface is an application hosted on a server that listens for HTTP requests containing IM message data encoded in JSON. It processes the HTTP requests and their associated IM message data, performs some routing logic, and sends the required messages for onward delivery. The API sends back a JSON response containing information about the submitted IM. Fortytwo is a provider of messaging solutions.
Date Updated: 2015-08-26
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWeb: APIsFortytwo SMS Gateway REST

The Fortytwo SMS Gateway REST API is a messaging API. The IM REST interface is an application hosted on a server that listens for HTTP requests containing SMS message data encoded in JSON. It processes the HTTP requests and their associated SMS message data, performs some routing logic, and sends the required messages for onward delivery. The API sends back a JSON response containing information about the SMS. Fortytwo is a provider of messaging solutions.
Date Updated: 2015-08-26
Tags: [field_primary_category], [field_secondary_categories]

ProgrammableWebBlizzard Hints at Pending Release of Hearthstone API

Blizzard Entertainment caused some buzz on its forum recently when it responded to a group member's request for a Hearthstone API. Hearthstone: Heroes of Warcraft, Blizzard's massively popular digital card game, will soon have its own API whereby developers will gain access to game details currently unavailable.

Amazon Web ServicesBuilding Price-Aware Applications Using EC2 Spot Instances

Last month I began writing what I hope to be a continuing series of posts of EC2 Spot Instances by talking about some Spot Instance Best Practices. Today I spoke to two senior members of the EC2 Spot Team to learn how to build price-aware applications using Spot Instances. I met with Dmitry Pushkarev (Head of Tech Development) and Joshua Burgin (General Manager) and would like to recap our conversation in interview form!

Me: What does price really mean in the Spot world?

Joshua: Price and price history are important considerations when building Spot applications. Using price as a signal about availability helps our customers to deploy applications in the most available capacity pools, reduces the chance of interruption and improves the overall price-performance of the application.

Prices for instances on the Spot Market are determined by supply and demand. A low price means that there is a more capacity in the pool than demand. Consistently low prices and low price variance means that pool is consistently underutilized. This is often the case for older generations of instances such as m1.small, c1.xlarge, and cc2.8xlarge.


Me: How do our customers build applications that are at home in this environment?

Dmitry: It is important to architect your application for fault tolerance and to make use of historical price information. There are probably as many placement strategies as there are customers, but generally we see two very successful use patterns: one is choosing capacity pools (instance type and availability zone) with low price variance and the other is to distribute capacity across multiple capacity pools.

There is a good analogy with the stock market – you can either search for a “best performing” capacity pool and periodically revisit your choice or to diversify your capacity across multiple uncorrelated pools and greatly reduce your exposure to risk of interruption.


Me: Tell me a bit more about these placement strategies.

Joshua:  The idea here is to analyze the recent Spot price history in order to find pools with consistently low price variance. One way to do this is by ordering capacity pools by duration of time that elapsed since the last time Spot price exceeded your preferred bid – which is the maximum amount you’re willing to pay per hour. Even though past performance certainly doesn’t guarantee future results it is a good starting point.  This strategy can be used to make bids on instances that can be used for dev environments and long running analysis jobs. It is also good for adding supplemental capacity to Amazon EMR clusters. We also recommend that our customers revisit their choices over time in order to ensure that they continue to use the pools that provide them with the most benefit.

Me: How can our customers access this price history?

Dmitry: It’s available through the console as well as programmatically through SDKs and  the AWS Command Line Interface (CLI).

We’ve also created a new web-based Spot Bid Advisor that can be accessed from the Spot page. This tool presents the relevant statistics averaged across multiple availability zones making it easy to find instance types with low price volatility. You can choose the region, operating system, and bid price (25%, 50%, or 100% of On-Demand) and then view historical frequency of being outbid for last week or a month.

Another example can be found in the aws-spot-labs repo on GitHub. The get_spot_duration.py script demonstrates how spot price information can be obtained programmatically and used to order instance types and availability zones based on the duration since the price last exceeded your preferred bid price.


Me: Ok, and then I pick one of the top instance pools and periodically revisit my choice?

Dmitry: Yes, that’s a great way to get started. As you get more comfortable with Spot typically next step is to start using multiple pools at the same time and distribute capacity equally among them. Because capacity pools are physically separate, prices often do not correlate among them, and it’s very rare that more than one capacity pool will experience a price increase within a short period of time.

This will reduce the impact of interruptions and give you plenty of time to restore the desired level of capacity.

Joshua: Distributing capacity this way also improves long-term price/performance: if capacity is distributed evenly across multiple instance types and/or availability zones then the hourly price is averaged across multiple pools which results in really good overall price performance.


Me: Ok, sounds great.  Now let’s talk about the second step, bidding strategies.

Joshua: It is important to place a reasonable bid at a price that you are willing to pay. It’s better to achieve higher availability by carefully selecting multiple capacity pools and distributing your application across the instances therein than by placing unreasonably high spot bids. When you see increasing prices within a capacity pool, this is a sign that demand is increasing. You should start migrating your workload to less expensive pools or shut down idle instances with high prices in order to avoid getting interrupted.

Me: Do you often see our customers use more sophisticated bidding tactics?

Dmitry: For many of our customers the ability to leverage Spot is an important competitive advantage and some of them run their entire production stacks on it – which certainly requires additional engineering to hit their SLA. One interesting way to think about Spot is to view is it as a significant reward for engineering applications that are “cloud friendly.”  By that I mean fault tolerant by design, flexible, and price aware. Being price aware allows the application to deploy itself to the pools with the most spare capacity available. Startups in particular often get very creative with how they use Spot which allows them to scale faster and spend less on compute infrastructure.

Joshua: Tools like Auto Scaling, Spot fleet, and Elastic MapReduce offer Spot integration and allow our customers to use multiple capacity pools simultaneously without adding significant development effort.


Stay tuned for even more information about Spot Instances! In the meantime, please feel free to leave your own tips (and questions) in the comments.

Jeff;

 

ProgrammableWebDaily API RoundUp: Google Proximity Beacon, Check That Bike!, Ooyala

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.

Footnotes

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