[Lift] take a lift to the opera for a better performance?
Lifted, Has anyone played with Opera's Unite? i tried it out, today and was disappointed by the performance of their chat service/lounge. i was running over a network that is notoriously slow, but google chat between yvr and sfo was beating the pants off what i was getting from the machine to itself opera - safari. i was wondering if it might be possible to inject lift into the opera mix at a level where you might see some performance improvement. As it stands, their out of the box perf is so bad i can't believe they released when they did. i think it will hurt adoption. Best wishes, --greg -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: QA, before merging code
Oliver thanks for raising this flag. I'll try to look later on today one more time at the code as I'm not sure I fully understand the principles of your addition. I remember doing some comments on the topic but haven't looked on your code for a while. Are you willing to have a quick chat on it ? Br's, Marius On Jun 18, 3:00 am, Oliver Lambert olambo...@gmail.com wrote: Hi, Seems theres been a little bit of discussion about methodologies of coding and development processes in the latest threads which is cool and makes me think about my current coding efforts. I created a branch a while ago where I put in my take on a slightly alternative (or complementary?) binding process (the particular code adds a bind by name to BindHelpers). I was hoping for some feedback from a few of you (David, Marius, and anyone else) before merging it back with the main site, as I feel what I have done might be contentious and I don't want to cause any problems. Whats the normal process of committing changes. Is the code QA'ed in some way or do I just do it,and wait for people to say #!. cheers Oliver --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: scalajpa - while accessing two distincts databases, the second access is made with a connection to the first database
I yield to your superiority. Seriously. 2009/6/18 Meredith Gregory lgreg.mered...@gmail.com Oliver, Objects and monads are really not the same. At it's heart the concept of monad is an appropriately parametric notion of composition. If you have any experience with abstract algebra, you might recognize that the notion of a group http://en.wikipedia.org/wiki/Symmetry_group is an appropriately parametric notion of symmetry. Groups give an exceptionally well abstracted account of symmetry. Monads give an exceptionally well abstracted notion of composition. This is a lot easier to see in the Category Theoretic presentation. A monad http://en.wikipedia.org/wiki/Monad_%28category_theory%29 is presented by three pieces of data: - An endofunctor http://en.wikipedia.org/wiki/Functor M : C - C (intuitively, think of M as a parametric type constructor and C as the universe of types and maps) - A natural transformationhttp://en.wikipedia.org/wiki/Natural_transformationunit: Id - M -- this is a higher-order critter: it takes maps to maps; but i'll give you a metaphor in just a moment. - A natural transformation mult: M^2 - M One picture you can have in your mind is M is a kind of box factory. Then unit says how you can put things into a box, and mult says how you can flatten nested boxes into an ordinary box (this is the origins of flatMap in Scala's presentation). Another way of understanding this is that M is a kind of higher-order compositor, i.e. a way of combining things just like multiplication, as in a*b, is a way of combining things. Then the unit is the analog of having a unit for your multiplication and mult is the analog of an associativity law ( a*(b*c) = (a*b)*c ). These line up with the box analogy more easily if you write things with prefix notation instead of infix notation. - Let's write {*| a, b |*} instead of a*b. The reason we adopt this more verbose notation is that we can note the different kind of boxes with the 'color' of the braces. M-colored braces, {M| a, b |M}, are associated with an M-box. - Then unit( a ) = {M| a |M}, it puts a in an M-box. This has an alternate presentation of the form {M| |M}.{M| a |M} = {M| a |M}. i mention it to point out the analogy with the binary operation _*_, but it muddies the water a little with begging the question about the _._. So, i will just leave it -- without explanation -- for you to explore. - And mult( {M| {M| a11, ..., a1J |M} ... {M| aI1, ... aIJ' |M} |M} ) = {M| a11, ..., aIJ' |M}. It tells you how to canonically flatten M-boxes. This functions as an association because if boxes canonically flatten, then {M| a, {M| b, c |M} |M} = {M| a, b, c |M} = {M| {M| a, b |M}, c |M}. The apparent lexical connection between this way of thinking about things and XML *is not accidental*. Monads can be viewed as colored braces, aka matched tags. Monads are a semantical creature that presents syntactically like XML. This way of thinking about things is really different from objects. To be sure, there are notions of objects that are universal and so can be made to fit or encode just about anything; but, that doesn't mean the encodings are nice, or scalable or maintainable. You have only to to look at something like LINQ -- which is really just a presentation of monads -- to see just how flexible and yet compact the monadic way of structuring composition is. Specifically, both set-comprehension notation and SELECT-FROM-WHERE, when interpreted polymorphically, provide a natural representation of the monad. - { pattern | t1 - generator1, ..., tn - generatorN, constraint1, ..., constraintK } - SELECT pattern FROM generator WHERE constraint Those to pieces of computational machinery have very simple, and natural mappings to the monad operations. You will win if you work these out for yourself. Phil Wadler has excellent papers to provide cheat sheets. The Scala for-comprehension and the corresponding operations of map, flatMap and filter are also excellent cheat sheets. But, you get the joy if you work this out for yourself. Best wishes, --greg 2009/6/17 Oliver Lambert olambo...@gmail.com 2009/6/18 Meredith Gregory lgreg.mered...@gmail.com Oliver, The short answer is no. The longer answer is - i worked this all out on my own; so, you guys -- who can program lift on top of scala on top of JVM and are therefore about 20X smarter than i am -- can too. I think if we were all 20X (or 2X) smarter than you, we would have taken over Google by now. - And also, help is always available, if there is something specific you don't understand, let me know and i will do my best to convey it to you. As suggested by another kind person, I may have to start by going back to (an American?) school. Heres a question, why should I care about Monad's when they are already in OO, just not called Monads?
[Lift] Lift and Goat Rodeo
Folks, At the end of the Scala Lift Off, after I finished my third beer, Martin Odersky came over to me and asked, so, what's the future of Lift? I gave a hand-waving answer about the features for 1.1. But Martin is not a hand-waving kind of guy and I think I owe him and the other folks in the Scala and Lift communities more. There's a lot more that's necessary for web app development than Lift, an abstraction to the HTTP request/response cycle, can provide. Over the last couple of years, I've been noticing trends in web development, in the needs of my various consulting gigs, and in some other projects. It's clear to me that it's time for a unified data and data management model that goes beyond OR mapping and that is scalably transactional. I've put together a model that looks to the developer like STM but is backed with ZooKeeper and Cassandra. I've blogged about it at http://blog.lostlake.org/index.php?/archives/94-Lift,-Goat-Rodeo-and-Such.html Just as my web framework manifesto was the genesis of what has become Lift, I hope that my notions and ramblings in this blog post will become concrete, usable code over the next few months and a solid platform for building the next generation of web systems over the next few years... all built with Scala at their core. Thanks, David -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Lift and Goat Rodeo
David Pollak a écrit : Folks, [...] Over the last couple of years, I've been noticing trends in web development, in the needs of my various consulting gigs, and in some other projects. It's clear to me that it's time for a unified data and data management model that goes beyond OR mapping and that is scalably transactional. I've put together a model that looks to the developer like STM but is backed with ZooKeeper and Cassandra. I've blogged about it at http://blog.lostlake.org/index.php?/archives/94-Lift,-Goat-Rodeo-and-Such.html Just as my web framework manifesto was the genesis of what has become Lift, I hope that my notions and ramblings in this blog post will become concrete, usable code over the next few months and a solid platform for building the next generation of web systems over the next few years... all built with Scala at their core. Wow :) I hope this project will be as successful as lift... Its goals seem great ! -- Francois Armand http://fanf42.blogspot.com --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Lift and Goat Rodeo
This sounds very exciting David, please ensure to keep us posted on any developments. This notion of Q's - is this the method by which actors will be distributed (managed via zookeeper, i would assume)? Any reference materials you can point me to further whet my appetite? On Thu, 2009-06-18 at 00:19 -0700, David Pollak wrote: Folks, At the end of the Scala Lift Off, after I finished my third beer, Martin Odersky came over to me and asked, so, what's the future of Lift? I gave a hand-waving answer about the features for 1.1. But Martin is not a hand-waving kind of guy and I think I owe him and the other folks in the Scala and Lift communities more. There's a lot more that's necessary for web app development than Lift, an abstraction to the HTTP request/response cycle, can provide. Over the last couple of years, I've been noticing trends in web development, in the needs of my various consulting gigs, and in some other projects. It's clear to me that it's time for a unified data and data management model that goes beyond OR mapping and that is scalably transactional. I've put together a model that looks to the developer like STM but is backed with ZooKeeper and Cassandra. I've blogged about it at http://blog.lostlake.org/index.php?/archives/94-Lift,-Goat-Rodeo-and-Such.html Just as my web framework manifesto was the genesis of what has become Lift, I hope that my notions and ramblings in this blog post will become concrete, usable code over the next few months and a solid platform for building the next generation of web systems over the next few years... all built with Scala at their core. Thanks, David -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Thoughts on separation of display from logic
How about this one then: bind(nodeseq, prefix, (suffix, node) - Text(this text replaced a prefix:suffix element) ); On problem is it mucks up the Pair[String, () = NodeSeq] that bind expects, not too pretty either. One other solution I considered was an alternative overloaded version of bind, something like: bind(nodeseq, prefix){ Match(suffix) = Text(this text replaced a prefix:suffix element), node @ Match(suffix) = ... do something with the node, bindhelpers not necessary } where Match is an extractor, possibly accepting XPath expressions On Thu, Jun 18, 2009 at 12:29 AM, David Pollak feeder.of.the.be...@gmail.com wrote: Crud... adding xpathisms to bind... where will it end? :-) On Wed, Jun 17, 2009 at 3:41 PM, Kevin Wright kev.lee.wri...@googlemail.com wrote: One possibility I already considered is something like: bind(nodeseq, prefix, suffix - Text(matched an element), @suffix - Text(matched an attribute), @suffix=value - Text(matched an attribute with specified value)); the bindings here would respectively match the elements: prefix:suffixcontent/prefix:suffix span prefix:suffix=placeholdercontent/span span prefix:suffix=valuecontent/span Use of the span elements above was an arbitrary choice What's missing is an intuitive way to access the node that has been bound, especially if you only want to change the contents On Wed, Jun 17, 2009 at 10:19 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Wed, Jun 17, 2009 at 2:07 PM, Kris Nuttycombe kris.nuttyco...@gmail.com wrote: We'd still need some attribute to disambiguate in the case of multiple textarea tags, wouldn't we? I don't think so. The only NodeSeq being passed to the function is the NodeSeq inside the tag that's getting bound to. Kris On Wed, Jun 17, 2009 at 2:51 PM, David Pollakfeeder.of.the.be...@gmail.com wrote: I can see a set of methods that look like: textarea(f: String = Unit)(n: NodeSeq) that will slurp the values and attributes out of the NodeSeq... so you'd bind like: biography - textarea(s = setBio(s)) _ On Wed, Jun 17, 2009 at 10:22 AM, Matt Williams m...@makeable.co.uk wrote: I wholeheartedly agree with the philosophy of separating the display from the program logic, and am currently getting to grips with the generators, but am finding that now I end up with a degree of markup within my code. Can you think of any caveats to infering the node type passed, and dynamically using the relevant generators to construct the returned node. I am thinking something along the lines of: person:biography textarea style=myStyle cols=20 rows=5 This is a sample of some biography text /textarea /person:biography Where it would automatically infer that it is a textarea, pass through the relevant attributes, and insert whatever function, values, etc I have specified in my snippet. What are your thoughts on this? Brgds, Matt -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Lift and Goat Rodeo
David, Amazing, I love your PASSION. All the best. Mohan From: liftweb@googlegroups.com [mailto:lift...@googlegroups.com] On Behalf Of David Pollak Sent: 18 June 2009 15:20 To: David Pollak Subject: [Lift] Lift and Goat Rodeo Folks, At the end of the Scala Lift Off, after I finished my third beer, Martin Odersky came over to me and asked, so, what's the future of Lift? I gave a hand-waving answer about the features for 1.1. But Martin is not a hand-waving kind of guy and I think I owe him and the other folks in the Scala and Lift communities more. There's a lot more that's necessary for web app development than Lift, an abstraction to the HTTP request/response cycle, can provide. Over the last couple of years, I've been noticing trends in web development, in the needs of my various consulting gigs, and in some other projects. It's clear to me that it's time for a unified data and data management model that goes beyond OR mapping and that is scalably transactional. I've put together a model that looks to the developer like STM but is backed with ZooKeeper and Cassandra. I've blogged about it at http://blog.lostlake.org/index.php?/archives/94-Lift,-Goat-Rodeo-and-Suc h.html Just as my web framework manifesto was the genesis of what has become Lift, I hope that my notions and ramblings in this blog post will become concrete, usable code over the next few months and a solid platform for building the next generation of web systems over the next few years... all built with Scala at their core. Thanks, David -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp == Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html == --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Thoughts on separation of display from logic
Ignore that first one, it makes no sense, really not sure what I was thinking there... On Thu, Jun 18, 2009 at 10:25 AM, Kevin Wright kev.lee.wri...@googlemail.com wrote: How about this one then: bind(nodeseq, prefix, (suffix, node) - Text(this text replaced a prefix:suffix element) ); On problem is it mucks up the Pair[String, () = NodeSeq] that bind expects, not too pretty either. One other solution I considered was an alternative overloaded version of bind, something like: bind(nodeseq, prefix){ Match(suffix) = Text(this text replaced a prefix:suffix element), node @ Match(suffix) = ... do something with the node, bindhelpers not necessary } where Match is an extractor, possibly accepting XPath expressions On Thu, Jun 18, 2009 at 12:29 AM, David Pollak feeder.of.the.be...@gmail.com wrote: Crud... adding xpathisms to bind... where will it end? :-) On Wed, Jun 17, 2009 at 3:41 PM, Kevin Wright kev.lee.wri...@googlemail.com wrote: One possibility I already considered is something like: bind(nodeseq, prefix, suffix - Text(matched an element), @suffix - Text(matched an attribute), @suffix=value - Text(matched an attribute with specified value)); the bindings here would respectively match the elements: prefix:suffixcontent/prefix:suffix span prefix:suffix=placeholdercontent/span span prefix:suffix=valuecontent/span Use of the span elements above was an arbitrary choice What's missing is an intuitive way to access the node that has been bound, especially if you only want to change the contents On Wed, Jun 17, 2009 at 10:19 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Wed, Jun 17, 2009 at 2:07 PM, Kris Nuttycombe kris.nuttyco...@gmail.com wrote: We'd still need some attribute to disambiguate in the case of multiple textarea tags, wouldn't we? I don't think so. The only NodeSeq being passed to the function is the NodeSeq inside the tag that's getting bound to. Kris On Wed, Jun 17, 2009 at 2:51 PM, David Pollakfeeder.of.the.be...@gmail.com wrote: I can see a set of methods that look like: textarea(f: String = Unit)(n: NodeSeq) that will slurp the values and attributes out of the NodeSeq... so you'd bind like: biography - textarea(s = setBio(s)) _ On Wed, Jun 17, 2009 at 10:22 AM, Matt Williams m...@makeable.co.uk wrote: I wholeheartedly agree with the philosophy of separating the display from the program logic, and am currently getting to grips with the generators, but am finding that now I end up with a degree of markup within my code. Can you think of any caveats to infering the node type passed, and dynamically using the relevant generators to construct the returned node. I am thinking something along the lines of: person:biography textarea style=myStyle cols=20 rows=5 This is a sample of some biography text /textarea /person:biography Where it would automatically infer that it is a textarea, pass through the relevant attributes, and insert whatever function, values, etc I have specified in my snippet. What are your thoughts on this? Brgds, Matt -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Thoughts on separation of display from logic
I modified the BindHelper in the branch, I am working on some time back to allow automatic mixin binding by name. If you have in your html input name=favourite:yourName size=20 maxlength=40/, then it will accept in the snippet bind(favourite, xhtml, yourName - SHtml.text(show string, s = setBio(s)) and output something like input name=38833747474# size=20 maxlength=40 value=show string/ if you include attributes in the snippets bind, that are already in the html, it will substitute them Is this something like what you are trying to achieve? On Thu, Jun 18, 2009 at 6:51 AM, David Pollak feeder.of.the.be...@gmail.com wrote: I can see a set of methods that look like: textarea(f: String = Unit)(n: NodeSeq) that will slurp the values and attributes out of the NodeSeq... so you'd bind like: biography - textarea(s = setBio(s)) _ On Wed, Jun 17, 2009 at 10:22 AM, Matt Williams m...@makeable.co.ukwrote: I wholeheartedly agree with the philosophy of separating the display from the program logic, and am currently getting to grips with the generators, but am finding that now I end up with a degree of markup within my code. Can you think of any caveats to infering the node type passed, and dynamically using the relevant generators to construct the returned node. I am thinking something along the lines of: person:biography textarea style=myStyle cols=20 rows=5 This is a sample of some biography text /textarea /person:biography Where it would automatically infer that it is a textarea, pass through the relevant attributes, and insert whatever function, values, etc I have specified in my snippet. What are your thoughts on this? Brgds, Matt -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: scalajpa - while accessing two distincts databases, the second access is made with a connection to the first database
Viktor, My co-routine yields back to yours! Hey, it's like Garrison Keillor's Tales from Lake Wobegonhttp://en.wikipedia.org/wiki/Lake_Wobegon: where *all* of the children are above average. If you think about it, that just keeps *lift*ing the children higher and higher and higher... Speaking of which, i think David's goat rodeo ideas fit pretty well with some ideas i've been working on regarding a uniform approach to data. This takes the whole LINQ idea up a couple of notches. To see what i mean, take a look at the slides for a recent talk i gavehttp://svn.biosimilarity.com/src/open/talks/MonadicDesignPatternsForTheWeb.pdf. Comments (peanuts, rotten tomatoes...) would be most welcome. Best wishes, --greg P.S. Oliver's sincere question compelled me to respond with my own best understanding of the topic. 2009/6/18 Viktor Klang viktor.kl...@gmail.com I yield to your superiority. Seriously. 2009/6/18 Meredith Gregory lgreg.mered...@gmail.com Oliver, Objects and monads are really not the same. At it's heart the concept of monad is an appropriately parametric notion of composition. If you have any experience with abstract algebra, you might recognize that the notion of a group http://en.wikipedia.org/wiki/Symmetry_group is an appropriately parametric notion of symmetry. Groups give an exceptionally well abstracted account of symmetry. Monads give an exceptionally well abstracted notion of composition. This is a lot easier to see in the Category Theoretic presentation. A monad http://en.wikipedia.org/wiki/Monad_%28category_theory%29 is presented by three pieces of data: - An endofunctor http://en.wikipedia.org/wiki/Functor M : C - C (intuitively, think of M as a parametric type constructor and C as the universe of types and maps) - A natural transformationhttp://en.wikipedia.org/wiki/Natural_transformationunit: Id - M -- this is a higher-order critter: it takes maps to maps; but i'll give you a metaphor in just a moment. - A natural transformation mult: M^2 - M One picture you can have in your mind is M is a kind of box factory. Then unit says how you can put things into a box, and mult says how you can flatten nested boxes into an ordinary box (this is the origins of flatMap in Scala's presentation). Another way of understanding this is that M is a kind of higher-order compositor, i.e. a way of combining things just like multiplication, as in a*b, is a way of combining things. Then the unit is the analog of having a unit for your multiplication and mult is the analog of an associativity law ( a*(b*c) = (a*b)*c ). These line up with the box analogy more easily if you write things with prefix notation instead of infix notation. - Let's write {*| a, b |*} instead of a*b. The reason we adopt this more verbose notation is that we can note the different kind of boxes with the 'color' of the braces. M-colored braces, {M| a, b |M}, are associated with an M-box. - Then unit( a ) = {M| a |M}, it puts a in an M-box. This has an alternate presentation of the form {M| |M}.{M| a |M} = {M| a |M}. i mention it to point out the analogy with the binary operation _*_, but it muddies the water a little with begging the question about the _._. So, i will just leave it -- without explanation -- for you to explore. - And mult( {M| {M| a11, ..., a1J |M} ... {M| aI1, ... aIJ' |M} |M} ) = {M| a11, ..., aIJ' |M}. It tells you how to canonically flatten M-boxes. This functions as an association because if boxes canonically flatten, then {M| a, {M| b, c |M} |M} = {M| a, b, c |M} = {M| {M| a, b |M}, c |M}. The apparent lexical connection between this way of thinking about things and XML *is not accidental*. Monads can be viewed as colored braces, aka matched tags. Monads are a semantical creature that presents syntactically like XML. This way of thinking about things is really different from objects. To be sure, there are notions of objects that are universal and so can be made to fit or encode just about anything; but, that doesn't mean the encodings are nice, or scalable or maintainable. You have only to to look at something like LINQ -- which is really just a presentation of monads -- to see just how flexible and yet compact the monadic way of structuring composition is. Specifically, both set-comprehension notation and SELECT-FROM-WHERE, when interpreted polymorphically, provide a natural representation of the monad. - { pattern | t1 - generator1, ..., tn - generatorN, constraint1, ..., constraintK } - SELECT pattern FROM generator WHERE constraint Those to pieces of computational machinery have very simple, and natural mappings to the monad operations. You will win if you work these out for yourself. Phil Wadler has excellent papers to provide cheat sheets. The Scala for-comprehension and the corresponding operations of map, flatMap and filter are also excellent cheat sheets.
[Lift] Re: scalajpa - while accessing two distincts databases, the second access is made with a connection to the first database
I just want to say that it's educating and awesome (in the true sense of the word) to have you on this list, enriching us with alot of good ideas, theories and concepts. 2009/6/18 Meredith Gregory lgreg.mered...@gmail.com Viktor, My co-routine yields back to yours! Hey, it's like Garrison Keillor's Tales from Lake Wobegonhttp://en.wikipedia.org/wiki/Lake_Wobegon: where *all* of the children are above average. If you think about it, that just keeps *lift*ing the children higher and higher and higher... Speaking of which, i think David's goat rodeo ideas fit pretty well with some ideas i've been working on regarding a uniform approach to data. This takes the whole LINQ idea up a couple of notches. To see what i mean, take a look at the slides for a recent talk i gavehttp://svn.biosimilarity.com/src/open/talks/MonadicDesignPatternsForTheWeb.pdf. Comments (peanuts, rotten tomatoes...) would be most welcome. Best wishes, --greg P.S. Oliver's sincere question compelled me to respond with my own best understanding of the topic. 2009/6/18 Viktor Klang viktor.kl...@gmail.com I yield to your superiority. Seriously. 2009/6/18 Meredith Gregory lgreg.mered...@gmail.com Oliver, Objects and monads are really not the same. At it's heart the concept of monad is an appropriately parametric notion of composition. If you have any experience with abstract algebra, you might recognize that the notion of a group http://en.wikipedia.org/wiki/Symmetry_group is an appropriately parametric notion of symmetry. Groups give an exceptionally well abstracted account of symmetry. Monads give an exceptionally well abstracted notion of composition. This is a lot easier to see in the Category Theoretic presentation. A monad http://en.wikipedia.org/wiki/Monad_%28category_theory%29 is presented by three pieces of data: - An endofunctor http://en.wikipedia.org/wiki/Functor M : C - C (intuitively, think of M as a parametric type constructor and C as the universe of types and maps) - A natural transformationhttp://en.wikipedia.org/wiki/Natural_transformationunit: Id - M -- this is a higher-order critter: it takes maps to maps; but i'll give you a metaphor in just a moment. - A natural transformation mult: M^2 - M One picture you can have in your mind is M is a kind of box factory. Then unit says how you can put things into a box, and mult says how you can flatten nested boxes into an ordinary box (this is the origins of flatMap in Scala's presentation). Another way of understanding this is that M is a kind of higher-order compositor, i.e. a way of combining things just like multiplication, as in a*b, is a way of combining things. Then the unit is the analog of having a unit for your multiplication and mult is the analog of an associativity law ( a*(b*c) = (a*b)*c ). These line up with the box analogy more easily if you write things with prefix notation instead of infix notation. - Let's write {*| a, b |*} instead of a*b. The reason we adopt this more verbose notation is that we can note the different kind of boxes with the 'color' of the braces. M-colored braces, {M| a, b |M}, are associated with an M-box. - Then unit( a ) = {M| a |M}, it puts a in an M-box. This has an alternate presentation of the form {M| |M}.{M| a |M} = {M| a |M}. i mention it to point out the analogy with the binary operation _*_, but it muddies the water a little with begging the question about the _._. So, i will just leave it -- without explanation -- for you to explore. - And mult( {M| {M| a11, ..., a1J |M} ... {M| aI1, ... aIJ' |M} |M} ) = {M| a11, ..., aIJ' |M}. It tells you how to canonically flatten M-boxes. This functions as an association because if boxes canonically flatten, then {M| a, {M| b, c |M} |M} = {M| a, b, c |M} = {M| {M| a, b |M}, c |M}. The apparent lexical connection between this way of thinking about things and XML *is not accidental*. Monads can be viewed as colored braces, aka matched tags. Monads are a semantical creature that presents syntactically like XML. This way of thinking about things is really different from objects. To be sure, there are notions of objects that are universal and so can be made to fit or encode just about anything; but, that doesn't mean the encodings are nice, or scalable or maintainable. You have only to to look at something like LINQ -- which is really just a presentation of monads -- to see just how flexible and yet compact the monadic way of structuring composition is. Specifically, both set-comprehension notation and SELECT-FROM-WHERE, when interpreted polymorphically, provide a natural representation of the monad. - { pattern | t1 - generator1, ..., tn - generatorN, constraint1, ..., constraintK } - SELECT pattern FROM generator WHERE constraint Those to pieces of computational machinery have very simple, and natural mappings to the
[Lift] BBCode2XHTML
Hi guys! I'm in dire need of an XSS-safe and generally harmless way of allowing end-users to add some markup to texts. In the spirit of re-use and lack of time, I wonder if any of you have any libraries to recommend that can transform a String maybe containing BBCode to the same string but with xhtml compliant markup. Googled it a bit and saw KefirBB http://sourceforge.net/projects/kefir-bb/and JavaBBCode https://javabbcode.dev.java.net/ but none of them seem lean enough (I mean, how much code does it need to transform a String??) So what's it gonna be guys, is there a saviour out there or will I need to pull out the Scala REPL? Cheers! -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Lift and Goat Rodeo
Dave is there a reason why writes are allowed outside a transaction boundaries ? Br's, Marius On Jun 18, 10:19 am, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, At the end of the Scala Lift Off, after I finished my third beer, Martin Odersky came over to me and asked, so, what's the future of Lift? I gave a hand-waving answer about the features for 1.1. But Martin is not a hand-waving kind of guy and I think I owe him and the other folks in the Scala and Lift communities more. There's a lot more that's necessary for web app development than Lift, an abstraction to the HTTP request/response cycle, can provide. Over the last couple of years, I've been noticing trends in web development, in the needs of my various consulting gigs, and in some other projects. It's clear to me that it's time for a unified data and data management model that goes beyond OR mapping and that is scalably transactional. I've put together a model that looks to the developer like STM but is backed with ZooKeeper and Cassandra. I've blogged about it athttp://blog.lostlake.org/index.php?/archives/94-Lift,-Goat-Rodeo-and-... Just as my web framework manifesto was the genesis of what has become Lift, I hope that my notions and ramblings in this blog post will become concrete, usable code over the next few months and a solid platform for building the next generation of web systems over the next few years... all built with Scala at their core. Thanks, David -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Git some:http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: scalajpa - while accessing two distincts databases, the second access is made with a connection to the first database
Oliver, You wrote: we would have taken over Google by now. My not-so-secret plan for taking over Google is contained in the deck i posted in response to Viktorhttp://svn.biosimilarity.com/src/open/talks/MonadicDesignPatternsForTheWeb.pdf. Part of the reason i was excited that Jonas took on to make the JTA wrapper monadic is that it composes perfectly with the ideas explained in the deck. These ideas dovetail perfectly with the DSL stuff i've been working on. My feeling is that we are at a point where things could really start to happen. The ideas are 'in the air' so to speak. Best wishes, --greg 2009/6/17 Oliver Lambert olambo...@gmail.com 2009/6/18 Meredith Gregory lgreg.mered...@gmail.com Oliver, The short answer is no. The longer answer is - i worked this all out on my own; so, you guys -- who can program lift on top of scala on top of JVM and are therefore about 20X smarter than i am -- can too. I think if we were all 20X (or 2X) smarter than you, we would have taken over Google by now. - - And also, help is always available, if there is something specific you don't understand, let me know and i will do my best to convey it to you. As suggested by another kind person, I may have to start by going back to (an American?) school. Heres a question, why should I care about Monad's when they are already in OO, just not called Monads? - Best wishes, --greg P.S. Here is a version of the paragraph with links to useful bits of lore from the literature. For myself, i was unhappy with the notion of name. The π-calculihttp://en.wikipedia.org/wiki/Pi-calculusand lambda calculi http://en.wikipedia.org/wiki/Lambda_calculus suffer a dependence on a notion of name. Both families of calculi require at least countably infinitely http://en.wikipedia.org/wiki/Countable many nameshttp://www.cs.nps.navy.mil/research/languages/statements/gordon.html, and a notion of equality on names. If names have no internal structure then these theories *cannot be effectivehttp://en.wikipedia.org/wiki/Computable_function *. The reasons is that the notion of equality must then be realized as an infinitary table which cannot fit in any computer we have access to. Therefore, in effective theories, names must have internal structure. Since they have internal structure and are at least countably infinite, one is in danger of undermining the foundational character of these proposals for computing. Therefore, the only possible solution is that the notion of structured name must come from the notion of program proposed by the model. This argument is airtight. If you want a foundational model of computing with nominal structure, the nominal structure must derive from the notion of computation being put forward, i.e. it must *reflect* the notion of computationhttp://svn.biosimilarity.com/src/open/papers/trunk/concurrency/rho/ex_nihilo_entcs/ex_nihilo_finco.pdf. This gives rise to all kinds of new an beautiful phenomena. One measure of your way into compositional thinking is whether this is happening. Is your approach to compositional thinking beginning to yield whole new aspects of computing, and new 'wholes' of computation, new forms of organization. 2009/6/16 Oliver Lambert olambo...@gmail.com 2009/6/17 Meredith Gregory lgreg.mered...@gmail.com Jeremy, Most excellent question award to you, sir! How to bootstrap thinking compositionally... this is what i did - learn some compositional idioms by heart - do you know the shape of the paradoxical combinator by heart - do you know the data making up a monad - do you know the data making up a distributive law between monads - use them in real world applications and see where they fail - when is calculating the least/greatest fixpoint of a recursive spec for a problem the suboptimal solution - when is a monad not the answer - when is an indexed form of composition inadequate - improve them - is it a situational improvement or - a fundamental improvement - see where the very programming model itself fails - is functional composition the only sort of composition - how is parallel composition like functional composition - is parallel composition easily represented in categorical composition - improve it - what is the view of the world in your notion of composition - play with new programming models - does your new notion of composition give rise to a whole generation of different models - invent new idioms in these models - what are the things these models naturally express - and teach them to someone who wishes to bootstrap thinking compositionally For myself, i was unhappy with the notion of name. The π-calculi and lambda calculi suffer a dependence on a notion of name. Both families of calculi require at least
[Lift] Re: scalajpa - while accessing two distincts databases, the second access is made with a connection to the first database
Hi Greg, Thank you, I enjoyed reading that. Perhaps the Greedy Empire, should indeed, be worried. cheers Oliver 2009/6/18 Meredith Gregory lgreg.mered...@gmail.com Oliver, You wrote: we would have taken over Google by now. My not-so-secret plan for taking over Google is contained in the deck i posted in response to Viktorhttp://svn.biosimilarity.com/src/open/talks/MonadicDesignPatternsForTheWeb.pdf. Part of the reason i was excited that Jonas took on to make the JTA wrapper monadic is that it composes perfectly with the ideas explained in the deck. These ideas dovetail perfectly with the DSL stuff i've been working on. My feeling is that we are at a point where things could really start to happen. The ideas are 'in the air' so to speak. Best wishes, --greg 2009/6/17 Oliver Lambert olambo...@gmail.com 2009/6/18 Meredith Gregory lgreg.mered...@gmail.com Oliver, The short answer is no. The longer answer is - i worked this all out on my own; so, you guys -- who can program lift on top of scala on top of JVM and are therefore about 20X smarter than i am -- can too. I think if we were all 20X (or 2X) smarter than you, we would have taken over Google by now. - - And also, help is always available, if there is something specific you don't understand, let me know and i will do my best to convey it to you. As suggested by another kind person, I may have to start by going back to (an American?) school. Heres a question, why should I care about Monad's when they are already in OO, just not called Monads? - Best wishes, --greg P.S. Here is a version of the paragraph with links to useful bits of lore from the literature. For myself, i was unhappy with the notion of name. The π-calculihttp://en.wikipedia.org/wiki/Pi-calculusand lambda calculi http://en.wikipedia.org/wiki/Lambda_calculus suffer a dependence on a notion of name. Both families of calculi require at least countably infinitely http://en.wikipedia.org/wiki/Countable many nameshttp://www.cs.nps.navy.mil/research/languages/statements/gordon.html, and a notion of equality on names. If names have no internal structure then these theories *cannot be effectivehttp://en.wikipedia.org/wiki/Computable_function *. The reasons is that the notion of equality must then be realized as an infinitary table which cannot fit in any computer we have access to. Therefore, in effective theories, names must have internal structure. Since they have internal structure and are at least countably infinite, one is in danger of undermining the foundational character of these proposals for computing. Therefore, the only possible solution is that the notion of structured name must come from the notion of program proposed by the model. This argument is airtight. If you want a foundational model of computing with nominal structure, the nominal structure must derive from the notion of computation being put forward, i.e. it must *reflect* the notion of computationhttp://svn.biosimilarity.com/src/open/papers/trunk/concurrency/rho/ex_nihilo_entcs/ex_nihilo_finco.pdf. This gives rise to all kinds of new an beautiful phenomena. One measure of your way into compositional thinking is whether this is happening. Is your approach to compositional thinking beginning to yield whole new aspects of computing, and new 'wholes' of computation, new forms of organization. 2009/6/16 Oliver Lambert olambo...@gmail.com 2009/6/17 Meredith Gregory lgreg.mered...@gmail.com Jeremy, Most excellent question award to you, sir! How to bootstrap thinking compositionally... this is what i did - learn some compositional idioms by heart - do you know the shape of the paradoxical combinator by heart - do you know the data making up a monad - do you know the data making up a distributive law between monads - use them in real world applications and see where they fail - when is calculating the least/greatest fixpoint of a recursive spec for a problem the suboptimal solution - when is a monad not the answer - when is an indexed form of composition inadequate - improve them - is it a situational improvement or - a fundamental improvement - see where the very programming model itself fails - is functional composition the only sort of composition - how is parallel composition like functional composition - is parallel composition easily represented in categorical composition - improve it - what is the view of the world in your notion of composition - play with new programming models - does your new notion of composition give rise to a whole generation of different models - invent new idioms in these models - what are the things these models naturally express - and teach them to someone who wishes to bootstrap thinking
[Lift] Re: New hosting for demo.liftweb.net
Is it just the basic slice? 128 Megatrons of RAM? On Jun 18, 1:45 am, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, I'm trying a Xen slice on prgrm.com I'm currently runninghttp://demo.liftweb.netthere. Woo Hoo! David -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Git some:http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: scalajpa - while accessing two distincts databases, the second access is made with a connection to the first database
No one need fear. Greg is a benevolent evil genius ;) Seriously, it's threads like this that make me realize just how many freakin' brilliant people are on list. Derek 2009/6/18 Oliver Lambert olambo...@gmail.com Hi Greg, Thank you, I enjoyed reading that. Perhaps the Greedy Empire, should indeed, be worried. cheers Oliver 2009/6/18 Meredith Gregory lgreg.mered...@gmail.com Oliver, You wrote: we would have taken over Google by now. My not-so-secret plan for taking over Google is contained in the deck i posted in response to Viktorhttp://svn.biosimilarity.com/src/open/talks/MonadicDesignPatternsForTheWeb.pdf. Part of the reason i was excited that Jonas took on to make the JTA wrapper monadic is that it composes perfectly with the ideas explained in the deck. These ideas dovetail perfectly with the DSL stuff i've been working on. My feeling is that we are at a point where things could really start to happen. The ideas are 'in the air' so to speak. Best wishes, --greg 2009/6/17 Oliver Lambert olambo...@gmail.com 2009/6/18 Meredith Gregory lgreg.mered...@gmail.com Oliver, The short answer is no. The longer answer is - i worked this all out on my own; so, you guys -- who can program lift on top of scala on top of JVM and are therefore about 20X smarter than i am -- can too. I think if we were all 20X (or 2X) smarter than you, we would have taken over Google by now. - - And also, help is always available, if there is something specific you don't understand, let me know and i will do my best to convey it to you. As suggested by another kind person, I may have to start by going back to (an American?) school. Heres a question, why should I care about Monad's when they are already in OO, just not called Monads? - Best wishes, --greg P.S. Here is a version of the paragraph with links to useful bits of lore from the literature. For myself, i was unhappy with the notion of name. The π-calculihttp://en.wikipedia.org/wiki/Pi-calculusand lambda calculi http://en.wikipedia.org/wiki/Lambda_calculus suffer a dependence on a notion of name. Both families of calculi require at least countably infinitely http://en.wikipedia.org/wiki/Countable many nameshttp://www.cs.nps.navy.mil/research/languages/statements/gordon.html, and a notion of equality on names. If names have no internal structure then these theories *cannot be effectivehttp://en.wikipedia.org/wiki/Computable_function *. The reasons is that the notion of equality must then be realized as an infinitary table which cannot fit in any computer we have access to. Therefore, in effective theories, names must have internal structure. Since they have internal structure and are at least countably infinite, one is in danger of undermining the foundational character of these proposals for computing. Therefore, the only possible solution is that the notion of structured name must come from the notion of program proposed by the model. This argument is airtight. If you want a foundational model of computing with nominal structure, the nominal structure must derive from the notion of computation being put forward, i.e. it must *reflect* the notion of computationhttp://svn.biosimilarity.com/src/open/papers/trunk/concurrency/rho/ex_nihilo_entcs/ex_nihilo_finco.pdf. This gives rise to all kinds of new an beautiful phenomena. One measure of your way into compositional thinking is whether this is happening. Is your approach to compositional thinking beginning to yield whole new aspects of computing, and new 'wholes' of computation, new forms of organization. 2009/6/16 Oliver Lambert olambo...@gmail.com 2009/6/17 Meredith Gregory lgreg.mered...@gmail.com Jeremy, Most excellent question award to you, sir! How to bootstrap thinking compositionally... this is what i did - learn some compositional idioms by heart - do you know the shape of the paradoxical combinator by heart - do you know the data making up a monad - do you know the data making up a distributive law between monads - use them in real world applications and see where they fail - when is calculating the least/greatest fixpoint of a recursive spec for a problem the suboptimal solution - when is a monad not the answer - when is an indexed form of composition inadequate - improve them - is it a situational improvement or - a fundamental improvement - see where the very programming model itself fails - is functional composition the only sort of composition - how is parallel composition like functional composition - is parallel composition easily represented in categorical composition - improve it - what is the view of the world in your notion of composition - play with new programming models - does your new notion of composition give rise to
[Lift] Re: BBCode2XHTML
Isn't Lift XSS safe by default ? ... in the sense that it applies the proper escaping. Br's, Marius On Jun 18, 2:06 pm, Viktor Klang viktor.kl...@gmail.com wrote: Hi guys! I'm in dire need of an XSS-safe and generally harmless way of allowing end-users to add some markup to texts. In the spirit of re-use and lack of time, I wonder if any of you have any libraries to recommend that can transform a String maybe containing BBCode to the same string but with xhtml compliant markup. Googled it a bit and saw KefirBB http://sourceforge.net/projects/kefir-bb/and JavaBBCode https://javabbcode.dev.java.net/ but none of them seem lean enough (I mean, how much code does it need to transform a String??) So what's it gonna be guys, is there a saviour out there or will I need to pull out the Scala REPL? Cheers! -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: BBCode2XHTML
Lift's Textile support is what you want. See the chat window on http://demo.liftweb.net Enter I like *beer* into the window and see what happens. And yes, it's XSS safe. On Thu, Jun 18, 2009 at 4:06 AM, Viktor Klang viktor.kl...@gmail.comwrote: Hi guys! I'm in dire need of an XSS-safe and generally harmless way of allowing end-users to add some markup to texts. In the spirit of re-use and lack of time, I wonder if any of you have any libraries to recommend that can transform a String maybe containing BBCode to the same string but with xhtml compliant markup. Googled it a bit and saw KefirBBhttp://sourceforge.net/projects/kefir-bb/and JavaBBCode https://javabbcode.dev.java.net/ but none of them seem lean enough (I mean, how much code does it need to transform a String??) So what's it gonna be guys, is there a saviour out there or will I need to pull out the Scala REPL? Cheers! -- Viktor Klang Scala Loudmouth -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Error during sign-up
Hi There, I just got this error when I tried to sign-up a new user with the default interface. thanks -- Exception occured while processing /user_mgt/sign_up Message: java.lang.AbstractMethodError: org.tobster.model.User$.addlQueryParams()Lnet/liftweb/mapper/MetaMapper$addlQueryParams$; net.liftweb.mapper.MetaMapper$$anonfun$findMapFieldDb$1.apply(MetaMapper.scala:299) net.liftweb.mapper.MetaMapper$$anonfun$findMapFieldDb$1.apply(MetaMapper.scala:298) net.liftweb.mapper.DB$.use(DB.scala:317) net.liftweb.mapper.MetaMapper$class.findMapFieldDb(MetaMapper.scala:297) org.tobster.model.User$.findMapFieldDb(User.scala:9) net.liftweb.mapper.MetaMapper$class.findMapDb(MetaMapper.scala:293) org.tobster.model.User$.findMapDb(User.scala:9) net.liftweb.mapper.MetaMapper$class.findAll(MetaMapper.scala:259) org.tobster.model.User$.findAll(User.scala:9) net.liftweb.mapper.MappedString.valUnique(MappedString.scala:173) net.liftweb.mapper.ProtoUser$email$$anonfun$1.apply(ProtoUser.scala:61) net.liftweb.mapper.ProtoUser$email$$anonfun$1.apply(ProtoUser.scala:61) net.liftweb.mapper.MappedField$$anonfun$validate$1.apply(MappedField.scala:557) net.liftweb.mapper.MappedField$$anonfun$validate$1.apply(MappedField.scala:553) scala.List.flatMap(List.scala:1132) net.liftweb.mapper.MappedField$class.validate(MappedField.scala:553) net.liftweb.mapper.MappedEmail.validate(MappedEmail.scala:34) net.liftweb.mapper.MetaMapper$$anonfun$11.apply(MetaMapper.scala:522) net.liftweb.mapper.MetaMapper$$anonfun$11.apply(MetaMapper.scala:522) scala.List.flatMap(List.scala:1132) net.liftweb.mapper.MetaMapper$class.runValidationList(MetaMapper.scala:522) org.tobster.model.User$.runValidationList(User.scala:9) net.liftweb.mapper.MetaMapper$class.validate(MetaMapper.scala:536) org.tobster.model.User$.validate(User.scala:9) net.liftweb.mapper.Mapper$$anonfun$validate$1.apply(Mapper.scala:105) net.liftweb.mapper.Mapper$$anonfun$validate$1.apply(Mapper.scala:105) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) net.liftweb.mapper.Safe$.runSafe(Safe.scala:44) net.liftweb.mapper.Mapper$class.runSafe(Mapper.scala:50) org.tobster.model.User.runSafe(User.scala:24) net.liftweb.mapper.Mapper$class.validate(Mapper.scala:104) org.tobster.model.User.validate(User.scala:24) net.liftweb.mapper.MetaMegaProtoUser$class.testSignup$1(ProtoUser.scala:340) net.liftweb.mapper.MetaMegaProtoUser$$anonfun$innerSignup$1$1.apply(ProtoUser.scala:360) net.liftweb.mapper.MetaMegaProtoUser$$anonfun$innerSignup$1$1.apply(ProtoUser.scala:360) net.liftweb.http.S$NFuncHolder$$anonfun$apply$49.apply(S.scala:1695) net.liftweb.http.S$NFuncHolder$$anonfun$apply$49.apply(S.scala:1695) scala.List.map(List.scala:812) net.liftweb.http.S$NFuncHolder.apply(S.scala:1695) net.liftweb.http.LiftSession$$anonfun$buildFunc$1$2.apply(LiftSession.scala:339) net.liftweb.http.LiftSession$$anonfun$6$$anonfun$apply$19.apply(LiftSession.scala:354) net.liftweb.http.LiftSession$$anonfun$6$$anonfun$apply$19.apply(LiftSession.scala:354) scala.List.map(List.scala:812) net.liftweb.http.LiftSession$$anonfun$6.apply(LiftSession.scala:354) net.liftweb.http.LiftSession$$anonfun$6.apply(LiftSession.scala:343) scala.List.flatMap(List.scala:1132) net.liftweb.http.LiftSession.runParams(LiftSession.scala:343) net.liftweb.http.LiftSession.processRequest(LiftSession.scala:543) net.liftweb.http.LiftServlet.net$liftweb$http$LiftServlet$$dispatchStatefulRequest(LiftServlet.scala:239) net.liftweb.http.LiftServlet$$anonfun$2.apply(LiftServlet.scala:155) net.liftweb.http.LiftServlet$$anonfun$2.apply(LiftServlet.scala:155) net.liftweb.http.S$.net$liftweb$http$S$$wrapQuery(S.scala:908) net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1$$anonfun$apply$18.apply(S.scala:1026) net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:845) net.liftweb.http.S$$anonfun$net$liftweb$http$S$$doAround$1.apply(S.scala:846) net.liftweb.mapper.DB$$anon$1.net$liftweb$mapper$DB$$anon$$doWith(DB.scala:117) net.liftweb.mapper.DB$$anon$1$$anonfun$net$liftweb$mapper$DB$$anon$$doWith$1.apply(DB.scala:118) net.liftweb.mapper.DB$$anon$1$$anonfun$net$liftweb$mapper$DB$$anon$$doWith$1.apply(DB.scala:118) net.liftweb.mapper.DB$.use(DB.scala:317) net.liftweb.mapper.DB$$anon$1.net$liftweb$mapper$DB$$anon$$doWith(DB.scala:118) net.liftweb.mapper.DB$$anon$1.apply(DB.scala:124) net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:846)
[Lift] error during sign-up (solved)
Sorry, After I did mvn clean install it was ok. thanks anyway --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: BBCode2XHTML
Theres a textile package available in the repository. And its now 30x faster! :) On Thu, 2009-06-18 at 13:06 +0200, Viktor Klang wrote: Hi guys! I'm in dire need of an XSS-safe and generally harmless way of allowing end-users to add some markup to texts. In the spirit of re-use and lack of time, I wonder if any of you have any libraries to recommend that can transform a String maybe containing BBCode to the same string but with xhtml compliant markup. Googled it a bit and saw KefirBB and JavaBBCode but none of them seem lean enough (I mean, how much code does it need to transform a String??) So what's it gonna be guys, is there a saviour out there or will I need to pull out the Scala REPL? Cheers! -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] selectObj again
Hi There, I'm still having problems with the selectObj method. Here's the code: */* The basic trade types are: BUY and SELL */ object tradeType extends MappedLongForeignKey(this.asInstanceOf[MapperType], TradeTypeMetaObj){ override def _toForm = Full(SHtml.selectObj (List( (TradeTypeMetaObj.findAll(By(TradeTypeMetaObj.name, BUY)), kaufen), (TradeTypeMetaObj.findAll(By(TradeTypeMetaObj.name, SELL)),verkaufen)), Full(TradeTypeMetaObj.findAll(By(TradeTypeMetaObj.name, BUY))), (t: TradeType) = set(t)) ) }* and here's the compiler error: [INFO] Compiling 1 source files to /home/wacky/workspace_VirtuelleBoerse/virtualMarket/target/classes [WARNING] /home/wacky/workspace_VirtuelleBoerse/virtualMarket/src/main/scala/org/tobster/model/Order.scala:50: error: value set is not a member of Long [WARNING](t: TradeType) = set(t)) [WARNING] ^ [WARNING] one error found What do I've to do, to store the selected object in the corresponding table. thanks --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Lift and Goat Rodeo
David, that sounds really great. I tried to think about what's a good approach to be really scalable in context of data writing/reading (e.g. when you have to write an app for a huge number of users) A RDMBS approach would not be sufficient. Looking forward for further information for this subject. Regards, Martin On 18 Jun., 09:19, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, At the end of the Scala Lift Off, after I finished my third beer, Martin Odersky came over to me and asked, so, what's the future of Lift? I gave a hand-waving answer about the features for 1.1. But Martin is not a hand-waving kind of guy and I think I owe him and the other folks in the Scala and Lift communities more. There's a lot more that's necessary for web app development than Lift, an abstraction to the HTTP request/response cycle, can provide. Over the last couple of years, I've been noticing trends in web development, in the needs of my various consulting gigs, and in some other projects. It's clear to me that it's time for a unified data and data management model that goes beyond OR mapping and that is scalably transactional. I've put together a model that looks to the developer like STM but is backed with ZooKeeper and Cassandra. I've blogged about it athttp://blog.lostlake.org/index.php?/archives/94-Lift,-Goat-Rodeo-and-... Just as my web framework manifesto was the genesis of what has become Lift, I hope that my notions and ramblings in this blog post will become concrete, usable code over the next few months and a solid platform for building the next generation of web systems over the next few years... all built with Scala at their core. Thanks, David -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Git some:http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Lift and Goat Rodeo
On Thu, Jun 18, 2009 at 4:23 AM, marius d. marius.dan...@gmail.com wrote: Dave is there a reason why writes are allowed outside a transaction boundaries ? Writes are not allowed outside of transactional boundaries. You have to enter a transaction to get a TRef, a transactional reference. You can only read or write via a TRef. Br's, Marius On Jun 18, 10:19 am, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, At the end of the Scala Lift Off, after I finished my third beer, Martin Odersky came over to me and asked, so, what's the future of Lift? I gave a hand-waving answer about the features for 1.1. But Martin is not a hand-waving kind of guy and I think I owe him and the other folks in the Scala and Lift communities more. There's a lot more that's necessary for web app development than Lift, an abstraction to the HTTP request/response cycle, can provide. Over the last couple of years, I've been noticing trends in web development, in the needs of my various consulting gigs, and in some other projects. It's clear to me that it's time for a unified data and data management model that goes beyond OR mapping and that is scalably transactional. I've put together a model that looks to the developer like STM but is backed with ZooKeeper and Cassandra. I've blogged about it athttp:// blog.lostlake.org/index.php?/archives/94-Lift,-Goat-Rodeo-and-... Just as my web framework manifesto was the genesis of what has become Lift, I hope that my notions and ramblings in this blog post will become concrete, usable code over the next few months and a solid platform for building the next generation of web systems over the next few years... all built with Scala at their core. Thanks, David -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Git some:http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: New hosting for demo.liftweb.net
On Thu, Jun 18, 2009 at 6:21 AM, TylerWeir tyler.w...@gmail.com wrote: Is it just the basic slice? 128 Megatrons of RAM? It's running on the 512mb slice... at $12/mo it seemed like a reasonable price to pay. On Jun 18, 1:45 am, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, I'm trying a Xen slice on prgrm.com I'm currently runninghttp://demo.liftweb.netthere. Woo Hoo! David -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Git some:http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Error during sign-up
This looks like it's related to the code that David just committed. I wonder if your maven repo is out of sync. Can you try wiping ~/.m2 and see if that fixes it? Derek On Thu, Jun 18, 2009 at 5:01 AM, Tobias Daub hannes.flo...@gmx.li wrote: Hi There, I just got this error when I tried to sign-up a new user with the default interface. thanks -- Exception occured while processing /user_mgt/sign_up Message: java.lang.AbstractMethodError: org.tobster.model.User$.addlQueryParams()Lnet/liftweb/mapper/MetaMapper$addlQueryParams$; net.liftweb.mapper.MetaMapper$$anonfun$findMapFieldDb$1.apply(MetaMapper.scala:299) net.liftweb.mapper.MetaMapper$$anonfun$findMapFieldDb$1.apply(MetaMapper.scala:298) net.liftweb.mapper.DB$.use(DB.scala:317) net.liftweb.mapper.MetaMapper$class.findMapFieldDb(MetaMapper.scala:297) org.tobster.model.User$.findMapFieldDb(User.scala:9) net.liftweb.mapper.MetaMapper$class.findMapDb(MetaMapper.scala:293) org.tobster.model.User$.findMapDb(User.scala:9) net.liftweb.mapper.MetaMapper$class.findAll(MetaMapper.scala:259) org.tobster.model.User$.findAll(User.scala:9) net.liftweb.mapper.MappedString.valUnique(MappedString.scala:173) net.liftweb.mapper.ProtoUser$email$$anonfun$1.apply(ProtoUser.scala:61) net.liftweb.mapper.ProtoUser$email$$anonfun$1.apply(ProtoUser.scala:61) net.liftweb.mapper.MappedField$$anonfun$validate$1.apply(MappedField.scala:557) net.liftweb.mapper.MappedField$$anonfun$validate$1.apply(MappedField.scala:553) scala.List.flatMap(List.scala:1132) net.liftweb.mapper.MappedField$class.validate(MappedField.scala:553) net.liftweb.mapper.MappedEmail.validate(MappedEmail.scala:34) net.liftweb.mapper.MetaMapper$$anonfun$11.apply(MetaMapper.scala:522) net.liftweb.mapper.MetaMapper$$anonfun$11.apply(MetaMapper.scala:522) scala.List.flatMap(List.scala:1132) net.liftweb.mapper.MetaMapper$class.runValidationList(MetaMapper.scala:522) org.tobster.model.User$.runValidationList(User.scala:9) net.liftweb.mapper.MetaMapper$class.validate(MetaMapper.scala:536) org.tobster.model.User$.validate(User.scala:9) net.liftweb.mapper.Mapper$$anonfun$validate$1.apply(Mapper.scala:105) net.liftweb.mapper.Mapper$$anonfun$validate$1.apply(Mapper.scala:105) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) net.liftweb.mapper.Safe$.runSafe(Safe.scala:44) net.liftweb.mapper.Mapper$class.runSafe(Mapper.scala:50) org.tobster.model.User.runSafe(User.scala:24) net.liftweb.mapper.Mapper$class.validate(Mapper.scala:104) org.tobster.model.User.validate(User.scala:24) net.liftweb.mapper.MetaMegaProtoUser$class.testSignup$1(ProtoUser.scala:340) net.liftweb.mapper.MetaMegaProtoUser$$anonfun$innerSignup$1$1.apply(ProtoUser.scala:360) net.liftweb.mapper.MetaMegaProtoUser$$anonfun$innerSignup$1$1.apply(ProtoUser.scala:360) net.liftweb.http.S$NFuncHolder$$anonfun$apply$49.apply(S.scala:1695) net.liftweb.http.S$NFuncHolder$$anonfun$apply$49.apply(S.scala:1695) scala.List.map(List.scala:812) net.liftweb.http.S$NFuncHolder.apply(S.scala:1695) net.liftweb.http.LiftSession$$anonfun$buildFunc$1$2.apply(LiftSession.scala:339) net.liftweb.http.LiftSession$$anonfun$6$$anonfun$apply$19.apply(LiftSession.scala:354) net.liftweb.http.LiftSession$$anonfun$6$$anonfun$apply$19.apply(LiftSession.scala:354) scala.List.map(List.scala:812) net.liftweb.http.LiftSession$$anonfun$6.apply(LiftSession.scala:354) net.liftweb.http.LiftSession$$anonfun$6.apply(LiftSession.scala:343) scala.List.flatMap(List.scala:1132) net.liftweb.http.LiftSession.runParams(LiftSession.scala:343) net.liftweb.http.LiftSession.processRequest(LiftSession.scala:543) net.liftweb.http.LiftServlet.net $liftweb$http$LiftServlet$$dispatchStatefulRequest(LiftServlet.scala:239) net.liftweb.http.LiftServlet$$anonfun$2.apply(LiftServlet.scala:155) net.liftweb.http.LiftServlet$$anonfun$2.apply(LiftServlet.scala:155) net.liftweb.http.S$.net$liftweb$http$S$$wrapQuery(S.scala:908) net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1$$anonfun$apply$18.apply(S.scala:1026) net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:845) net.liftweb.http.S$$anonfun$net$liftweb$http$S$$doAround$1.apply(S.scala:846) net.liftweb.mapper.DB$$anon$1.net $liftweb$mapper$DB$$anon$$doWith(DB.scala:117) net.liftweb.mapper.DB$$anon$1$$anonfun$net$liftweb$mapper$DB$$anon$$doWith$1.apply(DB.scala:118) net.liftweb.mapper.DB$$anon$1$$anonfun$net$liftweb$mapper$DB$$anon$$doWith$1.apply(DB.scala:118) net.liftweb.mapper.DB$.use(DB.scala:317) net.liftweb.mapper.DB$$anon$1.net $liftweb$mapper$DB$$anon$$doWith(DB.scala:118)
[Lift] Re: Lift and Goat Rodeo
On Thu, Jun 18, 2009 at 8:29 AM, TSP tim.pig...@optrak.co.uk wrote: Hi David, I am working in the typical business application space, where rdbms are quite nice solutions - lots of tables but in your application you never really need an awful lot of rows for anything other than consolidated reporting. What concerns me is that if the attention of the principal author of lift is on building systems for mega social networking activities that I really don't need, does that mean that other aspects of Lift development will fall by the wayside? if this is the case, will Lift still be a useful platform for my purposes? I may be wrong but I suspect most people's needs may be more prosaic. Tim, I'm not leaving Lift. Lift is a critical part of Goat Rodeo, but Goat Rodeo is necessary to span data and logic into the browser as well as the backing store. The concrete things you'll see out of me related to Lift in the next few months are: - Completion of the record package - Integration of jsync into Lift for better synchronization of client/server state (with a bunch of security enhancements) - Some componentization of display logic so you'll be able to define the JavaScript parts of your UI in a more declarative way - Wizard... the ability to define multi-screen input forms Plus, as Derek pointed out on another thread, this community totally rocks and I'm not going anywhere because I love the people and energy in the Lift community. I could have made Goat Rodeo part of Lift, but it's going to be another year or more before the Goat Rodeo APIs settle and I want to make sure that Lift APIs are more stable. So, no, I'm not going anywhere. In fact, I'm not traveling in Q3 or Q4 and I've got no book to write, so I'm much more focused on enhancing Lift, Lift-related technologies and contributing to the Lift community. Thanks, David PS -- btw, if I did get hit by a bus tomorrow, Lift would continue to grow and thrive. The existing Lift committers could take the project forward in spectacular ways. I may be the loudest mouth in the Lift community, but I am not the biggest brain or the best coder. Tim -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Neo4J
Good morning, Has anyone used a graph database, such as Neo4J, as their back end in a Lift project? Jeremy --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] REST Record
Hi, I think that Record framework may play a relevant role in processing REST requests. I mean picture the following model: class MyRecord extends Record[MyRecord] { def meta = MyRecordMeta object firstName extends StringField(this, John) object lastName extends StringField(this, Doe) } object MyRecordMeta extends MyRecord with MetaRecord[MyRecord] { override def mutable_? = false } In boot we could say something like: MyRecordMeta.dispatch.append { case (Req(create :: person :: Nil, _, _), rec) = //rec is the record constructed by this meta record based on the REST QS parameters. val validationResult = MyRecordMeta.validate(rec) ... // return a Box[LiftResponse] } // The http Request would look something like: http//host/create/ person?firstName=IsaaclastName=Newton As you can see it is very similar with DispatchPF, in fact under the hood it will just register a DispatchPF construct the record for us and we can use the actual information in a type safe manner. I could add this support soon enough but first I'd like to know if you think this would be helpful. Br's, Marius --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Lift and Goat Rodeo
Sorry Dave but something still escapes me. Transaction.write also takes a TRef parameter which is never used. Furthermore nothing seems to prevent one to call new TRef... outside a Transaction. I assume the normal usage is: val ref = new Ref(QString()) ref.map(tref = // do transactional reads and writes. Very cool) but then I can do: val tref = new TRef(ref) tref(QString(new val)) ... but this does not seam to be transactional since we're outside a transaction context? Perhaps TRef.set should call Transaction.write from a ref.map( ... ) as this gives transaction wrapping? Br's, Marius On Jun 18, 6:14 pm, David Pollak feeder.of.the.be...@gmail.com wrote: On Thu, Jun 18, 2009 at 4:23 AM, marius d. marius.dan...@gmail.com wrote: Dave is there a reason why writes are allowed outside a transaction boundaries ? Writes are not allowed outside of transactional boundaries. You have to enter a transaction to get a TRef, a transactional reference. You can only read or write via a TRef. Br's, Marius On Jun 18, 10:19 am, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, At the end of the Scala Lift Off, after I finished my third beer, Martin Odersky came over to me and asked, so, what's the future of Lift? I gave a hand-waving answer about the features for 1.1. But Martin is not a hand-waving kind of guy and I think I owe him and the other folks in the Scala and Lift communities more. There's a lot more that's necessary for web app development than Lift, an abstraction to the HTTP request/response cycle, can provide. Over the last couple of years, I've been noticing trends in web development, in the needs of my various consulting gigs, and in some other projects. It's clear to me that it's time for a unified data and data management model that goes beyond OR mapping and that is scalably transactional. I've put together a model that looks to the developer like STM but is backed with ZooKeeper and Cassandra. I've blogged about it athttp:// blog.lostlake.org/index.php?/archives/94-Lift,-Goat-Rodeo-and-... Just as my web framework manifesto was the genesis of what has become Lift, I hope that my notions and ramblings in this blog post will become concrete, usable code over the next few months and a solid platform for building the next generation of web systems over the next few years... all built with Scala at their core. Thanks, David -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Git some:http://github.com/dpp -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Git some:http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] lift-paypal: Paypal Production PDT not working - help!
I trying to get our site (buyafeature.com) live today and ran into a problem with the paypal feature. I am using the lift-paypal module and things have been working just fine in development. The problem I am seeing is that when I press the Return to Website button in paypal, it tries to redirect to the following URL: http://buyafeature.com/paypal/complete?tx=36627495TV601683Lst=Completedamt=5.00cc=USDcm=rRJJNK1ZJOCLMF1Ritem_number=ENTH-32196merchant_return_link=Return+to+Enthiosys%2C+Inc.form_charset=UTF-8 And then the browser shows the following error: The Requested URL /paypal/complete was not found on this server I tried to reproduced this on the development sandbox but it works fine (i.e. returns to the starting page in my app and my server gets the PDT event). Has anyone seen this or have any ideas on what to try? Thanks in advance. Dan --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Thoughts on separation of display from logic
Though that's undeniably a bit of a rabbit hole, it would also be the fully general solution and could have really interesting applications in terms of being able to bind not just full NodeSeqs but individual attributes, and even attributes in multiple nodes. Sounds like an exciting feature to me! onward and xbindward, Kris On Wed, Jun 17, 2009 at 5:29 PM, David Pollakfeeder.of.the.be...@gmail.com wrote: Crud... adding xpathisms to bind... where will it end? :-) On Wed, Jun 17, 2009 at 3:41 PM, Kevin Wright kev.lee.wri...@googlemail.com wrote: One possibility I already considered is something like: bind(nodeseq, prefix, suffix - Text(matched an element), @suffix - Text(matched an attribute), @suffix=value - Text(matched an attribute with specified value)); the bindings here would respectively match the elements: prefix:suffixcontent/prefix:suffix span prefix:suffix=placeholdercontent/span span prefix:suffix=valuecontent/span Use of the span elements above was an arbitrary choice What's missing is an intuitive way to access the node that has been bound, especially if you only want to change the contents On Wed, Jun 17, 2009 at 10:19 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Wed, Jun 17, 2009 at 2:07 PM, Kris Nuttycombe kris.nuttyco...@gmail.com wrote: We'd still need some attribute to disambiguate in the case of multiple textarea tags, wouldn't we? I don't think so. The only NodeSeq being passed to the function is the NodeSeq inside the tag that's getting bound to. Kris On Wed, Jun 17, 2009 at 2:51 PM, David Pollakfeeder.of.the.be...@gmail.com wrote: I can see a set of methods that look like: textarea(f: String = Unit)(n: NodeSeq) that will slurp the values and attributes out of the NodeSeq... so you'd bind like: biography - textarea(s = setBio(s)) _ On Wed, Jun 17, 2009 at 10:22 AM, Matt Williams m...@makeable.co.uk wrote: I wholeheartedly agree with the philosophy of separating the display from the program logic, and am currently getting to grips with the generators, but am finding that now I end up with a degree of markup within my code. Can you think of any caveats to infering the node type passed, and dynamically using the relevant generators to construct the returned node. I am thinking something along the lines of: person:biography textarea style=myStyle cols=20 rows=5 This is a sample of some biography text /textarea /person:biography Where it would automatically infer that it is a textarea, pass through the relevant attributes, and insert whatever function, values, etc I have specified in my snippet. What are your thoughts on this? Brgds, Matt -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: lift-paypal: Paypal Production PDT not working - help!
More information: In my object which extends PaypalPDT, I had a line which overridded the variable pdtPath: override def pdtPath = complete On Jun 18, 11:58 am, Dano olearydani...@gmail.com wrote: I trying to get our site (buyafeature.com) live today and ran into a problem with the paypal feature. I am using the lift-paypal module and things have been working just fine in development. The problem I am seeing is that when I press the Return to Website button in paypal, it tries to redirect to the following URL: http://buyafeature.com/paypal/complete?tx=36627495TV601683Lst=Comple... And then the browser shows the following error: The Requested URL /paypal/complete was not found on this server I tried to reproduced this on the development sandbox but it works fine (i.e. returns to the starting page in my app and my server gets the PDT event). Has anyone seen this or have any ideas on what to try? Thanks in advance. Dan --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: lift-paypal: Paypal Production PDT not working - help!
Sorry, my post got submitted too early. When I commented out the line: override def pdtPath = complete I get the same failure mode as in production. Do I need to set pdtPath or what do I change to work with the default? Thanks. Dan On Jun 18, 12:04 pm, Dano olearydani...@gmail.com wrote: More information: In my object which extends PaypalPDT, I had a line which overridded the variable pdtPath: override def pdtPath = complete On Jun 18, 11:58 am, Dano olearydani...@gmail.com wrote: I trying to get our site (buyafeature.com) live today and ran into a problem with the paypal feature. I am using the lift-paypal module and things have been working just fine in development. The problem I am seeing is that when I press the Return to Website button in paypal, it tries to redirect to the following URL: http://buyafeature.com/paypal/complete?tx=36627495TV601683Lst=Comple... And then the browser shows the following error: The Requested URL /paypal/complete was not found on this server I tried to reproduced this on the development sandbox but it works fine (i.e. returns to the starting page in my app and my server gets the PDT event). Has anyone seen this or have any ideas on what to try? Thanks in advance. Dan --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] interaction with hibernate crowd?
Lifted and Scalata, Has anyone had any joy engaging the hibernate crowd? i've been trying every channel i can to get someone in the hibernate know to take a look at what i believe is a bug and no one even responds at all. Best wishes, --greg -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Lift and Goat Rodeo
Yeah... I haven't sealed things yet. You can do these things... but not for long. ;-) On Jun 18, 2009 10:36 AM, marius d. marius.dan...@gmail.com wrote: Sorry Dave but something still escapes me. Transaction.write also takes a TRef parameter which is never used. Furthermore nothing seems to prevent one to call new TRef... outside a Transaction. I assume the normal usage is: val ref = new Ref(QString()) ref.map(tref = // do transactional reads and writes. Very cool) but then I can do: val tref = new TRef(ref) tref(QString(new val)) ... but this does not seam to be transactional since we're outside a transaction context? Perhaps TRef.set should call Transaction.write from a ref.map( ... ) as this gives transaction wrapping? Br's, Marius On Jun 18, 6:14 pm, David Pollak feeder.of.the.be...@gmail.com wrote: On Thu, Jun 18, 2009 at 4:23 AM, marius d. marius.dan...@gmail.com wrote:Dave is there a ... --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Neo4J
I think I was the first external committer to Neo4j.It is a really interesting product, and I had quite a few nice use-cases for it, but unfortunately their adoption of AfferoGPLv3 prohibited me from using it. Viktor, Lift Scala 18 jun 2009 kl. 17.39 Jeremy Day jeremy@gmail.com skrev: Good morning, Has anyone used a graph database, such as Neo4J, as their back end in a Lift project? Jeremy --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: lift-paypal: Paypal Production PDT not working - help!
Resolved. I backed out my override on pdtPath and adjusted my paypal configuration to point to /paypal/pdt and things worked. Moral of the story: Do NOT override pdtPath!! On Jun 18, 12:07 pm, Dano olearydani...@gmail.com wrote: Sorry, my post got submitted too early. When I commented out the line: override def pdtPath = complete I get the same failure mode as in production. Do I need to set pdtPath or what do I change to work with the default? Thanks. Dan On Jun 18, 12:04 pm, Dano olearydani...@gmail.com wrote: More information: In my object which extends PaypalPDT, I had a line which overridded the variable pdtPath: override def pdtPath = complete On Jun 18, 11:58 am, Dano olearydani...@gmail.com wrote: I trying to get our site (buyafeature.com) live today and ran into a problem with the paypal feature. I am using the lift-paypal module and things have been working just fine in development. The problem I am seeing is that when I press the Return to Website button in paypal, it tries to redirect to the following URL: http://buyafeature.com/paypal/complete?tx=36627495TV601683Lst=Comple... And then the browser shows the following error: The Requested URL /paypal/complete was not found on this server I tried to reproduced this on the development sandbox but it works fine (i.e. returns to the starting page in my app and my server gets the PDT event). Has anyone seen this or have any ideas on what to try? Thanks in advance. Dan --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Neo4J
Viktor, Interesting. I'm starting the very initial development on a little commercial product and I'm thinking about using Neo4J as the back end. I'll need to eyeball their license again to make sure that it's compatible with what I want to do. Jeremy On Thu, Jun 18, 2009 at 2:53 PM, Viktor Klang viktor.kl...@gmail.comwrote: I think I was the first external committer to Neo4j.It is a really interesting product, and I had quite a few nice use-cases for it, but unfortunately their adoption of AfferoGPLv3 prohibited me from using it. Viktor, Lift Scala 18 jun 2009 kl. 17.39 Jeremy Day jeremy@gmail.com skrev: Good morning, Has anyone used a graph database, such as Neo4J, as their back end in a Lift project? Jeremy --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Very basic questions
Hi! I'm starting to use lift/scala(I don't know either) and already I have a couple of (very very basic) questions. I'm reading The definitive guide to lift and even tho it's been enough to actually understand some of the key elements of a lift application I am having some problems understanding some of the code and how you people work with Lift. 1.- What tools do you use to program, debug and run the website? At this moment I'm using text mate to program and the terminal to run yetti; It's very slow to run yetti every time and its hard to understand the errors so i tried eclipse but I had trouble installing the maven plug-in so... what is your toolbox? 2.- What is _ and Full in different places? I see that in a binding name - SHtml.text(name, name = _) or when checking for cases there's a case for Full(_) and for _ ; what does _ means and what does Full mean; and whats the difference between Full (_) and _. 3.-Reading about the flow from request to response; i cant avoid to ask: How many times does the Boot(or bootloader) run? Once when i run the app(or web server; yetti in my case) or once every time there's a request? Thank you very much! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Neo4J
Last time I checked they had commercial licenses for sale (contact for pricing details) Viktor, Rogue Software Architect 18 jun 2009 kl. 22.10 Jeremy Day jeremy@gmail.com skrev: Viktor, Interesting. I'm starting the very initial development on a little commercial product and I'm thinking about using Neo4J as the back end. I'll need to eyeball their license again to make sure that it's compatible with what I want to do. Jeremy On Thu, Jun 18, 2009 at 2:53 PM, Viktor Klang viktor.kl...@gmail.com wrote: I think I was the first external committer to Neo4j.It is a really interesting product, and I had quite a few nice use-cases for it, but unfortunately their adoption of AfferoGPLv3 prohibited me from using it. Viktor, Lift Scala 18 jun 2009 kl. 17.39 Jeremy Day jeremy@gmail.com skrev: Good morning, Has anyone used a graph database, such as Neo4J, as their back end in a Lift project? Jeremy --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: interaction with hibernate crowd?
Viktor, i finally got someone on the hibernate IRC channel to take a look at the problem. He claims that if he removes the final declarator from a field for which i have only a getter and then adds a setter hibernate works as advertised. i will test this out. If no joy i might take you up on your kind offer. Best wishes, --greg On Thu, Jun 18, 2009 at 1:10 PM, Viktor Klang viktor.kl...@gmail.comwrote: Gregory, send the available debug info regarding the suspected defect and I'll see what I can do. Viktor,Rogue Software Architect 18 jun 2009 kl. 21.24 Meredith Gregory lgreg.mered...@gmail.com skrev: Lifted and Scalata, Has anyone had any joy engaging the hibernate crowd? i've been trying every channel i can to get someone in the hibernate know to take a look at what i believe is a bug and no one even responds at all. Best wishes, --greg -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.comhttp://biosimilarity.blogspot.com -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: interaction with hibernate crowd?
All, Can anyone recommend an alternative to hibernate for a JPA implementation? i've been stuck on this bug for several days, now; i need to move on. Best wishes, --greg On Thu, Jun 18, 2009 at 2:09 PM, Meredith Gregory lgreg.mered...@gmail.comwrote: Viktor, i finally got someone on the hibernate IRC channel to take a look at the problem. He claims that if he removes the final declarator from a field for which i have only a getter and then adds a setter hibernate works as advertised. i will test this out. If no joy i might take you up on your kind offer. Best wishes, --greg On Thu, Jun 18, 2009 at 1:10 PM, Viktor Klang viktor.kl...@gmail.comwrote: Gregory, send the available debug info regarding the suspected defect and I'll see what I can do. Viktor,Rogue Software Architect 18 jun 2009 kl. 21.24 Meredith Gregory lgreg.mered...@gmail.com skrev: Lifted and Scalata, Has anyone had any joy engaging the hibernate crowd? i've been trying every channel i can to get someone in the hibernate know to take a look at what i believe is a bug and no one even responds at all. Best wishes, --greg -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.comhttp://biosimilarity.blogspot.com -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Very basic questions
Hi, and welcome to Lift! On Thu, Jun 18, 2009 at 10:46 AM, DFectuososantiago1...@gmail.com wrote: Hi! I'm starting to use lift/scala(I don't know either) and already I have a couple of (very very basic) questions. I'm reading The definitive guide to lift and even tho it's been enough to actually understand some of the key elements of a lift application I am having some problems understanding some of the code and how you people work with Lift. 1.- What tools do you use to program, debug and run the website? At this moment I'm using text mate to program and the terminal to run yetti; It's very slow to run yetti every time and its hard to understand the errors so i tried eclipse but I had trouble installing the maven plug-in so... what is your toolbox? I tend to like Netbeans 6.7 (currently in rc3 status) with the Scala plugin. Others use Eclipse, IDEA, Vim, and Emacs with varying degrees of success. I'm not familiar with yetti (jetty?) but a lot of folks in the Lift community use JavaRebel speed things up and avoid container restarts. I run my app on Glassfish (with JavaRebel in development), but any servlet container will work and jetty is probably be the best for getting started. 2.- What is _ and Full in different places? I see that in a binding name - SHtml.text(name, name = _) or when checking for cases there's a case for Full(_) and for _ ; what does _ means and what does Full mean; and whats the difference between Full (_) and _. _ is the great wildcard in Scala. In the binding example, name = _ is equivalent to the anonymous function (s: String) = name = s. A case matching on Full(_) will match any Full box, ignoring the type of its contents. A case matching on _ will match any value not matched by previous clauses. 3.-Reading about the flow from request to response; i cant avoid to ask: How many times does the Boot(or bootloader) run? Once when i run the app(or web server; yetti in my case) or once every time there's a request? Boot is run on startup, and not re-run subsequently. This can cause some trickiness when using JavaRebel; you will need to restart the application if you make changes to Boot. Kris --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: interaction with hibernate crowd?
Ah, this makes sense to me. Final fields in Hibernate-manage objects will almost certainly cause problems in my experience (at least using field-based access; I've no experience with property-based mappings.) Kris. On Thu, Jun 18, 2009 at 3:09 PM, Meredith Gregorylgreg.mered...@gmail.com wrote: Viktor, i finally got someone on the hibernate IRC channel to take a look at the problem. He claims that if he removes the final declarator from a field for which i have only a getter and then adds a setter hibernate works as advertised. i will test this out. If no joy i might take you up on your kind offer. Best wishes, --greg On Thu, Jun 18, 2009 at 1:10 PM, Viktor Klang viktor.kl...@gmail.com wrote: Gregory, send the available debug info regarding the suspected defect and I'll see what I can do. Viktor, Rogue Software Architect 18 jun 2009 kl. 21.24 Meredith Gregory lgreg.mered...@gmail.com skrev: Lifted and Scalata, Has anyone had any joy engaging the hibernate crowd? i've been trying every channel i can to get someone in the hibernate know to take a look at what i believe is a bug and no one even responds at all. Best wishes, --greg -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: interaction with hibernate crowd?
Is this final field something that is intended to be retrieved from the DB? As far as I know, JPA doesn't support final fields, period. If this getter is really just wrapping something else, it should be marked as @Transient. Derek On Thu, Jun 18, 2009 at 4:09 PM, Meredith Gregory lgreg.mered...@gmail.comwrote: Viktor, i finally got someone on the hibernate IRC channel to take a look at the problem. He claims that if he removes the final declarator from a field for which i have only a getter and then adds a setter hibernate works as advertised. i will test this out. If no joy i might take you up on your kind offer. Best wishes, --greg On Thu, Jun 18, 2009 at 1:10 PM, Viktor Klang viktor.kl...@gmail.comwrote: Gregory, send the available debug info regarding the suspected defect and I'll see what I can do. Viktor,Rogue Software Architect 18 jun 2009 kl. 21.24 Meredith Gregory lgreg.mered...@gmail.com skrev: Lifted and Scalata, Has anyone had any joy engaging the hibernate crowd? i've been trying every channel i can to get someone in the hibernate know to take a look at what i believe is a bug and no one even responds at all. Best wishes, --greg -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.comhttp://biosimilarity.blogspot.com -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: lift-paypal: Paypal Production PDT not working - help!
It seems to me that the pdtPath should be configurable. If other people agree we should at least open an issue on GitHub to track this. Derek On Thu, Jun 18, 2009 at 3:07 PM, Dano olearydani...@gmail.com wrote: Resolved. I backed out my override on pdtPath and adjusted my paypal configuration to point to /paypal/pdt and things worked. Moral of the story: Do NOT override pdtPath!! On Jun 18, 12:07 pm, Dano olearydani...@gmail.com wrote: Sorry, my post got submitted too early. When I commented out the line: override def pdtPath = complete I get the same failure mode as in production. Do I need to set pdtPath or what do I change to work with the default? Thanks. Dan On Jun 18, 12:04 pm, Dano olearydani...@gmail.com wrote: More information: In my object which extends PaypalPDT, I had a line which overridded the variable pdtPath: override def pdtPath = complete On Jun 18, 11:58 am, Dano olearydani...@gmail.com wrote: I trying to get our site (buyafeature.com) live today and ran into a problem with the paypal feature. I am using the lift-paypal module and things have been working just fine in development. The problem I am seeing is that when I press the Return to Website button in paypal, it tries to redirect to the following URL: http://buyafeature.com/paypal/complete?tx=36627495TV601683Lst=Comple... And then the browser shows the following error: The Requested URL /paypal/complete was not found on this server I tried to reproduced this on the development sandbox but it works fine (i.e. returns to the starting page in my app and my server gets the PDT event). Has anyone seen this or have any ideas on what to try? Thanks in advance. Dan --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: interaction with hibernate crowd?
Derek, Kris, Thanks. The problem is more subtle. i have modified my code emitter to not mark the field as final and to add the setter. i still get the same problem. However, i've got sample code derived from the emitted code that generates the correct schema. That is the key is used, not a tinyblob. Best wishes, --greg On Thu, Jun 18, 2009 at 3:07 PM, Derek Chen-Becker dchenbec...@gmail.comwrote: Is this final field something that is intended to be retrieved from the DB? As far as I know, JPA doesn't support final fields, period. If this getter is really just wrapping something else, it should be marked as @Transient. Derek On Thu, Jun 18, 2009 at 4:09 PM, Meredith Gregory lgreg.mered...@gmail.com wrote: Viktor, i finally got someone on the hibernate IRC channel to take a look at the problem. He claims that if he removes the final declarator from a field for which i have only a getter and then adds a setter hibernate works as advertised. i will test this out. If no joy i might take you up on your kind offer. Best wishes, --greg On Thu, Jun 18, 2009 at 1:10 PM, Viktor Klang viktor.kl...@gmail.comwrote: Gregory, send the available debug info regarding the suspected defect and I'll see what I can do. Viktor,Rogue Software Architect 18 jun 2009 kl. 21.24 Meredith Gregory lgreg.mered...@gmail.com skrev: Lifted and Scalata, Has anyone had any joy engaging the hibernate crowd? i've been trying every channel i can to get someone in the hibernate know to take a look at what i believe is a bug and no one even responds at all. Best wishes, --greg -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.comhttp://biosimilarity.blogspot.com -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Properties Files and Databases
Hi all, I'm looking to switch a basic Lift install to use MySQL. I see that this has been addressed on the wiki (http://wiki.liftweb.net/index.php/ HowTo_configure_lift_with_MySQL), though it involves hardcoding the connection details in Boot.scala. I'd like something easier to deploy to various machines. The thread following Jörn's announcement of the wiki page on MySQL is useful (http://groups.google.com/group/liftweb/browse_thread/thread/ bd4e74b68e8aa2a9/9eb2c2ef39442d63) but none of them mention using properties files, which I understand from this mailing list (e.g. http://groups.google.com/group/liftweb/browse_thread/thread/49eb17b5dd6fc46a) is the best way store database settings. So, I created src/main/resources/props/peter.db.xml: ?xml version=1.0 encoding=UTF-8? !DOCTYPE properties SYSTEM http://java.sun.com/dtd/properties.dtd; properties comment/comment entry key=db.drivercom.mysql.jdbc.Driver/entry entry key=db.urljdbc:mysql://localhost/mydb/entry entry key=db.usermyusername/entry entry key=db.passwordmypassword/entry /properties Unfortunately, the property file does appear to be loaded, as the DBVendor code in Boot.scala generated by the lift-archetype-basic archetype falls back to its derby defaults. Do you have any idea what I'm doing wrong? Not having any experience with Java, I wouldn't be surprised if it's something as simple as getting the properties XML wrong... Thanks for your help! Peter --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Mapper and display generation
I'm looking for a relatively simple way to modify the form and form elements that are generated by Mapper, such as adding or modifying attributes. I've been using the following method in my model classes that extend Mapper: def mf(in: Node, name:String, value:String): NodeSeq = in match { case e: Elem = e % new UnprefixedAttribute(name, Text(value), Null) case _ = NodeSeq.Empty } I then override _toForm method in the fields, like so: object description extends MappedString(this, 255) { override def _toForm = super._toForm.map(_.flatMap(mf (_,size,80))) } This adds a size attribute to the input element on the form. I also tried this with WYMEditor, to output a xhtml editor: object detail extends MappedTextarea(this, 1024) { override def _toForm = super._toForm.map(_.flatMap(mf (_,class,wymeditor))) } and it works OK. But it seems like there should be a simpler way to style field output. Also, if I wanted to add attributes to the submit button in the form, itself, say if I CRUDify my model, I have to override crudDoForm entirely just to get to the input button. At least I think I do. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Thoughts on separation of display from logic
On Thu, Jun 18, 2009 at 11:27 AM, Kris Nuttycombe kris.nuttyco...@gmail.com wrote: Though that's undeniably a bit of a rabbit hole, it would also be the fully general solution and could have really interesting applications in terms of being able to bind not just full NodeSeqs but individual attributes, and even attributes in multiple nodes. Sounds like an exciting feature to me! You can bind to attributes right now. You just need to use AttrBindParam or FuncAttrBindParam on the right side of the - onward and xbindward, Kris On Wed, Jun 17, 2009 at 5:29 PM, David Pollakfeeder.of.the.be...@gmail.com wrote: Crud... adding xpathisms to bind... where will it end? :-) On Wed, Jun 17, 2009 at 3:41 PM, Kevin Wright kev.lee.wri...@googlemail.com wrote: One possibility I already considered is something like: bind(nodeseq, prefix, suffix - Text(matched an element), @suffix - Text(matched an attribute), @suffix=value - Text(matched an attribute with specified value)); the bindings here would respectively match the elements: prefix:suffixcontent/prefix:suffix span prefix:suffix=placeholdercontent/span span prefix:suffix=valuecontent/span Use of the span elements above was an arbitrary choice What's missing is an intuitive way to access the node that has been bound, especially if you only want to change the contents On Wed, Jun 17, 2009 at 10:19 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Wed, Jun 17, 2009 at 2:07 PM, Kris Nuttycombe kris.nuttyco...@gmail.com wrote: We'd still need some attribute to disambiguate in the case of multiple textarea tags, wouldn't we? I don't think so. The only NodeSeq being passed to the function is the NodeSeq inside the tag that's getting bound to. Kris On Wed, Jun 17, 2009 at 2:51 PM, David Pollakfeeder.of.the.be...@gmail.com wrote: I can see a set of methods that look like: textarea(f: String = Unit)(n: NodeSeq) that will slurp the values and attributes out of the NodeSeq... so you'd bind like: biography - textarea(s = setBio(s)) _ On Wed, Jun 17, 2009 at 10:22 AM, Matt Williams m...@makeable.co.uk wrote: I wholeheartedly agree with the philosophy of separating the display from the program logic, and am currently getting to grips with the generators, but am finding that now I end up with a degree of markup within my code. Can you think of any caveats to infering the node type passed, and dynamically using the relevant generators to construct the returned node. I am thinking something along the lines of: person:biography textarea style=myStyle cols=20 rows=5 This is a sample of some biography text /textarea /person:biography Where it would automatically infer that it is a textarea, pass through the relevant attributes, and insert whatever function, values, etc I have specified in my snippet. What are your thoughts on this? Brgds, Matt -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: lift-paypal: Paypal Production PDT not working - help!
On Thu, Jun 18, 2009 at 3:17 PM, Derek Chen-Becker dchenbec...@gmail.comwrote: It seems to me that the pdtPath should be configurable. If other people agree we should at least open an issue on GitHub to track this. Sure. Derek On Thu, Jun 18, 2009 at 3:07 PM, Dano olearydani...@gmail.com wrote: Resolved. I backed out my override on pdtPath and adjusted my paypal configuration to point to /paypal/pdt and things worked. Moral of the story: Do NOT override pdtPath!! On Jun 18, 12:07 pm, Dano olearydani...@gmail.com wrote: Sorry, my post got submitted too early. When I commented out the line: override def pdtPath = complete I get the same failure mode as in production. Do I need to set pdtPath or what do I change to work with the default? Thanks. Dan On Jun 18, 12:04 pm, Dano olearydani...@gmail.com wrote: More information: In my object which extends PaypalPDT, I had a line which overridded the variable pdtPath: override def pdtPath = complete On Jun 18, 11:58 am, Dano olearydani...@gmail.com wrote: I trying to get our site (buyafeature.com) live today and ran into a problem with the paypal feature. I am using the lift-paypal module and things have been working just fine in development. The problem I am seeing is that when I press the Return to Website button in paypal, it tries to redirect to the following URL: http://buyafeature.com/paypal/complete?tx=36627495TV601683Lst=Comple... And then the browser shows the following error: The Requested URL /paypal/complete was not found on this server I tried to reproduced this on the development sandbox but it works fine (i.e. returns to the starting page in my app and my server gets the PDT event). Has anyone seen this or have any ideas on what to try? Thanks in advance. Dan -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: New hosting for demo.liftweb.net
On Thu, Jun 18, 2009 at 4:32 PM, Alex Boisvert boisv...@intalio.com wrote: Typo: http://www.prgmr.com/ Thanks... can't spell... can't type On Thu, Jun 18, 2009 at 4:18 PM, Derek Chen-Becker dchenbec...@gmail.comwrote: Is it really at prgrm.com? If I go there it looks like a hacked site... http://www.prgrm.com/ Derek On Thu, Jun 18, 2009 at 9:25 AM, David Pollak feeder.of.the.be...@gmail.com wrote: On Thu, Jun 18, 2009 at 6:21 AM, TylerWeir tyler.w...@gmail.com wrote: Is it just the basic slice? 128 Megatrons of RAM? It's running on the 512mb slice... at $12/mo it seemed like a reasonable price to pay. On Jun 18, 1:45 am, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, I'm trying a Xen slice on prgrm.com I'm currently runninghttp://demo.liftweb.netthere. Woo Hoo! David -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Git some:http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Properties Files and Databases
If your username is peter, put a file in src/main/resources/props named peter.props In that file, place the following lines: db.driver=*the_name_name_of_your_driver* db.url=*the_url_to_access_your_database* db.user=*the_username* db.password=*the_db_password* test.me=true ** ** Add the following line to Boot.scala: println(Props.get(test.me) When you run your app Full(true) should appear on the console and the correct db settings should be picked up. Thanks, David ** On Thu, Jun 18, 2009 at 3:49 PM, Peter Robinett pe...@bubblefoundry.comwrote: Hi all, I'm looking to switch a basic Lift install to use MySQL. I see that this has been addressed on the wiki (http://wiki.liftweb.net/index.php/ HowTo_configure_lift_with_MySQL), though it involves hardcoding the connection details in Boot.scala. I'd like something easier to deploy to various machines. The thread following Jörn's announcement of the wiki page on MySQL is useful (http://groups.google.com/group/liftweb/browse_thread/thread/ bd4e74b68e8aa2a9/9eb2c2ef39442d63) but none of them mention using properties files, which I understand from this mailing list (e.g. http://groups.google.com/group/liftweb/browse_thread/thread/49eb17b5dd6fc46a ) is the best way store database settings. So, I created src/main/resources/props/peter.db.xml: ?xml version=1.0 encoding=UTF-8? !DOCTYPE properties SYSTEM http://java.sun.com/dtd/properties.dtd; properties comment/comment entry key=db.drivercom.mysql.jdbc.Driver/entry entry key=db.urljdbc:mysql://localhost/mydb/entry entry key=db.usermyusername/entry entry key=db.passwordmypassword/entry /properties Unfortunately, the property file does appear to be loaded, as the DBVendor code in Boot.scala generated by the lift-archetype-basic archetype falls back to its derby defaults. Do you have any idea what I'm doing wrong? Not having any experience with Java, I wouldn't be surprised if it's something as simple as getting the properties XML wrong... Thanks for your help! Peter -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Making MetaMegaProtoUser templateable
I'd suggest copying/pasting the code from ProtoUser and MegaProtoUser and munging the code so that you don't have to work around the embedded MegaProtoUser code. See http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/scala/org/apache/esme/model/User.scala?r1=779789r2=784317diff_format=h I recently made this change to the On Thu, Jun 18, 2009 at 1:51 PM, dflemstr david.flemst...@gmail.com wrote: Hello everyone, I'm having some problems with making the MetaMegaProtoUser edit method templateable (because I believe in the concept of separating content and design) and am succeeding quite well, except for with one little detail: I can't make my changes in the edit form persistent; it seems that the User instance gets lost somewhere in the process and that all the client-side changes therefore also get lost. The code is at the end of the message. The edit method is called with a template which also is at the very end of the message. I would really appreciate if anyone with more Lift experience than me could spot the mistake, because I simply cannot find it. - The snippet (inside a subclass of MetaMegaProtoUser): /** Create an edit form with the specified template */ def edit(xhtml: NodeSeq) = { val theUser: User = currentUser.open_! // we know we're logged in def testEdit() { theUser.validate match { case Nil = theUser.save S.notice(Profile updated) //The Lift Core has a spelling mistake in its translation, so I don't use S.?? S.redirectTo(homePage) case xs = S.error(xs) S.mapSnippet(S.currentSnippet.open_!, innerEdit) } } def innerEdit(t: NodeSeq) = bind(user, t, field - ((h: NodeSeq) = localForm (h, theUser, true)), submit - SHtml.submit(S.??(edit), testEdit _)) innerEdit(xhtml) } /** Make a form with all the editable fields of an user, from a template */ protected def localForm(xhtml: NodeSeq, user: User, ignorePassword: Boolean): NodeSeq = { signupFields .map(fi = getSingleton.getActualBaseField(user, fi)) //get actual fields .filter(f = !ignorePassword || (f match { //remove the password field case f: MappedPassword[_] = false case _ = true })) .flatMap(f = bind(field, xhtml, name - Text(f.displayName), form - f.toForm) ) } - The template: lift:surround with=default at=content lift:User.edit form=POST table tbody user:field tr tdfield:name//td tdfield:form//td /tr /user:field /tbody tfoot tr tdnbsp;/td tduser:submit//td /tr /tfoot /table /lift:User.edit /lift:surround -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---