skysight-inc/HackerNews huggingface dataset:
Well, no, they're more than a "ball on a chain" - they're a tradeoff - like everything in software.

They give you the ability to manipulate the query in interesting ways at any point before you execute it. They let you join different queries together, built by different parts of the system, in a safe way. They let you work with the native language you're working in instead of having to construct clauses in a foreign language, using strings. They let you post optimise your loading strategies.

You might want "exactly like that", but it's not going to be as flexible as a chainable wrapper system.

Hell, I could probably give you pretty close to that in python with a little work, but it's not something I'd want to use myself.

I get it. I like working in SQL too. I know it really really well, and I cringe when I see developers writing totally sub-optimal code because they don't understand the relational data model.

But there are other ways to do things, and what you're describing doesn't give you much more than raw SQL, so why not just use raw SQL? You've added some syntactic sugar that, in my language (Python), would be a bit of a horror show (strings access local variables implicitly, no thanks). What else do you gain?

This is more verbose, granted:

q = session.query(Products)
if title:
q = q.filter(Products.title.like(title))
if price_range:
q = q.filter(Products.price.lte(price_range))
if offset:
q = q.offset(offset)
if limit:
q = q.limit(limit)
products = q.all()

But then you get more stuff for free, like drilling down into the other tables:

p = products[0]
p.supplier.contracts[0]

But that's rubbish, because you'll be loading in a really inefficient way. That's ok though, tell the system how you're going to want to load the additional data.

q = q.options(
joinedload('supplier').
subqueryload('contracts')
)

See what I got with my "ball and chain"? Turns out it was actually the anchor for the whole boat. Sure, you have to learn a new syntax, sure, it's not sql, but that doesn't make it bad or wrong.

Use whatever makes sense for your use-case. Don't limit yourself because you'd have to learn something new. Honestly, before using SQLAlchemy I mostly felt the same as you do. Many ORMs get in the way, but that's not really a problem intrinsic to ORMs.
For once, the comments are also worth your time - this is about as good a collection of pain points as you'll find.
I also use emacs(evil-mode actually). An ide is not much different then a fully configured vim or emacs.

sql-mode for some databases(mysql and oracle iirc) reads the DDL of the tables you are typing about, why is this not better and more general?

Sql is so well established and general as a solution that not learning it is a poor choice.
FYI, you can also write it this way, although you may find it less readable, it emits the exactly same query to the DB, and I personally find it much more pleasing;

IEnumerable<int> Search(...) {
return result
.Where(i => !f.EvensOnly || i % 2 == 0)
.Where(i => !f.Minimum.HasValue || i >= f.Minimum)
.Where(i => !f.Maximum.HasValue || i <= f.Maximum)
.Skip(currentPage * pageSize).Take(pageSize);
}

Nit: EvensOnly should not be nullable since it has only two states.
In some ways it does, but also remember it's a MUCH less rich query language. It's a lot easier to make a simple api mapping when you don't have such exotic things as "joins".
lets talk practical concerns. this company is based in Philadelphia, where real estate is still relatively affordable. If your company is based in New York or San Francisco you simply cannot afford an office like the one described in this article.
Feeding Billions by Empowering Millions to Farm – Food + Tech Connect
Show HN: Playola – Simple video editor, like video to GIF with sound
Yeah, I get that a lot if I just wiggle left and right by a few pixels.
Before (Mongo): 1 primary, 2 secondaries, 2 arbiters
Now (Postgres): 1 primary

Most of our applications require write access in some shape or form, so at least the default replication of Amazon RDS doesn't cut it. Besides that we don't really need it so far, don't see the need for it in the coming months either.
it's hard to believe we have 170 degree vision (seeing as we look straight ahead). so I tried it. I stood up, with my arms stretched out and back slightly (i.e. open 200 degrees) looking at a point straight ahead. I wiggled my fingers but couldn't see them. Keeping my arms outstretched, I then continued looking ahead at the point and wiggling my right hand and moving my right arm forward slowly (without bending my elbow) until I noticed the wiggling. Then still looking at the same point ahead I repeated with my left arm, again without bending my left elbow. After both were in my peripheral vision I checked to see where my arms were.

