[Lift] Re: git ouch

2009-05-29 Thread Oliver Lambert
I got that list of commands wrong, what I typed, was

git clone g...@github.com:dpp/liftweb.git
git branch wip-ol-immu
git checkout wip-ol-immu
git push origin wip-ol-immu

When I do a git branch -a, I get two wip-ol-immu
  master
* wip-ol-immu
  origin/1.0_maint
  origin/HEAD
  origin/master
  origin/new_actor
  origin/wip-boolean-can
  origin/wip-dcb-derby-binary
  origin/wip-dcb-jpa-jta
  origin/wip-dcb-jpa-validation
  origin/wip-dcb-lift-jpa
  origin/wip-dpp-record
  origin/wip-marius-dom-optimizations
  origin/wip-ol-immu
  origin/wip-prettify
  origin/wip-record2-dpp

On Fri, May 29, 2009 at 3:50 PM, Oliver Lambert olambo...@gmail.com wrote:

 When I look at the liftweb network graph, it looks like I'm working on the
 main liftweb master line and have renamed it.


 On Fri, May 29, 2009 at 3:38 PM, Derek Chen-Becker 
 dchenbec...@gmail.comwrote:

 I just looked at Git and I show a proper branch there (wip-ol-immu)
 committed about 30 minutes ago. Are you seeing some error on your end?

 Derek


 On Thu, May 28, 2009 at 11:19 PM, Oliver Lambert olambo...@gmail.comwrote:

 Git wouldn't let me create a branch of liftweb until I deleted and
 recreated my ssh keys - I believed all was good.

 I thought I was following the documentation, to create my own branch,
 which appeared to be correct on my machine. But, when I just pushed what I
 thought was my branch, I appear to have done something wrong. Any help
 (without curses) is greatly appreciated at this moment.

 cheers
 Oliver




 



--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: git ouch

2009-05-29 Thread Heiko Seeberger
Oliver,
But that's perfect! What's your problem?

There is one LOCAL wip-ol-immu branch and one REMOTE. That's how it is
expected to be for a branch you pushed.

Heiko

2009/5/29 Oliver Lambert olambo...@gmail.com

 I got that list of commands wrong, what I typed, was

 git clone g...@github.com:dpp/liftweb.git
 git branch wip-ol-immu
 git checkout wip-ol-immu
 git push origin wip-ol-immu

 When I do a git branch -a, I get two wip-ol-immu
   master
 * wip-ol-immu
   origin/1.0_maint
   origin/HEAD
   origin/master
   origin/new_actor
   origin/wip-boolean-can
   origin/wip-dcb-derby-binary
   origin/wip-dcb-jpa-jta
   origin/wip-dcb-jpa-validation
   origin/wip-dcb-lift-jpa
   origin/wip-dpp-record
   origin/wip-marius-dom-optimizations
   origin/wip-ol-immu
   origin/wip-prettify
   origin/wip-record2-dpp


 On Fri, May 29, 2009 at 3:50 PM, Oliver Lambert olambo...@gmail.comwrote:

 When I look at the liftweb network graph, it looks like I'm working on the
 main liftweb master line and have renamed it.


 On Fri, May 29, 2009 at 3:38 PM, Derek Chen-Becker dchenbec...@gmail.com
  wrote:

 I just looked at Git and I show a proper branch there (wip-ol-immu)
 committed about 30 minutes ago. Are you seeing some error on your end?

 Derek


 On Thu, May 28, 2009 at 11:19 PM, Oliver Lambert olambo...@gmail.comwrote:

 Git wouldn't let me create a branch of liftweb until I deleted and
 recreated my ssh keys - I believed all was good.

 I thought I was following the documentation, to create my own branch,
 which appeared to be correct on my machine. But, when I just pushed what I
 thought was my branch, I appear to have done something wrong. Any help
 (without curses) is greatly appreciated at this moment.

 cheers
 Oliver








 



-- 
My blog: heikoseeberger.name
Follow me: twitter.com/hseeberger
OSGi on Scala: www.scalamodules.org
Lift, the simply functional web framework: liftweb.net

--~--~-~--~~~---~--~~
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: git ouch

2009-05-29 Thread Oliver Lambert
I have a problem with breaking a build on my first attempt of working with
git. I'm happy if I haven't, but what was concerning me was in the included
image (the network line looks like wip-ol-immu is directly next to master,
rather than on a separate branch - if this is normal, Im happy)

On Fri, May 29, 2009 at 4:22 PM, Heiko Seeberger 
heiko.seeber...@googlemail.com wrote:

 Oliver,
 But that's perfect! What's your problem?

 There is one LOCAL wip-ol-immu branch and one REMOTE. That's how it is
 expected to be for a branch you pushed.

 Heiko

 2009/5/29 Oliver Lambert olambo...@gmail.com

 I got that list of commands wrong, what I typed, was

 git clone g...@github.com:dpp/liftweb.git
 git branch wip-ol-immu
 git checkout wip-ol-immu
 git push origin wip-ol-immu

 When I do a git branch -a, I get two wip-ol-immu
   master
 * wip-ol-immu
   origin/1.0_maint
   origin/HEAD
   origin/master
   origin/new_actor
   origin/wip-boolean-can
   origin/wip-dcb-derby-binary
   origin/wip-dcb-jpa-jta
   origin/wip-dcb-jpa-validation
   origin/wip-dcb-lift-jpa
   origin/wip-dpp-record
   origin/wip-marius-dom-optimizations
   origin/wip-ol-immu
   origin/wip-prettify
   origin/wip-record2-dpp





--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---

attachment: wip-ol.jpg

[Lift] Record with the new bind-immutable

2009-05-29 Thread Marius

Oliver,

I very briefly looked on your code and I saw that you have your own
validator there. How would that play with the existent validattors
that Record has where each field has a list of :

type ValidationFunction = MyType = Box[Node]

Note that current MetaRecord's validator after evaluating the
validators for each field it yields a List[FieldError] which can be
easily naturally used with S.error function to show the error messages
etc.

Is there a redundancy or complementary functionality?

Br's,
Marius
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: git ouch

2009-05-29 Thread Heiko Seeberger
Hm, never looked at those images before. But I guess it is OK.
Heiko

2009/5/29 Oliver Lambert olambo...@gmail.com

 I have a problem with breaking a build on my first attempt of working with
 git. I'm happy if I haven't, but what was concerning me was in the included
 image (the network line looks like wip-ol-immu is directly next to master,
 rather than on a separate branch - if this is normal, Im happy)


 On Fri, May 29, 2009 at 4:22 PM, Heiko Seeberger 
 heiko.seeber...@googlemail.com wrote:

 Oliver,
 But that's perfect! What's your problem?

 There is one LOCAL wip-ol-immu branch and one REMOTE. That's how it is
 expected to be for a branch you pushed.

 Heiko

 2009/5/29 Oliver Lambert olambo...@gmail.com

  I got that list of commands wrong, what I typed, was

 git clone g...@github.com:dpp/liftweb.git
 git branch wip-ol-immu
 git checkout wip-ol-immu
 git push origin wip-ol-immu

 When I do a git branch -a, I get two wip-ol-immu
   master
 * wip-ol-immu
   origin/1.0_maint
   origin/HEAD
   origin/master
   origin/new_actor
   origin/wip-boolean-can
   origin/wip-dcb-derby-binary
   origin/wip-dcb-jpa-jta
   origin/wip-dcb-jpa-validation
   origin/wip-dcb-lift-jpa
   origin/wip-dpp-record
   origin/wip-marius-dom-optimizations
   origin/wip-ol-immu
   origin/wip-prettify
   origin/wip-record2-dpp





 



-- 
My blog: heikoseeberger.name
Follow me: twitter.com/hseeberger
OSGi on Scala: www.scalamodules.org
Lift, the simply functional web framework: liftweb.net

--~--~-~--~~~---~--~~
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: Record with the new bind-immutable

2009-05-29 Thread Oliver Lambert
I'm aware of S.error and my ValidationError uses it when I'm ready to show
errors. I've briefly looked at the ValidationFunction and the thing I might
stumble on is the errorType which I rely on.

I may be able to refactor the code to use List[FieldError] as I don't think
I rely on errorType at this point.

I'll have a go at modifying the Binder code.

cheers
Oliver

On Fri, May 29, 2009 at 5:05 PM, Marius marius.dan...@gmail.com wrote:


 Oliver,

 I very briefly looked on your code and I saw that you have your own
 validator there. How would that play with the existent validattors
 that Record has where each field has a list of :

 type ValidationFunction = MyType = Box[Node]

 Note that current MetaRecord's validator after evaluating the
 validators for each field it yields a List[FieldError] which can be
 easily naturally used with S.error function to show the error messages
 etc.

 Is there a redundancy or complementary functionality?

 Br's,
 Marius
 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: Record with the new bind-immutable

2009-05-29 Thread marius d.

I see ... still the question remains. What are we going to do with two
validators? I'd like to understand the principles of your addition
(... I know I should have dig into the code but I don't have much time
now).

I'd like to understand as I said previously if we have redundant
validators or complementary functionality so that people to not get
confused.

I'm not trying at all to be negative or anything, just trying to
understand the value added.

Br's,
Marius

On May 29, 11:01 am, Oliver Lambert olambo...@gmail.com wrote:
 I'm aware of S.error and my ValidationError uses it when I'm ready to show
 errors. I've briefly looked at the ValidationFunction and the thing I might
 stumble on is the errorType which I rely on.

 I may be able to refactor the code to use List[FieldError] as I don't think
 I rely on errorType at this point.

 I'll have a go at modifying the Binder code.

 cheers
 Oliver

 On Fri, May 29, 2009 at 5:05 PM, Marius marius.dan...@gmail.com wrote:

  Oliver,

  I very briefly looked on your code and I saw that you have your own
  validator there. How would that play with the existent validattors
  that Record has where each field has a list of :

  type ValidationFunction = MyType = Box[Node]

  Note that current MetaRecord's validator after evaluating the
  validators for each field it yields a List[FieldError] which can be
  easily naturally used with S.error function to show the error messages
  etc.

  Is there a redundancy or complementary functionality?

  Br's,
  Marius
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: git ouch

2009-05-29 Thread Timothy Perrett

Oliver,

There are detailed instructions on the committer mailing list as to
how to create a remote branch for lift. For reference, I include them
here (originally from Mr Weir, so credit to him for being the git
master!):

**Creating a Remote Branch**
1. Create the remote branch
git push origin origin:refs/heads/new_feature_name

2. Make sure everything is up-to-date
git fetch origin

3. Then you can see that the branch is created.
git branch -r

* This should show ‘origin/new_feature_name’

4. Start tracking the new branch
git checkout --track -b new_feature_name origin/new_feature_name

*This means that when you do pulls that it will get the latest from
that branch as well.

5. Make sure everything is up-to-date
git pull

**Cleaning up Mistakes**
If you make a mistake you can always delete the remote branch:
git push origin :heads/new_feature_name

Hope that helps

Cheers, Tim

On May 29, 8:32 am, Heiko Seeberger heiko.seeber...@googlemail.com
wrote:
 Hm, never looked at those images before. But I guess it is OK.
 Heiko

 2009/5/29 Oliver Lambert olambo...@gmail.com





  I have a problem with breaking a build on my first attempt of working with
  git. I'm happy if I haven't, but what was concerning me was in the included
  image (the network line looks like wip-ol-immu is directly next to master,
  rather than on a separate branch - if this is normal, Im happy)

  On Fri, May 29, 2009 at 4:22 PM, Heiko Seeberger 
  heiko.seeber...@googlemail.com wrote:

  Oliver,
  But that's perfect! What's your problem?

  There is one LOCAL wip-ol-immu branch and one REMOTE. That's how it is
  expected to be for a branch you pushed.

  Heiko

  2009/5/29 Oliver Lambert olambo...@gmail.com

   I got that list of commands wrong, what I typed, was

  git clone g...@github.com:dpp/liftweb.git
  git branch wip-ol-immu
  git checkout wip-ol-immu
  git push origin wip-ol-immu

  When I do a git branch -a, I get two wip-ol-immu
    master
  * wip-ol-immu
    origin/1.0_maint
    origin/HEAD
    origin/master
    origin/new_actor
    origin/wip-boolean-can
    origin/wip-dcb-derby-binary
    origin/wip-dcb-jpa-jta
    origin/wip-dcb-jpa-validation
    origin/wip-dcb-lift-jpa
    origin/wip-dpp-record
    origin/wip-marius-dom-optimizations
    origin/wip-ol-immu
    origin/wip-prettify
    origin/wip-record2-dpp

 --
 My blog: heikoseeberger.name
 Follow me: twitter.com/hseeberger
 OSGi on Scala:www.scalamodules.org
 Lift, the simply functional web framework: liftweb.net
