Monday, November 11, 2013

Two Things Your Configuration Management Should Make Easy

For a given story/issue/ticket, can you produce the associated code diff?

On your project, can you determine the story/issue/ticket associated with the last change that was made for a given line of code?

If your configuration management system makes it possible to do these things, can you do it quickly? Or is it merely "theoretically possible"?

[http://www.sqlite.org/talks/wroclaw-20090310.pdf, slide 141 "Situational Awareness in CM"]

Wednesday, November 6, 2013

Notes: "The Trouble With Types", Martin Odersky Presentation

http://www.infoq.com/presentations/data-types-issues

Good designs are:
  • discovered, not invented.
  • opposite of random
Strong typed languages help produce good designs. (I couldn't agree more, after spending almost 2 years now in Ruby space.)

Patterns (abstractions) & Constraints (types)

Type systems should be 1) precise, 2) sound, 3) simple

Odersky addresses issue of Scala's type system complexity, admitting that the complexity comes out of the large combinations of typing features that arise from the set of possible combinations of its modular (OO) and functional typing features.

DOT (Dependent Object Type calculus) & Dotty (experimental language): Simplify typing complexity by focusing on just supporting the module typing features internally, i.e., in the compiler.

It's comforting to know that the parts of Scala I've found most confusing (e.g. when do I define a class using 'class MyClass[T]' or 'class MyClass { type T }') are at the core of what Odersky is trying to simplify.

Sunday, November 3, 2013

A Few Noteworthy UNIX Commands

A few noteworthy UNIX commands I've used recently:

  • parallel: Utilize your multiple {core,cpu}s!
  • fdupes: "Finds duplicate files in a given set of directories"
  • s3cmd sync: Like rsync, but with S3 as the file/dir destination
As it turns out you don't need much more than this to backup your photo archives to AWS S3.

I used parallel to speed up various batches of S3 operations whose per-request latency is noticeable for large batch sizes.

Note that s3cmd sync will not copy symbolic links to S3, but it will copy hard links, so fdupes -H can be used to eliminate uploading of these redundant files.