skysight-inc/HackerNews huggingface dataset:
Would you please not use HN for ideological battle? It is not what the site is for, and we ban accounts that primarily do it.
You are saying what the guy posted wasn't offensive and also that everyone is finding it offensive.

Heh, interesting point, though I chalk it up to a bit of carelessness. When you say:

That makes no sense unless everyone is stupid.

Actually it has nothing to do with intelligence or stupidity and everything to do with what ought to be considered a baseline "thickness of skin," in the context of a discussion of corporate policies and priorities. Parent is saying that a reasonably normal and well-balanced person should be able to read the manifesto without being offended. Certainly, anyone who thinks they are in a position to provide advice to a company with a half a trillion dollar market cap should have a thick enough skin to read that without getting offended.

Also, it's worth considering the distinct possibility that the people acting offended and outraged by the manifesto aren't being genuine. Or else they haven't read it and have simply been told to be offended. That's how this works. A bunch of writers for big-name media properties get people outraged by running a story claiming that a Googler wrote an "Anti-Diversity Screed," which sounds awful of course. The problem is that such a claim is simply not true.
There are all sorts of forces that could be leading to more widespread loneliness, e.g.:

* As material wealth increases, there's less need to share physical resources (bathrooms, courtyards, etc). These resources tended to bring the same people together frequently, which is a (the?) important precursor for developing a close social tie.

* Many bright ambitious women used to organize all sorts of social capital increasing endeavors; this was reduced when society reformed and excellent private-sector career paths became more available.

* People often move for college, and then again for work (perhaps more than once) -- this used to be more rare. Moves like these have big negative externalities, since they rip the shared social fabric.

These problems arise mainly from collective decisions and changes in culture and economics, and aren't self-inflicted by individuals.

It doesn't really make sense to say that a problem is self-inflicted when it applies to a large percentage of people-- almost by definition there's something else going on.
We've banned this account for using HN primarily for political and ideological battle. Would you please not create accounts to do that with? It's not what the site is for.

https://news.ycombinator.com/newsguidelines.html

https://news.ycombinator.com/newswelcome.html
Having interacted with various P.E.'s and been mostly disappointed with their work (seriously these guys are worse than architects as far as having creativity pointed only toward fuck-ups that the client would never want), I wonder why programmers/coders/whatevers even want to engage in this pretense. Why not call ourselves "code lawyers"?
See this talk [0] about this addition to Clojure called core.spec [1]. I read the paper first, and it isn't until the end of the presentation that I understood how it was related to the feature at all. Basically, core.spec is a kind of formal verification tool designed to deal with the growth of software. It is not a type system, though it resembles one in some ways. The objective is to support comparisons between the signatures of a function at two different points and say, are these compatible? Is this a breaking change? You have to design for growth: make no assumptions about unspecified keys and always assume that later versions may return more than they used to. And so on.

If you're a fan of semver, be warned.

[0] https://www.youtube.com/watch?v=oyLBGkS5ICk

https://news.ycombinator.com/item?id=13085952

[1] https://clojure.org/about/spec
Well, remember: don't start with performance in mind unless you have to or you already know the right way.

Take a Python library like requests. Who the hell will read the source code and run a profiler on that module if you see a consumer? I don't care until I have to. Perhaps before shipping my production code I can run a profiler. If you are going that deep at the beginning, you are wasting your time instead of building MVP and iterate. Library's code out there is ever changing. One version can br slower than another. You aren't doing meaningful work if you start with performance.

OP didn't say he/she is picking a random library out of the blue. I don't remember reading that "random" part.
The tropics being the tropics (lots of plant growth), it was probably difficult to do such studies before the era of satellites and lidar that is able to penetrate the forests and topsoil to reveal just what was hidden.

Going forward, we'll probably learn much more about the practice of ancient agriculture and hunter-gathering societies in tropical regions.

BTW, Paleontology has a similar problem. Most fossils are found in deserts or as part of construction work simply because they are easier to find in those areas. There are probably as many fossils buried in tropical regions but the difficulty of digging through the tropical forests to find them limits the number of fossils found.
That's so confusing for students and new graduates. I would imagine a large number of students aren't applying for those jobs because they think the jobs require more experience than they do, shrinking the talent pool from which companies draw.
That's a wonderful description, thank you! Yes. Software Engineering is applying Systems Engineering principles to the field of programming. It's a pretty good field to work in, because the biggest risk I face is only data loss, unlike other engineering disciplines where the stakes are much higher.
My English is limited, so I don't have the right word for that. And of course it was not a weakness in tougher ancient times.

