dirac

Dirac v1.7.2 is out: https://github.com/binaryage/dirac/releases/tag/v1.7.2
qqq 2017-03-09T00:49:13.003114Z

@darwin: is there an easy way to steal the cljs-devtools pretty printer to use it in an actual webpage instead of just the console? or are you using console specific functionality? [I want to visualize my datascript db, and I'd prefer to steal your cljs-devtools pretty printer instead of writing my own]

2017-03-09T00:51:16.003115Z

@qqq I think daniel compton wanted to do something like this

2017-03-09T00:51:52.003116Z

cljs-devtools generates JSONML representation of the data structures

2017-03-09T00:52:01.003117Z

you would need to implement actual renderer

2017-03-09T00:52:25.003118Z

and that would require some work

2017-03-09T00:53:09.003119Z

the code in DevTools which is rendering it in the console is not easily portable IMO

qqq 2017-03-09T00:54:20.003120Z

alright; I'll roll my own in svg then, thanks for the info! @darwin

2017-03-09T00:54:51.003121Z

there is another project which renders data structures in page, but I forgot its name

2017-03-09T00:54:58.003122Z

it uses reagent

qqq 2017-03-09T00:55:25.003123Z

https://github.com/flexsurfer/re-frisk ?

2017-03-09T00:55:41.003126Z

yep, that’s the one

2017-03-09T00:57:36.003127Z

I will probably extract some devtools consolee code into a standalone “iframe” app, and provide something like firebug lite (https://getfirebug.com/firebuglite)

2017-03-09T00:58:10.003128Z

this will give up a console which could be embedded in any html app

2017-03-09T00:58:30.003129Z

but again, this is not on my priority list right now

qqq 2017-03-09T00:59:37.003130Z

If people kickstarted together 500k, would that be enough for you to build a 'barebones' emacs like ide? Where you provide some minimal core, and scripting in cljs, and people ahck on their own modules?

qqq 2017-03-09T00:59:54.003131Z

Considering all the companies using cljs, 500k is not too high a number.

2017-03-09T01:00:21.003132Z

I think this already exists, it is called LightTable 🙂

2017-03-09T01:00:34.003133Z

kickstarted on 300k or so 🙂

qqq 2017-03-09T01:00:38.003134Z

haven't they moved on to 'Eve' ?

2017-03-09T01:00:41.003135Z

and had to promise everyone everything 🙂

qqq 2017-03-09T01:02:13.003136Z

How much money would we (as cljs community) need to raise to get you to hack full time on cljs-ide ?

2017-03-09T01:02:21.003137Z

I wrote this 2 years back: https://gist.github.com/darwin/d8fc8556e6fbdc7dee11

2017-03-09T01:02:54.003140Z

but I’m not that radical anymore, Cursive works pretty well for me now

2017-03-09T01:03:10.003141Z

before I made the switch to IntelliJ it was a PITA

2017-03-09T01:03:20.003142Z

I’m not an emacs user - not yet 🙂

qqq 2017-03-09T01:03:34.003144Z

Was unaware OSX 10.11 screwed over your two apps.

2017-03-09T01:05:12.003145Z

I was asking for a trouble, it was a hack from day-1 🙂

2017-03-09T01:13:45.003146Z

I don’t believe it is viable to run a kickstarter-like campaign for cljs-ide, the community is still too small

2017-03-09T01:13:50.003147Z

maybe in a few years

qqq 2017-03-09T01:14:45.003149Z

in a typical browser repl, it's connected to "webpage I'm debugging", and I can execute arbitrary js/cljs code against that page is it possible to have a "dirac-devtools-repl" where it's connected to "actual devtools", and I can execute arbitrary js/cljs code, and program dirac devtools at the repl?

qqq 2017-03-09T01:15:40.003150Z

suppose hypotehticaly, I got some rich people to support this (I have not asked them yet, and this is a moonshot), how much would it take to get you started?

2017-03-09T01:19:36.003151Z

hard to tell, if it was a really good idea, it can be as low as zero 🙂

2017-03-09T01:20:26.003152Z

I have my own ideas, so you would have to convince me that yours are dramatically better 🙂

qqq 2017-03-09T01:20:36.003153Z

it's in my selfish best interest that someone is paid to work full time on dirac-cljs-ide

qqq 2017-03-09T01:20:52.003154Z

the idea is the "make dirac ide a full blown ide scriptable in cljs"

2017-03-09T01:22:06.003155Z

frankly, I don’t need money at this point, I have pretty long runway from TotalFinder and some other work

2017-03-09T01:22:28.003156Z

that is why I could play with cljs for almost 2 years now

2017-03-09T01:22:30.003157Z

just for fun

2017-03-09T01:23:24.003158Z

I think turning DevTools into a full-blown ide is really difficult task

2017-03-09T01:24:07.003159Z

it definitely has a “cool” factor, but how it will be dramatically better than what we already have?

qqq 2017-03-09T01:24:08.003160Z

I agree, I don't think it's a hobby project, I think it needs to be funded for people to ahck on it full time.

qqq 2017-03-09T01:24:37.003161Z

I've always had this fantansy of emacs - elisp + clojure

qqq 2017-03-09T01:24:54.003162Z

and dirac devtools seems the perfect platform to build this tool on

2017-03-09T01:24:54.003163Z

I wanted to experiment with that lighttable fork (which later turned into the plastic project), but I haven’t discovered anything significant

2017-03-09T01:25:22.003164Z

and then parinfer came out, and I decided to wait and never came back to the project again

2017-03-09T01:25:43.003165Z

but this allowed dirac to be created, I focused on something new 🙂

2017-03-09T01:29:55.003166Z

we need someone to do some research project or some discovery not necessarily in Clojure/Lisp/Emacs space, it could be any language/ide and when they prove the idea, we could jump on implementing it for Clojure ecosystem

2017-03-09T01:30:45.003167Z

I’m not going to jump into another project where there is no clear goal, at least not at this point

qqq 2017-03-09T01:31:33.003169Z

you're clearly put more thought into this than I have

qqq 2017-03-09T01:32:03.003171Z

what about "a cljs repl attached to diract devtools itself"? This would allow all users of dirac dev tools to start expertimenting with wirintg their own mini extensions

2017-03-09T01:32:20.003172Z

there is no API

2017-03-09T01:32:37.003173Z

and it is open-source, so you can hack on it directly, why do you need a REPL?

qqq 2017-03-09T01:32:54.003174Z

interactive vs slow developmnet

2017-03-09T01:33:01.003175Z

also you would be doing interop all the time, because devtools is in javascript

qqq 2017-03-09T01:33:25.003176Z

it'd be nice, if, for the last feature request, I could just open a up a dirac dev tools repl and starting playing with it / hacking on it myself instead of having you be the only person able to implement it

2017-03-09T01:34:36.003177Z

REPL is not a magical enabler here, yes, it improves productivity and dev cycle, but it does not teach you internals of devtools and how to interface with them

2017-03-09T01:35:06.003178Z

any non-trivial “extension” would need some cooperation with existing code

qqq 2017-03-09T01:35:32.003179Z

perhaps this is just me, but interactivity / immedaite feedback / ease of exploration has definitely helped me learn APIs faster

2017-03-09T01:35:46.003180Z

btw. you can open internal devtools on Dirac DevTools window, and you get javascript console there, which is almost what you want

qqq 2017-03-09T01:35:54.003181Z

what?

qqq 2017-03-09T01:36:07.003182Z

how do I open devtoosl on devtools?

2017-03-09T01:36:35.003185Z

read the FAQ 🙂

qqq 2017-03-09T01:37:16.003186Z

a new window popped up

qqq 2017-03-09T01:37:31.003187Z

my key setting is wonked; how do I know if this is a "level2 repl" or a "level 1 repl" ?

2017-03-09T01:37:57.003188Z

dirac has green menu highlight

2017-03-09T01:38:06.003189Z

standard devtools blue-ish

2017-03-09T01:38:39.003190Z

it is like inception 🙂

qqq 2017-03-09T01:38:47.003191Z

http://imgur.com/a/9UTEs

qqq 2017-03-09T01:38:55.003193Z

is that a level 2 repl, or is that still a level 1 repl?

2017-03-09T01:40:17.003194Z

not sure what do you mean

qqq 2017-03-09T01:40:33.003195Z

http://imgur.com/a/KJG6e <-- is this repl connected to my webpage, or connectd to dirac dev tools?

2017-03-09T01:40:34.003196Z

in that popup you have just normal javascript console

qqq 2017-03-09T01:40:57.003198Z

it says Dirac.Implant, so I'm thinking level 2

2017-03-09T01:41:34.003199Z

and what? Dirac implant is just a piece of cljs code running inside devtools code

qqq 2017-03-09T01:42:10.003200Z

so I don't ahve dirac on dirac yet

2017-03-09T01:42:16.003201Z

no

2017-03-09T01:42:46.003202Z

it is possible but you would have to have dirac1 connected to another chrome instance

2017-03-09T01:43:28.003203Z

a web page(running inside chrome1) <- dirac1 (running inside chrome2) <- dirac2 (running inside chrome3)

2017-03-09T01:43:54.003204Z

normal scenario right now is: chrome1 (web page) <- dirac1 (running inside chrome1)

2017-03-09T01:44:23.003205Z

in other words dirac1 connects back to the same chrome it is running in (debugger protocol)

qqq 2017-03-09T01:44:51.003206Z

can you give me a screenshot of what your "dirac debugging dirac" looks like? so I know what to aim for?

2017-03-09T01:45:00.003207Z

no

2017-03-09T01:45:08.003208Z

that would be a lot of work to setup

2017-03-09T01:45:31.003209Z

but it is possible in theory, dirac does not have to connect back to the same chrome

2017-03-09T01:45:44.003210Z

you can tweak the chrome debugging port in dirac extension options

qqq 2017-03-09T01:46:07.003211Z

err, I thought the FAQ says it's just " CMD+OPT+I " -- are we talking the same thing?

2017-03-09T01:46:54.003212Z

cmd+opt+i does the same thing as clicking the dirac button

2017-03-09T01:47:41.003213Z

when clicking the dirac button a new window opens with dirac devtools app, which uses websockets to connect to some debugger protocol (server)

2017-03-09T01:47:53.003214Z

normally it is running on localhost on port 9222

2017-03-09T01:48:43.003215Z

and it happens to be the same chrome instance, because you launched it with that —remote-debugging-port=9222 parameter

baptiste-from-paris 2017-03-09T09:30:54.863430Z

@darwin I can’t understand what the checkouts profile is used for in the sample project

baptiste-from-paris 2017-03-09T09:31:14.866403Z

it’s failing when I try to do lein dev in the sample project

2017-03-09T09:43:48.974788Z

you should not use lein dev under normal circumstances

baptiste-from-paris 2017-03-09T09:44:43.982827Z

I am trying/struggling to install dirac based on the sample project with figwheel template

baptiste-from-paris 2017-03-09T09:44:57.984802Z

that’s why I was checking dev profile

2017-03-09T09:48:24.017102Z

the dirac-sample’s project.clj is quite complex because I also use it for some debugging / development / testing tasks

2017-03-09T09:48:53.021764Z

but you should focus only on profiles which are mentioned in the readme (e.g. lein demo and lein repl)

baptiste-from-paris 2017-03-09T09:55:19.078930Z

ok

baptiste-from-paris 2017-03-09T09:59:05.111944Z

Managed to make it work but with 2 repl...

baptiste-from-paris 2017-03-09T10:00:43.128299Z

figwheel with =>

{:id "dev"
                :source-paths ["src"]

                ;; the presence of a :figwheel configuration here
                ;; will cause figwheel to inject the figwheel client
                ;; into your build
                :figwheel {:on-jsload "dirac-figwheel.core/on-js-reload"
                           ;; :open-urls will pop open your application
                           ;; in the default browser once Figwheel has
                           ;; started and complied your application.
                           ;; Comment this out once it no longer serves you.
                           :open-urls ["<http://localhost:3449/index.html>"]}

                :compiler {:main dirac-figwheel.core
                           :asset-path "js/compiled/out"
                           :output-to "resources/public/js/compiled/dirac_figwheel.js"
                           :output-dir "resources/public/js/compiled/out"
                           :source-map-timestamp true
                           ;; To console.log CLJS data-structures make sure you enable devtools in Chrome
                           ;; <https://github.com/binaryage/cljs-devtools>
                           :preloads [devtools.preload dirac.runtime.preload]}}
and lein repl which I connect with cursive with
:repl {:repl-options {:port             8230
                                   :nrepl-middleware [dirac.nrepl/middleware]
                                   :init             (do
                                                       (require 'dirac.agent)
                                                       (dirac.agent/boot!))}}

piotr-yuxuan 2017-03-09T10:55:57.618765Z

Hello darwin 🙂 Sorry to report a bug (Dirac is so a very great tool!) bug since the last release methinks that Dirac devtools sometimes crashes when asked to evaluate something in console whilst it's paused the world at a debug breakpoint. When I say it crashes I means chrome extension crashes and chrome offer to reload it. Here is the tool stack I currently use: Dirac v1.2.0 | Chrome/59.0.3035.0 | Mac/10.12.3. If you confirm this bug and need more detailed data I can try to watch out next time.

qqq 2017-03-09T11:11:05.750698Z

osx needs to add a "dev mode" where it auto screen records your last 10 minutes; then you can save it at will as a 'bug report' 🙂

piotr-yuxuan 2017-03-09T11:28:30.891812Z

Well, I’ll wait a bit and if I can find enough to fill a proper bug report I’ll do so.

baptiste-from-paris 2017-03-09T13:30:49.934254Z

in the sample project, how do you launch figwheel ?

baptiste-from-paris 2017-03-09T14:36:11.756172Z

some of you have a project.clj template working with dirac/figwheel ; I am starting to be nuts trying to make it work

2017-03-09T14:44:30.882703Z

@baptiste-from-paris if you want me to help you in a meaningful way, please share your project as a git repo, so I can clone it and test it on my machine

2017-03-09T14:45:01.890645Z

snippets of project.clj are not easy to troubleshoot

baptiste-from-paris 2017-03-09T14:45:26.897041Z

ok ok. 5min

2017-03-09T14:46:45.918689Z

@piotr2b I’ve seen canaray stopping in debugger or exception “chrome is going to crash due to low memory” or something similar

2017-03-09T14:47:02.923649Z

it never crashed on me, I just continued

2017-03-09T14:47:23.928657Z

but it was annoying and I don’t know why is it happening

qqq 2017-03-09T15:01:57.162254Z

@darwin: this is a pure hypothetical; but if all the js parts of Chrome were written in cljs, pretty much everything we discussed would be much much much easier right?

qqq 2017-03-09T15:02:13.166793Z

iirc, on top of the v8 core, most of the chrome code is in js

qqq 2017-03-09T15:02:27.171034Z

and if it was in cljs, with an attached repl isntead, scripting devtools would be trivially easy

2017-03-09T15:03:21.185505Z

devtools is a non-trivial application, scripting it will require understanding it, no matter in which language it is written in

qqq 2017-03-09T15:04:19.201949Z

since you actually scripted devtools: if devtoosl was in cljs instead of js, how much of your development time of dirac would have been shaved off?

baptiste-from-paris 2017-03-09T15:04:24.203465Z

@darwin I started from scratch => https://github.com/dupuchba/dirac-figwheel

2017-03-09T15:05:17.218430Z

@qqq I don’t know this is really hard to tell. DevTools being written in js wasn’t a big obstacle.

2017-03-09T15:06:23.236053Z

I would guess DevTools has been developed over last 10+ years in team of 10+ people (started in webkit, then safari, then chrome). So you can imagine how much effort went into it.

2017-03-09T15:07:07.248431Z

of course, writing it from scratch would be faster, for people who know what they are doing

2017-03-09T15:07:38.256837Z

btw. are you aware of devtools extension APIs? https://developer.chrome.com/extensions/devtools

2017-03-09T15:07:57.261858Z

you can write a chrome extension which can hook into specific devtools places and provide some functionality there

2017-03-09T15:08:27.269737Z

unfortunately the extension points are quite limited, that is why I had to fork devtools, this extension api wasn’t powerful enough

qqq 2017-03-09T15:09:34.288557Z

oh man, by 'forking devtools + maintain patches" you literally mean you forked the devtools code and now have to maintain patches whenever devtools is updated

2017-03-09T15:09:48.292369Z

yes

baptiste-from-paris 2017-03-09T15:10:16.300125Z

crazy lol

baptiste-from-paris 2017-03-09T15:10:26.303271Z

how much time did you spend ?

qqq 2017-03-09T15:10:39.307081Z

so hypothetically, if (1) you got hit by a bus, and (2) chrome auto updates a few times -- does dirac become broken / unuseable ?

2017-03-09T15:10:50.310117Z

@qqq absolutely

baptiste-from-paris 2017-03-09T15:11:07.314355Z

lol 2nd time I see you write something like that @qqq

qqq 2017-03-09T15:11:28.320325Z

the first was om/next ?

baptiste-from-paris 2017-03-09T15:11:32.321258Z

yep

qqq 2017-03-09T15:11:44.325012Z

@baptiste-from-paris : it's a legit variatn of "what happens to Linux if Linus gets hit by a bus"

baptiste-from-paris 2017-03-09T15:12:16.334755Z

it’s killing our industry to be afraid of the bus

baptiste-from-paris 2017-03-09T15:12:40.341545Z

in my opinion 😉

2017-03-09T15:12:53.345182Z

btw. not sure if you noticed, but I maintain filtered chromium branch containing only devtools: https://github.com/binaryage/dirac/tree/devtools and here you have a diff between dirac’s version and oficial version: https://github.com/binaryage/dirac/tree/devtools-diff

2017-03-09T15:13:14.350876Z

the top commit in the devtools-diff branch shows you that rolling patch

2017-03-09T15:13:40.358281Z

it is not that scary afterall, I tried to minimize places where I needed to touch their code

qqq 2017-03-09T15:13:56.362602Z

somewhat related: you used to build stuff on firefox right? if the chrome devtools api is so bad that you had to fork it -- how is it still better than firefox api ?

2017-03-09T15:14:19.368860Z

cannot tell

2017-03-09T15:14:56.378622Z

I never used firefox api in a holistic way, always needed some hooks here and there, so I googled them and used them

2017-03-09T15:15:21.385292Z

and I was interacting with firebug most of the time (writing extensions to firebug, not firefox)

qqq 2017-03-09T15:18:47.440733Z

this is so absolutely insane

qqq 2017-03-09T15:20:13.464901Z

so is https://github.com/binaryage/dirac/commit/299e976205f9ba52790de721ff1c3f2b6ae04bfc a diff between "chrome devtools" and "dirac devtools" ?

2017-03-09T15:20:29.469719Z

yes

qqq 2017-03-09T15:20:50.475637Z

so dirac consists of (1) dirac/src/.cljs <-- actual dirac functionality and (2) a "rolling diff" vs chrome devtools <-- extra api end points that part [1] needs

2017-03-09T15:21:10.480608Z

no, it is not complete dirac code, because this is just the javascript part, I don’t include cljs sources in this diff

2017-03-09T15:21:20.483447Z

sorry

2017-03-09T15:21:23.484130Z

yes, you are right

2017-03-09T15:21:29.485858Z

didn’t read your message correctly

2017-03-09T15:22:34.502817Z

specifically “implant” is the cljs code which gets injected into devtools javascript contex, other folders in dirac/src are not related to it: https://github.com/binaryage/dirac/tree/master/src/implant/dirac

2017-03-09T15:24:04.528295Z

implant adds this api to be used from javascript side: https://github.com/binaryage/dirac/blob/master/src/implant/dirac/implant.cljs#L132

qqq 2017-03-09T15:24:25.533872Z

there's really only one dirac feature I use: on assert false, let me walk up/down the stack frame and looko at local vars now, for the name unmangling part, it's some cljs stuff we don't care about for now however, to (1) hook into the V8 so we get called on exception and (2) get the entire stackframe as an object is this something I can do with plain devtools, or something I need dirac for?

2017-03-09T15:25:37.553929Z

technically, anything you can do with dirac, you can do with devtools alone (by re-implementing dirac code on your own)

qqq 2017-03-09T15:26:23.566768Z

I just stumbled across https://news.ycombinator.com/item?id=10400800 -- you started using CLJS in Jan 2015, and wrote Dirac in < 2 years ?

2017-03-09T15:26:45.573093Z

afaik, assert just throws, and devtools already know how to stop on exceptions, at that point you are able to inspect callstack

2017-03-09T15:27:19.582723Z

this is even possible from your normal javascript code, you don’t need devtools for it, are you familiar with js/Error.stack ?

2017-03-09T15:28:09.596679Z

I started hacking on Dirac in Dec 2015, first release in Jan 2016

qqq 2017-03-09T15:28:09.596764Z

no, clearly not, googlign now

qqq 2017-03-09T15:29:16.616278Z

so basically, anywhere in my cljs code, I can do a throw/catch + inspect https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/Stack and get the entire stack frame at run time ?

2017-03-09T15:29:35.621889Z

yes

2017-03-09T15:29:49.625963Z

you can write your own version of assert which will do that

2017-03-09T15:30:15.633684Z

it will throw and immediately catch, then you can inspect the callstack

2017-03-09T15:30:38.640805Z

unfortunately the callstack won’t be source-mapped, so you would have to do it yourself

2017-03-09T15:31:14.651862Z

this would be an advantage of doing something like this in devtools, because they have pretty complex machinery to do source-mapping

2017-03-09T15:31:50.662728Z

anyways, I still don’t understand what is your end goal

2017-03-09T15:32:02.666033Z

@baptiste-from-paris looking at your example

qqq 2017-03-09T15:32:16.670356Z

right now there's no end goal, it's just "learn how this works"

baptiste-from-paris 2017-03-09T15:32:38.676794Z

@darwin thanks a lot for your time that’s really cool !

qqq 2017-03-09T15:32:44.678567Z

devtools used to be this blackbox that I couldn't look into, and now it's a murky box I can sorta look into

baptiste-from-paris 2017-03-09T15:33:26.691012Z

I think I am a little short on nREPL; I’ve read lambda island tuto and clojure.tools.repl but it is still blur for me

2017-03-09T15:39:20.790583Z

1st problem, you have typo in js script file, so your javascript simply does not load

2017-03-09T15:39:37.795705Z

2nd problem you set wrong :agent :port in configuration

2017-03-09T15:39:47.798334Z

normally you should not mess with it,

2017-03-09T15:39:51.799115Z

will send you a diff

baptiste-from-paris 2017-03-09T15:41:41.829645Z

let me see

2017-03-09T15:44:44.883199Z

@baptiste-from-paris this is a diff of working config for me: https://gist.github.com/darwin/01da7a2a795ff887b127b63a2817e7c0

2017-03-09T15:45:11.891443Z

dirac middleware cannot work with piggieback middleware, you have to pick only one of them

2017-03-09T15:47:29.932304Z

if you want to use CIDER, you should do it as next step when you get basic dirac+figwheel setup working, you will need a separate nREPL server and connect to it with your CIDER

baptiste-from-paris 2017-03-09T15:47:45.936940Z

cursive for me 🙂

2017-03-09T15:47:47.937437Z

this is considered a super-advanced topic and I don’t use CIDER myself so I cannot help much here

2017-03-09T15:48:29.949372Z

ok, so you can have a look here (after you get the basic setup working): https://github.com/binaryage/dirac/blob/master/docs/integration.md

qqq 2017-03-09T15:48:51.955150Z

@baptiste-from-paris : I stopped using cider; the loss was barely noticable

qqq 2017-03-09T15:49:23.964017Z

for whatever reason, darwin decided to fork the entire cljs toolchain, but so far it appears to be worth the tradeoff

baptiste-from-paris 2017-03-09T15:49:35.967494Z

right the (dirac! :help)

baptiste-from-paris 2017-03-09T15:52:56.026447Z

1) Launch Chrome 2) lein repl 3) start script/dev-server.sh

