Journal Archives About Books Talks
The Kingdom of Speech
reviews

The Kingdom of Speech

More of an extended Medium rant than book, Wolfe paints Darwin and Chomsky as arrogant, ego-driven, and vindictive toward their contemporaries while providing less evidence for those accusations than he says they provided for their theories. Wolfe's over-the-top dramatic retelling of events resembles an episode of the 1960s Batman TV series. His takedowns of Darwin and Chomsky aren't as dramatic as he seems to think, and his own conclusion lacks evidence.

By the end, it felt like waiting for the check after dinner with an obnoxious business associate who has had one too many.

Valiant Ambition: George Washington, Benedict Arnold, and the Fate of the American Revolution
reviews

Valiant Ambition: George Washington, Benedict Arnold, and the Fate of the American Revolution

Nathaniel Philbrick is one of my favorite non-fiction writers, and this title did not disappoint. Going in, I must admit I knew almost nothing of Benedict Arnold beyond his status as a byword for traitor.

Philbrick portrays a remarkably consistent Arnold in which the character traits that led him to battlefield heroics also led him to give up the cause for which he had sacrificed. I enjoyed the interwoven storylines and the historical backdrop in which Washington, the Howe brothers, and others made the choices they did.

I wish there had been a longer ending that told more of Arnold's service in the British army.

linked

asdf: Extendable version manager

If your work involves multiple languages and multiple tools for managing versions, check out asdf, an extendable version manager that provides a single consistent interface for managing them all:

# List all installed ruby versions
❯ asdf list ruby
1.9.3-p545
2.1.2
2.2.3
2.2.4
2.2.5
jruby-9.1.6.0

# Install a new ruby version
❯ asdf install ruby 2.3.3

# List available nodejs versions to install
❯ asdf list-all nodejs

# Install a new nodejs version
❯ asdf install nodejs 7.7.2

I've been using asdf as my primary version manager for Ruby and Node for a few weeks and am really liking it.

h/t Adam

linked

A CLI for Amazon Athena

I've been enjoying Amazon Athena to analyze our application event data.

In case you haven't played with it yet, Athena allows you to query data in S3 using SQL. My only complaint so far is having to use the web interface to manage schemas and run queries. Since Amazon offers a JDBC driver for Athena, I decided to build my first JRuby app - a command line interface for Athena catalogs.

You can run queries:

❯ cat queries/count-by-port.sql
SELECT COUNT(*) AS count, elb_name
FROM sampledb.elb_logs
GROUP BY elb_name
ORDER BY count DESC
LIMIT 10;

❯ athena query queries/count-by-port.sql
COUNT  | ELB_NAME
-------|-------------
151901 | elb_demo_006
151886 | elb_demo_009
151753 | elb_demo_001
151284 | elb_demo_002
151062 | elb_demo_004
150503 | elb_demo_008
149934 | elb_demo_005
149122 | elb_demo_007
148761 | elb_demo_003

manage schemas,

❯ athena table show sampledb.elb_logs
CREATE EXTERNAL TABLE `sampledb.elb_logs`(
  `request_timestamp` string COMMENT '',
  `elb_name` string COMMENT '',
  `request_ip` string COMMENT '',
  `request_port` int COMMENT '',
  `backend_ip` string COMMENT '',
  `backend_port` int COMMENT '',
  `request_processing_time` double COMMENT '',
  `backend_processing_time` double COMMENT '',
  `client_response_time` double COMMENT '',
  `elb_response_code` string COMMENT '',
  `backend_response_code` string COMMENT '',
  `received_bytes` bigint COMMENT '',
  `sent_bytes` bigint COMMENT '',
  `request_verb` string COMMENT '',
  `url` string COMMENT '',
  `protocol` string COMMENT '',
  `user_agent` string COMMENT '',
  `ssl_cipher` string COMMENT '',
  `ssl_protocol` string COMMENT '')
ROW FORMAT SERDE
  'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
  'input.regex'='([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*):([0-9]*) ([.0-9]*) ([.0-9]*) ([.0-9]*) (-|[0-9]*) (-|[0-9]*) ([-0-9]*) ([-0-9]*) \\\"([^ ]*) ([^ ]*) (- |[^ ]*)\\\" (\"[^\"]*\") ([A-Z0-9-]+) ([A-Za-z0-9.-]*)$')
STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  's3://athena-examples-us-east-1/elb/plaintext'
TBLPROPERTIES (
  'transient_lastDdlTime'='1480278335')

list and rebuild partitions, and more.

Setup instructions and full usage are in the GitHub repository.

linked

Twitter and the ephemeral rant

I rather enjoyed Garen's Twitter rant on Twitter rants:

Threaded replies and quoted retweets have transformed Twitter. It used to be mostly a carrier wave for more permanent content. Now it feels like you're always starting in the middle of the conversation. Every tweet is a subtweet.

Hillbilly Elegy: A Memoir of a Family and Culture in Crisis
reviews

Hillbilly Elegy: A Memoir of a Family and Culture in Crisis

An honest, often raw look at the deeply embedded generational despair that permeates the Rust Belt and American South. Those (like me) from mill towns, farming communities, or backwoods will identify with the world J.D. describes. Anyone else seeking to understand American life outside its big cities will be well served by this book.

Looking for more? View the archives or grab the feed.