1,029 karma · joined June 2, 2011
Blog: https://samritchie.io
[ my public key: https://keybase.io/sritchie; my proof: https://keybase.io/sritchie/sigs/_TS462cmjfImFbiWim_Fn5sGsIBqvrf20BpHEYUnNt0 ]
Particularly Rich... Hickey?
I picked up co-maintenance on this project a few months ago; it's a Clojure port of the computer algebra system behind Sussmans' "Structure and Interpretation of Classical Mechanics" [0] and "Functional Differential Geometry" [1], and can run all the code from those books. (I'm currently working on integrating it into https://Maria.cloud so all of this will be usable from the browser.)
`sicmutils.generic.simplify` plugs in to a rule-based term rewriting system like Mathematica's, along with polynomial and rational function simplification.
The core idea of the library is that if you build everything on top of extensible generic arithmetic operators (multimethods in Clojure), then a lot of good stuff shows up for free:
- If I implement all the operations for symbols, I get a symbolic arithmetic system for free. - Extend the generics to Dual numbers[2]? Boom, forward-mode AD pops out!
I'm getting carried away. Check it out, get your term-rewriting fix.
[0] https://mitpress.mit.edu/books/structure-and-interpretation-... [1] https://mitpress.mit.edu/books/functional-differential-geome... [2] https://en.wikipedia.org/wiki/Dual_number
Caliban will dynamically build Docker containers for your code, without you having to know anything about Docker, and then execute that container for you in a variety of different modes.
Full docs live here: https://caliban.readthedocs.io/en/latest/ We wrote a small tutorial here: https://github.com/google/caliban#getting-started-with-calib...
Hope this helps folks out there with their ML research! Happy to answer any questions that come up.
The goal of the bomb is to thump the snow hard enough that if any weak layers of snow exist below a hard slab of solid snow, the slab will crack, slamming air through the weak layer, breaking the support of the rest of the slab and causing a slide.
Naturally occurring avalanches usually need some obvious change of force on the snowpack, or some reason why a weak layer becomes weaker. I'd guess that a sonic boom, or definitely a scream, couldn't do enough in almost any situation to tip the balance.
I botched the copy pasta of the embedded code snippet container. All fixed up!
I rewrote my clojure code to use JBLAS (jblas.org) and found stunning improvements: https://gist.github.com/264a2756fc657140fdb8
Personally, I've found it really helpful to be able to think of and test queries as pure functions (without side effects related to data storage). Composable, pure queries keep our code base really small, and allow us to code and test features in hours.
I end up writing and testing a lot of queries that I never use in production, but it's this play that allows the good stuff to bubble up.