skysight-inc/HackerNews huggingface dataset:
I'm going to admit that I'm ridiculously biased on this topic, which is terrible since I've never been a PM :-) While I don't disagree with anything in this article, it falls a bit flat for me because it doesn't say anything that you should do.

Here's my list of things you should do as a PM:

- Understand your product. Not just conceptually. Not just how it fits in the market. Not just what we used to call the "box features" (features you write down on the box in shrinkwrapped software so people will buy it). You need to understand what the product does in detail. You need to understand how it does it in detail. You need to understand exactly how to do every single thing with the software. You should be an expert -- more than the programmers, more than the QA, more than the users. You should know what's great, what sucks and what's in between.

- You need to prioritise the incoming work. By this I don't mean "X is priority 1. Y is priority 1. Z is priority 1. ZZ is priority 2". Ordinal priority. If anyone asks about 2 pieces of work, A and B, you should be able to say which one is more important and why. You should produce reports that are visible and understandable that document these priorities so that everybody can see them.

- You need to plan the upcoming work. This is different than prioritisation. To plan the upcoming work you need to break larger goals down into smaller vertical pieces, each of which give you some value. You should then be able to arrange these in an order (again ordinal -- none of this "these 500 things all need to be done at the same time"). To do this, you will need to work with a variety of different people because you won't have all the information to do it by yourself.

- You need to ensure that acceptance criteria is available before development for something starts. You do not have to furnish this acceptance criteria yourself, but you must be able to understand it and to judge critically if it is sufficient.

- You need to track development and produce reports. You should be able to say that something is not yet started, but planned to be started in a specified time frame. You should be able to say that something has started development. You should be able to say that something is done (and not just it-compiles-done: done-done-like-we-are-going-to-ship-it-tomorrow-done.) You need to produce reports that are highly visible by anyone that shows this status.

- You need to be active in promoting process that shortens the timescale from feature request to done-done. Likewise you need to be active in making the movement of work from request to shipping more and more visible to all parties.

- You need to handle political problems between the various groups that have a stake in development. Do not delegate this.

As far as I can tell, that's it. Not that it isn't a hellishly difficult job with just the above. As the article suggests, don't waste your time doing things other than this -- you don't have time! I've had the good fortune of working with a handful of amazingly good PM's in my day. It's not easy, but try to be one of the good ones (they are exceptionally rare)!
Have you never met a waiter who spends all the day's income on drinks and a taxi ride that same night? People can be quite foolish.
More often? No. The pay-off for a incredibly tiny minority of dice rolls will be much higher.
No, JavaScript only does pass by value, nothing else.

There is nothing to discuss here other than JavaScript developers trying to imagine stuff instead of learning the underlying literature concepts.

JavaScript is not a special snowflake language.

Computer Science describes how things are supposed to be, they don't change because of language X or Y.
Very nice piece, as a biologist turned programmer I think it nicely sums things up. Some remarks though...

"Similarly, as an embryo develops in the mother's womb, its DNA is edited substantially to reduce its growth rate, and the size of the placenta. In such a way, the competing interests of the father ('large strong children') and the mother ('survive pregnancy') are balanced. Such 'imprinting' can only happen within the mother, since the father's genome doesn't know anything about the size of the mother."

This is strangely worded, I think there is indeed a trade-off between size of the child and the mother surviving but the father also benefits from the mother surviving (better have breast milk available and love and care, right? Father genome?). Moreover, the fathers' genome is half inherited from a woman and is mingled with a woman's DNA every generation (most of the genome is not specifically male of female). I don't believe there is evidence that the Y chromosome solely drives this push for a larger child in the uterus, but please correct me if I'm wrong.

I also think it is theoretically possible to produce a female child from two fathers by merging their genomes and supplying the child with two X chromosomes and no Y chromosome. So the statement that "the father's genome doesn't know anything about the size of the mother" is also wrong (for the used definition of "knowing"), the male genome "knows" just as much as the mother.
Product, engineering, and design news
Most people don’t brag about being “pioneers” for having read the docs for a basic function. That’s what’s causing all the mirth.
Bluebird (mentioned by the parent) is a checking account alternative (read: not a real, FDIC-insured bank account). No one's loaning anything in this case. It's designed to appeal to people who, for one reason or another, cannot afford to open even a basic traditional checking account.

Edit: Before such ersatz-bank-account services proliferated, I believe it was common for poor people to cash their paychecks at a check cashing place (which costs time and money).
But it is both a technical and human problem.

Obviously a company should have policies against the abuse of data - and I'm sure almost all of them do. But you need a technical solution to be able to determine when people have accessed information they shouldn't have, otherwise the policy is worthless because you won't know that the abuse has happened until it blows up in your face.

So, since you already need a solution to be able to audit activities, adding controls to help cut down on the number of people who are able to abuse the data reduces your potential liability immensely.
>During the elections there were a bunch of different US citizens and companies that tried to influence the election

If I remember the 16 election correctly I’m pretty sure the controversial part was when people’s computers were broken into and their private emails were distributed.
(October 1994 Mosaic announcement of Netscape)
Also from overseas, e.g. from Europe?
We are still in the nascent stages of AI UX. I’m excited to see where it goes
> With guaranteed upside, investors agreed to earmark $225 million—nearly half of the equity investment—to pay the founders a dividend, according to the lawsuit.

Mind-blowing.
This might seem like a random question, but does Webkit partition their browser into a kernel and a render engine like Chromium does?
Air crash investigations cannot be used in court
How to Backup Emails with Email Backup Software
No it's not. OCaml gets it right.
"To test C code you need to compile it"

I think nickpsecurity has introduced two ideas, and you are only countering the more complex one. The ideas were,

* Use python as a preprocessor

* Use python to call into C.

To the first idea: the language you choose to use as your preprocessor. Instead of using C macros, you could have an alternate DSL that you transform into C. Then you compile this. Given what an awkward thing the C preprocessor is, I am surprised that it continues to hold mindshare against options like this. Awk is a better powerful transform tool, and easily compiled for any platform it is not already on.

Line numbers is a complication if you do your own preprocessor. This post on PHP suggests how to deal with this, https://stackoverflow.com/questions/396644/replacements-for-...

To the other point. The complications you raise are real, but you can manage them away by setting your C project up to create a shared-object build. For example, it is trivial to use Racket to write tests against shared object files (once you know Racket). This still doesn't address the runtime issue you raise.

Separate issue. There is a set of debugging C-preprocessor macros with similar intent to the ones posted in OP published in "Learn C the Hard Way".
or 50 satoshi
Google’s main business, Search, is still about getting you away from Google as quick as possible.

It used to be. But that was a while ago. Most of the Google search results today for popular topics lead to Google properties or are ads.
As I've pointed out for years, when search works right, the search engine doesn't make any money. Page and Brin made that point in the original Google paper.
There are straightforward macro things like comparisons, list/queue head declarations and perhaps iterators (tacky IMO) that are understood by most practising C programmers. Deviate from that too much, you effectively penalize collaborators/future maintainers by forcing to learn your toy language.

At the same time the abstractions provided by C preprocessor are too weak for significant productivity gain via elaborate DSL route.

It's better to rather stick to universally understood vocabulary than force your sometimes buggy, often inflexible language upon others.
You are doing pass by value on JavaScript example.

For it to be pass by reference you need to change boo inside fun(), but you are changing a field of boo.bar using the boo address passed by value.

When JavaScript starts having pass by reference, this code will hold true. Until then it won't, regardless how people re-invent CS concepts on HN.

function fun( boo ) {
boo = { bar: 42 }
}

function main() {
let foo = null;

console.log( "Before call:", foo);
fun( foo );
console.log( "After call:", foo );
}

main();

This will log:

Before call: null
After call: { bar: 42 }
> but this does not even include a list of breaking changes.

TFA:

> For the full list of changes, features, and internal API modifications, please refer to our change log!!!

Link: https://github.com/webpack/webpack/releases/tag/v4.0.0-beta....
> Sometimes you just don't have other options than C.

This is true. With all the new and fancy languages around, it's strange that there are so few attempts at making a better C.

I would say that the characteristics of C is: dead simple, manual memory management, "fancy assembly".

Rust is close, but fails on being dead simple.

The best attempt I know of, is Zig: http://ziglang.org/

But it's still very early in development. I am using it for microcontroller code right now though, and it's much nicer than C already, despite having to deal with bugs.
Industryautomation here:
It always takes two. One to tackle customers complaining and keeping the system running, one two actually diagnose and fix the problem.
> getting you away from Google as quick as possible.

Pretty sure virtually every website on the internet is talking to Google one way or another. So it doesn't really matter whether you're on Google or not, does it?
When JavaScript starts having pass by reference, this code will hold true.

function fun( boo ) {
boo = { bar: 42 }
}

function main() {
let foo = null;

console.log( "Before call:", foo);
fun( foo );
console.log( "After call:", foo );
}

main();

This will log:

