skysight-inc/HackerNews huggingface dataset:
> I think the only way patents can be redeemed, is if they're non-transferrable and the inventor is forced to license it for a fair price within a year of registering.

If the inventor can't transfer the patent but can still license it then there will immediately be lawyers offering to "find" patent licensees in exchange for a share of the license fee and we'll be right back where we started. You're also doing nothing to solve the nearly intractable problem of what a "fair price" for a patent is.

The fundamental issue is that in practice patents aren't actually used by small inventors on any sort of meaningful scale. They're too expensive to get and way too expensive to enforce for that. But you can always find that one anecdote to trot out in favor of a policy that in reality primarily benefits the likes of IBM.

But let's show the counterpoint with some counter-anecdotes. Think of any famous rags to riches (or middle class to riches) tech star. Larry Page, Mark Zuckerberg, anybody. Even the ostensibly pro-patent ones like Bill Gates or Larry Ellison. Now how many of them made most of their fortunes inventing things and then licensing the patents and how many did it by inventing things and then making and selling them to the public? Exactly.

Because patents are used to steamroll over the little guy, not help him. They're a thing that can only be wielded by lawyers and large companies with lawyers, which means they always put the little guy at a distinct disadvantage regardless of whether the little guy is the inventor or the implementor or both.
> bad event

That's the thing: I don't think that parting ways with a company is a bad thing anymore. So, if the event stops being bad, why use the word with old emotional baggage to describe it?
Linux 4.6 Set to Bring a Significant Number of New Features
I think a good idea might be to have a test:test account available for anyone in order to assess the platform first. In the same time start redesigning... EVERYTHING :)
The fourth one it shows me appears to be a medical records database. Wowzerz
IIRC, it's got some Go infrastructure and the trading chapters have bots written in Ruby.
I got recently promoted to Senior, have a bit more than 5y of experience.
My main motivation is to be able to save on two hours commute, which I think can be beneficial for both parts. I would be able to start early and without the commute hassle, and same on time/money as well.
I think my major problem is due to having a short team, and company concern about having a fair Dev representation in the office.
I think it very well could be your age.

For example, those of us who have families to get home to generally aren't going to be too keen on parties or beers after work on Fridays. Many of us also have noticed that the companies that have these kinds of perks also expect you to spend a lot more than 40h/wk at the office, if only implicitly, if only for "team-building" reasons. It's a precious few people who make it to their 30s and still want their life to be so centered on their job like that.

(Edit: Which isn't to say there's anything wrong with that. Just that people change. At least for my part, things that would have jazzed me 20 years ago I now find to be rather alienating. Companies who want to attract both veterans and fresh talent have a tough row to hoe.)
Linux 4.6-rc1 has been released
Five random english words (100000^5) is stronger than 12 random printable ASCII characters (95^12). It's more memorable, too.

User-hurting policies like "Thou shalt have at least 2 symbols in thine password" are partly to blame.
Honestly, I think the distinction between M:N threading and straight OS threading is pretty minor. It grants some advantages to the language runtime: it can control the stack size, for example. But in terms of how it affects the development style and what kinds of bugs it encourages/discourages I don't think it dramatically differs from the OS threading model.
Eh, while comprehensions with multiple for-ins push the limits of good taste, I don't think:

planets_set = {
planet for episode in episodes.values()
for planet in episode['planets']
}

is less maintainable in a Python shop than say...

planets = set()

for episode in episodes.values():
planets.update(episode['planets'])

Although the latter will likely make perfect sense to most non-python developers. The former is faster and has a smaller memory footprint and might be preferred when dealing with a larger or more irregular data sets.

The former also has the advantage of not leaking the "episode" variable into the function/method scope, which could introduce a subtle bug if that variable gets conditionally reused. So while it's harder to understand for a less-experienced python developer, the set comprehension solution is inherently safer due to python's design.
Node.js Package Manager Vulnerable to Malicious Worm Packages
List comprehensions are both insanely readable and easy to maintain. They're one of the things python gets very, very right
Note that this isn't exactly a safe operation, since a killed thread may stop in the midst of something. It's safer to have it process messages on a loop and include a quit message.
> planets_flat = [planet for episode in episodes.values() for planet in episode['planets']]

