Hacker Newsnew | past | comments | ask | show | jobs | submit | pwnstigator's commentslogin

The 8-sided paper snowflake exists because it's easy to fold a square piece of paper into eighths (i.e. three times, one diagonal) and cut it. It's so kids can make snowflakes. The correct six is much harder.

I agree with the heart analogy.


This seems oddly relevant:

http://img39.yfrog.com/img39/6247/h807.png

On a more serious note, there are a lot of difficult problems in onlne dating that someone could make a lot of money by solving. The lack of attractive pictures is not one of them.


Online dating has two problems.

1. Limited corpus. This is usually the result of sites going after very specific verticals (i.e. race, religious, <some-other-facet> specific).

2. Terrible search. Granted, determining compatibility isn't easy, but you typically can at best search on dimensions to limit gender, sexual orientation, proximity and age. After that... then what? If you're using a site with a large corpus (Match, PoF, etc.) you end up subconsciously surrendering your standards and resort to "clicking on the hot ones".

I would liken search on dating sites to be similar to web searches before Google. Actually, before AltaVista. It really is that bad.

If compatibility could be determined quickly and reasonably accurately, on a large number of dimensions, one company could crush every other dating site like an ant. Especially if that score is used all over... for instance, your mail could be sorted by potential compatibility - so you don't waste your time looking at messages from individuals that aren't remotely relevant.

The problem is that sort of quantitative analysis is very computationally expensive in a high-dimensional space, especially for a large corpus (say, 5 to 10 million users).


I actually think OkCupid does a decent job on most metrics. Their matching algorithm is simplistic, but adaptable and dynamic. It's globally available with almost every interaction with other people on the site and the extensive profile information usually results in decent keyword search. Frustratingly they don't allow you to search by specific personality traits they detect, but sorting by match score actually tends to yield more relevant results than sorting by other fields.

I would agree that most dating sites suck, but surprisingly it turns out one of the free ones is pretty decent. (Being free helps deal with the limited corpus issue nicely as well.)

I think they solves the high-dimensional space issues by lazily evaluating match scores and caching. I have no idea what they're doing on the backend, but I'd guess they don't actually calculate scores for all n^2 matches everytime someone answers new questions.

The computer science behind the site is frankly fascinating. While the site itself doesn't take itself seriously, they seem to take the algorithms driving it very seriously.

The bottom line is it's worked for me. I'm not someone who can't talk to people in person, I'm just someone who's busy and found it more efficient to meet people online. For me what exists now is actually workable, not limiting and efficient.

I'm sure it could be improved, but the two problems you cite haven't been that problematic in my experience.


One could argue that online dating is a natural monopoly. It’s a waste of effort for a person to subscribe to five different dating services and enter the same demographic and contact information into multiple databases, just as it would be inefficient for someone to have wires leading into their house from five different electric companies. Perhaps a more enlightened government would arrange for the database of matchmaking information to be run as a state agency or a closely regulated public utility.


Agree fully with point #2. Have you used OkCupid? I think it's better than most in that regard, but the people on the site tend to be a bit full of themselves. Also, compatibility has a lot more to do with what people do than with what they say, which is why surveys and "shared values" questionnaires fall flat.


>Have you used OkCupid? Yes. I'd consider it more of a machine-gun approach than a sawed-off shotgun. Potentially more accurate, but by and large you're still using more ammo than should be necessary.

>which is why surveys and "shared values" questionnaires fall flat Bingo.

Surveys actually provide a way of gaming the scoring system as well, since you can make a reasonable assumption of what your ideal partner would want you to say.

That's the biggest flaw with dating sites, is that you can only trust so much user input - everything needs to be taken in context. Even simple things such as "interests" should be evaluated in their own context, because you can't rely on exact matches or even fuzzy matches - you have to infer what else their might be interested in. Granted, you also get the problem where you don't get enough user input, therefore being able to infer other information becomes ridiculously valuable.

I agree that you can't perform N^2 searches in real-time. A lazy match is fine until a more accurate index is generated. However we still lack a reasonably accurate index. We also have to do all the searching ourselves, instead of the system working harder to provide far greater relevancy than it does now. I think the best analogue is Netflix - I want recommendations based on my interests and behavior. Again, the issue is dating has far more dimensions than movie recommendations.


Too lazy to clean, as I don't have a dishwasher.

