Re: core.typed question (maybe a bug?)
Hm, Is it possible that core.typed may be influenced by the repl state? New day and a new try I got these both working: (t/ann dt-hiccup [(t/HVec [Keyword (t/U Keyword (t/HVec [Keyword Number])) t/Any t/Any *]) - html-form-group]) (defmulti dt-hiccup (t/fn [col :- (t/HVec [Keyword (t/U Keyword (t/HVec [Keyword Number])) t/Any t/Any *])] (if (vector? (second col)) (first (second col)) (second col and (t/ann dt-hiccup [(t/HVec [Keyword (t/U Keyword (t/HVec [Keyword Number])) t/Any t/Any *]) - html-form-group]) (defmulti dt-hiccup (t/fn [col :- (t/HVec [Keyword (t/U Keyword (t/HVec [Keyword Number])) t/Any t/Any *])] (let [[_ s] col] (if (vector? s) (first s) s Which are the same basically regarding type declarations. Sorry for making such a noise, maybe a simple repl restart would have fixed this. Thanks, Sven Am Donnerstag, 16. April 2015 22:43:41 UTC+2 schrieb Sven Richter: Hi, I tried both destructuring and the nth form instead of second and first. None of which worked. However, if I change the Union to Intersection in (t/HVec [Keyword (t/U Keyword (t/HVec [Keyword Number])) t/Any t/Any *]) it works for the definition of the multimethod. Does that make sense? I thought Union was either one type or the other. Thanks, Sven Am Donnerstag, 16. April 2015 21:44:25 UTC+2 schrieb Ambrose Bonnaire-Sergeant: I don't think second's type is is smart enough. Try using nth or destructuring instead: (let [[f s] v] (if (vector? s) (first s) s)) or (if (vector? (nth v 1)) (first (nth v 1)) s) Thanks, Ambrose On Thu, Apr 16, 2015 at 3:39 PM, Sven Richter sve...@googlemail.com wrote: Hi, I have this code: (defalias html-label (t/HVec [Keyword (t/HMap :mandatory {:for String}) String])) (defalias html-form (t/HVec [Keyword (t/HMap :mandatory {:id String}) t/Any *])) (defalias html-form-group (t/HVec [html-label html-form])) (t/ann dt-hiccup [(HVec [Keyword (U Keyword (HVec [Keyword Number])) t/Any t/Any *]) - html-form-group]) (defmulti dt-hiccup (t/fn [col :- pt/et-column] (if (vector? (second col)) (first (second col)) (second col And here comes the error message when checking this function: Type Error (leiningen/td_to_hiccup.clj:25:34) Polymorphic function first could not be applied to arguments: Polymorphic Variables: x Domains: (t/HSequential [x t/Any *]) (t/Option (t/EmptySeqable x)) (t/NonEmptySeqable x) (t/Option (clojure.lang.Seqable x)) Arguments: (t/U Keyword (t/HVec [clojure.lang.Keyword java.lang.Number])) Ranges: x :object {:path [(Nth 0)], :id 0} nil x (t/Option x) in: (first (second col)) in: (first (second col)) ExceptionInfo Type Checker: Found 1 error clojure.core/ex-info (core. clj:4403) My assumption is that the check (if (vector? (second col will return only true if it is this type: (HVec [Keyword Number]). However, I have the impression that core.typed does not resolve the if expression properly. Or maybe I am missing something completely. Any hints or recommendations? Thanks, Sven -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: core.typed question (maybe a bug?)
I added your explanation the the wiki of core.typed: https://github.com/clojure/core.typed/wiki/Intersection-vs.-Union I hope that is fine for you. Am Donnerstag, 16. April 2015 23:25:42 UTC+2 schrieb Ambrose Bonnaire-Sergeant: It might help thinking in terms of Java interfaces, Foo and Bar. (definterface Foo (foo [])) (definterface Bar (bar [])) (I Foo Bar) is a value that extends both Foo and Bar. (deftype IImp [] Foo (foo [this]) Bar (bar [this])) (-IImp) is of type Foo, Bar, (I Foo Bar) and (U Foo Bar). Assuming we assign (-IImp) the type (I Foo Bar), we can call these safely: (let [i :- (I Foo Bar), (-IImp)] (.foo i) (.bar i)) A type that just implements Foo is not a Bar, so we can't claim it's a Foo *and* a Bar. (deftype UImp [] Foo (foo [this])) (-UImp) is of type Foo, and (U Foo Bar). Assuming we assign (-UImp) the type (U Foo Bar), the same operations now must cast at runtime. (let [i :- (U Foo Bar), (-UImp)] (if (instance? Foo) (.foo i) (.bar i)) Thanks, Ambrose On Thu, Apr 16, 2015 at 5:15 PM, Sven Richter sve...@googlemail.com javascript: wrote: I meant when I change: (t/HVec [Keyword (t/U Keyword (t/HVec [Keyword Number])) t/Any t/Any *]) to (t/HVec [Keyword (t/I Keyword (t/HVec [Keyword Number])) t/Any t/Any *]) ^^ to ^^ Still I think that making an intersection of it is wrong conceptually. Thanks, Sven Am Donnerstag, 16. April 2015 23:08:30 UTC+2 schrieb Ambrose Bonnaire-Sergeant: I don't see an intersection, what do you mean? Thanks, Ambrose On Thu, Apr 16, 2015 at 4:43 PM, Sven Richter sve...@googlemail.com wrote: Hi, I tried both destructuring and the nth form instead of second and first. None of which worked. However, if I change the Union to Intersection in (t/HVec [Keyword (t/U Keyword (t/HVec [Keyword Number])) t/Any t/Any *]) it works for the definition of the multimethod. Does that make sense? I thought Union was either one type or the other. Thanks, Sven Am Donnerstag, 16. April 2015 21:44:25 UTC+2 schrieb Ambrose Bonnaire-Sergeant: I don't think second's type is is smart enough. Try using nth or destructuring instead: (let [[f s] v] (if (vector? s) (first s) s)) or (if (vector? (nth v 1)) (first (nth v 1)) s) Thanks, Ambrose On Thu, Apr 16, 2015 at 3:39 PM, Sven Richter sve...@googlemail.com wrote: Hi, I have this code: (defalias html-label (t/HVec [Keyword (t/HMap :mandatory {:for String }) String])) (defalias html-form (t/HVec [Keyword (t/HMap :mandatory {:id String}) t/Any *])) (defalias html-form-group (t/HVec [html-label html-form])) (t/ann dt-hiccup [(HVec [Keyword (U Keyword (HVec [Keyword Number])) t/Any t/Any *]) - html-form-group]) (defmulti dt-hiccup (t/fn [col :- pt/et-column] (if (vector? (second col)) (first (second col)) (second col And here comes the error message when checking this function: Type Error (leiningen/td_to_hiccup.clj:25:34) Polymorphic function first could not be applied to arguments: Polymorphic Variables: x Domains: (t/HSequential [x t/Any *]) (t/Option (t/EmptySeqable x)) (t/NonEmptySeqable x) (t/Option (clojure.lang.Seqable x)) Arguments: (t/U Keyword (t/HVec [clojure.lang.Keyword java.lang.Number]) ) Ranges: x :object {:path [(Nth 0)], :id 0} nil x (t/Option x) in: (first (second col)) in: (first (second col)) ExceptionInfo Type Checker: Found 1 error clojure.core/ex-info (core .clj:4403) My assumption is that the check (if (vector? (second col will return only true if it is this type: (HVec [Keyword Number]). However, I have the impression that core.typed does not resolve the if expression properly. Or maybe I am missing something completely. Any hints or recommendations? Thanks, Sven -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this
[ANN] SF Reagent Meetup TODAY 6:30pm @Loyal3 @Meerkat
- Thursday, April 16, 2015 6:30 PM - Loyal3 http://maps.google.com/maps?f=qhl=enq=150+California+St+Ste+400%2C+San+Francisco%2C+CA%2C+US 150 California St Ste 400, San Francisco, CA (edit map http://www.meetup.com/Reagent-Minimalistic-React-for-ClojureScript/events/221710610/ ) - *two blocks from the Embarcadero BART on California and Front* - *SF Reagent *Meetup Agenda: IMPORTANT: We will be streaming the event live MEERKAT @ 7:00PM PDT (GMT time -7 hours) today! -- Follow @marcfawzi on Twitter for live updates. To watch on the web (non-interactive mode) http://meerkatapp.co/marcfawzi/sch-1a612560-df50-4d13-a00c-c828eee742c9 Meerkat is available on iOS and viewers are encouraged to download the app (interactive mode) https://itunes.apple.com/us/app/meerkat-tweet-live-video/id954105918?mt=8 Unofficial Meerkat app for Android - made with love by Meerkat's engineers (interactive mode) https://play.google.com/store/apps/details?id=co.getair.meerkathl=en 1. 6:30pm - 7:00pm: meet greet, food and drinks, social 2. 7:00pm - 7:30pm: (LIVE STREAM via Meerkat) Intro to Reagent-Template (repo: https://github.com/reagent-project/reagent-template) --- by its author Dmitri Sotnikov(also author of Luminus.) Dmitri will be presenting via Google hangout on a big screen and you will be able to ask him questions live. This should be interesting. 3. 7:30pm - 7:45pm: (LIVE STREAM via Meerkat) Re-frame and Reagent port of Angular's phonecat (repo: https://github.com/dhruvp/angular-phonecat-re-frame) -- by its author Dhruv Parthasarathy (MIT) 4. 7:45-8:00pm (LIVE STREAM via Meerkat, updated description): Reusable Reagent Components with App-State Driven CSS Transitions (watch: http://imgur.com/04OaRw3) -- by Marc Fawzi -- this live demo will include Learning Outcomes for smooth animations, component styling, and sharing the components via internal maven repo Artifactory and our TeamCity deploy pipeline, among other things. *A professionally produced video of the event that includes screen captures of on-stage and Google Hangout presentations will be shared within a week of the event.* *SF FOLKS, HOPE TO SEE YOU IN PERSON! * *LOCAL BEER CHOICES AND SAME AWESOME PIZZAS (w/ GF/DF options)* - -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Back to Periscope (What The Hey!) Re: [ANN] SF Reagent Meetup TODAY 6:30pm @Loyal3 @Meerkat
Sorry guys, we were really excited about moving to Meerkat but when we tried it just a while ago it gave us a frozen picture and was logging not ready in a loop. So back to Periscope. Please follow my Twitter handle @marcfawzi from Periscope and we'll be live at 7pm. We have a fun meetup ahead. Hope to see you. :) On Thu, Apr 16, 2015 at 7:34 AM, Marc Fawzi marc.fa...@gmail.com wrote: - Thursday, April 16, 2015 6:30 PM - Loyal3 http://maps.google.com/maps?f=qhl=enq=150+California+St+Ste+400%2C+San+Francisco%2C+CA%2C+US 150 California St Ste 400, San Francisco, CA (edit map http://www.meetup.com/Reagent-Minimalistic-React-for-ClojureScript/events/221710610/ ) - *two blocks from the Embarcadero BART on California and Front* - *SF Reagent *Meetup Agenda: IMPORTANT: We will be streaming the event live MEERKAT @ 7:00PM PDT (GMT time -7 hours) today! -- Follow @marcfawzi on Twitter for live updates . To watch on the web (non-interactive mode) http://meerkatapp.co/marcfawzi/sch-1a612560-df50-4d13-a00c-c828eee742c9 Meerkat is available on iOS and viewers are encouraged to download the app (interactive mode) https://itunes.apple.com/us/app/meerkat-tweet-live-video/id954105918?mt=8 Unofficial Meerkat app for Android - made with love by Meerkat's engineers (interactive mode) https://play.google.com/store/apps/details?id=co.getair.meerkathl=en 1. 6:30pm - 7:00pm: meet greet, food and drinks, social 2. 7:00pm - 7:30pm: (LIVE STREAM via Meerkat) Intro to Reagent-Template (repo: https://github.com/reagent-project/reagent-template) --- by its author Dmitri Sotnikov(also author of Luminus.) Dmitri will be presenting via Google hangout on a big screen and you will be able to ask him questions live. This should be interesting. 3. 7:30pm - 7:45pm: (LIVE STREAM via Meerkat) Re-frame and Reagent port of Angular's phonecat (repo: https://github.com/dhruvp/angular-phonecat-re-frame) -- by its author Dhruv Parthasarathy (MIT) 4. 7:45-8:00pm (LIVE STREAM via Meerkat, updated description): Reusable Reagent Components with App-State Driven CSS Transitions (watch: http://imgur.com/04OaRw3) -- by Marc Fawzi -- this live demo will include Learning Outcomes for smooth animations, component styling, and sharing the components via internal maven repo Artifactory and our TeamCity deploy pipeline, among other things. *A professionally produced video of the event that includes screen captures of on-stage and Google Hangout presentations will be shared within a week of the event.* *SF FOLKS, HOPE TO SEE YOU IN PERSON! * *LOCAL BEER CHOICES AND SAME AWESOME PIZZAS (w/ GF/DF options)* - -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[ANN] descjop v0.1.0
Hi, descjop v0.1.0 (https://github.com/karad/lein_template_descjop) has just been released today! A Leiningen template for Web based desktop application with Atom-Shell(https://github.com/atom/atom-shell/). you can try this. $ lein new descjop YOUR_APP_NAME Check it out! https://github.com/karad/lein_template_descjop https://clojars.org/descjop/lein-template Kazuhiro Hara Kazuhiro Hara (Greative LLC http://greative.jp/) {:mail kazuhi...@gmail.com :twitter https://twitter.com/kara_d} -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [reagent] Re: [ANN] SF Reagent Meetup TODAY 6:30pm @Loyal3 @Meerkat
yes, will post link here sometime next week all 3 presentations were screen captured too so it will be very easy to follow Sent from my iPhone On Apr 17, 2015, at 7:12 AM, Jeremy Vuillermet jeremy.vuiller...@gmail.com wrote: Will the event video be uploaded somewhere ? If yes, where !? Missed the live stream unfortunately. Living in France doesn't help ... On Thursday, April 16, 2015 at 4:35:38 PM UTC+2, marc fawzi wrote: Thursday, April 16, 2015 6:30 PM Loyal3 150 California St Ste 400, San Francisco, CA (edit map) two blocks from the Embarcadero BART on California and Front SF Reagent Meetup Agenda: IMPORTANT: We will be streaming the event live MEERKAT @ 7:00PM PDT (GMT time -7 hours) today! -- Follow @marcfawzi on Twitter for live updates. To watch on the web (non-interactive mode) http://meerkatapp.co/marcfawzi/sch-1a612560-df50-4d13-a00c-c828eee742c9 Meerkat is available on iOS and viewers are encouraged to download the app (interactive mode) https://itunes.apple.com/us/app/meerkat-tweet-live-video/id954105918?mt=8 Unofficial Meerkat app for Android - made with love by Meerkat's engineers (interactive mode) https://play.google.com/store/apps/details?id=co.getair.meerkathl=en 1. 6:30pm - 7:00pm: meet greet, food and drinks, social 2. 7:00pm - 7:30pm: (LIVE STREAM via Meerkat) Intro to Reagent-Template (repo: https://github.com/reagent-project/reagent-template) --- by its author Dmitri Sotnikov(also author of Luminus.) Dmitri will be presenting via Google hangout on a big screen and you will be able to ask him questions live. This should be interesting. 3. 7:30pm - 7:45pm: (LIVE STREAM via Meerkat) Re-frame and Reagent port of Angular's phonecat (repo:https://github.com/dhruvp/angular-phonecat-re-frame) -- by its author Dhruv Parthasarathy (MIT) 4. 7:45-8:00pm (LIVE STREAM via Meerkat, updated description): Reusable Reagent Components with App-State Driven CSS Transitions (watch: http://imgur.com/04OaRw3) -- by Marc Fawzi -- this live demo will include Learning Outcomes for smooth animations, component styling, and sharing the components via internal maven repo Artifactory and our TeamCity deploy pipeline, among other things. A professionally produced video of the event that includes screen captures of on-stage and Google Hangout presentations will be shared within a week of the event. SF FOLKS, HOPE TO SEE YOU IN PERSON! LOCAL BEER CHOICES AND SAME AWESOME PIZZAS (w/ GF/DF options) -- You received this message because you are subscribed to the Google Groups Reagent-Project group. To unsubscribe from this group and stop receiving emails from it, send an email to reagent-project+unsubscr...@googlegroups.com. To post to this group, send email to reagent-proj...@googlegroups.com. Visit this group at http://groups.google.com/group/reagent-project. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ANN] SF Reagent Meetup TODAY 6:30pm @Loyal3 @Meerkat
Will the event video be uploaded somewhere ? If yes, where !? Missed the live stream unfortunately. Living in France doesn't help ... On Thursday, April 16, 2015 at 4:35:38 PM UTC+2, marc fawzi wrote: Thursday, April 16, 2015 6:30 PM Loyal3 150 California St Ste 400, San Francisco, CA (edit map) two blocks from the Embarcadero BART on California and Front SF Reagent Meetup Agenda: IMPORTANT: We will be streaming the event live MEERKAT @ 7:00PM PDT (GMT time -7 hours) today! -- Follow @marcfawzi on Twitter for live updates. To watch on the web (non-interactive mode) http://meerkatapp.co/marcfawzi/sch-1a612560-df50-4d13-a00c-c828eee742c9 Meerkat is available on iOS and viewers are encouraged to download the app (interactive mode) https://itunes.apple.com/us/app/meerkat-tweet-live-video/id954105918?mt=8 Unofficial Meerkat app for Android - made with love by Meerkat's engineers (interactive mode) https://play.google.com/store/apps/details?id=co.getair.meerkathl=en 1. 6:30pm - 7:00pm: meet greet, food and drinks, social 2. 7:00pm - 7:30pm: (LIVE STREAM via Meerkat) Intro to Reagent-Template (repo: https://github.com/reagent-project/reagent-template) --- by its author Dmitri Sotnikov(also author of Luminus.) Dmitri will be presenting via Google hangout on a big screen and you will be able to ask him questions live. This should be interesting. 3. 7:30pm - 7:45pm: (LIVE STREAM via Meerkat) Re-frame and Reagent port of Angular's phonecat (repo:https://github.com/dhruvp/angular-phonecat-re-frame) -- by its author Dhruv Parthasarathy (MIT) 4. 7:45-8:00pm (LIVE STREAM via Meerkat, updated description): Reusable Reagent Components with App-State Driven CSS Transitions (watch: http://imgur.com/04OaRw3) -- by Marc Fawzi -- this live demo will include Learning Outcomes for smooth animations, component styling, and sharing the components via internal maven repo Artifactory and our TeamCity deploy pipeline, among other things. A professionally produced video of the event that includes screen captures of on-stage and Google Hangout presentations will be shared within a week of the event. SF FOLKS, HOPE TO SEE YOU IN PERSON! LOCAL BEER CHOICES AND SAME AWESOME PIZZAS (w/ GF/DF options) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ANN] SF Reagent Meetup TODAY 6:30pm @Loyal3 @Meerkat
On Thursday, April 16, 2015 at 4:35:38 PM UTC+2, marc fawzi wrote: Thursday, April 16, 2015 6:30 PM Loyal3 150 California St Ste 400, San Francisco, CA (edit map) two blocks from the Embarcadero BART on California and Front SF Reagent Meetup Agenda: IMPORTANT: We will be streaming the event live MEERKAT @ 7:00PM PDT (GMT time -7 hours) today! -- Follow @marcfawzi on Twitter for live updates. To watch on the web (non-interactive mode) http://meerkatapp.co/marcfawzi/sch-1a612560-df50-4d13-a00c-c828eee742c9 Meerkat is available on iOS and viewers are encouraged to download the app (interactive mode) https://itunes.apple.com/us/app/meerkat-tweet-live-video/id954105918?mt=8 Unofficial Meerkat app for Android - made with love by Meerkat's engineers (interactive mode) https://play.google.com/store/apps/details?id=co.getair.meerkathl=en 1. 6:30pm - 7:00pm: meet greet, food and drinks, social 2. 7:00pm - 7:30pm: (LIVE STREAM via Meerkat) Intro to Reagent-Template (repo: https://github.com/reagent-project/reagent-template) --- by its author Dmitri Sotnikov(also author of Luminus.) Dmitri will be presenting via Google hangout on a big screen and you will be able to ask him questions live. This should be interesting. 3. 7:30pm - 7:45pm: (LIVE STREAM via Meerkat) Re-frame and Reagent port of Angular's phonecat (repo:https://github.com/dhruvp/angular-phonecat-re-frame) -- by its author Dhruv Parthasarathy (MIT) 4. 7:45-8:00pm (LIVE STREAM via Meerkat, updated description): Reusable Reagent Components with App-State Driven CSS Transitions (watch: http://imgur.com/04OaRw3) -- by Marc Fawzi -- this live demo will include Learning Outcomes for smooth animations, component styling, and sharing the components via internal maven repo Artifactory and our TeamCity deploy pipeline, among other things. A professionally produced video of the event that includes screen captures of on-stage and Google Hangout presentations will be shared within a week of the event. SF FOLKS, HOPE TO SEE YOU IN PERSON! LOCAL BEER CHOICES AND SAME AWESOME PIZZAS (w/ GF/DF options) Will the event video be uploaded somewhere ? If yes, where !? Missed the live stream unfortunately. Live in France doesn't help ... -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ClojureScript] Re: [reagent] Re: [ANN] SF Reagent Meetup TODAY 6:30pm @Loyal3 @Meerkat
Excellent. I tried to watch on periscope, but it never showed up. Jamie On Apr 17, 2015, at 10:20 AM, Marc Fawzi marc.fa...@gmail.com wrote: yes, will post link here sometime next week all 3 presentations were screen captured too so it will be very easy to follow Sent from my iPhone On Apr 17, 2015, at 7:12 AM, Jeremy Vuillermet jeremy.vuiller...@gmail.com wrote: Will the event video be uploaded somewhere ? If yes, where !? Missed the live stream unfortunately. Living in France doesn't help ... On Thursday, April 16, 2015 at 4:35:38 PM UTC+2, marc fawzi wrote: Thursday, April 16, 2015 6:30 PM Loyal3 150 California St Ste 400, San Francisco, CA (edit map) two blocks from the Embarcadero BART on California and Front SF Reagent Meetup Agenda: IMPORTANT: We will be streaming the event live MEERKAT @ 7:00PM PDT (GMT time -7 hours) today! -- Follow @marcfawzi on Twitter for live updates. To watch on the web (non-interactive mode) http://meerkatapp.co/marcfawzi/sch-1a612560-df50-4d13-a00c-c828eee742c9 Meerkat is available on iOS and viewers are encouraged to download the app (interactive mode) https://itunes.apple.com/us/app/meerkat-tweet-live-video/id954105918?mt=8 Unofficial Meerkat app for Android - made with love by Meerkat's engineers (interactive mode) https://play.google.com/store/apps/details?id=co.getair.meerkathl=en 1. 6:30pm - 7:00pm: meet greet, food and drinks, social 2. 7:00pm - 7:30pm: (LIVE STREAM via Meerkat) Intro to Reagent-Template (repo: https://github.com/reagent-project/reagent-template) --- by its author Dmitri Sotnikov(also author of Luminus.) Dmitri will be presenting via Google hangout on a big screen and you will be able to ask him questions live. This should be interesting. 3. 7:30pm - 7:45pm: (LIVE STREAM via Meerkat) Re-frame and Reagent port of Angular's phonecat (repo:https://github.com/dhruvp/angular-phonecat-re-frame) -- by its author Dhruv Parthasarathy (MIT) 4. 7:45-8:00pm (LIVE STREAM via Meerkat, updated description): Reusable Reagent Components with App-State Driven CSS Transitions (watch: http://imgur.com/04OaRw3) -- by Marc Fawzi -- this live demo will include Learning Outcomes for smooth animations, component styling, and sharing the components via internal maven repo Artifactory and our TeamCity deploy pipeline, among other things. A professionally produced video of the event that includes screen captures of on-stage and Google Hangout presentations will be shared within a week of the event. SF FOLKS, HOPE TO SEE YOU IN PERSON! LOCAL BEER CHOICES AND SAME AWESOME PIZZAS (w/ GF/DF options) -- You received this message because you are subscribed to the Google Groups Reagent-Project group. To unsubscribe from this group and stop receiving emails from it, send an email to reagent-project+unsubscr...@googlegroups.com. To post to this group, send email to reagent-proj...@googlegroups.com. Visit this group at http://groups.google.com/group/reagent-project. For more options, visit https://groups.google.com/d/optout. -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups ClojureScript group. To unsubscribe from this group and stop receiving emails from it, send an email to clojurescript+unsubscr...@googlegroups.com. To post to this group, send email to clojurescr...@googlegroups.com. Visit this group at http://groups.google.com/group/clojurescript. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ClojureScript] Re: [reagent] Re: [ANN] SF Reagent Meetup TODAY 6:30pm @Loyal3 @Meerkat
a few people were able to see it but these free streaming apps are still hit or miss ...or hit then miss ... since google hangouts worked really well for our remote presenter we might just use it next time to broadcast to everyone Because Google :) http://www.google.com/+/learnmore/hangouts/onair.html On Fri, Apr 17, 2015 at 8:25 AM, Jamie Orchard-Hays jamie...@gmail.com wrote: Excellent. I tried to watch on periscope, but it never showed up. Jamie On Apr 17, 2015, at 10:20 AM, Marc Fawzi marc.fa...@gmail.com wrote: yes, will post link here sometime next week all 3 presentations were screen captured too so it will be very easy to follow Sent from my iPhone On Apr 17, 2015, at 7:12 AM, Jeremy Vuillermet jeremy.vuiller...@gmail.com wrote: Will the event video be uploaded somewhere ? If yes, where !? Missed the live stream unfortunately. Living in France doesn't help ... On Thursday, April 16, 2015 at 4:35:38 PM UTC+2, marc fawzi wrote: Thursday, April 16, 2015 6:30 PM Loyal3 150 California St Ste 400, San Francisco, CA (edit map) two blocks from the Embarcadero BART on California and Front SF Reagent Meetup Agenda: IMPORTANT: We will be streaming the event live MEERKAT @ 7:00PM PDT (GMT time -7 hours) today! -- Follow @marcfawzi on Twitter for live updates. To watch on the web (non-interactive mode) http://meerkatapp.co/marcfawzi/sch-1a612560-df50-4d13-a00c-c828eee742c9 Meerkat is available on iOS and viewers are encouraged to download the app (interactive mode) https://itunes.apple.com/us/app/meerkat-tweet-live-video/id954105918?mt=8 Unofficial Meerkat app for Android - made with love by Meerkat's engineers (interactive mode) https://play.google.com/store/apps/details?id=co.getair.meerkathl=en 1. 6:30pm - 7:00pm: meet greet, food and drinks, social 2. 7:00pm - 7:30pm: (LIVE STREAM via Meerkat) Intro to Reagent-Template (repo: https://github.com/reagent-project/reagent-template) --- by its author Dmitri Sotnikov(also author of Luminus.) Dmitri will be presenting via Google hangout on a big screen and you will be able to ask him questions live. This should be interesting. 3. 7:30pm - 7:45pm: (LIVE STREAM via Meerkat) Re-frame and Reagent port of Angular's phonecat (repo: https://github.com/dhruvp/angular-phonecat-re-frame) -- by its author Dhruv Parthasarathy (MIT) 4. 7:45-8:00pm (LIVE STREAM via Meerkat, updated description): Reusable Reagent Components with App-State Driven CSS Transitions (watch: http://imgur.com/04OaRw3) -- by Marc Fawzi -- this live demo will include Learning Outcomes for smooth animations, component styling, and sharing the components via internal maven repo Artifactory and our TeamCity deploy pipeline, among other things. A professionally produced video of the event that includes screen captures of on-stage and Google Hangout presentations will be shared within a week of the event. SF FOLKS, HOPE TO SEE YOU IN PERSON! LOCAL BEER CHOICES AND SAME AWESOME PIZZAS (w/ GF/DF options) -- You received this message because you are subscribed to the Google Groups Reagent-Project group. To unsubscribe from this group and stop receiving emails from it, send an email to reagent-project+unsubscr...@googlegroups.com. To post to this group, send email to reagent-proj...@googlegroups.com. Visit this group at http://groups.google.com/group/reagent-project. For more options, visit https://groups.google.com/d/optout. -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups ClojureScript group. To unsubscribe from this group and stop receiving emails from it, send an email to clojurescript+unsubscr...@googlegroups.com. To post to this group, send email to clojurescr...@googlegroups.com. Visit this group at http://groups.google.com/group/clojurescript. -- You received this message because you are subscribed to the Google Groups Reagent-Project group. To unsubscribe from this group and stop receiving emails from it, send an email to reagent-project+unsubscr...@googlegroups.com. To post to this group, send email to reagent-proj...@googlegroups.com. Visit this group at http://groups.google.com/group/reagent-project. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop
Core async pipeline should return to channel.
Since issue tracker for core.async is disabled on github, I'll spill this here. I think pipeline should return the to channel, to make it threading-friendly: (- (range 100) (a/to-chan) (a/pipeline 10 (a/chan) (map inc)) (a/pipeline 2 (a/chan) (filter odd?))) Currently return value is incidental. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[ANN} Aleph 0.4.0 released, plus Manifold, Dirigiste, and a whole host of other libraries
Hey all, In preparation for Clojure/West, I'm formally releasing the latest Aleph and the libraries that surround it. Aleph 0.4.0 has been running in production at Factual for half a year now, and across a variety of services is handling at peak 600k HTTP requests/sec (spread across 15-20 machines). Since the landscape of Clojure HTTP servers is pretty crowded these days, it's worth taking some time to explain how Aleph differs. To be clear, most Clojure deployments likely use Jetty, and should continue to do so. However, Aleph has some unique properties: * It uses the Netty library, which is a high-performance and very battle-tested network layer for the JVM * It is the only HTTP server that has *ubiquitous* asynchronous streams wherever data can be received or sent (all other libraries can only represent streaming requests using InputStreams, or like http-kit don't support streaming HTTP requests at all) * It is the only server that has a WebSocket implementation with any support for per-connection backpressure. I won't make this post even longer by going into why this is important, but this will be a central theme of my talk at Clojure/West next week if you're interested in hearing more. * It uses consistent abstractions to represent network connections over a variety of protocols, which makes it straightforward to use the same application logic for all of them. Again, none of these points mean you should immediately drop whatever you're using and move over to Aleph instead. However, I do feel it represents the only (current) good option for using core.async or a similar stream abstraction to represent network data, which is an idea a number of people seem to be playing with lately. Some examples of this can be found at http://ideolalia.com/aleph/literate.html. A full list of the libraries: aleph - https://github.com/ztellman/aleph - uses the excellent Netty library to expose HTTP, TCP, and UDP using a consistent asynchronous stream representation. manifold - https://github.com/ztellman/manifold - an unopinionated stream representation designed to cleanly interoperate with other stream representations (Clojure's seqs, core.async channels, Java's BlockingQueues, and others). This is the base stream representation for all network sources and sinks in Aleph. dirigiste - https://github.com/ztellman/dirigiste - a pure-Java library that provides instrumented, dynamically sized thread and object pools. This is used for thread pools in Aleph's HTTP server, and for connection pools in Aleph's HTTP client. byte-streams - https://github.com/ztellman/byte-streams - a means of translating any byte representation into another. Want to turn a core.async channel that emits byte-arrays into an InputStream, or maybe the other way around? Look no further. The library's conversion mechanism is extensible, which is used in Aleph to make Netty's custom byte representations interoperable with more familiar representations. byte-transforms - https://github.com/ztellman/byte-transforms - a curated collection of byte compression, hashing, and encoding mechanisms, which can work on anything byte-streams can convert. While all these libraries are used in concert to create Aleph, I've been very careful to make sure any of them can be used by themselves. If anyone has questions about them, the best place to get my attention is the Aleph mailing list: https://groups.google.com/forum/#!forum/aleph-lib. I will be mentioning some of these libraries at my upcoming Clojure/West talk (http://clojurewest.org/speakers#ztellman), but I've also set aside an Unsession for specifically discussing these libraries: https://github.com/clojurewest/clojurewest2015/wiki/Unsessions. If you're interested, please add your name to the list. Zach -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ANN} Aleph 0.4.0 released, plus Manifold, Dirigiste, and a whole host of other libraries
You really hit the ball out of the park with Aleph 0.4.0's API. You have set the standard for simplicity and power in a Clojure API with this release as far as I'm concerned. Thank for your your contribution! On Friday, April 17, 2015 at 5:06:30 PM UTC-4, Zach Tellman wrote: Hey all, In preparation for Clojure/West, I'm formally releasing the latest Aleph and the libraries that surround it. Aleph 0.4.0 has been running in production at Factual for half a year now, and across a variety of services is handling at peak 600k HTTP requests/sec (spread across 15-20 machines). Since the landscape of Clojure HTTP servers is pretty crowded these days, it's worth taking some time to explain how Aleph differs. To be clear, most Clojure deployments likely use Jetty, and should continue to do so. However, Aleph has some unique properties: * It uses the Netty library, which is a high-performance and very battle-tested network layer for the JVM * It is the only HTTP server that has *ubiquitous* asynchronous streams wherever data can be received or sent (all other libraries can only represent streaming requests using InputStreams, or like http-kit don't support streaming HTTP requests at all) * It is the only server that has a WebSocket implementation with any support for per-connection backpressure. I won't make this post even longer by going into why this is important, but this will be a central theme of my talk at Clojure/West next week if you're interested in hearing more. * It uses consistent abstractions to represent network connections over a variety of protocols, which makes it straightforward to use the same application logic for all of them. Again, none of these points mean you should immediately drop whatever you're using and move over to Aleph instead. However, I do feel it represents the only (current) good option for using core.async or a similar stream abstraction to represent network data, which is an idea a number of people seem to be playing with lately. Some examples of this can be found at http://ideolalia.com/aleph/literate.html. A full list of the libraries: aleph - https://github.com/ztellman/aleph - uses the excellent Netty library to expose HTTP, TCP, and UDP using a consistent asynchronous stream representation. manifold - https://github.com/ztellman/manifold - an unopinionated stream representation designed to cleanly interoperate with other stream representations (Clojure's seqs, core.async channels, Java's BlockingQueues, and others). This is the base stream representation for all network sources and sinks in Aleph. dirigiste - https://github.com/ztellman/dirigiste - a pure-Java library that provides instrumented, dynamically sized thread and object pools. This is used for thread pools in Aleph's HTTP server, and for connection pools in Aleph's HTTP client. byte-streams - https://github.com/ztellman/byte-streams - a means of translating any byte representation into another. Want to turn a core.async channel that emits byte-arrays into an InputStream, or maybe the other way around? Look no further. The library's conversion mechanism is extensible, which is used in Aleph to make Netty's custom byte representations interoperable with more familiar representations. byte-transforms - https://github.com/ztellman/byte-transforms - a curated collection of byte compression, hashing, and encoding mechanisms, which can work on anything byte-streams can convert. While all these libraries are used in concert to create Aleph, I've been very careful to make sure any of them can be used by themselves. If anyone has questions about them, the best place to get my attention is the Aleph mailing list: https://groups.google.com/forum/#!forum/aleph-lib. I will be mentioning some of these libraries at my upcoming Clojure/West talk (http://clojurewest.org/speakers#ztellman), but I've also set aside an Unsession for specifically discussing these libraries: https://github.com/clojurewest/clojurewest2015/wiki/Unsessions. If you're interested, please add your name to the list. Zach -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Are keys and vals guaranteed to return in the same order?
In other people's Clojure code I sometimes see things like (zipmap (map some-fn (keys m)) (map other-fn (vals m))) If it were my code I'd be much more inclined to write (into {} (for [[k v] m] [(some-fn k) (other-fn v)])) Is this a to-each-their-own thing or is the latter preferred? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Are keys and vals guaranteed to return in the same order?
keys/vals are documented https://github.com/clojure/clojure/blob/028af0e0b271aa558ea44780e5d951f4932c7842/src/clj/clojure/core.clj#L1478 to return the same order as seq. This is a safe assumption. Thanks, Ambrose On Fri, Apr 17, 2015 at 5:39 PM, Michael Blume blume.m...@gmail.com wrote: In other people's Clojure code I sometimes see things like (zipmap (map some-fn (keys m)) (map other-fn (vals m))) If it were my code I'd be much more inclined to write (into {} (for [[k v] m] [(some-fn k) (other-fn v)])) Is this a to-each-their-own thing or is the latter preferred? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Core async pipeline should return to channel.
Core.async issues are reported on Clojure's JIRA: http://dev.clojure.org/jira/browse/ASYNC pipeline does not have an incidental return value: it returns a channel which closes when there are no more transformation results, i.e. when the pipelining process is finished. There is no other way to get this information, especially when close? is false. You're right this hurts threading, but sometimes you do need to monitor when pipelining is done. In fact, the pipe function does return the to channel like you suggest, and I had to write my own version that returned its inner go-loop because I needed to monitor the piping process. https://gist.github.com/favila/8e7ad6ea5b01bd7466ff#file-async-util-clj-L27 On Friday, April 17, 2015 at 2:33:58 PM UTC-5, Claudius Nicolae wrote: Since issue tracker for core.async is disabled on github, I'll spill this here. I think pipeline should return the to channel, to make it threading-friendly: (- (range 100) (a/to-chan) (a/pipeline 10 (a/chan) (map inc)) (a/pipeline 2 (a/chan) (filter odd?))) Currently return value is incidental. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Are keys and vals guaranteed to return in the same order?
Clearly this assumes immutable maps. On Fri, Apr 17, 2015 at 5:42 PM, Ambrose Bonnaire-Sergeant abonnaireserge...@gmail.com wrote: keys/vals are documented https://github.com/clojure/clojure/blob/028af0e0b271aa558ea44780e5d951f4932c7842/src/clj/clojure/core.clj#L1478 to return the same order as seq. This is a safe assumption. Thanks, Ambrose On Fri, Apr 17, 2015 at 5:39 PM, Michael Blume blume.m...@gmail.com wrote: In other people's Clojure code I sometimes see things like (zipmap (map some-fn (keys m)) (map other-fn (vals m))) If it were my code I'd be much more inclined to write (into {} (for [[k v] m] [(some-fn k) (other-fn v)])) Is this a to-each-their-own thing or is the latter preferred? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Are keys and vals guaranteed to return in the same order?
And it assumes that they are _identical_ maps that you are calling keys and vals on. Equal (via =) not-sorted maps do *not* guarantee that they will have the same seq order as each other, and in some cases do not, due to hash collisions in hash maps having items in a linked list in whatever order they happened to be added to the map. Similarly for array maps. Andy On Fri, Apr 17, 2015 at 2:44 PM, Ambrose Bonnaire-Sergeant abonnaireserge...@gmail.com wrote: Clearly this assumes immutable maps. On Fri, Apr 17, 2015 at 5:42 PM, Ambrose Bonnaire-Sergeant abonnaireserge...@gmail.com wrote: keys/vals are documented https://github.com/clojure/clojure/blob/028af0e0b271aa558ea44780e5d951f4932c7842/src/clj/clojure/core.clj#L1478 to return the same order as seq. This is a safe assumption. Thanks, Ambrose On Fri, Apr 17, 2015 at 5:39 PM, Michael Blume blume.m...@gmail.com wrote: In other people's Clojure code I sometimes see things like (zipmap (map some-fn (keys m)) (map other-fn (vals m))) If it were my code I'd be much more inclined to write (into {} (for [[k v] m] [(some-fn k) (other-fn v)])) Is this a to-each-their-own thing or is the latter preferred? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ANN} Aleph 0.4.0 released, plus Manifold, Dirigiste, and a whole host of other libraries
I'd like to add Aleph to the Luminus template and I was wondering if there's an equivalent of dev mode available for other servers where it watches for changes in source and reloads them. I did a cursory look but didn't spot anything like a -dev option. On Friday, April 17, 2015 at 5:06:30 PM UTC-4, Zach Tellman wrote: Hey all, In preparation for Clojure/West, I'm formally releasing the latest Aleph and the libraries that surround it. Aleph 0.4.0 has been running in production at Factual for half a year now, and across a variety of services is handling at peak 600k HTTP requests/sec (spread across 15-20 machines). Since the landscape of Clojure HTTP servers is pretty crowded these days, it's worth taking some time to explain how Aleph differs. To be clear, most Clojure deployments likely use Jetty, and should continue to do so. However, Aleph has some unique properties: * It uses the Netty library, which is a high-performance and very battle-tested network layer for the JVM * It is the only HTTP server that has *ubiquitous* asynchronous streams wherever data can be received or sent (all other libraries can only represent streaming requests using InputStreams, or like http-kit don't support streaming HTTP requests at all) * It is the only server that has a WebSocket implementation with any support for per-connection backpressure. I won't make this post even longer by going into why this is important, but this will be a central theme of my talk at Clojure/West next week if you're interested in hearing more. * It uses consistent abstractions to represent network connections over a variety of protocols, which makes it straightforward to use the same application logic for all of them. Again, none of these points mean you should immediately drop whatever you're using and move over to Aleph instead. However, I do feel it represents the only (current) good option for using core.async or a similar stream abstraction to represent network data, which is an idea a number of people seem to be playing with lately. Some examples of this can be found at http://ideolalia.com/aleph/literate.html. A full list of the libraries: aleph - https://github.com/ztellman/aleph - uses the excellent Netty library to expose HTTP, TCP, and UDP using a consistent asynchronous stream representation. manifold - https://github.com/ztellman/manifold - an unopinionated stream representation designed to cleanly interoperate with other stream representations (Clojure's seqs, core.async channels, Java's BlockingQueues, and others). This is the base stream representation for all network sources and sinks in Aleph. dirigiste - https://github.com/ztellman/dirigiste - a pure-Java library that provides instrumented, dynamically sized thread and object pools. This is used for thread pools in Aleph's HTTP server, and for connection pools in Aleph's HTTP client. byte-streams - https://github.com/ztellman/byte-streams - a means of translating any byte representation into another. Want to turn a core.async channel that emits byte-arrays into an InputStream, or maybe the other way around? Look no further. The library's conversion mechanism is extensible, which is used in Aleph to make Netty's custom byte representations interoperable with more familiar representations. byte-transforms - https://github.com/ztellman/byte-transforms - a curated collection of byte compression, hashing, and encoding mechanisms, which can work on anything byte-streams can convert. While all these libraries are used in concert to create Aleph, I've been very careful to make sure any of them can be used by themselves. If anyone has questions about them, the best place to get my attention is the Aleph mailing list: https://groups.google.com/forum/#!forum/aleph-lib. I will be mentioning some of these libraries at my upcoming Clojure/West talk (http://clojurewest.org/speakers#ztellman), but I've also set aside an Unsession for specifically discussing these libraries: https://github.com/clojurewest/clojurewest2015/wiki/Unsessions. If you're interested, please add your name to the list. Zach -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ANN} Aleph 0.4.0 released, plus Manifold, Dirigiste, and a whole host of other libraries
Hey Dmitri, I haven't used any sort of dev-mode before (I just update stuff in the REPL when necessary), but it seems like something like that belongs in middleware, not the server. The server is just calling a function, it shouldn't care if something else is changing that function's behavior. If other servers have this behavior embedded, maybe it can be extracted into a standalone library? Zach On Fri, Apr 17, 2015 at 3:47 PM, Dmitri dmitri.sotni...@gmail.com wrote: I'd like to add Aleph to the Luminus template and I was wondering if there's an equivalent of dev mode available for other servers where it watches for changes in source and reloads them. I did a cursory look but didn't spot anything like a -dev option. On Friday, April 17, 2015 at 5:06:30 PM UTC-4, Zach Tellman wrote: Hey all, In preparation for Clojure/West, I'm formally releasing the latest Aleph and the libraries that surround it. Aleph 0.4.0 has been running in production at Factual for half a year now, and across a variety of services is handling at peak 600k HTTP requests/sec (spread across 15-20 machines). Since the landscape of Clojure HTTP servers is pretty crowded these days, it's worth taking some time to explain how Aleph differs. To be clear, most Clojure deployments likely use Jetty, and should continue to do so. However, Aleph has some unique properties: * It uses the Netty library, which is a high-performance and very battle-tested network layer for the JVM * It is the only HTTP server that has *ubiquitous* asynchronous streams wherever data can be received or sent (all other libraries can only represent streaming requests using InputStreams, or like http-kit don't support streaming HTTP requests at all) * It is the only server that has a WebSocket implementation with any support for per-connection backpressure. I won't make this post even longer by going into why this is important, but this will be a central theme of my talk at Clojure/West next week if you're interested in hearing more. * It uses consistent abstractions to represent network connections over a variety of protocols, which makes it straightforward to use the same application logic for all of them. Again, none of these points mean you should immediately drop whatever you're using and move over to Aleph instead. However, I do feel it represents the only (current) good option for using core.async or a similar stream abstraction to represent network data, which is an idea a number of people seem to be playing with lately. Some examples of this can be found at http://ideolalia.com/aleph/literate.html. A full list of the libraries: aleph - https://github.com/ztellman/aleph - uses the excellent Netty library to expose HTTP, TCP, and UDP using a consistent asynchronous stream representation. manifold - https://github.com/ztellman/manifold - an unopinionated stream representation designed to cleanly interoperate with other stream representations (Clojure's seqs, core.async channels, Java's BlockingQueues, and others). This is the base stream representation for all network sources and sinks in Aleph. dirigiste - https://github.com/ztellman/dirigiste - a pure-Java library that provides instrumented, dynamically sized thread and object pools. This is used for thread pools in Aleph's HTTP server, and for connection pools in Aleph's HTTP client. byte-streams - https://github.com/ztellman/byte-streams - a means of translating any byte representation into another. Want to turn a core.async channel that emits byte-arrays into an InputStream, or maybe the other way around? Look no further. The library's conversion mechanism is extensible, which is used in Aleph to make Netty's custom byte representations interoperable with more familiar representations. byte-transforms - https://github.com/ztellman/byte-transforms - a curated collection of byte compression, hashing, and encoding mechanisms, which can work on anything byte-streams can convert. While all these libraries are used in concert to create Aleph, I've been very careful to make sure any of them can be used by themselves. If anyone has questions about them, the best place to get my attention is the Aleph mailing list: https://groups.google.com/forum/#!forum/aleph-lib. I will be mentioning some of these libraries at my upcoming Clojure/West talk (http://clojurewest.org/speakers#ztellman), but I've also set aside an Unsession for specifically discussing these libraries: https://github.com/clojurewest/clojurewest2015/wiki/Unsessions. If you're interested, please add your name to the list. Zach -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com
[ANN] Immutant 2.0.0
We released Immutant 2.0.0 today, which includes many improvements over 1.x, the most notable being an application server is no longer required. For details on the release, see http://immutant.org/news/2015/04/17/announcing-2-final/. With 2.0.0, Immutant has evolved from an application server for Clojure to an integrated suite of Clojure libraries for web, messaging, scheduling, transactions, and caching. And though they are now fully-functional embedded within your app, they each become automatically enhanced (session replication, load-balanced message distribution, linearly scalable caches, HA singleton jobs and daemons) when deployed to a WildFly cluster. 2.0.0 has a much smaller footprint, a very fast Undertow web server, async web support (websockets, streaming HTTP, Server-Sent Events), a more permissive Apache license, and cleaner API's when compared to 1.x. # Immutant at Clojure/West I'll be hosting an unsession at Clojure/West Monday night (https://github.com/clojurewest/clojurewest2015/wiki/Unsessions), drop in if you are attending and interested, or find me in the hallway. - Toby -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.