REST APIs explained with Peruvian history, culture, and my inlaws

How often have you accomplished something really worthwhile all by yourself, in a complete vacuum? You did something good without any help or advice from anybody, no information, materials or services from any outside sources? Perhaps you have but most of the time when we accomplish something worthwhile it isn’t in a complete vacuum but rather with help, inspiration or information from outside sources.

Web applications are much the same: most web applications nowadays aren’t stand alone, siloed applications anymore but share information with other computer systems. Web applications can source news, weather, maps, feedback widgets and many more from other computer systems and similarly provide their own information to outside systems.

REST API is a bit of a buzzword nowadays in programming but essentially it’s an architectural style of programming to allow independent computer systems to communicate with each other. For many developers the nuts and bolts are actually easier to understand than the concept and this past week I found myself at the office explaining the concept of REST APIs using Peruvian history, culture, and my inlaws. Listen in!

Let’s say Bloomie got tired of mellow and decided to run some IKN content. And the Economist, Otto’s alma mater and a handful of his blogging buddies all wanted to run IKN content as well. Prior approval and a small nominal fee. Otto decides to make the following content available to other computer systems:

  • Top three most visited IKN posts
  • Chart of the day
  • Friday OT

The programmer bloke sets up a new URL at api.incakolanews.com which is essentially the home page of the machine readable version of IKN. The output of this URL is not human-readable, it’s some machine-readable format like JSON. Asi:

{ “links”: [
{ “href”: “api.incakolanews.com/top-3-visited-posts”,
“rel”: “Top three most visited IKN posts” },
{ “href”: “api.incakolanews.com/chart-of-the-day”,
“rel”: “Chart of the day” },
{ “href”: “api.incakolanews.com/friday-ot”,
“rel”: “Friday OT” }
]
}

All that jibberish just means that the machine readable home page of IKN has no content other than 3 links to the specific sections Otto makes available to client computer systems.

But you wanted to hear about my inlaws, and Peru, no?

Once upon a time there were big land owners in Peru, you can still see the abandoned mansions around the Peruvian countryside. Under the military government of Velasco in the late 1960s land owners were expropriated. Then followed a collapse of the agricultural economy and massive migration to the cities. Among the land owners who were expropriated were my wife’s family. They weren’t big land owners or wealthy by today’s standards but they were land owners nonetheless. Today divisions remain in Peru, not just between rich and poor but who you are, where you come from, the part of town you live in, often determines how you live more than your personal economy does.

Better if Mamacita Linda doesn’t hear about this but it’s possible every now and then I might have vented at the office about my inlaws, how supremely spoiled some of them are. Not in terms of material possessions but rather “I’ll be attended, any time all the time”. I know that sounds terribly harsh but maybe they were just a product of their environment. Maybe they still hold a grudge over the expropriations, on some level I could understand.

Back to the REST API. APIs are big money, not the kind of “can I write some sponsored content on your blog and pay you $0.35 for every 2 million clicks” kind of money. APIs provide your core content or functionality to other computer systems, so if your content or functionality has value, your API is worth a lot of money. The overriding concern then in programming an API is to make life easy on your client applications. The easier your API is to consume, the happier your clients will be.

If I had to write the fictional IKN API, the only code Bloomie and all of Otto’s other clients would need is this:

<!— IKN JS library — >
<!— script source here — >
<!— Load and render content from IKN REST API — >
var IKNcontainer = document.getElementById( the DOM element where we want to show IKN content );
IKN.load(IKNContainer);

Five lines of code, give or take. Of course there’s a lot of work on the IKN side to make this possible but on the client side 5 lines of code should be all that’s needed to present the information to the end user and allow the end user to navigate through the content provided by the API.

The other day some of our developers were working on code for the next phase of the CoolCalc applications and a whole bunch of code was in the process of being written for client applications. I struggled to explain the REST API concept for a moment. You see where this is going.

“Think of the client applications like my wife’s aunt so-and-so!”

Not to generalize but it isn’t sarcasm or an exaggeration to say some children of expropriated Peruvian land owners don’t know how to cook a hard boiled egg. They don’t want to know how to cook a hard boiled egg. Obviously – in their mind – the hard boiled egg should be served for them. Once I’m done you can clean the table.

