Remembering Malcolm Tredinnick

I flew home from the US yesterday and when I arrived in Sydney I got a message from my husband saying that Malcolm Tredinnick had died. According to this piece by Simon Dulhunty, he was found on Monday to died at home in Sydney, possibly after a seizure, while I was at PyCon 2013.

Malcolm Tredinnick speaking to an audience
Malcolm Tredinnick speaking at DjangoCon 2008 (by Sebastian Hilling CC BY-NC)

I’ve known Malcolm slightly since my first linux.conf.au in Sydney 2001. In late 2004 I interviewed for a job at CommSecure (since closed) where he was then working, having been a lead developer of and continuing to maintain and develop a real-time data delivery system for the Hong Kong stock exchange. (The eventual end of that contract was the reason CommSecure later closed.) He was also my boss for about half of 2005 until I left to begin my PhD in early 2006.

I still caught up with him at technical events, the last long conversation I remember with him was at PyCon AU 2011 where my husband Andrew and I had a very Malcolm conversation with Malcolm, which roved over the paperwork hassles of having no fixed address (Malcolm travelled a lot and went through periods where he housesat or lived in serviced apartments for a while), the Australasian chess community, and some gentle mutual trolling between him and Andrew over narrative testing.

What I will remember most about Malcolm is that he was a teacher at heart. I never personally had this relationship with him, but I knew several people at CommSecure and elsewhere who Malcolm had tutored or mentored in programming, often over a very long period of time. Elsewhere I know he had taught mathematics (long before I knew him, he very nearly completed a PhD in mathematics when his area suddenly became fashionable and about 50 years of work was done in 6 months by incoming mathematicians) and chess. I will also remember his dry and sadonic approach to nearly everything (for a very recent example, Malcolm gives useful parenting advice), combined with “really, how hard could it be?” used both straightforwardly and distinctly otherwise. Goodbye Malcolm.

Update, funeral plans: Ray Loyzaga who was Malcolm’s close friend, and long-time founder-CEO of CommSecure, has announced that Malcolm’s funeral will be at 2:30pm Thursday April 4, at Camellia Chapel, Macquarie Park Cemetary, North Ryde, Sydney.

Other memorials:

Malcolm online:

Creative Commons License
Remembering Malcolm Tredinnick by Mary Gardiner is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Why my phone is silent during LCA talks

I don’t especially like Tasker’s interface, but setitng one’s phone to silent is nice enough to bust it out, so I thought I’d explain how I do this during linux.conf.au.

A bit of background: Tasker is an Android application (not free in either sense of the word) that does things to your phone when certain conditions (called contexts) are true. For example it could change the wallpaper (task) when you have unread text messages (context). I have, for example, Tasker tasks that turn my phone to silent between 10:30pm and 7:30am local time; and to run rsync backup (which copies the contents of my phone to my home server, ie backs it up) every time it is both on power and connected to my home wireless network.

Tasker somewhat trades between UI simplicity and power in favour of power (although even then I think there are better possible UIs for it). You can generally find specific apps that do individual Tasker-like things (for example, I would not be surprised if there was a ‘Silent at Night’ app), but Tasker lets you specify a wide variety of contexts and tasks.

First: the LCA calendar iCal is in my Google calendar, so it’s available to Tasker through its Calendar contexts. So that’s prior to setting this up.

The basic setup would be this:

  1. Go into Tasker.
  2. Add a Context (called eg ‘LCA activities’), select ‘State’, ‘App’, ‘Calendar Entry’.
  3. In Calendar Entry, go down to Calendar, press the search icon, select your LCA calendar.
  4. Press the tick.
  5. Now it will prompt you for the task, which is silencing your phone. Select ‘New Task’. Name the task (‘Silence’): it might be useful for other contexts!
  6. Press + to add an action. Select ‘Audio Settings’ and then ‘Silent Mode’. Turn ‘Mode’ to ‘On’. Leave ‘If’ alone. Press tick to approve the action and then tick to approve the task.

After this teeny (ahem) amount of work you now have a Tasker task that silences your phone during any event on the LCA calendar.

Fine print

My setup is a bit more complicated than this because I thought ‘wait, I want my phone to ring during meals’. This is a pain in the neck to do.

