skysight-inc/HackerNews huggingface dataset:
I like where you go with this in the second half, because I believe that racial profiling is pragmatically ineffective anyway. But I take issue with this statement:
"If race, gender, and clothing have no predictive power, demonstrate that and show what does."

I think the burden of proof is on the person using those tools both to show that they have predictive power, and to show that the action being taken on that prediction is reasonable.

Put a different way: a couple of principles which I think most Americans probably believe in are:
1) innocent until proven guilty
2) no guilt by association (there are laws that allow restrictions on known felons associating with one another, but at least in that case, the association is based on convictions for actions the individuals have taken, not assumptions about a class to which they happen to belong due to who they were born to).

I don't like the idea that someone can look suspicious, without acting suspiciously. I know there's inevitably a lot of overlap and gray area between those two things. But what I'm saying is that even if you have some statistical model which you believe has good predictive power based on inputs of race and dress, and your model says that scruffy looking black men are more likely to commit crimes, you still don't get to investigate someone just because that person's a scruffy looking black guy.

(sidenote: I just noticed this reply sitting unposted in a tab I opened a few days ago, so this might not even get read, but it was already written, so whatever.)
During the few years that I spent doing business in both Beijing and Shenzhen, I can say with confidence that the majority of companies there are creating innovative new technology and are not simply "copying and pasting". Also, technology startups are not an "ideas business". They are an ideas with amazing world-class execution business. The latter is what determines the bulk of the value created by the company and is much, much harder to come by.
While I'm anti Relay/GraphQL/co , I see a problem right here :

> Blaming REST For The Non-RESTfulness Of Fake "REST"

As I said in another thread here, people don't get what REST is because the original paper has done (IMHO) a poor job as explaining what it is about,masking simple concepts behind complicated sentences (academia style).

Instead of being pedantic,arrogant and borderline insulting , which is unnecessary to make a point, it would be simpler and more useful to say that it is just about taking advantage of "natural" HTTP features and some web concepts such as hyperlinks. So there is no such thing as "fake REST" if one's intent is exactly that. Me not using content negotiation for API versioning doesn't my API fake REST.

Too bad because the OP makes a few interesting points , but they are drown into some hateful garbage.
HN posted the clickbait title (using its lame rule of cloning the web page title out of context), and you clicked into HN. Ergo, it worked.
The similarities and inaccuracies remind me of the Rolling Stone "A Rape on Campus" story. What is wrong with today's journalism? These are established, mainstream publishers. There is so much focus on the message instead of the facts that entire stories can be fabricated.

I canceled my NYTimes subscription last year because it has become increasingly frustrating to read, especially their "women in tech" articles. For example, their recent "What Really Keeps Women Out of Tech"[0] op-ed blames nerd male culture for making women uncomfortable, and argues for a more neutral environment with no Star Wars posters or tech magazines or nerdy t-shirts...

[0] http://www.nytimes.com/2015/10/11/opinion/sunday/what-really...
Zuimeia.suite.lockscreen an app sending imsi openUDID and more to their domain
I'm not the right person to design the entire system, obviously. But as a starting point, I'd consider using a PGP signing key on responses from a server. Your keys would be hosted on an HTTPS server somewhere. Let's say httpi.org or something.

signify also looks really promising. Get the key down to the size of a QR code, and you could separate the issue of signing from signature validation entirely ... post it on your HTTPS Twitter feed, put it on your business card, whatever.

I think it would be a positive step to get users to think about how they are verifying integrity themselves and the sources they trust.

You could even have a dozen sources and let there be a little button in the URL bar to show you which sources agree on a public key provided by a server.
Totally agree here.

There is a problem that happens with some hobbies like radios and electronics - a lot of software and techniques was developed by people who were domain-specialists first and programmers second. This means they were disproportionally using Windows, and thus this platform has a lot of de-facto standard software written for the Microsoft's OS. On the other hand, today hobbyist programmers predominantly use Linux/MacOS, so when they want to start writing software for domains mentioned above, they hit a wall.

And yes, Windows is pretty terrible for programming compared with Unixes - and I say that as a person who grew up with Windows, spent most of his programming life in it, and had to code under it for current and previous job. When you get used to working in terminal and to all little small utilities and features, it becomes really annoying to have to code under Windows. Personally, I usually paper over it a bit by using Emacs on both platforms, but sooner or later I always hit a toolchain problem.

The solution isn't to bitch about Windows. It's a very good operating system, especially for everything that is not software development. Which means it's good for radio and electronics. Since software devs used to work under Linux like the myriads of "little things" they get from it, the only thing is for them is to sit down and just port the apps they need. Or port their favourite tools to Windows. Or both.
I think this is solid advice. I continue learning by picking problems/inconveniences I encounter while working during the day, and then doing whatever research is required to make those things less inconvenient. In the process of researching the problem space, I'm often introduced to new programming concepts and tools that I would have otherwise never known about. Overall, I find it easier to learn new things if I have a real problem I'm trying to solve.
I'll give you two hypothetical situations:

