skysight-inc/HackerNews huggingface dataset:
AFter writing a few non-trivial projects (only thousands-ten-of thousands of lines), I'm starting to really understand every gripe about Go.

The standard library is very nice, but the language constantly feels like it's working against me or I'm having to circumvent some intended feature (no generics, while not a problem in the beginning, has continually worn down on me). Besides that, reason 9 is a huge nuisance which needs to be resolved,
And who cares about the WhatsApp number? But sharing people's phone numbers? That's disgusting...
> amelius is mentioning an alternative to the hacky "git undo", not an alternative to git.

Ah, so I misunderstood. Still, changing the filesystem under $HOME (or whatever is the working directory) is more difficult than using some user-level tool.
Or it could have started by building a kill pit at the end of a natural ridge/wall/stream, and using dozens of men to force the antelopes along the path to the pit. Then someone said "wait, if we build another barrier on the other side, we could do this with fewer men...

But either way, I doubt they were just chasing antelopes across flat land and one dude said "Eureka! I've got it!"
It has text content, merely inserted by CSS `content` instead of living in the HTML itself.
This doesn't salvage it in any meaningful sense, but it does work:

class EqualLengths:
def __init__(self, size):
self.size = size
def __nonzero__(self):
return True
def __repr__(self):
return "True"

def equal_lengths(a, b):
if isinstance(a, EqualLengths):
if a.size == len(b):
return a
return False
if a is False:
return a
n = len(a)
if n == len(b):
return EqualLengths(n)
return False

>>> reduce(equal_lengths, ["a", "b", "cc", "d"])
False
>>> reduce(equal_lengths, ["a", "b", "c", "d"])
True

However, I could do something similar with sum():

class SumEqual:
def __init__(self):
self.size = None
self.is_equal = True

def __add__(self, other):
if self.is_equal:
if self.size is None:
self.size = len(other)
else:
self.is_equal = (self.size == len(other))
return self

def __nonzero__(self):
return self.is_equal

def __repr__(self):
return repr(self.is_equal)

>>> sum(["a", "b", "cc", "d"], SumEqual())
False
>>> sum(["a", "b", "c", "d"], SumEqual())
True

and unlike the first case, this sum() solution will work when there are fewer than two items in the list.
The immediate issue is not dying for something not worth dying for. That takes first priority, always.

His wife isn't responsible for his well-being. She affects it, but does not control him or his reactions. It may feel like that, but that's perception, not reality.
I disagree with the anemic object argument. If an object is just there to store data and no behaviour, then that's fine - don't add behaviour if it doesn't need it. A large portion of back-end services are CRUD and data wrangling operations anyway - as in, convert data format A to data format B (which I guess could be a constructor or factory method if you're comfortable with having the conversion logic in a data class).
$22B gives you enough bang for acquihiring a team and also their moral values.

The vilified philosopher Groucho Marx once said:

"Those are my principles, and if you don't like them... well, I have others."

Sad but very common these days...
Yeah, just not ON Facebook.

As if we were worried that they would post our numbers to our FB friends...
So I get the following from the post-

* we wont advertise, but we would expose the data to Facebook and they would, see we are still awesome!

