skysight-inc/HackerNews huggingface dataset:
This comment is more aggressive than comments should be on HN.

I would exercise a bit of humility when commenting about other people's architectural decisions: they have bled all over that codebase and infrastructure, but I have not. They see it in their dreams, and I do not. They may from time to time decide to tell the community about their adventures. That is an excellent opportunity for me to learn from another engineering team's perspective and experiences, rather than an opportunity for me to demonstrate my intellectual superiority over them. They do not, as a function of having written about their experiences, owe me responses to my off-the-cuff analysis of their engineering tradeoffs.
Roslyn – C# Compiler
I don't see it, can you explain why this works with `int`?
Their verification system is their secret sauce. They do a great job of making sure no spammers, scammers, marketers, or ad men get in the system. Because, the last thing you want to see around the campfire is an ad. If they monetize by selling your data to anyone and everyone, the system will break down. The kind of people that use those systems are not the neighborhood watch type.

I am not sure about you, but if you break it down, knowing that 51 people in your neighborhood will see your updates is still empowering. I live on the corner of Central Park South and 7th Ave, and I get cool updates from the few people that share my area. Sure, this is the same area where apartments sell for 100M, but yeah. And also, I might add the best thing to do is just go to a pub and meet people. Some of my neighbors are truly inspiring.
I have an up-to-date nginx on wheezy, stock debian packages, no more than just `listen $IP ssl ; ssl_certificate ; ssl_certificate_key` directives and it gets an A on ssllabs.

Do you know exactly what problem you had? It might have been unrelated to debian's presets.

EDIT: a different server with a many-times-upgraded nginx package (but same version) has no `ssl_protocols` in /etc/nginx/nginx.conf and so had SSLv3 enabled. So i agree that this can happen. In my case it's probably a consequence of silent upgrades and `Dpkg::Options::=--force-conf{def,new,old}` choosing to preserve existing config files.
Interesting but missing a bit of rigor up to being wrong.