--~--~-~--~~~---~--~~
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: JTA

2009-05-29 Thread Timothy Perrett


Are there any performance implications considering closures vs annotations?
Agreed that closures are more lift like however.

Cheers, Tim

On 29/05/2009 10:21, marius d. marius.dan...@gmail.com wrote:

 
 I think that would be really good. But I'd rather not use annotations.
 Personally I find closures approach a much better fit here.
 
 withTxRequired {
   ... // do transational stuff
 
 }
 
 
 Br's,
 Marius
 
 On May 29, 11:55 am, Jonas Bonér jbo...@gmail.com wrote:
 Hi guys.
 
 I have been talking with David Pollak the rest of the lift team about
 adding JTA to Lift. I have implemented that for a product written in
 Scala some time ago. Now some of that code is OSS
 at:http://github.com/jboner/skalman/tree
 
 We used using two different APIs.
 1. Annotations (would require Lift to support proxied objects, e.g.
 grab them from a factory):
 
 @TransactionAttribute(REQUIRED)
 def transactionalMethod = { ... }
 
 2. Call-by-name:
 
 withTxRequired {
   ... // do transational stuff
 
 }
 
 But I don't know what fits Lift and would like to know how you guys
 would like to have JTA integrated.
 At which level? Which APIs? Etc.
 
 --
 Jonas Bonér
 
 twitter: @jboner
 blog:    http://jonasboner.com
 work:  http://crisp.se
 work:  http://scalablesolutions.se
 code:  http://github.com/jboner
  
 



--~--~-~--~~~---~--~~
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: git ouch

2009-05-29 Thread Timothy Perrett

We use the committer list to discuss process orientated things like
when we are going to do a release, issue management, who's working on
what tasks etc etc. Its a private - committer only group that is not
publicly viewable.

I'll touch base with you off list :-)

Cheers, Tim

On May 29, 12:35 pm, Oliver Lambert olambo...@gmail.com wrote:
 Thanks for this, wish I'd read it earlier.As a matter of interest, is there
 anything else on the committer mailing list that a new committer
 should read - and can I read emails posted before I became one?

 cheers
 Oliver
 On Fri, May 29, 2009 at 6:39 PM, Timothy Perrett 
 timo...@getintheloop.euwrote:

--~--~-~--~~~---~--~~
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 to disable jQuery from lift application?

2009-05-29 Thread Narayanaswamy, Mohan

I will try to send one, But Google API was failing while trying to load banner. 
Google just released those api's.

Mohan 

-Original Message-
From: liftweb@googlegroups.com [mailto:lift...@googlegroups.com] On Behalf Of 
Narayanaswamy, Mohan
Sent: 28 May 2009 00:32
To: Lift
Subject: [Lift] Re: How to disable jQuery from lift application?


As per my limited knowledge, Google javascript API fails. Below API, I am using 
it to transfer English to Tamil tranliteration.

Webpage error details

Message: Unexpected call to method or property access.
Line: 22
Char: 388
Code: 0
URI: 
http://www.google.com/uds/api/elements/1.0/1aac8bdeb1f85e7c5035029a61994691/transliteration.I.js


Mohan

On May 27, 8:21 pm, David Pollak feeder.of.the.be...@gmail.com
wrote:
 Mohan,

 Marius answered your question, but I'm curious... how does jQuery 
 conflict with the google library?  What kind of errors are you seeing?

 Thanks,

 David

 On Tue, May 26, 2009 at 5:50 PM, KaniniPazham 





 mohan.narayanasw...@credit-suisse.com wrote:

  I am using  Archetype basic and in my form, I am trying to 
  integrate with Google Transliteration API. So in one of the page, I 
  would like to disable jQuery as it conflicts with google Transliteration 
  API.

  I found following function is generated and added automatically, 
  they are not in my template.

  /divscript type=text/javascript // ![CDATA[
  jQuery(document).ready(function() {lift_successRegisterGC();}); var 
  lift_page = 'F27052369736502T'; // ]] /script/body

  How could I disable generating such a automatic jQuery script?
  How could I disable jQuery for whole LiftApplication?
  How could I disable jQuery for only one page?

  Extremely sorry if the above questions are simple and stupid. Except 
  Core-java, everything is new to me.

  Mohan

 --
 Lift, the simply functional web frameworkhttp://liftweb.net Beginning 
 Scalahttp://www.apress.com/book/view/1430219890
 Follow me:http://twitter.com/dpp
 Git some:http://github.com/dpp- Hide quoted text -

 - Show quoted text -




==
Please access the attached hyperlink for an important electronic communications 
disclaimer: 

http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
==


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: Record with the new bind-immutable

2009-05-29 Thread Oliver Lambert
Hi Marius,
To try and answer your question, I had to go and look at the Record code in
more detail. I hadn't recently written the Binder Validator, so it wasn't
designed to be
complementary to anything else (however, some of the naming and methodology
is very
similar in both sets of code).

What I found.
1) MetaRecord.validate === Binder.validate
2) Field.validators === BoundObj.validations
3) Field.validationFunction === Validator.validate
4) List[FieldError]  === List[ValidationError]

Can I get rid of Binder Validation and just use Record/Field validation?
It certainly looks like I should try. However, I might have to add/change
some of the original Lift code.
For instance, I might want to add an errorType (with a default, so no code
is broken) to FieldError.
I might also want to move/change Field.validationFunction so its a little
more
like my Validator,with an errorType and toString (When I print my
validators, the errorType give a little
information on what they do, rather than just telling me I have a function -
I also filter using
the errorType)

Other things of interest that I found.

Could a Binder be a MetaRecord? There are definitely some similarities.
Binder holds a set of
immutable objects which can be an advantage, but MetaRecord can talk to
databases which is
kind of useful at times.

Could a BoundObj be a Field. Same distinction as above. A BoundObj[T] may
hold a reference to a string value
that is completely invalid. I'm not sure I see this in Field.

cheers
Oliver

On Fri, May 29, 2009 at 6:22 PM, marius d. marius.dan...@gmail.com wrote:


 I see ... still the question remains. What are we going to do with two
 validators? I'd like to understand the principles of your addition
 (... I know I should have dig into the code but I don't have much time
 now).

 I'd like to understand as I said previously if we have redundant
 validators or complementary functionality so that people to not get
 confused.

 I'm not trying at all to be negative or anything, just trying to
 understand the value added.

 Br's,
 Marius

 On May 29, 11:01 am, Oliver Lambert olambo...@gmail.com wrote:
  I'm aware of S.error and my ValidationError uses it when I'm ready to
 show
  errors. I've briefly looked at the ValidationFunction and the thing I
 might
  stumble on is the errorType which I rely on.
 
  I may be able to refactor the code to use List[FieldError] as I don't
 think
  I rely on errorType at this point.
 
  I'll have a go at modifying the Binder code.
 
  cheers
  Oliver
 
  On Fri, May 29, 2009 at 5:05 PM, Marius marius.dan...@gmail.com wrote:
 
   Oliver,
 
   I very briefly looked on your code and I saw that you have your own
   validator there. How would that play with the existent validattors
   that Record has where each field has a list of :
 
   type ValidationFunction = MyType = Box[Node]
 
   Note that current MetaRecord's validator after evaluating the
   validators for each field it yields a List[FieldError] which can be
   easily naturally used with S.error function to show the error messages
   etc.
 
   Is there a redundancy or complementary functionality?
 
   Br's,
   Marius
 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: Record with the new bind-immutable

2009-05-29 Thread David Pollak
One thing I've been thinking about is optionally extending the Validator
Functions to also emit JavaScript that would perform the validation in the
browser... that would provide a seamless way to do client-side validation
for validators (e.g., min len, max len, regex) that only rely on client-side
data.

On Fri, May 29, 2009 at 6:32 AM, Oliver Lambert olambo...@gmail.com wrote:

 Hi Marius,
 To try and answer your question, I had to go and look at the Record code
 in
 more detail. I hadn't recently written the Binder Validator, so it wasn't
 designed to be
 complementary to anything else (however, some of the naming and methodology
 is very
 similar in both sets of code).

 What I found.
 1) MetaRecord.validate === Binder.validate
 2) Field.validators === BoundObj.validations
 3) Field.validationFunction === Validator.validate
 4) List[FieldError]  === List[ValidationError]

 Can I get rid of Binder Validation and just use Record/Field validation?
 It certainly looks like I should try. However, I might have to add/change
 some of the original Lift code.
 For instance, I might want to add an errorType (with a default, so no code
 is broken) to FieldError.
 I might also want to move/change Field.validationFunction so its a little
 more
 like my Validator,with an errorType and toString (When I print my
 validators, the errorType give a little
 information on what they do, rather than just telling me I have a function
 - I also filter using
 the errorType)

 Other things of interest that I found.

 Could a Binder be a MetaRecord? There are definitely some similarities.
 Binder holds a set of
 immutable objects which can be an advantage, but MetaRecord can talk to
 databases which is
 kind of useful at times.

 Could a BoundObj be a Field. Same distinction as above. A BoundObj[T] may
 hold a reference to a string value
 that is completely invalid. I'm not sure I see this in Field.

 cheers
 Oliver

 On Fri, May 29, 2009 at 6:22 PM, marius d. marius.dan...@gmail.comwrote:


 I see ... still the question remains. What are we going to do with two
 validators? I'd like to understand the principles of your addition
 (... I know I should have dig into the code but I don't have much time
 now).

 I'd like to understand as I said previously if we have redundant
 validators or complementary functionality so that people to not get
 confused.

 I'm not trying at all to be negative or anything, just trying to
 understand the value added.

 Br's,
 Marius

 On May 29, 11:01 am, Oliver Lambert olambo...@gmail.com wrote:
  I'm aware of S.error and my ValidationError uses it when I'm ready to
 show
  errors. I've briefly looked at the ValidationFunction and the thing I
 might
  stumble on is the errorType which I rely on.
 
  I may be able to refactor the code to use List[FieldError] as I don't
 think
  I rely on errorType at this point.
 
  I'll have a go at modifying the Binder code.
 
  cheers
  Oliver
 
  On Fri, May 29, 2009 at 5:05 PM, Marius marius.dan...@gmail.com
 wrote:
 
   Oliver,
 
   I very briefly looked on your code and I saw that you have your own
   validator there. How would that play with the existent validattors
   that Record has where each field has a list of :
 
   type ValidationFunction = MyType = Box[Node]
 
   Note that current MetaRecord's validator after evaluating the
   validators for each field it yields a List[FieldError] which can be
   easily naturally used with S.error function to show the error messages
   etc.
 
   Is there a redundancy or complementary functionality?
 
   Br's,
   Marius



 



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

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: Record with the new bind-immutable

2009-05-29 Thread Oliver Lambert
Oh, and I think I now have a better understanding of why David wanted me to
add this to the Record module.

