This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-06-19
Channels
- # aws-lambda (1)
- # bangalore-clj (4)
- # beginners (66)
- # boot (13)
- # cider (9)
- # cljs-dev (44)
- # cljsjs (3)
- # clojure (181)
- # clojure-austin (2)
- # clojure-greece (6)
- # clojure-italy (2)
- # clojure-russia (64)
- # clojure-sg (1)
- # clojure-spec (68)
- # clojure-uk (60)
- # clojurescript (66)
- # conf-proposals (12)
- # cryogen (1)
- # cursive (3)
- # datomic (44)
- # graphql (1)
- # hoplon (2)
- # jobs (2)
- # jobs-discuss (3)
- # keechma (2)
- # liberator (6)
- # luminus (2)
- # nyc (1)
- # off-topic (92)
- # om (10)
- # onyx (17)
- # parinfer (39)
- # pedestal (8)
- # proton (11)
- # re-frame (110)
- # reagent (2)
- # remote-jobs (11)
- # ring-swagger (9)
- # rum (2)
- # sql (2)
- # test-check (6)
- # untangled (138)
I actually thought a lot about this during parinfer development
comments in the file were getting pretty long, and I felt that I could go the literate-programming route
I ultimately decided to keep the file with minimal comments
and instead opted to create a code.md
that has a design-level narrative separate from the code, but actually links directly to functions and vars by name
@mattly: is it open?
I think code.md has the documentation aspect of literate programming. But the tangle/weave aspect is useful, the order of understanding a program is not necessarily the order the program must be written in.
in our case the doc system is more meant to tell a story about data as it flows from "a user did x" to "here's how it appears in the reports"
so it's like "here's how we ingest this patient data event", then "here's how it passes through ETL" and finally "here's how the reports and analytics tools use that in queries"
@mattly: that sounds really good
i struggled at Stripe to understand the data flow between three iframes in our Stripe.js v3, and thought about writing something to document it in a similar way
@shaunlebron it's worked well for us, and helps us keep even non-engineer eyes on the process
because if there's a bug in that flow, no one is ever going to know from looking at the output
more tools like that should be made
I'm pushing to extract parts of the system and OSS it, but in all reality I think we're a year off from having the headspace to do that
sounds like a big undertaking, honestly may be too specific for others?
a blog post would be great though
just to show principles in action
@dominicm without reading the knuth’s paper, I’ve thought for a while that docs are a bit like tests, in that they fulfill a separate narrative and that they have to be written in parallel to—and in sync with—code
maybe that’s not at all what he’s talking about, but I’m interested to see if they can really be unified in “literate”. But apart from execution order vs. reading order that literate addresses, I would go further and say that there is also a problem of certain reader abstractions not mapping 1-to-1 with the abstractions created in the code
(this is all very hand-wavy in my head though)
@shaunlebron I agree with all you are saying. I think it takes a lot of discipline in order to sync docs with code though. Knuth admits that he poorly documents code usually, but that his tool forces him too. He also created WEB, so it's no surprise he feels ecstatic when using it.
i wanted to see an example of WEB in action. found tex.web
rendered as a pdf here: http://brokestream.com/tex-web.html
in risk of getting ever-more off-topic for the channel, but chasing the topic-du-jour, do you know of any other kind of lightweight "text to various render methods" akin to say, asciidoc or org-mode but that give you more free-form elements for creating document strucutre?
@mattly what do you mean by:
> free-form elements for creating document structure
asciidoctor supports a generic block, that can nest with different numbers of ----
, I think that's what you mean, but uncertain.
hm. I guess what I mean is that I'd like to be able to register with the parser/renderer "block types" that get special treatment in the rendering process
clojurescript unraveled uses it: https://github.com/funcool/clojurescript-unraveled