1) Vendor manager Jim tries to defraud a vendor. He gets caught, and confronted about it. He realizes he messed up, accepts responsibility, and resigns on the spot.

2) Vendor manager Joe gets pressured by boss to defraud a vendor because the boss is under pressure from his boss to cut costs or be fired. Joe pushes back, gets reprimanded for not following Amazon's "disagree and commit" principle, and gets a poor performance review. Joe learns his lesson, defrauds his vendors, and everything is fine. The boss's boss and boss leave eventually because they never could get costs down, and the newly re-orged boss notices some discrepancies. Joe gets blamed for defrauding customers, and is told that he is now violating Amazon's "Insist on the Highest Standards" leadership principle. Joe immediately quits out of frustration with Amazon's leadership and culture.

Here is the problem: Both scenarios have the same paper trail of a fraud allegation and immediate resignation. And that paper trail is enough security to defend a position in court...especially if it is the employee's burden of proof to show what really happened.
Every time I read someone complaining about Genesis I feel sad because it would seem that they never even made past the first couple of pages.

A better "first time" reading plan would be to start in the book of John and through that and Acts, and Romans (they are all back to back). John shows Christ as God.

Acts shows the founding of the church and the early works, including an interesting argument in Acts 15 about some thinking that in order to become "Christian", one must first convert to Judaism.

And Romans gives a better understand of the position of the Jew, the moralist, and the Gentile before God. (and the book of Hebrews expounds on this more too)

But back to your question. There are many views to the first couple of books in Genesis. Here is my take:

In verse 3: "And God said, Let there be light: and there was light."

Ok, "light" is created. Everything good there.

4 And God saw the light, that it was good: and God divided the light from the darkness.

Yep, no light means, well no light.

5 And God called the light Day, and the darkness he called Night. And the evening and the morning were the first day.

So "Day" and "Night" spelled with a proper capitalization. And we have the phrase "evening and the morning" mentioned with no context as to how long the "evening and the morning" are or how long a "Day" is.

14 And God said, Let there be lights in the firmament of the heaven to divide the day from the night; and let them be for signs, and for seasons, and for days, and years: 15 And let them be for lights in the firmament of the heaven to give light upon the earth: and it was so.

Next up we clearly see the timing and "setting" of the mathematics behind our solar system, using the elements mentioned above "Day", and "Night", and even expounding into months and years.

16 And God made two great lights; the greater light to rule the day, and the lesser light to rule the night: he made the stars also. 17 And God set them in the firmament of the heaven to give light upon the earth,

This is not a separate event from the last verse, this is the solution to how our days and years are timed. Instead of "And God made two great lights", think of "And so God made two great lights".

This is how I've always taken this chapter. Perhaps it is terrible, or perhaps not. But clearly, the days and evenings mentioned in the earlier verses are not in the same context or definition as we (people that live on Earth) would normally think of them as. This is also where "gap theory" comes in, but I personally reject that as well.
> It's not that painful to write in large quantities, at least no more so than other static languages. And (given the IDE support), it's significantly easier to refactor code in Java than a dynamic language.

Java does not have type inference, does it? That alone makes it more painful than other static languages.

Does Java have type inference?
It's already here, they just need to improve battery tech for more fun:

https://www.youtube.com/watch?v=L75ESD9PBOw
TOP+ESCORTS+IN+ATHENS+-+Golden+Diamond+Escort
K&R is a great book. Even though I have no interest in Go, I'll read this, just to see if it's as good.
> What is Go well suited for other than network programming? Why might one decide to write the backend API of their web app in Go, compared to say Grails, Python etc.

You'll get a lot of different opinions on this. I'll just speak based on my experience, since Python was my primary language before coming to Go.

Everything I used to use Python for, I can do faster in Go. The notable exception to this is statistical analysis, as Go does not have any FORTRAN bindings[0], whereas Python does (through Numpy & co.). I still use a combination of Python, R, and other languages for this.

I came to Go for the static typing and native concurrency[1], but I stayed because I'm more productive in it. Python and Go are about equally fun to write, but because I can build things much faster in Go, it ends up feeling more rewarding overall, given that my time is limited.

If you don't really have a pressing need for anything else, you can stick with Python. But I found Python to be slow to develop in and cumbersome, and after trying Go out, I realized I was 100x more productive in it.

[0] apparently this may no longer be true; if so, that's exciting news!

[1] this was also before Python had built-in async. I still prefer Go's concurrency model and syntax, but at least Python has this as an option now.
Other than some quite significant performance gains, I'd say the main upside for the case of a backend API would be channels. Concurrency is dead simple in Go - and if you want to do 5 different requests to ElasticSearch in parallel and merge the results when all of them are finished (like we do for Universal Search), that's just a few lines of very readable Go. Try that with a GIL, sure, multithreaded Python and Ruby is possible, but it's not for the faint hearted and not as easy to read.

Moreover, I love static deploys and cross compilation with Go. Compile your app (even to Windows!), copy it to a server, simply run it as a single binary. No dependency management, no apt-get & easy_install & pip, it just runs.
Does it currently work per chrome profile? I switch computers when I get home, would this be aggregated data or multiple reports?
How much accurate data on a person can you reasonably get by putting them "under the gun" on a whiteboard? How are you filtering out those whose knowledge ends at the prep work they simply memorized beforehand? I find it more worthwhile to have real, in-depth conversations about code, software, infrastructure, etc. and walk through a few prior projects/code they can bring in and have to show. I find this far more insightful than barraging them with trivial coding exercises like fizzbuzz.
cool, thank you. is this common practice for freelancers?
Emphasis on the phrase "culture fit" tends to go hand in hand with cultural and racial homogeneity in my experience, too.

It's interesting how many red flags a company can throw up so quickly. Often before you've even finished browsing their website.
This is what we do as well. As an added bonus, it makes writing client libraries for our API easier since error handling is more consistent. (Many HTTP libraries handle error status codes differently than 200s, which is annoying since you now have to handle errors in two places.)
I love when one engineer thinks he's smarter than ALL of the second largest Internet company's engineers put together--when he doesn't even have the context of working there to understand their reasoning. Clearly Facebook is evil and pays their employees solely to make us learn new technologies purely out of spite, not to improve their product better (which they get paid very well to do).
Safe Harbour and how to protect your business and customer data
We have berry trees in our front yard, so every year when they ripen up we get hordes of finches and other little birds swooping the buffet. In the fall, we get about one dead bird every other day until the trees have been stripped clean.
As a sometime adjunct, and husband and brother of adjuncts, let me warn you: adjunct teaching may eventually be a nice supplement to regular income, but the first time or two through the class, you will be making roughly minimum wage. And I don't think that it is really a career option. Have a look at all the stuff on the internet about the adjunct life.
Effective Go is a great intro: https://golang.org/doc/effective_go.html

Also, check out the blog posts for more information on specific topics: http://blog.golang.org/. They are really well written.
Speaking as a Ph.D. (not software or computer anything but traditional engineering), I think you're conception of what a Ph.D. signifies is very wrong, and it's leading you to improperly value what advanced academic training is worth.

Software engineering encompasses the SDLC, which includes a lot more than coding. What about documentation, quality control, or formal methods? There's many roles that I would expect a Ph.D. to be likely to perform well in, more so than someone self-taught. Seems like you're ignoring the bigger picture.
One of the reasons is that they have giant trains running next to them, in a way your other two examples don't. Trains create a lot of dirt and dust from wheels and brakes among other things. If you compare the actual platforms at Grand Central to a subway station they're pretty similar actually. Also both of your other examples close at night, the subway does not.

The subways are generally not that different in cleanliness from the corresponding streets and sidewalks above them. You could ask a different question, which is why NYC as a whole is not very clean, but that's a much more involved and complicated question than this facile complaint.
You can easily learn go by going through all the pages under "Learning Go" here: https://golang.org/doc/ and probably some practice projects.
This book might be a good alternative but we can't know yet.
Ok, we s/BF/Brainfuck/'d the title. No need for bowdlerisms.
Processor Utilization Difference Between IBM AIX and Linux on Power
So how should an older developer who doesn't need a high salary communicate this? All the usual job hunting advise is about making yourself seem more valuable - i.e. expensive.
I was going to comment something like that. He doesn't like Foosball - we can't hire him! But maybe "culture fit" means willing to work huge irregular hours. "old people" with a family probably won't go for that. As a developer I always try to avoid crunch times by planning ahead - guess I am "old".
Age diversity will be "achieved" when young developers start valuing themselves properly, i.e., never. That whole nonsense of "culture fit" is really just a euphemism for won't fit into a culture of exploitation and extraction. You would also get a "not a good culture fit" if you had young devs who respected their time and drew limits. That's the thing about the abusive environment in the tech sector, you are only valuable if you are willing to do the modern equivalent of back breaking work to the point of exhaustion. Sure, it pays off for some ... usually the founders ... but for the vast majority it will not pay off and they will simply be left with having spent their young years hunched over laptops day in and day out in order to make others rich. It's the modern equivalent of the gold rush and young devs are the mules and hard laborers.
HATEOAS-y design gives you a great deal of flexibility in how you structure your server side without that complexity bleeding into to the client.