A REST API should be designed as if the client applications are those types of Peruvian inlaws. Our developers are from all types of backgrounds but every one of them understood 😉

IMG_3673

Abandoned hacienda of expropriated Peruvian land owners, near Paruro.

I have bad news for you

Did you know only sexy people read this blog? Sure you did! Other than that we get a pretty good mix but for all you sexy people who aren’t 3×7 anymore I’ve got some bad news:

I just heard Avril Lavigne on the radio. On the classic rock station.

Avril Lavigne
Classic rock.

If you’re like me, you’re older than you feel 😖

Kiwicha chicken strips

We’re having friends over tonight so you know what that means: papi gets to cook his super world famous Kiwicha chicken strips. Seriously, kids come from far and away to eat my Kiwicha chicken strips. For full disclosure, they also come over because I serve Mamacita Linda and all the other mamacitas fernet con coca.

Kiwicha, Amaranthus caudatus or Love-lies-bleeding if you prefer is a staple here in the Andes. You people in the industrialized world – at least most of the readers of this fine blog hail from those parts – now call Kiwicha a “super food” but that’s only because you’re so used to eating processed, industrialized food-like substances that anything natural like or milk or honey is now considered a super food up there.

The recipe for my world famous Kiwicha chicken strips? There isn’t a recipe per se because in my kitchen everything is al gusto but the secret is you need 2 bowls: flour in one bowl, with condiments of your choice, and not-too-liquidy liquid in a second bowl. The key to beautiful golden crisp chicken is this: first you roll the chicken in the flour, then dip in the liquid and then back again in the flour. When all the chicken strips are ready, fry 8 or 9 minutes (at 3,400 meters elevation, may be a few minutes less at lower altitudes) and eat!

It works with any kind of flour but I use about 50% Kiwicha and 50% white flour. Sometimes I’ll use 50% Quinoa which works just as well as the Kiwicha. When you use more than half Kiwicha (or any other darker color flour) it’s a bit trickier to obtain the nice golden crisp color. The liquid where the pollitos go “swimming” consists of 50% milk, 50% cerveza, some eggs and a dab of flour. Both bowls get salt, pepper, whatever condiments spin your propeller on any given day.

Fair warning: when you have 2 or 3 kids that “help” you cook, it sometimes gets a wee bit messy. If you do the liquid just right, have a fire hose ready to wash their little hands afterwards.

Postcard for Jeroen

IMG_5011

Playa Platanales near Ilo, Peru

Yes I know it’s 2018 and it’s a terrible thing that I would put a picture of a girl on the blog just because she’s cute. Spare me your righteous lecture and hear me out:

  • My second cousin Jeroen is an only child. He’s a military man who hasn’t started a family yet.
  • Jeroen’s mother is an only child.
  • Jeroen’s 95 year old grandmother is the only living family member of her generation (ie. my grandparent’s generation)

So you might imagine if there was ever a guy who’s under some external pressure, my poor cousin Jeroen is that guy. Jeroen needs to fly out to Peru and find out who’s in that picture.

Peru’s constitutional crisis explained

  • The President is corrupt, incompetent and does not act with the best interest of the country in mind.
  • Congress and the Judicial branch are corrupt, incompetent and do not act with the best interest of the country in mind.
  • 60% of people working in public service are incompetent, corrupt and do not act with the best interest of the country in mind.

Why don’t cameras have an “inebriated” setting?

Look this is the least bad picture from Mamacita’s birthday bash, eat the cake moment. Whatever the picture taker person tried to do obviously didn’t work. The camera has an “auto” setting but inebriated people don’t use “auto” settings any more than middle age guys ask for directions. Hey Kodak & co, don’t be a bunch of stiffs. Add an “inebriated” mode to your products already and preserve millions of happy moments for future generations!

IMG_5123

No good pics but the party was a blast, take my word for it 🙂

Dear Google

Beauty is in the eye of the beholder. I do not give a cuy’s behind what you think my web site should look like. The whole freaking internet is starting to look “the same” because every web designer and their sister are scared that Google won’t show their pages in search results if they don’t follow Google’s design guidelines.

Rant over.