On Fri, May 29, 2009 at 11:32 PM, Oliver Lambert olambo...@gmail.comwrote:

 Hi Marius,
 To try and answer your question, I had to go and look at the Record code
 in
 more detail. I hadn't recently written the Binder Validator, so it wasn't
 designed to be
 complementary to anything else (however, some of the naming and methodology
 is very
 similar in both sets of code).

 What I found.
 1) MetaRecord.validate === Binder.validate
 2) Field.validators === BoundObj.validations
 3) Field.validationFunction === Validator.validate
 4) List[FieldError]  === List[ValidationError]

 Can I get rid of Binder Validation and just use Record/Field validation?
 It certainly looks like I should try. However, I might have to add/change
 some of the original Lift code.
 For instance, I might want to add an errorType (with a default, so no code
 is broken) to FieldError.
 I might also want to move/change Field.validationFunction so its a little
 more
 like my Validator,with an errorType and toString (When I print my
 validators, the errorType give a little
 information on what they do, rather than just telling me I have a function
 - I also filter using
 the errorType)

 Other things of interest that I found.

 Could a Binder be a MetaRecord? There are definitely some similarities.
 Binder holds a set of
 immutable objects which can be an advantage, but MetaRecord can talk to
 databases which is
 kind of useful at times.

 Could a BoundObj be a Field. Same distinction as above. A BoundObj[T] may
 hold a reference to a string value
 that is completely invalid. I'm not sure I see this in Field.

 cheers
 Oliver

 On Fri, May 29, 2009 at 6:22 PM, marius d. marius.dan...@gmail.comwrote:


 I see ... still the question remains. What are we going to do with two
 validators? I'd like to understand the principles of your addition
 (... I know I should have dig into the code but I don't have much time
 now).

 I'd like to understand as I said previously if we have redundant
 validators or complementary functionality so that people to not get
 confused.

 I'm not trying at all to be negative or anything, just trying to
 understand the value added.

 Br's,
 Marius

 On May 29, 11:01 am, Oliver Lambert olambo...@gmail.com wrote:
  I'm aware of S.error and my ValidationError uses it when I'm ready to
 show
  errors. I've briefly looked at the ValidationFunction and the thing I
 might
  stumble on is the errorType which I rely on.
 
  I may be able to refactor the code to use List[FieldError] as I don't
 think
  I rely on errorType at this point.
 
  I'll have a go at modifying the Binder code.
 
  cheers
  Oliver
 
  On Fri, May 29, 2009 at 5:05 PM, Marius marius.dan...@gmail.com
 wrote:
 
   Oliver,
 
   I very briefly looked on your code and I saw that you have your own
   validator there. How would that play with the existent validattors
   that Record has where each field has a list of :
 
   type ValidationFunction = MyType = Box[Node]
 
   Note that current MetaRecord's validator after evaluating the
   validators for each field it yields a List[FieldError] which can be
   easily naturally used with S.error function to show the error messages
   etc.
 
   Is there a redundancy or complementary functionality?
 
   Br's,
   Marius
 



--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: JTA

2009-05-29 Thread Jonas Bonér

No perf difference. The annotations are turned into the same exact closures.

2009/5/29 Timothy Perrett timo...@getintheloop.eu:


 Are there any performance implications considering closures vs annotations?
 Agreed that closures are more lift like however.

 Cheers, Tim

 On 29/05/2009 10:21, marius d. marius.dan...@gmail.com wrote:


 I think that would be really good. But I'd rather not use annotations.
 Personally I find closures approach a much better fit here.

 withTxRequired {
   ... // do transational stuff

 }


 Br's,
 Marius

 On May 29, 11:55 am, Jonas Bonér jbo...@gmail.com wrote:
 Hi guys.

 I have been talking with David Pollak the rest of the lift team about
 adding JTA to Lift. I have implemented that for a product written in
 Scala some time ago. Now some of that code is OSS
 at:http://github.com/jboner/skalman/tree

 We used using two different APIs.
 1. Annotations (would require Lift to support proxied objects, e.g.
 grab them from a factory):

 @TransactionAttribute(REQUIRED)
 def transactionalMethod = { ... }

 2. Call-by-name:

 withTxRequired {
   ... // do transational stuff

 }

 But I don't know what fits Lift and would like to know how you guys
 would like to have JTA integrated.
 At which level? Which APIs? Etc.

 --
 Jonas Bonér

 twitter: @jboner
 blog:    http://jonasboner.com
 work:  http://crisp.se
 work:  http://scalablesolutions.se
 code:  http://github.com/jboner
 




 




-- 
Jonas Bonér

twitter: @jboner
blog:http://jonasboner.com
work:   http://crisp.se
work:   http://scalablesolutions.se
code:   http://github.com/jboner

--~--~-~--~~~---~--~~
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 to disable jQuery from lift application?

2009-05-29 Thread David Pollak
On Fri, May 29, 2009 at 1:23 AM, Narayanaswamy, Mohan 
mohan.narayanasw...@credit-suisse.com wrote:


 I will try to send one, But Google API was failing while trying to load
 banner.


I suspect the problem is that Lift renders pages as strict XHTML and sets
the mime type of responses to be application/xhtml+xml  This imposes much
stricter requirements on dynamically generated HTML.  Google Maps does not
work in this mode.  In Boot.scala try adding this line:

LiftRules.useXhtmlMimeType = false

And see if things work.

Thanks,

David


 Google just released those api's.

 Mohan

 -Original Message-
 From: liftweb@googlegroups.com [mailto:lift...@googlegroups.com] On Behalf
 Of Narayanaswamy, Mohan
 Sent: 28 May 2009 00:32
 To: Lift
 Subject: [Lift] Re: How to disable jQuery from lift application?


 As per my limited knowledge, Google javascript API fails. Below API, I am
 using it to transfer English to Tamil tranliteration.

 Webpage error details

 Message: Unexpected call to method or property access.
 Line: 22
 Char: 388
 Code: 0
 URI:
 http://www.google.com/uds/api/elements/1.0/1aac8bdeb1f85e7c5035029a61994691/transliteration.I.js


 Mohan

 On May 27, 8:21 pm, David Pollak feeder.of.the.be...@gmail.com
 wrote:
  Mohan,
 
  Marius answered your question, but I'm curious... how does jQuery
  conflict with the google library?  What kind of errors are you seeing?
 
  Thanks,
 
  David
 
  On Tue, May 26, 2009 at 5:50 PM, KaniniPazham 
 
 
 
 
 
  mohan.narayanasw...@credit-suisse.com wrote:
 
   I am using  Archetype basic and in my form, I am trying to
   integrate with Google Transliteration API. So in one of the page, I
   would like to disable jQuery as it conflicts with google
 Transliteration API.
 
   I found following function is generated and added automatically,
   they are not in my template.
 
   /divscript type=text/javascript // ![CDATA[
   jQuery(document).ready(function() {lift_successRegisterGC();}); var
   lift_page = 'F27052369736502T'; // ]] /script/body
 
   How could I disable generating such a automatic jQuery script?
   How could I disable jQuery for whole LiftApplication?
   How could I disable jQuery for only one page?
 
   Extremely sorry if the above questions are simple and stupid. Except
   Core-java, everything is new to me.
 
   Mohan
 
  --
  Lift, the simply functional web frameworkhttp://liftweb.net Beginning
  Scalahttp://www.apress.com/book/view/1430219890
  Follow me:http://twitter.com/dpp
  Git some:http://github.com/dpp- Hide quoted text -
 
  - Show quoted text -





 ==
 Please access the attached hyperlink for an important electronic
 communications disclaimer:

 http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html

 ==


 



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

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: JTA

2009-05-29 Thread Derek Chen-Becker
I'd vote for closures. We use annotations for JPA because we have to, but
IMHO closures provide a nicer semantic approach because they syntactically
enclose the block where the action is occurring.

Derek

On Fri, May 29, 2009 at 7:44 AM, Jonas Bonér jbo...@gmail.com wrote:


 No perf difference. The annotations are turned into the same exact
 closures.

 2009/5/29 Timothy Perrett timo...@getintheloop.eu:
 
 
  Are there any performance implications considering closures vs
 annotations?
  Agreed that closures are more lift like however.
 
  Cheers, Tim
 
  On 29/05/2009 10:21, marius d. marius.dan...@gmail.com wrote:
 
 
  I think that would be really good. But I'd rather not use annotations.
  Personally I find closures approach a much better fit here.
 
  withTxRequired {
... // do transational stuff
 
  }
 
 
  Br's,
  Marius
 
  On May 29, 11:55 am, Jonas Bonér jbo...@gmail.com wrote:
  Hi guys.
 
  I have been talking with David Pollak the rest of the lift team about
  adding JTA to Lift. I have implemented that for a product written in
  Scala some time ago. Now some of that code is OSS
  at:http://github.com/jboner/skalman/tree
 
  We used using two different APIs.
  1. Annotations (would require Lift to support proxied objects, e.g.
  grab them from a factory):
 
  @TransactionAttribute(REQUIRED)
  def transactionalMethod = { ... }
 
  2. Call-by-name:
 
  withTxRequired {
... // do transational stuff
 
  }
 
  But I don't know what fits Lift and would like to know how you guys
  would like to have JTA integrated.
  At which level? Which APIs? Etc.
 
  --
  Jonas Bonér
 
  twitter: @jboner
  blog:http://jonasboner.com
  work:  http://crisp.se
  work:  http://scalablesolutions.se
  code:  http://github.com/jboner
  
 
 
 
 
  
 



 --
 Jonas Bonér

 twitter: @jboner
 blog:http://jonasboner.com
 work:   http://crisp.se
 work:   http://scalablesolutions.se
 code:   http://github.com/jboner

 


--~--~-~--~~~---~--~~
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: Record with the new bind-immutable

2009-05-29 Thread Oliver Lambert
That would be very cool

On Fri, May 29, 2009 at 11:37 PM, David Pollak 
feeder.of.the.be...@gmail.com wrote:

 One thing I've been thinking about is optionally extending the Validator
 Functions to also emit JavaScript that would perform the validation in the
 browser... that would provide a seamless way to do client-side validation
 for validators (e.g., min len, max len, regex) that only rely on client-side
 data.


 On Fri, May 29, 2009 at 6:32 AM, Oliver Lambert olambo...@gmail.comwrote:

 Hi Marius,
 To try and answer your question, I had to go and look at the Record code
 in
 more detail. I hadn't recently written the Binder Validator, so it wasn't
 designed to be
 complementary to anything else (however, some of the naming and
 methodology is very
 similar in both sets of code).

 What I found.
 1) MetaRecord.validate === Binder.validate
 2) Field.validators === BoundObj.validations
 3) Field.validationFunction === Validator.validate
 4) List[FieldError]  === List[ValidationError]

 Can I get rid of Binder Validation and just use Record/Field validation?
 It certainly looks like I should try. However, I might have to add/change
 some of the original Lift code.
 For instance, I might want to add an errorType (with a default, so no code
 is broken) to FieldError.
 I might also want to move/change Field.validationFunction so its a little
 more
 like my Validator,with an errorType and toString (When I print my
 validators, the errorType give a little
 information on what they do, rather than just telling me I have a function
 - I also filter using
 the errorType)

 Other things of interest that I found.

 Could a Binder be a MetaRecord? There are definitely some similarities.
 Binder holds a set of
 immutable objects which can be an advantage, but MetaRecord can talk to
 databases which is
 kind of useful at times.

 Could a BoundObj be a Field. Same distinction as above. A BoundObj[T] may
 hold a reference to a string value
 that is completely invalid. I'm not sure I see this in Field.

 cheers
 Oliver

 On Fri, May 29, 2009 at 6:22 PM, marius d. marius.dan...@gmail.comwrote:


 I see ... still the question remains. What are we going to do with two
 validators? I'd like to understand the principles of your addition
 (... I know I should have dig into the code but I don't have much time
 now).

 I'd like to understand as I said previously if we have redundant
 validators or complementary functionality so that people to not get
 confused.

 I'm not trying at all to be negative or anything, just trying to
 understand the value added.

 Br's,
 Marius

 On May 29, 11:01 am, Oliver Lambert olambo...@gmail.com wrote:
  I'm aware of S.error and my ValidationError uses it when I'm ready to
 show
  errors. I've briefly looked at the ValidationFunction and the thing I
 might
  stumble on is the errorType which I rely on.
 
  I may be able to refactor the code to use List[FieldError] as I don't
 think
  I rely on errorType at this point.
 
  I'll have a go at modifying the Binder code.
 
  cheers
  Oliver
 
  On Fri, May 29, 2009 at 5:05 PM, Marius marius.dan...@gmail.com
 wrote:
 
   Oliver,
 
   I very briefly looked on your code and I saw that you have your own
   validator there. How would that play with the existent validattors
   that Record has where each field has a list of :
 
   type ValidationFunction = MyType = Box[Node]
 
   Note that current MetaRecord's validator after evaluating the
   validators for each field it yields a List[FieldError] which can be
   easily naturally used with S.error function to show the error
 messages
   etc.
 
   Is there a redundancy or complementary functionality?
 
   Br's,
   Marius







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


 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: JTA

