--
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 clojurescrip...@googlegroups.com.
To post to this group, send email to clojur...@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.
Ahh whoops. Forgot the clean step.
The lein new project imported 0.2.3 for me. I assume that has been fixed then?
I think I'm having a Light Table issue though. There is quite a few places where you mention to try evaluating the functions. However, I think something is messed up with my LightTable installation because I get things like:
#<function parse_contact(contact_str){var vec__8926 = string.split.call(null,contact_str,/\s+/);var first = cljs.core.nth.call(null,vec__8926,0,null);var middle = cljs.core.nth.call(null,vec__8926,1,null);var last = cljs.core.nth.call(null,vec__8926,2,null);var parts = vec__8926;var vec__8927 = (((last == null))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [first,middle], null):new c
this was when evaluating the (defn parse-contact) function.
It doesn't look very useful at all to me to read that, so I'm hoping something is screwed up, but I don't know what?!
--
You received this message because you are subscribed to a topic in the Google Groups "ClojureScript" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojurescript/pj6UwzP9QL4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to clojurescrip...@googlegroups.com.
Over the weekend, I started working on using Om for a potential "real world" project and I quickly encountered the need for "higher order" polymorphic components. Then I started worrying that maybe I had missed some fundamental concept of Om/React and was complecting. I'm glad to see that wasn't the case, and it looks like I was actually on the right track for my design.
I was initially surprised by the implementation in your tutorial using multimethods instead of protocols, especially since you are only dispatching on a single function. But as I thought about it more, I realized this could be a perfect place for multiple dispatch, i.e. swapping components based on multiple pieces of application state. Powerful stuff!
One question - I've tended to shy away from multimethods because of the performance hit, but this is a compelling case for their usage. Just how big of a performance hit are we talking about, compared to protocols or regular function invocation?
I was initially surprised by the implementation in your tutorial using multimethods instead of protocols, especially since you are only dispatching on a single function. But as I thought about it more, I realized this could be a perfect place for multiple dispatch, i.e. swapping components based on multiple pieces of application state. Powerful stuff!
One question - I've tended to shy away from multimethods because of the performance hit, but this is a compelling case for their usage. Just how big of a performance hit are we talking about, compared to protocols or regular function invocation?
Hi DavidThank you for a great tutorial!I really enjoyed working through your Tutorial on LightTable and Om.A note: In my environment the contact is being deleted when the contact-view has the following code(defn contact-view [contact owner] (reify om/IRenderState (render-state [this {:keys [delete]}] (dom/li nil (dom/span nil (display-name contact)) (dom/button #js {:onClick (fn [e] (put! delete contact))} "Delete")))))and not when it is the following:(defn contact-view [contact owner] (reify om/IRenderState (render-state [this {:keys [delete]}] (dom/li nil (dom/span nil (display-name contact)) (dom/button #js {:onClick (fn [e] (put! delete @contact))} "Delete")))))So the change to(put! delete @contact)has the effect of the delete button not working anymore.I will investigate further.Kind regardsRudi
--
--
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, visithttps://groups.google.com/groups/opt_out.
--
Note that posts from new members are moderated - please be patient with your first post.
---
You received this message because you are subscribed to a topic in the Google Groups "ClojureScript" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojurescript/pj6UwzP9QL4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to clojurescrip...@googlegroups.com.
I'm a big fan of this new tutorial.It hi-lights some of the benefits of cursors, and I actually realize how I might use om/join suddenly :D
--
--
Note that posts from new members are moderated - please be patient with your first post.
---
IMO, you definitely have your priorities straight, and I would question whether Om ever needs to add a lot of sugar. When building any non-trivial app, you will most likely end up creating your own abstractions anyway.
You received this message because you are subscribed to a topic in the Google Groups "ClojureScript" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojurescript/pj6UwzP9QL4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to clojurescrip...@googlegroups.com.