skysight-inc/HackerNews huggingface dataset:
> Interesting, because on Reddit's /r/DataHoarder they recommend a "1GB RAM per terabyte of storage" rule of thumb.

The author meant deduplication, but that recommendation is wrong. A rule of the form "X amount of RAM per Y amount of storage" that applies to ZFS data deduplication is a mathematical impossibility.

You could could need as little as 40MB of RAM per TB of unique data stored (16MB records) or as much as 160GB of RAM per TB of unique data stored (4KB records), both assuming default arc settings. Notice that I say unique data and discuss records rather than simply say data. There is a difference between the two. If you want to deduplicate data and want to maintain a certain level of performance, you will want to make sure RAM is sufficient to have a relatively high hit rate on the DDT. You can read about how to do that in my other post:

https://news.ycombinator.com/item?id=8437921

It is not stragihtforward and it depends on knowing things about your data that you probably do not. There is no magic bullet that will make data deduplication work well in every workload or make deduplication easy to calculate. However, if the data is already on ZFS, the zdb tool has a function that can figure out what the deduplication ratio is, provided sufficient RAM for the DDT, which makes it impractical to run it on a large pool relative to system memory.

ZFS' data deduplication is a very strict implementation that attempts to deduplicate everything subject to it against everything else subject to it and do so under the protection of a merkle tree. If you want it to do better, you will have to either give up strong data integrity or implement a probabilistic deduplication algorithm that misses cases. Neither of which are likely to become options in ZFS.

Anyway, deduplicating writes in ZFS is IOPS intensive, which is the origin of poor performance. There are 3 random seeks that must be done per deduplicated write IO. If the DDT is accessed often, it will find its way into cache and if all of those seeks are in cache, then your write performance will be good. If they are not in cache, you often end up hitting hardware IOPS limits on mechanical storage and even solid state storage. That is when performance drops.

If you are writing 128KB records on a deduplicated dataset on hardware limited to 150 IOPS, you are only going to manage 6.4MB/sec when you have all cache misses. If your records are 4KB in size, you will only manage 200KB/sec when you have all cache misses. However, ZFS will continue to operate even if every DDT lookup is a cache miss and you are hitting the hardware IOPS limit.
I heard there is this weird statistical phenomenon where as the scammer, you actually benefit from the email message being a little bit dumb. If it were actually a plausible message without typos and obvious red flags, you'd catch many more skeptical individuals in your pipeline. You spend time trying to get these people to send money, but eventually they inevitably realize it is a scam, and your time is wasted. Extremely gullible people however, won't be deterred by typos and red flags. Therefore, typos and red flags filter out skeptical individuals, enriching your pipeline.
I don't think the OP was commenting on the intelligence of the locals, but more their grasp of a foreign language. I've studied Chinese for six years and lived in Taiwan for four of them, I still make elementary mistakes because it's just not my native tongue. I bet if I was drawing up a menu I'd miss a couple characters or strokes on characters.
I saw an article a year back or so about an administrative office in Germany that was dismantled. But because they couldn't fire the officers, they put them in a building with nothing to do until everyone quit voluntarily. The toughest made it about over a year. (Can't find the original article, sadly.)
It is close enough to have the places to go and things to do, and the high paid jobs, but far enough to not pay central London house prices. To me that's highly attractive. Especially now that I rarely need to commute.
When you combine it with top-of-market compensation and generous severance, as Netflix does, one can reasonably believe that this practice is actually done for the reason they claim (keeping the best talent).

When you don't combine it with good compensation, it's simply a rationalization for firing people whenever you want.
>No other company would have the proverbial balls to straight up copy their software either.

How can you say this looking at the hardware landscape?
Hurricane Electric's network tools iOS app is free and has an OTP client built in, with iCloud Keychain sync.

OTP Auth is another excellent, free OTP client.

Edit: clarified both are free.
> I have an original example from the late 19th C. that was sent to one of my ancestors, so I did some investigating when it came to light.