Can somebody explain this one to me (I understand list comprehensions)? I'm having trouble understanding how the second part uses something defined in the first part, but the first part can't stand on its own, so

> [planet for episode in episodes.values()]

returns an error.
I cannot quite tell if this is soul-baring or satirical.
And the origin string keys are stored in the htree item only if there is collision. So the string key distinguishing checks are at most once.
Regarding #3, I feel you. I haven't accepted it yet myself, although it's probably better for my state of mind if I did. Hope can be a damaging thing if it's never met.
This should be top comment. Especially because the apologists cropping up here will actively avoid and obfuscate the heart of the matter. [1]

> Chief executive Brian Halligan was fined for failing to promptly alert the company’s board of directors after finding out about the incident. The actions were a result of an investigation by law firm Goodwin Procter on behalf of HubSpot’s board.

> “really aggressive tactics,” but he [the CEO] refused to disclose further details of the unusual incident.[2]

> “It was fishy enough that I definitely should have reported it,” Halligan said in the interview at the company’s offices. “I agree with the message they sent me. I agree that I showed poor judgment.” [2][3]

Bro/frat-iness/childishness aside, if your culture condones criminal acts at the highest levels of power (yes, extortion is illegal) then your culture is screwed up.

These acts do not happen in vacuum. They often-times happen when everyone drinks the kool-aid; when everyone is always right so long as they do everything to protect "us" vs "them" without question.

So far as I can tell, only the bare minimum was done internally to address these felonies, so I'm not positive on Hubspot's future.

[1] "Loyalty over morality", as someone once explained to me.

[2] http://www.betaboston.com/news/2015/07/31/fishiness-led-to-h...

[3] "Fishy", "poor judgement", such nice sounding words.
A Simple Analytics Tool Every Marketer Needs
Agree with the two replies here. It's not for everyone. Not for anyone. It's just something I felt like a had to do for a while to keep up with my workload ad it blew away my sense of categorizing time.

That said, I do feel that the sun is extremely important in the benefits that it gives you. So I do try not to spend plenty of time in the rays.
List comprehensions are awesome. Not only that - python does them insanely beautifully. Clojure and ES6 are examples that I think aren't as readable, though equally powerful more or less. But in python they don't have any clunkiness. Simple, expressive. Love them.

Nesting them can get ugly, but it's easy to avoid: Just use generator expressions and chain them. No real runtime overhead that way.
Six Face Charges In Scheme To Manipulate Lottery Game
erlang also uses per-actor message queues and has a kill safe design philosophy, so it's not a problem.
>Books today are usually precut and then glued,

Actually, most books are still printed from folded sheets. The folds are shaved off the signatures in the bindery (3 sides for a sewn binding, 4 sides for a glue bind).
> Can somebody explain this one to me?

Nope. Well - I could if I tried but that particular form is fairly abhorrent to me. My brain hurts just reading it so this is the stage I would find a clearer way to express the algorithm.
My belief is that the symptoms of bipolar ARE part of your personality. They aren't good or bad, they just are. But you can't let them get the best of you. You have to recognize them and work to negate them.
Coincidences and the Meaning of Life
These days people seem to read only a title and begin writing their comments about it.
> There is so much negative baggage around "fired", "laid off", "quit", etc, when these are really not negative events at all. This is where an employee is liberated from a situation that isn't working (quite possibly at a company that isn't doing well, is poorly managed, or in a shrinking industry), and will generally end up working somewhere better, taking the opportunity to travel or start there own business, and grow.

Yeah, right. Try to tell this to a single mother of two trying to pay the mortgage.

