skysight-inc/HackerNews huggingface dataset:
It won't - for any single given service, running on a dedicated system will probably be able to squeeze out a tiny bit more performance than running on a shared system with containers, for whatever fraction of the time that you're close to maxing out that server's performance.

But in practice (at Google-scale, anyway), that's dwarfed by the efficiency gains you can get by squeezing lots of things on to the same machine and increasing the overall utilization of the machine. Prior to adding kernel containers to Borg to allow proper resource isolation between the different jobs on a machine, the per-machine utilization was really embarrassingly low.

Another point to consider is that not all jobs are shaped the same as the machines - some jobs need more memory (so if you put them on a number of dedicated machines adding up to the total amount of memory needed, there will be lots of wasted CPU), and other jobs use a lot more CPU and less memory (so if you put them on a number of dedicated machines adding up to the total amount of CPU needed, there will be lots of wasted memory).

By breaking each job up into a greater number of smaller instances and bin-packing on to each machine, you could take advantage of the different resource shapes of different jobs to get better overall utilization.
> I never got the "google shuts everything down" mentality that has become so prevalent.

Because their early marketing led people to not expect that of google, whereas with apple and microsoft it's just business as usual.
Return the most specific type, accept the most generic type
After updating to v2.2b1 using instructions at https://launchpad.net/~fish-shell/+archive/ubuntu/beta-2, these occurs to me in my original conf.fish file:

========================================================

# count the number of the files in the dir(not sub.), use tree | wc -l for subdirs
# alias lsc ls：command not found
~/.config/fish/config.fish (line 67): # alias lah 'la --color=yes --sort=time -lh | head'
# count the number of the files in the dir(not sub.), use tree | wc -l for subdirs
# alias lsc 'ls -all | wc -l'
^
in function 'fish_prompt'
called on standard input

in command substitution
called on standard input

Warning: Identity file

alias cp cp not accessible: No such file or directory.

Warning: Identity file

alias mv mv not accessible: No such file or directory.

Warning: Identity file

alias rcp rsync not accessible: No such file or directory.

unknown option -- -

usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]

[-D [bind_address:]port] [-E log_file] [-e escape_char]

[-F configfile] [-I pkcs11] [-i identity_file]

[-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec]

[-O ctl_cmd] [-o option] [-p port]

[-Q cipher | cipher-auth | mac | kex | key]

[-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port]

[-w local_tun[:remote_tun]] [user@]hostname [command]

>

========================================================
It's kilowatt*hour not kilowatt-hour. Multiply, not subtract.
I'd be interested to see a benchmark test suite for ACID-compliant databases with, as you mentioned, complex constraints and joins. Get as close to real-world workloads as possible.

I don't want to see the quarter mile, I want to see you road rally.
This is a step in the right direction, sadly as of this writing only JPY are supported [1]. I'll be switching tomotcha.com as soon as it supports USD. And probably open a bottle of champagne to celebrate.

I love you Stripe, keep up the good work!

[1] https://support.stripe.com/questions/which-currencies-does-s...
I remembered where the speed traps were just in time.
The latest ESP8266 Module was certified with FCC/CE.
Why do you bother with an OS or a container if you want to abstract the OS away? Just PXE boot all the machines and have the application set to run as init. No need to worry about copying every library for the OS to every machine and you only require the minimal kernel that you tell it to boot with.
Apple has 70k Cassandra nodes, if you send an imessage it's probably going into C* at some point.
The "whatever reason" tends to be one's resume. Some people think (and I'm not necessarily disagreeing here) the only way to stay employable is to have the absolute "blogging"edge tech on your resume.
This is definitely a problem. I don't think it's a sign of dim intelligence, or even not paying attention. It may be a sign of nervousness, or simply of being an introvert (like myself). They may still be very good people. Part your job as an interviewer is to draw them out enough for you to figure that out.

They may not understand what you're looking for in their answers. Did you tell them when you asked? It was obvious to you, but it may not be obvious to them.

Once I get a few of these answers, I try to ask questions that require more background explanation to respond to. This requires some thinking on your part. If you've seen a project like theirs before, you can ask them how they solved some of the problems that you ran into on your own project. "Did you consider X? What would happen if..." If you are actively engaged and thinking, people will respond to that, much more than if you ask very open-ended questions like, "Tell me about X."
32 points, 6 hours old, and no comments. Weird.
Yes, but this time it is disappointing. If the website was a tool for learning logic gates, it would be perfectly acceptable and quite clever. However, since the website is saying that it has implemented logic gates in CSS, a natural, if not necessary expectation is that these gates should be composeable, which they are not. Logic gates that can't be fed into each other really strain the definition of a logic gate (its part of the reason that circuits are interesting while a piece of paper with a truth table is not)

