google reader refugee.
1075 stories

Outsourcing your webapp maintenance to Debian

1 Comment

Modern web applications are much more complicated than the simple Perl CGI scripts or PHP pages of the past. They usually start with a framework and include lots of external components both on the front-end and on the back-end.

Here's an example from the Node.js back-end of a real application:

$ npm list | wc -l

What if one of these 256 external components has a security vulnerability? How would you know and what would you do if of your direct dependencies had a hard-coded dependency on the vulnerable version? It's a real problem and of course one way to avoid this is to write everything yourself. But that's neither realistic nor desirable.

However, it's not a new problem. It was solved years ago by Linux distributions for C and C++ applications. For some reason though, this learning has not propagated to the web where the standard approach seems to be to "statically link everything".

What if we could build on the work done by Debian maintainers and the security team?

Case study - the Libravatar project

As a way of discussing a different approach to the problem of dependency management in web applications, let me describe the decisions made by the Libravatar project.


Libravatar is a federated and free software alternative to the Gravatar profile photo hosting site.

From a developer point of view, it's a fairly simple stack:

The service is split between the master node, where you create an account and upload your avatar, and a few mirrors, which serve the photos to third-party sites.

Like with Gravatar, sites wanting to display images don't have to worry about a complicated protocol. In a nutshell, all that a site needs to do is hash the user's email and add that hash to a base URL. Where the federation kicks in is that every email domain is able to specify a different base URL via an SRV record in DNS.

For example, hashes to 7cc352a2907216992f0f16d2af50b070 and so the full URL is:

whereas hashes to 0110e86fdb31486c22dd381326d99de9 and the full URL is:

due to the presence of an SRV record on

Ground rules

The main rules that the project follows is to:

  1. only use Python libraries that are in Debian
  2. use the versions present in the latest stable release (including backports)

Deployment using packages

In addition to these rules around dependencies, we decided to treat the application as if it were going to be uploaded to Debian:

  • It includes an "upstream" Makefile which minifies CSS and JavaScript, gzips them, and compiles PO files (i.e. a "build" step).
  • The Makefile includes a test target which runs the unit tests and some lint checks (pylint, pyflakes and pep8).
  • Debian packages are produced to encode the dependencies in the standard way as well as to run various setup commands in maintainer scripts and install cron jobs.
  • The project runs its own package repository using reprepro to easily distribute these custom packages.
  • In order to update the repository and the packages installed on servers that we control, we use fabric, which is basically a fancy way to run commands over ssh.
  • Mirrors can simply add our repository to their apt sources.list and upgrade Libravatar packages at the same time as their system packages.


Overall, this approach has been quite successful and Libravatar has been a very low-maintenance service to run.

The ground rules have however limited our choice of libraries. For example, to talk to our queuing system, we had to use the raw Python bindings to the C Gearman library instead of being able to use a nice pythonic library which wasn't in Debian squeeze at the time.

There is of course always the possibility of packaging a missing library for Debian and maintaining a backport of it until the next Debian release. This wouldn't be a lot of work considering the fact that responsible bundling of a library would normally force you to follow its releases closely and keep any dependencies up to date, so you may as well share the result of that effort. But in the end, it turns out that there is a lot of Python stuff already in Debian and we haven't had to package anything new yet.

Another thing that was somewhat scary, due to the number of packages that were going to get bumped to a new major version, was the upgrade from squeeze to wheezy. It turned out however that it was surprisingly easy to upgrade to wheezy's version of Django, Apache and Postgres. It may be a problem next time, but all that means is that you have to set a day aside every 2 years to bring everything up to date.


The main problem we ran into is that we optimized for sysadmins and unfortunately made it harder for new developers to setup their environment. That's not very good from the point of view of welcoming new contributors as there is quite a bit of friction in preparing and testing your first patch. That's why we're looking at encoding our setup instructions into a Vagrant script so that new contributors can get started quickly.

Another problem we faced is that because we use the Debian version of jQuery and minify our own JavaScript files in the build step of the Makefile, we were affected by the removal from that package of the minified version of jQuery. In our setup, there is no way to minify JavaScript files that are provided by other packages and so the only way to fix this would be to fork the package in our repository or (preferably) to work with the Debian maintainer and get it fixed globally in Debian.