Sure enough, my arms were nearly stretched out 180 degrees! They were only forward ever so slightly off of straight horizontal.

It's insane that we have that kind of peripheral vision. Try it!
Would love any of your feedback, thanks!
Yes, the seven years I worked from home every day were without question the most productive of my life so far.

It was interesting to see how different coworkers liked to communicate. Some people strongly preferred phone calls, while I strongly preferred IM - I can carry on a conversation or two via text without fully dropping out of my flow, while engaging speech/hearing seems to require a full context transition.
(P.S. For the unfamiliar, that mutates `defaults` -- you might want

Object.assign({}, defaults, options)

instead if `defaults` is an object shared across invocations of your function.)
> JVM GCs I think have too many requirements and expectations on them from historic and wide spread usage. It doesn't help that in Java controlling allocation is difficult, its generally a memory hog model, the runtime is huge etc.

Well, although these things are somewhat true obviously Java didn't start out that way. It started out looking more like Go. The JVM got this way because it is so heavily used for so many things. To paraphrase jwz, the JVM is big because your needs are big.

Go doesn't seem to have dramatically different goals to Java. They're both GCd languages with a standard library, memory safe code etc. The logical conclusion is that if Go became as widely used for as long as Java, it'd end up looking quite similar. The Go runtime is already walking the same path as the JVM guys did, albeit with ahead of time instead of just in time compilation.

> Its hard to tune JVM GCs for 10ms pause (its doable by the experts for good code)

That statement lacks too much context to mean anything. Most JVM GC pauses are young gen only and those take virtually no time at all, 10ms would be very high for such a collection. Other pauses can be just a few milliseconds as long as you don't actually run out of memory (this will force a full stop the world collection), but it tends to depend on how much free RAM you have and the sizes of the heaps, etc.

State of the art collectors like Azul's and Shenandoah aim to collect heaps that are hundreds of gigabytes with pause times in the few milliseconds or less range.

I don't know why Go would be more allocation friendly than Java, but I'm not a Go expert. What features are you thinking of?
Am I the only one thinking of BadBIOS right now?
It doesn't solve the problem, as there can be tabs in the data just like there can be commas. Tabs may be less common but it's still fundamentally the same.
I was thinking more stream fusion and rewrite rules etc. GHC is a lot more powerful in that sense than the other language compilers I mentioned. A lot of it in Haskell just boils down to bang patterns on data types. And where it does get messy as you suggest (yeah it does), you can nicely abstract it away behind a pure library interface. That way the mess is encapsulated.
Does this support a one to many configuration? Will we have USB-C to HDMI/ETHERNET dongles that work at the same time?
Checks being made doesn't mean the clients are checking. What's the point of validating the communication between the servers if the last mile is unprotected?
I disagree -- there's no question mark at the end of the title, nor any credulity-challening with "You won't believe what happened next!" I think this is just a well-written headline.

Or, to think of it another way: It's only clickbait if the headline is more interesting then the actual article. For this article, that's not the case at all.
I don't get this. If any relational database choked with that small number of rows, it would be thrown away immediately. That's a couple of orders of magnitude too slow.
Hi, I've taken over from Tom for hiring at Matasano. There's a couple of things that you need for "diverse" recruiting (e.g. hiring women in tech):
1) A way of evaluating candidates that avoids mirrortocracy style institutional -isms like sexism and ageism.
2) A way of convincing people who have bounced off the field due to -isms to even try.

BTW, Tom was great at Matasano on #1, and only moderately successful at #2. We get tons of people who aren't in the industry, but they tend to self-select to be young men. For an individual company, #2 is way harder. It's "easy" to fix yourself, but hard to fight the larger culture.

