skysight-inc/HackerNews huggingface dataset:
I feel like this happens because Data Science can only work when two professional areas clash and mix: Programming and Maths. The two are very well connected, of course, but the concepts behind the maths of Data Science are much deeper than what the typical programmer is used to. Programmers need Mathematicians as much as Mathematicians need Programmers. This is where it gets hard: Programmers find it hard to implement these concepts. On the other hand, Mathematicians don't understand what good software is.

Good data analytics software can only come when these two areas learn to teach each other. Programmers need to learn maths to the point where they are comfortable enough to implement a valid solution, Mathematicians need to learn about building software that others can use.
> It's not like there's anything producing new carbon on earth, either.

Actually, there is: http://science.howstuffworks.com/environmental/earth/geology...
Hey everyone, original author here. I've been experimenting with ways to make threaded comments easier to read, I'd love your thoughts and feedback. When using the demo, try enabling keyboard mode, it makes navigating a lot faster and more fun!
I spent some time working for one of the biggest names in trading technology and one of the things I learned is that if your code doesn't work on more or less the first try, your design is probably wrong. The implications of that lesson are profound.

When something doesn't work as expected, I now check my design and not the code.
I thought the same thing. Perhaps there needs to be a "hardware Product Hunt" for collaborative hardware projects.

This almost gets you there. It just needs to be tagged as FSF compliant. https://www.producthunt.com/topics/hardware
I assume showing the date published is the responsibility of the publisher, not the author. In which case, it's possible Nautilus has an anti pattern of not showing dates.

Yeah, that seems a bit dishonest.
It's not for 5%, IMHO. Its for the guy/gal on the fence thinking about using/buying your product/service that see you respond to comments in a professional way and think man if I have a problem these guys/gals aren't going to leave me high and dry.
This is a valid question. In some cases it has to do with the amount of data you're working with. Most database management systems have made progress for aggregating large amounts of data. In many cases it is still necessary to distribute the workload, which in turn creates the need to build out the rest of the distribution system.

With that being said, and to your point, I would not be surprised if these systems were often over engineered when a sql query could get the job done.
The criteria you use it to judge it determine whether it's assessed as broken or not. I maintain it is NOT broken; it's your broken-assessing criteria that are wrong.
There are many talks about why OOP is "bad" but they tend to come from the FP camp The decent talks of this nature are backed up by firm, fundamental reasoning showcasing the power of "better" abstractions. I, personally, find both OOP and FP compelling, depending on what I'm trying to model.

Wish I could link a few examples, sorry.
Well that settles it. We have the Encrypt the Web folks.
I'd like to see a Version The Web
Stupid question maybe, but what would the use case for something like this be? Can I run a server on it?
I learned programming.
> if your code doesn't work on more or less the first try, your design is probably wrong

Or you're tired. Or you're just not as focused as you could be. Or you have a deadline. Or you're trying something new. Or you're not fluent in the language yet. Or you're fluent in the language but not the framework. Or you're fluent in the language and framework but not the design pattern (if you use those).

Or a whole host of other things.

I'm not saying spot-checking the design isn't a good idea, but saying that it's the design more often than the code just doesn't match up with my experience.
For the integral in the post, it's not so straight-forward to use complex contour integration [1]. Though, I agree with you -- for many other similarly intimidating integrals, complex integration can work wonders.

[1]: http://www.jstor.org/stable/2588989?seq=1#page_scan_tab_cont...
Because tests should not be more verbose than code. Refactoring the sumArray method to use map instead of a for loop shouldnt break tests. it is terrible terrible practice to take internal implementations and then stub their callees to make sure that the code that was written got executed. I saw this a lot at Amazon. Its a fundamental type of moronic testing and is absoltely useless. All it serves is to make any kind of refactoring or changes twice as burdensome.
This happens to me a lot with programming, where the (maybe poor) analogy is scales being "fundamentals" and songs being "cool apps/libraries". I tend to skip to building cool apps and when the easy parts are done I get lost or the projects becomes a mess.
That's disheartening to read. I found the way beer bottles were reused in Germany truly impressive, especially coming from the US and knowing the scale of waste the German system avoided.
I think he was talking about something like unsafePerformIO. There are plenty of tricks you can not write on pure monads, and there are many Haskell libs that use the unsafePerformIO trick too.
To me there are two automated testing philosophies:

