skysight-inc/HackerNews huggingface dataset:
In reality they have turned out to be the opposite of prophetic. National governments are more powerful today, relative to corporations, than they were in 1992, when Snow Crash was published.

In the 90s, a lot of people thought that businesses would leverage networked computer technologies to disrupt governments. People thought the Internet would be a new medium of exchanging information and wealth, impossible for governments to monitor and regulate.

Does anyone think that anymore? What we see today--thanks to Edward Snowden and others--is that the Internet is thoroughly dominated by national governments. They have the best hackers and invest in the strongest technologies. For example it's hard to think of a smarter tech company than Google, and the GCHQ picked their pocket easily with MUSCULAR. Rather that disrupting the government, core technology companies like AT&T enthusiastically work with the government.
#2 is incorrect. Being sensitive to line breaks does not make a grammar context-sensitive. It just means you have to treat line breaks as tokens rather than ignorable whitespace (which is exactly what the context-free grammar given in the C11 standard does).

Same with the bit about concatenating tokens. Every single one of those examples has a static parse tree, which, for the C preprocessor, is a sequence of tokens and directives. The author seems to be confusing the preprocessor's parse tree with the effect it has on the underlying text.

(Yes, the output of the preprocessor is dependent on what you define, but that has nothing to do with the grammar. What the author claims is like saying a Lisp is context-sensitive because the factorial function produces a different values for different inputs!)

Now, if you could do this:

#define foobar define
#foobar x 123
x

and get "123", that would be a context-sensitive grammar. But that is NOT a thing you can do!
Mathematicians, scientists, and doctors absolutely! Catching and dissecting frogs, joining math clubs, debate teams, etc. It's not a requirement but when I think of the best folks in their respective fields they did not start in college. It's not that they've specialized from a young age, but they had long term passions for the tools useful for their field.

What early education provides is a safety net when things become tough. My classmates without this preparation had a much more difficult path and many eventually dropped out. The psychological effect of impostor syndrome is a component to picking field to study in college; those who feel they have a harder time than their peers are less likely to continue in the field long term.
> I certainly see plenty of references to "POW number" for various conflicts.

AFAIK, it was never policy of the Allied forces to tattoo anything on captured POWs. I would be very surprised if captured Axis soldiers were not given some sort of uniform, unique tracking number.
Among other things, taxis in the US are generally regulated at the municipal level, which is fine enough if you're in NYC, but somewhere like the Bay Area where there are dozens of small cities with crazy borders, you have to remember that Mountain View taxis are different from Sunnyvale taxis, which are different from San Mateo taxis or San Francisco taxis, and only San Francisco taxis are allowed to pick you up at the airport, but any town's taxis can take you there, so when you're going from the airport to somewhere that's not SF, you pay different rates and use a different company than when you're going to the airport. Uber abstracts all that away behind a nice API, which is the same not just for every Bay Area city, but for every city in the US, and many cities around the world too.
I'm sorry, but I disagree with this current trend of making language "safe" for everyone. Yes, I know about triggers and some good reasons for changing words (there's no real reason to be using master/slave in a new piece of software).

Eventually you end up with bland, uninteresting language. Pact, while a little confronting if you follow the connotations far enough, is an excellent and succinct name.

I would have also accepted "contract".
Rust's memory management strategy has been described before as "you have to think about it, but you don't have to worry about it", which I think applies to the language more broadly in terms of a comparison vs. C++. The latter is very flexible and powerful, but generally assumes the programmer is perfect, meaning mistakes often won't be caught at compile time and are often subtle to track down, while Rust has the assumption that humans are fallible, so many mistakes are caught. The fact that they're caught means learning Rust front-loads a pile of things, because the compiler complains about them, which can easily make Rust seem more complicated despite the core concepts of ownership/borrowing really being a subset of modern C++.
- There is a 90% chance the company will fail and you will end up working harder than you ever have for less money and with a less marketable resume. Even though you say that being a "professional software engineer" doesn't matter to you, you're more marketable coming from stable big-corp for product manager, data scientist, engineering manager, TPM, director of engineering etc. etc. roles than some guy from a startup nobody has heard of.

- Even if this company is insanely successful, most likely you are going to make peanuts. I have worked at two startups as a relatively early employee, one acquired for XX M and another for XXX M. In both cases, the money I would have made/made was hardly life changing. There is a 99% chance that this is a bad economic decision.

- Even if this company is insanely, insanely successful, the founders are going to be flying in private jets, and you'll have a down payment on a house in Palo Alto.

- The only reason to join a startup as an early employee is the learning experience. You will learn more than you can imagine. You are going to work really really hard, and it is going to push you to your limit. You won't be the same person on the other side. It will have some incredible highs and some incredible lows.
The fact that so many people are frustrated and have had their comments upvoted while yours sits down near the bottom quarter of the page with only two replies should be an indication that your thinking might be out of step.
The economics of this inertia is easy to understand, and there are readily available remedies. The world faces a deficiency of aggregate demand, brought on by a combination of growing inequality and a mindless wave of fiscal austerity...The only cure for the world's malaise is an increase in aggregate demand. Far-reaching redistribution of income would help, as would deep reform of our financial system -- not just to prevent it from imposing harm on the rest of us, but also to get banks and other financial institutions to do what they are supposed to do: match long-term savings to long-term investment needs.

Simplified primer by Joseph stiglitz.

http://huffpost.com/us/entry/world-economy-2016_b_8908560.ht...
There was something subtly hilarious about seeing a Vanguard investment ad before that clip.
First thing I see is an encoder and list of good design rules. This blog could be a gold mine if other articles are similar. Thanks for the link.
New Apple Watch
MongoDB is quite decent these days. Their WiredTiger backbend is written by the Berkeley DB guys.
Correct, the etcd instance is only accessed by the master, which uses etcd to back the apiserver. But any root process on the nodes can access the secrets through the apiserver (there's no access control at this point).
Posted this on his comment form:

Karthik, disclosure, I was a YC founder.

It doesn’t seem very thoughtful to say never pay more than 3%, full stop. If you get more than 3% value out of the incubator, it’s often a good idea to pay more than 3%. You should make the decision after talking to many people who’ve chosen the incubator, and there are many companies that will say they got much more than 7% benefit out of YC – and also companies that didn’t.

It’d be great if every incubator charges much less than they do today, but I’m doubtful it’s a perfectly competitive market, with stickiness in things like alumni networks and reputation (it does seem like it has some similarities to the education market). Entrepreneurs would obviously benefit from more competition amongst incubators – and maybe you’re right that change is at hand.

I’m sorry that you didn’t get in to YC specifically (and maybe it wasn’t the right idea to apply, if you felt so strongly about how incubators provided so little value) – but I hope you won’t let your disappointment and anger get in the way of thoughtful business decisions, including in cases like future customer rejections.

Anyway, back to building our businesses – good luck with your own!
TrumpScript – Making Python great again
Learn to Build iOS Apps Development Using Swift 2
Not at all. Shareholders would begin screaming at the management to pay the taxes almost immediately.

Losses wouldn't even make it to $100 million before management was replaced.
The colour schemes are very similar though. There are many colour schemes one could choose.
Testing ExpressJS apps like it's 2016
Yes. Those are all old, established languages. And while they do have a _lot_ of use, there are also a significant number of languages which see heavy amount of use that have no spec. And as you mention, it's not exactly a criticism; it depends on where you fall on the maturity scale of languages you wish to use.

It's only unreasonable due to Rust's young age. At Rust's age, none of those languages had a specification either.
> By complaining that when you update nightly you have to update your code that uses unstable features, you are in effect asking us to stabilize everything.

No, I think the point is to just have a specific unstable that corresponds to a specific stable as closely as possibly, and designated as such., Conceivably crates that needed unstable features, but not bleeding edge, could require at least that unstable release, while others that really need bleeding edge features could use nightly. The issue here is that your release procedure treats unstable features differently than everything else, making any crate or code that wants to use any unstable feature resort to using a nightly of some sort. Admittedly, I can see reasons why this might be by design.

You might have good reasons why you think that won't work or be useful (I can think of a few, such as not wanting to promote people building on a specific implementation of an unstable feature). At a minimum, it is at least slightly more work to make sure this new item is released, depending on the release process.

P.S. The prevailing wisdom so far when wanting to use unstable features from a point release is to use a nightly form the same day, but the release policy seems to indicate that the nightly from that time is actually two release versions ahead of the stable that was released the same day:

> This process happens in parallel. So every six weeks, on the same day, nightly goes to beta, beta goes to stable. When 1.x is released, at the same time, 1.(x + 1)-beta is released, and the nightly becomes the first version of 1.(x + 2)-nightly.[1]

I'm a bit unclear on what the best thing to do would be if I wanted to use features from something that is as close as possible to a particular stable release.

1: https://doc.rust-lang.org/book/release-channels.html
Well it looks like you're right I wasn't aware of how efficient COW forking is. I stand corrected
What do you mean by local operations? If they're local what are they logging right now and why would their productivity go up so sharply when the mosquitos die off? Do you have any sources for any of this information? Why can't they work around them today? There are many proven ways to dealing with mosquitos.
I have always been curious about Lisps but the lack of static typing turns me off. Sure you can have a type system (typed racket) but it doesn't feel organic, also then why not use any other statically typed language (haskell, scala, ..). With all the hype (very likely well founded) surrounding Lisps, I feel like I am missing out.
> Mind to share the name?

Yeah, not right now, thanks. I'll share the name when I'm ready for a stress test. <grin>
The thing I find fascinating is - I have lived long enough to have seen 50% smoking rates, and nobody complained. I don't know if that was something that was suppressed by social convention, or of the massive anti-smoking media campaigns that came later basically created this dissatisfaction.

But the world was in general a lot funkier back then.
I thought about that as well. I think it may be defensiveness and anger - rather than a logical statement. Those feelings are natural, so I don't fault him - but at the same time, rejection is a part of startups at every turn and I think we have to get over it, and figure out how to use criticism constructively.

YC has always valued persistence - so I'm sad that he applied and wrote that, since he might have been able to get in the next time, and I think YC likely would have helped his ability to recruit and valuation, especially given the changing markets. But regardless, I always have respect for startup founders (esp after 3 years of hard work) - so we should all wish his team luck.
Do you mean the $10/phone that Android OEMs have to pay Microsoft for licensing?
Not at all. But it seems like a good example of very separate cultures developing in the same nation.
Have you actually had problems with nil pointers in Go? I've written it for years without facing it so perhaps you're doing something radically different if you managed to come across it.
The MS AJAX control toolkit and UpdatePanel probably didn't help, either.

I think I can probably say that Javascript engines are an order of magnitude faster than they were 16 (!) years ago.

If I may make a generalisation, C#/Java devs are more likely to be "enterprise" developers and said enterprises were more likely to be the ones on IE <11. I know I fought damn hard to upgrade from IE8 just a couple of years ago. My webdev skills suffered as a consequence, too.

Microsoft moved pretty fast once they realised that IE needed to compete again - and Visual Studio evolved alongside it (mostly).

VS2015 is now a pretty good development environment for Javascript/Typescript and even includes some Grunt build support (although I haven't had a play with it yet).
"Windows, Linux, Mac OS X, and the BSDs we have today are still built using the architecture developed when computing resources were limited even though it is no longer technically necessary."

Nonsense! Why would you waste any resources on infrastructure when you could use them for applications. Every cycle that your garbage collector runs is a cycle that the cpu could have been sleeping and saving battery life. This concept that we don't need to care about resources anymore is absolute poppycock.
That's a great write-up on NULL. I've always done things to avoid it but deeply thought of why we did that past the obvious stuff. Learned something that, esp with option stuff, that might pay off in the future. Thanks. :)
Definitely the diligent, paid, Greenie lobbyists are out in force today!

They are determined, guys: They want your carbon taxes and subsidies!

Vote'm down, guys. Vote'm down!

The Greenies want a war -- vote'm down, guys!
Better Numeric Input with MMNumberKeyboard
Using this would require whatever process you start to handle SIGTERM properly. Most processes spawning children do this, but it's no guarantee and one needs to be aware of this.

In my experience, processes doing IPC with parent gets notified of parental death by EOF on the socketpair/pipe it's using to communicate with the parent. This is easy to reason about and most people check return values from I/O functions. Parents spawning children and only caring about SIGCHLD are more prone to not have the correct signal handlers set up by its dev(s).

IMO, any process spawning children w/o proper signal handlers are not good citizens.
Golang resources in LA
I think that's the gestalt of Live Writer, which has been recently open sourced, but it's still Windows-only, so I can't say for sure because I've never personally tried it.
Node.js resources in LA
http://clhs.lisp.se/Body/d_type.htm
The Joy of Debugging (or: Finding Out How Things Don’t Work)
I wonder how much Apple would pay for https://duckduckgo.com/ just to screw over Google.
I wonder how much Google got charged for the opportunity in 2015
ASX invests in US blockchain firm to settle stock trades
> that will incentivize some people to have more kids simply to get more money.

This sounds like the edge case a non-parent would bring up. People who make poor life choices make them for far less insightful reasons that time-value calculus.

It would take an unbelievable amount of money for me to have another kid. It would be cheaper to buy my retirement.
Wait... you are saying you are willing to have a 49% chance that the police hold you in custody and search your house when you are totally innocent?!? Think about that.... there are LOTS of stolen phones and tablets, and if the police end up searching the wrong house nearly HALF the time that would be hundreds of innocent people. Fuck that I am SO not willing to live in a society where that happens.
"rumors are" == "not true"
That's about 5% of what Google has made in profit from Android since ~2008.
We did that with alcohol. It didn't work out.

I hate to be that guy, but the effects of second-hand smoke studies happened long enough after this all got sufficiently politicized to where I'll (conveniently) take them at face value, but I'll never completely trust them. Simple bias confirmation is sufficient to explain the preponderance of the literature.

The latency times for tobacco effects in general make it a doozy of a thing to study. By the time the information gets to lunkheads like me, it's hash.
The politics for this entire issue are very tricky. Putting your money where your mouth is and dropping hundreds of millions to fund clean energy is a good way to get the denialists to stop stonewalling. They can't claim that "it's all a conspiracy to grab some gov't money" if the person is actually putting even more of their own money towards this issue.
I heard about Chinese Govt. subsidizing logistics on a news channel a while ago.

I Googled about it yesterday and found this insightful article instead.
It's not taxing the poor in general that's bad. It's when the tax has a disproportionate impact on the poor compared to the rich. They're regressive and generally considered bad because when designing a tax to pay for say a welfare project that is supposed to benefit the poor taxing them to pay for it is counter intuitive.

I'm split on this tax though since it's a sin tax so on one hand it doesn't really work to tax someone who isn't a smoker but on the other it's not working so why increase the burden on the poor unless it's preventing new smokers?
> Why not say the same to the parent, or yourself then?

While I thought the parent's comment was in snark / sarcastic it was still contextual and not as extreme (it was regarding the issue you brought up).

As for me? What did I say that was hyperbolic?

> The rebuttal was all about sacrificing trees to prevent brain damage to babies which is a false dichotomy.

Yes what krschultz wrote was a false dichotomy. Sarcasm tends to be just that. Though you, on the other hand, took his / her comments to an extreme that didn't make sense because of exactly what I said: you creative a narrative that didn't exist out of someone else's comment only to be hyperbolic to try and bolster your position.

"Not sure I agree with protecting the trees over preventing brain damage in babies" - krschultz

"If you kill all the trees[...]" - zepto (in reply to krschultz)

Do you understand now? Surely you can see the ridiculousness of your response to krschultz, regardless of his / her own snark / saracasm, right?
One or three Necklaces – The Emporialist│romanian „street fashion” magazine
All the people who were subject to the Marlboro Man were also subject to the stories surrounding John Wayne's death.
It also gives us an answer, the National Encryption Association should be formed with the exact same tactics.
What else are you going to do with it? Invest in your employees? Ha.
I'm not married to it. Would you like to suggest an alternate name? (Aside from "atomic bomb," as was suggested elsewhere in the thread.)
Hasn't "... in public areas" been settled for a couple of decades now?
I know Amazon, Microsoft and Oracle routinely use TLA+, as do many smaller companies. TLA+ is a specification language that includes both a model checker and a theorem prover, and the companies I mentioned use TLA+ tp specify and formally verify real-world code (e.g. Amazon uses it to specify and verify most of the AWS services; Intel uses it to verify chip design).

In practice, the theorem prover is not used much in real-world applications because proofs are very, very expensive[1], but the model checker is used very often and I've found it to be extremely useful.

[1]: seL4 required 30 man-years to prove a <10KLOC C program. The cost of proofs may grow exponentially in the size of the codebase.
Top 20 Interview Questions on SDLC Set-1 – InfoTech Site
HN wraps things separated by blank lines in <p> tags, so:

Line 1
Line 2

becomes:

<p>Line 1
Line 2</p>

which displays as:

Line 1 Line 2

If you want to make bullet lists on HN, you have to have a blank line separating each item.

Wrong Way:

* Item 1
* Item 2
* Item 3

(unless you're aiming for this:

<p>* Item 1
* Item 2
* Item 3</p>

)

Right Way:

* Item 1

* Item 2

* Item 3

HTML:

<p>* Item 1</p>

<p>* Item 2</p>

<p>* Item 3</p>

Renders as:

* Item 1

* Item 2

* Item 3

Some people use <pre> blocks (as I've been using above to show examples). This breaks on long lines, because there is no text wrapping (instead the element becomes horizontally scrollable). Like this:

dfjgkhsfdlgkjdfgkjfdhldskfjghdkslfjghdflkjshdfglskdjfhglsdkjfhglsdfkjghsdlfkgjhsdflgjkhsdflgkjshdflgjkhsdfglkj
afgkjhsdflgkjhdflgkjsdhfglskdjfhglsdfgksjdhfglsdjkfh

If you are editing your HN post in something like Vim or Emacs, you could wrap the text to N columns (something like 50 should probably be decent):

- Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nulla at lorem id eros
tincidunt tempus. Fusce maximus efficitur
tempus. Suspendisse auctor sem ligula, quis
iaculis ante aliquam vel. Suspendisse potenti.
Integer magna arcu, consequat laoreet nunc
nec, pulvinar consequat justo. Cras sed velit
sed odio ultrices ullamcorper. Suspendisse
semper, urna ac vehicula vestibulum, mauris
urna euismod velit, ac gravida mi purus sit
amet mi. Sed commodo, turpis vel iaculis
rutrum, justo nisi venenatis lacus, et pretium
purus erat vel risus. Duis vulputate elit at
orci auctor facilisis. Donec eu urna congue
risus dapibus porta. Donec efficitur vel lorem
sit amet fermentum. Suspendisse potenti.
Aenean dictum, lorem non tristique commodo,
nulla urna rutrum odio, sed sodales enim nisi
eu tellus. Vivamus efficitur dictum est at
laoreet. Sed ornare nulla in ante tincidunt,
ac sagittis mi varius.

But you have to remember to "manually"[1] wrap the text yourself.

[1] Manually in that something other than HN will have to wrap the text for you. You can either do it be hand, or put technology to work for you... just not HN technology.
Maybe to illustrate the difference between programming for pay and programming for fun that many students might eventually experience. They use an extreme example to scare away those who aren't committed enough. ;)
Cartoonize your photos from your desktop