Fork me on GitHub
#clojurescript
<
2015-06-10
>
cfleming02:06:40

@mfikes: I guess you probably saw this already - I no longer need to pay to put my own iOS apps on my own device, hooray!

mfikes02:06:00

@cfleming: Yes. That should encourage more developers. Spent a month or two developing my first app in the simulator only before I convinced myself I was gonna ultimately ship it. I wonder how many potential apps died early owing to that barrier.

cfleming02:06:43

@mfikes: Yeah, I suspect that Apple realised that maybe raising the bar to entry wasn’t a good idea.

cfleming02:06:52

Not that it seems to have hurt them at all.

mfikes02:06:55

@cfleming: On the shipping side, the $99 often becomes silly compared to the 30% cut. But that a whole different side of the equation. Thinking of some 14-yo kid who wants to mess around developing on a spare iOS device, but doesn’t have or want to spend the money. I think its a great move on Apple’s part.

danielcompton02:06:07

@mfikes: I wonder if it’s the first step towards opening distribution completely.

cfleming02:06:12

@mfikes: Right, if $99 is probably not a big deal once you’re up and running but it’s off-putting for experimentation - I think it’ll help them increase mindshare.

cfleming02:06:40

And it’s great for React Native fiddling, of course

danielcompton02:06:40

@mfikes: it sounds crazy but they’re 50% of the way there letting anyone build and run arbitrary code on their device

mfikes02:06:52

The big problem is the reviewers and the need to somehow pay for them if they open the doors. Hrm.

cfleming02:06:59

I suspect that this change is probably as far as they need to go to be honest. I suspect that having to pay $99 to distribute probably helps keep some of the dross out of the App Store.

mfikes02:06:41

Yeah. The system is working. I honestly don’t know if I could argue to change it.

cfleming02:06:47

It’s interesting that it opens up the possibility of distributing OSS apps via Github to anyone not afraid of building them.

mfikes02:06:19

Ahh… great point.

cfleming02:06:29

I suspect the build+install step can probably be automated pretty comprehensively and made quite slick for even relatively non-technical users if anyone cares enough to do so.

danielcompton02:06:22

@cfleming: exactly. And at that point, why not just let people sideload?

pixel05:06:20

@mfikes I actually never did any iOS stuff simply because I didn't have $99 to spend on it. I think it's great that they're open sourcing it.

martinklepsch08:06:48

@mfikes: little nitpick haha: the pre tags have a slightly different grey as background color than the code tags inside of them

mfikes11:06:33

@martinklepsch: Perhaps it is a Cryogen default. @maria ’s is doing the same http://mneise.github.io/posts/2015-06-08-week-2.html

ul11:06:20

is Closure in somewhat way exposed to macros during CLJS compile?

ul11:06:34

could i check goog.DEBUG in macro?

dnolen11:06:43

@ul only through the compiler. There's not a good interface for this.

ul11:06:31

thanks, David, will rely on another debug marker

mfikes12:06:04

@maria: I fixed my Cryogen blog code formatting colors with this in screen.css

pre {
    background-color: #f0f0f0;
}

mfikes12:06:43

By the way Cryogen is an awesome static blog engine written in Clojure. I recommend it simple_smile

martinklepsch12:06:15

I’ve seen Cryogen, and it looks pretty neat. Talking about static site generators: @podviaznikov built one as set of composable boot tasks: https://github.com/hashobject/perun

martinklepsch13:06:06

@mfikes: I was wondering if this would be something worth fixing in cryogen? I couldn’t find the responsible code at a quick glance though

mfikes13:06:09

@martinklepsch: yeah. I suspect my setup adheres to the default setup fairly closely. I added an extra bit to my screen.css file.

mfikes13:06:24

@martinklepsch: I'll log a ticket against Cryogen.

dnolen13:06:11

never seen Cryogen before, looks cool!

mfikes13:06:20

Cryogen static blog rocks if you are lucky with HN. Zero computation. simple_smile

