Home Network Monitoring

Every once and a while my Comcast-based cable service gets into a little bit of a wonky state. It works, but then, it does, but then it does, but then it doesn’t… I’m sure it’s probably a unique experience. Anyway, when it does, I’ve found that I have nearly no leg to stand on when citing ICMP response times, download rates, and cable modem stats and events over time. All I can give the “support staff” is what’s happening now.
Read more

Chasing Chase Bank Rewards

Update Dec 8th, 2017: Chase recently made a change disallowing a single customer from benefiting from rewards on both a Sapphire Preferred and Sapphire Reserve card. Boo. Anyway, that changes the potential bonus gain in this article by about a 1⁄3. Their Sapphire Credit products are still great for you and your spouse, though! Twenty-five percent return on spending w/ Chase Back in May, I switched from a once local, now remote credit union with poor consumer banking tech to Chase.
Read more

BAAAHS Lights: An overview

BAAAHS, the Big Ass Amazing Awesome Homosexual Sheep, is known for its beats, its jaw dropping appearance, and its grand entrance. This will cover its bedazzling light shows and how they happen! Intro BAAAHS nighttime illumination is made possible by roughly 140 skin panels, outlined with LEDs in tubes and sharpies that function as its eyes. BAAAHS’ server aims to give producers/DJs some amount of live influence over pre-programmed shows while they execute.
Read more

Groovy Snippets: Face detection with OpenIMAJ

Building on the previous post, this snippet leverages concurrent execution and OpenIMAJ for facial detection and analysis. OpenIMAJ implements types a variety of facial detection algorithms in its library. For this exercise, we use the: HaarCascadeDetector Frontal Keypoint Enhanced, which wraps the HaarCascadeDetector The results of the script were used to narrow the possible matches within the dataset prior to execution, leveraging cloud infrastructures. #!/usr/bin/env groovy @GrabResolver(name='OpenIMAJ Maven Repo', root='http://maven.
Read more

Groovy Snippets: Content detection w/ tika

A few months back I had to process a few million, a few terrabytes of assets that were missing content extensions. I needed to filter the assets so that I could stream assets that were images to 3rd party provider’s API for further analysis. Rough estimates for the number of images in the few million assets came out to no more than about an 1⁄8. Fortunately I had access to the data on a particular machine and used Tika to quickly zip through the assets and identify those that met my required content types.
Read more

Intro to terraform, IaC

why IAC? deterministic infrastructure documentation / clarity self-service version control terraform introduction open source, written in GO, leveraged in HCL (similar to JSON) declarative – code describes end state instead of the journey to end state limited expressive power, but tools like interpolation exist timing and dependency hierarchy are handled by resources definitions state: execution compares current state vs. actual state vs. desired state core terms providers - AWS , google compute, azure, etc resources - most things data sources - data queried at runtime from provider(s) variables variable interpolation and interpolation functions output variables modules providers provider "aws" { region = "us-west-2" } resources … likely make up the bulk of your IAC.
Read more

AEM, Sling selector-based cache override DDOS attack vector

Adobe Experience Manager (AEM), formerly known as CQ, is a best of breed, very popular, very expensive content management system consisting of many Apache-Foundation open source and proprietary Adobe Marketing Cloud tech. In AEM everything is content and Sling is the glue that resolves HTTP requests via the JCR and renders HTTP responses. One of the constructs in Sling’s URL decomposition is that of selectors. Selectors are none to many “attributes” found immediately after a resource path but before the resource’s extension.
Read more

Serving static HTML from Cloudfront backed by a web-hosting enabled S3 bucket

Two weeks ago I transitioned my personal site, this site, to an SSL-based, secure only site. Prior to the transition, the site was served from s3 storage with web hosting enabled. Now the site is served from CloudFront backed by an s3 origin. I had done this before for work, for clients, but never with static web hosting. During this exercise, I found a documentation gap in the process, specifically with Terraform…
Read more

Evaluating API Gateway as a Proxy to internal AWS resources via Lambda and HTTP Proxy

I’ve spent the last few weeks at work investigating and evaluating API Gateways to drop in front of our present architecture. One of the candidates for evaluation was Amazon’s API Gateway. I had used API Gateway in the past for little things here and there, but never as a “simple” proxy layer to existing infrastructure. I set up a simple test and wrote a bunch of code to generate the necessary infrastructure and executed the tests…
Read more

Canary Sensor Data Capture, Serverless, on AWS

If you’re reading this, you likely own a Canary and you’re likely one of the many people on twitter requesting an API from Canary. For at least a year Canary has acknowledged those requests and redirected them to product. As consumers, we have yet to see an API or any concrete movements towards one. The only interface Canary has that is close to an API are the calls their angular-based webapp makes when you login to the dashboard.
Read more