11 Matching Annotations
  1. Nov 2022
    1. Second, if Jenkins runs as PID 1, then it may not receive the signals you send it! That's a subtlety in PID 1. Unlike other unlike processes, PID 1 does not have default signal handlers, which means that if Jenkins hasn't explicitly installed a signal handler for SIGTERM, then that signal is going to be discarded when it's sent (whereas the default behavior would have been to terminate the process).
  2. Oct 2022
    1. But what if we’ve more elements to ignore? people = { "Alice" => ["green", 34, "alice@example.com"], "Bob" => ["brown", 27, "bob@example.com"] } No problem. Just re-use the underscore: people.map { |name, (_, _, email)| [name, email] } You can’t do it with any variable, though, at least in Ruby 1.9. It only works with variables that are called _: people.map { |name, (x, x, email)| [name, email] } # SyntaxError: (eval):2: duplicated argument name
  3. Nov 2021
    1. Of course, we can always add more special cases to the type system to detect the specific case of iterating over a known-bounded object literal, but this just leads to the "Why does this code not behave like this other nearly-identical code?" problem when we fail to properly exhaust all the special cases.
  4. Oct 2021
    1. Die vollständige digitale Reproduktion des Zettelkastens einschließlich aller Vernetzungen stellt die größte und reizvollste Herausforderung dieses Langzeitprojektes dar. Der Entwickler Sebastian Zimmer vom CCeH bezeichnete die Aufgabe als facettenreich und anspruchsvoll: "Immer wieder gibt es Spezialfälle zu entdecken. Dadurch ist der Spaß an der Sache gewährleistet, und es wird nie langweilig."

      Machine translation:

      The complete digital reproduction of the card box including all interconnections is the greatest and most appealing challenge of this long-term project. The developer Sebastian Zimmer from the CCeH described the task as multifaceted and demanding: "There are always special cases to discover. This guarantees fun and it never gets boring. "

      The idea that digitizing his zettelkasten has many special cases is an indicator that the system morphed and grew as he used it. He likely settled into some specific uses over time, but it's likely that the overall shape is similar to other note taking forms, but he worked to make things fit his particular style.

  5. Aug 2021
  6. Feb 2021
    1. Write special-case classes. For example, you will have User base class with multiple error-subclasses like UserNotFound(User) and MissingUser(User). It might be used for some specific situations, like AnonymousUser in django, but it is not possible to wrap all your possible errors in special-case classes. It will require too much work from a developer. And over-complicate your domain model.
    1. Beware, though: What you are about to see is not particularly elegant. In fact, the TTY subsystem — while quite functional from a user's point of view — is a twisty little mess of special cases. To understand how this came to be, we have to go back in time.
  7. Nov 2020
    1. You could decide to trust yourself and your teammates to always remember this special case. You can all freely use short-circuiting, but simply don't allow a short-circuit expression to be on the last line of a script, for anything actually deployed. This may work 100% reliably for you and your team, but I don't believe that is the case for myself and many other developers. Of course, some kind of linter or commit hook might help.
  8. Oct 2020