GraphIt – high-performance graph domain specific language

GraphIt is a high-performance graph domain specific language.  If you are involved with graph data structures (web, social networks, maps, and so on and so forth), check it out.  It’s sounds pretty cool.  Here’s a 20 minute video of a talk that does an overview of the language and some examples.

GraphIt is open sourced under MIT license.  Here’s the GitHub repository.

CurlMail – easy way to send emails with cUrl

I am a big fan of small and simple yet practically interesting ideas, like this one.  CurlMail is a super easy API service that allows one to send emails from the command line, using nothing but curl, or a similar HTTP client.

It’d be extra cool if it there was a GitHub link to it too.  But even if it’s not openly available, one could use the service for emails which are not sensitive and implement something similar from scratch in a few minutes for private use.

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.

Learn Git Branching

Learn Git Branching” is a very cool, interactive tutorial for branching in git version control.  It starts off with the very basic concepts, even covering simple commits, and continues step-by-step all the way to merging, cherry-picking, rebasing, and working with remotes.

Super cool!

Archiving web sites

LWN runs an interesting article, covering different ways of archiving a website.  It sounds trivial, but it’s not.  Even the simplest of ways – wget – will probably take you a few dozen attempts to figure out the following:

$ wget --mirror --execute robots=off --no-verbose --convert-links \
       --backup-converted --page-requisites --adjust-extension \
       --base=./ --directory-prefix=./ --span-hosts \
       --domains=www.example.com,example.com http://www.example.com/

There a few other interesting tools (like pywb) mentioned.