5 ms·
Looks like fairly standard OCaml and usage of functional programming idioms. Q: Where's the CI and property tests? If you feel uncomfortable maintaining the cod
by ghuntley 7y ago
Looks like fairly standard OCaml and usage of functional programming idioms. Q: Where's the CI and property tests? If you feel uncomfortable maintaining the code base, start there.
- ghuntley 7y agoThe author of the gist has his CV on his personal website and lists himself proficient in fsharp. :confused:
- gravitas 7y agohttps://rationalwiki.org/wiki/Argumentum_ad_hominem https://rationalwiki.org/wiki/Argumentum_ad_hominem
- cbsmith 7y agoThat wasn't an argument... It was an expression of confusion as to why the author would say what they said.
- ghuntley 7y agoYup.
- pvg 7y agoIt's not. This thing: https://gist.github.com/rjhansen/67ab921ffb4084c865b3618d6955275f#gistcomment-2957376 https://gist.github.com/rjhansen/67ab921ffb4084c865b3618d695... is not an 'expression of confusion', it's an attempt at offtopic shitstirring and mockery. It's kind of dumb in the gist - keeping it up on HN (where it's sensibly forbidden) is worse.
- cbsmith 7y agoSo one person said yup, and the other person said nope. ;-) I agree it served to make the author look a bit foolish.
- hinkley 7y agoI’ve gotten stuck maintaining Python code for a testing framework and again for a CI/CD system. The fact that I know less than a junior programmer didn’t really slow me down that much, but it did make me a bit anxious. One of those systems involved a large and obvious crypto component. If the python code had been part of that work instead of merely peripheral to it, I would have rewritten it. Why? Because I can make python work but I can’t tell you if it’s safe. I have no idea what the weird gotchas are that look like good code but are not. What the “printf” of python is. Hackers do. And I know even less about O’Caml. I would not sign up for that gig. Lots of the sort of rational and cautious people you want working on crypto would not.
- ghuntley 7y agoI get that but in this case though this codebase has safety guarantees baked in via the Hindley–Milner (HM) type system whereas your python code base did not. Additionally there's a published, peer reviewed paper for this software that serves as a written specification. Those two things are fantastic resources when coming up to speed with an unfamiliar codebase.
- hinkley 7y agoI’m an old school strong, static typing proponent (strong typing shall rise again!) but I laugh at the notion that it protects you from crypto attacks. Are you a maintainer or an armchair critic? I hope the latter, because if you think type safety is anything more than necessary but insufficient, then that’s number three.
- hinkley 7y agoAlso, there are few enough tests that I had to do a text search for the word test to spot them. How many ml files in the top directory, and the word test appears nine times. So that’s the second big problem with this code, and it’s a huge one. The crypto project I worked on had better test coverage than anything I ever did before and quite possibly since. Because it was a dangerous animal and, like a responsible exotic pet owner, I treated it with respect at all times. Unlike the guy I took over the project from. And because of my paranoid fastidiousness, I stopped a user from shipping with only 8 bits of entropy in their key generator. That would have been a fun bug for a DEFCON presentation.