2009-05-29 Thread Jonas Bonér

I'll go for closures. Much simpler and less intrusive into Lift.
The current impl is based on Atomikos and Hibernate, I'll start with
pushing that in and we can make it pluggable later.
For example for Hibernate one need to add a line to the hibernate
config to register the
org.hibernate.transaction.TransactionManagerLookup class in order to
make Hibernate aware of our TX manager.

Should I fork the github repo and submit patches or how do you guys work?

/Jonas


2009/5/29 Derek Chen-Becker dchenbec...@gmail.com:
 I'd vote for closures. We use annotations for JPA because we have to, but
 IMHO closures provide a nicer semantic approach because they syntactically
 enclose the block where the action is occurring.

 Derek

 On Fri, May 29, 2009 at 7:44 AM, Jonas Bonér jbo...@gmail.com wrote:

 No perf difference. The annotations are turned into the same exact
 closures.

 2009/5/29 Timothy Perrett timo...@getintheloop.eu:
 
 
  Are there any performance implications considering closures vs
  annotations?
  Agreed that closures are more lift like however.
 
  Cheers, Tim
 
  On 29/05/2009 10:21, marius d. marius.dan...@gmail.com wrote:
 
 
  I think that would be really good. But I'd rather not use annotations.
  Personally I find closures approach a much better fit here.
 
  withTxRequired {
    ... // do transational stuff
 
  }
 
 
  Br's,
  Marius
 
  On May 29, 11:55 am, Jonas Bonér jbo...@gmail.com wrote:
  Hi guys.
 
  I have been talking with David Pollak the rest of the lift team about
  adding JTA to Lift. I have implemented that for a product written in
  Scala some time ago. Now some of that code is OSS
  at:http://github.com/jboner/skalman/tree
 
  We used using two different APIs.
  1. Annotations (would require Lift to support proxied objects, e.g.
  grab them from a factory):
 
  @TransactionAttribute(REQUIRED)
  def transactionalMethod = { ... }
 
  2. Call-by-name:
 
  withTxRequired {
    ... // do transational stuff
 
  }
 
  But I don't know what fits Lift and would like to know how you guys
  would like to have JTA integrated.
  At which level? Which APIs? Etc.
 
  --
  Jonas Bonér
 
  twitter: @jboner
  blog:    http://jonasboner.com
  work:  http://crisp.se
  work:  http://scalablesolutions.se
  code:  http://github.com/jboner
  
 
 
 
 
  
 



 --
 Jonas Bonér

 twitter: @jboner
 blog:    http://jonasboner.com
 work:   http://crisp.se
 work:   http://scalablesolutions.se
 code:   http://github.com/jboner




 




-- 
Jonas Bonér

twitter: @jboner
blog:http://jonasboner.com
work:   http://crisp.se
work:   http://scalablesolutions.se
code:   http://github.com/jboner

--~--~-~--~~~---~--~~
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: JTA

2009-05-29 Thread Timothy Perrett


Committers can work on branches. The general solution is that if you are
working on something that is new or dangerous use a branch with the
following naming convention:

wip-name-feature

E.g. wip-tim-localization

Checkout the thread oliver started git ouch - I just posted instructions
there for creating branches on the lift repo for committers.

Good luck.

Cheers, Tim



On 29/05/2009 14:54, Jonas Bonér jbo...@gmail.com wrote:

 
 I'll go for closures. Much simpler and less intrusive into Lift.
 The current impl is based on Atomikos and Hibernate, I'll start with
 pushing that in and we can make it pluggable later.
 For example for Hibernate one need to add a line to the hibernate
 config to register the
 org.hibernate.transaction.TransactionManagerLookup class in order to
 make Hibernate aware of our TX manager.
 
 Should I fork the github repo and submit patches or how do you guys work?
 
 /Jonas
 
 
 2009/5/29 Derek Chen-Becker dchenbec...@gmail.com:
 I'd vote for closures. We use annotations for JPA because we have to, but
 IMHO closures provide a nicer semantic approach because they syntactically
 enclose the block where the action is occurring.
 
 Derek
 
 On Fri, May 29, 2009 at 7:44 AM, Jonas Bonér jbo...@gmail.com wrote:
 
 No perf difference. The annotations are turned into the same exact
 closures.
 
 2009/5/29 Timothy Perrett timo...@getintheloop.eu:
 
 
 Are there any performance implications considering closures vs
 annotations?
 Agreed that closures are more lift like however.
 
 Cheers, Tim
 
 On 29/05/2009 10:21, marius d. marius.dan...@gmail.com wrote:
 
 
 I think that would be really good. But I'd rather not use annotations.
 Personally I find closures approach a much better fit here.
 
 withTxRequired {
   ... // do transational stuff
 
 }
 
 
 Br's,
 Marius
 
 On May 29, 11:55 am, Jonas Bonér jbo...@gmail.com wrote:
 Hi guys.
 
 I have been talking with David Pollak the rest of the lift team about
 adding JTA to Lift. I have implemented that for a product written in
 Scala some time ago. Now some of that code is OSS
 at:http://github.com/jboner/skalman/tree
 
 We used using two different APIs.
 1. Annotations (would require Lift to support proxied objects, e.g.
 grab them from a factory):
 
 @TransactionAttribute(REQUIRED)
 def transactionalMethod = { ... }
 
 2. Call-by-name:
 
 withTxRequired {
   ... // do transational stuff
 
 }
 
 But I don't know what fits Lift and would like to know how you guys
 would like to have JTA integrated.
 At which level? Which APIs? Etc.
 
 --
 Jonas Bonér
 
 twitter: @jboner
 blog:    http://jonasboner.com
 work:  http://crisp.se
 work:  http://scalablesolutions.se
 code:  http://github.com/jboner
 
 
 
 
 
 
 
 
 
 
 --
 Jonas Bonér
 
 twitter: @jboner
 blog:    http://jonasboner.com
 work:   http://crisp.se
 work:   http://scalablesolutions.se
 code:   http://github.com/jboner
 
 
 
 
 
 
 
 



--~--~-~--~~~---~--~~
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: JTA

2009-05-29 Thread Derek Chen-Becker
Create a branch (see Oliver's recent thread) and push that. We cna look at
the branch before merging into master. Branching is preferred over forking
because it keeps things in the same stream.

Derek

On Fri, May 29, 2009 at 7:54 AM, Jonas Bonér jbo...@gmail.com wrote:


 I'll go for closures. Much simpler and less intrusive into Lift.
 The current impl is based on Atomikos and Hibernate, I'll start with
 pushing that in and we can make it pluggable later.
 For example for Hibernate one need to add a line to the hibernate
 config to register the
 org.hibernate.transaction.TransactionManagerLookup class in order to
 make Hibernate aware of our TX manager.

 Should I fork the github repo and submit patches or how do you guys work?

 /Jonas


 2009/5/29 Derek Chen-Becker dchenbec...@gmail.com:
  I'd vote for closures. We use annotations for JPA because we have to, but
  IMHO closures provide a nicer semantic approach because they
 syntactically
  enclose the block where the action is occurring.
 
  Derek
 
  On Fri, May 29, 2009 at 7:44 AM, Jonas Bonér jbo...@gmail.com wrote:
 
  No perf difference. The annotations are turned into the same exact
  closures.
 
  2009/5/29 Timothy Perrett timo...@getintheloop.eu:
  
  
   Are there any performance implications considering closures vs
   annotations?
   Agreed that closures are more lift like however.
  
   Cheers, Tim
  
   On 29/05/2009 10:21, marius d. marius.dan...@gmail.com wrote:
  
  
   I think that would be really good. But I'd rather not use
 annotations.
   Personally I find closures approach a much better fit here.
  
   withTxRequired {
 ... // do transational stuff
  
   }
  
  
   Br's,
   Marius
  
   On May 29, 11:55 am, Jonas Bonér jbo...@gmail.com wrote:
   Hi guys.
  
   I have been talking with David Pollak the rest of the lift team
 about
   adding JTA to Lift. I have implemented that for a product written in
   Scala some time ago. Now some of that code is OSS
   at:http://github.com/jboner/skalman/tree
  
   We used using two different APIs.
   1. Annotations (would require Lift to support proxied objects, e.g.
   grab them from a factory):
  
   @TransactionAttribute(REQUIRED)
   def transactionalMethod = { ... }
  
   2. Call-by-name:
  
   withTxRequired {
 ... // do transational stuff
  
   }
  
   But I don't know what fits Lift and would like to know how you guys
   would like to have JTA integrated.
   At which level? Which APIs? Etc.
  
   --
   Jonas Bonér
  
   twitter: @jboner
   blog:http://jonasboner.com
   work:  http://crisp.se
   work:  http://scalablesolutions.se
   code:  http://github.com/jboner
   
  
  
  
  
   
  
 
 
 
  --
  Jonas Bonér
 
  twitter: @jboner
  blog:http://jonasboner.com
  work:   http://crisp.se
  work:   http://scalablesolutions.se
  code:   http://github.com/jboner
 
 
 
 
  
 



 --
 Jonas Bonér

 twitter: @jboner
 blog:http://jonasboner.com
 work:   http://crisp.se
 work:   http://scalablesolutions.se
 code:   http://github.com/jboner

 


--~--~-~--~~~---~--~~
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: JTA

2009-05-29 Thread Jonas Bonér

Thanks Tim and Derek.
I'll work in a branch. Simpler for me as well.
/Jonas

2009/5/29 Timothy Perrett timo...@getintheloop.eu:


 Committers can work on branches. The general solution is that if you are
 working on something that is new or dangerous use a branch with the
 following naming convention:

 wip-name-feature

 E.g. wip-tim-localization

 Checkout the thread oliver started git ouch - I just posted instructions
 there for creating branches on the lift repo for committers.

 Good luck.

 Cheers, Tim



 On 29/05/2009 14:54, Jonas Bonér jbo...@gmail.com wrote:


 I'll go for closures. Much simpler and less intrusive into Lift.
 The current impl is based on Atomikos and Hibernate, I'll start with
 pushing that in and we can make it pluggable later.
 For example for Hibernate one need to add a line to the hibernate
 config to register the
 org.hibernate.transaction.TransactionManagerLookup class in order to
 make Hibernate aware of our TX manager.

 Should I fork the github repo and submit patches or how do you guys work?

 /Jonas


 2009/5/29 Derek Chen-Becker dchenbec...@gmail.com:
 I'd vote for closures. We use annotations for JPA because we have to, but
 IMHO closures provide a nicer semantic approach because they syntactically
 enclose the block where the action is occurring.

 Derek

 On Fri, May 29, 2009 at 7:44 AM, Jonas Bonér jbo...@gmail.com wrote:

 No perf difference. The annotations are turned into the same exact
 closures.

 2009/5/29 Timothy Perrett timo...@getintheloop.eu:


 Are there any performance implications considering closures vs
 annotations?
 Agreed that closures are more lift like however.

 Cheers, Tim

 On 29/05/2009 10:21, marius d. marius.dan...@gmail.com wrote:


 I think that would be really good. But I'd rather not use annotations.
 Personally I find closures approach a much better fit here.

 withTxRequired {
   ... // do transational stuff

 }


 Br's,
 Marius

 On May 29, 11:55 am, Jonas Bonér jbo...@gmail.com wrote:
 Hi guys.

 I have been talking with David Pollak the rest of the lift team about
 adding JTA to Lift. I have implemented that for a product written in
 Scala some time ago. Now some of that code is OSS
 at:http://github.com/jboner/skalman/tree

 We used using two different APIs.
 1. Annotations (would require Lift to support proxied objects, e.g.
 grab them from a factory):

 @TransactionAttribute(REQUIRED)
 def transactionalMethod = { ... }

 2. Call-by-name:

 withTxRequired {
   ... // do transational stuff

 }

 But I don't know what fits Lift and would like to know how you guys
 would like to have JTA integrated.
 At which level? Which APIs? Etc.

 --
 Jonas Bonér

 twitter: @jboner
 blog:    http://jonasboner.com
 work:  http://crisp.se
 work:  http://scalablesolutions.se
 code:  http://github.com/jboner










 --
 Jonas Bonér

 twitter: @jboner
 blog:    http://jonasboner.com
 work:   http://crisp.se
 work:   http://scalablesolutions.se
 code:   http://github.com/jboner











 




-- 
Jonas Bonér

twitter: @jboner
blog:http://jonasboner.com
work:   http://crisp.se
work:   http://scalablesolutions.se
code:   http://github.com/jboner

--~--~-~--~~~---~--~~
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] How important is AJAX to you?

