skysight-inc/HackerNews huggingface dataset:
I had a similar thought. I was intrigued by the title of "beyond 5 stars" but as soon as I realized it was about the recommendation system and dated from 2012, I hit cmd-w.

The recommendation system is more of a loose suggestions based on criteria we cannot really explain system. It's rare that I'll look at recommended titles and think "hey, cool".

Ironically enough, first level recommendations that are "hmm intriguing" lead to far more "hey, cool": I click on a recommendation, think "meh", but notice something in the "more like this".

It's as if they are circling the target but cannot quite close the loop.

Before someone declares this to be working as designed, consider that I the user have to go through quite a few recommendations before getting to "hmmm" and not all "hmmm"s lead to "cool".

Not sure it's better than Monte Carlo, really.

(What I'd really like is a filter, either "movies only", "shows only", or "both". If I want to watch a movie, I do NOT want to be intrigued by a show. I want a 90-120 minute commitment and that's it. CAVEAT: my primary Netflix client is AppleTV, I rarely use the web to pre-search or pre-filter, so perhaps this is a limitation of that app.)
Reading also wears out nand flash. SSD have read counters next to erase counters, too many reads and drive forces whole sector rewrite to mitigate data degradation.
No, but my hair is short.
I am certain you aren't a physicist.
Right, $250k, not really worth nothing every time since that is basically infinity to everyone in the US.
These holograms are essentially a set of overlaid Fresnel lenses, and they work by the same principle?
Thanks for finding it and linking. That has got to be one of the most entertaining (and educational) math articles that anyone can read/understand.

Some of my favorite parts (minor spoilers):

> Look closely at that drawing until you realize how not okay it is. Then let’s continue.

> Then Graham decides that for g2, he’ll just do the same thing as he did in g1, except instead of four arrows, there would be NO I CAN’T EVEN arrows.
Most functions in Rust return, so you can count on the last expression to be returned the vast majority of the time.
This is a nice overview of Baumeister's development as a scientist. I've read a couple of his books, and really recommend "Evil": http://www.amazon.com/Evil-Inside-Human-Violence-Cruelty/dp/... It's interesting to learn a bit about where he came from.

[Edit: irrelevant argument removed]
https://company.yandex.com/

Yanex is Russia's Google.
We are using dokku for our internal applications and it works really great. The development stagnated a bit for the last months, but since the deis guys picked up the project it seams that they are starting to work on new features.

I also made a zero config dokku-cli[1] to get it more herokuish.

[1]: https://github.com/SebastianSzturo/dokku-cli
You don't have to be a physicist to know that what entropy is.
Not all written bytes are equally expensive to the flash. Single-stream sequential writes are going to give you a lot longer lifetime than tons of random small IO with zero TRIM.
That power-split device is genius. But, I'm a fan of the latest trend where you put enough batteries in to supply the power needed to completely propel the car by electric motor. That way, the gas engine only runs a generator at low speed (series hybrid), then clutches in directly to the wheels to avoid conversion losses at freeway speed. You still have no "gears" (so it feels like driving a CVT), but the design is far simpler and even more efficient. The Mitsubishi PHEV does this, as well as the new Accord Plugin (I think).
Understanding Intelligent Systems (The Future Of Work) [pdf]
I believe they have powered them down. It's not solely a drive write cache test.
That makes sense, normally Devise handles that for me https://github.com/plataformatec/devise
> this reads exactly like some communist screed

Well, if the idea that people who work and create wealth should keep the wealth they create is a "communist" idea, then so be it.
But how many depositors lost money because of that? My guess is zero.
No, thats naive view. SSDs do fail, and they tend to do it without any warning. Author thinks he discovered magic.

Paradoxically SSDs from two years ago have better endurance than brand new drives now, and a lot better than SSDs in 5 years (unless something big happens).
This is one part of "Frameworks for Understanding the Future of Work":

http://www.zephoria.org/thoughts/archives/2014/10/08/framewo...

danah boyd works in Microsoft Research
Which begs the question, why even have the trick of the missing semicolon in that case? Why rely on one missing 5 pixel character to say that "this function defies your expectations"?

If it's not the norm, I'd rather have an explicit "nil" or something at the end.
How it works: set up an exchange. Attract users. When enough coins have been deposited into your exchange, steal them. Bitcoin makes this easy to do untraceably. Post a message saying you've been hacked and are shutting down.

You're now a millionaire, and no one can ever take that way from you. No court matters. As long as the price of bitcoin doesn't go down by more than 10x, you'll still be very wealthy. And no one can prove a thing.

This is business as usual in the bitcoin world. Bitcoin has made it very easy to separate people from their money, and courts have no power to do anything about it.

Would you go to prison for a few years to be a millionaire? There is no shortage of people willing to risk this.

