Recent blog updates

Shown here are only posts related to sex. You can view all posts here.

Looking for a Match, a Geekier Way

As unlikely as it seems, the "match" the heading refers to is not a regular expression match. Being in a longstanding relationship with computers, I also pay a certain bit of attention to opposite sex subjects of my species. This involves two immediate conclusions:

  • I have a shortage of such subjects available for dating in my nearest social circle;
  • The more information technology-abundant the process of mating is the more I'm likely to succeed.

Which, in turn, makes it obvious that I like to visit dating sites. If your first guess was that I use a geek-oriented fully-automatic neural-bayessian-expert-system-network-powered social site, you would be wrong. Automated matching engines appeared a bad solution: the criteria they use are too generic for a person with perfectionism syndrome, common for programmers though; besides they're not as popular as those that target generic audience. Therefore, the only option I have is to look for the one at generic-purpose dating sites.

The problem with generic-purpose dating sites

These sites (I tried several) share a common issue: they are annoyingly inefficient.

What's the source of the inefficiency there? It's the way search results are presented and managed. Or, to be more specific, how they're unmanageable by design. When you try to look for a woman to date, you're presented with a search result page, which is sorted by a complex weighted formula. A large weight is assigned to the last visit date, however, an even larger weight is of a paid (or, sometimes, free) service to move yourself up in search results page.

No wonder that a lot of women you have already considered as a potential mate and have rejected keep showing up in search result, distracting your attention from those potentially dateable. This decreases the efficiency dramatically.

I already tried to apply a "geek-like" approach to another "real-life" problem I head, an overweight. The solution I found appeared to be quite efficient: the graph of my weight is still the biggest motivator for making myself less fat.

A solution

A solution to this would be to filter search results on server side, discarding girls a user has already seen. However, aside from the apparent marketing-related problems—how would you sell good places in search results if they're so easy to hide permanently?—user-specific search yield should suffer from performance impediments, especially on popular sites.

Therefore, a filter on the user side could solve the problem. And the web browsers (at lease, some of them), do already have such mechanism. User scripts.

I used Firefox and GreaseMonkey to make a simple script to improve the girl finding experience. Here it is:

This script sets up an event listener to the ENTER key. When you press it, it locates the parts of the web page that look like girl userinfo or like search results. If it finds the search result that has already been seen, it shades it, making the other girls more visible. If the script finds that I'm currently at the girl-specific user info page with a lot of details, it will strike out the user next time, because a girl I closely looked and rejected should be even less visible.

The script uses GM_setValue and GM_getValue special functions. Greasemonkey Firefox addon specifically provides them to access a permanent storage that persists across browser invocations.

Here goes the rant

The script, however, looks a bit more monstrous than it should, and there is indeed a number of issues for this. I found a nice JavaScript reference; it was not as unhelpful as many other ones, but some issues left unresolved anyway. Let's enumerate them.

Ajax loading

The simplest architecture for the script, of course, would be just to fix up a page after it's loaded. Why do we need a lot of creepy event listeners?

The key here is after it's loaded. We can't tell when the page, or a piece of its content is loaded when running a userscript. The dating site I targeted was a complex piece of software with a lot of frames, with ajax-powered search result loading, etc. It heavily suffered from the issue described in this StackOverflow question, and the solution presented there with onhashchange event didn't help.

Therefore, I had to retreat to the User Brain Slowness. A user should hit ENTER after the page is loaded, making the script parse everything correctly. However, this worked badly too, hence all these event handlers that seem excessive at first sight.

XML traversal

Okay, so assume we have successfully loaded the document HTML tree. How can I now traverse it, spending as few keystrokes as possible?

As far as I know, there's no way to do this. All ways are browser-specific, and do not look even closely as a foreach loop. You may see these ugly constructs back from 90s near the FIRST_ORDERED_NODE_TYPE constants in the code above.

***

