OCaml Resources (2006) - <AUTHOR> http://www2.lib.uchicago.edu/keith/ocaml-class/home.html <comment><USER2> OCaml/js_of_ocaml is presently my favourite AltJS stack.

OCaml syntax is super idiosyncratic and doesn't resemble anything, but, once you retrain your eyes, the underlying semantics are terrific.

js_of_ocaml imposes very minimal code overhead (6k-ish). Sourcemaps work great, and OCaml values are mapped into JS in a very straightforward way. You can read them in a JS debugger.

Ocsigen's lwt library is also the best "callback hell" solution I've found.

<comment><USER3> Could you recommend a project to look at? I'm familiar with OCaml but found Ocsigen as a whole impenetrable and would be interested in something more library than framework.

<comment><USER4> You have opium [1], which is considerably lighter and more traditional (no Eliom stuff).

1: [https://github.com/rgrinberg/opium](https://github.com/rgrinberg/opium)

<comment><USER5> I think the GP wanted something with js_of_ocaml. Nevertheless, as the author of Opium, I am grateful for your recommendation :)

</comment></comment></comment></comment><comment><USER6> I started writing OCaml in college after hearing a talk by Jane Street [0], one of the most outspoken corporate supporters of OCaml.

After getting past the steep learning curve (about a weekend of pedal-to-the- metal debugging), I really got a feel for how beautiful OCaml semantics really are.

If you're looking for a solid and familiar OCaml stack, check out OWebl [0]. Always looking for helping hands or other support.