2009-05-29 Thread Joe Wass

This may be heresy on this list, but I'll ask it anyway. A general
point for discussion which I'm raising because the Lift Book mentions
AJAX early on in the PocketChange app.

How important is AJAX and all the associated Web 2.0 stuff to you and
to your projects? I'm quite happy without Javascript and AJAX. More
often than not they're doing the kind of thing you could just as
easily do with traditional technologies. Save for one web-app (Google
Mail), I don't think a single site I use has been improved for it.
Particular examples are Slashdot and Facebook. Give me good old HTML
any day.

I've got a few projects in the pipeline and I intend to use Lift for
all of them, it looks excellent and from the source I've read very
nicely engineered. But I will expressly avoid using anything other
than old-fashioned HTML as much as I can, largely because I'm
targetting browsers of unknown vintage in less economically developed
countries and I'd like to be able to use my own site without cookies
or javascript if I want to.

Have I missed the point of Lift entirely? Am I in a small minority? Am
I crazy?

Joe

--~--~-~--~~~---~--~~
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 important is AJAX to you?

2009-05-29 Thread David Pollak
On Fri, May 29, 2009 at 8:41 AM, Jeremy Day jeremy@gmail.com wrote:

 All,

 I have a slightly related question.  I'm new to the list and a complete
 newbie to Lift (having only discovered it a couple of days ago), so forgive
 me for the potentially silly question.  Can you use Lift with Flex for the
 front end, rather than HTML/CSS/javascript?


Yes.  It tooks about 2 hours of coding when we unified the DHTML and Flash
versions of http://buyafeature.com to use the same APIs (it way mostly
removing hard-coded HTML from the API handlers.)

