[Lift] Re: A Critique On Lift

2009-10-22 Thread ngocdaothanh

jlist9,
This is a Lift group, but I have to say I feel the same about Scala.

I had to ask for advice here:
http://groups.google.com/group/liftweb/browse_thread/thread/a588f997af842f93/60c378bb36d26030

Scala may help me to get my work done for the day. But I don't feel
happy with Scala. Scala makes me feel I'm a slave all the day to
machines (or Scala itself!).


On Oct 22, 2:13 pm, jlist9 jli...@gmail.com wrote:
 override def validations = validPriority _ :: super.validations

 This is a more of a comment about Scala than one about Lift - this does
 look cryptic to me. And this is just one of the simpler syntax that confuses
 people, who are new to the language. And I'm one of them.

 I understand that you don't have to learn all the tricks/syntax to start
 coding in Scala but you do have to understand it when you read
 source code of libraries written by someone with much more advanced
 language skills.

 In David's book he says After more than two years of coding Scala, ...
 My brain has finally stopped hurting. This sounds like a very high
 barrier to entry.

 I'm just wondering why Scala has to be so complicated. I'm sure a lot
 of things in Scala have their reasons but at the mean time I also
 suspect that many of the odd things are there to reduce
 typing, which is advertised as one of the advantages of this language -
 conciseness. (I could be very wrong due to my lack of understanding.)
 If the latter is true, I feel that I'd rather type a little more to make the
 code easier to read.

 Just feeling a little frustrated learning Scala. I think it's much
 easier learning
 Java. Not much surprise. Not sure if anyone shares my experience
 (and opinion, if there is one.)

 On Wed, Oct 21, 2009 at 3:56 PM, Randinn rand...@gmail.com wrote:

 http://localhost3000.de/2009/10/a-quick-glance-at-lift/

  The site above is a blog post from a Rails developer, he had some good
  and bad things to say about Lift and since I do not know enough to
  debate with him I thought I'd post it here.

--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread Jonathan Ferguson
You're right, my bad - an old pom was looking at the wrong repo, all happy
now.

Cheers
Jono

2009/10/22 David Pollak feeder.of.the.be...@gmail.com



 On Wed, Oct 21, 2009 at 10:27 PM, Jonathan Ferguson j...@spiralarm.comwrote:

 Do we need to update our pom's or should it be code changes only ?


 You likely only need to make the code change... at least that's been the
 case for all the projects I've converted.



 Cheers

 Jono

 2009/10/22 David Pollak feeder.of.the.be...@gmail.com

 Folks,
 As the title of this email indicates, there are breaking changes in Lift
 that just got pushed to master.

 We've migrated from Scala Actors to Lift Actors and included a series of
 traits that allow Lift to use its own Actors or Akka Actors (or anything
 else that implements that interface.)

 The two big changes that you'll have to work with are:

- Box/Full/Empty/Failure was moved from the
lift-util/net.liftweb.util package to the lift-common/net.liftweb.common
package.  The reason for this change is that we're going to make the
lift-common package a more generic, non-web related package.  It 
 currently
contains Box and Actor, but in the future may contain other interfaces 
 that
