Down Time

Tuesday, 9 March 2010, 8:00 | Category : Reflections, inspiration
Tags : , , ,

I think how you choose to spend your free time says a lot about you. Some people train for a triathlon, some people play video games, some people watch excessive amounts of TV. I knew a guy who seemed to think he could live life vicariously through the characters of TV shows. That made me sad for him.

My boyfriend pointed out to me, that if you ask me how my day has been I don’t say “good”, I say “productive”. It’s true. Achieving things is how I define my worth, and I have very little “down time” because every day is mapped out in advance, in terms of things I want to achieve. This has been the way that I have to work – in order to get through grad school, in order to retain some semblance of balance in my life.

On Friday night, I was walking home from dinner with friends thinking about my goals for the upcoming week and what I want to achieve the following day. Near home, it occurs to me that I could take the day off – I have no pressing deadlines (the conference deadline has been extended) and next week’s list will consist mostly of things that can take little time, or lots, depending on my energy levels, inspiration, and (to an extent), luck.

So I took the day off. I played Sonic the Hedgehog 2 for a while, and got further than I ever have before, and then I settled down to read a book. Specifically, Elizabeth Gilbert’s Eat, Pray, Love (Amazon). I’ve read this book before, which may seem bizarre as I’m very much an atheist, however despite the talk of “God” and religion… this is really a book about a woman coming to terms with herself. I can definitely identify with that. The feelings of inadequacy, of failure. The guilt over taking time to just be. And I remember the times that I felt most happy, most peaceful (with myself) were probably in China. When I climbed the steps 5 times (Friday afternoon cardio exercise) and descended alone, with the sun. The time we spent a whole day hiking up and down a hill, sometimes I was with someone else, sometimes I was alone – and that was okay. In Canada, first thing in the morning, being the first person to descend my favorite black run – air cold against my face and in my lungs. Empowered. Exhilarated. Free.

Grad school can so lonely. I don’t work closely with anyone, I work from home sometimes, but sometimes in an empty office. And yet, when I had a free choice, what does Cate want to do today, I chose to spend my day alone, reading about finding peace with oneself. And I realized – it was the most purely focused I’d been on one task in a while. I wonder, what does that say about me?

Credit: flickr / ihtatho

Twitter Weekly Updates for 2010-03-08