Edit: Just to clarify, the disappointment is from being excited that something like this could be wired up the way we initially thought. The result remains cool and clever all the same.
> I absolutely do defend the right to yell "fire!" in a movie theater. I also absolutely think you are subject to the consequences thereof.

That's still not the kind of speech that needs to be protected and heard, as I'm sure you're aware. So I can't see a reason to spend this much time discussing yelling "fire" in a theater.

> All of this is different from what you portrayed, which was incarcerating someone for yelling "fire!" in a theater purely on grounds of doing so, regardless of whether there was/wasn't a fire and whether (in case there was) it posed a threat.

I portrayed nothing of the sort. Here's what I originally said:

>> In other words, say what you like, but don't be surprised when they haul you off to a concentration camp for being a naughty little thought-criminal, huh?

But nevermind, we've probably wasted enough of each other's time here.
>> Deus Ex 3 had tiny levels

I agree that the levels are small in comparison to the original DE or something like Fallout 3, and it's certainly not a perfect game (especially the boss fights), but what DE:HR had going on was density. With a few exceptions, the game's areas are jam packed with multiple routes and options and interesting stuff to see and do. Virtually every attempt to explore is rewarded with something fun.

I recall one small-ish 3-4 floor apartment building in DE:HR that has interesting stuff on every single floor - not just a "treasure chest" or two to open, but multiple entrances, scripted events, optional NPCs and quests (some of which had multiple goals/endings and could even be permanently "failed"), traps, hidden stuff to find, plot material, enemies that you could ambush or vice-versa, concealed routes to other buildings and more, all of it conditionally accessible based on your skills. You can visit multiple times throughout the game and things will change. Certain actions could have effects on future events. Every unit had a personality and breaking into one felt like walking in on someone else's life (the memorable one for me - breaking into the drug dealer's apartment as part of an optional quest and having him come home while you're there!)

A lot of other games that tout their square mileage are empty by comparison. They give you the joy of running freely across the countryside, but the only reward is the journey and maybe something to shoot at.
I'll be interested to see how well they do. In Japan there is Webpay which is almost a carbon copy of Stripe and was recently bought by Line so now has some clout behind it.
Ask HN: How do you fight internet addiction?
I find myself obsessively rechecking HN/reddit and watching youtube, that's unhealthy. I have a lot of exciting goals and I am driven to accomplish them, and internet addiction stands in a way.

I am a freelance web developer, so I have to be online, and I have no boss to stop me from wasting my time.

Can you give me some advice that can help to manage/fix this problem? How do you solve it for yourself?
Try getting a bunch of open source developers to agree on which editor is the best.. and there you'll have support for the claim you've spent all this time pointlessly arguing against.
I would say containers are primarily an improvement over hypervisors / VMs in performance, not over dedicated hardware. However, they still allow for some of the capabilities of VMs, in terms of elastic reshaping of a cluster. So, if you have a static environment, it's probably not useful to you. If you have a dynamic environment, where you need to frequently repurpose particular machines, but want to do it more efficiently than with a VM, it can be very useful.

In another view, it's another approach to what many look to Chef, Ansible, and Puppet to do. Combined with something like Mesos or Kubernetes, you can quickly deploy to a heterogenous cluster, without a lot of install scripts running.

Some of the other uses cases, such as running multiple containers simultaneously on the same hardware, make less to me.
But you can make guarantees to the critical jobs (up to the total size of the machine) and then let batch jobs (with less time-sensitive requirements) run best-effort in the slack.

In the event that there ends up being no best-effort resources available on a machine for a significant period of time (because all the user-facing jobs are busy and using their guaranteed resources) Borg will shift the starving batch jobs to other machines that aren't so busy.
The rewinding is done by saving the current state once per frame into a ring buffer by the way. During rewinding, states are popped off the end of the buffer frame by frame, with each individual frame still running "forwards".

To reverse audio, it is added from near the end of the frame's audio buffer towards the beginning, which is possible as long as you know the exact length of the frame (so that you end up at the beginning of the audio buffer when the frame finishes). The frame length varies slightly for technical reasons (it even does on the real thing), so the final length is saved as each frame finishes so that it can be recalled later if the frame is rewound.

I guess an alternative approach would be to always start from the very end of the audio buffer and just processing and sending the samples starting from whatever offset you end up at when the frame finishes. The resampling and low/high-pass library I'm using (blip_buf) doesn't support that out of the box though. (It takes a list of timestamps where the waveform changes, which is handy for the algorithm it's using.)

Feel free to ask question. I could answer general NES questions too. :)
Much like Road Warrior.