I read once that physical violence perpetrated by men upon women was actually NOT that common some centuries ago. Some say it is a reaction to urban/dull life; when life was more violent outside, everybody behaved inside the house. I take this with a huge grain of salt, but it an interesting hypothesis.
He owns shares with 10x votes, and thus the majority of the voting rights.
Your labeling of my argument as a "trope" is unnecessary and dismissive. If we are talking tropes, pretty much nothing is more trope-y right now than the cycle of outrage and virtue signaling that is sure to follow any push-back against the current orthodoxy of social justice. It's so predictable you can set your watch to it (witness: https://www.washingtonpost.com/news/the-switch/wp/2017/08/06...). So please, spare me the attitude.

I can believe that a switch to NP's as the go-to for routine care might be a good idea. But even if that is the case, you're making a very different argument here. I wonder if you notice the difference. You're arguing that more men in nursing might be beneficial for customers, not that men are being kept out of nursing by sexism.

I believe the same is probably true of tech (that more women in tech is better for customers), if for no other reason than something like half of customers are women.

But these two arguments are very different in their moral implications. When you argue that sexism is keeping women out of tech, this is fuel for the outrage machine of moral indignation, like the Washington Post article above. It is evidence that he industry is wronging its female employees and potential female employees. It is cause to criticize the industry as sick and oppressive (which it certainly is in some cases, most notably Uber).

So I think that this criticism is well warranted in many cases. The question is: where are the goalposts? Is the industry sick and oppressive towards women until it hits 50% representation? I don't think that's a fair expectation.
So if we break up Google, this harms consumers by stopping the integration.
I've often thought there should be a third position a 'software designer' someone whose job it is to translate customer requirements into a design which the engineer can build.

In Engineering you have architects/industrial designers etc. They work out the product specifications and then ask the engineers to deliver an efficient workable solution that fits those specifications.

Sometimes at least from my view it feels like software engineering reverses the two roles. i.e The Engineer supplies the api and customer works around design. Think about something classic like Unix it feels like in some cases engineering has constrained the design rather than design constraining the engineering. This is not necessarily a bad thing but it is different.
Some of them seem like litmus test for a Python programmer interview, others feel like WTFs Python LoL! It is hard to disambiguate them. Standing on their own in that twitter feed, with little context, there is next to no enlightenment.

Lots of the oddities could be explained by

In [1]: list({'a':1, 'b':2, 'c':3})
Out[1]: ['a', 'b', 'c']

When people would expect

In [2]: list({'a':1, 'b':2, 'c':3}.items())
Out[2]: [('a', 1), ('b', 2), ('c', 3)]

Lots of Python makes sense. About 3% does not. It is good to know the 3% so it doesn't bite one in the ass. Maybe switch to image posts? 1 megapixel limit.
It's interesting to see replies justifying the status quo. Yes, you're absolutely right.

I want to say "arresting people for their words is a useful political tool," but it doesn't seem that clear-cut anymore. You see this when kids get arrested or expelled for some harmless thing they said on Twitter.
Would you please not post this sort of meta dross? That includes adding references to downvotes in your comments. For a substantive comment, all of this stuff needs to be edited out.
> Software Engineering priorities include Safety, Portability, Modifiability, and Testability. I interpret that as a WET programming style. "If you want it done well, do it yourself.

None of those demand “write everything yourself”, only setting the same criteria for external code you integrate as you would have for code you write yourself.
> interview questions are engineering problems that either applicable to real world systems, or were inspired from them.

My experience has shown me that in all cases except for two, this is false.
Most definitely not in the circumstances I just described. Again, that's a solution only a tech-savvy user will find accessible. I'm not designing for my peers, I design for real people.
The tea party together with the alt-right built a new Right Wing, so why not?
Motherhood Isn’t Sacrifice, It’s Selfishness
In my experience, record & playback tools (like Selenium IDE) generate test code that is a lot more fragile than tests written in code from scratch. I suppose if no one knows how to write anti-fragile tests or it takes way too long, then using a tool like this is a step up. But keep in mind that you may be trading one problem (no one wants to write tests) for another (what the hell are these autogenerated tests even doing? this isn't a regression, it's a feature! etc.)
Competition is not the only feedback loop. With public companies, they're also subject to the usual democratic channels - sometimes less directly, but still. With private companies, you only get that as a shareholder, and even then in practice you have a few people holding the controlling stock.
Absolutely this. Crucial conversations should be mandatory reading for anyone entering into marriage. Fantastic book. And not just for marriage either, just good life skill on how to approach tricky subjects.

Go read it. Honestly :)
Interviewing at Google (2010)
That sounds more like burnout.
It's GNOME's font manager: https://fontmanager.github.io/

If you're using ubuntu, there's a package for it
I'll put it this way. In mathematics, the atomic unit of progress is the proof. Proofs are constructed from axioms and other, smaller proofs. The Curry-Howard correspondence is the direct correspondence between computer programs and mathematical proofs.

