jon pipitone

Notes from my graduate studies at the University of Toronto in the Department of Computer Science.

Groups and Teams

Saturday, August 25, 2012

Over the last year I've been working part time in the Translational Imaging-Genetics Research lab at the Centre for Addiction and Mental Health.  It's been a significant change of pace for me, and an entirely different domain of research.  I didn't think I would be qualified to work in such a place, but it turns out that with a very understanding supervisor and my aptitude for all things computery, I've found my way into the niche of IT-guy/command-line-wizard/software-developer/research-assistant.  I'd like to take some time, eventually, to describe more about my work in the lab, but in this post I'd want to take you through some of my experiences and observations of the lab culture, because it is significantly different from other places I've worked in academia and I'm enjoying it.

The title of this post is the difference in a nutshell.  In the past, and in particular in during my time in the CS department, I have worked in a group of other researchers.  We each had our own research projects which we worked on mostly independently, and we were assembled in a physical space because of the expansive notion of "software engineering research" we all claimed to be doing.  There was not much in the way of collaboration with other students (that I was aware of at least) in the true spirit of the word though.  That is, it wasn't often that we worked on projects together: where we sat at the same desk and brainstormed or wrote code, co-wrote papers, or chatted about what we were up to specifically that day and asked for a hand with it.  We did regularly have meetings, and sometimes presentations, to update one another on our projects, and we might (sometimes) talk about research over lunch in the lunch room, so we weren't completely isolated from one another but most days passed rather quietly, working alone in our cubicles.  Of course, sharing a physical space meant that I made some friends with the other students, and would occasionally have discussions about research (shout outs to Jorge, Neil and Jono, with whom I schemed several side projects, and Alecia F who was often there to bounce ideas off of/proof read/pester me).  In summary, I felt I had the support of others if I needed it and could ask for it, but overall support wasn't something that was often forthcoming, and the sense I retain from my time there is of working amongst others and not so much with others.

In the TIGR lab the culture is rather different.  We are more like a team, than a group. Although the students in the lab each have their individual research projects, there is lots of overlap between them.  Maybe it's that one person is investigating a different aspect of the same dataset as someone else, or that they have experience with a particular kind of analysis technique that another person needs to use, or  one person may be more familiar with a statistical method or handy with a bit of software that someone else needs.  Several times a day someone will ask for help when they're stuck trying to make heads or tails of their results, or people will spend time discussing (or arguing about) an approach or piece of writing, for instance.  More concretely, for myself, I'm often asked if I can help fix a script or write a bit of bash code to automate a task someone has to do for their work (the neuroimaging world, I've discovered, is rife with pesky file conversions and glue code).  I'm also always asking people to help me use the neuroimaging software (since it's all new to me) or for someone to explain to me how brains/anatomy/MRIs/image-processing/etc.. works.  Additionally, various people in the lab have taken on roles in doing weekly data processing tasks for long-running studies -- often which aren't directly related to their primary research but the study is important to the lab as a whole and the work is just too much to be done by one person.  As well, the PIs in the lab will sometimes gently delegate work to get pilot data ready for a grant proposal, or ask for feedback on the proposals themselves.

The point I'm trying to illustrate is that the lab environment is extremely collaborative, and for the most part this collaboration is seen as a necessary part of the functioning of the lab.  I don't think we could do the work that we do without having the expertise and help of everyone.  As you might suspect, the lab at CAMH is also a much more talkative and social place.  It seems to me that part of this is just the nature of team work -- you need to communicate to do it.  But, there's also a genuine friendliness and camaraderie that has arisen, maybe because of our need for teamwork, and it certainly also supports it.

This distinction I'm making between a group and a team is something I've probably had a sense of in the past but my sudden shift from one environment to another has brought it into focus for me.  You can probably tell just from my biased language that I prefer working in a team.  For research at least, I really seem to thrive when I'm working with and for others (this, despite my introvert tendencies) with a shared purpose.  I'd bet that a more isolated, group environment works well for those people that have a clear idea of what they want to do and are happy to just put their head down and do it.  That, I'm finding, is just not me...  at least not when it comes to research (it can describe me pretty well when I'm on a solo bike trip, or doing field work whilst farming).

