Hillel

@Hillelogram

Author of , currently writing Practical TLA+. Code nurse, passable chocolatier. DMs open, ask me questions!

Joined October 2011

Tweets

You blocked @Hillelogram

Are you sure you want to view these Tweets? Viewing Tweets won't unblock @Hillelogram

  1. Pinned Tweet
    Aug 20

    I'm now offering corporate workshops on TLA+. Three days, hands on, can be tailored to your problem domain. If you or anyone would know would be interested in this, please get in touch! DMs are always open.

    Undo
  2. Aug 25

    I'm prouder that my vim-brainfuck interpreter inspired this post than I am in the interpreter itself. And I was pretty damn proud of that interpreter!

    Undo
  3. Retweeted
    Aug 25
    Replying to

    Possibly, though I suspect it would get pretty overwhelming and incomprehensible pretty quickly. Maybe better than staring at a "please wait" prompt though? I'm sure you saw 's link to some model-checker state-space visualizations?

    Undo
  4. Aug 25

    Same with the solver backend; The slowest by an order of magnitude became, with an optimization, the fastest by an order of magnitude. I get the feeling a lot of it is dark magic unless I get very deep into the internals.

    Show this thread
    Undo
  5. Aug 25

    Constraint solvers are weird. I'm working on a MiniZinc project, first version took 3 minutes. With two optimizations it takes <1 second, but either optimization by itself it takes 5+ minutes. I've no idea how to find optimizations besides "try every combination of everything."

    Show this thread
    Undo
  6. Aug 24

    But I can find almost no online blogging about Minizinc (or or-tools, or optaplanner, or Picat...), so I'm guessing that outside of a few small niches, these tools are super obscure. Are they worth making more broadly known?

    Show this thread
    Undo
  7. Aug 24

    I've been learning Minizinc and I'm realizing that there were a few problems at my last couple of jobs that might have been appropriate to use constraint solving on. We rolled our own solutions, though, which worked okay for the most part.

    Show this thread
    Undo
  8. Aug 24

    If you've encountered a constraint problem at work (maximizing some value, making sure times don't overlap, etc) how did you solve it? Did you use an off-the-shelf constraint solver or write your own algorithm?

    Show this thread
    Undo
  9. Retweeted
    Aug 23

    As much as I'd plead for folks to stop proselytizing preferred systems/languages, I'd also plead for folks to not throw snark at systems/languages with differing priorities/goals/constraints/histories. Maybe default-believe more than one choice among hard tradeoffs is reasonable?

    Undo
  10. Retweeted
    Aug 22
    Replying to

    There is also "they aren't that great *right now*", which takes a little from "they aren't that great" and a little from "unpersuasive". Examples: amazing languages with awful performance (or hard-to-reason-about resource usage!), formal methods tools that don't scale...

    Undo
  11. Aug 22

    There is much more to the story, of course, and there's other factors besides the three I mentioned. And not just one factor explains everything; it's going to be a mix. But "programmers suck at marketing" is one I never see brought up, hence my tweetstorm.

    Show this thread
    Undo
  12. Aug 22

    I don't think better demos were available back when Smalltalk and Lisp were big deals. I think that failure of persuasion is one part of why these ideas never went mainstream.

    Show this thread
    Undo
  13. Aug 22

    The OT lists accomplishments like "homoiconic code" and "coroutines". Most demos on homoiconic code I've seen either apply it to toy problems, apply it to extremely niche problems I don't think I have, or don't really justify why I need macros, specifically, to solve the problem.

    Show this thread
    Undo
  14. Aug 22

    But it has to be a real problem, and it can't look contrived. People can tell when a demo is contrived and it makes them rightly suspicious. Most examples I see are contrived.

    Show this thread
    Undo
  15. Aug 22

    I've found that the best response is persuasive demos. Demos that show P is in fact a problem they have, that W/Y/Z don't solve P, and that X does. That's what I tried here, using TLA+ to catch a bug expert testers couldn't find:

    Show this thread
    Undo
  16. Aug 22

    To take a personal example: I'm a big advocate of formal specification to solve complex design bugs. Usually the objections are something like: "I'm not making airplanes or NASA probes" "I don't need specs because I have TDD/Types/Agile/Haruspex"

    Show this thread
    Undo
  17. Aug 22

    Okay, so how DO we persuade people? I'm obviously no expert here, but here's what I THINK is important: For any solution X to problem P there are usually two forms of objection: "I don't have P" and "I don't need X when I have W/Y/Z".

    Show this thread
    Undo
  18. Aug 22

    Don't believe me? Here, read the following two pages and tell me how you feel about it makes you feel about lisp programmers: (Clojure programmers are exempt from this exercise)

    Show this thread
    Undo
  19. Aug 22

    And some don't even bother finding common ground, and those people can irreparably sabotage the discourse. If you read something like "programming without X is MORALLY UNETHICAL" you're won't think "advocates for X are ethical". You'll think "advocates for X are smug assholes."

    Show this thread
    Undo
  20. Aug 22

    Persuading people is a skill! It's one a LOT of us are bad at. We often advocate for things we can't imagine working without... so we can't empathize with people who DO work without it and so struggle to find common ground.

    Show this thread
    Undo
  21. Aug 22

    No matter how good an idea is, people won't naturally accept it. You have to convince them, which is hard. Most people are skeptical of new ideas in programming, which I think is usually a good thing. For every idea like Quickcheck there are a dozen like Tonal Bitcoin.

    Show this thread
    Undo

Loading seems to be taking a while.

Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.

    You may also like

    ·