Sign in with Twitter

Username:

Occasional OCaml programmer

133 Following   4,612 Followers   4,041 Tweets

Joined Twitter 6/21/09


@natefoster Or bring it down on your next visit to NYC!
12/10
2017
This is pretty cool tech it allows to debug (and run large loops without locking up the browser) any compile-to-js… https://t.co/xHIPXyEkD9
Retweeted by Yaron Minsky
12/8
2017
One of the truest things in systems design, too. https://t.co/XMOZToDb50 https://t.co/VMBZdWjeUr
Retweeted by Yaron Minsky
12/7
2017
PPXs, three years later. https://t.co/R5TF5tz7ve
12/5
2017
A new talk from @ianthehenry on how we do review, and how that looks from the perspective of someone who grew up on… https://t.co/EgoTDD6Bgo
12/4
2017
@keleshev This is just a library-design question, no? What's wrong with the first-class module solution in Base? M… https://t.co/KOjWaya3o0 @jordwalke @keleshev Fear not: [@@deriving hash] to the rescue.A great opportunity to work with the team that created OCaml: https://t.co/XwYTflwrNN
Retweeted by Yaron Minsky
12/3
2017
This reproduces my biases almost exactly, although I do think >>= and >>| have their place for point free expressio… https://t.co/aOq9TQi5yKA good thread discussing how naive use of the memory representation associated with the default abstractions in you… https://t.co/ehWAj9SRtg
12/1
2017
@gclaramunt I don't think there's currently a way to do a performant encoding of linearity in OCaml. @gclaramunt That use-case is high performance transaction processing, where the underlying state machines represent… https://t.co/LIkLKXWTKN @gclaramunt Yeah, but that's not what we do. Instead, we don't formally check the linearity constraints, and it tur… https://t.co/yRacT3zCyuThis is a good thread. It's worth noting that you can actually use OCaml for some kinds of GC-free code (we do it… https://t.co/EJZfp8UfDf @natefoster's excellent talk on using SMT solvers for verifying data-plane programs (think, programmable switches)… https://t.co/xDuxT25iZuSome good news on the PPX front, from @dimenix https://t.co/suohmvy8bX
11/30
2017
@aj_yay Definitely not! We're happy to hire people at all stages of their career. And you don't need to know any fu… https://t.co/SLRsLuMZmW
11/29
2017
@marius Reassuringly, it was less the new grads and more the old profs who had the penetrating observations.And no, you don't need to know anything about functional programming or about finance to get a job here (internship or fulltime).One of the things that interns have really appreciated about our internships is the diversity of projects. Interns… https://t.co/haRJawCcnmAnd here's a link to some general advice about applying to Jane Street, which includes links to what interns have d… https://t.co/y32HVO93kwPSA: Jane Street is actively recruiting interns for this summer. The internship program is really fantastic. You le… https://t.co/h8RPfPgFBJIt's now clear to me that the genre of version control aphorisms is vastly under explored. @jacobmcarthur Viewed this way, the fact that people prefer rebases (often for good reason) shows a weakness in the underlying VCS. @jacobmcarthur Indeed. I think what you really want is a system that records the full history, but that can present… https://t.co/g5UaOn89ES @jacobmcarthur @CoBuddha Me neither, but I find it pleasing nonetheless. @EyalL "Lord, may all our conflicts be silently replaced by LGTMs." @EyalL Happily, the transformation of a patch during a conflicted rebase, while equally incomprehensible, is erased… https://t.co/uH2WRl1GJF @EyalL Unfortunately, "a rebase is just a forgetful, incremental merge" doesn't flow quite as well.
11/28
2017
"A rebase is just a forgetful merge" Please discuss.Disturbingly sharp audience at the Brown CS. I gave my "Design of Iron" talk, and they did a disturbingly good job… https://t.co/dtufhsuyO3 @jacobmcarthur Yeah. Longer names for the variables would be more worth it if there was the equivalent of labeled a… https://t.co/hXxMVHVYOb @jacobmcarthur You don't hold by the usual advice on this? Short names for oft repeated concepts or variables cover… https://t.co/D1IhhIXSud
11/27
2017
Jeremie is awesome, and so is jbuilder! A nice overview of how to setup a jbuilder project with sub-libraries, code… https://t.co/8npdMAHSAe @heuschnupf @paulbiggar @BrandonBloom @joeerl Reason is just an alternate syntax, so it's not really worthwhile for… https://t.co/7oW1Ay6sqI
11/26
2017
@paulbiggar @BrandonBloom @joeerl Kind of. Take a look at these: https://t.co/54j3yqNtF4 https://t.co/Tzek32JzKxhttps://t.co/4N3vZB19wy @paulbiggar @BrandonBloom @joeerl Well, currying would be done by explicitly constructing a function when you wante… https://t.co/NYx6dFrFQh @paulbiggar @BrandonBloom @joeerl I believe it. As I said, it seems very nice. But for us, OCaml kind of dominates… https://t.co/dGTGQsx5Z1 @paulbiggar @BrandonBloom @joeerl Especially important in an effectful language, where arrows might contain arbitra… https://t.co/MLd9JkZorh @paulbiggar @BrandonBloom @joeerl As for currying-by-default, I think it's better to have first-class multi-argumen… https://t.co/lg3Ln5z3vW @paulbiggar @BrandonBloom @joeerl Yeah, Elm seems nice, but once you know OCaml, it wasn't clear to me why I'd want… https://t.co/7eWBim0nGo @paulbiggar @BrandonBloom @joeerl There are other interesting directions to try out, like modular implicits; but I… https://t.co/VINUm7xzlt @paulbiggar @BrandonBloom @joeerl I wouldn't include the object system or polymorphic variants if I was creating a… https://t.co/ACgizyutLd @paulbiggar @BrandonBloom @joeerl Well, I guess it's no surprise that I think of that as a good choice... @paulbiggar @BrandonBloom @joeerl One possibility is that you could understand refactorings as diffs whose semantic… https://t.co/gzTZhlQzfc @paulbiggar @BrandonBloom @joeerl I'd love to see some examples of the power of language-specific diffs. One of the… https://t.co/wAGz8uX3tU @paulbiggar @BrandonBloom @joeerl That sounds interesting. What distinguishes the language itself? @paulbiggar @BrandonBloom @joeerl Awesome! I hope it's working out for you. Are you using OCaml to target JavaScript as well? @paulbiggar @BrandonBloom @joeerl Have you thought about what happens when you cross AST versions? e.g., when you r… https://t.co/UGXn5sqeWu @paulbiggar @BrandonBloom @joeerl A more interesting question: it sounds like you've got some serious improvements… https://t.co/rtEXRLJoTl @paulbiggar @BrandonBloom @joeerl Sure. But in the end, tools built on top of diff and patch (like Git, Mercurial a… https://t.co/H773ue0e5W @paulbiggar @BrandonBloom @joeerl Tools like diff and patch work decently well in a wide variety of circumstances,… https://t.co/wHoUCyfAgP @paulbiggar @BrandonBloom @joeerl One simple example: people often pine for language-specific diffs. This sounds ni… https://t.co/EUnkf6EAn5 @paulbiggar @BrandonBloom @joeerl The magical thing about plain-text is that it gives a reasonable shared data stru… https://t.co/7K4HBRAsbB @paulbiggar @BrandonBloom @joeerl Interesting. This differs greatly from my view. Having seen the process of desig… https://t.co/zr8qBXaWzv @simrob @krismicinski For https://t.co/GU7pRVtzLU, are you forced to use their hosted instance? Or can you spin up… https://t.co/mAljPv17AE @BrandonBloom @paulbiggar @joeerl Agreed. @paulbiggar, are you really arguing that diff and patch are bad? They're… https://t.co/5UmWuvTx6G @paulbiggar @BrandonBloom @joeerl Going away from plain text means giving up on a ton of shared tooling: code revie… https://t.co/BB6iWnl1zC @soumyab8 Yup. That looks like an example. @krismicinski @xexd @danking00 It seems like if you had something that could trigger a script in response to a push… https://t.co/RVGzj5rpIC @xexd @krismicinski @danking00 Yeah, that seems like the key limitation. I wonder how hard it would be to add that capability.I love this. Makes me wonder what odd programming habits I will have to explain to my kids in 20 years. https://t.co/PVJ8NRqZTP @paulbiggar @joeerl For sure. Commonly used and highly abstract inputs deserve shorter name. But we have relatively… https://t.co/9SSrf4Gr63 @BrandonBloom @paulbiggar @joeerl Agreed. It's not just a property of using text. Also, we should be leery of givin… https://t.co/fC77vS7V0c @krismicinski I think one of the complaints I heard is that for 15-150, they had a system where you could just push… https://t.co/AJVDBquQme @krismicinski Oh wait, I have heard about this! Amusingly, this is developed at CMU, but not used for a bunch of their internal courses. @krismicinski I have not. I really mostly see this problem from visiting profs and talking to them about their infr… https://t.co/XBisOgzuig @BrandonBloom @joeerl I agree with that. @BrandonBloom @joeerl I believe programmers routinely overweight concision, because it feels better to the writer.… https://t.co/WJ94Fphmlc @BrandonBloom @joeerl For me, the key is to think of each ad-hoc shortening as another thing you're asking your rea… https://t.co/JKDYUIyeIg @BrandonBloom @joeerl Perfectly plausible. But I don't like dropping vowels to shorten names routinely (though I do… https://t.co/DIcZrAuKWL @BrandonBloom @joeerl Random example here. The set_property function takes arguments property_value and property_na… https://t.co/iOzz4NZ3aw @BrandonBloom @joeerl Interesting. We almost never write "ctx" instead of "context", and I think using full words d… https://t.co/KMUck2yQhJ @martynjriley I think the problem is simpler and less sinister than that: no one is incentivized to build shareable… https://t.co/vr3rjaeAlA @mojobojo @joeerl @jdegoes And the concrete domain is where descriptive variables names prove useful. @mojobojo @joeerl @jdegoes Moreover, in a well-designed programming environment, your abstractions are highly versa… https://t.co/tbHKGXnkrO @mojobojo @joeerl @jdegoes It's of course true that polymorphic code has fewer options, and so fewer ways of going… https://t.co/RCiL4oROHL @joeerl I only like short, mnemonic names if they are few in number, or only exist over short scopes. Names that co… https://t.co/7XoHWP6nHlMaybe there's something out there that fits this description? I'm curious if anyone has suggestions.
11/25
2017

0