[0] - [https://www.janestreet.com/](https://www.janestreet.com/)

[1] - [http://meetowebl.com](http://meetowebl.com)

</comment><comment><USER7> There's a very good (and multithreaded!) implementation of OCaml for the JVM: [http://www.ocamljava.org/](http://www.ocamljava.org/)

<comment><USER8> Well, if you are the quasar/pulsar guy I think you are, I will take you up on your praise then.

And because of my guess, what do you think of the performance?

<comment><USER7> I am, and thanks :)

I haven't got to the point of doing any benchmarks, but according to the author, it is slower than plain OCaml. I've only written a couple of toy programs (a Swing GUI in OCaml!)

I am, however, very impressed by the implementation. The author wrote an OCaml library that emits Java bytecode, and then modified the OCaml compiler to emit bytecode. He then ran the compiler on itself, and got an OCaml implementation on the JVM written completely in OCaml (plus some runtime classes in Java).

The author, who used to work at INRIA told me he's now working on a startup using OCaml-Java.

<comment><USER8> I also think it is interesting, once I put 2+2 together, you pointed out the OCaml Java runtime from Xavier is not open source ... yet. It will be, but it is binary only at this point.[1]

I want to make a joke about the F/L/OSS spirit of this guy, but the whole QPL thing has been repeated a la Shen in circles where I read and seems to have left a sour taste in the mouth of some, like this guy.[2]

Still, I am in place to judge OCaml devs or the community around them, as they seem increasingly awesome. I am a novice, but a CS undergrad in my hood specifically said check out OCaml when we discussed functional langs because of the Jane Street videos. And before that, my only expsoure to what OCaml was, let alone is or even coding it, was the eMule software package.

Anyway, good to see you on the field. If you are paying attention to this, I certainly will! [1] [https://github.com/xclerc/ocamljava/issues/22](https://github.com/xclerc/ocamljava/issues/22)

[2] [http://programmers.stackexchange.com/a/62704](http://programmers.stackexchange.com/a/62704)

</comment></comment></comment></comment><comment><USER9> OCaml is a hard sell for me. I want to really like it but everytime I start to play with it, I drift back to F#, .net core, service stack, and all the other open source projects are really hard to compete with. The Syntax is similar to OCaml (really really close IMO) and other then it's ties to Microsoft it's seems to be all upside with F#. Is there a compelling lib or advantage of OCaml over f#?

<comment><USER10> Functors tend to be the big thing that's missing, right? F# just had to drop the feature because of compatibility with .Net packages, as I understand, but it severely cripples the module system.

MLs are such that the value-level stuff and the module-level stuff are more or less independent. So you can go a long way just liking the value-level stuff without really caring about the status of the module-level stuff. But it's also a pretty big motivator for the design of ML. F# is at least weirdly missing out here.

<comment><USER11> Can you provide an example of how functors make Ocaml code different from F# code in practice?

<comment><USER10> Sure. I'm not super familiar with F#, but I can state things which depend upon functors.

A good example is the Set.Make functor in the OCaml stdlib. Elements in a Set must be orderable for efficiency's sake, so to construct a Set you parameterize it over a module specifying not only the type but also its ordering.

        module type Set = sig
          module type OrderedType =
            sig
              type t
              val compare : t -> t -> int
            end
          module type S =
            sig
              type elt
              type t
              val empty : t
              (* ... *)
            end
          module Make :
            functor (Ord : OrderedType) -> S
              with type elt = Ord.t
        end

Here the OrderedType module signature represents any type that also has an ordering. The S signature represents the result signature of calling the Make functor which is passed any OrderedType-substantiating module and uses it to construct the (Set.S with type elt = Ord.t) module.

</comment></comment></comment></comment><comment><USER12> This page is from 2006!

I guess the official homepage [http://ocaml.org](http://ocaml.org) would be better for up-to-date information.

</comment><comment><USER13> I recently looked at OCaml and quite liked it, but I was wondering if there is any SLIME/Geiser (these are the lisp and scheme IDEs for emacs) equivalent for it? I know there is tuareg-mode, but as far as I can tell it is not nearly as convenient as SLIME. Any ideas?

<comment><USER14> I don't know what you are looking for when you compare things to SLIME but I was quite satisfied with the setup they suggest in realworldocaml:

[https://github.com/realworldocaml/book/wiki/Installation- Ins...](https://github.com/realworldocaml/book/wiki/Installation-Instructions)

* OPAM for package management * Utop for a REPL * merlin for autocomplete and type queries * ocp-indent for aotomatic indentation

<comment><USER15> [https://github.com/OCamlPro/opam-user- setup](https://github.com/OCamlPro/opam-user-setup) tries to make the setup even easier

</comment></comment></comment><comment><USER16> I've been developing in Haskell for a while and I recently had to learn OCaml to help TA for a course in my university.

I couldn't shake the feel that I was learning "Haskell Light". No pure/impure code (I/O, mutable references, exceptions), no monad syntax sugar, less syntax sugar for pattern matching, much smaller base library, plus surely other differences that my current level of expertise of Haskell is hiding.

Perhaps the simpler semantics make it easier to translate to js (I know haskell->js transpilers are very complex and I'm sure lazy evaluation has a lot to do with it), but in terms of language features, what am I missing in Haskell that makes you more productive/helps you write clearer code in OCaml?

<comment><USER17> OCaml's module system (and conventions associated with it) give a few advantages over Haskell.

\- There are good conventions for naming and argument order (and named arguments!) so I don't have to memorize a bunch of different APIs. This is made possible by the module system. It could probably be solved in Haskell with better tooling.

\- Modules allow you to, for lack of a better word, make your code more modular. Modules are essentially the same thing as what people use objects for in Java. They let you abstract implementation and program against a particular interface (i.e., a collection of types and values) easily in a way you can't really in Haskell.

<comment><USER16> Can you give a specific example? If you need abstract interfaces, what's wrong with Haskell's type classes?

<comment><USER18> OCaml modules have many similar characteristics to Haskell type class[0]. One of the primary differences being that the Haskell type classes handle dictionary passing automatically and support ad-hoc polymorphism. This can be achieved with ML modules but requires bit more labor.

Haskell type classes can make it a bit easier to encode (and infer) interfaces but assume a single implementation per data type. ML modules do not make this assumption and support a higher degree of modularity as a result.

Robert Harper has some extremely good writing out there on this topic (and many more): [https://existentialtype.wordpress.com/2011/04/16/modules- mat...](https://existentialtype.wordpress.com/2011/04/16/modules-matter-most/)

[0] - [http://www.mpi-sws.org/~dreyer/papers/mtc/main- long.pdf](http://www.mpi-sws.org/~dreyer/papers/mtc/main-long.pdf)

</comment></comment></comment></comment><comment><USER19> How does Ocaml compare with F#? Now that .net is open source and supports multi platforms, is it fair to compare these 2 languages?

<comment><USER4> OCaml has no corporate support and a limited standard library. It does not benefit from the larger MS ecosystem. It does not have multicore support (not until the end of the year if all goes well). On the other hand, it is really fast, it has some great features (functors, mostly) not found in F#, a really good package management story, and some great libraries (eg, lwt). It can also boast of having one of the most developed unikernels out there (mirage) and can generate sane Javascript via js_of_ocaml.

That said, it's definitely an even harder sell than F# in the corporate space.

</comment></comment><comment><USER20> I can't find the time to learn a language for fun. I need to find a way to incorporate it into my daily routine. There just aren't enough hours in the day to play.

Anyway, I've got a couple side projects, one of which is website in Go. How's OCaml for web development?

I also saw oCaml for iOS but it didn't seem to be up to date: [http://psellos.com/ocaml/compile-to- iphone.html](http://psellos.com/ocaml/compile-to-iphone.html)

<comment><USER21> There are ocsigen ([http://ocsigen.org/](http://ocsigen.org/)) and opium ([http://rgrinberg.com/blog/2014/04/04/introducing- opium/](http://rgrinberg.com/blog/2014/04/04/introducing-opium/)), OWebl ([http://meetowebl.com/](http://meetowebl.com/)), xbreed ([https://github.com/mk270/xbreed](https://github.com/mk270/xbreed)) and maybe others... See also: [https://news.ycombinator.com/item?id=2235204](https://news.ycombinator.com/item?id=2235204)

<comment><USER20> Yeah, I'm sure there are lots of small projects. Are any widely used that have matured? I don't want to play with someone's part time project.

<comment><USER21> ocsigen is used in production (by Facebook for an internal project, for instance). There is a more complete list on the website.

</comment></comment></comment></comment><comment><USER22> My only skeptikism with OCaml is that OPAM (latest packages) does not work on windows and does not cooperate with msys2 (lates libraries) or another port solution like winbuilds.

I have to install msys2 and keep compiling by hand.

Even if a source solution that kept updating even if I had to compile regularly, would be preferable.

This is my only hesitation.

<comment><USER23> The email@example.com working group has just started this week to sort this out properly. Now that OPAM itself is fairly mature on Linux/BSD/MacOSX, we can tackle this properly.

Please do feel free to join the group and give your 2 cents about the direction that this should take: [http://lists.ocaml.org/listinfo/wg- windows](http://lists.ocaml.org/listinfo/wg-windows)

</comment></comment><comment><USER24> I did a couple small projects in OCaml and I loved the syntax and style of programming, but I think there would pretty much always be a better language choice for a serious project, regardless of what type of program you are writing. Also, the standard library leaves a lot to be desired and parts of the ecosystem (e.g. docs, and OPAM) are pretty rough. The standard library has a lot of gaps so you end up implementing a lot of low-level functions that will seem tedious and inefficient if you are coming from a more mainstream language with a rich ecosystem. Using the Jane Street's Core library helps a little bit but still leaves a lot of gaps. It's still a fun language though, but I don't think there would be a compelling reason to choose it nowadays for a new project.

<comment><USER25> > there would pretty much always be a better language choice for a serious > project

The Mirage library OS is a pretty serious project. Facebook also uses OCaml for Flow and the Hack type checker. And of course, Jane Street Capital uses OCaml.

But I'm guessing what you mean is that OCaml is a very non-mainstream language, so it will be rejected for most corporate projects just because it's so foreign.

<comment><USER24> > But I'm guessing what you mean is that OCaml is a very non-mainstream > language, so it will be rejected for most corporate projects just because > it's so foreign.

Rather than snidely guessing what I meant, why not just read the rest of my comment or ask for clarification like an adult? Also, I'm not denying there are a few odd projects here and there that use it successfully -- as well as Jane Street, of course, who are almost synonymous with OCaml. But like I said, although it is a very nice (and educational) language, I just don't feel like it is "best of breed" in any particular area. Not sure what that has to do "corporate projects", etc.

<comment><USER25> > Rather than snidely guessing what I meant, why not just read the rest of my > comment or ask for clarification like an adult?

You're right; I'm sorry.

</comment></comment></comment></comment><comment><USER26> I'm studying this language right now at a french school, with INRIA researcher.

And, well... I'm not really satisfied with it. OCaml produces a small amount of code, but is really slow and hard to understand. Sometimes, it looks like obfuscated code!

Documentation and libraries are not polished, and I would recommend Haskell instead of OCaml. Good for research and some algorithms, bad for applications.

And... God... "This page was last updated on 17 June 2006."

<comment><USER27> Same feeling, and why are they ignoring EVERY programming convention ? One more thing I really hate is there are many way to the same basic thing, ie. declaring a new function or doing a pattern matching. Finally, standard libraries are not well named (List.split will not do what you think) nor easy to use (List.last ? Nope !).

<comment><USER2> This is very consistently my biggest problem with OCaml: it just doesn't follow conventions set in other ecosystems. I predict this is the sole reason it could never be "the next Java."

It's worth noting, however, that I've had very, very few problems with the semantic properties of the language. I think the slog is worth it for that reason.

<comment><USER28> > This is very consistently my biggest problem with OCaml: it just doesn't > follow conventions set in other ecosystems.

Well, the reason is that Caml predates those ecosystems; the original Caml was released nearly a decade before Java [1], and ML itself dates back to the 1970s.

[1] [http://caml.inria.fr/about/history.en.html](http://caml.inria.fr/about/history.en.html)

<comment><USER2> Right. I mean only to say that OCaml's superficial strangeness is regrettably offputting.

Talk of syntax is almost always history and religion, not science.

</comment></comment></comment></comment></comment><comment><USER29> I was as recently as today quite curious to find that there was an implementation of Ocaml 2.00 for RISC OS, but alas, it seems to have been lost to the internet.

</comment><comment><USER30> Caml Light was my introduction to the FP world back in the day. Very nice experience.

</comment><comment><USER31> 404 on some links

</comment><comment><USER32> This is just a list of resources to learn OCaml, there is nothing about convincing skeptical people here.

Also, this page is almost ten years old.

Not sure how this kind of post ever makes it to the front page.

<comment><USER33> Useful/interesting discussions are sometimes reason enough to upvote.

<comment><USER34> Very good point, most of the time when a post with a "sensationalistic" title makes it to the front page I immediately go to the comments section first.</comment></comment></comment>


Interns From Ivy Leagues Or Private Schools Are Unwanted - <AUTHOR> http://www.forbes.com/sites/cameronkeng/2013/09/23/interns-from-ivy-leagues-or-private-schools-are-unwanted/ <comment> steve-howard > To be fair, there are bad apples in every college and it's likely that > expectations from Tier 1 schools are higher. But, below are a few stories > that you can judge yourself.

This is a terrible article and the above line confirms that it's essentially collecting some bad anecdotes to paint a broader picture of "tier-1" interns.

<comment><USER2> I agree, particularly with the anecdote of the intern countering for a $15/hour wage. NYC is by no means a cheap city and even I was making $15/hour as an intern many, many years ago. $10/hour is rather insulting and barely makes a dent in the living costs of a student yet alone their tuition costs.

<comment><USER3> Wow, I'm interning at a software company in the Bay Area and my normalized hourly wage is _way_ more than $15/hour. Is it just me, or do a lot of firms these days just exploit cheap labor as a way to avoid admitting that their business models are actually quite low-value?

<comment><USER4> I think that is just Bay Area and/or tech bias. My own internship years ago started at $15 and quickly scaled up. I was going to community college at that time. *typoed

<comment><USER3> Ok, in support of your point, I got my BSc Comp Sci in 2011, have previous professional experience, and I'm really just working full time for two months while on grad-school vacation. So while I'm justifiably not paid as much as the _real_ full-time engineers here, I'm more valuable to the company ( _I would hope!_ ) than an average college sophomore doing his/her first internship in his/her own profession.

Again: anecdotal evidence, disregard that I suck bananas, etc.

</comment></comment></comment></comment></comment><comment><USER5> "Interns who want to get paid > $10/hr to do professional-quality work are unwanted."

Is there a browser plugin that erases Forbes and Medium links from HN?

</comment><comment><USER6> Can we stop posting stuff from Forbes' blogging platform? This kind of content is rarely well-researched (or interesting).

</comment><comment><USER4> All the smart/hardworking interns from tier 1 schools end up in tier 1 companies. So chance of getting a bad apple for an average company is so much higher.

</comment><comment><USER7> There is this issue: if you go to school to learn- you pay the school big bucks; if you go to a company and still need to learn a lot before you are worth anything; and there is little expectation of you staying with the company long enough to be worth anything... its why the military requires 4 year commitments before they pay for your training.

</comment><comment><USER8> Yeah! All Ivy League kids demand to be paid too much and then just fall asleep at their desks and lie about deaths in the family!

Disclaimer: I go to UPenn, but that doesn't make this article less of a pile of bullshit.</comment>


Show HN: Business Card Brainfuck, a brainfuck interpreter in 512 bytes of C code - <AUTHOR> https://github.com/kgabis/business-card-brainfuck <comment><USER2> There are only 8 commands in Brainf _k, all of which are punctuation. i.e.: <>[],.+-

Krzysztof Gabis's Business Card Brainf_k ignores all other characters, including whitespace.

Panu Kalliokoski's archive of information re the language at: [http://esoteric.sange.fi/brainfuck/](http://esoteric.sange.fi/brainfuck/)

A good beginning page is: [http://www.muppetlabs.com/~breadbox/bf/](http://www.muppetlabs.com/~breadbox/bf/)

</comment><comment><USER3> sed 's/HERP/\>/g ; s/DERP/\</g ; s/HURR/\\+/g ; s/DURR/\\-/g ; s/GIGGITY/\\./g ; s/GOO/\,/g ; s/WOOPY/\\[/g ; s/DOO/\\]/g' $1</comment>


Leaked details about new Apple Watch - <AUTHOR> http://www.businessinsider.com/apple-watch-features-battery-life-leaked-2015-3

<comment><USER2> _The source said an Apple Watch with more than 200 WatchKit apps became "noticeably sluggish on the Home screen"_

If that is something to complain about, it must be quite responsive in normal use.

I would think a tablet with over 200 apps already is the exception. Mine has less than 100, many of which I very rarely use (examples: 12 'camera toys', 3 cloud providers that are there just in case someone sends me an URL)</comment>


AI-generated Joe Rogan fake has to be heard to be believed - <AUTHOR> https://www.theverge.com/2019/5/17/18629024/joe-rogan-ai-fake-voice-clone-deepfake-dessa <comment><USER2> If only I could use this to narrate my audiobooks. Is it illegal to use someone's voice?

</comment><comment><USER3> Title was not click bait. This is pretty impressive.</comment>


How to Make Your React Apps 15x Faster - <AUTHOR> https://reactjsnews.com/how-to-make-your-react-apps-10x-faster <comment><USER2> Great read.</comment>


On Systems and Authority - <AUTHOR> http://a-shared-404.com/blog/on-systems-and-authority/ <comment><USER2> Congratulations. You've rediscovered from first principles the impetus behind the Declaration of Independence.

The answer you were hovering is, is a tenative yes. A system that no longer brings about it's intended ends need be revised or done away with until it does, and that means a dismissal of the authority currently driving The system. The part you haven't really touched on though that is critical to take into account, is what it means for a system and it's authority to be in that state when the components that make up that system exist independently from the system.

Looking at a human composed system, the humans have organized and accepted a state-of-affairs composed of a set of collective delegations of authority. Wipe out that set of delegations, you wipe out the authority, the system is essentially in a reset state (implying a higher order meta-system, but let's not go there).

You are then left with the challenge of developing a predominant consensus amongst the components of the old system in order to set back up the significant network of functional working relationships, and thereby, functional authorities.

All of this being much easier said than done.

<comment><AUTHOR> > The part you haven't really touched on though that is critical to take into > account, is what it means for a system and it's authority to be in that > state when the components that make up that system exist independently from > the system.

An excellent point

        Looking at a human composed system, the humans have organized and accepted a state-of-affairs composed of a set of collective delegations of authority. Wipe out that set of delegations, you wipe out the authority, the system is essentially in a reset state (implying a higher order meta-system, but let's not go there).

        You are then left with the challenge of developing a predominant consensus amongst the components of the old system in order to set back up the significant network of functional working relationships, and thereby, functional authorities.

It seems to me like the most efficient way to accomplish this would be to temporarily retire a system in order to have time to revamp/rebuild it. In order to do this effectively, you would of course need some temporary hold- over system. This holdover would not need to accomplish all of the functions of the original, but just enough so that things don't fall apart.

I don't really know how this could be implemented in a general way, but for the school system, it could look like:

        1. Schools close and go remote (Already mostly happening due to covid).

        2. School system audited by teachers/professional educators.

        3. After auditing, superfluous elements of the system are removed, and missing elements added.

        4. Re-open, following the new system.

That being said, I'm kind of an idiot, and don't really know what I'm talking about. Also, as you stated:

> All of this [is] much easier said than done.

</comment></comment><comment><AUTHOR> I wrote this a little while ago. I'm not really sure why, and I don't know how accurate it is.

I'd love to hear anyone else's thought's on this topic.

Also, sorry about the self link.</comment>


What's new in Unicode 7.0? - <AUTHOR> http://babelstone.blogspot.co.uk/2013/10/whats-new-in-unicode-70.html <comment><USER2> The current dispute between Marshallese and Latvian is a phenomenal example of the sort of puzzles here.

Apparently the Marshallese require some characters to display with cedillas, and Latvian has characters traditionally named "(some letter) WITH CEDILLA" even though they are displayed with commas... so if you just say "LETTER WITH CEDILLA" it's now not clear whether you mean cedilla or comma, and correcting it would break Latvian.

[http://www.unicode.org/L2/L2013/13128-latvian-marshal- adhoc....](http://www.unicode.org/L2/L2013/13128-latvian-marshal-adhoc.pdf)

Not sure how they do this work without going slowly insane.

<comment><USER3> The same scenario - S and T with cedillas, used in Turkish and (used to be) used in Romanian. Only that Romanian letters should be with comma, not cedillas (on small scale the difference is not distinguishable). So it's Romanian vs Turkish? No, it isn't! S and T with commas were added for Romanian later (somewhere waaay separate from other Romanian diacritics) in the Unicode set and everybody is happy! ...and sane.

<comment><USER2> Latvian and Marshallese is slightly more confusing, because Latvian commas are already called cedillas in the unicode names, despite not actually being cedillas.

Sure, they'll just extend by adding something like "MARSHALLESE CEDILLA" to refer to actual cedillas. But it still must be frustrating to discover areas where traditional orthographic names are ambiguous or even misleading.

</comment></comment></comment><comment><USER4> Isn't Linear A a little bit of an overkill? I mean, if we at least knew what it meant, maybe then, but now?

<comment><USER5> And "MAN IN BUSINESS SUIT LEVITATING" is not overkill?

Seems to devalue the entire standard and project.

edit: Unicode should be universally useful. This is not. I would love to be convinced otherwise however .....

<comment><USER6> You want each character, on it's own, to be _universally_ useful? That's a pretty high standard, there wouldn't be very many characters to meet it and include in the repertoire.

Pretty much every character that exists is useful to some people some time, but not every person all the time.

<comment><USER7> ... and emoji, in particular, are actually very useful (and well-used) for average every-day communication amongst huge numbers of people.

Obviously some are going to be _more_ useful than others, but it would be quite difficult to find a subset of them that are obviously so completely useless that they should be dropped.

The Unicode consortium's practice of just adopting complete scripts wholesale is vastly simpler and works out quite well in practice.

</comment></comment></comment></comment><comment><USER8> I see one character that will be hugely successful now that it's standardized: 1f595

<comment><USER9> 🖕

DISCLAIMER: This is not a personal attack but a demonstration of the character.

<comment><USER10> Nice square.

</comment></comment></comment><comment><USER11> Surprising that it took this long to introduce the middle finger as a standard character.

Emails will never be the same again.

<comment><USER12> ....................../´¯/)

....................,/¯../

.................../..../

............./´¯/'...'/´¯¯`·¸

........../'/.../..../......./¨¯\

........('(...´...´.... ¯~/'...')

.........\\.................'...../

..........''...\\.......... _.·´

............\\..............(

..............\\.............\\...

</comment></comment><comment><USER13> Still no Klingon? Quvatlh!

<comment><USER14> Here's an interesting response[1] from Michael Everson back in 1997. Also interesting is that there's already a reserved area in the CSUR (ConScript Unicode Registry) for it[2], and you may even have a font that shows it[3]! I was surprised I had one: !

[1]. [http://www.unicode.org/mail-arch/unicode-ml/Archives- Old/UML...](http://www.unicode.org/mail-arch/unicode-ml/Archives- Old/UML009/0146.html)

[2]. [http://www.evertype.com/standards/csur/klingon.html](http://www.evertype.com/standards/csur/klingon.html)

[3]. [http://www.wazu.jp/gallery/Test_Klingon.html](http://www.wazu.jp/gallery/Test_Klingon.html)

</comment></comment><comment><USER15> They lost me when they went to 21 bits.

<comment><USER15> So a middle finger gets fewer downvotes than a technical commentary. awesome.

<comment><USER16> That wasn't a technical commentary.</comment></comment></comment>


MostPeople Newsletter – For people who don't take kindly to the status-quo - <AUTHOR> http://www.mostpeople.co <comment><AUTHOR> Hey Everyone! Happy 4th of July! I wanted to share with everyone a new project I am working on. It's a newsletter which curates 10 articles every week of things you might not be exposed to generally(more info on sign up page). This could be programming related to may other things. Any support would be great so please sign up by going to the link bellow. Any opinions/suggestions from this community would also be great. Thank you and Happy holidays!

[http://www.mostpeople.co](http://www.mostpeople.co)</comment>


It rains solid diamonds on Uranus and Neptune - <AUTHOR> https://www.washingtonpost.com/news/speaking-of-science/wp/2017/08/25/it-rains-solid-diamonds-on-uranus-and-neptune <comment><USER2> The WP article says that "Most lab-grown stones are produced via a blasting process..." This is not true.

Where "lab-grown stones" means gem quality diamonds, they're produced by microwave-activated plasma chemical vapor deposition.

Some small-diameter diamond abrasives and nano diamonds are produced with explosives. Nothing bigger than a few microns in diameter, AFAIK.

</comment><comment><USER3> Paywalled. More easily accessible at [http://www.dailyitem.com/news/it-rains- solid-diamonds-on-ura...](http://www.dailyitem.com/news/it-rains-solid- diamonds-on-uranus-and- neptune/article_399b67ec-89c3-11e7-9c4e-a70a13ac604f.html)

<comment> blubb-fish huh - where is the pay wall? maybe it's neutralized by ublock origin.

</comment></comment><comment><USER4> Can we officially rename Uranus to Caelus? Uranus (more accurately, Ouranos) is a Greek god. Besides Earth, all the other planets are named after Roman gods, thus Uranus should be named Caelus to be consistent.

<comment><USER5> I've always preferred "Terra" or "Gaia" to "Earth."

It could be a preference from video games, or maybe it's because the common usage and being a synonym for ground and dirt has made the word seem "low- brow" and the alternatives classy, exotic or poetic, and if their popularity was reversed we would think "Earth" was a classier word, but still.

"Terrans" will always sound better than "Earthlings" however. :)

<comment><USER6> I think this is just one instance of a near-universal perception among English speakers that Greek/Latin words ("Terra") sound more sophisticated than Anglo- Saxon ones ("earth").

It's hard to hypothesize about whether this could be reversed in an alternate universe because this tendency goes back many centuries: for a loooong time Latin was the language of the scholarly and political elite, whereas Anglo- Saxon Old English was used by commoners.

<comment><USER4> There is a similar reason for why English swear words sound Germanic: [http://blog.oxforddictionaries.com/2015/06/swear-words- etymo...](http://blog.oxforddictionaries.com/2015/06/swear-words-etymology- and-the-history-of-english/)

<comment><USER7> Such an interesting article. Churchill was known to take advantage of this in his speeches, for example in (parts of) the famous "We shall fight them on the beaches": [https://english.stackexchange.com/questions/97665/did-the- we...](https://english.stackexchange.com/questions/97665/did-the-we-shall- fight-on-the-beaches-speech-mainly-use-words-from-old-english)

Broadly speaking, the short words are the best, and the old words best of all. - Winston Churchill

</comment></comment></comment></comment></comment><comment><USER8> Can someone explain a concept to me? I never understood how gold rushes were profitable. If you suddenly found a mass quantity of a "rare" material, wouldn't it no longer be valuable since its value depended on its scarcity?

<comment><USER9> Depending on the resource, there may be latent demand that can be met when a cheaper source of a resource is discovered. Demand curves are not linear.

Often times, as a resource becomes more readily available, a ton of new uses spring up that were not economically feasible when the cost was higher.

<comment><USER10> The term for this is price elasticity: [http://www.investopedia.com/terms/p/priceelasticity.asp](http://www.investopedia.com/terms/p/priceelasticity.asp)

</comment></comment></comment><comment><USER11> Book recommendation: The Man Who Sold the Moon by Robert Heinlein. One of the things handled in the plot is the fictional assertion that the moon is covered in diamonds.

<comment><USER12> Seeing the story about water on Luna reminded me of _The Moon is a Harsh Mistress_. And now the public library copy is on my desk.

<comment><USER13> I'm reading some more recent short stories right now that take place in several moon colonies. They talk a lot about the scarcity of water.

</comment></comment></comment><comment><USER14> I think this is a pretty gross misuse of the word "rain" for clickbait. The diamonds form close to the planets' solid _cores_ , not anywhere near what we see as the planets' surfaces.

</comment><comment><USER15> Reminds me of a plot point in Arthur C. Clarke's _2061: Odyssey Three_.

 _Lucy in the sky with diamonds..._

</comment><comment><USER16> There's an old sci-fi short story about a planet with diamond rains. I wish I could remember the name - Google is failing me right now. I think I read it in one of those yearly compilation books.

<comment><USER17> One great place to identify stories is the Science Fiction and Fantasy StackExchange site. They have a tag specifically for story identification, and they're very good at finding stories, common and obscure alike. I'd suggest you check it out if you'd like to find out exactly what it was.

<comment><USER16> Thank you, posted it. No luck so far, but someone linked me to another person asking the same question with a better description of the story.

[https://scifi.stackexchange.com/questions/168074/does- anyone...](https://scifi.stackexchange.com/questions/168074/does-anyone- remember-the-name-of-an-old-short-story-set-on-a-planet-with-diamond)

</comment></comment></comment><comment><USER18> In _The Killing Star_ , by Charles R. Pellegrino and George Zebrowski, there's a section where a submarine-like vessel explores the depths of Neptune. They find diamonds there.

</comment><comment><USER19> Hasn't this been debunked?

<comment><USER20> New shit has come to light, man.

<comment><USER19> Noice!

</comment></comment></comment><comment><USER21> SpaceX' master plan revealed. Poor DeBeers.

<comment><USER22> CVD diamond synthesis has become so effective that it's embarrassing.[1][2] The diamond gem industry made a terrible mistake. They promoted "flawless" diamonds as the most valuable. Now they're up against a process borrowed from the semiconductor industry, which makes flawless crystals in bulk.

DeBeers keeps trying to maintain the distinction between natural and synthesized diamonds, but it's coming unglued. They keep coming out with more and more elaborate machines for detecting synthetic diamonds.[3]

[1] [http://www.cvd-diamond.com/products_en.htm](http://www.cvd- diamond.com/products_en.htm) [2] [https://www.alibaba.com/showroom/cvd- diamond.html](https://www.alibaba.com/showroom/cvd-diamond.html) [3] [http://www.telegraph.co.uk/business/2017/02/28/de-beers- step...](http://www.telegraph.co.uk/business/2017/02/28/de-beers-steps-hunt- fake-diamonds-detector-box/)

<comment><USER23> Synthetic diamonds are not available to consumers much cheaper than real ones.

<comment><USER22> Look on Alibaba. Cubic zirconia by the metric ton. CVD and HPHT synthetic diamonds, polished, in bulk. (Be careful that you don't get cubic zirconia when you order diamonds, though.)

</comment></comment></comment></comment><comment><USER24> Uranus is fine in my mother tongue /p

</comment><comment><USER25> If diamonds are coming _out_ of Uranus, though, you gotta relax more.

</comment><comment><USER26> Please stop posting pay walled links, or at least put in the title that they are pay walled.

<comment><USER27> Open in private browsing window.

<comment><USER28> Things you don't say out loud

</comment></comment></comment><comment><USER29> I once said in a college paper that what gets listed as _scarce resources_ will change as we venture into space.

#thisisawesome

<comment><USER30> It'll still be scarce because it's still under diamond producing pressure! No submarine is going to be able to dive down and get them.

<comment><USER29> Eh, my point is this bears out the principle behind my idea, not that we can readily mine these specific diamonds.</comment></comment></comment>


Avoid Useless Confirmation Dialogs - <AUTHOR> http://usersinhell.com/useless-confirmations/

<comment><USER2> From a UX point of view I absolutely agree.

However, I was told by my bank that federal law limited electronic transfers to no more than 6 per month, for all of my accounts at the bank. I was told I could make as many in-person transfers as I wished.

True or not, this might explain some of the thinking behind this particular example.</comment>


Why Windows 8 is Microsoft's most vital launch in years - <AUTHOR> http://gigaom.com/2012/02/28/why-windows-8-is-microsofts-most-vital-launch-in-years/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+OmMalik+%28GigaOM%3A+Tech%29

<comment><USER2> I think this article is specious.

The premise appears to be that the world is moving towards touchscreen/mobile, and thus, the desktop computing experience is going to be relegated to the dustbin of history (because, you know, its not cool anymore). This is silly. Tablets have their uses, but they're a niche compared to a general purpose computer. There are a lot of things that are just very awkward to do on a tablet; ie, almost anything involving a lot of typing or creation of content. I could get along just fine without my tablet, but without my PC I'd be in rough shape. I like them both, but it's pretty clear to me which one is a powerful tool and which one is a luxury. So to be honest, I really don't care if windows 8 ends up being a failure as a tablet OS as long as it stays a decent desktop OS.

It seems like the thing to do is to place this topic in competitive terms, where somehow the success of the tablet implies that the desktop has to "die". Why is that? We can't accept that they all have their uses? I have both a hammer and a screwdriver, but I've never really felt the need to view them as competitors.

<comment><USER3> More than that, the problem with Microsoft is how much they lose by just trying to one-up. Apple has iOS for touch devices and OS X for PC devices, and Microsoft wants to make "one for everything" in fact torturing their huge PC user base with "touch for desktop" release, thereby alienating the users they depend on. Way to go, MS.

</comment></comment><comment><USER4> Amazed at such headlines, they seem to show up every time Microsoft launches their new OS. It is always the same.

<comment><AUTHOR> Sure there may have been a lot of expectations and some hype for new up and coming Windows releases but this will be the first time that Microsoft will be providing such an overhauled (design and function) OS available across mobile and desktop. It's a necessity for Microsoft to get the platform integration right in order to stand a chance against the wonderfully integrated ecosystem model Apple has really set a standard for. This is definitely, in my opinion, far from "the same".

[http://gigaom.com/2012/02/28/why-windows-8-is-microsofts- mos...](http://gigaom.com/2012/02/28/why-windows-8-is-microsofts-most-vital- launch-in-years/)

</comment></comment><comment><USER5> This is a serious release for Microsoft since it might be the last significant desktop OS they put out. There might never be a Windows 9 for desktops. It might be strictly server or mobile at that point.

It's going to be harder to make any money when you're getting squeezed on one end by crazy low prices and a free OS like Android which could be a desktop OS with some hacking, while pressure from above is coming from OS X and iOS alternatives. There's no room for a $300 desktop OS any more. It's an anachronism.

</comment><comment><USER6> Microsoft has been pushing metro throughout its ecosystem. Microsoft Kinect looks like the real game changer. It will change the Windows experience. A new way to interact with our PCs.

</comment><comment><USER7> Here are my audacious claims:

I would say that Microsoft Windows is no longer relevant... and hasn't been for a long time.

The one thing that would make them relevant again, if it is true (and not just rumor), is MS Office for iPad.

It would sell like crazy, and it's really only the data that matters anyways.

<comment><USER8> Windows has 89% desktop market share. I guess if you can ignore facts like that then you can make all kinds of audacious claims.

With any luck, the Post PC era will see a lot more diversity (eg Android netbooks/PCs, docked tablets, etc), but I think it'll be a long time before Windows isn't used on the majority of desktop computers.

<comment><USER7> There's a big difference between ubiquity and relevance.

There's no arguing Windows' ubiquity, however, I'd argue that Microsoft is resting on their laurels, as far as Windows is concerned.

Mobile is where things are going, and they were late to the game. It's not even making a dent, either.

</comment></comment></comment><comment><USER9> _yawn_ inflammatory headline and zero meaningful or insightful content.

 _Windows ME was a joke, Windows XP was an updated but essentially similar experience to Windows 95_

Um. Windows 2000 was the Win 95 UI married to the excellent NT backend. If you think that XP -- which was a somewhat optimized Win2k -- delivered an experience similar to 95, then you don't know your Windows OS history very well.

 _Windows 7 was what Vista should have been_

Not really. Nothing is yet what Windows Vista should have been, because Vista was supposed to be Longhorn, which was going to be a radical departure from all previous Windows versions, at least under the hood. Win 7 was a somewhat hackish, superficial update to Vista, with better UAC, and (from what I recall) greatly improved deployment and scripting features for IT people. In other words, it did just enough to shut the consumers up about how bad Vista was, and it did a whole bunch to appeal to big business.

And that's the point, isn't it? Continue to appeal to the big businesses that are the source of vast income for Microsoft. Win8 is just another iteration of Windows. Nothing truly revolutionary, nothing to write inflammatory blog headlines about. Business as usual: developers aren't certain what path to follow, Microsoft providing too many APIs and insufficient documentation, and companies acting slowly to pick up the new OS.</comment>


IMVU releases their real-time server statistics package - <AUTHOR> http://engineering.imvu.com/2012/09/26/continuous-monitoring-real-time-statistics-for-a-thousand-servers-and-the-application-they-serve/

<comment><USER2> I was going to post this, but you beat me to it!

I'll follow this thread to answer any questions.</comment>


"There is, unfortunately, no such thing as a truly neutral stance on inclusion" - <AUTHOR> https://lobste.rs/s/nf3xgg/i_am_leaving_llvm#c_ubyrb0 <comment><USER2> All: if you're going to comment in a thread like this, please re-read the site guidelines first: [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html). Then you'll know to assume good faith, to make your comments _more_ civil and substantive as the topic gets more divisive, to avoid name-calling, and to respond charitably.

HN's rules exist for deep reasons based on many years of working with community dynamics. If you break them, you contribute nothing to resolving any social issue—all it does is rile up the other side and fan flames—but you do contribute to destroying this community. That's bad for all of us.

If you're feeling like venting about how wrong or bad someone is, don't post right away; pause until the needle goes out of the red. Then review your post and edit out any bits that still break the guidelines. That's what I do, and it's the only way I know to make this place work ok.

Hacker News is large enough that it lives in a precarious state: the forces that tear an online community apart grow with size and win by default. If HN's health points go to zero, it dies as a place for thoughtful discussion, so please take care with the health points.

<comment><USER3> Reading this has made me find words i've been looking for for months now, and maybe you will at least see these, hopefully even think about them:

As an idealistic goal your policies are great. In practice however i find they sorely underestimate the differential in effort required between:

\- someone who has to censor their earnest thoughts preemptively to not be censured by you

and

\- a troll gleefully dressing up words they know will hurt in dressing nice enough to fly under your radar

You're asking the former to spend a lot more time and work, than it takes the latter, for whom it's a form of playing, a game they enjoy. I don't have a solution, but i think it's true that your policies have a chilling influences on earnest voices and are creating a community where trolls are very loud.

<comment><USER2> It's impossible to reply to that in the abstract. I'd need to see links to comments that you think are gleefully trolling while evading moderation.

<comment><USER3> If i felt comfortable discussing that in public i'd already have done so.

My point is that the state of things here is silencing voices who simply stop bothering to post, while you let toxic people and their posts remain after a slap on the wrist.

<comment><USER2> That is a risk we care about. But most people who make such claims turn out, when you look at the specific examples they come up with, mostly to want HN to be moderated to support their own side and penalize the other. Not intentionally, of course, but when you unpack what most people call fair vs. biased, that's what it amounts to. There are exceptions, but disappointingly few.

Most people have a tendency to see commenters we disagree with as disingenuous, the more so the more we disagree. This distorts perceptions. In my experience moderating HN, disingenuous trolls exist, but are less common than users misclassifying each other as such.

So while we're quite willing to moderate and ban accounts that abuse HN in the way you describe—and indeed have done so—we need specific links to evaluate. Otherwise the null hypothesis has to win.

</comment></comment></comment></comment></comment><comment><USER4> Good response by aphyr. If I'm reading right, the original poster left because LLVM partnered with an organization designed to create internship opportunities for groups traditionally underrepresented in tech. In particular, LLVM agreed to take on one intern from that organization.

Everyone is entitled to their own reasons for leaving. But I do find it frustrating that the left gets saddled with names like "snowflake" when such small & reasonable actions routinely ruffle feathers on the right.

<comment><USER5> It is not a small or reasonable action to declare that judgements of suitability to work with an organization will be made based on sex, race, and other non-functional dimensions. The fact that large nations, corporations, and universities routinely engage in this kind of behavior does not mean that an as ethical individual one must acquiesce when others do so, especially when that person feels it may be within their reach to potentially make a difference.

It's frustrating that these sexist and racist policies have spread like a cancer across our industry.

<comment><USER6> When we know we have unconscious biases to people who are of the same race, gender and orientation and ourselves is it really unreasonable to take action to try to counteract this? Especially for internships where there isn't even a professional history to compare.

<comment><USER7> > we know we have unconscious biases to people who are of the same race

If that would be true, this wouldn't happen:

[http://www.abc.net.au/news/2017-06-30/bilnd-recruitment- tria...](http://www.abc.net.au/news/2017-06-30/bilnd-recruitment-trial-to- improve-gender-equality-failing-study/8664888)

> Especially for internships where there isn't even a professional history to > compare.

You give them a technical test and whoever scores the most wins, if they score equally, you can pick at random.

<comment><USER8> And if it wasn't true, this wouldn't happen:

[https://www.theguardian.com/women-in- leadership/2013/oct/14/...](https://www.theguardian.com/women-in- leadership/2013/oct/14/blind-auditions-orchestras-gender-bias)

You can't conclude too much from an isolated example.

<comment><USER7> > You can't conclude too much from an isolated example.

You can conclude that the effects of implicit bias are not well understood and maybe we should study it a little bit more before we treat it as absolute truth and factor it into decision making.

<comment><USER8> I don't see how I could conclude anything about how well understood implicit bias is from one or two examples of it materializing or failing to materialize.

<comment><USER7> People thought they understood it, they started applying policies around it and then their assumptions turned out to be false, hence me saying it's not well understood.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I'm a friend of Rafael and talked to him just before he announced that he was leaving LLVM.

I actually disagree with many of Rafael's political views but I think that some of the comments in this discussion are unfair. For example, one poster assumed that Rafael is a member of the right - he is actually a member of the BC Green Party, which is firmly on the left.

The LLVM code of conduct requires that people be welcoming to others of any religion. I don't want to share too much about Rafael's personal life but he has reasons why that requirement is problematic. Consider that some religious beliefs make women chattel that can be abused at the discretion of their "owners".

<comment><USER10> I find it interesting how you make a jump from 'religion' to 'religious beliefs'. I think the distinction is a very important one, and it bothers me a ton that precisely the people who argue 'against' particular beliefs seem to use the two as if they are synonyms.

</comment></comment><comment><USER11> No, nothing is truly apolitical.

But in practice it's pretty easy to see that there is a subset of political topics inherently tied to the subject at hand, and a subset of political topics that would be ginormous scope creep. (e.g. a window manager caring about colorblindness vs. a window manager endorsing a political candidate)

It's pretty obvious that the colloquial statements around "no politics" or some form of "keeping politics out" is simply a way to express how much appetite someone has for the gray zone between the two extremes described above.

It frustrates me that the inability to completely disentangle something from the political is used as a thin edge of a wedge that ends in (paraphrasing) "...therefore your project should spend effort on all my pet political issues." At worst it's a dishonest tactic, at best it shows someone's hubris regarding their hobbyhorse.

</comment><comment><USER12> It's a thought-provoking comment for sure, but it makes a number of invalid inferences.

> This is not to say that your particular choices are wrong. It's just you are > already engaged in "non-technical", political work

A non-technical choice does not entail a political choice. In particular, such choices aren't always about managing "power", which is what politics is about.

> With limited time and resources, you will have to make tradeoffs in your > code, documentation, and community about which people your software is > supportive and hostile towards. [...] At the community development level, > your intentional and forced choices around language, schedule, pronouns, and > even technical terminology can make contributors from varying backgrounds > feel welcome or unwelcome

I don't think this argument is sound. "Not supportive of" does not entail "hostile". Choices surrounding language, schedule and technical jargon does not entail how welcoming a community is.

This is an overly simplistic viewpoint that's typically indicative of a conflict theory mentality, but is not how good open source projects typically function. If you're ready and willing to be helpful:

1\. if you don't know the jargon, people often help you learn it

2\. if you don't fit the schedule, people will often help accommodate your efforts

3\. if you don't speak the language, people who do will often assist, but if no such person exists, then that's just an insurmountable problem given limited resources

> Consider: you wish to take only the best developers, and yet your post has > already discouraged good engineers from working on your project. Doubtless > it has encouraged other engineers (who may be quite skilled!) with a similar > political view to your own; those who believe, for instance, that current > minority representation in tech is justified

This conclusion just doesn't follow. You can oppose some inclusion efforts in tech and yet not accept that current minority representation is somehow justified. The above argument blatantly begs the question that inclusion efforts a priori ethically justified, except the ethics of such efforts is precisely the dispute.

</comment><comment><USER13> aphyr on point as usual.

One small point: could we get the title changed? This is a link to a response to the original article, not the original article.

</comment><comment><USER14> This reminds me of certain developers being mad at Linus for his rants. Seems unlikely anyone is going to care much and it's a lot of fuss for nothing.

</comment><comment><USER15> Cache: [https://webcache.googleusercontent.com/search?q=cache:F05U7x...](https://webcache.googleusercontent.com/search?q=cache:F05U7xm2r1UJ:https://lobste.rs/s/nf3xgg/i_am_leaving_llvm+&cd=1&hl=en&ct=clnk&gl=us)

Original link: [http://lists.llvm.org/pipermail/llvm- dev/2018-May/122922.htm...](http://lists.llvm.org/pipermail/llvm- dev/2018-May/122922.html)

</comment><comment><USER16> One thing that is completely omitted in the discussion here is that Outreachy is doing something based on your residency (if in US, different rules apply). This is well within their rights, but I wonder how that part affects the "diversity" stance - I would expect a black person from Africa to have generally a much harder time in tech than an African American.

<comment><USER17> "I would expect a black person from Africa to have generally a much harder time in tech than an African American."

Possibly the reverse, if bias against African Americans is partly due to preconceptions and stereotypes of African American culture. Black applicants from outside the US might benefit from being perceived differently because they don't fit into the existing stereotype.

</comment></comment><comment><USER18> There were some great comments on lobster.rs. The one about groups A, A', and B was one of the best things I've read about this kind of thing in a while.

</comment><comment><USER19> Was the original link to the original post, or was this always linking to the response that it goes to now?

<comment><USER19> Ok, the title has been updated and it makes sense now.

</comment></comment><comment><USER20> Sexist and racist codes of conduct do understandably make people uncomfortable.

<comment><USER21> Could you explain what part of their code of conduct ( [https://github.com/llvm- mirror/llvm/blob/master/docs/CodeOfC...](https://github.com/llvm- mirror/llvm/blob/master/docs/CodeOfConduct.rst) ) is racist or sexist?

<comment><USER22> I highly recommend also reading the "stick" part of the CoC - the reporting guide.

A person who broke the CoC by snickering at the repeated use of the word dongle; unless a permanent ban is the result, the accused can not appeal any remedial actions taken against them. They are not even guaranteed to offer their side of the story in the investigation.

This CoC, like most, puts the power entirely in the hands of the accuser; it is very much the open source equivalent of a "binding arbitration" clause.

<comment><USER8> I don't follow your comment. The reporting guide doesn't say anything about people snickering at 'dongle', and neither does the post we're commenting on. I also don't see anything in the CoC that suggests that snickering at 'dongle' would constitute a violation.

<comment><USER22> There is a well documented precedent for this exact behavior being considered to be sexual harassment and having negative effects on the accused' professional life.

> reporting guide doesn't say anything

That's part of the problem: explicit behaviors are not called out, only the effect they have on the accuser matters.

<comment><USER8> >There is a well documented precedent for this exact behavior being considered to be sexual harassment

By which you mean there's exactly one instance of it having happened in a completely different community (a Python conference) with a different CoC?

</comment></comment></comment></comment></comment></comment><comment><USER23> Lobsters sysop here - we're having trouble keeping up with YC News's level of traffic. We're not going to crash, but the unicorn worker pool is small enough that lots of users are getting 500s. I'm adding some caching.

<comment><USER24> Actually more interested in how you're handling this than the PC fight that's breaking out around the thread.

<comment><USER23> I'm not sure what you're asking for. If it helps, [https://lobste.rs/about](https://lobste.rs/about) has some notes on the community and [https://lobste.rs/moderations](https://lobste.rs/moderations) has the log of moderator actions.

<comment><USER25> Pretty sure this meant the technical details of dealing with the increased traffic of the HN hug-of-death, rather than moderating policies.

<comment><USER23> The "PC" made me think he was talking about political discussion, but I added some caching in [https://github.com/lobsters/lobsters/commit/e99c0783aa386740...](https://github.com/lobsters/lobsters/commit/e99c0783aa386740c754011e95270262c5523443) and I'm thinking [https://github.com/rails/actionpack- page_caching](https://github.com/rails/actionpack-page_caching) would be good for logged-out users.

</comment></comment></comment></comment></comment><comment><USER26> Why do we allow first person titles? They are uninformative (who is I?), and click-baity

<comment><USER27> I have to agree. "I am leaving LLVM" doesn't tell me much. It only made much sense to me because I had already seen news article about this on another site, which had a much more informative title.

It would be better to have the title be something like, "<name>: "I am leaving LLVM" " (note the quotes around the first-person statement). It might also be helpful to have it look like, "<name> (LLVM maintainer): "I am leaving LLVM" "</comment></comment>


Introducing TwitterAPI for Python - <AUTHOR> http://twitterapi.readthedocs.org/en/latest/

<comment><USER2> nice. I was looking for a simple twitter api wrapper for Python</comment>


Most commonly used statistical tests and implementation in R - <AUTHOR> http://r-statistics.co/Statistical-Tests-in-R.html <comment><USER2> Shapiro Wilk isn't all that useful with practical data unless your sample sizes are fairly small. Once you deal with anything above 5000 values, you are better off with QQ plots.

</comment><comment><USER3> > If the p-Value is less than significance level (ideally 0.05),

Erm, no. P=0.05 is borderline meaningless, there could as much as 30% chance you are wrong about the actual difference being there depending on the true probability of the initial hypothesis.

P-values should be used with strong caution.

<comment><USER4> Even better, p-values should not be used at all. If I have data in hand, I want to use it to find out the probability that my hypothesis is true. But p-value analysis requires me to instead ask a different question that I don't really care about, involving whether my data are consistent with the null hypothesis.

Everything is just so much more sensible if you allow yourself to assign probabilities to hypotheses, rather than assuming a hypothesis from the outset and computing opaque statistics relating to your data.

<comment><USER5> There is in fact a probability attached to p-values. A p-value of 0.05 for instance means your conclusions will be wrong 5 out of 100 times. You can reduce the p-value to e.g. 0.001 or any other value you want.

<comment><USER6> No, it means that the probability of seeing an effect of that magnitude on a dataset of that size when the null hypothesis is true will happen due to random chance 5 out of 100 times. It says NOTHING about your hypothesis, it is entirely a statement about the null hypothesis.

</comment></comment></comment></comment><comment><USER7> It's also worth looking at the documentation in R for each of the functions too. (can invoke with console with ?chisq.test for example).

For example, the chisq.test has optional _built-in_ Monte Carlo testing, and none of the other functions do, oddly.

</comment><comment><USER8> This is a great post! Bookmarking this for future reference.

</comment><comment><USER9> This is a good resource for those new to R.

R has some really good GUI layers now. I struggled and struggled for years trying to learn the command line methods, but it was too much for me. The following do a great job (these are alternatives)

\- Deducer

\- R Commander

\- RKWard

<comment><USER10> It seems like this list is incomplete without mentioning that both RStudio[1] and Jupyter[2] notebooks now have really first class support for R. There are also two upstatrs, Rodeo[3] and Beaker[4] are doing cool stuff as well.

The company I work for, Domino Data Lab[5], let's you fire up a lot of these notebooks in a nice hosted environment on big cloud servers with minimal cost and effort. It's a fun way to learn how all these new environments can work together. From RStudio for exploratory analysis, to Jupyter notebooks for presenting a topic. The other two I haven't really found the superior use- case. The tools in this space are just getting better and better.

1\. [https://www.rstudio.com/](https://www.rstudio.com/) 2\. [http://jupyter.org/](http://jupyter.org/) 3\. [http://blog.yhat.com/posts/introducing- rodeo.html](http://blog.yhat.com/posts/introducing-rodeo.html) 4\. [http://beakernotebook.com/](http://beakernotebook.com/) 5\. [https://www.dominodatalab.com/](https://www.dominodatalab.com/)

<comment><USER7> > _Jupyter[2] notebooks now have really first class support for R._

Jupyter and R is a bit iffy since the R kernel is not native. Although the kernel _works_ fine, setting it up has a ton of manually-installed dependencies, and in-line plots flat-out give unexpected output. (I've had to cheat by embeding charts via Markdown. Although that has the benefit of having the charts be responsive)

The important perk is that Jupyter notebooks are now rendered natively on GitHub, which I've made considerable use of: [https://github.com/minimaxir/sf- arrests-when-where/blob/mast...](https://github.com/minimaxir/sf-arrests-when- where/blob/master/crime_data_sf.ipynb)

<comment><USER11> Manually setting it is hard (on OS X + Homebrew Python I did it after a long fight; main problem: rmzq library). But... it is super easy with Anaconda: [https://www.continuum.io/blog/developer/jupyter-and- conda-r](https://www.continuum.io/blog/developer/jupyter-and-conda-r)

<comment><USER7> Huh, I thought conda was Python only. I'll definitely take a look!</comment></comment></comment></comment></comment>


The First Time SICP Blew My Mind - <AUTHOR> https://ahuth.github.io/articles/the-first-time-sicp-blew-my-mind <comment><USER2> SICP is such a fantastic book.

I've been working through it using Clojure rather than Scheme and loving it, I've been a developer for around 15 years and I'm still learning stuff from this wonderful book.

I'd recommend it to every developer out there who hasn't worked through it with some dialect of Lisp / Scheme.

<comment><AUTHOR> Agreed. Obviously I shouldn't have been surprised, but it still amazes me how pertinent it is, 30+ years after it was written.</comment></comment>