On Using TagTime

I got into such a strong posting habit for awhile there that if practically feels like it’s been forever since the last time I wrote anything. I don’t have anything prepared on the papers I’ve been reading, but on the subject of organization I’ve been trying something a bit new lately and I thought I’d talk about it.

First, I’ve started to really try out TagTime properly (relevant links: github page, Android store, blog post explaining it) and I’m finding it an interesting experience. I try to track a lot of what I do using org-mode clocks, and for something like billing a client that’d still be my preferred method, but for just a general quantified-self experience TagTime is treating me well so far. Because I do a decent amount of work away from the computer, I decided, against dreeves’s personal recommendations, to just stick with the android version for my tracking so that’s the workflow I’ll be describing. Now, the basic concept of TagTime is really simple: once you start the program it randomly, although with a mean of every 45 minutes, asks you what you’re doing in that moment. You then respond with a list of one-word “tags” that label what you were doing with your time in that moment. You’re not supposed to describe what you’ve been doing over the period since you were last sampled, but rather just what you are currently doing when you are “pinged”. The idea is that by sampling randomly that you’ll be able to get a rough picture of how you’re spending your time by the assumption that what you are doing the moment of the ping is what you have been doing since the last ping.

Some of the obvious selling points are that you don’t have to sit there and remember to start a clock nor do you necessarily need to consciously do anything when you change tasks. The obvious downside is that for precise time tracking the burden of exactly starting and stopping clocks is probably your best bet, but TagTime definitely gives a Good Enough kind of picture. I’ve been trying for awhile now to get a sense of where my time is going, since given some of the problems I have with my memory that’s honestly not an easy question to answer, and after just a few days I think TagTime is giving me that.

The other thing it’s doing, strangely enough, is that it’s keeping me on task for longer at a time. Since I’m trying very hard to be honest about what I’m doing in that moment, then I’m finding myself resisting the urge to dick around online when I’m getting frustrated with how to phrase something or how to solve a problem. As a matter of pride, I really really want to have that ping go off when I have something respectable to feed it. I wince during the times I have to say “Twitter” as my answer to what I’ve been doing. Now that doesn’t mean I don’t still sometimes check twitter and tumblr when I’m thinking, but it’s less frequent since I’m weighing it against the possibility of a ping catching me on social media.There are some exceptions to my absolute honesty, though, in that using the restroom, grabbing some water, etc. still “count” as the thing I was actually doing around those minor interruptions. The exception makes sense both in terms of gathering data, and because I am totally the kind of person who would not take care of myself if there was the slightest pressure against it. I guess the other way it’s interesting is that it helps me to keep going when I’m feeling like something is hard and frustrating enough that I just want to be done with it. For example, on Thursday night I ended up doing a lot of delinquent cleaning in our kitchen because by chance it’d been two hours since the last ping and dammit but I wanted to make sure that I had the opportunity to put down that I’d been cleaning and not just “watching tv” or something like that. So I finished the backlog of dishes in 15 minutes, the ping still hadn’t happened, so I scrubbed the kitchen floor for another 20 minutes, the ping still hadn’t happened, etc. until it was a total of two hours later and I’d done some cleaning tasks that had been on my queue for probably about a year.

That might seem like a silly example, but to me it’s basically a reminder that I could be doing something during these recent days when almost everything has felt too hard and scary. In some ways, this gets at a point I’ve wanted to make for awhile now because I’m not saying that quantified self tools or commitment contracts or organizational techniques can change your life and allow you to be awesomely productive 100% of the time and able to do things you never dreamed of before. It’s a lot more complicated than that and, ultimately, the reason why I have success with the tools I’ve been using is that they’re helping me do things I wanted to do anyway. I want to write and do research and get published and teach and read and keep a tidy house. These are all things I want to be doing but often feel like I can’t because it’s too overwhelming, I’m terrified of starting, or even that I can’t pick just one thing that I should be doing so I end up choice-paralyzed because I don’t know how to make the perfect choice. Just by the nature of my mental illness, I spend a lot of time dissociated and on some days I have a very hard time staying connected to the present. This makes is really easy for me to zone out and stare into space or doing something automatic such as refreshing twitter without actually being aware of my surroundings. Having a reminder that time is passing, strange as it may sound, is actually very helpful. On the worst days, I don’t think any tools or tricks or lifehacks will really help. In contrast, on the days when I’m at my healthiest I have no problem picking tasks to work on and seamlessly and calmly moving between them, and I don’t really need any external force to help me stay on task and remember everything. All the the tools and tricks I write about are assistive technologies for the 80% of my life that lies between being non-functional and displaying no symptoms at all.