Wow, I'd be fascinated to see that.
The payouts are good and if you said no they would just fire you instead.
Nice work and thanks for sharing! And don't care about the PHP haters here.

For those who wants to go with hosted anyway, I'd recommend looking into Freshdesk instead of Zendesk.

Some reasons:

* Free tier up to three users

* Cheaper licenses once you leave the free tier. (IIRC)

* More features included by default in the free and lowest tiers. (IIRC)

Just be aware that a friendly Indian (or so I think) will call to try to upsell you : )
That's what I had understood you to mean; what I was unsure of is whether you intended this to be the only mode of compilation - and addressed what seemed like each possibility in the second half of my post.
Linux Wireless Library for the Python Wireless Developer and Pentester
PyRIC (is a Linux only) library providing wireless developers and pentesters the ability to identify, enumerate and manipulate their system's wireless cards programmatically in Python
I'm thinking about doing a similar setup and I like the smaller form factor because I can attach it to the back of a monitor and not even have to look at it.
Though maybe I stand corrected. I revisited that. Here's what I had initially:

(include the following stubs to compile):

let upload _ = async.Return()
let takePhoto i = async.Return [|0uy|]
// i stands for "photo i of N", a required parameter for our workflow

---

let runSequence n =
async {
let rec runSequenceRec (framesSoFar: byte[] list) =
async {
if framesSoFar.Length = n then
return List.rev framesSoFar
else
let! bytes = takePhoto framesSoFar.Length
do! upload bytes
return! runSequenceRec (bytes::framesSoFar)
}
return! runSequenceRec []
}

Nasty dual-level async calls, list reversal, recursion, if/else, an initializing []. A lot of visual junk that takes away from what the code is actually doing. I rewrote it imperatively to this:

let runSequence' n =
async {
let frames = System.Collections.Generic.List<byte[]>()
for i = 0 to n do
let! bytes = takePhoto i
do! upload bytes
frames.Add bytes
return frames
}

Much cleaner, you can see exactly what's going on. I was fine with that, and that's where I left it until now.

However reading some of the Haskell comments, I thought there might be something better. So I tried replicating Haskell's forM:

let forNAsync f n =
let rec runOnce (soFar: _ list) =
async {
if soFar.Length = n then
return List.rev soFar
else
let! result = f soFar.Length
return! runOnce (result::soFar)
}
async.ReturnFrom(runOnce [])

Okay, not pretty but it's a library function so we should never have to look at it again. With that in hand though, we can define:

let runOneShot i =
async {
let! bytes = takePhoto i
do! upload bytes
return bytes
}

let runSequence'' = forNAsync runOneShot

This is terrific. Shorter and cleaner than the imperative method, preserves immutability throughout, and composes easily.

If you were to try to compose `runOneShot` from the imperative method, you'd end up with this, because of your frames variable

let runSequence''' n =
async {
let frames = System.Collections.Generic.List<byte[]>()
for i = 0 to n do
let! bytes = runOneShot i
frames.Add bytes
return frames
}

Or if you wanted to try to rework the `runOneShot` to include the frames variable, it wouldn't be much easier:

let runOneShot'''' i (frames: System.Collections.Generic.List<byte[]>) =
async {
let! bytes = takePhoto i
do! upload bytes
frames.Add bytes
}

let runSequence'''' n =
async {
let frames = System.Collections.Generic.List<byte[]>()
for i = 0 to n do
do! runOneShot'''' i frames
return frames
}

So, maybe things that seem imperative do work better functionally. You've just got to create some combinators that let you hook them up.
Well for one, every command you run has root privileges (instead of requiring sudo). Every process you spawn has root privileges. You're safer keeping your privileges limited and sudoing when required. Also you lose your real-life audit log if multiple people log in as root.
China Sends Bubbles to North America
There's the argument that "just download and run this shell script as root" and "lock down your box" are fundamentally incompatible steps.