Anyways, can someone help me in understanding how businesses would contact a person via Whatsapp?
F# would probably be a better comparison peer to Scala than C# would IMHO
They're not facing strong competition, they're facing extremely weak competition (Lyft is heading toward bankruptcy and can't even manage to sell itself off). They aren't going to lose significant market share, they're going to end up with a modest monopoly, replicating the positions acquired by: Google, Microsoft, Facebook, eBay, Amazon, PayPal, Intel, Cisco, etc. The same story plays out over and over again in tech, and it does so for very obvious reasons.

Who else is threatening Uber in the US for example? Nobody. Who is going to spend billions to take the market away from Uber? Nobody.
You have to think about the purpose of the history.

Git history serves a few purposes. First, it provides an overview of development so that someone can use `git log` to quickly figure out what's been done. Second, it provides context to code changes so that someone using `git blame` can figure out why some code looks the way it does. Finally, it provides a set of distinct points for clean manipulation of history via `git revert`, `git bisect` etc.

From the point of those purposes, there's no real value in a history which accurately reflects the development process. The ideal commit has a few properties: it should address only one concern, it should contain all the immediate code changes addressing that concern, and it should not be overly long. Commits like that make navigating and manipulating the git history easy.

There's nothing wrong with keeping an accurate picture of history. It's just not actually useful.
Some analysis on this topic has been done: https://en.wikipedia.org/wiki/Vacuum_airship#Material_constr...
How to turn stress and panic into productivity
I've been seeing the Uber robots driving around Pittsburgh in the last week. They can still loose a lot of money in the short to mid-term if they succeed in fundamentally changing the nature of mobility with autonomous people movers.
The algorithm and salt are irrelevant. There are only so many phone numbers... You could brute force the hash of a phone number in seconds on any modern computer.
Previous discussion: https://news.ycombinator.com/item?id=12356098
Java Basic Expression Evaluator Library
New camera uses just 1 photon per pixel
Which they absolutely do. AFAICT, Uber doesn't subsidize rides in Europe because predatory pricing is illegal there. But they do in new markets in the US and used to subsidize heavily in China, which opens them up to charges of dumping, it seems to me.
I expect someone to figure out a way to exfiltrate upcoming passwords by analyzing the EM radiation of these aptly named CNiFERs. Imagine, an attacker knowing your next password before you begin to type it for the first time }:)
I think the "anemic objects[domain model]" is a red herring in this case. It would be much cleaner to create separate serialized and deserializers that convert your actual domain models to JSON and back. By the time you are doing something as shown in his example like building a book inventory it should be all proper objects and no primitives dictated by what should be the serialization layer.

Edit: Fixing phone auto correct typo - "property objects" -> "proper objects"
>Their bet is that later on that ratio will invert.

Because later when the subsidies are dropped and the product price rises, the demand will increase?
There's no differentiation. a car ride is a car ride.
I would suspect this is a regional difference. I live in a different area that I was reared and we often have fun comparing the differences. like pop vs. Soda
Who said WhatsApp customers suddenly became unwilling to pay?

As opposed to FB/WhatsApp looking for other (ad companies) customers?

If I pay for a service membership and then you make it free, that doesn't mean you get to do whatever you want with my data.
For a second there I was really hoping it was a return of the Blackbox Window Manager.

https://en.wikipedia.org/wiki/Blackbox
Eh, it's both.

You need a baseline for any testing. When testing physical equipment with a difficult to diagnose problems the easiest way to figure out what is going on is to take the hardware down to a base state and then add one component at a time to see where things go wrong. When you have one population that is positively effected by your drug and takes no other medications it gives a great deal of insight when another population is negatively effected that is highly medicated.

We have a problem here in the U.S. that almost all of our old drugs would never be approved these days because of interactions with other drugs and side effects. With the huge amount of medications taken we need the baseline to tell doctors to stop giving patients drugs X, Y, and Z because they would be much better off only taking A.
> ISAs (ISAE?)

-ae only if the word is a) not an abbreviation, b) Latin, and c) a-declension.
A big part of this I think, is the one-way nature of just about every dictation system. I can talk to someone without having a concrete idea of what I actually want to convey, and figure it out mid-way into the conversation. Dictating to speech recognition is like carefully crafting a question to place on stack overflow.
Got it. Agreed.
China Film Insider: Where Hollywood Meets the Next Biggest Movie Market
Never been to India. But Thailand, Cambodia, Singapore, Japan, Taiwan, all use LINE. (and whatsapp) but I have 2 conversations on WhatsApp and dozens on LINE.