will have concrete implementations outside of Lift.  We moved Box there
because Box is richer than Scala's Option class and being able to carry
Exceptions around in a Box while still being able to map/flatMap/foreach
over a Box (these are unavailable for Scala's Either).  Some we're going 
 to
actively promote using Box as a replacement for Option in all Scala apps.
 What this means for you is you have to import net.liftweb.common._ in 
 any
file that you also import net.liftweb.util.?
- Lift no longer support Scala Actors for Comet Actors.  The
GenericActor API offers pretty much the same client interface to Lift's
Actors, so ! and !? work the same way.  However, there's no link, self,
start or exit methods.

 Please do an mvn -U clean install on your code and run it against the
 new code.  If you have any Comet-related weirdness, please report it
 immediately.  We're planning M7 in 2 weeks, so we've got lots of time to
 iron any kinks out of this code.

 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
 Surf the harmonics








 --
 Lift, the simply functional web framework http://liftweb.net
 Beginning Scala http://www.apress.com/book/view/1430219890
 Follow me: http://twitter.com/dpp
 Surf the harmonics

 


--~--~-~--~~~---~--~~
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: How do I pass information between a Comet Actor and a StatefulSnippet ?

2009-10-22 Thread Jonathan Ferguson
2009/10/22 David Pollak feeder.of.the.be...@gmail.com



 On Wed, Oct 21, 2009 at 8:46 PM, Jonathan Ferguson j...@spiralarm.comwrote:


 I have a StatefulSnippet  that uses a CometActor to keep users
 informed when performing a lengthy task, much like the example on the
 demo site ( http://demo.liftweb.net/longtime).

 The only difference being I pass the CometActor an identifier  so it
 knows which job to inform the user about.

 When the task is over I need to display a form to the user, which I
 would assume would be rendered by the snippet.

 How does the actor tell the snippet the task is complete ?


 The Actor has to know about the snippet... you could send the Actor a
 message with a reference to the snippet and then call a method on the
 snippet when the Actor is done.  Does that do it for you?



I don't see how I can I do that.  Currently the comet actor is setup in a
snippet, see below, how  do get a reference to the actor to send it a
message ?

   lift:comet type=WatchDog name={id} 
span id=statustwd:statusWatch dog  status/twd:status/span
   /lift:comet

 The id being passed via the name parameter is a reference the job to
monitor. I mention this only as I'm not sure if it's bad form or not.







 I assuming it is trivial and I've thought or coded myself into a
 corner.

 Thanks in advance.

 Jono





 --
 Lift, the simply functional web framework http://liftweb.net
 Beginning Scala http://www.apress.com/book/view/1430219890
 Follow me: http://twitter.com/dpp
 Surf the harmonics


 


--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread TylerWeir



On Oct 22, 2:02 am, ngocdaothanh ngocdaoth...@gmail.com wrote:
 jlist9,
 This is a Lift group, but I have to say I feel the same about Scala.

 I had to ask for advice 
 here:http://groups.google.com/group/liftweb/browse_thread/thread/a588f997a...

 Scala may help me to get my work done for the day. But I don't feel
 happy with Scala. Scala makes me feel I'm a slave all the day to
 machines (or Scala itself!).

If it makes you feel like a slave, why are you using Scala at all
then?


 On Oct 22, 2:13 pm, jlist9 jli...@gmail.com wrote:



  override def validations = validPriority _ :: super.validations

  This is a more of a comment about Scala than one about Lift - this does
  look cryptic to me. And this is just one of the simpler syntax that confuses
  people, who are new to the language. And I'm one of them.

  I understand that you don't have to learn all the tricks/syntax to start
  coding in Scala but you do have to understand it when you read
  source code of libraries written by someone with much more advanced
  language skills.

  In David's book he says After more than two years of coding Scala, ...
  My brain has finally stopped hurting. This sounds like a very high
  barrier to entry.

  I'm just wondering why Scala has to be so complicated. I'm sure a lot
  of things in Scala have their reasons but at the mean time I also
  suspect that many of the odd things are there to reduce
  typing, which is advertised as one of the advantages of this language -
  conciseness. (I could be very wrong due to my lack of understanding.)
  If the latter is true, I feel that I'd rather type a little more to make the
  code easier to read.

  Just feeling a little frustrated learning Scala. I think it's much
  easier learning
  Java. Not much surprise. Not sure if anyone shares my experience
  (and opinion, if there is one.)

  On Wed, Oct 21, 2009 at 3:56 PM, Randinn rand...@gmail.com wrote:

  http://localhost3000.de/2009/10/a-quick-glance-at-lift/

   The site above is a blog post from a Rails developer, he had some good
   and bad things to say about Lift and since I do not know enough to
   debate with him I thought I'd post it here.
--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread Viktor Klang
Programming is not a simple task, that's why we haven't been replaced by
machines.

Scala is a _very_ powerful language, and it _is_ a challenge to harness that
power in addition to other languagues you have harnessed.

However, I do not feel that Scala has much non-explainable complexity, as is
the case of javas many-a boilerplate.

From what I have seen, much of the barrier of going to Scala is that many
people assume that going Java - Scala-y Java | Java-y Scala - Ideomatic
Scala is the route to go.

But the problem there is that sample Scala code is never Java-y Scala, so
beginners get confused from not having learned about first-class functions
and their syntax.
(from my 2 years of Scala, what I've seen the pitfalls being)

On Thu, Oct 22, 2009 at 7:13 AM, jlist9 jli...@gmail.com wrote:


 override def validations = validPriority _ :: super.validations

 This is a more of a comment about Scala than one about Lift - this does
 look cryptic to me. And this is just one of the simpler syntax that
 confuses
 people, who are new to the language. And I'm one of them.

 I understand that you don't have to learn all the tricks/syntax to start
 coding in Scala but you do have to understand it when you read
 source code of libraries written by someone with much more advanced
 language skills.

 In David's book he says After more than two years of coding Scala, ...
 My brain has finally stopped hurting. This sounds like a very high
 barrier to entry.

 I'm just wondering why Scala has to be so complicated. I'm sure a lot
 of things in Scala have their reasons but at the mean time I also
 suspect that many of the odd things are there to reduce
 typing, which is advertised as one of the advantages of this language -
 conciseness. (I could be very wrong due to my lack of understanding.)
 If the latter is true, I feel that I'd rather type a little more to make
 the
 code easier to read.

 Just feeling a little frustrated learning Scala. I think it's much
 easier learning
 Java. Not much surprise. Not sure if anyone shares my experience
 (and opinion, if there is one.)

 On Wed, Oct 21, 2009 at 3:56 PM, Randinn rand...@gmail.com wrote:
 
  http://localhost3000.de/2009/10/a-quick-glance-at-lift/
 
  The site above is a blog post from a Rails developer, he had some good
  and bad things to say about Lift and since I do not know enough to
  debate with him I thought I'd post it here.

 



-- 
Viktor Klang
| A complex system that works is invariably
| found to have evolved from a simple system
| that worked. - John Gall

Blog: klangism.blogspot.com
Twttr: viktorklang
Code: github.com/viktorklang

--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread Timothy Perrett

Guys,

Im confused  - Scala is not Java. This my friends, is a very good  
thing. You cant expect to start a language and be able to use all the  
advanced features right away I doubt you were a meta-programming  
ninja when learning ruby!

Getting back on topic, I read the original link and I admit, it made  
me chuckle somewhat - the author kept referring to so-called rails  
bashing and then quoted a performance benchmark statement as being  
rails bashing; it is quite obviously a factual statement rather than  
anything aggressive. When your a new framework, people want reasons to  
entertain you and comparing against existing tools is the only way to  
do this.

Regarding his comments on templating - perhaps its a personal  
preference, but I cant help feeling that he slightly didnt get the  
full picture as he only appears to have explored crudify rather than  
the full binding possibilities.

Cheers, Tim

On 22 Oct 2009, at 07:02, ngocdaothanh wrote:


 jlist9,
 This is a Lift group, but I have to say I feel the same about Scala.

 I had to ask for advice here:
 http://groups.google.com/group/liftweb/browse_thread/thread/a588f997af842f93/60c378bb36d26030

 Scala may help me to get my work done for the day. But I don't feel
 happy with Scala. Scala makes me feel I'm a slave all the day to
 machines (or Scala itself!).


 On Oct 22, 2:13 pm, jlist9 jli...@gmail.com wrote:
 override def validations = validPriority _ :: super.validations

 This is a more of a comment about Scala than one about Lift - this  
 does
 look cryptic to me. And this is just one of the simpler syntax that  
 confuses
 people, who are new to the language. And I'm one of them.

 I understand that you don't have to learn all the tricks/syntax to  
 start
 coding in Scala but you do have to understand it when you read
 source code of libraries written by someone with much more advanced
 language skills.

 In David's book he says After more than two years of coding  
 Scala, ...
 My brain has finally stopped hurting. This sounds like a very high
 barrier to entry.

 I'm just wondering why Scala has to be so complicated. I'm sure a lot
 of things in Scala have their reasons but at the mean time I also
 suspect that many of the odd things are there to reduce
 typing, which is advertised as one of the advantages of this  
 language -
 conciseness. (I could be very wrong due to my lack of understanding.)
 If the latter is true, I feel that I'd rather type a little more to  
 make the
 code easier to read.

 Just feeling a little frustrated learning Scala. I think it's much
 easier learning
 Java. Not much surprise. Not sure if anyone shares my experience
 (and opinion, if there is one.)

 On Wed, Oct 21, 2009 at 3:56 PM, Randinn rand...@gmail.com wrote:

 http://localhost3000.de/2009/10/a-quick-glance-at-lift/

 The site above is a blog post from a Rails developer, he had some  
 good
 and bad things to say about Lift and since I do not know enough to
 debate with him I thought I'd post it here.

 



--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread soumik

Hi,
I've a few question regarding the changes made.
- Firstly, with the changes made, how do I have a method which can now
accept both scala Actor as well as a CometActor??
  Prior to the changes, I had a function def registerActor(act:
Actor) which could handle both scala Actor as well as CometActor,; now
if I change this to def registerActor(act: GenericActor) it throws
compilation error asking to a type to be specified for the
GenericActor. What change would you suggest to have my code compile?
- Secondly, I also get compilation error for calling
scheduleAtFixedRate method on ActorPing. Says no such method. Has this
method been deprecated and if so, what is the method I should be
calling instead?

Thanks,
Soumik

On Oct 22, 10:35 am, Indrajit Raychaudhuri indraj...@gmail.com
wrote:
 Code change should suffice.

 pom.xml updates won't be necessary since lift-util has lift-common as
 dependency and your application (which must be having lift-util as
 dependency) would resolve the lift-common dependency transitively.

 Cheers, Indrajit

 On 22/10/09 10:57 AM, Jonathan Ferguson wrote:

  Do we need to update our pom's or should it be code changes only ?

  Cheers

  Jono

  2009/10/22 David Pollak feeder.of.the.be...@gmail.com
  mailto:feeder.of.the.be...@gmail.com

      Folks,

      As the title of this email indicates, there are breaking changes in
      Lift that just got pushed to master.

      We've migrated from Scala Actors to Lift Actors and included a
      series of traits that allow Lift to use its own Actors or Akka
      Actors (or anything else that implements that interface.)

      The two big changes that you'll have to work with are:

          * Box/Full/Empty/Failure was moved from the
            lift-util/net.liftweb.util package to the
            lift-common/net.liftweb.common package.  The reason for this
            change is that we're going to make the lift-common package a
            more generic, non-web related package.  It currently contains
            Box and Actor, but in the future may contain other interfaces
            that will have concrete implementations outside of Lift.  We
            moved Box there because Box is richer than Scala's Option
            class and being able to carry Exceptions around in a Box while
            still being able to map/flatMap/foreach over a Box (these are
            unavailable for Scala's Either).  Some we're going to actively
            promote using Box as a replacement for Option in all Scala
            apps.  What this means for you is you have to import
            net.liftweb.common._ in any file that you also import
            net.liftweb.util.?
          * Lift no longer support Scala Actors for Comet Actors.  The
            GenericActor API offers pretty much the same client interface
            to Lift's Actors, so ! and !? work the same way.  However,
            there's no link, self, start or exit methods.

      Please do an mvn -U clean install on your code and run it against
      the new code.  If you have any Comet-related weirdness, please
      report it immediately.  We're planning M7 in 2 weeks, so we've got
      lots of time to iron any kinks out of this code.

      Thanks,

      David

      --
      Lift, the simply functional web frameworkhttp://liftweb.net
      Beginning Scalahttp://www.apress.com/book/view/1430219890
      Follow me:http://twitter.com/dpp
      Surf the harmonics

--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread ngocdaothanh

Because Lift's ad is so good. For example:

Lift is the only new framework in the last four years to offer fresh
and innovative approaches to web development. It's not just some
incremental improvements over the status quo, it redefines the state
of the art. If you are a web developer, you should learn Lift. Even if
you don't wind up using it everyday, it will change the way you
approach web applications.

Lift can't be used without Scala. Is there a plan to implement Lift in
Clojure, for example? :D


On Oct 22, 3:47 pm, TylerWeir tyler.w...@gmail.com wrote:
 On Oct 22, 2:02 am, ngocdaothanh ngocdaoth...@gmail.com wrote:

  jlist9,
  This is a Lift group, but I have to say I feel the same about Scala.

  I had to ask for advice 
  here:http://groups.google.com/group/liftweb/browse_thread/thread/a588f997a...

  Scala may help me to get my work done for the day. But I don't feel
  happy with Scala. Scala makes me feel I'm a slave all the day to
  machines (or Scala itself!).

 If it makes you feel like a slave, why are you using Scala at all
 then?



  On Oct 22, 2:13 pm, jlist9 jli...@gmail.com wrote:

   override def validations = validPriority _ :: super.validations

   This is a more of a comment about Scala than one about Lift - this does
   look cryptic to me. And this is just one of the simpler syntax that 
   confuses
   people, who are new to the language. And I'm one of them.

   I understand that you don't have to learn all the tricks/syntax to start
   coding in Scala but you do have to understand it when you read
   source code of libraries written by someone with much more advanced
   language skills.

   In David's book he says After more than two years of coding Scala, ...
   My brain has finally stopped hurting. This sounds like a very high
   barrier to entry.

   I'm just wondering why Scala has to be so complicated. I'm sure a lot
   of things in Scala have their reasons but at the mean time I also
   suspect that many of the odd things are there to reduce
   typing, which is advertised as one of the advantages of this language -
   conciseness. (I could be very wrong due to my lack of understanding.)
   If the latter is true, I feel that I'd rather type a little more to make 
   the
   code easier to read.

   Just feeling a little frustrated learning Scala. I think it's much
   easier learning
   Java. Not much surprise. Not sure if anyone shares my experience
   (and opinion, if there is one.)

   On Wed, Oct 21, 2009 at 3:56 PM, Randinn rand...@gmail.com wrote:

   http://localhost3000.de/2009/10/a-quick-glance-at-lift/

The site above is a blog post from a Rails developer, he had some good
and bad things to say about Lift and since I do not know enough to
debate with him I thought I'd post it here.

--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread Marius

+1 Tim  Viktor.

Many people with this sort of background and Java web frameworks too
find difficult to accept that we don't do MVC. Also they find
difficult to accepts XML in Scala Snippets. When I presented Scala 
Lift at Transylvania JUG I got the same concerns ... What? ... markup
in Scala code ? ... I realized that snippets are very often
misunderstood. They are NOT controllers .. they are simple
constructs to allow dynamic markup to be injected in the template. Of
course one can abuse anything in any framework but this is besides the
point. Scala is not Java as Tim said and Scala + XML makes perfect
sense to me. Secondly people argue a lot having data models aware of
the representation of the view - such as a Field to know how to render
itself in a form etc. Personally I think that dumb objects holding
nothing but setter/getters/equals/hashcode just moves you away from
the OOP value. Having objects more context aware and hold the
knowledge on how to represent themselves makes a lot of sense to me,
and in practice I think this proved to be quite valuable. I accept
that many people think that MVC is the Holly Grail, but I don't
believe that ... and I think most people really using Lift don't
believe that either.

Br's,
Marius

On Oct 22, 11:21 am, Timothy Perrett timo...@getintheloop.eu wrote:
 Guys,

 Im confused  - Scala is not Java. This my friends, is a very good  
 thing. You cant expect to start a language and be able to use all the  
 advanced features right away I doubt you were a meta-programming  
 ninja when learning ruby!

 Getting back on topic, I read the original link and I admit, it made  
 me chuckle somewhat - the author kept referring to so-called rails  
 bashing and then quoted a performance benchmark statement as being  
 rails bashing; it is quite obviously a factual statement rather than  
 anything aggressive. When your a new framework, people want reasons to  
 entertain you and comparing against existing tools is the only way to  
 do this.

 Regarding his comments on templating - perhaps its a personal  
 preference, but I cant help feeling that he slightly didnt get the  
 full picture as he only appears to have explored crudify rather than  
 the full binding possibilities.

 Cheers, Tim

 On 22 Oct 2009, at 07:02, ngocdaothanh wrote:



  jlist9,
  This is a Lift group, but I have to say I feel the same about Scala.

  I had to ask for advice here:
 http://groups.google.com/group/liftweb/browse_thread/thread/a588f997a...

  Scala may help me to get my work done for the day. But I don't feel
  happy with Scala. Scala makes me feel I'm a slave all the day to
  machines (or Scala itself!).

  On Oct 22, 2:13 pm, jlist9 jli...@gmail.com wrote:
  override def validations = validPriority _ :: super.validations

  This is a more of a comment about Scala than one about Lift - this  
  does
  look cryptic to me. And this is just one of the simpler syntax that  
  confuses
  people, who are new to the language. And I'm one of them.

  I understand that you don't have to learn all the tricks/syntax to  
  start
  coding in Scala but you do have to understand it when you read
  source code of libraries written by someone with much more advanced
  language skills.

  In David's book he says After more than two years of coding  
  Scala, ...
  My brain has finally stopped hurting. This sounds like a very high
  barrier to entry.

  I'm just wondering why Scala has to be so complicated. I'm sure a lot
  of things in Scala have their reasons but at the mean time I also
  suspect that many of the odd things are there to reduce
  typing, which is advertised as one of the advantages of this  
  language -
  conciseness. (I could be very wrong due to my lack of understanding.)
  If the latter is true, I feel that I'd rather type a little more to  
  make the
  code easier to read.

  Just feeling a little frustrated learning Scala. I think it's much
  easier learning
  Java. Not much surprise. Not sure if anyone shares my experience
  (and opinion, if there is one.)

  On Wed, Oct 21, 2009 at 3:56 PM, Randinn rand...@gmail.com wrote:

 http://localhost3000.de/2009/10/a-quick-glance-at-lift/

  The site above is a blog post from a Rails developer, he had some  
  good
  and bad things to say about Lift and since I do not know enough to
  debate with him I thought I'd post it here.
--~--~-~--~~~---~--~~
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: Can't add model

2009-10-22 Thread Jeppe Nejsum Madsen

David Pollak feeder.of.the.be...@gmail.com writes:

 On Wed, Oct 21, 2009 at 10:27 PM, Rahul Somasunderam 
 rahul@gmail.comwrote:


 I followed the guide here:

 http://liftweb.net/docs/getting_started/mod_master.html
 I'm unable to add the model ToDo.

 When I try to add it, I get a compilation failure:
 Description ResourcePathLocationType
 not found: value MyTask MyTask.scala/hixcore/src/main/scala/com/hixop/
 model   Unknown Scala Problem


 Where do you get the compilation failure?  That doesn't seem like the output
 of Maven.

It looks like text from the Eclipse plugin...



 I guess I'm doing something totally wrong. Can someone please help me
 on this one?

Haven't seen your code so difficult to say :-) But the code in the
tutorial doesn't have anything named MyTask. You've probably renamed
something and forgot some places


/Jeppe


--~--~-~--~~~---~--~~
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] Fwd: Build failed in Hudson: Lift #1307

2009-10-22 Thread David Pollak
Anyone have a clue as to why the JTA stuff in Lift is unstable on Hudson?

-- Forwarded message --
From: ad...@scala-tools.org
Date: Thu, Oct 22, 2009 at 2:28 AM
Subject: Build failed in Hudson: Lift #1307


See http://hudson.scala-tools.org/job/Lift/1307/changes

Changes:

[David Pollak] Temporary fix to allow Hudson to complete a build

--
[...truncated 6079 lines...]
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[HUDSON] Recording test results
[INFO] [jar:jar]
[INFO] Building jar: 
http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-testkit-1.1-SNAPSHOT.jar

[INFO] Preparing source:jar
[WARNING] Removing: jar from forked lifecycle, to prevent recursive
invocation.
[INFO] No goals needed for project - skipping
[INFO] [source:jar {execution: attach-sources}]
[INFO] Building jar: 
http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-testkit-1.1-SNAPSHOT-sources.jar

[INFO] [install:install]
[INFO] Installing 
http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-testkit-1.1-SNAPSHOT.jar
to
/home/scalatools/hudson/.m2/repository/net/liftweb/lift-testkit/1.1-SNAPSHOT/lift-testkit-1.1-SNAPSHOT.jar
[INFO] Installing 
http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-testkit-1.1-SNAPSHOT-sources.jar
to
/home/scalatools/hudson/.m2/repository/net/liftweb/lift-testkit/1.1-SNAPSHOT/lift-testkit-1.1-SNAPSHOT-sources.jar
[INFO] [deploy:deploy]
[INFO] Retrieving previous build number from hudson.scala-tools.org
Uploading: file:///home/
scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/lift-testkit-1.1-SNAPSHOT.jar
108K uploaded  (lift-testkit-1.1-SNAPSHOT.jar)
[INFO] Retrieving previous metadata from hudson.scala-tools.org
[INFO] Uploading repository metadata for: 'artifact
net.liftweb:lift-testkit'
[INFO] Uploading project information for lift-testkit 1.1-SNAPSHOT
[INFO] Retrieving previous metadata from hudson.scala-tools.org
[INFO] Uploading repository metadata for: 'snapshot
net.liftweb:lift-testkit:1.1-SNAPSHOT'
[INFO] Retrieving previous build number from hudson.scala-tools.org
Uploading: file:///home/
scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/lift-testkit-1.1-SNAPSHOT-sources.jar
10K uploaded  (lift-testkit-1.1-SNAPSHOT-sources.jar)
[INFO] Preparing surefire-report:report-only
[INFO] No goals needed for project - skipping
[INFO] [site:site]
[INFO] Generating Project Team report.
[INFO] Generating Issue Tracking report.
[INFO] Generating Surefire Report report.
[WARNING] Unable to locate Test Source XRef to link to - DISABLED
[INFO] Generating Dependency Management report.
[INFO] Generating Project Plugins report.
[INFO] Generating Continuous Integration report.
[INFO] Generating Dependencies report.
[INFO] Generating Source Repository report.
[INFO] Generating Plugin Management report.
[INFO] Generating Mailing Lists report.
[INFO] Generating Project Summary report.
[INFO] Generating About report.
[INFO] Generating ScalaDocs report.
Downloading:
http://scala-tools.org/repo-snapshots/org/scala-tools/vscaladoc/1.2-SNAPSHOT/vscaladoc-1.2-SNAPSHOT.jar
[INFO] load packageLinkDefs from :
http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/../vscaladocs-packageLinkDefs.properties

[WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
render
[WARNING] INFO: write page for overview
[WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
render
[WARNING] INFO: write page for all-classes (list)
[WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
render
[WARNING] INFO: write index.html
[WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
render
[WARNING] INFO: write doc for  each classes
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (net.liftweb.common, Box, false
[INFO] failed to find baseUri for (org.apache.commons.httpclient,
HttpClient, false
[INFO] failed to find baseUri for (org.apache.commons.httpclient,
HttpClient, false
[INFO] failed to find baseUri for 

[Lift] Re: **Breaking Changes** **README** **Important**

2009-10-22 Thread george

 - Secondly, I also get compilation error for calling
 scheduleAtFixedRate method on ActorPing. Says no such method. Has this
 method been deprecated and if so, what is the method I should be
 calling instead?

I have this problem also.

--~--~-~--~~~---~--~~
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] Submitting a form and returning results

2009-10-22 Thread ben

Hi,

I'm having trouble working out how to do a really simple thing -
submit a form and return some results.
Imagine a simple page that took a name of a person to search for, and
displayed a list of people matching that name.
I've put together a dummy example to show you what I've tried :

So the view is pretty simple :

lift:PeopleSearchSnippet.searchForPeople form=post
table
tr
tdFind People !/td
tdpeopleSearch:nameToSearchForValue to search
on/peopleSearch:nameToSearchFor/td
/tr
tr
tdnbsp;/td
tdpeopleSearch:submitbuttonFind People/
button/peopleSearch:submit/td
/tr
tr
td colspan=2peopleSearch:searchResultsValue
to search on/peopleSearch:searchResults/td
/tr
/table
/lift:PeopleSearchSnippet.searchForPeople


The snippet is :

class PeopleSearchSnippet  {

  def searchForPeople(form: NodeSeq) = {
val search = PeopleSearch.create
println(\n\n
\n---
\n +search)

def performSearch(): Unit =
  search.validate match {
case Nil = performSearchOn(search)
case xs = S.error(xs); S.mapSnippet
(PeopleSearchSnippet.searchForPeople, doBind)
  }

def doBind(form: NodeSeq) = {
  bind(peopleSearch, form,
nameToSearchFor - search.nameToSearchFor.toForm,
submit - submit(Search For People, performSearch),
searchResults - renderResults(search)
)
}

doBind(form)
  }

  /**
   *  Dummy render method which would render the search results
   */
  def renderResults(search: PeopleSearch) = {
// Just make some dummy results if they actually performed a
search
// If done for real, it would render the results on the
search:PeopleSearch object
if (search.nameToSearchFor != ) {
  List(dave smith, jimmy cracked corn, lazy t.
bones).foldLeft (List[Elem]())((x, y) = div{y}/div :: x)
} else {
  divNo search done yet/div
}
  }

  /**
   *  Dummy method that would do a search, save some results to be
rendered to the view
   */
  def performSearchOn(search: PeopleSearch) = {
println(Searching on  +search)
// This would populate the results to display if done for real,
// so that renderResults() method could render the search results
into html
search.save
  }


I think I know whats going wrong, but I'm not really sure how to get
Lift to do what I'm after.

The problem is that when renderResults() is called, the search value
(nameToSearchFor) is always empty.
But when the submit button is clicked, the performSearchOn method
has a populated search value.

I think the reason is that performSearch() is bound to the submit
action in doBind() - and is executed when a form submit is done - but
the searchResults value is bound before that method is actually
called - hence its always got empty search values.

I guess its because I'm expecting List to be doing something I don't
quite understand, based on my experience with  MVC frameworks like
Spring MVC etc.
In my mind, the process is submit form, use object to perform search
on, populate the results, render the page, but obviously thats not
whats going on.

Any help on how to achieve my aim (ie submit a form, render some
results) would be most appreciated,

Thanks,

Ben

--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread Viktor Klang
DPP (and I) recommend just doing schedule and then re-schedule after message
recieved.

schedule(actor,MyMsg(),3 seconds)

in the actor

{
   case MyMsg() = {
doMyStuff
schedule(this,MyMsg(),3 seconds)
}
}

Makes sense?

On Thu, Oct 22, 2009 at 12:37 PM, george geo...@mattandgeorge.com wrote:


  - Secondly, I also get compilation error for calling
  scheduleAtFixedRate method on ActorPing. Says no such method. Has this
  method been deprecated and if so, what is the method I should be
  calling instead?

 I have this problem also.

 



-- 
Viktor Klang
| A complex system that works is invariably
| found to have evolved from a simple system
| that worked. - John Gall

Blog: klangism.blogspot.com
Twttr: viktorklang
Code: github.com/viktorklang

--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread Timothy Perrett


Guys,

   Prior to the changes, I had a function def registerActor(act:
 Actor) which could handle both scala Actor as well as CometActor,; now
 if I change this to def registerActor(act: GenericActor) it throws
 compilation error asking to a type to be specified for the
 GenericActor. What change would you suggest to have my code compile?

Checkout the declaration:

trait GenericActor[R] extends TypedActor[Any, R]

You need to pass it a type argument to populate R in order for your
code to compile.

 - Secondly, I also get compilation error for calling
 scheduleAtFixedRate method on ActorPing. Says no such method. Has this
 method been deprecated and if so, what is the method I should be
 calling instead?

If I remember rightly there was a discussion about this on list not so
long ago - looking at the code, scheduleAtFixedRate has been removed.
The preferred idiom is to generally have a method that reschedules the
actor on every ping.

Cheers, Tim

--~--~-~--~~~---~--~~
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: Fwd: Build failed in Hudson: Lift #1307

2009-10-22 Thread Timothy Perrett

Hmm how strange - it builds fine locally?

Cheers, Tim

On Oct 22, 10:56 am, David Pollak feeder.of.the.be...@gmail.com
wrote:
 Anyone have a clue as to why the JTA stuff in Lift is unstable on Hudson?



 -- Forwarded message --
 From: ad...@scala-tools.org
 Date: Thu, Oct 22, 2009 at 2:28 AM
 Subject: Build failed in Hudson: Lift #1307

 See http://hudson.scala-tools.org/job/Lift/1307/changes

 Changes:

 [David Pollak]     Temporary fix to allow Hudson to complete a build

 --
 [...truncated 6079 lines...]
 Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

 [HUDSON] Recording test results
 [INFO] [jar:jar]
 [INFO] Building jar: 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...

 [INFO] Preparing source:jar
 [WARNING] Removing: jar from forked lifecycle, to prevent recursive
 invocation.
 [INFO] No goals needed for project - skipping
 [INFO] [source:jar {execution: attach-sources}]
 [INFO] Building jar: 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...

 [INFO] [install:install]
 [INFO] Installing 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
 to
 /home/scalatools/hudson/.m2/repository/net/liftweb/lift-testkit/1.1-SNAPSHO 
 T/lift-testkit-1.1-SNAPSHOT.jar
 [INFO] Installing 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
 to
 /home/scalatools/hudson/.m2/repository/net/liftweb/lift-testkit/1.1-SNAPSHO 
 T/lift-testkit-1.1-SNAPSHOT-sources.jar
 [INFO] [deploy:deploy]
 [INFO] Retrieving previous build number from hudson.scala-tools.org
 Uploading: file:///home/
 scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/li 
 ft-testkit-1.1-SNAPSHOT.jar
 108K uploaded  (lift-testkit-1.1-SNAPSHOT.jar)
 [INFO] Retrieving previous metadata from hudson.scala-tools.org
 [INFO] Uploading repository metadata for: 'artifact
 net.liftweb:lift-testkit'
 [INFO] Uploading project information for lift-testkit 1.1-SNAPSHOT
 [INFO] Retrieving previous metadata from hudson.scala-tools.org
 [INFO] Uploading repository metadata for: 'snapshot
 net.liftweb:lift-testkit:1.1-SNAPSHOT'
 [INFO] Retrieving previous build number from hudson.scala-tools.org
 Uploading: file:///home/
 scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/li 
 ft-testkit-1.1-SNAPSHOT-sources.jar
 10K uploaded  (lift-testkit-1.1-SNAPSHOT-sources.jar)
 [INFO] Preparing surefire-report:report-only
 [INFO] No goals needed for project - skipping
 [INFO] [site:site]
 [INFO] Generating Project Team report.
 [INFO] Generating Issue Tracking report.
 [INFO] Generating Surefire Report report.
 [WARNING] Unable to locate Test Source XRef to link to - DISABLED
 [INFO] Generating Dependency Management report.
 [INFO] Generating Project Plugins report.
 [INFO] Generating Continuous Integration report.
 [INFO] Generating Dependencies report.
 [INFO] Generating Source Repository report.
 [INFO] Generating Plugin Management report.
 [INFO] Generating Mailing Lists report.
 [INFO] Generating Project Summary report.
 [INFO] Generating About report.
 [INFO] Generating ScalaDocs report.
 Downloading:http://scala-tools.org/repo-snapshots/org/scala-tools/vscaladoc/1.2-S...
 [INFO] load packageLinkDefs from 
 :http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/../vscaladocs-...

 [WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
 render
 [WARNING] INFO: write page for overview
 [WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
 render
 [WARNING] INFO: write page for all-classes (list)
 [WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
 render
 [WARNING] INFO: write index.html
 [WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
 render
 [WARNING] INFO: write doc for  each classes
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (net.liftweb.common, Box, false
 [INFO] failed to find baseUri for (org.apache.commons.httpclient,
 HttpClient, false
 [INFO] failed to find baseUri for 

[Lift] Re: A Critique On Lift

2009-10-22 Thread Timothy Perrett

Well said that man! Couldn't agree more with this statement.

Cheers, Tim

On Oct 22, 9:43 am, Marius marius.dan...@gmail.com wrote:
 I accept
 that many people think that MVC is the Holly Grail, but I don't
 believe that ... and I think most people really using Lift don't
 believe that either.

--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread george

ok so..

object LocalSmtp extends Actor

should become

object LocalSmtp extends GenericActor[LocalSmtp]

?

--~--~-~--~~~---~--~~
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] Newbie question: action beforeSave data

2009-10-22 Thread wibblecp

Hi all,
this is my first post, but I read you always, so I apologize if it
appear so simple. I am tasting this sensational web framework.

I'll try to explain using a simple and basic example.

Consider a post mapper model with a mappedString object named
permalink
I'd like to set this db field with something like this (defined in my
snippet)

pre
private def set_permalink(input : String) = {
val pattern1 = \s+.r
val pattern2 = /[^a-zA-Z0-9_]+/.r
pattern1 replaceAllIn(pattern2 replaceAllIn(input.toLowerCase,
), -)
}
/pre


My snippet look like this

pre
class ArticleSnippet extends StatefulSnippet{



  var _permalink = S.param(title).map(_.toString) openOr welcome

  def add(form: NodeSeq) : NodeSeq = {


 /** I am in wrong here **/
val article = Article.create.owner(User.currentUser)

.created_at(entryDate).permalink(set_permalink(_permalink))

.

def doBind(form: NodeSeq) =
  bind(article, form,
   title - post.title.toForm,
   
   
   submit - submit(Save, )
  )



}


}
/pre

My saved posts always have welcome as value for permalink field.

Could anyone give me any suggestion about it? I appreciate a lot this
group.
Thanks in adavce for your replies.
Regards,
Wibble


--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread tiro

 override def validations = validPriority _ :: super.validations
funny, I had stumbled on exactly the same line of code when beginning.
Took me more than a day to understand what's going on. Especially
because when you copied code from the PDF version of the Liftbook/Lift
getting started guide, it would mess up spaces, so I would keep
loooking for a _:: operator.
The Scala guys have really pushed it a bit hard on the use of the
underscore. At least four different uses:
- it for defining anonymous functions like above
- default value
- matching placeholder whose value is ignored
- use for constructing setter method names boolean functions (empty_?)


--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread Timothy Perrett

I think this is a bit of a running joke in the scala comunity right  
now - your right, underscore really does have a number of meanings; I  
think this will be changed in some future Scala release.

Your also forgetting:

import some.package._

Cheers, Tim

On 22 Oct 2009, at 12:57, tiro wrote:

 underscore. At least four different uses:
 - it for defining anonymous functions like above
 - default value
 - matching placeholder whose value is ignored
 - use for constructing setter method names boolean functions (empty_?)


--~--~-~--~~~---~--~~
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] New update changed something?

2009-10-22 Thread caw1461

So I was running everything for my program fine last night.  Got on
this morning, updated scala when compiling and I am getting a lot of:

error: not found: value Box
error: value map is not a member
error: value openOr is not a member of Nothing
etc.

Was there a big update changing a bunch of these things, or did I
change some code to break all of this? I'm pretty sure I haven't made
any significant changes.

--~--~-~--~~~---~--~~
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 update changed something?

2009-10-22 Thread TylerWeir

Umm, http://groups.google.com/group/liftweb/t/824f14038bedf425?hl=en

On Oct 22, 9:55 am, caw1461 caw1...@gmail.com wrote:
 So I was running everything for my program fine last night.  Got on
 this morning, updated scala when compiling and I am getting a lot of:

 error: not found: value Box
 error: value map is not a member
 error: value openOr is not a member of Nothing
 etc.

 Was there a big update changing a bunch of these things, or did I
 change some code to break all of this? I'm pretty sure I haven't made
 any significant changes.
--~--~-~--~~~---~--~~
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: Trouble With JPA Book Example

2009-10-22 Thread Derek Chen-Becker
Are you using OpenJDK by any chance? IIRC the YUI compressor doesn't like
it.

Derek

On Wed, Oct 21, 2009 at 6:58 PM, AndyM andrewdm...@gmail.com wrote:


 Sorry about the spam. I was using 2.75 not 2.7.5.. Feel free to delete
 the above posts.

 More errors though. spa builds fine, web does not...

 INFO] null
 [INFO]
 
 [INFO] Trace
 java.lang.RuntimeException
at
 com.yahoo.platform.yui.compressor.JavaScriptCompressor.printSourceNumber
 (JavaScriptCompressor.java:299)
at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse
 (JavaScriptCompressor.java:335)
at com.yahoo.platform.yui.compressor.JavaScriptCompressor.init
 (JavaScriptCompressor.java:532)
at net.sf.alchim.mojo.yuicompressor.YuiCompressorMojo.processFile
 (YuiCompressorMojo.java:178)
at net.sf.alchim.mojo.yuicompressor.MojoSupport.processDir
 (MojoSupport.java:151)
at net.sf.alchim.mojo.yuicompressor.MojoSupport.execute
 (MojoSupport.java:105)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo
 (DefaultPluginManager.java:451)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals
 (DefaultLifecycleExecuto

 ..


 On Oct 21, 8:44 pm, AndyM andrewdm...@gmail.com wrote:
  That gets me one step closer, thanks, but then I still have problem.
  The next mvn install that I do gives me the following:
 
  1 required artifact is missing.
  for artifact:
com.foo.jpaweb:spa:jar:1.0-SNAPSHOT
 
  Another post had the same problem, said to do mvn install.  I tried
  doing mvn install in the spa directory as well, gives me the same
  error.  So I'm missing the artifcact that I'm trying to build? This
  doesn't make any sense. Ideas?
 
  On Oct 21, 7:48 am, Steve Swing steve.sw...@gmail.com wrote:
 
 
 
 
 
   Does mvn -Dscala.version=2.7.5 install work for you?
 
   If so you can define this in pom.xml files to avoid typing on the cmd-
   line every time you build:
   properties
   scala.version2.7.5/scala.version
   /properties
 
   On Oct 20, 8:38 pm, AndyM andrewdm...@gmail.com wrote:
 
Still getting the same issue, with
 
mvn -U archetype:generate  \
-DarchetypeRepository=http://scala-tools.org/repo-snapshots\
-DarchetypeGroupId=net.liftweb \
-DarchetypeArtifactId=lift-archetype-jpa-basic \
-DarchetypeVersion=1.1-SNAPSHOT \
-DgroupId=com.foo.jpaweb \
-DartifactId=JPADemo \
-Dversion=1.0-SNAPSHOT
 
On Oct 20, 7:58 pm, David Pollak feeder.of.the.be...@gmail.com
wrote:
 
 For some reason the pom.xml files in the JPA archetypes referred to
 lift M4
 rather than SNAPSHOT.  I've pushed a change.  Once the build (
 http://hudson.scala-tools.org/job/Lift/1298/) is done, try re-executing
 your mvn command (make sure you do a mvn -U to pull the latest).
 
 To the committers - sorry for not going through review board on
 this one,
 but it was a clear problem with a clear fix (kind of like pushing a
 fix to a
 type-o in documentation)
 
 On Tue, Oct 20, 2009 at 4:28 PM, AndyM andrewdm...@gmail.com
 wrote:
 
  I'm having trouble doing an mvn install on the JPA example from
 the
  book...
 
   mvn archetype:generate \
  -DarchetypeRepository=http://scala-tools.org/repo-snapshots\
  -DarchetypeGroupId=net.liftweb \
  -DarchetypeArtifactId=lift-archetype-jpa-basic \
  -DarchetypeVersion=1.1-SNAPSHOT \
  -DgroupId=com.foo.jpaweb \
  -DartifactId=JPADemo \
  -Dversion=1.0-SNAPSHOT
 
  cd JPADemo
  mvn install
 
  org.apache.maven.reactor.MavenExecutionException: The POM
 expression: $
  {scala.version} could not be evaluated. Reason: Expression value
 '$
  {scala.version}' references itself in
 'com.foo.jpaweb:JPADemo:pom:1.0-
  SNAPSHOT'. for project com.foo.jpaweb:JPADemo at
 /home/amast/lift/
  bookexample/JPADemo/pom.xml
 at
 org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:378)
  [deleted for brevity]
 at
 org.codehaus.classworlds.Launcher.main(Launcher.java:375)
  Caused by: org.apache.maven.project.InvalidProjectModelException:
 The
  POM expression: ${scala.version} could not be evaluated. Reason:
  Expression value '${scala.version}' references itself in
  'com.foo.jpaweb:JPADemo:pom:1.0-SNAPSHOT'. for project
  com.foo.jpaweb:JPADemo at
 /home/amast/lift/bookexample/JPADemo/pom.xml
 at
 org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal
  (DefaultMavenProjectBuilder.java:882)
 at
 
 
 org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInte
 rnal
  (DefaultMavenProjectBuilder.java:506)
 ... [deleted for brevity]
  Caused by:
 
 org.apache.maven.project.interpolation.ModelInterpolationException:
  The POM expression: ${scala.version} could not be evaluated.
 Reason:
  Expression value 

[Lift] Re: Dynamic radio button

2009-10-22 Thread Derek Chen-Becker
I don't quite understand what you're trying to do. Could you give some more
details? Are you trying to add more radios to an existing radio button set?

On Wed, Oct 21, 2009 at 8:45 PM, sunanda sunanda.pa...@gmail.com wrote:


 Hi,
 I need to add radio button dynamically with one of the button checked
 and  I need to invoke ajaxCall onclick of a radio button.
 How can I do this.
 Sunanda
 


--~--~-~--~~~---~--~~
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: Submitting a form and returning results

2009-10-22 Thread Thiébaut Champenier

Hi ben,

def doBind(form: NodeSeq) = {
  bind(peopleSearch, form,
nameToSearchFor - search.nameToSearchFor.toForm,
submit - submit(Search For People, performSearch),
searchResults - renderResults(search)
)
}

You’re relying on the order of execution in your call to bind; I think
it is safe, can some guru confirm?

The only thing I can point out is in renderResults:
 if (search.nameToSearchFor != )
You should use search.nameToSearchFor.is, but maybe some implicit is
already doing that for you.

I suppose you’re saving all searches to a database, is that why you’re
using a mapped object for PeopleSearch?

--~--~-~--~~~---~--~~
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: Fwd: Build failed in Hudson: Lift #1307

2009-10-22 Thread Derek Chen-Becker
It builds for me locally...

On Thu, Oct 22, 2009 at 5:25 AM, Timothy Perrett timo...@getintheloop.euwrote:


 Hmm how strange - it builds fine locally?

 Cheers, Tim

 On Oct 22, 10:56 am, David Pollak feeder.of.the.be...@gmail.com
 wrote:
  Anyone have a clue as to why the JTA stuff in Lift is unstable on Hudson?
 
 
 
  -- Forwarded message --
  From: ad...@scala-tools.org
  Date: Thu, Oct 22, 2009 at 2:28 AM
  Subject: Build failed in Hudson: Lift #1307
 
  See http://hudson.scala-tools.org/job/Lift/1307/changes
 
  Changes:
 
  [David Pollak] Temporary fix to allow Hudson to complete a build
 
  --
  [...truncated 6079 lines...]
  Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
 
  [HUDSON] Recording test results
  [INFO] [jar:jar]
  [INFO] Building jar: 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
 
  [INFO] Preparing source:jar
  [WARNING] Removing: jar from forked lifecycle, to prevent recursive
  invocation.
  [INFO] No goals needed for project - skipping
  [INFO] [source:jar {execution: attach-sources}]
  [INFO] Building jar: 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
 
  [INFO] [install:install]
  [INFO] Installing 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
  to
 
 /home/scalatools/hudson/.m2/repository/net/liftweb/lift-testkit/1.1-SNAPSHO
 T/lift-testkit-1.1-SNAPSHOT.jar
  [INFO] Installing 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
  to
 
 /home/scalatools/hudson/.m2/repository/net/liftweb/lift-testkit/1.1-SNAPSHO
 T/lift-testkit-1.1-SNAPSHOT-sources.jar
  [INFO] [deploy:deploy]
  [INFO] Retrieving previous build number from hudson.scala-tools.org
  Uploading: file:///home/
 
 scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/lift-testkit-1.1-SNAPSHOT.jar
  108K uploaded  (lift-testkit-1.1-SNAPSHOT.jar)
  [INFO] Retrieving previous metadata from hudson.scala-tools.org
  [INFO] Uploading repository metadata for: 'artifact
  net.liftweb:lift-testkit'
  [INFO] Uploading project information for lift-testkit 1.1-SNAPSHOT
  [INFO] Retrieving previous metadata from hudson.scala-tools.org
  [INFO] Uploading repository metadata for: 'snapshot
  net.liftweb:lift-testkit:1.1-SNAPSHOT'
  [INFO] Retrieving previous build number from hudson.scala-tools.org
  Uploading: file:///home/
 
 scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/lift-testkit-1.1-SNAPSHOT-sources.jar
  10K uploaded  (lift-testkit-1.1-SNAPSHOT-sources.jar)
  [INFO] Preparing surefire-report:report-only
  [INFO] No goals needed for project - skipping
  [INFO] [site:site]
  [INFO] Generating Project Team report.
  [INFO] Generating Issue Tracking report.
  [INFO] Generating Surefire Report report.
  [WARNING] Unable to locate Test Source XRef to link to - DISABLED
  [INFO] Generating Dependency Management report.
  [INFO] Generating Project Plugins report.
  [INFO] Generating Continuous Integration report.
  [INFO] Generating Dependencies report.
  [INFO] Generating Source Repository report.
  [INFO] Generating Plugin Management report.
  [INFO] Generating Mailing Lists report.
  [INFO] Generating Project Summary report.
  [INFO] Generating About report.
  [INFO] Generating ScalaDocs report.
  Downloading:
 http://scala-tools.org/repo-snapshots/org/scala-tools/vscaladoc/1.2-S...
  [INFO] load packageLinkDefs from :
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/../vscaladocs-...
 
  [WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
  render
  [WARNING] INFO: write page for overview
  [WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
  render
  [WARNING] INFO: write page for all-classes (list)
  [WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
  render
  [WARNING] INFO: write index.html
  [WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
  render
  [WARNING] INFO: write doc for  each classes
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for 

[Lift] Re: Fwd: Build failed in Hudson: Lift #1307

2009-10-22 Thread Derek Chen-Becker
This is really odd. The 1.1 ScalaJPA doesn't have a def for getUnitName,
that was added in 1.2-SNAPSHOT. The pom for lift-jta is specifying ScalaJPA
1.1, so I wonder if somehow a 1.2-SNAPSHOT jar is getting used instead. I'm
going to remove the scalajpa stuff from ~hudson/.m2/repository on lion and
see if that fixes it.

Derek

On Thu, Oct 22, 2009 at 8:47 AM, Derek Chen-Becker dchenbec...@gmail.comwrote:

 It builds for me locally...


 On Thu, Oct 22, 2009 at 5:25 AM, Timothy Perrett 
 timo...@getintheloop.euwrote:


 Hmm how strange - it builds fine locally?

 Cheers, Tim

 On Oct 22, 10:56 am, David Pollak feeder.of.the.be...@gmail.com
 wrote:
  Anyone have a clue as to why the JTA stuff in Lift is unstable on
 Hudson?
 
 
 
  -- Forwarded message --
  From: ad...@scala-tools.org
  Date: Thu, Oct 22, 2009 at 2:28 AM
  Subject: Build failed in Hudson: Lift #1307
 
  See http://hudson.scala-tools.org/job/Lift/1307/changes
 
  Changes:
 
  [David Pollak] Temporary fix to allow Hudson to complete a build
 
  --
  [...truncated 6079 lines...]
  Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
 
  [HUDSON] Recording test results
  [INFO] [jar:jar]
  [INFO] Building jar: 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
 
  [INFO] Preparing source:jar
  [WARNING] Removing: jar from forked lifecycle, to prevent recursive
  invocation.
  [INFO] No goals needed for project - skipping
  [INFO] [source:jar {execution: attach-sources}]
  [INFO] Building jar: 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
 
  [INFO] [install:install]
  [INFO] Installing 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
  to
 
 /home/scalatools/hudson/.m2/repository/net/liftweb/lift-testkit/1.1-SNAPSHO
 T/lift-testkit-1.1-SNAPSHOT.jar
  [INFO] Installing 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
  to
 
 /home/scalatools/hudson/.m2/repository/net/liftweb/lift-testkit/1.1-SNAPSHO
 T/lift-testkit-1.1-SNAPSHOT-sources.jar
  [INFO] [deploy:deploy]
  [INFO] Retrieving previous build number from hudson.scala-tools.org
  Uploading: file:///home/
 
 scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/lift-testkit-1.1-SNAPSHOT.jar
  108K uploaded  (lift-testkit-1.1-SNAPSHOT.jar)
  [INFO] Retrieving previous metadata from hudson.scala-tools.org
  [INFO] Uploading repository metadata for: 'artifact
  net.liftweb:lift-testkit'
  [INFO] Uploading project information for lift-testkit 1.1-SNAPSHOT
  [INFO] Retrieving previous metadata from hudson.scala-tools.org
  [INFO] Uploading repository metadata for: 'snapshot
  net.liftweb:lift-testkit:1.1-SNAPSHOT'
  [INFO] Retrieving previous build number from hudson.scala-tools.org
  Uploading: file:///home/
 
 scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/lift-testkit-1.1-SNAPSHOT-sources.jar
  10K uploaded  (lift-testkit-1.1-SNAPSHOT-sources.jar)
  [INFO] Preparing surefire-report:report-only
  [INFO] No goals needed for project - skipping
  [INFO] [site:site]
  [INFO] Generating Project Team report.
  [INFO] Generating Issue Tracking report.
  [INFO] Generating Surefire Report report.
  [WARNING] Unable to locate Test Source XRef to link to - DISABLED
  [INFO] Generating Dependency Management report.
  [INFO] Generating Project Plugins report.
  [INFO] Generating Continuous Integration report.
  [INFO] Generating Dependencies report.
  [INFO] Generating Source Repository report.
  [INFO] Generating Plugin Management report.
  [INFO] Generating Mailing Lists report.
  [INFO] Generating Project Summary report.
  [INFO] Generating About report.
  [INFO] Generating ScalaDocs report.
  Downloading:
 http://scala-tools.org/repo-snapshots/org/scala-tools/vscaladoc/1.2-S...
  [INFO] load packageLinkDefs from :
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/../vscaladocs-...
 
  [WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
  render
  [WARNING] INFO: write page for overview
  [WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
  render
  [WARNING] INFO: write page for all-classes (list)
  [WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
  render
  [WARNING] INFO: write index.html
  [WARNING] Oct 22, 2009 2:28:10 AM org.scala_tools.vscaladoc.HtmlRenderer
  render
  [WARNING] INFO: write doc for  each classes
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for (net.liftweb.common, Box, false
  [INFO] failed to find baseUri for 

[Lift] Re: Newbie question: action beforeSave data

2009-10-22 Thread wibblecp

Ok, I am sorry for my previous rubbish

I solved the issue using vars in my Snippet and passing them to my
Post instance to validate and save.

regards,
wibble

On 22 Ott, 14:26, wibblecp wibbl...@gmail.com wrote:
 Hi all,
 this is my first post, but I read you always, so I apologize if it
 appear so simple. I am tasting this sensational web framework.

 I'll try to explain using a simple and basic example.

 Consider a post mapper model with a mappedString object named
 permalink
 I'd like to set this db field with something like this (defined in my
 snippet)

 pre
 private def set_permalink(input : String) = {
         val pattern1 = \s+.r
         val pattern2 = /[^a-zA-Z0-9_]+/.r
         pattern1 replaceAllIn(pattern2 replaceAllIn(input.toLowerCase,
 ), -)
     }
 /pre

 My snippet look like this

 pre
 class ArticleSnippet extends StatefulSnippet{

 

   var _permalink = S.param(title).map(_.toString) openOr welcome

   def add(form: NodeSeq) : NodeSeq = {
     

      /** I am in wrong here **/
     val article = Article.create.owner(User.currentUser)
                         
 .created_at(entryDate).permalink(set_permalink(_permalink))

     .

     def doBind(form: NodeSeq) =
       bind(article, form,
            title - post.title.toForm,
            
            
            submit - submit(Save, )
       )

     

     }

 }

 /pre

 My saved posts always have welcome as value for permalink field.

 Could anyone give me any suggestion about it? I appreciate a lot this
 group.
 Thanks in adavce for your replies.
 Regards,
 Wibble

--~--~-~--~~~---~--~~
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: Fwd: Build failed in Hudson: Lift #1307

2009-10-22 Thread Indrajit Raychaudhuri

Same ocassional failure locally for me too. In fact, it mostly fails 
unless I am having a lucky day :)

I keep getting confused about this and eventually get tempted to disable 
jta during build.

FWIW, I am mostly on Leopard with Maven 2.2.1. Java 1.5 or 1.6 doesn't 
appear to make any difference.

Cheers, Indrajit


On 22/10/09 8:24 PM, David Pollak wrote:


 On Thu, Oct 22, 2009 at 7:47 AM, Derek Chen-Becker
 dchenbec...@gmail.com mailto:dchenbec...@gmail.com wrote:

 It builds for me locally...


 I randomly get that failure locally.


 On Thu, Oct 22, 2009 at 5:25 AM, Timothy Perrett
 timo...@getintheloop.eu wrote:


 Hmm how strange - it builds fine locally?

 Cheers, Tim

 On Oct 22, 10:56 am, David Pollak feeder.of.the.be...@gmail.com
 mailto:feeder.of.the.be...@gmail.com
 wrote:
   Anyone have a clue as to why the JTA stuff in Lift is
 unstable on Hudson?
  
  
  
   -- Forwarded message --
   From: ad...@scala-tools.org mailto:ad...@scala-tools.org
   Date: Thu, Oct 22, 2009 at 2:28 AM
   Subject: Build failed in Hudson: Lift #1307
  
   See http://hudson.scala-tools.org/job/Lift/1307/changes
  
   Changes:
  
   [David Pollak] Temporary fix to allow Hudson to complete
 a build
  
   --
   [...truncated 6079 lines...]
   Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
  
   [HUDSON] Recording test results
   [INFO] [jar:jar]
   [INFO] Building jar:
 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
  
   [INFO] Preparing source:jar
   [WARNING] Removing: jar from forked lifecycle, to prevent
 recursive
   invocation.
   [INFO] No goals needed for project - skipping
   [INFO] [source:jar {execution: attach-sources}]
   [INFO] Building jar:
 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
  
   [INFO] [install:install]
   [INFO] Installing
 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
   to
  
 
 /home/scalatools/hudson/.m2/repository/net/liftweb/lift-testkit/1.1-SNAPSHO
 T/lift-testkit-1.1-SNAPSHOT.jar
   [INFO] Installing
 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
   to
  
 
 /home/scalatools/hudson/.m2/repository/net/liftweb/lift-testkit/1.1-SNAPSHO
 T/lift-testkit-1.1-SNAPSHOT-sources.jar
   [INFO] [deploy:deploy]
   [INFO] Retrieving previous build number from
 hudson.scala-tools.org http://hudson.scala-tools.org
   Uploading: file:///home/
  
 
 scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/li
 
 http://scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/li
 ft-testkit-1.1-SNAPSHOT.jar
   108K uploaded  (lift-testkit-1.1-SNAPSHOT.jar)
   [INFO] Retrieving previous metadata from
 hudson.scala-tools.org http://hudson.scala-tools.org
   [INFO] Uploading repository metadata for: 'artifact
   net.liftweb:lift-testkit'
   [INFO] Uploading project information for lift-testkit
 1.1-SNAPSHOT
   [INFO] Retrieving previous metadata from
 hudson.scala-tools.org http://hudson.scala-tools.org
   [INFO] Uploading repository metadata for: 'snapshot
   net.liftweb:lift-testkit:1.1-SNAPSHOT'
   [INFO] Retrieving previous build number from
 hudson.scala-tools.org http://hudson.scala-tools.org
   Uploading: file:///home/
  
 
 scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/li
 
 http://scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/li
 ft-testkit-1.1-SNAPSHOT-sources.jar
   10K uploaded  (lift-testkit-1.1-SNAPSHOT-sources.jar)
   [INFO] Preparing surefire-report:report-only
   [INFO] No goals needed for project - skipping
   [INFO] [site:site]
   [INFO] Generating Project Team report.
   [INFO] Generating Issue Tracking report.
   [INFO] Generating Surefire Report report.
   [WARNING] Unable to locate Test Source XRef to link to - DISABLED
   [INFO] Generating Dependency Management report.
   [INFO] Generating Project Plugins report.
   [INFO] Generating Continuous Integration report.
   [INFO] Generating Dependencies report.
   [INFO] Generating Source Repository report.
   [INFO] Generating Plugin Management report.
   [INFO] Generating Mailing Lists report.
   [INFO] Generating 

[Lift] Re: Fwd: Build failed in Hudson: Lift #1307

2009-10-22 Thread Indrajit Raychaudhuri

Nice find. Never had the patience to dig.

Thanks! - Indrajit


On 22/10/09 8:38 PM, Derek Chen-Becker wrote:
 I can verify that the JAR on lion doesn't have the getUnitName def:

 de...@lion:/home/scalatools/hudson/.m2/repository/org/scala-libs/scalajpa/1.1$
 javap -private -classpath scalajpa-1.1.jar org.scala_libs.jpa.ScalaEMFactory
 Compiled from ScalaEMFactory.scala
 public interface org.scala_libs.jpa.ScalaEMFactory extends
 scala.ScalaObject{
  public abstract org.scala_libs.jpa.ScalaEntityManager newEM();
  public abstract void closeEM(javax.persistence.EntityManager);
  public abstract javax.persistence.EntityManager openEM();
 }

 Neither does the one on my mirror:

 dbec...@cpilift:/home/cpilift/www/repo-releases/org/scala-libs/scalajpa/1.1$
 javap -private -classpath scalajpa-1.1.jar org.scala_libs.jpa.ScalaEMFactory
 Compiled from ScalaEMFactory.scala
 public interface org.scala_libs.jpa.ScalaEMFactory extends
 scala.ScalaObject{
  public abstract org.scala_libs.jpa.ScalaEntityManager newEM();
  public abstract void closeEM(javax.persistence.EntityManager);
  public abstract javax.persistence.EntityManager openEM();
 }


 I have no idea how that def could be sneaking in there.

 Derek

 On Thu, Oct 22, 2009 at 8:54 AM, David Pollak
 feeder.of.the.be...@gmail.com mailto:feeder.of.the.be...@gmail.com
 wrote:



 On Thu, Oct 22, 2009 at 7:47 AM, Derek Chen-Becker
 dchenbec...@gmail.com mailto:dchenbec...@gmail.com wrote:

 It builds for me locally...


 I randomly get that failure locally.


 On Thu, Oct 22, 2009 at 5:25 AM, Timothy Perrett
 timo...@getintheloop.eu wrote:


 Hmm how strange - it builds fine locally?

 Cheers, Tim

 On Oct 22, 10:56 am, David Pollak
 feeder.of.the.be...@gmail.com
 mailto:feeder.of.the.be...@gmail.com
 wrote:
   Anyone have a clue as to why the JTA stuff in Lift is
 unstable on Hudson?
  
  
  
   -- Forwarded message --
   From: ad...@scala-tools.org mailto:ad...@scala-tools.org
   Date: Thu, Oct 22, 2009 at 2:28 AM
   Subject: Build failed in Hudson: Lift #1307
  
   See http://hudson.scala-tools.org/job/Lift/1307/changes
  
   Changes:
  
   [David Pollak] Temporary fix to allow Hudson to
 complete a build
  
   --
   [...truncated 6079 lines...]
   Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
  
   [HUDSON] Recording test results
   [INFO] [jar:jar]
   [INFO] Building jar:
 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
  
   [INFO] Preparing source:jar
   [WARNING] Removing: jar from forked lifecycle, to prevent
 recursive
   invocation.
   [INFO] No goals needed for project - skipping
   [INFO] [source:jar {execution: attach-sources}]
   [INFO] Building jar:
 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
  
   [INFO] [install:install]
   [INFO] Installing
 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
   to
  
 
 /home/scalatools/hudson/.m2/repository/net/liftweb/lift-testkit/1.1-SNAPSHO
 T/lift-testkit-1.1-SNAPSHOT.jar
   [INFO] Installing
 
 http://hudson.scala-tools.org/job/Lift/ws/lift-testkit/target/lift-te...
   to
  
 
 /home/scalatools/hudson/.m2/repository/net/liftweb/lift-testkit/1.1-SNAPSHO
 T/lift-testkit-1.1-SNAPSHOT-sources.jar
   [INFO] [deploy:deploy]
   [INFO] Retrieving previous build number from
 hudson.scala-tools.org http://hudson.scala-tools.org
   Uploading: file:///home/
  
 
 scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/li
 
 http://scala-tools.org/www/repo-snapshots/net/liftweb/lift-testkit/1.1-SNAPSHOT/li
 ft-testkit-1.1-SNAPSHOT.jar
   108K uploaded  (lift-testkit-1.1-SNAPSHOT.jar)
   [INFO] Retrieving previous metadata from
 hudson.scala-tools.org http://hudson.scala-tools.org
   [INFO] Uploading repository metadata for: 'artifact
   net.liftweb:lift-testkit'
   [INFO] Uploading project information for lift-testkit
 1.1-SNAPSHOT
   [INFO] Retrieving previous metadata from
 hudson.scala-tools.org http://hudson.scala-tools.org
   [INFO] Uploading 

[Lift] Re: New update changed something?

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 7:03 AM, TylerWeir tyler.w...@gmail.com wrote:


 Umm, http://groups.google.com/group/liftweb/t/824f14038bedf425?hl=en


Any way to make this sticky?


 On Oct 22, 9:55 am, caw1461 caw1...@gmail.com wrote:
  So I was running everything for my program fine last night.  Got on
  this morning, updated scala when compiling and I am getting a lot of:
 
  error: not found: value Box
  error: value map is not a member
  error: value openOr is not a member of Nothing
  etc.
 
  Was there a big update changing a bunch of these things, or did I
  change some code to break all of this? I'm pretty sure I haven't made
  any significant changes.
 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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 update changed something?

2009-10-22 Thread Timothy Perrett
Sure, just go to options on the web interface at the top of the  
thread and as moderator you should see a whole bunch of options.

Cheers, Tim

On 22 Oct 2009, at 16:22, David Pollak wrote:

 On Thu, Oct 22, 2009 at 7:03 AM, TylerWeir tyler.w...@gmail.com  
 wrote:

 Umm, http://groups.google.com/group/liftweb/t/824f14038bedf425?hl=en


 Any way to make this sticky?


--~--~-~--~~~---~--~~
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] Weird request/transaction semantics

2009-10-22 Thread Jeppe Nejsum Madsen

Hi,

I posted this in another thread, but it may have been lost in the noise
(or no one cared :-) 

Anyway, I have S.addAround(DB.buildLoanWrapper) in boot, which I assumed
would wrap each request with a transaction and thus use the same
connection for the duration of the request?

I've added some logging around newConnection/releaseConnection. I was a
little surprised to see that newConnection is called three times for
each request?

Is this intentional?

I can see that a connection is also being made even for static files
(such as css). This is not really a problem, but it would be nice to defer
acquiring a connection until needed(since I now verify the
connection by doing an actual statement on the db server :-)

/Jeppe



--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread jlist9

Yes. Typically one will only see a couple of Java-y Scala samples in
the tutorials to show that you can write Scala the Java way
to encourage Java developers to pick up Scala. However, in any
real world applications and libraries you'll only see Scala-y Scala
and that's where the disconnect is.

I thought I could start reading some Scala code after reading a few
tutorials and chapters in a Scala book but that wasn't the case. :-)

However, I'm starting to see the power of Scala, while my head hurts
trying to fit itself to functional thinking and the rich and confusing syntax
(to a beginner at least.)

On Thu, Oct 22, 2009 at 1:13 AM, Viktor Klang viktor.kl...@gmail.com wrote:
 But the problem there is that sample Scala code is never Java-y Scala, so
 beginners get confused from not having learned about first-class functions
 and their syntax.
 (from my 2 years of Scala, what I've seen the pitfalls being)

--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread David Pollak
I've drafted a couple of different versions of a response to this message
and they all seem somewhat mean and/or condescending... that is not at all
my intent... here's another draft and please read it as acknowledging the
challenges you are articulating, but suggesting a different perspective on
the issue.
Lisp/Scheme/Clojure is syntactically the simplest language around.  Yet,
when I look at Clojure code, it to a great degree seems complex to me, even
though I know it's not.  I believe this is because the patterns are
different than those I've rehearsed through my journey of asm, Basic, C,
ObjC, C++, Java, Ruby, and Scala.  Rehearsing a different paradigm is part
of making that paradigm part of you.

When I studied French in grade school and high school, I was flummoxed and
quite angered by gendered nouns.  As a native English speaker, a table is an
it, not a she (or he.)  But fluent French speakers make gendered nouns a
normal part of the language, and once skilled can use these subtleties with
great skill.

My 2 year learning curve for Scala can be summed up in the first 4 (or maybe
5) chapters of Beginning Scala.  I sought to present my painful learning
curve in  150 pages that could be reasonably consumed by a Java or Ruby or
Python coder in a week or two.  Yeah, it still takes a fair amount of
practice, rehearsal, to be proficient, but if someone had led me down the
path that I led my readers down, I think my pain-curve would have been 3-4
months, not two years.

Put a different way, the Programming in Scala folks passed a couple of
drafts of the first chapters of their book by me early on.  I think PinS is
a tredmendously awesome work, but I objected strongly to the show
imperative first and gently migrate to functional approach they took.  I
thought it did a significant disservice to their readers.  I took the
opposite approach in BegSca... the second substantive example covers a broad
spectrum of functional programming.

So, getting to some of the substance of your post, as Tim pointed out, the
_ is a running joke in Scala-land.  Yep, it's way overloaded.  Every time
(and this happened at both Scala Lift Offs) Martin tries to justify the
_'s use, people roll their eyes.

On the other hand, the example that you gave is one of my proudest moments
in Lift.  Specifically, I think Mapper is a steaming pile of something.  I
am really dissatisfied with it (although we followed the same paradigm with
Record and I'm unhappy with that as well... mostly from the mutability
standpoint).  On the other hand, the graceful way that Mapper deals with
validators (they are functions and they are declared as a List that can be
dynamically generated) is something that I look at and remember it being the
first time I really felt like I got the power of Scala.  When I developed
that paradigm, I genuinely felt like Lift was going to be something
different and better.

So, I am truly sorry that you and others are struggling with Scala (yeah,
everyone other than Martin and Adriaan and a few others struggle with
Scala's type system, but most people didn't get General Relativity early on
either) and I hope that we can present materials to you in a way that helps
minimize the struggle.

Thanks for sharing your thoughts and I hope this message has struck the tone
I intend it to.

David

On Wed, Oct 21, 2009 at 10:13 PM, jlist9 jli...@gmail.com wrote:


 override def validations = validPriority _ :: super.validations

 This is a more of a comment about Scala than one about Lift - this does
 look cryptic to me. And this is just one of the simpler syntax that
 confuses
 people, who are new to the language. And I'm one of them.


Interesting... this is one of the constructs in Lift that I find simple (and
almost always have found simple).  It's adding a validator to a list of
validators.  Having validators as functions was an early (while my mind was
still mostly Java/Ruby) construct that, when I look at it says, this was
something that still works.  Mapper's general use of mutability, on the
other hand, is something that very much does not work (although the
syntactic cost of doing something else is still too high.)



 I understand that you don't have to learn all the tricks/syntax to start
 coding in Scala but you do have to understand it when you read
 source code of libraries written by someone with much more advanced
 language skills.


In this particular case, building an immutable list of of a new element and
a prior element and the syntax for turning a method into a function are both
very core concepts in Scala (and pretty core in Ruby as well, although the
syntax is different).  I do not view these as any more advanced than
overriding methods in Java.

The Scala skills needed to understand and consume most of Lift's APIs should
not be part of the advanced piece of Scala.  The advanced piece of Scala has
to do with the type system and its interaction with OO.  You can see the
challenges that these advanced pieces of 

[Lift] Re: S.deleteCookie broken in M6

2009-10-22 Thread David Pollak
File a ticket.  It's Harry's tickets day for me today.  The more you file,
the more that get fixed.

On Thu, Oct 22, 2009 at 9:03 AM, harryh har...@gmail.com wrote:


 S.deleteCookie appears to be broken in M6.  I'm using
 ProtoExtendedSession to keep extended session state, and when I logout
 (and the ext_id cookie should be deleted), the following header is
 being sent back to the browser:

 Set-Cookie: ext_id=SIOKGDA3ZRNV0RC0DWA1J4REBR5JLKVI


 which does not delete the cookie.  The user doesn't stay logged in
 since the row from the extended session table is deleted, but I'm
 trying to share logged in state with a legacy system (which I am
 rewriting) and this is causing me some issues.

 -harryh
 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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: S.deleteCookie broken in M6

2009-10-22 Thread harryh

 File a ticket.

Done

 It's Harry's tickets day for me today.  The more you file,
 the more that get fixed.

Oh my. That's really quite something there.

-harryh
--~--~-~--~~~---~--~~
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: Weird request/transaction semantics

2009-10-22 Thread David Pollak
There are a couple of things happening.
First, there are at least 2 distinct times when we initialize the S context
during a request handling cycle:

   - During the rewrite phase (if there's a session cookie)
   - During the substantive processing phase
   - If there's a cometactor on the page, S will be initialized twice per
   comet actor message processing (once during the testing of the message for
   ability to process and once during the message processing itself)



On Thu, Oct 22, 2009 at 8:54 AM, Jeppe Nejsum Madsen je...@ingolfs.dkwrote:


 Hi,

 I posted this in another thread, but it may have been lost in the noise
 (or no one cared :-)

 Anyway, I have S.addAround(DB.buildLoanWrapper) in boot, which I assumed
 would wrap each request with a transaction and thus use the same
 connection for the duration of the request?

 I've added some logging around newConnection/releaseConnection. I was a
 little surprised to see that newConnection is called three times for
 each request?

 Is this intentional?

 I can see that a connection is also being made even for static files
 (such as css). This is not really a problem, but it would be nice to defer
 acquiring a connection until needed(since I now verify the
 connection by doing an actual statement on the db server :-)


Lemme see what I can do about making it lazy... please open a ticket and
I'll try to get to it today.



 /Jeppe



 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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 update changed something?

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 8:29 AM, Timothy Perrett timo...@getintheloop.euwrote:

 Sure, just go to options on the web interface at the top of the thread
 and as moderator you should see a whole bunch of options.


I'm not seeing a make sticky option.  I may be blind or stupid or both.
 Maybe Tyler can have a look.



 Cheers, Tim

 On 22 Oct 2009, at 16:22, David Pollak wrote:

 On Thu, Oct 22, 2009 at 7:03 AM, TylerWeir tyler.w...@gmail.com wrote:


 Umm, http://groups.google.com/group/liftweb/t/824f14038bedf425?hl=en


 Any way to make this sticky?



 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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] Cannot build our lift app. Is net.liftweb.util OK?

2009-10-22 Thread Dano

Hello Lifters,

After doing my morning build (mvn -U clean install), I am getting a
huge number of errors mostly related to net.liftweb.util (see below).

We are building against 1.1-SNAPSHOT.  Is anyone else having this
problem?

Thanks in advance.


Dan

[INFO] Compiling 113 source files to C:\sandboxes\igo\trunk\baf\target
\classes
[WARNING] C:\sandboxes\igo\trunk\baf\src\main\scala\bootstrap\liftweb
\Boot.scala:43: error: not found: value Full
[WARNING]   case _ = Full(DocType.xhtmlStrict)
[WARNING] ^
[WARNING] C:\sandboxes\igo\trunk\baf\src\main\scala\com\enthiosys
\buyafeature\lib\PlexusMagic.scala:23: error: Failure is not a member
of net.liftweb.util
[WARNING] import net.liftweb.util.{Failure = BoxFailure}
[WARNING]^
[WARNING] C:\sandboxes\igo\trunk\baf\src\main\scala\bootstrap\liftweb
\Boot.scala:73: error: not found: value Empty
[WARNING]   LiftRules.xhtmlValidator = Empty
[WARNING]  ^
[WARNING] C:\sandboxes\igo\trunk\baf\src\main\scala\bootstrap\liftweb
\Boot.scala:77: error: type mismatch;
--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread Timothy Perrett
David,

I think your response was well measured and appropriate. The analogy  
of linguistics is a good one :-)

Without wanting to diverge this thread, can I ask why it is your  
unhappy with Record? Its been fairly fun to use so far and appears to  
work well.

Cheers, Tim

On 22 Oct 2009, at 17:04, David Pollak wrote:

 I've drafted a couple of different versions of a response to this  
 message and they all seem somewhat mean and/or condescending... that  
 is not at all my intent... here's another draft and please read it  
 as acknowledging the challenges you are articulating, but suggesting  
 a different perspective on the issue.

 Lisp/Scheme/Clojure is syntactically the simplest language around.   
 Yet, when I look at Clojure code, it to a great degree seems complex  
 to me, even though I know it's not.  I believe this is because the  
 patterns are different than those I've rehearsed through my journey  
 of asm, Basic, C, ObjC, C++, Java, Ruby, and Scala.  Rehearsing a  
 different paradigm is part of making that paradigm part of you.

 When I studied French in grade school and high school, I was  
 flummoxed and quite angered by gendered nouns.  As a native English  
 speaker, a table is an it, not a she (or he.)  But fluent French  
 speakers make gendered nouns a normal part of the language, and once  
 skilled can use these subtleties with great skill.

 My 2 year learning curve for Scala can be summed up in the first 4  
 (or maybe 5) chapters of Beginning Scala.  I sought to present my  
 painful learning curve in  150 pages that could be reasonably  
 consumed by a Java or Ruby or Python coder in a week or two.  Yeah,  
 it still takes a fair amount of practice, rehearsal, to be  
 proficient, but if someone had led me down the path that I led my  
 readers down, I think my pain-curve would have been 3-4 months, not  
 two years.

 Put a different way, the Programming in Scala folks passed a couple  
 of drafts of the first chapters of their book by me early on.  I  
 think PinS is a tredmendously awesome work, but I objected strongly  
 to the show imperative first and gently migrate to functional  
 approach they took.  I thought it did a significant disservice to  
 their readers.  I took the opposite approach in BegSca... the second  
 substantive example covers a broad spectrum of functional programming.

 So, getting to some of the substance of your post, as Tim pointed  
 out, the _ is a running joke in Scala-land.  Yep, it's way  
 overloaded.  Every time (and this happened at both Scala Lift Offs)  
 Martin tries to justify the _'s use, people roll their eyes.

 On the other hand, the example that you gave is one of my proudest  
 moments in Lift.  Specifically, I think Mapper is a steaming pile of  
 something.  I am really dissatisfied with it (although we followed  
 the same paradigm with Record and I'm unhappy with that as well...  
 mostly from the mutability standpoint).  On the other hand, the  
 graceful way that Mapper deals with validators (they are functions  
 and they are declared as a List that can be dynamically generated)  
 is something that I look at and remember it being the first time I  
 really felt like I got the power of Scala.  When I developed that  
 paradigm, I genuinely felt like Lift was going to be something  
 different and better.

 So, I am truly sorry that you and others are struggling with Scala  
 (yeah, everyone other than Martin and Adriaan and a few others  
 struggle with Scala's type system, but most people didn't get  
 General Relativity early on either) and I hope that we can present  
 materials to you in a way that helps minimize the struggle.

 Thanks for sharing your thoughts and I hope this message has struck  
 the tone I intend it to.

 David

 On Wed, Oct 21, 2009 at 10:13 PM, jlist9 jli...@gmail.com wrote:

 override def validations = validPriority _ :: super.validations

 This is a more of a comment about Scala than one about Lift - this  
 does
 look cryptic to me. And this is just one of the simpler syntax that  
 confuses
 people, who are new to the language. And I'm one of them.

 Interesting... this is one of the constructs in Lift that I find  
 simple (and almost always have found simple).  It's adding a  
 validator to a list of validators.  Having validators as functions  
 was an early (while my mind was still mostly Java/Ruby) construct  
 that, when I look at it says, this was something that still  
 works.  Mapper's general use of mutability, on the other hand, is  
 something that very much does not work (although the syntactic cost  
 of doing something else is still too high.)


 I understand that you don't have to learn all the tricks/syntax to  
 start
 coding in Scala but you do have to understand it when you read
 source code of libraries written by someone with much more advanced
 language skills.


 In this particular case, building an immutable list of of a new  
 element and a prior element and 

[Lift] Re: Cannot build our lift app. Is net.liftweb.util OK?

2009-10-22 Thread Dano

I see that there is a similar issue posted against the thread New
update changed something?.  I will monitor the progress of that
thread as well.


Dan

On Oct 22, 9:16 am, Dano olearydani...@gmail.com wrote:
 Hello Lifters,

 After doing my morning build (mvn -U clean install), I am getting a
 huge number of errors mostly related to net.liftweb.util (see below).

 We are building against 1.1-SNAPSHOT.  Is anyone else having this
 problem?

 Thanks in advance.

 Dan

 [INFO] Compiling 113 source files to C:\sandboxes\igo\trunk\baf\target
 \classes
 [WARNING] C:\sandboxes\igo\trunk\baf\src\main\scala\bootstrap\liftweb
 \Boot.scala:43: error: not found: value Full
 [WARNING]       case _ = Full(DocType.xhtmlStrict)
 [WARNING]                 ^
 [WARNING] C:\sandboxes\igo\trunk\baf\src\main\scala\com\enthiosys
 \buyafeature\lib\PlexusMagic.scala:23: error: Failure is not a member
 of net.liftweb.util
 [WARNING] import net.liftweb.util.{Failure = BoxFailure}
 [WARNING]        ^
 [WARNING] C:\sandboxes\igo\trunk\baf\src\main\scala\bootstrap\liftweb
 \Boot.scala:73: error: not found: value Empty
 [WARNING]       LiftRules.xhtmlValidator = Empty
 [WARNING]                                  ^
 [WARNING] C:\sandboxes\igo\trunk\baf\src\main\scala\bootstrap\liftweb
 \Boot.scala:77: error: type mismatch;
--~--~-~--~~~---~--~~
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: Review Request: Enhance Msgs snippet to optionally show all messages

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 12:58 AM, Heiko Seeberger 
heiko.seeber...@googlemail.com wrote:



  On 2009-10-21 13:17:36.007575, Marius Danciu wrote:
   The fix looks correct for this feature, but I'm not convinced that this
 proposed feature is the right approach. If a page contains both msg and msgs
 + showall, the message would be duplicated. There is no rule that promotes
 mutual exclusivity for msg and msgs+showall and if it should or should not
 exist is also debatable.

 First I would like to point out that I do have exactly this requirement in
 an ongoing project to show all messages (related to fields and not related)
 in the top area of a page. Currently this is not (easily) possible with Msgs
 and Msg, because you have to know the fields for Msg and Msg will render
 differently than Msgs (span vs. div). As I have seen this requirement in
 many recent projects, I believe it is not too unique, hence others could
 benefit from this enhancement.

 Second, I do not understand your concerns. As long as noone sets showAll to
 true, nothing will change in regards how Msg and Msgs are working today,
 i.e. no messages will be duplicated. If someone deliberately decides to set
 showAll to true, he will certainly have to deal with the consequences.


I agree with this position.  The change has common benefits and it's not
changing default behavior.

(cc'ing the Lift list in case anyone else wants to chime in)




 - Heiko


 ---
 This is an automatically generated e-mail. To reply, visit:
 http://reviewboard.liftweb.net/r/55/#review135
 ---


 On 2009-10-22 00:57:49.136378, Heiko Seeberger wrote:
 
  ---
  This is an automatically generated e-mail. To reply, visit:
  http://reviewboard.liftweb.net/r/55/
  ---
 
  (Updated 2009-10-22 00:57:49.136378)
 
 
  Review request for Derek Chen-Becker, David Pollak, Marius Danciu, Viktor
 Klang, Charles Munat, Heiko Seeberger, Joni Freeman, Atsuhiko Yamanaka,
 Jorge Ortiz, Naftoli Gugenheim, Kris Nuttycombe, Indrajit Raychaudhuri, and
 Alex Boisvert.
 
 
  Summary
  ---
 
  Issue 123: Enhance Msgs snippet to optionally show all messages
 
  The Msgs built-in snippet will only display messages NOT related to a
 particular field. This makes using some of the ProtoUser's templates a tough
 job, e.g. for editing the user or changing the password, because these will
 bring up errors with and without relation to fields.
 
  This change will add an optional attribute showAll to the Msgs element
 which lets Msgs display all messages if set to true.
 
 
  This addresses bug 123.
  http://github.com/dpp/liftweb/issues#issue/123
 
 
  Diffs
  -
 
lift/src/main/scala/net/liftweb/builtin/snippet/Msgs.scala ed8ae96
lift/src/main/scala/net/liftweb/http/S.scala a0a8661
 
  Diff: http://reviewboard.liftweb.net/r/55/diff
 
 
  Testing
  ---
 
 
  Thanks,
 
  Heiko
 
 




-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 9:18 AM, Timothy Perrett timo...@getintheloop.euwrote:

 David,

 I think your response was well measured and appropriate. The analogy of
 linguistics is a good one :-)

 Without wanting to diverge this thread, can I ask why it is your unhappy
 with Record? Its been fairly fun to use so far and appears to work well.


I don't like mutable fields.  I don't like manual saving.  Dunno... it's
hard to articulate... it just feels wrong in my tummy.  Also, I want to be
clear that I think Marius did a great job of cleaning up some of the
problems with Mapper when he did Record... my comments are not a negative to
him... there's just something unsatisfying about the whole approach.

Bet that was less than helpful.



 Cheers, Tim

 On 22 Oct 2009, at 17:04, David Pollak wrote:

 I've drafted a couple of different versions of a response to this message
 and they all seem somewhat mean and/or condescending... that is not at all
 my intent... here's another draft and please read it as acknowledging the
 challenges you are articulating, but suggesting a different perspective on
 the issue.
 Lisp/Scheme/Clojure is syntactically the simplest language around.  Yet,
 when I look at Clojure code, it to a great degree seems complex to me, even
 though I know it's not.  I believe this is because the patterns are
 different than those I've rehearsed through my journey of asm, Basic, C,
 ObjC, C++, Java, Ruby, and Scala.  Rehearsing a different paradigm is part
 of making that paradigm part of you.

 When I studied French in grade school and high school, I was flummoxed and
 quite angered by gendered nouns.  As a native English speaker, a table is an
 it, not a she (or he.)  But fluent French speakers make gendered nouns a
 normal part of the language, and once skilled can use these subtleties with
 great skill.

 My 2 year learning curve for Scala can be summed up in the first 4 (or
 maybe 5) chapters of Beginning Scala.  I sought to present my painful
 learning curve in  150 pages that could be reasonably consumed by a Java or
 Ruby or Python coder in a week or two.  Yeah, it still takes a fair amount
 of practice, rehearsal, to be proficient, but if someone had led me down the
 path that I led my readers down, I think my pain-curve would have been 3-4
 months, not two years.

 Put a different way, the Programming in Scala folks passed a couple of
 drafts of the first chapters of their book by me early on.  I think PinS is
 a tredmendously awesome work, but I objected strongly to the show
 imperative first and gently migrate to functional approach they took.  I
 thought it did a significant disservice to their readers.  I took the
 opposite approach in BegSca... the second substantive example covers a broad
 spectrum of functional programming.

 So, getting to some of the substance of your post, as Tim pointed out, the
 _ is a running joke in Scala-land.  Yep, it's way overloaded.  Every time
 (and this happened at both Scala Lift Offs) Martin tries to justify the
 _'s use, people roll their eyes.

 On the other hand, the example that you gave is one of my proudest moments
 in Lift.  Specifically, I think Mapper is a steaming pile of something.  I
 am really dissatisfied with it (although we followed the same paradigm with
 Record and I'm unhappy with that as well... mostly from the mutability
 standpoint).  On the other hand, the graceful way that Mapper deals with
 validators (they are functions and they are declared as a List that can be
 dynamically generated) is something that I look at and remember it being the
 first time I really felt like I got the power of Scala.  When I developed
 that paradigm, I genuinely felt like Lift was going to be something
 different and better.

 So, I am truly sorry that you and others are struggling with Scala (yeah,
 everyone other than Martin and Adriaan and a few others struggle with
 Scala's type system, but most people didn't get General Relativity early on
 either) and I hope that we can present materials to you in a way that helps
 minimize the struggle.

 Thanks for sharing your thoughts and I hope this message has struck the
 tone I intend it to.

 David

 On Wed, Oct 21, 2009 at 10:13 PM, jlist9 jli...@gmail.com wrote:


 override def validations = validPriority _ :: super.validations

 This is a more of a comment about Scala than one about Lift - this does
 look cryptic to me. And this is just one of the simpler syntax that
 confuses
 people, who are new to the language. And I'm one of them.


 Interesting... this is one of the constructs in Lift that I find simple
 (and almost always have found simple).  It's adding a validator to a list of
 validators.  Having validators as functions was an early (while my mind was
 still mostly Java/Ruby) construct that, when I look at it says, this was
 something that still works.  Mapper's general use of mutability, on the
 other hand, is something that very much does not work (although the
 syntactic cost of 

[Lift] Re: S.deleteCookie broken in M6

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 9:07 AM, harryh har...@gmail.com wrote:


  File a ticket.

 Done

  It's Harry's tickets day for me today.  The more you file,
  the more that get fixed.

 Oh my. That's really quite something there.


And for all of you who want to see what's on my Lift (or ESME) plate:
https://www.rememberthemilk.com/home/bearfeeder/10510876/




 -harryh
 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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] One minor exception to the no-RTFM rule

2009-10-22 Thread David Pollak
Folks,
We've got a solid rule in Lift-land which is we don't respond with RTFM.
 Why?  Because we want to encourage people to ask questions.

There's one exception to that rule that I'll make now.  If your code
suddenly breaks (we do make breaking changes to Lift from time to time),
please at least search the project archives for the phrase Breaking
Changes.  We work hard to make sure the breaking changes are few and far
between.  We work hard to flag breaking changes long before they happen.
 Yeah, I know not everyone reads every post on this list, but folks with
production apps should spend a little time here.

But, before you post Gee my app was compiling yesterday and it's not
compiling today, please search for recent posts with the words Breaking
Changes in the title.

We will flag these.  We promise.

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
Surf the harmonics

--~--~-~--~~~---~--~~
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 update changed something?

2009-10-22 Thread TylerWeir

Sorry, just saw this, stickied.

On Oct 22, 12:14 pm, David Pollak feeder.of.the.be...@gmail.com
wrote:
 On Thu, Oct 22, 2009 at 8:29 AM, Timothy Perrett 
 timo...@getintheloop.euwrote:

  Sure, just go to options on the web interface at the top of the thread
  and as moderator you should see a whole bunch of options.

 I'm not seeing a make sticky option.  I may be blind or stupid or both.
  Maybe Tyler can have a look.





  Cheers, Tim

  On 22 Oct 2009, at 16:22, David Pollak wrote:

  On Thu, Oct 22, 2009 at 7:03 AM, TylerWeir tyler.w...@gmail.com wrote:

  Umm,http://groups.google.com/group/liftweb/t/824f14038bedf425?hl=en

  Any way to make this sticky?

 --
 Lift, the simply functional web frameworkhttp://liftweb.net
 Beginning Scalahttp://www.apress.com/book/view/1430219890
 Follow me:http://twitter.com/dpp
 Surf the harmonics
--~--~-~--~~~---~--~~
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 update changed something?

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 9:38 AM, TylerWeir tyler.w...@gmail.com wrote:


 Sorry, just saw this, stickied.



TNX



 On Oct 22, 12:14 pm, David Pollak feeder.of.the.be...@gmail.com
 wrote:
  On Thu, Oct 22, 2009 at 8:29 AM, Timothy Perrett timo...@getintheloop.eu
 wrote:
 
   Sure, just go to options on the web interface at the top of the
 thread
   and as moderator you should see a whole bunch of options.
 
  I'm not seeing a make sticky option.  I may be blind or stupid or both.
   Maybe Tyler can have a look.
 
 
 
 
 
   Cheers, Tim
 
   On 22 Oct 2009, at 16:22, David Pollak wrote:
 
   On Thu, Oct 22, 2009 at 7:03 AM, TylerWeir tyler.w...@gmail.com
 wrote:
 
   Umm,http://groups.google.com/group/liftweb/t/824f14038bedf425?hl=en
 
   Any way to make this sticky?
 
  --
  Lift, the simply functional web frameworkhttp://liftweb.net
  Beginning Scalahttp://www.apress.com/book/view/1430219890
  Follow me:http://twitter.com/dpp
  Surf the harmonics
 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread Dano

It would be good to have an example like George's verified as it is
not clear how to convert our Actor code.



Dan

On Oct 22, 4:48 am, george geo...@mattandgeorge.com wrote:
 ok so..

 object LocalSmtp extends Actor

 should become

 object LocalSmtp extends GenericActor[LocalSmtp]

 ?
--~--~-~--~~~---~--~~
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: javascript with an ajaxbutton

2009-10-22 Thread caw1461

I don't think i can pull a small example from here because I'm
combining my lack of knowledge in scala, lift, html, jquery,
tinyMCE ... you get the idea.

The point is that I am trying to create a button that calls a scala
function and a javascript function.  I am currently trying to use an
shtml.ajaxButton, though I don't know if that is the right tool.

Button:
   save1 - SHtml.ajaxButton(
 Fixed,
  { () = {
println(Fixed scala/lift.);
saveClaimStatus(FIXED);   //scala function.  works
as intended
JsRaw($.saveT();).cmd);
}
  })


javascript function:
   function saveT () {
document.form[0].submit();
};

In the 42 different ways I have tried to implement this, I can get one
or the other to function, but i cannot get both to work.

How do I do both functions with one button?

Thanks.  And I'm sorry if I'm not explaining this correctly, or that
it's not making much sense.

-Chris



On Oct 20, 2:31 pm, Marius marius.dan...@gmail.com wrote:
 I was hoping to see something minimalistic and isolated so I can
 quickly try it out.

 I'm not sure what you do with redirect(/workflow/claims)  but from
 Ajax function you should probably use JsCmd.RedirectTo ..

 Hopefully I'll have some time this weekend to play with tinyMCE

 Br's,
 Marius

 On Oct 19, 10:57 pm, caw1461 caw1...@gmail.com wrote:

  edit.html:

      script type=text/javascript

      tinyMCE.init({
          // General options
          mode : textareas,
          theme : advanced,
          plugins :
  spellchecker,pagebreak,save,advhr,advimage,advlink,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,noneditable,visualchars,nonbreaking,xhtmlxtras,template,
          theme_advanced_buttons1 :
  styleselect,formatselect,fontselect,fontsizeselect,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,
  hr, bullist,numlist, preview, code,
          theme_advanced_buttons2 : ,
          theme_advanced_buttons3 : ,
          theme_advanced_buttons4 : ,

          submit_patch : false,

          theme_advanced_resizing : true
      });

      // The save function that actually works.

      $.saveFunc = function() { tinyMCE.activeEditor.save() };

      function saveT () {
          console.log(javascriptconsole 1)
          tinyMCE.activeEditor.save()
          console.log(javascriptconsole 2)
      };

      $('#fixed').click(function(e){
          tinyMCE.activeEditor.save()
      });
      /script

      editor:text/
      br/

      !--  NOW WORKS CORRECTLY --
      button id=Save onclick=saveT() class=ui-state-default
  title=Save, only save the html, doesn't mark the claim ready for
  publishging.Save/button

      editor:save1/
      editor:cancel/
      editor:save2/

  //*//

  Workflow.scala:

    SHtml.ajaxForm(
          bind(editor, xhtml,

              text - SHtml.textarea(originalOrEditedFileAsString
  (selectedClaimWorkQueue.open_!.fileName),
                  s = {
                      println(s)
                      saveClaimHtmlToDB(s)
                      saveClaimHtml(s,
  selectedClaimWorkQueue.open_!.fileName)
                      S.notice(Submitted.)
                      redirect(/workflow/claims)
                  } , (style, height: 500px; width:97%), (id,
  mceForm)),

             save - SHtml.ajaxButton(
               Save,
               {() =
                 Log.info(Got a 'save' AJAX call)
                saveClaimStatus(EDITED)
                S.notice(Saved.)
                redirect(/workflow/claims)
              }, (type, submit),(class, ui-state-default ),
  (title, Save, only save the html, does not mark the claim ready for
  publishging.), (id, fixed)),
             save1 - SHtml.ajaxButton(

               Fixed,
                { () = {
                  println(Fixed scala/lift.);
                  saveClaimStatus(FIXED);
                  JsRaw($.saveFunc();).cmd);
                  }
                }, (class, ui-state-default ), (title, Save and
  marks the claim ready for publishing.), (id, fixed)),
              save2 - SHtml.ajaxButton(
                  yes, () = {JsRaw($.saveFunc();).cmd })))

      }

  I'm already importing both of those so that isn't the problem.  If I
  put a % (onclick - saveT()) on the button, it saves the way I
  want it to, but it does not do any of the println or saveClaimStatus
  calls.  I just want it to do both.

  On Oct 19, 3:43 pm, Marius marius.dan...@gmail.com wrote:

   I think with an

   import net.liftweb.http.js._
   import JsCmds._

   the compile problem should go away as there is an implicit defined
   there. But this is not important.

   Can you send a minimalistic code example that reflects the
   problem? ... including the template and Scala code.

   Br's,
   

[Lift] Re: A Critique On Lift

2009-10-22 Thread Timothy Perrett

Right, no one likes mutable anything :-)

I kinda wondered why you haven't pushed forward any more with the  
current record implementation... can one assume that is why - because  
it didn't feel right?

Some of this stuff is going to be fundamental to how we move forward -  
id love to perhaps discuss something that would be better than what we  
have already. Even if its just pie in the sky talk...

Cheers, Tim

On 22 Oct 2009, at 17:22, David Pollak wrote:

 I don't like mutable fields.  I don't like manual saving.  Dunno...  
 it's hard to articulate... it just feels wrong in my tummy.  Also, I  
 want to be clear that I think Marius did a great job of cleaning up  
 some of the problems with Mapper when he did Record... my comments  
 are not a negative to him... there's just something unsatisfying  
 about the whole approach.

 Bet that was less than helpful.


--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread Jim Barrows
On Thu, Oct 22, 2009 at 9:22 AM, David Pollak feeder.of.the.be...@gmail.com
 wrote:



 On Thu, Oct 22, 2009 at 9:18 AM, Timothy Perrett 
 timo...@getintheloop.euwrote:

 David,

 I think your response was well measured and appropriate. The analogy of
 linguistics is a good one :-)

 Without wanting to diverge this thread, can I ask why it is your unhappy
 with Record? Its been fairly fun to use so far and appears to work well.


 I don't like mutable fields.  I don't like manual saving.  Dunno... it's
 hard to articulate... it just feels wrong in my tummy.  Also, I want to be
 clear that I think Marius did a great job of cleaning up some of the
 problems with Mapper when he did Record... my comments are not a negative to
 him... there's just something unsatisfying about the whole approach.

 Bet that was less than helpful.


I've worked with an OODBMs systems before, and of course ORM.  OODBMs takes
care of the manual saving, and could probably take care of the mutable
fields too.
The problem with OODBMs is that every object has strings attached to it to
make the persistence mechanism work.  Even the systems that don't require
you to inherit a special class have these strings.  The problem is that in
a web based framework, the tags don't have this string.  So you deliver an
unattached field to the browser, then have to reattach it later.  This is
actually uglier then it sounds (or was when I was doing it).  It's the
de-tached vs attached issues that make things entertaining.
However, AJAX/Comet and the other dynamic stuff wasn't around in 2001, and
so we may be able to solve some of those issues.  Whether we can do that and
persist to a RDMS is the real question, and I don't think that will ever be
anything but ugly.  I hope I'm proven wrong.
I think Hibernate and JPA are steps in the right direction.  JPA being a
half-step back from Hibernate.  I think if you could convert the XML to a
real DSL, it would be another step.  Annotations are a step there.  Another
step would be to create an object sans-setters and getters of any kind.
Just magically deal with the internal object state.




 Cheers, Tim

 On 22 Oct 2009, at 17:04, David Pollak wrote:

 I've drafted a couple of different versions of a response to this message
 and they all seem somewhat mean and/or condescending... that is not at all
 my intent... here's another draft and please read it as acknowledging the
 challenges you are articulating, but suggesting a different perspective on
 the issue.
 Lisp/Scheme/Clojure is syntactically the simplest language around.  Yet,
 when I look at Clojure code, it to a great degree seems complex to me, even
 though I know it's not.  I believe this is because the patterns are
 different than those I've rehearsed through my journey of asm, Basic, C,
 ObjC, C++, Java, Ruby, and Scala.  Rehearsing a different paradigm is part
 of making that paradigm part of you.

 When I studied French in grade school and high school, I was flummoxed and
 quite angered by gendered nouns.  As a native English speaker, a table is an
 it, not a she (or he.)  But fluent French speakers make gendered nouns a
 normal part of the language, and once skilled can use these subtleties with
 great skill.

 My 2 year learning curve for Scala can be summed up in the first 4 (or
 maybe 5) chapters of Beginning Scala.  I sought to present my painful
 learning curve in  150 pages that could be reasonably consumed by a Java or
 Ruby or Python coder in a week or two.  Yeah, it still takes a fair amount
 of practice, rehearsal, to be proficient, but if someone had led me down the
 path that I led my readers down, I think my pain-curve would have been 3-4
 months, not two years.

 Put a different way, the Programming in Scala folks passed a couple of
 drafts of the first chapters of their book by me early on.  I think PinS is
 a tredmendously awesome work, but I objected strongly to the show
 imperative first and gently migrate to functional approach they took.  I
 thought it did a significant disservice to their readers.  I took the
 opposite approach in BegSca... the second substantive example covers a broad
 spectrum of functional programming.

 So, getting to some of the substance of your post, as Tim pointed out, the
 _ is a running joke in Scala-land.  Yep, it's way overloaded.  Every time
 (and this happened at both Scala Lift Offs) Martin tries to justify the
 _'s use, people roll their eyes.

 On the other hand, the example that you gave is one of my proudest moments
 in Lift.  Specifically, I think Mapper is a steaming pile of something.  I
 am really dissatisfied with it (although we followed the same paradigm with
 Record and I'm unhappy with that as well... mostly from the mutability
 standpoint).  On the other hand, the graceful way that Mapper deals with
 validators (they are functions and they are declared as a List that can be
 dynamically generated) is something that I look at and remember it being the
 first time I really felt 

[Lift] Security Explained

2009-10-22 Thread aw

My company is looking for an explanation of how Lift is secure.

I recall reading a comment saying that Lift deals well with most of
the Top 10 OWASP vulnerabilities (http://www.owasp.org/index.php/
Top_10_2007), but how?  Most, not all?  Are there strategies that are
recommended to deal with the weaknesses?

I am very interested in a Wiki post that explains how Lift addresses
the top 10 vulnerabilities.  (No pressure, but I needed this
yesterday.)  Please point me to any existing resource/documentation
that explains this.

Very often, I see points that mention how secure Lift is, and I
certainly appreciate the fact that Lift promotes security as a core
initiative.  I can also see how secure it is compared to other
strategies (yeah, you heard me ColdFusion!).  Keep up the good work.


Does anybody have experience submitting Lift Apps to third party
security assessment or vulnerability analysis?  Any tips from that
experience?

--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread Raoul Duke

hi,

i take issue with the following:

 misunderstood. They are NOT controllers .. they are simple
 constructs to allow dynamic markup to be injected in the template. Of
 course one can abuse anything in any framework but this is besides the
 point.

my personal take is that if you are a responsible, caring, provider
then you will realize that anything can be abused, and you will do
your best to (a) reduce the chances for abuse and (b) give clear
explanations (documentation) for the raison d'etre, and for the
nuances, and for the do-not-do's.

sincerely.

--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread Dano

I did a quick check in the lift sources and could not find example or
test code for the new LiftActors.  Perhaps additions to these areas
would help those that are trying to convert their Actor code.

Thanks in advance for any help for those still struggling to make the
conversion.


Dan

On Oct 22, 10:00 am, Dano olearydani...@gmail.com wrote:
 It would be good to have an example like George's verified as it is
 not clear how to convert our Actor code.

 Dan

 On Oct 22, 4:48 am, george geo...@mattandgeorge.com wrote:



  ok so..

  object LocalSmtp extends Actor

  should become

  object LocalSmtp extends GenericActor[LocalSmtp]

  ?
--~--~-~--~~~---~--~~
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: Security Explained

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 10:49 AM, aw anth...@whitford.com wrote:


 My company is looking for an explanation of how Lift is secure.

 I recall reading a comment saying that Lift deals well with most of
 the Top 10 OWASP vulnerabilities (http://www.owasp.org/index.php/
 Top_10_2007 http://www.owasp.org/index.php/%0ATop_10_2007), but how?
  Most, not all?  Are there strategies that are
 recommended to deal with the weaknesses?


Quickly:

   1. Lift is resistant to XSS attacks.  By default pages are composed in
   XML rather than Strings.  It takes the developer extra work to insert XSS
   strings into output rather than having to make sure each String is properly
   escaped before being cat'ed to the output.
   2. Lift is resistant to SQL Injection attacks because mapper and JPA do
   not compose Strings into SQL statements, but rather bind well typed
   parameters into prepared statements.  So, if you go the normal path, you get
   SQL injection resistance.  If you want to manually craft a String to send as
   a query, in mapper you have to sign the string with the time, date and a
   certification that you've reviewed the String for SQL Injection problems.
   3. Lift never shells out.  You can't cause a file to be executed from a
   Lift app unless your app manually uses Java's Runtime.execute() call.
   4. By default, Lift creates opaque GUIDs to refer to components on the
   server side (whether that's a function to execute when a form field is
   submitted, what to do on an Ajax call, etc.)  By default, it's easier to use
   this callback mechanism than advertise a primary key or other sensitive
   piece of information.  Lift also has the KeyObfuscator which will create a
   session-specific mapping of primary keys to opaque ids.  Using
   KeyObfuscator, you can send JSON objects to the client with stable primary
   keys that are obfuscated and not usable outside the current session.
   5. By default Lift's form fields contain GUIDs that are cryptographically
   impossible to predict.  It's not possible to do CSRF because one does not
   know the name of form fields (they are not stable)
   6. Lift has different production vs. development mode error messages.
   There's little information that leaks about underlying configurations, even
   exceptions, in production mode.
   7. Lift uses the container's session management (usually JSESSIONID) for
   session management.  As far as I know, Jetty, Tomcat, Glassfish are secure
   in terms of the way they deal with sessions.  Of course, anything that's not
   over SSL is vulnerable to a cookie stealing attack.
   8. Crypto key storage is a container-level issue.  See #7
   9. See #7
   10. Lift's sitemap is the best and most secure integration of UI and
   page-level access.  You can look at the sitemap to determine the access
   control rules for a given page (it's declarative) and it's enforced long
   before your page gets accessed.

Hope this helps.



 I am very interested in a Wiki post that explains how Lift addresses
 the top 10 vulnerabilities.  (No pressure, but I needed this
 yesterday.)  Please point me to any existing resource/documentation
 that explains this.

 Very often, I see points that mention how secure Lift is, and I
 certainly appreciate the fact that Lift promotes security as a core
 initiative.  I can also see how secure it is compared to other
 strategies (yeah, you heard me ColdFusion!).  Keep up the good work.


 Does anybody have experience submitting Lift Apps to third party
 security assessment or vulnerability analysis?  Any tips from that
 experience?

 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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] SLF4J Logging for my classes

2009-10-22 Thread aw

I am using SLF4J logging, but I am not sure if I am doing it the
right way...

I have pointed Lift to use SLF4J, and I call the enable routine and
have updated dependencies.  All of that seems fine.

My question is around, how do my classes best use it...  For example,
I am generally doing something like:

import org.slf4j.{Logger, LoggerFactory}
class Foo {
private val LOGGER = LoggerFactory.getLogger(getClass)
...
}

Is this what one would expect?  Or is there a Lift Way that
obsoletes the above?

--~--~-~--~~~---~--~~
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] **Important** Migration guide Scala Actors - Lift Actors

2009-10-22 Thread David Pollak
Folks,

I wrote a quick blog piece about migrating from Scala Actors to Lift Actors
at
http://blog.lostlake.org/index.php?/archives/96-Migrating-from-Scala-Actors-to-Lift-Actors.html

I hope this addresses questions that folks on the list have about the
affirmative steps they need to take to make the migration.

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
Surf the harmonics

--~--~-~--~~~---~--~~
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: Weird request/transaction semantics

2009-10-22 Thread Jeppe Nejsum Madsen

On Thu, Oct 22, 2009 at 6:12 PM, David Pollak
feeder.of.the.be...@gmail.com wrote:
 There are a couple of things happening.
 First, there are at least 2 distinct times when we initialize the S context
 during a request handling cycle:

 During the rewrite phase (if there's a session cookie)
 During the substantive processing phase
 If there's a cometactor on the page, S will be initialized twice per comet
 actor message processing (once during the testing of the message for ability
 to process and once during the message processing itself)

One day, I'll have to dig into the request processing cycle :-)

But this does seem to be a potential problem lurking: If I need the
transaction to span the rewriting  processing phase this doesn't seem
possible atm (I haven't used cometactor yet).

I initially thought there were errors with how db connections are
acquired (I could get the same connection on two different requests),
but this turned out (I think) to be problems with the connection
manager: http://github.com/dpp/liftweb/issues#issue/124


 On Thu, Oct 22, 2009 at 8:54 AM, Jeppe Nejsum Madsen je...@ingolfs.dk
 wrote:

 Hi,

 I posted this in another thread, but it may have been lost in the noise
 (or no one cared :-)

 Anyway, I have S.addAround(DB.buildLoanWrapper) in boot, which I assumed
 would wrap each request with a transaction and thus use the same
 connection for the duration of the request?

 I've added some logging around newConnection/releaseConnection. I was a
 little surprised to see that newConnection is called three times for
 each request?

 Is this intentional?

 I can see that a connection is also being made even for static files
 (such as css). This is not really a problem, but it would be nice to defer
 acquiring a connection until needed(since I now verify the
 connection by doing an actual statement on the db server :-)

 Lemme see what I can do about making it lazy... please open a ticket and
 I'll try to get to it today.

Done. http://github.com/dpp/liftweb/issues/#issue/129

/Jeppe

--~--~-~--~~~---~--~~
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: **Important** Migration guide Scala Actors - Lift Actors

2009-10-22 Thread TylerWeir

Stickied for now, until we think it's no longer an issue.

On Oct 22, 2:57 pm, David Pollak feeder.of.the.be...@gmail.com
wrote:
 Folks,

 I wrote a quick blog piece about migrating from Scala Actors to Lift Actors
 athttp://blog.lostlake.org/index.php?/archives/96-Migrating-from-Scala-...

 I hope this addresses questions that folks on the list have about the
 affirmative steps they need to take to make the migration.

 Thanks,

 David

 --
 Lift, the simply functional web frameworkhttp://liftweb.net
 Beginning Scalahttp://www.apress.com/book/view/1430219890
 Follow me:http://twitter.com/dpp
 Surf the harmonics
--~--~-~--~~~---~--~~
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: Weird request/transaction semantics

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 12:06 PM, Jeppe Nejsum Madsen je...@ingolfs.dkwrote:


 On Thu, Oct 22, 2009 at 6:12 PM, David Pollak
 feeder.of.the.be...@gmail.com wrote:
  There are a couple of things happening.
  First, there are at least 2 distinct times when we initialize the S
 context
  during a request handling cycle:
 
  During the rewrite phase (if there's a session cookie)
  During the substantive processing phase
  If there's a cometactor on the page, S will be initialized twice per
 comet
  actor message processing (once during the testing of the message for
 ability
  to process and once during the message processing itself)

 One day, I'll have to dig into the request processing cycle :-)

 But this does seem to be a potential problem lurking: If I need the
 transaction to span the rewriting  processing phase this doesn't seem
 possible atm



That's correct.  It would be terrifically difficult to do this.


 (I haven't used cometactor yet).


This is define behavior.  The CometActor is never part of the HTTP
request/response cycle.



 I initially thought there were errors with how db connections are
 acquired (I could get the same connection on two different requests),
 but this turned out (I think) to be problems with the connection
 manager: http://github.com/dpp/liftweb/issues#issue/124


  On Thu, Oct 22, 2009 at 8:54 AM, Jeppe Nejsum Madsen je...@ingolfs.dk
  wrote:
 
  Hi,
 
  I posted this in another thread, but it may have been lost in the noise
  (or no one cared :-)
 
  Anyway, I have S.addAround(DB.buildLoanWrapper) in boot, which I assumed
  would wrap each request with a transaction and thus use the same
  connection for the duration of the request?
 
  I've added some logging around newConnection/releaseConnection. I was a
  little surprised to see that newConnection is called three times for
  each request?
 
  Is this intentional?
 
  I can see that a connection is also being made even for static files
  (such as css). This is not really a problem, but it would be nice to
 defer
  acquiring a connection until needed(since I now verify the
  connection by doing an actual statement on the db server :-)
 
  Lemme see what I can do about making it lazy... please open a ticket and
  I'll try to get to it today.

 Done. http://github.com/dpp/liftweb/issues/#issue/129

 /Jeppe

 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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: SLF4J Logging for my classes

2009-10-22 Thread Jeppe Nejsum Madsen

aw anth...@whitford.com writes:

 I am using SLF4J logging, but I am not sure if I am doing it the
 right way...

 I have pointed Lift to use SLF4J, and I call the enable routine and
 have updated dependencies.  All of that seems fine.

 My question is around, how do my classes best use it...  For example,
 I am generally doing something like:

 import org.slf4j.{Logger, LoggerFactory}
 class Foo {
 private val LOGGER = LoggerFactory.getLogger(getClass)
 ...
 }

 Is this what one would expect?  Or is there a Lift Way that
 obsoletes the above?

I suggest using Lift's Logger (it can be configured to use slf4j,
search the archives for details). It has the nice feature that the log
message is lazily evaluated, so you don't have to litter your code with

if(log.isDebugEnabled) log.debug(...)

Also, I create a trait:

trait Logging {
  val log = LogBoot.loggerByName(this.getClass.getName)
}

This makes it easy to have logging in a class:

class myclass extends MyParent with Logging {
  log.debug(logggin stuff)
}

/Jeppe

--~--~-~--~~~---~--~~
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: How do I pass information between a Comet Actor and a StatefulSnippet ?

2009-10-22 Thread David Pollak
On Wed, Oct 21, 2009 at 10:59 PM, Jonathan Ferguson j...@spiralarm.comwrote:



 2009/10/22 David Pollak feeder.of.the.be...@gmail.com



 On Wed, Oct 21, 2009 at 8:46 PM, Jonathan Ferguson j...@spiralarm.comwrote:


 I have a StatefulSnippet  that uses a CometActor to keep users
 informed when performing a lengthy task, much like the example on the
 demo site ( http://demo.liftweb.net/longtime).

 The only difference being I pass the CometActor an identifier  so it
 knows which job to inform the user about.

 When the task is over I need to display a form to the user, which I
 would assume would be rendered by the snippet.

 How does the actor tell the snippet the task is complete ?


 The Actor has to know about the snippet... you could send the Actor a
 message with a reference to the snippet and then call a method on the
 snippet when the Actor is done.  Does that do it for you?



 I don't see how I can I do that.  Currently the comet actor is setup in a
 snippet, see below, how  do get a reference to the actor to send it a
 message ?


In the snippet that yields this code:

for {
  session - S.session
} session.setupComet(WhatDog, Full(id), HeyDudeIMSoStateful(this)) // send
the HeyDudeIMSoStateful message on setup... this can be anything



lift:comet type=WatchDog name={id} 
 span id=statustwd:statusWatch dog  status/twd:status/span
/lift:comet

  The id being passed via the name parameter is a reference the job to
 monitor. I mention this only as I'm not sure if it's bad form or not.







 I assuming it is trivial and I've thought or coded myself into a
 corner.

 Thanks in advance.

 Jono





 --
 Lift, the simply functional web framework http://liftweb.net
 Beginning Scala http://www.apress.com/book/view/1430219890
 Follow me: http://twitter.com/dpp
 Surf the harmonics





 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread Dano

Code for our app now compiles.  Needed to replace Actor with
LiftActor.  Also, needed to define the messageHandler partial
function.

So, George, I think the answer to your question is:

object LocalSmtp extends Actor

becomes

object LocalSmtp extends LiftActor


Dan

On Oct 22, 11:19 am, Dano olearydani...@gmail.com wrote:
 I did a quick check in the lift sources and could not find example or
 test code for the new LiftActors.  Perhaps additions to these areas
 would help those that are trying to convert their Actor code.

 Thanks in advance for any help for those still struggling to make the
 conversion.

 Dan

 On Oct 22, 10:00 am, Dano olearydani...@gmail.com wrote:



  It would be good to have an example like George's verified as it is
  not clear how to convert our Actor code.

  Dan

  On Oct 22, 4:48 am, george geo...@mattandgeorge.com wrote:

   ok so..

   object LocalSmtp extends Actor

   should become

   object LocalSmtp extends GenericActor[LocalSmtp]

   ?
--~--~-~--~~~---~--~~
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: **Important** Migration guide Scala Actors - Lift Actors

2009-10-22 Thread Dano

Thanks to David for the migration guide.  It is very useful.

Victor Klang had raised the issue of rescheduling the actor in the
message handling function (see below).  I did not see a reference to
this in the migration guide.  Is it still necessary?

Thanks in advance.


Dan

Text from Victor Klang on breaking change thread:

DPP (and I) recommend just doing schedule and then re-schedule after
message
recieved.
schedule(actor,MyMsg(),3 seconds)
in the actor
{
   case MyMsg() = {
doMyStuff
schedule(this,MyMsg(),3 seconds)
}
}


On Oct 22, 12:14 pm, TylerWeir tyler.w...@gmail.com wrote:
 Stickied for now, until we think it's no longer an issue.

 On Oct 22, 2:57 pm, David Pollak feeder.of.the.be...@gmail.com
 wrote:



  Folks,

  I wrote a quick blog piece about migrating from Scala Actors to Lift Actors
  athttp://blog.lostlake.org/index.php?/archives/96-Migrating-from-Scala-...

  I hope this addresses questions that folks on the list have about the
  affirmative steps they need to take to make the migration.

  Thanks,

  David

  --
  Lift, the simply functional web frameworkhttp://liftweb.net
  Beginning Scalahttp://www.apress.com/book/view/1430219890
  Follow me:http://twitter.com/dpp
  Surf the harmonics
--~--~-~--~~~---~--~~
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: javascript with an ajaxbutton

2009-10-22 Thread Marius

I'm sorry that I haven't had the time to try it out myself yet.

If you want the scala function to be called via an Ajax request and
after that the Scala function returns the Javascript that calls your
JS function,  your code looks correct to me. I used this pattern quite
a bit with no problems. So the flow here is:

1. When pressing the button the Ajax request is sent to server
2. On server side Lift executes your scala function which returns a
JsCmd
3. Lift returns your JsCmd as a JavaScript code that will be executed
by the browser.

.. so the order here is Scala function and then JavaScipt function,

Now if you want your JavaScript function to be called first and then
the Scala function then you have this method in SHtml:

  /**
   * Create an Ajax button. When it's pressed, the function is
executed
   *
   * @param text -- the name/text of the button
   * @param jsFunc -- the user function that will be executed. This
function will receive as last parameter
   *  the function that will actually do the ajax
call. Hence the user function can decide when
   *  to make the ajax request.
   * @param func -- the function to execute when the button is
pushed.  Return Noop if nothing changes on the browser.
   *
   * @return a button to put on your pagejsFunc.params ++ List(AnonFunc
(makeAjaxCall(Str(name+=true
   */
def ajaxButton(text: NodeSeq, jsFunc: Call, func: () = JsCmd, attrs:
(String, String)*)

jsFunc is any JavaScript function that may receive any number of
parameters. Lets say it is defined like:

function f(x, y, z) {

}

When the ajax button is pressed, your function f is called as f(x, y,
z, fnc) ... so at the call time your function received another
parameter ... a fnc. This is simply a function that you may or may not
decide to call in your f function. This fnc encapsulates the actual
ajax call.

The Call class is defined as:

case class Call(function: String, params: JsExp*) extends JsExp 
inside JE object

As an example:

ajaxButton(text, Call(myFunc, 10, 20, 30), () = /*return
the JavaScript respose as a JsCmd*/)


somewhere in your javascript code you have

function myFunc(x, y, z, ajaxCall) {
  // do some computation

 ajaxFunc();
}

Note that I specified the ajaxCall in the JS function but not when
specifying the Call instance. That's because Lift generates for you
the actual call to myFunc when pressing the ajaxButton

This will call your javascript function and then the ajax call, but
you also have the control to not make the ajax call at all depending
on how you implement you JS function.

Hope this helps.

Br's,
Marius

On Oct 22, 8:19 pm, caw1461 caw1...@gmail.com wrote:
 I don't think i can pull a small example from here because I'm
 combining my lack of knowledge in scala, lift, html, jquery,
 tinyMCE ... you get the idea.

 The point is that I am trying to create a button that calls a scala
 function and a javascript function.  I am currently trying to use an
 shtml.ajaxButton, though I don't know if that is the right tool.

 Button:
            save1 - SHtml.ajaxButton(
              Fixed,
               { () = {
                 println(Fixed scala/lift.);
                 saveClaimStatus(FIXED);   //scala function.  works
 as intended
                 JsRaw($.saveT();).cmd);
                 }
               })

 javascript function:
        function saveT () {
             document.form[0].submit();
         };

 In the 42 different ways I have tried to implement this, I can get one
 or the other to function, but i cannot get both to work.

 How do I do both functions with one button?

 Thanks.  And I'm sorry if I'm not explaining this correctly, or that
 it's not making much sense.

 -Chris

 On Oct 20, 2:31 pm, Marius marius.dan...@gmail.com wrote:

  I was hoping to see something minimalistic and isolated so I can
  quickly try it out.

  I'm not sure what you do with redirect(/workflow/claims)  but from
  Ajax function you should probably use JsCmd.RedirectTo ..

  Hopefully I'll have some time this weekend to play with tinyMCE

  Br's,
  Marius

  On Oct 19, 10:57 pm, caw1461 caw1...@gmail.com wrote:

   edit.html:

       script type=text/javascript

       tinyMCE.init({
           // General options
           mode : textareas,
           theme : advanced,
           plugins :
   spellchecker,pagebreak,save,advhr,advimage,advlink,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,noneditable,visualchars,nonbreaking,xhtmlxtras,template,
           theme_advanced_buttons1 :
   styleselect,formatselect,fontselect,fontsizeselect,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,
   hr, bullist,numlist, preview, code,
           theme_advanced_buttons2 : ,
           theme_advanced_buttons3 : ,
           theme_advanced_buttons4 : ,

           submit_patch : false,

           theme_advanced_resizing : true
       });

  

[Lift] Re: **Important** Migration guide Scala Actors - Lift Actors

2009-10-22 Thread Marius

Just Simple  Beautiful ! ... Nice work Dave and Jonas.

Br's,
Marius

On Oct 22, 9:57 pm, David Pollak feeder.of.the.be...@gmail.com
wrote:
 Folks,

 I wrote a quick blog piece about migrating from Scala Actors to Lift Actors
 athttp://blog.lostlake.org/index.php?/archives/96-Migrating-from-Scala-...

 I hope this addresses questions that folks on the list have about the
 affirmative steps they need to take to make the migration.

 Thanks,

 David

 --
 Lift, the simply functional web frameworkhttp://liftweb.net
 Beginning Scalahttp://www.apress.com/book/view/1430219890
 Follow me:http://twitter.com/dpp
 Surf the harmonics
--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread jlist9

Hi David,

Appreciate your reply. It's definitely helpful in clearing some of my thoughts,
as well as in my process of learning Scala down the road. I also think your
book is very well paced and organization of the content is well thought out.
Great job!

I'd like to explain a little bit where my frustration is coming from
(and I don't
want to waste people's time reading further for those who aren't interested.)

I come from Java and Python background. When learning these two languages
I didn't have a problem with the syntax. I think Java's syntax is well defined
although verbose, and Python's is clear and concise. There is a small number
of operators and data types and it's pretty clear which is for what purpose.
Zen of Python says it well:

There should be one-- and preferably only one --obvious way to do it.

and I think this reflects well in the language design of Python.

It's also generally discouraged to use too much black magic when coding
in Python so that the code is easier to understand and maintain, although
Python, being a powerful dynamic language, is very capable of black magics.

These two things helped a lot in my learning of Python. It's a much smaller
set of syntax to learn and it can be learned in a very short time, maybe through
one or two online tutorials. The rest of it is just libraries, which
are very rich
in functionality, but the source code is easy to understand, because of the
small set of clearly defined elements in the language - syntax and
data types, etc..

However, I don't feel the same about Scala. In Scala, I often see multiple ways
of doing the same thing, or very similar things, and this is confusing.

For example, there are multiple ways of running a program. You can have a
script, or an application. To run an application, you can write an object and
implement the main method, or you can extend Application class and write
the code right in the body of the class. It took me a while to figure out how
it works. What's wrong with having only one of them? Python only start as a
script and Java only need a main method but either way works.

Another example is that in some scenarios ( ) and { } are
interchangable in Scala
code, although I haven't figured out in what occasions they are, and
in what occasions
they are not. This puzzles me more because ( ) and { } are the basic elements
in a language and the language allows such flexible usage of them. Although I
think there should be a good reason for this but it still struck me as odd.

In contrast to Python's short list of operators, because operators are
actually functions
in Scala, it's easy for Scala to have a new operator, or have
functions that works
like operators. This is a powerful feature and it is good news for
people who want to
create DSLs. However I think a plethora of operators make code much harder to
read before people can make it a habit to convert operators as
functions in their mind.

To summarize, the more I learn Scala the more I realize how powerful
it is. Meanwhile,
I think Scala imposes this mind tweaking that people have to go
through in learning
this language, the difficulty that I didn't feel when I learned
Python, or Java, C or C++.
I like many of the features provided by Scala but I hope some of the
things can be
simplified/demystified to make it easier to pick up and use.

jlist9

On Thu, Oct 22, 2009 at 9:04 AM, David Pollak
feeder.of.the.be...@gmail.com wrote:
 I've drafted a couple of different versions of a response to this message
 and they all seem somewhat mean and/or condescending... that is not at all
 my intent... here's another draft and please read it as acknowledging the
 challenges you are articulating, but suggesting a different perspective on
 the issue.
 Lisp/Scheme/Clojure is syntactically the simplest language around.  Yet,
 when I look at Clojure code, it to a great degree seems complex to me, even
 though I know it's not.  I believe this is because the patterns are
 different than those I've rehearsed through my journey of asm, Basic, C,
 ObjC, C++, Java, Ruby, and Scala.  Rehearsing a different paradigm is part
 of making that paradigm part of you.
 When I studied French in grade school and high school, I was flummoxed and
 quite angered by gendered nouns.  As a native English speaker, a table is an
 it, not a she (or he.)  But fluent French speakers make gendered nouns a
 normal part of the language, and once skilled can use these subtleties with
 great skill.
 My 2 year learning curve for Scala can be summed up in the first 4 (or maybe
 5) chapters of Beginning Scala.  I sought to present my painful learning
 curve in  150 pages that could be reasonably consumed by a Java or Ruby or
 Python coder in a week or two.  Yeah, it still takes a fair amount of
 practice, rehearsal, to be proficient, but if someone had led me down the
 path that I led my readers down, I think my pain-curve would have been 3-4
 months, not two years.
 Put a different way, the Programming in Scala 

[Lift] Re: A Critique On Lift

2009-10-22 Thread Jim Barrows
On Thu, Oct 22, 2009 at 1:29 PM, jlist9 jli...@gmail.com wrote:


 Hi David,

 Appreciate your reply. It's definitely helpful in clearing some of my
 thoughts,
 as well as in my process of learning Scala down the road. I also think your
 book is very well paced and organization of the content is well thought
 out.
 Great job!

 I'd like to explain a little bit where my frustration is coming from
 (and I don't
 want to waste people's time reading further for those who aren't
 interested.)

 I come from Java and Python background. When learning these two languages
 I didn't have a problem with the syntax. I think Java's syntax is well
 defined
 although verbose, and Python's is clear and concise. There is a small
 number
 of operators and data types and it's pretty clear which is for what
 purpose.
 Zen of Python says it well:

 There should be one-- and preferably only one --obvious way to do it.


Except that sometimes, there isn't.  In fact for any non-trivial case, there
can be multiple ways to do anything.
Sorting is an excellent example.  There isn't just one way to sort.  Which
way you do it depends on the data, and your
expectations.


 and I think this reflects well in the language design of Python.

 It's also generally discouraged to use too much black magic when coding
 in Python so that the code is easier to understand and maintain, although
 Python, being a powerful dynamic language, is very capable of black magics.

 These two things helped a lot in my learning of Python. It's a much smaller
 set of syntax to learn and it can be learned in a very short time, maybe
 through
 one or two online tutorials. The rest of it is just libraries, which
 are very rich
 in functionality, but the source code is easy to understand, because of the
 small set of clearly defined elements in the language - syntax and
 data types, etc..

 However, I don't feel the same about Scala. In Scala, I often see multiple
 ways
 of doing the same thing, or very similar things, and this is confusing.


Tell me about it If you find Scala confusing, never go look at Perl or
Lisp

Perl's motto is There is more then one way to do it.



 For example, there are multiple ways of running a program. You can have a
 script, or an application. To run an application, you can write an object
 and
 implement the main method, or you can extend Application class and write
 the code right in the body of the class. It took me a while to figure out
 how
 it works. What's wrong with having only one of them? Python only start as a
 script and Java only need a main method but either way works.


Each brings it's own strengths and weaknesses to the table.
And Java only needs a main isn't true in web development there is no
main.  There is no main if you write an eclipse plugin, and there is no main
if you use a Swing based framework.  (note if it's just swing, you do.)



 Another example is that in some scenarios ( ) and { } are
 interchangable in Scala
 code, although I haven't figured out in what occasions they are, and
 in what occasions

they are not. This puzzles me more because ( ) and { } are the basic
 elements
 in a language and the language allows such flexible usage of them. Although
 I
 think there should be a good reason for this but it still struck me as odd.


Wish I could articulate this better.  Using the for comprehension as an
example... it's the way it gets compiled into code.  There is no for loop in
Scala.  A for comprehension gets boiled down to method calls.  The curly
braces get converted into an anonymous function.
See
http://creativekarma.com/ee.php/weblog/comments/the_scala_for_comprehension_from_a_java_perspective/



 In contrast to Python's short list of operators, because operators are
 actually functions
 in Scala, it's easy for Scala to have a new operator, or have
 functions that works
 like operators. This is a powerful feature and it is good news for
 people who want to
 create DSLs. However I think a plethora of operators make code much harder
 to
 read before people can make it a habit to convert operators as
 functions in their mind.


And too few operators leads to a whole lot of words, which leads to a whole
lot of typing, or a whole lot of ctrl-space completions.  It's a toss up.
The wordy way is definitely noob friendly, while the operator way is more
expert friendly.
Which do you design a language for?  Let me know when that particular
religious war dies down please.
As someone who slings code for a living the less I type the happier I
am. YMMV



 To summarize, the more I learn Scala the more I realize how powerful
 it is. Meanwhile,
 I think Scala imposes this mind tweaking that people have to go
 through in learning
 this language, the difficulty that I didn't feel when I learned
 Python, or Java, C or C++.
 I like many of the features provided by Scala but I hope some of the
 things can be
 simplified/demystified to make it easier to pick up and use.


Interestingly, I heard 

[Lift] Re: A Critique On Lift

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 1:29 PM, jlist9 jli...@gmail.com wrote:


 Hi David,

 Appreciate your reply. It's definitely helpful in clearing some of my
 thoughts,
 as well as in my process of learning Scala down the road. I also think your
 book is very well paced and organization of the content is well thought
 out.
 Great job!


Thanks!



 I'd like to explain a little bit where my frustration is coming from
 (and I don't
 want to waste people's time reading further for those who aren't
 interested.)

 I come from Java and Python background. When learning these two languages
 I didn't have a problem with the syntax. I think Java's syntax is well
 defined
 although verbose, and Python's is clear and concise. There is a small
 number
 of operators and data types and it's pretty clear which is for what
 purpose.
 Zen of Python says it well:

 There should be one-- and preferably only one --obvious way to do it.



Yeah... that's a big problem for Scala.  If Scala were CAL (
http://groups.google.com/group/cal_language) there'd be fewer ways to do
stuff.  But Scala straddles Function and OO, Java libraries and Scala
libraries, etc.

Personally (in my library consumer mode), I use very little of Scala.  I
use List and Map and some XML stuff.  I use case classes and pattern
matching.  I pass functions as parameters just like String and Long.  I use
Tuples.  I think all that stuff is usable.  I think it's consumable.  Try
using less of the language and libraries and see how it suits you.



 and I think this reflects well in the language design of Python.

 It's also generally discouraged to use too much black magic when coding
 in Python so that the code is easier to understand and maintain, although
 Python, being a powerful dynamic language, is very capable of black magics.

 These two things helped a lot in my learning of Python. It's a much smaller
 set of syntax to learn and it can be learned in a very short time, maybe
 through
 one or two online tutorials. The rest of it is just libraries, which
 are very rich
 in functionality, but the source code is easy to understand, because of the
 small set of clearly defined elements in the language - syntax and
 data types, etc..

 However, I don't feel the same about Scala. In Scala, I often see multiple
 ways
 of doing the same thing, or very similar things, and this is confusing.

 For example, there are multiple ways of running a program. You can have a
 script, or an application. To run an application, you can write an object
 and
 implement the main method, or you can extend Application class and write
 the code right in the body of the class. It took me a while to figure out
 how
 it works. What's wrong with having only one of them? Python only start as a
 script and Java only need a main method but either way works.

 Another example is that in some scenarios ( ) and { } are
 interchangable in Scala
 code, although I haven't figured out in what occasions they are, and
 in what occasions
 they are not. This puzzles me more because ( ) and { } are the basic
 elements
 in a language and the language allows such flexible usage of them. Although
 I
 think there should be a good reason for this but it still struck me as odd.

 In contrast to Python's short list of operators, because operators are
 actually functions
 in Scala, it's easy for Scala to have a new operator, or have
 functions that works
 like operators. This is a powerful feature and it is good news for
 people who want to
 create DSLs. However I think a plethora of operators make code much harder
 to
 read before people can make it a habit to convert operators as
 functions in their mind.

 To summarize, the more I learn Scala the more I realize how powerful
 it is. Meanwhile,
 I think Scala imposes this mind tweaking that people have to go
 through in learning
 this language, the difficulty that I didn't feel when I learned
 Python, or Java, C or C++.
 I like many of the features provided by Scala but I hope some of the
 things can be
 simplified/demystified to make it easier to pick up and use.

 jlist9

 On Thu, Oct 22, 2009 at 9:04 AM, David Pollak
 feeder.of.the.be...@gmail.com wrote:
  I've drafted a couple of different versions of a response to this message
  and they all seem somewhat mean and/or condescending... that is not at
 all
  my intent... here's another draft and please read it as acknowledging the
  challenges you are articulating, but suggesting a different perspective
 on
  the issue.
  Lisp/Scheme/Clojure is syntactically the simplest language around.  Yet,
  when I look at Clojure code, it to a great degree seems complex to me,
 even
  though I know it's not.  I believe this is because the patterns are
  different than those I've rehearsed through my journey of asm, Basic, C,
  ObjC, C++, Java, Ruby, and Scala.  Rehearsing a different paradigm is
 part
  of making that paradigm part of you.
  When I studied French in grade school and high school, I
 was flummoxed and
  quite 

[Lift] catch a URL

2009-10-22 Thread Chris Lewis

Hi list,

I'm working on an appengine app, and need to store some user 
information. I authenticate the user with their google account, and I 
need to create their local entity only if it's their first time 
logging in.

When a user logs in via google, they are redirected back to your app, to 
a URL of your choosing. My thought was to catch the request as it comes 
back and, if it's their first time logging in, create a User entity. My 
question then is how can I do this without:

a) Using a snippet, called from the return landing page and emitting 
NodeSeq.Empty - hack.

b) Using custom dispatch and then redirecting. That may work, but it's 
an unneeded round trip.

Any thoughts? Thanks!

PS - will share my app engineified code soon.

--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread jlist9

 Perl's motto is There is more then one way to do it.

I remember reading somewhere that part of the the design goal
of Perl 6 was to make the language more sane. That says
it all. For scripting language, I'd stick to Python, whose syntax
feels natural to me, and to stay sane as much as I can. :-)

 Each brings it's own strengths and weaknesses to the table.

True. But the same could be said if you had 10 ways to start a program.
You have to balance the downside and the benefit. I personally think
The confusion of 2 or 3 ways already out-weights the benefit in this
particular case :-)

 And Java only needs a main isn't true in web development there is no
 main.  There is no main if you write an eclipse plugin, and there is no main
 if you use a Swing based framework.  (note if it's just swing, you do.)

In those cases you are not starting a program/process. You are
only loading a library - your code being the library, the framework being
the entry point of the process.

 Wish I could articulate this better.  Using the for comprehension as an
 example... it's the way it gets compiled into code.  There is no for loop in
 Scala.  A for comprehension gets boiled down to method calls.  The curly
 braces get converted into an anonymous function.
 See
 http://creativekarma.com/ee.php/weblog/comments/the_scala_for_comprehension_from_a_java_perspective/

Thanks for the explanation. I'll try to understand it.

 And too few operators leads to a whole lot of words, which leads to a whole
 lot of typing, or a whole lot of ctrl-space completions.  It's a toss up.
 The wordy way is definitely noob friendly, while the operator way is more
 expert friendly.

If you are talking about Java, that's true. Python is very concise, though.
People say if you are not able to do the same thing in 1/10 LoC in Python
as in Java, you are not coding Python right. I think it's exaggerating a little
bit but it's close. This is probably partially due to the dynamic nature of
Python..

 Or, if I may wax metaphorical (and deep into my own opinion)once more... who
 do you think is the better driver, a NASCAR driver or a Prius driver?  Which
 is more expensive to learn to do?   Which is more fun? :)

I guess it depends on the goal of driving. NASCAR  is definitely more fun
but If the goal is to go from point A to B in time, safely and in a environment
friendly way, maybe the Prius driver :-) And I think these are Java developers
that Scala is also trying to appeal to.

--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread Jim Barrows
On Thu, Oct 22, 2009 at 2:27 PM, jlist9 jli...@gmail.com wrote:


  Perl's motto is There is more then one way to do it.

 I remember reading somewhere that part of the the design goal
 of Perl 6 was to make the language more sane. That says
 it all. For scripting language, I'd stick to Python, whose syntax
 feels natural to me, and to stay sane as much as I can. :-)


Eh.  Sanity is overrated :)



  Each brings it's own strengths and weaknesses to the table.

 True. But the same could be said if you had 10 ways to start a program.
 You have to balance the downside and the benefit. I personally think
 The confusion of 2 or 3 ways already out-weights the benefit in this
 particular case :-)


See my points about noob vs experienced programmer.  Also see:
http://scala-blogs.org/2008/07/application-trait-considered-harmful.html

Also, Application is a trait, so any Object can be an application.  See
multiple reasons :)


  And Java only needs a main isn't true in web development there is no
  main.  There is no main if you write an eclipse plugin, and there is no
 main
  if you use a Swing based framework.  (note if it's just swing, you do.)

 In those cases you are not starting a program/process. You are
 only loading a library - your code being the library, the framework being
 the entry point of the process.


Ayup.  The application trait is just an entry point in the process...



  Wish I could articulate this better.  Using the for comprehension as an
  example... it's the way it gets compiled into code.  There is no for loop
 in
  Scala.  A for comprehension gets boiled down to method calls.  The curly
  braces get converted into an anonymous function.
  See
 
 http://creativekarma.com/ee.php/weblog/comments/the_scala_for_comprehension_from_a_java_perspective/

 Thanks for the explanation. I'll try to understand it.


Good luck.  I have it bookmarked so I can re-read it regularly :)  Hopefully
you're smarter then I am... :)



  And too few operators leads to a whole lot of words, which leads to a
 whole
  lot of typing, or a whole lot of ctrl-space completions.  It's a toss up.
  The wordy way is definitely noob friendly, while the operator way is more
  expert friendly.

 If you are talking about Java, that's true. Python is very concise, though.
 People say if you are not able to do the same thing in 1/10 LoC in Python
 as in Java, you are not coding Python right. I think it's exaggerating a
 little
 bit but it's close. This is probably partially due to the dynamic nature of
 Python..


Python's lack of operators vs GREP might have been better :)  GREP is a far
better example of operator conciseness. :)

Java has way too much boiler plate code, and way to many code slingers who
think the JEE Blueprint Patterns are to be followed dogmatically rather then
by need... *SIGH*



  Or, if I may wax metaphorical (and deep into my own opinion)once more...
 who
  do you think is the better driver, a NASCAR driver or a Prius driver?
 Which
  is more expensive to learn to do?   Which is more fun? :)

 I guess it depends on the goal of driving. NASCAR  is definitely more fun
 but If the goal is to go from point A to B in time, safely and in a
 environment
 friendly way, maybe the Prius driver :-) And I think these are Java
 developers
 that Scala is also trying to appeal to.


You answered which is more fun, and analyzed the goals of each.  How about
the which driver is more skilled (ie better)? :)
 We can even add, who has more understanding of what happens to make the car
go? (which of course leads to the question, whose more fuel efficient, the
NASCAR driver who knows the shortest way around a turn, and how to draft? or
the prius driver? ) :)


-- 
James A Barrows

--~--~-~--~~~---~--~~
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: Dynamic radio button

2009-10-22 Thread sunanda

Hi Derek,

I am displaying the contents of a table in ReadOnly mode as follows.
The sample code is given below

 table
   tr
   td bDisplay Name/b/td
   td{coldef.displayname}/td
   /tr
   tr
   tdbRequire Cookies for Link/b /td
   td {coldef.requirecookies}/td
   /tr
button onclick={SHtml.ajaxInvoke(getEditMode _)._2}Edit2/
button
table

onclick of Edit2 button I make it editable by making the
coldef.displayname using ajaxText. But the coldef.requirecookies is a
raidio button field(which has got two options Yes and No)
Hence in editable mode I need to insert two radio buttons (with one
button checked based on the value of coldef.requirecookies) .  I was
able to insert using Shtml.radio
But I need to do ajax call on click of the button to modify the value
of requirecookies field.

Could you please suggest me how to achieve this.
Thanks
Sunanda







On Oct 23, 1:39 am, Derek Chen-Becker dchenbec...@gmail.com wrote:
 I don't quite understand what you're trying to do. Could you give some more
 details? Are you trying to add more radios to an existing radio button set?



 On Wed, Oct 21, 2009 at 8:45 PM, sunanda sunanda.pa...@gmail.com wrote:

  Hi,
  I need to add radio button dynamically with one of the button checked
  and  I need to invoke ajaxCall onclick of a radio button.
  How can I do this.
  Sunanda- Hide quoted text -

 - Show quoted text -
--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread Ross Mellgren

Personally I think that Python is great for small simple things, but  
as soon as you start to scale the lack of statically checked  
guarantees starts to bite you. The larger and larger you get the more  
often and more subtle the bites get. Conversely, with a rigorous  
statically checked language, you can start to use the static checking  
in your favor. And, the more you understand the nuances of the type  
system the more and more you can form it to give you even stronger and  
stronger guarantees.

Anecdotally, Haskell (which is perhaps one of the most advanced  
functional programming languages on the planet, particularly in the  
type system department) has regular reports in the mailing list from  
newbies that usually go from wtf to whenever I get the compiler to  
accept my program, it usually just works in a fairly short time.

The syntax of Scala is an interesting and convoluted beast straddling  
an unusual line between more typical functional programming languages  
(Haskell, O'Caml, etc) and Java, and overall I think it ends up doing  
a fairly good job, though it does have its confusing parts.

The ability to define operators in particular is a very tricky  
subject. I find, along with implicits, that I treat it as a power tool  
that should only be used in cases where it really makes quite alot of  
sense (used extremely frequently, coming from math concepts, etc).  
Luckily, it is fairly easy to find out where operators are coming from  
-- if it looks like an operator, then check to see if it has a :  
(colon), if it does, the thing on the right is where the operator is  
defined, so look in its doc. Otherwise, it's the thing on the left  
that has the operator, so look there.

If neither place has the operator, then unfortunately you've just  
strayed into implicit conversion territory, which is unfortunately  
tricky to track down in many cases. Sometimes in that situation the  
scala REPL will help, because it prints out the types of expressions.

Coming from a background of knowing Java and Haskell (along with  
Python and many other languages, not apropos to this discussion) I  
found the syntax of Scala to initially be inscrutable but I warmed to  
it after a month or two and now I think it's pretty good.

Regarding () and {} BTW, you can replace a single-argument argument  
list with {}, e.g.

def myFunction(a: String): Unit = println(a)

myFunction(foobar)
myFunction { foobar }

The two calls are equivalent. It makes more sense with the latter  
format with multiple argument lists or DSL-like things. I could write  
up an example if you're interested, but it might be somewhat involved  
if you're not familiar with Scala or Lift.

Overall, my suggestion would be to stick with it and ask questions. I  
think it's worth it, and the people here are really helpful.

-Ross

On Oct 22, 2009, at 5:39 PM, jlist9 wrote:


 Just want to add to this. web.py is a Python web development framework
 that I like a lot, for its simplicity. In about 10 lines of code you  
 can have
 a complete, albeit simple, web application. No XML whatsoever.

 http://webpy.org/

 Hope no one is offended by my mentioning a Python web framework on
 Lift list. Just want to say that things can be short and simple as  
 well
 as easy to understand and easy to use.

 Of course the dynamic languages have their known issues, which is
 what drives me to Scala and Lift.

 And too few operators leads to a whole lot of words, which leads to  
 a whole
 lot of typing, or a whole lot of ctrl-space completions.  It's a  
 toss up.
 The wordy way is definitely noob friendly, while the operator way  
 is more
 expert friendly.
 Which do you design a language for?  Let me know when that particular
 religious war dies down please.
 As someone who slings code for a living the less I type the  
 happier I
 am. YMMV

 


--~--~-~--~~~---~--~~
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: One minor exception to the no-RTFM rule

2009-10-22 Thread Randinn

Hehe, Yes, I've noticed quite a few of those, you might want to post
that on the groups main page.

On Oct 23, 3:33 am, David Pollak feeder.of.the.be...@gmail.com
wrote:
 Folks,
 We've got a solid rule in Lift-land which is we don't respond with RTFM.
  Why?  Because we want to encourage people to ask questions.

 There's one exception to that rule that I'll make now.  If your code
 suddenly breaks (we do make breaking changes to Lift from time to time),
 please at least search the project archives for the phrase Breaking
 Changes.  We work hard to make sure the breaking changes are few and far
 between.  We work hard to flag breaking changes long before they happen.
  Yeah, I know not everyone reads every post on this list, but folks with
 production apps should spend a little time here.

 But, before you post Gee my app was compiling yesterday and it's not
 compiling today, please search for recent posts with the words Breaking
 Changes in the title.

 We will flag these.  We promise.

 Thanks,

 David

 --
 Lift, the simply functional web frameworkhttp://liftweb.net
 Beginning Scalahttp://www.apress.com/book/view/1430219890
 Follow me:http://twitter.com/dpp
 Surf the harmonics
--~--~-~--~~~---~--~~
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: How do I pass information between a Comet Actor and a StatefulSnippet ?

2009-10-22 Thread Jonathan Ferguson
2009/10/23 David Pollak feeder.of.the.be...@gmail.com



 On Wed, Oct 21, 2009 at 10:59 PM, Jonathan Ferguson j...@spiralarm.comwrote:



 2009/10/22 David Pollak feeder.of.the.be...@gmail.com



 On Wed, Oct 21, 2009 at 8:46 PM, Jonathan Ferguson 
 j...@spiralarm.comwrote:


 I have a StatefulSnippet  that uses a CometActor to keep users
 informed when performing a lengthy task, much like the example on the
 demo site ( http://demo.liftweb.net/longtime).

 The only difference being I pass the CometActor an identifier  so it
 knows which job to inform the user about.

 When the task is over I need to display a form to the user, which I
 would assume would be rendered by the snippet.

 How does the actor tell the snippet the task is complete ?


 The Actor has to know about the snippet... you could send the Actor a
 message with a reference to the snippet and then call a method on the
 snippet when the Actor is done.  Does that do it for you?



 I don't see how I can I do that.  Currently the comet actor is setup in a
 snippet, see below, how  do get a reference to the actor to send it a
 message ?


 In the snippet that yields this code:

 for {
   session - S.session
 } session.setupComet(WhatDog, Full(id), HeyDudeIMSoStateful(this)) //
 send the HeyDudeIMSoStateful message on setup... this can be anything


  Cool, would the correct place to collect the message be in one of the
priority functions ?
  For instance ?

   override def lowPriority : PartialFunction[Any, Unit] = {

case SnippetMessage(wrappedSnippet) = snippet = wrappedSnippet


Thanks for the help.

Jono









lift:comet type=WatchDog name={id} 
 span id=statustwd:statusWatch dog  status/twd:status/span
/lift:comet

  The id being passed via the name parameter is a reference the job to
 monitor. I mention this only as I'm not sure if it's bad form or not.







 I assuming it is trivial and I've thought or coded myself into a
 corner.

 Thanks in advance.

 Jono





 --
 Lift, the simply functional web framework http://liftweb.net
 Beginning Scala http://www.apress.com/book/view/1430219890
 Follow me: http://twitter.com/dpp
 Surf the harmonics









 --
 Lift, the simply functional web framework http://liftweb.net
 Beginning Scala http://www.apress.com/book/view/1430219890
 Follow me: http://twitter.com/dpp
 Surf the harmonics

 


--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread george

Thanks Dan, I will try that.
--~--~-~--~~~---~--~~
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: How do I pass information between a Comet Actor and a StatefulSnippet ?

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 4:18 PM, Jonathan Ferguson j...@spiralarm.comwrote:



 2009/10/23 David Pollak feeder.of.the.be...@gmail.com



 On Wed, Oct 21, 2009 at 10:59 PM, Jonathan Ferguson 
 j...@spiralarm.comwrote:



 2009/10/22 David Pollak feeder.of.the.be...@gmail.com



 On Wed, Oct 21, 2009 at 8:46 PM, Jonathan Ferguson 
 j...@spiralarm.comwrote:


 I have a StatefulSnippet  that uses a CometActor to keep users
 informed when performing a lengthy task, much like the example on the
 demo site ( http://demo.liftweb.net/longtime).

 The only difference being I pass the CometActor an identifier  so it
 knows which job to inform the user about.

 When the task is over I need to display a form to the user, which I
 would assume would be rendered by the snippet.

 How does the actor tell the snippet the task is complete ?


 The Actor has to know about the snippet... you could send the Actor a
 message with a reference to the snippet and then call a method on the
 snippet when the Actor is done.  Does that do it for you?



 I don't see how I can I do that.  Currently the comet actor is setup in a
 snippet, see below, how  do get a reference to the actor to send it a
 message ?


 In the snippet that yields this code:

 for {
   session - S.session
 } session.setupComet(WhatDog, Full(id), HeyDudeIMSoStateful(this)) //
 send the HeyDudeIMSoStateful message on setup... this can be anything


   Cool, would the correct place to collect the message be in one of the
 priority functions ?


exactly right!


   For instance ?

override def lowPriority : PartialFunction[Any, Unit] = {

 case SnippetMessage(wrappedSnippet) = snippet = wrappedSnippet


 Thanks for the help.

 Jono









lift:comet type=WatchDog name={id} 
 span id=statustwd:statusWatch dog  status/twd:status/span
/lift:comet

  The id being passed via the name parameter is a reference the job to
 monitor. I mention this only as I'm not sure if it's bad form or not.







 I assuming it is trivial and I've thought or coded myself into a
 corner.

 Thanks in advance.

 Jono





 --
 Lift, the simply functional web framework http://liftweb.net
 Beginning Scala http://www.apress.com/book/view/1430219890
 Follow me: http://twitter.com/dpp
 Surf the harmonics









 --
 Lift, the simply functional web framework http://liftweb.net
 Beginning Scala http://www.apress.com/book/view/1430219890
 Follow me: http://twitter.com/dpp
 Surf the harmonics




 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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: S.deleteCookie broken in M6

2009-10-22 Thread Randinn

And don't forget goatrodeo, wizard, oh and the CMS. Quite a plate you
have there, Makes my working and trying to get my site working look
like a pittance.

On Oct 23, 3:27 am, David Pollak feeder.of.the.be...@gmail.com
wrote:
 On Thu, Oct 22, 2009 at 9:07 AM, harryh har...@gmail.com wrote:

   File a ticket.

  Done

   It's Harry's tickets day for me today.  The more you file,
   the more that get fixed.

  Oh my. That's really quite something there.

 And for all of you who want to see what's on my Lift (or ESME) 
 plate:https://www.rememberthemilk.com/home/bearfeeder/10510876/



  -harryh

 --
 Lift, the simply functional web frameworkhttp://liftweb.net
 Beginning Scalahttp://www.apress.com/book/view/1430219890
 Follow me:http://twitter.com/dpp
 Surf the harmonics
--~--~-~--~~~---~--~~
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: Security Explained

2009-10-22 Thread Randinn

I've been pondering this for some time, could an actor be used as a
cookie, if so would that render the stealing attack mote?

    7. Lift uses the container's session management (usually JSESSIONID) for
    session management.  As far as I know, Jetty, Tomcat, Glassfish are secure
    in terms of the way they deal with sessions.  Of course, anything that's 
 not
    over SSL is vulnerable to a cookie stealing attack.

--~--~-~--~~~---~--~~
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: Security Explained

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 4:54 PM, Randinn rand...@gmail.com wrote:


 I've been pondering this for some time, could an actor be used as a
 cookie,


No


 if so would that render the stealing attack mote?

 7. Lift uses the container's session management (usually JSESSIONID)
 for
 session management.  As far as I know, Jetty, Tomcat, Glassfish are
 secure
 in terms of the way they deal with sessions.  Of course, anything
 that's not
 over SSL is vulnerable to a cookie stealing attack.

 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread ssid

Hi all,
I'm using XMPP in my little LiftApp and tried to migrate my code to
the new Lift Actors.
Somehow it seems that net.liftweb.xmpp still uses Scala Actors.
Is this intentional or about to change?
If not is it possible that Scala Actors communicate with Lift Actors?
At the moment I don't get my project to compile due to some type
mismatch errors but that might also be my lack of understanding
of the different Actor implementations.

Thanks,
ssid

On 22 Okt., 05:37, David Pollak feeder.of.the.be...@gmail.com wrote:
 Folks,
 As the title of this email indicates, there are breaking changes in Lift
 that just got pushed to master.

 We've migrated from Scala Actors to Lift Actors and included a series of
 traits that allow Lift to use its own Actors or Akka Actors (or anything
 else that implements that interface.)

 The two big changes that you'll have to work with are:

    - Box/Full/Empty/Failure was moved from the lift-util/net.liftweb.util
    package to the lift-common/net.liftweb.common package.  The reason for this
    change is that we're going to make the lift-common package a more generic,
    non-web related package.  It currently contains Box and Actor, but in the
    future may contain other interfaces that will have concrete implementations
    outside of Lift.  We moved Box there because Box is richer than Scala's
    Option class and being able to carry Exceptions around in a Box while still
    being able to map/flatMap/foreach over a Box (these are unavailable for
    Scala's Either).  Some we're going to actively promote using Box as a
    replacement for Option in all Scala apps.  What this means for you is you
    have to import net.liftweb.common._ in any file that you also import
    net.liftweb.util.?
    - Lift no longer support Scala Actors for Comet Actors.  The GenericActor
    API offers pretty much the same client interface to Lift's Actors, so ! and
    !? work the same way.  However, there's no link, self, start or exit
    methods.

 Please do an mvn -U clean install on your code and run it against the new
 code.  If you have any Comet-related weirdness, please report it
 immediately.  We're planning M7 in 2 weeks, so we've got lots of time to
 iron any kinks out of this code.

 Thanks,

 David

 --
 Lift, the simply functional web frameworkhttp://liftweb.net
 Beginning Scalahttp://www.apress.com/book/view/1430219890
 Follow me:http://twitter.com/dpp
 Surf the harmonics

--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread Jim Barrows
RrttrRrrrtrtrtrrrtrtrtrrttÞ
Sent on the Now Network™ from my Sprint® BlackBerry

-Original Message-
From: ssid j.gat...@googlemail.com
Date: Thu, 22 Oct 2009 18:03:25 
To: Liftliftweb@googlegroups.com
Subject: [Lift] Re: **Breaking Changes** **README** **Important**


Hi all,
I'm using XMPP in my little LiftApp and tried to migrate my code to
the new Lift Actors.
Somehow it seems that net.liftweb.xmpp still uses Scala Actors.
Is this intentional or about to change?
If not is it possible that Scala Actors communicate with Lift Actors?
At the moment I don't get my project to compile due to some type
mismatch errors but that might also be my lack of understanding
of the different Actor implementations.

Thanks,
ssid

On 22 Okt., 05:37, David Pollak feeder.of.the.be...@gmail.com wrote:
 Folks,
 As the title of this email indicates, there are breaking changes in Lift
 that just got pushed to master.

 We've migrated from Scala Actors to Lift Actors and included a series of
 traits that allow Lift to use its own Actors or Akka Actors (or anything
 else that implements that interface.)

 The two big changes that you'll have to work with are:

    - Box/Full/Empty/Failure was moved from the lift-util/net.liftweb.util
    package to the lift-common/net.liftweb.common package.  The reason for this
    change is that we're going to make the lift-common package a more generic,
    non-web related package.  It currently contains Box and Actor, but in the
    future may contain other interfaces that will have concrete implementations
    outside of Lift.  We moved Box there because Box is richer than Scala's
    Option class and being able to carry Exceptions around in a Box while still
    being able to map/flatMap/foreach over a Box (these are unavailable for
    Scala's Either).  Some we're going to actively promote using Box as a
    replacement for Option in all Scala apps.  What this means for you is you
    have to import net.liftweb.common._ in any file that you also import
    net.liftweb.util.?
    - Lift no longer support Scala Actors for Comet Actors.  The GenericActor
    API offers pretty much the same client interface to Lift's Actors, so ! and
    !? work the same way.  However, there's no link, self, start or exit
    methods.

 Please do an mvn -U clean install on your code and run it against the new
 code.  If you have any Comet-related weirdness, please report it
 immediately.  We're planning M7 in 2 weeks, so we've got lots of time to
 iron any kinks out of this code.

 Thanks,

 David

 --
 Lift, the simply functional web frameworkhttp://liftweb.net
 Beginning Scalahttp://www.apress.com/book/view/1430219890
 Follow me:http://twitter.com/dpp
 Surf the harmonics



--~--~-~--~~~---~--~~
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: Cannot build our lift app. Is net.liftweb.util OK?

2009-10-22 Thread Jean-Luc
Hi Dano,

You need to add  import net.liftweb.common._ in your source code.
This will import Box and Failure classes.

Jean-Luc

PS : copy of David's message explaining your problem. Hope it helps !

[...]The two big changes that you'll have to work with are:

   - *Box/Full/Empty/Failure was moved from the lift-util/net.liftweb.util
   package to the lift-common/net.liftweb.common package*.  [...]

Please do an mvn -U clean install on your code and run it against the new
code.  If you have any Comet-related weirdness, please report it
immediately.  We're planning M7 in 2 weeks, so we've got lots of time to
iron any kinks out of this code.

Thanks,

David


2009/10/22 Dano olearydani...@gmail.com


 I see that there is a similar issue posted against the thread New
 update changed something?.  I will monitor the progress of that
 thread as well.


 Dan

 On Oct 22, 9:16 am, Dano olearydani...@gmail.com wrote:
  Hello Lifters,
 
  After doing my morning build (mvn -U clean install), I am getting a
  huge number of errors mostly related to net.liftweb.util (see below).
 
  We are building against 1.1-SNAPSHOT.  Is anyone else having this
  problem?
 
  Thanks in advance.
 
  Dan
 
  [INFO] Compiling 113 source files to C:\sandboxes\igo\trunk\baf\target
  \classes
  [WARNING] C:\sandboxes\igo\trunk\baf\src\main\scala\bootstrap\liftweb
  \Boot.scala:43: error: not found: value Full
  [WARNING]   case _ = Full(DocType.xhtmlStrict)
  [WARNING] ^
  [WARNING] C:\sandboxes\igo\trunk\baf\src\main\scala\com\enthiosys
  \buyafeature\lib\PlexusMagic.scala:23: error: Failure is not a member
  of net.liftweb.util
  [WARNING] import net.liftweb.util.{Failure = BoxFailure}
  [WARNING]^
  [WARNING] C:\sandboxes\igo\trunk\baf\src\main\scala\bootstrap\liftweb
  \Boot.scala:73: error: not found: value Empty
  [WARNING]   LiftRules.xhtmlValidator = Empty
  [WARNING]  ^
  [WARNING] C:\sandboxes\igo\trunk\baf\src\main\scala\bootstrap\liftweb
  \Boot.scala:77: error: type mismatch;
 



-- 
Jean-Luc Canela
jlcane...@gmail.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: A Critique On Lift

2009-10-22 Thread johncch

I know this is not the programming languages weblog but I'll still
like to chip in a bit..

I love Scala. I know it's confusing, sometimes (more often than not)
it makes my head hurts. But the language itself is so expressive. I
think it's kinda, well, maybe I'm machoistic, but there's often
instances when I run through a hard to understand Scala code and it
just struck me how concise the language is. I'm a relatively n00b
programmer, probably 5 to 7 years coding and most of them dealing with
c, php and all sorts of c spawn in various shallow degree, and at my
work I deal with Java, JavaScript and ActionScript. For me, the first
impression of Scala is that it far exceeds the awesomeness of JS
coding. I think JavaScript is really a very nice scripting language,
but there are certain quirks that makes it feel inadequate at times.
But Scala eliminates them, and adds in static typing, which is like
awesome. And well, far too many underscores.

I think a good mature language is poetic, which I find Scala kinda do
fit this criteria. When you read through a difficult routine you think
wow, this is clever, instead of times when I read C code and go like
wow, this is tedious because a big portion of code ends up dealing
with lower level problems. I know it's not comparable because the
compiler abstracts out stuff, but speaking on a pure philosophical
level, I just like it how the language allows you to do clever things.
Unlike Java *sigh*.

As for lift, I find some things very interesting, and mainly there is
a big shift from the traditional php based or Java based frameworks (I
worked on Drupal before, while not exactly the same stuff, but). I get
the crux of it already, and am moving along and reading code as I go
along. The use of snippets as opposed to a monolithic C layer struck
me as odd, and xml spewing in snippets does feel a little wrong (oh
the darn mvc brainwashing). But overall I like what I see and hope to
do something useful with it. Will comment as I move in more.

Thanks for the good job guys. I think it's Scala and Lift at this
point of time that keeps my computing life exciting. Keep up the good
work.

regards,
CH

On Oct 23, 6:06 am, Ross Mellgren dri...@gmail.com wrote:
 Personally I think that Python is great for small simple things, but  
 as soon as you start to scale the lack of statically checked  
 guarantees starts to bite you. The larger and larger you get the more  
 often and more subtle the bites get. Conversely, with a rigorous  
 statically checked language, you can start to use the static checking  
 in your favor. And, the more you understand the nuances of the type  
 system the more and more you can form it to give you even stronger and  
 stronger guarantees.

 Anecdotally, Haskell (which is perhaps one of the most advanced  
 functional programming languages on the planet, particularly in the  
 type system department) has regular reports in the mailing list from  
 newbies that usually go from wtf to whenever I get the compiler to  
 accept my program, it usually just works in a fairly short time.

 The syntax of Scala is an interesting and convoluted beast straddling  
 an unusual line between more typical functional programming languages  
 (Haskell, O'Caml, etc) and Java, and overall I think it ends up doing  
 a fairly good job, though it does have its confusing parts.

 The ability to define operators in particular is a very tricky  
 subject. I find, along with implicits, that I treat it as a power tool  
 that should only be used in cases where it really makes quite alot of  
 sense (used extremely frequently, coming from math concepts, etc).  
 Luckily, it is fairly easy to find out where operators are coming from  
 -- if it looks like an operator, then check to see if it has a :  
 (colon), if it does, the thing on the right is where the operator is  
 defined, so look in its doc. Otherwise, it's the thing on the left  
 that has the operator, so look there.

 If neither place has the operator, then unfortunately you've just  
 strayed into implicit conversion territory, which is unfortunately  
 tricky to track down in many cases. Sometimes in that situation the  
 scala REPL will help, because it prints out the types of expressions.

 Coming from a background of knowing Java and Haskell (along with  
 Python and many other languages, not apropos to this discussion) I  
 found the syntax of Scala to initially be inscrutable but I warmed to  
 it after a month or two and now I think it's pretty good.

 Regarding () and {} BTW, you can replace a single-argument argument  
 list with {}, e.g.

 def myFunction(a: String): Unit = println(a)

 myFunction(foobar)
 myFunction { foobar }

 The two calls are equivalent. It makes more sense with the latter  
 format with multiple argument lists or DSL-like things. I could write  
 up an example if you're interested, but it might be somewhat involved  
 if you're not familiar with Scala or Lift.

 Overall, my suggestion 

[Lift] Re: **Breaking Changes** **README** **Important**

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 6:28 PM, Jim Barrows jim.barr...@gmail.com wrote:

 RrttrRrrrtrtrtrrrtrtrtrrttÞ


bless you.


 Sent on the Now Network™ from my Sprint® BlackBerry

 -Original Message-
 From: ssid j.gat...@googlemail.com
 Date: Thu, 22 Oct 2009 18:03:25
 To: Liftliftweb@googlegroups.com
 Subject: [Lift] Re: **Breaking Changes** **README** **Important**


 Hi all,
 I'm using XMPP in my little LiftApp and tried to migrate my code to
 the new Lift Actors.
 Somehow it seems that net.liftweb.xmpp still uses Scala Actors.
 Is this intentional or about to change?
 If not is it possible that Scala Actors communicate with Lift Actors?
 At the moment I don't get my project to compile due to some type
 mismatch errors but that might also be my lack of understanding
 of the different Actor implementations.

 Thanks,
 ssid

 On 22 Okt., 05:37, David Pollak feeder.of.the.be...@gmail.com wrote:
  Folks,
  As the title of this email indicates, there are breaking changes in Lift
  that just got pushed to master.
 
  We've migrated from Scala Actors to Lift Actors and included a series of
  traits that allow Lift to use its own Actors or Akka Actors (or anything
  else that implements that interface.)
 
  The two big changes that you'll have to work with are:
 
 - Box/Full/Empty/Failure was moved from the lift-util/net.liftweb.util
 package to the lift-common/net.liftweb.common package.  The reason for
 this
 change is that we're going to make the lift-common package a more
 generic,
 non-web related package.  It currently contains Box and Actor, but in
 the
 future may contain other interfaces that will have concrete
 implementations
 outside of Lift.  We moved Box there because Box is richer than
 Scala's
 Option class and being able to carry Exceptions around in a Box while
 still
 being able to map/flatMap/foreach over a Box (these are unavailable
 for
 Scala's Either).  Some we're going to actively promote using Box as a
 replacement for Option in all Scala apps.  What this means for you is
 you
 have to import net.liftweb.common._ in any file that you also import
 net.liftweb.util.?
 - Lift no longer support Scala Actors for Comet Actors.  The
 GenericActor
 API offers pretty much the same client interface to Lift's Actors, so
 ! and
 !? work the same way.  However, there's no link, self, start or exit
 methods.
 
  Please do an mvn -U clean install on your code and run it against the
 new
  code.  If you have any Comet-related weirdness, please report it
  immediately.  We're planning M7 in 2 weeks, so we've got lots of time to
  iron any kinks out of this code.
 
  Thanks,
 
  David
 
  --
  Lift, the simply functional web frameworkhttp://liftweb.net
  Beginning Scalahttp://www.apress.com/book/view/1430219890
  Follow me:http://twitter.com/dpp
  Surf the harmonics



 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 6:03 PM, ssid j.gat...@googlemail.com wrote:


 Hi all,
 I'm using XMPP in my little LiftApp and tried to migrate my code to
 the new Lift Actors.
 Somehow it seems that net.liftweb.xmpp still uses Scala Actors.
 Is this intentional or about to change?


I was lazy and didn't make that change.  I guess I should move the XMPP
stuff over.


 If not is it possible that Scala Actors communicate with Lift Actors?
 At the moment I don't get my project to compile due to some type
 mismatch errors but that might also be my lack of understanding
 of the different Actor implementations.

 Thanks,
 ssid

 On 22 Okt., 05:37, David Pollak feeder.of.the.be...@gmail.com wrote:
  Folks,
  As the title of this email indicates, there are breaking changes in Lift
  that just got pushed to master.
 
  We've migrated from Scala Actors to Lift Actors and included a series of
  traits that allow Lift to use its own Actors or Akka Actors (or anything
  else that implements that interface.)
 
  The two big changes that you'll have to work with are:
 
 - Box/Full/Empty/Failure was moved from the lift-util/net.liftweb.util
 package to the lift-common/net.liftweb.common package.  The reason for
 this
 change is that we're going to make the lift-common package a more
 generic,
 non-web related package.  It currently contains Box and Actor, but in
 the
 future may contain other interfaces that will have concrete
 implementations
 outside of Lift.  We moved Box there because Box is richer than
 Scala's
 Option class and being able to carry Exceptions around in a Box while
 still
 being able to map/flatMap/foreach over a Box (these are unavailable
 for
 Scala's Either).  Some we're going to actively promote using Box as a
 replacement for Option in all Scala apps.  What this means for you is
 you
 have to import net.liftweb.common._ in any file that you also import
 net.liftweb.util.?
 - Lift no longer support Scala Actors for Comet Actors.  The
 GenericActor
 API offers pretty much the same client interface to Lift's Actors, so
 ! and
 !? work the same way.  However, there's no link, self, start or exit
 methods.
 
  Please do an mvn -U clean install on your code and run it against the
 new
  code.  If you have any Comet-related weirdness, please report it
  immediately.  We're planning M7 in 2 weeks, so we've got lots of time to
  iron any kinks out of this code.
 
  Thanks,
 
  David
 
  --
  Lift, the simply functional web frameworkhttp://liftweb.net
  Beginning Scalahttp://www.apress.com/book/view/1430219890
  Follow me:http://twitter.com/dpp
  Surf the harmonics

 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread Naftoli Gugenheim

How hard can automatic save be?
But how would immutable DAOs work? There was a thread, I think on scala-user, a 
long time ago discussing it, that pretty much concluded it would be very 
problematic. David weighed in and said after a long time he concluded that 
databases represent state.


-
Timothy Perretttimo...@getintheloop.eu wrote:


Right, no one likes mutable anything :-)

I kinda wondered why you haven't pushed forward any more with the  
current record implementation... can one assume that is why - because  
it didn't feel right?

Some of this stuff is going to be fundamental to how we move forward -  
id love to perhaps discuss something that would be better than what we  
have already. Even if its just pie in the sky talk...

Cheers, Tim

On 22 Oct 2009, at 17:22, David Pollak wrote:

 I don't like mutable fields.  I don't like manual saving.  Dunno...  
 it's hard to articulate... it just feels wrong in my tummy.  Also, I  
 want to be clear that I think Marius did a great job of cleaning up  
 some of the problems with Mapper when he did Record... my comments  
 are not a negative to him... there's just something unsatisfying  
 about the whole approach.

 Bet that was less than helpful.




--~--~-~--~~~---~--~~
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: A Critique On Lift

2009-10-22 Thread Naftoli Gugenheim

The last use of _, as in empty_?, is not a special scala meaning. As on Java, 
underscores can be part of an identifier. Scala takes advantage of this to 
combine letters and symbols in one name. These names, like empty_?, are a Lift 
convention, as well as ..._! for use-with-care methods. The scala library uses 
isEmpty. David, is it your original convention?.

-
tirotim.romb...@googlemail.com wrote:


 override def validations = validPriority _ :: super.validations
funny, I had stumbled on exactly the same line of code when beginning.
Took me more than a day to understand what's going on. Especially
because when you copied code from the PDF version of the Liftbook/Lift
getting started guide, it would mess up spaces, so I would keep
loooking for a _:: operator.
The Scala guys have really pushed it a bit hard on the use of the
underscore. At least four different uses:
- it for defining anonymous functions like above
- default value
- matching placeholder whose value is ignored
- use for constructing setter method names boolean functions (empty_?)




--~--~-~--~~~---~--~~
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: html not being evalutated

2009-10-22 Thread Naftoli Gugenheim

I think another solution is an Unparsed node. When the XML is converted to a 
string it will be outputed verbatim.

-
jackjack.wid...@gmail.com wrote:


Let's say source.body is ahref=google.comSearch/a.  If I put
source.body in a span like this -

span{source.body}/span

source.body will be converted to text and the actual link tags will be
displayed. What is the right way to do this?

On Oct 21, 9:06 am, David Pollak feeder.of.the.be...@gmail.com
wrote:
 On Tue, Oct 20, 2009 at 10:16 PM, jack jack.wid...@gmail.com wrote:

  OK, I see why this is happening. the {exp} in the NodeSeq convert exp
  to a String. So I did by creating a string and then converting it to a
  NodeSeq at the end. Is there a way to do this without using and
  intermediary string?

 I don't know what a source is, but you really, really have to be careful
 about promoting a String to a NodeSeq.  If the String has user-generated
 content in it, then you've got a cross-site scripting vulnerability waiting
 to happen.  For user-generated content, I suggest using Textile parser built
 into Lift.

 In any case, if you don't have a NodeSeq in your data structure, you'll have
 to parse it into XML before displaying it.





  On Oct 21, 1:03 am, jack jack.wid...@gmail.com wrote:
   I have the following method display. source.body has html tags in it
   but the actual tags are showing instead of being evaluated. e.g. I'm
   seeing things like 'bHey There/b' instead of 'Hey There' in bold.
   This method is in a CometActor and is running when the page is
   rendered. Am I missing something obvious?

    def display(sources:List[Source]):NodeSeq = {

       span id=jooptable
       {
          for {source - sources} yield trtd{source.body}/td/tr
       }

       /table
       /span
     }

 --
 Lift, the simply functional web frameworkhttp://liftweb.net
 Beginning Scalahttp://www.apress.com/book/view/1430219890
 Follow me:http://twitter.com/dpp
 Surf the harmonics


--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread Jonathan Ferguson
If we are using Actors for non Comet based stuff I assume we are free to
leave them as is as long as we don't come asking for support ?
I am thinking about moving through switching them over, but I'd like to do
it at a leisurely pace.

Jono


2009/10/23 David Pollak feeder.of.the.be...@gmail.com



 On Thu, Oct 22, 2009 at 6:03 PM, ssid j.gat...@googlemail.com wrote:


 Hi all,
 I'm using XMPP in my little LiftApp and tried to migrate my code to
 the new Lift Actors.
 Somehow it seems that net.liftweb.xmpp still uses Scala Actors.
 Is this intentional or about to change?


 I was lazy and didn't make that change.  I guess I should move the XMPP
 stuff over.


 If not is it possible that Scala Actors communicate with Lift Actors?
 At the moment I don't get my project to compile due to some type
 mismatch errors but that might also be my lack of understanding
 of the different Actor implementations.

 Thanks,
 ssid

 On 22 Okt., 05:37, David Pollak feeder.of.the.be...@gmail.com wrote:
  Folks,
  As the title of this email indicates, there are breaking changes in Lift
  that just got pushed to master.
 
  We've migrated from Scala Actors to Lift Actors and included a series of
  traits that allow Lift to use its own Actors or Akka Actors (or anything
  else that implements that interface.)
 
  The two big changes that you'll have to work with are:
 
 - Box/Full/Empty/Failure was moved from the
 lift-util/net.liftweb.util
 package to the lift-common/net.liftweb.common package.  The reason
 for this
 change is that we're going to make the lift-common package a more
 generic,
 non-web related package.  It currently contains Box and Actor, but in
 the
 future may contain other interfaces that will have concrete
 implementations
 outside of Lift.  We moved Box there because Box is richer than
 Scala's
 Option class and being able to carry Exceptions around in a Box while
 still
 being able to map/flatMap/foreach over a Box (these are unavailable
 for
 Scala's Either).  Some we're going to actively promote using Box as a
 replacement for Option in all Scala apps.  What this means for you is
 you
 have to import net.liftweb.common._ in any file that you also import
 net.liftweb.util.?
 - Lift no longer support Scala Actors for Comet Actors.  The
 GenericActor
 API offers pretty much the same client interface to Lift's Actors, so
 ! and
 !? work the same way.  However, there's no link, self, start or exit
 methods.
 
  Please do an mvn -U clean install on your code and run it against the
 new
  code.  If you have any Comet-related weirdness, please report it
  immediately.  We're planning M7 in 2 weeks, so we've got lots of time to
  iron any kinks out of this code.
 
  Thanks,
 
  David
 
  --
  Lift, the simply functional web frameworkhttp://liftweb.net
  Beginning Scalahttp://www.apress.com/book/view/1430219890
  Follow me:http://twitter.com/dpp
  Surf the harmonics





 --
 Lift, the simply functional web framework http://liftweb.net
 Beginning Scala http://www.apress.com/book/view/1430219890

 Follow me: http://twitter.com/dpp
 Surf the harmonics

 


--~--~-~--~~~---~--~~
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: **Breaking Changes** **README** **Important**

2009-10-22 Thread David Pollak
On Thu, Oct 22, 2009 at 8:54 PM, Jonathan Ferguson j...@spiralarm.comwrote:

 If we are using Actors for non Comet based stuff I assume we are free to
 leave them as is as long as we don't come asking for support ?


Absolutely.  Use the Actor library that best suits your needs.



 I am thinking about moving through switching them over, but I'd like to do
 it at a leisurely pace.

 Jono


 2009/10/23 David Pollak feeder.of.the.be...@gmail.com



 On Thu, Oct 22, 2009 at 6:03 PM, ssid j.gat...@googlemail.com wrote:


 Hi all,
 I'm using XMPP in my little LiftApp and tried to migrate my code to
 the new Lift Actors.
 Somehow it seems that net.liftweb.xmpp still uses Scala Actors.
 Is this intentional or about to change?


 I was lazy and didn't make that change.  I guess I should move the XMPP
 stuff over.


 If not is it possible that Scala Actors communicate with Lift Actors?
 At the moment I don't get my project to compile due to some type
 mismatch errors but that might also be my lack of understanding
 of the different Actor implementations.

 Thanks,
 ssid

 On 22 Okt., 05:37, David Pollak feeder.of.the.be...@gmail.com wrote:
  Folks,
  As the title of this email indicates, there are breaking changes in
 Lift
  that just got pushed to master.
 
  We've migrated from Scala Actors to Lift Actors and included a series
 of
  traits that allow Lift to use its own Actors or Akka Actors (or
 anything
  else that implements that interface.)
 
  The two big changes that you'll have to work with are:
 
 - Box/Full/Empty/Failure was moved from the
 lift-util/net.liftweb.util
 package to the lift-common/net.liftweb.common package.  The reason
 for this
 change is that we're going to make the lift-common package a more
 generic,
 non-web related package.  It currently contains Box and Actor, but
 in the
 future may contain other interfaces that will have concrete
 implementations
 outside of Lift.  We moved Box there because Box is richer than
 Scala's
 Option class and being able to carry Exceptions around in a Box
 while still
 being able to map/flatMap/foreach over a Box (these are unavailable
 for
 Scala's Either).  Some we're going to actively promote using Box as
 a
 replacement for Option in all Scala apps.  What this means for you
 is you
 have to import net.liftweb.common._ in any file that you also import
 net.liftweb.util.?
 - Lift no longer support Scala Actors for Comet Actors.  The
 GenericActor
 API offers pretty much the same client interface to Lift's Actors,
 so ! and
 !? work the same way.  However, there's no link, self, start or exit
 methods.
 
  Please do an mvn -U clean install on your code and run it against the
 new
  code.  If you have any Comet-related weirdness, please report it
  immediately.  We're planning M7 in 2 weeks, so we've got lots of time
 to
  iron any kinks out of this code.
 
  Thanks,
 
  David
 
  --
  Lift, the simply functional web frameworkhttp://liftweb.net
  Beginning Scalahttp://www.apress.com/book/view/1430219890
  Follow me:http://twitter.com/dpp
  Surf the harmonics





 --
 Lift, the simply functional web framework http://liftweb.net
 Beginning Scala http://www.apress.com/book/view/1430219890

 Follow me: http://twitter.com/dpp
 Surf the harmonics




 



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---