This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-10-22
Channels
- # announcements (21)
- # aws (7)
- # beginners (105)
- # berlin (1)
- # calva (14)
- # cider (20)
- # clj-kondo (62)
- # cljdoc (7)
- # cljsrn (1)
- # clojure (206)
- # clojure-dev (2)
- # clojure-europe (11)
- # clojure-france (2)
- # clojure-italy (2)
- # clojure-nl (1)
- # clojure-uk (34)
- # clojured (1)
- # clojurescript (52)
- # copenhagen-clojurians (2)
- # core-async (1)
- # cryogen (3)
- # cursive (36)
- # data-science (27)
- # datomic (48)
- # emacs (1)
- # events (1)
- # fulcro (27)
- # hoplon (51)
- # jobs-discuss (1)
- # leiningen (1)
- # nrepl (2)
- # off-topic (52)
- # pathom (43)
- # quil (10)
- # re-frame (11)
- # reitit (28)
- # remote-jobs (2)
- # shadow-cljs (36)
- # sql (12)
- # tools-deps (7)
- # vim (32)
- # xtdb (17)
https://aphyr.com/posts/340-reversing-the-technical-interview also relevant on naming 😄
just for the line
""To know a thing is to name it," you advise. True names have power. The K language was invented by Ursula K. Le Guin, and is among the oldest and tersest forms of magic. To imbue a language with a letter of your own name is to give up an element of your self. Your own initials ache at the memory."
What's the last variable name you created
has anyone messed around with this? https://github.com/i-net-software/JWebAssembly
What happened to https://github.com/Datomic/codeq? This looks amazing, but there hasn't been activity in many years. It seems like a kind of essential analysis one would want to perform to understand a large code base, so where is its replacement?
In the gleam of someone's eye, waiting to be developed.
... very interesting, especially if the (yet) part were to change 🙂
it's a lot easier to query now, but just one of many things in the fire waiting for an opportune time :)
Unfortunately the particularl repo I'm analyzing is a JS project, so codeq won't help beyond inspiration. I'm just surprised this isn't something everyone's doing. Git has been standard for many years now.
@d4hines It's a different thing but we do a sort of similar things (and much more) with CodeScene: https://codescene.io It's a complete product though and not an open source This book talks more about the general ideas behind it: https://pragprog.com/book/atevol/software-design-x-rays
Can you talk about code scene over something like Git Prime or Velocity?
@d4hines I'm not super familiar with those products but in general, both GitPrime and Velocity seems to be (micro?)management tools tailored to measure individual “productivity”.
If you are interested in this stuff I suggest watching https://www.youtube.com/watch?v=KV75YcFoWTo&feature=youtu.be
Also, a limited set of functionalit is available in this open source tool (prior work): https://www.adamtornhill.com/code/codemaat.htm
I'll check it out! THanks!
I also recently discovered https://github.com/github/semantic
That looks interesting but a quite different and limited thing. In particular I didn't see any mention about analyzing evolution of code.
It can map git diff's back to the AST, and thus you can identify which language-level constructs were affected by a commit (and from there you can, walk up or down the call graph). It's a lower level tool than Codeq, but it's in a similar space. I'm excited to check out CodeScene though.
:thumbsup: Thanks!
@alexmiller are you at liberty to talk about how analysis works on v2? That was the research topic that took my interest.
@d4hines codeq is designed to be language agnostic if you provide the right analyzer
That's awesome, I missed that!
@dominicm it's a Rich thing, so I haven't looked at it, but it's based of some I wrote for a different unreleased project, which was originally based off the first codeq. what aspect are you interested in?
I don't think that part is substantially different than the original codeq, the differences are mostly in how it's stored for analysis and querying
@alexmiller my understanding was that tools.analyzer might be used instead of matching on def*
oh, it does that in codeq 2. it's been years since I looked at either
I didn't remember codeq not using tools.analyzer
Just to check I'm following (too much double negative), codeq 2 uses tools.analyzer?
that's the part he swiped from me :)
at least that is my recollection
Cool. I had thought there was some reason not to use it, so I was interested to see what the middle ground was between def* and tools.a
Does anyone use Codeq v1 at present? Would it fool-hearty to start a new DB in v1?
go for it :)
actually, I looked and it doesn't :)
Probably tools.analyzer had a lot more bugs circa 2012-2013, before I filed a few dozen against it, and bronsa fixed all of them tirelessly, while I was beating on tools.analyzer through my testing of Eastwood.
The man is phenomenal: https://github.com/clojure/tools.analyzer/graphs/contributors
probably took way less effort to fix the bugs than the time you put in to find them @U0CMVHBL2
I think it is safe to say we are a small mutual appreciation society 🙂
tools.analyzer does have one semi-notable limitation, by design if I recall correctly, of not handling the deeper uses of &env
in macro definitions that a few Clojure libraries use.