I agree also it was the best course of action, though I feel unhappy that a more friendly solution was not found. You can lead a horse to water, but can't stop it from kicking your teeth out for the favor?
The quality of people on the lift list really is quite good -- it's an aspect to be proud of, for sure. -Ross On Oct 14, 2009, at 12:15 PM, marius d. wrote: > > Reading the thread in question I was quite surprised about the > attitude shown on the list by the person in question. I wholeheartedly > agree that the right decision has been made. > > Br's, > Marius > > On Oct 14, 6:49 pm, David Pollak <feeder.of.the.be...@gmail.com> > wrote: >> Folks, >> >> It is not lightly that I ban someone from the group... this is only >> the >> second time I've banned a substantive poster. I'm going to discuss >> some of >> the process and then touch on some of the substance of the >> questions that >> the poster was getting at. >> >> The Lift community, reflected on this list, is an inquisitive, >> friendly >> place where people who have a passion for building great web apps >> converge >> and contribute to making Lift a really great open source >> framework. Newbies >> are the lifeblood of the group because they come with fresh >> perspectives and >> new ways of looking at things. Questions from newbies help us >> refine and >> enhance Lift and the associated documentation. Folks who are >> building >> production apps on Lift receive the fastest turn-around because >> these folks >> are betting their careers and their enterprises (even enterprises >> of one) on >> Lift and they deserve the best support in the industry for taking >> this risk. >> >> A big part of why this community is successful (in terms of size, >> quality of >> discussion, and quality of results) is because we keep the quality of >> discussion high. How do we do this? The folks who have been on >> the list >> generally keep the level of discussion to the Lift ideals. We reward >> newbies with quick answers and encourage friendly discourse. We are >> generally slower to respond to those that are less reflective of >> the list >> ideals. I warn folks who are pushing boundaries (usually >> privately, but >> every once in a while publicly) and where the line is. >> >> In this case, nothing worked. The poster was neither asking >> questions, >> giving usable feedback, or being polite in his engagement with the >> folks on >> the list. I received a substantial number of private >> communications about >> this poster (which is pretty rare), and I took action. >> >> In terms of the substance, let me address to "threat" issue first. I >> threatened to ban the poster from the list. Perhaps DHH or Martin >> would not >> make such a threat. I am very sure that the quality of discussion >> on the >> Lift list is higher than that on the Rails list (one of the reasons I >> started Lift was to be part of a nicer community.) One cost of >> having a >> nicer place is excluding those who do not fit. The second "threat" >> I made >> was to relay a tongue-in-cheek private communication I received >> about the >> poster to the list (after receiving the okay from the guy that made >> the >> communication to me.) This "threat" was obvious, using video game >> rating >> language <http://www.esrb.org/ratings/ratings_guide.jsp>, "Comic >> mischief" >> and "Cartoon violence". It was something that even a 6 year old can >> distinguish from reality. Put another way, the poster was talking >> about >> Kafkaesque experiences with using Lift and I responded with >> Jonesian<http://www.youtube.com/watch?v=CrupqdGvsoc&feature=PlayList&p=62FED00 >> >> ...>language. >> >> In terms of the broader issue of Lift's HTML templating system >> being XHTML >> only, yes, that's true. Lift treats HTML templates as XML. Lift's >> templating system is not a String templating system but an XML >> templating >> system. This satisfies the needs to render content to HTML >> browsers. If >> there are needs for generating other kinds of content, Lift is not >> as good, >> but in many cases there are better libraries for doing so. Lift >> makes it >> very simple to integrate other rendering/templating engines into >> Lift, >> usually with a single line of code the dispatches the HTTP request >> to an >> alternate provider of a LiftResponse. If the poster had simply >> said, "I >> want to template non-HTML output, can you show me how?" he would >> have gotten >> a nice example (and I might have even rolled it into >> demo.liftweb.net or >> maybe Tim might have blogged about it. >> >> Keeping things in XML has a number of advantages and a few >> disadvantages. >> First, the disadvantages: (1) you can't template non-XHTML >> responses and (2) >> everything must be well formed XML. The advantages are (1) >> security (2) >> performance (it's easier to cache XML and the cost of mutating XML >> trees is >> O(log N)), (3) there is better separation of logic from the view >> (perhaps >> Terrance Parr's String Template library achieves this level of >> separation), >> and (4) the ability to mutate the resulting page (rewrite tags, >> move stuff >> to head/tail, consolidate scripts) is more performant and less >> error-prone >> than doing the same with a String-based representation. >> >> I will address Bill's security question. For String-based >> rendering systems >> that emit HTML, the developer is the one who must make a decision >> at each >> insertion point as to whether the incoming String needs to be >> escaped. >> Because Strings are untyped, you don't know what they mean, if >> they're >> "safe" to be passed directly or if they need to be escaped. On the >> other >> hand, keeping the output structure in XML, you know when you're >> promoting a >> String to an XML element and by default, it's done securely. The >> developer >> has to affirmatively do something that will introduce a >> vulnerability. >> Here's an example: >> >> val inputFromBadUser = "<script>alert('boo');</script>"val >> vulnerableStringTemplating = "<div>The other guy said: >> "+inputFromBadUser+"</div>" >> val safeXMLTemplating = <div>The other guy said: {inputFromBadUser} >> </div> >> >> Sure, it's possible to use the "Unescaped" class for a String and >> it's >> possible to parse the user's input as XML, but both of these cases >> are based >> on doing something other than the default. The default if you're >> using XML >> for XHTML templating is that things are secure. The default if >> you're using >> Strings to represent the output is is insecure unless the developer >> does the >> right thing at each insertion point. >> >> I thank you all for your participation in this community. It's the >> kind of >> place I like being part of and that's because of the quality of the >> people >> and the discussions. I want to make sure as we grow from 1,400+ >> members to >> 5,000 members that the group retains the quality and energy that it >> has. >> >> David >> >> On Tue, Oct 13, 2009 at 7:21 PM, David Pollak >> <feeder.of.the.be...@gmail.com >> >> >> >>> wrote: >>> You are banned from this group. >> >>> On Tue, Oct 13, 2009 at 6:24 PM, Aule <grshipl...@gmail.com> wrote: >> >>>> Bryan >> >>>> Been there, tried that. >>>> Oh - the mime type is "text/vnd.curl" >> >>>> Btw, actually a threat has been conveyed to me at mail.google.com >>>> and >>>> I have protested to Google >> >>>> I can't imagine Dave Hansen or MArtin Odersky or Bill Venners or >>>> Lex >>>> Spoon sending me a threat, but so it goes ... >> >>>> At least I will not get 4 years in an Egyptian prison for insulting >>>> Randy's Alma Mater (Madison). >> >>>> Oh Randy. I read my Paul Valéry in the original. www.hsinfosystems.com >>>> is missing the accent on his surname. >> >>>> Lift is not Scala; I will continue to recommend Scala. >> >>>> For me, the jury on Lift is not yet in. When some sycophants of >>>> Seaside got, nasty, I did not walk away from Seaside, warts and >>>> all. >> >>>> R >> >>>> On Oct 13, 8:10 pm, Bryan <germ...@gmail.com> wrote: >>>>> Hi Aule, >> >>>>>> I am still looking to see if I over-looked somewhere on the web >>>>>> where >>>>>> there is a 1.0.2 Boot.scala >> >>>>>> 1) showing unambiguously how to flip the default Content-Type >>>>>> 2) and having, in fact, the intended effect >> >>>>>> as I now know from a few trials over a few hours that this is >>>>>> not as >>>>>> simple as some web posts present. >> >>>>> I have not had a need for this, so I had to search some "web >>>>> posts" to >>>>> find the answer. Quckly, I found the following snippet: >> >>>>> LiftRules.determineContentType = { >>>>> case _ => "text/curl" >> >>>>> } >> >>>>> I have not verified this, so please let us know if it does not >>>>> help. >> >>>>>> Were it trivial, I had not mocked a framework, and you, Mr. >>>>>> Pollock, >>>>>> had not raged. >> >>>>> From my readings, Mr. Pollak has yet to show any rage. >> >>>>> --Bryan >> >>> -- >>> 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 > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---