E.g., by using full URLs throughout your API, your client doesn't need to care whether it's getting info from "http://example.org/item/23" or "https://cdn.example.com/aonteuh/d81c7d65-1352-48f0-97fd-dc1c...

Imagine if image tags in HTML were just "<img imgid='23'>" and the browser knew to look them up at "http://example.org/images/23". You could make a functioning web site with that, but it would limit the things you could do, and maybe even the way you thought about linking.

That being said, there are almost always things you can do "better" by constructing the URLs in the client, like reducing response size, and fetching multiple items in a request. It's a trade-off, and I'd be wary of a 'REST enthusiast' who didn't acknowledge that. It could mean that they don't have enough real-world experience to have encountered the rough spots.
> This article is a load of bullshit.

Me and most people on the comments seem to agree, makes me wonder why is it on the top of the frontpage.
People sometimes behave like douchebags. This is probably the same phenomenon that leads some to call users of another piece of technology "glassholes".
Show HN: SoundRedux – a Soundcloud client built in React / Redux with source
That's a classic fallacy: You already had evidence, fine, but you don't get to re-use it to increase your confidence again later. If you want to build up a case, you need more evidence, need more narrative exaggeration backed by the old evidence.
If you are using emacs, you might want to try the emacs UI for notmuch:

http://notmuchmail.org/
I looked at the code some more and they do handle release(), so much of my point above was invalid. I expect riofs's streaming write performance to be comparable to goofys because we both use the same implementation strategy.
There wasn't any fraud. There was a response to this accusation, by the NYT, and they claim that this is false.
Haha your edit is dead on. Your parent comment arguing for REST just reinvented GraphQL.
Millennial – Generation Wuss
Not surprising that s3fs is slower, it's implementation quality is not very high. Goofys looks much better on first sight. It would be nice if anybody could do a benchmark between goofys and riofs (without cache). But honestly, if you have some proper request handling there is not that much to tune. The biggest performance gains can be achieved from a good cache implementation and make such a system useful in a production environment, that's what riofs was written for.

Disclaimer: I initiated and supervised riofs.
Well, footless runners are already faster than non-disabled ones.
Culture fit is often just a euphemism for "we don't like you for a reason that would be illegal to state directly due to discrimination laws". A reason such as you're too old.
the go fuse binding that I am using only has low level interface anyway. That said I think the parent meant on disk cache not vfs cache.
>I love my iPad. When I'm in bed or relaxing on the couch, it's the perfect form factor for screwing around on the internet.

Same here. It also serves as a phone in addition to watching TV on it and what not on it. Good stuff.
Another post lamenting this situation:

https://sfconservancy.org/blog/2015/sep/15/email/
Multithreading lets you share memory. Multiprocessing requires you to serialize your data and copy it to the other processes. That can be very expensive.

This only matters for performance-critical applications.
They're not JavaScript because the language used to write the source code isn't in JavaScript. Babel is used to bring modern JavaScript features into older browsers, but you're still writing JavaScript. If the language you are writing doesn't at least attempt to conform with some signficant portion of the ECMAScript specification, it's not JavaScript.
Check my 'about' section here, should lead you to my mail :).
That isn't ad hominem. Ad hominem would be something like "Jay Carney smells, so we shouldn't believe what he says." Carney's history and position are clearly relevant here.
3 things poor interfaces and zombies have in common
Karl Marx to the rescue
Why Encrypting URL Parameters Is a Bad Idea
I've run similar analyses on advertising data with Spark/Scala. This is what I would consider the 'easy' part: identifying whether or not a user, in the context of some 'session' (or specific ad campaign) saw ads (and which/how many) for that campaign before completing a conversion. Though I used cogroup and reduce to get to this, as conversions are in a separate dataset.

The hard part is building a model which discovers, at each frequency level (or sets of various n number of events), the weights/value of each ad in the campaign (or all campaigns for a given advertiser) in driving conversions for optimization. Really fun stuff to work on, but at the moment it's at a low priority level :(
> Anyway, I mostly wanted to point out as most people are doing web services that you should be fronting Python with some sort of web server that allows preforking, and then the concurrency issue, in my experience, becomes not a thing.

Spot on. Concurrency vs parallelism, and clean distinction of responsibility (web server vs backend threads).

> Many backend libraries can easily take advantage of libs like microprocessing, which are not the most 100% friendly in their more complex IPC-type cases, but are pretty workable.

This is painful. In Javascript I can be careless (well to a great extend for people like me likes magic) using promises. Python can achieve this too but with a great effort of learning either coroutines, gevents, or asyncio. Though I have to admit that Javascript has its own problem facing parallelism.

I have done things with gevents, spawning greenlets and respond to user immediately. The thing is, backend should always be stateless, so worker models like celery and rabbitmq pub/sub and etc are more popular.