It was less than an hour when we moved ESME (
http://incubator.apache.org/esme/ ) from serving HTML to serving JSON
objects (although at this point, the view is rendered via JavaScript as
HTML, but the server doesn't know that.)




 Jeremy


 On Fri, May 29, 2009 at 9:58 AM, Joe Wass j...@folktunefinder.com wrote:


 This may be heresy on this list, but I'll ask it anyway. A general
 point for discussion which I'm raising because the Lift Book mentions
 AJAX early on in the PocketChange app.

 How important is AJAX and all the associated Web 2.0 stuff to you and
 to your projects? I'm quite happy without Javascript and AJAX. More
 often than not they're doing the kind of thing you could just as
 easily do with traditional technologies. Save for one web-app (Google
 Mail), I don't think a single site I use has been improved for it.
 Particular examples are Slashdot and Facebook. Give me good old HTML
 any day.

 I've got a few projects in the pipeline and I intend to use Lift for
 all of them, it looks excellent and from the source I've read very
 nicely engineered. But I will expressly avoid using anything other
 than old-fashioned HTML as much as I can, largely because I'm
 targetting browsers of unknown vintage in less economically developed
 countries and I'd like to be able to use my own site without cookies
 or javascript if I want to.

 Have I missed the point of Lift entirely? Am I in a small minority? Am
 I crazy?

 Joe




 



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

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: How important is AJAX to you?

2009-05-29 Thread David Pollak
On Fri, May 29, 2009 at 7:58 AM, Joe Wass j...@folktunefinder.com wrote:


 This may be heresy on this list, but I'll ask it anyway. A general
 point for discussion which I'm raising because the Lift Book mentions
 AJAX early on in the PocketChange app.

 How important is AJAX and all the associated Web 2.0 stuff to you and
 to your projects? I'm quite happy without Javascript and AJAX. More
 often than not they're doing the kind of thing you could just as
 easily do with traditional technologies. Save for one web-app (Google
 Mail), I don't think a single site I use has been improved for it.
 Particular examples are Slashdot and Facebook. Give me good old HTML
 any day.

 I've got a few projects in the pipeline and I intend to use Lift for
 all of them, it looks excellent and from the source I've read very
 nicely engineered. But I will expressly avoid using anything other
 than old-fashioned HTML as much as I can, largely because I'm
 targetting browsers of unknown vintage in less economically developed
 countries and I'd like to be able to use my own site without cookies
 or javascript if I want to.

 Have I missed the point of Lift entirely?


I think that a key take-away from Lift is the abstraction of the HTTP
request/response cycle so that higher level abstractions can happen...
basically, freeing the developer to focus on the business task at hand
rather than the plumbing of HTTP.  This requires state which means cookies.
 It does not require Ajax.


 Am I in a small minority? Am
 I crazy?

 Joe

 



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

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: How important is AJAX to you?

2009-05-29 Thread Timothy Perrett

Appreciate you are a busy man David, but from a community perspective I
think it would be awesome if you could pour some of your brain into a
whitepaper on this subject ­ your very right, its a key take away and an
important part of lifts ³sales pitch² as it were.

Cheers, Tim

On 29/05/2009 17:00, David Pollak feeder.of.the.be...@gmail.com wrote:

 I think that a key take-away from Lift is the abstraction of the HTTP
 request/response cycle so that higher level abstractions can happen...
 basically, freeing the developer to focus on the business task at hand rather
 than the plumbing of HTTP.  This requires state which means cookies.  It does
 not require Ajax.  
  


--~--~-~--~~~---~--~~
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 important is AJAX to you?

2009-05-29 Thread marius d.

You can use Lift perfectly fine without Ajax, javaScript or even
cookies. If you're turning off cookies from the container relative
paths for links, forms etc. will be provided with JSESSIONID quantity
for you so you don't have to do anything. This is otherwise known as
URL rewriting. So you can still have the same context semantics but
referred from URI not cookies.

Br's,
Marius

On May 29, 7:00 pm, David Pollak feeder.of.the.be...@gmail.com
wrote:
 On Fri, May 29, 2009 at 7:58 AM, Joe Wass j...@folktunefinder.com wrote:

  This may be heresy on this list, but I'll ask it anyway. A general
  point for discussion which I'm raising because the Lift Book mentions
  AJAX early on in the PocketChange app.

  How important is AJAX and all the associated Web 2.0 stuff to you and
  to your projects? I'm quite happy without Javascript and AJAX. More
  often than not they're doing the kind of thing you could just as
  easily do with traditional technologies. Save for one web-app (Google
  Mail), I don't think a single site I use has been improved for it.
  Particular examples are Slashdot and Facebook. Give me good old HTML
  any day.

  I've got a few projects in the pipeline and I intend to use Lift for
  all of them, it looks excellent and from the source I've read very
  nicely engineered. But I will expressly avoid using anything other
  than old-fashioned HTML as much as I can, largely because I'm
  targetting browsers of unknown vintage in less economically developed
  countries and I'd like to be able to use my own site without cookies
  or javascript if I want to.

  Have I missed the point of Lift entirely?

 I think that a key take-away from Lift is the abstraction of the HTTP
 request/response cycle so that higher level abstractions can happen...
 basically, freeing the developer to focus on the business task at hand
 rather than the plumbing of HTTP.  This requires state which means cookies.
  It does not require Ajax.

  Am I in a small minority? Am
  I crazy?

  Joe

 --
 Lift, the simply functional web frameworkhttp://liftweb.net
 Beginning Scalahttp://www.apress.com/book/view/1430219890
 Follow me:http://twitter.com/dpp
 Git some:http://github.com/dpp
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: How important is AJAX to you?

2009-05-29 Thread Randall R Schulz

On Friday May 29 2009, Joe Wass wrote:
 ...

 Have I missed the point of Lift entirely? Am I in a small minority?
 Am I crazy?

Perhaps. Perhaps. Probably not (but who really knows?)

Seriously, my interest in Lift (and Grails before it—don't shoot me) is 
in providing what I call BBIs (browser-based interfaces) as a 
completely competitive alternative to standard GUIs. Thus AJAX (by any 
name) is a necessity.

If your user base dictates strict page-load-per-interaction designs, 
that's your call. Only you know your requirements. But I think the bulk 
of new Web App development henceforward will make ever-increasing use 
of AJAX techniques. It's why Google is developing Chrome, after all.


 Joe


Randall Schulz

--~--~-~--~~~---~--~~
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 to disable jQuery from lift application?

2009-05-29 Thread Charles F. Munat

The thing that doesn't work, IIRC, is that application/xhtml+xml doesn't 
allow document.write(). The Google code (foolishly, IMO) depends on 
write() to write script elements to the page. For some things you can 
work around it by simply removing the use of write and just adding the 
script elements directly. That's how I've worked around it on my sites.

Chas.

David Pollak wrote:
 
 
 On Fri, May 29, 2009 at 1:23 AM, Narayanaswamy, Mohan 
 mohan.narayanasw...@credit-suisse.com 
 mailto:mohan.narayanasw...@credit-suisse.com wrote:
 
 
 I will try to send one, But Google API was failing while trying to
 load banner.
 
 
 I suspect the problem is that Lift renders pages as strict XHTML and 
 sets the mime type of responses to be application/xhtml+xml  This 
 imposes much stricter requirements on dynamically generated HTML. 
  Google Maps does not work in this mode.  In Boot.scala try adding this 
 line:
 
 LiftRules.useXhtmlMimeType = false
 
 And see if things work.
 
 Thanks,
 
 David
  
 
 Google just released those api's.
 
 Mohan
 
 -Original Message-
 From: liftweb@googlegroups.com mailto:liftweb@googlegroups.com
 [mailto:liftweb@googlegroups.com mailto:liftweb@googlegroups.com]
 On Behalf Of Narayanaswamy, Mohan
 Sent: 28 May 2009 00:32
 To: Lift
 Subject: [Lift] Re: How to disable jQuery from lift application?
 
 
 As per my limited knowledge, Google javascript API fails. Below API,
 I am using it to transfer English to Tamil tranliteration.
 
 Webpage error details
 
 Message: Unexpected call to method or property access.
 Line: 22
 Char: 388
 Code: 0
 URI:
 
 http://www.google.com/uds/api/elements/1.0/1aac8bdeb1f85e7c5035029a61994691/transliteration.I.js
 
 
 Mohan
 
 On May 27, 8:21 pm, David Pollak feeder.of.the.be...@gmail.com
 mailto:feeder.of.the.be...@gmail.com
 wrote:
   Mohan,
  
   Marius answered your question, but I'm curious... how does jQuery
   conflict with the google library?  What kind of errors are you
 seeing?
  
   Thanks,
  
   David
  
   On Tue, May 26, 2009 at 5:50 PM, KaniniPazham 
  
  
  
  
  
   mohan.narayanasw...@credit-suisse.com
 mailto:mohan.narayanasw...@credit-suisse.com wrote:
  
I am using  Archetype basic and in my form, I am trying to
integrate with Google Transliteration API. So in one of the page, I
would like to disable jQuery as it conflicts with google
 Transliteration API.
  
I found following function is generated and added automatically,
they are not in my template.
  
/divscript type=text/javascript // ![CDATA[
jQuery(document).ready(function() {lift_successRegisterGC();}); var
lift_page = 'F27052369736502T'; // ]] /script/body
  
How could I disable generating such a automatic jQuery script?
How could I disable jQuery for whole LiftApplication?
How could I disable jQuery for only one page?
  
Extremely sorry if the above questions are simple and stupid.
 Except
Core-java, everything is new to me.
  
Mohan
  
   --
   Lift, the simply functional web frameworkhttp://liftweb.net
 http://liftweb.net Beginning
   Scalahttp://www.apress.com/book/view/1430219890
 http://www.apress.com/book/view/1430219890
   Follow me:http://twitter.com/dpp
   Git some:http://github.com/dpp- Hide quoted text -
  
   - Show quoted text -
 
 
 
 
 
 ==
 Please access the attached hyperlink for an important electronic
 communications disclaimer:
 
 http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
 
 ==
 
 
 
 
 
 
 -- 
 Lift, the simply functional web framework http://liftweb.net
 Beginning Scala http://www.apress.com/book/view/1430219890
 Follow me: http://twitter.com/dpp
 Git some: http://github.com/dpp
 
  

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: JTA

2009-05-29 Thread Charles F. Munat

I agree.

Derek Chen-Becker wrote:
 I'd vote for closures. We use annotations for JPA because we have to, 
 but IMHO closures provide a nicer semantic approach because they 
 syntactically enclose the block where the action is occurring.
 
 Derek
 
 On Fri, May 29, 2009 at 7:44 AM, Jonas Bonér jbo...@gmail.com 
 mailto:jbo...@gmail.com wrote:
 
 
 No perf difference. The annotations are turned into the same exact
 closures.
 
 2009/5/29 Timothy Perrett timo...@getintheloop.eu:
  
  
   Are there any performance implications considering closures vs
 annotations?
   Agreed that closures are more lift like however.
  
   Cheers, Tim
  
   On 29/05/2009 10:21, marius d. marius.dan...@gmail.com
 mailto:marius.dan...@gmail.com wrote:
  
  
   I think that would be really good. But I'd rather not use
 annotations.
   Personally I find closures approach a much better fit here.
  
   withTxRequired {
 ... // do transational stuff
  
   }
  
  
   Br's,
   Marius
  
   On May 29, 11:55 am, Jonas Bonér jbo...@gmail.com
 mailto:jbo...@gmail.com wrote:
   Hi guys.
  
   I have been talking with David Pollak the rest of the lift team
 about
   adding JTA to Lift. I have implemented that for a product
 written in
   Scala some time ago. Now some of that code is OSS
   at:http://github.com/jboner/skalman/tree
  
   We used using two different APIs.
   1. Annotations (would require Lift to support proxied objects, e.g.
   grab them from a factory):
  
   @TransactionAttribute(REQUIRED)
   def transactionalMethod = { ... }
  
   2. Call-by-name:
  
   withTxRequired {
 ... // do transational stuff
  
   }
  
   But I don't know what fits Lift and would like to know how you guys
   would like to have JTA integrated.
   At which level? Which APIs? Etc.
  
   --
   Jonas Bonér
  
   twitter: @jboner
   blog:http://jonasboner.com
   work:  http://crisp.se
   work:  http://scalablesolutions.se
   code:  http://github.com/jboner
   
  
  
  
  
   
  
 
 
 
 --
 Jonas Bonér
 
 twitter: @jboner
 blog:http://jonasboner.com
 work:   http://crisp.se
 work:   http://scalablesolutions.se
 code:   http://github.com/jboner
 
 
 
 
  

--~--~-~--~~~---~--~~
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 important is AJAX to you?

2009-05-29 Thread Charles F. Munat

Lift makes AJAX easy, but Lift has nothing to do with AJAX. Lift makes a 
lot of things easy.

I've built half a dozen sites in Lift so far, with several more in the 
works, and most of them use no AJAX at all.

That said, there is a lot to be said for AJAX when used properly. I 
think you're way off on that. The problem is (as with pretty much 
everything else on the Web), it's rarely used properly. Google does it 
mostly right. Facebook is mostly a mess.

Chas.

Joe Wass wrote:
 This may be heresy on this list, but I'll ask it anyway. A general
 point for discussion which I'm raising because the Lift Book mentions
 AJAX early on in the PocketChange app.
 
 How important is AJAX and all the associated Web 2.0 stuff to you and
 to your projects? I'm quite happy without Javascript and AJAX. More
 often than not they're doing the kind of thing you could just as
 easily do with traditional technologies. Save for one web-app (Google
 Mail), I don't think a single site I use has been improved for it.
 Particular examples are Slashdot and Facebook. Give me good old HTML
 any day.
 
 I've got a few projects in the pipeline and I intend to use Lift for
 all of them, it looks excellent and from the source I've read very
 nicely engineered. But I will expressly avoid using anything other
 than old-fashioned HTML as much as I can, largely because I'm
 targetting browsers of unknown vintage in less economically developed
 countries and I'd like to be able to use my own site without cookies
 or javascript if I want to.
 
 Have I missed the point of Lift entirely? Am I in a small minority? Am
 I crazy?
 
 Joe
 
  

--~--~-~--~~~---~--~~
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: GAE - working example?

2009-05-29 Thread glenn

The ant target, runappserver, is an ant macro included with the gae
sdk.
It does the same thing that dev_appserver does. The problem I'm having
is that the HelloWorld.howdy snippet is suppose to return

spana href=?login=Log in/a/span

but it doesn't. The only thing displayed is liHomeli

I can trace the running code to the point where S.param(login)
matches Empty,

but that's about it.

Any idea why that is happening?

Glenn...

On May 28, 1:39 pm, denew de...@clear.net.nz wrote:
 I'm using maven for builds, so I can't help with your Ant process, but
 you need to start the appengine with something like:

 root\appengine-java-sdk-1.2.1\bin\dev_appserver target\webapp-1.0-
 SNAPSHOT

 i.e., not just the jetty:run. I have this in a batch file in the
 webapp directory.

 Despite the fact I got a simple 1-M running yesterday, the story gets
 bad when I start to add other relationships to entities that already
 have them
 - this is still WIP for me

 On May 29, 6:17 am, glenn gl...@exmbly.com wrote:

  I tried to get the sample at git://github.com/ymnk/lift-gae-api.git to
  work, but
  couldn't. Yes, I installed all the GAE jars in my local maven
  repository,but  launching
  with mvn jetty:run doesn't start up the App Engine, so I get the
  following
  exception:

  Exception occured while processing /
  Message: java.lang.NullPointerException
          com.google.appengine.api.users.UserServiceImpl.getCurrentUser
  (UserServiceImpl.java:44)
          foo.snippet.HelloWorld.howdy(HelloWorld.scala:13)

  because there val userService = UserServiceFactory.getUserService in
  HelloWorld is null.

  So, something is missing in the process - namely - getting Lift
  working in the App Engine. I even
  tried a different approach.

  Using the following ant build.xml:

  project name=gae-test
          property name=sdk.dir location=local path to/appengine-
  java-sdk-1.2.1 /
          property name=artifact_version value=0.0.1-SNAPSHOT/
          property name=target.war value=target/${ant.project.name}-$
  {artifact_version}/

          import file=${sdk.dir}/config/user/ant-macros.xml /

          target name=datanucleusenhance description=Performs JDO
  enhancement on compiled data classes.
                  enhance_war war=war /
          /target

          target name=copy_war
                  copy todir=war
                      fileset dir=${target.war}/
                    /copy

          /target

          target name=runserver depends=copy_war, datanucleusenhance
                description=Starts the development server.
                  dev_appserver war=war port= 
                          options
                                  arg value=--jvm_flag=-Xdebug/
                                  arg value=--jvm_flag=-
  Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=/
                          /options
                  /dev_appserver
          /target

          target name=update depends=datanucleusenhance
                description=Uploads the application to App Engine.
                  appcfg action=update war=war /
          /target

          target name=update_indexes depends=datanucleusenhance
                description=Uploads just the datastore index configuration to
  App Engine.
                  appcfg action=update_indexes war=war /
          /target

          target name=rollback depends=datanucleusenhance
                description=Rolls back an interrupted application update.
                  appcfg action=rollback war=war /
          /target

          target name=request_logs
                description=Downloads log data from App Engine for the
  application.
                  appcfg action=request_logs war=war
                          options
                                  arg value=--num_days=5/
                          /options
                          args
                                  arg value=logs.txt/
                          /args
                  /appcfg
          /target

  /project

  Running the runuser target creates a war directory in the root of my
  project, similar to
  what the GAE Eclipse plugin creates, and starts the App Engine, but
  nothing else.
  The application is not accessible from the URLhttp://localhost:.

  Am I doing something completely wrong, here?

  Glenn...

  On May 27, 2:38 pm, denew de...@clear.net.nz wrote:

   Embarassingly simple really - RTFM. Within the known limitation of
   using Lists for the collection, not Sets, the 1-M works. Now on to
   the compound keys...

   On May 28, 9:01 am, denew de...@clear.net.nz wrote:

Thanks for that Andy - I had tried using 1.1.2 and 1.1.3 and thought I
had gone back to a GAE-approved version - my mistake. I'll give that a
shot

On May 27, 9:11 pm, datanucleus andy_jeffer...@yahoo.com wrote:

 You're using invalid versions of DataNucleus jars (1.1.1+) with the
 GAEJ plugin for datanucleus. The current released plugin only allows
 

[Lift] Re: GAE - working example?

2009-05-29 Thread glenn

Forget that last post. I  got it working. I had template tag error
in my code.

Glenn...

On May 28, 1:39 pm, denew de...@clear.net.nz wrote:
 I'm using maven for builds, so I can't help with your Ant process, but
 you need to start the appengine with something like:

 root\appengine-java-sdk-1.2.1\bin\dev_appserver target\webapp-1.0-
 SNAPSHOT

 i.e., not just the jetty:run. I have this in a batch file in the
 webapp directory.

 Despite the fact I got a simple 1-M running yesterday, the story gets
 bad when I start to add other relationships to entities that already
 have them
 - this is still WIP for me

 On May 29, 6:17 am, glenn gl...@exmbly.com wrote:

  I tried to get the sample at git://github.com/ymnk/lift-gae-api.git to
  work, but
  couldn't. Yes, I installed all the GAE jars in my local maven
  repository,but  launching
  with mvn jetty:run doesn't start up the App Engine, so I get the
  following
  exception:

  Exception occured while processing /
  Message: java.lang.NullPointerException
          com.google.appengine.api.users.UserServiceImpl.getCurrentUser
  (UserServiceImpl.java:44)
          foo.snippet.HelloWorld.howdy(HelloWorld.scala:13)

  because there val userService = UserServiceFactory.getUserService in
  HelloWorld is null.

  So, something is missing in the process - namely - getting Lift
  working in the App Engine. I even
  tried a different approach.

  Using the following ant build.xml:

  project name=gae-test
          property name=sdk.dir location=local path to/appengine-
  java-sdk-1.2.1 /
          property name=artifact_version value=0.0.1-SNAPSHOT/
          property name=target.war value=target/${ant.project.name}-$
  {artifact_version}/

          import file=${sdk.dir}/config/user/ant-macros.xml /

          target name=datanucleusenhance description=Performs JDO
  enhancement on compiled data classes.
                  enhance_war war=war /
          /target

          target name=copy_war
                  copy todir=war
                      fileset dir=${target.war}/
                    /copy

          /target

          target name=runserver depends=copy_war, datanucleusenhance
                description=Starts the development server.
                  dev_appserver war=war port= 
                          options
                                  arg value=--jvm_flag=-Xdebug/
                                  arg value=--jvm_flag=-
  Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=/
                          /options
                  /dev_appserver
          /target

          target name=update depends=datanucleusenhance
                description=Uploads the application to App Engine.
                  appcfg action=update war=war /
          /target

          target name=update_indexes depends=datanucleusenhance
                description=Uploads just the datastore index configuration to
  App Engine.
                  appcfg action=update_indexes war=war /
          /target

          target name=rollback depends=datanucleusenhance
                description=Rolls back an interrupted application update.
                  appcfg action=rollback war=war /
          /target

          target name=request_logs
                description=Downloads log data from App Engine for the
  application.
                  appcfg action=request_logs war=war
                          options
                                  arg value=--num_days=5/
                          /options
                          args
                                  arg value=logs.txt/
                          /args
                  /appcfg
          /target

  /project

  Running the runuser target creates a war directory in the root of my
  project, similar to
  what the GAE Eclipse plugin creates, and starts the App Engine, but
  nothing else.
  The application is not accessible from the URLhttp://localhost:.

  Am I doing something completely wrong, here?

  Glenn...

  On May 27, 2:38 pm, denew de...@clear.net.nz wrote:

   Embarassingly simple really - RTFM. Within the known limitation of
   using Lists for the collection, not Sets, the 1-M works. Now on to
   the compound keys...

   On May 28, 9:01 am, denew de...@clear.net.nz wrote:

Thanks for that Andy - I had tried using 1.1.2 and 1.1.3 and thought I
had gone back to a GAE-approved version - my mistake. I'll give that a
shot

On May 27, 9:11 pm, datanucleus andy_jeffer...@yahoo.com wrote:

 You're using invalid versions of DataNucleus jars (1.1.1+) with the
 GAEJ plugin for datanucleus. The current released plugin only allows
 DataNucleus 1.1.0 jars. Their next versions should allow the latest
 DataNucleus jars to be used, but you'll have to wait til they release
 it ;-)

 --Andy (DataNucleus)- Hide quoted text -

- Show quoted text -- Hide quoted text -

  - Show quoted text -

--~--~-~--~~~---~--~~
You received this 

[Lift] Dependent fields in form

2009-05-29 Thread feelgood

Is it real to create form with dependent field? Suppose whe have two
select boxes: for the country and for the city. It would be quite
good, if country selection trigger updating of the cities list.

--~--~-~--~~~---~--~~
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] LiftOff

