2011-07-20
| 00:00 | dnolen_ | so far it seems like a pretty even split, but I agree, these points should probably be made in the tutorial. |
| 00:01 | amalloy | dnolen_: yes, i see. if the analogy to #s had been drawn, i wouldn't really object |
| 00:03 | DeusExPikachu | so is geto defined elsewhere? the naming seems generic although what it does seems specific |
| 00:03 | dnolen_ | 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:03 | dnolen_ | like rhickey's persistent data structures graphics, I'd like to make the same explaining exactly what happens in a core.logic program. |
| 00:04 | dnolen_ | it's actually really freaking cool. |
| 00:05 | DeusExPikachu | dnolen_, 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:05 | dnolen_ | DeusExPikachu: it's not defined elsewhere, it's called geto because it's somewhat similar to get in Clojure. |
| 00:08 | DeusExPikachu | I like the use of wild cards and list destructuring to act like familiar first, rest recursion we see in functional programming |
| 00:08 | DeusExPikachu | for the definition of geto |
| 00:09 | DeusExPikachu | I wonder if that analogy should be explicit in the tutorial |
| 00:09 | dnolen_ | DeusExPikachu: amalloy: technomancy: all good feedback. I'll direct ambrose to this chat. |
| 00:12 | DeusExPikachu | I think the author's description of what the function is supposed to accomplish would go a long way |
| 00:14 | DeusExPikachu | so who's going to be here 6:45 pm EST Wed? |
| 00:15 | dnolen_ | 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:15 | dnolen_ | DeusExPikachu: me. |
| 00:16 | brehaut | what is EST as UTC? |
| 00:16 | brehaut | -4? |
| 00:16 | scottj_ | 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:19 | DeusExPikachu | what's cinc? |
| 00:19 | icey | DeusExPikachu: clojure in clojure |
| 00:20 | amalloy | brehaut: starts in 18 hours |
| 00:20 | brehaut | amalloy: thanks :) |
| 00:20 | amalloy | 18:25 i guess |
| 00:20 | brehaut | 10am new zealand time; thats achievable |
| 00:21 | DeusExPikachu | my roomate is always watching livestreams about starcraft, it will be nice for me to do it on something I enjoy for a change |
| 00:22 | DeusExPikachu | for future recommendations for streaming services, justin.tv seems to be a good host, I many livestreamers that switched for various reasons |
| 00:24 | cemerick | DeusExPikachu: where's "here"? |
| 00:25 | DeusExPikachu | cemerick, #clojure |
| 00:34 | kumarshantanu | Is this still a rumor that the talk is about CinC? |
| 00:39 | amalloy | so 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:41 | amalloy | this 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:46 | technomancy | amalloy: reify wil also fail silently if you give it a fully qualified symbol as a local |
| 00:47 | amalloy | technomancy: not as a local, but as a function arg, i hope you mean? as a local would be extra-bizarre |
| 00:47 | technomancy | hm; you take local to mean let-bound only? |
| 00:47 | amalloy | technomancy: no, i don't. but local *includes* let-bound only |
| 00:48 | technomancy | oh, gotcha. yeah, I mean on parameter lists |
| 00:48 | amalloy | &(.count (reify clojure.lang.Counted (count [user/this] 1))) |
| 00:48 | lazybot | ⇒ 1 |
| 00:49 | amalloy | &(.keySet (reify java.util.Map (keySet [user/this] user/this))) |
| 00:49 | lazybot | java.lang.Exception: No such var: user/this |
| 00:49 | amalloy | technomancy: nah, my example just sucked |
| 00:50 | technomancy | aha |
| 00:50 | technomancy | http://dev.clojure.org/jira/browse/CLJ-348 |
| 00:51 | technomancy | not related except it may indicate that it's possibly intentional that reify doesn't stop you from doing stupid things I guess |
| 00:52 | amalloy | &(.size (reify Map (size [this] 0), Counted (count [this] 0), Map (keySet [this] nil))) |
| 00:52 | lazybot | java.lang.Exception: Unable to resolve symbol: Counted in this context |
| 00:52 | amalloy | &(.size (reify java.util.Map (size [this] 0), clojure.lang.Counted (count [this] 0), java.util.Map (keySet [this] nil))) |
| 00:52 | lazybot | java.lang.AbstractMethodError: sandbox26573$eval28671$reify__28683.size()I |
| 00:55 | amalloy | technomancy: 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:55 | amalloy | &(macroexpand '(reify java.util.Map (size [this] 0), clojure.lang.Counted (count [this] 0), java.util.Map (keySet [this] nil))) |
| 00:55 | lazybot | ⇒ (reify* [clojure.lang.Counted java.util.Map] (count [this] 0) (keySet [this] nil)) |
| 01:04 | technomancy | geez |
| 01:05 | amalloy | technomancy: 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:06 | amalloy | but it's only ever used in an unreachable code path: if (name != null) registerLocal((name == null) ? "dummy_this_dlskjsdfower" : name); |
| 01:06 | technomancy | man, languages without gensym crack me up |
| 01:07 | amalloy | technomancy: crypotgraphically-secure gensyms are important for code that makes it into core |
| 01:09 | technomancy | also: languages that force conditions to be boolean expressions. hilarious! |
| 01:35 | amalloy | blech. 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:53 | amalloy | anyone 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:54 | amalloy | i 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:55 | amalloy | maybe i'll farm the problem out to 4clojure; i'm sure someone will have a good answer |
| 01:57 | brehaut | amalloy: 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:57 | amalloy | ah |
| 01:58 | brehaut | i called it sieve but im not convinced its a good name |
| 01:58 | amalloy | brehaut: contrib calls it separate |
| 01:58 | brehaut | aha |
| 01:58 | amalloy | i think it's in seq-utils |
| 01:59 | brehaut | cheers |
| 01:59 | amalloy | brehaut: now come up with a name for the function i'm trying to get 4clojure to write |
| 02:31 | dbushenko | hi all! |
| 04:02 | dbushenko | lol :-) one more blub http://confluence.jetbrains.net/display/Kotlin/Welcome |
| 05:34 | vijaykiran | Hi .. 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:34 | kumarshantanu | vijaykiran: (->> [1 2 3 4 5 6] (map inc) (take 2)) |
| 05:35 | kumarshantanu | ,(->> [1 2 3 4 5 6] (map inc) (take 2)) |
| 05:35 | clojurebot | (2 3) |
| 05:35 | kumarshantanu | ->> puts the arg at the *end* |
| 05:35 | kumarshantanu | -> puts the arg at the first place |
| 05:35 | raek | vijaykiran: (-> 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:43 | vijaykiran | kumarshantanu, raek thanks! |
| 08:23 | khaliG | has someone here set up zeromq for clojure recently? |
| 08:32 | clgv | khaliG: you already read this blog entry? http://antoniogarrote.wordpress.com/2010/09/08/zeromq-and-clojure-a-brief-introduction/ |
| 08:34 | khaliG | clgv, yes! that's the guide i've been following |
| 08:39 | khaliG | clgv, 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:40 | clgv | khalig: I didnt try it - I just wanted to know what it is and the blog entry told me ;) |
| 08:40 | khaliG | clgv, fair enough :) |
| 08:40 | clgv | khalig: I just posted it since there was a chance you might have not seen it |
| 08:54 | clgv | Are incanter operations on datasets lazy? |
| 11:17 | ahriman53072 | hello 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:28 | Scriptor | latest enlive is at 1.0.0, right? |
| 11:56 | brettk | hi |
| 11:56 | brettk | quick question |
| 11:56 | brettk | using 'assoc' to *update* a map |
| 11:57 | brettk | if i understand correctly, assoc returns a new copy of the map |
| 11:58 | brettk | and does not change 'in place' the data structure |
| 11:59 | brettk | is that correct? |
| 11:59 | ambrosebs | yes |
| 11:59 | mprentice | essentially yes |
| 11:59 | mprentice | technically, assoc doesn't have to make a new copy. it just can't change anything in the input map |
| 11:59 | brettk | it references the 'old' data structure where it makes sense |
| 12:00 | ambrosebs | called "structural sharing" |
| 12:00 | brettk | mprentice: ok |
| 12:00 | brettk | yep |
| 12:00 | brettk | ok... just wanted to make sure that i understood this aspect of clojure |
| 12:01 | brettk | this is also called *persistent* data structures, right? |
| 12:02 | mprentice | yes. also called immutable. |
| 12:02 | brettk | ok |
| 12:02 | brettk | but this immutability is all 'under the hood' |
| 12:02 | brettk | ? |
| 12:03 | clgv | brettk: what do you mean by that? |
| 12:03 | brettk | if i use assoc to change a map |
| 12:04 | brettk | do i need to 'wrap this up' in some kind of dosync form |
| 12:04 | clgv | brettk: the input object is not change, see: ##(let [a {:x 1}, b (assoc a :y 10)] (println a) (println b)) |
| 12:04 | lazybot | ⇒ {:x 1} {:y 10, :x 1} nil |
| 12:04 | brettk | effectively, i am updating a data structure |
| 12:05 | brettk | ah... the *input* object is not changed |
| 12:05 | clgv | or even: ##(let [a {:x 1}, b (assoc a :x -10)] (println a) (println b)) |
| 12:05 | lazybot | ⇒ {:x 1} {:x -10} nil |
| 12:05 | brettk | but what the function returns *is* |
| 12:05 | brettk | the new data structure |
| 12:05 | clgv | yes |
| 12:06 | brettk | and that is fine? |
| 12:06 | clgv | yes pretty much in most cases |
| 12:07 | brettk | what about this whole immutability/functional 'thing' in clojure? |
| 12:07 | brettk | what if several threads are referencing the map that i have just gone and 'updated'? |
| 12:07 | Scriptor | brettk: they reference the original map |
| 12:07 | Scriptor | when you 'update' you're creating an entirely new map |
| 12:08 | Scriptor | which those other threads don't know about |
| 12:08 | Scriptor | of course, things change when you use refs |
| 12:08 | brettk | so no need to wrap this 'update' in a dosync form? |
| 12:08 | clgv | brettk: if the thread shall see the updates you need either atoms or references |
| 12:08 | brettk | or something similar? |
| 12:08 | brettk | ok |
| 12:08 | Scriptor | brettk: you're using assoc right? Yup, no need |
| 12:08 | brettk | ok |
| 12:08 | brettk | wow |
| 12:08 | clgv | changing access to references has to be wrapped within dosynv |
| 12:09 | clgv | *dosync |
| 12:09 | Scriptor | there are just a few functions that actually update in-place that need to be inside dosync |
| 12:09 | brettk | ok |
| 12:10 | brettk | wow -> clojure is pretty radical [as in 'cool'] |
| 12:11 | brettk | ok... thanks guys |
| 12:11 | Scriptor | brettk: a good exercise in fully grokking functional programming is to try and reimplement some of the more basic core functions |
| 12:12 | Scriptor | like map, filter, etc... |
| 12:12 | brettk | scriptor: i will give that try |
| 12:12 | brettk | a try |
| 12:12 | bpr | brettk: try playing around with labrepl |
| 12:12 | mprentice | the first 2 chapters of structure and interpretation of computer programs is purely functional and has you implement all of those as exercises |
| 12:13 | bpr | that too, SICP is foundational knowledge |
| 12:13 | Scriptor | the writing on higher-order functions is excellent |
| 12:14 | brettk | mprentice, bpr, scriptor: ok... will do. thanks for the advice |
| 12:21 | ahriman53072 | function returns some maps, how can i get one map from this list? |
| 12:28 | dnolen | ahriman53072: do you need to get a specific one? |
| 12:28 | ahriman53072 | dnolen yes |
| 12:29 | dnolen | ahriman53072: you could use some |
| 12:30 | ahriman53072 | dnolen ? dont understand |
| 12:30 | dnolen | ,(doc some) |
| 12:30 | clojurebot | "([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:30 | ambrosebs | come get some |
| 12:44 | cemerick | See you all in NYC later… ;-) |
| 13:37 | ieure | technomancy, Hah, is ElasticSearch working okay for you? |
| 13:37 | ieure | I went looking for a Clojure client wrapper, and your ML post was the first hit. |
| 13:38 | ieure | I see that your wrapper repo is dead. |
| 13:45 | technomancy | ieure: 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:54 | cch1 | (using Midje) Anybody got a good meme for testing a sequence of maps for a particular structure? |
| 13:55 | cch1 | myseq => (has every? (contains {:key1 string? :key2 number?})) does NOT do it |
| 13:59 | amalloy | cch1: i never could get the hang of midje syntax |
| 13:59 | cch1 | amalloy: Yeah, the checkers are powerful abstractions, but they are not consistently compasable (AFAICT). |
| 14:00 | amalloy | in "real" clojure i'd just write (every? identity (for [m maps, [key pred] {:key1 string? :key2 number?}] (pred (key m))])) |
| 14:59 | technomancy | ieure: I have been advised that esperanto may not be "ready" |
| 14:59 | technomancy | so caveat emptor |
| 15:00 | drewr | ieure: it's a good start; it's mostly served as a sandbox for debugging production issues |
| 15:01 | flazz | what is the clojure analog of zip in haskell? |
| 15:01 | amalloy | technomancy: any day now esperanto will take the world by storm. it's such a useful, unbiased, standardized language |
| 15:01 | drewr | ieure: but there's a sweet lazy index-seq that I'm using to build an automated reindexing functionality |
| 15:01 | amalloy | $heval zip [1, 2] [3 4] |
| 15:01 | lazybot | ⟹ 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:01 | technomancy | amalloy: it's no match for lojban! |
| 15:01 | amalloy | $heval zip [1, 2] [3, 4] |
| 15:01 | lazybot | ⟹ [(1,3),(2,4)] |
| 15:01 | amalloy | &(map vector [1 2] [3 4]) |
| 15:01 | lazybot | ⇒ ([1 3] [2 4]) |
| 15:02 | amalloy | flazz: ^ |
| 15:02 | flazz | amalloy: just map? wow |
| 15:03 | amalloy | flazz: clojure's map generalizes, combining features from a number of related-but-different functions in other languages |
| 15:03 | amalloy | eg with 2+ seq args it's basically zipWith |
| 15:04 | flazz | amalloy: thanks |
| 15:05 | nathanmarz | technomancy: do you know if anyone has worked on a scala compiler plugin for leiningen? |
| 15:06 | technomancy | nathanmarz: if they have, they've been keeping quiet about it. =) |
| 15:06 | nathanmarz | those bastards |
| 15:06 | nathanmarz | how hard do you think it would be to implement something like that? |
| 15:07 | technomancy | probably not difficult |
| 15:07 | technomancy | the javac task is like 40 LOC |
| 15:07 | nathanmarz | i see |
| 15:07 | nathanmarz | i'll take a look at how that's implemented |
| 15:07 | technomancy | they ought to have an ant task you can call |
| 15:08 | technomancy | most 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:09 | nathanmarz | flexibility as in the javac-options? |
| 15:09 | technomancy | right |
| 15:09 | nathanmarz | cool |
| 15:09 | technomancy | I think the javac task supports multiple source roots for some reason |
| 15:17 | arj | in how many hours will the talk by Rich start? Not too good with the time zones :) |
| 15:18 | amalloy | 3.5 |
| 15:18 | arj | ok, will be 1am here then |
| 15:18 | arj | it better be good then :) |
| 15:20 | Bronsa | same for me |
| 15:20 | Bronsa | i will not sleep tonight i think |
| 15:20 | arj | :) |
| 15:21 | ahriman53072 | if i have sequence of maps how can i get all values from all of maps in this seq? |
| 15:21 | tbatchelli_ | I believe ustream events are automatically saved for offline viewing |
| 15:21 | Bronsa | arj: you german? |
| 15:21 | scottj | in 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:21 | amalloy | &(mapcat keys [{:a 1}, {:b 2}]) |
| 15:21 | lazybot | ⇒ (:a :b) |
| 15:21 | amalloy | or vals, i guess |
| 15:22 | arj | Bronsa: Danish, you? |
| 15:22 | Bronsa | italian |
| 15:22 | ahriman53072 | amalloy thanks. |
| 15:23 | bpr | what's the url for watching Rich's talk? |
| 15:23 | bpr | i assume there is one? |
| 15:24 | scottj | http://www.ustream.tv/channel/clojurenyc |
| 15:24 | bpr | ty |
| 15:48 | uberjar | clojure on heroku! google app engine can now go away and die. |
| 15:53 | ahriman53072 | sorry again, how i can remove all keys from sequence of maps? |
| 15:56 | hv | that is not clear, could you give us an example with the expected output? |
| 15:59 | ahriman53072 | imagine: [{: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:00 | amalloy | &(for [m [{:a 1 :b 2 :c 3}, {:a 1 :b 3 :c 7}]] (dissoc m :a))? |
| 16:00 | lazybot | ⇒ ({:b 2, :c 3} {:b 3, :c 7}) |
| 16:00 | ahriman53072 | as always, elegant and great. thanks. |
| 16:01 | ahriman53072 | i begin to love clojure. |
| 16:38 | fliebel | when is/was the clojurenyc thing? |
| 16:39 | amalloy | 02:05 from now |
| 16:39 | fliebel | that's like 00:30 here... :( |
| 16:40 | chouser | fliebel: get your sleep. you can read all about it in the morning. :-) |
| 16:40 | fliebel | Yea, I guess I'll do that. No fanboy points for me today :) |
| 16:40 | amalloy | fliebel: just set up some speakers around your bed, and you'll absorb it while you sleep |
| 16:41 | fliebel | nice idea... |
| 16:42 | joly | any idea how long the talk is supposed to run? |
| 16:47 | abedra | I would imagine at least an hour and a half |
| 17:06 | fliebel | Does Alex Miller come in here? His site is blank. |
| 17:07 | amalloy | fliebel: puredanger, right? i'm sure i've seen him here once or twice, but i'd just tweet him |
| 17:29 | TimMc | yeah |
| 17:29 | TimMc | wrong window |
| 17:30 | ahriman53072 | ok |
| 17:52 | chouser | less than an hour to go now |
| 17:53 | gertalot | Will he wear a turtleneck and go "one more thing..." ? ;) |
| 17:54 | brehaut | hi gertalot |
| 17:54 | gertalot | hi brehaut! |
| 17:54 | gertalot | sorry I missed you last weekend |
| 17:54 | brehaut | gertalot: likewise |
| 17:54 | hv | where can we watch the talk? |
| 17:54 | brehaut | hv http://www.ustream.tv/channel-popup/clojurenyc ? |
| 17:55 | hv | brehaut: thanks. perhaps that could be in topic ;) |
| 17:56 | ohpauleez | chouser: I set a phone alarm one hour prior |
| 17:56 | Bronsa | im fucking awake |
| 17:59 | ohpauleez | haha |
| 18:01 | aaelony | 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:03 | aaelony | the part I need is the "something-that-creates-a-set-of-distinct-keys-over-all-ids" |
| 18:06 | raek | aaelony: 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:06 | aaelony | raek: correct |
| 18:07 | raek | also, #(get-runid-data %1) is equivalent to just get-runid-data |
| 18:07 | aaelony | well, there is a vector of ids coming in, and each id produces |
| 18:07 | raek | well, first you can map :datamap over the sequence: (let [datasets (map :datamap raw-data)] ...) |
| 18:08 | aaelony | the :id :file :datamap |
| 18:08 | aaelony | yeah, my "datamap" has that |
| 18:08 | raek | then map 'keys' over those: (let [dataset-keys (->> raw-data (map :datamap) (map keys))] ...) |
| 18:09 | aaelony | interesting... |
| 18:09 | raek | then concatenate those and turn it into a set |
| 18:09 | raek | (let [dataset-keys (->> raw-data (map :datamap) (map keys) (apply concat) (set))] ...) |
| 18:09 | aaelony | once I have the sets, I guess I'll try using reduce into |
| 18:10 | raek | the apply concat step will turn ((:key1 :key2) (:key3 :key4)) into (:key1 :key2 :key3 :key4) |
| 18:10 | raek | calling set on that will remove any duplicates |
| 18:11 | raek | (set coll) is equivalent to (into #{} coll) |
| 18:11 | aaelony | yes, that's what I want. I'll give that a try. thanks! |
| 18:11 | chouser | or use mapcat instead of map, apply concat |
| 18:11 | ohpauleez | +1 mapcat |
| 18:12 | aaelony | cool... thanks guys, I'll give it a try |
| 18:12 | raek | oh, that one's better! |
| 18:12 | brehaut | or flip it round to a for |
| 18:12 | raek | (set (mapcat (comp :datamap keys) raw-data)) |
| 18:12 | mudge | you guys going to watch Rich's talk tonight? |
| 18:13 | raek | I'm staying up for it |
| 18:13 | devn | I hope there's a sock hop afterwards. |
| 18:13 | devn | Or a box social. |
| 18:14 | mudge | devn: i prefer sock hop |
| 18:15 | amalloy | raek: (comp keys :datamap), right? the other way round doesn't make much sense |
| 18:15 | mudge | I wonder if irc will play a part in Rich's talk tonight, if we could ask questions or something |
| 18:17 | amalloy | mudge: 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:17 | chouser | some people who are at the talk will also be here |
| 18:17 | chouser | dunno if they'll relay questions, but you can try |
| 18:17 | mudge | cool |
| 18:17 | mudge | chouser, will you be there? |
| 18:18 | mudge | at the talk |
| 18:18 | raek | maybe that means that something like "we have a question from the internet" will happen |
| 18:18 | aaelony | thanks, raek and amalloy that works well |
| 18:18 | raek | amalloy: yupp. my bad. |
| 18:19 | abedra | basically we will be around to answer any questions that come up |
| 18:19 | amalloy | abedra: question: tell us what the talk will be about |
| 18:19 | abedra | we will try to have a channel to get the questions relayed |
| 18:19 | abedra | amalloy :) |
| 18:19 | abedra | not yet |
| 18:20 | miltondsilva | hmm 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:21 | mudge | abedra: cool, |
| 18:22 | abedra | devn off by 1 error |
| 18:22 | devn | abedra: :) |
| 18:25 | romanroe | Do you know if Rich's talk will start on time? I have to decide now if go to bed or stay up :-) |
| 18:26 | Bronsa | it was said it will be after 2.5 hours from the start of the conf |
| 18:27 | abedra | Bronsa, everything should start close to on time |
| 18:28 | Bronsa | 12:30AM here |
| 18:28 | Bronsa | hope i will stay awake |
| 18:28 | ahriman53072 | 5:28 AM. Hope too. |
| 18:28 | romanroe | oh, I thought it starts in 15 min |
| 18:28 | mudge | should start soon |
| 18:28 | mudge | i think |
| 18:29 | abedra | yeah |
| 18:29 | abedra | i'm asking right now |
| 18:29 | abedra | looking for a positive confirmation |
| 18:29 | Bronsa | ahriman53072: did you just wake up or you still have to sleep? |
| 18:29 | abedra | i haven't heard anything otherwise though |
| 18:29 | abedra | so it should be on time |
| 18:29 | abedra | stuarthalloway, you might know |
| 18:29 | abedra | do you expect things to kick off on time? |
| 18:30 | stuarthalloway | probably start in earnest on the hour |
| 18:30 | stuarthalloway | they won't even let civilians into the building yet |
| 18:30 | brehaut | stuarthalloway: whats the local time for you? |
| 18:30 | abedra | ah |
| 18:30 | stuarthalloway | 6:30 pm |
| 18:30 | abedra | 6:30 pm |
| 18:30 | stuarthalloway | we are setting up for the talk |
| 18:30 | brehaut | thanks |
| 18:30 | stuartsierra | LIVE from NEW YORK! |
| 18:31 | ohpauleez | hahah |
| 18:31 | ohpauleez | Awesome! |
| 18:31 | arj | :) |
| 18:31 | alandipert | setting up the stream |
| 18:31 | alandipert | 20mb up from google hq! |
| 18:31 | abedra | stuartsierra, I believe we were promised a show before things kick off |
| 18:31 | Bronsa | cool! |
| 18:31 | abedra | 2 Stuarts walk into a google... |
| 18:32 | abedra | Hey your live! |
| 18:32 | Bronsa | woo |
| 18:32 | arj | yeah! |
| 18:32 | joegallo | there's a man in computer! |
| 18:32 | Bronsa | lo |
| 18:32 | abedra | We don't notice the delay |
| 18:32 | abedra | it's smooth |
| 18:32 | ohpauleez | Rich! |
| 18:32 | brehaut | is there any way to ge a lo def stream? |
| 18:32 | romanroe | perfect quality |
| 18:32 | abedra | not that I know of |
| 18:33 | brehaut | abedra: thanks :/ |
| 18:33 | Bronsa | it's perfect |
| 18:33 | ohpauleez | "That's too high-def" |
| 18:33 | ohpauleez | that line alone made this talk |
| 18:33 | miltondsilva | yeah to hi def for me :p |
| 18:33 | SergeyD | So... is this "something new" about religious sect? |
| 18:33 | brehaut | im way the hell on the other side of the world with a narrow pipe; youtube is too high def ;) |
| 18:34 | Bronsa | lol |
| 18:34 | gertalot | the stream actually looks really awesome for me, and I'm at the same other end of the world :) |
| 18:34 | alandipert | brehaut: we'll have not-too-high-def recordings for you :) |
| 18:34 | brehaut | alandipert: great, thanks :) |
| 18:34 | naeu | stream looks perfect for me too |
| 18:34 | ohpauleez | haha :) |
| 18:34 | kovasb | don't downgrade it looks awesome |
| 18:35 | alandipert | kovasb: we might be able to do both |
| 18:35 | ohpauleez | chouser: You didn't make the trip too did you? |
| 18:36 | mudge | rr |
| 18:36 | abedra | it's funny to watch the total views numbers start climbing on ustream |
| 18:36 | stuartsierra | Where are we at? |
| 18:36 | mudge | yea |
| 18:36 | abedra | 121 |
| 18:36 | ohpauleez | 97 |
| 18:36 | abedra | 97 current |
| 18:37 | ohpauleez | 124 total |
| 18:37 | stuartsierra | Are we live-broadcasting this in a meetup group anywhere? |
| 18:37 | mudge | this is fun already |
| 18:37 | mabes | http://www.ustream.tv/channel/clojurenyc |
| 18:37 | ohpauleez | yeah, we should do this as a community more often |
| 18:37 | mabes | thats guys for setting this up! |
| 18:37 | icey | the quality on the stream is surprisingly good |
| 18:37 | mabes | yeah |
| 18:37 | stuartsierra | We'll see how it holds up. Thank Google for awesome bandwidth. |
| 18:37 | no_mind | maybe we can use google hangout |
| 18:37 | abedra | mudge, woah, I just noticed the nick, are you _the_ mudge? |
| 18:38 | chouser | ohpauleez: oh, no. |
| 18:38 | mudge | abedra: no not that mudge, not the security guy |
| 18:38 | abedra | mudge, ah ok |
| 18:38 | mudge | abedra: i'm nick mudge |
| 18:38 | romanroe | yes, thanks for the setup and sharing!!! you make the world smaller :-) |
| 18:38 | abedra | just checking :) |
| 18:38 | devn | Haha. Poor Rich stuck in front of the camera. |
| 18:38 | DeusExPikachu | keep wheeling around |
| 18:38 | Bronsa | ahahah |
| 18:38 | mabes | lol |
| 18:38 | romanroe | can you dance? |
| 18:38 | naeu | he's live |
| 18:38 | Bronsa | woah |
| 18:39 | DeusExPikachu | hey its stu |
| 18:39 | devn | Give the people what they want! |
| 18:39 | Bronsa | this is big |
| 18:39 | naeu | hello everyone |
| 18:39 | abedra | awwwww |
| 18:39 | mudge | hey stewart |
| 18:39 | redinger | Proof that Rich and Stu are not the same person! |
| 18:39 | megakorre | shooo cure |
| 18:39 | scottj | that room is going to fit 70? |
| 18:39 | gertalot | cute :) |
| 18:39 | romanroe | people count: internet 1:0 local |
| 18:39 | naeu | perhaps people will be sitting on the desks |
| 18:39 | stuartsierra | mudge: which one? |
| 18:39 | mudge | both of ya |
| 18:39 | stuartsierra | hi |
| 18:39 | megakorre | hello :D |
| 18:39 | mudge | i wonder what the rest of the room looks like |
| 18:40 | naeu | are there hooks on the wall for people on hammocks? |
| 18:40 | stuarthalloway | please make requests for the camera... |
| 18:40 | redinger | alandipert: talk about the conj to all the early viewers |
| 18:40 | devn | Down Dipert's pants? |
| 18:40 | mudge | nice room |
| 18:40 | devn | hahaha |
| 18:41 | abedra | oooooooohhhh |
| 18:41 | naeu | i bet it's going to be super crammed in a moment |
| 18:41 | abedra | did I just log into chat roulette ? |
| 18:41 | naeu | seething masses of people.. |
| 18:41 | charliekilo | all those New Yorkers look pissed of at ruckus the Carolina boys are making |
| 18:41 | mabes | up to 120 internet viewers already :) |
| 18:41 | abedra | charliekilo, that's how we roll |
| 18:42 | redinger | Cheermosas! |
| 18:42 | ohpauleez | haha |
| 18:42 | abedra | +1 |
| 18:42 | ohpauleez | I'm excited to be moving back to NYC (Sept 1), and hanging out with a lot of these guys |
| 18:42 | ohpauleez | Also, bring Clojure into yet another company |
| 18:43 | ohpauleez | s/bring/bringing/ |
| 18:43 | alandipert | clojure nyc is poppin'! |
| 18:43 | lnostdal-laptop | watching from Norway :) |
| 18:43 | lnostdal-laptop | cool stuff |
| 18:43 | naeu | hey Norway! |
| 18:43 | megakorre | ey sweden here :D |
| 18:43 | stuartsierra | abedra: our workshops are at Strangeloop in September, right? |
| 18:43 | naeu | England here |
| 18:43 | SergeyD | ohpauleez: yeah Clojure is great for picking up girls. We should note it somewhere |
| 18:44 | lnostdal-laptop | ey guys :] |
| 18:44 | Bronsa | Italy here |
| 18:44 | abedra | stuarthalloway, yes |
| 18:44 | raek | sweden here |
| 18:44 | ohpauleez | Awesome, I really love this. We should try to encourage this in the community more often |
| 18:44 | cemerick | Western Mass. hinterlands, represent. :-P |
| 18:44 | abedra | stuarthalloway, they're all sold out though |
| 18:44 | ohpauleez | cemerick: I expect live commentary :) |
| 18:44 | mudge | Florida here |
| 18:45 | joly_ | Oklahoma :P |
| 18:45 | ohpauleez | Currently Oregon |
| 18:45 | kovasb | FiDi, SF |
| 18:45 | pmbauer | Phoenix, AZ |
| 18:45 | devn | SergeyD: I think that's under "Rationale" on clojure.org: Lisp, Chicks Dig It |
| 18:45 | romanroe | how to spot the geek in the room: check who is watching the stream on his laptop |
| 18:45 | ohpauleez | haha |
| 18:45 | scottj | romanroe: irl is too high def |
| 18:45 | naeu | my cat is watching the stream too |
| 18:46 | naeu | his eyes are half shut though :-) |
| 18:46 | naeu | but he is purring |
| 18:46 | ohpauleez | devn: There's some joke in there for sure |
| 18:46 | devn | I feel like if there's ever been an opportunity to say "People of Earth", this is it. |
| 18:46 | abedra | naeu, clojurrrrrrrrrrre |
| 18:46 | SergeyD | devn: :) nice fooling |
| 18:46 | naeu | abedra: hahahaha |
| 18:46 | mdeboard | wru pie |
| 18:47 | mdeboard | I want to watch the Fabio commercial 5 more times pls |
| 18:47 | naeu | abedra: 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:47 | redinger | ads? |
| 18:47 | clojurebot | monads 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:47 | naeu | s/of/off/ |
| 18:47 | mdeboard | redinger: Yeah, on ustream |
| 18:47 | ohpauleez | naeu: haha |
| 18:47 | redinger | Wish I had known I could have bought advertising.... |
| 18:47 | charliekilo | does that feel like the Presidential Address to the Nation to anyone else? |
| 18:47 | abedra | naeu, lol yeah, you'll have that |
| 18:47 | ohpauleez | that is a hilarious scenario to picture |
| 18:47 | mdeboard | charliekilo: Yes, if Geoffrey Rush was president, surrounded by nerds |
| 18:47 | stuartsierra | Reminder: live stream of Clojure NYC at http://www.ustream.tv/channel/clojurenyc |
| 18:48 | abedra | charliekilo, nah, the presidential address isn't this interesting |
| 18:48 | ztellman | charliekilo: who's sequestered in case of a terrorist attack? |
| 18:48 | Scriptor | so the talk discussion is gonna be here, right? |
| 18:48 | redinger | Don't worry, members of Clojure/core are distributed |
| 18:48 | abedra | Scriptor, yes |
| 18:48 | charliekilo | ztellman: knowing the Relevance guys, they are more afraid of a Zombie attack ;) |
| 18:48 | Scriptor | well, nobody better have clojure problems starting 7 :p |
| 18:49 | abedra | Clojure/core and others involved are standing by |
| 18:49 | ztellman | whoever isn't onsite is officially the secretary of agriculture for Clojure |
| 18:49 | mdeboard | everyone quiet, the're starting |
| 18:49 | antares_ | how long will the talk be? It is nearly 3 a.m. here :) |
| 18:49 | naeu | charliekilo: fast or slow zombies? |
| 18:49 | naeu | ;-) |
| 18:49 | semperos | heh |
| 18:49 | devn | "People of Earth..." |
| 18:49 | ohpauleez | abedra: who of your team/family is up there? |
| 18:49 | paraseba | so, now we know it wasn't a hair accident, everything is OK |
| 18:49 | `fogus | slow |
| 18:49 | lnostdal-laptop | 5 more minutes; i can grab more coffee :) |
| 18:49 | naeu | can we see the room again? |
| 18:49 | technomancy | devn: Greetings, programs! |
| 18:49 | abedra | ohpauleez, stuarthalloway stuartsierra and alandipert are up there |
| 18:49 | Scriptor | antares_: an hour or so? |
| 18:49 | naeu | it would be interesting to see how packed it is now |
| 18:49 | ohpauleez | cool |
| 18:50 | antares_ | Scriptor: ok, I can handle that :) |
| 18:50 | raek | technomancy: lol |
| 18:50 | Scriptor | naeu: 70 people rsvp'd I think |
| 18:50 | Scriptor | oh, there we go |
| 18:50 | devn | technomancy: ha, yes, it just seems like you'd be squandering an opportunity by not starting off with "People of Earth" |
| 18:50 | ohpauleez | thanks camera hand |
| 18:50 | romanroe | now thats what I call a remote control! |
| 18:50 | naeu | oh nice |
| 18:50 | Scriptor | man, I just had to go home this summer |
| 18:50 | ohpauleez | I also vote for People of Earth |
| 18:50 | naeu | thanks |
| 18:51 | naeu | are we all sitting comfortably? |
| 18:51 | megakorre | im laying down :D |
| 18:51 | Scriptor | hi stuart |
| 18:51 | ohpauleez | I'm in a hammock |
| 18:51 | ohpauleez | just sayin' |
| 18:51 | bmillare | awww ad... :( |
| 18:51 | ohpauleez | haha |
| 18:52 | ohpauleez | 175 |
| 18:52 | devn | (inc ohpauleez) |
| 18:52 | gertalot_ | UGH I hate the commercial breaks at crucial moments |
| 18:52 | brehaut | commercials from the people sponsoring the bandwidth? |
| 18:52 | lnostdal-laptop | it continues at the same spot afterwards, right? |
| 18:52 | Scriptor | not sure if they're sponsoring it directly |
| 18:52 | Scriptor | but they pay for the site |
| 18:53 | daniel123 | hi all. anybody have a link to the talk? |
| 18:53 | naeu | hmmm, i don't want to make my home "healthier and happier" |
| 18:53 | gertalot_ | no I missed part of stuart's stuff |
| 18:53 | lnostdal-laptop | daniel123, http://www.ustream.tv/channel/clojurenyc |
| 18:53 | lnostdal-laptop | oh, the ad went away (i didn't click it) |
| 18:53 | daniel123 | ty, lnostdal-laptop |
| 18:53 | devn | oh god, ads |
| 18:53 | Scriptor | gertalot_: he just said that he'll be doing a talk early august for lispnyc |
| 18:53 | devn | make the bad man stop |
| 18:53 | redinger | Woah, that Clojure/conj sounds really good |
| 18:53 | charliekilo | whos doing the training? |
| 18:54 | gertalot_ | cheers |
| 18:54 | alandipert | clojure/conj, be there! |
| 18:54 | Scriptor | charliekilo: the clojure/core team |
| 18:54 | gertalot_ | YAY |
| 18:54 | gertalot_ | go rich |
| 18:54 | arj_ | woooo |
| 18:54 | ohpauleez | yessssss |
| 18:54 | ohpauleez | this is awesome! |
| 18:54 | charliekilo | Scriptor: all of them?!? |
| 18:54 | Scriptor | *drum roll* |
| 18:54 | megakorre | whats clojure :O |
| 18:54 | Scriptor | charliekilo: a fair number, I think |
| 18:54 | ohpauleez | DAMN! |
| 18:54 | Scriptor | clj2js? |
| 18:54 | mudge | the browser |
| 18:54 | megakorre | event loop |
| 18:54 | SergeyD | it's widespread |
| 18:54 | daniel123 | hofs |
| 18:54 | SergeyD | Javascript |
| 18:54 | jsigmon1 | dynamic |
| 18:54 | frou100 | reach |
| 18:54 | gertalot_ | javascript?! |
| 18:54 | Scriptor | so is php :p |
| 18:55 | daniel123 | frou100 got it. |
| 18:55 | redinger | charliekilo:# of instructors depends how many people sign up |
| 18:55 | lnostdal-laptop | haa, i voted javascript :) |
| 18:55 | joly_ | O_o |
| 18:55 | jsigmon1 | oh boy |
| 18:55 | gertalot_ | no way! |
| 18:55 | daniel123 | interessstiiiiinnnng |
| 18:55 | Scriptor | but...hasn't it been done? |
| 18:55 | abedra | Scriptor, not like this |
| 18:55 | cemerick | Scriptor: keep watching :-) |
| 18:55 | devn | wait for it... :) |
| 18:55 | ohpauleez | this means you can do all your HTML5 apps in Clojure |
| 18:55 | maacl | Yeah! |
| 18:55 | bmillare | i am excited |
| 18:55 | maacl | ClojureScript! |
| 18:56 | ohpauleez | and run on all portables and windows8 |
| 18:56 | Scriptor | cemerick: didn't you work on this? I guess some of it was included? |
| 18:56 | ohpauleez | this is a great move |
| 18:56 | arj_ | hmm |
| 18:56 | cemerick | Scriptor: No, I've sadly been too busy to be able to contribute. :-( |
| 18:56 | Scriptor | ah |
| 18:56 | abedra | Scriptor, he did work on it some though |
| 18:56 | daniel123 | turn off ur phones peoples! |
| 18:56 | gertalot_ | daniel123: +1 |
| 18:57 | arj_ | i tend to like javascript :) But this will be interesting |
| 18:57 | Scriptor | I wonder how he did the sequences, COW or tries |
| 18:57 | abedra | Scriptor, the source will be opened later |
| 18:58 | abedra | Scriptor, you will be able to check it out for yourself |
| 18:58 | bmillare | is there no JS bytecode? |
| 18:58 | daniel123 | hi stu. |
| 18:58 | Scriptor | abedra: awesome |
| 18:58 | ohpauleez | But wouldn't Clojure-in-Clojure make this an easier/more complete project? |
| 18:58 | Scriptor | bmillare: nope |
| 18:58 | Scriptor | js vm's don't let you input bytecode directly |
| 18:58 | stuarthalloway | we have great bandwidth, but I keep getting booted from irc |
| 18:58 | no_mind | I am waiting for the source code of clojurescript... |
| 18:58 | mabes_ | sounds like clojure may be using google's closure.. that won't be confusing at all :) |
| 18:58 | abedra | mabes_, :) |
| 18:58 | redinger | mabes_: Be thankful we didn't name it Cloture |
| 18:59 | Scriptor | mabes_: funny, because rich talked a bit about it last clojurenyc meetup |
| 18:59 | lnostdal-laptop | stuarthalloway, freenode kicks when too many connections come from the same IP |
| 18:59 | Scriptor | (talked about closure, that is) |
| 18:59 | redinger | Otherwise, we would have to write an O'reilly book with a bird on the cover |
| 18:59 | chouser | ohpauleez: perhaps, but clojure-in-clojure itself will be much carder than this |
| 18:59 | ohpauleez | true |
| 18:59 | ohpauleez | (I was a PyPy dev) |
| 18:59 | mdeboard | ohpauleez: Was? |
| 18:59 | mabes_ | stuarthalloway: yeah, you can tell the freenode ops your IP and they can fix it for you |
| 18:59 | ohpauleez | mdeboard: I don't contribute code anymore |
| 18:59 | mdeboard | GOD WHAT |
| 19:00 | frou100 | this is cool. I had no interest in getting good at js, maybe this will let us leapfrog the lang |
| 19:00 | mdeboard | AN AD?!?!?!? |
| 19:00 | mdeboard | What the hell |
| 19:00 | mdeboard | anyone else getting na interstitial?? |
| 19:00 | Scriptor | mdeboard: gotta pay for the bandwith somehow |
| 19:00 | mdeboard | RIght but... an interstitial? |
| 19:00 | icey | mdeboard: they pop-in every so often; not sure about the frequency |
| 19:00 | daniel123 | I had an awesome fabio ad. |
| 19:00 | stuartsierra | Ads come from ustream, not under our control. Sorry. |
| 19:00 | xeon123 | hi all |
| 19:00 | mdeboard | stuartsierra: I know, frowning at ustream |
| 19:00 | alandipert | ad-less recording forthcoming |
| 19:00 | abedra | rich turns into fabio every now and then |
| 19:00 | bmillare | anyone watch the slides about html5 + clojure + JS + google app engine? now we can eliminate JS :) |
| 19:00 | xeon123 | I'm trying to understand what's the capabilities of clojure. |
| 19:01 | Scriptor | ooh, nice work with that |
| 19:01 | xeon123 | with clojure, I can debug java code? |
| 19:01 | mdeboard | xeon123: There is plenty of documentation to get you started with Clojure. |
| 19:01 | stuartsierra | Intros to Clojure available at http://clojure.org/ |
| 19:01 | Scriptor | xeon123: you can load up java classes and interact with them on the repl |
| 19:02 | stuarthalloway | ClojureScript is written in Clojure -- core is amazing to read |
| 19:02 | xeon123 | thanks for the help. |
| 19:02 | stuarthalloway | compared to the Java stuff |
| 19:02 | abedra | chouser, possibly change the channel topic to include a link to what's going on right now? |
| 19:02 | xeon123 | I will look at the site. Bye. |
| 19:02 | daniel123 | stuarthalloway, I can't wait to see it. |
| 19:02 | xeon123 | \leave |
| 19:02 | ohpauleez | stuarthalloway: I imagine, that's going to be a great read |
| 19:02 | ohpauleez | YESS CinC |
| 19:03 | chouser | abedra: I'm on it! |
| 19:03 | devn | +1 on reading the source for ClojureScript -- It's really interesting. |
| 19:03 | Scriptor | hmm, 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:04 | ohpauleez | this project is a true and clear demonstration of how powerful those features are (deftype.. etc) |
| 19:04 | devn | ohpauleez: yeah, exactly right. |
| 19:04 | frou100 | yo dawg.. |
| 19:04 | abedra | frou100, :) |
| 19:04 | dsop | I 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:05 | abedra | dsop, you'll get to soon enough |
| 19:06 | abedra | bah, fabio is back |
| 19:06 | Scriptor | how soon, end of the talk soon? :) |
| 19:06 | stuarthalloway | Scriptor: yes |
| 19:06 | abedra | chouser, thanks! |
| 19:06 | Scriptor | man, he used the exact same slides last time, should've seen it coming |
| 19:06 | @chouser | Scriptor: :-) |
| 19:06 | stuarthalloway | if my git forking fu is up to it |
| 19:06 | ieure | Okay, cool, so, what exactly is ClojureScript? |
| 19:07 | Scriptor | ieure: a large subset clojure compiled to javascript |
| 19:07 | ieure | Other than TERRIBLY EXCITING. |
| 19:07 | Scriptor | *subset of |
| 19:07 | ohpauleez | ieure: It's Clojure on top of JS |
| 19:07 | ieure | Hm. |
| 19:07 | ieure | Source? Link? |
| 19:07 | ohpauleez | ieure: written in Clojure and ClojureScript |
| 19:07 | stuartsierra | source coming |
| 19:07 | stuartsierra | after this talk |
| 19:07 | daniel123 | stuartsierra: on github? |
| 19:07 | stuartsierra | yes, sources will be on github after the talk |
| 19:08 | Scriptor | so, 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:08 | arj_ | stuartsierra: and documentation I guess :) |
| 19:08 | stuartsierra | Well, we'll get there… ;) |
| 19:08 | pmbauer | Exciting, but I fear debugging Clojure-generated JS is going to be equally ... exciting? |
| 19:08 | stuarthalloway | pmbauer writes bugs, nah nah |
| 19:08 | Scriptor | pmbauer: well, considering coffeescript is already pretty successful, I don't think it'd be that big of a problem |
| 19:09 | ieure | Any mention of how agents are handled in an environment with zero parallelism? |
| 19:09 | stuarthalloway | seriously: the Google Closure stuff has some good tools, including a Firebug plugin |
| 19:09 | stuarthalloway | community effort to help leverage that welcome |
| 19:09 | pmbauer | CoffeeScript maintainers allow that is a weakness |
| 19:09 | stuartsierra | I can hear the Google Closure compiler saying in a prim voice, "That (function) was uncalled for." |
| 19:09 | brehaut | ieure: webworkers are fully parallel where available |
| 19:09 | daniel123 | ieure, I think he said earlier that it was a subset. |
| 19:09 | Scriptor | can it output well-formatted code that's not run through GClosure? |
| 19:09 | stuarthalloway | Scriptor: yes |
| 19:09 | stuartsierra | You can see the JS output before it goes to GClosure. |
| 19:09 | daniel123 | ieure, so, not sure what it's 'missing' yet. |
| 19:09 | abedra | grrrr, Jeep comercial makes me angry at Jeep |
| 19:10 | bmillare | so is clojure.org going to be partly written in clojurescript soon? :) |
| 19:10 | stuartsierra | probably not; it's just HTML after all. |
| 19:10 | redinger | clojure.org isn't exactly an app :) |
| 19:10 | ohpauleez | Whoa, 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:10 | redinger | ohpauleez: you got it |
| 19:10 | abedra | ohpauleez, yep |
| 19:10 | Scriptor | oh, also, any leaks on how the reader/parser is written, what libraries are used for them? |
| 19:10 | ohpauleez | way awesome (I just finished an HTML5 game engine for work) |
| 19:10 | brehaut | enlive running on the server and browser is going to be great |
| 19:11 | stuarthalloway | source code is read by clojure's reader |
| 19:11 | stuartsierra | ClojureScript only depends on the Google Closure libraries. |
| 19:11 | bmillare | redinger: i just meant, add some cool features where the server would emit some clojurescript |
| 19:11 | stuarthalloway | data can be read by the new data reader in ClojureScript |
| 19:11 | Scriptor | ah, that'd be cool to read through |
| 19:11 | mabes_ | my guess is that jquery is closure "advanced mode" safe, correct? |
| 19:11 | antares_ | stuarthalloway: is it going to be pushed to github later today? |
| 19:11 | stuarthalloway | and this makes a compelling alternative to JSON |
| 19:11 | stuarthalloway | anares_ yes |
| 19:12 | lnostdal-laptop | mabes_, jquery is tiny |
| 19:12 | stuartsierra | manbes_: jQuery does not work in GClosure advanced mode out of the box, but there are attempts to fix that ongoing by others. |
| 19:12 | thickey | jquery proper isn't advanced mode compatible. |
| 19:12 | bmillare | so I guess rich has been procrastinating on writing some JS and wrote clojurescript instead? :P |
| 19:12 | stuartsierra | pretty much |
| 19:12 | mabes_ | stuartsierra: cool, nice too know. |
| 19:12 | Scriptor | can't wait to see how they did interop, since js's style is completely different from java's |
| 19:12 | mabes_ | s/too/to/ |
| 19:12 | Guest47370 | <mabes_> stuartsierra: cool, nice to know. |
| 19:13 | SergeyD | Yes, it's quite difficult to write JS in advanced mode. I had this experience with Google Closure |
| 19:14 | stuarthalloway | SergeyD: it is easy now |
| 19:14 | ohpauleez | stuarthalloway: :) I'm excited about that |
| 19:14 | ohpauleez | SergeyD: I too just went through that |
| 19:14 | mdeboard | I'm never buying a jeep |
| 19:15 | mdeboard | ever |
| 19:15 | daniel123 | mdeboard lol |
| 19:15 | daniel123 | yess!!!! |
| 19:15 | bmillare | so its like advanced mode JS is like the JS bytecode |
| 19:15 | lnostdal-laptop | weird, i don't see the ads |
| 19:15 | Bronsa | nor do i |
| 19:16 | alandipert | lnostdal-laptop: are you here in nyc as well? |
| 19:16 | lnostdal-laptop | nope, i'm here in norway |
| 19:16 | SergeyD | This can promote Clojure even more. Nice move! |
| 19:16 | Scriptor | bmillare: kinda...but bytecode optimization is different than node tree optimization, I think |
| 19:16 | stuartsierra | lnostdal-laptop: Hi! I was in Norway just a month or so ago. |
| 19:16 | daniel123 | I'm so excited about seeing the CS compiler innards. |
| 19:17 | ohpauleez | hahaha |
| 19:17 | ohpauleez | touche Rich |
| 19:17 | lnostdal-laptop | stuarthalloway, cool, the thing in Oslo? .. i missed that |
| 19:17 | brehaut | did rich just 'oh, one more thing' ? |
| 19:17 | stuartsierra | lnostdal-laptop: yes, I talked about Clojure there. |
| 19:17 | devn | Do: Read the Closure book. |
| 19:17 | gertalot_ | he hasn't said "insanely great" yet, fortunately |
| 19:18 | Scriptor | damn, arity overloading in js... |
| 19:18 | brehaut | what about 'boom' ? |
| 19:18 | ohpauleez | this is awesome |
| 19:19 | paraseba | it's all there! protocols, deftyes,macros! |
| 19:19 | devn | :) |
| 19:19 | Scriptor | pfft, cross-language macros... |
| 19:20 | ohpauleez | that was a great design choice |
| 19:20 | ohpauleez | so sound |
| 19:21 | icey | does google's closure lib use typed arrays for perf? it would be interesting if clojurescript allowed type hinting to improve performance |
| 19:21 | paraseba | just unbelievable... |
| 19:21 | stuartsierra | JS doesn't have typed arrays yet. |
| 19:21 | Scriptor | icey: gclosure has a full type system, but it's built on top of js so I don't think it really helps performance |
| 19:21 | devn | icey: closure needs annotations for advanced mode compilation, but no, no typed arrays. |
| 19:22 | ohpauleez | OH MY HEAD!!! This means we can use Clojure Client-Server for data formats |
| 19:22 | ohpauleez | YES |
| 19:22 | lnostdal-laptop | hmmmm, this is very nice |
| 19:22 | ohpauleez | that's going to be HUGE |
| 19:22 | darevay | atoms, refs, and agents? |
| 19:22 | devn | darevay: there's been some talk about using gclosure's web workers |
| 19:22 | stuarthalloway | not to that point of the talk yet, but ... |
| 19:22 | kovasb | wow |
| 19:22 | stuarthalloway | atoms yes |
| 19:22 | stuarthalloway | agents probably |
| 19:22 | joly_ | wow |
| 19:23 | stuarthalloway | refs would need a use case |
| 19:23 | stuartsierra | first 'boom' |
| 19:23 | darevay | yep. seems reasonable. |
| 19:23 | gertalot_ | :) |
| 19:23 | icey | damn, that's awesome |
| 19:23 | bmillare | is the . syntax the same? |
| 19:23 | stuarthalloway | bmillare: except where JavaScript has more capability than Java |
| 19:23 | stuarthalloway | the corner case being (. x foo) |
| 19:24 | stuarthalloway | where (in JavaScript) that could mean give me the function foo, or call the function foo |
| 19:24 | stuarthalloway | this ambiguity is not possible in Java |
| 19:24 | `fogus | Scriptor: GClosure's types are mainly for correctness checks |
| 19:24 | abedra | Jeep, you're pissing me off man |
| 19:24 | Scriptor | `fogus: right, which is why they won't really help performance |
| 19:24 | ohpauleez | abedra: Don't leave focus on your browser, that's been working for me |
| 19:25 | abedra | ohpauleez, i've got that + irc + other channels open right now :) |
| 19:25 | ohpauleez | I just realized this "fixes" Clojure as a script language. Node + ClojureScript |
| 19:26 | ohpauleez | awesome |
| 19:26 | stuartsierra | ohpauleez: you're catching on quick :) |
| 19:26 | @chouser | ohpauleez: keep watching! |
| 19:26 | ohpauleez | :) |
| 19:26 | devn | ohpauleez: yeah, chouser did some work on node :) |
| 19:26 | redinger | It gets better :) |
| 19:26 | abedra | ohpauleez, yep, what chouser said |
| 19:26 | ohpauleez | I can't wait to contribute to this |
| 19:26 | mabes_ | dunno why you would want to use node or any JS VM on the server side though.. the JVM is pretty good ;) |
| 19:26 | Scriptor | mabes_: so is v8 :) |
| 19:27 | daniel123 | stuartsierra is there a todo list in the repo? |
| 19:27 | abedra | daniel123, yes |
| 19:27 | stuartsierra | But with node, you can write command-line apps that start up faster than the JVM. |
| 19:27 | daniel123 | schweet. |
| 19:27 | mabes_ | yeah, startup time is huge |
| 19:27 | lnostdal-laptop | V8 is single core; you want multi-core/thread on a server with many people on it .. the client only has 1 user tho |
| 19:27 | devn | there's also a lot of design discussion in the repo |
| 19:27 | devn | worth reading if you decide to contribute |
| 19:27 | gertalot_ | stuartsierra: that might be quite cool for pallet and stevedore |
| 19:28 | ohpauleez | devn: Thanks for that hint |
| 19:28 | ahriman53072 | there is a problem |
| 19:28 | mdeboard | What is meant by in-browser eval? |
| 19:28 | mdeboard | Can someone give me example? |
| 19:28 | SergeyD | I think Flash runtime would be very easy after JS is done |
| 19:28 | stuartsierra | we're not doing a REPL in the browser. |
| 19:28 | gertalot_ | great stuff everyone, thanks! |
| 19:29 | daniel123 | yess!!! |
| 19:29 | daniel123 | lol |
| 19:29 | devn | but...someone else could do a REPL in the browser...if they wanted to... :) |
| 19:29 | ahriman53072 | http://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:29 | thickey | forking hardcore indeed |
| 19:29 | scottj | https://github.com/clojure/clojurescript |
| 19:29 | ahriman53072 | where are there NILs from? |
| 19:29 | icey | I put it on HN here: https://github.com/clojure/clojurescript |
| 19:29 | ahriman53072 | *these |
| 19:29 | icey | derp |
| 19:29 | Scriptor | by the way, how is integration with lein? |
| 19:29 | daniel123 | thanks scottj |
| 19:29 | icey | http://news.ycombinator.com/item?id=2787851 |
| 19:30 | ohpauleez | Scriptor: Good question +1 |
| 19:30 | devn | Scriptor: 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:30 | redinger | Durham! |
| 19:30 | jdwbell | will Conj be streamed? hint, hint, nudge, nudge.... |
| 19:31 | bmillare | is this clojurescript or something else? http://nicknick851120.blogspot.com/?zx=4bc09ef6a1863f28 |
| 19:31 | Scriptor | devn: cool, is it still possible to use swank with it? |
| 19:31 | pbuckley | jdwbell - it would be a miracle if the conj had a working network connection |
| 19:31 | ohpauleez | Just 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:31 | redinger | jdwbell: Not streamed, but we're working out the recording details |
| 19:31 | stuartsierra | bmillare's link is spam |
| 19:31 | devn | Scriptor: I've been using inferior-lisp while working on it. |
| 19:31 | stuarthalloway | redinger is your point of contact for joining us on Fridays... |
| 19:31 | ztellman | I 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:31 | bmillare | crap |
| 19:31 | bmillare | sorry |
| 19:32 | scgilardi | https://github.com/clojure/clojurescript |
| 19:32 | bmillare | that is not what I wanted |
| 19:32 | stuartsierra | no worries |
| 19:32 | bmillare | http://clojurescript.n01se.net/repl/ |
| 19:32 | abedra | alandipert, do you have a body dragging from that camera? |
| 19:32 | ohpauleez | inching forward inch-by-inch is too funny |
| 19:32 | alandipert | people of the internet: text legible? |
| 19:32 | abedra | no |
| 19:32 | stuartsierra | bmillare: no, that is an older attempt at the same project by Chris Houser. |
| 19:32 | ohpauleez | can we zoom it in? |
| 19:32 | Danny_Collins | can't read it at all |
| 19:32 | daniel123 | blurry |
| 19:32 | ohpauleez | NO |
| 19:32 | bmillare | ok |
| 19:32 | devn | bmillare: that's chouser's clojurescript |
| 19:32 | redinger | ohpauleez: You need some Clojure consulting with that new gig? :) |
| 19:32 | abedra | alan it's not all that bad |
| 19:32 | maacl | blurry and very small |
| 19:32 | Bronsa | maximize the video |
| 19:32 | Bronsa | it will be clear |
| 19:33 | ohpauleez | Thanks Bronsa |
| 19:33 | no_mind | cant makeout anything of demo on the stream |
| 19:33 | ieure | Haha |
| 19:33 | Scriptor | no_mind: it's a little better if you full-screen it |
| 19:34 | redinger | no_mind: pop out the video and you can enlarge it |
| 19:34 | scottj | does it work fine with slime? |
| 19:34 | freakwit | go back |
| 19:34 | mabes_ | it looks like he is using emacs... doesn't that mean he is using slime? |
| 19:34 | abedra | scottj, yes, almost all of us work in that environment |
| 19:34 | Scriptor | mabes_: it's inferior-lisp apparently |
| 19:34 | raek | no, he's using inferior-lisp |
| 19:34 | devn | mabes_: he's using inferior-lisp |
| 19:34 | freakwit | (sorry, didn't mean to type that) |
| 19:34 | mabes_ | ah |
| 19:34 | ohpauleez | hahaha |
| 19:35 | raek | see http://dev.clojure.org/display/doc/Getting+Started+with+Emacs |
| 19:35 | abedra | yes, but it has worked fine in slime for me |
| 19:35 | devn | M-x cd PATH_TO_CLOJURESCRIPT_REPO, M-x set-variable inferior-lisp-program "script/repljs" |
| 19:35 | Scriptor | abedra: how do you start up swank? |
| 19:35 | devn | M-x inferior-lisp |
| 19:35 | maacl | the repl works on my machine :-) |
| 19:35 | abedra | Scriptor instructions will show up as well |
| 19:35 | Scriptor | sweet |
| 19:35 | mdeboard | Anyone getting a repl working on Ubuntu (with openJDK) |
| 19:36 | no_mind | Will you guys accept questions from IRC ? |
| 19:36 | gertalot_ | repljs is melting my poor old macbook |
| 19:36 | abedra | mdeboard, I use ubuntu explicitly |
| 19:36 | stuartsierra | no_mind: maybe at the end |
| 19:36 | daniel123 | awesome. |
| 19:36 | mdeboard | abedra: I mean the cljs repl |
| 19:36 | abedra | mdeboard, yes, I used Ubuntu the whole time I was working on cljs |
| 19:37 | devn | bmillare: the http://clojurescript.n01se.net/repl/ link you posted earlier now points in the right direction |
| 19:37 | mdeboard | abedra: Ah, ok. Getting an unexpected error. Are you using openjdk or sun |
| 19:37 | bmillare | devn: thanks |
| 19:37 | abedra | mdeboard, sun |
| 19:37 | abedra | mdeboard, I don't use the openjdk |
| 19:38 | mdeboard | I see |
| 19:38 | dsop | mdeboard: what error do you get? |
| 19:38 | mdeboard | dsop: Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: sun.org.mozilla.javascript.internal.Context, compiling:(cljs/compiler.clj:919) |
| 19:38 | kwbeam | openjdk has issues with this: |
| 19:38 | kwbeam | yep, you beat me to it |
| 19:38 | dsop | same here |
| 19:38 | abedra | mdeboard, it must be missing the proper rhino bits |
| 19:38 | `fogus | ClojureScript brought to you by Old Spice |
| 19:39 | no_mind | Cant access clojurescript wiki at https://github.com/clojure/clojurescript/wiki . Is it up ? |
| 19:39 | stuartsierra | wiki coming soon |
| 19:39 | Scriptor | the repl relies on rhino, right? Does anything else? |
| 19:39 | frou100 | I'm on my 3rd condom ad |
| 19:39 | mdeboard | abedra: Got it, thanks |
| 19:39 | scottj | no ads broguht to you by adblock |
| 19:39 | abedra | Programmers, look at your cljs, now at js, now back to cljs... Sadly, your js is not cljs but IT COULD BE! |
| 19:39 | devn | how apropos frou100 |
| 19:39 | `fogus | (inc abedra) |
| 19:39 | devn | abedra: haha! |
| 19:39 | Guest47370 | ⟹ 1 |
| 19:40 | ohpauleez | frou100: and now you know about SAFE JS and SAFE Sex |
| 19:40 | dsantiago | How is debugging in a browser going to work here? |
| 19:40 | dsop | mdeboard: does it work? |
| 19:40 | darevay | works for me ... and since it's on Rhino, it preserves the beloved Java stack traces! ;) |
| 19:40 | Scriptor | dsantiago: 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:40 | brehaut | dsantiago: closure apparently has a firebug pluggin, and chrome webkit recently landed a patch to allow compilers to add debugging hooks |
| 19:41 | @chouser | Scriptor: no, just the repl |
| 19:41 | no_mind | If 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:41 | alandipert | dsantiago: http://code.google.com/closure/compiler/docs/inspector.html maybe |
| 19:41 | mdeboard | dsop: Dunno, I'm trying to install sun-java6-jdk |
| 19:41 | devn | dsop: brehaut: It's not there yet, but it's definitely possible. It's absent at the moment. |
| 19:41 | @chouser | ISeq is a protocol |
| 19:41 | abedra | mdeboard, just add the partner ppa |
| 19:41 | ohpauleez | that is GORGEOUS code |
| 19:42 | dsop | hmpfl |
| 19:42 | bmillare | is clojurescript written in clojurescript + clojure or just clojurescript? |
| 19:42 | ohpauleez | so subtle, simple, and powerful |
| 19:42 | mdeboard | abedra: ya |
| 19:42 | dsop | i don't want to install sun-sdk for that |
| 19:42 | `fogus | no_mind: You are not required to use GClosure for js interop nor migration. |
| 19:42 | ohpauleez | bmillare: Clojure and ClojureScript |
| 19:42 | Scriptor | obligatory nyc sirens |
| 19:42 | ohpauleez | the core is all ClojureScript |
| 19:42 | abedra | ahhhh we know it is NYC |
| 19:42 | daniel123 | Is he just sitting out front honking his horn? |
| 19:43 | lnostdal-laptop | lol |
| 19:43 | bmillare | ohpauleez: how is it written in clojure if there's no jvm? |
| 19:43 | devn | they're coming to steal our new secret weapon |
| 19:43 | redinger | It's just like pairing with stuartsierra. |
| 19:43 | devn | haha redinger |
| 19:43 | rimmjob_ | how good with javascript should i be before using this stuff? |
| 19:43 | redinger | sirens in the background |
| 19:43 | ohpauleez | bmillare: Clojure does the compilation piece |
| 19:43 | bmillare | ok, got it |
| 19:43 | ahriman53072 | ÷å ðàçãóí |
| 19:44 | abedra | redinger, yeah, I haven't paired with stuartsierra in a bit, so I forgot about that |
| 19:44 | mabes_ | 300k -> 40k (6k with compression)! |
| 19:44 | mabes_ | thats pretty sweet |
| 19:44 | ohpauleez | wow, 40Kb with compression over the wire for webapps will be awesome |
| 19:44 | devn | Yeah, it's really nice. |
| 19:45 | ohpauleez | wow |
| 19:45 | ohpauleez | I still can't get over the reader being on the client side |
| 19:45 | mabes_ | I didn't realize how powerful closure was |
| 19:45 | ohpauleez | mabes_: You really have to use Closure Lib and follow some guidelines to get that power |
| 19:45 | ohpauleez | and it's a little painful |
| 19:45 | dsop | hmpfl |
| 19:45 | ahriman53072 | !!! |
| 19:45 | gertalot | goodness. my laptop didn't like the 550mb java process that repljs started |
| 19:46 | `fogus | ohpauleez: Yeah, that's pretty cool huh? :-) |
| 19:46 | mabes_ | ohpauleez: but I guess a big selling point of ClojureScript that only it's compiler needs to know those rules, right? |
| 19:46 | daniel123 | stuartsierra, the compiled javascript gets deployed? |
| 19:46 | SergeyD | mabes_: right |
| 19:46 | mdeboard | Ok so uninstalling openjdk and replacing with sun jdk = win |
| 19:46 | redinger | Because one build tool is never enough for us |
| 19:46 | ohpauleez | `fogus: for sure! |
| 19:46 | abedra | mdeboard, you don't have to uninstall open |
| 19:46 | abedra | update-java-alternatives |
| 19:46 | jdwbell | but an advantage of something like a large 'static' library, something like JQuery on Google's CDN, is the caching. |
| 19:46 | hv | mdeboard: :( I don't want to do that |
| 19:47 | ohpauleez | mabes_: most definitely |
| 19:47 | Scriptor | gah, have to head out, but this has been really good, can't wait to play with it |
| 19:47 | mdeboard | abedra: Well, I don't do anything with openjdk in any way, Clj is literally the only reason I even know it exists |
| 19:47 | dsantiago | Will it be possible to write .cljs files and include those as parts of clojure programs to share code? |
| 19:47 | abedra | mdeboard, you can switch on command |
| 19:47 | ohpauleez | Scriptor: later |
| 19:47 | stuartsierra | jdwbell: you can still use cached copies of things like jQuery |
| 19:47 | SergeyD | jdwbell: yes, that is why Google Closure and now ClojureScript is more advatageous for big apps |
| 19:47 | daniel123 | schweeet! |
| 19:48 | ahriman53072 | åáò |
| 19:48 | SergeyD | jdwbell: I mean your own custom large codebase |
| 19:48 | dsop | hm okay looks like i have to wait for a openjdk compatible version |
| 19:48 | devn | ahriman53072: Rich is showing off the demo app. |
| 19:49 | ahriman53072 | devn where |
| 19:50 | rimmjob_ | what was google using this for? |
| 19:50 | devn | ahriman53072: http://www.ustream.tv/channel-popup/clojurenyc |
| 19:50 | gertalot | what are the memory requirements for a clojurescript repl? I can't have -Xmx2G, that explodes my laptop. |
| 19:50 | mdeboard | wow |
| 19:50 | mdeboard | yeah |
| 19:50 | devn | rimmjob_: their production apps. |
| 19:50 | mdeboard | the repl just vomited everywhere |
| 19:50 | ssideris | so clojurescript is the "something new" that Rich was going to talk about (sorry, just started watching the stream) |
| 19:50 | mdeboard | WHY ISN'T THIS ALPHA RELEASE RUNNING FLAWLESSLY ON MY MACHINE?!?!?! |
| 19:50 | gertalot | haha |
| 19:51 | devn | ssideris: that's correct. |
| 19:51 | mdeboard | Someone please show Mr. Hickey what a buffer is :( |
| 19:51 | ssideris | devn: thanks |
| 19:51 | ahriman53072 | omg |
| 19:51 | mdeboard | in emacs |
| 19:51 | kovasb | this is so awesome |
| 19:52 | stuartsierra | Wiki is public: https://github.com/clojure/clojurescript/wiki |
| 19:52 | scottj | (add-hook 'clojure-mode-hook 'toggle-truncate-line) |
| 19:52 | no_mind | Where can I access the demo application code ? |
| 19:52 | stuartsierra | Demo code is in the samples/ dir of the ClojureScript Git repo. |
| 19:52 | `fogus | LOL. Rich doing a code review |
| 19:53 | redinger | I still remember writing code thinking "Oh wait, Rich is going to see this..." |
| 19:53 | ohpauleez | yes! I see lazy-seq |
| 19:53 | stuartsierra | redinger: try hacking the implementation of ClojureScript `fn` |
| 19:54 | devn | stuarthalloway: haha |
| 19:54 | redinger | We'll work on that routine for Clojure/conj |
| 19:54 | ohpauleez | chouser: Ok, I'm getting ready now! :) |
| 19:54 | brehaut | `fogus: the link you just tweeted is broken |
| 19:54 | daniel123 | haha |
| 19:54 | abedra | go figure, stuarthalloway is now the center of the universe |
| 19:54 | abedra | :) |
| 19:54 | bmillare | lol |
| 19:54 | ohpauleez | abedra: haha |
| 19:55 | stuartsierra | abedra: "Like pouring gasoline on a flame." |
| 19:55 | ahriman53072 | uhuhuh |
| 19:55 | abedra | I DON'T WANT CHICKENS, I WANT CLOJURESCRIPT |
| 19:55 | devn | bahaha |
| 19:55 | pmbauer | Is there a test suite someplace to verify clojure (JVM) and ClojureScript fidelity where it makes sense? (see cut-n-pasted parts) |
| 19:55 | stuartsierra | There are some tests, yes. |
| 19:55 | bmillare | woot startup time |
| 19:56 | stuartsierra | Not aiming for full Clojure compatibility yet. |
| 19:56 | hv | I fixed that on unix! |
| 19:56 | ahriman53072 | is it possible to do something like (map #(str "||" %1 "||" %2)(mapcat vals [{:b 1},{:b2 2}]))) ?? |
| 19:56 | no_mind | can I use closure templates in clojurescript or is it yet to be ported ? |
| 19:56 | devn | pmbauer: You'll find a lot of simple tests of all the important bits at the bottom of core.cljs |
| 19:56 | hv | (startup time, similar to nailgun yet better) |
| 19:56 | daniel123 | fast. |
| 19:56 | devn | no_mind: I smell an opportunity. ;) |
| 19:56 | pmbauer | stuartsierra: Thanks ... use case would be sharing, say, validation code browser/server side. |
| 19:56 | raek | *clapclapclap* |
| 19:56 | ohpauleez | YES! |
| 19:56 | ohpauleez | Amazing work team |
| 19:57 | no_mind | devn: I wont mind working on porting closure temlates. If no one else is working on it |
| 19:57 | technomancy | scottj: uh oh; that doesn't sound good =\ |
| 19:57 | daniel123 | abedra are you using this in your new book? |
| 19:57 | devn | no_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:57 | abedra | daniel123, it may make an appearance :) |
| 19:58 | ohpauleez | I'm already emailing O'Reilly for "ClojureScript: Client-side Clojure" |
| 19:58 | ohpauleez | haha |
| 19:58 | redinger | stuarthalloway already tweeted it would show up abedra |
| 19:58 | maacl | Has anyone tried the hello demo? Isn't it suppose to pop an alert box? |
| 19:58 | pmbauer | devn: thanks...couldn't find the test suite |
| 19:58 | abedra | redinger, ok well there you go :) |
| 19:58 | devn | (test-stuff) is the ticket :) |
| 19:58 | redinger | Whether you like it or not :) |
| 19:58 | stuarthalloway | abedra: I am willing to do the work if necessary :-) |
| 19:58 | daniel123 | abedra, do you recommend any other literature in the meantime? I have Stu's book, fogus & chouser's, Amit's book... |
| 19:59 | no_mind | devn: sure. Where do I start from ? |
| 19:59 | mdeboard | I bought Practical Clojure yesterday when it was $10 |
| 19:59 | stuartsierra | I think the "hello" demo is missing some loads from its HTML. |
| 19:59 | mdeboard | It killed my dog :-\ |
| 19:59 | ahriman53072 | sorry |
| 19:59 | ahriman53072 | is it possible to do something like (map #(str "||" %1 "||" %2)(mapcat vals [{:b 1},{:b2 2}]))) ?? |
| 19:59 | devn | hahaha, this explanation will be fun |
| 19:59 | stuartsierra | The "hello" demo should work if you recompile it with cljsc. |
| 19:59 | pmbauer | devn: re:test-stuff ... yea, surprised tests ended up all in one function ... |
| 19:59 | ohpauleez | haha |
| 19:59 | Bronsa | ahahah |
| 19:59 | devn | where's my klingon destroyer UTF-8 char? |
| 19:59 | abedra | daniel123, don't forget practical clojure |
| 19:59 | daniel123 | k |
| 20:00 | stuartsierra | pmbauer: that's temporary |
| 20:00 | stuartsierra | Thanks, abedra. :) |
| 20:00 | pmbauer | stu: ah |
| 20:00 | ohpauleez | Does anyone see this as a huge statement that this talk JUST happened to be when Java Language Summit is going on :) |
| 20:00 | abedra | stuarthalloway, i wouldn't mind if you did it, there's still a bunch left to tackle |
| 20:00 | clojurebot | It's greek to me. |
| 20:00 | maacl | stuarthalloway: I just recompiled it and no alert box |
| 20:01 | stuartsierra | I meant in advanced mode. |
| 20:01 | devn | ohpauleez: it's conference season, I wouldn't read too much into it. :) |
| 20:01 | stuarthalloway | we should split the simple/advanced hello into separate html target fiels |
| 20:01 | ohpauleez | devn: true true |
| 20:01 | technomancy | ohpauleez: yeah, the absence from the JVMLS seemed pretty surprising |
| 20:01 | hv | ahriman53072: as you may have felt, there is an important show going on somewhere, and most people here are watching it. |
| 20:01 | daniel123 | Can you repeat the questions? |
| 20:01 | no_mind | Someone post clojure script in slashdot |
| 20:01 | alandipert | question was TCO |
| 20:01 | devn | thanks alandipert |
| 20:01 | brehaut | ahriman53072: how about you ask what you want to solve, rather than providing a nonsense solution? |
| 20:02 | mabes_ | what is js/node's equivalent of maven? i.e. how do you declare and pull in your deps? |
| 20:02 | devn | mabes_: npm? |
| 20:02 | Scorchin | mabes_: npm |
| 20:02 | ohpauleez | npm |
| 20:02 | mabes_ | :) thanks |
| 20:02 | stuartsierra | Google Closure has a dependency mechanism, though it does not handle downloading external dependencies. |
| 20:02 | maacl | stuartsierra: I just recompiled it and no alert box |
| 20:02 | abedra | ok IRC folks, get your questions ready |
| 20:03 | stuartsierra | maacl: sorry, I think the HTML file is missing some pieces. |
| 20:03 | stuartsierra | The "Hello" demo got dropped while everyone was working on Twitterbuzz. |
| 20:03 | licoresse | this is awesome!!! |
| 20:03 | alandipert | slides will be available |
| 20:03 | david` | I guess there's no Java interop in Clojurescript? |
| 20:03 | maacl | stuartsierra: check |
| 20:03 | mdeboard | god these NYC guys are time-hogs :( |
| 20:03 | stuartsierra | david`: no :) |
| 20:03 | Scorchin | QUESTIONS FROM THE INTERNET!!! |
| 20:03 | @chouser | david`: no, but there's javascript interop |
| 20:03 | david` | very nice |
| 20:04 | naeu | which refs are supported? |
| 20:04 | stuartsierra | only Atom so far. |
| 20:04 | stuartsierra | Maybe Agents later. |
| 20:04 | mjg123 | chouser: it's for any js or do you have to wrap? |
| 20:04 | stuartsierra | Any JS! |
| 20:04 | hv | question: can (when) cljs be able to be embedded inside a clojure web app? |
| 20:04 | devn | If 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:04 | l0st3d | do we still get agents? |
| 20:04 | no_mind | Is there a TODO list for clojurescript ? |
| 20:04 | stuarthalloway | maacl: did you open hello-dev.html? |
| 20:04 | Scorchin | Questoin from the Internet: What's the interop with things like jQuery, YUI and underscore.js? |
| 20:04 | stuartsierra | hv: You can't run the ClojureScript in the browser. |
| 20:04 | stuarthalloway | Just tried it here and it works |
| 20:04 | mdeboard | description files |
| 20:05 | bmillare | what parts of clojure language won't work well even in the future in clojure script? |
| 20:05 | maacl | stuartsierra: nope - silly me :-) |
| 20:05 | 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:05 | dsantiago | Question: Is any of this work useful for putting back into Clojure as part of CinC? |
| 20:05 | devn | no_mind: yes, devnotes/todo.org |
| 20:05 | ohpauleez | This sounds like a "tooling" and "ecosystem" problem (technomancy :) ) |
| 20:05 | hv | stuarthalloway: well, is it like cljs -> google closure -> js -> web app -> client ? |
| 20:05 | mdeboard | Question: What is the rationale of excluding (in-browser) eval? |
| 20:05 | raek | dsantiago++ |
| 20:05 | hv | oops! |
| 20:05 | mdeboard | (inc dsantiago( |
| 20:05 | lnostdal-laptop | Question: Does this mean ClojureInClojure is next? ...or at least closer, perhaps based on the experience implementing this? |
| 20:05 | stuarthalloway | devn: those dev notes may not be up to date -- ask first if something doesn't make sense |
| 20:05 | mdeboard | (inc dsantiago) |
| 20:05 | Guest47370 | ⟹ 1 |
| 20:06 | hv | stuartsierra: well, is it like cljs -> google closure -> js -> web app -> client ? |
| 20:06 | amalloy | mdeboard: you couldn't use the whole-program optimizations with eval, i think |
| 20:06 | daniel123 | <dsantiago> Question: Is any of this work useful for putting back into Clojure as part of CinC? |
| 20:06 | `fogus | mdeboard; Good question. Hopefully stuarthalloway picks it. :-) |
| 20:06 | ahriman53072 | ^( |
| 20:06 | frou100 | QUESTION: Has there been any anecdotal performance testing on iPhone/Android? |
| 20:06 | stuartsierra | not yet |
| 20:06 | Raynes | Question: How long has this been being done on the down low? I've seen very few awesome secrets like this kept well. |
| 20:06 | stuarthalloway | Raynes: as long as it takes to build something in a powerful language. Check the git history |
| 20:06 | mdeboard | crystal meth for javascript |
| 20:06 | Raynes | Especially given the number of people. |
| 20:06 | licoresse | :-) |
| 20:07 | daniel123 | lol |
| 20:07 | devn | crystal math, cooking up a batch of derivatives and inverse functions to get your fix |
| 20:07 | ohpauleez | Please take frou100's question |
| 20:07 | redinger | Raynes: All the contributors were threatened with death if they leaked info |
| 20:07 | abedra | what about the bacon of javascript |
| 20:07 | Raynes | redinger: I bet. ;) |
| 20:07 | mjg123 | frou100++ |
| 20:07 | daniel123 | core.logic |
| 20:07 | daniel123 | ? |
| 20:07 | david` | can I come to relevance on Friday and try to add clojurescript support to rails 3.1? |
| 20:07 | stuarthalloway | daniel123: I like your question |
| 20:07 | thickey | is enlive ported yet? |
| 20:07 | mabes_ | 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:07 | redinger | I think it was in dev for 6 weeks, right? |
| 20:07 | stuartsierra | frou100: We haven't tested on mobile platforms yet, but it's all just JS, so whatever works there. |
| 20:07 | `fogus | daniel123: I see no reason why core.logic will not work |
| 20:08 | ohpauleez | thanks david! |
| 20:08 | frou100 | alright - thanks |
| 20:08 | devn | there's a lot of optimization in core.logic |
| 20:08 | redinger | Atlas? |
| 20:08 | daniel123 | Thanks stuarthalloway. |
| 20:08 | redinger | cemerick: :) |
| 20:09 | no_mind | devn: cant figure out the url for devnotes/todo.org |
| 20:09 | kriyative | @stuarthalloway How long has ClojureScript been in development? |
| 20:09 | devn | no_mind: it's in the clojurescript repo |
| 20:09 | redinger | no_mind: https://github.com/clojure/clojurescript/blob/master/devnotes/todo.org |
| 20:09 | gfodor | sorry to repost in case my q was missed :) |
| 20: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:09 | devn | redinger: thanks :) |
| 20:09 | gfodor | (sorry if i missed this jumped into the talk late) |
| 20:09 | stuarthalloway | kriyative: hammock time or coding time? |
| 20:09 | kriyative | @stuarthalloway yes. |
| 20:09 | kriyative | @stuarthalloway I mean, both. |
| 20:10 | cemerick | redinger: :-) 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:10 | ahriman53072 | ^( |
| 20:10 | bmillare | holy crap thats fast 3months |
| 20:10 | kriyative | @stuarthalloway very cool, thanks. |
| 20:11 | gfodor | i'm on it! :) |
| 20:11 | ohpauleez | haha |
| 20:11 | hv | stuarthalloway: I want to invoke (embed) cljs in the clj, not put the cljs compiler in the browser. |
| 20:12 | daniel123 | "do you get your knowledge from your hair? if so, please slow down because we do not all have nice hair." |
| 20:12 | ohpauleez | I'm curious about moving forward, what kind of unified ecosystem are we shooting for |
| 20:12 | kovasb | question: whats the debugging story? |
| 20:12 | ohpauleez | as a community |
| 20:12 | no_mind | ah! I was looking for devnotes in jira |
| 20:12 | ohpauleez | ie: unify on node? unify with current tools (lein?) |
| 20:12 | devn | no_mind: no worries. |
| 20:12 | hv | like (to-html [:html [:head [:script (cljs (def a 10)]]] [:body ...]]) |
| 20:12 | licoresse | kovasb; +++ |
| 20:12 | pmbauer | Will design docs for ClojureScript (going forward) live in Jira? |
| 20:13 | pmbauer | (discussions, etc) |
| 20:13 | stuarthalloway | pmbauer: in all probability |
| 20:13 | stuarthalloway | we have been very busy and that decision was not on the path for delivering tonight |
| 20:13 | stuarthalloway | anybody running the twitterbuzz thing on your own? |
| 20:13 | l0st3d | is there an agents implementation that uses timeouts in the browser? |
| 20:13 | ohpauleez | haha |
| 20:14 | ohpauleez | yes |
| 20:14 | ohpauleez | exactly |
| 20:14 | ohpauleez | and tools for both places |
| 20:14 | bmillare | what clojure language features won't ever be in clojurescript? |
| 20:14 | stuartsierra | bmillare: Java interop. ;) |
| 20:14 | bmillare | besides javainterop :) |
| 20:14 | brehaut | bmillare: that implies you expect javascript etc to not change |
| 20:14 | ohpauleez | haha |
| 20:14 | ohpauleez | touche |
| 20:14 | pmbauer | Zing! |
| 20:15 | ohpauleez | ok |
| 20:15 | ohpauleez | I'm satisfied with that |
| 20:15 | daniel123 | Repeat the q, please. |
| 20:15 | devn | ^^ |
| 20:15 | alandipert | question was about unifying clojure/clojurescript core |
| 20:15 | hv | merge clojure.core with clojure.org |
| 20:15 | hv | ? |
| 20:16 | hv | sorry, I thought that was the question |
| 20:16 | naeu | will we therefore see more utility fns where we might typically have been encouraged to use direct java methods - i.e. (.endsWith "foo" "o") |
| 20:16 | alandipert | hv: the 'core' library in both languages is similar but not identical |
| 20:16 | kephale | W.R.T unifying clojure/clojurescript, is it plausible to have shared memory between a server app in clojure and a client in clojurescript? |
| 20:16 | daniel123 | lol |
| 20:16 | Raynes | They 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:16 | stuartsierra | kephale: umm, no. |
| 20:16 | Scorchin | Raynes: :D |
| 20:17 | stuarthalloway | kephale: you have to be kidding |
| 20:17 | ohpauleez | haha |
| 20:17 | frou100 | naeu: good question |
| 20:17 | daniel123 | I know Raynes. I think it's where he gets his knowledge. |
| 20:17 | cemerick | Raynes: Wow. |
| 20:17 | cemerick | :-D |
| 20:17 | devn | hahaha |
| 20:17 | Scorchin | hahaha |
| 20:17 | abedra | how probable ? |
| 20:17 | maacl | that's just sick |
| 20:18 | david` | since clojurescript has js interop, does the clojurescript coe over in place? |
| 20:18 | hv | maybe he wants easily shared state? |
| 20:18 | lnostdal-laptop | Question: Might already have been mentioned this, but does stuff like add-watch etc. work? |
| 20:18 | rimmjob_ | 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:18 | rimmjob_ | oops |
| 20:18 | ohpauleez | Thank you so much Rich, and the whole team that worked on this |
| 20:18 | ohpauleez | amazing stuff |
| 20:18 | daniel123 | thanks everybody!!! stuarthalloway, ustream worked out great. |
| 20:18 | mjg123 | indeed - thanks all |
| 20:18 | stuartsierra | Thanks everyone for listening. |
| 20:18 | maacl | hickey for president |
| 20:18 | david` | that was great |
| 20:18 | gfodor | yes this awesome! thanks so much |
| 20:18 | alandipert | thanks everybody. and for sticking with us through the condom ads |
| 20:18 | jdwbell | awesome! thanks for streaming this! |
| 20:18 | devn | rimmjob_: I gotta say man, your nick, so hard to tell if you're a troll... |
| 20:18 | mudge | thank you |
| 20:18 | devn | alandipert: Oh, I was sticking through it alright. |
| 20:18 | stuarthalloway | heading to the bar ... |
| 20:18 | bmillare | great job to all who worked on the project |
| 20:18 | alandipert | devn: bazinga |
| 20:19 | stuarthalloway | bye y'all |
| 20:19 | pbuckley | What? 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:19 | bmillare | stuarthalloway: have a good time |
| 20:19 | lnostdal-laptop | cool stuff, good night .. have fun at the pub .. heh :) |
| 20:19 | devn | you new york kids have fun. |
| 20:19 | Scorchin | nice job guys! |
| 20:19 | ohpauleez | see ya guys |
| 20:19 | naeu | right, bedtime for me - enjoy the bar everyone |
| 20:19 | devn | ciao |
| 20:19 | scottj | for calling a javascript method in clojurescript do you use .foo? |
| 20:19 | alandipert | time to drink enough to forget javascript's bad parts |
| 20:19 | pmbauer | Big congrats to clojure/core |
| 20:19 | ahriman53072 | say please how can i iterate through sequence of maps. |
| 20:19 | amalloy | thanks for the broadcast guys, it was very nice |
| 20:19 | devn | alandipert: impossible. |
| 20:19 | stuartsierra | Thank you all for listening! |
| 20:19 | `fogus | Awesome that the video was crystal clear. |
| 20:19 | stuartsierra | Check out the GitHub repo, and continue the discussions on the Clojure mailing list. |
| 20:20 | hv | I missed the beginning. does ustream store it? |
| 20:20 | frou100 | cheers stuartsierra |
| 20:20 | pbuckley | hv I don't think so, I think it was live only |
| 20:20 | Raynes | hv: A video is planned to be made available later. |
| 20:20 | neotyk | Kudos to clojure/core and big thanks for streaming it |
| 20:20 | abedra | hv it was recorded |
| 20:20 | hv | thanks |
| 20:21 | abedra | hv, it will be available later |
| 20:22 | tbatchelli | great job putting this online guys! |
| 20:23 | stuartsierra | thanks! |
| 20:23 | stuartsierra | Good night all! |
| 20:28 | maacl | I get ReferenceError: goog is not defined when trying to run the node examples |
| 20:30 | the-kenny | Clojurescript fits perfectly into my current hobby project :) Thanks for this great work! |
| 20:31 | devn | the-kenny: link me? |
| 20:32 | the-kenny | devn: 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:33 | the-kenny | devn: Sorry, I have to sleep now. It's 2:30AM here :/ Good night! |
| 20:33 | Bronsa | yeah me too |
| 20:34 | Bronsa | good night everybody |
| 20:34 | devn | the-kenny: night! |
| 20:34 | maacl | Can anyone compile the node samples? |
| 20:40 | maacl | Anyone? |
| 20:40 | clojurebot | Please 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:42 | kriyative | xk |
| 20:56 | @chouser | maacl: is it not working for you? |
| 20:56 | maacl | chouser: got the hellonode working - but nodels compiles but does nothing |
| 20:57 | chouser | maacl: are you running it as shown in the quickstart wiki? |
| 20:59 | maacl | nope - was just trying same approach as for hellonode - will try the wiki way now |
| 21:00 | chouser | well, if it compiled, you may only need to add a directory to the command-line args |
| 21:01 | maacl | ls |
| 21:02 | brehaut | maacl: Clojurescript.iml devnotes readme.txt src bin epl-v10.html samples closure lib script |
| 21:03 | Scriptor | will clojurescript and clojure continue to share the same irc channel, or will there be a split sometime soon? |
| 21:04 | redinger | Scriptor: Current plan is to continue using Clojure channel |
| 21:07 | maacl | chouser: yeah - if I add the main src dir it works |
| 21:07 | chouser | cool! |
| 21:08 | maacl | chouser: why does't what it need end up in the out dir? |
| 21:08 | dsop | hmm getting it work with openjdk doesn't seem to be a 2min fix |
| 21:13 | mattmitchell | could someone recommend how i could recursively modify key values in a map? |
| 21:13 | chouser | dsop: the compiler or the repl? |
| 21:14 | Raynes | technomancy: Ping. |
| 21:14 | amalloy | mattmitchell: uhhmmmm, sounds like reduce or iterate but you haven't been very specific |
| 21:14 | dsop | chouser: the repl at the moment |
| 21:14 | dsop | chouser: and the compiler. at least require cljs.compiler fails |
| 21:15 | gfodor | so clojurescript doesn't support runtime compilation, but does it support runtime macro expansion? |
| 21:15 | mattmitchell | amalloy: ok something like: {:address {:line-1 "xxx" :city-name "xxx"}} becomes {:address {:line_1 "xxx" :city_name "xxx}} |
| 21:15 | Scriptor | gfodor: seems so |
| 21:15 | technomancy | Raynes: about to head out, but shoot |
| 21:15 | gfodor | neat |
| 21:15 | chouser | dsop: openjdk doesn't include rhino, does it? That'll be a showstopper for the repl. |
| 21:15 | mattmitchell | amalloy: just changing hyphens to underscores |
| 21:16 | chouser | gfodor: even clojure doesn't support runtime macro expansion |
| 21:16 | Raynes | technomancy: Does leiningen do anything if a dependency is listed without a version: :dependencies [[foo]] |
| 21:16 | dsop | chouser: well you can install it, but it's a different namesapce then |
| 21:16 | chouser | gfodor: so no, clojurescript doesn't support that |
| 21:16 | Raynes | Cake defaults to whatever is latest, and I'm trying to reconcile marginalia's output. |
| 21:16 | mattmitchell | amalloy: but there are many maps, all with varying depths/keys |
| 21:16 | chouser | dsop: ah |
| 21:16 | gfodor | thx chouser |
| 21:17 | technomancy | Raynes: no, leiningen doesn't encourage "just give me whatever" versions |
| 21:17 | dsop | chouser: 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:17 | dsop | to use the mozilla rhino namespace |
| 21:17 | dsop | instead of the sun one |
| 21:17 | Raynes | technomancy: Thanks. |
| 21:17 | technomancy | I mean, you can specify ranges if that's what you want, but it has to be explicit |
| 21:17 | amalloy | mattmitchell: sounds like a job for clojure.walk, i guess |
| 21:17 | Raynes | technomancy: Well, I certainly wasn't implying that it was a good idea. ;) |
| 21:17 | mattmitchell | amalloy: ok thanks |
| 21:17 | amalloy | you could implement it by hand without too much work, i think |
| 21:18 | technomancy | Raynes: I blame the rubyists |
| 21:18 | Raynes | I blame television. |
| 21:18 | technomancy | they are still discovering the perils of open-ended version ranges |
| 21:19 | chouser | dsop: the compiler will be easier to fix, and probably necessary anyway for the repl |
| 21:20 | dsop | chouser: I don't think it's taht easy. it's the interaction between javax.script.ScriptEngineManager and the mozilla rhino stuff |
| 21:20 | dsop | but I have to dig deeper into the javadocs before I can say what exactly causes it. |
| 21:21 | amalloy | &((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:21 | lazybot | ⇒ {:test_me {:data {:val_here 1}}} |
| 21:21 | Scriptor | gfodor: would you like to do that PHP...in lisp? |
| 21:21 | amalloy | haha Scriptor, way to jump on that opportunity |
| 21:21 | gfodor | I wish i could |
| 21:22 | gfodor | are you the guy who wrote that php lisp thing? |
| 21:22 | Scriptor | yep |
| 21:22 | gfodor | nice :) that looked awesome |
| 21:22 | mattmitchell | amalloy: wow awesome! i'll check it out :) |
| 21:22 | gfodor | sadly, I'd have a hard time getting the powers that be to agree to it |
| 21:22 | gfodor | i couldn't even get clojure allowed in our JVM environment |
| 21:23 | Scriptor | amalloy: must convert moar |
| 21:23 | dsop | Scriptor: which one? |
| 21:24 | Scriptor | gfodor: 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:24 | Scriptor | dsop: it's not really clojure, but kinda close, http://scriptor.github.com/pharen/ |
| 21:25 | Scriptor | I've taken a lot of ideas from clojure though, so a lot of looking at its source :) |
| 21:25 | gfodor | yeah, not gonna happen. we have a culture of basically PHP or die |
| 21:25 | gfodor | which is fine for certain things but not others |
| 21:25 | Raynes | gfodor: Mutiny. Take over the company. Conquer! |
| 21:25 | gfodor | helps spread code around, but if you want to do something hard, good luck! |
| 21:25 | Scriptor | I'll help :p |
| 21:26 | dsop | Scriptor: ah quite nice, but probably not very suitable in bigger environments with other devs working in non-lisp mode on the php sources |
| 21:27 | Scriptor | exactly, but then again when it comes to cross-language work coffeescript has done nicely |
| 21:27 | Scriptor | and now there's cljs! |
| 21:27 | dsop | if i would just get it to work :) |
| 21:27 | gfodor | yes, I am overcome with guilt thinking I might have to break up with coffeescript |
| 21:28 | Scriptor | hmm, very different coding styles, js was partially meant to be somewhat functional anyway |
| 21:28 | Scriptor | so going all the way would be nice |
| 21:29 | gfodor | you can't beat client/server parity |
| 21:29 | gfodor | coffee you get node of course but having the jvm is the elephant in the room |
| 21:29 | amalloy | the jvm is in fact an actual elephant |
| 21:29 | gfodor | yup |
| 21:29 | pmbauer | It doesn't look like any of the clojure/core devs have tried ClojureScript on windows |
| 21:29 | Scriptor | elephants have a high top speed, so that's an accurate analogy |
| 21:30 | pmbauer | getting a Pattern error when executing (re-pattern java.io.File/separator) on win |
| 21:30 | pmbauer | separator = "\\" on windows ... not a valid regex |
| 21:31 | pmbauer | cljs/compiler.clj:1096 |
| 21:31 | amalloy | pmbauer: (re-pattern (java.util.regex.Pattern/quote (java.io.File/separator))) would work |
| 21:32 | amalloy | &(re-pattern (java.util.regex.Pattern/quote (java.io.File/separator))) would work |
| 21:32 | lazybot | ⇒ #"\Q/\E" |
| 21:32 | pmbauer | amalloy: indeed ... fixed |
| 21:32 | Scriptor | trying to run the bootstrap script on windows under mingw32, it says it can't find clojure/compiler/compiler.jar |
| 21:32 | pmbauer | ...and thanks |
| 21:32 | Scriptor | oh, nvm |
| 21:33 | Scriptor | unzip command not found -.- |
| 21:37 | pmbauer | Hm ... running into more path issues with the generated .js |
| 21:38 | pmbauer | ...will have to try again when I get back to my linux box |
| 21:38 | pmbauer | ...definitely not portable yet |
| 21:48 | pmbauer | Does anyone know how to file bug reports/patches for ClojureScript? |
| 21:51 | redinger | pmbauer: For now, please post the bug report to the Clojure mailing list. Our reporting system will be in place soon. |
| 21:51 | pmbauer | Okay |
| 21:52 | pmbauer | Should I post patches there as well? |
| 21:52 | pmbauer | (signed CA) |
| 21:54 | seancorfield_ | will there be a clojurescript mailing list? or do you expect both implementations to be served by one list? |
| 21:55 | redinger | pmbauer: I don't have a good answer yet, unfortunately. |
| 21:56 | redinger | seancorfield_: Currently we're planning on a single mailing list |
| 21:57 | redinger | pmbauer: I don't see us taking patches prior to Friday. |
| 21:57 | redinger | Hopefully Friday we'll have something setup for that |
| 21:57 | seancorfield_ | cool, thanx redinger!! |
| 22:03 | ahriman53072 | i 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:09 | buddywilliams | good evening |
| 22:09 | buddywilliams | I am wondering how you eval a form that's quoted? |
| 22:10 | buddywilliams | let me pull together a quick example |
| 22:10 | buddywilliams | (apply func (first lst)) |
| 22:11 | buddywilliams | gets me a java.lang.Integer cannot be cast to clojure.lang.Ifn |
| 22:11 | buddywilliams | exception |
| 22:11 | buddywilliams | I would like something like (quote (first lst)) |
| 22:13 | buddywilliams | maybe everyone is sleeping at this hour? |
| 22:18 | kephale | ,(apply (fn [x] x) (first (list 1 2))) |
| 22:18 | clojurebot | java.lang.IllegalArgumentException: Don't know how to create ISeq from: java.lang.Integer |
| 22:18 | kephale | ,((fn [x] x) (first (list 1 2))) |
| 22:18 | clojurebot | 1 |
| 22:49 | amalloy | hmmm, 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:12 | technomancy | I wonder if the moratorium on single-segment namespaces will be carried over into clojurescript out of habit. |
| 23:13 | chouser | amalloy: are you sure you're using sun jvm not openjdk or something else? |
| 23:14 | amalloy | chouser: not at all. i'm certain i'm using openjdk |
| 23:15 | amalloy | i 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:15 | chouser | amalloy: ah, yeah, that won't work. yet, anyway. |
| 23:17 | amalloy | technomancy: habit? it's critical for those folks who want to write their app once and run it on clr/jvm/js! |
| 23:18 | technomancy | amalloy: write once, run anywhere except openjdk? |
| 23:19 | dsantiago | Seems we're a long way from that being possible for non-trivial programs. |
| 23:19 | technomancy | dsantiago: I think amalloy is joking |
| 23:19 | amalloy | i assume a C backend is just days away |
| 23:19 | technomancy | dsantiago: rich has explicitly stated that's a non-goal. |
| 23:19 | dsantiago | technomancy: I know, but I did not pick up a malloy's sarcasm. |
| 23:20 | technomancy | he's certainly a sly one |
| 23:22 | dsantiago | It wouldn't be unreasonable to hope for that in Clojure one day, given how far other languages have gone on that path either. |
| 23:22 | technomancy | that sounds like a stretch. JS doesn't even have integers. |
| 23:22 | chouser | amalloy: updated the quickstart wiki, thanks. |
| 23:23 | dsantiago | Well, I'm still not used to JS being part of this world. |
| 23:23 | technomancy | I've toyed with the idea of an elisp port |
| 23:23 | dsantiago | JVM/CLR is not so crazy. |
| 23:23 | chouser | technomancy: easier now that before! |
| 23:24 | technomancy | chouser: yeah, I've been putting it off because I didn't want to be the first one |
| 23:24 | amalloy | on a crazy scale from 1 to 5, i give jvm/clr a 3 |
| 23:26 | hv | how should I turn munged names like class_QMARK_ back to class? ? |
| 23:27 | technomancy | ok, brainstorming time, if you don't mind. notable lowly minions from fiction. go. |
| 23:27 | technomancy | all i've got so far is oompa lompas and the peons from Warcraft. |
| 23:28 | technomancy | maybe drinnols, but that's a stretch. |
| 23:28 | dsantiago | ewoks |
| 23:29 | technomancy | ewoks don't really serve an overlord; I'm not sure they'd count as minions as they're self-ruled. |
| 23:29 | Penten | goblins in lots of fantasy settings |
| 23:29 | technomancy | except for that part with C3PO |
| 23:29 | dsantiago | They don't until people land and tell them to build traps and stuff. |
| 23:30 | technomancy | also, lucasfilm is trigger-happy with the trademark C&Ds; see droid. |
| 23:31 | hv | what are you naming? |
| 23:31 | technomancy | hv: http://p.hagelb.org/minions.clj.html |
| 23:31 | technomancy | work queueing in under 100 loc |
| 23:32 | technomancy | it'll probably grow to 150 once I add timeouts and pooling though. |
| 23:33 | dsantiago | borg? |
| 23:36 | technomancy | https://github.com/orionz/minion <= already a very similar ruby lib |
| 23:38 | hv | it is more like a wisp than a peon |
| 23:39 | thorstadt_ | golem? |
| 23:40 | stuarthalloway | Evening all... |
| 23:42 | Scriptor | evening stuarthalloway |
| 23:50 | technomancy | golem's not bad |
| 23:51 | hugod | oliver twist |
| 23:52 | technomancy | but "die roboter" would allow me to quote German in the readme: http://www.vinylsearcher.com/largeImages/894072.jpg |
| 23:54 | amalloy | technomancy: nanites aren't *exactly* minions, but... |
| 23:54 | dsantiago | But, libraries with first and last names is a trend you've started. |
| 23:54 | technomancy | dsantiago: well, due to the single-segment namespace moratorium. |
| 23:55 | technomancy | amalloy: too good to remain unclaimed, unfortunately: http://www.rubyinside.com/nanite-self-assembling-cluster-of-ruby-daemons-1245.html |
| 23:56 | amalloy | technomancy: i have good news: ruby code is namespaced differently than clojure code |
| 23:56 | technomancy | amalloy: heh; true. but from a fictional angle it's a stretch. |
| 23:56 | amalloy | yes |
| 23:58 | amalloy | technomancy: honeybees, except you want something with a proper name |