As you can see from the rest of the thread, people are willing to believe almost any cover story, no matter how implausible. Even that an exchange could be DDoSed by search engines.
You have a valid point about FDIC.

The rest of your comment is nonsnese.

You think the FBI is never interested in ones and zeros on a hard drive? How do you square that with the facts discussed here: https://news.ycombinator.com/item?id=9044805

You think there's never any police reports or official investigation? How do you square that with the facts surrounding the collapse of Mt Gox? A recent headline announced that the police are closing in on the fraudsters: http://www.welivesecurity.com/2015/01/02/bitcoin-fraud-mt-go...

Apparently police are quite capable of investigating the theft of "monopoly money", and understanding the issues involved.
While this is true, to my mind it's almost "6 of one/half dozen of the other". Using the examples given, there have been many security flaws where a generated token like a password reset token (one stored in the DB) is not truly random, or not as random as the implementer envisioned.

Also, keeping systems secure when they need to support use cases that inherently try to subvert some measure of security (like "forgot password") is difficult, and I find the difficulty is much more likely to be in the overall workflow than flaws in the "generateToken" and "validateToken" methods themselves.
How, exactly? The point is: drug and crime are currency-agnostic.
I looked it up, http://api.rubyonrails.org/classes/ActiveSupport/MessageVeri... looks cool, but didn't find a quick way to use it with Devise.
The rule only applies at the ends of blocks/functions. The semicolon can only be omitted on trailing expressions. And, when it's omitted, the block/function takes on the value of that trailing expression. E.g. this is not valid Rust:

fn foo(x: bool) -> i32 {
if x {
1 // no semicolon on the 1
}

let a = 2 + 3;
return a * 4;
}

It's not implicitly returning the 1 from `foo`. An early return would need to be written `if x { return 1 }`. On the other hand, the `return a * 4;` could just be written `a * 4` since it's at the end of the function.

This rule means the scanning required is just looking at the end of the function.

In any case, having a static type system means I have never personally encountered a bug caused by this sort of implicit return in Rust.
As a Northern living in the South, I've found the exact opposite. People seem to be more friendlier down here.

Let's make some more generalizations.
The exact same thing as with musicians and vocalists: Fame.

It seldom matters how it was acquired, or what you believe about the intrinsic or marginal value of their work... At a minimum it is self-referential: They're famous because they're famous because...

Trying to attach virtues to programmer-fame is just as pointless as trying to do it with musicians. Do you really want a programming-version of Justin Bieber working on your codebase? Why or why not?
The same thing that makes a musician a rockstar: Fame, regardless of how it was acquired or what you believe about the intrinsic value they bring to the table.
Show HN: Jumpcut – Chapters/Highlights for YouTube Videos (Feedback Wanted)
The website for the project linked to on the first line is based on this Bootstrap template: http://startbootstrap.com/template-overviews/grayscale/. At least they could have changed the background photo!
>Kingston has gotten very good

...at ninja swapping components under same model name, google V300
In other words: a maintenance nightmare, filled with security gotchas, difficult to scale, and hard to write.

So is the alternative the author describes (except for scaling). HMACs for temporary credentials are clever and simple, if you're already versed in crypto primitives. But to anyone else, they're magic security sauce: "But why can't I just use MD5? Wait, no, that's broken somehow - what about SHA? What do I include in the HMAC? Do I have to use a new key every time?"

The solution trades implementation complexity for arcane knowledge. The author is so confident that his solution is superior because he already has that arcane knowledge.

That said, a well-implemented HMAC-based password reset flow is probably more bulletproof than a well-implemented DB-based flow. So if you're implementing AWS, go for HMAC. If you're implementing a blog, go with whatever you feel like. Just implement it well.
In Perl a standard had evolved[1] that is a bit less structured, but designed to be machine read/writable while still being human centered.

And if you build your distributions with Dist::Zilla[2] you can use plugins to ensure that you have an entry for your release[3] and that the changelog follows the standard[4].

[1] https://metacpan.org/pod/distribution/CPAN-Changes/lib/CPAN/...

[2] https://metacpan.org/pod/Dist::Zilla

[3] https://metacpan.org/pod/Dist::Zilla::Plugin::CheckChangesHa...

[4] https://metacpan.org/pod/Dist::Zilla::Plugin::Test::CPAN::Ch...
Here's my context: my girlfriend is German; I'm Irish, but currently live in the UK. So I've spent a fair amount of time in Germany (typically north of Hamburg, in Schleswig-Holstein) with my GF's family, and the typical milk bought was much closer to UHT than pasteurized in terms of flavour. But I don't know exactly what process it went through - looking at a translation of the exact carton description isn't enough.

I do know that to get pasteurized milk that tasted like I understand pasteurized milk to taste I had to look fairly hard in the supermarkets, and it was clearly a niche product. Unfortunately I don't speak German and my GF is currently in Germany, or I'd give you the key words of exactly what I had to look for.