baptiste-from-paris 2017-03-09T15:54:45.059536Z

got this

baptiste-from-paris 2017-03-09T15:54:52.061797Z

and I renamed index.html

2017-03-09T15:55:27.071872Z

did you apply my diff?

2017-03-09T15:55:40.075377Z

I still see that your page didn’t load your own javascript file

2017-03-09T15:56:00.081148Z

it is not on_remote.js but on-remote.js

baptiste-from-paris 2017-03-09T15:56:18.086990Z

I did, don’t get it

2017-03-09T15:56:43.094099Z

the compiled javascript contains dirac.runtime, without dirac runtime, dirac devtools is not able to talk to your page

2017-03-09T15:57:06.100616Z

oh, or you don’t get my changes in the diff?

2017-03-09T15:58:48.130646Z

slack is doing something “smart" here and does not allow me to post specific url: <https://gist.github.com/darwin/01da7a2a795ff887b127b63a2817e7c0#file-dirac-figwheel-diff-L41-L42>

baptiste-from-paris 2017-03-09T16:01:34.181886Z

@darwin do you see the automplete input field or not ?

2017-03-09T16:01:55.188081Z

no I don't

baptiste-from-paris 2017-03-09T16:02:02.189986Z

ok

2017-03-09T16:02:02.190191Z