Sunday, 7 March 2010, 23:59 | Category : Twitter
Tags :

  • Why, in small child vs Cate, does the small child always win? Shoulder in so much pain this morning. Must go get massage. #
  • I really loathe 2nd cup. Tried to get an extra cup of hot water for extra teabag they insist on giving me, ended up with 2 teabags. Gah! #
  • Hmm there's another paper deadline next Wednesday. Can I do it? Thinking about giving it a shot… #
  • Not only is adobe's flex unusable and generally appalling software, it's completely f*cked my eclipse installation. Grr! #
  • 13 tips to be a better developer feat. testing, having a life, not rushing – http://bit.ly/b0J4aV /via @GergelyOrosz /by @ochronus #
  • Great advice – "Don't Balance. Blend!" – http://bit.ly/9ful8J /by @mypromotion #
  • Boyf bought me a sweet potato earlier, managed to lose it in block back to our apt. Caused a bit of a meltdown. Tired+hungry+stressed = :'( #
  • Unit testing achievements! http://is.gd/9xaHY /via @ddej #
  • CodeCover keeps crashing my eclipse installation+instead of going for a well designed test suite I'm trying to get 100% coverage. Bad Cate. #
  • I quit facebook this morning. But, now I want to log on to see if anyone noticed… #
  • Now I have good coverage, am pointing out that the class is poorly designed and should be immutable. Thank you, Effective Java! :-) #
  • Students have discovered that I can't follow what they're saying when they speak broad québécois. And they're finding it a bit too amusant! #
  • Urgh I have to use TTCN on a really trivial class, this just makes no sense. Daft assignment-I learned something, not so much about testing. #
  • "Now pick up a functional skill and help build it your damn self." – http://bit.ly/bo2nXv – /by @37signals via @jeffreyftang #
  • Liking this from @sachac – thoughts on using the world "just" to self depreciate – http://bit.ly/bYVfSe #
  • Oh no! Joel on Software is being retired :'( http://bit.ly/9Jhu3m #
  • Just saw the most terrible set of test cases ever. I mean they wrote them, but they may as well not have. Marking is so depressing. #
  • I just got an email starting "Hi Cate" and then referring to me as "Kate" later on. I know, four letters. It's hard. #
  • Awesome video – OK Go – This Too Shall Pass – http://youtu.be/qybUFnY7Y8w /via @snookca #
  • I will not kickbox until I have full movement back in shoulder. I will not lockbox until I have full movement back in shoulder. I will not.. #
  • #1 task today – finish marking. Yes, I'm going to be grumpy and depressed about the future of software development. #
  • I need to get a complete list of someone's followers and their info with API constraints. Is there an app for that? #
  • Why I quit facebook, y'all – "Man in the Box – Facebook Abuse" http://tinyurl.com/yzqzz52 /via @jeffparks #
  • Great article on how being intelligent isn't enough – you have to work hard (and fail) – http://ur1.ca/od04 /via @terriko by @maxklein #
  • Awesome time at #ggdinner I won something! So exciting :-) #
  • Saying no – trying to balance taking opportunities with acting on imagined obligations – http://bit.ly/bf7uDv #
  • Goodlife online timetables are not very navigatable! Why not just have google calendars that I can subscribe to? #
  • Seth's blog today – http://bit.ly/cBUudm – let's finally graduate high school? #
  • Friday night pho! Who's in? #
  • Friend re my opinion of his hair: "you're in a relationship. Your opinion doesn't count" #
  • I'm taking today off! Any suggestions as to what i should do? Go skiing? Read a book? Go back to bed? #
  • Loving this from @sachac – on finding your passion, and not worrying about being behind in achievements – http://bit.ly/bxzXWN #
  • Having a rooftop BBQ. Is it really march? #
  • Wonderful – Data + Art: An exhibition exploring art and science in the age of information. http://j.mp/19WFLq /via @jliyi @dataspora #
  • This is cool, what other ways could we visualize? Piano music on a logarithmic spiral – http://bit.ly/dlqVpc /via @dgou @justinvincent #
  • This TED presentation by Clifford Stoll is completely bonkers, but full of energy and thought provoking – http://bit.ly/nWNwA #
  • I have done *nothing* productive this weekend and it feels great! Normal service should resume tomorrow :-) #

Powered by Twitter Tools

The Desire for 100% Coverage

Sunday, 7 March 2010, 8:00 | Category : Programming
Tags : , , , ,

I recently handed in an assignment on testing. It was fairly simple, and I expected it to take just a couple of hours and not teach me anything. That was not  the case. I really think that every situation is an opportunity to learn something (even if it’s not what you think you will).

Lesson 1: JUnit 4 is awesome. Parametrized testing is a huge improvement.

Lesson 2: Twitter is an incredible source of knowledge. OK, I knew this, but a guy who I have books by responding to a random question is incredibly cool (or, I’m a giant nerd. Whatever).

Lesson 3: It’s important to design your test suite well. We started with 20 test cases, the purpose of which was to test one function, but 5 of them were really testing the constructor. It was clear to me that by well designing a test suite (from the spec, not the code) I could get better coverage with half as many test cases (of course, with parametrized testing this is not such a terrible thing).

Lesson 4: Coverage is seductive. I got a little caught up trying to get 100% coverage, adding tests to exercise paths in the code, rather than aspects of the specification.

Lesson 5: No amount of testing will fix bad design. After I’d written all my tests, I noted that it wasn’t really necessary to test simple get and set methods and lack of coverage there wasn’t really an issue. Then, I looked more closely and realized that those methods (that I hadn’t tested), however trivial, shouldn’t be there at all. The class was modeling a date object, and the tests were to make sure that invalid dates couldn’t be generated. But, using these simple set methods I could easily make invalid dates. Really, the class should have been immutable – but no amount of testing will point that out.

Week in Brief

Saturday, 6 March 2010, 18:45 | Category : Organization
Tags : ,

