Fork me on GitHub
#hoplon
<
2015-09-24
>
alandipert00:09:47

@flyboarder: i think there might be some synergy. at the very least interop should be no problem

alandipert00:09:07

that's the nice thing about the lisp mindset, it's easy to subsume any other thing simple_smile

alandipert01:09:26

has anyone made a hoplon layer for spacemacs yet?

alandipert01:09:30

if not, i may take a stab

alandipert04:09:19

would love any help whipping that into shape, it's a simple tutorial

onetom05:09:42

I don't really want to go thru the trouble of releasing a custom hoplon version just to share this patch across all our dev environments first

alandipert05:09:21

hm, i'm not sure if you can prefer-method with the ::default value

alandipert05:09:42

looks like a good change though

alandipert05:09:55

i suppose it leverages jq smarts?

onetom05:09:57

possibly, but im not sure that's why im not proposing it as a permanent change yet

onetom05:09:56

i wanted to test it on our apps first a bit more extensively because we were seeing serious performance hits having tons of these when-dom timers spinning

onetom05:09:12

can u test on some of your apps quickly, alandipert ?

alandipert05:09:32

i'm on the way out, i can test in the AM though

alandipert05:09:02

hm in our flagship SPA i don't see any usages of it tho

alandipert05:09:16

in any case, i must go. gnight!

xificurC08:09:52

@alandipert: I just tried running cider-jack-in from spacemacs and it started a repl via boot. Was nicely surprised. The spacemacs experience so far is great

jethroksy11:09:49

wow github posted my issue here

alandipert12:09:36

@jethroksy: Class version 52.0 == Java 8

alandipert12:09:50

looks like that dependency was compiled with javac 8, but you're running it with Java 7

alandipert12:09:05

the best fix is to upgrade to java 8 if you can - it's way better

alandipert12:09:38

otherwise you may consider a ticket on https://github.com/mynomoto/hoplon-minimal, maybe we can use an earlier version of whatever that is instead so it works for 7 and 8

jethroksy12:09:39

@alandipert: took a quick look at my java version and i think you're right

alandipert12:09:57

it was easy to spot thanks to you posting a lot of great info simple_smile

alandipert12:09:19

bug report grade: 💯

jethroksy12:09:30

hahaha i'm still new to all these programming stuff

jethroksy12:09:02

loved the talk on hoplon and javelin btw big props to you and your colleagues for building this amazing product

alandipert12:09:30

but we had no choice

alandipert12:09:35

we couldn't stand using anything else hehe

alandipert12:09:06

if you're interested, you're a prime candidate for https://github.com/hoplon/hoplon/wiki/Get-Started that i posted last night

alandipert12:09:16

it's a gentle walkthrough of the concepts with code

jethroksy12:09:29

yeah i was noticing the page was blank a few days ago

alandipert12:09:39

yes it was embarrasing

jethroksy12:09:39

was going through it earlier

alandipert12:09:55

cool, well feel free to make any edits or ask questions. hopefuly that document can improve over time

jethroksy12:09:02

when of course i couldn't run boot dev

jethroksy12:09:09

didn't hear that sound of success you mentioned

jethroksy12:09:26

i'll feedback where appropriate!

jethroksy12:09:35

meanwhile i'll close the issue

xificurC13:09:47

@alandipert: nice write-up in the wiki! Is there something similar planned for server-side dev? A castra wiki page maybe?

Josh14:09:11

Hey @alandipert, great to see the new Get Started page! I've been wondering about the "Hoplon is for single-page web applications" thing. Is that unnecessarily limiting / isn't Hoplon still useful when you need multiple pages? Wouldn't want any potential new users to wrongly think it's not for them just because of that. Or is that desired?

alandipert14:09:07

hm, the intent is to convey hoplon is not for templating documents

alandipert14:09:57

the word page is very overloaded i suppose 😞

Josh14:09:58