Starfighter looks to me like something that supports #1 directly (by allowing objective metrics), and enables #2. It's a way for people who aren't welcome into a field to dip their toe in without some roomful of young white men asking them illegal questions about their child-rearing plans. On the other hand, there's still tremendous pressure pushing people away, and it's a deep problem. Still, part of the puzzle and I (personally) highly endorse.

As to the numbers, I've been meaning to dig into the data, but Matasano's hiring as fast as we need to, so it's been hard to motivate myself to do so. Maybe once graduation season ends...
Speaking personally: Yes. Most people are used to calendars in such a way as the one on their desk is laid out. Changing that would please a minority of people and disorient everyone else.

I kind of like the compromise that's taken. Show a few days into the next month as necessary to complete the week, but grey those days out and jump into the next month if clicked.
Facebook's 'Zee Town': Just a Mark Zuckerberg Vanity Project?
Most combination Schuko/French plugs I've seen recently are even designed in such way that when all wires are same length then the PE one has larger slack inside the plug.
Damn Bugs is a free hosted bug tracker. Its clean interface does not contain too many features, leaving just enough space for the ones that you need to manage your testing process efficiently! With team member invitations, task assignation, a comments system and even bug reporting templates, Damn Bugs is the most user-friendly bug tracker out there! We help people discover how simple software testing can be.
it is because chrome slows main thread js execution for inactive tabs. The solution is to do your scheduling (setInterval etc) in a web worker.
After 7 years as CFO, I'm retiring from Google to spend more time with my family
I'm all for preserving endangered species and all, but frankly these insects scare the hell out of me and if I was anywhere close to one of them I may run away, screaming like a little girl.

I believe I'm not very exceptional a person thus I suspect they'll have difficulties convincing people to have this species reintroduced on any inhabited island.
You need to spend some time counseling yourself...

1. Go to a coffee shop or somewhere fun and start a list asking yourself "what do I REALLY want to achieve in my life?" (financial freedom, promotion within a company, launch a startup, run a marathon, etc.)

2. Wake up each day and start working toward achieving your goals.

3. If you're still not happy, then you need to re-evaluate your personal goals.

4. If you don't feel like you're making progress toward your goals, then maybe you're not taking enough risk.

If you feel stuck in your current position, then start networking with other groups inside the company and express your desire to grow your career. Many companies allow you to transition between groups.
> Speaking as someone who writes go code every day right now, I like the language for a number of reasons, including the fact that it can be compiled and deployed without anything like the sort of build/deploy insanity that a modern java installation comes with.

Once properly set up, deploying Java is usually a one click affair, not sure what insanity you are talking about.

Also, Go is compiled natively which certainly complicates the deployment mode (and expect more complications down the line once Go supports dynamic loading).

Either way, Go's deployment model doesn't have much to do with the language and it will become more complex if the language becomes more popular.
I really hope everyone doesn't feel like they have to be a "contender". It's not a competition to get our attention. It's much simpler: we have a basket of skills and concepts we want to let people play with. For people who engage with that stuff and find they really enjoy it and latch onto it, we happen to believe we'd have good ideas on how to match those people with jobs. That's it!

This "best of the best" stuff was meant to be empowering, but in a lot of ways it didn't come off that way.

I described our goals a little clearer here:

http://www.reddit.com/r/programming/comments/2yhcqn/were_not...
Pardon my ignorance, but could you talk a little more about what you meant here? What non-traditional/advanced threading models are you referring to? Any reading material links would be much appreciated! Thanks!
Better generation of numbers without repetition
Ok that's extreme. But Senators sit on subcommittees on war, medicine, poverty, criminal justice and on and on. And they aren't any of those things either (well not most of them).
Object.assign (or equivalent with libraires like jQuery or Underscore or what have you) is very much modern code. Hell, Object.assign is ES6.
> I'm really worried about becoming the society that ostracized my past self.

