Fork me on GitHub
#protorepl
<
2016-12-04
>
az00:12:56

@jasongilman congrats on the great talk. Super exciting stuff. Amazing project

jasongilman15:12:08

I just released a new version of Proto REPL with a few small fixes https://github.com/jasongilman/proto-repl/blob/master/CHANGELOG.md#149

robert-stuttaford19:12:17

hey @jasongilman — i’m just sanity checking this; proto-repl doesn’t yet support the new syntax for maps in Clojure 1.9, right?

robert-stuttaford19:12:49

i ask because i’m not seeing any folding for a map. but i’ve just tried with 1.8, and i didn’t see any folding there either. is there some magic to pprint maps in the repl / inline result?

jasongilman19:12:12

I haven't tried that new syntax yet. Let me fire up a REPL with Clojure 1.9

jasongilman19:12:04

@robert-stuttaford The new syntax is working for me. I think you may not have Atom Ink installed. There are also some small corner cases where you won't get folding because of the way some objects print but those a very infrequent.

jasongilman19:12:24

@robert-stuttaford Did you follow the setup guide here? https://gist.github.com/jasongilman/d1f70507bed021b48625 That's linked from Option2 on the README. Though the quick start option should still work.

robert-stuttaford19:12:44

yes, i did, verbatim

robert-stuttaford19:12:20

what i get is one continuous line with the whole map, printed 1.9 style

jasongilman19:12:34

If you evaluate (range 3) do you see any inline expandable results?

jasongilman19:12:09

Can you send me a sample map that's not working?

jasongilman19:12:44

I'm trying the han solo example from here and that's working for me. http://clojure.org/reference/reader But maybe something else is going on.

robert-stuttaford19:12:25

so the eval result should drop the ns, right?

robert-stuttaford19:12:24

i’ll see if i can work up an isolated failure case for you

jasongilman19:12:33

It comes back with a namespace when I'm using it

robert-stuttaford19:12:40

i’m doing spec and requiring and aliasing namespaces as well

robert-stuttaford19:12:05

would you mind sharing a small screenshot of what you get for han-solo?

jasongilman19:12:16

Yeah I was just doing thinking the same thing

jasongilman19:12:50

The line display does not show the namespaces

jasongilman19:12:56

That could be improved

robert-stuttaford19:12:10

how did you get yours on a separate line?

jasongilman19:12:23

I just typed in person and then evaluated that

robert-stuttaford19:12:29

other than that, it’s looking the same

jasongilman19:12:22

ah ok I think I'm getting it

jasongilman19:12:29

There may be a couple issues here

jasongilman19:12:54

When you evaluate that map block it doesn't include the reader macro in front of it

jasongilman19:12:55

If you select and evaluate the whole thing does folding still work for you?

robert-stuttaford19:12:34

the ns is on the keywords as an alias ::dd/annotate-tx-fn

jasongilman19:12:59

I think this might be the corner case I was talking about earlier where the parsing is failing.

robert-stuttaford19:12:01

for some reason cmd-alt-b wouldn’t eval this form, i had to use cmd-alt-s

jasongilman19:12:48

If you evaluate with cmd-alt-b it looks for a Clojure block. If it doesn't find one it won't execute anything

robert-stuttaford19:12:58

aha, that’s good to know!

jasongilman19:12:04

cmd-alt-s will look for vars if nothing is selected

robert-stuttaford19:12:45

ok, i just thought i’d run it past you. overall the experience close to being perfect so far. just got to get the indent on paste stuff right, learn some shortcuts, and get the panel hide-show thing right

jasongilman19:12:19

If you can get me the string that comes back from the REPL I can look into why you're not seeing the expandable option on that result

robert-stuttaford19:12:21

i must admit i’m struggling with not having my clj-refactor threading and introduce-let / move-to-let shortcuts 🙂

robert-stuttaford19:12:27

cool, i’ll do that

robert-stuttaford19:12:03

#:cognician.datomic-doc{:annotate-tx-fn #function[clojure.core/identity], :conn #object[datomic.peer.LocalConnection 0x3385a68c "datomic.peer.LocalConnection@3385a68c"], :db datomic.db.Db@5dcf3e22, :lookup-type :ident, :lookup-ref :db/doc, :entity #:db{:id 62}} 

robert-stuttaford19:12:15

that’s the string

jasongilman19:12:23

Also for those other things it would be nice to have feature requests https://github.com/jasongilman/proto-repl/issues for those

robert-stuttaford19:12:25

maybe it’s the datomic vars?

robert-stuttaford19:12:44

#object and the db

jasongilman19:12:45

Thanks, I'll take a look at that string and figure out why that's not parsing.

jasongilman19:12:00

I'm glad to hear it's "close to perfect so far" 🙂

robert-stuttaford19:12:14

i particularly like the sticky results

robert-stuttaford19:12:32

super helpful. haven’t even touched any of the fancy-pants stuff yet!

jasongilman19:12:50

The problem appears to be "datomic.db.Db@5dcf3e22"

jasongilman19:12:47

I use clojurescript to parse the results and that's where it fails

jasongilman19:12:03

I use cljs.reader/read-string

jasongilman19:12:22

It's been a long time since I wrote all the code related to this but I think the assumption was that most things back from nREPL were parseable results

jasongilman19:12:55

Most objects that come back are parseable like (Object. ) => #object[java.lang.Object 0x447f14f3 "java.lang.Object@447f14f3"] but the datomic db instance seems to have another way it gets printed

jasongilman20:12:55

I filed a new issue for this

Drew Verlee22:12:44

@jasongilman Hi Jason, i just got introduced to proto REPL through your awesome talk! I’m curious, are their any plans for two way feedback between the visualizations and the code/data in the editor? e.g i move a point on a chart and the data changes?

Drew Verlee22:12:00

I suppose that would be highly dependent on what the graphing tool supported.

jasongilman22:12:07

@drewverlee: I want to be able to do things like that. Do you have a specific use case in mind?

Drew Verlee23:12:55

@jasongilman: No particular use case. I’m just exploring whats possible. I think protorepl has the right foundation to become a very powerful tool (not that it isn’t already). Add a way for it to handle unbouded live data and its almost a monitoring tool. Make it easy to add markdown and snapeshot the visualizations and you have what make ipython notebooks attractive.