Sideways Cat

Data manipulation in Ruby A friend asked me to wrote some code that would transform a collection of files like this: File 1 Key Value1 A 1.0 B 2.0 C 3.0 File 2 Key Value2 A 3.0 B 2.0 C 1.0 Into a format like this: Key Value1 Value2 A 1.0 3.0 B 2.0 2.0 C 3.0 1.0 Except, there were many files and many rows so I wrote a ruby script.

Backing up DynamoDB to S3

Getting Started

On Information Technology

Humans have been storing, retrieving, manipulating and communicating information since the Sumerians in Mesopotamia developed writing in about 3000 BC.1

First post

This is a “first post” on the new blog here - you’ll see some older content moved over from another blog.

Closures in Node.js with Async.js

Closures in Node.js with Async.js I recently had a chance to use closures as part of solving a real world problem. The elegance of the approach helped to improve my attitude about working in JavaScript. Don’t get me wrong – Node.js’s asynchronous approach is a thing of beauty. But there’s a lot of ugliness in JavaScript as well and this is the first thing besides Node.js itself that struck me as particularly beautiful.

UUID Uniqueness

A little while ago, someone asked me about collisions in UUIDs:

Any idea what kind of guarantees of uniqueness these tools argue/provide? For example if I use them to generate $ 10^{15} $ IDs over 10 years, what is the probability that I will get a collision? Do they have a reference to the algorithm they use?

Well, in terms of financial guarantees, none. If you use this free software and it doesn’t do what you expect, you get back what you paid for it.

However, the proposed standard does “guarantee” uniqueness; this is clearly part of the design.[^1] An implementation which follows this specification has a component which is derived from the MAC address of the generating host for what is called “the spatially unique node identifier”. Other components include the time with 100 ns resolution, and a counter, which is incremented each time a UUID is generated and set to a random value when the counter becomes unavailable.