When programming in a well-typed language, everything we do is a degenerate proof of something. I think it's entirely reasonable to try and make it easier to make less degenerate proofs, and encourage the re-centering of proofs as the atomic unit in programming, because they are for programming (as in math) a well-defined, solid formal system that solid systems can be built on in a way that nothing else can be in software, at least thus far.

In a world where software flows more freely than water, the correctness and reliability of software systems must be taken with utmost seriousness. This applies to basically any tool that contacts end users, and a lot of ones that don't as well.

What do you propose as the theoretical basis for the engineering science of software development?
America has already run the "let's leave everything to unregulated market" experiment. The corresponding period was called the Gilded Age for a variety of good reasons, but suffice to say that in the court of public opinion, its effects were enough to sell the first anti-monopoly bills in this country.
Conway showed that the generalized Collatz conjecture (recurrences with arbitrary cases dependent on the modulus) is computationally undecidable (halting problem reduces to it). The choice of modulus doesn't even need to be that big to get this result, only ~6500 or so. As far as I know, this is the only substantial result in either direction for this problem.
> Bars are geared towards hanging out with people you already know, or hitting on strangers. I'm not sure how many people are making new friends there, unless they're relatively extroverted.

You make a good point about some level of extroversion being required, but one of the things I enjoy about bars - as an introvert - is the ability to have low-cost conversations with strangers. Sometimes I make friends; sometimes I just talk to someone without having to worry about forming a long-term relationship (friendship) with someone.

Sometimes it's nice just to talk to someone you don't have to meet again.
Sometimes true (e.g. the PDP-11 instruction set did influence C), but software can also influence hardware.

Many early computers had very rudimentary subroutine call mechanisms (e.g. the B-line of the Elliott 803), but this didn't prevent programmers from using functions which returned values, sometimes recursively.

Burroughs mainframes were designed to run Algol 60 (with a few additional instructions for use by COBOL programs), and Lisp Machines were designed to run Lisp. In these cases, the influence of the languages extended to the entire instruction set. This is a better approach, as it's easier to experiment with language design than it is with hardware design.
Exactly. Tcl competes with Lua, not Python or Ruby. And Tcl and Lua both have their respective advantages and disadvantages.

- Lua has better support for handling non-trivial data structures, but Tcl interop is a lot less cumbersome, as the host language only needs to know how to pass strings back and forth, basically.

- Tcl is more suitable for writing DSLs due to its homoiconicity, but Lua's more conventional syntax is more suitable for traditional programming.

- Tcl's command-oriented syntax makes it fairly easy to write an expressive shell-like interface for your application (debugging, state inspection, expert interface).

I'll note that via JimTcl [1], Tcl also has an additional niche for bootstrapping software as a much saner replacement for /bin/sh programming, such as in autosetup [2].

[1] http://jim.tcl.tk/index.html/doc/www/www/index.html

[2] https://msteveb.github.io/autosetup/
It is a special snowflake because the semantics and correctness of nontrivial programs are often in the eye of the beholder (is Microsoft Word or Google Search 'correct'?). This isn't the case for bridges, cars or toasters. It's not just a matter of adding magic engineering dust until programming is engineering.
Is having a deeper than big-O understanding of data structure truely necessary?

A mechanical engineer will have an understanding the characteristics of different screws (tensile strength, corrosion resistance, material compatibly etc) enabling them to pick the right one for the task at hand. Understanding the crystalline structure and the ability to smelt one yourself is likely out of scope and probably predefined by domains experts.

Why can’t software work like this?
No.

You can't hire or rent devs that know Erlang without a multi-month search in most markets. This is a non-starter for most businesses.

Train them on Erlang yourself? Why? Any possible productivity benefits offered by Erlang over a more mainstream option are dwarfed by training and hiring costs.