One thing worth noting is that while the Django project is very good at issuing backwards-compatible fixes for security issues, sometimes there is no way around disabling broken features. In practice, this means that we cannot run unattended-upgrades on our main server in case something breaks. Instead, we make use of apticron to automatically receive email reminders for any outstanding package updates.

On that topic, it can occasionally take a while for security updates to be released in Debian, but this usually falls into one of two cases:

  1. You either notice because you're already tracking releases pretty well and therefore could help Debian with backporting of fixes and/or testing;
  2. or you don't notice because it has slipped through the cracks or there simply are too many potential things to keep track of, in which case the fact that it eventually gets fixed without your intervention is a huge improvement.

Finally, relying too much on Debian packaging does prevent Fedora users (a project that also makes use of Libravatar) from easily contributing mirrors. Though if we had a concrete offer, we would certainly look into creating the appropriate RPMs.

Is it realistic?

It turns out that I'm not the only one who thought about this approach, which has been named "debops". The same day that my talk was announced on the DebConf website, someone emailed me saying that he had instituted the exact same rules at his company, which operates a large Django-based web application in the US and Russia. It was pretty impressive to read about a real business coming to the same conclusions and using the same approach (i.e. system libraries, deployment packages) as Libravatar.

Regardless of this though, I think there is a class of applications that are particularly well-suited for the approach we've just described. If a web application is not your full-time job and you want to minimize the amount of work required to keep it running, then it's a good investment to restrict your options and leverage the work of the Debian community to simplify your maintenance burden.

The second criterion I would look at is framework maturity. Given the 2-3 year release cycle of stable distributions, this approach is more likely to work with a mature framework like Django. After all, you probably wouldn't compile Apache from source, but until recently building Node.js from source was the preferred option as it was changing so quickly.

While it goes against conventional wisdom, relying on system libraries is a sustainable approach you should at least consider in your next project. After all, there is a real cost in bundling and keeping up with external dependencies.

This blog post is based on a talk I gave at DebConf 14: slides, video.

Read the whole story
18 hours ago
To consider
Melbourne, Australia
Share this story

greg-pak: Outstanding. mattmarblo: oops turns out this is...

2 Comments and 3 Shares




oops turns out this is every single person that says this

it’s really easy not to let it happen to you

you just have to remain vigilant

remain vigilant

Read the whole story
23 hours ago
Totally me and I am deeply troubled by it
Share this story
1 public comment
11 days ago
Remain vigilant. (I am not very good at this.)
Brooklyn, NY

actuallytroybolton: banshelydia: perfectly-modest: Islamic...

1 Comment and 3 Shares




Islamic headscarf 101.

this is really important because I didn’t realize there was a difference and other people should know this 

This is so cool

Read the whole story
Share this story
1 public comment
3 days ago
Today I learned.
Fredericksburg, VA

Ask Polly: How Am I Supposed to Make Friends in My Late 20s?

1 Comment

Dear Polly, I'm in my late 20s. I live with a great boyfriend in a great city and have a great job in a field I am passionate about. I have a good relationship with my family and have had many happy connections with all sorts of folks over my ... More »

Read the whole story
4 days ago
Ask Polly at its new home!

On making friends:
You should do it now in order to prepare you for doing it 20 years from now, because you'll ALWAYS have to do it. You don't just get the big group of buddies and then sleepwalk through the rest of your life. Life isn't like that.
Melbourne, Australia
Share this story

#617: All The Dating Advice, Again

1 Comment

Dear Captain Awkward,

So I’m a guy, 20 years old and totally devoid of any form of romantic relationship. Ever. I’ve never so much as held hands with a member of the opposite sex, never mind anything else. I’m getting incredibly lonely and yes before you say it, I did behave like a nice guy tm once and just once. I was an ass, I made an incredible fool of myself, I traumatized my friends and worst of all, I hurt that poor girls feelings. She wasn’t the nicest person and took advantage of me, but I hurt her feelings and I made sure when I came to my senses that I apologized, regardless of what she’d done, I messed up. Before all that happened, I was an incredible jerk, an arrogant piece of shit with an intellect to match and zero attachments to anyone. I hated the idea of feelings and I shut them out and didn’t do friends (ironically this is when I received most attention from the females). For most of my teenage years, I didn’t need people and I didn’t need love.