For a lot of people (I'd say most people), being fired is not a pleasant experience.
It's a list comprehension with an implicit nested loop:

>>> [y for z in [[1,2,3],[4,5,6]] for y in z]
[1, 2, 3, 4, 5, 6]

The error you get is because "planet" is bound by the second FOR clause, so when you leave it out, planet becomes unbound.
Yes, there is still an issue with async exceptions when there is an exception during the cleanup handler of bracket. Probably this has not received the attention it deserves because fundamentally if a cleanup handler throws an exception you may well still have resource issues. But the article also proposes ways of solving this issue, so lets not give up on async exceptions.
You can check our vpn service https://www.torrentguard.com/prices/ for hassle free browsing.
The "financed by oil" is exclusive to Norway. No other Scandinavian/Nordic country enjoys similar fortune.

But it may highlight another point that could be made: Instead of corrupting the country similar to the oil-rich arab states, the norwegians have managed the richness with a typical Scandinavian common-sense (Lutheran?) approach: Define the oil richness as a common good and make sure to invest profits for future generations rather than burn it all on the current generation.

http://www.huffingtonpost.ca/2014/01/11/oil-fund-norway-mill...

But, as I said - that is a luxury only Norway has enjoyed.
Australian Ruined by China Court Back in Australian Prison
> overcomplicated/overengineered to me

You don't have to worry about most of this. Doing concurrent things in Rust is pretty clean. Designing new concurrent abstractions from scratch is where you need to worry about Send and Sync and be careful. And it's totally worth it, entire classes of concurrency errors just go away.

The error handling can get verbose, though with the new `?` operator and `catch` syntax it's much cleaner now.
Bluetooth Technology 101
thank you for sharing your story. Take care.
Oh, a pediatrics clinic, very nice (redacted image because it contained GASP addresses and names, like one might find in a phone book)
The Economic Value of Rapid Response Time (1982)
It's not dumb... if you have a pump and dump scheme for example, having more people do it with you actually increases your take-home results.
Still using PHP (and Python and some other stuff) in 2016.

I make it a rule to only jump on the new bandwagon when I know it's not going to explode in 3 months and currently isn't on fire.
The support ticket reads:

"I can't upload this lab document to the site!"

I call the person up for details, get the file they were trying to upload, and recreate the issue. I pull up the code for this site, run it on a local copy to get the exception, and find out that someone's string concatenating SQL queries from form inputs. This site was written in 2014. I bring it up in a meeting but we can't allocate time to fix that because it currently works well enough.
> To have an abstraction where you really don't care about blocking or not you need promises/futures. Go's futures are bad. Real bad.

Please explain.
I 'got' list comprehensions fairly immediately and find them clearer in most cases than map/filter for an explicit loop. I'm cautious when nesting them (as long as your code formatting is clear - a single nested comprehension is pretty acceptable) and I never use the multiple 'for' form as it's just not intuitive to me.

I am rather fond of dictionary comprehensions as mentioned in the article:

colors = [jedi['lightsaber_color'] for jedi in jedis]
frequencies = {color: colors.count(color) for color in set(colors)}

print(frequencies)
# {'green': 6, 'red': 5, 'blue': 6}
It certainly is _confusing_ if not _wrong_. You silently add "move" to the closure without any mention or explanation (then later say "note that we're copying i" without explaining that you're talking about the "move" keyword).

The bit about Mutex also has a "just type this to fix the problem with no explanation of how or why it works" flavour (although I guess if you already grok mutexes then its use here might be obvious to you).

Not a criticism of the tutorial, but it does something common in Rust tutorials which is really a problem with the language at this point: Rust tutorials always spend a lot of time interpreting Rust's notoriously poor error messages (e.g. "what this message that doesn't mention Sync is trying to tell you is that you need Sync on this type"). That's great when you're doing the tutorial, but as soon as you're on your own man are those errors frustrating.
That's admittedly a pretty confusing example. I don't recommend ever iterating over multiple lists in a single comprehension.
A mental breakdown is:

For episodes in episodes

for planet in episode planets

give me planet

the binding of `planet` isn't evaluated until the end (left to right evaluation for the looping bits)
This article left me impressed at the level of processing in foods available in the first world. While this probably results in lower prices, it just reads to me like problems from a completely different world.

I live in Argentina, and, while I don't consume fish, I've always noticed at the supermarket that they're sold whole: with head and tail included.
Buying oranges per kilo is cheaper than buying juice (0.69USD a kilo, which yields generally above 500mL), so frequent juice consumers have motivation to just squeeze it themselves. There's only a single brand of actual "orange juice" sold in most places, while consumption of sodas or flavoured waters is what's common the most.

Some things like basil and parsley are sold as whole plants, because it's so cheap to just move/sell that around, that it's the norm. Some fancier supermarkets have basil in the pot, so you can keep the plant alive at home and have REALLY fresh basil.
> I don't understand why people dislike working in a startup environment

Different people appreciate different things. It's totally fine for you to value "regular parties, play table tennis daily, beers on Friday" but you should be able to understand other people value other things.

> Admittedly, this is only my second job, and I am only 20, but I can't imagine ever wanting to leave.

You may feel differently in ten or twenty years. There were probably a lot of things you enjoyed when you were 10 that you don't enjoy now (or don't enjoy as much).
we added new machines please enjoy!
clear your browser cache & refresh
Gosh. If I was told off for using list comprehensions I'd start considering my employment options fairly quickly. Whilst they can be abused and pushed beyond the limits of reasonable use - in most cases I've seen in the wild they are the clearest and most Pythonic way to do it.
Answering my own question somewhat: https://www.scotthyoung.com/blog/2013/07/09/side-project/
Misrepresenting your methods is just fraud, so you will get no argument from me there.

However, think about the difference between A) setting a point prediction of your model as the null hypothesis vs B) "two groups are the same and samples were independent, etc" as the null hypothesis.