On the other hand, making a movie where the villains are simply villainous because they are willing to use violence to take oil from people who simply want to live their lives and keep it, that's not exactly the sort of big budget theme Hollywood can stomach. These days the oil scarcity narrative works better for blockbuster audiences with the political subjugation of women as the primary determinant of villainy. Women fighting invaders to protect hearth and home, just don't require enough rescuing for the 21st century.
I'm having much the same experience with Docker, and talking to other ops folks who get to actually put it into production, they usually have similar experiences.

Docker is fun and great when it's running on your workstation and coddled by your fingers at the terminal, but there's a lot of gotchas and missing parts when it comes to putting things into production, to be taken care of in a hands-off manner. There still isn't an easy way to centralise logs from a container app's STDOUT. Yes, there are other containers you can install to ship logs (which work for the author's use-case, not necessarily yours) or you can hack together something horrible. If you want to look at container logs, you have to have root rights. You can be in the docker group and have full control over the daemon, but the container log location is root only, and is made afresh with every container. (and don't forget to rotate those logs!)

My latest fun with docker is that one of my docker servers, built from the same source image and running on the same configuration plan in ansible as my other docker servers, fails to start docker on boot. Some sort of race condition, I assume. Basically it fails to apply its iptables rules and dies. People talk about making problems go away with docker, but it's a trope in my team that any day I'm working with docker, I'll be spamming chat with problems I'm finding in it from an ops point of view. And I'm just a midrange sysadmin :) But the point is that adding Docker adds an extra layer of debugging. The app stack still needs to be debugged, and now there's an extra abstraction layer that needs debugging.

Plus, in my particular case, there's the irony of using single-function VMs to run a docker container, which is running the same OS version as the VM :) (my devs bought into docker before I arrived...)
Fwiw, the same (I think) in idiomatic Perl 6:

+$path.IO.lines.words
The Case of the Unexplained FTP Connections (2012)
Why should I be required to leave my computer on 24/7 to share files with some friends?
> I don't think there is such a thing as someone who has the potential but hasn't done it.

I had an intern once. No coding experience but very eager to learn. That company went under but he's now working full-time as a developer - even transitioned into devops. That's my example of someone who showed great potential but hadn't done it yet. He realized as graduation was approaching that he wanted to do something else and went for it.
The problem is "whatever tiny 'power user' features that google had... don't seem to work at all now."

I think I know what they were talking about. A lot of times it appears that adding advanced terms to a query will change the estimated number of results yet all the top hits will be exactly the same. Also, punctuation seems to be largely ignored, e.g. searching "etc apt sources list" and "/etc/apt/sources.list" both give me the exact same results. Putting the filename in quotes also gives the same results as before.

Searching for specific error messages with more than a few key words or a filename is usually a nightmare.
That was intended as a joke, but not completely. Emulating OOP seems to be deeply frowned upon by Haskell developers.

That is, until you actually do it; I don't think I ever saw people complaining about any actual instance of OOP-like code, just about the idea.
Nice link.
DVDFab Media Player 2 – Free DVD ISO Player
> No, they didn't. I was referring to gold and silver being used as tradeable goods, not as currency. There's a difference.

Oh come on. You know they did emerge, as mediums of exchange, which is what money/currency fundamentally is. You're making a meaningless distinction to cover your ass.

> Oh, please. How many people would give up a job to live on $30 a week?

We're talking about a Basic Income, where the idea is to get enough money to live on, right? That most definitely would cause many people to just stop working because they wouldn't need to anymore, even if the BI happened to be too low for you to stop collecting your phat paychecks. You get that, yes?
I'm not dismissive enough to have already committed elsewhere in this thread to re-do a bit of experimentation I did about a year ago on using containers and at the time the performance overhead was such that I failed to see the use case, but since this is a fast moving field it won't hurt me one bit to update my knowledge.