I’m literally petrified of making the same mistake again and of ever hurting another living soul again, I’ve been bad, I’ve made mistakes and I’ve taken advantage of people, now I’m trying, very hard not to be that person again and that includes treating women as people, with thoughts and feelings, hopes and fears and dreams. It’s difficult in the uni dorm I’m in, considering most people I meet socially are either drunk (I’m stone cold sober) or do the whole ‘one night stand’ routine which to me is appalling. The few people I’ve really sparked with are all in relationships.

I’m lonely and very different, I’m eccentric, have eccentric tastes and I’m a lot more mature then most people I meet in most social settings (I’ve been regularly mistaken for 40+ when I was 18) I’m also a romantic whose entire cultural upbringing utterly rejects the idea of genders freely mixing and all that cabal. Pretty much means my social skills are shit. I can out-argue almost anyone and I can debate exceptionally well but I’ve zero social skills that aren’t an argument, sports or one of my passions (which many people do not like) I’m regularly putting my foot in it in casual conversations and I have been told in the past that I am far far too intense. 

On the plus side, most of my closest friends are all female (I do not and have not had romantic feelings for any of them) and they’re great people but they all offer conflicting advice on what my problem is. I’m fast becoming isolated, I’ve zero self confidence and my self esteem has taken a nose dive, a combination of truly looking into the mirror for once and a mystery illness. I don’t think I look handsome, but a lot of people have said that I do. I get really confused and I pick up a lot of body language, but I have no understanding of social cues. It’s like I’m trying to read Swahili.

What on earth is wrong with me? Am I incapable of being loved?

Awkward & Lonely

Dear Awkward & Lonely:

My own time as a NiceGirl(tm) is well-documented on this blog, so, take hope? It’s a pattern of behavior, not a permanent designation or identity. We grow up, we figure it out, we stop doing that stuff. It is unlikely, being as self-aware as you are now, that you will repeat those same mistakes. And there is absolutely nothing wrong with being a late-bloomer, or in delaying romance and sex until you meet the right person or feel ready. I know it’s a bummer to get crushes on people who are already coupled up, but you are sparking with people! This means that you are recognizing what you like in a person, and learning more about who you are really attracted to. This will serve you well when you meet someone who is single and who has the qualities you like. It will feel like “Oh, there you are!” The fact that you have lots of female friends is also an encouraging sign. I get zero douchebag vibes off you. So let’s talk about some stuff you can do differently to improve your life and your chances of meeting someone you’d like to be with.

While I think you have some particular cultural stuff you’re also trying to sort out, my advice to young straight men who want to meet women is always going to be about subverting the dominant dating paradigm and the sexist culture we grow up with, and it’s always gonna run along the same lines:

1) Read books & blogs, watch films, look at art, and listen to music made by women.

2) Seek out new activities and build on the interests and passions that you already have in a way that brings you into contact with more people. Some of those people will be women. Some of those will be in your age group/dating pool or know someone who is.

3) When you have the time and energy for it, try out online dating sites to practice dating. That’s how I met everyone I’ve dated since 1998.

4) Be really nice to yourself and take good care of yourself.

James Bond in Skyfall

“I just met you, and this is crazy, but do you want to have sex and then die horribly so that I will be motivated to avenge you in the third act maybe?”

To elaborate:

Step I. Consume More Art By Women.Works by men, with male protagonists, dominate popular culture. We all grow up on stories and messages where men go out and do great deeds and they rescue and/or win the love of women. They pursue women. They acquire women as decorative objects. If you aren’t good at acquiring these objects you are a loser or a failure. These are the messages you are swimming in, and they are affecting your life. Not every work created by a woman goes against this grain, obviously, since we’re all swimming in the same cultural soup. And hopefully you already seek out and enjoy works by women — I don’t want to insult you by saying that you don’t or that you are unaware! But I think it’s a good idea to make a deliberate year-long project of it at this time in your life, when you are trying to figure out how to relate to women better.

Reason #1: It’s a concrete step you can take. It’s something you can do. Make a giant reading and watching list. Check things off, or join a social site like Goodreads.

Reason #2: It will be fun and you’ll encounter some really good stuff you might not have sought out otherwise. You’re going to read/watch/listen to something, why not make an effort to seek out women’s voices and perspectives?

Reason #3: It will give you many different perspectives on women as diverse human beings and allow you to hang out with women and get to know them in your imagination.