To some extent it would be weird if that didn't happen. So, maybe that means you have a chance?
G1 is the most advanced and is where the main development seems to be happening (ignoring Shenandaoh which is a Red Hat project to create an Azul style virtually-pauseless megascale GC).

For example the G1 garbage collector can deduplicate strings in the heap. This can be a big win for servers and IDEs.

In the latest update I read that G1 is also able to adapt itself to memory pressure in the entire operating system. If you start an app next to the JVM and the OS available memory drops, it'll start to use more CPU time for collection and shrink the heap so it can hand RAM back to the OS and reduce pressure again.

G1 can do lots of other nifty things, but it uses more RAM than ParCMS so it's not the default at the moment. You have to opt into it. I think they want to make it the default one day.
I wonder if "SoundScript" will support optional properties. TypeScript also considers accessing missing properties a compile-time error, and I haven't noticed many problems with that as you can define some properties as optional.
The life of Janet Vaughan, who changed our relationship with blood
Because committees are handed out on seniority especially the ones with lots of pork and not by the executive (which has its own problems)

do tech journalist have no idea how politics works
'screaming like a small child" perhaps is better.
This actually answers the question, although I would imagine the ORDER BY handling will look pretty messy (CASE statement perhaps?).

And I don't know what it would look like if the requirements changed to allow ordering by multiple columns with different possible sort directions... that might get back into dynamic SQL using a RETURN QUERY EXECUTE type of thing, which is basically using a query builder in your query language.
I don't think would have helped me. When I got it - the phone worked perfectly. It wasn't until months later when the guy stopped paying the monthly fee and T-Mobile blacklisted the IMEI number.
You can use TypeScript with the ES6 output mode and then transpile that to ES5. In fact, that's what I do.
Depression is a word that gets thrown around quite casually.

If you think you are clinically depressed, seek the advice of a professional as it only gets worse. The usual things apply here: make sure you sleep well (not too little or too much), eat relatively healthy, and exercise plenty). Spend time with friends.

If you're "just" going through a rough patch and are unsatisfied with work, then rest assured this is just part of being a professional. Some days I hate my job, other days I feel like the most fortunate person in the world. The professional part is that I show up regardless of how I am feeling and always deliver the best work I can.

If you find yourself having more bad days than good days, then maybe it's time for a change. Start with an easy change- maybe ask to be put on a different project (ask in a tactful way) or team. Then if it still doesn't get better after a meaningful amount of time (6 months?) then you probably need a bigger change of scenery and should hunt for a new job.
SIRUM (YC W15) Matches Unused Medicine with Low-Income Patients
Or a brewery!
Most people who run into performance issues on Mongo are putting a lot of data into it. I've personally never had problems with it for side projects, but my tolerance for failure and data loss in those scenarios are quite a bit different than what most people expect out of production systems. It's definitely possible to use Mongo in production successfully, you just have to be aware of the tradeoffs and plan accordingly.
EXERCISE.

Study something with the goal of mastering it.

Get involved in a non-profit that does something you think makes the world a better place.

Teach your kids to grow up and live their life knowing that "the normal way" (go to school for 20 years, then sit in office majority of week days until you die) to live life isnt the only way to live life.
What kind of insanity? Are you talking about desktop or server apps?

Whichever you mean, you can create apps that have self contained JREs with the javapackager tool. But most server setups don't seem to need it. If you have a broken IT environment where your admins refuse to upgrade the JVM, that can be an issue, but then you might find yourself being told to stick with an obsolete version of Go in future too in such an environment.
Read about Dropbox's crazy code review policies a few articles down... Your job will feel awesome by comparison.
I think it's just a matter of choosing the biggest market and going after that. I think it helps that they already make apps for iphone. It's also a question of support. Do you make your app square or rounded? With android, you would have to support both, or perhaps one and have people complaining. With Apple, you support square and you know everyone has a square screen. In any case, I wish them the best of luck. I myself have a Moto 360 and it does everything I would want it to do, and it looks nice on my wrist.
> DNSSEC is a terrible, terrible idea.