mfikes13:06:23

TL;DR for those interested in Cryogen: You write 2015-06-10-post-title.md files, run lein ring server to preview locally, then tar up public tree and toss it on a web server.

jeff.terrell13:06:31

Nice, thanks for the summary, that's useful.

mfikes13:06:56

@dnolen: I’m sure it supports Computer Modern simple_smile

jeff.terrell13:06:58

…for people like me who are too lazy to click on the Github link, anyway. simple_smile

martinklepsch13:06:07

static sites are the best simple_smile

martinklepsch13:06:41

actually also as a deployment “frame” for cljs apps simple_smile

dnolen14:06:22

@cfleming: the Cursive enhancements to ClojureScript are great! I think if you’re not going to actually resolve js/foo you should not warn about it. Similarly for property access (. foo -bar)

maria15:06:54

@mfikes: thanks for letting me know about the code formatting colours, didn’t even notice that they were slightly off simple_smile

colin.yates15:06:24

anyone noticed that figwheel and the latest clojurescript don't work together - figwheel keeps waiting for a browser to connect?

akiva15:06:09

@colin.yates: Seems to work well for me.

colin.yates16:06:16

@akiva - hmmm, I did a vein clean then a lein figwheel and while the app works, hot re-loading CSS or CLJS doesn't. Oh well, knowing it works for somebody at least means I will poke around a bit more - thanks!

akiva16:06:55

Yep! Good luck.

jackjames16:06:06

@colin.yates: similarly no issues here w/ "lein new figwheel" + bumping everything to latest

colin.yates16:06:13

thanks @jackjames. It is amazing how annoying it is having gotten used to figwheel to have to manually reload the page 😉

jackjames16:06:11

@colin.yates: i'd rather just throw my whole project out and start over lol

nullptr16:06:18

heh — yes, figwheel changes the game. i gave it a quick shoutout to that effect @ http://derekslager.com/blog/posts/2015/06/five-years-of-google-closure.ashx

teslanick16:06:20

I started fooling with figwheel in my spare time, and now doing "real" work where I have to reload/reenter data is awful.

colin.yates16:06:54

yeah, so it turns out that commenting out the figwheel connect code in order to cut a deploy disables figwheel simple_smile. My bad.

peterschwarz16:06:18

@nullptr: Thanks for that link. I had been just thinking today how I need to get rid of the write/reload cycle in my current JS/React project...

robert-stuttaford18:06:21

anyone using cljc + schema in cljs with success?

robert-stuttaford18:06:37

for some daft reason, i get undefined var errors for schema’s vars

robert-stuttaford18:06:42

i’ve unpacked the schema jar and confirmed that the vars are where they should be. all the rest of the code in the project is fine

robert-stuttaford18:06:28

yeah, we have an existing project using cljx. and a cljx file has all the schemas. when converted to cljc, though, it complains that it can’t find schema’s vars

robert-stuttaford18:06:40

with the cljx variant, though, it’s all fine

nullptr18:06:02

ah, didn’t catch the cljc above, no experience there

robert-stuttaford18:06:12

@dnolen: any thoughts on how i might debug?

robert-stuttaford18:06:35

next step is to switch on the verbose mode of the compiler and see what that says

jeff.terrell19:06:14

I'm trying to get a sense of the download footprint for a clojurescript website. I want to use it for a pretty simple mobile website.

jeff.terrell19:06:31

Anybody have any success getting a <100K footprint?

jeff.terrell20:06:19

Or I guess another way to ask it is, what's the approximate minimum footprint of cljs with advanced optimizations, dead code removal, etc?

ghadi20:06:53

jeff.terrell: there's definitely success with that. are you talking gzipped?

jeff.terrell20:06:10

Good question…let's say no for now, just so I can get a sense.

ghadi20:06:31

(I don't have specific number, so someone chime in that's not mr nolen)

teslanick20:06:35

My memory is that cljs apps benefit a lot from gzip -- lots of repeated ".call(...)"