A few years ago a I saw a very beautifully made and very personal student film about a lonely and shy young man who has insomnia so he walks around downtown late at night, visiting a diner where he has a crush on the waitress, and otherwise encountering women who all don’t notice him or outright reject him. It was beautifully shot and scored and acted, but I’m not sure that what’s stayed with me is what the filmmaker wanted to stay with me, which is that every single woman that the protagonist ran into in this world was young, pretty, white, able-bodied, straight, and assumed to be potentially dateable. Even though the story took place downtown in a major city, there were no other women in the frame, though the character did frequently interact with men of all ages & walks of life. This is true of the Hollywood world, too, where there aren’t even enough women in crowd scenes. Use woman-created media to to remind yourself that the world isn’t only about you + men + women who have/have not rejected you as a romantic partner. You need Miss Marple. You need Cordelia Naismith. You need shy people who are trying to connect with each other and the sexiest/awkwardest dance to The Commodores’ Night Shift in recorded history.

Reason #4:If you ask the women you know for recommendations of books and movies they love, they will flock to this project. If you meet a woman, and you kind of like her, and you are looking for something to talk about, try asking her “What are you reading or watching lately? Can you recommend me something?” If you listen to her, and then go and read or watch that thing, she may or may not date you in the end, but you will get infinity coolness points because this behavior by men is sadly all too rare. We notice this stuff, and we remember. This is as close as I ever get to the #1 SEEKRIT TRICK TO IMPRESS GIRLS kind of advice-giving.

Step II. Take Your Passion And Make It Social. Or, try something new. Something that is social.

You say that not many people are interested in your passions. Have you looked all around your university community, or your dorm, or your study program? Have you looked into clubs, classes, volunteering, MeetUps?

Some cool places to meet lots of nice people are:

  • Join a choir or take a music class.
  • Volunteer with a theater company – there are tons of behind-the-scenes jobs, like running the box office or painting sets, where they can use help and you will meet lots of people.
  • Be a mentor or a tutor.
  • Are you a native speaker of a language other than English? Someone is trying to learn that language. Be their practice/study buddy.
  • Work on a political campaign or cause that speaks to you.
  • Volunteer at an animal shelter or for another organization that does work that you feel is important.
  • Take a class in something like cooking, metalsmithing, jewelry making, pottery, or other applied or studio art.
  • Find a role-playing or board-gaming group.
  • Find a fannish group who gets together to watch that thing you all like.
  • Play a sport, or take up kickball or Quidditch or another little-kid sport that’s played for fun more than for competition.

From how you describe yourself: Intense, intelligent, good at arguing, passionate about certain things that no one else likes, I am going to make an inference that you are very smart, quick-witted, and you like to be good at stuff and impress people. You don’t like to struggle or fail or be wrong in public. You have a pretty good sense of what you will and won’t be good at, and you tend to avoid things that you aren’t sure that you’ll like. You definitely don’t want to be wrong or look stupid or be bad at something in front of others.

This makes you….A human being! We all want to look good, be good, succeed, do things where we’ll be praised and be good at. I want to challenge you, as part of this Meeting More People Project, to go against your grain a little bit. I want you to choose:

  • Something you are not already good at.
  • Something you’ve always wanted to try but been nervous or not had time to do before.
  • Something where you can be a beginner and where there is no pressure for you to demonstrate expertise.
  • Something where you might have to ask other people to help you or show you or teach you something.
  • Something that happens with other people and meets regularly, like, a weekly class or volunteer gig.
  • Something that has some kind of physical aspect to it – working with your hands, making something, building something, being physically out and about, playing an instrument, singing.
  • Something where you may know a couple of people, but is outside where your current social group already hangs out.
  • Something that you will attend at least 3 and preferably 6-8 times before opting out/giving up.

I want you to do something every week that gets you out of your room, out of your head, out of the need to impress people, out of the need to “be intense.” I want you to focus on: showing up, trying hard, having fun, and being nice and friendly. When you meet a cool woman, don’t automatically treat her differently than you would treat a neat dude you met at a thing who you might like to be friends with.

Taiwanese guy with lego head haircut

“When are the Feats of Strength? I have already won the Feats of Hair!” Source.

Reason #1: Our dominant cultural narratives, buoyed by a bunch of crap evo-psych “science,”  contain many stories about how men must impress/”get”/”win” a mate by demonstrating competence, smarts, feats of strength, wealth, athleticism, etc. Win the Battle of the Bands/Diplomacy Game/Dance Dance Revolution Tournament/Trivia Contest, andyou win The Girl. So a lot of dating advice for straight men says, find the thing you are awesome at, and then be awesome at that thing where women can see you, and then you’ll have a better chance with them.