I see "Figwheel template Checkout your developer console."

2017-03-09T16:03:30.216582Z

the chrome has trouble parsing the compiled code, you tossed js-debugger in some wrong place

2017-03-09T16:03:43.220658Z

remove all js-debugger for now

baptiste-from-paris 2017-03-09T16:03:55.224359Z

ok

2017-03-09T16:03:58.225424Z

but that is not related to the dirac configuration issue

baptiste-from-paris 2017-03-09T16:04:13.229528Z

ok ok

2017-03-09T16:04:17.230888Z

dirac runtime was properly initialized in my case

baptiste-from-paris 2017-03-09T16:04:45.239090Z

what is you workflow ? launch chrome then the server then the repl then the dirac devtool ?

2017-03-09T16:05:32.252812Z

yes

2017-03-09T16:05:44.256256Z

chrome must be running before you open dirac devtool 🙂

2017-03-09T16:06:04.263155Z

other than that I run them in arbitrary order

baptiste-from-paris 2017-03-09T16:06:07.264138Z

and figwheel for hot reloading ? how do you launch it ?

2017-03-09T16:06:16.267009Z

or use lein-cooper to wrap all this into a single command

2017-03-09T16:06:31.271253Z

lein figwheel dev

baptiste-from-paris 2017-03-09T16:09:40.325717Z

