This is the missing piece in the end-to-end view of the Disruptor. Brace yourselves, it's quite long. But I decided to keep it in a single blog so you could have the context in one place. The important areas are: not wrapping the ring; informing the consumers; batching for producers; and how multiple producers work. ProducerBarriers The Disruptor code has interfaces and helper classes for the Consumer s, but there's no interface for your producer, the thing that writes to the ring buffer. That's because nothing else needs to access your producer, only you need to know about it. However, like the consuming side, a ProducerBarrier is created by the ring buffer and your producer will use this to write to it. Writing to the ring buffer involves a two-phase commit. First, your producer has to claim the next slot on the buffer. Then, when the producer has finished writing to the slot, it will call commit on the ProducerBarrier . So let's look at...
My current peeve is the cleaners in my office. EVERY night my desk is utterly rearranged, the keyboard tilty flaps are often left uneven, mouse/keyboard cables are tucked back into the cable ties when they are out specifically to give me the degree of motion I need.
ReplyDeleteI spend at least 15 minutes rearranging my desk every morning before I can even check email let alone do any proper work.
I've tried postits and they don't work...clearly there is no reasoning with these people
Touch my desk and die :-)
ReplyDeleteMost any office i've been in, i've brought kit in. Serious screen (Eizo), proper mechanical kbd (Topre), phone headset (put me near someone who uses speakerphone at your peril). Minimum.
Biggest issue:
height adjustable desk + "draftsman's" chair, kind with extended lift plus circular footrest. I slouch at normal desk height, and especially when deep in thought, i want to be at a height i can refocus my eyes into the distance, unobstructed. Daydreaming on demand, on the subject. My eyes and back do not like alternatives. There is something psychological also, staring down at the code which is getting to you, and if you have a better view, higher up, i find by looking around i get my posture quite fine, if a little meerkat.
I do admin standing, customer calls standing, anything which does not require posture at the kbd. Bending low to do this is awful.
Single screen is fine, portrait orientation matters, if widescreen. I want my eyes to scan the lines, much as possible, not my mousing wrist. If i can, i use whatever provided monitor, set in mono, for menus.
Never gone this far, but a true greyscale monitor is where i want to be, but since they're sold for radiology, not a casual purchase. (mind you, the sheer resolution of these things is awesome. I went to a medical expo to check one out - they thought me a nut, of course - 5+ megapixels in a 4:3 ratio 22" screen is freaking awesome)
(bring back NeXT's UI!)
any app which cannot scale fonts is right out. This might be weird, but i like to stand back a bit when stuck.
My Win desktop is covered in icons. All enlarged. I use the libraries thing in Win7 to link them, and stash away snippets from text editor du jour, because it's habit to get random thoughts about other bits of the project that'll be nutty in comments. And references get stashed similarly. I like this to be very separate to work, so i can sync those notes to home / laptop / whatever.
No music. If a real coffee sinker, then kdb.com radio eases the pain. Especially for late UK nights, because they're in Santa Barbara and so you feel a bit more daytime.
Ideally, back to wall, corner of room, and opposite someone who can chat about any old rubbish without being genuinely distracted. (one must work out semaphore for when absolute concentration needed but the best situation is when i work nest to someone who can spew out the junk stored away, project or otherwise, as a kind of aural detox - sometimes cool stuff comes from that)
Other things:
no running email client. No running messaging thingy. I flaming well type shh for a living, why do more? Phone me! I can then at least tell from your voice if it's a real problem, and yes, if it's not, slam the receiver :-)
Do not like closed offices, but open plan does not need to be regimented. Cubicles suck. People should arrange themselves, stick potplant hedges as they want. I might be working opposite (blissful fantasy) a real tech doc writer, but what i mean is i do not have to be sitting next to, or even nearby someone working on whatever my code talks to immediately. In fact, i think that can work against you, because as much as it helps to fix knarly things together, sometimes they are knarly for no good reason.
Cannot say long time reader, first time caller, found here via the LMAX stuff, which is super cool.
all best from me,
- j