I've had unpasteurized raw milk in Ireland when I've stayed with people with farms. But I prefer homogenized full-fat milk; with normal raw milk fresh from the cow, the cream rises to the top. I prefer it in the milk, giving it body.

PS: check out the table in Wikipedia: http://en.wikipedia.org/wiki/Ultra-high-temperature_processi... - it indicates 66% of milk consumed in Germany is UHT, vs 20% in Austria. Possibly there is regional variation too.
The block chain is a sequence of bits, yes? And it's immutable, yes? So nobody is "stealing" any bits. The bits are all still there. What they're doing is co-opting a potential commercial transaction involving those bits.

The analogy is imperfect sure. Copying a movie doesn't keep you from selling that movie to someone else. But the only thing that keeps you from double-speding a bitcoin is the external confirmation process. Bitcoins aren't inherently scarce--the protocol makes them that way, just like copyright makes digital works artificially scarce.
I don't really consider HMACs to be particularly arcane knowledge. They're easy to generate in any language and straightforward to work with.

While I consider myself to be a pretty good developer, I'm definitely not well-versed in crypto and math isn't my strongest skill. Despite that, I've had no problem using crypto for several of the obvious use cases (ex. password resets).
[Usersnap](https://usersnap.com/) might fit your needs perfectly. I just started experimenting with it myself, but it allows users to submit visual feedback via screenshots.
Thanks, this is interesting. As far as writing a program to extract primes from that number, how could you without including a prime test in the program? You'd think Erdos and friends would have made it easier by bothering to encode word boundaries - say with a prefix free code[1] :) - 01 for a word boundary, 00 for a true 0:

0.0120130150170111011301170119012301290131013701410143... (no encoded zeros in this example.)

Then you wouldn't have to brute-force word boundaries... You could also put the ordinality of the prime number between 08...09 tags, then you could know exactly whether you're looking at the millionth prime or the million and second one.

But yeah other than not encoding boundaries you are right, it's quite akin to the real number you provided. I like your explanation - thanks.

EDIT: also, as I show above, the program to get a prime back out can seem complicated. What's remarkable about mill's constant is that the program is simple: just raise Mill's constant to 3^n (and apply the floor function). seems so simple. What's remarkable is not just that such a constant exists - that will give you a prime for any n - but that there is a smallest such constant and we already know it:

1.3063778838630806904686144926...

I find that remarkable. raise that to any 3^n and you get a prime and change. wow.

EDIT2: Your argument also didn't address one thing I'm curious about - why a similar number can't exist for 2^n instead of 3^n... thanks for any thoughts.

[1] http://en.wikipedia.org/wiki/Prefix_code
Most of the back-of-house employees in restaurant sector have dependency issues, booze and drugs and management is always aware of it. Go in the back lot where they park and you will special plates on more then one car, in my state the plates are all yellow. If the restaurant industry ever drug tested like the drug store chains do they would easily lose sixty-percent of back of the house staff.
'.' is not a standard base64 character; did you roll your own?

Base36 and base32 are popular where portability and paranoia of being MIME/URL-mangled are concerns, e.g., Google Authenticator's OATH TOTP implementation for the secret key.
Dont forget the hayflick limit !
"Ever tried to ssh into a one-thread-per-connection setup under heavy load? Assuming you managed to log in, it'll be very very difficult to get htop to execute when it's competing with 2k other processes for cpu time."

Nothing about your comment is compatible with my experience. It is certainly not true that a Linux box with 2000 threads blocked on i/o will be having any sort of bad time. If you're really got 2000 threads competing for CPU time then your problem transcends execution architecture: you've simply admitted more work than you can reasonably discharge. Neither threads nor callbacks can solve this problem for you.

Also I'm not sure why you think that the kernel thread scheduler is all that good, or why it shouldn't be considered "outside our control." For my users the kernel thread scheduler is just another black object inside a dark box. The standard scheduler is pretty good for general purposes but I doubt its optimal for any particular case. In some loads it might be useful to yield to a specific thread that you think is holding a mutex your thread needs to acquire. This is cooperative multitasking, basically.
Peter Diamandis: avg. cost of starting a tech startup in 2000 =$5m – today =$5k
Well, if you add a semi-colon where it's not supposed to be you'll get a compile error. If you omit a semi-colon, you'll also get a compile error. They're just there to separate statements (Rust is not whitespace-sensitive).

The most common pattern in my Rust code is:

`statement; statement; expression` where the expression is what I actually want to return from this function

it seems more noisy to say
`statement; statement; return expression;`
Interesting. The email I got from their stock administrator read:

> As a result of a transaction in 2001 that created CompanyName Acquisition Corporation, now named CompanyName, Inc., all equity interests in the predecessor companies were extinguished.

I guess I'll talk to a lawyer. They were sold for $3.5B, so that might be an interesting up-side.
I'm a bit new and stupid here but my work PC, my kid's PC and a tossaround PC all use Crunchbang. Kids love it.

Since Crunchbang uses the Debian repos, can I somehow get onto a Debian/Openbox etc. direction without a reinstall?

and Thank-you #! Great project xx
> For adding flavor in a broil look to lard, tallow, schmaltz, or whatever juice is poured off the meat in the main course

That often makes a wonderful sauce for vegetables, for no more effort than just pouring it into a bowl or over the vegetables.
<sarc>

you have a moral duty to quit your job and code a site you own 100% of, using your laptop which is the means of production. how can you support the unjust social structure you're a part of today? The people working in your office as support staff are letting you generate value neither you nor they keep.

You have a moral duty to resign today and code a site on your own laptop, from home, owning and keeping 100% of the wealth/value.

or to update your philosophy to be practical, sane, and not hypocritical. either way you cannot continue as you have written. it is unjust.

</sarc>

In case it isn't obvious I say this tongue-in-cheek, and expect you to update your philosophy and not your work conditions.

but the choice is yours. Today, you are the factory owner. Go home and turn it on. or stop complaining. here HN literally supports both options.
But that's just introducing additional state (last login date), so if you're starting to do that there's not much point in the HMAC approach.
Or which were well-executed, but occurred too-early for whatever market to form. (As you get older, you see this more and more.)
Are you arguing in favor of developer laziness? An average programmer should be able to understand the use cases for HMAC within a couple hours or so, given nothing but the Wikipedia page and an IDE or REPL, and knowing about MACs might prevent him from cooking up all manner of broken security protocols in the future.
Autopsy Cites Cancer as Cause in Death of David Carr, Times Reporter
You could probably simplify your deployment script with the `docker rename` command introduced in 1.5.
This is why people use base48 or base36 for binary data in URLs.

There is a really good reason to store these things in the database though, and that's on-demand authorization retraction.
I don't use #! myself so I can't check, however you can find out how far away you are for yourself.

Check your sources list (either /etc/apt/sources.list or a set of files in /etc/apt/sources.list.d). Are you pulling in packages from Debian repositories already? If I remember correctly #! had its own repo which contained its WM configuration and whatnot but the rest was stock Debian. If so, there's probably no action required.

If not, I would wait and see what some more experienced #! users are doing with repository migration. The Crunchbang forums are probably a good starting point.
Well that's unfortunate.

Could someone who's a little closer to this illuminate the ramifications?
Startups, Late Stage Valuation, and Bull
Zeek,

I've been lucky enough to have benefitted from Sqlalchemy and Mako (but it's been awhile). Thanks.

