skysight-inc/HackerNews huggingface dataset:
I am surprised that they fought for net neutrality at all in the past. The primary threats to their businesses are new companies, and barriers to entry are their best protections. Having money skimmed by companies like Comcast is far better than being replaced by a better search engine or a new social network. Right now it is much easier to implement an idea and scale it than it would be if you began also having to finance new extortion fees before you even had a chance to validate your idea.
My experience is: formally proving something in Coq is not a prerequisite for understanding it, but understanding it is a prerequisite for formally proving it in Coq. So if you get Coq to accept your proof, it's a good sign that you understand every detail.

For the domain theory proof I discussed in the article, formalizing it in Coq absolutely helped me understand it because:

a) Merely formalizing the definitions was valuable for me, because there are tricky subtleties to them (e.g., the supremum of a subset doesn't need to be in the subset, the various ways to define a "complete partial order", etc.).

b) When you do a formal proof, you have to refer to the definitions quite often. This just reinforces them in your brain.

c) Of course, when you formalize things in Coq, any misunderstandings you had about the material will be brought to your attention when your proof doesn't work.

On the other hand, I didn't gain much insight from the soundness proof for the simply typed lambda calculus. The definitions for that development were more straightforward. But I was already fairly familiar with the ideas of progress, preservation, etc. so I didn't expect to learn much from doing that. If anything, the main thing I gained from that was experience using Coq.
Is it possible for one of these "programs" to run forever? If so, does that illustrate a direct correspondence between the halting problem and godels incompleteness theorem?
And this will be cited for years as a case in point for why finanvial institutions should be skeptical of treating crypto currencies as a true piece of payment or currency infrastructure.

At the current level of use, this issue is a side note. At the envisioned level of use by crypto promoters, it woukd be a catastrophic economy-crypaling disaster that would have impacts far beyond a single institution. As infrastructure, this sort of thing is must-work cannot-fail technology on the order of nuclear reactors.

I'm not saying crypto currencies aren't in our future at that scale. I don't know if they are or not. I'm saying we have a much, much longer to go, and the order of a decade, before they have time to mature and then prove that maturity. Until then, they're a speculator side show. Heck, with so much mining capacity in China, they exist in significant part on the suffrance of the Chinese government not feeling too threating by the level of social disruption they might cause. If that threshold is crossed, significant mining capacity an transaction speed that goes with it is a few great-firewall configs away from oblivion. Yeah, miming difficulty will kick in ti alleviate pressure, but only after disaster-level and life-savings-wipeout levels of financial fallout ensue.
> You just sound lazy and apathetic.

And it sounds like you are quick to rush to judgment.

You're essentially accusing me of doing exactly what you are doing. You could have instead asked more about the context within which this all happened (which was a pretty bad situation to begin with) and if I tried to work with the person submitting the pull request.

Instead, you make me out for lazy (which is something that I don't think anybody that knows even a little bit about me) and apathetic (which also doesn't fit the bill, rather the contrary).

You can take as much time as you need to do a review if you have that time. The middle of a house fire is not the right moment to push through your pet project, and it also doesn't mean that if I point blank refuse a pull like that that I had not thought it through.
Neither of those are comparable to Amazon, which offers the possibility of reviewing the whole scope of recordings available for sale.
I see it the opposite way. Big companies are too big to be blocked in any "standard" plan. So the effect of this legislation is that little guys will be blocked.
The extremely liberal for their time founding fathers of the US were greatly concerned about the tyranny of the majority, which is why people get pedantic when talking about the US as a democracy. As has been pointed out elsewhere in this discussion, many states do function as democracies where we can vote directly on amendments to the state constitution (which is how all laws allowing for possession of cannabis have been passed).
Yes and no.

Verification != validation, and there is no technique on the "make better code" side that will help with the validation side, not proofs, not unit tests, nada.

On the other hand, there is a certain amount of benefit of "double entry bookkeeping"; having a statement of what it's supposed to do separate from what it actually does. And you get bonus points if they're linked so that you know what it does is what it says it does.

It may be that there is 'little real-world" applicability' for the full deal as things stand now. But things like fancy type systems are trying to continually push usability towards proofiness.
Nothing guarantees that code is bug free. We will always have to interact with hardware, and although we can have high confidence in the hardware the physical world has a habit of changing out from under us.

Your argument is very strange. We use type systems not because we think we'll write perfect code, but because we know it will reduce the likelihood of making mistakes in our code (at least, when that type system is sound).

It seems like you're against writing proofs that your code is correct because you think you'll do better. I have a very hard time believing that, seeing as you probably aren't writing your own assembly (that beats a compiler) most if any of the time.
This kind of sneaky sneaky subversion is how Linux gained a foothold in corporate IT. And we know how that turned out. This is definitely a method smart underlings can employ to change things for the better.

It is not without some career risks, but it can also open new doors.
The simple answer is it probably depends on what you’re doing and what you’re optimizing for.

I don’t know of a better way to get an MVP project up quickly. Rails at scale is probably a touch harder to manage, but that’s by no means impossible.
This. Webpacker enormously improved the JS experience with Rails.
And if there was a popular election, then there's no guarantee the result would be the same. Under the current system, the candidates focus their campaign on the voters with the most influence ("swing states"). Maximizing popular vote would require different methods.
Regulations can also be much more easily (and quickly, especially in the face of large changes in executive or congressional personnel/party/attitude) reversed, amended, or removed. The "rules" (mostly per-dept) mandating gradual phase-in, discussion, and phase-out of federal department regulations are much more likely to be bent and/or broken in the face of political sea changes. Not necessarily a good thing, but should be noted nevertheless.
> And maybe more relevant, but what are the factors that cause someone to have strong willpower and perseverance, and were those under their own control?

And that's the question, isn't it? Depending on where you draw your battery limits, you can take credit (and responsibility) for absolutely everything, or absolutely nothing.

To quote Tim Minchin, from his speech to UWA grads:

> Remember it’s all luck. You are lucky to be here. You are incalculably lucky to be born and incredibly lucky to be brought up by a nice family who encouraged you to go to uni. Or if you were born into a horrible family that’s unlucky and you have my sympathy but you are still lucky. Lucky that you happen to be made of the sort of DNA that went on to make the sort of brain which when placed in a horrible child environment would make decisions that meant you ended up eventually graduated uni. Well done you for dragging yourself up by your shoelaces. But you were lucky. You didn’t create the bit of you that dragged you up. They’re not even your shoelaces.

> I suppose I worked hard to achieve whatever dubious achievements I’ve achieved but I didn’t make the bit of me that works hard any more than I made the bit of me that ate too many burgers instead of attending lectures when I was here at UWA. Understanding that you can’t truly take credit for your successes nor truly blame others for their failures will humble you and make you more compassionate. Empathy is intuitive. It is also something you can work on intellectually.
I think the reliance on open source work is too heavy. Plenty of amazing engineers have done work at organizations serving millions of customers but have not made contributions to open source. A portfolio is mentioned but is at the bottom of the list of importance, and even noted as such. The author mentions company blogs. At decent sized organizations these could be written by the marketing departments, little regard to the engineers.
I also like the set of slides Paranoid Programming - Techniques for Constructing Robust Software [1] from Stratus Computer. They were discussed here earlier this year [2]

[1] http://ftp.stratus.com/vos/doc/papers/RobustProgramming.ps

[2] https://news.ycombinator.com/item?id=13678251
6-Step Guide to Steal Your Competitors’ Prospects
In general, CS (the science) does not often concern itself with the kind of architecture decisions day-to-day programmers deal with.
Instead, the field tends to offer architecture advice in particularly hairy areas (DB design, distributed FT consensus, etc).
In my opinion, that’s how it should be - the goals of academics are very different to those shipping code in the real world. A great developer will be aware of when to turn to academia and when to turn to industry best practice - too often developers are not aware that they are wondering into a hairy area, and end up re-inventing flawed and inefficient versions that are well understood.
These bugs can be tested. You launch a testnet, and test them.

There was no reason why one wouldn't run a testnet and see how fork will go after block XYZ.

I'd rather have a global ledger with consensus than allow a few companies to stop all banking at weekend so all banks arrive at a consensus.
Abstraction is, by definition, reducing different things to a shared subset of their attributes.

Eg : the concept of "Human" is an abstraction over all the different attributes of all the individuals, to reduce them to the ones they all share. If i say i met a "human being", you can't tell if it's a "he" or a "she", if he has dark of blond hair, etc. What you can tell, is that it has a heart and a brain, stand on at most two legs, and has at most two arms. That could be all you need to deduce a few things, but by saying so, i kept some details hidden from you.

Now, if we get back to rx, its whole purpose is to work with the concept of "streams of events". Noting that many data structure and patterns (such as iterators over arrays, or event source observation) can be thought a specific kind of even streams.

This lets you define stream-combination operations, that work on all those structure. Which may, sometimes, be convenient.

The problem is when people start telling you that the generic tools around Rx Stream (producer, consumer, publish subject, etc) are the best tools to model the behavior of all your application, because "everything is in fact one big giant stream of events".

And then you end up with code monstruosities, because you realize that it's more complicated than that. Maintaining a UI state and mutating it becomes a nightmare, you start wrapping every native structures (such as arrays) into Observers just to perform the equivalent of a join, etc.
Either the stdlib and frameworks are "reactive", and then using rx pattern would be invisible, or you're going to have a horrible code.

