#clojure logs

2011-07-20

00:00dnolen_so far it seems like a pretty even split, but I agree, these points should probably be made in the tutorial.
00:01amalloydnolen_: yes, i see. if the analogy to #s had been drawn, i wouldn't really object
00:03DeusExPikachuso is geto defined elsewhere? the naming seems generic although what it does seems specific
00:03dnolen_hopefully my talk on this gets accepted to the conj. Personally I found myself scratching my head reading The Reasoned Schemer, I didn't really understand until I read the implementation.
00:03dnolen_like rhickey's persistent data structures graphics, I'd like to make the same explaining exactly what happens in a core.logic program.
00:04dnolen_it's actually really freaking cool.
00:05DeusExPikachudnolen_, I hope it does too, I want to see what cool things I do with it, as a side note, I understand that a significant portion of watson (IBM) was written in prolog
00:05dnolen_DeusExPikachu: it's not defined elsewhere, it's called geto because it's somewhat similar to get in Clojure.
00:08DeusExPikachuI like the use of wild cards and list destructuring to act like familiar first, rest recursion we see in functional programming
00:08DeusExPikachufor the definition of geto
00:09DeusExPikachuI wonder if that analogy should be explicit in the tutorial
00:09dnolen_DeusExPikachu: amalloy: technomancy: all good feedback. I'll direct ambrose to this chat.
00:12DeusExPikachuI think the author's description of what the function is supposed to accomplish would go a long way
00:14DeusExPikachuso who's going to be here 6:45 pm EST Wed?
00:15dnolen_DeusExPikachu: yes that's glaring omission - that geto is a relational goal for dealing with an associative data structure (vector of key/value pairs in this case)
00:15dnolen_DeusExPikachu: me.
00:16brehautwhat is EST as UTC?
00:16brehaut-4?
00:16scottj_stu's "no comment" on cinc at a recent recorded talk and rhickey's questions about protocols making bootstrapping more difficult lead me to think it's cinc related
00:19DeusExPikachuwhat's cinc?
00:19iceyDeusExPikachu: clojure in clojure
00:20amalloybrehaut: starts in 18 hours
00:20brehautamalloy: thanks :)
00:20amalloy18:25 i guess
00:20brehaut10am new zealand time; thats achievable
00:21DeusExPikachumy roomate is always watching livestreams about starcraft, it will be nice for me to do it on something I enjoy for a change
00:22DeusExPikachufor future recommendations for streaming services, justin.tv seems to be a good host, I many livestreamers that switched for various reasons
00:24cemerickDeusExPikachu: where's "here"?
00:25DeusExPikachucemerick, #clojure
00:34kumarshantanuIs this still a rumor that the talk is about CinC?
00:39amalloyso i discovered that reify, deftype, and the like fail silently if you specify a class twice: (reify Map (size [this] 0), Counted (count [this] 0), Map (keySet [this] nil))
00:41amalloythis because i was writing a macro to inject some automated implementations into your reify for you, and they collided. i ended up having to parse the reify body and unify everything for you; does anyone have an opinion about whether that would be a good behavior for reify to have by default?
00:46technomancyamalloy: reify wil also fail silently if you give it a fully qualified symbol as a local
00:47amalloytechnomancy: not as a local, but as a function arg, i hope you mean? as a local would be extra-bizarre
00:47technomancyhm; you take local to mean let-bound only?
00:47amalloytechnomancy: no, i don't. but local *includes* let-bound only
00:48technomancyoh, gotcha. yeah, I mean on parameter lists
00:48amalloy&(.count (reify clojure.lang.Counted (count [user/this] 1)))
00:48lazybot⇒ 1
00:49amalloy&(.keySet (reify java.util.Map (keySet [user/this] user/this)))
00:49lazybotjava.lang.Exception: No such var: user/this
00:49amalloytechnomancy: nah, my example just sucked
00:50technomancyaha
00:50technomancyhttp://dev.clojure.org/jira/browse/CLJ-348
00:51technomancynot related except it may indicate that it's possibly intentional that reify doesn't stop you from doing stupid things I guess
00:52amalloy&(.size (reify Map (size [this] 0), Counted (count [this] 0), Map (keySet [this] nil)))
00:52lazybotjava.lang.Exception: Unable to resolve symbol: Counted in this context
00:52amalloy&(.size (reify java.util.Map (size [this] 0), clojure.lang.Counted (count [this] 0), java.util.Map (keySet [this] nil)))
00:52lazybotjava.lang.AbstractMethodError: sandbox26573$eval28671$reify__28683.size()I
00:55amalloytechnomancy: it's especially annoying, because reify does all this extra work to mess things up, then expands into a reify* that would have worked fine
00:55amalloy&(macroexpand '(reify java.util.Map (size [this] 0), clojure.lang.Counted (count [this] 0), java.util.Map (keySet [this] nil)))
00:55lazybot⇒ (reify* [clojure.lang.Counted java.util.Map] (count [this] 0) (keySet [this] nil))
01:04technomancygeez
01:05amalloytechnomancy: on the plus side, this got me reading the compiler again, and i discovered that the compiler contains a reference to a very special symbol: static Symbol dummyThis = Symbol.intern(null,"dummy_this_dlskjsdfower");
01:06amalloybut it's only ever used in an unreachable code path: if (name != null) registerLocal((name == null) ? "dummy_this_dlskjsdfower" : name);
01:06technomancyman, languages without gensym crack me up
01:07amalloytechnomancy: crypotgraphically-secure gensyms are important for code that makes it into core
01:09technomancyalso: languages that force conditions to be boolean expressions. hilarious!
01:35amalloyblech. i was going to submit a simple patch that stops doing the extra parsing, but (extend) uses the same parser as reify, and it *does* need the extra work
01:53amalloyanyone know a good way to turn [:a 1, :b 2 3, :c :d 4] into {:a [1], :b [2 3], :c [], :d [4]}? that is, each keyword as a key, whose value is a seq of the numbers immediately after it?
01:54amalloyi wanted to do something with (partition 2 (partition-by keyword? coll)), but then a keyword with no numbers gets lumped together with the one after it
01:55amalloymaybe i'll farm the problem out to 4clojure; i'm sure someone will have a good answer
01:57brehautamalloy: i settled on (juxt filter remove) for my not-pivot function yesterday; completely different result to what i was trying for but works fine
01:57amalloyah
01:58brehauti called it sieve but im not convinced its a good name
01:58amalloybrehaut: contrib calls it separate
01:58brehautaha
01:58amalloyi think it's in seq-utils
01:59brehautcheers
01:59amalloybrehaut: now come up with a name for the function i'm trying to get 4clojure to write
02:31dbushenkohi all!
04:02dbushenkolol :-) one more blub http://confluence.jetbrains.net/display/Kotlin/Welcome
05:34vijaykiranHi .. I'm trying to understand ->> and -> macros. I think I understand what -> does (thanks to http://blog.fogus.me/2009/09/04/understanding-the-clojure-macro/), but seems like I don't get ->> can any one give me a simple example ..
05:34kumarshantanuvijaykiran: (->> [1 2 3 4 5 6] (map inc) (take 2))
05:35kumarshantanu,(->> [1 2 3 4 5 6] (map inc) (take 2))
05:35clojurebot(2 3)
05:35kumarshantanu->> puts the arg at the *end*
05:35kumarshantanu-> puts the arg at the first place
05:35raekvijaykiran: (-> x (f1 a b) (f2 c d)) is the same as (f2 (f1 x a b) c d) and (->> x (f1 a b) (f2 c d)) is the same as (f2 c d (f2 a b x))
05:43vijaykirankumarshantanu, raek thanks!
08:23khaliGhas someone here set up zeromq for clojure recently?
08:32clgvkhaliG: you already read this blog entry? http://antoniogarrote.wordpress.com/2010/09/08/zeromq-and-clojure-a-brief-introduction/
08:34khaliGclgv, yes! that's the guide i've been following
08:39khaliGclgv, i ran into problems with building zeromq so i used the latest instead, and that worked fine. the jzmq library built and installed fine. I run into problems trying to retrieve the deps using lein though
08:40clgvkhalig: I didnt try it - I just wanted to know what it is and the blog entry told me ;)
08:40khaliGclgv, fair enough :)
08:40clgvkhalig: I just posted it since there was a chance you might have not seen it
08:54clgvAre incanter operations on datasets lazy?
11:17ahriman53072hello how i can query GAE database with SQL-like queries from my clojure-compojure program? i've found appengine-clj but it don't have suitable methods.
11:28Scriptorlatest enlive is at 1.0.0, right?
11:56brettkhi
11:56brettkquick question
11:56brettkusing 'assoc' to *update* a map
11:57brettkif i understand correctly, assoc returns a new copy of the map
11:58brettkand does not change 'in place' the data structure
11:59brettkis that correct?
11:59ambrosebsyes
11:59mprenticeessentially yes
11:59mprenticetechnically, assoc doesn't have to make a new copy. it just can't change anything in the input map
11:59brettkit references the 'old' data structure where it makes sense
12:00ambrosebscalled "structural sharing"
12:00brettkmprentice: ok
12:00brettkyep
12:00brettkok... just wanted to make sure that i understood this aspect of clojure
12:01brettkthis is also called *persistent* data structures, right?
12:02mprenticeyes. also called immutable.
12:02brettkok
12:02brettkbut this immutability is all 'under the hood'
12:02brettk?
12:03clgvbrettk: what do you mean by that?
12:03brettkif i use assoc to change a map
12:04brettkdo i need to 'wrap this up' in some kind of dosync form
12:04clgvbrettk: the input object is not change, see: ##(let [a {:x 1}, b (assoc a :y 10)] (println a) (println b))
12:04lazybot⇒ {:x 1} {:y 10, :x 1} nil
12:04brettkeffectively, i am updating a data structure
12:05brettkah... the *input* object is not changed
12:05clgvor even: ##(let [a {:x 1}, b (assoc a :x -10)] (println a) (println b))
12:05lazybot⇒ {:x 1} {:x -10} nil
12:05brettkbut what the function returns *is*
12:05brettkthe new data structure
12:05clgvyes
12:06brettkand that is fine?
12:06clgvyes pretty much in most cases
12:07brettkwhat about this whole immutability/functional 'thing' in clojure?
12:07brettkwhat if several threads are referencing the map that i have just gone and 'updated'?
12:07Scriptorbrettk: they reference the original map
12:07Scriptorwhen you 'update' you're creating an entirely new map
12:08Scriptorwhich those other threads don't know about
12:08Scriptorof course, things change when you use refs
12:08brettkso no need to wrap this 'update' in a dosync form?
12:08clgvbrettk: if the thread shall see the updates you need either atoms or references
12:08brettkor something similar?
12:08brettkok
12:08Scriptorbrettk: you're using assoc right? Yup, no need
12:08brettkok
12:08brettkwow
12:08clgvchanging access to references has to be wrapped within dosynv
12:09clgv*dosync
12:09Scriptorthere are just a few functions that actually update in-place that need to be inside dosync
12:09brettkok
12:10brettkwow -> clojure is pretty radical [as in 'cool']
12:11brettkok... thanks guys
12:11Scriptorbrettk: a good exercise in fully grokking functional programming is to try and reimplement some of the more basic core functions
12:12Scriptorlike map, filter, etc...
12:12brettkscriptor: i will give that try
12:12brettka try
12:12bprbrettk: try playing around with labrepl
12:12mprenticethe first 2 chapters of structure and interpretation of computer programs is purely functional and has you implement all of those as exercises
12:13bprthat too, SICP is foundational knowledge
12:13Scriptorthe writing on higher-order functions is excellent
12:14brettkmprentice, bpr, scriptor: ok... will do. thanks for the advice
12:21ahriman53072function returns some maps, how can i get one map from this list?
12:28dnolenahriman53072: do you need to get a specific one?
12:28ahriman53072dnolen yes
12:29dnolenahriman53072: you could use some
12:30ahriman53072dnolen ? dont understand
12:30dnolen,(doc some)
12:30clojurebot"([pred coll]); Returns the first logical true value of (pred x) for any x in coll, else nil. One common idiom is to use a set as pred, for example this will return :fred if :fred is in the sequence, otherwise nil: (some #{:fred} coll)"
12:30ambrosebscome get some
12:44cemerickSee you all in NYC later… ;-)
13:37ieuretechnomancy, Hah, is ElasticSearch working okay for you?
13:37ieureI went looking for a Clojure client wrapper, and your ML post was the first hit.
13:38ieureI see that your wrapper repo is dead.
13:45technomancyieure: it's been working out pretty well. a co-worker spun off a separate wrapper lib that is probably going to be a better bet going forward: https://github.com/drewr/esperanto
13:54cch1(using Midje) Anybody got a good meme for testing a sequence of maps for a particular structure?
13:55cch1myseq => (has every? (contains {:key1 string? :key2 number?})) does NOT do it
13:59amalloycch1: i never could get the hang of midje syntax
13:59cch1amalloy: Yeah, the checkers are powerful abstractions, but they are not consistently compasable (AFAICT).
14:00amalloyin "real" clojure i'd just write (every? identity (for [m maps, [key pred] {:key1 string? :key2 number?}] (pred (key m))]))
14:59technomancyieure: I have been advised that esperanto may not be "ready"
14:59technomancyso caveat emptor
15:00drewrieure: it's a good start; it's mostly served as a sandbox for debugging production issues
15:01flazzwhat is the clojure analog of zip in haskell?
15:01amalloytechnomancy: any day now esperanto will take the world by storm. it's such a useful, unbiased, standardized language
15:01drewrieure: but there's a sweet lazy index-seq that I'm using to build an automated reindexing functionality
15:01amalloy$heval zip [1, 2] [3 4]
15:01lazybot⟹ No instance for (GHC.Num.Num (t -> b)) arising from the literal `3' at <interactive>:3:12-14Possible fix: add an instance declaration for (GHC.Num.Num (t -> b))
15:01technomancyamalloy: it's no match for lojban!
15:01amalloy$heval zip [1, 2] [3, 4]
15:01lazybot⟹ [(1,3),(2,4)]
15:01amalloy&(map vector [1 2] [3 4])
15:01lazybot⇒ ([1 3] [2 4])
15:02amalloyflazz: ^
15:02flazzamalloy: just map? wow
15:03amalloyflazz: clojure's map generalizes, combining features from a number of related-but-different functions in other languages
15:03amalloyeg with 2+ seq args it's basically zipWith
15:04flazzamalloy: thanks
15:05nathanmarztechnomancy: do you know if anyone has worked on a scala compiler plugin for leiningen?
15:06technomancynathanmarz: if they have, they've been keeping quiet about it. =)
15:06nathanmarzthose bastards
15:06nathanmarzhow hard do you think it would be to implement something like that?
15:07technomancyprobably not difficult
15:07technomancythe javac task is like 40 LOC
15:07nathanmarzi see
15:07nathanmarzi'll take a look at how that's implemented
15:07technomancythey ought to have an ant task you can call
15:08technomancymost of the code in javac is just translating project.clj into ant-land, so it depends on how much flexibility you want to expose
15:09nathanmarzflexibility as in the javac-options?
15:09technomancyright
15:09nathanmarzcool
15:09technomancyI think the javac task supports multiple source roots for some reason
15:17arjin how many hours will the talk by Rich start? Not too good with the time zones :)
15:18amalloy3.5
15:18arjok, will be 1am here then
15:18arjit better be good then :)
15:20Bronsasame for me
15:20Bronsai will not sleep tonight i think
15:20arj:)
15:21ahriman53072if i have sequence of maps how can i get all values from all of maps in this seq?
15:21tbatchelli_I believe ustream events are automatically saved for offline viewing
15:21Bronsaarj: you german?
15:21scottjin end-of-block? at http://fogus.me/fun/marginalia/#marginalia.core is there any reason to have the (when (or...) true)? isn't (or ...) always sufficient?
15:21amalloy&(mapcat keys [{:a 1}, {:b 2}])
15:21lazybot⇒ (:a :b)
15:21amalloyor vals, i guess
15:22arjBronsa: Danish, you?
15:22Bronsaitalian
15:22ahriman53072amalloy thanks.
15:23bprwhat's the url for watching Rich's talk?
15:23bpri assume there is one?
15:24scottjhttp://www.ustream.tv/channel/clojurenyc
15:24bprty
15:48uberjarclojure on heroku! google app engine can now go away and die.
15:53ahriman53072sorry again, how i can remove all keys from sequence of maps?
15:56hvthat is not clear, could you give us an example with the expected output?
15:59ahriman53072imagine: [{:a 1 :b 2 :c 3}, {:a 1 :b 3 :c 7}]. Exp. output (exclude A key): [{:b 2 :c 3}, {:b 3 :c 7}].
16:00amalloy&(for [m [{:a 1 :b 2 :c 3}, {:a 1 :b 3 :c 7}]] (dissoc m :a))?
16:00lazybot⇒ ({:b 2, :c 3} {:b 3, :c 7})
16:00ahriman53072as always, elegant and great. thanks.
16:01ahriman53072i begin to love clojure.
16:38fliebelwhen is/was the clojurenyc thing?
16:39amalloy02:05 from now
16:39fliebelthat's like 00:30 here... :(
16:40chouserfliebel: get your sleep. you can read all about it in the morning. :-)
16:40fliebelYea, I guess I'll do that. No fanboy points for me today :)
16:40amalloyfliebel: just set up some speakers around your bed, and you'll absorb it while you sleep
16:41fliebelnice idea...
16:42jolyany idea how long the talk is supposed to run?
16:47abedraI would imagine at least an hour and a half
17:06fliebelDoes Alex Miller come in here? His site is blank.
17:07amalloyfliebel: puredanger, right? i'm sure i've seen him here once or twice, but i'd just tweet him
17:29TimMcyeah
17:29TimMcwrong window
17:30ahriman53072ok
17:52chouserless than an hour to go now
17:53gertalotWill he wear a turtleneck and go "one more thing..." ? ;)
17:54brehauthi gertalot
17:54gertalothi brehaut!
17:54gertalotsorry I missed you last weekend
17:54brehautgertalot: likewise
17:54hvwhere can we watch the talk?
17:54brehauthv http://www.ustream.tv/channel-popup/clojurenyc ?
17:55hvbrehaut: thanks. perhaps that could be in topic ;)
17:56ohpauleezchouser: I set a phone alarm one hour prior
17:56Bronsaim fucking awake
17:59ohpauleezhaha
18:01aaelony hi, I have a data structure that will contain an arbitrary number of :datamap keywords. Each :datamap will have map values with many (n~100) keywords (and values) below it. I'd like to create a set of that contains all the keywords found in all the datamaps. clojure.set/union seems like a option, but I am not sure how to create the (sub)sets that will be union-ed together. Snippet of code is here http://pastie.org/2245208 . any help appreciated..
18:03aaelonythe part I need is the "something-that-creates-a-set-of-distinct-keys-over-all-ids"
18:06raekaaelony: so raw-data is a sequence of maps with the keys :id, :file and :datamap? and the value associated with :datamap is also a map? and you want to collect all keys that occurrs in those maps?
18:06aaelonyraek: correct
18:07raekalso, #(get-runid-data %1) is equivalent to just get-runid-data
18:07aaelonywell, there is a vector of ids coming in, and each id produces
18:07raekwell, first you can map :datamap over the sequence: (let [datasets (map :datamap raw-data)] ...)
18:08aaelonythe :id :file :datamap
18:08aaelonyyeah, my "datamap" has that
18:08raekthen map 'keys' over those: (let [dataset-keys (->> raw-data (map :datamap) (map keys))] ...)
18:09aaelonyinteresting...
18:09raekthen concatenate those and turn it into a set
18:09raek(let [dataset-keys (->> raw-data (map :datamap) (map keys) (apply concat) (set))] ...)
18:09aaelonyonce I have the sets, I guess I'll try using reduce into
18:10raekthe apply concat step will turn ((:key1 :key2) (:key3 :key4)) into (:key1 :key2 :key3 :key4)
18:10raekcalling set on that will remove any duplicates
18:11raek(set coll) is equivalent to (into #{} coll)
18:11aaelonyyes, that's what I want. I'll give that a try. thanks!
18:11chouseror use mapcat instead of map, apply concat
18:11ohpauleez+1 mapcat
18:12aaelonycool... thanks guys, I'll give it a try
18:12raekoh, that one's better!
18:12brehautor flip it round to a for
18:12raek(set (mapcat (comp :datamap keys) raw-data))
18:12mudgeyou guys going to watch Rich's talk tonight?
18:13raekI'm staying up for it
18:13devnI hope there's a sock hop afterwards.
18:13devnOr a box social.
18:14mudgedevn: i prefer sock hop
18:15amalloyraek: (comp keys :datamap), right? the other way round doesn't make much sense
18:15mudgeI wonder if irc will play a part in Rich's talk tonight, if we could ask questions or something
18:17amalloymudge: http://groups.google.com/group/clojure/msg/887c9af1eb373f5f claims they'll be "covering the talk" live in IRC, but it's not clear what that means
18:17chousersome people who are at the talk will also be here
18:17chouserdunno if they'll relay questions, but you can try
18:17mudgecool
18:17mudgechouser, will you be there?
18:18mudgeat the talk
18:18raekmaybe that means that something like "we have a question from the internet" will happen
18:18aaelonythanks, raek and amalloy that works well
18:18raekamalloy: yupp. my bad.
18:19abedrabasically we will be around to answer any questions that come up
18:19amalloyabedra: question: tell us what the talk will be about
18:19abedrawe will try to have a channel to get the questions relayed
18:19abedraamalloy :)
18:19abedranot yet
18:20miltondsilvahmm interesting http://disclojure.org/wp-content/uploads/2011/07/rh-poll1.jpg out of all the options the most voted is also the one that is arguably not new
18:21mudgeabedra: cool,
18:22abedradevn off by 1 error
18:22devnabedra: :)
18:25romanroeDo you know if Rich's talk will start on time? I have to decide now if go to bed or stay up :-)
18:26Bronsait was said it will be after 2.5 hours from the start of the conf
18:27abedraBronsa, everything should start close to on time
18:28Bronsa12:30AM here
18:28Bronsahope i will stay awake
18:28ahriman530725:28 AM. Hope too.
18:28romanroeoh, I thought it starts in 15 min
18:28mudgeshould start soon
18:28mudgei think
18:29abedrayeah
18:29abedrai'm asking right now
18:29abedralooking for a positive confirmation
18:29Bronsaahriman53072: did you just wake up or you still have to sleep?
18:29abedrai haven't heard anything otherwise though
18:29abedraso it should be on time
18:29abedrastuarthalloway, you might know
18:29abedrado you expect things to kick off on time?
18:30stuarthallowayprobably start in earnest on the hour
18:30stuarthallowaythey won't even let civilians into the building yet
18:30brehautstuarthalloway: whats the local time for you?
18:30abedraah
18:30stuarthalloway6:30 pm
18:30abedra6:30 pm
18:30stuarthallowaywe are setting up for the talk
18:30brehautthanks
18:30stuartsierraLIVE from NEW YORK!
18:31ohpauleezhahah
18:31ohpauleezAwesome!
18:31arj:)
18:31alandipertsetting up the stream
18:31alandipert20mb up from google hq!
18:31abedrastuartsierra, I believe we were promised a show before things kick off
18:31Bronsacool!
18:31abedra2 Stuarts walk into a google...
18:32abedraHey your live!
18:32Bronsawoo
18:32arjyeah!
18:32joegallothere's a man in computer!
18:32Bronsalo
18:32abedraWe don't notice the delay
18:32abedrait's smooth
18:32ohpauleezRich!
18:32brehautis there any way to ge a lo def stream?
18:32romanroeperfect quality
18:32abedranot that I know of
18:33brehautabedra: thanks :/
18:33Bronsait's perfect
18:33ohpauleez"That's too high-def"
18:33ohpauleezthat line alone made this talk
18:33miltondsilvayeah to hi def for me :p
18:33SergeyDSo... is this "something new" about religious sect?
18:33brehautim way the hell on the other side of the world with a narrow pipe; youtube is too high def ;)
18:34Bronsalol
18:34gertalotthe stream actually looks really awesome for me, and I'm at the same other end of the world :)
18:34alandipertbrehaut: we'll have not-too-high-def recordings for you :)
18:34brehautalandipert: great, thanks :)
18:34naeustream looks perfect for me too
18:34ohpauleezhaha :)
18:34kovasbdon't downgrade it looks awesome
18:35alandipertkovasb: we might be able to do both
18:35ohpauleezchouser: You didn't make the trip too did you?
18:36mudgerr
18:36abedrait's funny to watch the total views numbers start climbing on ustream
18:36stuartsierraWhere are we at?
18:36mudgeyea
18:36abedra121
18:36ohpauleez97
18:36abedra97 current
18:37ohpauleez124 total
18:37stuartsierraAre we live-broadcasting this in a meetup group anywhere?
18:37mudgethis is fun already
18:37mabeshttp://www.ustream.tv/channel/clojurenyc
18:37ohpauleezyeah, we should do this as a community more often
18:37mabesthats guys for setting this up!
18:37iceythe quality on the stream is surprisingly good
18:37mabesyeah
18:37stuartsierraWe'll see how it holds up. Thank Google for awesome bandwidth.
18:37no_mindmaybe we can use google hangout
18:37abedramudge, woah, I just noticed the nick, are you _the_ mudge?
18:38chouserohpauleez: oh, no.
18:38mudgeabedra: no not that mudge, not the security guy
18:38abedramudge, ah ok
18:38mudgeabedra: i'm nick mudge
18:38romanroeyes, thanks for the setup and sharing!!! you make the world smaller :-)
18:38abedrajust checking :)
18:38devnHaha. Poor Rich stuck in front of the camera.
18:38DeusExPikachukeep wheeling around
18:38Bronsaahahah
18:38mabeslol
18:38romanroecan you dance?
18:38naeuhe's live
18:38Bronsawoah
18:39DeusExPikachuhey its stu
18:39devnGive the people what they want!
18:39Bronsathis is big
18:39naeuhello everyone
18:39abedraawwwww
18:39mudgehey stewart
18:39redingerProof that Rich and Stu are not the same person!
18:39megakorreshooo cure
18:39scottjthat room is going to fit 70?
18:39gertalotcute :)
18:39romanroepeople count: internet 1:0 local
18:39naeuperhaps people will be sitting on the desks
18:39stuartsierramudge: which one?
18:39mudgeboth of ya
18:39stuartsierrahi
18:39megakorrehello :D
18:39mudgei wonder what the rest of the room looks like
18:40naeuare there hooks on the wall for people on hammocks?
18:40stuarthallowayplease make requests for the camera...
18:40redingeralandipert: talk about the conj to all the early viewers
18:40devnDown Dipert's pants?
18:40mudgenice room
18:40devnhahaha
18:41abedraoooooooohhhh
18:41naeui bet it's going to be super crammed in a moment
18:41abedradid I just log into chat roulette ?
18:41naeuseething masses of people..
18:41charliekiloall those New Yorkers look pissed of at ruckus the Carolina boys are making
18:41mabesup to 120 internet viewers already :)
18:41abedracharliekilo, that's how we roll
18:42redingerCheermosas!
18:42ohpauleezhaha
18:42abedra+1
18:42ohpauleezI'm excited to be moving back to NYC (Sept 1), and hanging out with a lot of these guys
18:42ohpauleezAlso, bring Clojure into yet another company
18:43ohpauleezs/bring/bringing/
18:43alandipertclojure nyc is poppin'!
18:43lnostdal-laptopwatching from Norway :)
18:43lnostdal-laptopcool stuff
18:43naeuhey Norway!
18:43megakorreey sweden here :D
18:43stuartsierraabedra: our workshops are at Strangeloop in September, right?
18:43naeuEngland here
18:43SergeyDohpauleez: yeah Clojure is great for picking up girls. We should note it somewhere
18:44lnostdal-laptopey guys :]
18:44BronsaItaly here
18:44abedrastuarthalloway, yes
18:44raeksweden here
18:44ohpauleezAwesome, I really love this. We should try to encourage this in the community more often
18:44cemerickWestern Mass. hinterlands, represent. :-P
18:44abedrastuarthalloway, they're all sold out though
18:44ohpauleezcemerick: I expect live commentary :)
18:44mudgeFlorida here
18:45joly_Oklahoma :P
18:45ohpauleezCurrently Oregon
18:45kovasbFiDi, SF
18:45pmbauerPhoenix, AZ
18:45devnSergeyD: I think that's under "Rationale" on clojure.org: Lisp, Chicks Dig It
18:45romanroehow to spot the geek in the room: check who is watching the stream on his laptop
18:45ohpauleezhaha
18:45scottjromanroe: irl is too high def
18:45naeumy cat is watching the stream too
18:46naeuhis eyes are half shut though :-)
18:46naeubut he is purring
18:46ohpauleezdevn: There's some joke in there for sure
18:46devnI feel like if there's ever been an opportunity to say "People of Earth", this is it.
18:46abedranaeu, clojurrrrrrrrrrre
18:46SergeyDdevn: :) nice fooling
18:46naeuabedra: hahahaha
18:46mdeboardwru pie
18:47mdeboardI want to watch the Fabio commercial 5 more times pls
18:47naeuabedra: actually he's probably a bit pissed of with Clojure given the amount of annoying noises I've made him listen too whilst hacking on Overtone
18:47redingerads?
18:47clojurebotmonads is "yea, though I should walk in the valley of imperative code, I shall fear no evil, for your monad comforts me" - seen in #haskell
18:47naeus/of/off/
18:47mdeboardredinger: Yeah, on ustream
18:47ohpauleeznaeu: haha
18:47redingerWish I had known I could have bought advertising....
18:47charliekilodoes that feel like the Presidential Address to the Nation to anyone else?
18:47abedranaeu, lol yeah, you'll have that
18:47ohpauleezthat is a hilarious scenario to picture
18:47mdeboardcharliekilo: Yes, if Geoffrey Rush was president, surrounded by nerds
18:47stuartsierraReminder: live stream of Clojure NYC at http://www.ustream.tv/channel/clojurenyc
18:48abedracharliekilo, nah, the presidential address isn't this interesting
18:48ztellmancharliekilo: who's sequestered in case of a terrorist attack?
18:48Scriptorso the talk discussion is gonna be here, right?
18:48redingerDon't worry, members of Clojure/core are distributed
18:48abedraScriptor, yes
18:48charliekiloztellman: knowing the Relevance guys, they are more afraid of a Zombie attack ;)
18:48Scriptorwell, nobody better have clojure problems starting 7 :p
18:49abedraClojure/core and others involved are standing by
18:49ztellmanwhoever isn't onsite is officially the secretary of agriculture for Clojure
18:49mdeboardeveryone quiet, the're starting
18:49antares_how long will the talk be? It is nearly 3 a.m. here :)
18:49naeucharliekilo: fast or slow zombies?
18:49naeu;-)
18:49semperosheh
18:49devn"People of Earth..."
18:49ohpauleezabedra: who of your team/family is up there?
18:49parasebaso, now we know it wasn't a hair accident, everything is OK
18:49`fogusslow
18:49lnostdal-laptop5 more minutes; i can grab more coffee :)
18:49naeucan we see the room again?
18:49technomancydevn: Greetings, programs!
18:49abedraohpauleez, stuarthalloway stuartsierra and alandipert are up there
18:49Scriptorantares_: an hour or so?
18:49naeuit would be interesting to see how packed it is now
18:49ohpauleezcool
18:50antares_Scriptor: ok, I can handle that :)
18:50raektechnomancy: lol
18:50Scriptornaeu: 70 people rsvp'd I think
18:50Scriptoroh, there we go
18:50devntechnomancy: ha, yes, it just seems like you'd be squandering an opportunity by not starting off with "People of Earth"
18:50ohpauleezthanks camera hand
18:50romanroenow thats what I call a remote control!
18:50naeuoh nice
18:50Scriptorman, I just had to go home this summer
18:50ohpauleezI also vote for People of Earth
18:50naeuthanks
18:51naeuare we all sitting comfortably?
18:51megakorreim laying down :D
18:51Scriptorhi stuart
18:51ohpauleezI'm in a hammock
18:51ohpauleezjust sayin'
18:51bmillareawww ad... :(
18:51ohpauleezhaha
18:52ohpauleez175
18:52devn(inc ohpauleez)
18:52gertalot_UGH I hate the commercial breaks at crucial moments
18:52brehautcommercials from the people sponsoring the bandwidth?
18:52lnostdal-laptopit continues at the same spot afterwards, right?
18:52Scriptornot sure if they're sponsoring it directly
18:52Scriptorbut they pay for the site
18:53daniel123hi all. anybody have a link to the talk?
18:53naeuhmmm, i don't want to make my home "healthier and happier"
18:53gertalot_no I missed part of stuart's stuff
18:53lnostdal-laptopdaniel123, http://www.ustream.tv/channel/clojurenyc
18:53lnostdal-laptopoh, the ad went away (i didn't click it)
18:53daniel123ty, lnostdal-laptop
18:53devnoh god, ads
18:53Scriptorgertalot_: he just said that he'll be doing a talk early august for lispnyc
18:53devnmake the bad man stop
18:53redingerWoah, that Clojure/conj sounds really good
18:53charliekilowhos doing the training?
18:54gertalot_cheers
18:54alandipertclojure/conj, be there!
18:54Scriptorcharliekilo: the clojure/core team
18:54gertalot_YAY
18:54gertalot_go rich
18:54arj_woooo
18:54ohpauleezyessssss
18:54ohpauleezthis is awesome!
18:54charliekiloScriptor: all of them?!?
18:54Scriptor*drum roll*
18:54megakorrewhats clojure :O
18:54Scriptorcharliekilo: a fair number, I think
18:54ohpauleezDAMN!
18:54Scriptorclj2js?
18:54mudgethe browser
18:54megakorreevent loop
18:54SergeyDit's widespread
18:54daniel123hofs
18:54SergeyDJavascript
18:54jsigmon1dynamic
18:54frou100reach
18:54gertalot_javascript?!
18:54Scriptorso is php :p
18:55daniel123frou100 got it.
18:55redingercharliekilo:# of instructors depends how many people sign up
18:55lnostdal-laptophaa, i voted javascript :)
18:55joly_O_o
18:55jsigmon1oh boy
18:55gertalot_no way!
18:55daniel123interessstiiiiinnnng
18:55Scriptorbut...hasn't it been done?
18:55abedraScriptor, not like this
18:55cemerickScriptor: keep watching :-)
18:55devnwait for it... :)
18:55ohpauleezthis means you can do all your HTML5 apps in Clojure
18:55maaclYeah!
18:55bmillarei am excited
18:55maaclClojureScript!
18:56ohpauleezand run on all portables and windows8
18:56Scriptorcemerick: didn't you work on this? I guess some of it was included?
18:56ohpauleezthis is a great move
18:56arj_hmm
18:56cemerickScriptor: No, I've sadly been too busy to be able to contribute. :-(
18:56Scriptorah
18:56abedraScriptor, he did work on it some though
18:56daniel123turn off ur phones peoples!
18:56gertalot_daniel123: +1
18:57arj_i tend to like javascript :) But this will be interesting
18:57ScriptorI wonder how he did the sequences, COW or tries
18:57abedraScriptor, the source will be opened later
18:58abedraScriptor, you will be able to check it out for yourself
18:58bmillareis there no JS bytecode?
18:58daniel123hi stu.
18:58Scriptorabedra: awesome
18:58ohpauleezBut wouldn't Clojure-in-Clojure make this an easier/more complete project?
18:58Scriptorbmillare: nope
18:58Scriptorjs vm's don't let you input bytecode directly
18:58stuarthallowaywe have great bandwidth, but I keep getting booted from irc
18:58no_mindI am waiting for the source code of clojurescript...
18:58mabes_sounds like clojure may be using google's closure.. that won't be confusing at all :)
18:58abedramabes_, :)
18:58redingermabes_: Be thankful we didn't name it Cloture
18:59Scriptormabes_: funny, because rich talked a bit about it last clojurenyc meetup
18:59lnostdal-laptopstuarthalloway, freenode kicks when too many connections come from the same IP
18:59Scriptor(talked about closure, that is)
18:59redingerOtherwise, we would have to write an O'reilly book with a bird on the cover
18:59chouserohpauleez: perhaps, but clojure-in-clojure itself will be much carder than this
18:59ohpauleeztrue
18:59ohpauleez(I was a PyPy dev)
18:59mdeboardohpauleez: Was?
18:59mabes_stuarthalloway: yeah, you can tell the freenode ops your IP and they can fix it for you
18:59ohpauleezmdeboard: I don't contribute code anymore
18:59mdeboardGOD WHAT
19:00frou100this is cool. I had no interest in getting good at js, maybe this will let us leapfrog the lang
19:00mdeboardAN AD?!?!?!?
19:00mdeboardWhat the hell
19:00mdeboardanyone else getting na interstitial??
19:00Scriptormdeboard: gotta pay for the bandwith somehow
19:00mdeboardRIght but... an interstitial?
19:00iceymdeboard: they pop-in every so often; not sure about the frequency
19:00daniel123I had an awesome fabio ad.
19:00stuartsierraAds come from ustream, not under our control. Sorry.
19:00xeon123hi all
19:00mdeboardstuartsierra: I know, frowning at ustream
19:00alandipertad-less recording forthcoming
19:00abedrarich turns into fabio every now and then
19:00bmillareanyone watch the slides about html5 + clojure + JS + google app engine? now we can eliminate JS :)
19:00xeon123I'm trying to understand what's the capabilities of clojure.
19:01Scriptorooh, nice work with that
19:01xeon123with clojure, I can debug java code?
19:01mdeboardxeon123: There is plenty of documentation to get you started with Clojure.
19:01stuartsierraIntros to Clojure available at http://clojure.org/
19:01Scriptorxeon123: you can load up java classes and interact with them on the repl
19:02stuarthallowayClojureScript is written in Clojure -- core is amazing to read
19:02xeon123thanks for the help.
19:02stuarthallowaycompared to the Java stuff
19:02abedrachouser, possibly change the channel topic to include a link to what's going on right now?
19:02xeon123I will look at the site. Bye.
19:02daniel123stuarthalloway, I can't wait to see it.
19:02xeon123\leave
19:02ohpauleezstuarthalloway: I imagine, that's going to be a great read
19:02ohpauleezYESS CinC
19:03chouserabedra: I'm on it!
19:03devn+1 on reading the source for ClojureScript -- It's really interesting.
19:03Scriptorhmm, I don't know much about protocols, but I'd be interested in learning how it works with js, since I thought it mostly had to do with interfaces
19:04ohpauleezthis project is a true and clear demonstration of how powerful those features are (deftype.. etc)
19:04devnohpauleez: yeah, exactly right.
19:04frou100yo dawg..
19:04abedrafrou100, :)
19:04dsopI want to play around with it right now. I talked with a few people in implemeitng something like that, luckily rich saves me from doing that and it's obviously better than what I would came up with
19:05abedradsop, you'll get to soon enough
19:06abedrabah, fabio is back
19:06Scriptorhow soon, end of the talk soon? :)
19:06stuarthallowayScriptor: yes
19:06abedrachouser, thanks!
19:06Scriptorman, he used the exact same slides last time, should've seen it coming
19:06@chouserScriptor: :-)
19:06stuarthallowayif my git forking fu is up to it
19:06ieureOkay, cool, so, what exactly is ClojureScript?
19:07Scriptorieure: a large subset clojure compiled to javascript
19:07ieureOther than TERRIBLY EXCITING.
19:07Scriptor*subset of
19:07ohpauleezieure: It's Clojure on top of JS
19:07ieureHm.
19:07ieureSource? Link?
19:07ohpauleezieure: written in Clojure and ClojureScript
19:07stuartsierrasource coming
19:07stuartsierraafter this talk
19:07daniel123stuartsierra: on github?
19:07stuartsierrayes, sources will be on github after the talk
19:08Scriptorso, when you use the clojurescript compiler, you're actually running the js it's compiled to, which in turn is compiled to tjvm bytecode?
19:08arj_stuartsierra: and documentation I guess :)
19:08stuartsierraWell, we'll get there… ;)
19:08pmbauerExciting, but I fear debugging Clojure-generated JS is going to be equally ... exciting?
19:08stuarthallowaypmbauer writes bugs, nah nah
19:08Scriptorpmbauer: well, considering coffeescript is already pretty successful, I don't think it'd be that big of a problem
19:09ieureAny mention of how agents are handled in an environment with zero parallelism?
19:09stuarthallowayseriously: the Google Closure stuff has some good tools, including a Firebug plugin
19:09stuarthallowaycommunity effort to help leverage that welcome
19:09pmbauerCoffeeScript maintainers allow that is a weakness
19:09stuartsierraI can hear the Google Closure compiler saying in a prim voice, "That (function) was uncalled for."
19:09brehautieure: webworkers are fully parallel where available
19:09daniel123ieure, I think he said earlier that it was a subset.
19:09Scriptorcan it output well-formatted code that's not run through GClosure?
19:09stuarthallowayScriptor: yes
19:09stuartsierraYou can see the JS output before it goes to GClosure.
19:09daniel123ieure, so, not sure what it's 'missing' yet.
19:09abedragrrrr, Jeep comercial makes me angry at Jeep
19:10bmillareso is clojure.org going to be partly written in clojurescript soon? :)
19:10stuartsierraprobably not; it's just HTML after all.
19:10redingerclojure.org isn't exactly an app :)
19:10ohpauleezWhoa, it just set in, as HTML5 apps become the normal cross-platform app, Clojure is a first class citizen to do your implementation with no extra work
19:10redingerohpauleez: you got it
19:10abedraohpauleez, yep
19:10Scriptoroh, also, any leaks on how the reader/parser is written, what libraries are used for them?
19:10ohpauleezway awesome (I just finished an HTML5 game engine for work)
19:10brehautenlive running on the server and browser is going to be great
19:11stuarthallowaysource code is read by clojure's reader
19:11stuartsierraClojureScript only depends on the Google Closure libraries.
19:11bmillareredinger: i just meant, add some cool features where the server would emit some clojurescript
19:11stuarthallowaydata can be read by the new data reader in ClojureScript
19:11Scriptorah, that'd be cool to read through
19:11mabes_my guess is that jquery is closure "advanced mode" safe, correct?
19:11antares_stuarthalloway: is it going to be pushed to github later today?
19:11stuarthallowayand this makes a compelling alternative to JSON
19:11stuarthallowayanares_ yes
19:12lnostdal-laptopmabes_, jquery is tiny
19:12stuartsierramanbes_: jQuery does not work in GClosure advanced mode out of the box, but there are attempts to fix that ongoing by others.
19:12thickeyjquery proper isn't advanced mode compatible.
19:12bmillareso I guess rich has been procrastinating on writing some JS and wrote clojurescript instead? :P
19:12stuartsierrapretty much
19:12mabes_stuartsierra: cool, nice too know.
19:12Scriptorcan't wait to see how they did interop, since js's style is completely different from java's
19:12mabes_s/too/to/
19:12Guest47370<mabes_> stuartsierra: cool, nice to know.
19:13SergeyDYes, it's quite difficult to write JS in advanced mode. I had this experience with Google Closure
19:14stuarthallowaySergeyD: it is easy now
19:14ohpauleezstuarthalloway: :) I'm excited about that
19:14ohpauleezSergeyD: I too just went through that
19:14mdeboardI'm never buying a jeep
19:15mdeboardever
19:15daniel123mdeboard lol
19:15daniel123yess!!!!
19:15bmillareso its like advanced mode JS is like the JS bytecode
19:15lnostdal-laptopweird, i don't see the ads
19:15Bronsanor do i
19:16alandipertlnostdal-laptop: are you here in nyc as well?
19:16lnostdal-laptopnope, i'm here in norway
19:16SergeyDThis can promote Clojure even more. Nice move!
19:16Scriptorbmillare: kinda...but bytecode optimization is different than node tree optimization, I think
19:16stuartsierralnostdal-laptop: Hi! I was in Norway just a month or so ago.
19:16daniel123I'm so excited about seeing the CS compiler innards.
19:17ohpauleezhahaha
19:17ohpauleeztouche Rich
19:17lnostdal-laptopstuarthalloway, cool, the thing in Oslo? .. i missed that
19:17brehautdid rich just 'oh, one more thing' ?
19:17stuartsierralnostdal-laptop: yes, I talked about Clojure there.
19:17devnDo: Read the Closure book.
19:17gertalot_he hasn't said "insanely great" yet, fortunately
19:18Scriptordamn, arity overloading in js...
19:18brehautwhat about 'boom' ?
19:18ohpauleezthis is awesome
19:19parasebait's all there! protocols, deftyes,macros!
19:19devn:)
19:19Scriptorpfft, cross-language macros...
19:20ohpauleezthat was a great design choice
19:20ohpauleezso sound
19:21iceydoes google's closure lib use typed arrays for perf? it would be interesting if clojurescript allowed type hinting to improve performance
19:21parasebajust unbelievable...
19:21stuartsierraJS doesn't have typed arrays yet.
19:21Scriptoricey: gclosure has a full type system, but it's built on top of js so I don't think it really helps performance
19:21devnicey: closure needs annotations for advanced mode compilation, but no, no typed arrays.
19:22ohpauleezOH MY HEAD!!! This means we can use Clojure Client-Server for data formats
19:22ohpauleezYES
19:22lnostdal-laptophmmmm, this is very nice
19:22ohpauleezthat's going to be HUGE
19:22darevayatoms, refs, and agents?
19:22devndarevay: there's been some talk about using gclosure's web workers
19:22stuarthallowaynot to that point of the talk yet, but ...
19:22kovasbwow
19:22stuarthallowayatoms yes
19:22stuarthallowayagents probably
19:22joly_wow
19:23stuarthallowayrefs would need a use case
19:23stuartsierrafirst 'boom'
19:23darevayyep. seems reasonable.
19:23gertalot_:)
19:23iceydamn, that's awesome
19:23bmillareis the . syntax the same?
19:23stuarthallowaybmillare: except where JavaScript has more capability than Java
19:23stuarthallowaythe corner case being (. x foo)
19:24stuarthallowaywhere (in JavaScript) that could mean give me the function foo, or call the function foo
19:24stuarthallowaythis ambiguity is not possible in Java
19:24`fogusScriptor: GClosure's types are mainly for correctness checks
19:24abedraJeep, you're pissing me off man
19:24Scriptor`fogus: right, which is why they won't really help performance
19:24ohpauleezabedra: Don't leave focus on your browser, that's been working for me
19:25abedraohpauleez, i've got that + irc + other channels open right now :)
19:25ohpauleezI just realized this "fixes" Clojure as a script language. Node + ClojureScript
19:26ohpauleezawesome
19:26stuartsierraohpauleez: you're catching on quick :)
19:26@chouserohpauleez: keep watching!
19:26ohpauleez:)
19:26devnohpauleez: yeah, chouser did some work on node :)
19:26redingerIt gets better :)
19:26abedraohpauleez, yep, what chouser said
19:26ohpauleezI can't wait to contribute to this
19:26mabes_dunno why you would want to use node or any JS VM on the server side though.. the JVM is pretty good ;)
19:26Scriptormabes_: so is v8 :)
19:27daniel123stuartsierra is there a todo list in the repo?
19:27abedradaniel123, yes
19:27stuartsierraBut with node, you can write command-line apps that start up faster than the JVM.
19:27daniel123schweet.
19:27mabes_yeah, startup time is huge
19:27lnostdal-laptopV8 is single core; you want multi-core/thread on a server with many people on it .. the client only has 1 user tho
19:27devnthere's also a lot of design discussion in the repo
19:27devnworth reading if you decide to contribute
19:27gertalot_stuartsierra: that might be quite cool for pallet and stevedore
19:28ohpauleezdevn: Thanks for that hint
19:28ahriman53072there is a problem
19:28mdeboardWhat is meant by in-browser eval?
19:28mdeboardCan someone give me example?
19:28SergeyDI think Flash runtime would be very easy after JS is done
19:28stuartsierrawe're not doing a REPL in the browser.
19:28gertalot_great stuff everyone, thanks!
19:29daniel123yess!!!
19:29daniel123lol
19:29devnbut...someone else could do a REPL in the browser...if they wanted to... :)
19:29ahriman53072http://paste.org.ru/?a5p5u9 my code. every attempt to invoke /post with needed args leads to adding record with all values as NIL. Why?
19:29thickeyforking hardcore indeed
19:29scottjhttps://github.com/clojure/clojurescript
19:29ahriman53072where are there NILs from?
19:29iceyI put it on HN here: https://github.com/clojure/clojurescript
19:29ahriman53072*these
19:29iceyderp
19:29Scriptorby the way, how is integration with lein?
19:29daniel123thanks scottj
19:29iceyhttp://news.ycombinator.com/item?id=2787851
19:30ohpauleezScriptor: Good question +1
19:30devnScriptor: it's not there yet. or at least, I didn't make an attempt to use lein while hacking on clojurescript. There is some decent tooling in place to get you up and running though.
19:30redingerDurham!
19:30jdwbellwill Conj be streamed? hint, hint, nudge, nudge....
19:31bmillareis this clojurescript or something else? http://nicknick851120.blogspot.com/?zx=4bc09ef6a1863f28
19:31Scriptordevn: cool, is it still possible to use swank with it?
19:31pbuckleyjdwbell - it would be a miracle if the conj had a working network connection
19:31ohpauleezJust a quick related announcement, I just moved into the CTO position for Tutorspree and we'll be doing clojure work and I'll be contributing on my Friday's work
19:31redingerjdwbell: Not streamed, but we're working out the recording details
19:31stuartsierrabmillare's link is spam
19:31devnScriptor: I've been using inferior-lisp while working on it.
19:31stuarthallowayredinger is your point of contact for joining us on Fridays...
19:31ztellmanI missed a bit of the talk, was there any discussion of how to specify a javascript version of some java built-in (i.e. execute this callback in n milliseconds)
19:31bmillarecrap
19:31bmillaresorry
19:32scgilardihttps://github.com/clojure/clojurescript
19:32bmillarethat is not what I wanted
19:32stuartsierrano worries
19:32bmillarehttp://clojurescript.n01se.net/repl/
19:32abedraalandipert, do you have a body dragging from that camera?
19:32ohpauleezinching forward inch-by-inch is too funny
19:32alandipertpeople of the internet: text legible?
19:32abedrano
19:32stuartsierrabmillare: no, that is an older attempt at the same project by Chris Houser.
19:32ohpauleezcan we zoom it in?
19:32Danny_Collinscan't read it at all
19:32daniel123blurry
19:32ohpauleezNO
19:32bmillareok
19:32devnbmillare: that's chouser's clojurescript
19:32redingerohpauleez: You need some Clojure consulting with that new gig? :)
19:32abedraalan it's not all that bad
19:32maaclblurry and very small
19:32Bronsamaximize the video
19:32Bronsait will be clear
19:33ohpauleezThanks Bronsa
19:33no_mindcant makeout anything of demo on the stream
19:33ieureHaha
19:33Scriptorno_mind: it's a little better if you full-screen it
19:34redingerno_mind: pop out the video and you can enlarge it
19:34scottjdoes it work fine with slime?
19:34freakwitgo back
19:34mabes_it looks like he is using emacs... doesn't that mean he is using slime?
19:34abedrascottj, yes, almost all of us work in that environment
19:34Scriptormabes_: it's inferior-lisp apparently
19:34raekno, he's using inferior-lisp
19:34devnmabes_: he's using inferior-lisp
19:34freakwit(sorry, didn't mean to type that)
19:34mabes_ah
19:34ohpauleezhahaha
19:35raeksee http://dev.clojure.org/display/doc/Getting+Started+with+Emacs
19:35abedrayes, but it has worked fine in slime for me
19:35devnM-x cd PATH_TO_CLOJURESCRIPT_REPO, M-x set-variable inferior-lisp-program "script/repljs"
19:35Scriptorabedra: how do you start up swank?
19:35devnM-x inferior-lisp
19:35maaclthe repl works on my machine :-)
19:35abedraScriptor instructions will show up as well
19:35Scriptorsweet
19:35mdeboardAnyone getting a repl working on Ubuntu (with openJDK)
19:36no_mindWill you guys accept questions from IRC ?
19:36gertalot_repljs is melting my poor old macbook
19:36abedramdeboard, I use ubuntu explicitly
19:36stuartsierrano_mind: maybe at the end
19:36daniel123awesome.
19:36mdeboardabedra: I mean the cljs repl
19:36abedramdeboard, yes, I used Ubuntu the whole time I was working on cljs
19:37devnbmillare: the http://clojurescript.n01se.net/repl/ link you posted earlier now points in the right direction
19:37mdeboardabedra: Ah, ok. Getting an unexpected error. Are you using openjdk or sun
19:37bmillaredevn: thanks
19:37abedramdeboard, sun
19:37abedramdeboard, I don't use the openjdk
19:38mdeboardI see
19:38dsopmdeboard: what error do you get?
19:38mdeboarddsop: Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: sun.org.mozilla.javascript.internal.Context, compiling:(cljs/compiler.clj:919)
19:38kwbeamopenjdk has issues with this:
19:38kwbeamyep, you beat me to it
19:38dsopsame here
19:38abedramdeboard, it must be missing the proper rhino bits
19:38`fogusClojureScript brought to you by Old Spice
19:39no_mindCant access clojurescript wiki at https://github.com/clojure/clojurescript/wiki . Is it up ?
19:39stuartsierrawiki coming soon
19:39Scriptorthe repl relies on rhino, right? Does anything else?
19:39frou100I'm on my 3rd condom ad
19:39mdeboardabedra: Got it, thanks
19:39scottjno ads broguht to you by adblock
19:39abedraProgrammers, look at your cljs, now at js, now back to cljs... Sadly, your js is not cljs but IT COULD BE!
19:39devnhow apropos frou100
19:39`fogus(inc abedra)
19:39devnabedra: haha!
19:39Guest47370⟹ 1
19:40ohpauleezfrou100: and now you know about SAFE JS and SAFE Sex
19:40dsantiagoHow is debugging in a browser going to work here?
19:40dsopmdeboard: does it work?
19:40darevayworks for me ... and since it's on Rhino, it preserves the beloved Java stack traces! ;)
19:40Scriptordsantiago: I guess you'd have to tell it to not minify/optimize the code and find the js error, then trace that back to the clj code
19:40brehautdsantiago: closure apparently has a firebug pluggin, and chrome webkit recently landed a patch to allow compilers to add debugging hooks
19:41@chouserScriptor: no, just the repl
19:41no_mindIf I am working on a clojure web based project. WIll it make sense to use Google closure, keeping migration to clojurescript migration in future ?
19:41alandipertdsantiago: http://code.google.com/closure/compiler/docs/inspector.html maybe
19:41mdeboarddsop: Dunno, I'm trying to install sun-java6-jdk
19:41devndsop: brehaut: It's not there yet, but it's definitely possible. It's absent at the moment.
19:41@chouserISeq is a protocol
19:41abedramdeboard, just add the partner ppa
19:41ohpauleezthat is GORGEOUS code
19:42dsophmpfl
19:42bmillareis clojurescript written in clojurescript + clojure or just clojurescript?
19:42ohpauleezso subtle, simple, and powerful
19:42mdeboardabedra: ya
19:42dsopi don't want to install sun-sdk for that
19:42`fogusno_mind: You are not required to use GClosure for js interop nor migration.
19:42ohpauleezbmillare: Clojure and ClojureScript
19:42Scriptorobligatory nyc sirens
19:42ohpauleezthe core is all ClojureScript
19:42abedraahhhh we know it is NYC
19:42daniel123Is he just sitting out front honking his horn?
19:43lnostdal-laptoplol
19:43bmillareohpauleez: how is it written in clojure if there's no jvm?
19:43devnthey're coming to steal our new secret weapon
19:43redingerIt's just like pairing with stuartsierra.
19:43devnhaha redinger
19:43rimmjob_how good with javascript should i be before using this stuff?
19:43redingersirens in the background
19:43ohpauleezbmillare: Clojure does the compilation piece
19:43bmillareok, got it
19:43ahriman53072÷å ðàçãóí
19:44abedraredinger, yeah, I haven't paired with stuartsierra in a bit, so I forgot about that
19:44mabes_300k -> 40k (6k with compression)!
19:44mabes_thats pretty sweet
19:44ohpauleezwow, 40Kb with compression over the wire for webapps will be awesome
19:44devnYeah, it's really nice.
19:45ohpauleezwow
19:45ohpauleezI still can't get over the reader being on the client side
19:45mabes_I didn't realize how powerful closure was
19:45ohpauleezmabes_: You really have to use Closure Lib and follow some guidelines to get that power
19:45ohpauleezand it's a little painful
19:45dsophmpfl
19:45ahriman53072!!!
19:45gertalotgoodness. my laptop didn't like the 550mb java process that repljs started
19:46`fogusohpauleez: Yeah, that's pretty cool huh? :-)
19:46mabes_ohpauleez: but I guess a big selling point of ClojureScript that only it's compiler needs to know those rules, right?
19:46daniel123stuartsierra, the compiled javascript gets deployed?
19:46SergeyDmabes_: right
19:46mdeboardOk so uninstalling openjdk and replacing with sun jdk = win
19:46redingerBecause one build tool is never enough for us
19:46ohpauleez`fogus: for sure!
19:46abedramdeboard, you don't have to uninstall open
19:46abedraupdate-java-alternatives
19:46jdwbellbut an advantage of something like a large 'static' library, something like JQuery on Google's CDN, is the caching.
19:46hvmdeboard: :( I don't want to do that
19:47ohpauleezmabes_: most definitely
19:47Scriptorgah, have to head out, but this has been really good, can't wait to play with it
19:47mdeboardabedra: Well, I don't do anything with openjdk in any way, Clj is literally the only reason I even know it exists
19:47dsantiagoWill it be possible to write .cljs files and include those as parts of clojure programs to share code?
19:47abedramdeboard, you can switch on command
19:47ohpauleezScriptor: later
19:47stuartsierrajdwbell: you can still use cached copies of things like jQuery
19:47SergeyDjdwbell: yes, that is why Google Closure and now ClojureScript is more advatageous for big apps
19:47daniel123schweeet!
19:48ahriman53072åáò
19:48SergeyDjdwbell: I mean your own custom large codebase
19:48dsophm okay looks like i have to wait for a openjdk compatible version
19:48devnahriman53072: Rich is showing off the demo app.
19:49ahriman53072devn where
19:50rimmjob_what was google using this for?
19:50devnahriman53072: http://www.ustream.tv/channel-popup/clojurenyc
19:50gertalotwhat are the memory requirements for a clojurescript repl? I can't have -Xmx2G, that explodes my laptop.
19:50mdeboardwow
19:50mdeboardyeah
19:50devnrimmjob_: their production apps.
19:50mdeboardthe repl just vomited everywhere
19:50ssiderisso clojurescript is the "something new" that Rich was going to talk about (sorry, just started watching the stream)
19:50mdeboardWHY ISN'T THIS ALPHA RELEASE RUNNING FLAWLESSLY ON MY MACHINE?!?!?!
19:50gertalothaha
19:51devnssideris: that's correct.
19:51mdeboardSomeone please show Mr. Hickey what a buffer is :(
19:51ssiderisdevn: thanks
19:51ahriman53072omg
19:51mdeboardin emacs
19:51kovasbthis is so awesome
19:52stuartsierraWiki is public: https://github.com/clojure/clojurescript/wiki
19:52scottj(add-hook 'clojure-mode-hook 'toggle-truncate-line)
19:52no_mindWhere can I access the demo application code ?
19:52stuartsierraDemo code is in the samples/ dir of the ClojureScript Git repo.
19:52`fogusLOL. Rich doing a code review
19:53redingerI still remember writing code thinking "Oh wait, Rich is going to see this..."
19:53ohpauleezyes! I see lazy-seq
19:53stuartsierraredinger: try hacking the implementation of ClojureScript `fn`
19:54devnstuarthalloway: haha
19:54redingerWe'll work on that routine for Clojure/conj
19:54ohpauleezchouser: Ok, I'm getting ready now! :)
19:54brehaut`fogus: the link you just tweeted is broken
19:54daniel123haha
19:54abedrago figure, stuarthalloway is now the center of the universe
19:54abedra:)
19:54bmillarelol
19:54ohpauleezabedra: haha
19:55stuartsierraabedra: "Like pouring gasoline on a flame."
19:55ahriman53072uhuhuh
19:55abedraI DON'T WANT CHICKENS, I WANT CLOJURESCRIPT
19:55devnbahaha
19:55pmbauerIs there a test suite someplace to verify clojure (JVM) and ClojureScript fidelity where it makes sense? (see cut-n-pasted parts)
19:55stuartsierraThere are some tests, yes.
19:55bmillarewoot startup time
19:56stuartsierraNot aiming for full Clojure compatibility yet.
19:56hvI fixed that on unix!
19:56ahriman53072is it possible to do something like (map #(str "||" %1 "||" %2)(mapcat vals [{:b 1},{:b2 2}]))) ??
19:56no_mindcan I use closure templates in clojurescript or is it yet to be ported ?
19:56devnpmbauer: You'll find a lot of simple tests of all the important bits at the bottom of core.cljs
19:56hv(startup time, similar to nailgun yet better)
19:56daniel123fast.
19:56devnno_mind: I smell an opportunity. ;)
19:56pmbauerstuartsierra: Thanks ... use case would be sharing, say, validation code browser/server side.
19:56raek*clapclapclap*
19:56ohpauleezYES!
19:56ohpauleezAmazing work team
19:57no_minddevn: I wont mind working on porting closure temlates. If no one else is working on it
19:57technomancyscottj: uh oh; that doesn't sound good =\
19:57daniel123abedra are you using this in your new book?
19:57devnno_mind: I worked on it with Luke Vanderhart awhile back, but we went at it from the Java side. I'd be interested in contributing on that, though, as I'm guessing Luke V. would as well.
19:57abedradaniel123, it may make an appearance :)
19:58ohpauleezI'm already emailing O'Reilly for "ClojureScript: Client-side Clojure"
19:58ohpauleezhaha
19:58redingerstuarthalloway already tweeted it would show up abedra
19:58maaclHas anyone tried the hello demo? Isn't it suppose to pop an alert box?
19:58pmbauerdevn: thanks...couldn't find the test suite
19:58abedraredinger, ok well there you go :)
19:58devn(test-stuff) is the ticket :)
19:58redingerWhether you like it or not :)
19:58stuarthallowayabedra: I am willing to do the work if necessary :-)
19:58daniel123abedra, do you recommend any other literature in the meantime? I have Stu's book, fogus & chouser's, Amit's book...
19:59no_minddevn: sure. Where do I start from ?
19:59mdeboardI bought Practical Clojure yesterday when it was $10
19:59stuartsierraI think the "hello" demo is missing some loads from its HTML.
19:59mdeboardIt killed my dog :-\
19:59ahriman53072sorry
19:59ahriman53072is it possible to do something like (map #(str "||" %1 "||" %2)(mapcat vals [{:b 1},{:b2 2}]))) ??
19:59devnhahaha, this explanation will be fun
19:59stuartsierraThe "hello" demo should work if you recompile it with cljsc.
19:59pmbauerdevn: re:test-stuff ... yea, surprised tests ended up all in one function ...
19:59ohpauleezhaha
19:59Bronsaahahah
19:59devnwhere's my klingon destroyer UTF-8 char?
19:59abedradaniel123, don't forget practical clojure
19:59daniel123k
20:00stuartsierrapmbauer: that's temporary
20:00stuartsierraThanks, abedra. :)
20:00pmbauerstu: ah
20:00ohpauleezDoes anyone see this as a huge statement that this talk JUST happened to be when Java Language Summit is going on :)
20:00abedrastuarthalloway, i wouldn't mind if you did it, there's still a bunch left to tackle
20:00clojurebotIt's greek to me.
20:00maaclstuarthalloway: I just recompiled it and no alert box
20:01stuartsierraI meant in advanced mode.
20:01devnohpauleez: it's conference season, I wouldn't read too much into it. :)
20:01stuarthallowaywe should split the simple/advanced hello into separate html target fiels
20:01ohpauleezdevn: true true
20:01technomancyohpauleez: yeah, the absence from the JVMLS seemed pretty surprising
20:01hvahriman53072: as you may have felt, there is an important show going on somewhere, and most people here are watching it.
20:01daniel123Can you repeat the questions?
20:01no_mindSomeone post clojure script in slashdot
20:01alandipertquestion was TCO
20:01devnthanks alandipert
20:01brehautahriman53072: how about you ask what you want to solve, rather than providing a nonsense solution?
20:02mabes_what is js/node's equivalent of maven? i.e. how do you declare and pull in your deps?
20:02devnmabes_: npm?
20:02Scorchinmabes_: npm
20:02ohpauleeznpm
20:02mabes_:) thanks
20:02stuartsierraGoogle Closure has a dependency mechanism, though it does not handle downloading external dependencies.
20:02maaclstuartsierra: I just recompiled it and no alert box
20:02abedraok IRC folks, get your questions ready
20:03stuartsierramaacl: sorry, I think the HTML file is missing some pieces.
20:03stuartsierraThe "Hello" demo got dropped while everyone was working on Twitterbuzz.
20:03licoressethis is awesome!!!
20:03alandipertslides will be available
20:03david`I guess there's no Java interop in Clojurescript?
20:03maaclstuartsierra: check
20:03mdeboardgod these NYC guys are time-hogs :(
20:03stuartsierradavid`: no :)
20:03ScorchinQUESTIONS FROM THE INTERNET!!!
20:03@chouserdavid`: no, but there's javascript interop
20:03david`very nice
20:04naeuwhich refs are supported?
20:04stuartsierraonly Atom so far.
20:04stuartsierraMaybe Agents later.
20:04mjg123chouser: it's for any js or do you have to wrap?
20:04stuartsierraAny JS!
20:04hvquestion: can (when) cljs be able to be embedded inside a clojure web app?
20:04devnIf anyone here is interested in what you can do with google's closure libraries, you can look in clojurescript/closure/library/closure/goog/demos, and open index.html
20:04l0st3ddo we still get agents?
20:04no_mindIs there a TODO list for clojurescript ?
20:04stuarthallowaymaacl: did you open hello-dev.html?
20:04ScorchinQuestoin from the Internet: What's the interop with things like jQuery, YUI and underscore.js?
20:04stuartsierrahv: You can't run the ClojureScript in the browser.
20:04stuarthallowayJust tried it here and it works
20:04mdeboarddescription files
20:05bmillarewhat parts of clojure language won't work well even in the future in clojure script?
20:05maaclstuartsierra: nope - silly me :-)
20:05gfodorquestion from the interwebs: how feasible to hoist the compiler into the browser? will it be possible to easily write and compile clojure code from within a browser-based editor?
20:05dsantiagoQuestion: Is any of this work useful for putting back into Clojure as part of CinC?
20:05devnno_mind: yes, devnotes/todo.org
20:05ohpauleezThis sounds like a "tooling" and "ecosystem" problem (technomancy :) )
20:05hvstuarthalloway: well, is it like cljs -> google closure -> js -> web app -> client ?
20:05mdeboardQuestion: What is the rationale of excluding (in-browser) eval?
20:05raekdsantiago++
20:05hvoops!
20:05mdeboard(inc dsantiago(
20:05lnostdal-laptopQuestion: Does this mean ClojureInClojure is next? ...or at least closer, perhaps based on the experience implementing this?
20:05stuarthallowaydevn: those dev notes may not be up to date -- ask first if something doesn't make sense
20:05mdeboard(inc dsantiago)
20:05Guest47370⟹ 1
20:06hvstuartsierra: well, is it like cljs -> google closure -> js -> web app -> client ?
20:06amalloymdeboard: you couldn't use the whole-program optimizations with eval, i think
20:06daniel123 <dsantiago> Question: Is any of this work useful for putting back into Clojure as part of CinC?
20:06`fogusmdeboard; Good question. Hopefully stuarthalloway picks it. :-)
20:06ahriman53072^(
20:06frou100QUESTION: Has there been any anecdotal performance testing on iPhone/Android?
20:06stuartsierranot yet
20:06RaynesQuestion: How long has this been being done on the down low? I've seen very few awesome secrets like this kept well.
20:06stuarthallowayRaynes: as long as it takes to build something in a powerful language. Check the git history
20:06mdeboardcrystal meth for javascript
20:06RaynesEspecially given the number of people.
20:06licoresse:-)
20:07daniel123lol
20:07devncrystal math, cooking up a batch of derivatives and inverse functions to get your fix
20:07ohpauleezPlease take frou100's question
20:07redingerRaynes: All the contributors were threatened with death if they leaked info
20:07abedrawhat about the bacon of javascript
20:07Raynesredinger: I bet. ;)
20:07mjg123frou100++
20:07daniel123core.logic
20:07daniel123?
20:07david`can I come to relevance on Friday and try to add clojurescript support to rails 3.1?
20:07stuarthallowaydaniel123: I like your question
20:07thickeyis enlive ported yet?
20:07mabes_so for clarification... if you don't want to go through the work of making a JS lib closure compliant (e.g. a JS graphing lib) can you still use and forgo the benefits?
20:07redingerI think it was in dev for 6 weeks, right?
20:07stuartsierrafrou100: We haven't tested on mobile platforms yet, but it's all just JS, so whatever works there.
20:07`fogusdaniel123: I see no reason why core.logic will not work
20:08ohpauleezthanks david!
20:08frou100alright - thanks
20:08devnthere's a lot of optimization in core.logic
20:08redingerAtlas?
20:08daniel123Thanks stuarthalloway.
20:08redingercemerick: :)
20:09no_minddevn: cant figure out the url for devnotes/todo.org
20:09kriyative@stuarthalloway How long has ClojureScript been in development?
20:09devnno_mind: it's in the clojurescript repo
20:09redingerno_mind: https://github.com/clojure/clojurescript/blob/master/devnotes/todo.org
20:09gfodorsorry to repost in case my q was missed :)
20:09gfodorquestion from the interwebs: how feasible to hoist the compiler into the browser? will it be possible to easily write and compile clojure code from within a browser-based editor
20:09devnredinger: thanks :)
20:09gfodor(sorry if i missed this jumped into the talk late)
20:09stuarthallowaykriyative: hammock time or coding time?
20:09kriyative@stuarthalloway yes.
20:09kriyative@stuarthalloway I mean, both.
20:10cemerickredinger: :-) I leaned pretty heavily on lots of libs. We'll see what a cljs impl of the atlas frontend would look like soon, hopefully.
20:10ahriman53072^(
20:10bmillareholy crap thats fast 3months
20:10kriyative@stuarthalloway very cool, thanks.
20:11gfodori'm on it! :)
20:11ohpauleezhaha
20:11hvstuarthalloway: I want to invoke (embed) cljs in the clj, not put the cljs compiler in the browser.
20:12daniel123"do you get your knowledge from your hair? if so, please slow down because we do not all have nice hair."
20:12ohpauleezI'm curious about moving forward, what kind of unified ecosystem are we shooting for
20:12kovasbquestion: whats the debugging story?
20:12ohpauleezas a community
20:12no_mindah! I was looking for devnotes in jira
20:12ohpauleezie: unify on node? unify with current tools (lein?)
20:12devnno_mind: no worries.
20:12hvlike (to-html [:html [:head [:script (cljs (def a 10)]]] [:body ...]])
20:12licoressekovasb; +++
20:12pmbauerWill design docs for ClojureScript (going forward) live in Jira?
20:13pmbauer(discussions, etc)
20:13stuarthallowaypmbauer: in all probability
20:13stuarthallowaywe have been very busy and that decision was not on the path for delivering tonight
20:13stuarthallowayanybody running the twitterbuzz thing on your own?
20:13l0st3dis there an agents implementation that uses timeouts in the browser?
20:13ohpauleezhaha
20:14ohpauleezyes
20:14ohpauleezexactly
20:14ohpauleezand tools for both places
20:14bmillarewhat clojure language features won't ever be in clojurescript?
20:14stuartsierrabmillare: Java interop. ;)
20:14bmillarebesides javainterop :)
20:14brehautbmillare: that implies you expect javascript etc to not change
20:14ohpauleezhaha
20:14ohpauleeztouche
20:14pmbauerZing!
20:15ohpauleezok
20:15ohpauleezI'm satisfied with that
20:15daniel123Repeat the q, please.
20:15devn^^
20:15alandipertquestion was about unifying clojure/clojurescript core
20:15hvmerge clojure.core with clojure.org
20:15hv?
20:16hvsorry, I thought that was the question
20:16naeuwill we therefore see more utility fns where we might typically have been encouraged to use direct java methods - i.e. (.endsWith "foo" "o")
20:16alandiperthv: the 'core' library in both languages is similar but not identical
20:16kephaleW.R.T unifying clojure/clojurescript, is it plausible to have shared memory between a server app in clojure and a client in clojurescript?
20:16daniel123lol
20:16RaynesThey should have cut his hair out of the stream. I haven't heard a word he said, given my focus has been entirely on his beautiful hair.
20:16stuartsierrakephale: umm, no.
20:16ScorchinRaynes: :D
20:17stuarthallowaykephale: you have to be kidding
20:17ohpauleezhaha
20:17frou100naeu: good question
20:17daniel123I know Raynes. I think it's where he gets his knowledge.
20:17cemerickRaynes: Wow.
20:17cemerick:-D
20:17devnhahaha
20:17Scorchinhahaha
20:17abedrahow probable ?
20:17maaclthat's just sick
20:18david`since clojurescript has js interop, does the clojurescript coe over in place?
20:18hvmaybe he wants easily shared state?
20:18lnostdal-laptopQuestion: Might already have been mentioned this, but does stuff like add-watch etc. work?
20:18rimmjob_19:09 <gfodor> question from the interwebs: how feasible to hoist the compiler into the browser? will it be possible to easily write and compile clojure code from within a browser-based editor
20:18rimmjob_oops
20:18ohpauleezThank you so much Rich, and the whole team that worked on this
20:18ohpauleezamazing stuff
20:18daniel123thanks everybody!!! stuarthalloway, ustream worked out great.
20:18mjg123indeed - thanks all
20:18stuartsierraThanks everyone for listening.
20:18maaclhickey for president
20:18david`that was great
20:18gfodoryes this awesome! thanks so much
20:18alandipertthanks everybody. and for sticking with us through the condom ads
20:18jdwbellawesome! thanks for streaming this!
20:18devnrimmjob_: I gotta say man, your nick, so hard to tell if you're a troll...
20:18mudgethank you
20:18devnalandipert: Oh, I was sticking through it alright.
20:18stuarthallowayheading to the bar ...
20:18bmillaregreat job to all who worked on the project
20:18alandipertdevn: bazinga
20:19stuarthallowaybye y'all
20:19pbuckleyWhat? They're going out for dinner and drinks?!? And we're not going to be treated to another hour of beautiful streaming shots of hair?
20:19bmillarestuarthalloway: have a good time
20:19lnostdal-laptopcool stuff, good night .. have fun at the pub .. heh :)
20:19devnyou new york kids have fun.
20:19Scorchinnice job guys!
20:19ohpauleezsee ya guys
20:19naeuright, bedtime for me - enjoy the bar everyone
20:19devnciao
20:19scottjfor calling a javascript method in clojurescript do you use .foo?
20:19alandiperttime to drink enough to forget javascript's bad parts
20:19pmbauerBig congrats to clojure/core
20:19ahriman53072say please how can i iterate through sequence of maps.
20:19amalloythanks for the broadcast guys, it was very nice
20:19devnalandipert: impossible.
20:19stuartsierraThank you all for listening!
20:19`fogusAwesome that the video was crystal clear.
20:19stuartsierraCheck out the GitHub repo, and continue the discussions on the Clojure mailing list.
20:20hvI missed the beginning. does ustream store it?
20:20frou100cheers stuartsierra
20:20pbuckleyhv I don't think so, I think it was live only
20:20Rayneshv: A video is planned to be made available later.
20:20neotykKudos to clojure/core and big thanks for streaming it
20:20abedrahv it was recorded
20:20hvthanks
20:21abedrahv, it will be available later
20:22tbatchelligreat job putting this online guys!
20:23stuartsierrathanks!
20:23stuartsierraGood night all!
20:28maaclI get ReferenceError: goog is not defined when trying to run the node examples
20:30the-kennyClojurescript fits perfectly into my current hobby project :) Thanks for this great work!
20:31devnthe-kenny: link me?
20:32the-kennydevn: I call it netwars, it's on my github account (https://github.com/the-kenny/netwars-clj). It's a clone of a turn-based strategy game for the Gameboy Advance / Nintendo DS (Advance Wars)
20:33the-kennydevn: Sorry, I have to sleep now. It's 2:30AM here :/ Good night!
20:33Bronsayeah me too
20:34Bronsagood night everybody
20:34devnthe-kenny: night!
20:34maaclCan anyone compile the node samples?
20:40maaclAnyone?
20:40clojurebotPlease do not ask if anyone uses, knows, is good with, can help you with <some program or library>. Instead, ask your real question and someone will answer if they can help.
20:42kriyativexk
20:56@chousermaacl: is it not working for you?
20:56maaclchouser: got the hellonode working - but nodels compiles but does nothing
20:57chousermaacl: are you running it as shown in the quickstart wiki?
20:59maaclnope - was just trying same approach as for hellonode - will try the wiki way now
21:00chouserwell, if it compiled, you may only need to add a directory to the command-line args
21:01maaclls
21:02brehautmaacl: Clojurescript.iml devnotes readme.txt src bin epl-v10.html samples closure lib script
21:03Scriptorwill clojurescript and clojure continue to share the same irc channel, or will there be a split sometime soon?
21:04redingerScriptor: Current plan is to continue using Clojure channel
21:07maaclchouser: yeah - if I add the main src dir it works
21:07chousercool!
21:08maaclchouser: why does't what it need end up in the out dir?
21:08dsophmm getting it work with openjdk doesn't seem to be a 2min fix
21:13mattmitchellcould someone recommend how i could recursively modify key values in a map?
21:13chouserdsop: the compiler or the repl?
21:14Raynestechnomancy: Ping.
21:14amalloymattmitchell: uhhmmmm, sounds like reduce or iterate but you haven't been very specific
21:14dsopchouser: the repl at the moment
21:14dsopchouser: and the compiler. at least require cljs.compiler fails
21:15gfodorso clojurescript doesn't support runtime compilation, but does it support runtime macro expansion?
21:15mattmitchellamalloy: ok something like: {:address {:line-1 "xxx" :city-name "xxx"}} becomes {:address {:line_1 "xxx" :city_name "xxx}}
21:15Scriptorgfodor: seems so
21:15technomancyRaynes: about to head out, but shoot
21:15gfodorneat
21:15chouserdsop: openjdk doesn't include rhino, does it? That'll be a showstopper for the repl.
21:15mattmitchellamalloy: just changing hyphens to underscores
21:16chousergfodor: even clojure doesn't support runtime macro expansion
21:16Raynestechnomancy: Does leiningen do anything if a dependency is listed without a version: :dependencies [[foo]]
21:16dsopchouser: well you can install it, but it's a different namesapce then
21:16chousergfodor: so no, clojurescript doesn't support that
21:16RaynesCake defaults to whatever is latest, and I'm trying to reconcile marginalia's output.
21:16mattmitchellamalloy: but there are many maps, all with varying depths/keys
21:16chouserdsop: ah
21:16gfodorthx chouser
21:17technomancyRaynes: no, leiningen doesn't encourage "just give me whatever" versions
21:17dsopchouser: sun.org.mozilla.. is gone obviously in that case, so I try to move it to org.mozilla, but at the moment I get stuck as (:global repl-env) implements a ExternalScriptable from the sun namespace and I have to fix that
21:17dsopto use the mozilla rhino namespace
21:17dsopinstead of the sun one
21:17Raynestechnomancy: Thanks.
21:17technomancyI mean, you can specify ranges if that's what you want, but it has to be explicit
21:17amalloymattmitchell: sounds like a job for clojure.walk, i guess
21:17Raynestechnomancy: Well, I certainly wasn't implying that it was a good idea. ;)
21:17mattmitchellamalloy: ok thanks
21:17amalloyyou could implement it by hand without too much work, i think
21:18technomancyRaynes: I blame the rubyists
21:18RaynesI blame television.
21:18technomancythey are still discovering the perils of open-ended version ranges
21:19chouserdsop: the compiler will be easier to fix, and probably necessary anyway for the repl
21:20dsopchouser: I don't think it's taht easy. it's the interaction between javax.script.ScriptEngineManager and the mozilla rhino stuff
21:20dsopbut I have to dig deeper into the javadocs before I can say what exactly causes it.
21:21amalloy&((fn dash-keys [m] (if-not (map? m) m, (into {} (for [[k v] m] {(keyword (clojure.string/replace (name k) #"-" "_")) (dash-keys v)})))) {:test-me {:data {:val-here 1}}}) ;; mattmitchell
21:21lazybot⇒ {:test_me {:data {:val_here 1}}}
21:21Scriptorgfodor: would you like to do that PHP...in lisp?
21:21amalloyhaha Scriptor, way to jump on that opportunity
21:21gfodorI wish i could
21:22gfodorare you the guy who wrote that php lisp thing?
21:22Scriptoryep
21:22gfodornice :) that looked awesome
21:22mattmitchellamalloy: wow awesome! i'll check it out :)
21:22gfodorsadly, I'd have a hard time getting the powers that be to agree to it
21:22gfodori couldn't even get clojure allowed in our JVM environment
21:23Scriptoramalloy: must convert moar
21:23dsopScriptor: which one?
21:24Scriptorgfodor: yea, I know what you mean. Everybody on the project would still have to learn Pharen, though you could try the tactic that's suggested with Clojure of starting by using it for testing firs
21:24Scriptordsop: it's not really clojure, but kinda close, http://scriptor.github.com/pharen/
21:25ScriptorI've taken a lot of ideas from clojure though, so a lot of looking at its source :)
21:25gfodoryeah, not gonna happen. we have a culture of basically PHP or die
21:25gfodorwhich is fine for certain things but not others
21:25Raynesgfodor: Mutiny. Take over the company. Conquer!
21:25gfodorhelps spread code around, but if you want to do something hard, good luck!
21:25ScriptorI'll help :p
21:26dsopScriptor: ah quite nice, but probably not very suitable in bigger environments with other devs working in non-lisp mode on the php sources
21:27Scriptorexactly, but then again when it comes to cross-language work coffeescript has done nicely
21:27Scriptorand now there's cljs!
21:27dsopif i would just get it to work :)
21:27gfodoryes, I am overcome with guilt thinking I might have to break up with coffeescript
21:28Scriptorhmm, very different coding styles, js was partially meant to be somewhat functional anyway
21:28Scriptorso going all the way would be nice
21:29gfodoryou can't beat client/server parity
21:29gfodorcoffee you get node of course but having the jvm is the elephant in the room
21:29amalloythe jvm is in fact an actual elephant
21:29gfodoryup
21:29pmbauerIt doesn't look like any of the clojure/core devs have tried ClojureScript on windows
21:29Scriptorelephants have a high top speed, so that's an accurate analogy
21:30pmbauergetting a Pattern error when executing (re-pattern java.io.File/separator) on win
21:30pmbauerseparator = "\\" on windows ... not a valid regex
21:31pmbauercljs/compiler.clj:1096
21:31amalloypmbauer: (re-pattern (java.util.regex.Pattern/quote (java.io.File/separator))) would work
21:32amalloy&(re-pattern (java.util.regex.Pattern/quote (java.io.File/separator))) would work
21:32lazybot⇒ #"\Q/\E"
21:32pmbaueramalloy: indeed ... fixed
21:32Scriptortrying to run the bootstrap script on windows under mingw32, it says it can't find clojure/compiler/compiler.jar
21:32pmbauer...and thanks
21:32Scriptoroh, nvm
21:33Scriptorunzip command not found -.-
21:37pmbauerHm ... running into more path issues with the generated .js
21:38pmbauer...will have to try again when I get back to my linux box
21:38pmbauer...definitely not portable yet
21:48pmbauerDoes anyone know how to file bug reports/patches for ClojureScript?
21:51redingerpmbauer: For now, please post the bug report to the Clojure mailing list. Our reporting system will be in place soon.
21:51pmbauerOkay
21:52pmbauerShould I post patches there as well?
21:52pmbauer(signed CA)
21:54seancorfield_will there be a clojurescript mailing list? or do you expect both implementations to be served by one list?
21:55redingerpmbauer: I don't have a good answer yet, unfortunately.
21:56redingerseancorfield_: Currently we're planning on a single mailing list
21:57redingerpmbauer: I don't see us taking patches prior to Friday.
21:57redingerHopefully Friday we'll have something setup for that
21:57seancorfield_cool, thanx redinger!!
22:03ahriman53072i have seq of maps with counters like {:googleCount 10 :dz 20} and so on. I need to form HTML page with table with this data like: <tr><td style="...style1...">:googleCount</td><td style="...style2,..">:dz</td></tr>. How can i make this?
22:09buddywilliamsgood evening
22:09buddywilliamsI am wondering how you eval a form that's quoted?
22:10buddywilliamslet me pull together a quick example
22:10buddywilliams(apply func (first lst))
22:11buddywilliamsgets me a java.lang.Integer cannot be cast to clojure.lang.Ifn
22:11buddywilliamsexception
22:11buddywilliamsI would like something like (quote (first lst))
22:13buddywilliamsmaybe everyone is sleeping at this hour?
22:18kephale,(apply (fn [x] x) (first (list 1 2)))
22:18clojurebotjava.lang.IllegalArgumentException: Don't know how to create ISeq from: java.lang.Integer
22:18kephale,((fn [x] x) (first (list 1 2)))
22:18clojurebot1
22:49amalloyhmmm, having trouble with bootstrapping. (require 'cljs.compiler) fails with CompilerException java.lang.RuntimeException: java.lang.ClassNotFoundException: sun.org.mozilla.javascript.internal.Context, compiling:(cljs/compiler.clj:919). i'll look into it shortly, but has anyone else had this problem?
23:12technomancyI wonder if the moratorium on single-segment namespaces will be carried over into clojurescript out of habit.
23:13chouseramalloy: are you sure you're using sun jvm not openjdk or something else?
23:14amalloychouser: not at all. i'm certain i'm using openjdk
23:15amalloyi don't see anywhere in the wiki that it says i need sun; i'm happy to take your word for it but it seems like it should be documented
23:15chouseramalloy: ah, yeah, that won't work. yet, anyway.
23:17amalloytechnomancy: habit? it's critical for those folks who want to write their app once and run it on clr/jvm/js!
23:18technomancyamalloy: write once, run anywhere except openjdk?
23:19dsantiagoSeems we're a long way from that being possible for non-trivial programs.
23:19technomancydsantiago: I think amalloy is joking
23:19amalloyi assume a C backend is just days away
23:19technomancydsantiago: rich has explicitly stated that's a non-goal.
23:19dsantiagotechnomancy: I know, but I did not pick up a malloy's sarcasm.
23:20technomancyhe's certainly a sly one
23:22dsantiagoIt wouldn't be unreasonable to hope for that in Clojure one day, given how far other languages have gone on that path either.
23:22technomancythat sounds like a stretch. JS doesn't even have integers.
23:22chouseramalloy: updated the quickstart wiki, thanks.
23:23dsantiagoWell, I'm still not used to JS being part of this world.
23:23technomancyI've toyed with the idea of an elisp port
23:23dsantiagoJVM/CLR is not so crazy.
23:23chousertechnomancy: easier now that before!
23:24technomancychouser: yeah, I've been putting it off because I didn't want to be the first one
23:24amalloyon a crazy scale from 1 to 5, i give jvm/clr a 3
23:26hvhow should I turn munged names like class_QMARK_ back to class? ?
23:27technomancyok, brainstorming time, if you don't mind. notable lowly minions from fiction. go.
23:27technomancyall i've got so far is oompa lompas and the peons from Warcraft.
23:28technomancymaybe drinnols, but that's a stretch.
23:28dsantiagoewoks
23:29technomancyewoks don't really serve an overlord; I'm not sure they'd count as minions as they're self-ruled.
23:29Pentengoblins in lots of fantasy settings
23:29technomancyexcept for that part with C3PO
23:29dsantiagoThey don't until people land and tell them to build traps and stuff.
23:30technomancyalso, lucasfilm is trigger-happy with the trademark C&Ds; see droid.
23:31hvwhat are you naming?
23:31technomancyhv: http://p.hagelb.org/minions.clj.html
23:31technomancywork queueing in under 100 loc
23:32technomancyit'll probably grow to 150 once I add timeouts and pooling though.
23:33dsantiagoborg?
23:36technomancyhttps://github.com/orionz/minion <= already a very similar ruby lib
23:38hvit is more like a wisp than a peon
23:39thorstadt_golem?
23:40stuarthallowayEvening all...
23:42Scriptorevening stuarthalloway
23:50technomancygolem's not bad
23:51hugod oliver twist
23:52technomancybut "die roboter" would allow me to quote German in the readme: http://www.vinylsearcher.com/largeImages/894072.jpg
23:54amalloytechnomancy: nanites aren't *exactly* minions, but...
23:54dsantiagoBut, libraries with first and last names is a trend you've started.
23:54technomancydsantiago: well, due to the single-segment namespace moratorium.
23:55technomancyamalloy: too good to remain unclaimed, unfortunately: http://www.rubyinside.com/nanite-self-assembling-cluster-of-ruby-daemons-1245.html
23:56amalloytechnomancy: i have good news: ruby code is namespaced differently than clojure code
23:56technomancyamalloy: heh; true. but from a fictional angle it's a stretch.
23:56amalloyyes
23:58amalloytechnomancy: honeybees, except you want something with a proper name