1. 15

  2. 4

    If you take the light rail in, be careful to not cross the street to the side opposite the campus; that EZ-8 motel and McDonald’s is overflowing with homeless and prostitutes. I worked at a startup on that block and was harassed many times just walking by. I also saw someone steal a bike off the platform and ride away while the owner was buying a ticket from the machine.

    1. 2

      I’m glad you made the time to give a talk for BayLISA.

      I thought the audience suggestion of adding more “ergonomics” or “comforts” (UI affordances, like your example of completion in fish shell not scrolling the command off the screen) as a means of giving users a compelling feature and reason to migrate from bash was a realistic and astute observation on the sort of benefit it takes to make it worth using a different shell. Particularly as you had another audience member, after demonstrating that Oil Shell produces superior error messages to bash, wanted them to be even better.

      I personally got the most out of your demoing the parse phase of Oil Shell, including having it output the abstract syntax tree. As a glue language there are places where one naturally wants to embed snippets of shell code, for instance GNU Make makefiles. That is it now possible to parse, validate, and not execute shell code makes this choice safer from exploits like the myarray command-execution side-effect you presented.

      The spontaneous post-talk whiteboard “shell puzzles” discussion your talk inspired was a nice compliment to your shell WTF notes. I think folk enjoyed themselves. I certainly did.

      1. 2

        Thanks for the feedback Alan! Yes I agree that the interactive shell is important, especially for the first impression, and I’ve been working on that.

        I put three screencasts here of “demoish”, which is a prototype I’m going to fold back into Oil:


        You can check it out and run it easily. Python 2 with no dependencies:


        Let me know what you think!

        There are some limitations imposed by GNU readline, but not too many. I got feedback at the talk from one person who used and loved some pretty obscure features of GNU readline, so I’m happy with my decision to stick with it – unlike fish, zsh, and Elvish, which implement their own line editing.

        The goal for the interactive shell is to be both better than bash and comfortable for bash users. fish, zsh, and Elvish users might find it a little “minimal”. I think that’s OK for now. In the distant future, I expect the UI will be arbitrarily customizable with the Oil language. (I’m sure nobody wants to customize the UI in the shell language.)

        I did notice that people cared a lot about the better error messages, so I’ll definitely be working on those. That was a big goal at the start of the project and I’m glad to see it generated a lot of discussion and interest.

      2. 2

        The project name is a bit confusing since it contains oil and shell (an oil company). I honestly thought this was a talk about the environment. I guess what’s why it’s often abbreviated to OSH.

        1. 3

          Ha, yeah it appears the Shell Oil brand is very strong, stronger than I would have thought :) Oil of course has nothing to do with that!

          FWIW, the story behind the name is basically:

          1. It needs to be 3 characters like a good Unix tool
          2. Oil is what makes your “metal” parts work together, metal being native code in C, C++, etc. It’s lubricant or glue.

          I can also invent something about NJ, Unix, and Standard ML. I grew up in NJ, and Unix was of course invented in NJ at Bells Labs – Richard Gabriel hilariously called it the “NJ style” in his famous “Worse is Better” essay.

          There’s also a programming language called Standard ML of New Jersey, which I suppose was a humorous pun on Standard Oil of New Jersey, the turn-of-the-century monopoly that broke up and became Exxon, Mobil, and a few other companies.

          As far as I understand, Standard ML was basically a collaboration between Bell Labs and Princeton University. Oil uses Zephyr ASDL in its implementation, which was described in a paper by ML expert Andrew Appel at Princeton.

          1. 1

            Maybe Unix user account names are canonically 3 characters but I don’t think that really applies to tools and utilities. I would baselessly assert there are more 4 character and 2 character than 3 character tools.

            1. 1

              I always thought it was a pun on Shell the company! :-)

          2. 3

            Why was this down voted? It’s a technical talk. I’m personally not interested in Oil Shell but I know a number of folks on this site are. Wanton downvotes are to be discouraged, please. Hide if not interested but a fully on topic post like this being down voted is troubling.

            1. 4

              I did not vote, but if there are downvotes I suspect it’s not due to a lack of interest in Oil, but because the content in this particular post is useless for anyone who can’t get to San Jose. If we start getting more hyper-local posts I think it would worsen the Lobsters experience.