Re: [racket-users] Naive question on how to capitalize only the first word of a string

2017-06-19 Thread Glenn Hoetker
Wow. In addition to getting my question answered, I learned about 6 other 
things.  Thank you so much, everyone!

Glenn

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] RacketCon Code of Conduct

2017-06-19 Thread Matthias Felleisen

Everyone: 

this discussion is the first time that we have a rough tone on this mailing 
list, 
and this tone is inappropriate. 

I am appealing to both sides to cool it down. 

We (the organizers and old people of this community) appreciate all 
non-emotional
input. Science and science organizations are explicitly not about democracy but 
we
intend to listen to your ‘technical’ inputs in this matter. 

— Matthias

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Naive question on how to capitalize only the first word of a string

2017-06-19 Thread David Storrs
Here's another:

(define/contract (ucfirst str)
  (-> string? string?)
  (match (regexp-match #px"^([^a-z]*)(.)(.+)" str)
[(list _ prefix first-letter rest-of-string)
 (~a prefix (string-upcase first-letter) rest-of-string)]))

-> (ucfirst "cat dog")
"Cat dog"
-> (ucfirst "  Cat dog")
"  Cat dog"
-> (ucfirst "1  cat dog")
"1  Cat dog"

Modifying the contents of the prefix matcher in the regex will let you
express whatever policy you want.  The one that I've written above is:
'Find the first lower-case Latin character (i.e., a-z) in the string and
change it to uppercase.  Leave the rest of the string otherwise undisturbed'

You could trivially extend the function so that you can change policies on
the fly by passing in the pattern you want:


(define/contract (ucfirst str #:pat [prefix-pat "[^a-z]*"])
  (->* (string?) (#:pat non-empty-string?) string?)
  (define pat (pregexp (~a "^(" prefix-pat ")(.)(.+)")))
  (match (regexp-match pat str)
[(list _ prefix first-letter rest-of-string)
 (~a prefix (string-upcase first-letter) rest-of-string)]
[else str]))

Now this works:

(ucfirst "cat dog")   ; "Cat dog"
(ucfirst "Cat dog")  ; "Cat dog"
(ucfirst "  cat dog"); "  Cat dog"
(ucfirst "cat dog" #:pat "[^aeiou]*") ; "cAt dog"

That last one is a trivial example, but it shows the flexibility you could
easily get.

Now, I wouldn't recommend using the actual code written above.  It's a toy
example intended to demonstrate a technique, not for production.  It's
begging for obtuse errors and/or a string injection attack, since it's
compiling a user-supplied string into a regex and putting metacharacters
around that string.  Still, it shows the flexibility -- ucfirst means
'upcase the first significant character', but the pattern parameter lets
you define what 'significant' means.




On Mon, Jun 19, 2017 at 9:38 PM, Neil Van Dyke  wrote:

> Robby's answer was more idiomatic Racket, and mine was
> idomatic-Scheme-and-also-OK-Racket, by habit. :)
>
> I'd suggest reading both implementations.  As you learn more Racket,
> you'll start to get a feel for your preferred linguistic style(s), and
> you'll notice different people have a lot more stylistic variation than
> just these two.  Also, if you're coming from low-level programming: don't
> worry about micro-optimizing for performance, yet -- performance was one
> head-scratcher that bothered me when I first started learning, but it's
> complicated, and comes later.
>
> Robby also added unit tests, setting a proper example from the start.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] RacketCon Code of Conduct

2017-06-19 Thread Brian Mastenbrook

On 06/17/2017 01:50 PM, Matthias Felleisen wrote:


A code of conduct is a totally stupid idea for RacketCon. Racketeers were 
raised properly by their parents and are well behaved. I really hate attending 
conferences that need to impose a code.
I think you might be reading something in to this request that's not 
meant by those who are asking for it. You are right to be proud of the 
Racket community today and I don't think anyone here is implying otherwise.


Having a code of conduct does not mean that us Racketeers are not well 
behaved or that we need to impose a code to keep us in line. What it 
does is outline what we consider to be bad behavior, defines some of the 
possible consequences, and makes it clear who is responsible for 
handling violations. The point of doing this is to make sure that any 
possible violations of the expected behavior aren't fatal to the 
environment that the Racket developers have worked hard to create. If 
you don't specify this, it's not at all clear what to do in the event of 
a violation and some (many?) people may decide it's not worth the risk 
of dealing with unspecified consequences.


This should sound familiar. We all use a programming environment that 
does this despite being good programmers who were taught properly by our 
professors, because programs are complex and sometimes we make mistakes. 
Humans are a lot more complex than programs, and having been raised with 
the virtues of humility and open-mindedness by our parents, we should 
all be willing to admit the possibility of errors in the human domain 
too. In both cases the goal isn't to be punitive or restrictive but to 
make sure that the environment is protected.


If it turns out that the safety mechanisms were unnecessary, then 
RacketCon will be the type of conference that doesn't need to have a 
code but has one anyway. Isn't that better than the alternative?


--
Brian Mastenbrook
br...@mastenbrook.net
https://brian.mastenbrook.net/

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] RacketCon Code of Conduct

2017-06-19 Thread Neil Van Dyke
I think this thread has gotten delightfully meta, in that I've heard 
that some people who would like to contribute in forums get scared away 
when observing interaction styles that they find very confrontational.


Not that I always remember this myself, and I also make other mistakes, 
but... When talking in a forum, we might believe that a particular 
person can take a particular style, though we know that the style would 
be too spirited to use with someone else.  But such a someone else might 
see that interaction, not know the style is selective, and not want to 
go anywhere near that discussion.


The Racket community is usually good about online tone.  But I suppose 
this thread topic is more important and emotional than most of our 
technical threads, and there's a lot of good intent behind that.


--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Naive question on how to capitalize only the first word of a string

2017-06-19 Thread Neil Van Dyke
Robby's answer was more idiomatic Racket, and mine was 
idomatic-Scheme-and-also-OK-Racket, by habit. :)


I'd suggest reading both implementations.  As you learn more Racket, 
you'll start to get a feel for your preferred linguistic style(s), and 
you'll notice different people have a lot more stylistic variation than 
just these two.  Also, if you're coming from low-level programming: 
don't worry about micro-optimizing for performance, yet -- performance 
was one head-scratcher that bothered me when I first started learning, 
but it's complicated, and comes later.


Robby also added unit tests, setting a proper example from the start.

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] RacketCon Code of Conduct