ghadi20:06:09

I know his blog posts almost universally quote payload sizes, as it's something to be proud of for all that cljs provides

jeff.terrell20:06:45

Oh, cool! Going to pull up his posts now. simple_smile

alejandro20:06:21

From feb: advanced compiled build is 330K before gzipping, 85K after gzipping.

alejandro20:06:27

that includes Om and React

ghadi20:06:50

jeff.terrell: I just gzipped an advanced mode slug with React and Om and my own stuff + browser repl... got exactly alejandro 's numbers

jeff.terrell20:06:06

OK, that's not bad…that could work.

jeff.terrell20:06:25

I'm wondering how much of that is React/Om, too, which we won't need on the project we're evaluating.

jeff.terrell20:06:52

Just started a clean release build on the mies template, gonna see what those numbers look like.

ghadi20:06:26

make sure to actually call things, because advanced mode will mark everything dead 😃

alejandro20:06:33

Hey Jeff simple_smile Also seeing his baseline is 20k gzipped (omitting om and react)

jprudent20:06:44

Hi! I'm looking for an out of the box pretty printer for cljs. Which one do you use ? https://github.com/brandonbloom/fipp ?

alejandro20:06:31

jprudent, I think pretty printing just got merged into cljs core

jeff.terrell20:06:34

Ha, good point about the dead code removal.

jeff.terrell20:06:13

Yeah, if I'm reading this right, we have 105K unzipped, and 27K zipped. OK, I think this will work, fantastic.

jeff.terrell20:06:21

Thanks for the help ya'll!

jprudent20:06:43

@alejandro: Thanks, I'll upgrade my cljs. Many thanks again simple_smile

dnolen21:06:43

@jeff.terrell: ClojureScript starts at ~20k gzipped and goes up from there.

dnolen21:06:32

For some context, that’s smaller than jQuery

dnolen21:06:11

@robert-stuttaford: don’t know enough about schema to offer any guidance

robert-stuttaford21:06:38

thanks @dnolen. it’s rather odd. i’ll dig and see what i can find

cfleming22:06:13

@dnolen: Yeah, it actually does attempt to resolve those accesses but without type info it’s tough. I’m going to have to look harder at how the JS resolution works, which is more or less the same problem.

cfleming22:06:36

@dnolen: But you’re right, I think disabling the warning for now is a good move.

ericnormand22:06:36

@mfikes: re: calling functions over websockets it's a protocol between browser/server; it sends a message with a symbol identifying the var of the function to call. immediately returns a channel where the response will be put. The magic is that you can return a function or core.async channel and through the magic of serializing/deserializing edn, it gets a uuid to be referenced later

robert-stuttaford22:06:08

hey ericnormand! and michaelklishin!

robert-stuttaford22:06:26

was wondering if we’d see a clojurewerkzer in here simple_smile

ericnormand22:06:53

@mfikes: it's not very long, just took a little work to make it work reliably

ericnormand22:06:36

are you doing a datomic course soon?

robert-stuttaford22:06:53

just an informal hangout on friday

robert-stuttaford22:06:15

i’ve done a questionnaire and got some good questions to talk about

robert-stuttaford22:06:27

at least half i don’t know the answer to, which is great

ericnormand22:06:01

you had better get reading

ericnormand22:06:43

are you coming to strange loop?

ericnormand22:06:06

@mfikes: just read more context; to clarify: I'm not printing out functions and reading them back in. Printing out a tagged literal and creating a lambda from it on the other end. tagged literal just says it's a function and its uuid.

robert-stuttaford22:06:18

Cape Town is far from everything!

mfikes22:06:27

@ericnormand: ahh. Makes sense :)

ericnormand22:06:59

@robert-stuttaford: can't be more than a 24hour flight 😉

gjnoonan22:06:59

Wouldn’t have been good for our first one!

jeff.terrell23:06:16

@dnolen Thanks. 20k is awesome! And thanks, by the way, for all your work to make this possible. :-)