Protecting static websites hosted on AWS S3 public buckets with a username and password. AWS CloudFront Functions used to add HTTP Basic Authentication.| jamesthom.as
How to build successful developer relations organisations - lessons learnt after five years working in developer advocacy.| jamesthom.as
How to set up esbuild to compile TypeScript libraries for Node.js. Walk through building a TypeScript library with esbuild. Example configuration file and other hints and tips.| jamesthom.as
Explains why AWS S3 needs ListBuckets permissions to detect missing bucket files.| jamesthom.as
Creating dynamic PDFs with custom content from serverless functions. Using PDFKit library with a Node.js AWS Lambda function and HTTP APIs.| jamesthom.as
Debugging Github Actions locally using Docker images of the virtual environments.| jamesthom.as
Creating virtual serial ports for testing and debugging applications using Socat - a sysadmin tool for Linux.| jamesthom.as
Transferring files between object stores using massive parallelism with serverless functions. Using HTTP Range headers and Multi-Part Transfers to copy files between S3-compatible object stores with serverless.| jamesthom.as
Improving performance in serverless functions using WebAssembly. Use C, C++ or Rust code compiled to Wasm modules from Node.js serverless functions.| jamesthom.as
Use Cloud Object Storage to host static websites on IBM Cloud. Cloud Internet Services (Page Rules and Edge Functions) are used to support serving traffic from custom domains.| jamesthom.as
How to use self-signed TLS certificates with the Redis library on Node.js with IBM Cloud Databases.| jamesthom.as
Converting IBM Model Asset Exchange (MAX) Machine Learning Models into Serverless APIs using IBM Cloud Functions (Apache OpenWhisk)| jamesthom.as
Using activation identifiers to retrieve action results for long-running invocations using the Apache OpenWhisk platform API.| jamesthom.as
Using Worker Threads in Node.js v12 to improve performance in serverless platforms. This leads to reduced execution time and costs in serverless functions. Example uses IBM Cloud Functions (Apache OpenWhisk).| jamesthom.as
Running Web Applications on Serverless Platforms using a custom HTTP Proxy and Docker support in Apache OpenWhisk.| jamesthom.as
Setting up a continuous delivery deployment pipeline for a serverless application using Travis CI, The Serverless Framework on IBM Cloud Functions.| jamesthom.as
Using Serverless Functions to automate open-source committeer tasks on the Apache OpenWhisk project.| jamesthom.as
Controlling HTTP responses due to application errors in Apache OpenWhisk Web Actions when using Action Sequences.| jamesthom.as
Building a generic trigger feed event soruce for Apache OpenWhisk with event source plugins.| jamesthom.as
Listen to a subset of document change events in Apache OpenWhisk actions using filters functions with the CouchDB feed provider.| jamesthom.as
How to run large Java applications on Apache OpenWhisk. OpenWhisk's support for custom Docker runtimes means large Java libraries can be pre-installed into the runtime and excluded from application JARs.| jamesthom.as
Learn how to provision IBM Cloud application services with Terraform. This blog posts explains how to install Terraform and IBM Cloud provider plugin, configure terraform files with IBM Cloud services and then use the CLI to provision resources.| jamesthom.as
How can serverless applications trigger asynchronous tasks with loosely-coupled functions? Apache OpenWhisk provides an event publishing mechanism (using triggers and rules) that allows actions to publish events to invoke functions instead of calling them directly.| jamesthom.as
Making serverless applications Highly Available using Cloudant's cross-region database replication on IBM Cloud. IBM Cloud Functions applications in different cloud regions share application using cross-region replication.| jamesthom.as
Setting up custom domains for HTTP APIs using serverless functions on IBM Cloud Functions. Let's Encrypt is used to generate SSL/TLS certificates for custom domain before registering with IBM Cloud.| jamesthom.as
Using face recognition to find unlabelled photos on twitter with machine learning. TensorFlow.js and Serverless Cloud Platforms used to search for all tweets for a hashtag and compare images to user's profile photo. Uses IBM Cloud Functions (Apache OpenWhisk)| jamesthom.as
Using TensorFlow.js for Machine Learning on Serverless Cloud Platforms. Use serverless Node.js functions for visual recognition on image files using IBM Cloud Functions (Apache OpenWhisk).| jamesthom.as
Using TensorFlow.js for Machine Learning on Node.js. Use MobileNet models for image classification and visual recognition on local image files.| jamesthom.as
Monitoring Serverless Applications running on IBM Cloud Functions (Apache OpenWhisk) with IBM Cloud Log Analysis service. Custom dashboards used to visualise application issues using Kibana.| jamesthom.as
Serverless debugging Node.js applications on IBM Cloud Functions (Apache OpenWhisk). Using Docker to connect Chrome Dev Tools and Visual Studio Code to remote debugging service.| jamesthom.as
How to bind IBM Cloud service IAM authentication credentials to serverless applications on IBM Cloud Functions| jamesthom.as
How to use IBM Cloud Object Storage to store files for IBM Cloud Functions serverless applications. Demonstrating service provisioning, using client libraries and example code for the Node.js runtime.| jamesthom.as
How do you store files for serverless applications? Serverless runtimes do not provide a permanent file storage solution. Most users store data in object storage services provided by their cloud provider.| jamesthom.as
Configuring alerting rules using serverless application metrics for IBM Cloud Functions (OpenWhisk) using IBM Cloud Monitoring service.| jamesthom.as
Lessons learnt running a charitable organisation to help with the refugee crisis.| jamesthom.as
Running local instances of Apache OpenWhisk, an open-source serverless platform, during development and testing using Docker.| jamesthom.as
Visualising application metrics for serverless applications with Grafana for IBM Cloud Functions (OpenWhisk) using IBM Cloud Monitoring service.| jamesthom.as
Capturing runtime metrics for serverless applications with IBM Cloud Functions (OpenWhisk) using IBM Cloud Monitoring service.| jamesthom.as
Monitoring serverless metrics for IBM Cloud Functions (OpenWhisk) applications using IBM Cloud Monitoring service and Grafana.| jamesthom.as
Serverless Logstash Forwarder for pushing OpenWhisk actions logs into Elasticsearch using Logstash| jamesthom.as
Use OpenWhisk alarm trigger feed to handle advanced timer schedules like one-off events, firing events on an irregular schedule or creating dynamically ar runtime| jamesthom.as
How to use large applications on OpenWhisk. Mechanism for running serverless functions with external packages, libraries or dependencies. Uses Docker to build custom runtime for the platform with shared dependencies built in.| jamesthom.as
Speeding up Serverless Swift functions on OpenWhisk by deploying pre-compiled binaries.| jamesthom.as
Using Swift language to create Serverless functions with Apache OpenWhisk| jamesthom.as
Using extra Python libraries with serverless Python functions on OpenWhisk| jamesthom.as
Building an SMS notification bot for Slack using OpenWhisk and Twilio.| jamesthom.as
Using the serverless framework to build serverless applications for the openwhisk platform.| jamesthom.as
Serverless functions using Rust language on OpenWhisk.| jamesthom.as
Serverless functions using Go language on OpenWhisk.| jamesthom.as
Using Docker to support non-standard runtimes as serverless functions on OpenWhisk.| jamesthom.as
Adding Node.js NPM modules to serverless fuctions with OpenWhisk.| jamesthom.as
Managing Serverless application logs from OpenWhisk with Elasticsearch, Logstash and Kibana.| jamesthom.as
OpenWhisk workshop to help developers learn how to build serverless applications using the platform.| jamesthom.as
Updated OpenWhisk nodes now available for Node-RED| jamesthom.as
Building Serverless Applications using OpenWhisk| jamesthom.as
Using Docker to run Node-RED| jamesthom.as
Using OpenWhisk to run serverless Go functions| jamesthom.as
Developing an OpenWhisk feed provider for MQTT messages| jamesthom.as
Building intelligent bots with IBM Watson.| jamesthom.as
OpenWhisk serverless APIs with Bluemix and API Connect.| jamesthom.as
OpenWhisk serverless compute platform, javascript libraries.| jamesthom.as
Getting shell access by running remote commands on live docker containers on IBM Bluemix| jamesthom.as
Cloud Foundry Application Monitoring Bot For Slack| jamesthom.as
Exposing NPM Modules in Node-RED without creating new nodes| jamesthom.as
Updated IBM Watson nodes for Node-RED| jamesthom.as
Running Node.js applications on cloud foundry with Node.js version 4| jamesthom.as
Setting up a reverse proxy to route traffic based upon request locations for cloud foundry applications using nginx and docker| jamesthom.as
Running one-off administrative tasks for cloud foundry applications| jamesthom.as
Adding real-time support using CouchDB and Socket.IO| jamesthom.as
Updating Node-RED nodes for IBM Bluemix| jamesthom.as
Debugging stack issues on Cloud Foundry| jamesthom.as
Running Elasticsearch in the cloud with IBM Containers and Docker| jamesthom.as
Creating a Continuous Delivery Pipeline with IBM Bluemix and DevOps Services| jamesthom.as
Last month, a colleague was explaining he was not looking forward to an afternoon of long-distance conference calls. Having recently started using Slack for collaboration with their remote team, they lamented… I wish I could do my conference calls using Slack! …which got us thinking. Recent experiments with IBM Watson Speech To Text and Twilio on IBM Bluemix had shown how easy it was to create telephony applications. Slack publishes multiple APIs to help developers build custom “bots”...| jamesthom.as
IBM Watson cognitive services now available as nodes in Node-RED| jamesthom.as
Creating Custom Plugins for the Cloud Foundry Command Line Interface| jamesthom.as
Creating custom buildpacks for cloud foundry with docker| jamesthom.as
Using IBM Watson, IBM Bluemix and Twilio to handle medical queries over the phone| jamesthom.as
Using Blue Green deployment with IBM Bluemix| jamesthom.as
Review of Monki Gras 2013| jamesthom.as
Render Dijit widgets templates server-side using NodeJS| jamesthom.as
Speaking at LondonJS about the artificial intelligence behind IBM Watson| jamesthom.as
Discover how to use Dojo's build system, with static feature configuration flags, to produce an AMD loader that fits in just four kilobytes.| jamesthom.as
Disover how to use Dojo's build system, with static feature configuration flags, to produce an AMD loader that fits in just four kilobytes.| jamesthom.as
Using Dojo's MVC package to generate a TodoMVC application. This article looks at creating MVC Controllers, following on from Views.| jamesthom.as
Presentation materials from the IBM IMPACT 2012 conference| jamesthom.as
Debugging optimised Dojo applications is now possible using JavaScript source maps| jamesthom.as
Using Dojo's MVC package to generate a TodoMVC application. This article looks at creating MVC Views, following from Models.| jamesthom.as
Next month I’ll be presenting at IBM IMPACT 2012, IBM’s premier customer conference in Las Vegas from April 29th until May 4th. I’ve had three sessions accepted, full details below. If you’re attending the conference and want to say hello, please let me know. This week I was invited to present a preview of the joint session I’m doing with Dylan Schiemann at IMPACT for London AJAX. There was a really great crowd of over seventy developers waiting to hear all about AMD.| jamesthom.as
In this first article, we going to look at using DojoX MVC to define our application Models, showing the use of the new StatefulModel class. Later in the series, we’ll look at binding our defined Model to a View template, rendering the HTML output and hooking into user events. Introducing StatefulModels DojoX MVC uses a specific class for representing Models in the MVC pattern, StatefulModel. By using or extending this class, applications have access to a native JavaScript data model that i...| jamesthom.as
Before Christmas, Addy Osmani sent out the following tweet asking for a Dojo-version of the TodoMVC application. Reviewing their Github page, the project aims to allow developers to compare MVC frameworks by providing implementations of a sample Todo application using different toolkit’s MVC support. They currently have over a dozen entries for toolkits, including Backbone, JavascriptMVC and Spine with more coming soon but, unfortunately, no entry for The Dojo Toolkit.| jamesthom.as
Dojo 1.7 was released this month, giving users early access to lots of features that are going to be standard in Dojo 2.0, due late 2012. We’ve already been using early releases of Dojo 1.7 since the summer in my day-to-day role with IBM working on Watson, as we wanted to take advantage of the new module format, better mobile support and much more. With 1.7 now available, I wanted to share my experiences using it on a real project, showing developers what new features are available, how the...| jamesthom.as
September saw this year’s Dojo Conference hit Washington, D.C for two days. Attending as one of this year’s speakers, I was given the second slot on Saturday morning to talk about the Dojo Web Builder. The presentation covered why we built the tool, what it can do (including a live demo), a high-level overview of the architecture and finished looking at how users have been using the tool since it launched in April.| jamesthom.as
Details About James Thomas. Owner of JT Consulting Services.| jamesthom.as