1. 26

    Very similar story from a few weeks ago: SQLite is not a toy database – I won’t repeat my full comment from there.

    SQLite is very fast. [..] The only time you need to consider a client-server setup is: [..] If you’re working with very big datasets, like in the terabytes size. A client-server approach is better suited for large datasets because the database will split files up into smaller files whereas SQLite only works with a single file.

    SQLite is pretty fast compared to fopen(), sure, but PostgreSQL (and presumably also MariaDB) will beat it in performance in most cases once you get beyond the select * from tbl where [..], sometimes by a considerable margin. This is not only an issue with “terabytes” of data. See e.g. these benchmarks.

    Is it fast enough for quite a few cases? Sure. But I wouldn’t want to run Lobsters on it, to name an example, and it’s not like Lobsters is a huge site.

    Well, first of all, all database administration tasks becomes much easier. You don’t need any database account administration, the database is just a single file.

    Except if you want to change anything about your database schema. And PostgreSQL also comes with a great deal of useful administrative tools that SQLite lacks AFAIK, like the pg_stats tables, tracking of slow queries, etc.

    And sure, I like SQLite. I think it’s fantastic. But we need to be a tad realistic about what it is and isn’t. I also like my aeropress but I can’t boil an egg with it.

    1. 9

      SQLite is pretty fast compared to fopen(), sure, but […] MariaDB will beat it in performance

      I would actually be interested in knowing whether SQLite handles that query that broke Lobste.rs’ “Replies” feature better than MySql/MariaDb.

      But I wouldn’t want to run Lobsters on it, to name an example, and it’s not like Lobsters is a huge site.

      I think Lobste.rs would run fine. It would probably be more an issue with the limited amount of SQL SQLite supports.

      1. 7

        The replies query broke because the hosted MySQL Lobste.rs relies on doesn’t do predicate push down. SQLite does do predicate push down, so it wouldn’t have the same problem.

        However SQLite doesn’t have as many execution strategies as MySQL, so it may be missing a key strategy for that query.

        1. 5

          SQLite’s query planner is honestly a bit smarter than MySQL’s in certain ways. For example, MySQL, as recently as 2017, did temporary on-disk tables for subselects. SQLite instead usually managed to convert them to joins. Maybe that’s been fixed in the last four years, but I wouldn’t assume that MySQL would be faster/that SQLite would be slower.

        2. 1

          Lobsters uses some fairly complex queries; usually those kind of things tend to do less well on SQLite, although I didn’t run any benchmarks or anything. I found that SQL support in SQLite is actually pretty good and don’t necessarily expect that to be a major issue.

          From what I understand is that the biggest problem with the Lobsters hosting is that it’s running MySQL rather than MariaDB. While MySQL is still being actively developed, from what I can see it’s not developed very actively and MariaDB is leaps ahead of MySQL. At this point we should probably stop grouping them together as “MySQL/MariaDB”.

          1. 1

            Aside from the operations perspective of migrating data, converting things that are not 1:1 between mysql and mariadb, etc. are there any features in lobste.rs that prevent the use of MariaDB?

            1. 1

              It used to run on MariaDB until there was a handover of the servers. AFAIK it runs well on both (but not PostgreSQL, and probably also not SQLite).

              1. 1

                I guess their current hoster only provides MySql (for unknown reasons).

                I asked about offering hosting, but never got a reply.

          2. 12

            I also like my aeropress but I can’t boil an egg with it.

            I bet you could poach an egg with it, with some inventiveness and a slightly severe risk of getting scalded. ;)

            1. 3

              When I posted that comment I was thinking to myself “I bet some smartarse is going to comment on that” 🙃

              1. 2

                Joking aside, I think a better analogy would be comparing the Aeropress to an espresso machine: the Aeropress is going to get you really good coffee that you’re going to use every day, costs very little, is easy to maintain, and you can bring with you everywhere, but it’s never going to give you an espresso. But then again, it’s not really trying to.

                (The analogy falls apart a bit, as one of the original claims was that it could produce espresso. I think they stopped claiming that though.)

              2. 1

                LOL

                …and audible laughter was emitted. Thanks for that.

                1. 1

                  On the other hand if you had to set up and supply your password to obtain admin rights every time you just wanted to make coffee….

                  …because some nutjob might want to use it for boiling eggs and the company wanted to stop that….

                  …the device that just let’s you get on with making coffee (or boiling eggs) is a hellavuh lot faster for many jobs!

                2. 5

                  Except if you want to change anything about your database schema.

                  SQLite has supported ALTER TABLE ADD COLUMN for years, and recently added support for dropping columns. So I’d amend your statement to “…make complex changes to your db schema.”

                  SQLite has stats tables, mostly for the query optimizer’s own use; I haven’t looked into them so I don’t know how useful they are for human inspection.

                  1. 2

                    SQLite has supported ALTER TABLE ADD COLUMN for years, and recently added support for dropping columns. So I’d amend your statement to “…make complex changes to your db schema.”

                    Yeah, the drop column is a nice addition, but it’s still a pain even for some fairly simple/common changes like renaming a column, changing a check constraint, etc. I wouldn’t really call these complex changes. It’s less of a pain than it was before, but still rather painful.

                    SQLite has stats tables, mostly for the query optimizer’s own use; I haven’t looked into them so I don’t know how useful they are for human inspection.

                    As far as I could find a while ago there’s nothing like PostgreSQL’s internal statistics. For example keeping track of things like number of seq scans vs. index scans. You can use explain query plan of course, but query plans can differ based on which parameters are used, table size, etc. and the query planner may surprise you. It’s good to keep a bit of an eye on these kind of things for non-trivial cases. Things like logging slow queries is similarly useful, and AFAIK not really something you can do in SQLite (although you can write a wrapper in your application).

                    None of these are insurmountable problems or show-stoppers, but as I mentioned in my other comment from a few weeks ago, overall I find the PostgreSQL experience much smoother, at the small expense of having to run a server.

                    1. 6

                      it’s still a pain even for some fairly simple/common changes like renaming a column

                      https://sqlite.org/lang_altertable.html :

                      ALTER TABLE RENAME COLUMN The RENAME COLUMN TO syntax changes the column-name of table table-name into new-column-name. The column name is changed both within the table definition itself and also within all indexes, triggers, and views that reference the column.

                1. 7

                  Really good one. I got interested in Go immediately in 2009, contributed pre-1.0, been using it professionally for 6 years now, and still learned two things here: about the iota counting behavior, and that reading from nil maps is ok.

                  As to something that could possibly be added to the article, the best pitfall of Go that comes to my mind is the value-receiver data race, as described by Dave Cheney. Took me a long while to grasp what’s going on, and is really subtle.

                  1. 1

                    Is it because the channel is getting copied?

                    1. 3

                      I think it’s that compute() ‘owns’ rpc and might be writing to it at the same time the following line is (implicitly) copying rpc onto the stack to serve as a value receiver. It’d still be a race if the sync stuff were located outside the struct; the only important thing is something might be messing with the struct in another thread while you call one of its methods that has a value receiver.

                      It’s not a race when version() has a pointer receiver only because version() doesn’t access anything that compute() is messing with (since it doesn’t access anything at all!).

                      1. 2

                        Yep, the sneaky thing is that calling a value-receiver method is implicitly a “read” of the receiver object due to the need to copy it (even if the receiver value is ostensibly ignored, as in this case, a copy is apparently still being made). I spoiled it somewhat by how I titled the link; if I saw such code in a code review before reading this article, I would not connect the dots and realize that calling a value receiver triggers an implicit read from data race point of view.

                      2. 2

                        I found this explanation on the golang-nuts list: https://groups.google.com/g/golang-nuts/c/gJtXQhpoA4U/m/Atlm2IHVCAAJ

                    1. 8

                      @rui314 has been doing some pretty interesting projects recently (also mold: https://github.com/rui314/mold). Is this some fun retirement period they is enjoying?

                      1. 23

                        Yes. After working for Google for 12 years, I decided to leave to pursue my personal interest.

                        1. 7

                          Your READMEs are excellent. I’ve never read any so captivating.

                          1. 2

                            ruiu, I’d love to be able to pre-order your compiler book or sign up for a mailing list (or follow an RSS feed) to let me know when it’s ready.

                            1. 3

                              The chibicc README has instructions on signing up for notifications.

                            2. 2

                              Hi @ruiu - quick question. Will your compiler send each phase to a separate process or will the compiler be a single process.

                              Just curious - no strong opinion on this.

                              1. 2

                                It’s a single process just like other compilers are.

                              2. 2

                                Remarkable, thanks for sharing your research

                            1. 8

                              She didn’t actually solve the part of the problem that involves printing the result of the fizzbuzz calculation for each of the numbers from 1 to 100 — she just wrote the logic to calculate fizzbuzz for a given number.

                              1. 1
                                #include <stdio.h>
                                const int N = 100;
                                #define F(m, x) for (int i = m; i <= N; i += m) x
                                int main(void) {
                                  char fb[N + 1][10];
                                  F(1, sprintf(fb[i], "%d", i));
                                  F(3, sprintf(fb[i], "Fizz"));
                                  F(5, sprintf(fb[i], "Buzz"));
                                  F(15, sprintf(fb[i], "FizzBuzz"));
                                  F(1, printf("%s\n", fb[i]));
                                }
                                
                                1. 3

                                  Nice concept and write-up!

                                  Tangent: what did you use to make the plots/charts?

                                  1. 3

                                    Thanks man. I used PopSQL. There is also a link and a mention at the top of the article.

                                    https://popsql.com/queries/-MECQV6GiKr04WdCWM0K/simple-anomaly-detection-with-sql?access_token=2d2c0729f9a1cfa7b6a2dbb5b0adb45c

                                  1. 13

                                    Rule of five: Take five samples. You can be 93% confident the median is between your five samples.

                                    1. 2

                                      Assuming your data is normally distributed? Best make that explicit if so.

                                      1. 15

                                        No, the rule applies to 5 random samples from any distribution.

                                        Douglas W. Hubbard, How to Measure Anything (3rd ed.):

                                        There is a 93.75% chance that the median of a population is between the smallest and largest values in any random sample of five from that population.

                                        It might seem impossible to be 93.75% certain about anything based on a random sample of just five, but it works. To understand why this method works, it is important to note that the Rule of Five estimates only the median of a population. Remember, the median is the point where half the population is above it and half is below it. If we randomly picked five values that were all above the median or all below it, then the median would be outside our range. But what is the chance of that, really?

                                        The chance of randomly picking a value above the median is, by definition, 50%—the same as a coin flip resulting in “heads.” The chance of randomly selecting five values that happen to be all above the median is like flipping a coin and getting heads five times in a row. The chance of getting heads five times in a row in a random coin flip is 1 in 32, or 3.125%; the same is true with getting five tails in a row. The chance of not getting all heads or all tails is then 100% − 3.125% × 2, or 93.75%. Therefore, the chance of at least one out of a sample of five being above the median and at least one being below is 93.75% (round it down to 93% or even 90% if you want to be conservative).

                                        1. 5

                                          Cool! But just keep in mind, if we don’t know the underlying distribution, the mean (and mode) could be far from the median value. A normal distribution is the special case where median, median, and mode coincide. Log-normal data are pretty common too, but often people don’t have as good an intuition for these distributions since they aren’t as popularized. And then there are multi-modal distributions…

                                          Still, a good trick to know. Thanks!

                                          1. 3

                                            Thanks. That book is where I learned it from as well.

                                            It also has the Single Sample Majority Rule: Pick one sample. Probability is 75% that you picked it from the majority.

                                            I don’t find that rule that useful though. At least, I haven’t found any practical use for it yet. The book describes an academic urn experiment and suggests betting in bars. First, 75% is somewhat low to make decisions on (but the 93% above is good). Second,“majority” might be anything between 50%+1 and 100%.

                                            The general point of that part of the book is that even very small samples can reduce uncertainty significantly. That is a good lesson. For example, no matter how big the codebase, you could randomly pick one or five source files and apply the two rules to learn something about the project if you know nothing yet.

                                      1. 5

                                        A mathematician friend once suggested that starting with limits is bad, but so is starting with derivatives. He proposed we start with integrals, as they’re more conceptually intuitive for beginners. Then you introduce limits and derivatives as tools for doing integrals.

                                        1. 4

                                          Beyond HS algebra & trig, most of the math I know I’ve learned on my own, from books. Bartlett’s Calculus from the Ground Up is the only calculus book that ever made sense to me. It basically starts with differentials [1] (after a brief discussion of derivatives).

                                          [1] Jonathan Bartlett, “Simplifying and Refactoring Introductory Calculus” (https://arxiv.org/abs/1811.03459)

                                          1. 1

                                            I haven’t read the article yet, but I think that limits are not necessarily hard to grasp. I think most people would grasp it pretty quickly when then are presented with a time-distance graph and the task to find the speed at some point.

                                            The plus side of starting with limits is that it’s easier to define everything right from the start (which might or might not be important – I personally think this is not needed in most cases that are not a formal presentation that is as short as possible).

                                            Edit: Read the article… After reading the article I’m still not really sure how you would define derivatives, prove the product rule, etc. without limits. I would be really interested to see how it can be teached without introducing limits first.

                                            1. 1

                                              I’ve seen that perspective before, that Apostol got it right in 1967 and everyone else got it wrong.

                                            1. 5

                                              A simpler and easier way to calculate the day of the week for any date is the First Sunday Doomsday algorithm: http://firstsundaydoomsday.blogspot.com/2009/12/quick-start-guide.html

                                              (There’s also a earn-by-example page: http://firstsundaydoomsday.blogspot.com/2011/01/learn-by-example.html)

                                              Using Sundays rather than doomsdays simplifies the arithmetic. Another improvement the above approach incorporates is the odd+11 rule for calculating the year code.

                                              Also, here’s an easier method I created to determine if a year is a leap year:

                                              If the last two digits of the year are 00, throw them away and keep only the first two digits. Otherwise, keep only the last two digits. The year is a leap year if what you kept is divisible by 4.

                                              Examples:

                                              • The year 1705 does not end in 00, so throw away 17 and keep 05. 05 is not divisible by 4, so 1705 is not a leap year.

                                              • The year 2000 ends in 00, so throw away 00 and keep 20. 20 is divisible by 4, so 2000 is a leap year.

                                              The standard method [2] is more complicated:

                                              Years that are divisible by four are leap years, with the exception of years that are divisible by 100, which are not leap years, and with the final exception of years divisible by 400, which are.

                                              [1] https://twitter.com/jordancurve/status/1012203999716618240

                                              [2] https://www.theguardian.com/science/2011/feb/28/leap-year-alex-bellos

                                              1. 1

                                                Thanks a lot! I have been using the standard doomsday method for years and I find it very easy to use. However, I can also see the simplicity of the First Sunday Doomsday method, so I’ma give it a try. Thanks for the links!

                                                1. 1

                                                  PS: The Guardian article about leap years says:

                                                  The following rule, devised recently by British maths brainiac Adam P Goucher, is much cleverer: years divisible by 128 are not a leap year, otherwise years divisible by four are a leap year.

                                                  I cannot easily divide by 128, but: 1900/128 = 14.84375 and 1900/4 = 475, so according to the rule above year 1900 should be a leap year. What am I missing?

                                                  1. 2

                                                    I think their check for divisibility by 128 is meant to short circuit if true, i.e.:

                                                    is_leap_year = (if year % 128 == 0 then false else year % 4 == 0 end)

                                                    1. 2

                                                      I still had troubles understanding this because my premise all along was that it is a leap year test that is plugin-compatible with our 4/100/400 rule. Reading https://www.inverse.com/article/12152-how-to-make-a-better-leap-year-with-math I now see that this premise is false. They are talking about inventing an entirely new leap year system, not about easily checking which years in our current system that are leap years.

                                                      1. 2

                                                        PS: I like the following quote from the article:

                                                        Admittedly, calculating what year makes for every 128 years isn’t the easiest, so Parker takes it one step further, suggesting we just write all our years in binary. If the last seven digits of a binary year are zeros, then we skip the leap year. This year is 11111100000 in binary, so we’re good.

                                                        :)

                                                1. 1

                                                  Zweig Media’s JS-based linear programming solver has been available on the web since 2007: https://www.zweigmedia.com/simplex/simplex.php?lang=en

                                                  1. 1

                                                    Oh thanks, will check it out. Any idea about how it compares to alternatives, functionality and speed wise etc?

                                                    1. 1

                                                      No, but if you learn anything on that front, I’d be interested to hear about it.

                                                  1. 1

                                                    I wonder what Android app the author was using; I’ve used GoodBudget for several years and love it so much that I happily pay $45 each year to support the company.

                                                    1. 3

                                                      Does that export data into a sane format that other things can use? It seems like the author’s concern was about having portable data that can easily be migrated to a new platform and back out when that new platform stops being a thing, for example.

                                                      1. 2

                                                        Indeed, it exports to CSVs that I was easily able to import into a spreadsheet.

                                                      2. 1

                                                        How does GoodBudget compare to YNAB for your use-case?

                                                        1. 2

                                                          Does YNAB have a Web app too? GoodBudget has a very nice one.

                                                      1. 2

                                                        Not a lot discussion going on there. None of the stories on the front page have any comments.

                                                        1. 3

                                                          I turns out this problem has one more solution… I didn’t even know it existed until one of my colleagues came back to his desk with a shocked look on his face and announced he had just interviewed the best candidate he’d ever seen.

                                                          It doesn’t reflect well on Google for their interviewers to be ignorant of the optimal solution to their own problem.

                                                          1. 2

                                                            I completely disagree. I think that’s absolutely fine. Nobody in the world knows the optimal solution to any of the real world problems Google faces. Working in software is not about finding the optimal solution to problems, and it’s certainly not about suggesting solutions until someone goes ‘yes that’s optimal’ then stopping. What’s wrong with the interviewer not knowing the optimal solution? Does that take away from the process in any way?

                                                            1. 1

                                                              Effective software development interviews use toy problems with known answers rather than research problems with unknown answers. This is because a candidate’s answers to the latter do not provide a reliable indicator of the candidate’s ability to develop software.

                                                              1. 1

                                                                I completely and utterly disagree. I think the ability to solve toy problems with known answers has nothing at all to do with someone’s competency as a developer.

                                                                1. 1

                                                                  Say a candidate is unable to solve FizzBuzz. Does that give you any indication of whether or not they can program?

                                                                  1. 1

                                                                    If someone can’t solve FizzBuzz they can’t solve real problems either.

                                                                    1. 1

                                                                      How does that not contradict what you wrote earlier (about the ability to solve toy problems having nothing to do with competence)?

                                                                      1. 1

                                                                        Because that was obviously intended to be interpreted as ‘the ability to solve toy problems does not demonstrate competence’

                                                                  2. 1

                                                                    Replying here, because below you said you meant to say this:

                                                                    the ability to solve toy problems does not demonstrate competence

                                                                    Filtering out incompetent applicants is valuable.

                                                                    1. 1

                                                                      I couldn’t give two shits about whether people use toy problems.

                                                                      My response was to:

                                                                      Effective software development interviews use toy problems with known answers rather than research problems with unknown answers. This is because a candidate’s answers to the latter do not provide a reliable indicator of the candidate’s ability to develop software.

                                                                      That is what I disagree with.

                                                                      1. 1

                                                                        You have not explained how a candidate’s answer to a research problem provides a reliable indicator of their ability to develop software.

                                                                        1. 1

                                                                          Yes I have.

                                                            1. 3

                                                              I think this also works: Pick longitude (0, pi). pick another angle (0, 2pi) for latitude and scale by sqrt(u) to avoid bunching at the poles. Pick radius (0,1) and scale by cube(u).

                                                              1. 2

                                                                What does the symbol u represent? And why doesn’t longitude run from 0 to 2π and latitude from 0 to π, instead of the other way around (as you have it)? The span of longitude should be bigger because it goes all the way around the sphere, while latitude just goes 1/2 of the way (from top to bottom).

                                                                1. 2

                                                                  u is a randomly generated variable between zero and one. I think tedu mixed up longitude and latitude (he wouldn’t be the first one).

                                                                2. 1

                                                                  Is this different from picking a random point in the spherical coordinate box and converting it to Cartesian ones?

                                                                  1. 3

                                                                    You can’t naively pick random spherical coordinators because they will clump together near the origin and around the poles.

                                                                1. 42

                                                                  Although I think the author does point out some very valid weaknesses in CoCs, both theoretically and in how they are currently implemented, I think the author overlooks, or chooses not to address, a few important points in favor of CoCs.

                                                                  The largest factor to me is that, regardless of any particular problems with CoCs, the choice to not have a CoC has, in many cases, become a sort of dogwhistle for events that are explicitly inclusive of harassers, and have no intention of running a broadly welcoming event. In essence, the choice to not have a CoC these days is tantamount to an open invitation to the worst of the people in our industry. That’s not to say that good people don’t also attend these events, or even that the organizers are knowingly trying to create that sort of environment, but ignorance of the message you’re sending doesn’t necessarily change the message itself.

                                                                  I also think the author is getting rather bogged down in the nitty gritty specifics of the language of the CoC. As a community organizer and moderator, I do find having specific CoC terms useful from time-to-time, but by and large the goal I think a CoC is less about rules and more about values. A CoC as a statement of community values can serve two important purposes:

                                                                  First, a CoC can help a community manage and be intentional about it’s growth. Small communities may not see any need for a CoC, because in small groups there is often enough social pressure to prevent toxic jerks from dominating the community, but as a community grows and the social graph becomes less fully connected, the opportunities for toxic and abusive corners of the community to appear, and without intentionally managing these, an entire community can devolve. The CoC in this case can provide a shared vision for the values of the community and help to slow the festering of some of these more toxic community elements.

                                                                  Second, a CoC lets members outside of the community know what the shared value of a community are, and helps people to make an informed decision about whether their values align with the community, and if the community is worth engaging with.

                                                                  1. 28

                                                                    Thanks for a thoughtful response to the submission. :)

                                                                    A few thoughts:

                                                                    In essence, the choice to not have a CoC these days is tantamount to an open invitation to the worst of the people in our industry.

                                                                    I would suggest that that status, and the dogwhistle effect you mentioned earlier, is perhaps due just as much to repeated memes about coded messaging and hostility as any of the actual behavior in those communities. At some point, repeated public shaming starts to create pathological behavior on its own.

                                                                    I also think the author is getting rather bogged down in the nitty gritty specifics of the language of the CoC.

                                                                    The issue is that, if you expect fair enforcement of rules, you need to use language as clearly as possible. I understand your viewpoint (of CoC as values and not as rules documents) doesn’t take that approach, but for a great many folks a Code of Conduct is taken at face value to be a “Hey, if you do , then happens, so please consider instead.”

                                                                    a CoC lets members outside of the community know what the shared value of a community are

                                                                    The problem with treating CoC as signalling documents is that it undermines their efficiency as behavior guidelines (because you have to include language and statements whose purpose is aligned more with value expression than on expressing permissible behavior). Separating the “rules” documents (“hey folks, if you harass somebody, you will be ejected”) from the “values” documents (“we believe that everybody should be secure all the time”) lets a community be more explicit in both areas.

                                                                    Secondarily, I’d argue that the great benefit of technology is that it works regardless of the value and belief systems of the folks using it. Both a Marxist and a libertarian can sit down at, say, a numerical methods conference on optimization and expect to find something useful for planning out resource expenditure. Neonazis and Antifa both benefit from a good lightning talk on OPSEC. Both Republican and Democrat workers benefit from sharing knowledge about how to use AWS properly.

                                                                    Using a CoC to try and shoo away folks who have ideological differences runs directly counter to the free exchange of ideas, and serves to limit the utility of those communities by ostracizing others. If we lived in a world where, say, you could point to somebody and say that “This person is a Nazi” with 99.999% accuracy, maybe I’d feel differently–but abuse of terms and the public square by overzealous if well-meaning people (some of whom are even users on this site!) has caused me to severely doubt the reliability of our mechanisms.

                                                                    1. 21

                                                                      Thanks for your thoughts as well. A few follow-on thoughts to your notes:

                                                                      I would suggest that that status, and the dogwhistle effect you mentioned earlier, is perhaps due just as much to repeated memes about coded messaging and hostility as any of the actual behavior in those communities. At some point, repeated public shaming starts to create pathological behavior on its own.

                                                                      I think there’s probably some truth to this, especially the problems with public shaming. There is an unfortunate tendency to shame people in a way that I think makes them double-down on problematic behaviors. That aside, I don’t think we can ignore the effects of something, dog whistling in this case, regardless of it’s original cause.

                                                                      The issue is that, if you expect fair enforcement of rules, you need to use language as clearly as possible. I understand your viewpoint (of CoC as values and not as rules documents) doesn’t take that approach, but for a great many folks a Code of Conduct is taken at face value to be a “Hey, if you do , then happens, so please consider instead.”

                                                                      Writing clear rules intended to be taken literally that cover all forms of potentially allowed and disallowed behavior is essentially a fools errand. Ultimately there must be some human arbiters of behavior that will have to interpret the intention of the rules, look at the behavior, and decide if a violation occurred. You’re basically talking about a miniature domains-specific legal problem here, and if you look at the complexity of most modern legal systems it’s clear that you can’t really have a clearly written exact set of rules that will apply without human interpretation.

                                                                      I do agree with your suggestion that having a separate rules and values document can help. In the communities that I help moderate we do exactly that- we have a set of rules that are more specific, and have specific consequences, along with a broader values document that outlines the types of behavior we want to see, and how people should behave. The rules document still requires some level of human judgement.

                                                                      Secondarily, I’d argue that the great benefit of technology is that it works regardless of the value and belief systems of the folks using it. Both a Marxist and a libertarian can sit down at, say, a numerical methods conference on optimization and expect to find something useful for planning out resource expenditure. Neonazis and Antifa both benefit from a good lightning talk on OPSEC. Both Republican and Democrat workers benefit from sharing knowledge about how to use AWS properly. Using a CoC to try and shoo away folks who have ideological differences runs directly counter to the free exchange of ideas, and serves to limit the utility of those communities by ostracizing others. If we lived in a world where, say, you could point to somebody and say that “This person is a Nazi” with 99.999% accuracy, maybe I’d feel differently–but abuse of terms and the public square by overzealous if well-meaning people (some of whom are even users on this site!) has caused me to severely doubt the reliability of our mechanisms.

                                                                      This is one set of values, but I think it’s not the only one. There’s a place for venues that are focused on allowing all people regardless of ideology or background, but it’s perfectly reasonable to want to run or participate in other types of communities.

                                                                      In communities that I moderate, I am unapologetically uninterested in excluding some ideologies. Ultimately, there are some ideologies that simply cannot coexist, and focusing on equalizing them just favors the more aggressive of the ideologies. I’m okay with excluding Nazis, because the alternative is to exclude people who are targeted by Nazis. This is one of the ways a CoC can help signal values- by being explicit about the values of the community it is quite quickly clear on which side of this particular chasm an organizations values fall.

                                                                      1. 14

                                                                        In communities that I moderate, I am unapologetically uninterested in excluding some ideologies. Ultimately, there are some ideologies that simply cannot coexist, and focusing on equalizing them just favors the more aggressive of the ideologies. I’m okay with excluding Nazis, because the alternative is to exclude people who are targeted by Nazis. This is one of the ways a CoC can help signal values- by being explicit about the values of the community it is quite quickly clear on which side of this particular chasm an organizations values fall.

                                                                        Exactly. There’s always the “why can’t you be tolerant of my (intolerant) views???” mock innocence, or the “don’t be so easily offended, it was just a joke” mock confusion.

                                                                        1. 13

                                                                          There’s a place for venues that are focused on allowing all people regardless of ideology or background, but it’s perfectly reasonable to want to run or participate in other types of communities.

                                                                          Yet, regrettably, the attempt to run those venues gets a great of slander and libel about dogwhistling–as you yourself point out earlier. So, clearly, there isn’t a place for them, if they don’t wish to be tarred by folks who feel they aren’t sufficiently repressing some outgroup.

                                                                          I’m okay with excluding Nazis, because the alternative is to exclude people who are targeted by Nazis.

                                                                          You could exclude neither, and let them sort it out themselves elsewhere. Indeed, seeing each other in a context that doesn’t constantly reinforce their ideology might serve to build bridges and mellow both sides–and while your example is a bit stacked, one could apply the same argument to fundamentalists and secular folks, to Israelis and Palestinians, to feminists and men’s rights activists, and so forth.

                                                                          Assuming that people from different backgrounds will never get along is a very pessimistic view of humanity.

                                                                          EDIT: Anyways, I’m happy to continue this via PM or email if you’d like to go back and forth more…I don’t mean to clutter up the main thread too much. :)

                                                                          1. 25

                                                                            You could exclude neither, and let them sort it out themselves elsewhere.

                                                                            One important lesson of the (waving my hands here) social media information age is that this strategy is not viable, because it always results in a “win” for the trolls. Communities are both empowered and obliged to stamp out this form of sociopathy with prejudice, because failing to do so means ceding the public square to the extremists.

                                                                            Free speech and free expression are wonderful goals in the absence of context, but they aren’t trump cards that outweigh all other factors, they’re variables in a complex equation that, when solved, should (among other things) minimize human suffering.

                                                                            1. 11

                                                                              Exactly. If our Code of Conduct bans violence, but doesn’t exclude, say, explicit white supremacist clothing, the end result is that black people aren’t going to feel comfortable showing up to the con if there’s a bunch of skinheads with swastikas all over the place.

                                                                              “But if the skinheads do something to the black patrons, they’ll get kicked out!”

                                                                              Sure, but there’s a concept of making people feel comfortable at an event open to the public. The white supremacists are welcome (in theory) to come to the con, but they need to keep it to themselves.

                                                                              1. 3

                                                                                The CoC is almost a courtesy to the skinheads in that example. The owner of the venue (or the lessee) is almost always allowed to make people leave. At least in New York, if you’re told to leave and then don’t, it becomes criminal trespass. Codes of Conduct don’t matter in any practical sense when you get to that point.

                                                                                I think instead what they’re useful for is what you say elsewhere in this thread, which is setting a tone: is your con t-shirt and jeans, or jacket and tie? Is it for some political goal or for advancing professional development?

                                                                              2. 2

                                                                                That complex equation comes down to value judgments. You’re not likely to know the ultimate effects of your actions. For instance: affirmative action is not colorblind, but it might lead to genuinely colorblind outcomes some generations from now.

                                                                                If you’re using deontic ethics instead and your sense of duty requires you to defend freedom of speech, that doesn’t necessarily yield a result worse in terms of human suffering. Utilitarianism’s core problem is that although you can look at the immediate outcome, you don’t know the ultimate yield.

                                                                                I think these ideas are somewhat compatible. At some point, the question becomes “freedom for whom” – if you can’t get people to show up to your con because of extremism, how much speech did you facilitate? I think there’s something more to championing freedom of speech than not prohibiting things.

                                                                              3. 3

                                                                                You could exclude neither, and let them sort it out themselves elsewhere. Indeed, seeing each other in a context that doesn’t constantly reinforce their ideology might serve to build bridges and mellow both sides–and while your example is a bit stacked, one could apply the same argument to fundamentalists and secular folks, to Israelis and Palestinians, to feminists and men’s rights activists, and so forth.

                                                                                I know this is a little late to the conversation, but your examples are full of grossly false equivalences. I’m pointing this out not to attack you, because I think you just haven’t really thought it through or are unaware of the context for the statements you’re making, but because spreading them is bad for society.

                                                                                Start with “fundamentalists and secular folks”. Fundamentalists are radical theocrats, and in the United States, are identified by believing things like homosexuality is sinful, women must submit to their husbands, etc., and in general being radically intolerant of other peoples’ private business. “Secular folks” are “everyone else”, in terms of values.

                                                                                Feminists believe that women are as human and as entitled to agency and dignity as men are; MRAs believe that women are inferior to men and should be enslaved.

                                                                                There is no meeting halfway with them. Their values are bad, and any social currency they might gain by publicly participating in high-prestige, “neutral” contexts, like tech conferences, will be used to further their heinous agendas. Ignoring this is how Nazis take over; it creates safe spaces for them, and once they’re in, the space is unsafe for everyone else.

                                                                                1. 3

                                                                                  Feminists believe that women are as human and as entitled to agency and dignity as men are; MRAs believe that women are inferior to men and should be enslaved.

                                                                                  There are some folks that identify with MRAs that believe that, and they’re scum. There are also some feminists that cannot share a room or conversation with a man because they view men as needing to be eliminated (for example, Solanas). Ignoring the shades of belief and judging groups by the most offensive members is in fact what puts all discourse in peril.

                                                                                  This is all quite off-topic for Lobsters. If you want to argue, hit me up on DM. :)

                                                                                  1. 3

                                                                                    It’s slightly off-topic for lobste.rs, but not for this thread, and I don’t want to minimize the point that you cannot meet Nazis halfway.

                                                                                    So, again, your equivalence between MRAs, any MRAs at all, even the most milquetoast “I think society needs to nicer to men” whiner, and even the most extreme misandrist feminist activist is false, because there is no large-scale issue with cultural and institutional misandry, but there is cultural and institutional misogyny. One viewpoint is laughably absurd and harmless (“men should be eliminated”; it’s not a credible threat to men), the other is simply, “Keep things as they are or make them even shittier to women,” which is extremely credible as a threat to the well-being of women. See also below, re: the President brags about sexually assaulting women.

                                                                                    Going back to, and again I need to emphasize that we’re talking about literal Nazis, given that the most powerful single official of the most powerful nation on the planet is an unapologetic white supremacist and rapist, it’s insane to say, “Let’s just set politics aside and welcome anyone.” The presence of Nazis is a threat to public safety and well-being, whether or not they’re in uniform or are being “polite”. Failure to deal with them as the manifest threat they are, given the friendly political environment for them, is spineless abdication of moral duty. There is no “both sides” argument to be made.

                                                                                    I’m telling you this not to accuse you of cowardice, but to help you understand what you’re actually arguing and who would benefit from it, so that you may stop being part of the problem, and start being part of the solution.

                                                                                    1. 6

                                                                                      One viewpoint is laughably absurd and harmless (“men should be eliminated”; it’s not a credible threat to men)

                                                                                      Well, except for the fact that the author shot two men and attempted to shoot a third, and was on record for being “dead serious” about her manifesto.

                                                                                      the other is simply, “Keep things as they are or make them even shittier to women,” which is extremely credible as a threat to the well-being of women.

                                                                                      There are certainly some folks claiming membership that push for misogyny, but the actual stuff asked about is things like genital mutilation, how domestic abuse of men is handled (when it is recognized at all) and what support networks they have, how divorce and custody is handled, and so forth. You grossly misstate reality here. That’s forgivable, because people tend to be fuzzy with terms these days, but still.

                                                                                      we’re talking about literal Nazis

                                                                                      Somebody hide the Sudetenland! Quick, warn Poland! Buy stock in Volkswagen (and IBM )! That’s what a literal Nazi is about. If you want to talk about neo-Nazis, white supremacists, or even the (poorly-grouped) alt-right, I’m happy to criticize positions they have (most of which range from garbage to odious). Using incorrect terminology makes it hard to talk about a thing productively.

                                                                                      Why does this matter? We can’t defend or even relate to literal Nazis following orders liquidating a ghetto. Some poor white trash who had his job outsourced to Shenzhen though? Somebody who has strong opinions about how blacks are attacking police (despite growing up in a rural town with no African-Americans at all, and a police force which consists of like a county sheriff and a couple of deputies)? Those folks we can reach and educate, if we stop lumping them in with perpetrators of one of history’s biggest genocides.

                                                                                      given that the most powerful single official of the most powerful nation on the planet is an unapologetic white supremacist and rapist

                                                                                      That power is why he’s able to maintain such a solid Department of State, why Congress is doing whatever he wants, why he has met such acclaim and success in his dealings, and why he has been able to dismiss all of the court cases and suits brought against him. Alternately, he’s a boogeyman inflated into vast proportions by people looking to be scared about something.

                                                                                      There is no “both sides” argument to be made.

                                                                                      There is, I’ve made it, you don’t buy it because you’re invested in demonizing and dehumanizing the side you don’t like, life goes on, history will be on the side of tolerance and the dialing back of polarization–or we’ll be shooting at each other and fighting over cans of food in a generation.

                                                                                      This line of discussion is not on-topic for lobsters, and is quite divorced from even the original question of codes-of-conduct.

                                                                                      1. 3

                                                                                        Welp, you have clearly stated your desire to do nothing in the face of evil and refuse to even name it, so, you’re correct, we will never meet on this.

                                                                                      2. 3

                                                                                        When you say, “All are welcome,” what you are really saying, and what is heard loud and clear by both aggressors and victims, is, “This is a safe space for Nazis.” Or rapists. Or slavers. Or killers. You get the picture. So do they.

                                                                                2. 1

                                                                                  Writing clear rules intended to be taken literally that cover all forms of potentially allowed and disallowed behavior is essentially a fools errand. Ultimately there must be some human arbiters of behavior that will have to interpret the intention of the rules, look at the behavior, and decide if a violation occurred. You’re basically talking about a miniature domains-specific legal problem here, and if you look at the complexity of most modern legal systems it’s clear that you can’t really have a clearly written exact set of rules that will apply without human interpretation.

                                                                                  I completely agree, and this is my biggest problem with the whole “code of conduct” paradigm: it creates a promise of clear, formal rules that can’t possibly be delivered on. Talking in terms of values and moderation policies is a more useful framing that puts the human subjectivity front-and-centre and guides us towards thinking about questions (Who’s going to moderate? What process will they follow? Who are they accountable to?) that are really quite central to dealing with conduct issues in communities, but are swept under the carpet by thinking in terms of a “code” that a project can simply adopt.

                                                                                3. 3

                                                                                  Im ok with a higher false positive rate for ‘Is this person a Nazi’ test if it means fewer false negatives. The beauty of technology is not that it’s value less, but that it’s an expression of human value. Technology is anything people make and which things people make is a huge signal of what they value. While some technology are useful tools regardless of value (i can use the butt of a gun to hammer a nail) we can make a pretty good statement about what that society values based on their technology.

                                                                                4. 7

                                                                                  While I don’t inherently disagree, I find that a lot of CoC’s that get pushed out are rather restricting. I find it’s better to interpret them as guidelines, not rules, rules lead to toxic individuals getting wiggle room through loopholes.

                                                                                  I’ve also been to events in Germany that don’t have any CoC at all and I don’t hear many complaints from other events around here either. If you’re being a jerk you get thrown out, end of story.

                                                                                  1. 4

                                                                                    The CoC provisions on offensive speech are usually interpreted broadly benefiting certain groups over others. In other words, it works the opposite of the general rule where these give enforcers lots of leverage over large groups of people. The wiggle room is theirs.

                                                                                    1. 6

                                                                                      Personally I think any ruleset is only good if it’s applied equally to everyone, same for guidelines.

                                                                                      If a CoC is provisioned and enforced it must be done with the same rigour and accuracy as one would apply law in a proper court.

                                                                                      1. 6

                                                                                        Personally I think any ruleset is only good if it’s applied equally to everyone, same for guidelines.

                                                                                        That runs into the whole “why can’t you tolerate my intolerance?” problem though. If they say that “hate speech is not allowed” and you interpret a gay married couple discussing their honeymoon is hateful towards Christians (note that not everyone feels this way, just using an example), then who wins? The decision is up to the organizers of the con, but in general most these days are going to side with the married couple (as they should, IMNSHO).

                                                                                        If a CoC is provisioned and enforced it must be done with the same rigour and accuracy as one would apply law in a proper court.

                                                                                        Absolutely not. They’re not laws. They’re rules that a private entity made up for participation in a private function. The correct interpretation of the CoC is exactly whatever the organizers of the con want it to be and nothing else. Generally, they’re going to interpret it in whatever way furthers the goal of the con (e.g. more attendees, higher quality talks) or the values of the organizers (more diversity in gender or ethnicity or whatever).

                                                                                        1. 6

                                                                                          I would interpret “no hate speech” as strict as Section 1 §130 StGB of german law;

                                                                                          “1. […] against any national, race, religious or ethnic group, against parts of the population or a single person based on predetermined groups or incite parts of the population to violence or despotism or 2. the dignity of another human being, based on a predetermined group, parts of the population or membership in a predetermined group or a specific part of the population insults, maliciously attacks or frames […]” (excuse my crude translation)

                                                                                          Section 2 covers any transmission of anything mentioned in Section 1.

                                                                                          I think that about covers it in terms of “hate speech”. In the specified case, the couple wins since they’re part of a predetermined group of the population.

                                                                                          They’re not laws. They’re rules that a private entity made up for participation in a private function

                                                                                          I think they should be handled like laws. Rigour, precision, efficiency and accuracy are important. The organizers of a con should therefore word their rules such that any violation will be absolutely clear in either word or spirit of the rules without a doubt. If anyone breaks these rules and spreads hate speech then there will be no doubt by anyone involved they crossed the line. There will be no need to extensively discuss it or any wasting of time on people who want to wiggle around the rules.

                                                                                          I would love if some organizer did precisely this.

                                                                                          1. 2

                                                                                            I cannot see how anybody could interpret that as hate speech. In an attempt to overcome by own biases, can you flip that example on its head somehow so I can relate to it?

                                                                                            1. 6

                                                                                              Trust me, people can and do. The whole “I’m fine with gay people but do they have to throw it in my face??” because they have a picture of their significant other on their desk or something, whereas the person in question wouldn’t bat an eye at a heterosexual person having a picture of their spouse on their desk.

                                                                                              I’m having trouble coming up with an opposite example, which is my fault.

                                                                                              1. 4

                                                                                                Oh, I know that there are people who would find that offensive. But the bar for hate speech is higher than merely being offensive.

                                                                                                1. 1

                                                                                                  Opposite? How about being annoyed that something says husband and wife. Or taking offense at something like a father and daughter event because nobody in your family is technically a father.

                                                                                                  1. 1

                                                                                                    Fair enough. I was trying to come up with an example from a right-wing perspective (“opposite” in that regard), but the thought process is alien to me so it’s hard.

                                                                                                2. 3

                                                                                                  (This is just for the sake of the argument, we’re already off the track so I’ll roll with it) One might interpret Christian couples taking PR actions against abortion as hateful against its supporters.

                                                                                                  1. 3

                                                                                                    Nope, I can’t see that being considered hate speech either.

                                                                                                    1. 6

                                                                                                      http://www.cbc.ca/news/politics/summer-jobs-abortion-images-ccbr-1.4523255

                                                                                                      [Justin Trudeau] called flyers depicting bloodied, aborted fetuses used by the Calgary-based Canadian Centre for Bio-ethical Reform (CCBR) “hateful.”

                                                                                                      Joyce Arthur, executive director of the Abortion Rights Coalition of Canada, said she believes those images … should be outlawed as hate propaganda.

                                                                                                      [emphasis mine]

                                                                                                      1. 2

                                                                                                        wow. I stand corrected.

                                                                                                3. 1

                                                                                                  They’re not laws. They’re rules that a private entity made up for participation in a private function. The correct interpretation of the CoC is exactly whatever the organizers of the con want it to be and nothing else. Generally, they’re going to interpret it in whatever way furthers the goal of the con (e.g. more attendees, higher quality talks) or the values of the organizers (more diversity in gender or ethnicity or whatever).

                                                                                                  A CoC is legalistic by its very nature. I’m fine with an organisation adopting formal rules that are interpreted as rigorously as actual law; I’m fine with an organisation using the subjective judgement of its human moderators. But adopting an ambiguously-worded “code” that is in practice subject to interpretation is the worst of both worlds: it reduces moderators’ flexibility, but doesn’t offer participants enough clarity to be useful.

                                                                                                4. 1

                                                                                                  Agreed.

                                                                                            2. 4

                                                                                              In essence, the choice to not have a CoC these days is tantamount to an open invitation to the worst of the people in our industry. That’s not to say that good people don’t also attend these events, or even that the organizers are knowingly trying to create that sort of environment, but ignorance of the message you’re sending doesn’t necessarily change the message itself.

                                                                                              Equally, the message I get from the choice to have a CoC, as someone generally perceived as white and male, is that I’ll be held to a double standard and if the wrong person takes a dislike to me then I’ll be thrown out, regardless of my actions. That’s probably not a fair reflection of the organisers’ intentions, but it is the message.

                                                                                              1. 2

                                                                                                It’s my experience that the only people who whine about this are better left excluded, because somehow, white dudes are still abundantly present and everyone has a nice time.

                                                                                                1. 2

                                                                                                  White dudes? Yes. Working-class people, or even just any kind of conservatives? Often not. People have a nice time yes, but people tend to have a nice time in homogeneous spaces - everyone having a nice time is, if anything, even more common at events attended solely by white dudes. So equally I could say the only people who whine (your term) about diversity/inclusivity/… are better left excluded.

                                                                                                2. 1

                                                                                                  Apart from that concern, which I totally agree with, I also try to stay clear of projects that boast a CoC because it shows me that their priorities lie in politics, rather than in technical matters. It’s a waste of my time to spend any effort on endeavors like that.

                                                                                                  1. 3

                                                                                                    It frequently doesn’t though.

                                                                                                    Almost any large project with a code of conduct has it precisely because they want to focus on the technology more than the politics, and without a code of conduct, or with too loose a code of conduct, they end up being controlled by the loudest jerk.

                                                                                                    1. 1

                                                                                                      See the replies to my comment up thread for people who are advocating for CoCs for nakedly political reasons that have nothing to do with technology.

                                                                                                3. 4

                                                                                                  Some thoughts, from someone running a con that has chosen each year to not have a CoC, but is in the process of developing an alternative model:

                                                                                                  The largest factor to me is that, regardless of any particular problems with CoCs, the choice to not have a CoC has, in many cases, become a sort of dogwhistle for events that are explicitly inclusive of harassers, and have no intention of running a broadly welcoming event.

                                                                                                  It’s not a dogwhistle for events that are explicitly inclusive of harassers. A lack of something is not the same as explicitly including the opposite. The author explicitly covers the lack of effectiveness in many conference CoCs under gray zones and enforcements.

                                                                                                  As someone who organises a conference, attends lots of events around the world and spends a bit of time sharing stories with organisers, I have yet to see a conference with the resources to properly ensure that all participants know and understand the CoC, how to use and enforce it. Such an event may exist, I haven’t seen it. I’ve experienced harassment and stalking at events myself, and watched it fumble wherever I’ve reported it.

                                                                                                  That’s not to say that CoCs are useless, some events may find them useful, but for the majority of events I’ve attended they have caused more problems than they solve in themselves.

                                                                                                  Second, a CoC lets members outside of the community know what the shared value of a community are, and helps people to make an informed decision about whether their values align with the community, and if the community is worth engaging with.

                                                                                                  Nearly every CoC I encounter is a variant of or asserts to be inspired by the same geek feminism-based CoC. I have argued against it repeatedly on the grounds that anyone using it has not properly considered the purpose, scope and enforcement of such a document, nor the complications it presents. I have had event organisers flat out admit that they’re using it because people who don’t come to their event will choose not to come to their event if they don’t.

                                                                                                  Frankly, if someone feels that the presence of a CoC is the determining factor in whether they attend an event. Maybe an event without a CoC isn’t the event for them. A copy-paste geek feminism sample CoC is a dog whistle to say, “We’re virtue signalling our CoC but don’t really care enough to do it properly”.

                                                                                                  Organisers should focus on their existing community and welcoming new arrivals at the event rather than people who won’t turn up if there isn’t a universally ignored and unenforced document put up everywhere to make existing people feel that little bit shittier.

                                                                                                  1. 0

                                                                                                    Nearly every CoC I encounter is a variant of or asserts to be inspired by the same geek feminism-based CoC

                                                                                                    If you are a geek and not a feminist, what are you? I’m a male, geek, and a feminist.

                                                                                                    I’m surprised anyone working in high technology would choose to not be a feminist and prefer to live in the last century. Fortunately I don’t meet many of those people. They seem to only exist on the internet.

                                                                                                    1. 6

                                                                                                      I reject the label feminist for many of the reasons outlined here: https://necpluribusimpar.net/the-trouble-with-feminism/ (and frankly I wouldn’t call myself a geek either, especially not if people are going to use it as an excuse to say that I am obliged to hold one or another political opinion. It’s never been a label I particularly cared for in any case).

                                                                                                      I don’t have a problem with reasonable Codes of Conduct in principle, but in practice, as stevelord states, they are specifically feminist advocacy, and I think that many vocal strains of modern feminism are hostile to values I think are important and want to see reflected in the culture around technological work. A succinct way of putting it is, I would be fine with any Code of Conduct that mentioned James Damore by name as someone whose speech would be unambiguously permissable in a project or convention - and if a Code of Conduct was designed by people who want James Damore’s words to be grounds for expulsion (as they were for him in the technological community of Google engineering employees), I don’t want that Code of Conduct in force in any space I care about.

                                                                                                      1. 5

                                                                                                        I would argue that this is an example of doing exactly what CoCs are intended to do. If you think a project should have people like Damore driving away people who don’t want to be made out to be novelties or second-class class contributors, then frankly I don’t want you in my community.

                                                                                                        1. 3

                                                                                                          You’re free to give your “diverse utopia” a shot on your own turf, but the moment you try to co-opt or subvert an existing community or project imagined, initiated, and implemented by (as your side frequently points out) utterly un-“diverse” (i.e. white male) contributors you are throwing the first punch.

                                                                                                          This kind of subversion has already occurred - repeatedly - so the bed has been made and all you can do now is lie in it. I, and I’d bet most people in tech, did not expect our field of work to be made into a political battlefield, but hey, solving problems is what we do. We’ll solve this one too.

                                                                                                          1. 4

                                                                                                            It’s interesting that you yourself point out how many existing projects and communities have adopted more inclusive policies. The fact is that culture is shifting toward inclusion, and even non-idealistic communities are realizing that broad and inclusive policies attract more and better contributions, and the benefits more than outweigh the technical contributions that would have been made by hateful and toxic community members. It’s not like those of us who value and appreciate CoCs and otherwise inclusive policies have any particular power to dictate the rules and structure of existing projects. Communities are broadly recognizing the value of CoCs and adopting them because the people there want to make their communities better.

                                                                                                            1. 3

                                                                                                              If I can just point you at an example of CoCs causing significant damage to communities, I’d point you at FreeBSD’s huggate scandal.

                                                                                                              That’s what everyone needs to avoid. CoCs mustn’t be entered into lightly. They have to be properly considered, debated and set up to enhance rather than detract from a community.

                                                                                                          2. -2

                                                                                                            Love it! EttiCosmocrepe really did prove your point.

                                                                                                          3. 2

                                                                                                            You really believe James Damore’s anti-intellectualism is a benefit to technological work? His contributions had nothing to do with technological work and seemed to create a huge distraction away from technological work. I would love to see an argument from you detailing how James Damore’s speech was constructive to technological work.

                                                                                                            If you are confused about why I called James Damore’s speech anti-intellectual, I would hint here that empiricism is no substitute for thinking.

                                                                                                            1. 0

                                                                                                              Thanks for your comment. Just one thing. I didn’t state they’re specifically feminist advocacy, it’s the blanket adoption of the geek feminism wiki CoC template I was rallying against.

                                                                                                              To be clear:

                                                                                                              • Yes the template is problematic on many levels for various events
                                                                                                              • The template is a form of feminist advocacy, but that’s not an issue and may be an advantage for some events
                                                                                                              • IME An event that posts it verbatim is usually more interested in telling you they have a CoC than enforcing the content

                                                                                                              Part of running a decent conference is accepting that there will be people there with different views to you. Your job as an organizer is to create a fun and friendly event, not arbitrarily provoke people (I do enough of that in my spare time :)).

                                                                                                            2. 3

                                                                                                              Sorry, perhaps I wasn’t clear. By geek feminism-based CoC I specifically mean this template and it’s wholesale adoption verbatim or almost verbatim.

                                                                                                              1. 4

                                                                                                                That one has exactly the kind of politically-motivated and dominating stuff I aim to block in CoC proposals:

                                                                                                                “‘Reverse’ -isms, including ‘reverse racism,’ ‘reverse sexism,’ and ‘cisphobia’ (because these things don’t exist)”

                                                                                                                My emphasis added. The start is denial victims exist in white, male, or straight groups operating in environments where minority members dominate the power structure. This is dictated by proponemts’ political beliefs that are controversial even among minority members they claim to he about protecting. The next move the ideology brings is not allowing them a say in things or allowing statements/actions toward them that would be offensive/banned if done to other groups. The next is ridicule or ejection as a response to dissent.

                                                                                                                All starts with accepting the sophist definitions and rules of a tiny few intended to dominate their opponents in larger groups that they enshrine into a CoC they’ll tell groups is just about civility and stopping bad behavior. No it isn’t: it’s ideological subversion of groups’ norms to enforce the pushers’ beliefs. They’ll put down minorities resisting those beliefs as quickly as anyone else, too.

                                                                                                                1. 1

                                                                                                                  Every single statement you’ve made is baseless and false.

                                                                                                                  1. 3

                                                                                                                    Your counter has no evidence. So nobody should believe it. That simple.

                                                                                                                    Unfortunately, I still have to go into a workplace where many groups are dominated by politics benefiting one type of minority (blacks) at everyone else’ expense. That’s in social groups, work assigned, and promotions. Sounds like the definition of structural racism to me. If ever applied to non-whites, the two sentences above would be all the proof they needed that they’re victims of structural racism. You’d agree with them. Logically, there the same function or algorithm for determining structural bias that just have different inputs or outputs. As the sophistry goes, those on the linked article and now you if backing them redefine their own term for just these conversations so it can’t apply to a white person.

                                                                                                                    With the magic of political bias and agendas, the same definition can be two, contradicting things so that one group is villainized whether delivering or receiving damage interacting with other groups. Such sophistry is not just illogical: it’s inhumane given the damage it supports to decent people in the target group. So, I’d fight a CoC or agenda that starts with a declaration that non-whites in positions of power would never abuse their power against whites. Likewise, women never abusing men. Both are insane statements in light of both recorded history and minority members’ own incessant claims about how other minorities mistreat them at work, school, etc.

                                                                                                                    The logical response is banning and addressing every instance of group X uses their power to discriminate against group Y with who X and Y are varying case by case, place by place, issue by issue. That protects the most people with the most fairness. It also takes hardly any additional effort in event white or male discrimination is as rare (“nonexistent”) as my opponents believe. Most work would probably still benefit their preferred groups as well given that’s where most of the discrimination is right now.

                                                                                                                    Note: I should also point out to anyone reading along that even a sub-Reddit on feminism had a list showing they recognized male-specific biases and discrimination. It’s done from their viewpoint but has points that corroborate my claims. Clearly, it’s only some feminists I’m battling with these claims rather than all feminists.

                                                                                                                    1. 3

                                                                                                                      Unfortunately, I still have to go into a workplace where many groups are dominated by politics benefiting one type of minority (blacks) at everyone else’ expense. That’s in social groups, work assigned, and promotions. Sounds like the definition of structural racism to me. If ever applied to non-whites, the two sentences above would be all the proof they needed that they’re victims of structural racism. You’d agree with them. Logically, there the same function or algorithm for determining structural bias that just have different inputs or outputs. As the sophistry goes, those on the linked article and now you if backing them redefine their own term for just these conversations so it can’t apply to a white person.

                                                                                                                      Sorry for the late reply.

                                                                                                                      So, we don’t really know each other. I have some ideas about you: male, 20s, information security professional. Probably not in California. From what you’ve previously posted, it sounds like you had it not so easy growing up.

                                                                                                                      Here’s where I go out on a limb a little bit: you believe that the most important thing about doing your job is professional competence, like ability to debug an issue or design a feature to be safe and easy to use. You also hate that there are exploitable systems in place in society; exploitable systems are bad.

                                                                                                                      Now, it sounds to me like your boss thought other things were important, like smelling nice or getting along with other teams, were also important, and when some of your friends, who you thought were very good at their jobs, were fired or laid off, they were replaced by people your boss, who is not white, knew or approved of.

                                                                                                                      Am I way off base?

                                                                                                                      Anyway, I’m saying all this to demonstrate that I have some idea of how things are, based on my decades of professional interaction with infosec teams, and working in IT, and being online.

                                                                                                                      So, you say above, “My black boss favors other black people over white people, sounds like the definition of structural racism to me.” But your error is so fundamental that explaining how wrong you are is such a huge task. It requires you to understand:

                                                                                                                      1. there is no separation of concerns or contexts for human beings in society; there is no such thing as “professional identity” and “personal identity”, for example, because actions in one context have effect in all the other ones;

                                                                                                                      To this point, consider how you feel about the decision to exclude the fascist Urbit dude (Moldbug) from a conference, where presumably, he was going to talk about his idea for a feudal internet and recruit people to support him and its development. You’re mad because you think the details of his software, developed as a reification of his values, is not a political issue, merely a technical one, and you don’t think any status given to him for speaking at that conference will carry over to his Moldbug persona, and no one who he thinks should be subjugated will stay away as a result of his presence. I leave the absurdity of that belief to stand on its face.

                                                                                                                      1. there is a difference between small, local, private social spaces, like an office or a conference, and THE ENTIRE REST OF THE WORLD, where those larger contexts’ effects dominate.

                                                                                                                      To the second point, for example, and to bring up something you said previously in a different thread, there is no study of the unfair discrimination done by female bosses against men because there are so few female bosses.

                                                                                                                      And so, that brings us to the final thing you need to understand before you could understand why I said your statements were baseless and false:

                                                                                                                      1. the presence of an exploitable social system is not the same as its mass exploitation by one identifiable group.

                                                                                                                      You have a black boss who favors people who are like her, and this offends you. To say, “this is structural racism in action,” though, is to ignore the fact that 90% of the bosses are white men who also favor people like them, and that the current real cultural and political landscape favors people like them in terms of access to education, and jobs, and wealth opportunities, and protection by police, and ability to relocate to some other place where the people there will probably be friendly to them. And most of them are hostile to the idea of changing that to make it more equitable.

                                                                                                                      And I don’t think you’ll ever understand that, or at least, not here and now. So when you say something unfounded and ignorant like, “reverse racism is just as bad as real racism”, which is false and baseless because it ignores nearly every relevant factor in favor of “any exploitation of an exploitable system is offensive and bad”, the most legitimate response is a one-liner like the one I gave.

                                                                                                                      1. 3

                                                                                                                        “So, we don’t really know each other. I have some ideas about you: male, 20s, information security professional. Probably not in California. From what you’ve previously posted, it sounds like you had it not so easy growing up. Here’s where I go out on a limb a little bit: you believe that the most important thing about doing your job is professional competence”

                                                                                                                        I appreciate you attempting to understand where I’m coming from. Unfortunately, it gave a great example of the kind of projection I’m talking about that certain types of politics depend on to prop up myths or suppress alternative views. The profile doesn’t even match some of my comments on Lobsters about my job, how people get promotions, or what to expect in businesses. It is common among people that push a specific type of politics or CoC’s. Almost every one of them that profiles me says same thing you did. So, let’s get a better picture.

                                                                                                                        I grew up in areas where dominant groups were very different from me: black school with pervasive racism against whites; rural areas with rednecks that look down on “nerds” and tech; mixed, suburban school that was great in comparison, all groups anti-nerd in nicer way, and a nerd/outcast crowd that was cool (yay!); businesses and other organizations with different makeups. I’m in 30-40 range. I’m not currently in tech or information security as main job: I went into operational side of a company that does mix of high-volume sales and service activities. My job mixes both: sometimes moving product, othertimes handing customers. Our customer base is as diverse as they get with me interacting with, serving, taking abuse from, or being praised by at least 22,000 people face-to-face on record with high, satisfaction rate from those surveyed. With many, especially in groups, I’m required to listen to or make conversation with them to make a pleasant experience. I also observe and listen to what they say to each other just being curious of how they act and what they think. On Facebook, I also created a diverse crowd to see all the things people could teach me about popular topics that I’d otherwise miss due to a filter bubble.

                                                                                                                        My long time effectively being a white person in both minority-dominated environments and effective slave to mix of people showed me they act effectively the same over sample size of twenty to thirty thousand people in many circumstances with tens to hundreds of thousands of interactions with them among my coworkers and I. Most exploit our company’s level of service to get what they can out of us. Most sound polite, some neutral, and a few ugly with almost all apathetic to burdens or damage they cause. Last subset will use their power in ways that seriously disrupt the company or cause employees harm. Some have used race/gender cards against white males but root cause of exploiting power with misinformation or threats is something all groups do to us. The cards are rarely necessary given our vulnerability. The bosses, which come and go a lot, are mostly either folks wanting a safe bet at blue-chip company with upward mobility or opportunists wanting a ticket punching opportunity move laterally into better pay at another company. At upper levels, it’s almost always politics over performance with team supervisor level being a mix of performance and politics leaning toward performance if it’s about at least keeping the job.

                                                                                                                        As part of my work, I constantly ask my customers of all groups questions about their jobs, lives, and even politics with no judgment or argument: I just tell them I’m curious, I like hearing others opinions, and thank them for whatever they tell me. Depending on how I assess them, I’ll either politely decline further engagement or carefully ask questions making sure I don’t step past their boundaries. Down-to-earth, non-judgmental or just fun-loving customers I’m more open with or do my comedic approach I do with coworkers for their enjoyment. Those few being non-threatening to my career means I can self-censor less and be myself more. Work style is goofball/satirist/wiseguy who has everyone’s back or gives headaches to those team decides needs it.

                                                                                                                        That leads me to the next thing. I’d be willing to bet that neither you nor most people advocating some of these views, CoC’s, etc have been under the power of large numbers of minorities or interviewed hundreds to thousands in diverse area for their views without leading questions that reinforce your own beliefs. The comments you see me make on here are often compatible with many of them I’ve talked to. That’s despite some’s attempts to censor them saying that’s about “protecting” minorities or blocking what offends “them.” There’s a huge gap between what piles of black people tell me and what some liberals (including whites) tell me that pretty much all black people think. For instance, most black people I interview in the Mid-South think racism is something every group can do, that it can happen at many levels, and black people can be racist, too. There are plenty that think the other way but they aren’t majority I’ve encountered. When the latter are in control, the views that disagreeing blacks espouse about definition or nature of racism being a general thing are not allowed despite coming from minority members. The standards/rule promoting groups claim to advance or protect minorities while systematically excluding all of them with dissenting views from participation. And then they have a problem with whites making similar claims, too.

                                                                                                                        Your longer comment might make more sense if you were responding to what a white male with minimal social interaction would believe after a few brushes with run-of-the-mill discrimination. Thing is, my posts are a summary of position of whites, blacks, men, and women who believe these things based on their lifetimes of interaction with their groups and others with many of us under power of other groups in organizations they control. So, we’ve gotten to see it both ways. We’re a very diverse crowd. We shouldn’t be pigeonholed into these projections that pretend it’s one or two subsets of demographics, we have limited experience with other groups in control, we must be social idiots who don’t know The Game at work that gets promotions, and so on. We’re a mix of minority members and white males who understand people, have tons of experience with them, and disagree with your position based on those experiences. Seeing how minority members disagreed among themselves on topics of race, gender and so on reinforced my fight against any group dictating one set of beliefs/practices being acceptable or not. My own group saying it could just be bias but many of them concluding similar things from different backgrounds hinted it might be greater truth.

                                                                                                                        “there is a difference between small, local, private social spaces,”

                                                                                                                        It turns out this is true but circumstantially rather than fundamental. The experience I’ve had with thousands of people (esp minorities), observing many more groups controlled by them, listening to minority members in structures controlled by majority or minority types, and so on indicates minority members act just like whites or males. They reward those like them, discriminate against those substantially different, and mostly don’t care about other groups in day-to-day speech or actions. This trend is supported by data from most groups going back most of human history. Any country that has a certain majority with power will have its members come to dominance mostly rewarding their group or a privileged few penalizing others. There’s usually common enemies, too, to unify them. African countries under black control had same traits. Over here, it was mostly white males in power reinforcing their preferences which perpetuated that cycle. So, that’s the majority of the problem at the national level. Switch to cities, organizations, etc that blacks control, you see a reversal of the effect where they boost their own group more and battle/minimize politics of others.

                                                                                                                        From there, how do we react? Well, if it’s a universal phenomenon, then we need to define it as a universal phenomenon rather than definitions or practices that only villify specific groups for others’ gain. The honest definition costs us nothing: we just note bias, expect each group to combat theirs, and assess it in al group activities by default. Minority members that agreed with me and I are all already doing it to varying degrees. So, it’s not hypothethical. From there, we’d expend most of our effort on whatever is most prevalant in our locale and the national level. I’d expect most of that to be combating white racism or male sexism at national level. At local one, it will usually depend on the group with white dominated areas having mostly white racism we gotta fight, non-white dominated areas having non-white racism we have to fight, and occasional weird ones you’d not expect if just using checklist-like approach to who is oppressors or victims. It will vary as the demographics and beliefs vary among the various power and social structures.

                                                                                                                        For instance, our [huge] company has different types of -ism’s in different groups depending on their makeup. The executive and senior levels are definitely biased for whites and mostly males with promotions all politics. Middle started from there to get much more mixed with mosty same politics plus some new. On lower levels of management, there’s been a shift in my area toward blacks benefiting only certain types of blacks in two to three groups, white women in three, white men in two others (one biased for women), and one was mixed before ejecting a scapegoated, white dude recenty to get a black guy. Last one in flux. The black-controlled groups even wanted to poach me to boost their numbers but my bosses and I prevented it. I’m still forced to help them once a day or so but that’s driven by cost-cutting and politics, not racial issues.

                                                                                                                        Blocking transfer was good since turnover is at record high now in their groups, even among black men and women, since leadership’s favoratism discriminates across three attributes (race/gender/age) instead of one or two we’re used to dealing with in the South. High-performing workers with great, social skills who were mostly white, Asian, and one Pacific Islander were given unpopular grunt work with older, black women given better work or promoted. They talk to them differently, too. The advantaged blacks ranged from low performers that transferred to that group (the older women) to a few high performers so good I’d personally invest time in if they asked. Two, a younger male and woman, were exceptions to get advantaged with older women. Women to male ratio in general for advantaged positions is around 8-10 to 1 with ratio among high-performers 1 to 1 to around 3 to 1 depending on what skills you want and whose coming/going. Their personnel decisions don’t make sense unless structural discrimination and/or politics is at play.

                                                                                                                        Which is what I expect by default and combat for all types. And we end with:

                                                                                                                        “And I don’t think you’ll ever understand that, or at least, not here. So when you say something unfounded and ignorant like, “reverse racism is just as bad as real racism”

                                                                                                                        You’re really saying you think all the minority members I’ve listened to or worked with who agree with my position couldn’t possibly understand because of (white male stuff here). It makes no sense because they’re not white males but share my position. Majority are women, too, with many sharing positions on women topics some labeled sexist or something on various forums. You’re right that I can’t understand why only one set of views about minority matters is allowed or often reported, a good chunk preaching them being white, when minorities themselves have an interesting, diverse range of views. I’ve learned a lot from listening to them. They helped shape what I think on tolerance, true inclusiveness, and so on where rejecting certain views on false pretenses (eg only ignorant or hateful white dudes say that) would lead me to systematically discriminate against or suppress minority members with those views in large numbers.

                                                                                                                        That would be racist and sexist like my white, male executives who only tolerate their type of people, views, and practices. I’m not like that. So, I avoid it and fight it when people who do it want to make any form of it a standard practice to force everyone to think, talk and act like them. Usually have minority members backing me up in most places, too, except on these tech forums. Since they’re not present and invisible to my opponents, I have to speak up on their behalf to let people know they and their beliefs exist. They wouldn’t want to be dismissed with labeling and/or censored.

                                                                                                                        1. 2

                                                                                                                          Welp, at least I’m way off-base in my projection, though your childhood was what I meant by rough time (you brought it up in a different comment) :)

                                                                                                                          So, that’s a lot to reply to, and I don’t want you to think I’m ghosting or don’t appreciate the long and thoughtful reply. I do, and I thank you. But I’m about to walk out the door and won’t be able to reply in kind until tomorrow. Or, if you don’t want to continue publicly, I am happy to DM. Or if you’re sick of me and my shit, I respect that.

                                                                                                                          But I mean, I’m surprised you’re not in the industry, when you’re so passionate about what it’s like for people who are in it.

                                                                                                                          1. 2

                                                                                                                            These discussions take a lot of energy as I aim for strong accuracy minimizing effects of my biases. They don’t piss me off or anything except for few times I’m straight up attacked in a clear way. I might not reply just to get back on other stuff like tech or better job, but I’ll definitely read and think on whatever your reply is. :)

                                                                                                                            Far as IT or INFOSEC, I assumed you’d assume I was in it because it’s a reasonable assumption. I didn’t hold that against you so much as use it to illustrate we come here and to our beliefs from many backgrounds that might surprise you. Most people online can’t believe I’m not in INFOSEC. Some have accused me of lying about that to protect my identity at some defense contractor. Yeah, I’m living in movie True Lies lol…

                                                                                                                  2. 1

                                                                                                                    minority members dominate the power structure.

                                                                                                                    If only there was a movement that wanted to eliminated dominating power structures…. I just can’t put my finger on it. Or that’s it! Welcome comrade, have you googled The Bread Book?

                                                                                                                    1. 2

                                                                                                                      Lol. I do try to keep them in check. I stay away from communism, though. Utilitatianism via incentives, regulation, and individual action are my preferred methods.

                                                                                                                  3. 2

                                                                                                                    It seems like a reasonable CoC. Your argument that organizers copy and paste it is strange. 50% of software is GPL, and the remaining are copy-paste licenses like MIT, Apache, and BSD. Likely less than 1% have licenses that are custom. Would you say the same thing about software people choosing a license and copy-pasting it? It seems to me most projects do make a big deal about which license they choose.

                                                                                                                    A well designed CoC like the one you linked seems reasonable to re-use.

                                                                                                                    1. 1

                                                                                                                      Software licences are not the same as CoCs. Software licences police the use of software. CoCs police peoples public behaviour. Using a boilerplate template is a clear indicator that people are posting it to say they’re good people rather than properly looking at how they use or enforce them.

                                                                                                                      You may think the Geek feminism CoC template is fine. I find it deeply problematic for most events in my size, location and cultural bracket for events I’m involved in. That’s not to say it doesn’t make interesting points, but it’s better that event organisers consider them (along with everything the wiki has to say about CoCs) when preparing their own.

                                                                                                                      1. 0

                                                                                                                        I think enforcement is less important than setting expectations. CoC is priming people on what kind of behavior is expected. This priming will have a positive consequence where people will likely act better. There is good psychological research behind priming that you should read. Enforcement is not the primary purpose of a CoC.

                                                                                                                        1. 3

                                                                                                                          I think enforcement is less important than setting expectations.

                                                                                                                          If you’re setting expectations withough an ability to enforce them then this will be your outcome.

                                                                                                                          I’m discontinuing this thread with you as you’re no longer adding anything to the discussion.

                                                                                                                  4. 6

                                                                                                                    I’m neither a geek, nor a feminist. I strongly resent any association between people who claim they are geeks and myself. I am also an anti-feminist. Unlike modern feminists I believe in equality; men and women should have the same rights, just like blacks and catholics and whatever other people from any group you can think of. Modern feminists don’t think that (EttiCosmocrepe provided a link below) and that’s why the are my enemy.

                                                                                                                    1. 0

                                                                                                                      Last I checked feminists want the sexes to be equal. Sounds like you are a “traditional feminist”.

                                                                                                                      1. 2

                                                                                                                        I’m neither a geek, nor a feminist.

                                                                                                                        I am also an anti-feminist

                                                                                                                        hence

                                                                                                                        Sounds like you are a “traditional feminist”.

                                                                                                                        I believe your reasoning really speaks for itself, hence no further comment is necessary.

                                                                                                                        1. 2

                                                                                                                          I think your pet definition of feminism has clouded your reasoning. Example: You said you want men and women to be equal. That’s what feminism is! In the same breath you call yourself an anti-feminist because you have this strange idea of what feminism is.

                                                                                                                          1. 1

                                                                                                                            Technically someone who wants men and women to be equal is an egalitarian. Feminism and Masculism are mostly concerned with equality for the respective side.

                                                                                                                    2. 1

                                                                                                                      Until you decide to explain which version of feminism (or even generation of feminism, grossly speqking) I don’t think it’s easy to have a productive conversation.

                                                                                                                      1. 2

                                                                                                                        The feminism that wants equality for all sexes in all spheres of life.

                                                                                                                        1. 1

                                                                                                                          equal opportunity, or equal outcome?

                                                                                                                          1. 2

                                                                                                                            Equal opportunity and equitable outcome.

                                                                                                                            1. 3

                                                                                                                              You can’t have both. They’re mutually exclusive. Even given 100% equal opportunity there will always be differing outcomes. You can optimize for either, but you reach a point where optimizing for one will always displace the other.

                                                                                                                              This isn’t to say we don’t live in a deeply unequal world in either sense, just that what you want isn’t possible.

                                                                                                                              1. 1

                                                                                                                                Notice I didn’t say equal outcomes, I said equitable

                                                                                                                                1. 3

                                                                                                                                  Notice I didn’t say equal outcomes, I said that your two options were mutually exclusive and implied a trade-off between them.

                                                                                                                                  1. 3

                                                                                                                                    You can’t have both. They’re mutually exclusive. Even given 100% equal opportunity there will always be differing outcomes.

                                                                                                                                    When I said the outcomes need to be equitable, I obviously recognize equal opportunity will result in differing outcomes. This is not a contradiction. This is simply your failure to recognize dynamic systems. Imagine a system using dead reckoning . We have our simple model of system behaviour (equal opportunity leads to equal outcome). Efforts for equitable outcomes is a course correction after applying a Kalman filter from our expected simplified model. What really happened is equal opportunity resulted in different outcomes because people are different. So we apply equitable distribution to course correct. This is a self correcting system.

                                                                                                                                    The truth is “equal opportunity brings more equal than no equal opportunity outcomes, but obviously not equal outcomes” is a complex model. We can simplify with “equal opportunity brings more equality” and then course correct with equitable distribution.

                                                                                                                                    It’s absolutely strange that computer people fall back on “logic” instead of dynamic systems to deal with an obviously dynamic system (society).

                                                                                                                                  2. 1

                                                                                                                                    What would an equitable outcome look like, I’m genuinely interested in what you exactly mean with it.

                                                                                                                                    1. 3

                                                                                                                                      Society should decide what people need at a minimum (housing, food, healthcare, access to internet, etc) to live a decent life and provide it to them. Some people will need to be provided more than others depending on their differences (people with disabilities may need more help, etc).

                                                                                                                                      In other words, from each according to their ability, to each according to their need.

                                                                                                                                      I like the term David Graeber defined here called “everyday communism”

                                                                                                                                      1. 2

                                                                                                                                        That indeed sounds like something that can and should be achieved.

                                                                                                                      2. 1

                                                                                                                        If it’s public, I’m curious to hear more words or links about your alternative model for a CoC. What do you see as key differences do you see in problems to be addressed, approach to solving them, enforcement, administration, education, etc.?

                                                                                                                        1. 2

                                                                                                                          CoCs assert to set expectations for behaviour, but in reality they tend to focus on harassment. We have had harassment at our event (and I have no doubt that plenty goes unreported), but our most common problems are theft, fighting and damage caused by drunkenness. I’ve never seen a CoC address this.

                                                                                                                          Another common (at least to us) area CoC’s tend to fall completely short is disruption of talks. BSidesScotland’s Code of Conduct is very good in this respect.

                                                                                                                          Now some people might think that all we need to do is make a multi-page document outlining what we can and can’t do with a 4 page section on harassment and we’ll be fine. We won’t. In the interim we’ve settled on Wheaton’s Law as the equivalent of a CoC, along with some light rules about enforcement. However, we still have theft, damage, violence etc. on occasion.

                                                                                                                          The current (non-public) iteration is something we’re calling house rules - a one-pager that goes up on the site, at our event that everyone’s supposed to abide by focusing on actions, not opinions. People who think that a person’s value is defined in some aspect of identity can attend. Act on that, and they’re getting thrown out. People who believe that it’s right to punch people dumb enough to think worth is related to skin colour are also getting thrown out. People who steal or try to steal are getting thrown out.

                                                                                                                          To make this work we’re going to hold training sessions with ops leads and all the crew, and we’re going to make sure attendees know the house rules through a mix of mailshots, entry in the brochure and possibly (although we’re not sure yet) having the house rules printed up and put up probably around the registration area. On top of this we’re looking into first aid training for ops leads and a bunch of safeguarding education so we can improve our responses.

                                                                                                                          This assumes that we get this ready in time for this year’s event. Previous iterations have failed due to opposition to identity-based CoCs, mostly from female members of the crew and female attendees. The feedback that I’ve had is that anything that singles people out on the basis of gender or identity is unfair and uncomfortable for them, and introduces an ugly element to our culture that previously wasn’t part of it.

                                                                                                                          More than anything else, we’re trying to specifically avoid a re-run of donglegate, the FreeBSD debacle(s), and make sure we’re ready to properly support a very severe incident. Ultimately we just want our event to be the same great event it’s always been, to make sure people have a good time and to be welcoming to everyone.

                                                                                                                    1. 10

                                                                                                                      I was curious as to how this bug could have occurred and found on the compcert c page that

                                                                                                                      This part of CompCert (transformation of C source text to CompCert C abstract syntax trees) is not formally verified.

                                                                                                                      So it seems CompCert C’s guarantee is a bit weaker than

                                                                                                                      the generated executable code behaves exactly as prescribed by the semantics of the source program

                                                                                                                      as claimed on http://compcert.inria.fr/

                                                                                                                      And it’s more like, “the generated executable behaves exactly as prescribed by the semantics of the AST we parse your C source program into”

                                                                                                                      1. 4

                                                                                                                        Right: the bug was actually in the parser, not the compiler proper. Maybe I should edit the title?

                                                                                                                        Seemed like a big deal anyway.

                                                                                                                        Edit: Noted parser in title.

                                                                                                                        1. 6

                                                                                                                          http://compcert.inria.fr/man/manual001.html#sec10 shows the project structure, and claims the parser is in fact verified.

                                                                                                                          Edit: https://xavierleroy.org/publi/validated-parser.pdf has the full story on the verified parser. In brief, it’s verified with respect to an input grammar. Which, in this case, contained an error.

                                                                                                                          1. 5

                                                                                                                            [CompCert’s parser is] verified with respect to an input grammar

                                                                                                                            If that’s so, why doesn’t the commit that fixed this bug contain a change to the grammar or the proof?

                                                                                                                            1. 3

                                                                                                                              A look through the patch shows I was wrong about it being a grammar bug. Those do happen, but the actual cause of failure was a little more complex here. I should be more careful about speculating out loud!

                                                                                                                              All the changes were in the “typed elaborator” phase of the compiler, which takes the raw parsed AST into the type-annotated AST that is the top of the verified stack. It seems like a basic error when handling variable scopes that is triggered by the shadowed variable names.

                                                                                                                              Formally reasoning about scope extrusion is difficult and tedious… but I bet verifying the typed elaborator just rose a little higher in the CompCert development priority queue.

                                                                                                                            2. 4

                                                                                                                              Deleted my other comment since I didnt know parser had been verified. My bad. Related to it, I will say the tally of bugs found in specs vs implementation will remain interesting as the weakest version of the proof says the implementation will be at least as accurate or failed as the specification. The Csmith bugs were spec errors IIRC that the implementation faithfully followed. ;)

                                                                                                                              Anyway, such results continue to remind folks formal methods need to be supplemented with other verification techniques.

                                                                                                                            3. 2

                                                                                                                              I’m being pedantic, but the “runtime error” occurred in a program that was compiled by CompCert (and its parser), so the title still isn’t really accurate. (Just saying “error” would be enough…)

                                                                                                                              1. 1

                                                                                                                                Hey, no better venue for pedantry than a story like this. :-)

                                                                                                                                I’d edit the title again, but I can’t. I’d speculate that there’s some kind of time limit or score threshold on title edits… not going to go read the Lobsters source to find out exactly, though.

                                                                                                                          1. 1

                                                                                                                            with the exception of the zero-width assertions, with only these features it’s possible to match any POSIX regular expression…

                                                                                                                            I’m skeptical that zero-width assertions are an exception. What’s an example of a backreference-free POSIX regexp that does not specify a regular language?

                                                                                                                            1. 1

                                                                                                                              POSIX REs per se don’t have backreferences. The point I’m making in that sentence is that POSIX has zero-width assertions (as a feature, they are compatible with regular grammars) but since the toy regexp engine doesn’t have them, any POSIX regexp that depends on them is not replicable with it.

                                                                                                                              1. 1

                                                                                                                                POSIX REs per se don’t have backreferences

                                                                                                                                Do you have a citation?

                                                                                                                                According to http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html :

                                                                                                                                9.5.2 RE and Bracket Expression Grammar

                                                                                                                                This section presents the grammar for basic regular expressions, including the bracket expression grammar that is common to both BREs and EREs. … %token BACKREF L_ANCHOR R_ANCHOR

                                                                                                                                That, as well as other parts of the doc, seem to indicate that back references are part of POSIX regexps.

                                                                                                                                1. 1

                                                                                                                                  Sorry, I meant POSIX extended REs. Only basic REs have backreferences. I’ll clear that up when I update the article.

                                                                                                                                  (Why does ‘extended’ mean ‘has fewer features’? That’s committee-think for you.)

                                                                                                                                2. 1

                                                                                                                                  any POSIX regexp that depends on [zero-width assertions] is not replicable with [a regexp engine that lacks them].

                                                                                                                                  I believe this is false. Again, why do you think it isn’t “possible” to transform regexps with zero-width assertions into equivalent regexp without them? Note that your original sentence even specifies, “after applying the appropriate transformation.”

                                                                                                                                  1. 1

                                                                                                                                    Can you explain a method to transform arbitrary uses of zero-width assertions (^, $, and \b) into arbitrary regexps without them?

                                                                                                                                    1. 1

                                                                                                                                      A straightforward but inefficient method is to convert the source regexp to a DFA, then convert the DFA back to a regexp that uses only union, concatenation, and star.

                                                                                                                                1. 1

                                                                                                                                  With Go and No-Limit Poker falling to bots I don’t think there are any games left where humans dominate bots, just games that bots haven’t been written for yet.

                                                                                                                                  1. 3

                                                                                                                                    Ha! I can’t wait to see the Starcraft results. The complexity is way higher than these toy games that so simplify the interactions between combatants. I want to see it combine 3D object recognition, planning, replanning, detecting/making bluffs, and so on. These games, especially simple mechanics + billions of moves analyzed, make it too easy for the AI’s to outdo humans. I want to see harder situations closer to the messiness that is the real world. Then, see them do the same with as little data as we work with on the games themselves.

                                                                                                                                    1. 2
                                                                                                                                      1. 2

                                                                                                                                        I know. So far, though, all the best bots for Starcraft were defeated by humans trivially despite defeating other bots with amazing displays of micro or planning prowess. The humans just spotted their patterns then worked around them. Occasionally, they bluffed them to hilarious end.

                                                                                                                                        An example was the bot who did battles between units based on a scoring mechanism to determine the strength of one, a group, and so on. Human sensed this. Counter was to send large group of units at an enemy group to make them scatter. Then, split that group into smaller ones to go after each individual enemy unit. Scoring made enemy units weaker than what was sent after them. So, enemy units always would flee without firing a single shot back at human players despite actually being able to defeat a bunch of them. Another example was even simpler where human just ran some units randomly through the enemy bases while building an army to hit them. Enemy AI was unprepared as it wasted all its focus countering the “attack” since it couldn’t call a bluff.

                                                                                                                                        Examples;

                                                                                                                                        https://www.cs.mun.ca/~dchurchill/starcraftaicomp/history.shtml

                                                                                                                                      2. 2

                                                                                                                                        It’s not StarCraft-specific, but here’s some progress on the graphics recognition you wanted: https://arxiv.org/abs/1805.11592

                                                                                                                                        1. 1

                                                                                                                                          That’s really neat. Thanks! On the other end of things, there’s some circumstantial evidence that my prediction in favor of humans on Starcraft will be right.

                                                                                                                                        2. 2

                                                                                                                                          I agree with Nick that we’re far from bots dominating all games. I’m not sure Starcraft will hold out that long once they get going on it because computers have an inherent edge in the reflex-based/micro parts of the game.

                                                                                                                                          I’d love to see someone work on competitive bots for more complex games of imperfect information, like Magic or Netrunner. Although I suppose computers have a similar edge to the one they have in Starcraft, in that they can count cards and compute probabilities much faster and more reliably that humans.

                                                                                                                                          I’m also interested in competitive card games because metagaming (i.e. having a good understanding of the dominant strategies and styles of play, how to beat the others with yours, etc.) is necessary to do well. How will we give the machines metagame knowledge? Having a metagame also complicates the definition of “fair” for human vs. computer play.

                                                                                                                                          1. 2

                                                                                                                                            Indeed, even amateur bot authors report a significant edge:

                                                                                                                                            This achieves an “idle” APM of about 500 and its battle APM is between 1000 and 2000 (as measured by SC2’s replay counter.)

                                                                                                                                            I’m not into SC2, but I found some fans saying tournament-level humans operate around 150 APM with spikes into the 300-600 range.

                                                                                                                                            I think metagaming is a distinction without a difference to AIs like Alpha Go.

                                                                                                                                            1. 1

                                                                                                                                              I think metagaming is a distinction without a difference to AIs like Alpha Go.

                                                                                                                                              I don’t think you’re correct, at least not for all games.

                                                                                                                                              Consider this scenario:

                                                                                                                                              I’m trying to build an AI for a rock-paper-scissors-lizard-spock tournament. An AI like Alpha Go will ultimately find the optimal strategy: pick uniformly at random. However humans suffer from biases, so a human who has studied their opponent’s habits may place better in the tournament than the AI.

                                                                                                                                              In games like Go, this doesn’t seem to end up being particularly important. In games like Starcraft, I could be convinced that it’s not too important. In games like MtG, I think it’s quite important, at least until the AI successfully models deck construction as part of the game, which is qualitatively different than what Alpha Go has already done.

                                                                                                                                              1. 2

                                                                                                                                                There’s metagame in Chess and Go, though they’re certainly much smaller than in MtG. The popularity of openings and responses to common gambits has changes over the years just like it does in MtG. It didn’t matter.

                                                                                                                                                “Metagame” is a convenient distinction for people to talk about playing matches in the larger game of deckbuilding, but that doesn’t make it any less of a game. The task of analyzing and responding to “metagame” strategies is exactly the same as the task of playing the live game itself.

                                                                                                                                                It’s going to be years before a state-of-the-art AI implementer turns to MtG, but I’m not going out on a limb when I say that humans will lose.

                                                                                                                                                1. 1

                                                                                                                                                  but I’m not going out on a limb when I say that humans will lose.

                                                                                                                                                  I agree that humans will lose eventually, but I think your original claim of “distinction without a difference” is too strong, because it asserts that humans will lose to AI that is largely of the same form as the AI now.

                                                                                                                                                  I would not be surprised (though I am not confident it is the case) if the success of Alpha Go’s architecture is limited in MtG and if competing with humans requires a different architecture.

                                                                                                                                            2. 1

                                                                                                                                              computers have an inherent edge in the reflex-based/micro parts of the game

                                                                                                                                              Tournament organizers might initially allow computers to have that edge, but eventually, to keep the games interesting, I expect they would cap the AI’s actions per minute to the level of a top human.

                                                                                                                                              1. 3

                                                                                                                                                That’s what I recommend at first. It will help us assess what they can pull off given similar constraints to humans. I’m sure someone will complain that it’s basically cheating for humans because the computers could do better. In that case, I would be fair by limiting the computer to the size and energy consumption of the human brain but removing the actions per minute limit. The bot authors would ask to reinstate the APM limit instead.

                                                                                                                                            3. 1

                                                                                                                                              I want to see it combine 3D object recognition

                                                                                                                                              Here’s an approach.

                                                                                                                                            4. 1

                                                                                                                                              Your comment made me lookup the state of Arimaa, a game designed to be difficult for computers using then-standard techniques: TIL that computers beat humans at it in 2015 (source).

                                                                                                                                            1. 3

                                                                                                                                              http://www.keithschwarz.com/darts-dice-coins/ gives a step-by-step derivation of the alias method from simpler algorithms.

                                                                                                                                              1. 1

                                                                                                                                                thanks! my reaction to discovering the algorithm was precisely the same as the author’s:

                                                                                                                                                Second, and perhaps more surprisingly, this algorithm has been known for decades, but I had not once encountered it! Considering how much processing time is dedicated to simulation, I would have expected this technique to be better- known.