Going Serverless with OpenWhisk

Like I assume most of you have, I’ve been hearing a lot about “serverless” recently and while I had a passing understanding of what it was, I had not actually spent any time playing around with it. This week I got a chance to play with OpenWhisk, IBM’s open source offering in this area and I have to say I’m pretty blown away by how cool it is. What follows is a brief explanation of what serverless means to me, why I think it is something to check out, and, of course, some sample code as well.

Read more

Integrating Intl with Ionic

Before you continue, a quick warning. This article discusses how to localize numbers and formats for an Ionic 2 app using the Intl spec. Based on my reading, this should actually be baked into Angular 2 itself. In my testing, this was not the case. I could be wrong. I could be right and the feature is just bugged. Just know that what follows may not be technically necessary.

Read more

Having trouble emulating iOS with Cordova/Ionic?

Ok, so this one was a doozie. A few days ago, I got a bit ticked off that whenever I emulated iOS I was getting an iPhone 5 device. I know it’s just a simulation, but I wanted an iPhone 6 or higher to be the default. It’s easy enough to pass a flag to the emulate command to tell it what device/sdk to use (Important note for targeting iOS Emulators in Cordova), but as I have the memory of a kitten, I thought it might be easier to simple delete the older emulators.

Read more

LoopBack 3.0 Released

Christmas arrived early for LoopBack developers - today LoopBack 3.0 was released. To update, go into terminal and run the following: npm install -g strongloop Then create a new application. Notice that 3.x is now marked as current, but isn’t the default. I’m filing a bug report for that now. So what changed? You can read a complete list of release notes here: 3.0 Release Notes Note that as of right now, the notes say 3.

Read more

My Entirely Not-Biased Review of Rogue One

Unless you’ve been living under a rock the past few months, you’ve probably heard that a new Star Wars film was released this past week, “Rogue One.” Like “The Force Awakens”, I’ve been looking forward to this for quite some time. Obviously what follows will be my heavily biased review - I’m a huge Star Wars fan and don’t have the most critical eye when it comes to the subject matter, but if you want to know what I thought, read on.

Read more

Advent of Code - Day 13 and 14

Every day I fall farther and farther behind in the Advent of Code, but I figure this will give me something fun to do in the week of Christmas. Days 13 and 14 were a bit rough, but I got through them (with a lot of help). Day 13 Day 13 basically involved generating a maze and then finding the solution. As you can imagine, this is a well known problem and loads of solutions exist.

Read more

Advent of Code - Day 9 to 12

I’ve got a bunch of code to share so let’s get started. As before, be sure to check my repo for the full code of my solutions. Day 9 Day 9 was a doozy. Basically the idea was to work with a compressed string, think a zip file, and decompress it. Part one used this rule: Given the existence of (XxY) in a string, it means that you repeat the next X characters Y times.

Read more

Working with Ionic Native - Contact Fixer

I’ve blogged a few times now about Ionic Native, but if you’re new to it, you can think of “Angular2/Ionic2 Friendly Wrappers” for many different Cordova plugins. Today I’m sharing what may be my coolest demo yet. No, wait, seriously, it is, honest! This demo does something I think every phone should have built in, and if I can get off my lazy butt, I’ll be submitting this to the App Store this week.

Read more

Advent of Code - Day 8

Yes - I’m falling behind, but let’s just pretend today is still the 8th. Day 8 was a difficult one (I feel like I’m saying that more and more) as it required working with 2D arrays, something I always have trouble with. Specifically - you needed to represent a 2D array of cells on a screen. You then had to take input in the form of: rect AxB - which would turn on lights in a rectangle A wide and B high in the upper left corner of the screen.

Read more

Updates to Client Storage for the Browser

I made some edits to this post after some feedback from Dru Knox, a Chrome PM. I’ve marked them with “Edit:“, so please be sure to note those changes!

I’ve been interested in client-side storage for a few years now. (And in fact, last year I wrote a book on it as well.) When I first began to dig into the topic, my focus was on the various APIs themselves. In other words, what were the mechanics of actually storing and retrieving data. What I found is that we had multiple options, some easier than others, but in general, it was pretty cool to have a way to store data on the client for both performance and offline support. However… where things began to fall apart, and rather quickly, was on the higher level concept of how this storage was managed on the device itself. Specifically, how do you know your data will actually persist when you store it and what will the browser do when, and if, it determines you’ve stored too much. I played around with this a bit last year:

Read more