Nobody gives a shit about hot code patching in real business systems; the telco switch architectures which demanded such features are basically bonkers and unnecessary in a packet-switched world.
The one thing I've never personally enjoyed about Set is that it's a "how fast can you do it" game that promotes quick thinking over other skills. My wife loves it, though, and I do agree it's a great game to teach patterns and set matching.
The references seem to try and poke holes into our current understanding of evolution (and I agree it's still very incomplete) and suggest that an alien arrival is the best reasonable explanation to fill the gaps. I'm not sure that's very convincing.

What's even less plausible is an alien visitor, having all the technology necessary to get to earth, somehow needing humans for the purely physical task of extracting metals. I mean we ourselves are now almost capable of automating mining yet haven't made it past our very own moon.
I don't think there is anything representative of an employee's quality of work that can be done during a short interview that would have a strong correlate to productivity and quality. I think a real-world take-home problem followed by a meeting-style presentation of your work, your solution, and a Q&A about the implementation with a representative subset of your peers would be better as this would actually be representative of the work load at hand at the company.
Makes sense. They are both magic: one is in runes (computer code) and the other in scrolls (theorems).
A Whole New Way to Hack Self-Driving Cars
Clickbait is only one of many failure modes.
For anyone looking to learn more about elliptic curves, which are astoundingly "well-connected" as math topics go, here's a good book that should be accessible to anyone with some calculus under their belt:

https://www.amazon.com/Elliptic-Tales-Curves-Counting-Number...

It's not a textbook, which is both good and bad. In my case, it did a good job whetting my appetite for more!

A really well-written and not-extremely-difficult undergrad textbook on elliptic curves:

https://www.amazon.com/Rational-Points-Elliptic-Undergraduat...

(Non-affiliate links, just so you know.)
No, programmers get paid 6 figure salaries to work at top tech companies in the bay area.

Also,the "computer science" stuff that is asked in Google-style interviews is vastly overstated in terms of difficulty.

The interview stuff can be learned by most any programmer, in a couple months of intensive self study, involving going through practice problems in Cracking the Code Interview. You don't have to be a genius to do that. It is mostly just repetition and pattern matching.

I went through Google's process recently, and every single algorithm question that I was asked, was a problem that I had studied/seen in advance, word for word.

It turns out that there are only a pool of a couple hundred (thats a high estimate actually) algorithms questions that most interviewers will ask you, and if you've studied all X hundred of them, then you are good to go. No PHD or CS degree required.
neat, any idea on how long it will take to add asserting/verifying stuff?
It's true. I recently was terminated. Two days later, I was spending all my time on my side business, my programming language, and about four home-improvement projects that had been planned but never executed.

"I can't slow down, I can't hold back, though you know I wish I could; you know there ain't no rest for the wicked until we close our eyes for good."
An in-house DSL is madness and could only be achieved behind management's back. I hope the documentation is damn good. I bet they'll be over-paying the jokers who wrote it (as a form of job security!) for the next 20 years.
So like, for example, Monads. Monads are applicable across every program ever written and with some rules laid out around them have remarkable properties. Comonads too.

Can we use those? By your criteria, I mean.
So...the age old concept of "Fuck You" Money?

This is more an indictment of the work hours/pressure on average engineer.
You're missing the point though, formal verification ensures that a program hews to a formal specification (proof) which is well-defined and can be reasoned about. Whether the formal specification fits the problem is a different story, but seeing as you can neither prove you understand what the program does nor whether you understand the problem, I think getting one half of that dichotomy is really important to getting the other half.
Good. Maybe if more people start to see the military as just another business they will start to change the way we think about how we use our military. It will be less, "Brave soldiers putting their life on the line for us" and more "People whose job sometimes requires they kill people for the highest bidder."
I suspect it is due to the lack of application for the solution.

I analyzed the problem for a while and theorized ways to collaboratively contribute to the solution. I settled on submitting an integer sequence to OEIS.

http://oeis.org/A261393
For future reference, when someone really wants a plus sign would using Unicode FF0B (full width plus) get past the automatic "and" conversion?
A swipe like "your bullshit" counts as incivility on HN. Such flamebait is what we're trying to avoid.

Ideological battle is against the mandate of this site, and ideological venom is a regulated pollutant here, so would you please stop injecting it into your posts? We all know what online call-out and shaming culture has led to, and on HN the goal is not to go up in such flames. These rules apply regardless of which ideology you're battling for and how correct your underlying points are. In fact, being right makes it worse.
Simple Monadic Parser in Haskell
Related fun fact: the distribution of F(X) is uniform on the support of F. Not hard to prove, either.
That said, probably the logical font made of multiple physical fonts can be probably made to support all available planes.

Yes, that's how you can fit all of Unicode into one "font" -- use a collection of fonts with at most 64K glyphs each:

https://graphicdesign.stackexchange.com/questions/73166/what...

I'll leave it as an "exercise for the reader" to generate such a font.
I think we need to follow your thought process through to conclusion:

> "a bulk of IT work is about empathizing with users at least as much as attention to detail."

HYPOTHESIS: If autism is useful for code, but not all IT is code related, there will parts with LESS code reliance, and MORE empathy reliance, and therefore different gender ratios.

FALSIFIABILITY: If the boring, code-only gigs - programming switches and embedded systems, DNS etc - have the same male/female discrepancy, or are less male dominated, than empathy related tech gigs like UX, web design and graphic design, the hypothesis is false. (NB: The opposite won't PROVE the idea, but it certainly is an indication there is something there).

Best I can find: https://www.dol.gov/wb/stats/occ_gender_share_em_1020_txt.ht... and https://www.wgea.gov.au/sites/default/files/Gender-compositi... and neither answered the question. I'd be rather happy to see an answer here, anyone else have any ideas on how to get such stats?