UNIX programming in Ruby: A case study
updated over 4 years ago; latest suggestion over 4 years ago
This proposal has been withdrawn...
I've written a non-trivial UNIXy thingywhat in Ruby. It's been an interesting experience and I've learned a bunch of things along the way. And dealt with some crazy bugs. So this talk would basically be a case study. I think there's plenty of potential for things to talk about, but I'd be interested to know if people want:
- A high level view of UNIX programming stuff (sockets, processes, signals, etc), using examples from my program OR
- In in-depth look at certain areas of my program, getting into the gnarly (but perhaps boring?) details, OR
- A step-by-step study of how my program works, with a focus on the UNIXy details OR
- None of the above the whole thing sounds crap! :D
Hi folks, thanks for the useful feedback. I'm afraid I've withdrawn the proposal as after having a bit of a think I've realised that I don't have lots of time to put into this. I made the proposal on somewhat of a whim, half-hoping that it wouldn't be accepted, so I should just own up and say that I'm not sufficiently motivated to do it :)
Luckily there are a tonne of other great talks proposed :)
I'd love to hear about some nitty gritty stuff in UNIX - process management, how things like daemontools work, etc.
I certainly think this should be pitched at an advanced level. Two topics that could do with attention are:
- Well behaved long-running processes. This means responding to signals properly, logging (stdout vs stderr, syslog).
- IPC. TCP sockets vs named pipes. Use of socketpair when spawning subprocesses.
Unicorn is a great example of UNIX programming done (mostly) right in Ruby, you could compare it with your program to find issues that crop up frequently.
I'd expect most of the audience to have a basic familiarity with UNIX programming, so it would be interesting to hear about how the program works as a whole and how UNIX & Ruby work together to make that happen.
Personally I'd be interested to hear about approaches to designing CLI interfaces, and how sockets, processes etc. are handled with Ruby. Are there things that Ruby is particularly good for?