ok figwheel load the form right

baptiste-from-paris 2017-03-09T16:09:50.328520Z

but not my server

2017-03-09T16:11:36.359199Z

you did not apply my diff correctly, I deleted your bogus :agent-port

2017-03-09T16:12:17.372653Z

or a browser cache is in play

2017-03-09T16:12:33.378010Z

or you need to clean whole project via lein clean

2017-03-09T16:12:53.384582Z

maybe the files were generated and lein didn’t reflect your changes

baptiste-from-paris 2017-03-09T16:13:28.395252Z

did all that but I am gonna remove chrome user-data-dir

2017-03-09T16:13:48.400794Z

you can try, but I doubt this would be the issue

2017-03-09T16:14:21.410077Z

I’m now referring that red message in dirac devtools console, it is simply trying to connect to a wrong port

2017-03-09T16:14:26.411459Z

the port should be 9222

2017-03-09T16:15:08.424445Z

9977 is there because originally you tried to override this setting via :agent-port config in your project.clj

baptiste-from-paris 2017-03-09T16:15:32.431436Z

ok

baptiste-from-paris 2017-03-09T16:22:14.550698Z

working but when I modify the name of my h1this is what I got :

baptiste-from-paris 2017-03-09T16:22:46.560400Z

but the rest is workign so THANKS A LOT 🙂 !