I added a second Context (long hold on the existing context), another Calendar Entry, also on the LCA calendar, but I also searched for location, selected ‘MCC Foyer’ (which is where the morning and afternoon teas are) and selected the Not tickbox, to make it a negative context. The total effect is that when there’s an event in the LCA calendar AND when there’s not an event in the LCA calendar that is in MCC Foyer, the task triggers. But that’s quite a bit nastier.

It can end up being easier to have a calendar that amounts to a ‘Do Not Disturb’ calendar, which isn’t ideal. Some people do something like “silence during anything in my work[/personal] calendar that’s marked busy”, etc etc, which would be longer lived than my LCA recipe. BUT at least my LCA recipe buys us silence for this conference!

Creative Commons License
Why my phone is silent during LCA talks by Mary Gardiner is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

How to do more writing, by someone who has never made any such resolution

Jonathan Lange asked on Google+ for ideas about keeping a “write more” resolution. I took over his comment section, and in the spirit of taking some of my own advice, here’s a synthesis of what I said there. Since not writing as much as I feel I ought is never a problem I’ve had, this advice is in the delightful genre of someone who has never needed the advice simply making some up and giving it to you anyway! Enjoy my half-baked ideas.

Re-use your writing. A lot of people I know spend an enormous amount of time on crafting lengthy, tightly argued emails. These count, and you can make them feel like they count by editing them for a sufficiently general audience and publishing them on your blog. This is one I actually do do: several of my Geek Feminism pieces originated in annoyed private emails I sent to close friends, or in IRC rants.

Accountability and incentives. This is like all of the “how to exercise more” advice: make it public, make it social. Make a public commitment, make a shared commitment with a fellow writer. Have a competition, one-sided or not (“I will write more blog entries than N will this year”?). Deadlines and someone who will be personally disappointed in you can be an excellent motivator (as long as it doesn’t tip you over into an avoidance cycle), and for writing there’s a whole profession which involves, in part, holding people to deadlines and being disappointed if they fail to meet them: so, find an editor.

Unfortunately, in order to get an editor one generally needs to pitch (leaving aside the whole question of finding an agent, especially when it comes to fiction), which means writing, so you will have to be motivated to do some writing before you can partially outsource your motivation to editors and deadlines.

Becoming a freelancer seems like a big effort in order to fulfil a personal goal to “write more”, but part of the attraction is that you can pitch to places that have a ready-made audience, which means that you have outsourced any implicit “write more in places people will read it and find it useful” goal; you don’t need to put an equal or greater amount of work into building an audience for your writing.

Specific goals. This assists with accountability. What does writing more mean? A certain wordcount? A certain number of blog entries? A certain number of pitches sent out? A certain number of pitches converted to published articles? All of these are more artificial but easier to keep accounts of than “write more”.

Spend money. Enrol in a course or similar. This adds deadlines too, typically.

Creative Commons License
How to do more writing, by someone who has never made any such resolution by Mary Gardiner is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Mourning the Squeezebox

Logitech has discontinued their Squeezebox line of wireless music players.

Background: the Squeezebox was a device originally by Slim Devices, later acquired by Logitech. The Squeezebox (SB) originally supported playing music which was streamed over your home over a custom protocol, it involved running a server process written in Perl on the machine which contained the music. For several years, there has also been a My Squeezebox service which streams music over the Internet. The server/My Squeezebox can in turn stream podcasts, radio stations and so on.

We bought our first Squeezebox in, I think, 2008, which drives some Yamaha reference monitors I’ve had since 2001 (and then spent 7 years searching for a half decent networked music playing solution in order to use them more than occasionally) and added a Squeezebox Boom, which is about the size of a classic micro hi-fi system and has built-in speakers, a year later. We’ve been using them ever since. Both were already discontinued models in favour of the SB Touch and SB Radio, but were receiving firmware updates and support. All support for the entire ecosystem is now being ended by Logitech, in favour of the Ultimate Ears (UE) brand, which so far contains one wireless music player, the UE Smart Radio.

Possible replacements:

The Logitech UE system. Pros: I believe it’s similar hardware, and the SBs have worked well for us. Cons: the UE line only contains one wireless player right now, the UE Smart Radio, and it does not support use of your own speakers. UE devices do not understand the SB protocol, so unless we junked our SB devices we’d need to run two server processes and would lose things like syncing all our players to play the same thing at the same time. Linux is no longer officially supported for running the server software. In addition, I haven’t got confirmation of this, but it seems it is impossible to use the UE Smart Radio without signing up for an online service, which raises the spectre of not being able to play my music when the ‘net is down, or possibly at some point in the future having the UE suddenly stop working forever, when that service is in turn discontinued.

