3,791 reputation
21647
bio website connjur.uchc.edu
location Connecticut, USA
age 27
visits member for 2 years, 8 months
seen 12 hours ago

I work in a scientific computing group on the CONNJUR project, providing open-source software for NMR (Nuclear Magnetic Resonance) spectroscopy.

Check out some of my work on github:

  • NMRPyStar: an API for accessing archived NMR data files in the NMR-Star format used by the BMRB.

  • Miscue-js: validation of JSON files to deal with obnoxious and tricky interoperability issues such as number overflows and duplicate keys

Some technologies that I've used and like:

  • Python
  • git
  • Javascript
  • Haskell
  • Java
  • MySQL

May
9
comment How do I simplify a compiler/interpreter?
Is the question exclusively about parsing? I'm asking because none of the responses mention anything about all the other things besides parsing that compilers and interpreters do.
May
9
comment How do I simplify a compiler/interpreter?
Nice points. To make it even simpler, I'd even go so far as to suggest producing a concrete syntax tree (CST) instead of an AST -- then the parse tree will exactly match the input, even including things like unnecessary parentheses. Easier to debug. Not at all sure how well this approach fits into YACC though.
May
8
revised If null is bad, why do modern languages implement it?
deleted 11 characters in body; edited title
May
7
awarded  Popular Question
Apr
30
comment Why is studying an lisp interpreter in lisp so important?
2nd paragraph doesn't make sense: homoiconicity != simple syntax; simple syntax makes it easy to write a Lisp parser in any language (see this). 3rd paragraph is vague, needs example(s).
Apr
25
comment Pattern matching in Clojure vs Scala
@gnat c2.com/cgi/wiki?QuotingNotThinking
Apr
25
comment Pattern matching in Clojure vs Scala
@kurofune it looks like most of us, myself included, agree that it was a well-written question.
Apr
25
comment Pattern matching in Clojure vs Scala
In defense of this question: it's objective, well-written, and clear. Why does it matter that the OP read a blog before posting this question? That doesn't change the quality of the question.
Apr
15
revised Design Pattern: Algorithm varies according to the input arguments
added 5 characters in body; edited tags
Apr
15
comment Design Pattern: Algorithm varies according to the input arguments
How does this answer address the other part of the question -- "Every combination of arguments needs different algorithm"?
Apr
15
answered Design Pattern: Algorithm varies according to the input arguments
Apr
14
comment Evaluation order of expressions in Clojure?
For observing evaluation of lazy seqs, something like (def my-observable-seq (map (fn [x] (println x) x) my-lazy-seq)) is great. Disclaimer: I probably wouldn't use it in real code.
Apr
11
comment Functions returning either “OK” or “error message” instead of procedures
"Anytime an instruction breaks the expected flow of execution, you expect an error to be thrown" -- this is totally arbitrary and subjective. I expect that different programmers would have different expectations.
Apr
10
comment Picking a card from a shuffled deck
@RobbieDee the place where you generate the random value is impure (since presumably you want it to be actually random, which means it'll depend on some outside state), but where you use it is pure. So in your main function, generate a random value. But then pass it as a simple parameter wherever you want to use it.
Apr
9
answered Types of unit tests based on usefulness
Apr
9
comment Picking a card from a shuffled deck
@RobbieDee yeah, make sure that your shuffle function is pure. Then it's easy to test and to play with in ghci. You can always use pure stuff from evil code, but you (generally) can't do something evil without becoming evil yourself! (evil = using IO, pure = not using IO)
Apr
9
revised Picking a card from a shuffled deck
added 476 characters in body
Apr
9
comment Picking a card from a shuffled deck
BTW, do {xs <- myAction; print xs} is better written as myAction >>= print.
Apr
9
revised Picking a card from a shuffled deck
rolled back to a previous revision
Apr
9
answered Picking a card from a shuffled deck