Granted I don't know anyone in Australia/New Zealand using LINE. (I live in Singapore)
As I understand "undo" it's a convenient feature for addressing quickly-discovered errors.

If you rapidly realize that you committed to the wrong branch, or left a line of code half-finished, or misspelled a word, there's very little value in logging that. If you had seen it two seconds before the commit you would have fixed it without a second thought, so why insist on preserving it seconds after the commit?

Presumably (if only for safety) no one is using 'undo' on anything pushed to a shared repo. I can appreciate the argument that we shouldn't rewrite history into a nice, streamlined narrative, but I don't see much reason to avoid tools like 'amend' for fixing commit messages, or 'revert' when some silly line of test code gets committed (and not pushed).

When I'm dealing with other people's Git histories, I appreciate the middle ground approach most. There's no point in spinning some imaginary, elegant story - if it's not real history then write up an essay instead of storing it in your 'history'. But I also don't need to see every line of "oops, un-stubbed X" - my experience is that at least for immediate fixes it only makes things harder to read.
This is a no brainer - do both. Your school is mostly covered, so just build your portfolio along the way. Who knows, you might not find a job for a while. Not only this, by having something else going on you don't have to accept some rinky dink bucket shop offer out of desperation. You might also get exposed to new ideas and college girls.
> because either way Facebook is getting your phone number.

Correction - Facebook already got your numbers (and has been doing recommendations based on them).

I've been noticing Facebook recommendations based on Whatsapp numbers I have for many months. So they already have the numbers. But they're probably legally obliged to announce it in a privacy policy change that they will use them to target ads at you.
Am I the only one who finds reading text surrounding an animated GIF impossible?
do you mind going into why you have written so many assemblers?
This is really great news, congratulations!

I've been a regular user of KDevelop for quite a while now. It's simply the best tool for reading existing code, with the variable coloring and powerful code navigation.

It doesn't have that many features that would be useful for writing code (refactoring other than renaming, auto private pointers, maybe helpers for Qt properties), but I'm glad they moved to Clang as the C++ parser. Can't way till it gets to Arch repos.
Creating a document (memo or whatever) with dictation definitely has something of a learning curve. I haven't done it much for years but dictating something for someone else to type up (yes, I used to do that) wasn't something that you just did naturally. It has to be more linear than writing--especially creating a document on a computer where you routinely change text and rearrange elements.
Ideally, sure. But I've had to do this before due to the fact that a configuration value in the PaaS I was using was unmodifiable on remote, but modifiable locally, so I had to do a sort of binary search to narrow it down by observing the behavior of the server via changing my code's value a number of times.

He makes a good point, but ultimately I have to agree with someone's point about "pointlessly gilding lillies".
Or, more practically, an interrogator could just remind you of a time when you logged in to a particular account, and then try to capture a password as you relive the memory.
>Why is Facebook shady? They provide a free service and get paid by using your info to target ads.

That's shady enough in my books. Charge for the damn service, instead of going into ever increasing depths to try to milk out ad money from the users (in deals that they are seldom if ever informed of).
I think they should add Norway tobthe dropdown. While technically not a part of EU it is affected by EU laws anyway.
That's an attribution problem rather than a retargeting one. A long period of research prior to car purchasing is well documented[1] - the problem you have here is the conversion hasn't been connected to the retargeting. If they had an efficient way of saying "Excellent - after 10 weeks of research dx034 has actually bought the Audi" they could switch you off. Until that's noted, or you drop out of the 'this is the longest period people are likely to shop for' bucket, you're going to see the ads.

[1] https://www.thinkwithgoogle.com/research-studies/zmot-auto-s...
If you're not limited to the standard library, https://github.com/hynek/attrs is also worth taking a look at.
Unless you're in a leadership role, only half of those ideas are going to be available to you.

Also, if you are constantly switching directions without also constantly coming to a deeper understanding of your problem space / market, then all you're doing is destroying momentum rather than creating it. Deeper understandings require orders of magnitude more time, data, and effort to understand the data.