The Sonos. Pros: I don’t follow the wireless music market closely, but I understand this is the brand that’s associated with quality music engineering. Technically, it can stream music from a SAMBA share as well as from the Internet. Cons: it too has made its deals with the we’re-watching-you devils: It will only play RadioTime’s approved podcasts, obviously there’s a workaround involving downloading to the SAMBA share we would use, but that’s still annoying. We again lose the house-wide syncing if we keep our (not cheap, and still functional) SB devices in the house. The podcast thing suggests that the Sonos may also be vulnerable to “do the players still work if Sonos goes away?” concern, but again, I don’t know.

The Roku Soundbridge. Pros: I believe it understands the SB protocol, which means it would be the best fit for our existing music network. Cons: there only seems to be one model in its lineup too, a speakerless one. I’m not intending to buy separate speakers for every room we want music in. Otherwise this is probably the most seamless replacement for an SB.

Bluetooth speakers. Or I guess a receiver, in the case of my reference monitor. Pros: a bigger market to buy from, way less vendor-dependent (even if documented) custom streaming protocols to deal with. Cons: Bluetooth support, or alleged support, in car stereos has not endeared this solution to me, to me Bluetooth means “does not work-tooth”. I have no idea how to achieve the multiple rooms with the same music effect either. And it then leaves the problem of queueing up the music on the headless server. I spent several years seeing how bad all MPD clients could be, I’m not keen to go back to that. In addition, we have enough trouble getting 802.11 signals to span our house, never mind Bluetooth.

I think at this stage, given that luckily the SBs are not going to stop working unless the hardware fails or the software stops running on later versions of Linux (both are possible, of course), that what we’ll probably do is try and snag a SB Radio or two before they get too hard to get hold of, stick with them and our existing devices until the bitter end, and then hope that Bluetooth or some later protocol and its Linux support are up to what we want to do. Since we aren’t likely to subscribe to streaming services in the very near future, this is viable.

If Logitech eventually puts out firmware support for the UE protocol onto older SB hardware, as Gadget Guy suggests they will (but there’s no sign of it on the Logitech forums), it will be more tempting to move to UE than otherwise, at least if the server is known to work on Linux. Otherwise, an additional strike against Logitech products is that they’ve substantially damaged my faith in their longevity. Quoth Matthew Moskovciak on CNET It may be wise to see how Logitech handles its Squeezebox customers before committing to the new UE ecosystem. There’s probably 12 to 24 months of endgame in that.

Update: Sue Chastain has more info, including an apparent confirmation that the UE Smart Radio will indeed not work in the absence of an Internet connection, even when playing locally stored music.

Update January 2016: we moved to Chromecast Audio. No more hardware ecosystem lock-in for us!

Creative Commons License
Mourning the Squeezebox by Mary Gardiner is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Ada Lovelace Day: Marita Cheng, Robogals founder

Today, October 16, is Ada Lovelace Day: write or record a story about a woman in science, technology, mathematics or engineering (STEM) whose achievements you admire.
This is a slightly updated version of a profile that has appeared on Geek Feminism and Hoyden About Town.
Marita Cheng was named as the Young Australian of the Year winner at the beginning of the year. She’s been involved in volunteering since she was a high school student, and in 2008, early in her undergraduate studies (mechatronic engineering and computer science at the University of Melbourne) she founded Robogals, which is an engineering and computing outreach group, in which women university students run robotics workshops for high school age girls.

Marita, while still in the final year of her undergraduate degree, is also an entrepreneur and has been previously awarded for her work as founder of Robogals, including winning the Anita Borg Change Agent award in 2011. In 2012 she travelled to several countries with the aid of the Nancy Fairfax Churchill Fellowship to study “strategies used to most effectively engage female schoolgirls in science, engineering and technology.”

While I have heard of Robogals, I hadn’t heard of Marita specifically before she became Young Australian of the Year. One of the fascinating things about starting the Ada Initiative is slowly discovering all the other amazing women who work in technology career outreach and related endeavours. But it’s a little embarrassing, judging from her bio, to have not heard Marita Cheng’s name before the beginning of the year!