Cooking seems fun. I'd like to learn it, and will once I live (a) within walking (or driving, outside of NYC) distance of a grocery store and (b) in an apartment with a dishwasher. Unfortunately, these are not to be taken for granted in NYC. Half the buildings don't even have laundry (I'm not joking).


Is washing dishes by hand really that hard?


It certainly is when you’re washing for more than one other person (e.g., children or guests).


(Disclaimer: Read this when it came out, haven't re-RTFA.)

Sad, but accurate. On one hand, some humanities academics are directly responsible for this; the attitude of many academicians that research was the "real work" and teaching was just commoditized grunt work ended up hosing the humanities. Physicists can afford to cop that attitude, because if they're great researchers the university will put up with poor/no teaching, but those in the humanities can't, because the transfer of culture to rising generations (e.g. education) is the raison d'etre of humanities departments.

On the other hand, the corporatization of the university and research world in general has been an unmitigated disaster, and it'd be better for all of us if the trend reversed.


It's not a matter of the general attitude of academics, it's criterion imposed by the institution - as the article says, it's an incredibly competitive world. Humanities must work extremely hard to achieve the requirement for tenure. A lot of them know quite well that teaching gets slighted in this process but simply don't have the time to do everything.

If by "some humanities academics", you mean the deans and heads of departments, you might be right but otherwise you're blaming the soldiers for the large-scale situation.


We've lost belief in all the principles that underlay the humanities, and thus we're succumbing to corporations. Plato's guardians were made to live like commoners precisely so they wouldn't subvert their skills to making a quick buck.


I think that idea that men use wealth to attract mates is pretty damn obvious, but I never really considered that women use displays of altruism to attract males.

It makes sense. The contest for status (i.e.. access to women) among men makes men a lot more mean-spirited and despicable than they would like to be, so a woman who is, or seems to be, "above the fray" is very attractive.

This explains the appeal of the female healer, the angel in the house, etc.


Study 4 showed that women rated a man driving a Porsche Boxster as more attractive for a short-term sexual relationship than a man driving a Honda Civic.

The fact that women are even capable of conceiving of short-term sexual relationships is a sign that our society is impotent and dying.


This was voted down why, exactly?

Everyone knows I'm right. A society that fails to impel people to better themselves is next to useless.


> This was voted down why, exactly?

It might be from the combination of proof-by-assertion and people disagree with you. Take your first comment:

"The fact that women are even capable of conceiving of short-term sexual relationships is a sign that our society is impotent and dying."

See, I'm not sure that's quite right, but I'm always open to being convinced. If you cited, for instance, the fall of Rome when making your point, or GDP per capita growth in traditional/modern societies, or population growth rates, well you might make a point. Instead you're just asserting that you're right.

> Everyone knows I'm right.

Like that. That doesn't work so well. Data, evidence, argument, counterargument. You've actually got some good arguments on your side - replacement rate in population growth, birthrates of the Islamic world vs. the rest of the world, and so on. I just got a copy of The History of the Decline and Fall of the Roman Empire, and I think Gibbons points to changes in Roman family life as one of the big causes. So, you could probably make a really interesting and nuanced argument that challenged our beliefs and made us think more.

Now, it goes against a lot of people here's base views, so it would likely receive mixed feedback, but it would definitely get some positive points and discussion going. Heck, I'd be up for reading and discussing with you if you made those arguments because I'm not sold either way on what's going to happen to modern society 100 years out - it's a fascinating and interesting topic. I think data, citations, research, books, and a more flushed out argument and you could really make some interesting points and get some good discussion going.


Cross-cultural study shows us that monogamy is required for a stable, future-oriented, low-violence society. No non-monogamous society has managed to achieve a fraction of what predominantly monogamous ones have, and civilizations become more monogamous (by necessity) as they develop.

The danger of accepting and encouraging casual sexuality is that it inexorably leads to strong-man polygamy and the subjugation of women, which most people would consider a regression.


This assertion is relevant to my interests. Do you have references to these studies?


'cause your name makes it clear you're trolling? =V


I'm not trolling. I am annoyed to see copious downvoting with minimal response or discussion.


You provided no evidence to back up your point originally, and so it came off as a drive-by "I am an anti-feminist troglodyte who is either trolling or hopelessly incapable of thought" comment; both cases merit a downvote.


You consider me "anti-feminist" why? Casual sex and strong-man polygamy are about as anti-feminist as it gets, rooted in the concept of women as a resource to be sexually exploited.


I was not saying anything about your actual beliefs; I was talking about what your brief, context-free zinger seems to convey. Without further explanation, most people assume you're a troll; more explanation on your part would have at least prevented people like me from misunderstanding.


I don't think it's paradoxical. There's a reason "smart genes" didn't proliferate throughout the human race, giving us all (the genetic potential for, at the least) 150+ IQs. That reason is that they're a reproductive drag.


Correct. Girls provide themselves when other women want you, but when you're in a dry spell and they might actually be able to help you, they kick you because you're down.


This is very one-sided and nothing like what I was trying to say. It's not entirely the "fault" of girls that making them smile is not enough.

The parent was more even handed when they mentioned confidence and social status. Yes, some girls maybe care about confidence a bit too much, but just the same, guys like myself can often do a poor job of acting confident (sometimes due to lack of effort conforming to norms).

There are two sides to the story.


Please correct me if I'm wrong, but my understanding is that most Haskell code doesn't generate values, but "thunks" that evaluate to values if needed.

When you write

  x = 4 + 5
you aren't setting x to 9, but creating a thunk that evaluates 4 + 5 at runtime. An Integer is a thunk that returns an integer and has no other effects. An IO Integer is one that does some I/O before returning that integer.

As I understand it, the only function that has the power to "do" anything (computation or IO) undernormal circumstances is main, which always has type IO ().


This is true, but not really relevant to the original article or the comment you are replying to.

When you sequence computations with >>=, like the grandparent does, you generally evaluate the left side of the operation before running the computation. That is the point of monads; sequencing computations and controlling the order of evaluation. Sine the rhs depends on the lhs, the sequence is "evaluate lhs completely", "evaluate rhs completely", and so on.


I think you are correct that the language does think of all expressions in terms of thunks, but I'm guessing `4 + 5` won't actually be run at run-time!

Since it's pure a decent compiler should be able to simply replace any `x` with the number 9 - correct me if I'm wrong :)

Any primitive (C code) however won't run until run-time, which is probably the pressing reason putStr doesn't run until run-time (and that's a good thing :)


Functions should only have side effects if and only if that's what the function is designed to do: e.g. perform IO, write to disk, et cetera. Then, "side effect" is a misnomer, because the alteration to state is intended.

The hatred for "side effects" comes largely from a prehistoric tendency of programmers to write highly optimized in-place operations that destroyed the original data. An example would be a matrix multiplication that destroys one of the original matrices, or Common Lisp's NCONC (a faster APPEND that destroys some of the lists passed as arguments).

The general guiding principle of good code is that visible state changes occur only when requested. (For optimization, private state changes can be used, such as caching/memoization, but these are behind a layer of abstraction and don't violate the referential transparency of the API.)


>Functions should only have side effects if and only if that's what the function is designed to do: e.g. perform IO, write to disk, et cetera. Then, "side effect" is a misnomer, because the alteration to state is intended.

In medicine, they have a saying, "There are no side effects, only effects." I first heard that from a psychiatrist, discussing how he initially selects antidepressants for his patients based on side effects, such as weight loss or gain. Viagra was originally a heart medication.

What the discussion really comes down to is, what is the intent of the programmer? If the reason for a function call is a return value, but there's also a state change, then a problem will almost always arise because you want one but not the other. That's why change of state and global variables are usually maligned, because it couples disparate behavior, sometimes in unintentional or obfuscated fashion.

Further reading: http://en.wikipedia.org/wiki/Command-query_separation

Eiffel is apparently designed such that anything with a return value causes no change of state, and vice-versa. It's an interesting idea because it means that a change state, like you said, is never a side-effect, but always the intention of the caller.

Like pretty much almost everything, anywhere, ever, it's probably better as a general programming practice rather than a language-enforced restriction. And that's basically what the author was saying about purity--it's better as a guideline than a commandment.


I generally agree with the principle of command-query separation. One point where I would differ is that, when the command's effects aren't entirely known to the caller, it's often useful to return this information.

For example, a function that creates a user account with a unique numerical user ID, that isn't known until the account is created, can return the user's ID, e.g.

  (create-user-account "Bob") => 9001

  (defn create-acct-and-immediately-do-something [username]
     (let [user-id (create-user-account username)]
        (do-something-with-acct user-id)))


Sounds a lot like encapsulation to me, only without Objects to delimit the boundaries.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: