[Lift] Re: Potential LiftRules dispatch issue.
Hi, I'd be interested to have a look at the code :) I was about to do the same. I'd planned to use a simple cache (by uuid) in a concurrent, weak map but EHCache might be the better solution, I guess. Thanks a lot, Joachim On this note, I wrote an image cache for use in conjunction with MappedBinary - if anyone is interested I'm happy to post the code. It uses EHCache and first checks the cache for the right image, and grabs it if it's there, otherwise it does the database read. If your needing to store images in the database, using an object cache can vastly cut the amount of DB access and reduce server load Cheers Tim On Jan 28, 12:00 am, Alli allilis...@gmail.com wrote: Thanks, will definitely order a PDF or your book when it's out. Cheers, Alli On Jan 27, 11:56 pm, David Pollak feeder.of.the.be...@gmail.com wrote: On Tue, Jan 27, 2009 at 3:53 PM, Alli allilis...@gmail.com wrote: Is it possible to make the extension a wild card somehow, e.g. if i want jpg,png,gif,bmp ? LiftRules.dispatch.append { case r @ Req(picture :: fileName :: Nil, extension, GetRequest) if List(jpg, png, gif).contains(extension) = () = ... } Note that this is not a speed-optimal solution (you'd pre-populate set with the valid extensions). But it demonstrates using extractors and guards... the stuff I'm writing about this very day in *Beginning Scala*. Thanks, David On Jan 27, 11:50 pm, Alli allilis...@gmail.com wrote: Thanks chaps, can't believe i didn't spot it :). Cheers, Alfred On Jan 27, 11:48 pm, Tim Perrett he...@timperrett.com wrote: Change the req to this: Req(picture :: fileName :: Nil, jpg, GetRequest) That should then work for you Cheers, Tim On Jan 27, 11:39 pm, Alli allilis...@gmail.com wrote: LiftRules.dispatch.append { case r @ Req(picture :: fileName :: Nil, , GetRequest) = () = ... } --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this 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: Potential LiftRules dispatch issue.
IMHO, a third party cache is a huge waste. Lift has net.liftweb.util.LRU for this purpose. On Wed, Jan 28, 2009 at 11:33 AM, Joachim A. wallaby.po...@googlemail.comwrote: Hi, I'd be interested to have a look at the code :) I was about to do the same. I'd planned to use a simple cache (by uuid) in a concurrent, weak map but EHCache might be the better solution, I guess. Thanks a lot, Joachim On this note, I wrote an image cache for use in conjunction with MappedBinary - if anyone is interested I'm happy to post the code. It uses EHCache and first checks the cache for the right image, and grabs it if it's there, otherwise it does the database read. If your needing to store images in the database, using an object cache can vastly cut the amount of DB access and reduce server load Cheers Tim On Jan 28, 12:00 am, Alli allilis...@gmail.com wrote: Thanks, will definitely order a PDF or your book when it's out. Cheers, Alli On Jan 27, 11:56 pm, David Pollak feeder.of.the.be...@gmail.com wrote: On Tue, Jan 27, 2009 at 3:53 PM, Alli allilis...@gmail.com wrote: Is it possible to make the extension a wild card somehow, e.g. if i want jpg,png,gif,bmp ? LiftRules.dispatch.append { case r @ Req(picture :: fileName :: Nil, extension, GetRequest) if List(jpg, png, gif).contains(extension) = () = ... } Note that this is not a speed-optimal solution (you'd pre-populate set with the valid extensions). But it demonstrates using extractors and guards... the stuff I'm writing about this very day in *Beginning Scala*. Thanks, David On Jan 27, 11:50 pm, Alli allilis...@gmail.com wrote: Thanks chaps, can't believe i didn't spot it :). Cheers, Alfred On Jan 27, 11:48 pm, Tim Perrett he...@timperrett.com wrote: Change the req to this: Req(picture :: fileName :: Nil, jpg, GetRequest) That should then work for you Cheers, Tim On Jan 27, 11:39 pm, Alli allilis...@gmail.com wrote: LiftRules.dispatch.append { case r @ Req(picture :: fileName :: Nil, , GetRequest) = () = ... } -- 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: Potential LiftRules dispatch issue.
Oh I really wasn't aware of that... I'll take a look at it - I use ehcache for a lot in general, so in that sense it's less if a waste for me :-) Sent from my iPhone On 28 Jan 2009, at 19:35, David Pollak feeder.of.the.be...@gmail.com wrote: IMHO, a third party cache is a huge waste. Lift has net.liftweb.util.LRU for this purpose. On Wed, Jan 28, 2009 at 11:33 AM, Joachim A. wallaby.po...@googlemail.com wrote: Hi, I'd be interested to have a look at the code :) I was about to do the same. I'd planned to use a simple cache (by uuid) in a concurrent, weak map but EHCache might be the better solution, I guess. Thanks a lot, Joachim On this note, I wrote an image cache for use in conjunction with MappedBinary - if anyone is interested I'm happy to post the code. It uses EHCache and first checks the cache for the right image, and grabs it if it's there, otherwise it does the database read. If your needing to store images in the database, using an object cache can vastly cut the amount of DB access and reduce server load Cheers Tim On Jan 28, 12:00 am, Alli allilis...@gmail.com wrote: Thanks, will definitely order a PDF or your book when it's out. Cheers, Alli On Jan 27, 11:56 pm, David Pollak feeder.of.the.be...@gmail.com wrote: On Tue, Jan 27, 2009 at 3:53 PM, Alli allilis...@gmail.com wrote: Is it possible to make the extension a wild card somehow, e.g. if i want jpg,png,gif,bmp ? LiftRules.dispatch.append { case r @ Req(picture :: fileName :: Nil, extension, GetRequest) if List(jpg, png, gif).contains(extension) = () = ... } Note that this is not a speed-optimal solution (you'd pre- populate set with the valid extensions). But it demonstrates using extractors and guards... the stuff I'm writing about this very day in *Beginning Scala*. Thanks, David On Jan 27, 11:50 pm, Alli allilis...@gmail.com wrote: Thanks chaps, can't believe i didn't spot it :). Cheers, Alfred On Jan 27, 11:48 pm, Tim Perrett he...@timperrett.com wrote: Change the req to this: Req(picture :: fileName :: Nil, jpg, GetRequest) That should then work for you Cheers, Tim On Jan 27, 11:39 pm, Alli allilis...@gmail.com wrote: LiftRules.dispatch.append { case r @ Req(picture :: fileName :: Nil, , GetRequest) = () = ... } -- 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: StatefulComet
Ditto. Chas. Meredith Gregory wrote: David, i would definitely benefit from an example like the tic-tac-toe. Best wishes, --greg On Wed, Jan 28, 2009 at 9:27 AM, David Pollak feeder.of.the.be...@gmail.com mailto:feeder.of.the.be...@gmail.com wrote: Folks, Thanks to some excellent prodding from Greg Meredith, I've added StatefulComet which is a subclass of CometActor that supports games and other Comet applications. What do you have to implement: trait StatefulComet extends CometActor { type Delta : DeltaTrait type State : CometState[Delta, State] Define the types. Delta is a difference between two State objects. Deltas know how to turn themselves into the JavaScript commands that update display state. State is an immutable data structure that contains the current state to be displayed. /** * Test the parameter to see if it's an updated state object */ def testState(in: Any): Box[State] /** * Return the empty state object */ def emptyState: State } You also have to implement a CometState object that holds the current state: trait CometState[DeltaType : DeltaTrait, MyType : CometState[DeltaType, MyType]] { self: MyType = def -(other: MyType): Seq[DeltaType] def render: NodeSeq } CometState knows how to diff itself and render itself. You can implement a very powerful game or other multi-user system on top of this paradigm. I hope to get some example code built around a tic-tac-toe game later today or tomorrow. 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 -- L.G. Meredith Managing Partner Biosimilarity LLC 806 55th St NE Seattle, WA 98105 +1 206.650.3740 http://biosimilarity.blogspot.com --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Lift group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~--~~~~--~~--~--~---