DNSSEC is a terrible, terrible implementation. All of your criticisms are valid but none of them are inherent to the idea of authenticating DNS resolution.

That basically means we need to start over from scratch, which is unfortunate, but now tell me if we did we couldn't address your complaints:

1) It isn't necessary. Sure, we can work around the lack of DNS authentication, but then we end up with the horrible CA system. Can we really not do any better than that?

2) It's centralized and government-controlled. So don't sign the root. Instead of hard-coding the root key in the resolvers, hard-code the keys for each TLD. Being able to pick which government can forge your signatures is the best you're going to be able to do; the authority doing the signing is going to exist in somebody's jurisdiction.

3) DNSSEC's cryptography is weak. So use different cryptography. Elliptic curve keys and signatures are an order of magnitude smaller than RSA anyway, which also reduces the DNS DoS amplification potential by that amount.

4) Resolver APIs don't provide good information about why resolution failed. So provide a new API that provides better errors. Put it right in the new RFC. Then you only get validation if you use the new API and nothing changes for existing applications.

5) Deployment is expensive. Why isn't deployment automatic? The default configuration for a DNS server should be to generate a signing key for each domain on first run and then automatically sign all the records with it. If you're paranoid and you want to keep your signing keys offline then you can configure that manually, but nobody has to. And the higher level domain should be able to get the signing key from the lower level domain as soon as you add the NS record, and then confirm with the administrator that it's the right key the same way as with ssh host keys.

6) DNSSEC isn't validated by the endpoints. As far as I can tell there is no actual reason for this even with existing DNSSEC. The client can ask its DNS cache for each of the signing keys up to the root and then check the signatures. A new pseudo-RR that would return the entire chain would make this more convenient, and couldn't really be used for DoS because only recursive resolvers and not authoritative servers would answer that query. Validating clients without validating caches could still fall back to asking for each individual record.

7) Authoritative denials leak information. NSEC5 is supposed to fix this, but there is a much easier way: Sign a denial key which can itself only be used to sign denials and keep it on the authoritative server. The idea that someone who compromises your authoritative servers will be able to deny service to your DNS clients is already sort of implied.

The problem is, even though you could theoretically do all of those things to DNSSEC itself, those aren't even the only problems, and trying to patch all the warts in something nobody is even really using is only going to make something which is already unnecessarily complicated even worse. What is needed very much is a clean slate.

But that doesn't mean it isn't worth doing.
If the phone arrived with a blocked IMEI number - I would agree with you and gotten my money back. However, several months had passed before the IMEI number was blacklisted.
For anyone who is confused, compto35 is referencing this chilling monologue from the James Bond film "Skyfall"

https://www.youtube.com/watch?v=C0dFsAtAlEo
The fuck? We're programmers. We have the easiest lives of the working class. I'm literally sitting here in my underwear, unshaven, drinking a beer, making stupid money for coding objectively pointless crap much like 99% of us. It's absurd. Lighten up.
I was in the same kind of situation as you 5 years ago. Decided to resign, sell my apartment, and move back to my country of origin, with a wife and kids, and no prospects of work. Just a leap in the dark. Went through a rough patch, eventually found enough remote work to make a living, with plenty of time to spare for the family. What can I say? Follow your heart.
> - DTrace (although not mature enough IMHO)

Can you be more specific about that comment?
"When GHC reaches a call to one of these primops, it automatically replaces it with the real implementation for you, which will be some assembly code, LLVM code, or something similar."

This, plus the "magic hashes" reminds me a great deal of Urbit's hinting syntax for jet propulsion (associating a body of high-level code in Hoon with an alternative (presumably low-level) implementation).