I can see why this makes intuitive sense. Male peacocks are much brighter than female ones, amirite? When you are competent at something, you are more likely to be confident in yourself, and that is attractive and takes away some of the needy, auditioning quality of dating. And watching someone you find sexy be good at something is sexy, no doubt about it. But we are not peacocks, and that thing where competence is sexy goes both/all ways. I think it’s hot when my boyfriend cooks a great meal or kills onstage. He thinks it’s awesome when I have a great reading or write a piece he really likes. We both get to demonstrate competence and we both get to be the audience. We are both The Funny One. If you live inside the boys-impress-girls-to-get-girls-world, “the girl” never has a chance to impress you. Impressing people and performing well is great, like, nail that guitar solo and drop the mic if that’s your thing, but it doesn’t necessarilyconnect people. You need vulnerability for that, the vulnerability of not knowing where the power tools are or where the food bank keeps the extra rice. It’s tiring sometimes to be performed at. It’s sweet to learn and create something alongside someone.

Reason #2:This is something concrete you can control and keep trying to do, in different ways. You aren’t meeting potential dating partners doing what you’re already doing, right? Give yourself a few months of trying new stuff and saying yes to social invitations and see if that shakes anything loose. It’s not wasted time, as you’ll make tons of social connections/resume fodder/learn new skills. You never know when that random guy from Intro to Blacksmithing is also hiring people for jobs at his business, or setting nice friendly non-creepy dudes up with his sweet, smart cousin who just moved to town.

Step III: Experiment With Online Dating

College is set up to help you meet other people your age, and probably never in your life will you exist in such a cauldron of people who already have built-in things in common and structured activities designed to help you meet each other. But online dating can be useful for finding people outside of your current social scene and for interacting with people in a place where the idea of dating and romance is automatically, explicitly on the table. Use it to practice approaching people and flirting with them. Since you start out using text, you don’t have to already be good at reading subtext and body language to tell when someone is flirting. You’ll know if they’re flirting. They’ll type it in.

So, make a profile. Post 4-5 recent pictures of yourself. “Flattering” is great, “recognizably looks like you” is paramount. Fill out the questions, keeping in mind that these are short-answer questions and it’s not an essay test. If the site asks you to list movies & books & music you like, consider including some work by women (we notice this). Do not mention sex explicitly, as many a promising profile has been ruined with “I love giving back rubs…and other rubs.” (This doesn’t seem like an error you’ll make, Sweet Letter Writer, but if you see it in other dude’s profiles I don’t want you to fall into the gross trap). and think it’s okay). Put your actual uncommon unique middle-aged interests in there. Don’t try to be “cool” or “normal.” You’re not just anyone, and you’re not looking for just anyone. For example, if you don’t like drinking, say so. “I’m not much for drinking or the party scene.” Consider having a trusted friend read your profile to scrub for traces of self-deprecation and for too many “don’ts” in the “what I’m looking for” part.

Then do what nerds do best, and research. What you have here is a database of women who would like to meet someone to date. Who do you like? What draws you to someone’s profile? Who DON’T you like? What alienates you from someone’s profile?

When you see some people you like, send them a brief note. Comment on or ask a question about something they mentioned in their profile. “Hey, neat profile. I’m _______, and I love the Coen brothers, too. How do you think the Fargo TV adaptation holds up?

If the person likes your profile, they will pick up the conversation from there. “I haven’t seen it yet. What did you think?” If it’s someone who might be a good match for you, the conversation will flow. You will write back, she will write back, you both may feel awkward but you will both keep the conversation going. A person who likes you will act like they like you, and do their best to not leave you hanging. Keep your communications brief, especially at first, and pay attention to matching the other person’s effort and tone. If she’s sending you a one-line answer every 6 or 7 days, and you’re sending her long, elaborate answers the second she writes to you, you’ve already got a mismatch in terms of relative effort and interest. If all seems to be going well,  one of you can suggest meeting up.