1. Write tests to prove your code works, which is sometimes referred to as "test-driven development"

2. Write tests to catch any side effects or regressions when altering code

Funny thing is that if you write good tests, then the results are pretty much the same regardless of your motivation.
Because, as I said, context deeply matters in science. Intentionally excluding publish date - which, by the way, is also not present on any of this piece's siblings - is intellectually dishonest.

If I'm reading this piece by way of a direct link, I have no idea of when it was published, diminishing its current credibility and relevance. Having to go hunt for that information is supremely annoying, and makes me wonder if they made some intentional decision along the lines of "well, if people know this article was from 5 years ago, they probably aren't going to read it because they will go searching for something more up to date", which would in fact be dishonest. To be clear - I'm not accusing them of that, but in an era of rampant fake news, why do anything to cause your readers to question your honesty?

I'm sorry, but this publisher exists in 2016, a time in which they know articles (fake or not) are frequently passed around in ways meant to misrepresent science behind them. There is no excuse for not including a publish date. None.
Get 3 Months for Free
We would love to get some feedback on the API we went with and the choices we made. Have a look at the guide: https://community.algolia.com/instantsearch.js/react/guide/
Mormon and long time lurker here. Just wanted to give clarity to this because it can be confusing. Mormons don't believe they are forcibly baptizing these people by proxy. They believe that everyone should have the opportunity to accept baptism and salvation through Jesus Christ, even if they did not receive the opportunity in the mortal stage of life:
"Individuals can then choose to accept or reject what has been done in their behalf."

https://www.lds.org/topics/baptisms-for-the-dead?lang=eng
Google "apple sierra battery life issues" and you'll find people reporting similar battery issues after upgrading to Sierra. This affirms the article's assertion this points to problems with power management. Overall though Apple has no excuse. The entirety of their value proposition lies in the fact they control the entire computing experience: software and hardware. People have already been questioning the hardware, MB Pro 16, and now the software, Mac OS Sierra, is starting to look suspect as well. I'm starting to think the critics may be right, Apple is starting to lose their mojo. Cook and crew had better be careful because once it's lost it's very hard to get back.
I'll put the question to the other readers:

How often do you find, despite having written tests, that there is some bug in your software? And how many of those times did you think that you should have considered it beforehand, rather than that it would be impossible to foresee?

In my experience the most useful tests are the ones that came from some unforeseen bug, which was then fixed and a test case built around it, so that it wouldn't get "unfixed".

The least useful tests are the ones for cases you know not to invoke, because they are obvious. Like how you know when you divide by a variable, you know it can't be zero. So you make sure it can't be zero, making the test case a bit moot.
Develop SSL Sites Locally with MAMP
Expect is cool, I have used it in the past as well as the expect perl module, but in my opinion is always a suboptimal way to automate things. It's always better and more robust to have a proper interface to script things instead of relying on matching brittle text/regex responses and timers and such. Of course sometimes it's not possible, so expect comes in handy.
Look, I fixed their code in so many ways:

main =
runConduitRes -- dealing with finite resources
( sourceFileBS "input.txt" -- read input.txt as binary data
.| decodeC utf8 -- decode assuming UTF-8
.| linesC -- split into lines
.| mapC parseList -- parse each line into list of text
.| mapC (get 5) -- get sixth element of list
.| catMaybeC -- discard lines with no sixth element
.| encodeC utf8 -- encode as UTF-8
.| sinkFileBS "output.txt" -- dump into output.txt
)

