How Samba Was Written (2003)

(download.samba.org)

172 points | by tosh 6 days ago ago

36 comments

  • nolok 14 hours ago ago

    The EU court case against Microsoft, with FSFE and the Samba team fighting the good fight, was also a major step in getting there.

    It was one of the "first few major cases" in the EU against tech, and the testimonies from the open source side had been great in explaining to the judge just what they wanted (and almost as important, what they didn't want at all, despite Microsoft claiming otherwise)

    Then Microsoft got a fine by day and tried to play the force card by refusing to pay for a while.

    https://fsfe.org/activities/ms-vs-eu/ms-vs-eu.en.html

    https://blogs.fsfe.org/gerloff/2011/05/27/samba-case-hearing...

    • Someone 13 hours ago ago

      > It was one of the "first few major cases" in the EU against tech

      Against? I would call it pro tech, against the tech industry.

      • nolok 12 hours ago ago

        Eh I would agree, I meant that in the "to reign companies that had been left to their own devices for too long".

  • skrebbel 15 hours ago ago

    > Now one problem with the "French Cafe" technique is that you can only learn words that the customers use. What if you want to learn other words? Say for example you want to learn to swear in French? You would try ordering something at the cafe, then stepping on the waiters toe or poking him in the eye when he gives you your order. As you are being kicked out you take copious notes on the words he uses.

    This is written so compellingly that I almost want to try this approach to learn French swearing.

    • Z_Z 15 hours ago ago

      better off moving to Québec. enables a more passive approach

      • skrebbel 15 hours ago ago

        how so?

        • Y_Y 13 hours ago ago

          Tabarnak de câlice de ostie! Most of their swearing is just references to Catholic paraphernalia.

          https://en.wikipedia.org/wiki/Quebec_French_profanity

          • deltoidmaximus 5 hours ago ago

            My wife is fond of swearing profusely in Québécois and it amused me how detailed this wikipedia entry was when I looked it up. Apparently, it was used to the fullest extent by her father recently in response to a broken toilet.

        • Z_Z 14 hours ago ago

          only meant it in tongue-in-cheek jest. the "gros mots" in Québécois french are firmly rooted in the culture and liberally applied. though I guess the same could be said about any language's swear words now that I'm thinking it out loud

          • ben1040 7 hours ago ago

            I've been watching the Québécois version of Taskmaster with community-made subtitles and I love how the subtitle writers have included brief idiomatic explanations for the swearing that is constantly peppered into the dialogue.

          • skrebbel 14 hours ago ago

            Hahh nice, appreciate the elaboration!

  • vessenes 10 hours ago ago

    This is nicely written, and the style is fresh after a year of reading LLM writing whenever I click.

    Interesting to me is the audience - this article is appropriate for a middle schooler on up to read, and assumes no technical knowledge at all, or very little. Documentation targets and the social culture around them have varied since I started reading documents like these, but this sets an especially low bar for reader knowledge.

    I like it. On the one hand, I could have gotten much more technical detail out of a version that used industry-specific words and was half the length, but on the other, I got what i needed, and learned much about the author to boot.

    • deltarholamda 8 hours ago ago

      It also impressed me, as I'm not sure I'd have that sort of dogged patience. Samba is one of those incredibly useful pieces of open source software that sometimes I feel I take for granted.

      I won't take it for granted now.

      As a side note, the documentation has been pretty darn good too. I set up an AD server in Samba just from the docs, with a bit of additional help from Stack Overflow. It was only after I had finished that I determined that I could do what I needed with just the basic Samba user/groups. (My needs were not complicated enough to justify the extra overhead of AD.)

    • doublerabbit 8 hours ago ago

      2003 was a completely different era for technical detail. That kind of detail normally only sat in corporations.

      People would jump in, contribute their part, write a bit and leave. Folk were willing to contribute ideas to your project and assist in parts you got stuck. You learnt and understood by studying the source you were given or obtained. There were less expectations, if you had a half-baked thing folk gave you grave .

      Code was more optimistic, fun and free for all. You didn't get lynched for not having a license or for not using $LANG. You grabbed something from Sourceforge and ran with it.

      Why are you not using Python!? Why are you coding in TCL. PHP, pathetic. eww, you use IRC? lol perl.

      Forums were rampant, the internet was a friendly place; LAN parties were awesome and the internet had rainbow coloured fences not grey greased walls like now were climbing over are a struggle requiring you to leave with one or the other. The world wasn't as depressed and a new phone was a new phone and not just a rehashed Android UI.

      Where did we go wrong is an answer that cannot be answered other than we seem to keep making the same mistakes over and over again blaming whoever.

      Granted I was 15, so naivety. Thirty Seven this year and still waiting for someone to code the time machine to relive those days.

      /me goes and scours sourceforge

      • johnisgood 8 hours ago ago

        I agree with everything you said, apart from "That kind of detail normally only sat in corporations.". I do not agree with it, because it applied to many open source projects.

        And yeah, remember Eggdrop? :D

        • doublerabbit 8 hours ago ago

          I do, I never understood it then, I do now. Hybrid Ircd is what I used for my server. You were cool if you used Ratbox, and Unreal I never unstood why you needed +a and +q

          Documentation was never fun so I'll use my age as an alibi. I was just a script kiddie and recalling downloading MB's of scripts and uploading them on to polarhome [0] where some awesome swede was hosting shell access to different systems on his home DSL. Me kitted with my three-hour limited 56k and my fathers work 128K ISDN line.

          Oh well, nostalgia over back to work, writing IT architecture docs.

          [0] http://www.polarhome.com

      • dogleash 7 hours ago ago

        > Where did we go wrong

        Driving character out of the software world. Spotify couldn't whip the llama's ass even if it wanted to. And it doesn't want to. Spotify is a boring office worker that we're professionally cordial with only because they run the stockroom.

        • pixl97 5 hours ago ago

          If you looked at 'old' software companies that existed at 2000, they were boring companies like IBM. Really what most people don't want to admit is most of the software world grew up and got old.

  • doodlesdev 11 hours ago ago

    Nicely written.

    If I ever want to teach someone how to write a black box implementation for some kind of software interface, I'll point them to this to get started. The French café analogy is pretty good. It's also great because Parisians aren't always the nicest people around, just like the servers and clients you'll be working with during your implementation.

    I guess nowadays you could also automate some part of the protocol discovery with LLM agents? Has anyone tried this before with any promising results? My idea would be to have a traditional fuzzer poking at the server, but use an LLM agent whenever you get a non-error message or a different error message to attempt the well-crafted request without having to shotgun every possibility under the sun into the server.

    • lionkor 11 hours ago ago

      I feel like using an LLM for this is not a good fit, because it's super difficult to verify whether the knowledge it found is true or made up. LLMs are much better at coming to a conclusion when a human wouldn't be sure at all, and that seems really important here.

      • yencabulator 6 hours ago ago

        In this case, you verify whether the knowledge was made up by comparing the virtual waiter behaviour to the actual waiter. Having a strong test suite like that is actually the ideal scenario for agentic development.

        (It still incredibly hard to pull off for real, because of complex stateful protocols and edge cases around timing and transfer sizes. Samba did take 12 years to develop, so even with LLM help you'd probably still be looking at several years.)

      • doodlesdev 11 hours ago ago

        I guess the LLM doesn't need to verify whether what it found is true or made up, but rather just save the request and answer for later, so it can be reviewed by a developer and documented.

  • toyg 15 hours ago ago

    Nadella' Microsoft talks a good game about open source, but Samba (for all it's awesomeness), arguably the key piece of interop between Windows and Linux, is still periodically awkward to deal with. For example, if Windows users authenticate with their cloud account (which MS made basically compulsory) things tend to break.

    • taskforcegemini 7 hours ago ago

      to be fair, things also break on windows if you use their online services

    • nolok 11 hours ago ago

      To be fair, I'm not sure if it's an interop/open source thing, and it's just the fact that windows was always based on the fact it can be disconnected and run on a local account, even though microsoft tries to hide it.

      Also one thing I have discovered with the whole work from home thing, is that users connected to their personnal cloud account on windows at home who then also connect their professionnal o365 account for work randomly end up with various weird issues.

      Their cloud account in the OS thing is just not well thought out.

      • pluralmonad 8 hours ago ago

        Alternatively, it is very well thought out, but has different goals than you imagined. It is certainly a terrible user experience in many ways.

  • ZeroConcerns 15 hours ago ago

    Note that the complete title is "How Samba was Written", but apparently there is a list of unapproved interrogative adverbs...

    Also note that since the MS-EU settlement, the SMB protocol is quite extensively, if a bit passive-aggressive opaquely, described in a series of documents that Microsoft updates to this day, e.g. https://learn.microsoft.com/en-us/openspecs/windows_protocol...

    • p_l 12 hours ago ago

      A lot of "fun" with those documents is that some of them quite probably were archeological digs on Microsoft side too.

      For example, the MAPI specs have references to valid parts of the protocols and data structures that are not used anywhere and which in fact crash MAPI libraries (so Outlook and Exchange just throw errors if you give them such data), sometimes giving a glimpse of how there might have been abandoned features that were never delivered.

      Like, surprisingly, HTML email support in Outlook[1] :D

      [1] MAPI Message struct, and thus Exchange and Outlook, crashes when encountering "HTML message" let's call it "submessage". Turns out the valid way to save a HTML message is by wrapping it in RTF and saving it as Rich Text submessage. Plain text is another submessage.

    • jchw 14 hours ago ago

      Yeah, Hacker News does that. I've heard you can simply edit the title after submitting to fix Hacker News' "fixes" but I've not submitted enough things to give it a try.

      • dcminter 10 hours ago ago

        This is correct (I've done it a few times). I think there's an edit window though and at 8 hours we're well outside that.

        The other option (e.g. when it's not your submission) is to email the mods, which I've just done, and they will fix it up if appropriate.

  • hinkley 6 hours ago ago

    There was a weird moment when the overlay filesystem in docker had a disk leak for files that were written to inside the container and not being able to clean up after they exited except by resetting the entire host system.

    One of the recommended ways to solve it was to smb mount a volume for the volatile files. Which almost as fast as the overlay.

  • i386 6 days ago ago

    At the WiseTech office in 2006 we had a small shrine in the corner dedicated to Tridge, the patron saint of hackers.

  • commandersaki 13 hours ago ago

    I remember reading an interview or a biography of Tridgell that talks of him writing the code for what became Samba before Linux had existed, for I think interop between Microsoft and DEC.

    • p_l 12 hours ago ago

      IIRC Samba started out working on interop with DEC Pathworks, which was somewhat compatible SMB implementation (devil in the details, Pathworks predates SMB ossifying into what it became in NT4 when there was a lot of customization by vendors).

      This meant that early versions were compatible with Pathworks servers but not Windows ones (but Windows could be configured to work with Pathworks)

  • bell-cot 13 hours ago ago

    Minor points of HN amusement:

    This item is popping up from HN's Second-Chance Pool - check the mouse-over text on the submit time. Background - https://news.ycombinator.com/item?id=26998309

    This item has been on HN a number of times. Sometimes the "How " is re-added to the title, sometimes not. (Click the 'samba.org' link, above, for a quick look at that.)

  • dang 6 hours ago ago

    [stub for offtopicness]