This article looked like it was going to hit the sweet spot of stuff I'm curious about, but I found I was still left with questions. If you (or anyone) will indulge me... I'll try and ask a question to help clarify matters.

I work at a University on legacy ERP system(s). During registration there are 800+ concurrent connections but normally it floats around 200. Most all of these connections are idle. As you pointed out, a db may not be io/context bound (still hazy on that one). At the end of the day I consider myself technically astute, but basically a crud business programmer. I understand ACID and transactions; threads and async, maybe not so much.

Where I've always thought async could provide benefit would be in the following scenario. Our apps make a large # of procedural db calls today. If after studying them I realize that many are independent (i.e. reads) and could be 'batched' could that not provide a big performance/latency improvement? I.e. instead of the serial sequence of calls that happen now (even if a stored proc), async allows me to submit multiple sql calls. What I'm calling batch. In this ideal world, sqlalchemy would take care of the details (perhaps with some guidance directives as to whether ordering of results was important) and assemble the results.

Is this not a possible future 'async' sqlalchemy with superior responsiveness? Don't threads block on each sql request?
Sorry, but I don't really see how this introduces new problems.

Even if you're using a stateful approach (ie. storing the token in the database) you still need to store and send a fairly long and convoluted URL. So in either case you're going to have to deal with the usability problem of making sure your long URL is still easily clickable.

As for the link invalidation, I'm confused as to why "." was included in the first place. It's not usually included in a base 64 encoding. (Still, that's why I use base 62 for sending URLs.)
Apple will buy Tesla for $75b in 18 months (prediction)
Section 1. Samplers form a monad. That's like writing a tutorial on parsing and starting with the fact that parsers can be given a monadic structure. Definitely not how you want to start.
It's worth noting that they link to Vandamme, the library used by Gemnasium for parsing changelogs, but Vandamme recommends a slightly different format for the file:

https://github.com/tech-angels/vandamme/#changelogs-conventi...

I prefer Vandamme's recommended format, but I'd greatly appreciate this site's format as well.
The risk is that a developer might not realize there is a significant difference between just encrypting something, and using a MAC.