2017-06-19 Thread Deren Dohoda
If by whiskey, Jack. Your guarantees on this matter are unenforceable and
therefore meaningless, and any further comment on my ignorance will likely
violate any CoC you care to throw your weight behind, so best get it out
now because you can't unring this bell.

On Mon, Jun 19, 2017 at 8:08 PM, Jack Firth  wrote:

> > These are invariably motte and bailey style arguments and the notion
> that the only reason I or anyone else could possibly resent CoCs is some
> desire to abuse their absence is astonishing. How you could not find such
> groupthink "censorious" is beyond my ability to sympathize with. I can only
> reiterate that CoCs are not some kind of dealbreaker for me personally but
> as this is an open discussion I will just say I don't think they're all
> benefit and no cost. My disagreement on this matter does not constitute an
> admission of guilt; to abuse a racket construct: there's a bug in your
> contract spec, it's blaming the wrong party.
>
> The important point is that a CoC is a choice to prioritize the safety,
> welfare, and happiness of minority groups over the privilege of individuals
> to say / do whatever they want. Sure, you might say that's a tradeoff, and
> sure, you could call that censorship, but whatever "cost" there is of
> hypothetically blaming a party inappropriately is worth paying ten times
> over for the benefit of making traditionally less-welcomed people more
> included. I guarantee you the incidents a CoC is designed to prevent occur
> *far* more often than any incidents of mis-applying the CoC to an innocent
> individual. Not realizing that is willful ignorance.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Naive question on how to capitalize only the first word of a string

2017-06-19 Thread Jon Zeppieri
On Mon, Jun 19, 2017 at 8:12 PM, Glenn Hoetker  wrote:
> I'm quite new to Racket/LISP, so I hope this isn't breathtakingly obvious.  
> Can someone please tell me the best way to capitalize just the first word in 
> a multiword string.  So, given the string "it was a dark and stormy night", I 
> would like to get "It was a dark and stormy night". I see functions for 
> turning everything lower case, everything uppercase or capitalizing each 
> word, but nothing in line with what I hope to do.
>
>> (define it "cat dog")
>> (string-titlecase it)
> "Dog Cat"  ; So close, but not quite "Dog cat" as I want.
>
> Many thanks.
>

Yet another option:

#lang racket

(define (cap-first str)
  (match (string->list str)
[(cons x xs)
 (list->string
  (cons (char-upcase x) xs))]
[_
 str]))

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Re: Naive question on how to capitalize only the first word of a string

2017-06-19 Thread Jack Firth
Given how many solutions everyone's giving, this would be a good rosetta code 
task :)

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Naive question on how to capitalize only the first word of a string

2017-06-19 Thread Robby Findler
Here's another way to implement it. Fun. :)

#lang racket

(provide
 (contract-out
  [cap-first (-> string? string?)]))

