Serverless PHP on AWS Lambda

For all those of you who want to try out Amazon Lambda with PHP, here’s a quick and simple guide as to how to set it up: Serverless PHP on AWS Lambda.

This is some pretty exciting stuff!

Machine Learning 101 by Jason Mayes

There is a tonne of information both online and offline on the subjects of Artificial Intelligence and Machine Learning. Some resources provide just the bare minimum introductory information. Others dive deep into specifics. But I haven’t seen one that is as easy to follow as Jason Mayes’ Machine Learning 101 slides deck.

It’s so easy in fact that is probably useful to even the non-technical people who want to know how this whole AI thing works. I particularly liked how the slides are separated into green background for general knowledge and blue background for in-depth knowledge, making them easy to skip. I also find the balance between the details in the slides and the further reading / watching resources to be just right.

A Serverless Sequence Diagram

Paul Hammant has a quick and simple blog post illustrating the request-response sequence in the web application on a serverless infrastructure.  I find it quite useful as a reference, when explaining serverless to people who are considering it for the first time.

This stuff and the abandonment of names:ports in the config is a key advance for our industry. It is like a limiting Unix problem has been overcome. While it is still is impossible for two processes on one server to listen on the same port (say port 443), it is now not important as we have a mechanism for efficiently stitching together components (functions) of an application together via the simplest thing – a name. A name that is totally open for my naming creativity (ports were restricted if they were numbered below 1024 and also tied to specific purposes) . We’re also relieved of the problem of having to think of processes now, and whether they’ve crashed and won’t be receiving requests any more. Here’s a really great, but rambling, rant on a bunch of related topics by Smash Company that you should read too as it touches on some of the same things but goes much broader.

Amazon Rekognition enhanced capabilities


Amazon Machine Learning Blog announces some very significant improvements to the Amazon Rekognition – their service for image and video analysis.  These particular changes are improving the face recognition technology.

“Face detection” tries to answer the question: Is there a face in this picture? In real-world images, various aspects can have an impact on a system’s ability to detect faces with high accuracy. These aspects might include pose variations caused by head movement and/or camera movements, occlusion due to foreground or background objects (such as faces covered by hats, hair, or hands of another person in the foreground), illumination variations (such as low contrast and shadows), bright lighting that leads to washed out faces, low quality and resolution that leads to noisy and blurry faces, and distortion from cameras and lenses themselves. These issues manifest as missed detections (a face not detected) or false detections (an image region detected as a face even when there is no face). For example, on social media different poses, camera filters, lighting, and occlusions (such as a photo bomb) are common. For financial services customers, verification of customer identity as a part of multi-factor authentication and fraud prevention workflows involves matching a high resolution selfie (a face image) with a lower resolution, small, and often blurry image of face on a photo identity document (such as a passport or driving license). Also, many customers have to detect and recognize faces of low contrast from images where the camera is pointing at a bright light.

With the latest updates, Amazon Rekognition can now detect 40 percent more faces – that would have been previously missed – in images that have some of the most challenging conditions described earlier. At the same time, the rate of false detections is reduced by 50 percent. This means that customers such as social media apps can get consistent and reliable detections (fewer misses, fewer false detections) with higher confidence, allowing them to deliver better customer experiences in use cases like automated profile photo review. In addition, face recognition now returns 30 percent more correct ‘best’ matches (the most similar face) compared to our previous model when searching against a large collection of faces. This enables customers to obtain better search results in applications like fraud prevention. Face matches now also have more consistent similarity scores across varying lighting, pose, and appearance, allowing customers to use higher confidence thresholds, avoid false matches, and reduce human review in applications such as identity verification. As always, for use cases involving civil liberties or customer sentiments, where the veracity of the match is critical, we recommend that customers use best practices, higher confidence level (at least 99%), and always include human review.

Have a look at their blog post for some examples of what the machine can recognize as a face.  Some of these are difficult enough to treat many humans, I think.

AWSome Day Athens 2018


Last week I’ve attended the AWSome Day Athens 2018 (huge thanks to Qobo for the opportunity).  There aren’t that many technology events in Cyprus, so I’m constantly on the lookout for events in Europe.

AWSome Day Athens is part of the Amazon’s AWSome Day Global Series, which are one day events organized all throughout the world.  The events are usually for a single day, featuring the speakers from both Amazon AWS team and some of their prominent clients from the area.  AWSome Day Athens 2018 was done in partnership with Beat.

Continue reading “AWSome Day Athens 2018”

IBM To Acquire Red Hat


Here are some huge news to wake up to on this Monday Morning: IBM To Acquire Red Hat, Completely Changing The Cloud Landscape And Becoming World’s #1 Hybrid Cloud Provider.

That’s a lot to process in the morning.  But if Red Hat was to be acquired by someone, I think IBM is one of the better choices.  The deal size is $34 billion … and people are still saying that there is no way to make money with Open Source Software.

Here’s the story at Slashdot, which will get quite a few flame wars as the day progresses.

Creating a 1.3 Million vCPU Grid on AWS using EC2 Spot Instances and TIBCO GridServer


This Amazon AWS blog post provides a great insight into the benefits of the cloud computing in general and Amazon AWS in particular.  The whole thing is well worth the read, but here are a few of my favorite bits.

The scale:

The grid grew to 61,299 Spot Instances (1.3 million vCPUs drawn from 34 instance types spanning 3 generations of EC2 hardware) as planned, with just 1,937 instances reclaimed and automatically replaced during the run, and cost $30,000 per hour to run, at an average hourly cost of $0.078 per vCPU. If the same instances had been used in On-Demand form, the hourly cost to run the grid would have been approximately $93,000.

The size of the Amazon AWS customers:

1.3 million vCPUs (5x the size of the largest on-premises grid)

The evolution of computing power over the last few years:

To give you a sense of the compute power, we computed that this grid would have taken the #1 position on the TOP 500 supercomputer list in November 2007 by a considerable margin, and the #2 position in June 2008. Today, it would occupy position #360 on the list.

Now, just for fun, exercise the idea of building something like this in house…

PHP application logging with Amazon CloudWatch Logs and Monolog


AWS Developer Blog ran this post a while back – “PHP application logging with Amazon CloudWatch Logs and Monolog“, in which they show how to use Monolog and Amazon CloudWatch together in any PHP application.  It goes beyond a basic configuration of connecting the two, all the way into setting up log metrics, etc.

Distributed architecture concepts I learned while building a large payments system


Gergely Orosz, an engineer who worked at Uber on the large scale payments system used by the company, shares some of the distributed architecture concepts he had to learn in the blog post titled “Distributed architecture concepts I learned while building a large payments system“.

The article is very well written and easy to follow. But it’s also a goldmine of links to other resources on the subject.  Here’s a list links and concepts for a quick research and/or click-through later: