skysight-inc/HackerNews huggingface dataset:
I'm surprised to see so many comments here throwing up on the use of JSON. Have we really forgotten the Unix philosophy?

> Write programs to handle text streams, because that is a universal interface.

A lot of the data formats I've written recently have used JSON. Partly because of that aforementioned principal, but mostly because it's just easier and there are very little downsides. Almost every language has support for it so it's fairly universal, it's self documenting, it's easy to debug, easy to manipulate by hand, and easy to maintain.

Put more simply: I've implemented several data formats using custom binary and several data formats using JSON. JSON was easier and faster every single time.

My recommendation for data formats: just use JSON; unless you have a really good reason not to.

And I do mean really good reason. For example, many might think concerns about data size would be a reason not to use JSON. But go ahead and run some JSON through a compression algorithm some time. You'll be amazed. Compressed JSON is very competitive versus a custom binary format.
https://mobile.twitter.com/Sci_Hub/status/933085186614611968

Sci-hub currently does not fully function via IP address.
34C3 Junior CTF
> I think it's worth asking: Is health really personal?

No one asks that because the answer is obvious.

I don't mind the government, or a non profit, using data (in an anonymous and transparent way) to benefit the health of everyone. But giving such personal data to a for-profit mega-corp, whose own processes are opaque and unaudited, is criminal.
Many Londoners (or Australians living in London) find that expression somewhat charming. Just don't talk to strangers on the tube.
> The video comes in a high definition format that’s many terabytes in size. A terabyte is big. Imagine 60 stacks of paper as tall as the Eiffel Tower. That’s a terabyte.

What... No. An HD ProRes will be 150-200GB for a 1.5-2 hour film. That is a 1920x1080 Apple ProRes 422 HQ @ ~190Mbps which is the 'gold standard' accepted Mezz file for Netflix, Google Play, iTunes, AIV (Microsoft, Sony, TalkTalk etc). There are different codecs for broadcasters but this is the standard for VoD. If you deliver uncompressed (uncommon, few relative gains) then it might run into the hundreds of GB but never a multi-terabyte file for a feature.

Although most of this article has been informative, I am dismayed by the outright BS. It basically ruins any trust I would have of this otherwise well written piece. Can your exaggeration be explained or justified please?
I'd like to think it is more like when Oxygen entered the scene. Maybe we can never get rid of of Javascript, but like anaerobic bacteria, maybe it can stay put and out of sight under some rock.
> Is it possible that APL and J fail this test only because you (and I) don't know how to read APL or J?

Yes and no. :) Its a great point; familiarity and practice is a big part of comfort and productivity, absolutely.

I love playing code golf in Python. You can make Python very concise, and very unreadable. But I don't write professional code that way, and I definitely don't have a goal of making production code as concise as possible. Conciseness is good for very small projects, for the 5 minutes while I'm working in the code. Conciseness is awesome for Project Euler. Too concise, and when I come back to my own code days/weeks/months later, I can't understand it at all. Anyone who's coded for long enough on big projects will know the feeling of coming back to clean, well commented, semantically explicit code years after writing it, only to have no clue what it's doing or how it works.

I also know how to read math, and math (typically... almost always) has this very problem. The conciseness is good for proofs and multi-step algebra, you need it while deriving things and working with the math. Once you codify it into a process, the conciseness is a big obstacle to understanding and code safety. I make lots of mistakes with math because it's too abstract. The mistakes are usually easy to fix because it's only a line or two at a time, but it'd be unworkable and unreadable if I had many thousands of lines of math the same way I have with regular code.
Are you sure Tax Policy Center can be trusted?

Those numbers seem very low for Ireland. I'm willing to be wrong but something seems very off here.
The Programmer’s Price
Most efficiency gains of imperative programming languages like C or C++ come from the compact and continguous memory layout and usage of the stack which is usually in the L1 cache.

In theory there would be no difference between mutating an existing memory area and allocating new memory to write to it. The number of bytes written to RAM are the same.
Manipulative, maybe. But why grossly? All you are doing is making the other person feel good. It should be encouraged and celebrated. If you have a choice between making someone feel neutral, or feel great, why wouldn't you choose great?
You can't survive as an ISP if you don't have GGC nodes or directly peered with google DC. If your customer wants to watch youtube videos and you serve them through internet only, which will either mean you will have to buy more BW (not financially sustainable) or you will have to cap youtube traffic resulting in inferior user experience and a customer leaving your service. Or just ban youtube - might as well stop running an ISP.

The best solution is to peer with their DC - let them do the heavy lifting and you can pull from their cache, then you can chuck the GGC nodes. Google is building a small DC close to our NOC - which means lots of saving for us and a better experience for our customers. We can see us chucking the nodes or in this case, we most likely have to give it back to them or something - they are very expensive and large supermicro servers.

10:1 is not a lot if you are serving a lot of traffic. For 50gbps, thats 5gbps bw - that's a lot of bw for free service - we don't cap youtube traffic (users likely to watch high res 1080p, 4k videos nowadays), we can't sell youtube traffic (license agreement from google) - so as far as ISPs are concerned its pissing away money. To be honest services like youtube, facebook and Netflix, even with their on-premise cache solution are a huge headache and expense for ISPs - it's not just the BW, rack-space, distribution switches, power, they all add up.

There is a reason why Google with all their expertise, knowledge, money and influence can't even make a dent in their ISP business - because even with all their money - it insanely expensive when you try to cover most of the country.
Ask HN: What is the fundamental difference between engineering and marketing?
Microservices in Golang – Part 4 – Authentication with JWT
Reference counting [1] and atomic reference counting [2] are supported within Rust, and are sufficient for any persistent data structure without cycles. There's also a prototype crate for a mark and sweep GC [3], which would likely work for anything else. Writing such data structures using these features might be a bit more tedious than writing them in a GC language, but I suspect the increased explicitness provides a worthwhile tradeoff. See the crossbeam library [4] for some examples of lockless concurrent data structures implemented in Rust.

[1] https://doc.rust-lang.org/std/rc/struct.Rc.html
[2] https://doc.rust-lang.org/std/sync/struct.Arc.html
[3] https://manishearth.github.io/blog/2016/08/18/gc-support-in-...
[4] https://github.com/crossbeam-rs/crossbeam
It fits the narrative of "young men who don't know each other sent to die by old men who do know each other".
Not to bother you with this REALLY long mess, but I've been working on it for a while already, so could you please review it for me? Some flaws just won't work out correctly, and I need a pair of fresh eyes to look at it. Laziness isn't added yet, and there are a lot of flaws that make it not ready for any sort of use (recreational or otherwise).

Thanks!

Report can be found at https://gist.github.com/ndrewxie/54d3299c998569c27e281d2320b...
Is this not basically the concept of the J Peterman catalog? :)
By acquiring whatever backs the money and printing money that represents it. In other words, the treasury would buy gold from somewhere else, and create money representing that value. This is how our monetary system worked when it was gold- & silver-backed. Now it's a fiat system, where there is no reserve of some asset held to back the currency ("out of thin air").
> "There can be no integers which are both even and odd", sure. Such a number cannot exist because the properties can not be co-instantiated.

What makes you so sure that having x^2==2 can be instantiated? What about, say, "an even number greater than 4 that cannot be expressed as the sum of 2 primes"? It's ridiculous to say that that exists and we're arguing over whether it has some property or not; far more natural and practical to say that it's an open question whether an integer like that exists.

> Sure, but that property is possessed by some x.

No, you can't say that until you've proven it. If you just assume that such an x exists, that might turn out to be just as incoherent as assuming that an integer that's both even and odd exists.

There's a mathematical urban legend about the Journal of Foo Manifolds; these were manifolds defined in some particular way, and proved the object of much interesting study, so eventually got their own journal. In particular, mathematicians wondered about the Bar property, and published various incrementally improving papers about what kind of Foo Manifolds did and didn't have the Bar Property.

Eventually, a paper was received proving that all Foo Manifolds had the Bar Property, and another proving that no Foo Manifolds had the Bar Property. Both were carefully checked and found to be valid. The final issue of Ruhr Journal of Foo Manifolds consisted of both papers and an announcement that it was closing down.
Agreed. Perhaps perhaps the author should consider, er, marketing this as an alternative to raw HTML rather than to Markdown.
Indeed - the article refers to subsequent agreements between DeepMind and the NHS which did fulfil the necessary requirements.

I don't think there's much of a story here apart from basic incompetence in a single instance - mostly on the part of the NHS trust (who really should have known better) in not understanding or applying the necessary governance, and partly DeepMind likewise.

But of course, without the hand-wringing and links to Google and advertising, there's much less of a story to promote...
React itself does not allocate a new object, but it forces you to do it yourself: to update the application state, you're supposed to call `setState()` with a brand new state (which is a newly allocated object). In React tutorial[1], you can notice the use of the `Object.assign` pattern which perform a new allocation.

However, most JS runtime have a generational GC so an allocation isn't remotely as costly as an allocation in C or Rust.

[1] https://reactjs.org/tutorial/tutorial.html#why-immutability-...
Well, mathematical notation is written for humans, not computers. With a bit of context, and comparing to human language (not code), it is very much not ambiguous.
OP, in the event you've questions.
Warren Commission
I would've thought that Facebook would have solved this problem already? What is better than a friend within 6-degree separation ?
I was actually looking at Red in consideration for my next year's personal projects.

I'd consider it further if I felt it was more complete.
Perhaps this is a cursory evaluation, but it feels like the emphasis is to use what's built in as much as possible. Given a lack of json (yes, there is an implementation out there, but not built in), and still pending linux GUI support, it still feels too unfinished for me to invest my time into.
Well, I'm definitely aware of what mainstream programming langauges look like. But I think the popularity of a language is only loosely related to its technical attributes.
Would you please not be a jerk here? That's against the rules in general and particularly against the rules for Show HNs:

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

Edit: you've continued to post uncivil/unsubstantive comments for quite a while now. We ban accounts that do that. If you can't or won't fix this, we're going to ban you, so please fix this.
Thanks. Much appreciated for a project that just takes forever to get to a point where I care or dare to share.
The pain of developing it was one reason I didn't do much with Hellaphone after that summer. Other reasons: lack of funding and no spare phone to use if I wanted to develop it on my own time.
Java has

Boolean mu = null;
Distributed ledgers (e.g. blockchain) are based on security by game theory. It's financially rewarding to agree with each other, and financially very costly to disagree or attack it. You can't have game theory in the protocol without intrinsic rewards, as far as I know.
There are many markdown implementations and standards. Madness! Lets create another one, but with a syntax that is worse somehow
The UK needs more power, however between off shore wind (half the price of Hinckley even now), and mass energy storage - not just dedicated batteries but also 10 million electric cars plugged in to sockets, I don't see this being financially suitable.
Unfortunately not everyone stops using a project as soon as it is discontinued.
>Everyday, I read articles about VC. How to pitch, how to prepare,

Ok, I see the misunderstanding. I wasn't talking about the existence of any VC startup related articles. Yes those do show up on HN. I wasn't talking about those.

I was talking about a very specific type of startup article that would advise you that "staying small is suboptimal and won't make you happy. Instead, if you want to be happy, you must get big by getting VC firms to invest in you." It's the the type of advice that's the opposite of what this article and DHH's articles are about. There are no such articles giving that type of growth-for-happiness advice on HN's front pages.

The "YC’s Essential Startup Advice" that you cited is meant for people who've already bought into the "startup" mindset and is mostly "build product fit" advice and not "growth=happy" advice. It's not a counterpoint to this article's advice nor counterpoint to the popular DHH articles.

(I see that you participated in that previous thread's discussion so it may seem like YC startup advice dominates here. You wanted tactical advice on starting a small business that wasn't AirBnb or Uber and that article didn't cater to that scenario.)

>Quoting the article, "Growth is always a focus for startups, since a startup without growth is usually a failure."

Yes, that quote about "startup=growth" is relevant to YC's and Paul Graham's definition of "startup" so it's their tautological statement in the context of their blog post. It's not advising that entrepreneurs of small businesses will find happiness by chasing growth. Yes, a small bootstrapped business that stays small is another definition of "startup" but that's not the "startup" YC/PG are talking about.

To restate the context of my comment, the gp (onassar) wrote, "I think it's great/important for an article/concept like this to be given some reach."

... which he is agreeing with the advice of the article to avoid VC money to stay "happy". He framed it as if that "happy=small" idea was some "lone voice in the woods" that everybody on HN needs to be reminded of. My point is that onassar must have some false impression because that's already the overwhelming sentiment on HN.

>it just sounds abrasive

Did you also find Daniel Gackle's (dang) comment abrasive?
If you really don't know the loss function and are not willing to guess at it, classification is hopeless. If you estimate there's a 70% chance that instance A belongs to category X, there is literally no way to decide whether to classify instance A as X or not.

Anyway, the point of Brier score is that it evaluates your probability estimation (without the loss function), so this is no objection.
Linters typically operate on the AST for your code, though, and differences between your linter's grammar and the real grammar can cause headaches.

More ambitiously, I think there's a huge amount we could be doing with ASTs, where right now we're mostly kludging along with line-based tools. Merging/diffing is one example. I've run up against some truly gnarly merge situations, in particular with indentation based languages, where automatic merging did what could best be described as "stirring" the code, and manual merging was like pulling teeth.

It's bizarre to me that in 2017, we're still using tools that act like our source code files are made of unstructured lines of text, instead of exploiting the precise structure that the language imposes. I don't know of any remotely mature tools that try to solve this problem, although I've seen some more research-like projects. The potential gains seem huge. For example, imagine renaming a method throughout your project, and having no merge conflicts with your teammates, even when they change the same lines where that method is called. (Or at least, imagine having a merge tool that proposes the correct merge for your approval.)

But if we're going to move toward tools like that, languages without formal specifications are an obstacle.
I think there's lots of opportunity for a markdown alternative, but I worry that this starts in the wrong place. It seems like it's built around code, whereas Markdown is built around writing.

A friend of mine who works at a newspaper noted that it was really hard to get a lot of people in the mindset of Markdown, because it requires users to think about their writing in terms of HTML, which is harder than it sounds for some. This seems like it pushes things further in a direction where people who aren't code-savvy can't get on board.

The other thing to keep in mind: The reason why Markdown is great is because it's readable even without being rendered. This is not, because it simplifies the HTML without abstracting it. That's a tough hurdle to get past for a lot of folks.
As opposed to actually caring about what they have to say. There's a much more agreeable part of the article that talks about finding common ground with the second party.
I highly recommend Anna Karenina as read by MaryAnn, in English, and as read by Eva K. in German. They’re both easily professional level.
I'm not sure the world needs a new markup syntax, especially an awkward mix of HTML and Markdown. But I could be missing the point, since I just base this on my own needs.

But thing is, talking about performance and scale goes exactly against your project's credibility. These are pretty much the two dumbest criterias when it comes to markup syntaxes.
Wow, just wow. From the cost overruns, to the deal to pay almost twice the going rate for power, to learning that France has 50+ nuclear plants that need to be replaced in the next 10 years, the article is just a fountain of bad news.

It's a great lesson in things that have a long lead and a long tail can be hugely derailed by technology.
As noted: it doesn't work.

I've just expanded on why hosts files or other options don't offer the power of DNSMasq:

https://www.reddit.com/r/Scholar/comments/7m3uin/meta_if_you...

A fair bit of this also falls out of the fact that DNSMasq is already running, configured, and modularised much as I describe in the original post. The larger part of that describes how to get to the point of dropping in a single script-generated file to provide Sci-Hub access on literally any TLD on the Internet in a fraction of a second, for all managed systems.

Note that not all systems can use hosts files: Android devices and iOS are highly resistant to this. They would have to be individually configured. Using DNSMasq, any device acquiring network leases from the local DHCP server is automagickally configured. "It just works."

The idea occurred to me a few days ago, and I ginned up and tested the solution in about five minutes. It took ten times longer to actually document it.
>Retailers have taken it to another level by requiring you to commit to availability without a commitment to have work. Nobody gets 40 hours — you target around 28 typically.

This is the law of unintended consequences as applied to the ACA. If they give you more hours care their costs go up dramatically unless they're already offering health.
Not really. It's hard for your editor to do this statically, but there's heaps of good tooling for finding the method source and docs dynamically.

pry> show-source SomeClass.class_method
pry> show-source AnotherClass#instance_method
# List an arbitrary object's class methods, instance methods, methods mixed in by included modules
pry> cd some_object
pry> ls

The runtime knows how to execute your program (it's not random) so everything you want to know is available.
The article even links to Sundown, making it even more bizarre.
Allow me to shill for Concourse[0]. It's oriented around 'tasks' composed into 'pipelines'. Each task either fails or succeeds with the yaml pipeline definition providing hooks into either state to proc other tasks. A task is a yaml definition that invokes a bash script. Each task runs inside a preconfigured docker container for full reproducibility.

It's declarative and everything needed to bring up a pipeline can be stored in git alongside the software it supports. For an example pipeline definition, check out the one for bosh-gcscli[1] and its accompanying tasks[2].

Now, there is the downside that upkeep is a hassle because it requires buying into the BOSH ecosystem to deploy Concourse. That pays for itself by being explicitly anti-brittle, with support for migrations and canary rollouts builtin.

Disclaimer: I worked with Concourse at my previous position but currently have no financial stake in its success.

[0] https://concourse.ci/
[1] https://github.com/cloudfoundry/bosh-gcscli/blob/c908176/ci/...
[2] https://github.com/cloudfoundry/bosh-gcscli/tree/30316d6/ci/...
IMO even the blockchain is here to stay. But more in the toolbox of useful datastructures than in the realm of "hip company ideas".
Lyft Self-Driving
Started reading with interest, but then everything started to look really similar to HAML [0] after a bit. With the exception that HAML also lets you add CSS classes to your tags...

[0] - http://haml.info/
> In theory there would be no difference between mutating an existing memory area and allocating new memory to write to it. The number of bytes written to RAM are the same.

It's not the same, you need to allocate new memory, if it's on the heap then (depending on your allocator/OS etc) you will be making a syscall, which means context switch, cache eviction etc.
Bob Martin SOLID Principles of Object Oriented and Agile Design
As a Ruby ops programmer who came to Rails via Chef I had no exposure to Sandi Metz or any of the other Ruby OO thinkers. However, several years later, now that I have read and integrated the ideas in POODR to my work, I highly recommend it.

Besides Sandi Metz, another Rubyist that I rate highly for delivering clear ideas about design is Avdi Grimm. His RubyTapas series quite radically changed my approach to building applications in Ruby.

Observe that programming in Rails doesn't intrinsically require an OO mindset. But when I reached the limits of the framework, knowing a thing or two about building rich OO domain models served me very well and helped avoid anti-patterns.
Dear IPFS,
Are you a solution to this problem?
Because in reality it is no big deal. Modern GCs are incredibly efficient.

When a GC allocates memory all it does is check if there is enough memory in the "young generation" if yes it will increment a pointer and then it will just return the last position in the young generation. If there is not enough memory in the young generation the GC will start traversing the GC root nodes on the stack and only the "live" memory has to be traversed and copied over to the old generation. In other words in the majority of cases allocation memory costs almost as much as mutating memory.