(Also, reminded of the Discourse thread about building native mobile/desktop apps in CLJS using React Native, where you recommended Hoplon/Javelin as the best way to model those UIs. Think it would be cool to add a nod to Hoplon's future as a good choice for native apps on the Get Started page, if you see it going there?)

Josh14:09:30

FWIW, when I read "for single-page apps", it gave me some pause about whether it's suited for anything else, and I'm still not sure I understand what you're getting at there

alandipert14:09:44

i think i'm just hesitant to say that hoplon the best #1 and good at everything

donmullen14:09:57

@alandipert: I too would be interested in exploring the mobile space - now that I’m at a mobile dev company 😉

donmullen14:09:19

Agree re: javelin for sure — unclear how / if we could leverage hoplon for true native.

donmullen14:09:53

We’re looking at ReactNative for very small Android/iOS project as proof of concept.

Josh14:09:00

I understand single-page webapps to mean typically you land on a single js-heavy page and never leave (potentially navigating through the app with hash-bang urls)... but for me at least Hoplon's pre-rendering is a killer feature, making it just as well suited for building a static site with the more powerful tools of CLJS

Josh14:09:02

and boot

alandipert14:09:23

true, it is awesome at that

donmullen14:09:55

@jab @alandipert is the prerendering for hoplon pretty much a solved problem now?

Josh14:09:15

@alandipert: Definitely not telling you to claim Hoplon is the best at everything! Just trying to understand if my hunch that it's more generally useful than I understood it to be from the current marketing language is correct

Josh14:09:14

(speaking of pre-rendering, and I don't want to derail the current conversation, but did you happen to see https://github.com/hoplon/hoplon/issues/68 yet?)

xificurC14:09:14

looks up prerendering

alandipert15:09:06

@jab: just looked at it now - reminds me a lot of the usecase for http://clhs.lisp.se/Body/s_eval_w.htm

alandipert15:09:30

i can easily imagine a when-prerendering macro that evaluates body only during prerender, not sure exaclty how it should work tho

Josh15:09:41

@alandipert: thanks for taking a look. when you get a chance, any sense for the priority on that one? and do any workarounds occur to you in the meantime?

alandipert15:09:05

well, the html is in the fileset AFTER prerender

alandipert15:09:13

and you could make a task to mess with the html at that point

alandipert15:09:22

injecting in whatever tags you want

alandipert15:09:34

but, programming still required 😕

Josh15:09:27

think i follow, thanks. boot chops not up to snuff yet but hopefully will be before too long. and priority?

onetom15:09:24

@jab: we are generating our homepage with hoplon. what's not solved about it is how to minimize compilation time. currently for every hoplon (page ...) there is a full google closure lib, jquery etc emitted into the target dir. we are sharing our layout https://github.com/exicon/homepage/blob/master/src/homepage/layout.cljs.hl#L106-L162 amongst our pages, so when we are working on the layout itself, all pages are recompiled on every change which takes 20-30seconds all together.

onetom15:09:34

so while technically it's possible to use hoplon as a static site generator, i wouldn't recommend it just yet until we have a better model to handle the multipage app case.

onetom15:09:16

as a workaround i turned the whole site into a SPA and pre-render it from under different paths. this was not an easy sail either because the phantomjs pre-rendering js snippet was accessing the page thru the file:// protocol, so when i was getting the path with (.. js/window -location -pathname) ( https://github.com/exicon/homepage/blob/master/src/homepage/index.cljs.hl#L295-L316) i get /Users/onetom/exicon/homepage/target/index.html during prerendering and /index.html on production over https://...

onetom15:09:09

so to understand all these quirks and account for them in your code is what makes me think it's better NOT to recommend (boot-)hoplon as a static site builder

flyboarder18:09:56

@alandipert: wouldnt a rename of (page) to something liken (entry "index.html") convey the point a bit better?

sjol20:09:36

@mynomoto: have you had good results interacting with vega based charts from clojurescript?

mynomoto20:09:23

@sjol: http://mynomoto.github.io/#/chart is as far as I got until now, but for the look of it it should just work. If you click on the header it will change the values on the cell and update the chart. Or if you change the ranges it will update the spec width and heigh causing updates on the chart itself.

sjol20:09:43

@mynomoto: nice! but you are only modify the canvas not any data?

mynomoto20:09:47

@sjol: Actually I modify the data, that cause an update on canvas.

sjol21:09:21

@mynomoto: I see! I was thinking more in terms of not having to re-inject the whole spec a bit like in d3 where one should be able to update the data, remove then execute enter to re-render it all.

mynomoto21:09:56

That should be possible, I'm still learning the api. There is also a streaming data option

sjol21:09:25

ah! me too, seems promissing though

alandipert22:09:40

@flyboarder: i like that... or main (main ...)?