been sick for the last 5 days.. so no working out. the great thing about computers tho, is that sickness doesn't impact performance!
GOLANG:
been writing lots of golang lately.. working on a server monitoring tool similar to nagios, called darqios.. so far so good, need to finish off the base code though.. go is really sick, i highly recommend learning it.. it's uber fast because of it's native speed, but the message passing/concurrency (go routines) is what makes it incredibly fun to develop with.
FUSE/0mq:
wrote a little logfs thing a while ago, concept... had some stupid unix domain socket method of logging in it.. been messing with 0mq (zeromq) lately though, so decided to add zmq to the fuse-logfs.
great decision:
- logfs is a publisher (ZMQ_PUB)
- logserv is a daemon which subscribes (ZMQ_SUB) to 'log' and just logs to a file.
- so you mount logfs over /var/log for example, and now you have all of your logs sent to logserv via a zeromq PUB/SUB toplogy.
the setup is real simple.. What's cool about it is, zeromq does all of the dirty work of re-establishing a 'session' and queueing up data/re-sending it once reconnected etc.. so I have a max queue of 1k.. If the connection dies, it'll queue up 1k messages. Once re-established, it'll flush all of that data to the server.. If 1k hits and connection is still down, zmq will just drop the packets.
I was using a PUSH/PULL zmq setup prior to PUB/SUB, but PUSH blocks if the connection dies and the queue hits max.. so in fuse your userland tools would block until it's back up.. Not good.
ok what else..... working on some redisfs thing. Want to play more with rust, but go kind of took over.
Here's the logfs thing I was talking about:
https://github.com/adarqui/logfs