From last week:

  • Forms and visa application – nearly done, just need to scan passport and submit.
  • Finish Assignment 1 for Testing course.
  • Read 5 papers.
  • Work out 4 times. – not hard workouts, as I’ve injured my shoulder, but that’s okay – need to keep active.
  • Ski instructing.
  • Marking.
  • WISE event at Carleton – couldn’t make it.
  • Outline project paper for Testing course.
  • Last seminar at Carleton.
  • Write code for new idea.

Marking and the assignment took a little longer than I’d hoped. I’ve been thinking about the project and the idea though, and I know where I’m going with both of them.

Also:

  • Finished reading Effective Java
  • Went to the Girl Geek Dinner – was awesome :-)
  • Quit Facebook.

For next week:

  • Submit Visa application.
  • Workout 5 times (taking a looser definition of workout, just some time on the cross trainer or swimming is OK).
  • Try running again.
  • Ski instructing.
  • Write test cases for next assignment.
  • Read 5 papers.
  • Work on new idea.
  • WISE event.
  • No email before progress on MIT (most important task).

Saying No

Friday, 5 March 2010, 8:00 | Category : Reflections, Skiing
Tags : , ,

I’m terrible at this. It’s my biggest weakness, but also – the source of so many experiences and opportunities. So I can’t embrace saying no fully for fear of missing out. But certain things lately have made me think that I need to say no more.

Like, crossing campus on a hectic day when I have tons of stuff going on for a meeting – which the other person did not show up to. The meeting, get this, was one I didn’t think was worth having anyway.

Or, being left off the mailing list for an event with my friends that I’d tentatively scheduled, only to get caught off guard when I’m already 10 minutes late, putting my dinner in the oven and wearing pj’s. The following hour consisted of me getting lost downtown, having a panic attack trying to park, and getting upset when someone else has no problem saying “no”, and even hanging up on me.

Penelope Trunk writes a lot about making yourself likable. An easy way (I think) to make people like you is to say yes to requests. Cate, can you teach this ski lesson? Sure (even though I’ve taught several hours straight and haven’t had lunch). Cate, can you review this and write some test cases? Sure (even though I just found another conference and have about a week to write another paper). Cate, can we get together for coffee? Sure (even though that time is not great for me). Cate, can we meet to discuss this? Sure (even though I don’t think there’s much point). Cate, can you make this workshop? Sure (even though what you’re paying me does not offset the international tuition that I’m wasting by not studying).

If any of the people who’ve made these requests find this post, they may like me less. But here’s the thing – I may be coming across as resentful but I don’t mean to, because I’m not. What I’m trying to get across, is that there’s always a reason not to do things that someone else asks you to do. But often it’s worth it. Take ski instructing, I’ve said yes to basically everything that comes my way, and carried around protein shakes because they always need people at lunch and this way I’m available. So last Sunday, I turn up to see what I’ve had booked and the guy in charge grabs me and takes me to cover for a race coach. And yes, I was thrown off and without ski poles (not really that necessary when teaching 4-year-olds) but after a rocky start featuring a fall off the lift (child) a wrenched shoulder (mine, trying to catch aforementioned child), a fall, a suspected head injury, and the ski patrol (not me for once!) it was awesome.

Every day, I come across things that I would like to say “yes” to, but I don’t. These are the things where I don’t have to respond, so I just don’t. And the opportunity flows by, but it’s okay. Because I have tons of opportunities I’m taking advantage of, and I know that when I have more time I’ll be able to find, or make, more opportunities. I think this is part of learning to say yes slowly.

Where I struggle, is when a response is requested. And I know I need to draw a line – between those requests that are opportunities, or easy to fulfill, or worthwhile… and the things that are just people guilting me, or taking advantage. Because this is what happened with the passive aggressive – she made request after request after request, sometimes explicit, mostly implicit, and eventually I cracked because it was too much, too unbalanced. My giving wasn’t reciprocated at all – and wasn’t appreciated either. Why bother? It just made me miserable. And that “no” was liberating! People have tried to wear me down on it, but they haven’t. I can reason as to why – frankly it scares me when someone thinks unhappiness frees them from any standards of reasonable behavior (though, of course, they do not apply this to other people – no-one suffers the way they do). But ultimately, I sigh and say I just don’t have the time or the inclination. End of discussion.

