Quick OpenWhisk Debugging Example

Let me start off by saying that this is not a post about debugging serverless with OpenWhisk. I want to write something up on that at a good high/broad level. Rather I want to share a quick example since something I wrote broke recently and I thought it would be a good “real world” use case of something going wrong, how I looked into it, and how I corrected it. I think debugging/monitoring is one of the most crucial aspects of a serverless platform, and something OpenWhisk itself needs some help on, but again, I’ll save that for a later post.

Read more

Integrating OpenWhisk with Your Node Application

In most of my posts on OpenWhisk, I either show running the actions via the CLI, or demonstrate them with the anonymous REST API end point. However, there is another way of using actions as well. Every time you use the CLI, it is making authenticated REST calls on your behalf. You can find the documentation for that API here: Using the OpenWhisk REST APIs While you make use of this via the CLI automatically, there may be times when you choose to use the authenticated APIs in your code as well.

Read more

TIL about Datalist and Display Limits

I’ve blogged about the <datalist> element a few times before (I’ll link to them at the end of this article), and while support is ok (if you ignore Safari and iOS), it’s one of my favorite HTML tags. It’s pretty rarely used (as far as I can tell) but has a real good practical effect much like the <details> tag. As a spec, it is a bit in flux. When I brought it up last time on Twitter, Šime Vidas brought up how there are different implementations/specs in play.

Read more

Updating NodeJS on Windows - Some Tips

I love Node, but I swear every time I go to update it I end up running into one problem or another. And this has been true for both Windows and OSX. I went through an update yesterday for the release of Node 8 and I thought I’d share what I ran into and how I corrected it. Please, please do not take this as the best recommendation. I simply want to point out a bug I ran into, how I got around it, and what I used to get me back up and running.

Read more

Handling Errors in OpenWhisk Sequences with a Combinator

As I build more powerful sequences in OpenWhisk, one of the issues I’ve run into is how to handle “routing” in sequences. Basically, given a sequence of A=>B=>C=>, there may be times when: B may throw an error B may be all I need to do and we can skip C A decides it wants to skip B B may throw an error but I want to keep trying for a while All of this is technically feasible, but not necessarily simple to set up.

Read more

OpenWhisk Webinar and Presentations for June

In June, I’ll be giving two presentations on Apache OpenWhisk. The first will be online (and free) on June 7 at 12PM CST. You can register for the event here: https://engage.vevent.com/index.jsp?eid=556&seid=90389 And if by some chance you happen to be in the great state of Louisiana and want to see me give the talk live, I’ll be giving the presentation to the Acadiana Software Group on June 14 at 6:30 PM.

Read more

Building the Serverless Superman

So yes - I built something stupid again. Recently I discovered the awesomeness that is @Big Data Batman. This is a twitter account that simply copies tweets with “Big Data” in them and replaces it with “Batman.” It works as well as you may think - either lame or incredibly funny. (At least to me.) Here are a few choice samples. Open any business publication and you’ll probably find an article about Batman.

Read more

My First Lynda Course - Learning Ionic

So this kinda snuck up on me (in terms of how quickly it got produced I mean ;), but I’m happy to announce my first course for Lynda.com (AKA LinkedIn Learning): Learning Ionic It’s a short course meant to introduce folks to Ionic 2 (but will work just fine with Ionic 3/X) and I think it’s a rather ‘gentle’ introduction for folks who have only seen Ionic 1 so far and are a bit worried about the jump to Ionic/Angular 2.

Read more

Creating a JSON Feed for Hugo

Recently a new specification was launched to recreate RSS in JSON, JSON Feed. For folks who may not be aware, RSS is an XML spec (well, multiple ones) for sharing content between sites. Blogs, primarily, and content-heavy sites typically make use of this. I’m not sure how many people outside of developers actually use RSS, but it’s still definitely a “thing” even if you don’t necessarily think of it when thinking about APIs.

Read more

Using URL Paths in OpenWhisk Web Actions

Time for another quick OpenWhisk tip. As you know (or may know!), when you create an OpenWhisk web action, you can pass parameters via the query string or via a form post. So consider the following trivial action: function main(args) { if(!args.name) args.name = ‘Nameless’; let result = { string:‘Hello ‘+args.name } return { headers: { ‘Access-Control-Allow-Origin’:’*‘, ‘Content-Type’:‘application/json’ }, statusCode:200, body: new Buffer(JSON.stringify(result)).toString(‘base64’) } } All this action does is say hello to a name that comes from the arguments passed to the function.

Read more