Eventually you'll get that insight but in the meantime it's better to just keep moving forward.
Don't think that will work for me; when I try voice recognition it gets so many words wrong that you can't even guess what the original input was. I don't have a speech impediment but voice recognition neural nets sure think I do. Also I type faster than most people speak when they are not trying hard to speak as fast as possible. I bet that's the case for many people here.
The main reason this happens in Python is that creating actual datatypes is incredibly clunky (by Python standards) because of the tedious "def __init__(self, x): self.x = x". The solution here is to have a very lightweight syntax for more specific types, e.g. Scala's "case class".

I'd also argue for using thrift, protobuf or even WS-* to put a little more strong typing into what goes over the network. Such schemata won't catch everything (they have to have a lowest-common-denominator notion of type) but distributed bugs are the hardest bugs to track down; anything that helps you spot a bad network request earlier is well worth having.
Meemim launches new platform, signs up 500 companies in 24 hrs, briefly crashes
Yes, any useful technology will get over-applied, at the detriment of better ways to do things.

Not the fault of the technology, but of the developer who failed to consider alternate ways of accomplishing the same task.
View the dependency tree of any artifact in Maven Central/JCenter
Why the NSA Dump Isn't from an Insider
> how do they think this will play out with ... ?

It could be done the same as driving or carrying a gun: not banned, but controlled.

You want to use encryption? OK! Just register yourself with the authorities and sign a statement that you will provide the keys if a judge asks. Other than that, you are breaking the law.
It's also a sign of how blind adherence to tradition causes old biases to persist and prevents any kind of progress, good or bad.
the problem is most of amazons profits are in cloud services. moving something from point a to b is expensive and hard to get economy of scale.
How do you accurately reflect the history of development when it's nonlinear?

I was an hg person too, but I came over to the git side when I needed to collaborate with people. git's killer feature is merges. And merges benefit from fine-grained commits that rewrite history.
If I'm pushing non-building commits on a feature branch in Hg, why should it matter? It documents the history of the development of that feature without interfering with default/master.
> Compare the quantity of libraries available for Rust and yet another 'overly verbose' language, Go. We can find Go wrapper for almost anything, and often a few to chose from.

Rust was stabilized last year, while Go was released six years ago. It is simply wrong to say that Go has a larger quantity of libraries because it is more verbose. IMHO the Rust ecosystem is surprisingly comprehensive for a language its age.
With dynamic languages (certainly Python, Ruby, and JS), there's a definite lack of nudge from the tooling to translate from "interchange" format into an internal "smart" format (procedural code + everything is a hash = easy hacks). Whereas with something like Scala, the tools make it very clear that if you serialize/deserialize on the periphery, you're in for a bag of hurt (or, at the very least, fighting with one hand tied behind your back).

This is not to say that one tool is better than the others, but tools do have opinions, and while being more permissive/ambivalent makes throwing together a quick script easier, a tool that nudges you in the direction of building something in a more-sustainable way is useful when building nontrivial systems.
But Facebook will not know it's me because FB doesn't have my number. At worst, all FB know is that some people have my Whatsapp number. That doesn't help FB serve targeted ads to my FB account.
I guess their excuse is that then they were still an independent company. But everyone should know that this is Facebook's modus operandi now.

"Relax everyone, we're just introducing this new type of tracking technology to improve our services and your security! It's not like we're going to use it for ads or anything like that - that's crazy talk. Just trust us."

Two years later:

