[Lift] Re: The Lift 1.1 list
I have been reading up on OSGi with some discipline it could allow Erlang like live upgrades (also nice to not have to shutdown a JVM, so +1. I'm curious on the Portlet support - is that embedding portlets in snippets and/or creating portlets (rather than servlets)? Marc On 02/04/2009, at 3:11 AM, David Pollak wrote: Folks, I think we've got our Lift 1.1 list. If anyone has anything to add, please speak up now. Improved documentation: better VScalaDoc coverage as well as better tutorial and cook-book documentation. Improved J2EE support including JTA and Portlets. Finish Record/Field code with backing store including JDBC, JPA and Goat Rodeo (what's Goat Rodeo? http://goatrodeo.org) Improved client-side JavaScript support and better JavaScript abstractions. Client/Server data synchronization (integrated with Record/Field) Improved support for REST. Improved performance including caching templates when running in production mode. OSGi support. Improved testing framework and better testing support when running in test mode. Implement Servlet 3.0 support. HTML 5 and Web Sockets support and integration with Kaazing's Web Sockets server. Also, sensing which browser is making the request and performing optimizations based on that browser's characteristics (specifically, Chrome and Firefox 3.1 support) We will have bug-fix releases of 1.0 along the way and we'll have a release off the 1.0 branch when Scala 2.8 is released. --~--~-~--~~~---~--~~ 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: The Lift 1.1 list
Have you looked at Windmill? http://www.getwindmill.com/ From what I've heard it's pretty cool. Chas. David Pollak wrote: On Thu, Apr 2, 2009 at 10:09 AM, Bill Venners b...@artima.com mailto:b...@artima.com wrote: Hi David, On Thu, Apr 2, 2009 at 9:28 PM, David Pollak feeder.of.the.be...@gmail.com mailto:feeder.of.the.be...@gmail.com wrote: On Thu, Apr 2, 2009 at 2:30 AM, Bill Venners b...@artima.com mailto:b...@artima.com wrote: Hi David, On Thu, Apr 2, 2009 at 12:11 AM, David Pollak feeder.of.the.be...@gmail.com mailto:feeder.of.the.be...@gmail.com wrote: Folks, Improved testing framework and better testing support when running in test mode. Can you elaborate on what your plans are for this? It's a goal, not a set of plans. I'm expecting one of the committers would take ownership and figure it out. Wanna be a committer, take ownership, and figure it out? Ooh, I stepped in that one. Yeah... don't you know the rule... get a good idea and you own it. I'm just the Tom Sawyer who's convincing the smart folks to white-wash my fence/build Lift. ;-) The testing Lift apps is a good, real use case for both ScalaTest and Specs. I hope to meet with Eric Torreborre Monday. I'll talk with him about what's needed for Lift, as I think he's more familiar with its testing needs. I have definitely wanted to do some work with Lift so I can become more familiar with it as a web app framework, but just haven't had time yet. I'm gradually popping things off my stack of tasks, so I'll get there eventually. Cool. I think there's a need for a better way to test web apps in general and to describe the state models so that they can be tested in a sane way. I just don't have a clue as to how to do it. But... I think it ties in with the JavaScript enhancements I want to see in 1.1. Perhaps there's some sort of state/logic combinator thingy that can emit client-side JS, sync data, and be very testable. Dunno... just ranting/flailing. Bill Thanks. Bill -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Open Source Bridge Conference CFP ( Discount)
I'm pretty close to Portland. What do you have in mind? Chas. David Pollak wrote: Folks, It'd be great to see some Lift and/or Scala presentations at this conference. Thanks, David -- Forwarded message -- From: *Keith Fahlgren* abdela...@gmail.com mailto:abdela...@gmail.com Date: Thu, Apr 2, 2009 at 6:06 AM Subject: [bayfp] Open Source Bridge Conference CFP ( Discount) To: ba...@googlegroups.com mailto:ba...@googlegroups.com Seems like this conference might be an interesting addition to OSCON, where Simon Peyton-Jones and Bryan O'Sullivan have given quite compelling FP talks the last couple of years... -- Forwarded message -- From: Reid Beels rei...@gmail.com mailto:rei...@gmail.com Open Source Bridge http://opensourcebridge.org Open Source Bridge is a new conference for developers working with open source technologies. It will take place June 17-19 in Portland, OR, with five tracks connecting people across projects, languages and experience to explore how we do our work and why we participate in open source. The conference structure is designed to provide developers with an opportunity to learn from people they might not connect with at other events. Open Source Bridge is run entirely by volunteers who believe in the need for an open source conference that focuses on the culture of being an open source citizen, regardless of where in the stack you choose to code. All proceeds from conference registration and sponsorship go directly to the costs of the conference. Our sessions and events will share in-depth knowledge about using, creating and contributing to open source as citizens of a greater community. You’ll find relevant information whether you write web apps for the cloud, tinker with operating system internals, create hardware, run a startup, or blog about technology. We're still seeking proposals — and just extended the deadline to April 10th — so submit yours before time runs out. Some examples of our proposals so far: Brian Aker on Drizzle, a reboot of MySQL designed “for the cloud”; Linux Kernel hacker Greg K-H about how Linux manages development; Ward Cunningham, inventor of the wiki, about what’s next in collaboration; Amber Case, an anthropologist living in both the physical and virtual worlds, about Cyborg Citizenship. (You can view all current proposals at http://opensourcebridge.org/proposals/) In addition to regular conference sessions, we will hold an unconference day for free-form sessions, and host a 24-hour dedicated “hacker lounge” at the top of the Portland Hilton. In addition to hosting the hacker lounge, the Hilton has offered Open Source Bridge attendees steeply discounted room rates, starting at $139/night. The city of Portland is a great place to visit. It has a thriving technical community, a love of all things open source and offers many attractions for visiting geeks, including Powell’s technical books, dozens of local brewpubs, and large greenspaces like Forest Park—all accessible by mass transit. Visit http://opensourcebridge.org/ to learn more about the conference, see our session proposals, and register to attend. Thanks! PS: Interested in taking advantage of the user group discount code that will allow user group members to register for $150? Enter “osb4228” when you register to receive the discount. -- 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: Need for lightweight JPA archetype
No, I meant there were a few candidates for a first commit, not that someone else should do it. I have my fingers in a bunch of things at the moment... At the moment, however, I have to pay the bills. But I'll keep tinkering. Chas. Timothy Perrett wrote: Probally between yourself and Derek in all honesty - I simply dont have the time right now and my lift time and what I do with it has other investments right now... Derek might well be swamped with the book at the moment... so perhaps there are not so many candidates as you think :-) Crack on is what I say - make a branch, knock yourself out and then post to the list before merging to master Cheers, Tim On Apr 2, 7:17 pm, Charles F. Munat c...@munat.com wrote: Yup. But there seem to be a few candidates... Timothy Perrett wrote: Are you eyeing up for your first commit Chas? ;-) The src of the JPA archetype is here: http://github.com/dpp/liftweb/tree/4a5d4530b407782a2f0e0e99b277432dbb... Cheers, Tim On Apr 2, 6:02 pm, Charles F. Munat c...@munat.com wrote: Where is the code for these archetypes and how tricky is it to create them? Chas. --~--~-~--~~~---~--~~ 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: [Bug] liftAjax.js generation bug in case of LiftRules.enableLiftGC = false
You're right, we have a mistake in the text. Templates take precedence over Views. I'll fix that and put a new PDF up. Derek On Thu, Apr 2, 2009 at 4:32 PM, nau anem...@googlemail.com wrote: Hi there, There is a bug in ScriptRenderer.scala I've described here: http://liftweb.lighthouseapp.com/projects/26102/tickets/31-bug-liftajaxjs-generation-bug-in-case-of-liftrulesenableliftgc-false#ticket-31-1 . I've got a quick fix for it but I don't think it's the best one (sorry, can't provide normal patch now, I'm on windows): ScriptRenderer.scala function addPageName(url) { return url.replace(' + LiftRules.ajaxPath + ', ' + LiftRules.ajaxPath + liftPage + ); } function lift_actualAjaxCall(data, onSuccess, onFailure) { + LiftRules.jsArtifacts.ajax(AjaxInfo(JE.JsRaw (data), POST, LiftRules.ajaxPostTimeout, false, script, Full (onSuccess), Full(onFailure)))+ } + LiftRules.jsArtifacts.onLoad(new JsCmd() {def toJsCmd = lift_doAjaxCycle()}).toJsCmd) val liftPage = if (LiftRules.enableLiftGC) /'+lift_page else -- One more. I've found inconsistent statements in Liftweb book (pdf compilation master-20090309 from github). I'm not sure wheather it still exists but anyway: paragraph 3.4 states: 3. Check to see if the request should be handled by a View. This is covered in section 3.6 4. If the request is not handled by a View, find a template that matches and use it. We’ll cover templates in section 3.5 but paragraph 3.6 states: In either case, View lookup and dispatch is done after template resolution, so templates take priority. Cheers, Alex Nemish --~--~-~--~~~---~--~~ 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: The Lift 1.1 list
On Fri, Apr 3, 2009 at 12:35 AM, Marc Boschma marc+lift...@boschma.cxmarc%2blift...@boschma.cx wrote: I have been reading up on OSGi with some discipline it could allow Erlang like live upgrades (also nice to not have to shutdown a JVM, so +1. I'm curious on the Portlet support - is that embedding portlets in snippets and/or creating portlets (rather than servlets)? I'm thinking having Lift being exposed as a Portlet as well as a Servlet. Marc On 02/04/2009, at 3:11 AM, David Pollak wrote: Folks, I think we've got our Lift 1.1 list. If anyone has anything to add, please speak up now. - Improved documentation: better VScalaDoc coverage as well as better tutorial and cook-book documentation. - Improved J2EE support including JTA and Portlets. - Finish Record/Field code with backing store including JDBC, JPA and Goat Rodeo (what's Goat Rodeo? http://goatrodeo.org) - Improved client-side JavaScript support and better JavaScript abstractions. - Client/Server data synchronization (integrated with Record/Field) - Improved support for REST. - Improved performance including caching templates when running in production mode. - OSGi support. - Improved testing framework and better testing support when running in test mode. - Implement Servlet 3.0 support. - HTML 5 and Web Sockets support and integration with Kaazing's Web Sockets server. Also, sensing which browser is making the request and performing optimizations based on that browser's characteristics (specifically, Chrome and Firefox 3.1 support) We will have bug-fix releases of 1.0 along the way and we'll have a release off the 1.0 branch when Scala 2.8 is released. -- 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: Open Source Bridge Conference CFP ( Discount)
On Fri, Apr 3, 2009 at 1:43 AM, Charles F. Munat c...@munat.com wrote: I'm pretty close to Portland. What do you have in mind? A presentation you could do: Lift for Rails developers I gave a presentation at UC Berkeley yesterday and they're using a lot of Rails for prototyping... they were blown away by Lift... then they asked, what do we have to do to translate our Rails apps to Lift? Having that as a resource would be great. Chas. David Pollak wrote: Folks, It'd be great to see some Lift and/or Scala presentations at this conference. Thanks, David -- Forwarded message -- From: *Keith Fahlgren* abdela...@gmail.com mailto:abdela...@gmail.com Date: Thu, Apr 2, 2009 at 6:06 AM Subject: [bayfp] Open Source Bridge Conference CFP ( Discount) To: ba...@googlegroups.com mailto:ba...@googlegroups.com Seems like this conference might be an interesting addition to OSCON, where Simon Peyton-Jones and Bryan O'Sullivan have given quite compelling FP talks the last couple of years... -- Forwarded message -- From: Reid Beels rei...@gmail.com mailto:rei...@gmail.com Open Source Bridge http://opensourcebridge.org Open Source Bridge is a new conference for developers working with open source technologies. It will take place June 17-19 in Portland, OR, with five tracks connecting people across projects, languages and experience to explore how we do our work and why we participate in open source. The conference structure is designed to provide developers with an opportunity to learn from people they might not connect with at other events. Open Source Bridge is run entirely by volunteers who believe in the need for an open source conference that focuses on the culture of being an open source citizen, regardless of where in the stack you choose to code. All proceeds from conference registration and sponsorship go directly to the costs of the conference. Our sessions and events will share in-depth knowledge about using, creating and contributing to open source as citizens of a greater community. You’ll find relevant information whether you write web apps for the cloud, tinker with operating system internals, create hardware, run a startup, or blog about technology. We're still seeking proposals — and just extended the deadline to April 10th — so submit yours before time runs out. Some examples of our proposals so far: Brian Aker on Drizzle, a reboot of MySQL designed “for the cloud”; Linux Kernel hacker Greg K-H about how Linux manages development; Ward Cunningham, inventor of the wiki, about what’s next in collaboration; Amber Case, an anthropologist living in both the physical and virtual worlds, about Cyborg Citizenship. (You can view all current proposals at http://opensourcebridge.org/proposals/) In addition to regular conference sessions, we will hold an unconference day for free-form sessions, and host a 24-hour dedicated “hacker lounge” at the top of the Portland Hilton. In addition to hosting the hacker lounge, the Hilton has offered Open Source Bridge attendees steeply discounted room rates, starting at $139/night. The city of Portland is a great place to visit. It has a thriving technical community, a love of all things open source and offers many attractions for visiting geeks, including Powell’s technical books, dozens of local brewpubs, and large greenspaces like Forest Park—all accessible by mass transit. Visit http://opensourcebridge.org/ to learn more about the conference, see our session proposals, and register to attend. Thanks! PS: Interested in taking advantage of the user group discount code that will allow user group members to register for $150? Enter “osb4228” when you register to receive the discount. -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Proposed URL Shortening widget
On Thu, Apr 2, 2009 at 12:48 PM, Jorge Ortiz jorge.or...@gmail.com wrote: What about easily turning any lift app into a url shortener service? Wouldn't be too hard... We do it in ESME. It's 1 class (the model) and 1 object. Granted, some services (bit.ly) add statistics, visualization, conversation tracking, etc. which aren't just url shortening. --j On Thu, Apr 2, 2009 at 12:13 PM, Tim Perrett timo...@getintheloop.euwrote: Guys, I've been contemplating doing this for a while and am now finding myself with a bunch of free time tomorrow and a need to write some code. So, I want to make a widget that shortens URL's in an extendable way... Im thinking of having something like: trait URLReductionProvider { ... } object TinyURL extends URLReductionProvider object IsGd extends URLReductionProvider object BitLy extends URLReductionProvider You get the general idea... So, im thinking of implementing the actual URL fetching stuff as a partial function so that users could do: def reductionResult = { case Full(result) = // result is the URL, insert into database etc case _ = // something went wrong } My question is however, if i make this actor based, could someone implement it so rather than writing there URL to database in a separate thread to the main one, would it be possible for them to say, use a JsCmd and return that to update the browser? Im guessing not unless it was a CometActor right. This then got me thinking, do you guys thing this is worth doing actor based, or is it just ok to make a blocking call to the provider? (tinyurl or is.gd etc) Cheers, Tim -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: [Bug] liftAjax.js generation bug in case of LiftRules.enableLiftGC = false
Please add this to Lighthouse http://liftweb.lighthouseapp.com/projects/26102-lift/overview Feel free to assign it to me. On Thu, Apr 2, 2009 at 3:32 PM, nau anem...@googlemail.com wrote: Hi there, There is a bug in ScriptRenderer.scala I've described here: http://liftweb.lighthouseapp.com/projects/26102/tickets/31-bug-liftajaxjs-generation-bug-in-case-of-liftrulesenableliftgc-false#ticket-31-1 . I've got a quick fix for it but I don't think it's the best one (sorry, can't provide normal patch now, I'm on windows): ScriptRenderer.scala function addPageName(url) { return url.replace(' + LiftRules.ajaxPath + ', ' + LiftRules.ajaxPath + liftPage + ); } function lift_actualAjaxCall(data, onSuccess, onFailure) { + LiftRules.jsArtifacts.ajax(AjaxInfo(JE.JsRaw (data), POST, LiftRules.ajaxPostTimeout, false, script, Full (onSuccess), Full(onFailure)))+ } + LiftRules.jsArtifacts.onLoad(new JsCmd() {def toJsCmd = lift_doAjaxCycle()}).toJsCmd) val liftPage = if (LiftRules.enableLiftGC) /'+lift_page else -- One more. I've found inconsistent statements in Liftweb book (pdf compilation master-20090309 from github). I'm not sure wheather it still exists but anyway: paragraph 3.4 states: 3. Check to see if the request should be handled by a View. This is covered in section 3.6 4. If the request is not handled by a View, find a template that matches and use it. We’ll cover templates in section 3.5 but paragraph 3.6 states: In either case, View lookup and dispatch is done after template resolution, so templates take priority. Cheers, Alex Nemish -- 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: Open Source Bridge Conference CFP ( Discount)
Is that presentation available anywhere? On Fri, Apr 3, 2009 at 9:54 AM, David Pollak feeder.of.the.be...@gmail.comwrote: On Fri, Apr 3, 2009 at 1:43 AM, Charles F. Munat c...@munat.com wrote: I'm pretty close to Portland. What do you have in mind? A presentation you could do: Lift for Rails developers I gave a presentation at UC Berkeley yesterday and they're using a lot of Rails for prototyping... they were blown away by Lift... then they asked, what do we have to do to translate our Rails apps to Lift? Having that as a resource would be great. Chas. David Pollak wrote: Folks, It'd be great to see some Lift and/or Scala presentations at this conference. Thanks, David -- Forwarded message -- From: *Keith Fahlgren* abdela...@gmail.com mailto:abdela...@gmail.com Date: Thu, Apr 2, 2009 at 6:06 AM Subject: [bayfp] Open Source Bridge Conference CFP ( Discount) To: ba...@googlegroups.com mailto:ba...@googlegroups.com Seems like this conference might be an interesting addition to OSCON, where Simon Peyton-Jones and Bryan O'Sullivan have given quite compelling FP talks the last couple of years... -- Forwarded message -- From: Reid Beels rei...@gmail.com mailto:rei...@gmail.com Open Source Bridge http://opensourcebridge.org Open Source Bridge is a new conference for developers working with open source technologies. It will take place June 17-19 in Portland, OR, with five tracks connecting people across projects, languages and experience to explore how we do our work and why we participate in open source. The conference structure is designed to provide developers with an opportunity to learn from people they might not connect with at other events. Open Source Bridge is run entirely by volunteers who believe in the need for an open source conference that focuses on the culture of being an open source citizen, regardless of where in the stack you choose to code. All proceeds from conference registration and sponsorship go directly to the costs of the conference. Our sessions and events will share in-depth knowledge about using, creating and contributing to open source as citizens of a greater community. You’ll find relevant information whether you write web apps for the cloud, tinker with operating system internals, create hardware, run a startup, or blog about technology. We're still seeking proposals — and just extended the deadline to April 10th — so submit yours before time runs out. Some examples of our proposals so far: Brian Aker on Drizzle, a reboot of MySQL designed “for the cloud”; Linux Kernel hacker Greg K-H about how Linux manages development; Ward Cunningham, inventor of the wiki, about what’s next in collaboration; Amber Case, an anthropologist living in both the physical and virtual worlds, about Cyborg Citizenship. (You can view all current proposals at http://opensourcebridge.org/proposals/) In addition to regular conference sessions, we will hold an unconference day for free-form sessions, and host a 24-hour dedicated “hacker lounge” at the top of the Portland Hilton. In addition to hosting the hacker lounge, the Hilton has offered Open Source Bridge attendees steeply discounted room rates, starting at $139/night. The city of Portland is a great place to visit. It has a thriving technical community, a love of all things open source and offers many attractions for visiting geeks, including Powell’s technical books, dozens of local brewpubs, and large greenspaces like Forest Park—all accessible by mass transit. Visit http://opensourcebridge.org/ to learn more about the conference, see our session proposals, and register to attend. Thanks! PS: Interested in taking advantage of the user group discount code that will allow user group members to register for $150? Enter “osb4228” when you register to receive the discount. -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Open Source Bridge Conference CFP ( Discount)
On Fri, Apr 3, 2009 at 9:43 AM, Derek Chen-Becker dchenbec...@gmail.comwrote: Is that presentation available anywhere? It will be available in http://github.com/dpp/lift-samples/tree/master when I have a chance to commit/push On Fri, Apr 3, 2009 at 9:54 AM, David Pollak feeder.of.the.be...@gmail.com wrote: On Fri, Apr 3, 2009 at 1:43 AM, Charles F. Munat c...@munat.com wrote: I'm pretty close to Portland. What do you have in mind? A presentation you could do: Lift for Rails developers I gave a presentation at UC Berkeley yesterday and they're using a lot of Rails for prototyping... they were blown away by Lift... then they asked, what do we have to do to translate our Rails apps to Lift? Having that as a resource would be great. Chas. David Pollak wrote: Folks, It'd be great to see some Lift and/or Scala presentations at this conference. Thanks, David -- Forwarded message -- From: *Keith Fahlgren* abdela...@gmail.com mailto: abdela...@gmail.com Date: Thu, Apr 2, 2009 at 6:06 AM Subject: [bayfp] Open Source Bridge Conference CFP ( Discount) To: ba...@googlegroups.com mailto:ba...@googlegroups.com Seems like this conference might be an interesting addition to OSCON, where Simon Peyton-Jones and Bryan O'Sullivan have given quite compelling FP talks the last couple of years... -- Forwarded message -- From: Reid Beels rei...@gmail.com mailto:rei...@gmail.com Open Source Bridge http://opensourcebridge.org Open Source Bridge is a new conference for developers working with open source technologies. It will take place June 17-19 in Portland, OR, with five tracks connecting people across projects, languages and experience to explore how we do our work and why we participate in open source. The conference structure is designed to provide developers with an opportunity to learn from people they might not connect with at other events. Open Source Bridge is run entirely by volunteers who believe in the need for an open source conference that focuses on the culture of being an open source citizen, regardless of where in the stack you choose to code. All proceeds from conference registration and sponsorship go directly to the costs of the conference. Our sessions and events will share in-depth knowledge about using, creating and contributing to open source as citizens of a greater community. You’ll find relevant information whether you write web apps for the cloud, tinker with operating system internals, create hardware, run a startup, or blog about technology. We're still seeking proposals — and just extended the deadline to April 10th — so submit yours before time runs out. Some examples of our proposals so far: Brian Aker on Drizzle, a reboot of MySQL designed “for the cloud”; Linux Kernel hacker Greg K-H about how Linux manages development; Ward Cunningham, inventor of the wiki, about what’s next in collaboration; Amber Case, an anthropologist living in both the physical and virtual worlds, about Cyborg Citizenship. (You can view all current proposals at http://opensourcebridge.org/proposals/) In addition to regular conference sessions, we will hold an unconference day for free-form sessions, and host a 24-hour dedicated “hacker lounge” at the top of the Portland Hilton. In addition to hosting the hacker lounge, the Hilton has offered Open Source Bridge attendees steeply discounted room rates, starting at $139/night. The city of Portland is a great place to visit. It has a thriving technical community, a love of all things open source and offers many attractions for visiting geeks, including Powell’s technical books, dozens of local brewpubs, and large greenspaces like Forest Park—all accessible by mass transit. Visit http://opensourcebridge.org/ to learn more about the conference, see our session proposals, and register to attend. Thanks! PS: Interested in taking advantage of the user group discount code that will allow user group members to register for $150? Enter “osb4228” when you register to receive the discount. -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to
[Lift] Re: liftAjax.js generation bug in case of LiftRules.enableLiftGC = false
committed. On Apr 3, 8:10 pm, marius d. marius.dan...@gmail.com wrote: well I just assigned it to myself ... Dave if youreally want it just let me know to stay away ... I should be commititng the fix either today or tomorrow. Br's, Marius On Apr 3, 7:12 pm, David Pollak feeder.of.the.be...@gmail.com wrote: Please add this to Lighthousehttp://liftweb.lighthouseapp.com/projects/26102-lift/overview Feel free to assign it to me. On Thu, Apr 2, 2009 at 3:32 PM, nau anem...@googlemail.com wrote: Hi there, There is a bug in ScriptRenderer.scala I've described here: http://liftweb.lighthouseapp.com/projects/26102/tickets/31-bug-liftaj... . I've got a quick fix for it but I don't think it's the best one (sorry, can't provide normal patch now, I'm on windows): ScriptRenderer.scala function addPageName(url) { return url.replace(' + LiftRules.ajaxPath + ', ' + LiftRules.ajaxPath + liftPage + ); } function lift_actualAjaxCall(data, onSuccess, onFailure) { + LiftRules.jsArtifacts.ajax(AjaxInfo(JE.JsRaw (data), POST, LiftRules.ajaxPostTimeout, false, script, Full (onSuccess), Full(onFailure)))+ } + LiftRules.jsArtifacts.onLoad(new JsCmd() {def toJsCmd = lift_doAjaxCycle()}).toJsCmd) val liftPage = if (LiftRules.enableLiftGC) /'+lift_page else -- One more. I've found inconsistent statements in Liftweb book (pdf compilation master-20090309 from github). I'm not sure wheather it still exists but anyway: paragraph 3.4 states: 3. Check to see if the request should be handled by a View. This is covered in section 3.6 4. If the request is not handled by a View, find a template that matches and use it. We’ll cover templates in section 3.5 but paragraph 3.6 states: In either case, View lookup and dispatch is done after template resolution, so templates take priority. Cheers, Alex Nemish -- 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: Forms validation formatter
On Tue, Mar 31, 2009 at 7:06 AM, Clemens Oertel clemens.oer...@gmail.comwrote: Hello, Sorry for the delay in my response, but I only get to play with lift on the weekends, and I wanted to look into your suggestions in more detail. I ported the toForm code from Record to Mapper (and by port, I mean mostly cut'n'paste). While doing so, I noticed 2 things: - Why not provide the same template mechanism used for forms for HTML output? This way I can reuse the same template for both - given that my records have at least dozens, if not even hundreds, of fields, that'd be a great help. - The templates require the use of lift:field and similar tags. I thought I'd be really smart, and created a HTML file A with lift-tags (lift:SomeClass.add.../lift:SomeClass.add) to run my snippet, and used the lift:field tags as children to lift:SomeClass.add. This way, I can create my templates externally, and use the normal lift dispatch-from-view mechanism. And, to save me some more work, the actual form template is in a separate, reusable, HTML file B, to be embedded into A. Embedding, of course, requires eager evaluation. Fine. No. With eager evaluation, lift of course complains that there is no class field, as referenced by lift:field. Now me's wondering whether a separate namespace would be more appropriate? (I did switch to a different namespace, liftf, out of necessity, but I figure that other people might have similar issues) As to the original discussion: I still strongly believe that toForm and to/as(X)Html should not be in Mapper/Record. Different story for JSON/XML/SQL - those seem to me to be rather functionality complete, no problem. But form and html creation seem to be something that most users will want to adapt to their application's needs eventually - state dependent css classes, javascript validation, AJAX form updates... In the examples that I've seen so far, this functionality was dealt with in the snippet. So, either mapper/record eventually become this super-omnipotent-mega-classes that can deal with this functionality to (field.toJavaScriptValidatingAndIncrementallyAjaxUpdatingForm ...), or form/html generation happens in multiple locations, or the user has to override some functions from mapper/record/fields. My beef with this is A) that the respective function calls, given their current signature, require the respective mapper/record-objects to be fully aware of application state for more complex applications; and B) that it is my understanding that overriding internal classes of a framework is a bad thing - I'd rather see a proper application of the Hollywood principle. Most web sites I've worked on, there's a default way to display a form and that default is encapsulated in the model itself. This encapsulation does not bar you from building your own form renders, but it does give you nice default behavior. Just wanted to provide an outsider's feedback. Overall, I think lift's just fantastic. Thank you for listening/reading, Clemens On 19-Mar-09, at 1:08 PM, marius d. wrote: On Mar 18, 11:24 pm, Clemens clemens.oer...@gmail.com wrote: Thank you for your patience, Marius. Well you can use different RecordMeta implementations if you need to different representation of a record without sequential template change. So no state dependency. , b I'm really not trying to be difficultut having multiple RecordMeta instances, for which the HTML output seems to be only one of many functionalities, seems to be shooting with canons at sparrows. Having a toForm functions that takes some template provider as input could be one option. Well this is kinda already in there but it's private :) ... See: private def _toForm(inst: BaseRecord, template: NodeSeq): NodeSeq so to me makes sense to relax it ... to public def toForm(inst: BaseRecord, template: NodeSeq): NodeSeq ... thanks for reminding me about this :) Anyways, I was not even thinking at record level, but rather at field level. See below. Well keeping close view representation and backend abstraction makes a lot of sense as it reduces lots of complexity. Having records/mappers that know how to represent themselves in different contexts (DB, xhtml) brings a lot of benefits an simplicity. I admit thought that (Btw, by context I meant different HTML display contexts.) I agree that a field should be able to provide hints about how it should be represented, such as max/min length, type, defaults, etc. Depending on the logical context within the app I'm working on, a record (and thus its fields) can have multiple representations: row in a table, complete record as a table, abbreviated record as a table, complete form as table, form as row in a table, form with mandatory fields only, records have to be printed out as ini-files, etc. Unfortunately, it's not me making this stuff up, it's fixed requirements. At field level, there are also
[Lift] Re: Menu widget
I added the dependency to my pom.xml exactly as you suggested and I'm getting this error: Downloading: http://scala-tools.org/repo-releases/net/liftweb/lift-widgets/1.1-S NAPSHOT/lift-widgets-1.1-SNAPSHOT.jar [INFO] [ERROR] BUILD ERROR [INFO] [INFO] Failed to resolve artifact. Missing: -- 1) net.liftweb:lift-widgets:jar:1.1-SNAPSHOT Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=net.liftweb -DartifactId=lift- widgets - Dversion=1.1-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=net.liftweb -DartifactId=lift- widgets -Dv ersion=1.1-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] - Drepositor yId=[id] Path to dependency: 1) testLift:testLift:war:1.0 2) net.liftweb:lift-widgets:jar:1.1-SNAPSHOT -- 1 required artifact is missing. for artifact: testLift:testLift:war:1.0 from the specified remote repositories: scala-tools.org (http://scala-tools.org/repo-releases), central (http://repo1.maven.org/maven2) I changed the dependency version to 1.0 because I followed the scala- tools.org link (http://scala-tools.org/repo-releases) and noticed that there wasn't a 1.1-SNAPSHOT version in net\liftweb\lift-widgets. Maven then compiled the project, but my menu still isn't showing up as I would like it to. I haven't changed my template. On Apr 2, 11:07 pm, Derek Chen-Becker dchenbec...@gmail.com wrote: Do you have lift-widgets module as a dependency in your pom.xml? dependency groupIdnet.liftweb/groupId artifactIdlift-widgets/artifactId version1.1-SNAPSHOT/version /dependency That's needed to get the dropdown widget code. Derek On Thu, Apr 2, 2009 at 3:13 PM, DavidV david.v.villa...@gmail.com wrote: I posted this yesterday but I haven't seen it appear yet...sorry if it is here twice. I downloaded the scripts separately because I didn't know how to update my repository/library to include the MenuWidget class and the appropriate .js and .css files. I tried running mvn install on my webapp, but it didn't download those new files. I fixed the problem with my .css file so it compiles now, however I'm still not getting the nice stylish superfish navbar. Instead, I'm getting a vertical bulleted list of links to my different pages. I think it's a problem with my template. Here are the relevant sections: html xmlns=http://www.w3.org/1999/xhtml; xmlns:lift=http:// liftweb.net/ head meta http-equiv=content-type content=text/html; charset=UTF-8 / meta name=description content= / meta name=keywords content= / titleMy WebApp lift:Menu.title / /title lift:StyleSheet.entryForm / lift:StyleSheet.fancyType / script id=jquery src=/classpath/jquery.js type=text/ javascript/ script id=json src=/classpath/json.js type=text/javascript/ /head body div class=container div style=text-align: center br/ h1 class=alt Welcome to My WebApp /h1 /div hr/ div lift:MyMenu.render / div lift:Msgs/ hr class=space / /div /div MyMenu is the snippet that contains the render method, which looks like this: def render(xhtml: NodeSeq): NodeSeq = { MenuWidget(MenuStyle.NAVBAR) } Does anyone see what might be wrong here? Thanks, David On Apr 1, 11:04 am, marius d. marius.dan...@gmail.com wrote: Is there a reason why you downloaded he scripts separately? ... the superfish dependencies are offered by the widget. Please see the lift- widgets project and the test applicaiton from there. Br's, Marius On Mar 31, 11:48 pm, DavidV david.v.villa...@gmail.com wrote: I would like to use this newMenuWidget, so I got the source code from GitHub and put it into my application as a snippet. I also downloaded all of the necessary superfish .css and .js files from the superfish website and put those in local sub-directories of the src/main/ webapp folder. When I try to compile the code in maven, however, I get the following error. C:\Source\trunk\eclipse\testLiftmvn clean jetty:run [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'jetty'. [INFO] [INFO] Building testLift [INFO] task-segment: [clean, jetty:run] [INFO] [INFO] [clean:clean] [INFO] Deleting directory C:\Source\trunk\eclipse\testLift\target
[Lift] Advice on Ramping Up
Hi, I am a Java programmer that is interested in learning Lift. I have just finished the first six chapters of Programming in Scala. I wonder what people's opinions are on how much of this book I need to read before diving into Lift. I attempted to dive into Lift without reading anything on Scala and that worked great until I wanted to start reviewing the Lift libraries :) Maybe there are some chapters in this book that I can skip? I think the book is really well written and I have followed everything so far. I just would rather get rolling on Lift sooner rather than later. Larry --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Lift using JQuery and JCarousel
Hmm ... I'd be very surprised if the the presence of the multiple ready function calls would cause this. Virtually you can have as many as you want. But what is the exact problem ? I could probably take a look tomorrow and maybe make a lift widget out of it. Br's, Marius P.S. You can render stuff in any place you want using various ways. For instance: 1. Use a snippet 2. Use lift:embed 3.You can post process resulting xml before it is sent to client (a pretty uncommon need) I I'd really doubt that this would represent the solution. On Apr 3, 11:32 am, wapgui torsten.schm...@wapgui.com wrote: Hi, had anybody success including the JCarousel plugin into Lift. Here is my default.html html xml:lang=en-us xmlns=http://www.w3.org/1999/xhtml; xmlns:lif=http://liftweb.net/; head meta http-equiv=content-type content=text/html; charset=ISO-8859-1/ titlejCarousel Examples/title lift:CSS.blueprint/ lift:CSS.fancyType/ link href=css/style.css rel=stylesheet type=text/css/ script id=jquery type=text/javascript src=classpath/ jquery.js/script script id=json type=text/javascript src=classpath/json.js/ script script type=text/javascript src=js/jquery.jcarousel.pack.js/ script link rel=stylesheet type=text/css href=css/ jquery.jcarousel.css/ link rel=stylesheet type=text/css href=css/skin.css/ script type=text/javascript jQuery(document).ready(function() { jQuery('#mycarousel').jcarousel(); }); /script script type='text/javascript' src='http://getfirebug.com/releases/ lite/1.2/firebug-lite-compressed.js'/script /head body div id=wrap h1jCarousel/h1 h2Riding carousels with jQuery/h2 h3Simple carousel/h3 pThis is the most simple usage of the carousel with no configuration options./p ul id=mycarousel class=jcarousel-skin-tango liimg src=http://static.flickr.com/ 66/199481236_dc98b5abb3_s.jpg//li liimg src=http://static.flickr.com/ 75/199481072_b4a0d09597_s.jpg//li liimg src=http://static.flickr.com/ 57/199481087_33ae73a8de_s.jpg//li liimg src=http://static.flickr.com/ 77/199481108_4359e6b971_s.jpg//li liimg src=http://static.flickr.com/ 58/199481143_3c148d9dd3_s.jpg//li liimg src=http://static.flickr.com/ 72/199481203_ad4cdcf109_s.jpg//li liimg src=http://static.flickr.com/ 58/199481218_264ce20da0_s.jpg//li liimg src=http://static.flickr.com/ 69/199481255_fdfe885f87_s.jpg//li liimg src=http://static.flickr.com/ 60/199480111_87d4cb3e38_s.jpg//li liimg src=http://static.flickr.com/ 70/229228324_08223b70fa_s.jpg//li /ul /div lift:bind name=content/ /body /html and this is my index.html lift:surround with=default at=content /lift:surround The generated page is ?xml version=1.0 encoding=UTF-8? !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xml:lang=en-us xmlns:lif=http://liftweb.net/; xmlns=http://www.w3.org/1999/xhtml;head meta content=text/html; charset=ISO-8859-1 http-equiv=content- type / titlejCarousel Examples/title link href=/classpath/blueprint/screen.css type=text/css rel=stylesheet media=screen, projection / link href=/classpath/blueprint/print.css type=text/css rel=stylesheet media=print / !--[if IE]link rel=stylesheet href=/classpath/blueprint/ ie.css type=text/css media=screen, projection![endif]-- link href=/classpath/blueprint/plugins/fancy-type/screen.css type=text/css rel=stylesheet media=screen, projection / link type=text/css rel=stylesheet href=css/style.css / script src=classpath/jquery.js type=text/javascript id=jquery/script script src=classpath/json.js type=text/javascript id=json/ script script src=js/jquery.jcarousel.pack.js type=text/javascript/ script link href=css/jquery.jcarousel.css type=text/css rel=stylesheet / link href=css/skin.css type=text/css rel=stylesheet / script type=text/javascript jQuery(document).ready(function() { jQuery('#mycarousel').jcarousel(); });
[Lift] Re: Forms validation formatter
Most web sites I've worked on, there's a default way to display a form and that default is encapsulated in the model itself. This encapsulation does not bar you from building your own form renders, but it does give you nice default behavior. I found it odd at first too, to find web rendering methods in the data object classes. It doesn't bother me particularly. But it does seem like keeping Record narrow would encourage broader use of the Record API. --~--~-~--~~~---~--~~ 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: Newbie Scala syntax question re: parameterized types with bounds
On Fri, Apr 3, 2009 at 12:53 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Wed, Apr 1, 2009 at 8:06 PM, Kris Nuttycombe kris.nuttyco...@gmail.com wrote: Something that occurred to me recently along these lines - perhaps someone can disabuse me of this notion. In Java, such recursive types are necessary because you don't have abstract types. To refer to the implementation type in the declaring class you have to use the self-type. But in Scala, what application would not be satisfied by: trait Mapper { type T : Mapper } class User extends Mapper { type T = User } Is it just that the restriction on T is not sufficiently narrow? No... becayse you can say: class User extends Mapper { type T = Address } I think this captures things, but I'm not 100% sure (and self-types weren't around when I did Mapper): trait Mapper[T : Mapper] { self: T = } This can be expressed as: trait Mapper { type T : this.type : Mapper } class User extends Mapper { type T = User } Actually, this might be sufficient: trait Mapper { type T = this.type } class User extends Mapper Actually, that's too specific, because then: object MetaUser extends User { def create: T = new User // oops, MetaUser.T == MetaUser.type != User } But I think the first suggestion still works: trait Mapper { type T : this.type : Mapper } class User extends Mapper { type T = User } object MetaUser extends User { def create: T = new User } W, types are fun... It might be a good idea to user these for Mapper* stuff, but Mapped* stuff would maybe get too verbose with type T = ... syntax versus [T] syntax. --j Kris On Fri, Mar 27, 2009 at 5:26 PM, Alex Boisvert boisv...@intalio.com wrote: Or said another way, MappedTextarea[ T : Mapper[T] ] declares a type parameter T and fixes the upper bound of the MappedTextarea type parameter to Mapper[T], which means that the type passed to MappedTextArea must be a subtype of Mapper. I, too, found this notation confusing at first and wished I could write MappedTextarea[ : Mapper[T] ] directly but declaring the T before its use is necessary to disambiguate it from existing class names. alex On Fri, Mar 27, 2009 at 1:52 PM, Stefan Scott stefanscottal...@gmail.com wrote: Hi - Sorry to be asking a Scala syntax question here in the Lift group, but I figured somebody here would know, since this Scala syntax occurs quite a bit in the Lift source code. When reading some of the Lift source I come across a particular Scala idiom involving parameterized types with bounds, whose semantics I'm unsure of. For example: class MappedTextarea[ T : Mapper[ T ] ] ( owner : T, maxLen: Int ) extends MappedString[ T ]( owner, maxLen ) { ... } What I'm unsure about here is the part where it says: T : Mapper[ T ] At first, this made no sense to me - how could a type T be a subtype of type Mapper[ T ] ? Then I guessed that maybe the two occurrences of T are unrelated to each other - ie, class MappedTextarea is parameterized over a type T, which must be a subtype of a type Mapper[ T ] -- where the second T is actually in a separate scope so that it has nothing to do with the first T. Is that what this really means? And, if that's really the case, then I guess the other occurrences of T later in the text: owner : T MappedString[ T ] are also referring to the first occurrence of T -- the type T which is upper-bounded by type Mapper[ T ]. Finally, does this mean that the above code could also have been written equivalently as follows: class MappedTextarea[ T : Mapper[ U ] ] ( owner : T, maxLen: Int ) extends MappedString[ T ]( owner, maxLen ) { ... } using U instead of T for the type parameter that's in a separate scope? Thanks for any help. - Stefan Scott -- 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: Newbie Scala syntax question re: parameterized types with bounds
On Fri, Apr 3, 2009 at 1:55 PM, Jorge Ortiz jorge.or...@gmail.com wrote: On Fri, Apr 3, 2009 at 12:53 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Wed, Apr 1, 2009 at 8:06 PM, Kris Nuttycombe kris.nuttyco...@gmail.com wrote: Something that occurred to me recently along these lines - perhaps someone can disabuse me of this notion. In Java, such recursive types are necessary because you don't have abstract types. To refer to the implementation type in the declaring class you have to use the self-type. But in Scala, what application would not be satisfied by: trait Mapper { type T : Mapper } class User extends Mapper { type T = User } Is it just that the restriction on T is not sufficiently narrow? No... becayse you can say: class User extends Mapper { type T = Address } I think this captures things, but I'm not 100% sure (and self-types weren't around when I did Mapper): trait Mapper[T : Mapper] { self: T = } This can be expressed as: trait Mapper { type T : this.type : Mapper } class User extends Mapper { type T = User } Actually, this might be sufficient: trait Mapper { type T = this.type } class User extends Mapper Actually, that's too specific, because then: object MetaUser extends User { def create: T = new User // oops, MetaUser.T == MetaUser.type != User } But I think the first suggestion still works: trait Mapper { type T : this.type : Mapper } class User extends Mapper { type T = User } object MetaUser extends User { def create: T = new User } W, types are fun... It might be a good idea to user these for Mapper* stuff, but Mapped* stuff would maybe get too verbose with type T = ... syntax versus [T] syntax. We need the type parameters on the Mapped classes to that we get type-safe query building. --j Kris On Fri, Mar 27, 2009 at 5:26 PM, Alex Boisvert boisv...@intalio.com wrote: Or said another way, MappedTextarea[ T : Mapper[T] ] declares a type parameter T and fixes the upper bound of the MappedTextarea type parameter to Mapper[T], which means that the type passed to MappedTextArea must be a subtype of Mapper. I, too, found this notation confusing at first and wished I could write MappedTextarea[ : Mapper[T] ] directly but declaring the T before its use is necessary to disambiguate it from existing class names. alex On Fri, Mar 27, 2009 at 1:52 PM, Stefan Scott stefanscottal...@gmail.com wrote: Hi - Sorry to be asking a Scala syntax question here in the Lift group, but I figured somebody here would know, since this Scala syntax occurs quite a bit in the Lift source code. When reading some of the Lift source I come across a particular Scala idiom involving parameterized types with bounds, whose semantics I'm unsure of. For example: class MappedTextarea[ T : Mapper[ T ] ] ( owner : T, maxLen: Int ) extends MappedString[ T ]( owner, maxLen ) { ... } What I'm unsure about here is the part where it says: T : Mapper[ T ] At first, this made no sense to me - how could a type T be a subtype of type Mapper[ T ] ? Then I guessed that maybe the two occurrences of T are unrelated to each other - ie, class MappedTextarea is parameterized over a type T, which must be a subtype of a type Mapper[ T ] -- where the second T is actually in a separate scope so that it has nothing to do with the first T. Is that what this really means? And, if that's really the case, then I guess the other occurrences of T later in the text: owner : T MappedString[ T ] are also referring to the first occurrence of T -- the type T which is upper-bounded by type Mapper[ T ]. Finally, does this mean that the above code could also have been written equivalently as follows: class MappedTextarea[ T : Mapper[ U ] ] ( owner : T, maxLen: Int ) extends MappedString[ T ]( owner, maxLen ) { ... } using U instead of T for the type parameter that's in a separate scope? Thanks for any help. - Stefan Scott -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en
[Lift] Re: The Lift 1.1 list
Also, it would be great it Lift1.1 included all of the necessary .js, .css and class files for the new MenuWidget On Apr 3, 3:42 am, Charles F. Munat c...@munat.com wrote: Have you looked at Windmill? http://www.getwindmill.com/ From what I've heard it's pretty cool. Chas. David Pollak wrote: On Thu, Apr 2, 2009 at 10:09 AM, Bill Venners b...@artima.com mailto:b...@artima.com wrote: Hi David, On Thu, Apr 2, 2009 at 9:28 PM, David Pollak feeder.of.the.be...@gmail.com mailto:feeder.of.the.be...@gmail.com wrote: On Thu, Apr 2, 2009 at 2:30 AM, Bill Venners b...@artima.com mailto:b...@artima.com wrote: Hi David, On Thu, Apr 2, 2009 at 12:11 AM, David Pollak feeder.of.the.be...@gmail.com mailto:feeder.of.the.be...@gmail.com wrote: Folks, Improved testing framework and better testing support when running in test mode. Can you elaborate on what your plans are for this? It's a goal, not a set of plans. I'm expecting one of the committers would take ownership and figure it out. Wanna be a committer, take ownership, and figure it out? Ooh, I stepped in that one. Yeah... don't you know the rule... get a good idea and you own it. I'm just the Tom Sawyer who's convincing the smart folks to white-wash my fence/build Lift. ;-) The testing Lift apps is a good, real use case for both ScalaTest and Specs. I hope to meet with Eric Torreborre Monday. I'll talk with him about what's needed for Lift, as I think he's more familiar with its testing needs. I have definitely wanted to do some work with Lift so I can become more familiar with it as a web app framework, but just haven't had time yet. I'm gradually popping things off my stack of tasks, so I'll get there eventually. Cool. I think there's a need for a better way to test web apps in general and to describe the state models so that they can be tested in a sane way. I just don't have a clue as to how to do it. But... I think it ties in with the JavaScript enhancements I want to see in 1.1. Perhaps there's some sort of state/logic combinator thingy that can emit client-side JS, sync data, and be very testable. Dunno... just ranting/flailing. Bill Thanks. Bill -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Git some:http://github.com/dpp -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Git some:http://github.com/dpp --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Advice on Ramping Up
My advice, if your generally / vaugly familiar with Scala from reading PiS (that truly is a very unfortunate acronym!) just dive into making a lift app, then go from there. One of the best things about Lift is the community - if you have questions, chances are its either already in the group archive from one of our many debates, or in the lift book, or if not, just ask on the mailing list and someone will no doubt help you right quick! Good luck! Tim On 03/04/2009 23:01, Charles F. Munat c...@munat.com wrote: I'd suggest that you start working in Lift, then when you encounter something that doesn't make sense to you, refer to the PiS book (unfortunate acronym). It helps if you have the PDF version because you can search. The index is OK, but often insufficient. This is the approach I used to get started, though eventually I went back and read most of the book sequentially (I still have a couple of chapters to go). Take a look also at DPP's book and the online Lift book, both easily searchable. If you want to jump ahead in the book, I'd recommend the following: 15: Case Classes and Pattern Matching 16: Working with Lists 23: For Expressions Revisited Lists, for expressions, case classes, and pattern matching are used *all over the place* in Lift. You can't be too familiar with these. Then maybe: 19: Type Parameterization 21: Implicit Conversions and Parameters You don't need to understand those thoroughly, but having some familiarity with them will help with debugging and understanding what the heck is going on. If you have time, you could also read the following to fill in a few gaps: 22: Implementing Lists 26: Working with XML And if you're going to use Comet, you should probably read: 30: Actors and Concurrency But again, you can dive in and then reference these chapters as necessary. Chas. lmorroni wrote: Hi, I am a Java programmer that is interested in learning Lift. I have just finished the first six chapters of Programming in Scala. I wonder what people's opinions are on how much of this book I need to read before diving into Lift. I attempted to dive into Lift without reading anything on Scala and that worked great until I wanted to start reviewing the Lift libraries :) Maybe there are some chapters in this book that I can skip? I think the book is really well written and I have followed everything so far. I just would rather get rolling on Lift sooner rather than later. Larry --~--~-~--~~~---~--~~ 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: Compile error in TD.scala whith example in Starting with Lift HTML guide
This looks like a problem with the HTML. According to the corresponding PDF, many of those tildes in the HTML should actually be quotation marks. I'd recommend using the PDF here: http://liftweb.net/docs/StartingWithLift.pdf Sam Reid On Apr 3, 4:19 pm, Dano! daniel.mcka...@gmail.com wrote: Good morning, Scala has been getting some interest in the project I work with, and I've been asked to investigate the Lift framework as a possibility to migrate our custom coded website to it. I'm a Scala newbie, so I'm working on absorbing a lot in a short period of time. I'm having problems with the Stating with Lift found at:http://liftweb.net/docs/getting_started/mod_master.html I was able to get everything working up through section 2.8. I'm getting stuck in Section 2.12 where it suggests starting the server and trying the changes from Section 2.9. Specifically I'm getting hung up with a compile time error with TD.scala. First I get these two errors: $ mvn jetty:run ... [INFO] Checking for multiple versions of scala [INFO] Compiling 3 source files to /Users/danielmckagan/Workspaces/ lift-test/todo/target/classes [WARNING] /Users/danielmckagan/Workspaces/lift-test/todo/src/main/ scala/com/liftworkshop/model/ToDo.scala:29: error: ')' expected but integer literal found. [WARNING] valMinLen(3, ~Description must be 3 characters~) _ :: [WARNING] ^ [WARNING] /Users/danielmckagan/Workspaces/lift-test/todo/src/main/ scala/com/liftworkshop/snippet/TD.scala:33: error: ')' expected but '.' found. [WARNING] ~priority~ - todo.priority.toForm, [WARNING] ^ [WARNING] two errors found ... If I change the '3' to 'three' in the first example, that error falls away and the second one remains: ... [INFO] Checking for multiple versions of scala [INFO] Compiling 3 source files to /Users/danielmckagan/Workspaces/ lift-test/todo/target/classes [WARNING] /Users/danielmckagan/Workspaces/lift-test/todo/src/main/ scala/com/liftworkshop/snippet/TD.scala:33: error: ')' expected but '.' found. [WARNING] ~priority~ - todo.priority.toForm, [WARNING] ^ [WARNING] one error found ... And I can't figure out how to get over it. I deleted the entire todo project and started from the beginning, cutting and pasting the examples, and have gotten the same behavior both times. This may help... $ mvn --version Apache Maven 2.1.0 (r755702; 2009-03-18 12:10:27-0700) Java version: 1.5.0_16 Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/ Home Default locale: en_US, platform encoding: MacRoman OS name: mac os x version: 10.5.6 arch: i386 Family: unix Any help would be appreciated, Dano! --~--~-~--~~~---~--~~ 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: Compile error in TD.scala whith example in Starting with Lift HTML guide
I thought I replied to this, apologies if it comes up twice. I found the problem, the HTML shows tildes (~) rather than quotes (). The PDF is fine (though copy and paste doesn't work as well). I assumed it was a Lift or Scala weirdness. Next question, where to file a bug about this? Dano! On Apr 3, 3:19 pm, Dano! daniel.mcka...@gmail.com wrote: Good morning, Scala has been getting some interest in the project I work with, and I've been asked to investigate the Lift framework as a possibility to migrate our custom coded website to it. I'm a Scala newbie, so I'm working on absorbing a lot in a short period of time. I'm having problems with the Stating with Lift found at:http://liftweb.net/docs/getting_started/mod_master.html I was able to get everything working up through section 2.8. I'm getting stuck in Section 2.12 where it suggests starting the server and trying the changes from Section 2.9. Specifically I'm getting hung up with a compile time error with TD.scala. First I get these two errors: $ mvn jetty:run ... [INFO] Checking for multiple versions of scala [INFO] Compiling 3 source files to /Users/danielmckagan/Workspaces/ lift-test/todo/target/classes [WARNING] /Users/danielmckagan/Workspaces/lift-test/todo/src/main/ scala/com/liftworkshop/model/ToDo.scala:29: error: ')' expected but integer literal found. [WARNING] valMinLen(3, ~Description must be 3 characters~) _ :: [WARNING] ^ [WARNING] /Users/danielmckagan/Workspaces/lift-test/todo/src/main/ scala/com/liftworkshop/snippet/TD.scala:33: error: ')' expected but '.' found. [WARNING] ~priority~ - todo.priority.toForm, [WARNING] ^ [WARNING] two errors found ... If I change the '3' to 'three' in the first example, that error falls away and the second one remains: ... [INFO] Checking for multiple versions of scala [INFO] Compiling 3 source files to /Users/danielmckagan/Workspaces/ lift-test/todo/target/classes [WARNING] /Users/danielmckagan/Workspaces/lift-test/todo/src/main/ scala/com/liftworkshop/snippet/TD.scala:33: error: ')' expected but '.' found. [WARNING] ~priority~ - todo.priority.toForm, [WARNING] ^ [WARNING] one error found ... And I can't figure out how to get over it. I deleted the entire todo project and started from the beginning, cutting and pasting the examples, and have gotten the same behavior both times. This may help... $ mvn --version Apache Maven 2.1.0 (r755702; 2009-03-18 12:10:27-0700) Java version: 1.5.0_16 Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/ Home Default locale: en_US, platform encoding: MacRoman OS name: mac os x version: 10.5.6 arch: i386 Family: unix Any help would be appreciated, Dano! --~--~-~--~~~---~--~~ 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: Advice on Ramping Up
Aside: I think the preferred abbreviation for Programming in Scala is PinS, not PiS. Just fyi, --j On Fri, Apr 3, 2009 at 4:15 PM, Timothy Perrett timo...@getintheloop.euwrote: My advice, if your generally / vaugly familiar with Scala from reading PiS (that truly is a very unfortunate acronym!) just dive into making a lift app, then go from there. One of the best things about Lift is the community - if you have questions, chances are its either already in the group archive from one of our many debates, or in the lift book, or if not, just ask on the mailing list and someone will no doubt help you right quick! Good luck! Tim On 03/04/2009 23:01, Charles F. Munat c...@munat.com wrote: I'd suggest that you start working in Lift, then when you encounter something that doesn't make sense to you, refer to the PiS book (unfortunate acronym). It helps if you have the PDF version because you can search. The index is OK, but often insufficient. This is the approach I used to get started, though eventually I went back and read most of the book sequentially (I still have a couple of chapters to go). Take a look also at DPP's book and the online Lift book, both easily searchable. If you want to jump ahead in the book, I'd recommend the following: 15: Case Classes and Pattern Matching 16: Working with Lists 23: For Expressions Revisited Lists, for expressions, case classes, and pattern matching are used *all over the place* in Lift. You can't be too familiar with these. Then maybe: 19: Type Parameterization 21: Implicit Conversions and Parameters You don't need to understand those thoroughly, but having some familiarity with them will help with debugging and understanding what the heck is going on. If you have time, you could also read the following to fill in a few gaps: 22: Implementing Lists 26: Working with XML And if you're going to use Comet, you should probably read: 30: Actors and Concurrency But again, you can dive in and then reference these chapters as necessary. Chas. lmorroni wrote: Hi, I am a Java programmer that is interested in learning Lift. I have just finished the first six chapters of Programming in Scala. I wonder what people's opinions are on how much of this book I need to read before diving into Lift. I attempted to dive into Lift without reading anything on Scala and that worked great until I wanted to start reviewing the Lift libraries :) Maybe there are some chapters in this book that I can skip? I think the book is really well written and I have followed everything so far. I just would rather get rolling on Lift sooner rather than later. Larry --~--~-~--~~~---~--~~ 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: Menu widget
Don't know if anyone responded, but you may need to add the maven snapshot repository to your pom as well. Sent from my iPhone On Apr 3, 2009, at 2:36 PM, DavidV david.v.villa...@gmail.com wrote: I added the dependency to my pom.xml exactly as you suggested and I'm getting this error: Downloading: http://scala-tools.org/repo-releases/net/liftweb/lift-widgets/1.1-S NAPSHOT/lift-widgets-1.1-SNAPSHOT.jar [INFO] --- - [ERROR] BUILD ERROR [INFO] --- - [INFO] Failed to resolve artifact. Missing: -- 1) net.liftweb:lift-widgets:jar:1.1-SNAPSHOT Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=net.liftweb -DartifactId=lift- widgets - Dversion=1.1-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=net.liftweb -DartifactId=lift- widgets -Dv ersion=1.1-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] - Drepositor yId=[id] Path to dependency: 1) testLift:testLift:war:1.0 2) net.liftweb:lift-widgets:jar:1.1-SNAPSHOT -- 1 required artifact is missing. for artifact: testLift:testLift:war:1.0 from the specified remote repositories: scala-tools.org (http://scala-tools.org/repo-releases), central (http://repo1.maven.org/maven2) I changed the dependency version to 1.0 because I followed the scala- tools.org link (http://scala-tools.org/repo-releases) and noticed that there wasn't a 1.1-SNAPSHOT version in net\liftweb\lift-widgets. Maven then compiled the project, but my menu still isn't showing up as I would like it to. I haven't changed my template. On Apr 2, 11:07 pm, Derek Chen-Becker dchenbec...@gmail.com wrote: Do you have lift-widgets module as a dependency in your pom.xml? dependency groupIdnet.liftweb/groupId artifactIdlift-widgets/artifactId version1.1-SNAPSHOT/version /dependency That's needed to get the dropdown widget code. Derek On Thu, Apr 2, 2009 at 3:13 PM, DavidV david.v.villa...@gmail.com wrote: I posted this yesterday but I haven't seen it appear yet...sorry if it is here twice. I downloaded the scripts separately because I didn't know how to update my repository/library to include the MenuWidget class and the appropriate .js and .css files. I tried running mvn install on my webapp, but it didn't download those new files. I fixed the problem with my .css file so it compiles now, however I'm still not getting the nice stylish superfish navbar. Instead, I'm getting a vertical bulleted list of links to my different pages. I think it's a problem with my template. Here are the relevant sections: html xmlns=http://www.w3.org/1999/xhtml; xmlns:lift=http:// liftweb.net/ head meta http-equiv=content-type content=text/html; charset=UTF-8 / meta name=description content= / meta name=keywords content= / titleMy WebApp lift:Menu.title / /title lift:StyleSheet.entryForm / lift:StyleSheet.fancyType / script id=jquery src=/classpath/jquery.js type=text/ javascript/ script id=json src=/classpath/json.js type=text/ javascript/ /head body div class=container div style=text-align: center br/ h1 class=alt Welcome to My WebApp /h1 /div hr/ div lift:MyMenu.render / div lift:Msgs/ hr class=space / /div /div MyMenu is the snippet that contains the render method, which looks like this: def render(xhtml: NodeSeq): NodeSeq = { MenuWidget(MenuStyle.NAVBAR) } Does anyone see what might be wrong here? Thanks, David On Apr 1, 11:04 am, marius d. marius.dan...@gmail.com wrote: Is there a reason why you downloaded he scripts separately? ... the superfish dependencies are offered by the widget. Please see the lift- widgets project and the test applicaiton from there. Br's, Marius On Mar 31, 11:48 pm, DavidV david.v.villa...@gmail.com wrote: I would like to use this newMenuWidget, so I got the source code from GitHub and put it into my application as a snippet. I also downloaded all of the necessary superfish .css and .js files from the superfish website and put those in local sub-directories of the src/main/ webapp folder. When I try to compile the code in maven, however, I get the following error. C:\Source\trunk\eclipse\testLiftmvn clean jetty:run [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'jetty'. [INFO] --- --- -- [INFO] Building testLift [INFO]task-segment: [clean, jetty:run] [INFO] ---
[Lift] Re: Advice on Ramping Up
And of course Beginning Scala is BS :-) On Fri, Apr 3, 2009 at 8:29 PM, Meredith Gregory lgreg.mered...@gmail.comwrote: Jorge, i was going to express a similar sentiment. There are lots of available options. - PinS - PrinS - PrinSc Best wishes, --greg On Fri, Apr 3, 2009 at 5:51 PM, Jorge Ortiz jorge.or...@gmail.com wrote: Aside: I think the preferred abbreviation for Programming in Scala is PinS, not PiS. Just fyi, --j On Fri, Apr 3, 2009 at 4:15 PM, Timothy Perrett timo...@getintheloop.euwrote: My advice, if your generally / vaugly familiar with Scala from reading PiS (that truly is a very unfortunate acronym!) just dive into making a lift app, then go from there. One of the best things about Lift is the community - if you have questions, chances are its either already in the group archive from one of our many debates, or in the lift book, or if not, just ask on the mailing list and someone will no doubt help you right quick! Good luck! Tim On 03/04/2009 23:01, Charles F. Munat c...@munat.com wrote: I'd suggest that you start working in Lift, then when you encounter something that doesn't make sense to you, refer to the PiS book (unfortunate acronym). It helps if you have the PDF version because you can search. The index is OK, but often insufficient. This is the approach I used to get started, though eventually I went back and read most of the book sequentially (I still have a couple of chapters to go). Take a look also at DPP's book and the online Lift book, both easily searchable. If you want to jump ahead in the book, I'd recommend the following: 15: Case Classes and Pattern Matching 16: Working with Lists 23: For Expressions Revisited Lists, for expressions, case classes, and pattern matching are used *all over the place* in Lift. You can't be too familiar with these. Then maybe: 19: Type Parameterization 21: Implicit Conversions and Parameters You don't need to understand those thoroughly, but having some familiarity with them will help with debugging and understanding what the heck is going on. If you have time, you could also read the following to fill in a few gaps: 22: Implementing Lists 26: Working with XML And if you're going to use Comet, you should probably read: 30: Actors and Concurrency But again, you can dive in and then reference these chapters as necessary. Chas. lmorroni wrote: Hi, I am a Java programmer that is interested in learning Lift. I have just finished the first six chapters of Programming in Scala. I wonder what people's opinions are on how much of this book I need to read before diving into Lift. I attempted to dive into Lift without reading anything on Scala and that worked great until I wanted to start reviewing the Lift libraries :) Maybe there are some chapters in this book that I can skip? I think the book is really well written and I have followed everything so far. I just would rather get rolling on Lift sooner rather than later. Larry -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 83rd St NW 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 --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---