TL;DR If you are are running into problems with ListObject or any other List command using the S3 SDK, make sure your policy statement specifies List at the bucket level, and Get at the object level. Wrong { "Version": "2012-10-17", "Statement": [ { "Sid": "S3Config", "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::bucket-name"… Continue reading AWS S3 Policies List* vs Get*
RIFM: Right-Sizing – Provisioning Instances to Match Workloads
Save 70% of your monthly bill by matching your instance types and sizes to the average performance and capacity needed. Dynamically scaling resources like S3, Lambda need not apply.
RIFM: Best Practices Design Patterns: Optimizing Amazon S3 Performance
Whitepaper (Amazon) Whitepaper (Backup) TL;DR If you walk away with anything, it should be this: Amazon S3 can handle whatever you throw at it, as long as you follow the rules. It can be as fast as you need (3,500 PUT/COPY/POST/DELETE and 5,500 GET/HEAD requests/second/prefix), scales horizontally seamlessly across a wide pool of IP addresses… Continue reading RIFM: Best Practices Design Patterns: Optimizing Amazon S3 Performance
Compute Midwest 2016
I had the pleasure of attending Compute Midwest 2016 today. There was a fantastic speaker line up with a few Kansas City natives. Bibop Gresta - COO of Hyperloop Transportation Technologies Bibop talked about their work on the Hyperloop. The most striking thing about HTT to me is not the technology but the way they're creating and innovating… Continue reading Compute Midwest 2016
Changing Namecheap DNS Records
We've been doing quite a few server migrations recently and ran into a few peculiarities with changing nameservers on Namecheap. First and foremost: No trailing periods (.) AWS Route 53 and other hosting providers will give you NS records with a trailing period. If you use a trailing period in a nameserver record for Namecheap… Continue reading Changing Namecheap DNS Records
Google Analytics Pageview and Angular 2
There are NPM packages for implementing various analytics providers in Angular 2 but for simpler requirements there isn't always a reason to include Yet Another Dependency. At it's most basic implementation what we usually need to do is track pageviews. To do so we need to watch the Angular 2 router (or your router of… Continue reading Google Analytics Pageview and Angular 2
Loading Localhost from Mac to iPhone and Android
Testing your local environment against Xcode and Browserstack is great but at the end of the day they are still just emulators. If you need to test against an actual mobile device it is useful to load your current local environment on a mobile device and do your testing immediately before you push to a… Continue reading Loading Localhost from Mac to iPhone and Android
TypeError: Cannot read property ‘visitStatement’ of undefined
Quick tip: When working in Angular 2 if you get an error that looks like: EXCEPTION: TypeError: Cannot read property 'visitStatement' of undefined Or: EXCEPTION: Error: Uncaught (in promise): TypeError: Cannot read property 'visitStatement' of undefined Try checking your code for an empty 'click' event binding (<component (click)=""></component>). If the event is left empty it can… Continue reading TypeError: Cannot read property ‘visitStatement’ of undefined
Stress Testing with Loader.io
Sendgrid Labs has a great tool for stress testing sites and applications called Loader.io. To get started all you need to do is upload a small text file with a unique key from Loader.io into the root of your site to verify ownership, then start running your tests. In the free version you can hit… Continue reading Stress Testing with Loader.io
Dealing with CSS Color Variables
What methods are you and your teams using to define Sass and LESS or CSS color variables? Colors are one of those things that can be interpreted differently pretty easily, and are used throughout your entire project. One method that has worked well for some of my teams thus far is to use a single defined source… Continue reading Dealing with CSS Color Variables