This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-01-14
Channels
- # beginners (4)
- # boot (78)
- # braveandtrue (3)
- # cider (9)
- # clara (6)
- # cljs-dev (4)
- # clojure (57)
- # clojure-brasil (1)
- # clojure-russia (99)
- # clojure-spec (20)
- # clojure-uk (40)
- # clojurescript (162)
- # component (17)
- # cursive (4)
- # datomic (21)
- # docker (2)
- # emacs (5)
- # figwheel (2)
- # hoplon (363)
- # jobs (1)
- # leiningen (1)
- # om (4)
- # om-next (5)
- # onyx (10)
- # proton (1)
- # re-frame (13)
- # reagent (13)
- # ring (3)
- # rum (1)
- # slack-help (1)
- # test-check (3)
- # untangled (7)
- # vim (24)
I'm working through the modern-cljs tutorial series, currently at no. 4, and it seems like the reload
task is unable to make my browser auto refresh when files change. I have to refresh manually, and upon doing that chromium spits out this error: Uncaught DOMException: Failed to construct 'WebSocket': The URL 'ws://:46709' is invalid.
anyone know what's happening?
@alandipert @micha This new Ring vulnerability fix affects serving resources in Boot, have you noticed? I just bumped into it after upgrading.
@danielsz you mean via boot-serve
?
@williewillus are you setting that port manually?
no, it's automatically assigned (by the refresh task I'm guessing)
@williewillus: i am not sure, but I was working through modern-cljs .. I ended up having to use safari and not chrome
I am not sure why but I was mainly trying to learn boot so I didn't spends time on it
hmm trying on firefox (I'm on linux) gives a similar error SyntaxError: An invalid or illegal string was specified websocket.js:283
hey guys, it takes about 70sec for boot to compile my cljs files on a corei5 cpu, is it normal ? how can I improve this ?
@williewillus take into account that modern-cljs is still based on version 2.5.5 of boot. Hopefully in february 2017 I’ll find the time to port it to the newly released 2.7.1 release. That said, have you tried the following?
git clone
cd modern-cljs
git checkout se-tutorial-04
and see if it works?@lxsameer: I usually get 30-45 seconds. With the small website I am developing mostly in cljs atm
I'm currently playing around with goof.style/installStyles atm. Is this something I need to put into an edn file or can I run it in my cljs?
Subsequent is 0 to ~2 seconds I played around with parallel build a while ago but didn't notice any significant improvement. (Might have been doing it wrong)
@lxsameer the question is, why does the initial compile step matter as much, if subsequent iterations are fast enough?
obviously use optimizations: none for development
(if you're not doing that already)
@pesterhazy sometimes i have to restart the whole system, also parallel boot seems don't have any effect either
I mean I wish it was faster too but I usually can fill the time until the dev env is up with something useful 🙂
also a fast CPU really helps here (going from macbook air to macbook pro, for example)
@pesterhazy i wish there was a solution to cache the result, for example my dependencies always compiles to the same thing, there's not need to compile them over and over again, but apparently it's against boot philosophy
hm not necessarily
does anyone have any examples of boot doing what treelein
is doing in this lein project?
https://github.com/juxt/yada/blob/master/treelein
specifically want a way to build sub dependency jars, but otherwise in dev mount them all onto the same source path… should be pretty straightforward in boot right?
any examples of sift?
@lxsameer if they always compile to the same thing you can just make a jar or a zip file with the compiled artifacts and have those separaetly
boot has support for persistent cached filesets, but you need to be able to compute a cache key that will expire the cache correctly
with something like lisp that is very hard to do correctly, because there is no static way to determine that
my experience with eg. lein cljsbuild was that i constantly had to do the clean task to make sure i'm not using stale incorrect cached files
i've spent a lot of time chasing down bugs that turned out to be some weird cache state
@micha also i need to know more about the persistent cached filesets, where can i find more info ?
the first time the uber task sees a given jar file it unzips it and caches the unzipped fileset
it just needs to make hard links into the cache storage rather than decompressing the jar and writing all the files
@micha I updated the visual notification code again with @martinklepsch ‘s suggestion to use dosh-timed
again. I decided to stick with the policy of “never throw from notify
”. So now errors in notification are swallowed silently and if anything goes wrong a text notification will be printed in the terminal.
I’m pretty happy with the general idea, but I guess I’m a little unsure about the “swallow all errors silently”. It seems like it might make it really hard to debug if there’s something weird with the options passed to notify
that causes it to fail unexpectedly...
@geoffs from what I have seen in the code base when boot.util/*verbosity* >= 2
you have debug stuff. Now we the PR for logs and macros you could also use that (when it gets merged in, ping @micha 😀)
Great! I think it solves a bunch of problems which I absolutely didn't expect it would solve
I have worked on that during a polyglot meetup trying to show off Clojure macros to people 😄
haha, nice! yeah, that seems like a better solution to this. I’ll use the util/print-ex
function to print the information about any thrown exceptions.
Yeah there is a common function for exceptions that handles level, prolly that one ;)