This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-05-20
Channels
- # beginners (49)
- # boot (139)
- # cider (10)
- # clojure (82)
- # clojure-belgium (59)
- # clojure-dusseldorf (5)
- # clojure-russia (11)
- # clojure-sanfrancisco (2)
- # clojure-uk (56)
- # clojurebridge (4)
- # clojurescript (138)
- # cursive (19)
- # datomic (8)
- # dirac (1)
- # editors (11)
- # emacs (18)
- # flambo (21)
- # hoplon (45)
- # jobs (1)
- # juxt (3)
- # keechma (1)
- # mount (43)
- # off-topic (2)
- # om (64)
- # om-next (1)
- # onyx (2)
- # other-languages (8)
- # re-frame (72)
- # reagent (99)
- # ring-swagger (7)
- # rum (3)
- # spacemacs (21)
- # specter (5)
- # untangled (42)
- # vim (4)
- # yada (7)
@bhauman: I’m finding that the hello_seymore in your Quick Start fails, but the flappy-bird-demo seems to work still.
for what that’s worth — I saw the configuration blog post and it looks like all kinds of changes are happening
@dnolen: the type of error I was talking about https://www.refheap.com/119314
@lewix: yeah that an improper reporting and handling of exceptions on my part. By any chance did you name your project the same as an included library (re-frame, reagent, figwheel)?
@bhauman: not as far as I know. It's a brand new project with very little changes; I'll just start from scratch - it will be faster than debugging and I might see what I did wrong in the process
@lewix: there may be a bug in the latest release, several folks reporting similar errors, maybe use the previous release. 0.5.3
@bhauman: : I was using 0.5.3 , we are not expected to run lein figwheel before making any chances, are we?
@bhauman: I started an app from scratch; this time around I fired lein figwheel from the get-go before making any changes then I spotted the error. It was a simple bracket mismatch while loading libs. I guess we should always run lein figwheel before making any chances preferably- @davidnolen this is a typical example of the kind of error I was referring to
@lewix right, it’s important to call out cases like so the experience improves for everyone
@dnolen: By the way, if you want to establish a Socket REPL from Cursive, you can fairly easily with a tiny amount of socket code. I packaged it up: https://github.com/mfikes/tubular
Hello! Can anyone help me in using net.Socket() in ClojureScript? My query is at https://groups.google.com/forum/#!topic/clojurescript/Nj_16TS2uJ0 (new to ClojureScript).
#1 What can cause a "TypeError: goog.global.setTimeout is not a function" when building with boot? #2 Can anyone share their Emacs configuration for using cider-jack-in-clojurescript with a REPL?
@lewix: you spotted a regression in Figwheel where an initial compiler exception doesn't get reported and then everything just crashes, Thanks for the report.
@shakthimaan: in answer to your Emacs question https://github.com/bhauman/lein-figwheel/wiki/Using-the-Figwheel-REPL-within-NRepl
@bhauman: Thanks. I listened to your talk on Figwheel and it was excellent! Are there real-world examples of using ClojureScript for Node.js applications, or the general recommendation is to use Clojure for the backend and ClojureScript for the front-end?
@shakthimaan: glad you like the talk 🙂 Yes the general recommendation is to use Clojure for the backend.
@bhauman: I am stuck with this issue - https://github.com/stepugnetti/core.async-issue, trying different .clj setups to get ClojureScript to compile to main.js to run on Node.js. Thanks for your quick reply!
@shakthimaan: Can't really help you with that this morning, other fish to fry. But I would start out with very simple code if you are just starting to use a new toolchain. Hello world, etc.
@shakthimaan: don't use advanced compile for node for now
@bhauman: okay!
bhauman:
(:require [reagent.core :as reagent :refer [atom]
[re-frame.core :refer [subscribe dispatch]]]))
`@lewix: in the meantime if you get an error like this run lein cljsbuild once [[your-build-id]]
the errors will get reported
hmm, it seems the best way to copy the "icon value" directly or use stuffs like react suggests https://facebook.github.io/react/docs/jsx-gotchas.html
@nxqd: goog.string/unescapeEntities
should work
@anmonteiro: thanks, nice one 🙂
@mfikes: can confirm that tubular does work - I have Figwheel running on a remote server and I can connect to it no problem in Cursive. Thanks!
@dnolen: Sweet! I’m surprised at how little code it took to cobble together that functionality. 🙂
@mfikes: so I realized you can get a really good remote web dev workflow when you need it just by more less copying what was done for Ambly
just run Figwheel remotely, wrap the REPL in clojure.core.server, lsyncd your source directory to the remote machine
oh that's cool stuff @fenton this might interest you
Oh… wow! So, you have Figwheel’s REPL exposed via Socket REPL, and you are connected to it using Cursive.
nice, that's what my friend @fenton was trying to achieve, (I am trying to summon him :))
@richiardiandrea: yes we chatted a bit about it
using Figwheel, instead of lsyncd they were using middleman, but for my purposes lsyncd is good enough
Yes. 🙂 I only recently fixed “isolating” *1
, etc. in Planck’s Socket REPL support, once I understood things a little better. (In ClojureScript I had to build “context switching” of those vars, where in Clojure it can get it for free with the thread-local aspect of dynamic vars.) 🙂
very cool tool this lsyncd
in http://clojurescript.io we wanted to use websockets for syncing between users
like a realtime multi-player game, will see if it will land on it or not
I think the sync is done by lsyncd
socket repl is only for transportation of the commands (if I understood correctly)
@bhauman I verified that the Quick Start works fine with 0.5.3 figwheel and most recent clj/cljs versions
it is terrible UX 🙂 I have to use lein-cooper to join those sessions back into one terminal tab, but that is pretty advanced setup
it might be okay because it just emphasizes that there’s something to forget when you don’t start up the (in this case) devcards builder
FYI this is how it looks: https://dl.dropboxusercontent.com/u/559047/cooperized-terminal.png
@tel: you want to have multiple builds start with out having to supply the builds on the command line?
if it doesn't work now it will in an upcoming release because I just refactored the heck out of that code path
speaking of that other error, I’m not entirely sure of the source, but I was getting double import errors around react-dom-server with devcards. I just pulled it out as an exclusion and imported it myself to resolve the whole thing, but it was a little weird 😕
May 20, 2016 4:13:47 PM com.google.javascript.jscomp.LoggerErrorManager println
SEVERE: file:/Users/tel/.m2/repository/cljsjs/react-dom-server/15.0.2-0/react-dom-server-15.0.2-0.jar!/cljsjs/react-dom-server/common/react-dom-server.ext.js:13: ERROR - constant ReactDOMServer assigned a value more than once.
Original definition at file:/Users/tel/.m2/repository/cljsjs/react-dom/0.14.3-0/react-dom-0.14.3-0.jar!/cljsjs/react-dom/common/react-dom.ext.js:85
var ReactDOMServer = {};
^
I’ve got dev and production builds each one both an application and a devcards application
@lewix: @mathpunk I have pushed a new release which should improve the experience considerably
my core.async-generated code is failing under :advanced mode, works in dev mode and quite surprisingly works using :advanced mode with :pseudo-names, already spent few hours on interleaving my code with log statements, but without much success, this is no fun, any ideas?
I have identified the problem. I believe. I was calling function in a different javascript context which was returning a core.async channel back. Background info: both javascript contexts are using cljs and core.async, but they are compiled as independent cljsbuild projects. That is why this worked under dev mode and even with pseudo names - crossing context boundary preserves naming. But under full :advanced build it suddenly breaks, in my case somewhere deep in minified core.async code.
yes, my situation is pretty complex (in Dirac), I have multiple separate cljsbuild projects for various reasons
I just have to be careful when crossing the boundary and serialize stuff or escape into pure js land
@mfikes: no, this would not help, the problem was in minification layout of internal core.async structs
maybe some idea for improvement: :pseudo-names should have some random name prefix for each independent build
@shakthimaan i think the go macro needs the log statement to be inside the let where you are using <!