(define (cap-first s)
  (apply
   string
   (for/list ([c (in-string s)]
  [i (in-naturals)])
 (if (= i 0)
 (char-upcase c)
 c

(module+ test
  (require rackunit)
  (check-equal? (cap-first "") "")
  (check-equal? (cap-first "Cat dog") "Cat dog")
  (check-equal? (cap-first "cat dog") "Cat dog"))


Robby

On Mon, Jun 19, 2017 at 7:40 PM, Neil Van Dyke  wrote:
> Welcome to Racket!
>
> One intro-to-Racket-compared-to-some-other-languages thing I'll just say
> upfront is that you don't want to modify the string itself, not that you
> asked to.  (Not all Racket strings are mutable.  Plus, mutating introduces a
> bunch more possibilities for bugs, and for string operations, we usually are
> in the "pure functional" school of thought.  There are rare situations in
> which you'll want to mutate strings, but that's an advanced topic, after
> comfortable with idiomatic Racket.)
>
> I'm not aware of this particular procedure in base Racket, so here's one
> implementation.  Someone new to Racket might like to read through this
> procedure and try to figure out the thinking of how the language and
> standard library was used.
>
> (define (string-capitalize str)
>   (or (string? str)
>   (raise-argument-error 'capitalize
> "string?"
> str))
>   (if (equal? "" str)
>   str
>   (let ((first-char (string-ref str 0)))
> (if (char-lower-case? first-char)
> (string-append (string (char-upcase first-char))
>(substring str 1))
> str
>
> Note that this assumes that the first character of the string is also the
> first character of any first word.  If there might be whitespace or other
> non-alphabetic characters before a lowercase alphabetic character, and your
> policy would be to find the start of the word, then you'd probably want to
> document the exact policy, and then code a loop to check successive
> characters (until a determining character or the end of string is found).
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Naive question on how to capitalize only the first word of a string

2017-06-19 Thread Neil Van Dyke

Welcome to Racket!

One intro-to-Racket-compared-to-some-other-languages thing I'll just say 
upfront is that you don't want to modify the string itself, not that you 
asked to.  (Not all Racket strings are mutable.  Plus, mutating 
introduces a bunch more possibilities for bugs, and for string 
operations, we usually are in the "pure functional" school of thought.  
There are rare situations in which you'll want to mutate strings, but 
that's an advanced topic, after comfortable with idiomatic Racket.)


I'm not aware of this particular procedure in base Racket, so here's one 
implementation.  Someone new to Racket might like to read through this 
procedure and try to figure out the thinking of how the language and 
standard library was used.


(define (string-capitalize str)
  (or (string? str)
  (raise-argument-error 'capitalize
"string?"
str))
  (if (equal? "" str)
  str
  (let ((first-char (string-ref str 0)))
(if (char-lower-case? first-char)
(string-append (string (char-upcase first-char))
   (substring str 1))
str

Note that this assumes that the first character of the string is also 
the first character of any first word.  If there might be whitespace or 
other non-alphabetic characters before a lowercase alphabetic character, 
and your policy would be to find the start of the word, then you'd 
probably want to document the exact policy, and then code a loop to 
check successive characters (until a determining character or the end of 
string is found).


--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Re: Naive question on how to capitalize only the first word of a string

2017-06-19 Thread Jack Firth
On Monday, June 19, 2017 at 5:12:10 PM UTC-7, Glenn Hoetker wrote:
> I'm quite new to Racket/LISP, so I hope this isn't breathtakingly obvious.  
> Can someone please tell me the best way to capitalize just the first word in 
> a multiword string.  So, given the string "it was a dark and stormy night", I 
> would like to get "It was a dark and stormy night". I see functions for 
> turning everything lower case, everything uppercase or capitalizing each 
> word, but nothing in line with what I hope to do.
> 
> > (define it "cat dog")
> > (string-titlecase it)
> "Dog Cat"  ; So close, but not quite "Dog cat" as I want.
> 
> Many thanks.

You'll want to split the string into a list of words and apply the 
capitalization function to only the first word.

(define (capitalize-first sentence-str)
  (string-join (list-update (string-split sentence-str) 0 string-titlecase)))

Disclaimer: this will do some weird things to the whitespace in sentence-str 
(e.g. convert newlines to spaces); you might want to tweak that.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Naive question on how to capitalize only the first word of a string

2017-06-19 Thread Philip McGrath
I don't think there's a library function that does what you want, so you'd
need to define your own. Here's one way to do it:

(define (capitalize-first-letter str)
  (cond
[(non-empty-string? str)
 (define first-letter-str
   (substring str 0 1))
 (define rest-str
   (substring str 1 (string-length str)))
 (string-append (string-upcase first-letter-str)
rest-str)]
[else
 ""]))

-Philip

On Mon, Jun 19, 2017 at 5:12 PM, Glenn Hoetker  wrote:

> I'm quite new to Racket/LISP, so I hope this isn't breathtakingly
> obvious.  Can someone please tell me the best way to capitalize just the
> first word in a multiword string.  So, given the string "it was a dark and
> stormy night", I would like to get "It was a dark and stormy night". I see
> functions for turning everything lower case, everything uppercase or
> capitalizing each word, but nothing in line with what I hope to do.
>
> > (define it "cat dog")
> > (string-titlecase it)
> "Dog Cat"  ; So close, but not quite "Dog cat" as I want.
>
> Many thanks.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Naive question on how to capitalize only the first word of a string

2017-06-19 Thread Glenn Hoetker
I'm quite new to Racket/LISP, so I hope this isn't breathtakingly obvious.  Can 
someone please tell me the best way to capitalize just the first word in a 
multiword string.  So, given the string "it was a dark and stormy night", I 
would like to get "It was a dark and stormy night". I see functions for turning 
everything lower case, everything uppercase or capitalizing each word, but 
nothing in line with what I hope to do.

> (define it "cat dog")
> (string-titlecase it)
"Dog Cat"  ; So close, but not quite "Dog cat" as I want.

Many thanks.


-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] RacketCon Code of Conduct

2017-06-19 Thread Jack Firth
> These are invariably motte and bailey style arguments and the notion that the 
> only reason I or anyone else could possibly resent CoCs is some desire to 
> abuse their absence is astonishing. How you could not find such groupthink 
> "censorious" is beyond my ability to sympathize with. I can only reiterate 
> that CoCs are not some kind of dealbreaker for me personally but as this is 
> an open discussion I will just say I don't think they're all benefit and no 
> cost. My disagreement on this matter does not constitute an admission of 
> guilt; to abuse a racket construct: there's a bug in your contract spec, it's 
> blaming the wrong party.

The important point is that a CoC is a choice to prioritize the safety, 
welfare, and happiness of minority groups over the privilege of individuals to 
say / do whatever they want. Sure, you might say that's a tradeoff, and sure, 
you could call that censorship, but whatever "cost" there is of hypothetically 
blaming a party inappropriately is worth paying ten times over for the benefit 
of making traditionally less-welcomed people more included. I guarantee you the 
incidents a CoC is designed to prevent occur *far* more often than any 
incidents of mis-applying the CoC to an innocent individual. Not realizing that 
is willful ignorance.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] RacketCon Code of Conduct

2017-06-19 Thread Neil Van Dyke
This is not my call, but in the traditional Racket convention of 
everyone voicing thoughts...


One gentle way to communicate awareness and intent of inclusiveness:

"The Racket community enjoys and appreciates a collegial and 
helpful atmosphere, in which everyone feels welcome.  We expect that 
everyone will have a good experience at RacketCon, and that everyone 
will help to make it a good experience for everyone else.  Any concerns 
or suggestions, small or large, please feel encouraged to approach any 
conference organizer or core Racket person."


What the above doesn't address: whether there should be a CoC explicit 
itemization of rules.  There's a breadth of thoughtful opinions on that 
question, and it's complicated.  My thoughts have changed a bit as a 
result of this thread, and a decision would seem to come down to 
balancing goals and guessing, so I'd just like to toss out a few thoughts:


* It is important to acknowledge that inclusiveness is an issue, and to 
communicate good intent about inclusiveness.  That's part of what people 
are looking for.


* Some of the CoCs that people cited in this thread included rules that 
I know *aren't* universally-accepted in broad IT conference circles.  
(One, relatively light, example: many people assume that everyone at a 
conference doesn't mind being photographed and tagged in Facebook and 
such, but I've heard from a few PL people who absolutely do mind, to the 
point that they've avoided some events for that reason.  The heavier 
examples include things like very different ideas about the 
appropriateness of "flirting" in various contexts, and different 
understandings of how discouraging unwanted attention like that can 
be.)  Whether there will be sufficient universally-accepted behavior in 
future years of RacketCon, as it hopefully grows, I don't know.


* I think that Racket is an unusually (not "usually"; typo in an earlier 
message) good community, and, AFAIK, has a good track record on 
inclusiveness.  (Though I want to see a lot more female names in "From:" 
headers on this email list!)


* I suspect Fortune 500 corporate lawyers could go either way (on CoC 
vs. welcoming statement), out of purely risk-averse intent. Racket is 
not a Fortune 500, and it is driven mostly by universities, which are 
supposed to have broadly constructive intent.


* Sometimes a gentle position is blind to problems.  In this particular 
case, I suspect we can afford gentle.


* I think this is probably a situation in which implicit high 
expectations elevate everyone.


* There's been a lot of awareness-raising in this thread, and in recent 
history of other conferences, which helps.


* In activism, some of the most encouraging stories are from when 
something was starting to go bad, but then people stepped up, with 
grace.  (Ambiguity: when is the occasion to step up, and what is the 
graceful move.)


--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] RacketCon Code of Conduct

2017-06-19 Thread Deren Dohoda
>Bluntly, if someone finds the admonition to refrain from harassment
"censorious", then it is likely they are exactly the sort of person that a
Code of Conduct is in fact *designed* to make feel unwelcome.

These are invariably motte and bailey style arguments and the notion that
the only reason I or anyone else could possibly resent CoCs is some desire
to abuse their absence is astonishing. How you could not find such
groupthink "censorious" is beyond my ability to sympathize with. I can only
reiterate that CoCs are not some kind of dealbreaker for me personally but
as this is an open discussion I will just say I don't think they're all
benefit and no cost. My disagreement on this matter does not constitute an
admission of guilt; to abuse a racket construct: there's a bug in your
contract spec, it's blaming the wrong party.

On Mon, Jun 19, 2017 at 3:31 PM, John Berry  wrote:

> The problem with the longer text, such as the Strange Loop one[1], is that
>> it's manifestly _very_ hard to come up with a text that doesn't radiate
>> censoriousness; and however much this isn't the literal implication of the
>> text, it does implant the notion that the reader or the community has
>> behaviour problems.  That text does not radiate 'you are welcome' -- it
>> tells me, 'we have so many gits roaming the corridors of our conference
>> that we have to police them'.  In its phrasing, a text like this appears to
>> presume that the reader is an undersocialised thug, who needs to be given
>> an extensive but non-exhaustive list of things to remember not to do.  One
>> has to carefully suppress one's initial reaction to it, and smile sweetly.
>
>
> Bluntly, if someone finds the admonition to refrain from harassment
> "censorious", then it is likely they are exactly the sort of person that a
> Code of Conduct is in fact *designed* to make feel unwelcome.
>
> This is a feature, not a design flaw.
>
>
>
> On Mon, Jun 19, 2017 at 9:13 PM, Stephen De Gabrielle <
> spdegabrie...@gmail.com> wrote:
>
>> I would suggest that it is more important to get a COC on the RacketCon
>> website than it is to argue over the wording. I would suggest that every
>> day that passes without a CoC on the website adds to the risk that possible
>> racketcon participants might decide not to go... to the detriment of the
>> Racket community.
>>
>> I really love how welcoming this community is - even more than I love the
>> ideas you put into or expressed with Racket. It is your greatest strength.
>>
>> Kind regards
>>
>> Stephen
>> On Mon, 19 Jun 2017 at 18:55, Norman Gray  wrote:
>>
>>>
>>> Greetings.
>>>
>>> On 19 Jun 2017, at 16:18, John Berry wrote:
>>>
>>> > Nothing about a document saying "hey, don't be an ass" implies that
>>> > the
>>> > reader themselves, or the community, are asses. Only that the
>>> > community
>>> > values not being an ass, and those who might wish to join that
>>> > community
>>> > and not be an ass are welcome, and that those who have had to deal
>>> > with too
>>> > many asses will hopefully find fewer here.
>>>
>>> If the document literally said just 'hey, don't be an ass', or 'don't be
>>> a git', or 'c'mon, behave', then that would be fine.  Perhaps it could
>>> have a footnote saying 'Surely you can tell when you're being a git --
>>> if you for some reason have difficulty with this, then see [link]'.  A
>>> text like that presumes that the reader is grown-up, but indicates, for
>>> the avoidance of doubt, that adult civility is indeed expected in the
>>> meeting.
>>>
>>> The problem with the longer text, such as the Strange Loop one[1], is
>>> that it's manifestly _very_ hard to come up with a text that doesn't
>>> radiate censoriousness; and however much this isn't the literal
>>> implication of the text, it does implant the notion that the reader or
>>> the community has behaviour problems.  That text does not radiate 'you
>>> are welcome' -- it tells me, 'we have so many gits roaming the corridors
>>> of our conference that we have to police them'.  In its phrasing, a text
>>> like this appears to presume that the reader is an undersocialised thug,
>>> who needs to be given an extensive but non-exhaustive list of things to
>>> remember not to do.  One has to carefully suppress one's initial
>>> reaction to it, and smile sweetly.
>>>
>>> Also, any text like that almost inevitably acquires a legalistic air,
>>> and just screams out for disputation, and the reddit thread...
>>>
>>> > For the unconvinced, I really appreciated Graydon Hoare's perspective
>>> > on
>>> > why he implemented the Rust CoC.
>>> > https://www.reddit.com/r/rust/comments/6ewjt5/question_
>>> > about_rusts_odd_code_of_conduct/didrult/
>>> > https://www.reddit.com/r/rust/comments/6ewjt5/question_
>>> > about_rusts_odd_code_of_conduct/dif1xvb/
>>>
>>> ...seems to corroborate this.
>>>
>>> To clarify, this remark is about communication and presentation.  The
>>> underlying wish to encourage civility 

Re: [racket-users] RacketCon Code of Conduct

2017-06-19 Thread John Berry
>
> The problem with the longer text, such as the Strange Loop one[1], is that
> it's manifestly _very_ hard to come up with a text that doesn't radiate
> censoriousness; and however much this isn't the literal implication of the
> text, it does implant the notion that the reader or the community has
> behaviour problems.  That text does not radiate 'you are welcome' -- it
> tells me, 'we have so many gits roaming the corridors of our conference
> that we have to police them'.  In its phrasing, a text like this appears to
> presume that the reader is an undersocialised thug, who needs to be given
> an extensive but non-exhaustive list of things to remember not to do.  One
> has to carefully suppress one's initial reaction to it, and smile sweetly.


Bluntly, if someone finds the admonition to refrain from harassment
"censorious", then it is likely they are exactly the sort of person that a
Code of Conduct is in fact *designed* to make feel unwelcome.

This is a feature, not a design flaw.



On Mon, Jun 19, 2017 at 9:13 PM, Stephen De Gabrielle <
spdegabrie...@gmail.com> wrote:

> I would suggest that it is more important to get a COC on the RacketCon
> website than it is to argue over the wording. I would suggest that every
> day that passes without a CoC on the website adds to the risk that possible
> racketcon participants might decide not to go... to the detriment of the
> Racket community.
>
> I really love how welcoming this community is - even more than I love the
> ideas you put into or expressed with Racket. It is your greatest strength.
>
> Kind regards
>
> Stephen
> On Mon, 19 Jun 2017 at 18:55, Norman Gray  wrote:
>
>>
>> Greetings.
>>
>> On 19 Jun 2017, at 16:18, John Berry wrote:
>>
>> > Nothing about a document saying "hey, don't be an ass" implies that
>> > the
>> > reader themselves, or the community, are asses. Only that the
>> > community
>> > values not being an ass, and those who might wish to join that
>> > community
>> > and not be an ass are welcome, and that those who have had to deal
>> > with too
>> > many asses will hopefully find fewer here.
>>
>> If the document literally said just 'hey, don't be an ass', or 'don't be
>> a git', or 'c'mon, behave', then that would be fine.  Perhaps it could
>> have a footnote saying 'Surely you can tell when you're being a git --
>> if you for some reason have difficulty with this, then see [link]'.  A
>> text like that presumes that the reader is grown-up, but indicates, for
>> the avoidance of doubt, that adult civility is indeed expected in the
>> meeting.
>>
>> The problem with the longer text, such as the Strange Loop one[1], is
>> that it's manifestly _very_ hard to come up with a text that doesn't
>> radiate censoriousness; and however much this isn't the literal
>> implication of the text, it does implant the notion that the reader or
>> the community has behaviour problems.  That text does not radiate 'you
>> are welcome' -- it tells me, 'we have so many gits roaming the corridors
>> of our conference that we have to police them'.  In its phrasing, a text
>> like this appears to presume that the reader is an undersocialised thug,
>> who needs to be given an extensive but non-exhaustive list of things to
>> remember not to do.  One has to carefully suppress one's initial
>> reaction to it, and smile sweetly.
>>
>> Also, any text like that almost inevitably acquires a legalistic air,
>> and just screams out for disputation, and the reddit thread...
>>
>> > For the unconvinced, I really appreciated Graydon Hoare's perspective
>> > on
>> > why he implemented the Rust CoC.
>> > https://www.reddit.com/r/rust/comments/6ewjt5/question_
>> > about_rusts_odd_code_of_conduct/didrult/
>> > https://www.reddit.com/r/rust/comments/6ewjt5/question_
>> > about_rusts_odd_code_of_conduct/dif1xvb/
>>
>> ...seems to corroborate this.
>>
>> To clarify, this remark is about communication and presentation.  The
>> underlying wish to encourage civility is entirely laudable, and the
>> experience of being on the wrong end of careless or careful incivility
>> would be entirely unpleasant and deplorable, and a conference should aim
>> to discourage such incivility by any available effective mechanisms.
>>
>> If, after all, the only effective mechanism is a rule-book such as is
>> being discussed, then can I commend the FreeBSD code [2] which I think
>> communicates the underlying goals very well, even though it's primarily
>> intended to cover behaviour online, rather than face-to-face.  To my ear
>> it benefits from a very slightly old-fashioned air, including the rather
>> old-fashioned implication that 'we're sure this stuff doesn't really
>> need to be said, but since you ask...'
>>
>> Best wishes,
>>
>> Norman
>>
>>
>> [1] https://www.thestrangeloop.com/policies.html
>> [2] https://www.freebsd.org/internal/code-of-conduct.html
>>
>> --
>> Norman Gray  :  https://nxg.me.uk
>> SUPA School of Physics and Astronomy, University of 

Re: [racket-users] RacketCon Code of Conduct

2017-06-19 Thread Stephen De Gabrielle
I would suggest that it is more important to get a COC on the RacketCon
website than it is to argue over the wording. I would suggest that every
day that passes without a CoC on the website adds to the risk that possible
racketcon participants might decide not to go... to the detriment of the
Racket community.

I really love how welcoming this community is - even more than I love the
ideas you put into or expressed with Racket. It is your greatest strength.

Kind regards

Stephen
On Mon, 19 Jun 2017 at 18:55, Norman Gray  wrote:

>
> Greetings.
>
> On 19 Jun 2017, at 16:18, John Berry wrote:
>
> > Nothing about a document saying "hey, don't be an ass" implies that
> > the
> > reader themselves, or the community, are asses. Only that the
> > community
> > values not being an ass, and those who might wish to join that
> > community
> > and not be an ass are welcome, and that those who have had to deal
> > with too
> > many asses will hopefully find fewer here.
>
> If the document literally said just 'hey, don't be an ass', or 'don't be
> a git', or 'c'mon, behave', then that would be fine.  Perhaps it could
> have a footnote saying 'Surely you can tell when you're being a git --
> if you for some reason have difficulty with this, then see [link]'.  A
> text like that presumes that the reader is grown-up, but indicates, for
> the avoidance of doubt, that adult civility is indeed expected in the
> meeting.
>
> The problem with the longer text, such as the Strange Loop one[1], is
> that it's manifestly _very_ hard to come up with a text that doesn't
> radiate censoriousness; and however much this isn't the literal
> implication of the text, it does implant the notion that the reader or
> the community has behaviour problems.  That text does not radiate 'you
> are welcome' -- it tells me, 'we have so many gits roaming the corridors
> of our conference that we have to police them'.  In its phrasing, a text
> like this appears to presume that the reader is an undersocialised thug,
> who needs to be given an extensive but non-exhaustive list of things to
> remember not to do.  One has to carefully suppress one's initial
> reaction to it, and smile sweetly.
>
> Also, any text like that almost inevitably acquires a legalistic air,
> and just screams out for disputation, and the reddit thread...
>
> > For the unconvinced, I really appreciated Graydon Hoare's perspective
> > on
> > why he implemented the Rust CoC.
> > https://www.reddit.com/r/rust/comments/6ewjt5/question_
> > about_rusts_odd_code_of_conduct/didrult/
> > https://www.reddit.com/r/rust/comments/6ewjt5/question_
> > about_rusts_odd_code_of_conduct/dif1xvb/
>
> ...seems to corroborate this.
>
> To clarify, this remark is about communication and presentation.  The
> underlying wish to encourage civility is entirely laudable, and the
> experience of being on the wrong end of careless or careful incivility
> would be entirely unpleasant and deplorable, and a conference should aim
> to discourage such incivility by any available effective mechanisms.
>
> If, after all, the only effective mechanism is a rule-book such as is
> being discussed, then can I commend the FreeBSD code [2] which I think
> communicates the underlying goals very well, even though it's primarily
> intended to cover behaviour online, rather than face-to-face.  To my ear
> it benefits from a very slightly old-fashioned air, including the rather
> old-fashioned implication that 'we're sure this stuff doesn't really
> need to be said, but since you ask...'
>
> Best wishes,
>
> Norman
>
>
> [1] https://www.thestrangeloop.com/policies.html
> [2] https://www.freebsd.org/internal/code-of-conduct.html
>
> --
> Norman Gray  :  https://nxg.me.uk
> SUPA School of Physics and Astronomy, University of Glasgow, UK
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
-- 
Kind regards,
Stephen
--

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] RacketCon Code of Conduct

2017-06-19 Thread Norman Gray


Greetings.

On 19 Jun 2017, at 16:18, John Berry wrote:

Nothing about a document saying "hey, don't be an ass" implies that 
the
reader themselves, or the community, are asses. Only that the 
community
values not being an ass, and those who might wish to join that 
community
and not be an ass are welcome, and that those who have had to deal 
with too

many asses will hopefully find fewer here.


If the document literally said just 'hey, don't be an ass', or 'don't be 
a git', or 'c'mon, behave', then that would be fine.  Perhaps it could 
have a footnote saying 'Surely you can tell when you're being a git -- 
if you for some reason have difficulty with this, then see [link]'.  A 
text like that presumes that the reader is grown-up, but indicates, for 
the avoidance of doubt, that adult civility is indeed expected in the 
meeting.


The problem with the longer text, such as the Strange Loop one[1], is 
that it's manifestly _very_ hard to come up with a text that doesn't 
radiate censoriousness; and however much this isn't the literal 
implication of the text, it does implant the notion that the reader or 
the community has behaviour problems.  That text does not radiate 'you 
are welcome' -- it tells me, 'we have so many gits roaming the corridors 
of our conference that we have to police them'.  In its phrasing, a text 
like this appears to presume that the reader is an undersocialised thug, 
who needs to be given an extensive but non-exhaustive list of things to 
remember not to do.  One has to carefully suppress one's initial 
reaction to it, and smile sweetly.


Also, any text like that almost inevitably acquires a legalistic air, 
and just screams out for disputation, and the reddit thread...


For the unconvinced, I really appreciated Graydon Hoare's perspective 
on

why he implemented the Rust CoC.
https://www.reddit.com/r/rust/comments/6ewjt5/question_
about_rusts_odd_code_of_conduct/didrult/
https://www.reddit.com/r/rust/comments/6ewjt5/question_
about_rusts_odd_code_of_conduct/dif1xvb/


...seems to corroborate this.

To clarify, this remark is about communication and presentation.  The 
underlying wish to encourage civility is entirely laudable, and the 
experience of being on the wrong end of careless or careful incivility 
would be entirely unpleasant and deplorable, and a conference should aim 
to discourage such incivility by any available effective mechanisms.


If, after all, the only effective mechanism is a rule-book such as is 
being discussed, then can I commend the FreeBSD code [2] which I think 
communicates the underlying goals very well, even though it's primarily 
intended to cover behaviour online, rather than face-to-face.  To my ear 
it benefits from a very slightly old-fashioned air, including the rather 
old-fashioned implication that 'we're sure this stuff doesn't really 
need to be said, but since you ask...'


Best wishes,

Norman


[1] https://www.thestrangeloop.com/policies.html
[2] https://www.freebsd.org/internal/code-of-conduct.html

--
Norman Gray  :  https://nxg.me.uk
SUPA School of Physics and Astronomy, University of Glasgow, UK

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] RacketCon Code of Conduct

2017-06-19 Thread John Berry
I will always 100% support the adoption of a CoC drafted by people with
experience in dealing with discrimination, harassment, and toxic behaviour.
It is impossible to understate just how much gets swept under the rug
without one, and increasingly, the lack of one itself tends to attract
toxic people who use terms like "virtue signalling" unironically.

The GFW/Strange Loop CoC is well worn and considered and would be as good
as any we'd be liable to come up with ourselves.

Nothing about a document saying "hey, don't be an ass" implies that the
reader themselves, or the community, are asses. Only that the community
values not being an ass, and those who might wish to join that community
and not be an ass are welcome, and that those who have had to deal with too
many asses will hopefully find fewer here.

For the unconvinced, I really appreciated Graydon Hoare's perspective on
why he implemented the Rust CoC.
https://www.reddit.com/r/rust/comments/6ewjt5/question_
about_rusts_odd_code_of_conduct/didrult/
https://www.reddit.com/r/rust/comments/6ewjt5/question_
about_rusts_odd_code_of_conduct/dif1xvb/

On Fri, Jun 16, 2017 at 9:44 PM, Leif Andersen 
wrote:

> RacketCon 2017 should have a code of conduct, as pointed out by Claire on
> twitter [1], and I absolutely agree. It doesn't have to be anything fancy,
> and can be a fairly standard one.
>
> Although we are not co-located with Strange Loop this year, they have a
> fairly sensible one that we could use [2], which is adapted from the one
> from the geek feminism wiki [3].
>
> Does anyone have any opinions on what we use? I would also be happy to add
> it to the RacketCon web page.
>
> [1]: https://twitter.com/chckadee/status/874345544977707008
> [2]: https://www.thestrangeloop.com/policies.html
> [3]: https://geekfeminism.org/about/code-of-conduct/
>
> ~Leif Andersen
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.