It really, really helps if you think of it as practice. You are practicing approaching someone for a date. You are practicing conversing. You are practicing figuring out reciprocity. You are practicing figuring out what makes you like someone. It is okay to make a mistake, to not know exactly what to do. It is okay if she isn’t picking up what you’re putting down. It is okay if, after a few exchanges, you decide that she is not for you. It’s okay to go on an actual date with someone who turns out not to be for you (or you for her). That is normal. Connection is rare, and it’s largely based on dumb luck. Online dating (and getting out and meeting more people socially in general) is something you can do to help create conditions where dumb luck might happen.

I really want this to change in my lifetime, but for now, there are more men than women on most sites, and men are more likely to write to women than women are likely to write to men. So temper your expectations – expect to do more writing to other people than they do to you, realize that women are getting constantly inundated with messages and don’t necessarily have time to respond. That is normal. If someone doesn’t write back, move on. It wasn’t personal.

Azteca Tacos, Chicago

There are worse first-date places.

People get very nervous about the idea of planning dates, like it has to be some big production. We have inherited these ideas from the movies where it’s not a date unless there are flowers and white tablecloths and a fucking sunset or something, with everyone in their fanciest clothes, like teenagers playing “grownup.” When I was planning a lot of first dates, I tried to keep them inexpensive, low key, easy to get to and from, and not try to be explicitly “romantic” – like, I wouldn’t go anywhere or do anything on a first date that I wouldn’t do in the course of my life anyway with a friend. From another thread:

Here are some fun, low-cost first date (or friend-date!) activities that might help a shy person relax and give you something to talk about and/or do with your hands:

  • Gamers, what happens if you each bring your favorite 2-player game to a cafe and play for a while? Or go to an arcade? It doesn’t matter if you or the other person is “good at” whatever game it is. This is about having fun, learning a new game, and seeing if your styles mesh.
  • It’s summer in the northern hemisphere, so that means 10,000 free exhibits, concerts, festivals, and events. Sack lunch + free show = low pressure. You can talk about the performance or the exhibit, and if the thing sucks you wander away from it and do something else.
  • We’re past this year’sFree Comic Book Day, but I once had a date on Free Comic Book Day and it was awesome. Meet at comics shop. Browse comics. Pick out comic for each other. Go to park with comics and read them. Commander Logic did this with bookshops that were also coffee shops (not free, but, fun). See alsoRecord Store Day, World Book Night.
  • Taco walk! My old neighborhood had a lot of taquerias, so a fun thing to do is to each get 1 taco at each place and compare. If you aren’t having fun on the date, get super “full” after Taco #2 and get out of there. If you are having fun, find local bar or cafe and stay up late talking and then eat more tacos or tamales or whatever. If you live in a city, a taco walk could easily be a dumpling walk or scone walk or a tour of food trucks. Or gelato! Mmmmm gelato.
  • Is there a museum of science or a planetarium near you? Go look at science!

Do only stuff that sounds fun and interesting and appetizing to you. Do stuff that you would do with a friend, even if it wasn’t a DATE sort of date. Do stuff that gives you something to look or do. Fancy sit-down restaurants are great, when you are date-ING someone and already know that you won’t run out of stuff to talk about, but it’s all too much the first time you go out with someone. I realize I live in a major city with a lot of options, but people in smaller towns also do casual stuff for fun in their free time, and somewhere there is a park/book shop/ice cream stand/free concert/odd history exam/roadside attraction/place outside your house to spend a little time at. You are trying to find someone who has fun with you, who makes things fun for you, and who enjoys doing at least some of the stuff you like. The right person for you won’t mock your shyness and will help you feel relaxed.

Art shows. Movies in the park. Poetry slams and other free shows. Improv/comedy night. A cooking class. Bike rides. On campus it’s even easier, and more low-key. “Meet me at this thing on campus that is happening?” “I have to study, want to bring some work and keep me company in the library for a few hours and then we can get dinner?” “My friend is in this play, want to go with me?”

“But Captain Awkward, what if I suggest something and my date doesn’t like that thing, or we go, and the performers are not good?” Well, a person you actually want to date will say “Standup comedy is not my jam, actually, but I do really want to meet up with you, so howabout coffee, or that concert thing you mentioned?” Or they will go, and do their best to enjoy whatever it is, and if the thing is terrible, you will bond all the more for having a shared terrible experience. Or you won’t like each other anyway. Which is okay, this is all just practice in pursuit of dumb luck. The only way to fail is to actively be a jerk to someone. You don’t have to be perfect, or orchestrate a perfect date. Someone who doesn’t like you because the waiter forgot to refill the water glasses promptly or because the promised string quartet performance is now a string open-mike session was never going to like you all that much anyway, and is probably not who you want by your side on life’s miraculous journey. Bad dates and “meh” dates are learning experiences. Congratulate yourself for showing up and trying. Practice holding a conversation with someone new for 45 minutes.