In a nutshell: running a 'standard' combo of apache and a DB server as well as some auxiliary bits and pieces inside 'containers' a year ago gave significant overhead compared to running those without the containers. I'll re-do this and I'll probably do a write-up because the subject is interesting. This comment and follow up (https://news.ycombinator.com/item?id=9567623) are by people using this tech in production right now and their experience echos mine (but they're very far down the line compared to where I stopped).

Besides that particular use case (where performance and isolation are the key components to be looked at) some interesting points have been made in this thread which has shifted my stance on container use depending on what the situation is. So I don't think it is valid to classify me as 'awfully dismissive'.

FWIW I have not used containers in production (yet) but I'll be more than happy to if I can figure out where and how they can bring me an advantage, which is pretty much how I approach all tools.
Awesome. I missed the era, but it sounded like an amazing time for the phreaks.
The First 8 Months and Going Free
I do quite a bit of programming in bash. One construct in bash is absolutely super: process substitution. You can read the output of a program as if it were a file with the construct: <(myprogram).

Bash is a fine tool, but it has a number of flaws that prevent me from using it for certain tasks.

* Functions can only return a status number. Functions are always subshells.

* The hashtable (associative array) syntax is unpalatable, unreadable, and a real abomination. I simply don't use it, because it gives me a headache.

* I can never remember the horrible syntax for most string functions.

* You cannot reasonably store an arbitrary json structure in memory. Embedded lists and hashtables are absolutely unwieldy.

* Bash has no concept of FFI (Foreign-function interface). So, you cannot load an external library and invoke functions it it.

These problems are not particularly impossible to solve, but the Bash authors will probably never do it. Therefore, the final reproach against bash is that they do not publish their source code in an environment similar to github, where users can file their issues and improvement requests. In other words, the bash authors are not in communion with their users.

In what way can the fish shell address these problems?
Heh, maybe that's because the nature of quality is qualitative rather than quantitative.

There are things that can be measured that might be correlated to quality ("bugs", sales, support, etc) but ultimately, classical quality seems to be to be a marriage of what was expected or desired with what was actually there. As a developer, my take is that quality usually stems from "developing" those expectations as much as making the relatively concrete thing to compare them too. When anyone can quantify the first half of this equation, please let me know at once.
Oh please please please come to South Korea next. The payment processing market here is practically begging to be disrupted.
'Welcome to Fear City' – the inside story of New York's civil war, 40 years on
Unrelated: the previous post on that blog about Finnish election candidate-matching websites is quite fascinating: https://www.snellman.net/blog/archive/2015-05-11-okcupid-for...
I suspect the question was as well.
Isn't "volcano style" enough to prime the cache in this case, though?
TL;DR: We're working on that one; stay tuned. ;)

Long version: Yes, Sandstorm requires a wildcard host for security purposes. In general, by splitting things up into lots of small, isolated units, we can protect against bugs in apps. For example:

- First, obviously, hosting each app on a separate origin (hostname) is important if you don't want a bug in one app to allow compromise of other apps or Sandstorm itself (or if you want to run apps that you don't necessarily trust). Since we want app installation to be a one-click process, we need to generate hostnames automatically. But we go a lot further than just allocating a host for each app.

- By hosting every Etherpad document in a separate, isolated container, we can protect you against bugs in Etherpad that leak information from one document to another. Several such bugs have been disclosed in the last few months; none affected Etherpad on Sandstorm.

- By hosting Wordpress's edit interface on a separate host from the public web view -- guarded by Sandstorm access control -- and making the public view read-only, we can protect you against security problems in Wordpress. Several such bugs have been disclosed in the last few months; none affect Wordpress on Sandstorm.

- By creating a new unguessable throw-away host name for every session -- i.e. every time you open the same document, it's on a different host, and that host expires when you close it -- we can protect against XSRF, clickjacking, and reflected-XSS attacks in apps, because the attacker does not know to what hostname to address the attacks.

So there's a lot of really huge advantages to having a wildcard host available. The big disadvantage is that wildcard SSL is expensive -- around $100/yr at its cheapest. But that's an artificial price based on CA's perception that wildcard certs are only needed by people who can pay a lot -- it doesn't cost them any more to create the certs, they're just doing price segmentation. So instead of solving the problem by giving up on our nice security properties in order to make non-wildcard certs work, maybe we can solve the problem in meatspace by convincing the CAs that Sandstorm calls for a different pricing model.

And that's all I can say for the moment. :)
It's impressive the chaos that one second can cause. I think in terms of hard problems, to naming and cache invalidation, I would add time or human notions thereof. Or perhaps time is a case of the first two intersecting...
Looks a lot like what Postgres originally did with their Jason support pre-9.4 where it got significant beef ups.
Don't try to fight it.

The way to be successful is just do at least 1 thing for your project each day, no matter how small. Just take one action at a minimum. Use all your willpower for that.

I am still incredibly addicted to the internet and yet I finished a side project in a couple months while also having a full time job.

The super successful never actually get over their addictions.
CSSNext: Use CSS4 as a CSS preprocessor
Um, pretty sure they can make whatever demands they want on their own website.

JS is standard issue in 2015, come on out of the bunker.
Wow, they've certainly put a lot of thought into that!

I wonder if they're actually "slowing down time" or just not implementing the leap second and just injecting the 1/..... second into all user-visible or exported fields?
Interesting. I remember reading how Google was doing something similar in their implementation of the leap second back in 2011: http://googleblog.blogspot.com/2011/09/time-technology-and-l...