2017-03-09T16:23:14.567843Z

those are most likely issues with your figweel configuration or project configuration in general

2017-03-09T16:23:23.570809Z

I’m sorry, I’m here to help with dirac only

2017-03-09T16:23:38.574997Z

I think you are trying to do too many things at once

baptiste-from-paris 2017-03-09T16:24:00.581172Z

lol, that’s right ^^

2017-03-09T16:24:11.584174Z

I would recommend: first get familiar with cljs development with lein, second with figwheel, and when you feel comfortable add dirac into the mix 🙂

baptiste-from-paris 2017-03-09T16:24:29.589550Z

thank’s a lot for you time !

2017-03-09T16:24:47.594704Z

np, good luck

2017-03-09T16:25:00.598424Z

you might try #lein-figwheel channel as well

2017-03-09T16:25:16.603123Z

it looks like misconfiguration of compilation paths in your project

2017-03-09T16:25:28.606734Z

or your dev server is somehow misconfigured

baptiste-from-paris 2017-03-09T16:25:44.611631Z

yes I know, I am close !

baptiste-from-paris 2017-03-09T16:26:16.621377Z

I used a lot figwhhel with devtools but when I saw dirac yersterday it blew my mind !

😁 1
baptiste-from-paris 2017-03-09T18:52:51.085099Z

@darwin i did not realized that you were the maker of Total*

baptiste-from-paris 2017-03-09T18:52:58.086931Z

💪👏👏👏👏

baptiste-from-paris 2017-03-09T18:53:18.092630Z

How did you get into clojure ?

2017-03-09T19:57:31.131323Z

@baptiste-from-paris well, I used to be a web developer before I started some objective-c hacks

2017-03-09T19:58:00.139264Z

and when apple killed my business with System Integrity Protection, I played with some webdev and discovered cljs

2017-03-09T19:58:08.141143Z

and from there clojure

baptiste-from-paris 2017-03-09T19:58:39.149653Z

Where do you come from ?!

2017-03-09T19:58:43.150854Z

I’m rather rare example of a person going from js -> cljs, not from java -> clj and then cljs

baptiste-from-paris 2017-03-09T19:59:26.163612Z

I have to check this System Integrity Protection thing

2017-03-09T19:59:38.166925Z

I’m from Czech Rep.

2017-03-09T19:59:54.171572Z

what about you? what are you trying to build with clojure?

baptiste-from-paris 2017-03-09T20:00:24.180623Z

I am a freelance contractor in France, started clojure 6 months ago

baptiste-from-paris 2017-03-09T20:00:34.183452Z

Did only 1 contract here in clojure

baptiste-from-paris 2017-03-09T20:00:48.187551Z

The market is really small but I just love the langage

baptiste-from-paris 2017-03-09T20:01:22.197130Z

I am trying to reduce the cost of making "simple" native app with react-native + cljs

2017-03-09T20:01:40.201901Z

yeah, react-native is very promising

baptiste-from-paris 2017-03-09T20:02:22.214515Z

Yes impressive, coupled with om/cljs, it'a an awesome experience

baptiste-from-paris 2017-03-09T20:21:28.502843Z

when you’re using debugger, what info in devtool are you usually looking to ?

baptiste-from-paris 2017-03-09T20:21:35.504513Z

Scopes ? callstack ?

2017-03-09T20:21:57.509872Z

both

2017-03-09T20:22:04.511833Z

depends on situation

2017-03-09T20:22:22.516718Z

but most of the time I use just REPL and I don’t do classic-style debugging

2017-03-09T20:22:50.524163Z

mostly when exploring foreign code and need to break somewhere and explore surrounding state

baptiste-from-paris 2017-03-09T20:23:37.536182Z

ok; discovered some om.next internals with dirac

👍 2
baptiste-from-paris 2017-03-09T20:23:45.538248Z

really nice