Review of the week

So my first week off has been rather busy, but not in the ways I expected. I’ve done some academic writing and reading, but I’ve done a rather lot of personal writing over the past two weeks. In retrospect it makes sense since that’s kinda what my brain does when I have a little bit of time off: it dumps out All The Feels that I’d been holding in so I could concentrate on immediate things. It also doesn’t help that a week ago I completed some legal steps that help close a rather unpleasant chapter of my life. It’s too personal to really get into, but it does mean I’ll probably feel safer than I have in a long time.

I’ll be completely honest here that All The Feels means that I barely remember the past week. I’ve been a bit of a wreck. That’s why I’m planning to put any more personal writing about mental illness and all that on hold for the rest of the month and instead focus on academic writing. That plan might not entirely hold, since plans almost never do, but it is a plan at least.

Reflecting upon all the personal writing I’ve done in the past week, I’m trying to not be an ass to myself for being an emotional wreck. After all, I never allow myself vacation time and having a week of not doing much seems pretty reasonable after finishing my summer teaching job but before I go back to my department.

I think it’s also fair to point out that since March, when I started keeping track on Beeminder, that I’ve written >100k words total (combining blog posts, teaching materials, and paper drafts) and have written over 70 blog posts. This is the most consistently I’ve ever stuck with any project and I probably wouldn’t have been able to do it even just a couple of years ago. Is it weird that I feel a little proud of that?

So in the next few weeks here we’ll do more on domain theory and maybe review some HoTT papers, with probably the occasional rant and/or rave here and there.

Random Thoughts and Research Ideas

I’m having trouble finishing a post I was trying to write about teaching and how I think, in academia, we sometimes select against traits that are important to being an effective teacher so I think instead I’ll try to brain dump about the various things going on in my head right now in no particular order.

I’ve read the first couple of chapters of Simon Marlow’s book on concurrent and parallel programming in Haskell (well, I suppose more accurately with GHC). It’s cute and well-written. I don’t particularly have a use-case for what I’d use this for, but it’s one of those things I’m reading for my own edification. One observation I do have is that once you’re dealing with things like the Eval monad it starts being quite obvious the nice abstraction ability you get from laziness + an algebraic sequencing abstraction such as monads. The fact that you can separate out a computation from the way it’s evaluated in such a clean manner is just gorgeous.

I’ve been also reading, on and off, the book Let Over Lambda which is about advanced macro use in Common Lisp. I’m only through the first few chapters and, again, I don’t have a particular project that I’m trying to work on using Common Lisp let alone macro hackery but it’s one of those things I just wanted to read about to expand my horizons. Common Lisp was one of the first languages I learned, the first after the imperative hell that was C++ and Fortran 77, although I never really became that proficient in it. Most of my programming experience is in Haskell. Code that generates code has a certain conceptual appeal to me, which is why I’m going back to relearning macro techniques. When I was first learning Haskell, I oft heard the claim that laziness gives you 90% of the power of macros because of the ability to manipulate control flow. I figured why not actually check that claim out myself for once?

On the reading front, I’m also rereading chapters of the HoTT book and formalizing what I can on my own in Agda just to get more familiar with the techniques involved. This past week I also read these papers, which were both pretty easy to read and had cute results. This might be a silly thought, but while HoTT represents a type theory that describes synthetic homotopy theory I’m really interested in what a type theory that describes synthetic geometry would look like. I full admit that it’s my own bias since I cut my teeth first in differential geometry many years ago. On my first read/skim through of the HoTT book I never actually read the chapter on the real numbers, so I’m trying to work back up to that. If you can deal with reals, then maybe you can define the structure of differentiable manifolds in a non-wrenched way within the type theory? Has anyone already done that? I wouldn’t even dream of trying to do diff geo in ordinary intensional type theory because my gut tells me that defining concepts such as smooth functions and diffeomorphisms would just be too painful.

I’m trying to get better about both blogging and organizing my life. I’m still relying heavily on org-mode and beeminder. I’m trying to get more of my week planned in the org-mode agenda view, giving myself permission to move things around when an unpleasant surprise has robbed me of my sanity points. I figure taking the few minutes to adjust my schedule is better than just flailing wildly and dropping all of the tasks I was trying to juggle, right? I’m thinking I’ll also try to crib code from Sacha Chua for making weekly reviews in order to try and analyze how I’m really doing each week in meeting my goals and maybe figuring out what works with, y’know, data rather than just gut feelings and perceptions. I can’t really trust my perceptions since the way my brain works I can have a ridiculously productive couple of days but I’ll think it happened a long time ago and it skews my sense of things. Recording data on how I’m spending my time and what I get done might help significantly with that. I feel pretty confidant about that assertion because I’ve seen the effect happen a bit already just from having beeminder and seeing the numbers go up in my word count or blog goals.

How about research-y things? Oh gracious, I have this backlog of ideas and partially written up results that I still haven’t gotten published and I’m trying to fix that over the next few weeks until I start teaching again. My goal for September is to write 500 words a day on drafts of papers. That’s a reasonable amount per day, but that’s 15k words by the end of the month which is roughly 50-60 pages . On my “good” days I can do about 2-3k words of technical writing, which if I average that out with allowing myself to have some days where I don’t write and days when I’m just a mess, then I think it’s going to both be a realistic goal that I can stick too and let me clear out some of my backlog. I might make a second beeminder goal just for this and delete it when september is done, manually syncing it with my normal wordcount goal. There are two ideas that are in their early stages instead of their omigod-clarissa-just-write-the-latex-already:

  • exploring what it means to compose indexed monads and making a more rigorous comparison between indexed monads and effects in Idris, which was sparked by a conversation with Bob Atkey on twitter.
  • explore if it’s possible to have a closed universe of descriptions with univalence. I’ve seen a bit of relevant material on the topic here but it doesn’t include a descriptions type like in the levitation paper. So I don’t know how descriptions complicate things and if you can get a result for how “reflective” the universe can be before univalence is simply impossible? In any case, it’d be interesting to know. The last time I asked Conor he didn’t know of anyone answering that question.

Okay, so that kinda covers all the things I’ve been thinking about and working on in the past week. When I write it out it seems like there’s at least a decent amount, even though I’ve been an emotional wreck since writing my last post where I admitted to a prior suicide attempt.

Akrasia and Anxiety

