Whenever I try to use `jmap -heap`, which is usually when I’m in a hurry as things are going weird, it fails with: java.lang.RuntimeException: unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap Easily fixed by installing the OpenJDK debug symbols. I’m currently using the openjdk-8 package, so I install the openjdk-8-dbg package. I install without its recommended…
Charles Proxy now available on iOS : We are excited to announce that Charles Proxy is now available on iOS! With the iOS version of Charles you can capture and inspect network requests and responses on your iOS device. You can view metadata, headers and bodies in the app, so you can finally debug your app’s networking issues without a computer. Charles for iOS currently supports the following…
This guide is for adding GeoIP functionality to PostgreSQL 9.5 (and earlier) using MaxMind’s GeoLite2 CSV files. You can read about the MaxMind GeoIP2 CSV files , and download free versions . You’ll need the CSV files to continue. I create two tables; geoip_blocks and geoip_locations to contain the data. I load the English country names, but you could choose the language you want when you populate…
I use CloudFormation to create EC2 instances on AWS. I use this UserData script to install the CloudFormation scripts on the EC2 instance and then to run the init and signal steps. "UserData": { "Fn::Base64": { "Fn::Join": [ "“, [ ”#!/bin/bash -x\n", "apt-get update\n", "apt-get install -y python-pip\n", "pip install…
Create the VPN Connection in the VPC Management console on AWS, using static routing, then download the Generic configuration. The downloaded text file contains some values that you’ll need. There are two VPN configurations in it. I just hook up one on the server. Perhaps if you have two VPN servers you could set up one VPN on each. These are the values of interest in the downloaded text file:…
Cocoapods supports Swift 3 as of 1.1.0. Cocoapods sets the SWIFT_VERSION of the pod targets to match the SWIFT_VERSION set on your project . This is a pretty clever solution to Swift evolution, and you can read more about it in the Cocoapods 1.1.0 announcement blog . Note the bold text on project in the previous paragraph. You need to set the SWIFT_VERSION Build Setting on your project, not just…
I have setup exim4 to sign outgoing email using DKIM, with the goal of improving deliverability. I have setup exim4 to handle multiple outgoing domains with different keys. The key to use is chosen based on the domain name of the From header, not the envelope mail from. This is because I believe DKIM verification uses the From header ( https://dmarc.org/wiki/FAQ ). I based my approach on…
How to prevent updating of a specific package? : Hold a package to prevent it from being upgraded unless you specifically upgrade it. I use this to hold postgresql packages, as installing upgrades results in a restart of the database server and a micro-outage that I want to better manage. apt-mark hold postgresql-9.5 Then the postgresql and postgresql-contrib (and sometimes client) packages appear…
Setup Ruby on macOS without sudo : Setup ruby on macOS without sudo and with the latest version! It’s clear that using sudo to install gems is a bad idea. And you’re stuck with an older version of ruby and gem. But is it a lot of work to change your ways? I thought so. But it isn’t. First I nuke my gems from orbit (it’s the only way to be sure). Some of the gems are default gems so we can’t…
At long last, Charles 4 has been released! Charles 1 was released in 2002, nearly 14 years ago. Since then we’ve been through Charles 2 and Charles 3, both big upgrades. But for the past 11 months we’ve been hard at work on the biggest upgrade we’ve ever made to Charles! Charles 4 includes an upgrade to the latest and greatest HTTP standard, the latest and greatest IP standard, and the biggest UI…
How to install a specific version of a ruby gem? : Say you need to run the pre 1.0 Cocoapods? sudo gem install cocoapods -v 0.39.0 pod _0.39.0_ install
Disable documentation generation for gem update : gem update is the slowest thing my computer does. This makes it not so slow. Put it in your ~/.gemrc and never look back: gem: –no-document
letterboxd : App. This week we launched our Letterboxd iPhone app as a free download through Apple’s App Store. We’re ecstatic to put this app in your pocket (18,000 of you have grabbed it already!), and tremendously excited about how it will evolve the way we use Letterboxd. This was a monumental achievement for the team at HQ (particular hat tips to Grant , Ryan and Karl ); the scope of the API…
I always have to look up how to do queries on varnishlog. This is a good link for brief docs on the query language: https://www.varnish-cache.org/docs/trunk/reference/vsl-query.html varnishlog -q ‘ReqURL ~ “^/about/” and ReqHeader:User-Agent ~ “Safari”’