2009-05-29 Thread Meredith Gregory
David,

i didn't realize the LiftOff conflicted with a long-planned participation in
a Guitar Craft course. i will definitely send good will and good wishes to
the community. i'm certain you guys will have much too much fun. Maybe i can
organize some kind of functional-computing-and-the-web event in the Pacific
Northwest in the not too distant future, so that i can catch up with
everybody.

Best wishes,

--greg

-- 
L.G. Meredith
Managing Partner
Biosimilarity LLC
1219 NW 83rd St
Seattle, WA 98117

+1 206.650.3740

http://biosimilarity.blogspot.com

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: JTA

2009-05-29 Thread Timothy Perrett
Wow, that I would very much like to see... using for comprehensions  
for transactions!

Cheers, Tim

Sent from my iPhone

On 29 May 2009, at 23:54, Meredith Gregory lgreg.mered...@gmail.com  
wrote:

 Jonas,

 i applaud the effort. i agree with DPP sentiments regarding  
 annotations. That said, i feel pretty comfortable that transactions  
 fit entirely in a monadic context. Since LINQ demonstrates that  
 query fits into monadic context, and there's already at least one  
 Scala implementation of LINQ, might i suggest that you come up with  
 a monadic presentation first and then map the sugar to that. My  
 guess is that the sugar will be informed by the monadic presentation.

 To be suggestive... think of a context with a Tx object, TxCtxt, as  
 like an Option widget. Then you do stuff inside a transaction via

 for ( myTransactedWidget - TxCtxt if someCondition ) yield  
 { someOperationsThatNeedToBeTransacted }

 If you implement flatMap, yada, on TxCtxt you can have fun with  
 nested transaction semantics. The point is that this should just  
 work with a LINQ-like presentation of query.

 Best wishes,

 --greg

 On Fri, May 29, 2009 at 6:54 AM, Jonas Bonér jbo...@gmail.com wrot 
 e:

 I'll go for closures. Much simpler and less intrusive into Lift.
 The current impl is based on Atomikos and Hibernate, I'll start with
 pushing that in and we can make it pluggable later.
 For example for Hibernate one need to add a line to the hibernate
 config to register the
 org.hibernate.transaction.TransactionManagerLookup class in order to
 make Hibernate aware of our TX manager.

 Should I fork the github repo and submit patches or how do you guys  
 work?

 /Jonas


 2009/5/29 Derek Chen-Becker dchenbec...@gmail.com:
  I'd vote for closures. We use annotations for JPA because we have  
 to, but
  IMHO closures provide a nicer semantic approach because they  
 syntactically
  enclose the block where the action is occurring.
 
  Derek
 
  On Fri, May 29, 2009 at 7:44 AM, Jonas Bonér jbo...@gmail.com wr 
 ote:
 
  No perf difference. The annotations are turned into the same exact
  closures.
 
  2009/5/29 Timothy Perrett timo...@getintheloop.eu:
  
  
   Are there any performance implications considering closures vs
   annotations?
   Agreed that closures are more lift like however.
  
   Cheers, Tim
  
   On 29/05/2009 10:21, marius d. marius.dan...@gmail.com wrote:
  
  
   I think that would be really good. But I'd rather not use  
 annotations.
   Personally I find closures approach a much better fit here.
  
   withTxRequired {
 ... // do transational stuff
  
   }
  
  
   Br's,
   Marius
  
   On May 29, 11:55 am, Jonas Bonér jbo...@gmail.com wrote:
   Hi guys.
  
   I have been talking with David Pollak the rest of the lift  
 team about
   adding JTA to Lift. I have implemented that for a product  
 written in
   Scala some time ago. Now some of that code is OSS
   at:http://github.com/jboner/skalman/tree
  
   We used using two different APIs.
   1. Annotations (would require Lift to support proxied  
 objects, e.g.
   grab them from a factory):
  
   @TransactionAttribute(REQUIRED)
   def transactionalMethod = { ... }
  
   2. Call-by-name:
  
   withTxRequired {
 ... // do transational stuff
  
   }
  
   But I don't know what fits Lift and would like to know how  
 you guys
   would like to have JTA integrated.
   At which level? Which APIs? Etc.
  
   --
   Jonas Bonér
  
   twitter: @jboner
   blog:http://jonasboner.com
   work:  http://crisp.se
   work:  http://scalablesolutions.se
   code:  http://github.com/jboner
   
  
  
  
  
   
  
 
 
 
  --
  Jonas Bonér
 
  twitter: @jboner
  blog:http://jonasboner.com
  work:   http://crisp.se
  work:   http://scalablesolutions.se
  code:   http://github.com/jboner
 
 
 
 
  
 



 --
 Jonas Bonér

 twitter: @jboner
 blog:http://jonasboner.com
 work:   http://crisp.se
 work:   http://scalablesolutions.se
 code:   http://github.com/jboner





 -- 
 L.G. Meredith
 Managing Partner
 Biosimilarity LLC
 1219 NW 83rd St
 Seattle, WA 98117

 +1 206.650.3740

 http://biosimilarity.blogspot.com

 

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: How important is AJAX to you?

2009-05-29 Thread Meredith Gregory
Joe,

i love questions like this: 'what are the real requirements?'

i have no particular interest in technology like AJAX -- except as a means
to an end. i need to be able to build sites that are the web's equivalent of
CSCW apps from the late 80s/early 90s. In the web apps i'm working on users
have an experience of sharing a common space to design and edit complex
computational models and large, rich data sets.

One can imagine all sorts of technologies to do this on the existing web
infrastructure. The real issue is not having to reinvent a bunch of stuff in
order to remain focused on the very hard problems of providing the stuff
above. AJAX took off. That fact that it got embodied in a bunch of
unmaintainable crap like JavaScript -- well i'll ride that wave for a while.


Frameworks like Lift can alleviate some of the problem, but you really need
a good, statically typed language on the client side. A few people are
beginning to take this problem on. It'd be great to see a ScalaScript for
rich client-side experiences.

Best wishes,

--greg

On Fri, May 29, 2009 at 10:36 AM, Charles F. Munat c...@munat.com wrote:


 Lift makes AJAX easy, but Lift has nothing to do with AJAX. Lift makes a
 lot of things easy.

 I've built half a dozen sites in Lift so far, with several more in the
 works, and most of them use no AJAX at all.

 That said, there is a lot to be said for AJAX when used properly. I
 think you're way off on that. The problem is (as with pretty much
 everything else on the Web), it's rarely used properly. Google does it
 mostly right. Facebook is mostly a mess.

 Chas.

 Joe Wass wrote:
  This may be heresy on this list, but I'll ask it anyway. A general
  point for discussion which I'm raising because the Lift Book mentions
  AJAX early on in the PocketChange app.
 
  How important is AJAX and all the associated Web 2.0 stuff to you and
  to your projects? I'm quite happy without Javascript and AJAX. More
  often than not they're doing the kind of thing you could just as
  easily do with traditional technologies. Save for one web-app (Google
  Mail), I don't think a single site I use has been improved for it.
  Particular examples are Slashdot and Facebook. Give me good old HTML
  any day.
 
  I've got a few projects in the pipeline and I intend to use Lift for
  all of them, it looks excellent and from the source I've read very
  nicely engineered. But I will expressly avoid using anything other
  than old-fashioned HTML as much as I can, largely because I'm
  targetting browsers of unknown vintage in less economically developed
  countries and I'd like to be able to use my own site without cookies
  or javascript if I want to.
 
  Have I missed the point of Lift entirely? Am I in a small minority? Am
  I crazy?
 
  Joe
 
  

 



-- 
L.G. Meredith
Managing Partner
Biosimilarity LLC
1219 NW 83rd St
Seattle, WA 98117

+1 206.650.3740

http://biosimilarity.blogspot.com

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: JTA

2009-05-29 Thread Jorge Ortiz
I, too, would like to see Transactions be monadic.

--j

On Fri, May 29, 2009 at 3:54 PM, Meredith Gregory
lgreg.mered...@gmail.comwrote:

 Jonas,

 i applaud the effort. i agree with DPP sentiments regarding annotations.
 That said, i feel pretty comfortable that transactions fit entirely in a
 monadic context. Since LINQ demonstrates that query fits into monadic
 context, and there's already at least one Scala implementation of 
 LINQhttp://github.com/szeiger/scala-query/tree/master,
 might i suggest that you come up with a monadic presentation first and then
 map the sugar to that. My guess is that the sugar will be informed by the
 monadic presentation.

 To be suggestive... think of a context with a Tx object, TxCtxt, as like an
 Option widget. Then you do stuff inside a transaction via

 for ( myTransactedWidget - TxCtxt if someCondition ) yield {
 someOperationsThatNeedToBeTransacted }

 If you implement flatMap, yada, on TxCtxt you can have fun with nested
 transaction semantics. The point is that this should just work with a
 LINQ-like presentation of query.

 Best wishes,

 --greg


 On Fri, May 29, 2009 at 6:54 AM, Jonas Bonér jbo...@gmail.com wrote:


 I'll go for closures. Much simpler and less intrusive into Lift.
 The current impl is based on Atomikos and Hibernate, I'll start with
 pushing that in and we can make it pluggable later.
 For example for Hibernate one need to add a line to the hibernate
 config to register the
 org.hibernate.transaction.TransactionManagerLookup class in order to
 make Hibernate aware of our TX manager.

 Should I fork the github repo and submit patches or how do you guys work?

 /Jonas


 2009/5/29 Derek Chen-Becker dchenbec...@gmail.com:
  I'd vote for closures. We use annotations for JPA because we have to,
 but
  IMHO closures provide a nicer semantic approach because they
 syntactically
  enclose the block where the action is occurring.
 
  Derek
 
  On Fri, May 29, 2009 at 7:44 AM, Jonas Bonér jbo...@gmail.com wrote:
 
  No perf difference. The annotations are turned into the same exact
  closures.
 
  2009/5/29 Timothy Perrett timo...@getintheloop.eu:
  
  
   Are there any performance implications considering closures vs
   annotations?
   Agreed that closures are more lift like however.
  
   Cheers, Tim
  
   On 29/05/2009 10:21, marius d. marius.dan...@gmail.com wrote:
  
  
   I think that would be really good. But I'd rather not use
 annotations.
   Personally I find closures approach a much better fit here.
  
   withTxRequired {
 ... // do transational stuff
  
   }
  
  
   Br's,
   Marius
  
   On May 29, 11:55 am, Jonas Bonér jbo...@gmail.com wrote:
   Hi guys.
  
   I have been talking with David Pollak the rest of the lift team
 about
   adding JTA to Lift. I have implemented that for a product written
 in
   Scala some time ago. Now some of that code is OSS
   at:http://github.com/jboner/skalman/tree
  
   We used using two different APIs.
   1. Annotations (would require Lift to support proxied objects, e.g.
   grab them from a factory):
  
   @TransactionAttribute(REQUIRED)
   def transactionalMethod = { ... }
  
   2. Call-by-name:
  
   withTxRequired {
 ... // do transational stuff
  
   }
  
   But I don't know what fits Lift and would like to know how you guys
   would like to have JTA integrated.
   At which level? Which APIs? Etc.
  
   --
   Jonas Bonér
  
   twitter: @jboner
   blog:http://jonasboner.com
   work:  http://crisp.se
   work:  http://scalablesolutions.se
   code:  http://github.com/jboner
   
  
  
  
  
   
  
 
 
 
  --
  Jonas Bonér
 
  twitter: @jboner
  blog:http://jonasboner.com
  work:   http://crisp.se
  work:   http://scalablesolutions.se
  code:   http://github.com/jboner
 
 
 
 
  
 



 --
 Jonas Bonér

 twitter: @jboner
 blog:http://jonasboner.com
 work:   http://crisp.se
 work:   http://scalablesolutions.se
 code:   http://github.com/jboner





 --
 L.G. Meredith
 Managing Partner
 Biosimilarity LLC
 1219 NW 83rd St
 Seattle, WA 98117

 +1 206.650.3740

 http://biosimilarity.blogspot.com


 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: LiftOff

