HN user

gmfawcett

2,422 karma

Director of IT infrastructure, University of Windsor, Canada. Former development manager; unreformed programmer; long-retired Lisp wrangler and Scheme whisperer (with the closing-parenthetical scars to prove it).

Posts0
Comments842
View on HN
No posts found.

I wasn't criticizing the essay. I was criticizing your suggestion that a narrow concept like "competence blindness" can explain the behaviour of a system as broad and immensely complicated as "all of Western Culture."

Or perhaps just because it's not accurate. Reducing any complex system down to a trivial projection is very unlikely to explain anything well.

That's a fair question, but I didn't have another person read it. (If I'm being honest, I think my colleagues would have looked at me funny. We don't exactly have a culture of using TLA+ to describe sysadmin processes here, and it felt a bit like a sledgehammer-swatting-fly even by my own standards! They thought the visualizations were cool, though...)

Many of my rules seemed pretty basic to me -- a lot of things like, "there is no target-node candidate whose ordinal is higher than the current target's and also satisfies the Good_Match predicate." But if I had been writing it for a human reader, rather than just to document constraints, I would have put in more effort to explain why the constraints existed in the first place (what's a Good match? Are there Poor matches? Why do we care? etc.). I didn't skip this step altogether but I didn't invest much time into it.

I did take care to separate "physics" rules from "strategy" rules (i.e, explicitly separating core actions and limits from objectives and approaches). That seemed to help the AI, and I'm sure it would have helped people too.

I think this was more of a press release than an edict. The Purdue announcement says, "Built on recently launched AI majors, minors and certificates across colleges, and following the establishment of a working group last summer, with additional careful deliberation and advice from the University Senate through its Undergraduate Curriculum Council..."

I've had the same intuition. I've had mixed results in this area, although I'm certainly no expert. Recently I wanted to formalize a model of a runbook for a tricky system migration, to help me reason through some alternatives. I ended up writing a TLA+ spec before generating some visualizations, and also some possible prototypes in MiniZinc. All three (spec, visualizations, CP models) were vibe-coded in different sessions, in about that order, though most of my personal effort went into the spec.

While the later AIs quickly understood many aspects of the spec, they struggled with certain constraints whose intuitive meaning was concealed behind too much math. Matters which I had assumed were completely settled, because a precise constraint existed in the spec, had to be re-explained to the AI after implementation errors were found. Eventually, I added more spec comments to explain the motivation for some of the constraints, which helped somewhat. (While it's an untested idea, my next step was going to be to capture traces of the TLA+ spec being tested against some toy models, and including those traces as inputs when producing the implementations, e.g. to construct unit tests. Reasoning about traces seemed to be a fairly strong suit for the AI helper.)

In hindsight, I feel I set my sights a little too high. A human reader would have had similar comprehension problems with my spec, and they probably would have taken longer to prime themselves than the AI did. Perhaps my takeaway is that TLA+ is a great way to model certain systems mathematically, because precision in meaning is a great quality; but you still have to show sympathy to your reader.

He can say what he wants, but he literally inlined the entirety of HTML into the syntax. It's delusional to suggest that this design choice emphasizes readability above all else.

My laconic question was downvoted. Sorry, I was on my phone, but didn't want to forget about this. I'm sincerely interested in reading the source of this research. Searching for it now, I came across this article:

https://www.microsoft.com/en-us/research/publication/the-spa...

But is this really the one you mean? Even the abstract states that there is no single metric that measures developer performance, which contradicts your claim:

Developer productivity is about more than an individual’s activity levels or the efficiency of the engineering systems relied on to ship software, and it cannot be measured by a single metric or dimension

So I'm still interested in reading the research you're talking about, and I would appreciate a reference. Thanks!

It's fine if the poster above me wishes to change languages. Anyone who chooses to stick with Haskell should get comfortable with the notion that functions can diverge, and accept that this is fully consistent with the Haskell type system. The return types may seem unhelpful, but they are accurate.

Code Models 2 years ago

It sounds cool but also like a remarkable level of scope creep for the JVM. I realize that Java ecosystem is far beyond simple these days. Nobody is spinning up a JVM implementation as a hobby project. But sad to see the deep entrenchment that is caused when an open standards platform is made so inconceivably complex that there is simply no opportunity to innovate on alternative implementations.

This is not an observation about this specific project, just about the organizational pressure to extend standards based systems beyond their core functionality, into territory where only few players can afford to roam.

I think some of the confusion is because you're referring to the type variables as parameters. Parameters and type variables are not the same thing. A is a type variable, X is a parameter in your example.

Sure, it's basically JSON with semicolons... that's used to define a graph of nested lambdas which are evaluated recursively until a fixpoint representing the stable configuration is reached. Also, you can add comments, which makes it nicer than JSON!

Remember: if you're not certain that your matrix meets the prerequisites for applying the Schur decomposition, you can always apply the Unschur decomposition instead.