In the first case there is a very small range of plausible outcomes consistent with the researcher's theory. In the second case there is a very large range (usually 50%). In the case of scenario A, messing up the experiment (either on purpose, or accident) makes it more difficult to claim evidence consistent with your model. In the case of scenario B, the same thing makes this easier.

So researchers using scenario A are incentivized to be as careful and account for as many different sources of error as possible. Under scenario B, the incentive is the opposite, the sloppier the study the easier it is to get results consistent with the researcher's theory.
https://www.reddit.com/r/netsec/comments/4bxsn7/proactively_...
1. Swing right leg over edge of bed. Continue extending until your foot is planted firmly on the floor.

2. Swing left leg towards the right so it dangles off the bed.

3. Plant right hand palm down on mattress.

4. Push down into the mattress with your right hand, lifting up your upper body while moving your left foot to join the right one firmly planted on the floor.

5. You should now be sitting upright on the edge of the bed.

6. Stand up.

Congratulations, you have gotten out of bed.
... and now you have two problems?
I can tell you (because I am in the process of writing an employee manual and hiring procedures) that the three critical factors are: will this person have access to a customer's name, date of birth, and Social Security Number?

If so, a credit check is warranted for the potential employee.

There are other factors as well. But for lower level positions, access to information (legitimately or otherwise) is the key factor.

I am not telling you this is the law. I am not telling you this is the right thing to do. I am telling you this as someone who has had an employee embezzle from our company and who is working with an experienced HR consultant and a labor lawyer to put the right structure in place -- for all of the usual reasons.
http://motherboard.vice.com/read/how-to-make-a-not-racist-bo...
Take 10 consecutive prime numbers:

2, 3, 5, 7, 11, 13, 17, 19, 23, 29
And they can distinguish all uint32 numbers:

2*3*5*7*11*13*17*19*23*29 > ^uint32(0)

Huh? How do I represent 31 (or any prime greater than 29)?
Must watch Python videos
Linux 4.6 to Offer Faster Raspberry Pi 3D Performance
Just for anyone who is not aware - the title is an allusion to Ginsberg's Howl, though he used the word "best".

Another tech related article that Howl allusion that always sticks in my mind is http://www.fastcompany.com/3008436/takeaway/why-data-god-jef...