Before call: null
After call: { bar: 42 }
Facebook is definitely more in the straight up designed addiction game, but Google isn't far away in my mind.

Google's main business is advertising, through Search. To do this, they have to keep you coming back to Google and at the same time know everything about you to give you the most relevant ads. This is done by tailoring the search results to you, which is usually good, but can still create a "bubble" because I'll usually end up seeing articles that agree with my points of view without intending to do so.
If the crash continues his current name works fine
>> Remember Google’s main business, Search, is still about getting you away from Google as quick as possible.

That's one perspective. Another is that it's about taking you were google wants as quickly as possible.
Search "getting you away" from Google? Have you seen the result pages for many "juicy" queries? It's almost entirely Google properties and ads ATF.
No I don't use PuTTY. Also, I'm aware what you can do with C macros, doesn't mean you should do it. See my sister comment.
Hm, there's the cesspool that is YouTube. And even with search, there's data collection and tracking. Does anyone on the internet ever really escape Google?
By forcing developers to remember which order they should be linked?
CPUs used in space are usually much simpler and slower than ours – they put enormous amount of resources on error correction due to radiation levels.
https://en.wikipedia.org/wiki/Security_through_obscurity
Opportunity will celebrate its 14th year on Mars
> One reason is self-respect. Many of these voters feel terrible if they are getting government help. They might feel a need to take it if offered, but also feel that it isn't right. It can feel like stealing and it can feel like being treated as a child. Some people value independence and do not want to be tempted with dependence.

Which is a perfect example of what people have been tricked to believe and then it got repeated as often as possible to make sure it gets burned into peoples brain to make them believe "that's just the way I am"
Is it actually receiving WWVB, et al., or jusy synchronizing with, for example, an NTP server and then using that to generate an audio signal you can "manually" sync with?
YAGNI - https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it

I’ve worked with plenty of valuable apps not using async. If the requirements change such that async becomes the best way to solve the problem, that’s something the business would decide at that point.
The point was not about the mechanism, but caring.
Exactly my sentiment, especially the collaboration part. If you take it too far, you effectively invent a new language. Forcing it upon others is more about hubris than skills.
From the blog post, it sounds like the RDB format will break. Is there any means to upgrade from the current unstable RDB format to the v5 one? Obviously there are no consumer groups in unstable now, so in theory reading from a v4 RDB should not be hard..
Remember Google’s main business, Search, is still about getting you away from Google as quick as possible.

If Google sends you to a site with embedded adwords and analytics in what sense are you “away” from Google?
I hear he remembered taking payment in bitcoin for one of his albums. Though he can’t remember ever keeping the private key for the wallet.
Thank you, for saving me the time I would have wasted reading this article.
I wont bet against him either - but I wont bet on him either - and thats where I sit. I wish him all the best, but history has seen others try, and fail.
I agreed with him until his conclusion:

"[Google and Facebook] claim that they are merely distributing information, but the fact that they are near monopoly distributors make them in to public utilities - and should subject them to more stringent regulations aimed at preserving competition, innovation and fair and open universal access."

George Soros always seems to be selling something, so hearing the billionaire cry foul gives me pause.

I don't disagree with the stated ambition – "preserved competition, innovation and fair and open universal access", but I'm hesitant to join the rallying cry for heavy handed regulation at this point. These always seem to come down on other companies that don't have the resources to manage the regulations and create an even more protectionist environment.

What are the unintended consequences of these regulations? We've all benefited from the work that Google and Facebook have open sourced (definitely pushed outside innovation forward), and many incredible businesses and entrepreneurs have found footing on the solid platforms of each.

I don't know. I imagine that if we view these companies on a longer time frame, we'll see that they end up folding in on themselves like every other company – just maybe a generation or two later.
I think this part strikes right at Google, since they are much more an infrastructure provider, not just a site you can avoid using:

<<Soros warned of an “even more alarming prospect” on the horizon if data-rich internet companies such as Facebook and Google paired their corporate surveillance systems with state-sponsored surveillance – a trend that’s already emerging in places such as the Philippines.

“This may well result in a web of totalitarian control the likes of which not even Aldous Huxley or George Orwell could have imagined,” he said.>>
What are the technical and geographical requirements to do two-way communitcation with low-orbiting satelites? A directional antenna, an SDR-card and a decent amplifier i assume, but what about geography? Would i be able to pull this off in a European capital with surrounding electromagnetic/radio-wave pollution one can expect in a capital?
To the parent's point, the one's in your description seem to all to fall on the expensive side, either for rich-ish foreigners or rich-ish Japanese.
Original poster "Such events are necessary to keep human population under a manageable number. Throughout human history there have been outbreaks that claimed many lives and stunted population growth for some time"