And it's still very functional, if not more so!

This will run in constant space and linear time, it will buffer reasonably, it will not leak file handles, it will gracefully clean up on exceptions, it will not crash when it fails to parse something correctly, and it makes the encoding assumption explicit (you cannot split into lines unless you know the encoding).

Dealing with I/O is not hard when you use the correct primitives.
Beer bottles are doing fine, but pretty much everything else (bottled water, soft drinks) went away to be replaced by single use.

You can still do a beer Club Mate diet by exclusively using returnables.
Operational PGP
There was this funny case here in Germany a couple of days ago where a man made 45.000€ in bottle-deposit with scanning the same bottle over and over again.

The judge called it a „logistical masterpiece“ because the guy had to scan roughly 180.000 times.

https://translate.google.com/translate?sl=de&tl=en&js=y&prev...
I write code for a living (data science), but am not really a programmer. So far, my favorite language is Scala with Spark. Other things I've worked with: Python, Clojure, Haskell, R, SAS, tons and tons of SQL.

The major advantage of functional programming here is that it models the domain really well: the vast majority of my work involves taking a small number of data sets, doing a long sequence of processing, and outputting a small number of data sets. Everything in between benefits substantially from error-preventing techniques such as purity and static types.

The biggest disadvantage is how hard it is to analyze and improve performance. Working with Spark means that a pipeline that works on X gb of data will often fail on 5X with out of memory errors, and it's nontrivial to diagnose and fix. It's not clear to me how much of this is due to Spark itself vs. laziness.
I'm curious what experience led to this opinion because I can't disagree more.

Most any .NET site doing volume should be using TPL, because the framework is incredibly efficient at managing threads and preventing the pipeline from getting clogged. I've worked on dozens of APIs and sites that need to deal with hundreds and thousands of concurrent requests. Handling those in a synchronous fashion or hand-rolling state management is horrible and I'd never want to go back to it.

The only downside I agree with is the debugging, but that gets better with every C#/.NET/VS release, and you really shouldn't have a ton of complexity buried in your await block. If it hurts, there's a good chance you're violating SOLID.
SEEKING WORK - MidWest, USA. REMOTE.

Remote - Yes

Willing to Relocate - No

Willing to Travel - Yes

Freelance Technologist and Community-Builder based in the US. Having spent a vast proportion of my career in software engineering, for the last 6+ years have been leading the developer community outreach program for XDA-Developers. I am passionate about communities and the processes involved in building and sustaining their unique character.

Services:

- Developer Relations

- Community Building

- Open Source Development

- Mobile/Web Technology Consulting

- Process & Project Mgmt

- Herding Cats aka Nerd Herder

Portfolio: https://jmeiss.me

Email: freelance@jmeiss.me
In my view, free hardware has been around forever, and it's all over the place, but folks haven't created the kinds of organized group projects like in free software.

Going back to before the computer age, scientific publication embodied free hardware design: When you reported a result, you were expected to provide enough information that a reasonably skilled person could replicate your study. This is a principle of scientific methodology that I learned from my parents, who are both scientists. I apply this principle to my projects, and it seems like a reasonable model for folks who want to create reproducible work but have not learned how to use modern project management tools like revision control.

Starting roughly a century ago, people started publishing designs in magazines, for instance in the ham radio literature. An informal tradition (reinforced by the editorial policies of some magazines) was to publish the design and parts list, but offer things like printed circuit boards, parts kits, and even finished units, for a nominal fee. I published a handful of articles in that literature, in the 1990s. By that point, hardware contained code, and the magazine would maintain a source code repository at their website.

Free software grew along the same lines: Magazines would print source code listings that people could type into their microcomputers. I'm sure that scientists shared code informally.