If you hate dating, stop. If it starts to feel like work, stop. I would always have bursts where I was into it and periods where I deleted my profile for 6 months or a year to focus on other things. But it’s right there, it’s free, and I don’t think there is any harm in trying it out and practicing for a bit.

Step IV: Be Nice To Yourself

College is a great time for you to learn about what makes you happy intellectually, in terms of your friendships, in terms of your potential career, and in terms of creating routines that make you feel good in your day-to-day life.

  • Are you getting enough sleep?
  • Are you eating food that you like and that makes you feel good?
  • Do you have at least one form of exercise you routinely enjoy doing?
  • Are you attending and keeping up with the work for all of your classes?
  • Are you doing what you came to school to do? Are you learning? Are you taking risks, creatively, intellectually?
  • When you have questions in class, do you go to office hours and reach out to professors and teaching assistants for help?
  • Do you meet with your advisor sometimes?
  • Are you keeping abreast of potential programs, internships, job opportunities, speakers, etc. in your area of interest?
  • When you make a mistake, can you forgive yourself and move on?
  • When you’re sick, do you go to the doctor?
  • When you’re lonely, do you call or text a friend and try to make sure you’re around people?
  • When you’re over-peopled, do you take time for yourself?
  • Do you know how to reward yourself for a job well done, and build happy, pleasurable stuff into your week?
  • Do you know how to ask your friends to be nice to you? Do you reach out and do nice and say things to them?
  • If you feel blue and lonely for more than a few weeks, can you go talk to student counseling services?
  • Do you have regular phone calls or Skype with your family (if they are good people for you to talk to and positive force in your life) & friends from home?
  • Do you have a regular practice of keeping a journal? Maybe try writing three pages in the morning, either longhand or somewhere like, to give yourself a small ritual of reflecting and thinking every day.

If you are doing even some of that stuff, then you are doing GREAT. You are where you are supposed to be, you are learning what you are supposed to learn.

I can’t tell you that you’re guaranteed to find love, or that any given person is going to love you, or that a romantic relationship like the one you want is going to happen while you’re in college. I can tell you that you are worthy of love. I can tell you, uncomforting-ly, that it’s a matter of luck and other people’s subjective feelings and that there are a lot of factors that are completely out of your control, like, you could do everything “right” and it could still take a long while for you to click with someone. This post is about what you can control.

Finally: While this book is very targeted toward single straight women of a certain age/class/race/type and specifically trying to debunk the dating advice offered to women in that target group,  I thought it was very insightful and lovely and supportive of people who are single who don’t want to be single. In one chapter, Eckel suggests a practice that has also been suggested by commenters here, which is to practice looking at others with love and compassion. When you’re alone on the subway or in a cafe or out and about on campus, look at someone (don’t stare, obviously, just steal some glances) and try to see them the way someone who loves them might. Look at everyone. Dudes. People outside your dating age range. This isn’t about hotness or attraction. Find something to love in their face, in what they are wearing, in how they hold their head, the neat penmanship on the cover of their notebook. Send them a silent good wish. If you get busted looking at them, say something! “Didn’t mean to stare! I was just admiring your hat, it’s a great color on you.” It’s a practice that can lead you away from harsh self-criticism and self-judgment and make you see the world through a kinder lens, and it’s especially good to do when you need to distract yourself out of a “what’s wrong with me?” headspace.

Readers, do you have any insight on things that have worked for you to help you get more confident with meeting people?


Thanks to everyone who has donated to the summer pledge drive so far! The support (and the sweet, sweet kind words!) mean the world to me.

Read the whole story
5 days ago
'But [women] are not peacocks, and that thing where competence is sexy goes both/all ways. I think it’s hot when my boyfriend cooks a great meal or kills onstage. He thinks it’s awesome when I have a great reading or write a piece he really likes. We both get to demonstrate competence and we both get to be the audience. We are both The Funny One. If you live inside the boys-impress-girls-to-get-girls-world, “the girl” never has a chance to impress you.'

I super endorse this.
Melbourne, Australia
Share this story

When "North" Isn't Actually North: Geocentric Direction Systems