Having tried this, I really do not understand why JavaScript-based interfaces are becoming industry standard. Perhaps, I know JavaScript too badly to see its full power (this is my first JS program). Or, perhaps, programmers that prefer and are capable to make convenient languages merely steered clear from web-programming, and preferred to lock themselves up in ivory towers...

The only conclusion I'm sure about is that, the night I wrote the script, programming successfully distracted me from women for several hours again. What a jealous activity it is!

Read on | Comments (0) | Make a comment >>


Are women worse programmers than men?

As a student of a university with 90% male alumni, and with regular attempts of women to abuse their "girl power", I participate in "female programmers" flamewars quite often.

In these flamewars I usually try to stick to "logical" side, trying to analyze things without any bias to political correctness or male sexism. However, this position is not appreciated by both women (they disregard all but that "we are all equal" stuff) and men (half of them thinks it's too offensive, and the other half thinks that I'm too soft). But now I have the place without moderation, where I can tell everything I want.

FAQ

I'll start with a small FAQ, which explains the position I stand for in this post.

  • Do you think that women are worse programmers than men?
    Yes.
  • Does it mean that we should give preference to male humans when hiring?
    No.
  • Why is there a debate about whether women are good at programming in the first place?
    Because answers to previous two questions are different.
  • I know a famous programmer/computer scientist/developer Y, and she's a woman!
    So? I don't say that there's no good female developers, I just say that there's fewer of them.

So I'll try to elaborate these questions.

Are women worse developers than men?

There are slightly more women than men among humans. However, there's just a small amount of women in software development. I observe this in the place I work, and I hear a lot from others that they observe the same at their workplaces. If you're a software developer, take a look who surrounds you: how much of them are women? Not much I guess, much less than 50%.

I consider this experimental data. Sociology? Psychiatry? Who cares?! I'm partly a physicist, and experimental data are superior: if there's a smaller amount of female programmers in our more or less free world, then it means that they are just worse at it. Women either don't have a skill to be a programmer (and it's obvious that to enter the profession you should have a higher amount of skill) or don't have enough motivation. I don't really know what's happening there, but the result is obvious: male are more confident in becoming programmers. It's a fact.

Moreover, we usually observe that things are so bad, that for every female programmer (either "good" or "bad") there's usually at least one "good" male programmer in the office.

On this basis, it's not wrong to say that women, in general, are worse programmers than men, since a few of them bear the skills and will big enough to choose it as a career.

Let's formulate it in more mathematical manner. It means that if you compare a random woman and a random man you met in the street, a male will have better average result than a female subject. Or, if we discard probability distribution cruft, that P(W and G) < P(M and G), where W and M are events of male and female becoming programmers, and G is the event of someone becoming a good programmer (P(x) being the probability). The above statement is true, just because P(W and G) < P(W) is true by definition, and P(W) < P(M and G) is true by observation.

Why can't we then think that a woman we're going to hire is worse than a man we're going to hire?

That's simple. The above statement means that a random woman is worse than a random man when it comes to programming. But when you're making a hiring decision (or when you just evaluate your colleague), it's no longer a "random" woman.

Now it's a woman that explicitly chose one of her (possible) careers as software developer. So she already became a programmer; good or bad--we're yet to decide. And now her skills have to be evaluated in the same manner as men's, since there's no more bias.

What's the probability of her being a good programmer? It's a conditional probability: P(G | W), i.e. "someone is a good programmer given that it is a woman that became a programmer". The probability of a male being good is similar: P(G | M). So now we should compare P(G and W)/P(W) and P(G and M)/P(M). We shown above that P(W and G) < P(M and G), but it's also true that P(W) < P(M). So maths is of no help of us in determining which is bigger: P(G | W) or P(G | M)?

I don't have the answer to this question. In my causal observations I didn't see any evidence that female programmers are worse or better than male programmers. And this post doesn't try to solve this contradiction.

What it shows is that even since a random woman is a worse programmer than a random man, this does not mean that women who chose programming as their career are worse programmers than male developers. This really depends on context.

