[Lift] Re: Lift 1.1 Milestone 7
Folks, may I suggest cutting a Lift 1.1 Milestone 7 branch and deploy from that? (It'd eliminate the potential problems of synchronizing on a master/HEAD freeze) On Tue, Oct 27, 2009 at 12:18 AM, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, We are scheduled to release Lift 1.1 Milestone 7 on Wednesday November 4th. We would like to release M7 against Scala 2.7.7 final if EPFL's schedule can accommodate this. We are going into code-slush on Thursday October 29th (this means we're not going to make material changes to the codebase unless it's to fix a material bug). Please post any blocking defects to this list (with links to the ticket). We'll endeavor to close any of these defects this week. If you're a production site running against M6 and planning to upgrade to M7, please start testing as soon as possible so we can get fixes into M7 sooner rather than later. Thanks, David -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- Viktor Klang | A complex system that works is invariably | found to have evolved from a simple system | that worked. - John Gall Blog: klangism.blogspot.com Twttr: viktorklang Code: github.com/viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Lift 1.1 Milestone 7
On Tue, Oct 27, 2009 at 12:34 AM, David Pollak feeder.of.the.be...@gmail.com wrote: On Mon, Oct 26, 2009 at 4:24 PM, Viktor Klang viktor.kl...@gmail.comwrote: Folks, may I suggest cutting a Lift 1.1 Milestone 7 branch and deploy from that? (It'd eliminate the potential problems of synchronizing on a master/HEAD freeze) And it makes it more complex to figure out what to merge off master, please it means that testing against SNAPSHOT isn't testing against what will be in M7. Yeah, you're right, unless you're doing all features+fixes in topic branches it'll be less than stellar to merge from master/HEAD On Tue, Oct 27, 2009 at 12:18 AM, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, We are scheduled to release Lift 1.1 Milestone 7 on Wednesday November 4th. We would like to release M7 against Scala 2.7.7 final if EPFL's schedule can accommodate this. We are going into code-slush on Thursday October 29th (this means we're not going to make material changes to the codebase unless it's to fix a material bug). Please post any blocking defects to this list (with links to the ticket). We'll endeavor to close any of these defects this week. If you're a production site running against M6 and planning to upgrade to M7, please start testing as soon as possible so we can get fixes into M7 sooner rather than later. Thanks, David -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- Viktor Klang | A complex system that works is invariably | found to have evolved from a simple system | that worked. - John Gall Blog: klangism.blogspot.com Twttr: viktorklang Code: github.com/viktorklang -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- Viktor Klang | A complex system that works is invariably | found to have evolved from a simple system | that worked. - John Gall Blog: klangism.blogspot.com Twttr: viktorklang Code: github.com/viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: A Critique On Lift
On Sat, Oct 24, 2009 at 8:18 PM, bob rbpas...@gmail.com wrote: why, it reformats your hard drive oh snap On Oct 23, 6:17 pm, Viktor Klang viktor.kl...@gmail.com wrote: But if you name your method: ashiuahsdyasdasd what does it do? On Fri, Oct 23, 2009 at 9:47 PM, bob rbpas...@gmail.com wrote: I'll repeat: there are no operators in scala s/operators/methods-with-operator-like-names/ anywhere, here's a typical case: import some.library.package.foo._ val a = bar 42 val b = a ~!~ 3.14159 you can't easily tell that bar is being imported via foo._ . what is bar's return type? what does ~!~ do? i'm not saying its not possible to track all this down, but you can't just print out a listing of a class and take it on the subway. you have to have access to the scaladocs and possibly even the sources. --b -- Viktor Klang | A complex system that works is invariably | found to have evolved from a simple system | that worked. - John Gall Blog: klangism.blogspot.com Twttr: viktorklang Code: github.com/viktorklang -- Viktor Klang | A complex system that works is invariably | found to have evolved from a simple system | that worked. - John Gall Blog: klangism.blogspot.com Twttr: viktorklang Code: github.com/viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: A Critique On Lift
My personal interpretation is sh!t I don't know here or don't care what it is On Fri, Oct 23, 2009 at 9:08 AM, Joni Freeman freeman.j...@gmail.comwrote: I love it too. While it is used in many different places it always means stuff that I do not care to name. BTW. high priest of the lambda calculus loves it too :) It has its roots in Haskell... http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/ Cheers Joni On 23 loka, 09:48, Jonas Bonér jbo...@gmail.com wrote: I love the _ operator. 2009/10/22 Timothy Perrett timo...@getintheloop.eu: I think this is a bit of a running joke in the scala comunity right now - your right, underscore really does have a number of meanings; I think this will be changed in some future Scala release. Your also forgetting: import some.package._ Cheers, Tim On 22 Oct 2009, at 12:57, tiro wrote: underscore. At least four different uses: - it for defining anonymous functions like above - default value - matching placeholder whose value is ignored - use for constructing setter method names boolean functions (empty_?) -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://scalablesolutions.se code: http://github.com/jboner code: http://akkasource.org also:http://letitcrash.com -- Viktor Klang | A complex system that works is invariably | found to have evolved from a simple system | that worked. - John Gall Blog: klangism.blogspot.com Twttr: viktorklang Code: github.com/viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: A Critique On Lift
But if you name your method: ashiuahsdyasdasd what does it do? On Fri, Oct 23, 2009 at 9:47 PM, bob rbpas...@gmail.com wrote: I'll repeat: there are no operators in scala s/operators/methods-with-operator-like-names/ anywhere, here's a typical case: import some.library.package.foo._ val a = bar 42 val b = a ~!~ 3.14159 you can't easily tell that bar is being imported via foo._ . what is bar's return type? what does ~!~ do? i'm not saying its not possible to track all this down, but you can't just print out a listing of a class and take it on the subway. you have to have access to the scaladocs and possibly even the sources. --b -- Viktor Klang | A complex system that works is invariably | found to have evolved from a simple system | that worked. - John Gall Blog: klangism.blogspot.com Twttr: viktorklang Code: github.com/viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: A Critique On Lift
On Sat, Oct 24, 2009 at 12:23 AM, Jim Barrows jim.barr...@gmail.com wrote: On Fri, Oct 23, 2009 at 3:17 PM, Viktor Klang viktor.kl...@gmail.comwrote: But if you name your method: ashiuahsdyasdasd what does it do? Oh Bloddy Ell... that caused Cthulu to appear on my keyboard when I read it Chtuluh ftagn! ;D On Fri, Oct 23, 2009 at 9:47 PM, bob rbpas...@gmail.com wrote: I'll repeat: there are no operators in scala s/operators/methods-with-operator-like-names/ anywhere, here's a typical case: import some.library.package.foo._ val a = bar 42 val b = a ~!~ 3.14159 you can't easily tell that bar is being imported via foo._ . what is bar's return type? what does ~!~ do? i'm not saying its not possible to track all this down, but you can't just print out a listing of a class and take it on the subway. you have to have access to the scaladocs and possibly even the sources. --b -- Viktor Klang | A complex system that works is invariably | found to have evolved from a simple system | that worked. - John Gall Blog: klangism.blogspot.com Twttr: viktorklang Code: github.com/viktorklang -- James A Barrows -- Viktor Klang | A complex system that works is invariably | found to have evolved from a simple system | that worked. - John Gall Blog: klangism.blogspot.com Twttr: viktorklang Code: github.com/viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: A Critique On Lift
Programming is not a simple task, that's why we haven't been replaced by machines. Scala is a _very_ powerful language, and it _is_ a challenge to harness that power in addition to other languagues you have harnessed. However, I do not feel that Scala has much non-explainable complexity, as is the case of javas many-a boilerplate. From what I have seen, much of the barrier of going to Scala is that many people assume that going Java - Scala-y Java | Java-y Scala - Ideomatic Scala is the route to go. But the problem there is that sample Scala code is never Java-y Scala, so beginners get confused from not having learned about first-class functions and their syntax. (from my 2 years of Scala, what I've seen the pitfalls being) On Thu, Oct 22, 2009 at 7:13 AM, jlist9 jli...@gmail.com wrote: override def validations = validPriority _ :: super.validations This is a more of a comment about Scala than one about Lift - this does look cryptic to me. And this is just one of the simpler syntax that confuses people, who are new to the language. And I'm one of them. I understand that you don't have to learn all the tricks/syntax to start coding in Scala but you do have to understand it when you read source code of libraries written by someone with much more advanced language skills. In David's book he says After more than two years of coding Scala, ... My brain has finally stopped hurting. This sounds like a very high barrier to entry. I'm just wondering why Scala has to be so complicated. I'm sure a lot of things in Scala have their reasons but at the mean time I also suspect that many of the odd things are there to reduce typing, which is advertised as one of the advantages of this language - conciseness. (I could be very wrong due to my lack of understanding.) If the latter is true, I feel that I'd rather type a little more to make the code easier to read. Just feeling a little frustrated learning Scala. I think it's much easier learning Java. Not much surprise. Not sure if anyone shares my experience (and opinion, if there is one.) On Wed, Oct 21, 2009 at 3:56 PM, Randinn rand...@gmail.com wrote: http://localhost3000.de/2009/10/a-quick-glance-at-lift/ The site above is a blog post from a Rails developer, he had some good and bad things to say about Lift and since I do not know enough to debate with him I thought I'd post it here. -- Viktor Klang | A complex system that works is invariably | found to have evolved from a simple system | that worked. - John Gall Blog: klangism.blogspot.com Twttr: viktorklang Code: github.com/viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: **Breaking Changes** **README** **Important**
DPP (and I) recommend just doing schedule and then re-schedule after message recieved. schedule(actor,MyMsg(),3 seconds) in the actor { case MyMsg() = { doMyStuff schedule(this,MyMsg(),3 seconds) } } Makes sense? On Thu, Oct 22, 2009 at 12:37 PM, george geo...@mattandgeorge.com wrote: - Secondly, I also get compilation error for calling scheduleAtFixedRate method on ActorPing. Says no such method. Has this method been deprecated and if so, what is the method I should be calling instead? I have this problem also. -- Viktor Klang | A complex system that works is invariably | found to have evolved from a simple system | that worked. - John Gall Blog: klangism.blogspot.com Twttr: viktorklang Code: github.com/viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Why the liftweb doesn't use mysql as the default database ?
Hi Neil, I'd also like to add that MySQL is GPL. On Mon, Oct 19, 2009 at 10:10 AM, Neil.Lv anim...@gmail.com wrote: Hi all, Why the liftweb doesn't use MySQL as the default database ? Thanks very much ! Cheers, Neil -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Wave: viktor.kl...@googlewave.com Code: github.com/viktorklang AKKA Committer - akkasource.org Lift Committer - liftweb.com Atmosphere Committer - atmosphere.dev.java.net SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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 much Scala knowledge is needed to start coding a simple blog with Lift?
On Thu, Oct 15, 2009 at 4:41 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Thu, Oct 15, 2009 at 4:18 AM, Viktor Klang viktor.kl...@gmail.comwrote: I started Scala 2 years ago by reading the Lift code. so DPPs basically responsible for my Scala code... ;) So what you're saying is that you're all my fault... gak. ;-) Thanks for the warming words David ;) On Thu, Oct 15, 2009 at 10:58 AM, opyate opy...@gmail.com wrote: Hello, I bought the Scala book in PDF format (Odersky/Spoon/Venners) and pretty much jumped around it (benefit of PDF is the hyperlinks) for about a week. I am probably proficient with everything in chapters 1-18 which is still pretty much beginner/novice level, but I need the web/book before I tackle most other concepts. But I just wanted to get my hands dirty with a couple of apps and dived straight in. You learn by doing. You learn by reading someone else's code, which is what I've been doing a lot with the Lift sources (I have a local Git clone, and set it up in Eclipse). So, in a nutshell: learn the Scala basics, and get your hands dirty. Open a console and faff about, then start writing apps! :-) What I've done so far can be found here: http://github.com/opyate/Ken http://github.com/opyate/yauser Happy coding! Juan On Oct 15, 6:07 am, ngocdaothanh ngocdaoth...@gmail.com wrote: Hi, I have experience with Rails and Java. I'm new to Scala and Lift. I want to ask how much Scala knowledge is needed to start coding a simple blog with Lift? Rails is easy to learn because it require little Ruby knowledge to get started. Having read the Lift book, I feel one must have some advanced Scala knowledge to get started. Could anyone provide some kind of guideline or curriculum of Scala and Lift to get started with Lift? I would like to write a simple blog to learn Lift. But don't know how much Scala knowledge I should have to jump in Lift. Thanks. -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Wave: viktor.kl...@googlewave.com Code: github.com/viktorklang AKKA Committer - akkasource.org Lift Committer - liftweb.com Atmosphere Committer - atmosphere.dev.java.net SoftPub founder: http://groups.google.com/group/softpub -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Wave: viktor.kl...@googlewave.com Code: github.com/viktorklang AKKA Committer - akkasource.org Lift Committer - liftweb.com Atmosphere Committer - atmosphere.dev.java.net SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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 much Scala knowledge is needed to start coding a simple blog with Lift?
I started Scala 2 years ago by reading the Lift code. so DPPs basically responsible for my Scala code... ;) On Thu, Oct 15, 2009 at 10:58 AM, opyate opy...@gmail.com wrote: Hello, I bought the Scala book in PDF format (Odersky/Spoon/Venners) and pretty much jumped around it (benefit of PDF is the hyperlinks) for about a week. I am probably proficient with everything in chapters 1-18 which is still pretty much beginner/novice level, but I need the web/book before I tackle most other concepts. But I just wanted to get my hands dirty with a couple of apps and dived straight in. You learn by doing. You learn by reading someone else's code, which is what I've been doing a lot with the Lift sources (I have a local Git clone, and set it up in Eclipse). So, in a nutshell: learn the Scala basics, and get your hands dirty. Open a console and faff about, then start writing apps! :-) What I've done so far can be found here: http://github.com/opyate/Ken http://github.com/opyate/yauser Happy coding! Juan On Oct 15, 6:07 am, ngocdaothanh ngocdaoth...@gmail.com wrote: Hi, I have experience with Rails and Java. I'm new to Scala and Lift. I want to ask how much Scala knowledge is needed to start coding a simple blog with Lift? Rails is easy to learn because it require little Ruby knowledge to get started. Having read the Lift book, I feel one must have some advanced Scala knowledge to get started. Could anyone provide some kind of guideline or curriculum of Scala and Lift to get started with Lift? I would like to write a simple blog to learn Lift. But don't know how much Scala knowledge I should have to jump in Lift. Thanks. -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Wave: viktor.kl...@googlewave.com Code: github.com/viktorklang AKKA Committer - akkasource.org Lift Committer - liftweb.com Atmosphere Committer - atmosphere.dev.java.net SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: DB logging logs statements twice?
I vote for DB.exec On Thu, Oct 15, 2009 at 4:09 PM, Derek Chen-Becker dchenbec...@gmail.comwrote: OK, I found what's happening. Logging is getting called in the private DB.runPreparedStatement, and also in the DB.exec method. Mapper uses exec within the runPreparedStatement call. It seems like exec is the more appropriate place to be running the logging, since you could have multiple execs on a prepared statement but you generally wouldn't prepare a statement without executing it. Thoughts on removing the logging from runPreparedStatement? Derek On Wed, Oct 14, 2009 at 11:42 PM, Derek Chen-Becker dchenbec...@gmail.com wrote: I don't think so. In this case I'm seeing a ResultSet in both log entries, which shouldn't show up in the part where it's being prepared. Derek On Tue, Oct 13, 2009 at 6:09 PM, Jonathan Ferguson j...@spiralarm.comwrote: Is this related to a previous query dated 15 Sept, the title was [Lift] Mapper: Why is every SQL query sent twice? (second time with NULL parameters) The response from @dpp was The SQL is not being sent twice. There are two different points (when the Statement is created and after the Statement is executed) that the same query is logged. Cheers Jono 2009/10/14 Derek Chen-Becker dchenbec...@gmail.com OK, I'm seeing the same thing here. I'll open an issue and work on it. Derek On Tue, Oct 13, 2009 at 10:07 AM, harryh har...@gmail.com wrote: I'm also seeing this double logging behavior (using PostgreSQL. I was under the impression that it was happening because the SQL statement is first prepared, and then executed (each of which cause a log entry). It's not critical or anything, but it would be nice if this could be fixed at some point. -harryh On Oct 13, 10:28 am, Derek Chen-Becker dchenbec...@gmail.com wrote: I'm not sure how that could be getting logged twice, especially since it's the exact same ResultSet being returned. When I tested this on my local app (against both PG and MySQL) I didn't get this behavior, but I'll try pulling from master and testing again just in case something changed. Derek On Tue, Oct 13, 2009 at 6:56 AM, Jeppe Nejsum Madsen je...@ingolfs.dkwrote: Hi, Just wanted to update to the new db logging by adding the following to boot: DB.addLogFunc { case (query:DBLog, time) = { LogBoot.loggerByName(query).info( All queries took + time + ms: ) query.statementEntries.foreach({ case DBLogEntry(stmt, duration) = LogBoot.loggerByName(query).info(+stmt + took + duration + ms)}) LogBoot.loggerByName(query).info( End queries) } } But it seems all executed statements are logged twice. I have this snippet: def currentUser(xhtml: Group): NodeSeq = Text(User.currentUser.dmap(S.?(Anonym))(user = user.firstName + + user.lastName)) This logs: 14:46:09.068 [tp-1029120287-4] INFO query - All queries took 5ms: 14:46:09.068 [tp-1029120287-4] INFO query - Exec query SELECT users.id, users.firstname, users.lastname, users.email, users.locale, users.timezone, users.password_pw, users.password_slt, users.account_id, users.superuser, users.uniqueid, users.validated FROM users WHERE id = 2 (scale -5) : org.postgresql.jdbc4.jdbc4result...@77f31432 took 4ms 14:46:09.069 [tp-1029120287-4] INFO query - End queries 14:46:09.069 [tp-1029120287-4] INFO query - All queries took 8ms: 14:46:09.069 [tp-1029120287-4] INFO query - Exec query SELECT users.id, users.firstname, users.lastname, users.email, users.locale, users.timezone, users.password_pw, users.password_slt, users.account_id, users.superuser, users.uniqueid, users.validated FROM users WHERE id = 2 (scale -5) : org.postgresql.jdbc4.jdbc4result...@77f31432 took 4ms 14:46:09.069 [tp-1029120287-4] INFO query - End queries Note the same resultset. The postgres logs also shows that only a single statement is executed So, what did I miss? /Jeppe -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Wave: viktor.kl...@googlewave.com Code: github.com/viktorklang AKKA Committer - akkasource.org Lift Committer - liftweb.com Atmosphere Committer - atmosphere.dev.java.net SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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 UVP's
I think that focusing on the selling points is a good strategy, people cannot and will not learn the code in the preso, so demonstrating _why_ Lift is a good choice if you value the things that Lift brings to the table, and then start lining up things on the table. On Mon, Oct 12, 2009 at 12:09 AM, Rick R rick.richard...@gmail.com wrote: From an outsider: Comet/Actors was a big draw for me to Lift. As I learned more, the view-first philosophy began becoming very helpful. In addition, it offers an insanely powerful session state API. It is also secure by default, offering many features that would be a pain to retrofit into a system. The component oriented views/templates and no-single-controller philosophy is also a major win. IMO it, along with Nitrogen may be the only major framework to actually offer true modularization. It was these and other benefits that lured me *despite* its integration with the existing JEE infrastructure. Coming from a functional and c++ background, Lift's association with Java was a detriment in my eyes. I am know that there are others like me, and, depending on the audience, it may need to be addressed. Just my two cents. Good luck with your talk! On Sun, Oct 11, 2009 at 5:37 PM, Timothy Perrett timo...@getintheloop.euwrote: Guys, In about a month im speaking at a fairly sizeable event in Belgium and wanted to ask a few questions about what users see at Lift's unique value proposition. I did a talk about lift at a bar-camp recently and whilst they were fairly well received, I think i still assumed too much information. To that end, I thought by focusing on some of lifts super cool features in a broad way I would then aim to give people a better overview / warm fuzzy feeling about Lift in the allotted hour. So what are Lift's UVP's? My list looks a little like: - OOTB Comet (probably what draws most people to lift) - View first / code free templating - Utilisation of existing JEE infrastructure (WARs, JPA etc) - Non-perscriptive but highly configurable framework Then we also have some stuff that we inherit from scala: - traits - concise but type safe code - etc etc etc What do people think? I have an hour to make people feel good about Lift and hopefully give them enough of a taste to go away and try it later - am i missing anything blindingly obvious? This isnt a hard and fast outline of my preso, just trying to kick around some thoughts and ideas :-) Cheers, Tim -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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 UVP's
On Mon, Oct 12, 2009 at 11:06 AM, Timothy Perrett timo...@getintheloop.euwrote: Completly :-) Thats why i just want to present a strong case of features and get away from code on slides. I might do a few slides showing some code, perhaps for things like template binding or comet. But generally id like to think about features. So, what might you suggest mate? :-) Perhaps something like The Lift philosophy View-first - Pros and Cons Comet OOTB (the 30 line chat example is always a crowd-pleaser) The security model (random uids, SiteMap, Http Auth etc) Performance and scaling That's what's on top of my head... Cheers, Tim On 12 Oct 2009, at 08:27, Viktor Klang wrote: I think that focusing on the selling points is a good strategy, people cannot and will not learn the code in the preso, so demonstrating _why_ Lift is a good choice if you value the things that Lift brings to the table, and then start lining up things on the table. -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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 share request scope data among snippets in Lift
On Tue, Oct 6, 2009 at 12:01 AM, Kevin Wright kev.lee.wri...@googlemail.com wrote: On Mon, Oct 5, 2009 at 10:54 PM, Jack Widman jack.wid...@gmail.com wrote: I'm not sure English is Turing Complete. Also not sure how prominent it will be in 50 years ... :) Nor I, but I'm certain that Turing was (Queen's) English complete... :) Didn't the Queen's England like have him castrated for being homosexual as well? http://en.wikipedia.org/wiki/Alan_Turing#Conviction_for_gross_indecency On Mon, Oct 5, 2009 at 5:51 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Mon, Oct 5, 2009 at 9:35 AM, Timothy Perrett timo...@getintheloop.eu wrote: Call me old fashioned, but good ol' English seems to be quite prevalent these days ;-) Is this the Queen's English? ;-) On 5 Oct 2009, at 17:02, Jack Widman wrote: Why don't we make Esperanto the official Lift language? -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- Jack -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: execute code when browser is closed
On Mon, Oct 5, 2009 at 6:50 AM, jack jack.wid...@gmail.com wrote: I would like to call a function when the browser is closed. How do I do this? You cannot reliably do this. -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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 share request scope data among snippets in Lift
On Mon, Oct 5, 2009 at 6:02 PM, Jack Widman jack.wid...@gmail.com wrote: Why don't we make Esperanto the official Lift language? I'd say make Scala the official language ;) On Mon, Oct 5, 2009 at 11:52 AM, marius d. marius.dan...@gmail.comwrote: On Oct 5, 6:15 pm, David Pollak feeder.of.the.be...@gmail.com wrote: On Sun, Oct 4, 2009 at 2:41 AM, ishiijp yoshinori.is...@gmail.com wrote: Thank you for your example, David. It will work in my purpose. Cool. It seems that my poor English and less information let some people confused. I appreciate that you have put in the work to translate your thoughts to English. I apologize that I only speak English, but would love to speak Japanese, German, Russian, and a few other languages. oh you gotta learn Romanian :) I need just a request scope data. It means I want to share information between snippets across a request. (Is the expression request scope not good for in this case...?) request scope is exactly the right phrase. Thank all responsed my post, and your suggestions are informative. I think very nice community is here. On 9月26日, 午後10:33, David Pollak feeder.of.the.be...@gmail.com wrote: To share information between snippets during a request, use a RequestVar: object MyInfo extends RequestVar(calculate_value) so object MyInfo extends RequestVar[Box[Invoice]](Empty) in one snippet, you may calculate the Invoice and put it in the MyInfo: MyInfo.set(Full(invoice)) In another snippet, you can extract: for { invoice - MyInfo.is } yield ... Note that the calculate_value is a call-by-name parameter, so it will be invoked each time the RequestVar is uninitialized. You can place lazy calculation logic in here. On Sat, Sep 26, 2009 at 12:14 AM, ishiijp yoshinori.is...@gmail.com wrote: Hi. If my lift application have some data that cost to create, and I want to share it among snippets, how to do in Lift? if such data are shared inside one snippet, I may use lazy val. But I have no nice idea to share it among different snippts. Thanks much. -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Surf the harmonics -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Surf the harmonics -- Jack -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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 with JavaRebel, Jetty: Can I add views and/or modify Boot.scala without restarting Jetty?
Boot is just executed at webapp init, hence the observed behavior. Changing this is a tricky thing On Oct 4, 2009 4:35 AM, Alex Black a...@alexblack.ca wrote: I'm just getting started with Lift and Scala, and I'm excited about using JavaRebel to avoid waiting to restart Jetty every time I make a change. It seems to be working well: I can see changes made to snippets for example right away, I'm running mvn scala:cc: and I see it pick up the changes. However, if I add a new view say test2.html, then modify the sitemap Boot.scala, I can't access test2 until I restart Jetty, even though I saw that scala.cc picked up the change and recompiled Boot.scala. Should this be possible? Thanks! - Alex --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: How do you deploy yours?
Thanks for the linky, mate! Was a good read :) On Sun, Oct 4, 2009 at 11:45 PM, Timothy Perrett timo...@getintheloop.euwrote: Just some more fuel for this debate: http://technically.us/code/x/to-jettison-geronimo/ Cheers, Tim On Oct 4, 8:46 pm, Timothy Perrett timo...@getintheloop.eu wrote: Guys, Of late i've been having several discussions with people about how they deploy there lift apps... So, how do you deploy yours? Specifically, how are people managing multiple apps in one install of jetty? Or, alternatively, how are you embedded jetty so you have an executable JAR? Im using Winstone for apps that dont use Comet because the package is so slick (thanks DavidB), but now, I really really want to be able to embed jetty so I have an executable JAR in the same vein as Winstone. As time moves on, I feel like this is more and more important and we dont current have a defined path for n00bs. Cheers, Tim -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: Removing Scala Actors from Lift
? Thanks, David -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Surf the harmonics -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner code: http://akkasource.org -- Heiko Seeberger My job: weiglewilczek.com My blog: heikoseeberger.name Follow me: twitter.com/hseeberger OSGi on Scala: scalamodules.org Lift, the simply functional web framework: liftweb.net -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: Java 5 support?
Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: Java 5 support?
On Tue, Sep 29, 2009 at 3:47 PM, Derek Chen-Becker dchenbec...@gmail.comwrote: Can you elaborate on what you mean? I was actually going to look at how log4jdbc does it and see if I could replicate it. I haven't really tried this, but if you do: if you implement methods with the correct signatures in the LoggedStatement and LoggedPreparedStatement, then wrap the invocations to the wrapped instances in a try-catch, and if there's an NoSuchMethodException, return some default value? Derek On Tue, Sep 29, 2009 at 5:22 AM, Viktor Klang viktor.kl...@gmail.comwrote: Is it possible to have a bridge trait for the Statement interface? On Tue, Sep 29, 2009 at 12:16 AM, Derek Chen-Becker dchenbec...@gmail.com wrote: No. I hadn't foreseen this issue, but I understand the importance of have Java 5 support. I'm fine with writing and maintaining multiple versions of the impls for the various versions, but I wonder if there's any clean way to manage this with Maven. Derek On Mon, Sep 28, 2009 at 4:00 PM, David Pollak feeder.of.the.be...@gmail.com wrote: Crud. This just isn't going to be easy, is it? On Mon, Sep 28, 2009 at 2:04 PM, Derek Chen-Becker dchenbec...@gmail.com wrote: Another issue, which may be more problematic, is that in my case I'm compiling against the java.sql.Statement interface. If I remove the troublesome methods so that it compiles for 1.5, it no longer compiles for 1.6 because of the missing methods: [WARNING] /home/software/liftweb/lift-mapper/src/main/scala/net/liftweb/mapper/LoggingStatementWrappers.scala:70: error: class LoggedStatement needs to be abstract, since method isPoolable in trait Statement of type ()Boolean is not defined [WARNING] class LoggedStatement(underlying : Statement) extends Statement with DBLog { [WARNING] ^ [WARNING] /home/software/liftweb/lift-mapper/src/main/scala/net/liftweb/mapper/LoggingStatementWrappers.scala:267: error: class LoggedPreparedStatement needs to be abstract, since method setNClob in trait PreparedStatement of type (Int,java.io.Reader)Unit is not defined [WARNING] class LoggedPreparedStatement (stmt : String, underlying : PreparedStatement) extends LoggedStatement(underlying) with PreparedStatement { [WARNING] ^ Derek On Mon, Sep 28, 2009 at 2:29 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Mon, Sep 28, 2009 at 1:19 PM, Derek Chen-Becker dchenbec...@gmail.com wrote: The issue (and I may be overthinking this) is that we need 1.5 class libraries to compile against if we want to be able to verify that the code compiles under 1.5. If I, say, delete my JDK 5 install and decide to reinstall it down the road, it's not going to be available without a purchased license. I can stash away a bunch of different copies of the JDK and give them to you when you need them. A 32 bit Linux JDK 1.5 should be enough to at least do smoke test builds with. Derek On Mon, Sep 28, 2009 at 1:33 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Mon, Sep 28, 2009 at 11:51 AM, Derek Chen-Becker dchenbec...@gmail.com wrote: My main concern is that after October 30, Java 5 costs money (I'm guessing not a trivial amount, either). I can get the JDK right now, but if some bug in the Java libraries pops up that would prevent things from working, I don't know how we'll work around that. I don't see the condition under which that could happen. When we compile against Java 1.5, we are simply defining the contract between our classes and the library classes. None of the library seeps into our code (this is not true of Scala traits). So, as long as the running library has the classes/methods that we are calling, we're fine. Compiling against 1.5 simply means that we have fewer calls that we can make. If there is an issue in 1.5 that a user is experiencing, that is the user's issue, not ours. If the code compiles (and runs tests) against 1.5 and does not generate the particular issue that the user is seeing under 1.6, then that use has to contact Sun, not us. Derek On Mon, Sep 28, 2009 at 12:29 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Mon, Sep 28, 2009 at 11:14 AM, Derek Chen-Becker dchenbec...@gmail.com wrote: I was just about to work on issue #67 (build breaks on Java 5), but when I went to get a Java 5 JDK to compile/test with, Sun says that it's EOL as of October 30, 2009. I don't have a problem fixing things to work with Java 5, but I don't want to do work that's going to be tossed out in a month. Lift will be JDK 1.5 compatible for at least 1 year (and probably longer). LinkedIn and SAP are both 1.5 shops. There are tons of other Bay Area companies (Wells Fargo, Kaiser, etc.) that are also 1.5 shops. For the next 2-3 years, OS X 10.5 will be common and 10.5 + old MacBooks == 1.5. It will not be lost work. Derek -- Lift, the simply functional web
[Lift] Re: Java 5 support?
On Tue, Sep 29, 2009 at 4:44 PM, Naftoli Gugenheim naftoli...@gmail.comwrote: Another option: Java has a way to dynamically implement an interface. I forgot what the classes are called. You supply a delegate and you can pattern match on which method is being invoked. In Java 5 the nonexistent method will simply never be invoked, but it won't break code. Dynamic proxy? - Viktor Klangviktor.kl...@gmail.com wrote: On Tue, Sep 29, 2009 at 3:47 PM, Derek Chen-Becker dchenbec...@gmail.com wrote: Can you elaborate on what you mean? I was actually going to look at how log4jdbc does it and see if I could replicate it. I haven't really tried this, but if you do: if you implement methods with the correct signatures in the LoggedStatement and LoggedPreparedStatement, then wrap the invocations to the wrapped instances in a try-catch, and if there's an NoSuchMethodException, return some default value? Derek On Tue, Sep 29, 2009 at 5:22 AM, Viktor Klang viktor.kl...@gmail.com wrote: Is it possible to have a bridge trait for the Statement interface? On Tue, Sep 29, 2009 at 12:16 AM, Derek Chen-Becker dchenbec...@gmail.com wrote: No. I hadn't foreseen this issue, but I understand the importance of have Java 5 support. I'm fine with writing and maintaining multiple versions of the impls for the various versions, but I wonder if there's any clean way to manage this with Maven. Derek On Mon, Sep 28, 2009 at 4:00 PM, David Pollak feeder.of.the.be...@gmail.com wrote: Crud. This just isn't going to be easy, is it? On Mon, Sep 28, 2009 at 2:04 PM, Derek Chen-Becker dchenbec...@gmail.com wrote: Another issue, which may be more problematic, is that in my case I'm compiling against the java.sql.Statement interface. If I remove the troublesome methods so that it compiles for 1.5, it no longer compiles for 1.6 because of the missing methods: [WARNING] /home/software/liftweb/lift-mapper/src/main/scala/net/liftweb/mapper/LoggingStatementWrappers.scala:70: error: class LoggedStatement needs to be abstract, since method isPoolable in trait Statement of type ()Boolean is not defined [WARNING] class LoggedStatement(underlying : Statement) extends Statement with DBLog { [WARNING] ^ [WARNING] /home/software/liftweb/lift-mapper/src/main/scala/net/liftweb/mapper/LoggingStatementWrappers.scala:267: error: class LoggedPreparedStatement needs to be abstract, since method setNClob in trait PreparedStatement of type (Int,java.io.Reader)Unit is not defined [WARNING] class LoggedPreparedStatement (stmt : String, underlying : PreparedStatement) extends LoggedStatement(underlying) with PreparedStatement { [WARNING] ^ Derek On Mon, Sep 28, 2009 at 2:29 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Mon, Sep 28, 2009 at 1:19 PM, Derek Chen-Becker dchenbec...@gmail.com wrote: The issue (and I may be overthinking this) is that we need 1.5 class libraries to compile against if we want to be able to verify that the code compiles under 1.5. If I, say, delete my JDK 5 install and decide to reinstall it down the road, it's not going to be available without a purchased license. I can stash away a bunch of different copies of the JDK and give them to you when you need them. A 32 bit Linux JDK 1.5 should be enough to at least do smoke test builds with. Derek On Mon, Sep 28, 2009 at 1:33 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Mon, Sep 28, 2009 at 11:51 AM, Derek Chen-Becker dchenbec...@gmail.com wrote: My main concern is that after October 30, Java 5 costs money (I'm guessing not a trivial amount, either). I can get the JDK right now, but if some bug in the Java libraries pops up that would prevent things from working, I don't know how we'll work around that. I don't see the condition under which that could happen. When we compile against Java 1.5, we are simply defining the contract between our classes and the library classes. None of the library seeps into our code (this is not true of Scala traits). So, as long as the running library has the classes/methods that we are calling, we're fine. Compiling against 1.5 simply means that we have fewer calls that we can make. If there is an issue in 1.5 that a user is experiencing, that is the user's issue, not ours. If the code compiles (and runs tests) against 1.5 and does not generate the particular issue that the user is seeing under 1.6, then that use has to contact Sun, not us. Derek On Mon, Sep 28, 2009 at 12:29 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Mon, Sep 28, 2009 at 11:14 AM, Derek Chen-Becker dchenbec...@gmail.com wrote: I was just about to work on issue #67 (build breaks on Java 5), but when I went to get
[Lift] Re: You are not banned from this group!!
On Thu, Sep 24, 2009 at 3:29 PM, Oliver Lambert olambo...@gmail.com wrote: My son was born a week ago, with a heart defect that has just been operated on - I've been biting my nails for months and haven't felt like communicating or working. Things are starting to look good for him so maybe Im back. I'll cross my fingers and hope all goes well mate! cheers Oliver On Thu, Sep 24, 2009 at 12:08 PM, Charles F. Munat c...@munat.com wrote: Funny, I was just wondering what happened to you maybe two days ago. Are you back, or just checking in? Chas. Oliver Lambert wrote: On Tue, Sep 22, 2009 at 7:21 AM, David Pollak feeder.of.the.be...@gmail.com mailto:feeder.of.the.be...@gmail.com wrote: I will gladly buy beer/coffee/food for anyone who gets such a notice. I sincerely apologize for any problems this is causing. Can you send me such a notice, I'd like a beer! Oh, and I've been away for a while, its nice to see the lift mailing list is going so strong. Oliver -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: [SOLVED] Image submit buttons
Cheesus mate, the horrors of war... On Thu, Sep 24, 2009 at 6:23 PM, Timothy Perrett timo...@getintheloop.euwrote: It appears that placing a hidden field at the end of the form with the right function binding solves the issue. Its far from ideal, but ironically appears to be what Microsoft do with .NET to work around IE issues. The joys of IE! Cheers, Tim On Sep 24, 9:41 am, Timothy Perrett timo...@getintheloop.eu wrote: Actually scrap that - any solution to make image submit buttons work in IE and lift would be good :-) Cheers, Tim On Sep 24, 9:19 am, Timothy Perrett timo...@getintheloop.eu wrote: Guys, IE8 brings with it a whole new lot of joy and: input type=image / Does not act as a submit button. According to the interweb, this will fix it: button type=submitimg src=whatever.jpg //button As I need to exectute the submit function in my lift snippet - how can i get around this with the current implementation? Seems like we need a SHtml.button(contentNodeSeq, callback _) Thoughts? Cheers, Tim -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: Spring Security
On Wed, Sep 16, 2009 at 2:38 AM, Charles F. Munat c...@munat.com wrote: David Pollak wrote: The existing page/URL level security has nothing to do with Mapper. There's nothing that can be done with Mapper that can't be done with JPA (with the exception of Mapper's field-level access control which, to my knowledge, is not being used anywhere.) I meant that the login feature when you use the basic archetype is set up to work with Mapper, not that login is part of Mapper. It could be adapted to work with JPA easily, but there is no JPA archetype so far that includes that login functionality (that I'm aware of). You have to roll your own. I radically disagree. Having a separate concern doing security is a disaster because there'll always be some place where one system believes one thing and the other system believes something else. A disaster? Always? Really? Even allowing for hyperbole, if these systems are so bad, why are so many people using them -- apparently with great success? Without some evidence to back this claim up, I'm dubious. Chas, there's alot of really shitty software used by millions of people, I could name these product to you, but I'm unwilling to bash multinational, billion-dollar companies where they have no possibility to retort. The morale of the story is that just because everyone else is doing it doesn't mean that it's good or even above retarded. That said, it certainly would be nice to have these capabilities in Lift. But I don't have the time either. SS looks pretty drop in. There may also be situations where using a particular solution (such as SS) is a requirement and make-or-break on whether Lift can be used, so I don't see the ability to make Lift work with such software as a negative. I have a lot more to say on this, but have to run. Maybe later. Chas. -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: Spring Security
On Wed, Sep 16, 2009 at 10:49 AM, Viktor Klang viktor.kl...@gmail.comwrote: On Wed, Sep 16, 2009 at 2:38 AM, Charles F. Munat c...@munat.com wrote: David Pollak wrote: The existing page/URL level security has nothing to do with Mapper. There's nothing that can be done with Mapper that can't be done with JPA (with the exception of Mapper's field-level access control which, to my knowledge, is not being used anywhere.) I meant that the login feature when you use the basic archetype is set up to work with Mapper, not that login is part of Mapper. It could be adapted to work with JPA easily, but there is no JPA archetype so far that includes that login functionality (that I'm aware of). You have to roll your own. I radically disagree. Having a separate concern doing security is a disaster because there'll always be some place where one system believes one thing and the other system believes something else. A disaster? Always? Really? Even allowing for hyperbole, if these systems are so bad, why are so many people using them -- apparently with great success? Without some evidence to back this claim up, I'm dubious. Chas, there's alot of really shitty software used by millions of people, I could name these product to you, but I'm unwilling to bash multinational, billion-dollar companies where they have no possibility to retort. The morale of the story is that just because everyone else is doing it doesn't mean that it's good or even above retarded. Please note that I was not talking about SS in any sense, I'm just a firm believer that in order to know if something is good or not you need to establish what you value and how you measure that value and what different solution you are weighing against eachother. Never fall for peer pressure when doing software. That said, it certainly would be nice to have these capabilities in Lift. But I don't have the time either. SS looks pretty drop in. There may also be situations where using a particular solution (such as SS) is a requirement and make-or-break on whether Lift can be used, so I don't see the ability to make Lift work with such software as a negative. I have a lot more to say on this, but have to run. Maybe later. Chas. -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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 XHTML and embedded snippets
On Wed, Sep 16, 2009 at 12:37 PM, Ewan ehar...@gmail.com wrote: I'd like to pop the bound value from a snippet into some standard xhtml tags but it does not parse. In the case below I want the url to be put into the img tag where property:imageUrl/ is bound to ta snippet. img src=property:imageUrl/ style=border:3px solid #CC width=75 height=100/ Have a snippet that simply adds the src attribute to the supplied markup lift:img src=imageUrl img style=fooo width=75 height=100/ /lift:img I am unable to do this so as a work around I get the snippet to create the xhtml img tag but is there a way to achieve the above as I don't want to change scala src for every minor ui change. -- Ewan -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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 XHTML and embedded snippets
On Wed, Sep 16, 2009 at 12:49 PM, Viktor Klang viktor.kl...@gmail.comwrote: On Wed, Sep 16, 2009 at 12:37 PM, Ewan ehar...@gmail.com wrote: I'd like to pop the bound value from a snippet into some standard xhtml tags but it does not parse. In the case below I want the url to be put into the img tag where property:imageUrl/ is bound to ta snippet. img src=property:imageUrl/ style=border:3px solid #CC width=75 height=100/ Have a snippet that simply adds the src attribute to the supplied markup lift:img src=imageUrl img style=fooo width=75 height=100/ /lift:img Also, you can do like this: http://www.mail-archive.com/liftweb@googlegroups.com/msg06278.html I am unable to do this so as a work around I get the snippet to create the xhtml img tag but is there a way to achieve the above as I don't want to change scala src for every minor ui change. -- Ewan -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Breaking changes in CometActor code vs. continuing instabilities in Scala Actors
On Wed, Sep 16, 2009 at 3:42 PM, Naftoli Gugenheim naftoli...@gmail.comwrote: I haven't used comet, but would it be worthwhile to abstract it with implementations (potentially) for Scala, Lift, and Akka actors? I've integrated Atmosphere http://atmosphere.dev.java.net/ into Akka, and I know that Jeanfrançois Arcand (Atmosphere dude) has shown interest in integrating it into Lift. - TylerWeirtyler.w...@gmail.com wrote: Given the on again/off again nature of the issue, I'm voting for adding your change. We can rely on your code working until the issue is sorted with the Scala team. So, +1 to dpp's code. On Sep 16, 9:14?am, David Pollak feeder.of.the.be...@gmail.com wrote: Guys, The Scala Actor issue has raised its head again. From November 2008 - June 2009, I did an epic battle with Scala actors and their memory retention issues. I finally wrote a Lift Actor library that made all the Scala Actor-related issues go away for the short-lived Actors that Lift uses as listeners for comet long-polling. It seems that the Actor issue is not gone. ?I'm not sure it will be gone in Scala 2.8. I can make a change in Lift to move to Lift Actors in CometActor code. ?It means that if you're using Scala Actors beyond !, !! and !? methods, you will have to change your code, otherwise it will just be a recompile. What do people think? Thanks, David -- Lift, the simply functional web frameworkhttp://liftweb.net Beginning Scalahttp://www.apress.com/book/view/1430219890 Follow me:http://twitter.com/dpp Git some:http://github.com/dpp -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Breaking changes in CometActor code vs. continuing instabilities in Scala Actors
On Wed, Sep 16, 2009 at 4:50 PM, Timothy Perrett timo...@getintheloop.euwrote: Kevin, To clarify, your talking about akka-actors? The preferred route I think would be to use a fixed EPFL implementation, however, in leu of that i think from a project perspective it would be beneficial for lift to have a corrected actor implementation that we have direct control of. I know DPP would certainly have this be his preference despite Jonas, Viktor and myself being commiters on both projects :-) Bottom line here is that we need this fixed, asap and the path of least resistance is to use lift-actor until EPFL fix the core actor code. Seconded. Cheers, Tim On 16 Sep 2009, at 14:27, Kevin Wright wrote: Is there any reason not to go with something like the Akka framework? I believe it has a lift-friendly license. On Wed, Sep 16, 2009 at 2:14 PM, David Pollak feeder.of.the.be...@gmail.com wrote: Guys, The Scala Actor issue has raised its head again. From November 2008 - June 2009, I did an epic battle with Scala actors and their memory retention issues. I finally wrote a Lift Actor library that made all the Scala Actor-related issues go away for the short-lived Actors that Lift uses as listeners for comet long-polling. It seems that the Actor issue is not gone. I'm not sure it will be gone in Scala 2.8. I can make a change in Lift to move to Lift Actors in CometActor code. It means that if you're using Scala Actors beyond !, !! and !? methods, you will have to change your code, otherwise it will just be a recompile. What do people think? Thanks, David -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: Why isn't this a trait in lift-json?
For me, annotations in Scala are permissible when having to deal with Java frameworks that need annotations to work. (examples: JAX-RS, JPA et al) On Mon, Sep 14, 2009 at 8:06 PM, Timothy Perrett timo...@getintheloop.euwrote: Whilst I cant speak for anyone else - looking at Java these days generally makes me want to be sick and annotations are simply convulsion inducing ;-) There are some issues from a technical perspective with Scala annotations (like deep nested annotations for JPA), but otherwise, in terms of lift i think there are not really any good technical reasons why it is we dont use java annotations - its mainly a general dislike. Cheers, Tim On Sep 14, 6:34 pm, Naftoli Gugenheim naftoli...@gmail.com wrote: Can someone detail the minus side of annotations? (Other than it's just not the Scala/Lift way. :) Preferably in terms of what goal it inhibits.) Also keep in mind that the exception in terms of the code being in a Java source file is a temporary workaround that will be replaced when it's possible, so it's not a huge exception. -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: Why isn't this a trait in lift-json?
On Mon, Sep 14, 2009 at 8:52 PM, Timothy Perrett timo...@getintheloop.euwrote: Viktor you disappoint me! Was hoping you might chime in with some witty retort about java ;-) lol. Sorry mate, I'll have to buy you a beer at Devoxx! :D Your right though - sometimes there is just no other way if your inter-oping with some java framework that loves annotations. Yup, the sad truth. Cheers, Tim On 14 Sep 2009, at 19:22, Viktor Klang wrote: For me, annotations in Scala are permissible when having to deal with Java frameworks that need annotations to work. (examples: JAX-RS, JPA et al) On Mon, Sep 14, 2009 at 8:06 PM, Timothy Perrett timo...@getintheloop.euwrote: Whilst I cant speak for anyone else - looking at Java these days generally makes me want to be sick and annotations are simply convulsion inducing ;-) There are some issues from a technical perspective with Scala annotations (like deep nested annotations for JPA), but otherwise, in terms of lift i think there are not really any good technical reasons why it is we dont use java annotations - its mainly a general dislike. Cheers, Tim On Sep 14, 6:34 pm, Naftoli Gugenheim naftoli...@gmail.com wrote: Can someone detail the minus side of annotations? (Other than it's just not the Scala/Lift way. :) Preferably in terms of what goal it inhibits.) Also keep in mind that the exception in terms of the code being in a Java source file is a temporary workaround that will be replaced when it's possible, so it's not a huge exception. -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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 deal breakers
On Mon, Sep 14, 2009 at 8:20 PM, Timothy Perrett timo...@getintheloop.euwrote: Just wading into the fray here... Looking at people who have responded to this thread, they are mainly people i've not seen on the list before (sorry if your regulars perhaps i should pay more attention!) and that indicates to me that general users dont want *any* js in page (either in the head, the footer, or attributes) and this should be the default, not the exceptional case. Personally, this stuff used to really bother me when doing front end work. Luckily that is hardly ever now, but i see the point being made and would like to add my vote to free-ing the markup of inline JS. Thoughts? I'd agree to this sentiment if it were not for DPPs excellent point that we're talking about the markup Lift spits out, not the markup that lift consumes. I am too fond of graceful degradation, but publishing JS in a separate call would be exotic to code at best. The golden middle road perhaps is, to bake the JS into the bottom of the page. HOWEVER, it is important to know that direct JS callbacks (i.e. onclick=foo()) outperforms _any_ other approach. Cheers, Tim More generally, Lift's mechanism for JavaScript support is *not* required. You could build your own mechanism that would generate clean mark-up, render JavaScript at the end of the page which would attach to DOM events. Everybody has access to Lift's GUID - Function binding. You can use it just like it's used in SHtml, but generate your own mark-up. -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: Why isn't this a trait in lift-json?
On Mon, Sep 14, 2009 at 9:00 PM, Naftoli Gugenheim naftoli...@gmail.comwrote: Wow, isn't it amazing how passionate people could be about something without having a reason? ;) If you start me up if you start me up I'll never stop... Thanks for your answers, DPP! - Indrajit Raychaudhuriindraj...@gmail.com wrote: Absolutely, and just limit to that, no more. /Indrajit On Sep 14, 11:22 pm, Viktor Klang viktor.kl...@gmail.com wrote: For me, annotations in Scala are permissible when having to deal with Java frameworks that need annotations to work. (examples: JAX-RS, JPA et al) On Mon, Sep 14, 2009 at 8:06 PM, Timothy Perrett timo...@getintheloop.eu wrote: Whilst I cant speak for anyone else - looking at Java these days generally makes me want to be sick and annotations are simply convulsion inducing ;-) There are some issues from a technical perspective with Scala annotations (like deep nested annotations for JPA), but otherwise, in terms of lift i think there are not really any good technical reasons why it is we dont use java annotations - its mainly a general dislike. Cheers, Tim On Sep 14, 6:34 pm, Naftoli Gugenheim naftoli...@gmail.com wrote: Can someone detail the minus side of annotations? (Other than it's just not the Scala/Lift way. :) Preferably in terms of what goal it inhibits.) Also keep in mind that the exception in terms of the code being in a Java source file is a temporary workaround that will be replaced when it's possible, so it's not a huge exception. -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder:http://groups.google.com/group/softpub -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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 deal breakers
On Mon, Sep 14, 2009 at 9:29 PM, Charles F. Munat c...@munat.com wrote: When you say that direct JS callbacks (i.e. onclick=foo()) outperforms _any_ other approach what is the source for your assertion? And what do you mean by outperforms? What are the criteria? Are you talking about speed? Yes, page load time speed. (since the callback is loaded in relativity to its owner (no lookups needed etc). I did a quick search but the source of my info was nowhere to be found. I did a rather extensive research a year back or so, inline-callback vs. event delegation vs. end-of-page initialization. I guess all depends on what performance you're looking for and how JS heavy your app is. For me, with a _very_ high performance (speed) requirement, it's vital that one doesn't do any un-cacheable, avoidable requests. But as I said, perhaps a good trade-off is to put the JS init at the end of the page. If so, what is the magnitude of the difference? Is it significant? Without this information it is difficult to guess which approach would be better. Is moving the attaching of event handlers to a separate JS file going to significantly slow down my page? Then maybe it's not worth it. But if the difference is negligible, then keeping concerns separate is worth it to me. It's dangerous to say that A outperforms B without understanding exactly what that means. For me, separation of concerns outperforms mixing concerns in terms of development ease, reuse, and graceful degradation. Some of this may not apply to automatically generated code, of course. Chas. Viktor Klang wrote: On Mon, Sep 14, 2009 at 8:20 PM, Timothy Perrett timo...@getintheloop.eu wrote: Just wading into the fray here... Looking at people who have responded to this thread, they are mainly people i've not seen on the list before (sorry if your regulars perhaps i should pay more attention!) and that indicates to me that general users dont want *any* js in page (either in the head, the footer, or attributes) and this should be the default, not the exceptional case. Personally, this stuff used to really bother me when doing front end work. Luckily that is hardly ever now, but i see the point being made and would like to add my vote to free-ing the markup of inline JS. Thoughts? I'd agree to this sentiment if it were not for DPPs excellent point that we're talking about the markup Lift spits out, not the markup that lift consumes. I am too fond of graceful degradation, but publishing JS in a separate call would be exotic to code at best. The golden middle road perhaps is, to bake the JS into the bottom of the page. HOWEVER, it is important to know that direct JS callbacks (i.e. onclick=foo()) outperforms _any_ other approach. Cheers, Tim More generally, Lift's mechanism for JavaScript support is *not* required. You could build your own mechanism that would generate clean mark-up, render JavaScript at the end of the page which would attach to DOM events. Everybody has access to Lift's GUID - Function binding. You can use it just like it's used in SHtml, but generate your own mark-up. -- Viktor Klang Blog: klangism.blogspot.com http://klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com http://liftweb.com AKKA Committer - akkasource.org http://akkasource.org Cassidy - github.com/viktorklang/Cassidy.git http://github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: email encoding problem
Content-Type: text/html; charset=us-ascii IMHO that should read: Content-Type: text/html; charset=UTF-8 So basically, the content-type isn't correctly set. On Sat, Sep 12, 2009 at 5:55 PM, night_stalker usur...@gmail.com wrote: the last part is like: Subject: hi MIME-Version: 1.0 Content-Type: multipart/alternative; boundary==_Part_0_21171036.1252770284921 --=_Part_0_21171036.1252770284921 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit p??/p --=_Part_0_21171036.1252770284921-- I don't know how to set Content-Type ... On Sep 12, 10:34 pm, Indrajit Raychaudhuri indraj...@gmail.com wrote: Can you please check what the Content-Type field in the mail header looks like in the mail that you get? Cheers, Indrajit -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: email encoding problem
Good catch! On Sep 12, 2009 6:18 PM, Indrajit Raychaudhuri indraj...@gmail.com wrote: Indeed, but Content-Transfer-Encoding: 7bit could be the real suspect. I think, MimeBodyPart forces us-ascii charset for 7bit encoding. Cheers, Indrajit On Sep 12, 9:03 pm, Viktor Klang viktor.kl...@gmail.com wrote: Content-Type: text/html; charset... On Sat, Sep 12, 2009 at 5:55 PM, night_stalker usur...@gmail.com wrote: the last part is l... Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com... --~--~-~--~~~---~--~~ You received this message because you are subs... --~--~-~--~~~---~--~~ 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: PreCache doesn't take into account OrderBy and MaxRows?
On Thu, Sep 10, 2009 at 6:23 PM, harryh har...@gmail.com wrote: Consider: val venues = Venue.findAll(By(Venue.cityid, City.currentCity), NotNullRef(Venue.owner), OrderBy(Venue.id, Descending), MaxRows(10), PreCache(Venue.owner)) This appears to be generating a query like so: SELECT DISTINCT users.id, users.firstname, users.lastname FROM users WHERE id IN (SELECT owner FROM venues WHERE cityid = 22 AND owner IS NOT NULL ) - 970ms Just out of curosity, if you run the following query, how long does it take? select u.id, u.firstname, u.lastname from venues v inner join users u on v.owner = u.id where v.cityid = 22 This will end up returning a much larger number of users than is required which seems bad. -harryh -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: PreCache doesn't take into account OrderBy and MaxRows?
On Thu, Sep 10, 2009 at 8:15 PM, Viktor Klang viktor.kl...@gmail.comwrote: On Thu, Sep 10, 2009 at 6:23 PM, harryh har...@gmail.com wrote: Consider: val venues = Venue.findAll(By(Venue.cityid, City.currentCity), NotNullRef(Venue.owner), OrderBy(Venue.id, Descending), MaxRows(10), PreCache(Venue.owner)) This appears to be generating a query like so: SELECT DISTINCT users.id, users.firstname, users.lastname FROM users WHERE id IN (SELECT owner FROM venues WHERE cityid = 22 AND owner IS NOT NULL ) - 970ms Just out of curosity, if you run the following query, how long does it take? Ack! a very nice distinct fell away, this is the real deal: select distinct u.id http://u.id/, u.firstname, u.lastname from venues v inner join users u on v.owner = u.id where v.cityid = 22 select u.id, u.firstname, u.lastname from venues v inner join users u on v.owner = u.id where v.cityid = 22 This will end up returning a much larger number of users than is required which seems bad. -harryh -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: PreCache doesn't take into account OrderBy and MaxRows?
On Thu, Sep 10, 2009 at 8:32 PM, harryh har...@gmail.com wrote: ~1125 ms for your query. ~50ms for the IN based on that lift currently generates. *laughs* Query optimizers in the different RDBMSes never cease to amaze me ;D Just for kicks, what about this? SELECT DISTINCT users.id, users.firstname, users.lastname FROM users WHERE EXISTS (SELECT 1 FROM venues WHERE cityid = 22 AND owner = users.id) This is doing things in the psql console on the same machine the database lives on. It's not so much the query time that concerns me, as the amount of data being sent back in the results. In my example at the top of the thread I only need 10 users, but the query is spitting back thousands. -harryh On Sep 10, 2:16 pm, Viktor Klang viktor.kl...@gmail.com wrote: On Thu, Sep 10, 2009 at 8:15 PM, Viktor Klang viktor.kl...@gmail.com wrote: On Thu, Sep 10, 2009 at 6:23 PM, harryh har...@gmail.com wrote: Consider: val venues = Venue.findAll(By(Venue.cityid, City.currentCity), NotNullRef(Venue.owner), OrderBy(Venue.id, Descending), MaxRows(10), PreCache(Venue.owner)) This appears to be generating a query like so: SELECT DISTINCT users.id, users.firstname, users.lastname FROM users WHERE id IN (SELECT owner FROM venues WHERE cityid = 22 AND owner IS NOT NULL ) - 970ms Just out of curosity, if you run the following query, how long does it take? Ack! a very nice distinct fell away, this is the real deal: select distinct u.id http://u.id/, u.firstname, u.lastname from venues v inner join users u on v.owner = u.id where v.cityid = 22 select u.id, u.firstname, u.lastname from venues v inner join users u on v.owner = u.id where v.cityid = 22 This will end up returning a much larger number of users than is required which seems bad. -harryh -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder:http://groups.google.com/group/softpub -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder:http://groups.google.com/group/softpub -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: Creating your own tags?
Tim, if you really want to go that riute create an xslt to transform your custom tags to luft tags? On Aug 29, 2009 8:01 AM, marius d. marius.dan...@gmail.com wrote: Tim, obscuring things may get you a really long way indeed. But once the obscurity get broken and people figure out that they can do other things by using strange undocumented tags (i.e lift tags) they could cause lots of problems and side effects. Personally I'd stay away from it. And if I'd need to create a CMS templating mechanism with special nodes I'd probably create one separated from Lift's templating engine as parsing XML in Scala is pretty easy, and you can safely add CMS content specific semantics without worrying about anything else. Such templating system would be nothing more then a transformation between the CMS language to the one understood by Lift. But that's just me ... Br's, Marius On Aug 29, 2:22 am, Charles F. Munat c...@munat.com wrote: Security by obscurity, eh? Tim... On 28/08/2009 21:47, marius d. marius.dan...@gmail.com wrote: Hey MariusFirst... --~--~-~--~~~---~--~~ 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: Creating your own tags?
On Sat, Aug 29, 2009 at 9:53 AM, Timothy Perrett timo...@getintheloop.euwrote: Hey Viktor, I think you might be right... but how to plug such an XSLT into the template processing pipeline? I'd guess it depends on how you want to handle it. if it's just templates I guess you could manage it externally (use this cmd to deploy your file) or have an automation so that when a file gets saved in a certain dir, it gets piped through the XSLT and dumped into the real directory.. Cheers, Tim PS: Glad to see your broken keyboard is still producing amusing results lol ;-) :( On Aug 29, 7:57 am, Viktor Klang viktor.kl...@gmail.com wrote: Tim, if you really want to go that riute create an xslt to transform your custom tags to luft tags? On Aug 29, 2009 8:01 AM, marius d. marius.dan...@gmail.com wrote: Tim, obscuring things may get you a really long way indeed. But once the obscurity get broken and people figure out that they can do other things by using strange undocumented tags (i.e lift tags) they could cause lots of problems and side effects. Personally I'd stay away from it. And if I'd need to create a CMS templating mechanism with special nodes I'd probably create one separated from Lift's templating engine as parsing XML in Scala is pretty easy, and you can safely add CMS content specific semantics without worrying about anything else. Such templating system would be nothing more then a transformation between the CMS language to the one understood by Lift. But that's just me ... Br's, Marius On Aug 29, 2:22 am, Charles F. Munat c...@munat.com wrote: Security by obscurity, eh? Tim... On 28/08/2009 21:47, marius d. marius.dan...@gmail.com wrote: Hey MariusFirst... -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: syntax question
table { for(i - 0 until 10) yield tr { for(j - 0 until 10) yield td{j}/td } /tr } /table My guess is that you've omitted your yields On Fri, Aug 28, 2009 at 10:34 PM, DavidV david.v.villa...@gmail.com wrote: and yes, I verified that it has the necessary information to iterate by substituting the td values with a println On Aug 28, 4:15 pm, Naftoli Gugenheim naftoli...@gmail.com wrote: Before it was empty or not compiling? Can you verify that it has what to iterate? - DavidVdavid.v.villa...@gmail.com wrote: Like this? def resultTable: NodeSeq = { table border=1 {for (r - 0 until analysis.slots.length) { tr {for (c - 0 until test.testvars.length) { new CellType(calls(r)(c).output) }} /tr }} /table } that is not working for me either, it still returns an empty table... can you by any chance demonstrate by editing this table? table tr for (c - 0 until 10) { td {array(c)} /td } /tr /table thanks, David On Aug 28, 3:49 pm, Naftoli Gugenheim naftoli...@gmail.com wrote: You can nest curly braces - just surround the for loop with another pair. - DavidVdavid.v.villa...@gmail.com wrote: This may be more of an HTML question, but since I haven't found an answer online, I'm working in Lift and I'm sure most people here can answer this easily I figured I'd ask. I am trying to create a dynamic HTML table, by looping through the rows and columns of the table and inserting variables from a two- dimensional array. my array is calls and is an Array[Array[Result]] The basic structure of the table that I want to create is: def resultTable: NodeSeq = { table border=1 for (r - 0 until analysis.slots.length) { tr for (c - 0 until test.testvars.length) { new CellType(calls(r)(c).output) } /tr } /table } I have a class CellType that returns a td variable content /td The resultTable method is in a snippet class and I am calling it from a separate HTML file. All other mechanisms are working well since I tested a simple trtdTEST/td/tr within the same method and it created the table as expected. Therefore, this is simply a syntax error. I know you have to use {} to isolate scala code/variables in HTML, but I'm not sure how to do that when the brackets are necessary for the loop. Thanks for the help, David -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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 in MappedEmail: emailPattern is wrong
On Thu, Aug 27, 2009 at 10:27 AM, Marc Boschma marc+lift...@boschma.cxmarc%2blift...@boschma.cx wrote: Personally I use: ^(?:[a-z0-9!#$%'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%'*+/=?^_`{|}~-]+)*|(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*)@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$ Impressive! It still doesn't tell you if the email is real or not ;) Marc On 27/08/2009, at 9:32 AM, David Pollak wrote: Thanks. Changed and pushed to GitHub. Allow 2 hours for Maven availability. On Wed, Aug 26, 2009 at 4:15 PM, harryh har...@gmail.com wrote: What's the change to the RegEx? val emailPattern = Pattern.compile(^[a-z0-9._%-+]+@(?:[a-z0-9-]+\\.)+ [a-z]{2,4}$) note the addition of the + to the allowed characters before the @ -harryh -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: Actors and Sockets
On Tue, Aug 25, 2009 at 11:42 PM, mal3 malcolm.gor...@gmail.com wrote: I want to read data from multiple sockets (typically about three sockets) which can each send their data to a set of actors (also typically about three actors). Multiple actors is no problem. But how to handle varying numbers of sockets is not clear to me. (Feeding the actor results into Lift I'll deal with when I have this sorted out.) Do you guys have a sense of whether it's realistic to roll my own socket handling or use MINA or AKKA or some other library to do it? AKKA uses Netty for it's networking, you should really take a look at it, a really sweet networking library from JBoss. Mal. -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: simple question about a login form
On Wed, Aug 26, 2009 at 5:42 AM, jack jack.wid...@gmail.com wrote: I have a template with username and password fields. I want to submit to another page where I will, among other things, encrypt the password. But I don't want to show the password in the querystring before I encrypt it. Where do I encrypt it before lift puts it into the querystring? Send it as a POST over HTTPS if you need information hiding + encryption. -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: Re-factored Archetypes
ended up with. ? ? ? ? ? ? Does this make sense? Do you see why I was confused by your ? ? reference to ? ? ? master? ? ? ? ? ? ? Chas. ? ? ? ? ? ? marius d. wrote: ? ? ? What I means is if you did a git pull from git master and ran mvn ? ? ? clean:clean install. That inherently means version 1.1-SNAPSHOT ? ? ? Br's, ? ? ? marius ? ? ? On Aug 24, 11:49 am, Charles F. Munat c...@munat.com http://c...@munat.com ? ? mailto:c...@munat.com c...@munat.com mailto:c...@munat.com %3Ec...@munat.com%3e wrote: ? ? ? Hi, Marius... ? ? ? I don't know what you mean by Are you using master? What I ? ? did was use ? ? ? the Maven archetype to create a basic JPA lift app. Then I changed ? ? ? directory to the top directory and ran mvn compile. That's ? ? it. I got ? ? ? the errors you see. I didn't do anything else. ? ? ? I've tried blowing away .m2 and I've tried changing the scala ? ? version to ? ? ? 2.7.5 (from 2.7.4). No difference. ? ? ? Does the basic JPA lift app not compile until you do something ? ? else to ? ? ? it? The blank one worked fine. Can you create and compile the ? ? Basic JPA ? ? ? app on your machine without error? Maybe it's something on my ? ? machine, ? ? ? but everything else is working fine. ? ? ? The Maven command I used is reproduced below. ? ? ? Chas. ? ? ? marius d. wrote: ? ? ? Charles, ? ? ? AFAIK I removed all dependencies to javax.servlet.* classes ? ? even from ? ? ? archetypes. ?Are you using master? ... I did a full search ? ? and servlet ? ? ? things are not being used. The archetype looks ok to me ... Am I ? ? ? missing something? ? ? ? Br's, ? ? ? Marius ? ? ? On Aug 24, 9:06 am, Charles F. Munat c...@munat.com http://c...@munat.com ? ? mailto:c...@munat.com c...@munat.com mailto:c...@munat.com %3Ec...@munat.com%3e wrote: ? ? ? Nope. Same error, even after blowing away m2 and rerunning ? ? the basic ? ? ? archetype to create a new app. ? ? ? Chas. ? ? ? Charles F. Munat wrote: ? ? ? No on blowing away m2. I did switch to the blank archetype ? ? (which is ? ? ? what I actually wanted) and it worked fine. But I can try ? ? again with the ? ? ? basic and blowing away m2. ? ? ? Chas. ? ? ? Derek Chen-Becker wrote: ? ? ? It looks like this is still the older archive before ? ? HttpServletRequest ? ? ? → HTTPRequest. The code in master has the change applied, ? ? so I'm not ? ? ? sure why it's failing. The warnings are normal (I haven't ? ? figured out ? ? ? all of the tricks with the velocity templating), but ? ? something isn't ? ? ? being pulled correctly. Have you tried blowing away your .m2? ? ? ? Derek ? ? ? On Sun, Aug 23, 2009 at 9:45 PM, Charles F. Munat ? ? c...@munat.com http://c...@munat.com mailto:c...@munat.com c...@munat.com ? ? ? mailto:c...@munat.com c...@munat.com mailto:c...@munat.com c...@munat.com%3e mailto:c...@munat.com %3E%3Ec...@munat.com%3e%3e wrote: ? ? ? ? ? I found this in the lift book and used it: ? ? ? ? ? mvn archetype:generate \ ? ? ? ? ? -DarchetypeRepository=http://scala-tools.org/repo-snapshots\ http://scala-tools.org/repo-snapshots%5C http://scala-tools.org/repo-snapshots%5C ? ? ? ? ? -DarchetypeGroupId=net.liftweb \ ? ? ? ? ? -DarchetypeArtifactId=lift-archetype-jpa-basic \ ? ? ? ? ? -DarchetypeVersion=1.1-SNAPSHOT \ ? ? ? ? ? -DgroupId=com.foo.jpaweb \ ? ? ? ? ? -DartifactId=JPADemo \ ? ? ? ? ? -Dversion=1.0-SNAPSHOT ? ? ? ? ? During the creation of the basic jpa app, I got this: ? ? ? ? ? Downloading: ? ? ? ? ? ? http://scala-tools.org/repo-snapshots/net/liftweb/lift-archetype-jpa-. .. ? ? ? ? ? 44K ? ? ? ? ? http://scala-tools.org/repo-snapshots/net/liftweb/lift-archetype-jpa-.. . ? ? ? ? ? downloaded ?(lift-archetype-jpa-basic-1.1-SNAPSHOT.jar) ? ? ? ? ? [WARNING] *** CHECKSUM FAILED - Checksum failed on ? ? download: local = ? ? ? ? ? '66b831a190e2e072816e5b2acc8064287d94b371'; remote = ? ? ? ? ? '023a3bb1cf2994e837b18394a2eb3975c8735552' - RETRYING ? ? ? ? ? Downloading: ? ? ? ? ? ? http://scala-tools.org/repo-snapshots/net/liftweb/lift-archetype-jpa-. .. ? ? ? ? ? 44K ? ? ? ? ? http://scala-tools.org/repo-snapshots/net/liftweb/lift-archetype-jpa-.. . ? ? ? ? ? downloaded ?(lift-archetype-jpa-basic-1.1-SNAPSHOT.jar) ? ? ? ? ? [WARNING] *** CHECKSUM FAILED - Checksum failed on ? ? download: local = ? ? ? ? ? '66b831a190e2e072816e5b2acc8064287d94b371'; remote = ? ? ? ? ? '023a3bb1cf2994e837b18394a2eb3975c8735552' - IGNORING ? ? ? ? ? And a bunch of warnings: ? ? ? ? ? ... read more » -- Viktor Klang Blog: klangism.blogspot.com Twttr
[Lift] Re: Notes from 8/19/09 Lift Committers Call - LIFT SESSION REPLICATION DISCUSSION
Please ignore the fact that my keyboard seems to be full of shite... On Mon, Aug 24, 2009 at 9:39 AM, Viktor Klang viktor.kl...@gmail.comwrote: On Mon, Aug 24, 2009 at 8:13 AM, marius d. marius.dan...@gmail.comwrote: On Aug 24, 12:06 am, David Pollak feeder.of.the.be...@gmail.com wrote: On Sun, Aug 23, 2009 at 10:45 AM, marius d. marius.dan...@gmail.com wrote: Hmmm .. I'm wondering if we can write a Scala compiler plugin that transform functions provided to Lift's S/SHtml function etc. into a richer FunctionX implementation that knows how to serialize it's members. We could restrict the types that as LiftSerializable on top of primitives, Calenars, SessionVar/RequestVar etc. If users need their own classes to be LiftSerilizable they would have to implement LiftSerializable trait. I think we can do it without explicit traits. I think we just need to walk the graph for everything that's added to the LiftSession and see where it leads. Any graph we can walk is something that we can serialize... even without Java serialization. Any graph that ends in globals or some class that refers to native stuff (e.g., IO), then we're toast. Totally agree. The rationale for explicit LiftSerializable would be just for user defined types. Otherwise user's won't have to use it. Graphs may also have be cyclic paths ... it shouldn't be too big of a pain though. Furthermore if a dependency graph path leads say to an IO reference maybe that's unintentional user code doesn't really use that but compiler put it for whatever reason. If such cases are possible and could be determined maybe we could exclude that silently from the serialization operation and add a compile time warning. I guess we need to dig more into scala compiler plugin system. 1. Isn't there a problem with references _inside_ methods that are impure/sideeffecting? s = { Db.myCachedInfoNotInSession foo s } Regarding member references, a simple check for transient (sca...@transient == java *transient*) to forcve people to use transient members for non-serializable state. But IMHO the serialization problem is a (negative?) sideeffect of Lifts rich model GUID=Func approach. Perhpas there is a middle way, a way where we can replicate just enough to survive a node crash? Thoughts? Br's, Marius On Aug 23, 8:30 pm, marius d. marius.dan...@gmail.com wrote: At a first glace Java serialization is needed because of its awareness of the reference graph. But in the same time it does not perform well. One way might be the byte level instrumentation that would induce code to figure out the reference graph and know how to stream-ify it using a given efficient protocol. But that induces risks and it involves tons of work. I think would be doable though. The problem is not really the technology of propagating session information to other nodes. That's the easiest part, but tough one is figuring out the low level reference graph and serialization semantics. This is why JINI, JavaSpaces, JGroups, CORBA, JXTA, you name it, are unlikely to help solving the fundamental problem. Br's, Marius On Aug 23, 8:16 pm, Arthur avand...@gmail.com wrote: On Sun, Aug 23, 2009 at 7:04 PM, David Pollakfeeder.of.the.be...@gmail.com wrote: On Sun, Aug 23, 2009 at 4:50 AM, Kevin Wright kev.lee.wri...@googlemail.com wrote: I'm wondering if we can't leverage JavaSpaces to handle a lot of this stuff. From my experience with the technology it seems to be a pretty good fit for the problem. Two reasons: - JavaSpaces is as far as I know, GPL and we will not mix any GPL into Lift JavaSpaces is just the specification. There are two implementations I know of: BlitzJavaSpaces (BSD) and GigaSpaces (proprietary?). I don't have hands on experience with either. - It doesn't solve the issue with low-level session replication which relies on serialization of the session data for transfer to another app server instance. Arthur -- 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 -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group
[Lift] Re: Notes from 8/19/09 Lift Committers Call - LIFT SESSION REPLICATION DISCUSSION
On Mon, Aug 24, 2009 at 8:13 AM, marius d. marius.dan...@gmail.com wrote: On Aug 24, 12:06 am, David Pollak feeder.of.the.be...@gmail.com wrote: On Sun, Aug 23, 2009 at 10:45 AM, marius d. marius.dan...@gmail.com wrote: Hmmm .. I'm wondering if we can write a Scala compiler plugin that transform functions provided to Lift's S/SHtml function etc. into a richer FunctionX implementation that knows how to serialize it's members. We could restrict the types that as LiftSerializable on top of primitives, Calenars, SessionVar/RequestVar etc. If users need their own classes to be LiftSerilizable they would have to implement LiftSerializable trait. I think we can do it without explicit traits. I think we just need to walk the graph for everything that's added to the LiftSession and see where it leads. Any graph we can walk is something that we can serialize... even without Java serialization. Any graph that ends in globals or some class that refers to native stuff (e.g., IO), then we're toast. Totally agree. The rationale for explicit LiftSerializable would be just for user defined types. Otherwise user's won't have to use it. Graphs may also have be cyclic paths ... it shouldn't be too big of a pain though. Furthermore if a dependency graph path leads say to an IO reference maybe that's unintentional user code doesn't really use that but compiler put it for whatever reason. If such cases are possible and could be determined maybe we could exclude that silently from the serialization operation and add a compile time warning. I guess we need to dig more into scala compiler plugin system. 1. Isn't there a problem with references _inside_ methods that are impure/sideeffecting? s = { Db.myCachedInfoNotInSession foo s } Regarding member references, a simple check for transient (sca...@transient == java *transient*) to forcve people to use transient members for non-serializable state. But IMHO the serialization problem is a (negative?) sideeffect of Lifts rich model GUID=Func approach. Perhpas there is a middle way, a way where we can replicate just enough to survive a node crash? Thoughts? Br's, Marius On Aug 23, 8:30 pm, marius d. marius.dan...@gmail.com wrote: At a first glace Java serialization is needed because of its awareness of the reference graph. But in the same time it does not perform well. One way might be the byte level instrumentation that would induce code to figure out the reference graph and know how to stream-ify it using a given efficient protocol. But that induces risks and it involves tons of work. I think would be doable though. The problem is not really the technology of propagating session information to other nodes. That's the easiest part, but tough one is figuring out the low level reference graph and serialization semantics. This is why JINI, JavaSpaces, JGroups, CORBA, JXTA, you name it, are unlikely to help solving the fundamental problem. Br's, Marius On Aug 23, 8:16 pm, Arthur avand...@gmail.com wrote: On Sun, Aug 23, 2009 at 7:04 PM, David Pollakfeeder.of.the.be...@gmail.com wrote: On Sun, Aug 23, 2009 at 4:50 AM, Kevin Wright kev.lee.wri...@googlemail.com wrote: I'm wondering if we can't leverage JavaSpaces to handle a lot of this stuff. From my experience with the technology it seems to be a pretty good fit for the problem. Two reasons: - JavaSpaces is as far as I know, GPL and we will not mix any GPL into Lift JavaSpaces is just the specification. There are two implementations I know of: BlitzJavaSpaces (BSD) and GigaSpaces (proprietary?). I don't have hands on experience with either. - It doesn't solve the issue with low-level session replication which relies on serialization of the session data for transfer to another app server instance. Arthur -- 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 -- Viktor Klang Blog: klangism.blogspot.com Twttr: viktorklang Lift Committer - liftweb.com AKKA Committer - akkasource.org Cassidy - github.com/viktorklang/Cassidy.git SoftPub founder: http://groups.google.com/group/softpub --~--~-~--~~~---~--~~ 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: Has anyone tried Stax?
On Tue, Aug 18, 2009 at 4:22 PM, marius d. marius.dan...@gmail.com wrote: On Aug 18, 5:05 pm, Naftoli Gugenheim naftoli...@gmail.com wrote: You set whether you want a shared server, or dedicated/various speeds. In any case, is there room to entertain the thought of at some point adding support in Lift to propogate sessions across instances? (Is it easier now that it's been decoupled from servlets?) No it is not easier. The fundamental problem in distributing lift sessions is the bound functions. Sure, functions are serializable but their references may not be. For instance one can bind an ajax anonymous function and that functions can have a bunch of other references inside potentially other lambdas etc. Viktor was doing in the past some research to integrate with Terracotta but there were some issues. So consistently distributing Lift sessions in a clustered environment is a challenge but of course good ideas are more then welcome. Yeah, it really was a can of worms... - Ryan Donahuedonahu...@gmail.com wrote: Is anybody using Stax for anything more than prototyping or examples? If so, what has your experience been? Stax doesn't seem to fit lift very well, but I'd like to find out I'm wrong. Specifically, it does not support sticky sessions: http://developer.stax.net/forum/topics/initial-questions. I assume a Stax app shares resources with others on the same server, so you'd likely need to scale to additional servers sooner than normal. However, the lack of sticky sessions effectively caps a stateful lift app to one server. -- Viktor Klang Rogue Scala-head Blog: klangism.blogspot.com Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Beginning Scala
I now, in my hand, hold a copy of the book! I hope everyone take a chance to support David for all the awesomeness that he's contributed to the Scala community! -- Viktor Klang Rogue Scala-head Blog: klangism.blogspot.com Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: SOAP web services?
On Tue, Aug 11, 2009 at 8:32 PM, Alex Cruise a...@cluonflux.com wrote: Disclaimer: I worked at http://www.layer7tech.com/ for six years so I have a fair bit of déformation professionelle. rant target=urn:noOneInParticular While I wholeheartedly agree that SOAP, WSDL, WS-* and the whole mainstream SOA stack, as it's currently broadly defined and implemented, is ugly and verbose and redundant and regrettable, I'll posit that it is currently the *only* game in town that **meets all of the requirements** that drove its creation: * Vendor- and platform-neutral * Standards-based * Business semantics decoupled from transport * Supports message-level security (allowing decoupling from transport and business semantics) * Declarative service publishing and discovery, and automatic RPC/OO-style stub generation * ... and many more requirements that you, personally, may not ever feel the need for. But a lot of companies actually do need a significant subset of these requirements on a significant subset of their projects, and there is certainly a great deal of value in having a global, IT-industry-wide consensus (even among bitter competitors, which was never the case previously) on a set of technologies, standards and practices that actually do meet those requirements. /rant :) So basically it's very good for very few. In all other cases I'll opt for something more suiting :) -0xe1a -- Viktor Klang Rogue Scala-head Blog: klangism.blogspot.com Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: SOAP web services?
On Tue, Aug 11, 2009 at 8:47 PM, Alex Cruise a...@cluonflux.com wrote: Viktor Klang wrote: So basically it's very good for very few. And for everyone else, it's at least useful at the outset, due to the maturity of tools, and will also interoperate well with emergent requirements that tend to pile up over the years the system is in production. :) It's also very fair to point out that most of the mainstream SOA stack is totally overkill for non-enterprise applications. In all other cases I'll opt for something more suiting :) The title of my moribund presentation on this subject is SOA is Not For You (a reference to http://www.penny-arcade.com/comic/2004/3/24/ :) SOA and SOAP are as RAPE is to GRAPE -0xe1a -- Viktor Klang Rogue Scala-head Blog: klangism.blogspot.com Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: SOAP web services?
Hello Jacek, actually, if I were you I'd consider implementing your webservices as REST services and then just have your SOAP stubs call your rest services. (If you're not using anything voodooesque) Then you have the benefit of using the existing plumbing as much as possible, while still maintaining your SOAP interface as well as a potential migration path to something non-WSDL. (I am severely biased by having to work with SOAP, which has scarred me for life) On Thu, Aug 6, 2009 at 5:26 PM, Jacek Furmankiewicz jace...@gmail.comwrote: I was reading through the Lift book PDF and it mentions only REST- style web services. In our case, we need to look at re-implementing a set of existing SOAP web services (is there anything like 'wsdl2scala' anywhere?). I would appreciate any best practices and suggestions for implementing SOAP web services in the context of a larger Lift app (and Scala in general). -- Viktor Klang Rogue Scala-head Blog: klangism.blogspot.com Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Getting Started tutorial - not understanding some syntax
Hello Ben! the following: val square = (x:Int) = x * x val square is the equivalent of a final reference in Java. (x : Int) = x * x This constructs a Function instance that takes an Int and returns that Int squared. The equivalent Java code would be something like: interface FunctionR,P //We're ignoring variance here, as to not confuse { public R call(P p); } final FunctionInteger,Integer square = new FunctionInteger,Integer() { public Integer call(Integer i) { return i * i; } } And then you can do: square.call(2) // 4 So, back to Scala: val square = (x : Int) = x * x square(2) // 4 On Thu, Jul 30, 2009 at 9:37 PM, ben b...@primrose.org.uk wrote: Hi, I feel I must apologise for this post ... I've only been doing scala for a week, and lift for 3 days, but I'm stuck. I'm coming from an experienced java background, just struggling with some scala constructs. I feel I understand the basics of lambda and function literals - but I'm blown away by some of the syntax in the lift Getting Started tutorial. For example, given : val mylist = Array(1,2,3) mylist..foreach(v = println(v) Here I understand where v comes from - its each int in the list. In the tutorial (http://liftweb.net/docs/getting_started/ mod_master.htmlhttp://liftweb.net/docs/getting_started/%0Amod_master.html ) there is a function desc (Listing 15) : private def desc(td: ToDo, reDraw: () = JsCmd) = swappable(span{td.desc}/span, span{ajaxText(td.desc, v = {td.desc(v).save; reDraw()})} /span) For my own brain to try and break it down, I have : private def desc(td: ToDo, reDraw: () = JsCmd) = { val myFunctionLiteral = (xxx: String) = {td.desc(xxx).save; println(!Desc function : + xxx); reDraw()} swappable(span{td.desc}/span, span{ajaxText(td.desc, myFunctionLiteral)}/span) } This is called from the doList method : private def doList(reDraw: () = JsCmd)(html: NodeSeq): NodeSeq = toShow. flatMap(td = bind(todo, html, desc - desc(td, reDraw) )) I understand where the ToDo object td is coming from, and how the reDraw thing works, and how they are passed to the desc function, but what I don't understand at all is where the val xxx in myFunctionLiteral comes from ? How is it passed into the function ? Is it currying ? I'm sorry for such a vague question, I'm totally at sea here. Thankyou for reading this, and for any help you may provide ! Ben -- Viktor Klang Rogue Scala-head Blog: klangism.blogspot.com Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Getting Started tutorial - not understanding some syntax
On Thu, Jul 30, 2009 at 11:02 PM, DFectuoso santiago1...@gmail.com wrote: Viktor, that was a great explanation, im sure ben will apraciate that kind of teaching =) Well, thank you. A follow up question that just made me wonder, what is the diference between val square = (x : Int) = x * x This creates a final reference to a new function instance and def square(x:Int):Int = x * x This creates a method Now, you can transform a method into a function by adding an underscore after it, like this: def square(x : Int) = x * x val sq = square _ //--- notice the underscore. (I always think of it as detaching the method from an instance) This is what the Scala REPL says: scala def square(x : Int) = x * x square: (Int)Int scala val vsquare = (x : Int) = x * x vsquare: (Int) = Int = function scala val v2square = square _ v2square: (Int) = Int = function scala square(2) res0: Int = 4 scala vsquare(2) res1: Int = 4 scala v2square(2) res2: Int = 4 ? On Jul 30, 1:49 pm, Viktor Klang viktor.kl...@gmail.com wrote: Hello Ben! the following: val square = (x:Int) = x * x val square is the equivalent of a final reference in Java. (x : Int) = x * x This constructs a Function instance that takes an Int and returns that Int squared. The equivalent Java code would be something like: interface FunctionR,P //We're ignoring variance here, as to not confuse { public R call(P p); } final FunctionInteger,Integer square = new FunctionInteger,Integer() { public Integer call(Integer i) { return i * i; } } And then you can do: square.call(2) // 4 So, back to Scala: val square = (x : Int) = x * x square(2) // 4 On Thu, Jul 30, 2009 at 9:37 PM, ben b...@primrose.org.uk wrote: Hi, I feel I must apologise for this post ... I've only been doing scala for a week, and lift for 3 days, but I'm stuck. I'm coming from an experienced java background, just struggling with some scala constructs. I feel I understand the basics of lambda and function literals - but I'm blown away by some of the syntax in the lift Getting Started tutorial. For example, given : val mylist = Array(1,2,3) mylist..foreach(v = println(v) Here I understand where v comes from - its each int in the list. In the tutorial (http://liftweb.net/docs/getting_started/ mod_master.html http://liftweb.net/docs/getting_started/%0Amod_master.html ) there is a function desc (Listing 15) : private def desc(td: ToDo, reDraw: () = JsCmd) = swappable(span{td.desc}/span, span{ajaxText(td.desc, v = {td.desc(v).save; reDraw()})} /span) For my own brain to try and break it down, I have : private def desc(td: ToDo, reDraw: () = JsCmd) = { val myFunctionLiteral = (xxx: String) = {td.desc(xxx).save; println(!Desc function : + xxx); reDraw()} swappable(span{td.desc}/span, span{ajaxText(td.desc, myFunctionLiteral)}/span) } This is called from the doList method : private def doList(reDraw: () = JsCmd)(html: NodeSeq): NodeSeq = toShow. flatMap(td = bind(todo, html, desc - desc(td, reDraw) )) I understand where the ToDo object td is coming from, and how the reDraw thing works, and how they are passed to the desc function, but what I don't understand at all is where the val xxx in myFunctionLiteral comes from ? How is it passed into the function ? Is it currying ? I'm sorry for such a vague question, I'm totally at sea here. Thankyou for reading this, and for any help you may provide ! Ben -- Viktor Klang Rogue Scala-head Blog: klangism.blogspot.com Twttr: viktorklang -- Viktor Klang Rogue Scala-head Blog: klangism.blogspot.com Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Getting Started tutorial - not understanding some syntax
(If I've understood your question correctly) the definition of ajaxText is as follows: def ajaxText(value: String, func: String = JsCmd): Elem = ajaxText_*(value, Empty, SFuncHolder(func)) So what you're doing is that you're sending a callback function to ajaxText, and it will be called with a String later. On Thu, Jul 30, 2009 at 11:03 PM, ben b...@primrose.org.uk wrote: Hi Viktor, Thanks for your reply. I do understand the simple examples, like the one you were kind enough to post. My problem is that I just can't seem to break through from the simple examples to the code in the Getting Started tutorial To elaborate, given the following in a scala console : scala val square = (x : Int) = x * x square: (Int) = Int = function scala square(2) res5: Int = 4 I can easily (in my mind) see how that function literal works - ie function square takes an int and apply(s) a square on the value passed in. In my mind I can see where x is coming from - its clearly the value 2 passed in the operation square(2) - but I just don't get where the string xxx (in the code posted (from the tutorial - see Listing 15) is actually coming from ... there never seems to be the string passed to the function ! -- Viktor Klang Rogue Scala-head Blog: klangism.blogspot.com Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Getting Started tutorial - not understanding some syntax
Here's a short example: val add = (a : Int, b : Int) = a + b val sub = (a : Int, b : Int) = a - b val div = (a : Int, b : Int) = a / b val mul = (a : Int, b : Int) = a * b //This is a method that takes an Int a, an Int b and a function that takes 2 Ints and produces an Int def doMath(a : Int, b : Int, arith : (Int,Int) = Int) = arith(a,b) scala doMath(1,2,add) res1: Int = 3 scala doMath(1,2,sub) res2: Int = -1 scala doMath(2,1,div) res3: Int = 2 scala doMath(1,2,mul) res4: Int = 2 On Thu, Jul 30, 2009 at 11:36 PM, ben b...@primrose.org.uk wrote: Hi, Thanks for patience (and for the interesting subpost on the diff between val def) ! OK, the callback thing you suggested is starting to clear the mist ... I found this article : http://www.ibm.com/developerworks/java/library/j-scala01228.html I've not had time to read it fully yet, as its getting late over here in the UK, but it looks like what I'm after. I'll have a proper read tomorrow. Thanks again for your time. Ben -- Viktor Klang Rogue Scala-head Blog: klangism.blogspot.com Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Getting Started tutorial - not understanding some syntax
But you can also create and pass a function inline: scala doMath(1,2,(a : Int, b : Int) = a ^ b) res5: Int = 3 On Thu, Jul 30, 2009 at 11:43 PM, Viktor Klang viktor.kl...@gmail.comwrote: Here's a short example: val add = (a : Int, b : Int) = a + b val sub = (a : Int, b : Int) = a - b val div = (a : Int, b : Int) = a / b val mul = (a : Int, b : Int) = a * b //This is a method that takes an Int a, an Int b and a function that takes 2 Ints and produces an Int def doMath(a : Int, b : Int, arith : (Int,Int) = Int) = arith(a,b) scala doMath(1,2,add) res1: Int = 3 scala doMath(1,2,sub) res2: Int = -1 scala doMath(2,1,div) res3: Int = 2 scala doMath(1,2,mul) res4: Int = 2 On Thu, Jul 30, 2009 at 11:36 PM, ben b...@primrose.org.uk wrote: Hi, Thanks for patience (and for the interesting subpost on the diff between val def) ! OK, the callback thing you suggested is starting to clear the mist ... I found this article : http://www.ibm.com/developerworks/java/library/j-scala01228.html I've not had time to read it fully yet, as its getting late over here in the UK, but it looks like what I'm after. I'll have a proper read tomorrow. Thanks again for your time. Ben -- Viktor Klang Rogue Scala-head Blog: klangism.blogspot.com Twttr: viktorklang -- Viktor Klang Rogue Scala-head Blog: klangism.blogspot.com Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: HadoopDB
On Wed, Jul 22, 2009 at 11:52 PM, Meredith Gregory lgreg.mered...@gmail.com wrote: Alex, Viktor, i think write semantics could get complicated quickly, actually. However, i was initially responding to the idea that trad business object models don't give way to analytics. Being able to make read-only queries against large volumes of data using the original business object schema seems to me like a win -- even if it's only used to populate a db that's sliced up in a different way for further analytics processing. So basically, what's needed on top of HadoopDB is a service that updates data as needed from external data sources. Best wishes, --greg On Wed, Jul 22, 2009 at 2:44 PM, Alex Cruise a...@cluonflux.com wrote: Viktor Klang wrote: Absolutely, perhaps I'm tainted by write-heavy systems and perhaps I'm just failing to see the overhead we're talking about. Perhaps I overlooked it, but the paper didn't mention performance for small writes and potentially multiple nodespanning transactions. HadoopDB makes no claim to any support for writes at all, I'm just speculating that It Should Be Possible given my understanding of its architecture, which is admittedly limited and based solely on reading the paper and a bit of the code. :) I'm inclined to believe that some sort of immutable records storage would simlify the semantics (analytic queries are IMHO very seldom demanding real-time snapshots) Analytical queries against static data are exactly what it's for. I have no experience with its competition, namely parallel/distributed column-oriented databases, so I can't say whether they're any happier with writes. FYI I brought up HadoopDB on the NoSQL list too but so far not too many takers... -0xe1a -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com -- Viktor Klang Rogue Scala-head Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: HadoopDB
On Thu, Jul 23, 2009 at 6:46 PM, Meredith Gregory lgreg.mered...@gmail.comwrote: Viktor, Yes. For example, in the biotech case the data is coming in from a device-based origin. This is interesting. Analyzing the AST of the query for the data, then identify the different data sources and then query each for all relevant data since last refresh, then push that into partitions and then schedule the Jobs and execute SQL and then merge/reduce the results. Best wishes, --greg On Thu, Jul 23, 2009 at 2:35 AM, Viktor Klang viktor.kl...@gmail.comwrote: On Wed, Jul 22, 2009 at 11:52 PM, Meredith Gregory lgreg.mered...@gmail.com wrote: Alex, Viktor, i think write semantics could get complicated quickly, actually. However, i was initially responding to the idea that trad business object models don't give way to analytics. Being able to make read-only queries against large volumes of data using the original business object schema seems to me like a win -- even if it's only used to populate a db that's sliced up in a different way for further analytics processing. So basically, what's needed on top of HadoopDB is a service that updates data as needed from external data sources. Best wishes, --greg On Wed, Jul 22, 2009 at 2:44 PM, Alex Cruise a...@cluonflux.com wrote: Viktor Klang wrote: Absolutely, perhaps I'm tainted by write-heavy systems and perhaps I'm just failing to see the overhead we're talking about. Perhaps I overlooked it, but the paper didn't mention performance for small writes and potentially multiple nodespanning transactions. HadoopDB makes no claim to any support for writes at all, I'm just speculating that It Should Be Possible given my understanding of its architecture, which is admittedly limited and based solely on reading the paper and a bit of the code. :) I'm inclined to believe that some sort of immutable records storage would simlify the semantics (analytic queries are IMHO very seldom demanding real-time snapshots) Analytical queries against static data are exactly what it's for. I have no experience with its competition, namely parallel/distributed column-oriented databases, so I can't say whether they're any happier with writes. FYI I brought up HadoopDB on the NoSQL list too but so far not too many takers... -0xe1a -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com -- Viktor Klang Rogue Scala-head Twttr: viktorklang -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com -- Viktor Klang Rogue Scala-head Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: HadoopDB
Read it earlier today. It's quite interesting, transcoding SQL to MapReduce jobs that uses RDBMes as datasources I see this really useful for analytical querying over huge datasets, but I wouldn't imagine it as an option as persistence-store for domain/business objects. On Wed, Jul 22, 2009 at 5:53 PM, Meredith Gregory lgreg.mered...@gmail.comwrote: David, et al, Alex Cruise brought to my attention this paper and prototypehttp://db.cs.yale.edu/hadoopdb/hadoopdb.htmlof a mapping of SQL to Hadoop. i believe this has relevance both to lift and goat rodeo. 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 -- Viktor Klang Rogue Scala-head Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: HadoopDB
On Wed, Jul 22, 2009 at 8:05 PM, Alex Cruise a...@cluonflux.com wrote: Viktor Klang wrote: Read it earlier today. It's quite interesting, transcoding SQL to MapReduce jobs that uses RDBMes as datasources I see this really useful for analytical querying over huge datasets, but I wouldn't imagine it as an option as persistence-store for domain/business objects. Definitely not yet, but their approach *should* be amenable to read-mostly/some-writes use cases in that it tries to discover which node(s) hold the data that will be affected by analyzing the SQL AST; distributed transactions are awful but at least they can be contained to a subset of DBMS nodes. I'm also interested in the possibility to use other/develop new query languages that can use the same mechanics. Gregory: Do you see Project Stockholm benefitting from this? -0xe1a -- Viktor Klang Rogue Scala-head Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: HadoopDB
On Wed, Jul 22, 2009 at 10:03 PM, Meredith Gregory lgreg.mered...@gmail.com wrote: Viktor, Your comment is intriguing to me. As near as i can tell the Web 2.0 trend has this effect that what started out as a traditional domain/business object model scales out to the point where it starts to look a lot like an analytics db -- especially when you're trawling for patterns, trends and other marketing-like data. Greg, Absolutely, perhaps I'm tainted by write-heavy systems and perhaps I'm just failing to see the overhead we're talking about. Perhaps I overlooked it, but the paper didn't mention performance for small writes and potentially multiple nodespanning transactions. I'm inclined to believe that some sort of immutable records storage would simlify the semantics (analytic queries are IMHO very seldom demanding real-time snapshots) As for my little project, i think it's a perfect match for DSLs that cover analytic set ups like i see in biology and computational finance. Best wishes, --greg On Wed, Jul 22, 2009 at 12:03 PM, Viktor Klang viktor.kl...@gmail.comwrote: On Wed, Jul 22, 2009 at 8:05 PM, Alex Cruise a...@cluonflux.com wrote: Viktor Klang wrote: Read it earlier today. It's quite interesting, transcoding SQL to MapReduce jobs that uses RDBMes as datasources I see this really useful for analytical querying over huge datasets, but I wouldn't imagine it as an option as persistence-store for domain/business objects. Definitely not yet, but their approach *should* be amenable to read-mostly/some-writes use cases in that it tries to discover which node(s) hold the data that will be affected by analyzing the SQL AST; distributed transactions are awful but at least they can be contained to a subset of DBMS nodes. I'm also interested in the possibility to use other/develop new query languages that can use the same mechanics. Gregory: Do you see Project Stockholm benefitting from this? -0xe1a -- Viktor Klang Rogue Scala-head Twttr: viktorklang -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com Best wishes -- Viktor Klang Rogue Scala-head Twttr: viktorklang --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: File upload streaming and progress monitoring ...
Awesome work guys! On Sat, Jul 18, 2009 at 8:54 PM, marius d. marius.dan...@gmail.com wrote: Great. Let me know if I can help with anything. Br's, Marius On Jul 18, 9:22 pm, Timothy Perrett timo...@getintheloop.eu wrote: Marius, This is awesome. Things are now working as expected - I knew this wasn't a browser connection issue causing the problems. The code in the widget package is pretty rubbish right now, but i just had time to hack together a hardcoded sample to make sure that your commit actually fix the problem... Im happy to report that it does indeed now work exactly as required. The next step is to work backwards and clean all the code up and fix the cross-browser issues as right now it works in firefox and IE but not in safari or chrome et al. Cheers, Tim On Jul 18, 3:08 pm, marius d. marius.dan...@gmail.com wrote: Just committed a fix ... Br's, Marius On Jul 18, 4:10 pm, marius d. marius.dan...@gmail.com wrote: A little more on this ... Living the above synchronized blocks where they are but removing the one from LiftSession.runParams made it work properly. Looks like this one was holding the lock while the file upload progress was happening. Dave I'm not really sure why in runParams the the toRun is obtained from a synchronized block ... is it because we'rreading from messageCallback there ? ..cause otherwise the entire expression is about functions composition that does not change any state. Br's, Marius On Jul 18, 3:57 pm, Marius marius.dan...@gmail.com wrote: HI there, I know, there have been several other threads around the topic but I just wanted to yield somethings here. In the past few days I've been talking with Tim as he was having problems with his FileUpload widget. Even with short polling the progress was not reported even though the LiftSession.progressListener was properly called. Today I started to look into it and here is what I've done: 1. Here is the markup: iframe id=upload_target name=upload_target src=# style=width: 0;height:0;border:0px solid #fff;/iframe lift:Upload.render form=POST multipart=true id=upload_form target=upload_target f:inputFile/ input type=submit value=Upload/ /lift:Upload.render A simple snippet that uses the invisible iframe trick to upload stuff in the background. The so called Ajax upload. (I had to add the target attribute into the supported form snippet attributed but that's ok) 2. In boot had something like: LiftSession.onSetupSession = ((session: LiftSession) = { session.progessListener = Full((chunk, total, index) = { Thread.sleep(100) println(index + read + chunk + out of + total + + Thread.currentThread) }) }) :: Nil Just monitor the progress ... and to make it last a little longer I'm sleeping for 100 milliseconds 3. I set the GC polling to 10 seconds. The think is that GC polling would be just like the short polling for getting the progress status back in the browser. The behavior that I observed was that while I was uploading a 30 Mb + file the polling requests timed out after 5 secconds per LiftRules.ajaxPostTimeout. This means that our progress monitoring ajax request would have timed out as well. On the server side the execution got stuck until the upload was complete. LiftServlet.handleAjax was not called until the upload terminates. Initially I thought that this has to do to limited request channels that browser have but the thing is that we have several places in Lift code where we synchronize things. Such as LiftSession.getSession, LiftSession.fixSessionTime etc. Acquiring these locks made the progress polling to hang until the upload terminated. Of course removing th synchronized block made the polling to work right during the file upload. Now this was just for test ... I'm not suggesting to remove the synchronized blocks as we'd loose consistency but this looks to stay in the way of properly dealing with multiple parallel request per same session like fileupload and progress monitoring. It appears that there is either a thread starvation situation or simply a lock that is held while upload is is progress. Br's, Marius -- Viktor Klang Java Specialist Scala Loudmouth Lift Committer --~--~-~--~~~---~--~~ 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: ANN: Akka Actor Kernel: RESTful Distributed Persistent Transactional Actors
Instead of: class MyActor extends Actor { makeTransactionRequired … } woudn't it be clean to have: trait TxRequired { self : TransactionManagement = makeTransactionRequired } class MyActor extends Actor with TxRequired { } On Mon, Jul 13, 2009 at 11:04 AM, Jonas Bonér jbo...@gmail.com wrote: Hi. On Jul 13, 9:51 am, Timothy Perrett timo...@getintheloop.eu wrote: From what I can see, its not just about concurrency, right? STM is probally used in conjunction with Cassandra...? Right. Even though messages in the actor model are immutable the actors are not. If they were they would be almost useless. The actor model is great for some use cases but terrible for others. I have many times felt like I would like to have a transactional compositional message flows. This is an attempt to solve that problem (and some other problems as well). The STM is working with managed data structures like TransactionalMap/ Vector/Ref. Accessing them outside a tx yields an error. The STM also understand and works with asynchronous messaging something that is not trivial. I think there is some synergy between both Lift and Goat Rodeo. Would love to see what could come out of that. I am open for all suggestions/ crazy ideas. Thank, Jonas. Cheers, Tim On 13/07/2009 07:25, marius d. marius.dan...@gmail.com wrote: I wonder why STM in a message passing concurrency model where things supposed to be immutable. -- Viktor Klang Java Specialist Scala Loudmouth Lift Committer --~--~-~--~~~---~--~~ 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: ANN: Akka Actor Kernel: RESTful Distributed Persistent Transactional Actors
By the way, installing AKKA requires currently some hand-waving to add dependencies that are not resolved: com.facebook.fb303-1.0.jar org.apache.cassandra:cassandra:jar:0.4.0-dev Or is my Maven just b0rked? On Mon, Jul 13, 2009 at 11:15 AM, Viktor Klang viktor.kl...@gmail.comwrote: Instead of: class MyActor extends Actor { makeTransactionRequired … } woudn't it be clean to have: trait TxRequired { self : TransactionManagement = makeTransactionRequired } class MyActor extends Actor with TxRequired { } On Mon, Jul 13, 2009 at 11:04 AM, Jonas Bonér jbo...@gmail.com wrote: Hi. On Jul 13, 9:51 am, Timothy Perrett timo...@getintheloop.eu wrote: From what I can see, its not just about concurrency, right? STM is probally used in conjunction with Cassandra...? Right. Even though messages in the actor model are immutable the actors are not. If they were they would be almost useless. The actor model is great for some use cases but terrible for others. I have many times felt like I would like to have a transactional compositional message flows. This is an attempt to solve that problem (and some other problems as well). The STM is working with managed data structures like TransactionalMap/ Vector/Ref. Accessing them outside a tx yields an error. The STM also understand and works with asynchronous messaging something that is not trivial. I think there is some synergy between both Lift and Goat Rodeo. Would love to see what could come out of that. I am open for all suggestions/ crazy ideas. Thank, Jonas. Cheers, Tim On 13/07/2009 07:25, marius d. marius.dan...@gmail.com wrote: I wonder why STM in a message passing concurrency model where things supposed to be immutable. -- Viktor Klang Java Specialist Scala Loudmouth Lift Committer -- Viktor Klang Java Specialist Scala Loudmouth Lift Committer --~--~-~--~~~---~--~~ 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: Standardizing widget APIs
On Sat, Jul 11, 2009 at 10:15 PM, Timothy Perrett timo...@getintheloop.euwrote: Any technical feedback Viktor? Suggestions for possible ways to enforce a structure / life-cycle? I'm not sure, depends I guess. Just a simple onLoad/onUnload callback could be enough... (The unload is to make sure not to leak mem if you're just reloading the webapp without restarting the server) Cheers, Tim I like it -- Viktor Klang Java Specialist Scala Loudmouth Lift Committer --~--~-~--~~~---~--~~ 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: Problem with jQuery/JavaScript and Liftweb because of Doctype
We want lift to work on those platforms. We need a work-around On Wed, Jul 8, 2009 at 11:19 AM, fbettag fr...@bett.ag wrote: *Any Lift Project, not Problem. Sorry ;) On 8 Jul., 10:47, fbettag fr...@bett.ag wrote: The Problem isn't in Scala nor in Lift nor in jQuery. It's a Firefox bug when it gets Content-Type application/xhtml+xml. Same for Safari. Just try $(myobject).load(/some/url/from/lift/with/html/output) with JavaScript on any Lift problem. I don't know why you would want to debug a lift-app when all the links i've posted so far show problems with the Browser's implementation of application/html+xml, NOT lift. On 8 Jul., 05:03, David Pollak feeder.of.the.be...@gmail.com wrote: 2009/7/7 fbettag fr...@bett.ag Sorry this is giving me headaches. I don't even know what to look for.. :( The Problem is also described here: http://www.nabble.com/Namespace-failure-td21982365s27240.html Is there anyway i can spoof the content-type for a comet actor from application/xhtml+xml to something else? like text/html or only application/xhtml. That would fix the issue for now. I don't understand what the problem is. Please write some code that reproduces it so I can actually see *exactly* where the problem is happening for you. Only then can I debug it. best regards On 1 Jul., 04:58, David Pollak feeder.of.the.be...@gmail.com wrote: Please fork this projecthttp:// github.com/dpp/lift_1_1_sample/tree/masterand provide an example of the failure. I'll knock something together than overcomes the problem. 2009/6/30 fbettag fr...@bett.ag To describe it a little cleaner: in Safari 4, whenever i try to $('#foo').load('/some.html'), it fails with Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7 since the content-type is text/html+xml. described here: http://groups.google.com/group/jquery-en/browse_thread/thread/de95e8a. .. in Firefox there is a similar problem (error up at the first post) which happens because FF kinda sees an error on the lift-generated XHTML/XML which is caused because the doctype seems to be strict by default (i guess). described here: http://fitzsimmons.ca/jquery-xhtml-11-strict-and-ns_error_invalid_poi. .. I put up some really simple stuff in 'some.html' with 4 html tags, and it fails on Safari and on Firefox. When i try to set the Doctype to transitional, the Browser seems to ignore it somehow, i guess it's because of the ?xml? tag that occurs before the doctype. Is anyone else here using $(..).load('url') on a lift'ed project? On Jun 30, 11:48 pm, David Pollak feeder.of.the.be...@gmail.com wrote: What missing doctype? 2009/6/29 fbettag fr...@bett.ag On Safari i get Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7. This seems to be a safari 4 specific problem due to content-type text/ html+xml. See http://groups.google.com/group/jquery-en/browse_thread/thread/de95e8a . .. On Jun 30, 7:39 am, fbettag fr...@bett.ag wrote: Hey guys, i've been having troubles with jQuery and Firefox/Safari due to the missing Doctype all night long: Uncaught exception: [Exception... Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMNSHTMLElement.innerHTML] nsresult: 0×80004003 (NS_ERROR_INVALID_POINTER) location: JS frame :: http://yourserver/include/jquery.js :: anonymous :: line 11″ data: no] The issue is described here, altho it kinda is somehow faulty xml on my part: http://fitzsimmons.ca/jquery-xhtml-11-strict-and-ns_error_invalid_poi . .. Is there any way to prepend a DocType? Searching the group didn't turn anything useful up. Best regards -- 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 -- 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 -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr
[Lift] Re: Becoming a Scala/Lift Guru
I say: Go Eric go! Nothing is impossible with the right attitude! On Mon, Jul 6, 2009 at 12:17 PM, Timothy Perrett timo...@getintheloop.euwrote: Ellis, Im afraid I disagree with you - Eric does not state what type of eComerce application he wants to create... IMO, this is very subjective. Lift ships out of the box with PayPal integration - one could say that a site which allows a user to pay via paypal is eCommerce... would you disagree? If Eric takes on advice from the Lift Book and perhaps a learning scala book like DPP's, then asks lift related questions on here when he needs specific help im sure he'll be fine... everyone has to start somewhere and saying Lift is only appropriate for hardcore programmers because its a new framework is wrong IMHO. Eric, good luck to you - the lift community is a great place to start your programming endeavors; you probably have a slightly steeper learning curve than most, but provided you have grit and determination there is nothing to say you will not reach your goals. Think positive. Cheers, Tim On Jul 6, 10:13 am, Ellis ellis.whiteh...@gmail.com wrote: Hi Eric, Here are a few comments and suggestions. - Honestly, I don't think that lift and scala are the right places for you to start out. The systems are very powerful, but relatively new, and so they are still geared towards more experienced programmers. - You'll need more than a month to become comfortable with an entirely new programming environment. - The java toolset can be confusing. Try NetBeans; it's easier to understand than Eclipse. - An e-commerce program would take years to get right, but if that's what inspires you, you might want to focus on just small parts of such a program instead. Cheers, Ellis On Jul 6, 5:13 am, eric cs eeri...@gmail.com wrote: Hi guys, I saw some posts on Scala website about helping newcomers and I was wondering if some of you would be kind enough to help me out to start with Scala/Lift. My main problem is I am not a programmer yet but I really really want to be, I've been studying Ruby/Rails, Php/Zend/Symfony,Mvc,Design Patterns,Uml,Sql and some Java. I read some books but I don't get my head to think like a programer. I really like OO,Design Patterns, Uml but I don't know how to apply that to a full application, how to link everything together, classes,objects(books about that?Not about those items but how to put everything together)...I know a lot of the theory and concepts but no practice. I have all july available to learn that 12 hours a day or more if necessary I just need a push, someone to teach/help me out. What's more, I saw a post saying that I could learn Scala from scratch without learning Java, it's possible, not so much with Groovy. If it's not what parts of Java do I need to know, in case some of you tell me learn Java first(the easy answer).Do I need a lot of experience in Java to jump in in Scala? I know it helps but I would like to finish my first e-commerce in august, 100% opensource in Scala if possible. P.s:I did 2 years of Computer Science C++ and 2 years of Civil Engineering over 12 years ago both unfinished. -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Thoughts on file streaming
On Tue, Jun 30, 2009 at 11:32 PM, David Pollak feeder.of.the.be...@gmail.com wrote: On Tue, Jun 30, 2009 at 2:22 PM, Viktor Klang viktor.kl...@gmail.comwrote: Create a tmp-file, store the localpath in S.param and register a delete on request done will be more streamlined than potentially monkeypatching it in Thoughts? Huge hack Yes, and I apologize for suggesting it, it was inappropriate. As we all know, the problem is that if you want to have access to the _full_ current state of the client (S) at the time of parsing the request (the parsing of the file likely not the last item in the request) in order to be able to process the file in a stream, unless some other solution is found, the stream parsing of the file has to rely on not having current client side state (S) available. Now, I've made such solutions in the past, and the impression I've had from API users have been that they actually expected client state to be available at file parse time. So in order to solve this you'd have to either guarantee that the file(s) present in the multipart request is always located _after_ any and all other form fields/parameters and the issue the callback at the time of each file item being encountered (at the time of calling openStream()) Also, so far in the thread different behaviors of file uploads are mentioned: 1) Process one or many files in a streaming fashion 2) Multiple file upload (store on server and process when user says he's done) As we've all said in this thread: The problem is not trivial to solve in a satisfactory way, but I think we all can agree that you, David, will most likely be able to solve it, as usual, very cleanly. One possible solution that I can imagine is to have a multiple request solution: On the client, before every file upload, send the current client state as a separate request and wait for a 200/OK before sending a request containing one or more files. This way you can rely on the client state being fresh when processing the files, and lift would invoke the input stream processor associated with the file field in question. -- Viktor On Jun 30, 2009 11:08 PM, Derek Chen-Becker dchenbec...@gmail.com wrote: Well, as usual something that seemed simple at first glance is now looking somewhat complex. I'm thinking of reworking the fileUpload handling to allow a user to register either a (String, String, Array[Byte]) = Any or (String, String, InputStream) = Any function, which would then be executed during request processing. The issue is that form field processing (ParamHolders) takes place in Req, before LiftSession has been set up, and the act of parsing the request for form data, particularly for large upload streams (the target of these changes) precludes holding on to any data for later processing (the servlet container cannot be expected to hold the entire request in memory). On the other hand, users should reasonably expect that their form handling functions are stateful, so I'm trying to think of some way to meet in the middle on form processing. Ideas? Derek -- 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 -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Thoughts on file streaming
Create a tmp-file, store the localpath in S.param and register a delete on request done will be more streamlined than potentially monkeypatching it in Thoughts? -- Viktor On Jun 30, 2009 11:08 PM, Derek Chen-Becker dchenbec...@gmail.com wrote: Well, as usual something that seemed simple at first glance is now looking somewhat complex. I'm thinking of reworking the fileUpload handling to allow a user to register either a (String, String, Array[Byte]) = Any or (String, String, InputStream) = Any function, which would then be executed during request processing. The issue is that form field processing (ParamHolders) takes place in Req, before LiftSession has been set up, and the act of parsing the request for form data, particularly for large upload streams (the target of these changes) precludes holding on to any data for later processing (the servlet container cannot be expected to hold the entire request in memory). On the other hand, users should reasonably expect that their form handling functions are stateful, so I'm trying to think of some way to meet in the middle on form processing. Ideas? Derek --~--~-~--~~~---~--~~ 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: [scala] preso on monadic design patterns for the web
Best presentation I've seen so far this year. Filled in the gaps I got from reading the PDF perfectly. Thanks for enriching my mind! On Mon, Jun 29, 2009 at 1:05 AM, Meredith Gregory lgreg.mered...@gmail.comwrote: All, The talk i recently gave on this topic is now available onlinehttp://www.vimeo.com/5318303 . 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 -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: [scala] preso on monadic design patterns for the web
On Mon, Jun 29, 2009 at 2:48 PM, Christos KK Loverdos lover...@gmail.comwrote: This is one of the presentations after (or during) which one may easily wonder What was (is) he talking about? and then wake up 20 years later and recall that some guy Greg Meredith already did that. I still have yet to experience the moment where the shape of the paradoxical combinator suddenly unravels to me :) So pay attention everyone! At least, let those stuff stack at the back of your head. You never know... Greg is peaking... Christos On Jun 29, 2009, at 2:05 AM, Meredith Gregory wrote: All, The talk i recently gave on this topic is now available onlinehttp://www.vimeo.com/5318303 . 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 -- __~O -\ , Christos KK Loverdos (*)/ (*) http://ckkloverdos.com -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: scala-tools.org down
C'est sabotage? On Mon, Jun 29, 2009 at 5:58 PM, David Pollak feeder.of.the.be...@gmail.com wrote: The answer from CalPop: I just checked the cable and the clip on the RJ45 is missing, I slightly touched the cable and it came loose again. It could be that another colocated customer was working in that area during the time the server went down. On Mon, Jun 29, 2009 at 7:08 AM, Derek Chen-Becker dchenbec...@gmail.comwrote: I smell a conspiracy! On Mon, Jun 29, 2009 at 7:54 AM, David Pollak feeder.of.the.be...@gmail.com wrote: On Mon, Jun 29, 2009 at 6:39 AM, Jeremy Day jeremy@gmail.comwrote: David, On Mon, Jun 29, 2009 at 8:28 AM, David Pollak feeder.of.the.be...@gmail.com wrote: The good news is that I've got pingdom monitoring the machine. The bad news is that I was out of cell phone range so I didn't get the alerts. What? You're not allowed to relax! No, I'm not. Last family vacation, scala-tools.org was DoSed. This family vacation, the network connection to the machine got hosed. Sigh. Jeremy -- 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 -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Hudson issue
ulimit -n http://stackoverflow.com/questions/114914/how-do-you-fix-too-many-open-files-problem-in-hudson On Mon, Jun 29, 2009 at 11:15 PM, Derek Chen-Becker dchenbec...@gmail.comwrote: Hudson barfed just now complaining about too many open files: Caused by: java.io.IOException: Cannot run program git (in directory /home/scalatools/hudson/.hud son/jobs/Lift/workspace): java.io.IOException: error=24, Too many open files I've restarted Hudson and it appears to be working now. I'm going to research this to see if it's a Hudson bug or possibly and issue with our machine config, so I was wondering if anyone has seen something like this before? Thanks, Derek -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Anyone working on the flot widget?
What's the type of temperature and what's the signature of the toDouble method on it? On Fri, Jun 26, 2009 at 11:09 AM, Peter Robinett pe...@bubblefoundry.comwrote: Thanks, Jeppe, that's what I was missing. To continue to hijack this thread with my own questions, I'm having a problem creating the data List[(Double, Double)] that FlotSerie wants. I have: override val data = MyModel.findAll(By(MyMode.id, myId), OrderBy (MyModel.datetime, Ascending)).map(m = (m.datetime.getTime.toDouble, m.temperature.toDouble)) This gives me an error saying I'm missing arguments for toDouble in class MappedDouble (this is MyModel.temperature) and suggests treating it as a partially applied function. I'm not sure I want to do that but, trying it anyway (with m.temperature.toDouble _), I got an new error saying that List[(Double, (Any) = Double)] is an incompatible type. Any suggestions? I'm sure it's a REALLY simple fix. Thanks, Peter On Jun 26, 12:53 am, Jeppe Nejsum Madsen je...@ingolfs.dk wrote: On 26 Jun 2009, Peter Robinett wrote: Hi flot users, I am trying to copy the basic Flot example into my own code. I have no compile errors but the graph isn't rendered because /classpath/flot/ jquery.flot.js isn't found. Since I get no errors with the flot methods in my snippet, I assume lift-widgets is loading correctly. Am I missing something? Did you put a call to net.liftweb.widgets.flot.Flot.init in Boot? This is needed to make the javascript resources available... /Jeppe -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Warnings for missing binds?
Nice proposal! I'm noodling on adding a bit of framework to widgets, I got a bit frustrated with a widget today... Aöso, would be cool to make them OSGI components to be able to add them without rebooting. But now I'm babbling again -- Viktor On Jun 26, 2009 7:11 PM, Derek Chen-Becker dchenbec...@gmail.com wrote: I meant that it could warn you if your bind tag looks like: lift:bind name=content / But you made a mistake with your surround tag: lift:surround at=contet / (notice the misspelling) I was thinking that you would get two warnings: 1. One that nothing had matched the content name 2. One that there was an unused contet surround Derek On Fri, Jun 26, 2009 at 9:52 AM, marius d. marius.dan...@gmail.com wrote: That would be ni... --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: scalajpa - while accessing two distincts databases, the second access is made with a connection to the first database
:38 PM, Meredith Gregory lgreg.mered...@gmail.com wrote: It takes some serious training to think compositionally. No doubt it is extremely tough to think compositionally, and it's all too easy to fall back on non-compositional ways of thinking. In a similar vein it's all too easy to fall into procedural patterns when learning or working with functional programming in a multi-paradigm language. But what are good ways for programmers to learn to think compositionally and, more importantly, practice? Do you know of any books or online references that might help make the transition for anyone who is interested? Jeremy -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: scalajpa - while accessing two distincts databases, the second access is made with a connection to the first database
I just want to say that it's educating and awesome (in the true sense of the word) to have you on this list, enriching us with alot of good ideas, theories and concepts. 2009/6/18 Meredith Gregory lgreg.mered...@gmail.com Viktor, My co-routine yields back to yours! Hey, it's like Garrison Keillor's Tales from Lake Wobegonhttp://en.wikipedia.org/wiki/Lake_Wobegon: where *all* of the children are above average. If you think about it, that just keeps *lift*ing the children higher and higher and higher... Speaking of which, i think David's goat rodeo ideas fit pretty well with some ideas i've been working on regarding a uniform approach to data. This takes the whole LINQ idea up a couple of notches. To see what i mean, take a look at the slides for a recent talk i gavehttp://svn.biosimilarity.com/src/open/talks/MonadicDesignPatternsForTheWeb.pdf. Comments (peanuts, rotten tomatoes...) would be most welcome. Best wishes, --greg P.S. Oliver's sincere question compelled me to respond with my own best understanding of the topic. 2009/6/18 Viktor Klang viktor.kl...@gmail.com I yield to your superiority. Seriously. 2009/6/18 Meredith Gregory lgreg.mered...@gmail.com Oliver, Objects and monads are really not the same. At it's heart the concept of monad is an appropriately parametric notion of composition. If you have any experience with abstract algebra, you might recognize that the notion of a group http://en.wikipedia.org/wiki/Symmetry_group is an appropriately parametric notion of symmetry. Groups give an exceptionally well abstracted account of symmetry. Monads give an exceptionally well abstracted notion of composition. This is a lot easier to see in the Category Theoretic presentation. A monad http://en.wikipedia.org/wiki/Monad_%28category_theory%29 is presented by three pieces of data: - An endofunctor http://en.wikipedia.org/wiki/Functor M : C - C (intuitively, think of M as a parametric type constructor and C as the universe of types and maps) - A natural transformationhttp://en.wikipedia.org/wiki/Natural_transformationunit: Id - M -- this is a higher-order critter: it takes maps to maps; but i'll give you a metaphor in just a moment. - A natural transformation mult: M^2 - M One picture you can have in your mind is M is a kind of box factory. Then unit says how you can put things into a box, and mult says how you can flatten nested boxes into an ordinary box (this is the origins of flatMap in Scala's presentation). Another way of understanding this is that M is a kind of higher-order compositor, i.e. a way of combining things just like multiplication, as in a*b, is a way of combining things. Then the unit is the analog of having a unit for your multiplication and mult is the analog of an associativity law ( a*(b*c) = (a*b)*c ). These line up with the box analogy more easily if you write things with prefix notation instead of infix notation. - Let's write {*| a, b |*} instead of a*b. The reason we adopt this more verbose notation is that we can note the different kind of boxes with the 'color' of the braces. M-colored braces, {M| a, b |M}, are associated with an M-box. - Then unit( a ) = {M| a |M}, it puts a in an M-box. This has an alternate presentation of the form {M| |M}.{M| a |M} = {M| a |M}. i mention it to point out the analogy with the binary operation _*_, but it muddies the water a little with begging the question about the _._. So, i will just leave it -- without explanation -- for you to explore. - And mult( {M| {M| a11, ..., a1J |M} ... {M| aI1, ... aIJ' |M} |M} ) = {M| a11, ..., aIJ' |M}. It tells you how to canonically flatten M-boxes. This functions as an association because if boxes canonically flatten, then {M| a, {M| b, c |M} |M} = {M| a, b, c |M} = {M| {M| a, b |M}, c |M}. The apparent lexical connection between this way of thinking about things and XML *is not accidental*. Monads can be viewed as colored braces, aka matched tags. Monads are a semantical creature that presents syntactically like XML. This way of thinking about things is really different from objects. To be sure, there are notions of objects that are universal and so can be made to fit or encode just about anything; but, that doesn't mean the encodings are nice, or scalable or maintainable. You have only to to look at something like LINQ -- which is really just a presentation of monads -- to see just how flexible and yet compact the monadic way of structuring composition is. Specifically, both set-comprehension notation and SELECT-FROM-WHERE, when interpreted polymorphically, provide a natural representation of the monad. - { pattern | t1 - generator1, ..., tn - generatorN, constraint1, ..., constraintK } - SELECT pattern FROM generator WHERE constraint Those to pieces of computational machinery have very simple, and natural mappings
[Lift] BBCode2XHTML
Hi guys! I'm in dire need of an XSS-safe and generally harmless way of allowing end-users to add some markup to texts. In the spirit of re-use and lack of time, I wonder if any of you have any libraries to recommend that can transform a String maybe containing BBCode to the same string but with xhtml compliant markup. Googled it a bit and saw KefirBB http://sourceforge.net/projects/kefir-bb/and JavaBBCode https://javabbcode.dev.java.net/ but none of them seem lean enough (I mean, how much code does it need to transform a String??) So what's it gonna be guys, is there a saviour out there or will I need to pull out the Scala REPL? Cheers! -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Neo4J
I think I was the first external committer to Neo4j.It is a really interesting product, and I had quite a few nice use-cases for it, but unfortunately their adoption of AfferoGPLv3 prohibited me from using it. Viktor, Lift Scala 18 jun 2009 kl. 17.39 Jeremy Day jeremy@gmail.com skrev: Good morning, Has anyone used a graph database, such as Neo4J, as their back end in a Lift project? Jeremy --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Neo4J
Last time I checked they had commercial licenses for sale (contact for pricing details) Viktor, Rogue Software Architect 18 jun 2009 kl. 22.10 Jeremy Day jeremy@gmail.com skrev: Viktor, Interesting. I'm starting the very initial development on a little commercial product and I'm thinking about using Neo4J as the back end. I'll need to eyeball their license again to make sure that it's compatible with what I want to do. Jeremy On Thu, Jun 18, 2009 at 2:53 PM, Viktor Klang viktor.kl...@gmail.com wrote: I think I was the first external committer to Neo4j.It is a really interesting product, and I had quite a few nice use-cases for it, but unfortunately their adoption of AfferoGPLv3 prohibited me from using it. Viktor, Lift Scala 18 jun 2009 kl. 17.39 Jeremy Day jeremy@gmail.com skrev: Good morning, Has anyone used a graph database, such as Neo4J, as their back end in a Lift project? Jeremy --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: scalajpa - while accessing two distincts databases, the second access is made with a connection to the first database
Read this and join me in having your brains implode: http://www.mail-archive.com/everything-l...@googlegroups.com/msg05959.html On Wed, Jun 17, 2009 at 11:07 AM, TSP tim.pig...@optrak.co.uk wrote: In my own defense ... failed to realize the problem that would arise from defining the EM factory as a singleton Are you being honest here Derek? Was not the real problem that you failed to truly embrace the shape of the paradoxical combinator? -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Hiring Lift Developers
Dang! No Boston, Sweden :( On Tue, Jun 16, 2009 at 3:02 AM, David LaPalomento dlapalome...@novell.comwrote: As much as I'd love an excuse to fly out to London (or Sydney), you're right, it probably is a bit too much of a stretch :) On Jun 15, 6:51 pm, KWright kev.lee.wri...@googlemail.com wrote: I suspect that London UK would probably be an exception too far! On 15 June, 23:45, David LaPalomento dlapalome...@novell.com wrote: Good point, sorry! Most of the team is located in the Boston area, but we'd probably be willing to make exceptions. On Jun 15, 4:14 pm, KWright kev.lee.wri...@googlemail.com wrote: You forgot to mention where you are in the world, it might be useful to know... :P On 15 June, 18:32, David LaPalomento dlapalome...@novell.com wrote: Hi all, My team has recently started a project based around Lift and we're looking at bringing on some passionate, full-time developers to make that happen. It's a pretty ambitious effort and we expect to be pushing the technology envelope in real-time communication (CometActors have already been a huge help here) and user experience for web applications. If you think you might be interested, drop me an email and I'd be glad to go into greater detail about the project. Also, apologies in advance if I shouldn't be posting this sort of thing to the list. Regards, David -- Viktor Klang Scala Loudmouth --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Great pictures from the Scala Lift Off
On Tue, Jun 9, 2009 at 1:01 AM, David Pollak feeder.of.the.be...@gmail.comwrote: On Mon, Jun 8, 2009 at 12:37 PM, Viktor Klang viktor.kl...@gmail.comwrote: On Mon, Jun 8, 2009 at 8:09 PM, Timothy Perrett timo...@getintheloop.euwrote: w00t!! Marius, Viktor, Heiko... You think you guys will be able to make the trip to EPFL? I'll be there with bells on! I'll check the budget! ;) The beer budget or the travel budget? Like there was ever a shadow of a doubt that the beer budget was insufficient... ;) Cheers, Tim Sent from my iPhone On 8 Jun 2009, at 18:43, David Pollak feeder.of.the.be...@gmail.com wrote: On Mon, Jun 8, 2009 at 10:29 AM, Derek Chen-Becker dchenbec...@gmail.com dchenbec...@gmail.com wrote: I'm still pushing for a Scala on Skis conference out here in Colorado ;) It's looking like Scala on Skis will be held in Lausanne, Switzerland in Spring 2010. We'll also have a Scala Lift Off in the Washington, DC area in October 2009. Maybe we'll have a Denver-based conference in 2010. Derek On Mon, Jun 8, 2009 at 11:14 AM, Timothy Perrett timo...@getintheloop.eu wrote: Sweet! So jeleous of you guys cant wait to have a EMEA scala geek meet! Then myself, Viktor and Heiko can really hit the beers ;-) Cheers, Tim On Jun 8, 5:53 pm, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, Ilya not only writes great IDE plugins, he takes good pictures:http://picasaweb.google.com/ilyas239/Scalaliftoff09# http://picasaweb.google.com/ilyas239/Scalaliftoff09# Thanks, David -- Lift, the simply functional web frameworkhttp://lifthttp://liftweb.net web.net Beginning Scalahttp:// http://www.apress.com/book/view/1430219890 www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpphttp://twitter.com/dpp Git some: http://github.com/dpphttp://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpphttp://twitter.com/dpp Git some: http://github.com/dpphttp://github.com/dpp -- Viktor Klang Rockstar Developer -- 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 -- Viktor Klang Rockstar Developer --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
Re: [scala] Re: [Lift] Programming in Scala #5, Lift Book #8, Beginning Scala #9
On Tue, Jun 9, 2009 at 9:43 AM, Heiko Seeberger heiko.seeber...@googlemail.com wrote: 2009/6/9 Viktor Klang viktor.kl...@gmail.com Awesome idea. Would be great to establish some kind of curriculum with joint teaching material to be able to offer courses worldwide. +1 We have been doing something similar with Eclipse = www.eclipse-training.net And very recently we also started with courses on Scala and Lift, still flagged Eclipse Training Alliance. But we would like to go for some kind of world wide Scala Training network. What do you guys think? Interested? Very! Heiko -- Viktor Klang Rockstar Developer --~--~-~--~~~---~--~~ 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 Transaction Monad - Early Access Program
Starkt jobbat Jonas! I'll have a look at it asap :) On Tue, Jun 9, 2009 at 4:27 PM, Jonas Bonér jbo...@gmail.com wrote: 2009/6/9 David Pollak feeder.of.the.be...@gmail.com: Sweet looking stuff! Thanks. On Tue, Jun 9, 2009 at 6:18 AM, Jonas Bonér jbo...@gmail.com wrote: Hey guys. I have hacked together an early draft of the JTA transaction stuff. I have wrapped it up in a monad. Here are some examples of usage: for { ctx - TransactionContext.Required entity - updatedEntities if !ctx.isRollbackOnly } { // transactional stuff ctx.getEntityManager.merge(entity) } val users = for { ctx - TransactionContext.Required name - userNames } yield { // transactional stuff val query = ctx.getEntityManager.createNamedQuery(findUserByName) query.setParameter(userName, name) query.getSingleResult } If you don't like the monadic approach you can just use the high-order functions: TransactionContext.withTxRequired { ... // REQUIRED semantics TransactionContext.withTxRequiresNew { ... // REQUIRES_NEW semantics } } I have implemented the same semantics as used in the EJB spec. Required, RequiresNew, Mandatory, Supports, Never. All these are monadic objects in the TransactionContext object. I don't have a webapp to try this out, so I would be happy to get all kinds of feedback, but API wise and bug reports or fixes. This API is hooked into Derek's Scala-JPA stuff. I had my own impl of this but replaced it with Derek's work. Derek, please go through the integration to see if I have done it correctly, and where things code be improved. All committers, feel free to hack and change this code anyway you want. The code is in a branch (wip-jta-jonas), you can find it here: http://github.com/dpp/liftweb/tree/3783b9e2200cc57dd72baa1bd8cabdb1365ee923/lift-jta Check the ScalaDoc (or the source) for the documentation on usage, semantics etc. Also see the README for configuration in persistence.xml etc. Currently it is hard-coded to use the Atomikos Transaction library and Hibernate JPA, that would have to be configurable + some other options as well. See the TODOs in the code. As I said, this needs feedback and testing. Thanks. -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner -- 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 -- Jonas Bonér twitter: @jboner blog:http://jonasboner.com work: http://crisp.se work: http://scalablesolutions.se code: http://github.com/jboner -- Viktor Klang Rockstar Developer --~--~-~--~~~---~--~~ 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: Programming in Scala #5, Lift Book #8, Beginning Scala #9
Congrats guys! You've really deserved it! :) On Mon, Jun 8, 2009 at 4:34 PM, TylerWeir tyler.w...@gmail.com wrote: http://www.theserverside.com/news/thread.tss?thread_id=54862 Quote: Here are the top 10 selling books at the JavaOne Bookstore. Are these a trend? You decide. 1. JavaFX: Building Rich Internet Applications - Addison Wesley ISBN: 013701287X 2. Essential JavaFX - PTR (out June 11, 2009) ISBN: 0137042795 3. Effective Java 2nd ed. - PTR ISBN: 0321356683 4. Java Puzzlers - Addison Wesley ISBN: 032133678X 5. Programming in Scala - Artima ISBN: 0981531601 6. Java Concurrency in Practice - Addison Wesley ISBN:0321349601 7. Beginning Java EE 5: From Novice to Professional - Apress ISBN: 1590594703 8. The Definitive Guide to Lift - Apress ISBN: 1430224215 9. Beginning Scala - Apress ISBN: 1430219890 10. OpenSolaris Bible - Wiley ISBN: 0470385480 Another chance for me to thank everyone involved. - dpp for building the framework and being more helpful than any person should be expected to be. - Derek and Marius for being excellent co-authors and about 8 times smarter than me. Huzza! -- Viktor Klang Rockstar Developer --~--~-~--~~~---~--~~ 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: Great pictures from the Scala Lift Off
On Mon, Jun 8, 2009 at 8:09 PM, Timothy Perrett timo...@getintheloop.euwrote: w00t!! Marius, Viktor, Heiko... You think you guys will be able to make the trip to EPFL? I'll be there with bells on! I'll check the budget! ;) Cheers, Tim Sent from my iPhone On 8 Jun 2009, at 18:43, David Pollak feeder.of.the.be...@gmail.com wrote: On Mon, Jun 8, 2009 at 10:29 AM, Derek Chen-Becker dchenbec...@gmail.com dchenbec...@gmail.com wrote: I'm still pushing for a Scala on Skis conference out here in Colorado ;) It's looking like Scala on Skis will be held in Lausanne, Switzerland in Spring 2010. We'll also have a Scala Lift Off in the Washington, DC area in October 2009. Maybe we'll have a Denver-based conference in 2010. Derek On Mon, Jun 8, 2009 at 11:14 AM, Timothy Perrett timo...@getintheloop.eu wrote: Sweet! So jeleous of you guys cant wait to have a EMEA scala geek meet! Then myself, Viktor and Heiko can really hit the beers ;-) Cheers, Tim On Jun 8, 5:53 pm, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, Ilya not only writes great IDE plugins, he takes good pictures:http://picasaweb.google.com/ilyas239/Scalaliftoff09# http://picasaweb.google.com/ilyas239/Scalaliftoff09# Thanks, David -- Lift, the simply functional web frameworkhttp://lifthttp://liftweb.net web.net Beginning Scalahttp:// http://www.apress.com/book/view/1430219890 www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpphttp://twitter.com/dpp Git some: http://github.com/dpphttp://github.com/dpp -- Lift, the simply functional web framework http://liftweb.net http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpphttp://twitter.com/dpp Git some: http://github.com/dpphttp://github.com/dpp -- Viktor Klang Rockstar Developer --~--~-~--~~~---~--~~ 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 views
On Sun, May 31, 2009 at 7:05 PM, Timothy Perrett timo...@getintheloop.euwrote: Now you mention it though, it might well work quite nicely. Talk to me Viktor - what are you thinking? Just create an XSLT template to convert the lift templates to a a more readable form? Should be possible? Cheers, Tim On 31/05/2009 14:10, Viktor Klang viktor.kl...@gmail.com wrote: Couldn't they just define an XSLT template to view the lift templates with? -- Viktor Klang Rockstar Developer --~--~-~--~~~---~--~~ 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 views
On Mon, Jun 1, 2009 at 11:05 AM, Timothy Perrett timo...@getintheloop.euwrote: Just create an XSLT template to convert the lift templates to a a more readable form? Should be possible? Your thinking just have an XSLT just for preview purposes? That would be pretty sweet. Yes, my point exactly! :) Perhaps we can do something with this: http://mojo.codehaus.org/xslt-maven-plugin/transform-mojo.html Cheers, Tim -- Viktor Klang Rockstar Developer --~--~-~--~~~---~--~~ 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 views
On Mon, Jun 1, 2009 at 12:15 PM, Timothy Perrett timo...@getintheloop.euwrote: Don't worry I'm just being slow as per normal viktor! Do you want to try setting this up or shall I? Make a draft and we'll help eachother out :) Cheers, Tim Sent from my iPhone On 1 Jun 2009, at 10:52, Viktor Klang viktor.kl...@gmail.com wrote: On Mon, Jun 1, 2009 at 11:05 AM, Timothy Perrett timo...@getintheloop.euwrote: Just create an XSLT template to convert the lift templates to a a more readable form? Should be possible? Your thinking just have an XSLT just for preview purposes? That would be pretty sweet. Yes, my point exactly! :) Perhaps we can do something with this: http://mojo.codehaus.org/xslt-maven-plugin/transform-mojo.html http://mojo.codehaus.org/xslt-maven-plugin/transform-mojo.html Cheers, Tim -- Viktor Klang Rockstar Developer -- Viktor Klang Rockstar Developer --~--~-~--~~~---~--~~ 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 views
On Mon, Jun 1, 2009 at 1:53 PM, Timothy Perrett timo...@getintheloop.euwrote: Make a draft and we'll help eachother out :) Ok will do - perhaps try mocking this up later in the week. Any thoughts in and around this otherwise? Must haves vs nice to have? Hmmm, perhaps we should start with defining the needs. The OP could perhaps elaborate a bit more on how his needs are? Cheers, Tim -- Viktor Klang Rockstar Developer --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---
[Lift] Re: Lift and interoperability
Hello guys, if you could scribble together a scenario, then I might be able to help you out. Cheers, On Sun, May 17, 2009 at 10:53 PM, johnnie jsm2p...@googlemail.com wrote: On May 17, 4:33 am, rintcius rintc...@gmail.com wrote: Interesting discussion! I think I see a bit where Glenn is coming from. To me it's about *ease* of interoperability. For enterprise architectures the most important question is: to what extent is Lift helping me to build a **composable** software system. ... My guess is that this is all possible in Lift but I haven't seen anything in the code or docs that facilitates this. Maybe I have overlooked something but what I have seen so far is based on an all or nothing approach Is it just a matter of documentation? If so, I might be able to help with that. When I am really interested in something, people praise me very highly for being explicit, easy to understand, and forceful. I have the same feelings as Glen and Rintcius although I have great faith in everything else that has been said. If you gurus want to expand your influence to the great unwashed masses, please see if you can determine a time when you are willing to explain everything to me at your location. I am a genius, a Ph.D. and many other good things although I have a learning disability, ADD, and other gifts which hold me closely to the masses. I can't see this interoperability. But if you will take the time to explain it to me as soon as I can come to visit you in person, I will write it up so that others can understand it better/differently than your current documentation. Sincerely, Johnnie -- Viktor Klang Rockstar Developer --~--~-~--~~~---~--~~ 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: Jetty Session problem
I've seen this happen to other session based java web frameworks, oftentimes it's been caused by improperly configured proxies or terminal servers. Does this help you? Viktor, Rogue Software Architect 14 maj 2009 kl. 17.43 David Pollak feeder.of.the.be...@gmail.com skrev: On Thu, May 14, 2009 at 4:42 AM, sailormoo...@gmail.com sailormoo...@gmail.com wrote: Hi : The Jetty server just happened a weird bug, some ppl seems to get into another ppl's session, All session state in Lift is managed using JSESSIONID. Session management is a simple and solid mechanism. I've never seen or heard of mixing sessions. Can you be specific about the defect and the code in your application where it's manifesting itself? as a logined user but it's another one's. I don't know why this would happen, anyone knows if there is a bug, or maybe some configuration should be made? Thanks. -- 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: OSGi support for Lift
I feel I owe Heiko a beer. On Tue, May 12, 2009 at 3:36 PM, David Pollak feeder.of.the.be...@gmail.com wrote: Very good stuff! Looking forward to playing with it today. Thanks for the hard work! On Tue, May 12, 2009 at 12:03 AM, Heiko Seeberger heiko.seeber...@googlemail.com wrote: Hi Lift folks, Today I checked in the first little step towards OSGi support: - Modules lift-util and lift-webkit are no longer plain vanilla JARs, but built as OSGi bundles (OSGi metadata in META-INF/MANIFEST.MF) - New module lift-osgi which offers (yet very limited) support for Lift application bundles (to ones you write) - New example module (under sites) examples-osgi with one (yet very limited) examples-osgi-hello bundle The first thing I would like to ask you is to verify that the changes to the existing modules are free of side effects: Lift should work without OSGi just like before. As the changes to lift-util and lift-webkit are merely in the manifest, I am very confident, but just to be sure ... And for those of you interested in OSGi: Currently there is only support for resources (templates) contributed from Lift-powered bundles to a composite Lift application. Yet no snippets, no custom dispatch, etc. Please take a look at sites/examples-osgi/hello. Note the new manifest header Lift-Config in the POM (the value is yet without any meaning). This bundle contributes its resources under webappto a composite Lift application. The actual work is done by lift-osgi which is an implementation of the extender pattern. In order to run the example, I suggest you use Pax Runnerhttp://paxrunner.ops4j.org/space/Pax+Runnerwith the scala and web profiles and the provided component configuration file at sites/examples-osgi/hello/hello.component. Else you will have to provision OSGi bundles for Scala, ScalaModules, Lift and all required dependencies (take a look into hello.component) by hand. Of course I would be very glad to get some reviews on my Scala code, because I guess there is still a long way of learning ahead ... Cheers Heiko -- My blog: heikoseeberger.name Follow me: twitter.com/hseeberger OSGi on Scala: www.scalamodules.org Lift, the simply functional web framework: liftweb.net -- 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 -- Viktor Klang Senior Systems Analyst --~--~-~--~~~---~--~~ 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: OSGi support for Lift
On Tue, May 12, 2009 at 3:59 PM, Timothy Perrett timo...@getintheloop.euwrote: If your buying Viktor ;-) Say, when we having a lift team beer night? Feels like were long overdue for something like that! We really should! Cheers, Tim On 12/05/2009 14:50, Viktor Klang viktor.kl...@gmail.com wrote: I feel I owe Heiko a beer. On Tue, May 12, 2009 at 3:36 PM, David Pollak feeder.of.the.be...@gmail.com wrote: Very good stuff! Looking forward to playing with it today. Thanks for the hard work! On Tue, May 12, 2009 at 12:03 AM, Heiko Seeberger heiko.seeber...@googlemail.com wrote: Hi Lift folks, Today I checked in the first little step towards OSGi support: - Modules lift-util and lift-webkit are no longer plain vanilla JARs, but built as OSGi bundles (OSGi metadata in META-INF/MANIFEST.MF) - New module lift-osgi which offers (yet very limited) support for Lift application bundles (to ones you write) - New example module (under sites) examples-osgi with one (yet very limited) examples-osgi-hello bundle The first thing I would like to ask you is to verify that the changes to the existing modules are free of side effects: Lift should work without OSGi just like before. As the changes to lift-util and lift-webkit are merely in the manifest, I am very confident, but just to be sure ... And for those of you interested in OSGi: Currently there is only support for resources (templates) contributed from Lift-powered bundles to a composite Lift application. Yet no snippets, no custom dispatch, etc. Please take a look at sites/examples-osgi/hello. Note the new manifest header Lift-Config in the POM (the value is yet without any meaning). This bundle contributes its resources under webapp to a composite Lift application. The actual work is done by lift-osgi which is an implementation of the extender pattern. In order to run the example, I suggest you use Pax Runner http://paxrunner.ops4j.org/space/Pax+Runner with the scala and web profiles and the provided component configuration file at sites/examples-osgi/hello/hello.component. Else you will have to provision OSGi bundles for Scala, ScalaModules, Lift and all required dependencies (take a look into hello.component) by hand. Of course I would be very glad to get some reviews on my Scala code, because I guess there is still a long way of learning ahead ... Cheers Heiko -- Viktor Klang Senior Systems Analyst --~--~-~--~~~---~--~~ 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: OSGi support for Lift
Hi Heiko, I'm a big fan of smoked German beer like Schlenkerla Rauchbier :) On Tue, May 12, 2009 at 4:21 PM, Heiko Seeberger heiko.seeber...@googlemail.com wrote: Beer sounds great (I am form Bavaria) and team beer night also ;-)How does this work? Everybody chatting how much she has drunk? Cheers Heiko 2009/5/12 Viktor Klang viktor.kl...@gmail.com On Tue, May 12, 2009 at 3:59 PM, Timothy Perrett timo...@getintheloop.eu wrote: If your buying Viktor ;-) Say, when we having a lift team beer night? Feels like were long overdue for something like that! We really should! Cheers, Tim On 12/05/2009 14:50, Viktor Klang viktor.kl...@gmail.com wrote: I feel I owe Heiko a beer. On Tue, May 12, 2009 at 3:36 PM, David Pollak feeder.of.the.be...@gmail.com wrote: Very good stuff! Looking forward to playing with it today. Thanks for the hard work! On Tue, May 12, 2009 at 12:03 AM, Heiko Seeberger heiko.seeber...@googlemail.com wrote: Hi Lift folks, Today I checked in the first little step towards OSGi support: - Modules lift-util and lift-webkit are no longer plain vanilla JARs, but built as OSGi bundles (OSGi metadata in META-INF/MANIFEST.MF) - New module lift-osgi which offers (yet very limited) support for Lift application bundles (to ones you write) - New example module (under sites) examples-osgi with one (yet very limited) examples-osgi-hello bundle The first thing I would like to ask you is to verify that the changes to the existing modules are free of side effects: Lift should work without OSGi just like before. As the changes to lift-util and lift-webkit are merely in the manifest, I am very confident, but just to be sure ... And for those of you interested in OSGi: Currently there is only support for resources (templates) contributed from Lift-powered bundles to a composite Lift application. Yet no snippets, no custom dispatch, etc. Please take a look at sites/examples-osgi/hello. Note the new manifest header Lift-Config in the POM (the value is yet without any meaning). This bundle contributes its resources under webapp to a composite Lift application. The actual work is done by lift-osgi which is an implementation of the extender pattern. In order to run the example, I suggest you use Pax Runner http://paxrunner.ops4j.org/space/Pax+Runner with the scala and web profiles and the provided component configuration file at sites/examples-osgi/hello/hello.component. Else you will have to provision OSGi bundles for Scala, ScalaModules, Lift and all required dependencies (take a look into hello.component) by hand. Of course I would be very glad to get some reviews on my Scala code, because I guess there is still a long way of learning ahead ... Cheers Heiko -- Viktor Klang Senior Systems Analyst -- My blog: heikoseeberger.name Follow me: twitter.com/hseeberger OSGi on Scala: www.scalamodules.org Lift, the simply functional web framework: liftweb.net -- Viktor Klang Senior Systems Analyst --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---