1 Comment

If you were traveling around Bali with a compass, you would find yourself confronted with a linguistic puzzle. The word kaja in Balinese is sometimes translated as meaning "north." And in South Bali, where most of the population lives, you would find that kaja does seem to mean exactly that. But as you traveled into the countryside, you would find villages where kaja seemed to mean "south," "east" or "west" instead.

The solution? Balinese direction terms have a different logic than English ones do. Balinese has what is called a geocentric directional system, based on geographic landmarks rather than points on a compass. Really, what the word kaja means is "uphill"—that is, "towards the biggest mountain in the area." Most often that’s Gunung Agung, the big volcano in the center of the island. But in villages where Gunung Agung isn’t visible, kaja is aligned with a different mountain instead. Sometimes, two neighboring villages on opposite sides of a divide will align kaja with two different mountains. And the rest of the direction system in Bali is just as geographically specific. Kelod is the opposite of kaja: It points away from the high ground. The system is rounded out with kauh and kangin, which in coastal villages point clockwise and counterclockwise along the shore.

It might seem hard to believe, at first, that people can navigate using such a seemingly complicated and arbitrary system. What do you do when you travel from one village to another? How do you keep track of which way kaja is? But it turns out that Balinese people manage just fine. The system is no more arbitrary than our familiar sun-based north-south-east-west, and it has one major advantage: It works on cloudy days and nights when you can't see the sun and stars. If you can see the horizon, you will always know which way is kaja.

Bali isn’t the only place where spatial language works this way. In Klamath, spoken in the Pacific Northwest, the cardinal directions are "uphill," "downhill," "upstream," and "downstream." In Tseltal- and Tsotsil-speaking Mayan villages of Chiapas, Mexico, there are only three direction terms, "uphill," "downhill," and "across." Speakers of these languages use the same word for "across to the left" and "across to the right"—which, again, you might expect to cause confusion, but which in practice turns out to work just fine. Three-direction systems are also found elsewhere in Mesoamerica, and throughout Southeast Asia and Oceania.

And then there’s New York City

The island of Manhattan turns out to be a perfect place for geocentric language. It is long, thin and straight, lined up with the current of the Hudson river and with a tidy grid of streets that run parallel to its shores. The longest roads on the island—and the shape of the island itself and of the river it sits next to—are like built-in compass arrows pointing northeast and southwest. So it is no surprise that New Yorkers have used that geographic compass to coin their own set of geocentric spatial terms: downtown is towards the downriver end of the island, where the oldest buildings are; uptown is towards the upriver end, approaching the Bronx; and crosstown is perpendicular to the other two. Like the Tseltal, New Yorkers do not have separate terms for "across to the left" and "across to the right," using the same word, crosstown, for both.

As the word downtown spread to other cities, its meaning began to shift. In many places now, downtown isn’t a point on the local compass but rather the name of a neighborhood, usually one that’s old, busy and built-up like the downtown end of Manhattan. But a few other places have a tradition of using "up" and "down" the way New York does. Historically in New Orleans, uptown was upstream along the Mississippi river and downtown was downstream. In Montreal, "up" is towards Mount Royal and "down" is towards the Saint Lawrence. In most of the city, that makes "up" northwest or due west, but in a few neighborhoods on the far side of the mountain, the direction of "up" is reversed—just as it would be in Bali!

To add to the confusion, Montrealers use the words north, south, east, and west in a geocentric way as well. "Montreal east" is really downstream along the Saint Lawrence River—which in compass terms is almost due north. The neighborhood called Le Sud-Ouest ("the southwest") is further east than much of the city on a compass, though in Montreal terms it is indeed "southwest" of downtown. And the "south end" of the Victoria Bridge, which crosses the Saint Lawrence at a slight angle, is really further north than the "north end." Although it confuses tourists sometimes, it works well once you know the system since all the streets are parallel or perpendicular to the river.

Despite all these different systems, North Americans manage just as easily as Balinese people do. Geocentric language might make mapmakers and pedants throw up their hands in despair, but it's convenient and easy to learn—so long as every town, village, or neighborhood can agree on which end is up.

In fact, I've probably barely scratched the surface: Have you ever lived somewhere that has a local geocentric direction system? Let us know how it worked in the comments or on Twitter.

Read the whole story
5 days ago
Melbourne, Australia
Share this story
Next Page of Stories