It's one of those cases where a tutorial explaining every change you're making and why you're making it really is pretty important.
You and I appear to ascribe very different meanings to the word 'seem'.
Yes, it's like that in Germany. The probation period is typically 3-6 months (although you can be hired without one). After that, the company may only fire you because of financial problems (and that is basically prohibited in larger companies by the worker's council), or if you misbehave (show up late for work repeatedly, steal intellectual property, etc.).
Yes, that's the law, but as I mention in response to another comment, you only defer to the letter of the law if you have/want an adversarial relationship with an employer.

Most major employers include the waiver as part of their onboarding process, and if you refuse to sign, although legally they cannot do anything, in practice you're going to start off on the wrong foot with that employer.

Likewise, if you turn around to your manager and refuse to work more than 48 hours (having not signed a waiver), although legally they cannot punish you for that, it's hardly going to help your career.
Too much overly specific and outdated regulation, and that's by design. What looks like a good, pro consumer law actually often has the backing of large corporations. Doesn't matter what party you belong to. Regulation abuse at the local level can at least be contained and voters have more power to change things or move. Not so much at the national level. Government should focus only on the things that the market cannot solve: public safety and enforcement of contracts and rights. The problem is that much of the public thinks that the government has and should complete control over the market in order to protect them, as if government is made up only of angels and wise men. The market players know more about the market than the government does, so often they are tricked or bribed into favoring one market participant over another. The only way to solve it is for the public to realize what the government does best and stop putting their personal saviors into positions of power, where their inexperience/lack of knowledge/greed/shortsightedness causes them to write bad/mediocre laws on top of existing bad & mediocre laws.
Netflix total compensation seems to match places like google, apple and facebook, but with a sword damoceles waiting to fire you. That feels like a net negative.
Serverless Architectures
Hacking Tutorials and Tricks
This kind of attitude is not welcome on HN. We are a friendly community that welcomes different opinions/views which are debated in a professional way.

Even so, here [0] is a recent HN article which does a very good job of explaining how suburbs are predicated on an (unsustainable) model of growth.

[0]: https://news.ycombinator.com/item?id=11638849
This doesn't mean all financial institutions are bad at security. Some are cutting edge and hire some of the best.
The Future of TypeScript Declaration Files
The Clinton Foundation isn't even in theory a grant-issuing direct-aid charity; its mainly a set of "initiatives", each of which is essentially a policy think-tank with a subject matter focus that actively partners with outside (of the Foundation) entities (often primarily governments at some level) to implement policy in its focal area.
I guess it's https://bugzilla.mozilla.org/show_bug.cgi?id=1265235 Correct me if I'm wrong.
Sure! That way it's just a matter of doing

su -
curl -sS https://some.random.host/trust-me.sh | bash -

What could go wrong?
You take off all those things, those engines still weigh 20 pounds. You put the mini-versions of all those things on theirs like they show in the video, and I doubt it breaks 10. It's probably overstated bragging, but they've got much to brag about.
They also have "job security" for the duration of the contract and if they are "fired" as we traditionally understand it usually they have to be compensated in some form (although it depends on the contract).
Awesome stuff! Could you link me to an existing app that is using Scaphold? Would be awesome to see something up and running
> improvemed

Are you A/B testing us?
Because Linux systems can vary widely. Even the same distro can have subtle - or even significant - differences from one hosting provider to another. So writing a shell script that was robust enough to "just work" would not only be complex, it would also likely suffer from readability issues (as so many complex shell scripts do) and thus many sysadmins might not want to run something that can't audit - which is quite sensible really. In fact you cannot even guarantee that Bash will be installed, that's just how annoyingly complicated this job can be.

As a side note, it's also sometimes better having a tutorial full of manual steps as that helps educate the "sysadmin" regarding best practices and some of the basics of Linux administration (if they weren't already familiar). That experience can be just as valuable as hardening the server itself.
Okay, but what's the incentive for providers to upgrade the switches?
Perhaps true. But Sikuli automates the keyboard, mouse, and the screen using OpenCV/Tesseract for object and OCR detection and programming logic.

The only way you'd be able to detect that is by measuring the amount of ms between clicks. And that's defeatable by adding in a random range of 0-300 ms per click. And send the data to a private IRC room. Node-Red can easily handle the data from there.