2009-05-29 Thread Charles F. Munat

Rats.

Meredith Gregory wrote:
 David,
 
 i didn't realize the LiftOff conflicted with a long-planned 
 participation in a Guitar Craft course. i will definitely send good will 
 and good wishes to the community. i'm certain you guys will have much 
 too much fun. Maybe i can organize some kind of 
 functional-computing-and-the-web event in the Pacific Northwest in the 
 not too distant future, so that i can catch up with everybody.
 
 Best wishes,
 
 --greg
 
 -- 
 L.G. Meredith
 Managing Partner
 Biosimilarity LLC
 1219 NW 83rd St
 Seattle, WA 98117
 
 +1 206.650.3740
 
 http://biosimilarity.blogspot.com
 
  

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~--~~~~--~~--~--~---



[Lift] Re: JTA

2009-05-29 Thread Josh Suereth
+30

So many pluses in fact, that we are already experimenting with this concept
at work.  Unfortunately, the source may not be openable.  I'd be more than
willing to contribute to an open-source JTA monadic library.

for( tx - context) {
   //Do stuff
   if(somethingBad) tx.rollback()
   //Do more stuff
}

Just seems to fit the needs of my software *much* better than the magical
annotated method...errr... method seen in EJB and Spring.


-Josh

On Fri, May 29, 2009 at 9:16 PM, Jorge Ortiz jorge.or...@gmail.com wrote:

 I, too, would like to see Transactions be monadic.

 --j


 On Fri, May 29, 2009 at 3:54 PM, Meredith Gregory 
 lgreg.mered...@gmail.com wrote:

 Jonas,

 i applaud the effort. i agree with DPP sentiments regarding annotations.
 That said, i feel pretty comfortable that transactions fit entirely in a
 monadic context. Since LINQ demonstrates that query fits into monadic
 context, and there's already at least one Scala implementation of 
 LINQhttp://github.com/szeiger/scala-query/tree/master,
 might i suggest that you come up with a monadic presentation first and then
 map the sugar to that. My guess is that the sugar will be informed by the
 monadic presentation.

 To be suggestive... think of a context with a Tx object, TxCtxt, as like
 an Option widget. Then you do stuff inside a transaction via

 for ( myTransactedWidget - TxCtxt if someCondition ) yield {
 someOperationsThatNeedToBeTransacted }

 If you implement flatMap, yada, on TxCtxt you can have fun with nested
 transaction semantics. The point is that this should just work with a
 LINQ-like presentation of query.

 Best wishes,

 --greg


 On Fri, May 29, 2009 at 6:54 AM, Jonas Bonér jbo...@gmail.com wrote:


 I'll go for closures. Much simpler and less intrusive into Lift.
 The current impl is based on Atomikos and Hibernate, I'll start with
 pushing that in and we can make it pluggable later.
 For example for Hibernate one need to add a line to the hibernate
 config to register the
 org.hibernate.transaction.TransactionManagerLookup class in order to
 make Hibernate aware of our TX manager.

 Should I fork the github repo and submit patches or how do you guys work?

 /Jonas


 2009/5/29 Derek Chen-Becker dchenbec...@gmail.com:
  I'd vote for closures. We use annotations for JPA because we have to,
 but
  IMHO closures provide a nicer semantic approach because they
 syntactically
  enclose the block where the action is occurring.
 
  Derek
 
  On Fri, May 29, 2009 at 7:44 AM, Jonas Bonér jbo...@gmail.com wrote:
 
  No perf difference. The annotations are turned into the same exact
  closures.
 
  2009/5/29 Timothy Perrett timo...@getintheloop.eu:
  
  
   Are there any performance implications considering closures vs
   annotations?
   Agreed that closures are more lift like however.
  
   Cheers, Tim
  
   On 29/05/2009 10:21, marius d. marius.dan...@gmail.com wrote:
  
  
   I think that would be really good. But I'd rather not use
 annotations.
   Personally I find closures approach a much better fit here.
  
   withTxRequired {
 ... // do transational stuff
  
   }
  
  
   Br's,
   Marius
  
   On May 29, 11:55 am, Jonas Bonér jbo...@gmail.com wrote:
   Hi guys.
  
   I have been talking with David Pollak the rest of the lift team
 about
   adding JTA to Lift. I have implemented that for a product written
 in
   Scala some time ago. Now some of that code is OSS
   at:http://github.com/jboner/skalman/tree
  
   We used using two different APIs.
   1. Annotations (would require Lift to support proxied objects,
 e.g.
   grab them from a factory):
  
   @TransactionAttribute(REQUIRED)
   def transactionalMethod = { ... }
  
   2. Call-by-name:
  
   withTxRequired {
 ... // do transational stuff
  
   }
  
   But I don't know what fits Lift and would like to know how you
 guys
   would like to have JTA integrated.
   At which level? Which APIs? Etc.
  
   --
   Jonas Bonér
  
   twitter: @jboner
   blog:http://jonasboner.com
   work:  http://crisp.se
   work:  http://scalablesolutions.se
   code:  http://github.com/jboner
   
  
  
  
  
   
  
 
 
 
  --
  Jonas Bonér
 
  twitter: @jboner
  blog:http://jonasboner.com
  work:   http://crisp.se
  work:   http://scalablesolutions.se
  code:   http://github.com/jboner
 
 
 
 
  
 



 --
 Jonas Bonér

 twitter: @jboner
 blog:http://jonasboner.com
 work:   http://crisp.se
 work:   http://scalablesolutions.se
 code:   http://github.com/jboner





 --
 L.G. Meredith
 Managing Partner
 Biosimilarity LLC
 1219 NW 83rd St
 Seattle, WA 98117

 +1 206.650.3740

 http://biosimilarity.blogspot.com





 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Lift group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 

[Lift] Re: JTA

2009-05-29 Thread David Pollak
On Fri, May 29, 2009 at 7:19 PM, Josh Suereth joshua.suer...@gmail.comwrote:

 +30


See http://github.com/dpp/goatrodeo/tree/master



 So many pluses in fact, that we are already experimenting with this concept
 at work.  Unfortunately, the source may not be openable.  I'd be more than
 willing to contribute to an open-source JTA monadic library.

 for( tx - context) {
//Do stuff
if(somethingBad) tx.rollback()
//Do more stuff
 }

 Just seems to fit the needs of my software *much* better than the magical
 annotated method...errr... method seen in EJB and Spring.


 -Josh


 On Fri, May 29, 2009 at 9:16 PM, Jorge Ortiz jorge.or...@gmail.comwrote:

 I, too, would like to see Transactions be monadic.

 --j


 On Fri, May 29, 2009 at 3:54 PM, Meredith Gregory 
 lgreg.mered...@gmail.com wrote:

 Jonas,

 i applaud the effort. i agree with DPP sentiments regarding annotations.
 That said, i feel pretty comfortable that transactions fit entirely in a
 monadic context. Since LINQ demonstrates that query fits into monadic
 context, and there's already at least one Scala implementation of 
 LINQhttp://github.com/szeiger/scala-query/tree/master,
 might i suggest that you come up with a monadic presentation first and then
 map the sugar to that. My guess is that the sugar will be informed by the
 monadic presentation.

 To be suggestive... think of a context with a Tx object, TxCtxt, as like
 an Option widget. Then you do stuff inside a transaction via

 for ( myTransactedWidget - TxCtxt if someCondition ) yield {
 someOperationsThatNeedToBeTransacted }

 If you implement flatMap, yada, on TxCtxt you can have fun with nested
 transaction semantics. The point is that this should just work with a
 LINQ-like presentation of query.

 Best wishes,

 --greg


 On Fri, May 29, 2009 at 6:54 AM, Jonas Bonér jbo...@gmail.com wrote:


 I'll go for closures. Much simpler and less intrusive into Lift.
 The current impl is based on Atomikos and Hibernate, I'll start with
 pushing that in and we can make it pluggable later.
 For example for Hibernate one need to add a line to the hibernate
 config to register the
 org.hibernate.transaction.TransactionManagerLookup class in order to
 make Hibernate aware of our TX manager.

 Should I fork the github repo and submit patches or how do you guys
 work?

 /Jonas


 2009/5/29 Derek Chen-Becker dchenbec...@gmail.com:
  I'd vote for closures. We use annotations for JPA because we have to,
 but
  IMHO closures provide a nicer semantic approach because they
 syntactically
  enclose the block where the action is occurring.
 
  Derek
 
  On Fri, May 29, 2009 at 7:44 AM, Jonas Bonér jbo...@gmail.com
 wrote:
 
  No perf difference. The annotations are turned into the same exact
  closures.
 
  2009/5/29 Timothy Perrett timo...@getintheloop.eu:
  
  
   Are there any performance implications considering closures vs
   annotations?
   Agreed that closures are more lift like however.
  
   Cheers, Tim
  
   On 29/05/2009 10:21, marius d. marius.dan...@gmail.com wrote:
  
  
   I think that would be really good. But I'd rather not use
 annotations.
   Personally I find closures approach a much better fit here.
  
   withTxRequired {
 ... // do transational stuff
  
   }
  
  
   Br's,
   Marius
  
   On May 29, 11:55 am, Jonas Bonér jbo...@gmail.com wrote:
   Hi guys.
  
   I have been talking with David Pollak the rest of the lift team
 about
   adding JTA to Lift. I have implemented that for a product written
 in
   Scala some time ago. Now some of that code is OSS
   at:http://github.com/jboner/skalman/tree
  
   We used using two different APIs.
   1. Annotations (would require Lift to support proxied objects,
 e.g.
   grab them from a factory):
  
   @TransactionAttribute(REQUIRED)
   def transactionalMethod = { ... }
  
   2. Call-by-name:
  
   withTxRequired {
 ... // do transational stuff
  
   }
  
   But I don't know what fits Lift and would like to know how you
 guys
   would like to have JTA integrated.
   At which level? Which APIs? Etc.
  
   --
   Jonas Bonér
  
   twitter: @jboner
   blog:http://jonasboner.com
   work:  http://crisp.se
   work:  http://scalablesolutions.se
   code:  http://github.com/jboner
   
  
  
  
  
   
  
 
 
 
  --
  Jonas Bonér
 
  twitter: @jboner
  blog:http://jonasboner.com
  work:   http://crisp.se
  work:   http://scalablesolutions.se
  code:   http://github.com/jboner
 
 
 
 
  
 



 --
 Jonas Bonér

 twitter: @jboner
 blog:http://jonasboner.com
 work:   http://crisp.se
 work:   http://scalablesolutions.se
 code:   http://github.com/jboner





 --
 L.G. Meredith
 Managing Partner
 Biosimilarity LLC
 1219 NW 83rd St
 Seattle, WA 98117

 +1 206.650.3740

 http://biosimilarity.blogspot.com








 



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