protorepl

az 2016-12-04T00:11:56.000011Z

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

jasongilman 2016-12-04T01:10:44.000012Z

@limix Thanks!

jasongilman 2016-12-04T15:59:08.000014Z

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

💪 2
robert-stuttaford 2016-12-04T19:05:17.000016Z

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-stuttaford 2016-12-04T19:11:49.000017Z

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?

jasongilman 2016-12-04T19:13:12.000018Z

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

jasongilman 2016-12-04T19:18:04.000019Z

@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.

jasongilman 2016-12-04T19:19:24.000021Z

@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-stuttaford 2016-12-04T19:19:44.000022Z

yes, i did, verbatim

robert-stuttaford 2016-12-04T19:20:20.000023Z

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

jasongilman 2016-12-04T19:20:34.000024Z

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

robert-stuttaford 2016-12-04T19:20:45.000025Z

yes, that works

jasongilman 2016-12-04T19:21:09.000026Z

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

jasongilman 2016-12-04T19:21:44.000027Z

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-stuttaford 2016-12-04T19:22:25.000028Z

so the eval result should drop the ns, right?

robert-stuttaford 2016-12-04T19:23:24.000029Z

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

jasongilman 2016-12-04T19:23:33.000030Z

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

robert-stuttaford 2016-12-04T19:23:40.000031Z

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

robert-stuttaford 2016-12-04T19:24:05.000032Z

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

jasongilman 2016-12-04T19:24:16.000033Z

Yeah I was just doing thinking the same thing

jasongilman 2016-12-04T19:24:50.000036Z

The line display does not show the namespaces

jasongilman 2016-12-04T19:24:56.000037Z

That could be improved

robert-stuttaford 2016-12-04T19:25:10.000038Z

how did you get yours on a separate line?

jasongilman 2016-12-04T19:25:23.000039Z

I just typed in person and then evaluated that

robert-stuttaford 2016-12-04T19:25:29.000040Z

other than that, it’s looking the same

jasongilman 2016-12-04T19:26:22.000041Z

ah ok I think I'm getting it

jasongilman 2016-12-04T19:26:29.000042Z

There may be a couple issues here

jasongilman 2016-12-04T19:26:54.000043Z

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

jasongilman 2016-12-04T19:27:55.000044Z

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

robert-stuttaford 2016-12-04T19:28:34.000046Z

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

jasongilman 2016-12-04T19:28:59.000047Z

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

robert-stuttaford 2016-12-04T19:29:01.000048Z

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

jasongilman 2016-12-04T19:29:48.000049Z

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-stuttaford 2016-12-04T19:29:58.000050Z

aha, that’s good to know!

jasongilman 2016-12-04T19:30:04.000051Z

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

robert-stuttaford 2016-12-04T19:30:45.000052Z

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

jasongilman 2016-12-04T19:31:19.000053Z

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-stuttaford 2016-12-04T19:31:21.000054Z

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

robert-stuttaford 2016-12-04T19:31:27.000055Z

cool, i’ll do that

robert-stuttaford 2016-12-04T19:32:03.000056Z

#: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-stuttaford 2016-12-04T19:32:15.000058Z

that’s the string

jasongilman 2016-12-04T19:32:23.000059Z

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

robert-stuttaford 2016-12-04T19:32:25.000061Z

maybe it’s the datomic vars?

robert-stuttaford 2016-12-04T19:32:44.000063Z

#object and the db

robert-stuttaford 2016-12-04T19:33:19.000064Z

cool, i will do!

jasongilman 2016-12-04T19:33:45.000065Z

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

jasongilman 2016-12-04T19:34:00.000066Z

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

robert-stuttaford 2016-12-04T19:34:14.000067Z

i particularly like the sticky results

robert-stuttaford 2016-12-04T19:34:32.000068Z

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

jasongilman 2016-12-04T19:39:50.000069Z

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

jasongilman 2016-12-04T19:40:47.000070Z

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

jasongilman 2016-12-04T19:41:03.000071Z

I use cljs.reader/read-string

jasongilman 2016-12-04T19:42:22.000072Z

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

jasongilman 2016-12-04T19:43:55.000073Z

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

jasongilman 2016-12-04T20:03:55.000074Z

I filed a new issue for this

jasongilman 2016-12-04T20:03:57.000075Z

https://github.com/jasongilman/proto-repl/issues/190

2016-12-04T22:23:44.000078Z

@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?

2016-12-04T22:25:00.000080Z

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

jasongilman 2016-12-04T22:47:07.000081Z

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

2016-12-04T23:13:55.000082Z

@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.