Now, it looks just like a human.
I agree that fail2ban for ssh seems unnecessary. But, it also provides monitoring for other services like http and common exploits.

I'd be interested in learning from the community if fail2ban adds much value. As I've looked into the service, it seems like simply running the latest security patches obviates the need for fail2ban.
Also good reading is: https://en.wikipedia.org/wiki/Principle_of_least_privilege
While I'm not in the market for an OTP client, this is the network tools app I've been looking for since I bought my first iPod Touch. If you have remote beer-buying support, point me to it.
"your voice holds more weight than us self-serving triggered feminists"

True story. I always do, mostly because I think it's the right thing to do, but also because most of the women I know aren't "self-serving triggered feminists" and I feel ashamed to be a guy when witnessing such behaviour from other men.
I don't think it's an all or nothing proposition. If you don't know someone very well then it's likely they are just looking for small talk. In that case whether or not they are interested in the topic, they aren't looking for something that is going to turn into a deep conversation at that moment. There are ways to probe for this though, just give a high-level summary like "just did some work on my side project" or similar where you give them an opening to ask a question and go deeper. This gives an easy out to end a conversation gracefully; if an actual grownup gives a snarky response like "you must be fun at parties", that person has way worse social skills then they think they do, and in all likelihood has some pretty severe security issues.
Fail2ban can be used to block IPs based on any log file, not just SSH - I believe the author uses an Apache log in the example.
Being senior means taking responsibility for ensuring the right things happen. If you can teach others to do the same, you may also be a project team leader, and/or have the sensibility to be a people manager.
I also believe democracy is "working as expected".

It's hard to see locally, but we're a country that's deeply divided on some core issues. Half the country wants gay marriage, the other half doesn't. A single-payer-advocating socialist almost won the Democratic primary, where his opponent is talking seriously about trying to "roll back" the ACA ("Obamacare"), this president's legacy domestic policy achievement.

I feel like half the country wants to become more like Europe -- more socialist, higher minimum wage, high taxes, big social safety net, free universities, lots of job protections (and the reluctance to hire that goes with it), minimal/no religion, less marriage, whereas the other half wants to step back about 50 years to picket fences, nuclear families, and a more isolated national existence.

We aren't going to have another civil war but I wouldn't be surprised if, looking back, we're more ideologically divided now than the country was, then.
They could be, or you could take the route you won't regret later and use a configuration management system. Deutsche Telekom has open-sourced system-hardening cookbooks for Chef, Puppet, and Ansible.
1. Because they are open about them.

2. Because people care about having a job and earning money.

3. Because they literally make up about a third of the article.
Discussion: https://news.ycombinator.com/item?id=11908704
Yeah, but it's a PDF. Anyway, why can't you generate a TOC into the HTML version from whatever format you're actually authoring in? Good tooling support should make this not hard.

EDIT: And now the HTML version has a TOC, too! Talk about immediate gratification -- kudos to whoever did that!
I see tons of problems with Video especially around Accessibility. How do others think of this move?
Good job. Btw, there is a similar project here: http://reader.one/ (lol, just got a downvote)
I think Netflix will face a problem of getting their customers find too well what they actually like, and not being happy with the content after this. Say, I loved River that you mentioned -- it's brilliant I think -- but can't really stand the superhero stuff now. And that's fine, but there are economic limits on how much of specific kind of content they can provide. I will obviously cancel the service if I run out of the programs that I find worthwhile.
I build images locally in virtualbox/vmware player/kqemu/whatever and upload or copy the image over after they are configured minimally.
You are supposed to understand the implications of all of these steps. If by accident you ever lock yourself out, you will need to know how you set it up. If you just recommend running a script, most people will not learn what they are doing.
I used to use this, but I found that it's significantly less useful than a git repo with my server-specific Chef cookbook in it.

