Incredibly detailed panoramic view of Europe across the political, sociological, economic, and military landscape from just before the Great War until then end of the 1940s. It weaves an entertaining thread, moving from state to state under each topic as the book inches slowly forward in time.
It's a superb presentation of the interconnectedness of events in Europe over thirty five years of war, revolution, and reconstruction.
Definitely not the book I thought it would be based on the reviews, but I enjoyed it nonetheless.
The book wrestles with the question every generation of the church must ask how do Christians live faithfully in this age, in this culture?.
Dreher is Eastern Orthodox so he places more emphasis on tradition than do I, but there is a lot to agree with. The book is written for a broad audience. The theme of each chapter could easily have been broken out into separate books. In the end there are broad strokes for a recommitted Christian rule of life, but it's not the monastic underground you'd expect from the title.
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.
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.
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
# 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.
I miss the larger, more vibrant technical bookshelf from twenty years ago.
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
GROUP BY elb_name
ORDER BY count DESC
❯ 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
❯ 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
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
list and rebuild partitions, and more.
Setup instructions and full usage are in the GitHub repository.
Having lived under communism and liberal democracy in Poland, Legutko's uncommon perspective on both systems paints an uncomfortable picture of democracy in Europe and the United States.
Joshua Ogle wrote an excellent intro to typography, a topic of which every developer should have a basic understanding.