So, programmer girls object to the improper treatment, programmer males think that girls are worse programmers, non-programmer girls just don't care, and all of them are right--in a proper context. But it's understandable why it's incorrect to make a professional assumption based on gender in the office. It's just based on nothing, and observations made in previous section are no longer true when it comes to programmer women.

Why is there a debate about whether women are good at programming in the first place?

Because not many people are familiar with the concept of conditional probability. And because it's very hard to believe both that women are worse than men, and that it's not the basis to consider your colleague Jane a worse developer.

But there's one more thing. I suppose that some women do not tend to avoid discrimination, trying to abuse it when it's in their best interest. And even if they don't try to abuse it, it sometimes looks like they treat men and women differently in the first place.

The most notable example would be a quote from the deleted SO question (you can only view it if you have 10k+ rep there):

I do agree men and women think differently

Ekaterina, female programmer who started the flamewar at StackOverflow

So if you agree that you think differently, why do you not agree when you're treated differently? And why do some of you not object to that treatment when it's convenient to some of you?

It also seems that some people are like they just want to be discriminated. An extreme case is when a female programmer puts her gender into her nickname or domain name of her homepage... I encountered it in a discussion in the Google Summer of Code 2009 private mailing list (yes, we had a flamewar of this kind there as well). Can't cite the discussion (the list is private), but I think I can share that some people cited she.geek.nz, and the most ardent female custodian of equality had her homepage at... latvialinuxgirl.blogspot.com!

Well, your domain name is sometimes the first thing anyone knows about you in the Internet, and is it really necessary to show the you're a girl in it? And if you think that it is, then why do you think that your gender is important to your identity? And how does it stack with your equality speeches?

These are rhetorical questions. I know the answer, and you do too. To reach equality, everyone should stop demonstrating gender as something that's important to their career and professional identity. For example, my website title aims intergalactic political correctness--you can't know that I'm a human, let alone a male one.

I know a famous programmer/computer scientist/developer Y, and she's a woman!

Cool! I would like to re-cite a deleted StackOverflow answer by richj:

If you know zero of them you most likely know nothing about programming.

Once when we were celebrating an event at work, I made up a toast. I said that women are not welcome only in the most awful things in the world, namely the war. And that I wanted to lift a glass for the women currently there who justify our domain, software development, as something that is worth being.

So, to you, to all of the women cited above!

Read on | Comments (4) | Make a comment >>


Software engineering as Kama Sutra

At the meeting today we thought that the idea of our bored manager (you've seen it in Dilbert) to adapt Scrum is not so bad. It seems we're experiencing sudden attempt to use yet another cool software engineering framework; that is all developers usually don't like. Having been unusually and weirdly excited about such a commonly undesirable change, I tried to figure out why's that...

And I think I got it. Tomorrow we're trying to try a new sex position with my beloved wife. Yes, I lately realized that I'm totally married to my job (which I unconsciously referred to in a recent blog post). And the excitement is that we're finally going to switch that missionary position to something new and with more... movement, I guess.

But then I suddenly realized. The whole software engineering thing is just a large group sex Kama Sutra.

Just look at it.

"Agile methodologies" will totally require you being in a good physical shape to satisfy the project and do a lot of different things for that.

We actually started doing scrum at work a couple of months after this post was published. Here's a post with my impressions on what Scrum is like.

Scrum, with all its "chicken" and "pigs" being a reference to "men" and "women", requires rhythmic moving. However, I think, constantly questioning the partner whether things go well doesn't work well in the bed. Hell, "think"; I know; you too do.

Some techniques are even worse, however. "Extreme programming", that values fast delivery, isn't that women usually want. And this DSDM technique... I don't think it needs further explanations.

Of course, while in nearly every domain of human activity you can find sexual reference, it was funny to look it up in software engineering. However, it appears to be not that funny as I expected. So, basically, tomorrow I'm having a new sex. Isn't it what 80% of blogs are about?

Read on | Comments (1) | Make a comment >>


More posts about sex >>