1. 65

    Giving up social media and HN.

    1. 16

      It was Twitter for me.

      1. 10

        lobste.rs except ~once a week for me, sadly. But having a reading diet, especially an online one, is in any event a good thing.

        1. 5

          When I stopped binging lobsters I started reading reddits r/all, so that didn’t improve anything for me - only made it worse ?

          1. 3

            Oof, yeah – r/all is a timesuck cesspool. I’m still working on getting off that.

            1. 8

              How can someone get stuck on r/all ? It’s full of nothing but pictures and memes. The current state of r/all was what cured my reddit addiction!

              1. 2

                endless scrolling + sometimes something interesting to read - mostly like watching bad TV stuff (except I haven’t watched TV since 8 years)

      2. 3


        I still go back to HN, for the wide variety of content under the “intellectual curiosity” umbrella that gets posted. It’s something I miss if I don’t go on HN and I wish there were lobste.rs-like communities for this type of thing.

        1. 1

          I even would pay for such thing. Going through all low quality stuff posted on hn takes time and time is the money. I had some hopes with amazon’s “Singles Classic”, they have published “Secrets of the Little Blue Box” but it seems to be dead now.

        2. 3

          The social media resistance intensifies. I believe the early adopters will be some of the first to exit the platforms.

          That is, if they’re willing to torch their follower count to be free. My two cents: it’s worth it; and the influence you believe you have via those mechanisms is not quite what you think it is.

        1. 1

          The best parts of my days are seeing the ways people are not just engineers, but people. So threads like these are always a really special thing – it’s just great to read how people are doing. Thanks, all, for chipping in!

          Other things that have been great:

          • a long-form correspondence I have running with a friend from London,
          • drawing the view from my porch in a sketchbook that’s had no new drawings in many years,
          • setting out from home with my partner to spend time outside at the start or end of the day – Wednesday began walking around the aquatic park and watching one pelican after another stall out into the water to catch its breakfast.
          1. 3

            I flagged this story as off topic because it’s not about computing.

            1. 7

              Serious question: if the title were instead “Writing a Technical Book…”? Would that deserve a flag? Because if writing a technical book isn’t technical, I don’t know what is.

              Also of note, other articles on the front page: “How India Censors The Web”, “…Maine Oyster Farm”, “History of C++”, “History of Lisp” , “Why [this unix command] exists”

              I’m okay with all of those, since tech seeps everywhere in our lives. (The oyster farm story was a bit disappointing because it was a ton of words for just a little cloud stuff). Computers are everywhere. As people who use them to help people, we need to talk about how people use them and how we can do a better job of helping them. Perhaps we should just eliminate any reference to people at all? (In other words, an explanation of the technical details of X might be fine, but explaining how X got started and what people use it for would not be okay)

              I’m just a bit confused. Trying to learn why people draw the distinctions that they do.

              1. 4

                if the title were instead “Writing a Technical Book…”? Would that deserve a flag?

                I believe so, yes. The flag isn’t about the story’s title but about the story’s content. The story is about writing books, not about computing. You could replace “Designing Data-Intensive Applications” with “Understanding molecular biology” or “Getting started with neurosciences” and the story’s content would not change: the conclusion is that writing popular books about technical content is worth it because it brings money and shares knowledge. This has really nothing to do with computing.

                Also of note, other articles on the front page: “How India Censors The Web”, “…Maine Oyster Farm”, “History of C++”, “History of Lisp” , “Why [this unix command] exists”

                I did not read any of these, so I refrained from flagging or upvoting them, but these titles do sound like titles of potentially technical stories about computing to me.

                Computers are everywhere. As people who use them to help people, we need to talk about how people use them and how we can do a better job of helping them.

                I agree, and there are places where talking about how people use computers and how we can do a better job of helping them already happens: hackernews and reddit. These discussions do not need to happen on lobste.rs in my opinion.

                1. 2

                  Many thanks! I don’t agree with you but I appreciate your taking the time to explain yourself farther.

                  To me you don’t know something unless you can use it, teach it, and explain it to others. We can certainly agree that the money/commercial aspect of technical books is not about computing (at least directly), but the entire world of conveying technical knowledge to others is as important to me as developer skills. After all, because other people did this, I can code! I owe them my thanks.

                  And I don’t think the commercial content necessarily needs to be off-topic. Technical people consume things in different ways than other people. My problem with content like this is that far too often it’s trying to appeal to the “I made a zillion dollars in two weeks! Aren’t I awesome!” crowd than it actually covers things that technical folks would need to know to help other technical folks. I suspect that’s because the content creators are shooting for a more general audience, but I don’t know. I agree that it can easily stray into non-tech areas, it just doesn’t always have to be that way.

                  Thanks again!

              2. 3

                Ah, but those are the best stories by far, and discussed better here than I’ve tended to find elsewhere, too!

                For my part, I was glad to see this one get past the censors. Primo Levi also wrote books that weren’t about chemistry, but I’d like to think the chemists of his time still discussed them, even perhaps at conferences and meetings dedicated specifically to topics of the trade, like making varnishes and paint :-)

                1. 1

                  Is it hosted on Medium to boot?

                  1. 1

                    No? It’s a Jekyll site.

                    1. 1

                      apologies, I was being sarcastic (some folks complain about posts hosted on medium and not being about computers to the extent of flagging a computer review tagged hardware as off-topic)

                      1. 3

                        Sarcasm is mean and does not help people change their mind.

                        some folks complain

                        I am not complaining. I am describing why I flagged a story the way I flagged it, so that we can build a shared understanding of what is on and off-topic on lobste.rs. If you disagree with my reasons for flagging this story, I think a more useful response would have been to describe why you think I am wrong.

                        1. 1

                          All good. I see the sarcasm now. Text makes it hard to convey tone.

                  1. 5

                    I didn’t catch this before it was removed, but I found it via other channels (for those interested, the post can be found on the site confidentialinterval.com). I can say that I agree wholeheartedly with @pushcx’s decision to remove this as off-topic.

                    First, the format is in media res to an absurd degree, literally riffing off a comment thread on Hacker News about a startup I’ve never heard of being acquired by another company I’ve never heard of[1]. This gives the impression that it’s tied to a specific milieu and time (late 20-teens Silicon Valley startup culture).

                    Then there’s the very personal details about your move, your cats, the interviewer’s first names and choice of footwear. Is the reader somehow supposed to know who “Dan” is, and why his choice of sneaker color is relevant to the content?

                    Finally we get to the musings about work-life balance. They’re … kinda interesting? If a little off-putting and intense? But also tied to a specific time and place (and person, man, this Dan seems weird).

                    A format that might have been more acceptable here would be of the form:

                    Here’s an anecdote about some interview questions I got when applying for a job at a startup.

                    questions and answers

                    Here’s what they made me think about life, jobs, and they way they interact

                    It would have been borderline off-topic, but presumably tickled enough interest to generate the kind of comments that would prevent a removal.

                    [1] context, I’m a middle-aged engineer who has been working in the IT space in Sweden since the late 90s.

                    1. 2

                      Hi! Thanks for reading all the same! And for giving commentary. That’s more than you needed to do, and all feedback’s a welcome thing.

                      The post does tend a bit too much to the literary for many (old habits from a humanities degree, I guess). And you definitely did need more context than you got either in the article, or in the citation there to HN – I’m a bit astonished that someone outside of California would bother to read this piece at all, and so again, that’s really kind. Dan and Pete were the founders of Optimizely, which finally got bought out last week. Maybe they are a funny pair. But, they both also did a ton of work for the first Obama campaign (indeed, they left Google to go work on it, for roughly a year IIRC). It’s fairly rare to find founders here who would do such a thing.

                      Other points:

                      • Optimizely was one of a few A/B testing players; they all failed and those failures are their own story, probably also not interesting to most, though.
                      • I was well past 30 by the time I went on the market in 2013 – and my best work experience had been outside of SV in Pennsylvania. I’d agree, the early SV startup culture isn’t a great thing to celebrate, and so sorry if it came off that way. More context could help.
                    1. 5

                      Career stuff can be toxic to a technical site.

                      Consider the subreddit r/AskEngineers. As an electrical engineer, I subscribed hoping to see what interesting projects and ideas other engineers were working on.

                      I was disappointed. There is no technical content, only career questions and advice.

                      I think it is the bikeshed problem. Everyone has a career, everyone is invested in one, so everyone can offer a opinion about career questions, which then bubble to the top of the question list. (It doesn’t help that there is a surprising fraction of engineers that think engineering is only a career, and the technical questions are irrelevant details best delegated to vendors and technicians.)

                      So I support a wholesale ban on the topic of interview questions.

                      1. 5

                        As it turns out, the article wasn’t really about interview questions at all (although that was what pushcx classified it as).

                        It was about how, on a rare occasion as engineers, we might go into an interview and find ourselves answering questions about our life that we didn’t expect, and learning something new about it as a result. I thought that was a thoughtful thing to share and something quite specific to the life I’ve had as a programmer. It certainly wasn’t about business practices or what to do in an interview.

                        This point seems to be lost though. I don’t have a lot of hard feelings - I’ve really liked the community, and I’ve found things like the “What are you doing this weekend” or “How are you holding up” threads to be really thoughtful. Although by pushcx’s criteria, at least the second of those threads doesn’t belong on this site at all.

                        But, yeah. It sounds like the best thing is to avoid posting here altogether, whatever the content. Cheers.

                        1. 8

                          I personally appreciate your article. It’s the kind of reflection that I enjoy a lot. That’s different from saying that it’s on-topic on lobste.rs though; if anything I think the community’s tastes run to much narrower subject matter than my own. Ultimately it’s an article without any technical content.

                          I am sorry that you feel the need to leave, but best wishes.

                          1. 5

                            Thanks so much for a reply. It’s really kind of you to read it. I know both the reader and the author have a hand in making something worth reading – though from the summary @pushcx gave of the article, especially initially (that it was about how I got a job), I think it’s fairly reasonable to conclude it wasn’t read through before it was deleted.

                            As best I can tell from being a member of this site since 2014, either some non-technical content has historically been welcome and no longer is (see my reply to @jackdk above), or some non-technical content is still welcome, but there is no discernible process for knowing what content that is – and also best I can tell, it has the most to do with who posts it, or which moderator happens to be deleting on a given day, or rules that would be exceptionally painstaking to write down.

                            This is you all’s site, and I’m sure it’s a struggle on the other end for you, too. But on my side of it, I can’t justify the time – it’s better spent looking elsewhere for that sort of community, even if that means boring things like running a mailing list, posting to more public fora, etc. I used to think people like @ddevault had taken a little bit too much umbrage at the moderators here – but I have to say, I understand a bit better why they no longer post stories here.

                            So, that’s the long explanation about why I don’t plan to post stories here any more. (Though I’ll still really enjoy reading, and posting comments to the “What are you” / “How are you” threads for as long as they hold out!) And thank you and all the moderators for your work. No place is perfect, but this is still one of the nicer groups of people out there.

                            1. 8

                              A key thing I think bears mentioning is that our frontpage has become increasingly valuable, and the number of people who would exploit that (@ddevault for example) for business purposes or SEO is non-trivial.

                              Any analysis that doesn’t account for bad-faith actors here is incomplete.

                              1. 2

                                Yeah. I hear all that. That all makes sense. Thank you for your thoughts.

                                1. 1

                                  Yeah. I hear that. That all makes sense. Thank you for your thoughts.

                              2. 0

                                the best thing is to avoid posting here altogether, whatever the content

                                I’m sorry to see you go. Having been here a few years, it’s sad to see how many thoughtful users @pushcx has driven off the site in his zeal for purity, or need for a comfort bubble, or whatever it is. Most don’t bother with the goodbye notes, of course. I hope you find a better place!

                                1. 3

                                  Thoughtful doesn’t mean on-topic.

                            1. 20

                              I apologize for the confusion my typo prompted. As the about page says:

                              Lobsters is focused pretty narrowly on computing; tags like ‘art’ don’t imply every piece of art is on-topic. Some rules of thumb for great stories to submit: Will this improve the reader’s next program? Will it deepen their understanding of their last program? Will it be more interesting in five or ten years?

                              Your post was a personal anecdote about interviewing for, getting, and passing on a job offer. Posts about these businesses processes are not on topic. Yes, you should stop submitting stories about anything not explicitly technical here.

                              EDIT: I’m tweaking this title from “what is the culture tag for?” to reflect the contents of the post and hopefully save rehashing the culture tag again. That is maybe the most popular topic in meta threads and meta conversations on culture-tagged posts, and this post doesn’t add to those discussions.

                              1. 6

                                Well, yes, it would be hard to add to the discussion on culture, when the discussion topic has been changed. :-)

                                But, given this new topic, if you don’t mind I guess I should ask the questions I posted by DM here:

                                Hi! Thanks for clarifying and for your work – this is the only place I care about posting to, but if it doesn’t fit I guess that’s all how it should be.

                                For a little more clarity, I do feel like people have posted material on this from time to time. Does that mean that these stories should also have been deleted?

                                https://lobste.rs/s/xgthfv/what_i_learned_after_applying_for_100_jobs https://lobste.rs/s/c0vcy4/hiring_is_broken_what_do_developers_say https://lobste.rs/s/rai2xd/technical_interviews_from_1960s_2017 https://lobste.rs/s/hvey8q/what_s_wrong_with_tech_interview_process

                                1. 4

                                  One of those links is voted to zero, the highest-scoring link barely made double digits, and none of them attracted more than one comment. I wouldn’t use them as ideal stories to aspire to.

                                  1. 3

                                    Thank you for a reply! This is not something I disagree with.

                                    What I had been seeking, though, was an answer to the question I asked:

                                    Does that means that these stories should also have been deleted? (Or was downvoting enough? It seems like the whole point of downvoting is to allow curation without censoring, after all.)

                                    We could extend this question beyond the narrow criteria above, since in fact, lobste.rs has often hosted poular material whose technical content is quite debatable.

                                    Should these stories as well have been deleted? (I.e., were they mis-classified as technical content, when in fact they were not?)

                                    This post is being down-voted as off-topic because it mentions race and gender, but that’s just people pushing a political viewpoint. Posts about hiring practices and salaries are considered on-topic, and so posts about who gets hired by tech companies are also on topic.

                                    In the end, I think the moderator community is in a hard spot, because:

                                    1. There’s essentially no way to make misclassification a negligible problem, 1, There may be very little way even to make differential misclassification a problem (i.e. where some people’s non-technical content is permitted, and others isn’t)
                                    2. Even if you try to do the right thing, for the two items above, you’ll find yourself spending more volunteer labor time explaining yourself.

                                    And I feel sad seeing that play out. I feel like you’d have been better off just letting things be downvoted, rather than trying to pronounce things like an article on Euler this morning as being “not computing related.”

                              1. 1

                                This weekend I’m

                                • scanning more documents for the recycle pile
                                • moving my document-collecting spouse and officemate’s file cabinets upstairs to make room for the new couch coming Monday
                                • writing more accounting entries into beancount
                                • working (yes. not a normal case, but it looks like some customers with discount codes might be getting taxed more than they should. . . . and I was off early one afternoon this week anyway to get some more time in the club’s new old 182. so, time to spare.)
                                • flying IFR Sunday AM from KCCR to KSCK and back, alternate of KOAK. I’d rather it were for another reason, but the fires here in norcal are making for good instrument flying conditions. Best practice while the weather supports it.
                                1. 2

                                  Work is helping out with a new product launch, then back to taxes and longer term billing things.

                                  Home is finishing the wall-to-wall shelves in the home office. Knape & Voigt standards are on the walls, shelves are cut to size and stained, so all that’s left is two coats of poly, then loading them with all the books that have occupied the living room since we moved in.

                                  1. 40

                                    Bernstein’s response is something. Here’s a story.

                                    The fastest assembly implementations (amd64-xmm5 and amd64-xmm6) of Salsa20 available from its homepage still have a vulnerability such that they will loop and leak plaintext after 256 GiB of keystream.

                                    This was reported to the Go project last year because our assembly was derived from it. We fixed it in Go, and published a patch for the upstream.

                                    He declared it WONTFIX because there is an empty file called “warning-256gb” in a benchmarks tarball hosted elsewhere. He tweeted we should have seen it. The file was added 4 years after the Go port was made.

                                    1. 15

                                      Filippo! Thanks for your two recent posts on OpenSSH keys from U2F tokens. It’s been nice to see you up to yet more interesting crypto lately, in addition to all the public go crypto work.

                                      You probably know as much (it was all discussed here a few months ago), but qmail itself is a similar long-arc story and a lost opportunity. Even today it has one of the better security designs in a mail server, and back then, it inspired a series of really great patterns and tools, such as those that ship with runit. But, DJB was never willing to take on a traditional open source maintainer role, nor to let anyone else do that with the upstream source. So it never was allowed to ship as distro-specific binary packages, it never got updated to do SMTP auth, it required outside patches to work with linux because of a war on errno.h, etc. (Even so, Artifex.org used it for roughly fifteen years before moving finally to OpenSMTPD. . . and I never had to scramble to patch a CVE for it, unlike the latter.)

                                      So I feel conflicted about it all. On the one hand, DJB’s done more for open cryptography than just about anyone, he’s done fairly reliable software development, and he hasn’t gone off into some sort of St. Ignutius weird place like Richard Stallman, either. But on the other, does it really take that much generosity of spirit to admit fault and accept a patch? If Linus can learn to be less of a jerk on email, then maybe a cryptographer can learn to accept bug reports for the helpful things that they are.

                                      1. 7

                                        djb’s personality is the worst thing about djb’s software.

                                      1. 1

                                        Does anyone know of a good, accessible primer on Linux namespaces? I’ve been using Docker for years, and I have a conceptual understanding of what namespaces do, but I have no idea what the primitives are or how they work. In particular, this post thoroughly confused me as it seemed to be alternating back and forth between processes and threads as the operand of namespaces. I’m also confused about the “if we have a process, we can just create the namespace in /proc/self, but we don’t have one, so we create it in /var/run/… and then bind mount it into /proc/self” (I don’t see why we need to bind mount instead of writing directly to /proc/self/…).

                                        1. 2

                                          Hi! Sorry for a slow reply; I was in transit. And sorry also to have caused you more confusion. Two key points:

                                          1. Every process can only have one namespace associated with it, for each kind of namespace (network, process, mount). These are always presented as files under /proc/self/ns.
                                          2. I only touched on this briefly in the article, but for Linux, threads are only a special kind of process (commonly we’d say they are “light weight processes”).

                                          For reading about namespaces, the single best place to start is namespaces(7). It explains what /proc/self is all about and also explains why the bind mounting matters.

                                          For reading about threads versus processes, I found Eli Bendersky’s article to be a good overview.

                                          Do let me know if those notes are a help – and thanks for the feedback! I’m not yet sure how to help clarify things in my own article, but hopefully this is a start.

                                        1. 1
                                          • Getting in touch with more old friends and colleagues in the Bay Area, now that I’m back here most of the time.
                                          • Hacking along on the hobbyist control plane.
                                          • Buying a second Apple USB keyboard from the Inner Sunset ($25!). I work out the x key of my old, home keyboard, and seems likely the office one will be back in an office soon.
                                          • Moving back into my old apartment as a short term lease.
                                          1. 2

                                            After three years overseas I’m back in the Bay Area. So, the usual things:

                                            1. Job marketing
                                            2. Deferred bicycle maintenance.
                                            3. Deferred haircut.
                                            4. Visiting old friends, former colleagues, and local libraries.

                                            But also more work on the hobbyist control plane side project, plus maybe a short piece on the use of code sketches when working on a larger project.

                                            1. 2

                                              I’m in London for the week, after 6+ weeks in the southern hemisphere – mostly Cape Town, but also two short stays in Rwanda. Items:

                                              • work for a long-time client (mostly cmake wrangling, some C++)
                                              • work on a control plane side project. (It consists of a CLI client, an API server, and an event-sourced agent. And I’m finally at a point where the agent is doing things. Happy day.)
                                              • moving logistics / interview prep for a return to Northern California
                                              1. 2

                                                Great read, thanks for sharing. I made this comment a few minutes ago with a similar thought towards historical context and the mindset shift between developing software and doing e.g. statistical analysis. A happy coincidence, and maybe of interest to you.

                                                1. 3

                                                  Thanks! And thanks for pointing out your comment on pandas, notably:

                                                  People who work with pandas dataframes every day (like me) have to cope with plenty of rough edges, but we’re usually trying to go from a nascent idea to a tested hypothesis as quickly as possible. It’s not just that the code we write might be prototype code, but rather that the entire idea behind the need to write code might be bunk.

                                                  The library was originally developed for quantitative strategists at hedge funds. If you’re paying someone millions of dollars for their quantitative research and trying to bring their ideas to market before the market moves on, you end up with a tool that looks like pandas.

                                                  I’d not thought enough about pandas’s origin story – though I do remember Wes coming down to Philly to talk about it at the Python meetup some time in 2011 or early 2012, IIRC. We didn’t know it was going to be so big…but it was clear, from his enthusiasm and all those automated performance benchmarks, that it was definitely going to be fast.

                                                  1. 1

                                                    Your timeline sounds right. We got together in December 2011, Wes was writing his book, and I spent 2012 evangelizing pandas. Our startup didn’t pan out, but I’m proud the library reached more people because of it.

                                                    Last I checked, Wes was working on relatively language-agnostic tooling projects under the Apache Foundation umbrella, collaborating with Hadley Wickham (of RStudio) and I’m sure others.

                                                1. 2

                                                  I’m going back to the London Library for the day tomorrow, submitting a job application to old colleagues back in San Francisco, and pondering logistics for my wandering life over the next couple months.

                                                  1. 1

                                                    I’m at PyCon UK, with a small group of colleagues from Wellcome! Mostly hosting the jobs table, but will probably sneak into a talk or two as well.

                                                    1. 3

                                                      That’s a lousy story but I’m glad as ever to see people here being thoughtful and even constructively critical of it. Lessons that take a year to learn aren’t often fun but they also aren’t often a waste of time. (5-year or 10-year lessons…probably not so much?)

                                                      Take a break. And remember, if you go work for one of the big companies it may take a while to get through the pipeline anyway…so starting with them now isn’t the worst idea. They’ll also be fine with you pushing out your start date if you need.

                                                      You’ll have to get in order what happened – apg was right to ask. Some things you’ll have to own, and it’ll be to your credit if you can talk about them. (E.g. “I shouldn’t have let my feelings about X get in the way of doing Y”). Luckily, the plain story is enough – you got burned out in the job, told your manager you needed help to fix it, and the day after coming back from your first holiday in probably a long time, they let you go.

                                                      Similarly, meech was right to say there are right and wrong ways to bring up issues with your manager (ultimata never work out, but also, some managers will work things out with you and others, for good reasons or bad, will cut bait…it takes more intuition than you were likely to have to tell which, even when it can be told at all). There’s a lesson in that, and once you’re able to be magnanimous about it all it’s OK to share. You’ll probably feel hurt about it for a while yet, though. However you feel, it’s best to stick with the facts, and to paint neither you nor your former employer in a bad light.

                                                      Last, never use people you don’t trust for references – better choices in this case include some senior engineer you worked with, someone who used the software you wrote, or someone you interned with before finishing school.

                                                      1. 8

                                                        Currently reading The Goal by Eli Goldratt. I previously reread The Phoenix Project and The Goal was mentioned several times so I figured it was worth a read.

                                                        1. 4

                                                          With the exception of the technology involved, I find the Goal far superior to the Phoenix Project, to the point that I tell people, if you know what a FAX is, prefer to read the Goal.

                                                          1. 4

                                                            +1 for the Goal. You may also like reading Taiichi Ohno’s Toyota Production System, though it reads sometimes more like philosophy than industrial engineering.

                                                          1. 3


                                                            • Antecedents to Modern Rwanda by Jan Vansina. A surprisingly readable monograph about pre-colonial history in Rwanda. Fascinating. Very much about political economy, and thus, grim. Almost done.
                                                            • Another Country by James Baldwin.
                                                            • The usual Harpers backlog. Though this month’s cover story is by Bill Vollman, so it’s sure to be good. :-)

                                                            I was also spending a lot of time on hierarchical models for count data (Poisson-gamma/negative binomial, Poisson-gamma), but thankfully that’s done for the moment – I got basic models running in stan last night and this AM.

                                                            1. 12

                                                              Intellectual generosity.

                                                              To explain a bit: ten years ago I was visiting an old friend. My friend & I had worked together a couple gigs earlier, and indeed, my friend had also worked with one of my colleague’s I had just then, back when the both of them had been in the Bay Area ten years earlier yet. And my friend asks, “So, does [your colleague] still write comments the way he used to?” I wasn’t quite sure what he meant, and so my friend went on to explain how, somewhere in the heart of this video-streaming in the 90s C++ codebase, he came across a multi-paragraph comment explaining a single, critical line. (It was in a signal handler for illegal CPU instructions…and updated a memory address in the code to a NOP when some matrix operation wasn’t available on the CPU.)

                                                              And I’ve always thought that’s a sweet story, that you might remember a colleague’s work ten years later, not just for the elegance of it, but for the time taken to explain it. Indeed, this particular colleague (his name’s Jeff) remains the best teacher I ever had in the trade, and probably the best programmer I’ve worked with, too. This wasn’t just because of his generosity – he was pragmatic, had abundant experience, and was almost inexhaustibly optimistic. But, I think generosity was the key. Eventually he just kept a sign on his desk that said “interrupt me,” so people knew he was available to talk and to hear what you had to say.