So perhaps my problem with trying to be likable, is that there are lots of other people who don’t try to be likable. So in the situation with my friends, they probably don’t understand why I didn’t just say no because I found out too late what was happening. And I don’t understand why they don’t realize that I was trying to be nice, and not let people down, and why don’t they have that motivating them when I’m upset. I drove 10 minutes (well 20, but I got lost), they wouldn’t walk 20 metres.

And that’s okay, because we’re all motivated by different things. I’m no longer asking the question, “why wouldn’t they walk 20 metres?” and instead I’m asking myself why I left the apartment in the first place. I didn’t want to. I just felt obligated. And I didn’t have to be – that’s all in my head.

Saying no. I need to do this more. I need to ask myself – do I want to? Do I have to? Why do I feel I have to? Is that a good reason?

Or:

 boolean sayYes(Event e)
    if (doIWantTo(e)) {
        return true;
    }
    if (doIHaveTo(e)) {
        Reason r = whyDoIHaveTo(e);
        if (isGoodReason(r)) {
            return true;
        }
        return false;
    }
    return false;
 }

(I bet robots don’t have these kind of problems)

February

Thursday, 4 March 2010, 8:00 | Category : Organization
Tags : ,

Overall

Really good. Feel like I’m making good progress on all my goals! Yay!

Get a Great Job

So far:

  • Waiting for updated resume to come back.
  • Got offered IBM Extreme Blue Internship! Yay!

Next:

  • Finalize resume
  • Send to people who’ve shown an interest
  • Fill in paperwork and get work visa for internship
  • Be a great intern.

Get a Paper Published

  • Paper submitted, just waiting to hear back.
  • Outline for next paper in head, deadline coming next week I may go for

Graduate

Still to do:

  • Finish course requirement (4/5 done)
  • Complete seminar requirement
  • Submit two papers
  • Write up into thesis

Create More Stuff

I’m not doing great at this, but I’m okay with that at the moment. I have ideas that I’m excited about, and once I’m done school… I’ll be able to work on them. I went to a Team Camp event, so even if I’m not creating much myself I’m at least helping other people create!

Be in Better Shape

  • I kickboxed 3 times last week! Yay! Joined the gym again, so trying to balance. But I’m working out a lot more, and I’m in much fitter physically, so that’s great.
  • Ski instructing is going pretty well, I’ve been teaching fewer small children – which is awesome.
  • Cross-country ski – need to go again – the weather has not been great for this.
  • I should go swimming more – try to increase this.

Be More Balanced

  • End my week on Friday, so I don’t frantically try and complete things over the weekend. - still finding this really helpful.
  • I’m working less in the evenings, mostly because I’m getting up earlier. But I’m balancing better, if I work in the evening, it’s mostly because I want to, or I took time off in the day to work out. That’s OK!

Make More Time for my Boyfriend

  • We’re doing much better and hanging out more. We just started watching My Family.

Parameterized Testing in JUnit 4, or Twitter is Awesome Because…

Wednesday, 3 March 2010, 8:00 | Category : Programming, Twitter
Tags : , , ,

You can ask a specialized, fairly technical question to the world in general…

And get a response from someone who really knows what they’re talking about! (I have books by this guy!)

Made my day!

If you’re interested in JUnit 4 and testing, a brief explanation.

JUnit 4 allows you to create parameterized tests. I.e. you have a test case that you run multiple times on slightly different data. Instead of writing individual test cases, you write one and pass it different arguments. It’s pretty easy.

But, if you’re running tests like this every single test is run on each set of parameters. I thought there would be an annotation, like @NotParam where I  could basically tell the test runner, “Run this test once, it doesn’t take any parameters”. But there’s not – good to know!

The Ultimate Productivity Boost

Tuesday, 2 March 2010, 8:00 | Category : Organization, Thesis, job hunting
Tags : ,

I checked off everything on the list last week. It wasn’t even down to the line – at 1400h on Friday all that was left was one kickboxing class. I hung out, caught up on some reading, watched an episode of Scrubs and then went out for dinner.

And I thought about how it was that I’d achieved this, how far I’d come since I wrote this post. Had I scheduled better? Been more realistic? Said no?

Yes, possibly all these things. But here’s the biggest one:

I’m happy.