If you've not read or heard it, I highly recommend giving a narration by Ginsberg a listen.
Wow, I never noticed that! Who the hell thought that was a good idea?
Why you should give Yeoman another chance
I completely agree. I do the same thing for subjectively downvoted posts. I want HN to be a place where people share all kinds of ideas and ask questions at any level.
I use Desmos all the time, both for my own work and as a tutor, so thanks for the great resource! Is there any plan to make a version for bivariate functions? It would also be awesome if you could just paste a function written in LaTeX into des is to get a plot.
I was at the Apple Store in NYC At 1am yesterday. None of the people there knew how to solve it. I looked online and there are, by now, thousands of users in several threads in Apple forums complaining that links don't work. Here is some more info:

This isn't just affecting 9.3, it's true also on 9.2.1

Don't bother wiping and restoring your phone, the problem comes back. My guess is that it was triggered by something in the Apple WebView APIs that happened recently, because it started happening on my phone for no reason this Friday (with 9.2.1) and most of these forum messages are from the past few days.

Apple hasn't responded yet and 9.3 doesn't fix this problem.

For now, use Google Chrome. Long-tap on links in Safari and other Apple apps crashes the app. However, thankfully in Chrome for iOS, it works (even though it also uses Apple's WebView). You can follow links via long-tap and copy-pasting the link into the Address bar.

Finally, if you're wondering why some mobile links still seem to work - those are the ones enabled by javascript handling of tap events, that don't use the regular mechanism of loading a url.
Actually, these are pretty idiomatic and understandable.

List comprehensions (and inline generators, which you get by using parenthesis) make it trivial to handle fairly complex sequence processing, and are one of the reasons Python gets a lot of love from the FP community.

Sure, it's not really an FP language, but these give it an almost LISPy feel.

Regardless,it would be less Pythonic to build a loop and iterate.

Might be easier for complete novices, but I don't suppose people are just hiring novices these days, right?

(edit: Mobile-sponsored typo)
Whoa best comment right here! Sorry I know I'm not adding anything substantive. I just think this guy is super friendly.
Lawyers Been Replased by an App: Justice as a Service
Or Perl, or C. After all, even PHP was once a new hipster language.

Of course, it's good to be skeptical of the current hyped flavor of the moment. But some languages really are better than others for specific tasks, and new languages do sometimes improve on their predecessors.
It's equivalent to

planets_flat = []
for episode in episodes.values():
for planet in episode['planets']:
plants_flat.append(planet)

Notice how the for loops in the comprehension goes in the same order as in the imperative code.
The difference here is that Genius overlays its annotations on top of the main article. From a design, and even a business POV, this means the content of Genius and the news website are "merged", i.e. not clearly separated. Disqus Comment Threads can easily be hidden or shown and segmented from the text of an article. Reddit plugins like the one you mentioned are installed by the user's choice.

News Genius however, has aspirations of being your go to site for reading the news. So this adds an additional bar for Genius to clear (i.e. make it work well without pissing people off) than your normal aggregator.

Compare this:
www.buzzfeed.com/annehelenpetersen/jennifer-garner-minivan-majority

Versus this:
http://genius.com/8863764/www.buzzfeed.com/annehelenpetersen...

Never-minding the substance of the original article, observe how News Genius says "We’re annotating this not just to discuss Garner’s career and apparent acquiescence to the “minivan majority” but to analyze the way movie stars in general appeal to particular demographics and what that says about society." and then see the annotaters descend into snarkiness and children's fare.

If I was interested in the subject matter, I know which version I would read, and which version I would warn others against reading.
Though in py2 list comprehensions do leak scope. (dict comprehensions don't, you are correct on that :).
for-ins leak iteration variables into the function scope, which can introduce subtle bugs if you're not careful.

set/dict/generator comprehensions do not.

Example:

for foo in bar:
baz(foo)

print foo # Will actually print something

Whereas

whatever = {baz(foo) for foo in bar}
print foo # NameError: name 'foo' is not defined

does not put foo into the outer scope.

list comprehensions in python 2 (but not 3) will leak variables however.
Should be required reading for engineers: Superiority – by Arthur C. Clarke