What I think is lacking in hardware, is the kind of organized group activity that we've seen in software: Big open-source projects like Linux or Python. Hardware people, especially hobbyists, just don't know how to create or manage a project like that. I certainly don't. But if you look in the Arduino or Raspberry Pi worlds, you'll find plenty of open hardware designs.
Indeed there are diminishing returns as you increase coverage. I personally shoot to go over 80%. You may try to do 90% but it is going to significantly increase the development cost. You end up writing a whole unit test just to test one trivial line.
Interesting comment although I don't feel like the article adds much to it.
Yup and also, how about missing code? Even 100% isn't enough :)
How about a 'bot' that can follow an itinerary (ex: TripCase) and tie in with two other sources: 1) Weather feeds, 2) Airplane routing. The bot will notify (or help manage) the traveler's schedule by alerting potential weather issues outside the normal scope of the individual traveler. As in, the plane the flight is booked to use got held up by weather in Seattle and won't make it to Houston for the intended trip of Houston to Miami. This way re-booking could be considered before 'the rush' in theory.

Also, considering the loading/unloading issues, why not hand out little light up buzzers like at restaurants? Call people in waves, certain sections of the plane, just do it more efficiently. Considering how, ahem optimized cabin layouts are to smushing people in with very little legroom, then being strategic about loading makes sense. Tickets and lines are kind of old hat, even scanning a phone. Just scan a phone / ticket, a buzzer comes out a dispenser, go mosey around, find a seat, whatever. Note: Expect 1-2% loss of buzzers due to people dropping them in toilets or something.
That's great.

In New York, we have $0.05 deposits, and which are less effective than the high deposits in Europe but dramatically increase the recycling rate. The biggest gap is that many bottles (wine & liquor, juice, milk, etc) are exempt, and the diversion rates are much lower.

I wish they did the same thing for plastic bags. Bottle litter is pretty limited these days, but I live on a side street off of an avenue, and we get a lot of blown in bags from that street. The bags clog storm drains, get caught in trees, etc.
It depends on the context, but of course developers are considered superior to the tester. That's like saying doctors are considered superior to nurses. If you just look in terms of knowledge required, the amount you need to know to be a developer is significantly higher.
You have not seen the beginning of it, my friend.

"Linux's '60s technology, open-sores ideology won't beat W2K, but what will?"

[Bob Metcalfe, ethernet inventor; InfoWorld, June 21, 1999-06-21, P. 146]

"The idea that great developments in personal computing will be invented in some dismal student bedroom in Helsinki might make nice bedtime reading for people who dream in hexa-decimal. But if all you want is a computer that you can aspire to understand, chuck that blasted CD-Rom in the bin right now."

[David Hewson, Sunday Times, 1997-04-20]

Full text: http://www.robots.ox.ac.uk/~north/moron-meets-linux.html
over capacity. anyone have a screenshot for what the terminal looks like? Is there a countdown timer?
Beer is actually not such an issue as most people prefer to drink their beer from glass bottles. Water and soft drinks are another story. Though I would really like to see an ecological assessment whether the bottle reuse system is more eco-friendly than the single-use system with deposit and recycling.
That's fine and all but they should let consumers know before they buy it. There's nothing inherently wrong with exclusivities if it's made abundantly clear ahead of purchase. It's wrong for consumers to discover they can't play parts of the game they bought because they're on the wrong side of an arbitrary business agreement.
Server capacity reached , please try again later :)
Tried the Debian instance
He means you test pure functions and mutations. You dont stub data sources that your implementations use to see if they were called. tests need to be about enforcement of correct interface exposure. not exact implementations. its one of the most facepalm types of useless testing that ive seen littered around Amazon's Seattle teams due to these Indian managers wanting to make sure the data sources called in every method actually got called and that there is 100% coverage. serves no purpose except to basically make two copies of the code..the test as a doppleganger of the actual code but using stubs.
Webhooks: The Devil in the Details
There should be a law banning people from asserting the constants have the expected value in tests.
That was my first thought too - nitrous oxide on Mars. Peculiar/strange might have been better adjectives? "Funny" probably is better for SEO (like no dates on articles).
>I could change the username if I have access to the email and password.