Things are coming together – submitting my first paper, getting this internship, nearly being done with school (next week I will complete the tedious seminar requirement – I can’t wait). But more than that, I’m full of ideas for this summer and looking forward to it so much. I’m engaged in my research – I know exactly what my next paper will be about and I’m looking forward to writing it. The classes for the course I’m taking are a little dull, but I genuinely enjoy testing so the assignment I’m working on is fun and I like the readings too. My fitness has improved too – I kickboxed (at 7am) Tuesday and Thursday, again on Friday and went to Body Pump Saturday morning. I’ve realized that with the amount I have on and the aggressive goals I have, I need to work out first thing in the morning because later in the day I start thinking “no I need to finish this before I go to the gym” – and that’s OK, because getting up at kickboxing at 7am is not as unpleasant as I’d remembered.

All that stuff – the organization, the lists, the goals. They help keep what I need to do in mind when I’m discouraged or overwhelmed. But I’m so excited by life right now I wake up every morning knowing exactly what I’m working on that day. And I’ll keep on top of them, because I do have a lot going on and it’s quite possible I’ll need them again soon.

But being happy, and feeling progress being made in every aspect of my life – that’s the biggest productivity boost of all.

Having thought all this through, I came across this article – The top 5 new Rules of Productivity – I’m not alone in this feeling! And next time I’m feeling overwhelmed, maybe instead of thinking “how can I be more effective”, I can just think about how I can be happier, instead.

Twitter Weekly Updates for 2010-03-01

Sunday, 28 February 2010, 23:59 | Category : Twitter
Tags :

  • Another interview this morning… #
  • I got overtaken by a BUS this morning. What are speed limits here? Guidelines? Suggestions you can feel free to ignore? #
  • I just unlocked the "I'm on a boat!" badge on @foursquare! http://4sq.com/cxuoay #
  • Wooo guess who's interning at IBM this summer?!? #
  • Who else is heading to Third Tuesday rather than Gen Y? /cc @tgravatt @isfalk @krusk @spoonsie #
  • Picking up stuff for tomorrow's @upttawawise event. Are you coming? Should be good! We have @mypronotion and @thecodefactory speaking! #
  • Going kickboxing. So early. Hugh willpower. Zzzzzz… #
  • Have crossed campus for meeting and person is not here. Grrr! #
  • Made it kickboxing this morning btw – thanks to @RachelleGendron @Chiara_725 @isfalk for the extra twitter-willpower :-) #
  • Theme song for project I'll be working on this summer. Don't know what to think! http://bit.ly/9WAc9u /via @ExtremeBlueGirl #
  • Office mate: "students are slaves in a new, modern way". Me: "I can't wait to get out of slavery". #
  • News of the madness of the prime mentalist has spread to Taiwan, looks like they reconstructed it with SIMS – lol! – http://bit.ly/ca9ZrV #
  • Great article on how @google rules the web – constantly improving, constantly testing – http://bit.ly/diUnrP #
  • Ratio of the obnoxious to wonderful in my circle is not what I would like it to be. Wonderful people, let's hang out (I won't be obnoxious!) #
  • Couple of hours with @genfriesen and she has a website, twitter, gmail, and google reader. Please welcome her to 2010! ;-) #
  • Great book, What I Wish I Knew When I was 20 – really made me think about giving myself permission – http://bit.ly/dbw5Vw #
  • Still a few places left for Third Tuesday tomorrow! Should be good – http://bit.ly/aFCkgf #
  • Working on tomorrow's talk – thinking to call it "Twitter: Influence and Engagement" #
  • Existing research on social networking data, lots going on in this field (why I love it!) – http://bit.ly/ci0nOp /by @petewarden #
  • This is awesome! Visualizing twitter – mostly content and connections between words. Love the venn diagram! /via @jennielees /by @JeffClark #
  • Slides and commentary for my presentation tomorrow on my Twitter Viz work – please let me know what you think! http://bit.ly/aeppBQ #
  • Everyone seems very excited about a variety of sports… really have no clue what's going on. Bedtime! Need to be up early to kickbox 2m :-) #
  • Hard to motivate myself to kickbox this morning, but I'll feel better for it later… Right? #
  • Getting nervous about presentation later. Also, elbowed trainer in face at kickboxing. Oops. I think he enjoys it, though! #
  • Anyone want my ticket for #TTO Too much on this week, I don't think I can venture out tonight as well! #
  • Exploring parameterized test cases in JUnit 4 (this kind of thing makes me happy!) #
  • Hmm parameterized tests mean -100 lines of code (good) but had to create extra suite for non-param test. Is there an annotation for that? #
  • So presentation today went pretty well I think, I came away with an idea – more soon…! If you missed it, slides here http://bit.ly/aeppBQ #
  • Lots of great points and insight – "Streams of Content, Limited Attention" /by @zephoria http://bit.ly/ayD7CA #
  • I think there's an "is this you" virus going around facebook as well. Tedious. #
  • Committing to a years gym membership! Eeep! #
  • Great post on @zenhabits – kill busywork, do great things by learning how to say yes slowly – http://bit.ly/d3xZn2 #
  • Poor usability sends me driving to another gas station. Where else might this have impact? http://bit.ly/9Bd1mT #
  • Awesome! Visualizing twitter – mostly content and connections between words. Love the venn diagram! http://bit.ly/cK5vCU /by @JeffClark #
  • On track to complete everything on this weeks list. In shock! This never happens! Now, how to spend the afternoon? #
  • Really interesting – what color preferences say about you – test: http://bit.ly/dvtI15 article: http://bit.ly/cphgYs /via @ellelamode #
  • Anyone know of an annotation to mark a test non-param in an otherwise parameterized test suite in JUnit 4? /cc @douglasgresham #
  • Urgh not overtime, waiting for game to finish before I get dinner. Canada just beat the yanks already! #
  • The Canadian are very excited. I'm happy for them! #
  • Injured shoulder trying to catch chil falling off ski lift. Boyf keeps askin if he can pull my arm. So sympathetic! #