Further reading:

  • Marita Cheng’s website
  • Life is turbocharged for Robogals founder (a profile this past weekend)
  • Creative Commons License
    Ada Lovelace Day: Marita Cheng, Robogals founder by Mary Gardiner is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

    Ada Lovelace Day: Else Shepherd, leading Australian electrical engineer

    Today, October 16, is Ada Lovelace Day: write or record a story about a woman in science, technology, mathematics or engineering (STEM) whose achievements you admire.

    Else Shepherd is an Australian electrical engineer specialising in communications equipment. She has co-founded multiple Australian engineering companies, including Mosaic Information Technology, a custom modems company, and Microwave & Materials Designs, developing microwave filters for mobile phones. She was appointed as the chairman of Powerlink, the state government-owned corporation maintaining Queensland’s high voltage electricity grid, in 1994, and has been a board member of the National Electricity Market Management Company (now known as the Australian Energy Market Operator).

    Shepherd won Engineers Australia’s Peter Nicol Russell Memorial Medal in 2007, their most prestigious award, recognising an engineer with over 20 years of substantial contributions to professional engineering in Australia. As best I can tell, she is the only woman Peter Nicol Russell medallist. She is also a Member of the Order of Australia since 2003, and was the University of Queensland Alumnus of the Year in 2009. She is also a pianist and choral director.

    Shepherd has talked about her experience as a woman in electrical engineering with University of Queensland publications. She and one other woman graduated in 1965, the university’s first women graduates in electrical engineering. She was unable to attend Institution of Engineers meetings in the 1960s, because they were held at the local Men’s Club. She continues to promote workplace flexibility, having used part-time work during parts of her career to care for her two children.

    Further reading:

    Creative Commons License
    Ada Lovelace Day: Else Shepherd, leading Australian electrical engineer by Mary Gardiner is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

    Harassment report at your conference: what do you do???

    This article was written by me and originally published on the Ada Initiative’s website. It is republished here according to the terms of its Creative Commons licence.

    The Ada Initiative’s anti-harassment work and other anti-harassment initiatives have resulted in many conferences adopting anti-harassment policies.

    The Ada Initiative are not enforcers of individual conferences’ policies: this is the responsibility of conference staff, and conferences do not usually inform us of reports, nor do we expect them to. Harassment within a community is that community’s responsibility. However, in some cases when Ada Initiative staff have attended a conference, we have been asked to advise conference staff on responses. We’ve learned several useful techniques for making sure that the conference follows through quickly on its commitment to anti-harassment. We’ve drawn our experiences together into a wiki page: Responding to harassment reports.

    Our first tip is, of course, to have a policy. Harassment incidents at geek conferences — including open technology and culture conferences — are widespread. If harassment is reported at your conference and you do not have a policy, it is difficult to reach consensus among conference staff that harassment is not welcome, let alone that you should respond to it, or about how you should respond. The result is that people who are worried about harassment, or who have experienced it at your event or other events, will not feel or be safe at your event. Your policy should be in place before your conference. The Ada Initiative and Geek Feminism volunteers have prepared substantial resources on how to put a policy in place.

    You should also pre-prepare some emergency contacts, for incidents that you can’t handle. Conference volunteers and staff are rarely able to solely respond to and properly help with physical safety threats, illness or people in crisis. We suggest preparing a handout with contacts for emergency services, venue security, local medical and mental health facilities and crisis hotlines for mental illness, sexual assault, and physical violence. Make this info available in your conference materials so that attendees do not have to come to you, but have copies to hand in case they do.

    Having a staff member whose key responsibility is to assist attendees in difficulty (rather than routine conference chores) can assist in a fast response, see the Duty officer wiki page.

    Unfortunately, having a policy does not mean harassment won’t occur at your event. Once an incident is reported, you need to respond rapidly to reports. As the wiki page discusses in more detail you should:

    1. get a written report where possible, or have the staff member who received it write down what they were told
    2. have a staff member collate these reports in case of multiple incidents of harassment by one person, so that you can respond to the pattern rather than one instance
    3. have a staff member discuss the incident with the alleged harasser
    4. convene a meeting as soon as reasonably practical to decide on a response
    5. decide on a response and communicate it to the complainant and the harasser as soon as possible
    6. provide the harasser with an avenue of appeal if one is available but insist that they abide by any sanctions in the meantime
    7. communicate the incident and response briefly to the community, either attending the conference or reading your blog etc, to allow them to see that the policy is enforced
    8. remind the attendees and community where the policy is found and invite them to review it

    We welcome additional improvements to our detailed guide on how to respond to harassment reports. If you would like to discuss the suggestions, please do so on the wiki’s talk page.

    Creative Commons License
    Harassment report at your conference: what do you do???
    by the Ada Initiative is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
    Based on a work at https://adainitiative.org/2012/10/04/harassment-report-at-your-conference-what-do-you-do/.

    larch: migrating mail between IMAP accounts

    I recently had to move several gigabytes of email (not my own, work-related) into Google Apps (Gmail). As best I can tell, the way most people do this is that they grit their teeth and they open up a graphical email client and drag folders one-by-one. It’s a one-off job for most people.

    There were a couple of reasons I didn’t want to do that. One is that I was on my parents’ DSL connection at the time and pushing gigabytes of data through someone’s DSL is a violation of good guest principles, at least in Australia. The other is that we have over 500 folders in the account I’m talking about: that’s a lot of mouse pain.

    Anyway, here’s your answer, if you are in the same position as me. After substantial searching, at least for this kind of tool, I came across larch, which is a Ruby command-line tool for IMAP-to-IMAP moves, most tested on Gmail and essentially designed for the “move my mail archives into Gmail” use-case. It’s much more mature than most of the one-off scripts people have thrown up on the ‘net. It certainly seemed robust over this volume of mail, although I did have to run it a couple of times to get past a few errors (it does not re-copy already copied mail, so re-runs are fast). It deserves more search juice.

    If you wanted to keep two accounts permanently in sync, offlineimap would be the tool of choice, although the manual still seems to regard IMAP-to-IMAP syncing as not as robustly tested as its core mode of operation, which is IMAP-to-Maildir.

    Creative Commons License
    larch: migrating mail between IMAP accounts by Mary Gardiner is licensed under a Creative Commons Attribution 4.0 International License.

    Viewing attachments when using mutt remotely

    Yes, that’s right, I’m still in the dark ages and do not yet use Gmail for my email. Even though it has IMAP and everything. I still use Mutt.

    I almost always use Mutt locally, using offlineimap to sync IMAP folders to local maildirs. This means I don’t usually have the problem of being unable to view non-text attachments. However, for the next little while I’ll be using Mutt on a remote connection.

    Don Marti has one solution to this, which assumes that you are accessing the server with Mutt on it via SSH (probably true) and are easily able to create a tunnel to your local machine, which is trivial if you are using a commandline ssh client, but while you can do it with PuTTY I figured it was just annoying enough that I might not bother. (And I doubt you can do it at all with those web-based SSH clients.)

    My alternative assumes instead that you have a webserver on the remote machine that has mutt on it. It then just copies the attachment to a web-accessible directory, and tells you the URL where you’ll be able to find the attachment. It’s thus a very trivial script (and I doubt very much it’s the only one out there), but perhaps using mine might save you fifteen minutes over coming up with your own, so here it is:

    copy-to-dir.sh (in a bzr git repo)

    Sample output is along these lines when you try to view an attachment in Mutt:

    View attachment SOMEPDF.pdf at http://example.com/~user/SOMEPDF.pdf Press any key to continue, and delete viewable attachment

    In order to use it, you need to:

    1. copy the script to the remote machine where you use mutt;
    2. make it executable;
    3. edit it to set the OUTPUTDIR and VIEWINGDIR variables to something that works for your setup;
    4. set up a custom mailcap file much like the one Don Marti gives, that is, put something like this in your ~/.mutt-mailcap:
       text/*; PATH-TO-SCRIPT/copy-to-dir.sh %s application/*; PATH-TO-SCRIPT/copy-to-dir.sh %s image/*; PATH-TO-SCRIPT/copy-to-dir.sh %s audio/*; PATH-TO-SCRIPT/copy-to-dir.sh %s
    5. set mailcap_path = ~/.mutt-mailcap in your ~/.muttrc file.

    Something like this probably could work for Pine and other text-based email clients used remotely too, but I’m not sure how because I don’t use them. And if someone wants to document this in a way that assumes less pre-existing knowledge, go ahead.

    Also, making your attachments web-accessible means that they are, well, web-accessible. I’ve set up a HTTP Auth-protected directory using https for this, you should think about your own setup too.

    Creative Commons License
    Viewing attachments when using mutt remotely by Mary Gardiner is licensed under a Creative Commons Attribution 4.0 International License.

    The art of the blow-off

    This article originally appeared on the now defunct Geek Etiquette website.

    The primary rule is to consider how much your absence will inconvenience your friend, and how much damage it might do to the relationship. The more of these factors that hold, the firmer you should see the commitment as being:

    1. you have blown off this friend for any reason in the recent past
    2. he has not blown you off for any reason in the recent past
    3. he has invested emotional energy in you in the recent past (eg letting you talk about a breakup or work woes)
    4. the plans involve a small number of people, possibly just the two of you
    5. the plans involve him going out of his way, eg travelling a long distance, making a lot of phone calls, reminding you of the event fifteen times
    6. the plans involve the organiser paying for things, especially in advance (consider this carefully… he may regard telling you that he paid a deposit, or that the tickets aren’t refundable, as crass, so use some common sense)
    7. a number of other people have blown off this event already
    8. it’s close to the event, such that the organiser is likely to have chosen to say no to other things that might have been fun and/or profitable because he had committed to his plans with you
    9. you have expressed extreme enthusiasm about the plans (even if you actually express extreme enthusiasm about everything)

    If you consider these, and either very few of them hold or your reason for the blowing off is stellar, you should:

    If you consider these, and either very few of them hold or your reason for the blowing off is stellar, you should:

    1. make every effort to cancel as early as possible
    2. apologise sincerely and be accepting of and don’t call the organiser on any irritation that creeps into her voice
    3. if money was spent, make several firm offers to repay the organiser for the money she spent on you (about three firm offers is the right number). If you can possibly afford to, don’t ask her to buy back your ticket from you if there was one: give it to her for someone else’s use.
    4. when apologising, don’t explain the excuse in great detail. You probably should mention the general idea (“this big project has sprung a leak”, “John is in town”), but don’t lean on it, even if it’s really important to you, and especially if your motives are money (eg overtime rates).

    The only time that you should dwell on your excuse is when your excuse is traditional: that is, you were sick or another friend or family member died or was sick and needed you. Attempts to downplay that come across really strangely (eg “I had this seizure type thingie, oh well, I’m so so so sorry, I’m such a bad person”). Your friend will want to help or sympathise, most likely.

    Otherwise, the problem with explaining your excuse in great detail is that it comes across as tantamount to explaining to the nearest cent exactly what the relationship is worth to you (“ok, so I’m less important than the boyfriend’s last minute availability”, “ok, so overtime rates trump my friendship”). More details actually make this impression worse, not better, because they show just how cold-bloodedly you calculate the worth of your friends. This may seem like nonsense—we’re all upfront hyper-rational geeks here who should be happy to have our friendship valued at market rates—but remember, it’s best for her when you over-commit to a friendship. So showing signs that you’re only rationally committed is hurtful, and not only at the conscious level either.

    In some cases, eg hard to get tickets or the like, it can be nice to make gentle offers of a replacement for yourself. “Please go ahead and find someone else to take with my ticket. If you don’t find anyone, I know my friend Karen would be happy to go with you, and you’d love her, so give me a call.”

    The best way to make amends is to firstly be careful to honour social engagements with this person very highly the next couple of times and depending on the level of trouble you put them to, try and assume the organiser role next time. Take the trouble on yourself, and furthermore organise to do something that your friend likes, at a time and location especially convenient for her, rather than yourself.

    Oh, and if the reason you are blowing your friend off is because you suspect that he or she is romantically and/or sexually interested in you, and you are trying to gently signal your own lack of interest, this is a bad way to do it. The good way to do it is to bite the bullet and deliver that awkward “um, so, I’m not sure if I’m right, but just in case… I, um, I’m not interested in dating/shagging you” line and then give him or her a week or two without unnecessary contact so that he or she (a) believes you and (b) can choose to put on a social mask and pretend that this interlude never happened.

    On the other hand, if you are blowing off a friend BUT you are romantically or sexually interested in him or her, just your luck, they probably will read blowing them off as a irrevocable sign of your lack of interest. If for some reason the time is not ripe to make a completely unambiguous move, you need to really work hard and express your regret at missing this thing, and furthermore, organise a replacement event almost immediately, ideally one that’s slightly more intimate and slightly harder to organise than the one they organised for you.

    Creative Commons License
    The art of the blow-off by Mary Gardiner is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.