Projects
Cmccabe-bin
cmccabe-bin
is a collection of scripts I wrote over time. Maybe they'll be
useful to someone else. The other reason I put them online is to make it
easier for me to keep all the different machines I own that use these
scripts in sync.
Cmccabe-etc
cmccabe-etc
is a collection of UNIX configuration and preference files that I keep
in my home directory. I offer these in hopes that they're useful to
someone.
Salvo
Salvo
is an artillery-style game for the Android
platform. I had a lot of fun making it and learning about
the platform. It's available for purchase for $1 on the Android
Market
Timetracker
Timetracker
is a very small program I wrote while I was self-employed to
track how much time I was spending on different things. It's basically
a set of stopwatches that you can turn on and off. It uses the curses
library.
Project Hail
From the
Project Hail :
"The goal of Project Hail is to provide language-neutral, OS-neutral,
highly available distributed computing services that others may use to
build cloud computing applications." One of the components of Hail is
CLD, the coarse locking daemon. CLD does distributed locking. I
modified CLD's networking layer to use XDR (External Data
Representation) for its messages.
The Ceph Distributed Filesystem
Ceph is a distributed
filesystem designed for reliability, scalability, and performance.
Similar to Lustre and GlusterFS, Ceph provides a single filesystem
spanning a cluster of dedicated servers. Unlike filesystems such as
pNFS (parallel NFS), Ceph distributes metadata to a cluster of "MDS
nodes."
I work on the Ceph filesystem, and also on RADOS, which is the object
store that Ceph uses as its backend. I worked on the configuration
management code, the object store code, and the Python bindings for
librados.. I also wrote a tool called obsync which is similar to
s3sync, but which can sync directly to RADOS.
Poker-odds
I really like the ideas behind Google Go (also called Golang). I wanted
to give the language a try. So, I wrote a tool named
Poker-odds
in Go to calculate the odds of
getting a particular type of poker hand in a Texas Hold Em' poker game. It
takes as inputs your hand, and gives you the probability of getting a pair,
straight, flush, etc.
Example:
[cmccabe@highcastle poker-odds]$ ./poker-odds -a 'KS QS' -b '4S 7H 8S'
results:
22.22% chance of nothing
37.68% chance of a pair
8.60% chance of two pair
1.55% chance of three of a kind
1.55% chance of a straight
28.41% chance of a flush
handle_core
handle_core is
a little crash dump handler which can send you an email when a core
file is generated. It also limits the number of core files in the crash
dump directory to a value of your choosing. It doesn't require much
setup.