Manually modifying servers was never a good idea; it's worse now, even with tools like this.
It's more reasonable to parse "depends only on" as expressing conditional independence than unconditional, and that parsing has the added bonus of making the original statement correct.
AMD has for several years, the almost free compared to intel prices, 4cored 5350 apu. it serves 4k out of display port ot hdmi. and is very low watt (my htpc runs passively cooled. though not pumping 4k, wich is useless still)

sadly it's mostly ignored by everyone because there's only two relevant motherboards for it.
Pytesting SQLAlchemy
Surely as rules are deleted they disappear from the saved copy?

Or is the issue that fail2ban et al don't remove stale rules?
I use Xmonad. I find it useful. Of course one example fits into the "few" bucket. Not sure if a tiling window manager counts as a program either.

Good luck.

http://xmonad.org/
We created an app to find the Best Indie Coffee shops close to you
Hi Everyone ! We just launched our new App Crema App on the App Store it is available in 6 different cities : Montreal, Toronto, New York, San Francisco, Paris and Berlin !

Crema let you find your best city's coffee shops in a fun and interactive way. It is a guide for indie coffee shops and in a couple of weeks you will be
Download it and let us know what you think !

http://apple.co/1Xep05I

If you like it please review the app on the app store :)

Thanks !
They come in various shapes, varying on inner diameter, outer diameter, and length. Smaller connectors may tend to be lower voltage, but that's certainly always true.

There are several standards, and at least some of them specify voltage ranges for particular sizes, but there's no universal standard.

List of plug sizes and their common uses: https://en.wikipedia.org/wiki/Coaxial_power_connector#Listin...
Ferm [1] is wonderful as an iptables frontend. Apart from making it simpler to read, it can avoid a lot of repetition with handy shortcuts such as ability to group things. E.g.:

proto tcp dport (smtp ssmtp qmtp pop3 pop3s imap2 imap3 imaps) ACCEPT;

.. creates rules for each of the ports listed. You can use multiple groups in the same statement as well (lets say all the services above for some crazy reason also listened to udp - you'd just replace "tcp" with "(tcp udp)").

Being able to set variables is also fantastic. E.g.:

@def $DEV_PRIVATE = (eth0 eth1);

[1] https://github.com/MaxKellermann/ferm
Does Valgrind work with Rust binaries? If yes, then this would make everything much easier. You just compile in debug mode and say `valgrind --leak-check=full`, and it will give you stacktraces to the allocations that were not freed.
5 Hidden Secrets for Developing a Great Android App
Didi Chuxing, China’s Rival to Uber, Scores $7B in New Funding
'speling mistake'?
Thank you for the notes. I'm on the go right now so sorry for the short reply, but I agree with what you've said. This was more of a primer with some hope to quickly explain the basic steps and what they were doing to younger engineers who don't have a ton of experience with it.

RE ssh note: That's the second time someone has linked it to me. It looks really good. I haven't had a chance to read it yet though. Will do.
Yes. See para 2.
https://blog.whatsapp.com/10000618/end-to-end-encryption
> A is trying to write comments on HN

Huh? The topic was about people doing hard work. Writing comments is easy.
It is probably the case that in the US, choosing not to leave gracefully means you will get the boot. In countries that make it hard to fire, someone could say "No thanks" to the resignation package and keep working for a significant amount of time.
Introducing the Internet Creators Guild
A bit much, maybe?
> resorts to cheap tricks like regularization,

Regularization is not a 'cheap trick'. It is an essential technique for mathematically ill-posed problems, where no unique solution exists. This is extensively studied and well-understood, and is used in many fields outside of machine learning.
Summary of “Sequence to Sequence Learning with Neural Networks” Paper
The best indie coffee shops close to your position in an app
Because newcomers would then copy-paste the script without really understanding what's going on, and that lack of understanding will come back to bite when something breaks. Teach a man how to fish rather than giving him the fish and all that. Writing a bash script as a next step based on OP's article would be easy once you know what you are doing.
But then you find yourself sharing a bed with an infant.

Source: I'm typing this from a bed I'm sharing with an infant.

(I don't actually mean this to be an argument, just fun. "Other people will make type errors" is not the argument I'd make.)