skysight-inc/HackerNews huggingface dataset:
I've had the best chars by using a searzall (which attaches to a propane blow torch).
Setting up Rails projects to run in production is my specialty. :-) Some people love it, some hate it, but it's a good chance to learn some Linux and sysadmin skills.

I'd advise you to do it sloppy the first time. Don't worry about configuration management, containers, and all that stuff, just learn how to set up the system. So things you'll have to do:

- Set up a `deployer` user account. (Actually I like to name these after the application they're responsible for.)

- Install rbenv and your Ruby of choice.

- Install nginx or Apache.

- Install a Rails app server. I like Unicorn, but if you go with Phusion Passenger there's not a separate process
to manage---it just launches via your web server.

- Install your database and give it some initial contents.

- Add Capistrano to your Gemfile, write a cap script, get it working.

- Since you say this is a web crawler I assume background jobs are important. So if you're using Resque or Sidekiq you'll need to install Redis.

For bonus points:

- If you have cron jobs, use `whenever` so they get configured every time you run `cap`.

- Install SSL.

- Install fail2ban.

- Use unicorn instead of passenger.

- Use a process manager like god (which is ruby-based) to control unicorn and your background jobs. Btw if you do this, your cap tasks for restarting unicorn, delayed_job, etc. should change to just `sudo god restart myapp-unicorn`, not the direct commands.

- Use chef-solo (also ruby-based) so you don't have to do it all by hand next time. :-) Tip: to save time, run this against a vagrant VM until you get the bugs out.

- Start playing with more bits of the AWS ecosystem, e.g. add an ELB. Run everything in a VPC instead of "EC2 Classic". Use CloudFormation to launch instances and kick off Chef automatically (using chef-server instead of chef-solo)---or try out OpsWorks, but IMO it's a bit beta. Use RDS.

Good luck, and have fun!
>That said people trying to distinguish use of any tool to 'fix' an abnormality vs 'enhance' something that is normal are idiots because the distinction is merely one of perspective around whether something is 'broken' or not.

man, while i fully support speeding up the evolution through all the means possible, your statement is kind of self-contradictory: you use "normal", and thus implicitly you bring up the notion of some distribution with clear notion of "normal", ie. some well distinguishable significant mass at the center and thus the 'fix'/'enhance' difference becomes very well defined (not just merely one of perspective) - 'fix' is moving up toward the mean/center mass while 'enhance' is moving up toward the mass's upper edge and away from it.
When I first talked to AI gurus for FPS shooters about AI I thought that true intelligence and emergent behavior from the actors are good things.

I quickly learnt that most players want a gratifying and somewhat predictable experience. If you can predict and "out-think" the enemy you feel good and and you can handle the incredible odds that the game pits against you. Intelligent AI is actually at odds with this goal.

An AI also needs to be very controllable to meet story-line needs or just so that you can tweak it to fix over any issues. Many approaches to AI are very "black box" and so would fall down here.

If you've played F.E.A.R, you can see how very good / strong AI makes the game extremely hard on the player. And that AI is actually rather simple from a programming standpoint, not like a simulated brain or anything.
If you have a statically-linked binary you can just run it in a container. You don't need a whole OS userland in there.
I believe making diamonds requires extreme pressure along with heat alas
You're right, it's possible to compete. But the playing field is tilted.
If you write code that solves a people problem and allows your project to move forward, no matter how stinky that code is, that code is "good code".

By nature, we programmers often judge our code on its technical merits. But a stinky piece of crap that I might write that shows me clearly what I need to build, or demonstrates the techniques that are required, or shows that something isn't going to work early, etc can have immense value.

Writing stinky code is a tool that every programmer can use. The trick is to know when you should use it and when you should not. If done properly, you can solve some intractable problems dealing with requirements gathering, design, or even political problems. When used improperly it can have exactly the opposite effect -- it pushes requirements gathering back, or defers important design decisions until it is too late, or creates conflict within the team.

I know some people in the industry who are pretty good at this, but I know of nobody who is a master at it. Not only do you need to be good at it personally, you need to be able to influence the team to coordinate their work in a way that is not destructive. This requires you to have impeccable taste, amazing technical ability and sublime communication skills. It is a skill that I wish more programmers would value and work towards.
I'd strongly recommend reading the Borg paper (http://research.google.com/pubs/pub43438.html). It outlines in clear and persuasive detail why Google started using containers. Their reasons may or may not be convincing for smaller companies, but I'd expect the advantages to start accruing above ~10 developers.
Makes me wonder, as a non-web developer, would it be possible in principle to develop for the web in a low-level language like C/C++? What I mean is, is it only impractical and inconvenient for the developer, or is it fundamentally impossible?
I'm not sure what this means, but at least in the case of Docker containers, you can see the running processes from the host OS. I.e., top shows running node.js processes, etc. If that's the case, maybe it does indeed still have some control.

And I just verified, you can kill a running process from outside a docker container. So the OS does see it and probably can do all its scheduling magic.
Voat's become a magnet for the GG and other seedy reddit communities that have propped up over the past few months. More power to them, but Voat can keep them.

I'll go elsewhere once Reddit crashes and burns. Away from the MRAs and SRS. Somewhere where the noise is squelched far from the signal.
When 'Luddites' Attack: Destroying Machines to Save Their Jobs [audio]
I was more asking how Microsoft benefits by pumping their own money and time into their own browser.
Writing your first mercurial extension
You said not to take the cheap shots, so I replied two minutes ago with a real comment. This one is a cheap shot: starting your own OEM will not help: MS won't give you a windows license. But you will say that just means you must try something else.
Presumably you could arrange things in such a way that several container images shared libraries and such but that would likely interfere with the (desirable) isolation properties and versioning will play havoc with that anyway (since all dependencies are part-and-parcel of a container and nothing stops multiple containers from shipping different versions of the same package).

Where regular virtualization runs multiple kernels (which in turn will run whatever applications you assign to them) containers appear (to me, feel free to correct me) as a way to 'share a single kernel' across multiple applications dividing each into domains that are as isolated as possible with respect to CPU, memory, namespaces and IO (including network) provisioning and allowing multiple version of the same software to present at the time without interference.

The CPU, memory and IO provisioning can be thought of as a kind of 'virtualization light' and the namespaces partitioning should (in theory) help to make things a bit harder to mess up during deployment.

Leakage from one container to another will probably put a dent in any security advantages but should (again, theoretically) be a bit more robust than multiple processes on a single kernel with shared namespaces.

So I see them as a 'gain' for deployment but a definite detriment for performance because it appears to me we have all (or at least most) of the downsides of virtualization but of course you can expect both virtualization and containers to be used simultaneously in a single installation with predictable (messy) results.

I'm really curious if there is an objective way to measure the overhead of a setup of a bunch of applications on a single machine installed 'as usual' and the same setup using containers on that same machine. That would be a very interesting benchmark, especially when machine utilization in the container-less setup nears the saturation point for either CPU, memory or IO.
That's what I try to do when interviewing programmers. I never make anyone write code, I want to know how they think, what did they pay attention to, and what did they learn from projects they did.
>No, I'm saying that there is no example possible that will negate the point. Because the point is true.

You can't dismiss evidence ahead of time because you're convinced your theory is true.

this isn't a cheap opportunity to pick at your argument, it's a huge red flag that you have a fundamental error in your reasoning.

>I mean, you can keep taking it out one level, and competition can happen there. For instance: Can't compete due to OEM agreements with MS? Have to get an OEM to capitulate, or start your own OEM, or find another way to get your competing OS on machines. There is no specific example that will make the argument that competition is impossible go through.

Fine - but this argument doesn't model reality, and this is where the relevance of evidence comes in: many times competition is theoretically possible but won't occur since no one wants to risk a lot of capital and time and effort on what will likely be an unsuccessful venture.

So if an unregulated Microsoft manages to lean on their competitors enough that people don't want to try competing anymore, then competition is still possible, but without regulation it won't occur.
Cost,at least perceived cost. But most likely the baseline quality to cost trade off doesn't justify it.
We had very similar thought processes.
Are you talking about shared libraries, that kind of deduplication?

Although true, that probably isn't really very significant compared to the vast wasted resources of idle dedicated machines. Which is hard to avoid without the vast wasted resources of a highly paid somebod(y|ies)
In the sense of 100% monopoly, you're probably not far wrong. But it's pretty amazing what you can do with 99% market share.
This choice makes no sense but.... hmm, really? I think I'd rather have good commit messages that explain the "whys" that went into the code.

Code typically isn't rocket science. It's the human knowledge that goes into it that's irreplacable.

Example 1: OK, you're using a third-party CSV parser instead of the one built into the standard library. Why? If your code is crap but well-documented, I can read what you were thinking: "Using non-standard CSV parser because the standard one chokes on files bigger than 2gb" At that point I can refactor your code, or perhaps see that this issue has been fixed in a newer version of the standard library. Or maybe I realize that you confused gigabits and gigabytes and you made a bad choice in the first place, and I realize I can safely remove this dependency. But if your code is tight but undocumented... I would have no idea why this third-party library is being used unless I do some painful trial-and-error that still might not definitively answer the why.

Example 2: You inherit Mary's code. It calculates commissions for our salespeople. The code is sloppy and convoluted, because the sales guys change the commission formulas every month... and these changes have been happening for over ten years, often on very short notice, often contradicting basic assumptions made when the software was originally architected. But Mary documented every change. Which is good, because the fucking sales guys sure don't. Her code is literally the company's only coherent record in the entire company of the commission process. Remove her comments and commit messages, and none of the code would make sense, even if it was tightened up into a sounder codebase of seven modules with 300 LoC each instead of ten modules with 500 LoC each.

So yeah. Totally fictional choice but I'll take documentation every time. Code is just code, I can fix it.

(Both those examples are fictional, but I've been coding professionally for nearly twenty years and I've seen variations of them countless times...)
Prezto and Antigen are the better solutions for ZSH users. Oh-my-zsh has some issues that Antigen addresses and Prezto does things in a different way entirely that's equally good.
This might be the difference between an internship and a co-op, but when I was a co-op at JPL, they paid a salary comparable to what other companies paid new grad hires. And the total number of months you co-oped was used in their salary formula if you got an offer for a permanent position. The fact that you are getting such a tiny fraction of that - 20 years later in this job market - is astounding to me. Sounds like you could do better on Elance or Odesk, and that's saying a lot.
I think these are phantom shortages. Hiring managers are simply too picky. Ever see some of these job descriptions that list a dozen technologies, and you must be an expert in all of them.
What happens when you install two containers each of which contain the same application, does that install only a single instance of the application binaries and are those still executed with the same efficiency (shared binary) as normally or will that trash the cache? (I understand that if multiple application install different versions of some dependency that that will lead to trouble but in a way that's something 'unfixable').

How does this perform in practice when they start talking to the outside world at or near capacity? How does it perform when they start talking to each other using some defined interface? (But presumably, no longer regular IPC).
History of YouTube
How Reid Hoffman and Marc Andressen Accelerated the Bitcoin Gold Rush
Try this: http://en.m.wikipedia.org/wiki/MorphOS
Ok cool. 2 hours into my comment, and I was beginning to think I was being MiTM'd.
Using a lookup table is a valid way to implement something. It is used often for precalculating expensive functions. (trig tables are very common). This is just one extreme of the runtime-vs-memory trade-off.
It's a very relevant response to Fish. I used Fish but ran into trouble trying to figure out the syntax for things I knew how to do in bash. zsh (with oh-my-zsh to pick a theme and some plugins) was a nice middle ground with lots of shiny features but with more familiarity.
Your comment reads--at least to me--as an advertisement for Dropbox.
I care aboutthem all and read it like the matrix. Tools like Mometic.com and stock-touch give me a much more visual read if you can handle the thought required. Otherwise just stare at a line chart!!!
5 Habits of Hyper-Productive Developers
Unless there exists a way to peel back that layer it is immaterial. Asking for something that doesn't exist is different than asking to have access to a layer that does exist.
Non-mobile link: https://groups.google.com/forum/#!msg/golang-codereviews/m5Q...
Intel's acquisition effort for Altera is reportedly on again
I often hear people complaining about how expensive US-based engineering services are. I always think, just wait till you find out how expensive it can be to outsource!
I will take a stab at this, maybe a proper physicist will correct me.

If you are on the ship moving away from earth at nearly the speed of light but, we'll say, with a constant relative velocity, your time would slow down as observed by earth.

Also assuming that the streaming video signal is coming from earth at the speed of light, relative to earth, and as observed by someone on earth, it would take the stream quite a long time to get to the ship (though it would only take the normal amount of time to leave earth). This is because if you are moving at 99.9% c and the video is streaming at c then relative to the ship the video is streaming at .1% c. Thus, it takes a long time to get there.

However, since it's not buffering and just playing as it streams in, and because time has slowed for those on the ship, I will posit that the video would play at relatively the normal speed to the observers on the ship as both their time and the stream itself have slowed significantly.
It's certainly possible today with emscripten. And, for an old C++ fart like me, it's rather tempting. I'm not saying it's advisable though...
I've found that the Alton Brown steak method works remarkably well for me. 2 minutes each side in a cast iron skillet over high, and 2 minutes each side in a 400 degree oven on the same skillet. Let rest for 5 minutes after.

Turns out as a nice medium rare, with lots of juices and a great flavor.
This approach screens out people who have the potential to accomplish but haven't yet - I would never try to interview people like this for a development role, since past experience doesn't necessarily tell me if they can do what is needed well.
Yes, but then rather than shared libraries the kind of de-duplication the kernel will do when it runs multiple instances of the same binary. This is (normally) very cache and IO efficient since it is done at the VM page level.

I also don't quite understand how one can reserve CPU cycles, memory and deliver IO guarantees without the same over-provisioning that you'd have to do using regular virtualization. After all, as soon as you make a guarantee nobody else can use that which is left over, so in that respect I see little difference between virtualizing the entire OS+app versus re-using the kernel (ok, that does save you the overhead of the kernel itself but that's not a huge difference unless you run a very large number of VMs on a single machine).
Oh I thought the pressure came from the contracting lava as it cooled down, but apparently you're right that's not enough.
The "special snowflake" problem is the primary reason VMs and containers are better - http://martinfowler.com/bliki/SnowflakeServer.html

While VMs and containers in VMs don't utilize the hardware as efficiently as a dedicated server they make your people much more efficient and happy. Unless you are running at a fairly large scale making your people more efficient gives you a much better ROI than making your servers more efficient.
Thunderbird is great for e-mail – if only it could sync contacts via CardDAV
I'm sure there are some, but think of its use cases to be more like Excel than like a typical programming environment. Most interesting Mathematica "Notebooks" are only ever used by a single person.
The founders should be here explaining their company? I'm not sure what they are trying to accomplish; even after looking at the Job posting qualifications. I have a vague idea, but still confused.

I know it's difficult to explain new technology, but just give it a shot? Maybe they don't know they don't know they are on HN, or I just got conned out of an email address?
Ask HN: Can a spammer-turned-good get out of Google spam filter?
Long story short, got greedy and automated the sending of ~60 emails to potential customers over a couple of days with Mail Gun. Near the end of it we noticed our emails were ending up in Gmails spam folders and we stopped. Now when trying to legitimately reply to customers that messaged us through our in-site contact form (so we're sending the first actual email) I think some of our messages are ending up in the spam filter. People that were interested in our service and contacted us first aren't getting back to us.

I fucked up, yes, but is it fixable? Other than getting a new domain and re-branding our entire business of course. I like our in-site contact form because it requires people to fill out all the information we need, but if the only option is to have them email us first then I guess I can do that.
EFF Testifies on Exemptions to DMCA Section 1201
Containers have actually been around for a long, long time -- and have well-known operational efficiencies. So this isn't a "shiny new layer-of-abstraction", it's a tried-and-true abstraction that has been operating in production and at scale for a the better part of the last decade.[1] That said, the developer fascination with containers (which is to say, Docker) is new, and there is a bit of a wild west of abstraction around up-stack abstractions -- but that confusion shouldn't be conflated with the abstraction of OS-based virtualization, which remains a clear improvement over HW-based virtualization and the next logical step function in infrastructure deployment.

[1] https://www.joyent.com/developers/videos/docker-and-the-futu...
Finally Victory for Free Speech in Garcia V. Google
That's the first explanation that actually makes sense to me, thank you.
What if the ship is motionless and the Earth is moving at 99.9% c?
Not sure how someone can justify down voting me. It's a true story and relevant.

Tim Cook, is that you? (I don't think Tim Cook would do that).
Doesn't require incognito mode. You can buy any of those "prime only" Blurays from other sellers new, and even fulfilled by amazon.
Haskell does this, too.
If anybody posts a link to Wikipedia or some other outside reference, that's cheating.
React with GraphQL for Architecting Apps
Ask HN: Software Developer to Software Recruiter
I am a software developer who has seen the best and worst of recruiters from the perspective of candidate and employer. After a lot of soul searching, I have made the highly controversial decision to start my own recruitment business specialising in software development which uses my technical knowledge and experiences and the proliferation of technology based recruitment startups & technologies to provide a service that I think is much more fitting than what is being provided by the majority of recruiters. I have done a few placements and I have learnt an awful lot but I still want to hear suggestions as to what people consider an ideal service.

I understand a lot of coders would never make this choice and that I may have already committed software career suicide for myself if I ever want to return to the industry as a coder, but I feel that I can really add some value to the software community by doing this. For now, I am running it in the conventional recruitment model but as I gain momentum I hope to introduce more technology, more input into the companies' hiring processes and ongoing talent attraction, more guidance to candidates who are not quite ready yet and hopefully more value for everyone concerned.

Opinions and suggestions, please!
> I'm used to typing '\', and that's not possible with fish. Additionally, to get one backslash in any sort of regex (sed, grep), you need four backslashes.

This is a piece of technology we used to have and then somehow lost. Common Lisp uses ~ as the control character for format strings. C uses \ as the control charcter for raw strings, and % as the control character for format strings. HTML uses &. But regexps use \. JSON uses \. And JSON is a new format! \ was literally the worst possible choice. As soon as you have multiple formats sharing a control character, you start to need huge power-of-two runs of it in order to say what you mean.

Who thought it was a good idea to reuse control characters? \ is used in raw string definitions. It should not be used in any other format, if strings might be used to invoke that format. This is a clear case where every standard doing its own unique thing is the correct approach, but we seem to be moving in the other direction.
The Magic of Microcontrollers in the Kickstarter Fun Land