If we can compute a sum as a sum of sub-sums,
or a count as sum of sub-counts,
this is no because addition is commutative `a+b=b+a`
(i.e order of operands doesn't matter),
but because addition is associative `(a+b)+c=a+(b+c)`
(i.e order of operations doesn't matter).

So we can define, `sum(a,b,..,z) = a+b+..+z`
whatever is the order of the operations
(say `(((a+b)+c)+..+z)` or `(a+(b+(c+...+z)))` or ...).
And if we have to compute the sum of two lists xs and ys,
we can compute either `sum(append(xs,ys))` or `sum(sum(xs),sum(ys))`.

Likewise, if we can "pull up Collect nodes and push down Computation nodes" in some cases
this is not because the involved computation commutes,
but because the operation is in some sense compatible
with the collection structure and its collect operation.

What we need is an associative operation used to merge the results computed on parts of the collection, so:

computation(merge_dataset(xs,ys)) = merge_results(computation(xs),computation(ys))

For summation and counting, the merge operation is addition.
For filtering the merge operation is simply the former collection collect operation.
So we have:

sum(append(xs,ys)) = sum(sum(xs),sum(ys))
count(append(xs,ys)) = sum(count(xs),count(ys))
filter(append(xs,ys)) = append(filter(xs),filter(ys))

The abstract concept behind all this is monoid homomorphims (1) and, if you are looking for further readings, I wrote a post on how this concept is related to map-reduce and parallelism (2).

- (1) https://en.wikipedia.org/wiki/Monoid#Monoid_homomorphisms.

- (2) http://acidalie.free.fr/unfoldvalue/blog/map-reduce-spirit.h...
Physical comfort plays into the round design, and the cycling nature of our time-standards feeds into how we choose to display it.

(my 360 has a 'bezel' which rotates to show daylight and appointments at TDC, for example, and it's not really skeuomprphic or overly fancy)
A company that explicitly services the commercial world looking down on people for dressing in suits? They must hold a lot of contempt for their clients.
You absolutely can get away with jeans and a tshirt at an interview in SV; it's what I usually wear, and (anecdotally) what seems to be the norm. "SV culture" weirdness aside, dressed-down interviews for non-client-facing work makes perfect sense to me.

That being said, if someone either isn't aware of the custom or prefers to interview in a suit, it's idiotic to count that against them.
latency in a command line + emacs is perfectly fine on even the worst connections
That's correct, what he wanted to say is probably that there exists compilers where `bar()` is invoked. Don't be so snarky, try to understand what the author ment.
How about some sort of dropbox like syncing? Put your files in a shared dropbox folder, sync dropbox folder on remote VM, save your work on remote VM when done, changes get synced back to shared dropbox folder.

Obviously not perfect and obviously problematic if lots of people try working on the same file at the same time, but should solve at least some of the problems.
Is it? I understood it was a language for Mozilla (i.e. with the browser as a core use case) - so for very high-performance applications (those that need so much control of memory management that even Haskell is unacceptable) rather than systems per se. No?
Stal is a small library for abstracting multi-step set operations in Redis
If Carpenters Were Hired Like Programmers – Barry Vredevoort
Thanks for putting that together!
Charts and the statistics are quite interesting
and its good to know about driving habits.
I am gonna give Open Torque Viewer a try soon.
Google’s MVNO ambitions
Distributed, masterless, fault tolerant data processing for Clojure
“Life Hacking”
Then REST is a wrong word, one that doesn't point to a natural empirical cluster. The web is very different from all the other things that are called "REST API"s.
DevOps Engineer + Fulltime + Shanghai

Font End Engineer + Fulltime + Shanghai

==About Strikingly ==

Strikingly is powering the next generation of websites.

Our mission is to give everyone the ability to turn their creative ideas into reality and build brands around them.

We're a small team working internationally and based in Shanghai.

Backed by Y Combinator (W13), SV Angel, Index Ventures, FundersClub, Innovation Works, and more.

==Experience Required==

No years of experience, education, or certification requirements, but you do need to be able to convince us that you know and have experience with:

* HTML、CSS、JavaScript、Angular.js、Knockout.js--- Font End Engineer

* Docker，Ruby on Rails，AWS，HAProxy，CDN—DevOps Engineer

More Information: http://www.strikingly.com/s/careers

==How To Apply==

E-Mail: jobs@strikingly.com
History and the preservation of artefacts is not about celebrating. It's about remembering and learning why people did what they did. It's incredibly important for future generations to know what happened in the two World Wars otherwise there will always be a danger that people might do it again.

"Those who cannot remember the past are condemned to repeat it." George Santayana
I wasn't hitting at Go, just making the point any language that native code compilers will do.

Thanks for the suggestion, maybe you should check my history.
USD 718M Invested in Marketing Technology Companies Through Oct–Dec 2014
Just FYI, AutoZone and places like that will read a check engine light for free. Did this once and found out I needed a new gas tank cap.
Show HN: Efficient translation by Lexiful
If those mistakes are so teachable, wouldn't it be better to put them into a linter?
You can use 3DES instead of RC4, but this cipher is one of the slowest ones.
Rails of course :)

I haven't done a thorough or systematic comparison, but I'd expect slightly slimmer but similar results with Sinatra apps given the 80MB figures you quote above, the rails processes were around 120MB on average, Go 6-10MB and scales without extra processes. Obviously the smaller the framework you load for each process, the less memory you're going to use, but there are also architectural differences in the languages which seem to add up to significant memory usage in the case of Ruby.

Because to scale ruby you'll typically add more processes, and to scale go you'll just let it start another thread (the http server does this for you), that difference adds up to a significant difference when you have a lot of traffic.

That's not to say that Ruby is impossible to scale and I love Ruby the language, but it is a bit slower and a bit more memory intensive than Go.
Trello was what convinced me he'd really got it. It's got like 1% the features of Jira - and is 10x more useful because of it.
InPlayer – Monetize Online Video
I’m Dan, the backend software developer at Lexiful.

Companies that rely heavily on translation need to build their own platform and software to manage content, provide it to translators, and get it delivered back or be automatically integrated as new content, handle accounting, and also there is lots of manual work in finding professional translators and human communication.

We’ve built a translation platform that saves our customers time and effort, allowing them to translate more content, in top quality, with the same budget. We’re transforming translation, from a burden to a major competitive advantage.

Our solution provides customers access to:
* High-quality translations from certified professionals.
* A platform that can handle any project size.
* Time savings by smoothly integrating translation with your business workflow, through our API.
* Prices as low as half the rates of a translation agency.

We’re a couple of weeks before launching and we’re looking for partners. For our launch partners, we are open to feature requests and can provide full attention and technical support. Furthermore, as an appreciation for our launch partners’ time we offer a further discount on our already competitive pricing for their first projects.

If you are interested, I along with Mark, the founder of Lexiful, would be glad to answer your questions. If you would like to do business together or know somebody who might need our services, send us an email to info@lexiful.com.

Feedback is more than welcome!
What the Hack 2.0: True Hackathon for True Geeks
is there any software out there that does this, or did you write it yourself?
I'm talking about absolute terms and you're replying with relative terms. I didn't say that SSH isn't more secure than telnet, I said that you can't be secure against an active MITM unless you verify the keys. That's a fact, I'm not sure how one can argue against it.

Sure, TOFU is better than nothing, and might even be very good, but there's still a way for an active adversary to MITM you.
It might seem as if he really paid other people to find it.
Docker itself already provides a very long and thorough newsletter. How does this differ?
You are misparsing. He's effectively saying: imagine you are testing this code, and x == NULL but "bar() is invoked". Is the compiler buggy?
I would say the main PITA with SOAP is the fact that all the methods exposed by a service are on the same http endpoint. So without capturing headers you don't even know what operations are being called. Take Apache logs for example - all you'll see is a load of POST calls to /MySOAPServiceEndpoint. Whereas with a nicely designed REST service, you can at least see the gist of what is happening without additional logging.

And take testing - you need to pull out the heavy artillery (SOAP UI is very good) to test a SOAP service. Whereas REST can be done quite easily (even more so if it's GET), from a browser or a simple python script.

Not huge issues, and if you're working on a big project it won't make a big difference. But still a PITA, in my opinion
That sounds interesting, but I'm suspicious. Do you have any examples of such macros and maybe some statistics or ideas how often they are actually seen in the wild?
Did you try sidekiq?

Btw how are you generating the PDF from HTML and are able split a single HTML into multiple PDFs?
Regarding the first answer: What is called a "tentative definition" is of course a "declaration".
Copy says >15Mb at the moment.

Funky way to denote minimum - reminds me of the "Recommended" specs on a videogame.

That rules out me, but it's a nice reminder of how much of an obstacle to innovation lack of broadband can be.
They are in linters, and many of them will be thrown up as warnings by the compiler in the first place.
Call for Papers for Meeting C++ 2015
Your comment is gray. Pot kettle black!
Hot in Helsinki
Easy it's not, but since you trust the debian keys already, you could import keys from the debian-keyring - I'm sure there's a path from those to the putty maintainers'. Here's a somewhat detailed description I just found, for how to do such a thing https://tails.boum.org/doc/get/trusting_tails_signing_key/in...
I like this, but I have the same concerns as mintplant. How large files can I upload? How many websites? Also, where do I point my DNS to?
If you're looking for a self-provisioned alternative, I believe this does essentially the same thing: https://github.com/EagerIO/Stout
Blackberry at it again, unveils Leap with no physical keyboard at MWC
This takes a page from Metro's (now Modern UI) truncating semantics: if it's truncated, it means there is a continuation and you can scroll it.
A million times yes, if only for the dependency management side. Can you remember the dark ages of having to download libraries from the internet and check them into your source? Arghhhhh
The DNS part is explained here: https://surge.sh/help/adding-a-custom-domain
The twitchers are right. Whoever wrote that line of code is a smartass who is deliberately obfuscating stuff. Don't work with these people!
It's a bit less "awesome" than most people think.

The point is, now that we've taken something that was originally intended for viewing documents over the network and turned it haphazardly into something we realized that we actually wanted (running applications portably and with frictionless installation), we'd better design something from scratch that does what we want without all the unbearable cruft that comes with browsers, HTML and HTTP.
> 5 is also missing a check for a NULL pointer. ;)

Not necessarily. It could be up to the caller to ensure that the pointer isn't NULL.
lwjgl is so plain it's no more than a wrapper around OpenGL context.

If you want slightly more than than(but still not a proper engine), I would wholeheartedly recommend libgdx:
http://libgdx.badlogicgames.com/features.html
Ask HN: What's your coding setup like?
I'm trying to improve my coding setup - both in terms of productivity and comfort.

What I currently have is a high-end macbook, which I use both in the office and at home, and very occasionally in bars or eateries. This has worked for me for years, but I'm starting to notice wrist pains and eye strain that weren't there before.

I've read conflicting accounts of using exotic external keyboards (such as typematrix or das keyboard), large external displays, curved or not, with high contrast or high dpi or both... no one quite seems to agree what the best (affordable) setup is.

What setup do you use, what have you tried and discarded, and why?
SEUCK was £19.95 in 1988[1] and the price had crashed to just £5.99 by 1992[2]. Even accounting for inflation, that must have been less than £50 / $75 in today's money.

SEUCK was awesome - I wonder whatever happened to Shaun Pearson, the guy who made all those SEUCK games for the Zzap!64 Megatape. I think Outtake Two convinced me to buy my copy of SEUCK.

[1] http://amr.abime.net/review_37278

[2] http://amr.abime.net/review_49823
Why is surge.sh hosted on a DigitalOcean instance instead of your 'production-quality CDN'?
It would not have solved the deployment issue. It is very nice to only have to deal with dependencies once, when building (when using go). In java, you have to deal with both build time and run time dependencies. It's really nice not having to lug around and package up a jvm, jars, ...

Each java based microservice requires its own packaging of jvm, jars, etc. Without this it is not easy to replace individual microservices, as the cross dependencies between the microservices will take away a big advantage of going that route.

Go provides this level of deployment separation for free by default.
For those interested, here's a very nice presentation on kGraft by Jiri Slaby (Suse):
https://kernel-recipes.org/fr/2014/patcher-le-noyau-en-temps...

Note: the page is in French, but both the presentation and the slides are in English.
Wondering if the stainless steel case might not affect the Bluetooth radio performance…
Already posted here: https://news.ycombinator.com/item?id=9142758
You can keep your A+ and add IE8 on XP, plus boost your key exchange to 100%[0], by following Mozilla's TLS docs[1] and sticking with the default Intermediate ciphersuite.

You might also consider disabling server tokens to hide your Nginx version (server_tokens off;) for a bit of 'security through obscurity' and enabling SPDY (listen 443 ssl spdy;) for a performance boost.

Also worth pointing out is the upcoming Let's Encrypt project[2] which will make domain validated certificates free soon.

[0]https://www.ssllabs.com/ssltest/analyze.html?d=brossmanit.co...
[1]https://wiki.mozilla.org/Security/Server_Side_TLS
[2]https://letsencrypt.org/
These are the ones pulling down the grade:
- This server is vulnerable to the POODLE attack. If possible, disable SSL 3 to mitigate. Grade capped to C. MORE INFO »
- This server supports anonymous (insecure) suites (see below for details). Grade set to F.
- The server supports only older protocols, but not the current best TLS 1.2. Grade capped to B.
- This server accepts the RC4 cipher, which is weak. Grade capped to B. MORE INFO »

The server was installed quite some time ago on Digital Ocean, it could be that I just need the most recent default Nginx configs. I'll test. Btw, I have a startssl cert, should have choosen the www subdomain though, not "mail".
I'll do an apt-get purge nginx before reinstalling and than manually add back the old settings.
The "idiot" part of course is wrong. But if you understand a technology and then use it for something it is explicitly bad at, than it's objectively a bad idea. The chance is very low that you would not be able to solve a binary sharing/backup problem with another tool that's made for these tasks.
Of course it's not necessary to change language, but one nice thing about microservices is they don't have to be the same language.

You might see significant advantages moving to ruby microservices if you have high traffic and a complex monolithic app which would benefit from being split up. They are not a panacea of course as they introduce significant complexity, whatever language they are implemented in - it's a matter of trade-offs and once your monolith reaches a certain size it might be worth splitting it up.

Re libraries, most of the ones you mention have analogues in go or are pretty simple to replace, save AWS, which is apparently coming soon:

AWS - https://aws.amazon.com/blogs/aws/coming-soon-aws-sdk-for-go/

Sidekiq - go myFunc()

Devise - bcrypt.CompareHashAndPassword + the mailer functions

Deployment - Rsync or Ansible - this is simpler in go as all you require are your executable + templates
I usually have at least a dozen separate projects going at any time, and many of them have run for years.

I couldn't imagine being able to clean up stuff like that.
Nvidia  SHIELD- Get Rich Gaming Experience
In my only ever job interview in the US, I was told beforehand to dress casually for my visit to their office. I'd expect that kind of preparation to be routine for professional HR people.

The attitude displayed by startups seems indicative of their arrogance and overconfidence after being given money for their "great" ideas...
Smartphones: Planet of the phones
Plus with Ruby we have to run multiple processes so whatever memory single process consume times # of workers.

I don't use the Ruby stack, but if forking happens after loading libraries, this is not true, since most UNIXes (such as Linux) use COW memory pages when forking. So, it may appear that you use N times the memory of a single process, but most of their memory pages are shared.

See fork(2).
Seems like a smart move. Prevents people from shooting themselves in the foot.
Then say Rails. Rails doesn't care about memory. There are frameworks of similar targets like Rails that tend to use less (e.g. Padrino) and care. We did have an effort pushing down unnecessary memory use of the base profile and we gained in slabs.

Also, you can move to JRuby if you want a one-process/threaded model, which will get memory-conservative very quick. A JRuby thread will quickly get you into the ranges that you quote for go + the base cost of the JVM.
seems to be the space that is not allowed
The CryENGINE also had the FreeSDK until very recently.
http://www.cryengine.com/community/downloads.php?view=detail...
For an authenticated user, yes, as you have somewhere to hang a known-by-the-server-but-unknown-elsewhere key from.

For a public interface you don't necessarily have that.
Though once you are dealing with a service that can be modified by unauthenticated users you have larger problems from malicious interactive users than from accidents by scrapers, so I'm probably arguing an irrelevant point...
Also neither here nor there, but engineers are expensive and gigabytes are cheap. There exist many circumstances in which the architecture which requires 12 GB of RAM is a defensible engineering tradeoff versus the one which takes 5 MB.

This is a vital point — everybody wants to shoot for lovely, elegant systems that use minimal resources. But resources are astoundingly cheap; we've got a bunch of servers with 128GB of RAM, and you can get these for around £100 a month each. That's less than two hours of developer time. If using Ruby in place of another language saves you that much time—or even just makes you a little happier—it's probably worth it.
Yeah, everyone wants to process their queue as fast as possible but "as fast as possible" practically means a cap on the maximum allowed delay. Otherwise, why stop at 30 workers? Go for 300. 3000?

Also, if the workers shared all the code, you could have used unicorn to fork the processes after the code loading was complete. The 400MB per process would then instantly come down to something ~10MB per process at which point rewriting would have been delayed for another year or so.
That's a really good reason: When you are unable to learn it correctly (maybe simply because it's too complicated). With the simple tool you are still not able to do all the cool stuff, but at least you can get something simple done fast.
Yes, but garbage-collected languages with embedded markers (which Ruby used for a long time) are not at all COW-friendly (because GC runs touch the pages).

Only in recent Ruby versions is that not a problem (and was changed for exactly that reason).

But yes, your memory report might be read wrong.
I'd say "ironic". The author writes as a loser would.
Not just a problem with developing countries. I have 100 Mb at home so that's not a problem, but the main use case I see for this for me is to able to use it while traveling. Even in countries with a great high speed internet in general, getting great high speed internet in a hotel room or conference center is almost impossible.
Ode to Hubble Competition
> Sure you could have a standard like i386.

We're not talking about standardizing hardware (the ISA), but the API: Vulkan. It really doesn't matter in which form your hardware processing unit comes, as long as its driver accepts SPIR-V and can execute it on said processing unit.
It will probably need GPU's to at least slowly into ray/path tracing engines, like what Imagination is doing. I think we'll probably get there within 10 years. 100+ TeraFlops should do it.