"So, everyone, you know that tracking technology we launched earlier? Yeah, we're going to use it now to *improve you ad watching experience"! (you've already forgotten we promised not to do it, right? Okay, good.)"
Once you understand Git's data model, the UI is perfectly intuitive and very efficient. When you want to do something in git, it generally requires just a single command - you just have to know what you actually want to do.

Attempts at different UIs fail because they're all trying to put an abstraction over top of git that doesn't actually reflect the underlying data. As a result, they're limited to the set of git functionality that overlaps their abstraction, and the tools are less powerful.
And this is where we end up without easy to use and well supported schemas...

If this was XML, you'd write a very simple RELAX NG grammar (use the compact syntax: http://relaxng.org/compact-tutorial-20030326.html ) that describes the structure of the incoming data, then use it to validate the input data before processing it.

After that, you know data is valid and in the right structure, so you can throw away most of the "is this in the right place?" checks.

JSON and YAML's various schema implementations can't hold a candle to this, and it's been around for over a decade.

The XML ecosystem does have some very bad parts, but it's not all bad, so it's worth learning from places where it actually works well.
groupon couldn't make it work. This seems more like hundreds of local markets and not 1 big market. And that company that has only women drivers for women passengers seems like it might be able to carve out a niche. and if it gets to profitable what's to stop grub hub, task rabbit or another deliver company to make a run at the market.
I'm surprised it took them so long.
If you say so.

Personally I am annoyed by hipster culture because it's often pretentious and judgemental of others while living off family money, confuses materialistic fetishizing of certain kinds of brands with genuine authenticity, and fundamentally is an expression of narcissism. I could care less what gender they express.
There's no text. I can highlight it, but it's not even the same color as the background. It looks like every letter has been replaced with a space. Is that copyright protection?
Who Actually Owns the Internet?
Explain xkcd
It's not that easy. Once the Green Card process has started an employer switch is difficult and can reset the waiting period. That way a lot of Indians I know are tied to their outsourcing companies for five years or more.
The audio's not great. But here's a fish trap using a similar concept to the traps in the article.

https://www.youtube.com/watch?v=yAB7KljY-9E
> It's time our laws caught up with our technology.

Politicians usually update our laws to catch up to technology by banning, restricting, or regulating it.

We'd have to change the power structure to get new laws that "create room to tinker, create, share, and learn on the internet."
There seems to be a huge push against using any type of nuero-tech to build "ultimate" lie detectors, which I often find puzzling.
I know what hashing is, but, as I mentioned, FB doesn't have my phone number, so no X hash to compare to whatsapp X hash.
How Much Energy Storage Would Be Needed for California to Reach 50% Solar?
While I favour the sentiment, I won't sign the petition. One reason is that I am only a visitor to the EU.

But if I was a European, I would still be troubled by the vagueness of the thing. I'm all for putting rhetorical pressure in general directions; but if I am to put my signature on it and send it to a legislator, I want to see some concrete reform proposals.

Instead I see a wish-list of outcomes.
Although with c# 6.0 (current release) you can simplify that to:

public class Complex {
public double I { get; }
public double J { get; }
public Complex(double i, double j) {
I = i;
J = j;
}
}
Why is that depressing? It's not like we would actually be ALONE. We have each other. We don't need Vulcans or whatever else to keep us company and suck up our resources.
Named tuples assign meaning to each position in a tuple and allow for more readable, self-documenting code. They can be used wherever regular tuples are used, and they add the ability to access fields by name instead of position index.

https://docs.python.org/2/library/collections.html#collectio...
>Who else is threatening Uber in the US for example?

Taxis? Car manufacturers?

>Who is going to spend billions to take the market away from Uber?

Doesn't look like it's a very profitable market Uber is operating in, so why should anyone spend billions to do so?
More generally, using data structures well-suited to your problem is really important but often underappreciated in software engineering. Elegant code and algorithms naturally follow.

In the example in the article, OO seems like a good way to go.
What's the big deal?
If you don't have `stage` how are you going to generate a commit which has only some of the changes you've done (potentially including partial commits from files)?

`stage` is unnecessary if you have a really simple workflow, but it provides a lot of flexibility at very little cognitive cost.
The term macaroni was not used by the romans.
What do you think `git branch` should do?