I've spent some of my personal time over this past week looking into
Node.js. I'll be up-front in stating that my
efforts have not been particularly broad, but I have gone reasonably
deep into the parts that I looked at.
I've been building evented systems for more than a decade, mostly in the
"C" language, so Node is particularly interesting to me; it blends an
evented I/O model with the Javascript language in such a way that it
doesn't feel like a continual struggle.
To get a feel for Node, I decided to look at what it would take to get
some kind of mtrack implementation
running on Node; don't get too excited, I didn't finish anything worthy
of public scrutiny.
For the purposes of the experiment I selected
Riak for the data storage
solution; it has a compelling mixture of document storage, full-text
searching, secondary indices and map-reduce facilities.
After reading this scary blog entry about domain hijacking
I've been a bit
concerned about brute forcing of credentials and have been turning on
the two-factor authentication facilities that folks like Google provide
for my gmail and personal domains.
I've just found out about Duo Security, a
service that allows you to add two-factor authentication to your SSH
server, Juniper VPN and even Wordpress blogs. Their service is free for
up to 10 users and they start charging when you pass that threshold.
The first choice that springs to mind is nanosleep(3RT), but you'll be
frustrated because your requested sleep interval is implemented in terms
of the standard clock frequency, making you sleep for longer.
So how do you sleep (not busy wait!) for time periods shorter than the
regular clock?
Adam Leventhal mentioned on twitter that he'd
found my umem slab allocator port on
macports. I commented that he might miss some of the umem debugging features
that are available on its native Solaris platform in mdb, and we dreamed
briefly of a portable version of mdb.
This weekend I took a peek at the mdb sources (via the Illumos
Gate) to see how hard this might be. As
it happens, this isn't the first time I've looked at porting mdb, so I was bit
better prepared to go snooping around in there.