No you can't.

Lets say I download a database leak of email/password combos from a popular service. I can't go onto bankofamerica.com or whatever and start iterating through that leak for password reuse, I don't know the username for a given email account.

Usually password reset goes something like this:

If I click on "forgot password" it asks for username and email address to email me a password reset link. If I click on "forgot username" it asks for email address and other information a financial institution would know, like SSN, account number, credit card number, CVV code. You can't do anything with just email and password. You can't even do anything with access to that email address and password. I just reset my password with Wells Fargo last night and it even gave me security challenge questions from my credit report to change my password (questions like what car did you own, what's the payment amount for your mortgage, what address are you associated with, where does $(relative) live?).
Well, yes. That's how priors are supposed to work.

Something that's 1% likely and something that's 75% likely require different amounts of evidence to get to 95%.
Sorry, my thoughts stopped short. It does in part.

But the collective mistakes of a team aren't a predictor of potential future members of the team. For example, we started hiring "junior" programmers, which increases the skill gap.
Ask HN: Apps or software to help with weight loss? What worked for you?
I'm way over what I'd like to weigh, and I'm going to go on a diet (again). The last time I successfully did so (several years ago), I loosely followed something called the Hacker's Diet (https://www.fourmilab.ch/hackdiet/), and (most importantly) subscribed to a controlled-calories food delivery service. For software, I filled an Excel spreadsheet (I now see they have an online software version ).

I'm not going to subscribe to the controlled diet service (too expensive), so I'm going to need to calculate calories in what I eat, and measure my weight.

So, what are any web or Android apps you've tried or recommend to help with this? Weight trackers? Food / menu managers? Calorie counters?
Literally addressed two sentences later.
I agree the property reference tab autocomplete is a pretty powerful feature. It's like autocomplete in a shell, but contextual, since the system already knows what you want the first argument to be. And I've seen a video with one of the big functional guys (maybe Brian Beckman?) pining for that feature.

I'd point out, though, that is still is only part of the picture. You're holding on to a value and you want to know what you can do with it:

widget.<tab>

will show you everything of the form

widget.someData
widget.doSomething()

but you're still missing out on other structures like

freeFunction(widget)
handler.handleWidget(widget)
hammer + widget
widget[part]

// returns a widget, does this one count?
widgetFactory.buildWidget()

In nearly any language the first two will be common, and where available the others are critical usages, too. I want to be able to tab complete them!

It's hard to continue hewing to the tab as activation with these other structures, which may be why IDEs and REPLs don't really try.
That's why you need to pay another guy to find code that breaks :)
ROP and Heap Spray for a Reverse Shell in IE8
Sort of, but imagine this scenario:

I very rarely have issues in problem space A, but I don't really test for A. Maybe a few here or there but it's a small minority of my tests and the coverage is probably just incidental. I test heavily in problem space B for whatever reason.

I get hit by a bus, and you're my replacement.

You have no experience with problem space A, so there are few if any tests around that space. All of a sudden the coverage is misleading because we might have 100% coverage or close to it, but the thoroughness isn't there and suddenly releases are less reliable and support ticket volumes increase.
Write-Once, Run-Anywhere Material Design Library for React Native
I've always viewed the code coverage metric as "what percentage of things that are supposed to be tested are actually tested?" From this perspective, anything less than 100% is a serious failing--it means that you've forgotten to test something you think is supposed to be tested.

Now, the correct response may well be to decide that that particular bit of code shouldn't be tested after all. Sometimes this means adding a /coverage skip if: an outgrabed momerath is hard to reproduce on demand/ for a particularly tricky corner case, but more often it means that you haven't correctly separated your concerns and that particular piece of code actually belongs in a file that's not touched by the test suite.