I’ve written before about mental illness, beeminder, and how I try to organize my life (https://inconsistentuniverse.wordpress.com/tag/mental-illness/) and I wanted to talk a little bit more about akrasia and how I experience it at someone who has pretty severe anxiety and other mental health issues. These are things I’ve said before in pieces but I don’t think I’ve ever quite put the picture together before.

First off, akrasia is basically the phenomenon of making choices that are a short term good that are bad choices (or at least less good) in the long term. It’s something I think we’re all familiar with and a lot of times its just a simple matter of momentum. There’s something you know you want to be working on or doing but building overcoming the million little reasons why you weren’t already doing it means that you have to do a lot to get that initial push. Reading through the old essay the beeminder folks wrote about akrasia, I think a lot of the examples about akrasia and procrastination are more about choosing short term pleasure over short term pain and effort. That’s not really how I experience it, though, even though the end result probably looks the same.

You see, when I’m avoiding working on something it’s not because I “don’t feel like it” but rather than I’m utterly terrified. Any time I try to write down my ideas into a paper draft or a blog post, I’m constantly hearing real and imagined people challenging my every assertion, questioning the worth of what I’m saying, and even yelling at me for being arrogant enough to think I should be heard. I literally woke up at 5am with a panic attack because I was working on a draft of a paper yesterday. If it sounds absurd, that’s okay. I pretty much constantly think it’s absurd. I know the reasons why my brain works this way, so I’m left trying to live with it.

So for me and my fear-based brain, commitment devices like beeminder are about trying to counter one kind of long-term terror with a more immediate short-term terror of “failing” at something I said I would do. The end result is pretty much the same as what anyone else gets from commitment devices, but the internal experience I think is pretty different. I’d like to not be motivated entirely by different kinds of fear, but that’s more of something to work towards in the long term.

Which brings me back to my early post on why I’m doing this blog. One of the major goals of this blog is, basically, a kind of exposure therapy. Every time I share my opinions and the universe doesn’t end and no one shows up to scream at me for being arrogant, it’s getting a little easier. I really did expect that yesterday, after writing about my opinions on suitable languages for teaching a new programmer, that somehow I was going to get massive amounts of hate for it and everyone would disagree with me and that forever-and-ever-amen would I be known as the crazy lady with stupid opinions. I’m dead serious. This is what I thought would happen. It’s completely irrational, but twice this week I’ve had my goal for writing blog posts spur me on with its counter-fear into some vague semblance of rational behavior. So that, in a nutshell, is what commitment devices have done for me and my anxiety.

Beeminding Mental Illness: Redux

So I’ve been using Beeminder for a few months now, but I recently decided to cut back a bit on all of my goals because having more than, say, five goals just seems to add a massive amount of stress that I can’t really handle. I discovered that I could deal with it during my good times but as soon as I started to hit one of my bad streaks it was just exacerbating my already existing tendency to hide in my turtle shell from the world online and off.

I’ve pared my goals down to the ones that I think are most important and effective: word count, blog posts, working on poetry to submit, and doing Duolingo Spanish lessons. I also kept a flossing goal in there just because it’s simple and a good idea to keep doing regularly. I’ve also cut down pretty significantly the rates for most of my goals just because I found I needed more rest.

The hard part about teaching, for me, is that being around people is exhausting. I’m a good lecturer and I can handle doing the performance aspect of teaching quite well, but after a lecture or holding office hours I’m often shaky and just need to not interact with anyone. Some of this is just natural introversion, but the balance is my mental illness. I’m pretty bad at balancing things and knowing my own limits so I have a tendency to burn myself out too far. For example, for awhile this summer during the lecture days I would get to PCS around 1-2pm, talk with students and work on materials until lecture at 6pm, and then get out at 9pm. This meant that I’d be constantly around people for seven or eight hours straight. I’d then be exhausted and barely able to think straight the day after. That leads to some massive inefficiency in how I use my time and also leaves me feeling way more stressed than is really good or necessary. I’m trying to, instead, be a bit better in terms of making myself get time alone to recharge. This is where beeminder comes back into things. I think what I’m going to try is set up a goal to make myself get a certain amount of time per day when I’m not trying to talk to anyone, not even online, since even just a little while of being by myself with headphones on and no social media can be ridiculously helpful in terms of getting the anxiety back down to manageable levels. I could do this with either TagTime or by clocking in and out with org-mode. I might try using TagTime just because if I’m super frazzled then explicit clocking might be too hard, because by super frazzled I mean getting disoriented enough that I lose track of time and even where I am. I can still, though, respond to my phone and tag-time pings. I might try starting with just insisting that I take a single hour per day when I’m not trying to talk to or be around anyone, which seems like a reasonable goal and yet one I don’t regularly meet.

I’m not sure if there’s other interesting things I could try to measure in order to keep track of how I’m doing. The only thing I can think of that’d be useful, yet not difficult to measure, is trying to spend more time reading, both for fun and more papers. My biggest motivation here is that since it’s really easy for me to deplete myself and lose a lot of usable hours to exhaustion and anxiety, I need to find ways to be more careful and efficient with my time. If I’m not careful even a part-time job will leave me completely exhausted to the point that I can barely take care of myself.

The State of Things: More on Organization and What Works

So a bit of an update here. I’ve still been using Beeminder to keep track of things lately, which has proven useful as I’m trying to build up a buffer for the times I know I’m going to be really busy. For example, on my writing goals I made sure to get ahead because I knew that Tuesday, because it involved a doctor’s appointment and getting boosters on some vaccines, was going to wipe me out badly. I also know that in the next few weeks I’m going to want to focus on a few other things so I’m pushing to get all my lecture note and homework writing done now. So overall, that’s really good. I’m also sticking better to other smaller habits related to exercise, writing poetry for a book submission competition due in December, and just other little things that make me feel better about life.

I think I need to start leaning on my github and org-todo goals in order to get more of my focus on research. Since I lowered the writing goal to 4500 words per week, and I’m allowing myself to count poetry in that because that’s writing too, I’m feeling less frantic on that front and like everything will be okay if I don’t write Every Day, so I should probably spend more time coding. I’ve got the lecture notes up through…I think three weeks from now done. I’ll probably be able to finish most of the lecture notes for the course in the next week or two, so I really have no excuse to not spend more time on the Agda model of that type theory I wrote on pen & paper last summer. Getting published soon is definitely a goal, so I need to evaluate better what’s the quickest path to that given all the half-finished things I currently have.

Overall, I think everything is going pretty well. I note that I’ve written something like 30k words and 35 posts since starting my beeminder goals, which is so much better than I’ve ever done before. Most of that has been lecture notes lately, but as I said before, I’ll be done with that in the next week or two I think and then my posts will turn back into papers and my own ideas.

Updates, More on Using Beeminder, and Assorted Things

So thanks to  Phil Newton there’s now a simple way to integrate org-mode TODOs with beeminder, found here at https://github.com/Sodaware/beeminder.el. I’ve started using it a little bit but not that much since, over my spring break, I’ve been trying to just focus on writing and getting over the really nasty cold/flu/unholy-plague we had in this house. I’ve been keeping up with my wordcount and posting goals for the most part by writing lots of lecture notes, but I haven’t been as good about putting time into paper drafts because I’ve been feeling a bit stuck and unmotivated. At least, though, I’ve been working on something rather than getting completely paralyzed by anxiety into accomplishing nothing and feeling like I’m horrid-and-lazy as I’m often want to do. To this end, I’ve still been finding beeminder to be a useful tool for organizing and motivating myself. It’s still helping me grit my teeth and get things done when the paralysis or hopelessness makes me want to just do nothing.

Another, unintended, effect of me using beeminder for goals is that it’s helping me fill the spaces in my day better. If I have a few minutes where I’m not sure what I should be doing with myself, which happens when I have a bunch of choices of things I think I need to accomplish and feel overwhelmed, then I can at least check my goals to see what I’m closest to derailing on and do that. It’s a nice way to overcome that feeling of inertia and paralysis. Ultimately, I’d say the wordcount and blog posts goals have been really useful for me so far. Not to say that everything is perfect and amazing though. I’m still having some trouble prioritizing what things I write and post about. While writing my lectures notes for this class is ultimately a very good thing, I should also be getting research done. Given the choice of meeting my goals with work that’s really really scary, or work that feels natural and I have a lot of confidence in already, I’m going to avoid the really scary option a lot of times.

So far this avoidant behavior has been okay because I really do need to build a backlog of lecture notes for this class as it’s the more urgent thing. I start teaching tomorrow, after all. On the other hand, I can’t just focus on the “urgent” work forever while working only slowly on the things that are intimidating as hell but will help me leave here with a PhD. Since, sadly, I don’t think sharing my research with others is going to get any less terrifying to me in the near future and I won’t stop dragging my feet on it because “all my ideas are terrible and I’m arrogant for wanting to share them”, I think I’ll end up setting a second word count goal that will specifically be for research papers. This will, functionally, work as a subgoal that also feeds into the main word count goal. At the moment, there’s no way to actually do something like that directly in beeminder so I’ll have to manually update both totals. On the other hand, that’s not really that bad and it’s at least very easy to add data to goals with the “Quick Add” dropdown. I should probably make a request about this but “all my ideas are terrible and I’m arrogant for wanting to share them“.

All of that negative reflection about how I’m progressing with my work aside, let’s talk more about the good things: I’ve written over 20 posts for this blog now, even when I lost my momentum due to a few very stressful events. I’ve also written over 14k words in the past month for posts here, paper drafts, and an essay I’m writing for another site. That may not sound like a lot, but for me it’s a really big deal. I used to think it was a good day when I could make myself put down 100 words because the anxiety was so bad. Even writing the first few posts here was completely nerve wracking and stressed me out so badly, but now I’m feeling a lot more comfortable and it’s only slightly nerve wracking. I’m building up some much needed confidence. Confidence I wish I’d had a few years ago, but that’s kinda how these things work.

As for other random things, I’ve been starting to use Pocket for Android + TTS as described here. I retain things much, much better when I listen to them even though I learn “faster” by reading. It took me a long time to realize that the way I tended to drift in and out while in lectures is actually not a bad thing. As long as I’m not trying to read something else on my laptop or phone etc., then my “half-listening” is actually me processing what I’m hearing and making connections. There’s always stories of That Professor who looks like they’re asleep but asks really hard questions during colloquia, but it took me a long time to realize that that kinda is how I function. So, I’m trying to listen to more things I want to read. Obviously the big stumbling block with doing this for all my technical reading are code and equations, because none of the tools I’m aware of would actually help with that.

Beeminder, Org Mode, and Mental Illness

So today I want to write a little bit about how I use productivity and organizational tools to help me deal with the problems I talked about in a previous post.

First off, I’ve been using Org mode on and off for a couple of years to try and organize my notes and my todos. It mostly works for me because it’s very flexible and I’m already a dedicated emacs user. I even use org2blog to post to this blog from my writing.org file. While the agenda in org mode is a really nice way to figure out individual things I want to accomplish, since I can list by day all the things I’ve scheduled and keep track of them that way, what’s more difficult is keeping myself working on long-term projects. By which I mean oh, say, publishing papers. The issue I have with working on long-term things is pacing myself. In a moment that feels entirely too arrogant, I can say that when I’m having a Good Day I can get a massive amount of work done. If I can get four or five Good Days in a row, I can pretty much start-and-finish a publishable piece of work. The problem is that I tend to burn out very quickly on my Good Days. I get frantic because I don’t know how long they’ll last and I tend to work myself into complete exhaustion, which then means I have a physical and mental crash that can last for weeks or months depending on how bad it is. Now, I’ve learned a lot about trying to manage my illness so that I can make the Good Days happen more frequently and crash less hard, but pacing myself is still really hard as is getting started again when I’ve had several bad days in a row.

That’s where beeminder comes in. Now, for those who haven’t heard of it beeminder is a cute little system for tracking goals you’ve committed to. They’re all just numeric metrics that you’re tracking in terms of weekly rates of increase or decrease, essentially. It integrates with a lot of things I already use, like codeschool, github, duolingo, etc. Now I understand that for most people the incentive is based around money and the fact that you will be charged a small amount if you don’t meet your goal. The idea is that this should override your inertia since an immediate loss of money is perceived as worse as having to stick to your goals consistently.

In my case, the money thing is kinda irrelevant. Mind you, I’m a total cheapskate and the idea of spending money unnecessarily is rather horrifying so it’s not like it’s not a deterrent but the real deterrent for me is that I see it as a matter of pride that I don’t derail on any goal. What’s nice for me, then, about the way they track things is that, say, if I have the goals of writing three blog posts per week on average or writing 6000 words per week on average then I have an automatic way of pacing myself: I need to stick to those averages. If I have a couple of Good Days but then crash for a week, I can’t do that. If I have a few bad days and feel like it’s not worth getting started again, I have that average looming to get me to do something.

It’s already helping me still get some work done even though I’ve both quit nicotine and gotten a really bad cold in the past two weeks. Not a lot, but I’ve still gotten something done just to keep from derailing on my goals and that’s a pretty big deal for me. It helps me build back my momentum in a sustainable way, which will help prevent the feast-and-famine work cycle I deal with so often.

Now, the only thing that would be even better is if there was integration between org-mode and beeminder so I could update a goal every time I mark a TODO item as DONE. I have a feeling such a thing wouldn’t be difficult but I don’t really know any elisp. If anyone has any recommendations for tutorials for emacs lisp, it’d be appreciated!