I was recently asked to speculate on what makes one laboratory more team-like and one more group-like.  This is probably best left to someone else who has more experience (... or who has done the research... *cough* *cough* Dr. Jorge Aranda *cough*).  But, with my two and half data points in hand (i.e. the different labs I've worked in for any significant amount of time), I'll jot down some of my conjectures as to factors influencing teaminess in the TIGR lab:
  • an overlapping set of research goals and and divergent skillsets amongst the lab members seems to make a lab more apt to be team-y, as I've described above (and see interdisciplinary research below). 
  • a shared, open space.  The TIGR lab is one windowless, smallish room (say, a little over three Jon's wide by three Jon's long) in the basement of CAMH.  There is essentially one desk that wraps around the room, with no divisions, and all six or seven of us students sit side by each.  The two PIs each have adjoining offices that open into the room.  It's a tight space, but it makes spinning around in your chair to ask someone else for help possible, and the norm.  I also like having the PIs share the working space since it adds a we're-all-in-this-together element.  (I'm sure the PIs might sometimes prefer to have a separate space to escape to though!).  In contrast, my lab space in the CS department consisted of semi-cubicles that divided up the room with the professors sitting in offices in a different wing of the lab. 
  • conversations happen, and some of it isn't always about research (like in real life, sometimes youtube parties happen). It can get noisy at times in the lab, but overall people are extremely respectful of the working environment, and also tolerant of discussions going on around them.  This is, of course, a necessity in a lab as tight as ours is.   But the advantage of such freely flowing conversations is it encourages (sometimes serendipitous) opportunities for collaboration.  
  • shared breaks and socialising.  Very often when someone leaves the lab for a break or to get food they ask if anyone else wants to join them.  This includes the PIs.  Even if we just go walk outside to stretch our legs and see the sun shine or get a coffee.  And informal group lunches happen often, especially if someone is excited about a new restaurant, say.  Obviously some of this behaviour happens because we all have bonded and want to hang out, but it's also just a respectful thing to do as a way to include everyone and maybe make sure people are taking care of themselves (read: those-of-us-in-workaholic-mode-who-seem-strapped-to-our-seats).  Of course, we have more organised group outings if someone is leaving the lab, or after conferences, or just at milestones during the year.  
  • personalities matter. This is something interesting: the PIs have made a point of asking those of us in the lab to interview prospective newcomers and give our impressions.  Not so much about a newcomer's qualifications but more about their fit with the lab -- i.e. would they make good lab mates?  It's a rather nice thing to do.  To me it means they recognise the stake we all have in the decision, and that group dynamics in the lab matter because (among other things) they affect the kind of research we all do.
  • the expectation of working together. As I mentioned, it's been an expectation from the PIs that we share in certain lab duties. In group meetings one person may be directed, or volunteer, to help another person.  I don't want to overstate this though; it isn't as if we do all or even most of our work together, or that we're all spending lots of time working on each other's projects. No.  It's just that there is a certain willingness to help out when necessary that isn't really questioned or even maybe obvious, but I notice it as difference and I think it helps build a sense of the team. 
  • shared hardship? I wonder if some of what fosters a team is sharing in the struggle against hardship.  Our lab is newly established and growing.  And that means we regularly experience the growing pains of new hardware and software, for instance.  And as I say, we work in a windowless and somewhat cramped workspace.  It's not ideal in some sense, but maybe this kind of resource scarcity fosters group cohesion in order for survival?  We really do have to tolerate noise and conversation, for instance -- there isn't any choice!  And maybe looking out for one another by going on breaks or getting food is also a way of keeping things friendly and peaceful. 
  • different authorship rules? Here's another really speculative one.  In computer science it seems that the threshold for authorship is set much higher in terms of contribution to a project.  In the the slice of the neuroscience world I'm involved in now, authorship is often given to people who contribute in ways that may only get a thank-you note in a CS paper.  For instance, early on at the TIGR lab I learned how to operate an analysis pipeline which I used to processes a corpus of MRI images our lab had collected.  I put the results of that into our database, and later on someone else used them in their work and I was named on their poster as an author.  Now, I don't think I even deserved a mention because what I didn't feel very significant... but, instead of a thank-you (something I haven't ever seen in neuroimaging papers, by the way)... authorship.  So maybe, subtly, this kind of generous recognition of contribution leads to more collaboration?  I don't know, since I haven't worked in any other neuroscience labs (remember, ~2 data points and all). 
  • interdisciplinary research.  The work I'm doing in the TIGR lab seems just to be inherently more interdisciplinary.  It's even in the title of our lab: translational imaging-genetics (i.e. we investigate   the relationship between genetics, brain structure and function (via imaging), and behaviours and abilities -- mental illness).   Roughly speaking, our lab has people from biomedical engineering, psychiatry, genetics, psychology, neuroscience, physics, chemical engineering, clinical psychology, and computer science.  The problems we're working on are just too big to be tackled alone. 
  • being wrong is okay? so this point was suggested by one of my lab mates who read an early draft of this post.  The idea here is that maybe in a team setting we're sharing more of the day-to-day slog of doing science: we see each other try things that don't pan out, or screw up doing something that eventually does work (or do both at once!) every day. The mundane successes and failures are shared a little more, and that makes for a kind of comfort and willingness to work together.  

On leave

Tuesday, July 19, 2011

Most of you that read this blog know this already: I've taken a leave of absence from the PhD program. I'd like to reflect on this move.  When I mention that I've taken leave to anyone, the two questions I often get are, why? and what are you going to do?

So, first the why.  I've been struggling with my life in academia since I began the master's program in 2007.  The story I tell myself is that I've found it a real challenge to find satisfaction in the pursuit of computer science research.  Mostly it has seemed at odds with all of my other interests in the environment, food, mental health, and activism.  Of course, my environmental interests have strongly guided all of the research work I've done so far; my thesis work on software quality wasn't just about any old software, it was specifically about climate software for the express purpose being of some benefit to climate scientists. I've also run or participated in workshops related to climate change for highschoolers and for software researchers, or on software research with climate modellers, participated in many many discussions in our lab exploring the application of software research to climate change and generally to transition. Starting back in August of last year, I took a step back from this pursuit and wrote a post acknowledging my interest in psychology and environmentalism, and later about my need to incorporate activism into my research. These recognitions of my broader interests (beyond just the science of climate change) led me through a year with some wonderful courses and activities

To essentialise, my recent academic focus has been entirely on exploring the question of what software research can contribute in the transition to a sustainable society.  I've been trying to find a way to integrate my interests.  At points I've been truly hard on myself for not having a good answer to this question, or for not even enjoying the exploration of it. In the time I've spent exploring this question (a little over three years now), I've not found anything that has strongly held my interest.  I've found nothing in the mix of computer science and environmentalism that inspires me.   Moreover, I feel as if I've exhausted myself in the effort of trying to find it. 

I'm pretty sure my exhaustion is as a result of the way I've been approaching research (that is to say, it's not that I think the project of computational sustainability is intellectually bankrupt).  I wish I could tell you in detail about what my approach has been and why I think it has led to this exhaustion (beyond being hard on myself), but I'm only now starting to get the distance to be able to reflect with any clarity.  At the moment, it's still all a bit of a muddle.

I spent a long while considering the move to take a leave of absence.  Originally when I transitioned into the PhD program I had set myself an arbitrary period of a year to discover a research project I felt was worth pursing.  As my deadline approached, I started to feel a real anxiety over the decision. It felt uncomfortably binary: stay and keep searching, or give up the search and leave the program.

Staying began to feel like condemning myself forever to a wandering purgatory, and leaving felt like giving up an amazing privileged and opportunity.  I had myself thoroughly wedged between these two options.  To add to this drama, I can be a moody person and with some regularity find myself in multi-week long slumps (which vary from acedia to a more deep and despairing depression).  Stir this all together and I was feeling pretty darn incapable of much other than just going through the motions.

In the depths of this state I spoke with one of my friends and mentors, who pointed out that I seemed to be obsessing with doing.  As in, all I was asking myself were questions about what I should do next, and what I should be doing in order to be of benefit, or do in order to get myself out of my muddle, etc.  He noted that I seemed to be neglecting being, and that maybe it was important for me that I actually do not try to make a decision to do anything.  To resist making a decision would allow me the space to get a better sense of myself and my interests.  And so, I took the option of a leave of absence.  In effect, it's a decision to not make a decision.

That's the why.

This leave isn't just a delay though, a pause button.  The important thing for me is how I am conducting myself now that I've left, and the attitude I bring to this time.  I've been earnestly trying to explore this idea of being rather than doing.  I'm typically always compelled to do things, to be productive in some sense, to take some action in the world that has some impact.  But right now I am attempting to take a step back from myself and observe what's happening when I have those impulses.  What is driving them? In what ways am I attached to them? What happens when they are frustrated, or when I purposefully choose an indeterminate path that neither satisfies or obstructs?  What would happen if they were never satisfied, then who would I be?  The attitude I'm trying to take with all of this is one of curiousity with myself, and an openness to not hold myself to the ways I, and others, have traditionally held me to.  

If you must know, in terms of what I've actually been doing with my time: I have been journaling quite a bit, attempting to keep a regular habit of sleep and meditation, running much more, taking formal instruction in yoga, and a doing few other sorts of the known healthy things to incorporate into one's life.  I've also been taking time out to sleep in the shade of trees, and appreciate the summer weather, and spend time with friends.  Additionally, I've also been volunteering at the usual places, as well as reading books and listening to lectures on cognitive science and mindfulness. 

So that's that: the why and the what.  Now you know. 

EDIT: I forgot to include one important thought that has been with me through all of this.  I feel incredibly fortunate to be able to be in the position to even have this decision about school to make.  And even more, to have the luxury now to take this time off from work altogether (though I am picking up the odd day of work here and there).  My father calls this a "necessary luxury" which I think is a wonderfully oxymoronic, yet somewhat truthful, phrase.

Peak Oil Blues

Tuesday, May 31, 2011

I'd like to introduce you all to the Peak Oil Blues blog. The blog is mainly written by Kathy McMahon, a clinical psychologist in Massachusetts, and it focuses on the psychological aspects of coping with peak oil, climate change, and collapse.  It's fascinating.

I've been following the blog for some time now but I only recently dipped into some of the "Best of" articles.   There was a lot of activity on the site a few years back and this page tracks and organises the most important posts.  I wish I had started in on them sooner!  Many of the questions I've been asking myself about coping with large changes are addressed in these articles with real sensitivity, self-awareness and depth.

The crop planning problem for market gardens

Saturday, April 9, 2011

I'm so happy that the Journal of Computers and Electronics in Agriculture exists; it is a wonderful combination of three topics that interest me.  The papers tend to be about sensing and identification of animal or plant features, modelling and planning of agricultural systems, robotics, and decision-support tools.  The papers themselves aren't usually my cup of tea though: most of the papers are aimed at solving problems that are relevant only to large or industrial agricultural operations, or for very specialized applications.  But much of the technology proposed could, theoretically, be adapted and used with the kinds of farming I am interested in: small-scale, mixed farms and market gardens. In any case, I've been following this journal for a while now and I find it to be a fascinating read.  It's especially fun when I run across papers like this, or this.

Anyhow, in order to prepare for my final assignment in Climate Informatics, I spent Friday afternoon scanning through the last five years of the publication ostensibly looking for articles to do with crop planning. (But, I also took the opportunity to look for any other interesting and inspiring articles -- hence the exhaustive search).  The assignment for the class involves writing a research proposal and I am considering writing one to investigate the computational problem of finding an optimal cropping plan and rotation for a market-garden (I'm inspired by some of the work done by Institute for Computational Sustainability on equally unlikely computer science topics) .  The crop planning problem could turn out just to be an annoyingly complex optimization problem without any research value, but I thought I'd check to see what prior work exists before I dismiss it.

Sadly, crop planning isn't something written too much about it in this journal.   Here are the two relevant papers I found (the second isn't actually from CEA, but I found it by following references):
R. Sarker and T. Ray, "An improved evolutionary algorithm for solving multi-objective crop planning models," Computers and Electronics in Agriculture, vol. 68, no. 2, pp. 191-199, Oct. 2009. 
J. Bachinger and P. Zander, "ROTOR, a tool for generating and evaluating crop rotations for organic farming systems," European Journal of Agronomy, vol. 26, no. 2, pp. 130-143, Feb. 2007. 
The Sarker and Ray paper gets close to what I'm looking for actually, and has a wealth of references I could follow up with.  The Bachinger and Zander article is much more focused on organic agriculture as it emphasizes the time dimension in the problem definition (rotating where crops are planted in a field over time is done to avoid nutrient depletion and pest problems -- this is not as big of a problem when your are using fertilizer and spraying pesticides).   At the very least it shows that the topic is research-worthy in some field -- though I'm not yet sure it's worthy of computer science research.

Side note: In doing this review I was reminded of what is probably the most interesting and potentially world-changing (IMHO) applications of computers and electronics in agriculture: robotic weeding.  Think about it.  If we were able to develop effective precision robotic weeding systems the non-organic growers could all but give up herbicides.  That's huge.  And since weed control is such a big job for organic growers, robotic weeding devices means organic growers could do their jobs much more efficiently, and with less tractor work and backache.

Modifying historical commits in git

Tuesday, March 22, 2011

As part of some work organising for a top secret workshop (soon to be discussed), I was given a git clone of a repository for participants to analyse on the condition that the commit messages and authors are removed.  Fortunately, there is a straight-forward way to modify git history destructively (not something you'd normally want to do), using the git filter-branch command:

git filter-branch -f --env-filter '
export GIT_AUTHOR_NAME="`echo 798h23l$GIT_AUTHOR_NAME | md5sum`"; 
export GIT_AUTHOR_EMAIL="`echo 2i3fsdf$GIT_AUTHOR_EMAIL | md5sum`"; 
export GIT_COMMITTER_EMAIL="`echo d0af09$GIT_COMMITTER_EMAIL | md5sum`"; 
export GIT_COMMITTER_NAME="`echo 0sdfk9$GIT_COMMITTER_NAME | md5sum`";' --msg-filter '' -- --all

This blanks out the commit message, and sets the author and committer email and name field to a salted and hashed value (so that authors can be compared across commits, but not explicitly known).

Specifically, the --env-filter flag takes a chunk of shell code that sets various environment variables used to reset the author and committer email and name for each commit.  I've set each variable to the md5sum of itself plus a salt. The --msg-filter also takes shell code to modify the commit message, but I've just set it to the empty string. The -- --all at the end just says to apply this filter to every commit.

The git logs now contain the entries that look like following:

commit a0951d56c0d31ef99e0cf9366d0b53cd75bb1073
Author: d62ac7eb9aa769878de91bcd0459b5c5  - <07bd53e7c6c874dfb93d69158135ca9b  >
Date:   Wed Jul 12 16:01:32 2000 +0000

commit b2d8ae2baedc388727e39918af2741e5ba308ebd
Author: 7e521d4c41fa5a518201fb2278acb3c3  - <86a9c9f7d22d7c47f281dc4a68dee371  >
Date:   Tue Jul 11 23:50:22 2000 +0000

A clone of this repository will contain none of the original commit messages or author/committer data, and so will be fine to distribute. 

Food in, friendships out

Monday, February 21, 2011

Wow.  I am exhausted, and brimming with hope and cheer and appreciation for all of the amazing people I met this weekend at the Food-in.

The weekend went just as we had imagined and hoped it would be.  We didn't have too much in the way of a formal structure set in place for the conference: we hoped simply to rely on the magic that happens when you mash together keen, excited folk with a warm, open space and amazing food.  What we got was a veritable frenzy of conversation and idea-sharing and new friendships and excitement.

I was totally blown away by how different each group that we invited was: from the intensely political to the unabashedly epicurean; from those that dumpster-dive for food to those that sourcing directly from farmers; from feeding thirty people once a week to others which feeding four hundred every day; from those that have a formal organisations to those that simply exist by way of friendships and routine; those with two members to those with over a hundred; those that operate soup kitchens to those that operate coffee shops to those that operate bulk food stores; and so on...

And yet, we all had so much to talk about and share.  Here is a sample of some of the workshops that were held (we simply created a paper spreadsheet and had people post up workshop/discussions they wanted to run):
  • Spreading the message: community outreach & publications
  • Dumpster diving
  • Food packing and wrapping: serving minimally packaged food
  • Creating inclusive community with our groups
  • Maintaining institutional memory
  • How to organise to win referendums and elections
  • Community gardening 
  • Food sourcing issues (from farmers and otherwise)
  • Recipe and cooking techniques exchange
  • Organising a cross-country solidarity network
  • Food security outside of the kitchen
Ah-mazing. I'm so grateful for all of the people that came, and to the other Yam!s and peeps that poured a whole lot of love and time into this to make it happen.  I'm especially grateful for the folks that drove out from the East coast (twenty four hours of straight-driving!) and Ottawa and Montreal, and to the lone UBC Sprouter who made this part of us reading week adventure.   w00t.


Thursday, February 17, 2011

Do you know what has me excited, and kept me wonderfully busy and exhausted these days? A conference this weekend of student-run campus kitchens.

I, and a few other lovely Hot Yam! volunteers, have spent the last few months organising this conference, known as the Food-in: a co-created unconference-style gathering of 60(!) students from across the country converging at the Hart House farm for a cosy weekend to share their story of how their groups started and how they operate, as well as run workshops and discussions for one another, and just generally hang out in the awesomeness.

It's going to be rad.

We've got people from Vancouver, Guelph, Toronto, Peterborough, Lindsay, Kawartha Lakes, Ottawa, Montreal, and Halifax, representing 15 different groups. Look who's coming:
You can bet the food is going to be awesome.

About Me