Powered by Twitter Tools

The Roles We Play

Sunday, 28 February 2010, 8:00 | Category : Organization, Reflections, Skiing, WISE
Tags : , , , ,

There’s an exercise in 7 Habits where you have to list your different “roles” and  things you need to do for each of them. Here are mine (in no particular order):

  • Grad student
  • Teaching Assistant
  • Ski instructor
  • President of WISE
  • Job seeker
  • Girlfriend
  • Daughter
  • Friend
  • Skier
  • Kickboxer
  • Workshop creator
  • Programmer
  • Nice (i.e. helping other people)
  • Blogger
  • Information diffuser
  • Member of tech community

And I look at this list, and think, no wonder I’m feeling overwhelmed lately. Case in point – last week was reading week, so I should get to relax a little. However, on Tuesday I wanted to kickbox, but I also wanted to go to a tech event and thought that would be a good prep for my interview Wednesday morning. And I found myself in the situation that because I hadn’t managed to get up at 6am (on my week off!) two of my roles were in conflict, and I had to choose.

So I go from a career panel (roles: nice, WISE) to briefly hang out with a friend (role: friend) to this panel (roles: member of tech community, programmer, job seeker). And the next day I have my interview, try to be productive, go kickboxing, and have dinner with friends, take my friend to Carleton to return a book, and crash before I manage to call my boyfriend (who was away).

Two realizations – one, I need to prioritize my various roles. Graduating and getting a job are probably the most important things right now, and the sad truth of that is, other ones may have to be set aside. Like skiing, training is a huge time commitment (with the time it takes to get too and from the hill) and I’m injured – perhaps it’s best to just accept that I’m not going to have a great season. Maybe I need to be less nice, delegate more with WISE, spend less time with my friends. I’m still working out how – but I know I need to make some changes.

Second, there’s no “Cate” on this list – just a bunch of things that Cate does. There’s no chilling out and watching movies. There’s no go swimming even though I’m not training for anything specific. There’s no sleeping in, or kicking back and reading a whole novel. No baking of cakes, or skating, or xc-skiing, or any of the myriad of things that I like to do but don’t do enough to merit their own role.

I’m in danger of becoming a list of attributes that you could define in XML – because I’m not making time for anything not on the list. Because I’m not making time for me.

This will – hopefully – be my last real semester. I think this situation is normal, but not permanent.

Remind me, please, when I’m done, to choose something not on the list – and enjoy it.