In some way, it's exactly like generics, or base superclass : you define them in the stdlib, for example to share code between Sets and Arrays, but what the end user is manipulating 99% of the time isn't "Iterable". It's Arrays and Sets.
So strange this is downvoted when it’s fact.
It is distracting to me if there are many errors, and I feel it may bias me to trust the author less. Usually what throws me off the most is the misuse of prepositions, where switching 'of' and 'to', for example, in a way that changes the meaning. I remember from learning German that different prepositions are used in different circumstances than they are in English, even though they seem to be the same word. In any case, having a native English speaker edit your article can mitigate this.
Keep zooming out and we're all little hypertriangles in some N-dimensional cellular automaton, and there's no such thing as 'meaning', just patterns of higher or lower entropy. Don't think too much about it or it'll just make you depressed.
Yes, I'm aware of that, I mean in the context of the last 100 years, apropos German-English, English-English, American-English, and so on. I think a bit of American vernacular has a German'ification phase, the languages seem to be intertwined, but this is just an opinion based on observation through personal life experience not some kind of academic point of view. I'd love to know the linguistics basis behind such intermingling.
Ask HN: Why are billionaires not giving more money away?
With some people having so much wealth, why are we not seing them put more money into society? Helping out where their money really can make big difference.
The entire job of contemporary elected officials is to use their power against the interests of the people, in order to enact their sponsors' agendas. The booster speeches kowtowing to non-profitable public interests are nothing but wool being pulled over our eyes.
Digital News Report 2017: digital news consumption in 36 countries, 5 continents
We don't need something with substantial mass though. We could send a really minimal probe with no landing capability to take close up images.
Not just Elon Musk, that's a fairly common "euphemism" in the world of rocketry.
Guessing they do some basic verification and purge bad signatures over time. If it's anything like Reddit where subreddits with <80 subscribers get 30,000 upvotes on posts about net neutrality; one can assume that there will be a lot of bots on that site too.
Yes, though the extent to which this is feasible is limited by hardware, commerce, and law. Even now, there exist alternative protocols and communities of varying scope for every part of our de facto stack (https://github.com/redecentralize/alternative-internet). Certainly creating an alternative infrastructure poses the biggest challenge, but GuiFi, Freifunk, Ninux and others have met that, and then some.

One project not mentioned in the above link is RINA (https://csr.bu.edu/rina/). According to RINA, the very notion of an "alternative Internet" makes no sense for two reasons: (1) the Internet as we know it is not actually an Inter-net so much as a single, flat network that we accrete; (2) under the RINA model, every network could be considered "alternative," and in almost a Platonic sense, RINA treats every network and every connection as already existing. If this is of interest, I highly recommend the book "Patterns in Network Architecture."
just follow your dreams ..
I believe there is a lack of proof the ergonomic benefits are significant outside of typing tests which are very unrealistic to day to day tasks (unless you have a pure typist job). A bias also exists when many people that switch layouts never touch typed well or properly in QWERTY to begin with, or lose comfort awareness as they forget how to type well in QWERTY. I speak as someone that touch types equally well in QWERTY and Colemak, and think time would be spent better sticking to or learning QWERTY better.
I'm of the opinion of using the best tool for the job. If you need an MVP fat then use Rails but if not evaluate other options. Please your need may come from what you know best.
Well, that is understandable... but i think, that rsync has major drawbacks: No history - overwriting means destroying (e.g. ransomware) || No deduplication - restic transfers blockwise and only once || No encryption - access to backup means access to all data || No error protection - how to verify backup success?

In my opinion a good backup should contain a verified restore strategy :-)

You should also consider sending and receiving snapshots, when using zfs (https://docs.oracle.com/cd/E18752_01/html/819-5461/gbchx.htm...). Zfs also supports deduplication, but FreeNAS devs do not recommend using it unless you have a massive amount of RAM and you know what you are doing.
All it took was waiting over an hour with a large fee to make me realize there’s a huge problem in the bitcoin community.

The block size is fundamentally too small to support the current volume of transactions in a meaningful way, and the weak (and suspicious!) arguments in favor of letting bitcoin’s transaction time spiral into hell don’t hold water.
Wouldn't Python/Django make more sense in 2018 considering that Python could be used for data science and machine learning? I realize this is a Python vs Ruby question, but if you didn't know either Python or Ruby and were trying to pick between Django and Rails for a project, wouldn't you pick Django in 2018 due to future data science and machine learning opportunities?
Rossi E-Cat QX Demonstration (Nov 24 2017)
The 12-year-old prodigy whose “first language” is Mozart
and users who don't pay
But when you look at a menu, you know what you're looking for so it's a matter of identifying one thing. Aside from convenience I don't think the length of a menu matters much.
It's quick and painless to sync with Dropbox - kudos to the developer. I've been looking for a decent iOS app for org integration and it looks like my search ends here.

If I could make a suggestion though, it would be really nice if it supported subdirectories. I suspect that most people, like me, don't keep all their org notes in a perfectly flat hierarchy. Being able to go into subdirectories and view notes would be a great help.
I think reading about a theorem and a it's proof and then implementing it in a formal language probably similar to watching a professor prove it on the board, then going home and proving similar things on the homework. Writing it in a formal language forces you to think about it at a level of detail that's easy to skip if you just read it.
No. What does rails have that a different python framework doesn't have?

And you'll save yourself the tears of migrating later.
>, but you can also go too far in that direction of analysis. If you let the empirical gain in traction to sneak in as a factor in your analysis, you effectively have a tautology, and you lose all predictive power

That's a good point. I'd have to give it more thought on how much predictive power we're supposed to ascribe to multiple-dimensions.

Maybe multiple dimensions is a better thinking tool for experimentation than prediction. This frees one from being paralyzed by the status quo. For example, a 1990s entrepreneur sees that the internet is becoming popular and maybe he thinks he can sell books on it. But then he goes to Barnes & Noble and sees that people are pulling real books off the shelves, taking them to the lounge chairs, and then leisurely sitting down and flipping through the pages before buying. If the dimension of "in-store experience" constrains the worldview, it will not occur to the entrepreneur that other dimensions like near-infinite selection in a "virtual bookshelf" and convenient delivery to the home will be prioritized over the store's lounge chairs. One doesn't know if those other dimensions for "book buying" matter more to buyers until he tries it.

Another well-known example of constrained single-dimensional thinking is analyzing the Blackberry vs the iPhone in 2007. Both the CEO of Research In Motion and Steve Ballmer of Microsoft were focused on the physical tactile keyboard. They saw that the iPhone obviously lacked real QWERTY buttons, so they both predicted it would flop in the marketplace. Steve Jobs' Apple team ignored the dimension that RIM & Microsoft used for criticism. Instead, they looked at the dimension of "screen size" and made it larger. The also bet on the dimension of "capacitive touch screen" which enables finger gestures. These were the dimensions that a billion smartphone buyers ultimately preferred. The Blackberry was cheaper and buyers still preferred the iPhone touchscreens.
Absolutely. If you're building a POC or MVP it's a quick and easy way to get something off the ground. The framework will take you pretty far before you have scaling issues (long enough to know if what you're making is worth it). The community is very knowledgeable and friendly, and gems for almost everything already exist.

If I needed to spin up a new project and get to work right away on something I'd go with rails no question. I've yet to find another language/framework combo that works as well as a Ruby & Rails stack (Laravel and Django are good alternatives too, I'm just more experienced with Ruby). Don't think too far ahead. Premature optimization or thinking about future scaling issues if starting a new project is time that could be spent better. Rails isn't going anywhere anytime soon.
> Unfortunately, on the other, I've never been able to read Coq proofs the way I can read programs. Probably a lack of experience, I guess.

I don't think it's a lack of experience on your part. I worked with some people at MIT who were far better at Coq than I was, and they admitted the same thing. Coq proofs are unreadable, even when all the hypotheses and variables are given thoughtful names.

But, as you found, Coq proofs are not meant to be read; they are meant to be stepped through. I'm not sure if there is really a better alternative: if the formal proofs were made easier to read, they'd probably be much longer. And they can already get quite long compared to traditional paper proofs.

I think the right strategy is to break large developments into small lemmas, such that each proof is short and borderline obvious (similar to structuring a computer program to be self-documenting). Also, more experienced Coq users heavily invest in proof automation (building "tactics" in Coq) to make proofs short and sweet. I don't have much experience on that front, though.
Don't knock 90s technology: Hubble is still sending us gorgeous pictures of the universe...
Pretty sure that this Quora answer from DHH is still valid in 2018: https://www.quora.com/What-makes-Rails-a-framework-worth-lea...
>Perl is essentially a pigdin or creole language composed of C, shell, awk, sed and POSIX concepts with bits of Lisp thrown in.

That mixing and matching seems exactly like the quirks a linguist would pick up that lower usability (at least for the general user, Unix users are kind of used to being thrown in the deep end of the usability pool).
Formally proving something is just very expensive. The difference between the cost of an informal understanding of the correctness of your code, and the cost of formally proving it in a theorem prover is usually at least one order of magnitude (if you are lucky).

A compiler though with a type system actually REDUCES your cost. So these are very different beasts.
> someone who can't discover the tortoise and hare algorithm on their own probably shouldn't have a computer science degree

This sentence is simply ridiculous. Most engineers aren't able to discover this trick. I wouldn't.

The same goes for the rod cutting problem or the maximum sub-array problem (Kadane algorithm): expecting an engineer to find them, especially in an interview, is totally inane.