The black death was a singular public health crisis precipitated by sanitation not an example of the world population periodically resetting to a manageable level.

I am not unaware of the black death I just don't think it represents an example of what poster is arguing for.
I charge a 30% premium for my time on site. Working from a location of my choosing is more productive. When on site, I am endlessly harassed for meetings and chats and people coming to say hello (and oh btw can you help me with <insert issue>), whilst it is expected that my productivity remains the same. Some clients actually expect an increase in productivity. Being on site is more work, so the client pays more.
That's true, and in the event that you're actually using __COUNTER__ for something you could build something similar out of #include with a header that increments an internal number.

// COUNTER.h
#if !defined(COUNTER)
#define COUNTER 0
#elif COUNTER == 0
#undef COUNTER
#define COUNTER 1
#elif COUNTER == 1
#undef COUNTER
#define COUNTER 2
...
#end if

And then change each invocation of ELEMENT to have a leading #include "COUNTER".

#include "COUNTER.h"
ELEMENT(x)

#include "COUNTER.h"
ELEMENT(y)

Note that if you take this approach then (as far as I know) you're actually writing standard C!
It doesn't solve it, because it doesn't handle roads
Would it be possible to script a regularly recurring event to run everything on overdrive so as to put sufficient load on the on board battery to guarantee a low voltage event?
Like the little tabs on buttons in a game controller?
"Agile Build Factory"

Love it. Management probably thinks it is "cool, hip and edgy"
From a flux/reflux perspective I'd 1-1 relationship to mean that every component had a matching store, but since Redux has a single store not sure what pattern would match.
It's fairly obvious, but this could use a tweak along the lines of: "With Scoop, for example," -> "With Scoop, my company,"
This also applies to Facebook with the ubiquity of the Facebook login SDK and tracking.
I believe the JVM specification describes precisely when class static initializers run, so that should not be implementation dependent.

Of course it still won't be deterministic if you load classes in parallel in multiple threads.
I would rather solutions to large concentrations of tech power not come from above, in the way of government further expanding its control over the private sphere, but from below, via technological innovation in the form of distributed technologies like blockchains.
Git refs can be packed (see https://git-scm.com/docs/git-pack-refs) so it's not just about checking if a file exists.
Build automated virtual machine images for MONARC
Not in Italy nor Poland.

Also, what difference would that make? I already know I'm being filmed, the problem is that there is no control over how that video is used.
Being informed about climate science via Chatbot
The real actual answer is transpile to asm.js from a language that isn't fundamentally a steaming pile of garbage.
Is a restaurant considered a public place, though?
The urge to multitask is proportional to the time taken by the meeting. Keeping it concise should improve focus.
And somehow that's ok if it's webkit?
libgit2 has had bugs related to file locking (for example when you make some ref changes while garbage collecting) and libgit2 does not implement all the git features, so you cannot do everything using libgit2 anyway.
No way, that is so cool..!

Thanks for explaining.
>If you find yourself deep copying then you're about to level up your JavaScript career.

I don't know if I'm supposed to read 'level up your JavaScript career' as you're about to start doing important stuff and get paid for it too, or you're about to increase your technical proficiency by stopping deep copying and finding a better way because it is too painful to keep on (the second interpretation seems to be borne out by the rest of the post, I just wouldn't think of it as leveling up normally)

on edit: fixed silly typo
Ha! That's gold right there.
Do you know the song "Quick Canal" by Atlas Sound? It articulates some of the sentiments in this thread beautifully.

"I wanted to live the life of a prince
Because I thought saints were born saints
So, indeed, we didn't stand a chance

Insalubrious offshoots of nature
With heart & mind of our own
All the daughters, all the sons
Taking centuries to unearth the creature

Heralding a stage
Where consciousness is higher
Taken through a costly process
Of success & failure

I thought saints were born saints
I looked in the dirt
& found wisdom is learnt
Through a costly process
Of success & failure

Oh, wisdom is learnt"

https://youtu.be/RwjUyrp7-aI
- google xi-editor: https://github.com/google/xi-editor

- textmate: https://github.com/textmate/textmate

- lime text: https://github.com/limetext/backend
That was my experience as well. Increase maxpermsize and reboot every night.
Nice Chromium and clumsy memset
Lily Allen was offered a few hundred 1000 bitcoins to play a concert about 6 or 7 years ago. She turned it down...