Tweets
- Tweets, current page.
- Tweets & replies
- Media
You blocked @Hillelogram
Are you sure you want to view these Tweets? Viewing Tweets won't unblock @Hillelogram
-
Pinned Tweet
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.
Thanks. Twitter will use this to make your timeline better. UndoUndo -
Hillel Retweeted
avoid writing comments that explain bad code. just leave this code sitting there as a huge "fuck you" to the next person to maintain it.
Thanks. Twitter will use this to make your timeline better. UndoUndo -
Hillel Retweeted
See also my blog article on an experiment between human planners and a constraint solver: https://www.optaplanner.org/blog/2015/06/03/HowGoodAreHumanPlanners.html … Yet, the constraint solver still needs the human planner for guidance (constraint weights, change management, data input, pinning, ad-hoc phone calls, ...).
Thanks. Twitter will use this to make your timeline better. UndoUndo -
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!https://twitter.com/light_rook/status/1033468061964103680 …
Thanks. Twitter will use this to make your timeline better. UndoUndo -
Hillel Retweeted
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
@pressron's link to some model-checker state-space visualizations? https://www3.hhu.de/stups/prob/index.php/State_space_visualization_examples …Thanks. Twitter will use this to make your timeline better. UndoUndo -
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 threadThanks. Twitter will use this to make your timeline better. UndoUndo -
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 threadThanks. Twitter will use this to make your timeline better. UndoUndo -
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 threadThanks. Twitter will use this to make your timeline better. UndoUndo -
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 threadThanks. Twitter will use this to make your timeline better. UndoUndo -
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 threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Hillel Retweeted
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?
Thanks. Twitter will use this to make your timeline better. UndoUndo -
Hillel Retweeted
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...
Thanks. Twitter will use this to make your timeline better. UndoUndo -
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 threadThanks. Twitter will use this to make your timeline better. UndoUndo -
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 threadThanks. Twitter will use this to make your timeline better. UndoUndo -
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 threadThanks. Twitter will use this to make your timeline better. UndoUndo -
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 threadThanks. Twitter will use this to make your timeline better. UndoUndo -
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:https://www.hillelwayne.com/post/augmenting-agile/ …
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
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 threadThanks. Twitter will use this to make your timeline better. UndoUndo -
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 threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Don't believe me? Here, read the following two pages and tell me how you feel about it makes you feel about lisp programmers: http://wiki.c2.com/?SmugLispWeenie http://wiki.c2.com/?SocialProblemsOfLisp … (Clojure programmers are exempt from this exercise)
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
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 threadThanks. Twitter will use this to make your timeline better. UndoUndo
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.