October 2011

It turns out that “I suck” moments are more negotiable than I thought

October 1, 2011 - Categories: happy, life

I was unpacking my bag at home before I realized I had forgotten cash at the bank. In the middle of catching up with W-, I found a mental void when I grasped for my memories of my errand, like sitting on a chair that isn’t there.

In preparation for an upcoming trip, I had withdrawn US dollars and Canadian dollars from the bank branch near by work. I received the US dollars, but not the Canadian dollars, and both I and the teller had forgotten about it by the time she cheerfully asked me if there was anything else I could help with. After a short conversation with an acquaintance I met, I left the branch, brainstorming ideas on the way home. And then– oh, drat.

When I realized that the cash was missing, I called the bank branch and left voicemail. Then I called the branch again. As I contemplated serial-dialing the possibly unattended phone, W- encouraged me to get back on the subway to see if I could still catch the teller on her shift. (Hooray for banks that are open late!) I left my bag, picked up some energy bars, and hurried back, rehearsing possible arguments.

On the trip there, I felt the tendrils of an "I suck" moment curling about the edges of my equilibrium. "No sense in getting upset," I reminded myself. In the grand scheme of things, it’s not a big deal: six dollars’ worth of tokens, an hour of subway time spent writing, and a little stress before a clear mind kicks in. Worst-case scenario, I’d be out the forgotten money and the time. It would be an expensive lesson, but I could consider that tuition for a lesson that might save me a lot of grief later, the entrance fee for an experience that might be worth writing about, and the fluctuation that tests the capacitance of my happiness.

Fortunately, the bank staff resolved the problem in less than three minutes. The teller had remembered shortly after I’d left, and she cancelled the CAD transaction so that it didn’t affect my account. A quick chat with an available teller, and everything was sorted out. Relieved (and with the withdrawal tucked securely into my bag), I headed home.

I found it interesting that tranquility was easy to recover. Years ago, I might have let that “I suck” moment throw me off my balance. I still occasionally run into this situation at work. Even after a positive resolution, I might still have begrudged my absentmindedness the effect on my schedule, berating myself for inattention. I tested it mentally by considering this: what if I’d ended up losing the cash for good? It would be inconvenient, but I don’t think I would have let it spoil my day.

Keeping a tranquil mind was much easier when I didn’t give in to the temptation to mentally berate myself. It turns out that “I suck” moments can be dealt with. Reflection helped me grasp a situation and know that I can wring an idea or a story or an aha! out of it, which means there are never really any total losses. That comforting thought minimized the initial stress, and then I had enough mental space to focus on what I can do next, what’s going well, and what can be improved.

Do you occasionally get those “I suck” moments too? What could help you hit eject on the DVD of negative self-talk and focus instead on making the most of the next moment, and the next, and the next?

Weekly review: Week ending September 30, 2011

October 2, 2011 - Categories: review, weekly

Lots of scrambling, but we’re through!

From last week’s plans

  • Work
    • [X] Add summary to project T
    • [-] Migrate project T – postponed
    • [X] Follow up on SQL search for project I – found possible experts
    • [X] Gather requirements for project O
    • Added user management to project O
    • Set up Redmine issue tracking for project O
  • Relationships
    • [-] Pack for trip
    • [X] Help with build class
  • Life
    • [-] Draw
    • [X] Get through reading backlog
    • [X] Suspend library requests
    • Added clothing to home dashboard

Plans for next week

  • Work
    • [ ] Tidy up more project T issues
    • [ ] Import data for project O
  • Relationships
    • [ ] Celebrate anniversary – dinner at Pho Hung?
    • [ ] Spend time with family
  • Life
    • [ ] Delegate blog-checking to virtual assistant
    • [ ] Add library pickup check

Time analysis

Activity This week Last week Delta Notes
! Discretionary 44.5 45.4 -0.8
! Personal care 15.7 17.8 -2.2
! Unpaid work 9.0 9.2 -0.2
A – Sleep 52.5 54.6 -2.1
A – Work 46.2 41.0 5.2 Preparing for migration (postponed), getting things ready before we go
D – Break 0.1 6.8 -6.8
D – Drawing 0.7 -0.7
D – Personal 20.9 13.2 7.7 Working on home dashboard
D – Reading 7.0 1.1 5.9 Clearing my reading stash
D – Shopping 1.4 11.9 -10.5
D – Social 3.6 6.9 -3.2
D – Volunteering 3.4 3.7 -0.3
D – Writing 8.1 0.9 7.1 Queueing posts
P – Eating 4.3 2.3 2.0
P – Exercise 5.0 5.8 -0.8
P – Routines 6.4 9.7 -3.3
UW – Cooking 1.9 1.5 0.4
UW – Tidying 2.6 4.6 -2.0
UW – Travel 4.5 3.1 1.4 Commuting to work every day

Tracking and organizing my clothes: substituting mathematics for fashion sense

October 3, 2011 - Categories: analysis, clothing, geek, organization, photography, quantified, rails

Thumbnails of clothes

Inspired by my sister’s photo-assisted organization of her shoes, I decided to tackle my wardrobe. Taking an inventory would make it easier to simplify, replace, or supplement my clothes. Analyzing colour would help me substitute mathematics for a sense of style. Combining the images with the clothes log I’ve been keeping would make it easier to see patterns and maybe do some interesting visualizations. Geek time!

I took pictures of all my clothes against a convenient white wall. I corrected the images using Bibble 5 Pro and renamed the files to match my clothes-tracking database, creating new records as needed. AutoHotkey and Colorette made the task of choosing representative colours much less tedious than it would’ve been otherwise. After I created a spreadsheet of IDs, representative colours, and tags, I imported the data into my Rails-based personal dashboard, programming in new functionality along the way. (Emacs keyboard macros + Rails console = quick and easy data munging.) I used Acts as Taggable On for additional structure.

It turns out that the math for complementary and triadic colour schemes is easy when you convert RGB to HSL (hue, saturation, lightness). I used the Color gem for my RGB-HSL conversions, then calculated the complementary and triadic colours by adding or subtracting degrees as needed (180 for complementary, +/- 120 for triadic).

Here’s what the detailed view looks like now:

image

And the clothing log:

image

Clothing summary, sorted by frequency (30 days of data as of writing)

image

Thoughts:

Other resources:

From the feeds: Saving money, making money, balancing life, reading books, and making rainbows

October 4, 2011 - Categories: Uncategorized

Lots of interesting posts turn up in my feedreader. I’m thinking of sharing highlights weekly so that I nudge myself to go back and review them, see what I’ve done with the information, and share the ideas with you.

Learning browser-based testing with Selenium

October 5, 2011 - Categories: development, geek, work

I want to get better at testing my applications so that clients and end-users run into fewer bugs. I’m learning how to use Selenium to write browser-based tests. So far, I’ve written eight tests and fixed three bugs. This is good.

I’m using the Selenium IDE, and I’m looking forward to trying other options. I like the way that the Selenium IDE lets me record and step through tests easily. The Selenium Stored Variables Viewer plugin was really helpful, because it made it easy for me to store values and view them. I’m slowly getting the hang of different commands and asserts. Next week, I’m going to read the command reference so that I can index the possibilities.

People tell me I’m a fast developer. I want to try swapping some of that speed for better accuracy – slowing down and doing things right, with tests to back that up. It feels like it takes a lot of time to click around and wait for the pages to respond, or even to run these web-based tests and iterate until I’ve gotten them right, but it’s better for me to do it than for other people to run into these errors. Besides, with tools and metrics, I can make testing more like a game.

Onward and upward!

Transcript: Blogging (Part 6): Looking back

October 6, 2011 - Categories: blogging, tips, writing
This entry is part 6 of 16 in the series Discovering Yourself Through Blogging

Hat-tip to Holly Tse for organizing this interview!

Holly Tse: So, I have to ask you then… When you started blogging, or even today, do you ever sometimes read your posts and go, “Man, I’m boring, and oops, I think my grammar’s funny”?

Sacha Chua: Occasionally, I let embarrassing typos slip through. A lot of the times, I’m looking back at my posts from two years or six months ago and I’m thinking, “I wrote that?” Most of the time, it’s a good “I wrote that?” though. Sometimes it’s a “Wow, I’ve come a long way since then” kind of “I wrote that?” But it’s fascinating because when you give yourself enough time to be unfamiliar with the things that you’ve written down – which means that you’ve been writing for a while and you’ve made a habit of it – and you have it in a way that you can refer back to, not like… So, in my pre-blogging days, I kept a journal sporadically. Most of the time, I’d get a fourth of the way through a notebook and then I’d misplace it, or I’d lose interest in all that stuff, and it would be hard to go back to those notes again.

But with a blog, especially with a blog that’s backed up, I can go back to old stuff. And that’s how I can see, oh yeah, here’s where my thinking is different now. Back then, I used to think that having a relationship would get in the way of the cool things I want to do with my life. Now I can see that having a good relationship can support the things I want to do with my life. You get to do that kind of spot-the-difference thing, and that helps you learn even more about who you are and who you want to be.

So yeah, I’ve had those moments. I’ve had bugs in my published code. I’ve embarrassing typos. I’ve had places where I was just plain wrong, and places where I’ve changed my opinion, but that’s part of being human. All in all, I’m really glad I’ve got that record.

Series Navigation« Transcript: Blogging (Part 5): Getting startedTranscript: Blogging (Part 7): Learning how to write »

Decision review: Marrying W-

October 7, 2011 - Categories: decision, life, review

W- and I celebrated our first wedding anniversary last Sunday. It’s been a fantastic year! Time to review just how fantastic it was, and how we can make next year even better.

Reasons for getting married (instead of continuing to cohabit):

Our day-to-day lives are much like they were before the wedding, but being married has subtly changed things. Long-term planning is easier when you’ve got the commitments and paperwork in place.

It’s great being able to use familiar words that fit into social structures. I like being able to namedrop my husband, and I grin when W- tells a salesperson that he has to discuss things with his wife. J- occasionally refers to me as her stepmom when she’s talking to her friends or writing on her blog. It still takes some getting used to, but it’s handier than saying “my dad’s… umm… girlfriend? partner?” in situations when referring to people by name doesn’t give enough context.

Clear relationships also make it easier to relate to family. I get along better with W-‘s family now, I think. There’s been a shift in how I relate to my family, too – we’re more grown-up and less stressed.

Even though more people are going through life without marrying, it still seems that getting married is acknowledged as one of those growing-up milestones. The simple wedding ring I wear shifts small-talk conversations. People more frequently talk to me about kids than before. Thanks to being part of W- and J-‘s lives, I can relate to the anecdotes people tell of family and teenagers.

Life is great.

Next year

Next year promises to be exciting. We’ve developed great household routines like bulk-cooking, we’ve been tweaking our space for better flow and organization, and we’ve been improving our communication practices for an even stronger relationship. With a solid foundation in place, we can step up our game. Looking forward to it!

2011-10-02 Sun 15:20

Tweaking my Windows 7 setup more: Emacs on all virtual desktops!

October 8, 2011 - Categories: emacs, geek

I’ve been using VirtuaWin to set up four virtual desktops on my computer. This makes it easy to group applications: one desktop for client T, one desktop for client I, one desktop for client O, and one desktop for other stuff, such as drawing. The most memory use I’ve seen on this system so far is less than 6 GB (out of 8 GB), so running virtual desktops doesn’t make the performance of my other apps worse.

Using virtual desktops helps me keep things organized, but I also want to be able to quickly switch to Emacs and take notes without caring about which desktop I’m on. Fortunately, VirtuaWin makes it easy to set up an application to run on all desktops. Left-clicking on the VirtuaWin icon in my status bar lets me set my Emacs window as “Always Show”. To make it even easier to consistently get to Emacs, I pinned the program to the task bar (right-click on the task bar icon and pin the program), moved the pinned program to the first slot on the task bar, and got into the habit of using Windows+1 to switch to the application. Yay!

VirtuaWin is a free open source program for Microsoft Windows.

Monitoring multiple WordPress sites for comments using Yahoo Pipes

October 9, 2011 - Categories: blogging, geek, wordpress

As the de facto blogging geek in the family, I’m keeping an eye on my blog and three other (mostly inactive) blogs:

I need to monitor comments that slipped through spam filtering, WordPress version updates, and so on. Fortunately, I don’t have to regularly come up with content for all four!

I wanted to make it easier to check comments on multiple sites. Instead of checking each site regularly or configuring them to send me e-mail (too much e-mail!), I used Yahoo Pipes to combine the blog comment feeds from each site into one main feed. Then I added that feed to iGoogle, along with gadgets for weather, calendar, and mail. Tada! Dashboard.

Do you manage multiple WordPress blogs? How do you stay on top of them?

Geek travel: Planning outfits using matrices

October 10, 2011 - Categories: geek

It’s easy to pack for business trips: two pairs of Tilley slacks, X Tilley long-sleeved tops, other accoutrements, and I’m good to go. Trips home can be challenging: some casual, some dressy, some whatever. I used to pack for trips back home by throwing random clean clothes into my suitcase. Okay, I exaggerate. I tried to put some some rhyme and reason into it. Sometimes things just don’t line up, and I end up in this horribly clashing outfit.

Somehow everyone else in the family has developed a signature style, smooth and harmonious. (My dad and Columbia shirts; my mom and violet, my eldest sister and smart clothes, my middle sister and stylish dresses…) Also, my dad and my sister are professional photographers. Not only do my fashion mistakes stick out like a sore thumb, but they’re also immortalized in our family pictures.

Having discovered that I can substitute geekiness for style when it comes to pairing colours, I thought about how I could use the same technique to make the trip better. So I made a spreadsheet of the days we’d be gone, wrote down the general activities, and started planning what to bring.

Trip Friends Wedding Bohol Bohol Bohol Bohol Trip
5 6 7 8 9 10 11 12 13 14 15
Dress X
Brown skirt X X
Stretch pants X X X
Cargo pants X X X
Board shorts X X
Cream tee X X X
White tee X X X
Pink tee X X X X

This was okay, but it didn’t let me see how well I balanced the outfits. So I remapped my table, using tops and bottoms as columns and rows, and labelling the intersections with the days.

Cream tee White tee Pink tee Dress
Dress 9
Brown skirt 7 10
Stretch pants 15 5 8
Cargo pants 13 11 6
Board shorts 14 12

Okay. Confession. It didn’t actually turn out this neat. The first time around, I ended up with two repeated outfits and more blank entries, so I swapped items until I balanced things more evenly. It was fun solving this geek problem with real-life constraints like avoiding wearing one item twice in a row. Solving it was like scribbling my way through a game of Sudoku or figuring out just the right vertex colouring for a graph.

W- took a look at my compact bundle of clothes and said, “Is that all you’re bringing?” Torn between the desire to test the combinatorial possibilities of my geekily-derived travel wardrobe and the practical benefits of bringing more clothes just in case, I followed his advice and wrapped a few more items around the jars of home-made jalapeño jelly we also packed. We’ll see how closely I can stick to my spreadsheet-supported plan, though!

From the feeds: Ramen, personal assistants, productivity, co-schooling, and being yourself

October 11, 2011 - Categories: Uncategorized

Lots of interesting posts turn up in my feedreader. I’m thinking of sharing highlights weekly so that I nudge myself to go back and review them, see what I’ve done with the information, and share the ideas with you. Working through my backlog!

Working with FTP sites

October 12, 2011 - Categories: geek, linux

One of the Drupal sites I’m working on is on a web host that allows only FTP access, not SSH or SCP access. I set up a local development environment so that I can play around without affecting the integration or production site. This also lets me use drush to do a group upgrade of modules without downloading and installing them one by one. But without the convenience of rsync over ssh, how can I easily transfer my updated code to the server?

lftp is a free Linux/UNIX tool for working with files over FTP. Packages are available on major distros, so installing it as easy as apt-get install lftp or working with your distro’s package manager. To start an lftp session, type lftp user@host. It supports the usual FTP commands, but it also has a few nifty additions. For example, here are some commands I use often:

lftp mirror somedirectory :: Recursively copy somedirectory from the remote computer to the local computer lftp mirror -R somedirectory :: Recursively copy somedirectory from your local computer to the remote computer lftp mirror -R somedirectory destination :: Recursively copy somedirectory to destination – saves me a lot of cd and lcd-ing lftp mirror -R --dry-run somedirectory :: Don’t actually copy somedirectory; print out the commands that would have been run

It’s smart enough to transfer only files that have changed, which is much better than having to remember and copy them. It can also use parallel connections for extra speed.

Type help at the lftp command prompt to find out more, or check out the lftp webpage. Hope this saves you time!

Transcript: Blogging (Part 7): Learning how to write

October 13, 2011 - Categories: blogging, tips, writing
This entry is part 7 of 16 in the series Discovering Yourself Through Blogging

Hat-tip to Holly Tse for organizing this interview!

Holly Tse: Now you mentioned that when you had a written journal that you wrote it in rather sporadically. I know with your blog, you write more often. Do you have a recommendation as to how often someone should blog?

Sacha Chua: As often as you’d like to. Which is to say that you should never beat up for not writing often, and you should never beat yourself up for forgetting to write. It doesn’t matter if you come back to it after a couple of months or whatever.

The thing that really helps me write regularly is that I don’t just use this as a way to look back. I don’t just see it as a way to build audience or do other things like that. I use my blog as a way to figure things out. Whether it’s “Do I replace the dead battery in my laptop? What are the pros and cons… Do a cost-benefit analysis…” (turned out to be worth it, so I did go ahead and do that) – so, making decisions, or whether I want to use it to do a quick review of what happened in the last week, what do I want to do in the next week, how do I want to improve things a little bit further… to things like, here’s a little thing I’m going to forget, but I’m going to need it sometime in the future, so I’m going to stick it in here so that I can Google it. This has happened. I have searched for stuff, found the answer on my blog, completely forgotten that I’d written it, but have been so glad that I did.

So yeah, write as often as these situations occur to you. I write whenever I’m trying to figure things out, or when I want to remember, or when I want to share something with other people. Let’s say somebody e-mails me a question I think other people might be interested in the answer to. I’ll write it on my blog and send them a link. That way, it’s there for search engines. It’s there for other people who want to share it…

There’s always those stories and tidbits. It’s not that you’re going to have any lack of material. There are a lot of stories you can tell. If you take the story that you care most about telling, and you do this as often as you’d like to build the habit… I block out time daily now, because I get fidgety if I don’t write for a long time. Block off some time to do it, whether it’s daily or weekly, or whenever you feel like doing it, whenever you’ve got a story to tell or something to figure out, and write.

HT: So you don’t need to be a skilled writer, like a journalist, to have your own blog.

SC: You don’t get to be a skilled writer until you write. This is something surprising, but it is true. You don’t expect to sit down at your computer and be the next Stephen King or Stephanie Meyer or whoever else you want to look up to. But you don’t get to that part until you write. Even if you never get to the part of being a professional Writer (with a capital W), the fact that you’ve got these notes and they make sense to you–maybe they don’t make sense to anybody else, but they make sense to you–even if they don’t make sense to you after half a year… As long as you’re going through that thinking process, it’s already okay. You don’t have to win a Pulitzer Prize, you’ve just got to write about your life.

HT: I think it’s a great time for you to share how you did in English class in school, and why–

SC: I did terribly in English class in school. I’m particularly good at taking standardized tests. It’s a little bit of probability and you rule out a couple of questions and all of that stuff… Anyway, what happened was that I did really well on the entrance test for my school, so they put in Merit English. Merit English consisted of sitting around in a circle with other similarly “gifted” students discussing English literature. Which is all very nice and good, but wasn’t something I really was interested in. Even then, I read a lot more nonfiction than I read fiction. So we were sitting around this circle discussing the Love Song of J. Alfred Prufrock and the irony therein… As I was telling you in our previous chat, back then, I was, “I’m a programmer. I don’t do irony. I want things to mean what they say and say what they mean.” So writing for me got stereotyped as this terrible effort to write something–an essay, a book report, a term paper–that ended up being measured against somebody else’s yardstick. You’re writing for somebody else, a teacher who… I felt like I was making stuff up. I’ve since then made peace with these teachers. (Facebook friends, we’re talking, we have conversations and all that…)

But it took me until past university, when I figured out that writing is a great way to learn about life. I went from taking my technical notes to writing about this cooking thing can be actually (inaudible) sometimes… So I was writing about my CookOrDie project. Writing about that, and writing about all the other things I was learning, was the thing that unlocked it for me. This idea that writing isn’t just something you do in school!

Series Navigation« Transcript: Blogging (Part 6): Looking backTranscript: Blogging (Part 8): Slow life down and speed it up »

Decision review: Working at IBM

October 14, 2011 - Categories: career, decision, ibm, review, work

I joined IBM four years ago today, sliding right from my master’s degree into a position that was tailored to my passions. I wanted to focus on Web 2.0 consulting and open source web development, and I did. I’ve facilitated workshops around the world, coached clients and co-workers, and helped flesh out and implement social media strategies. I’ve gotten pretty good at Drupal, and I’ve done sites in Ruby on Rails, too. I’ve learned a lot about automated testing, system administration, automation, and other useful skills. I’ve been promoted, and I’ve taken on additional responsibilities like estimating effort, preparing statements of work, and leading other developers.

Energy

Well past the honeymoon period, I’ve somehow escaped the cynicism that saps the energy of many recent hires. I see IBM like I saw it in the beginning: an organization with its own challenges, but still fundamentally inspiring and wonderful. When asked how I am, I find myself answering “Fantastic!” – and meaning it.

I’ve kept myself engaged by taking responsibility for my motivation. My manager helps by showing me how to work with the system and helping me find projects that fit me well. In the end, though, I choose how to respond to the small triumphs and frustrations of everyday work. I’m generally good at celebrating successes and fixing annoyances, which helps a lot.

I’ve worked on making my experience of IBM pretty good, and I’ve had a remarkably wonderful time as a new hire. I’ve been lucky that both of my managers have been great allies, and that I have plenty of co-workers and mentors who share their insights and help me figure out IBM. Investing in tools pays off: automation minimizes frustrating work, and an extra laptop makes development go faster. I often find myself saving time by referring to the notes in my blog, and the blog has helped me connect with clients, co-workers, and other developers.

Time

I continue to work around 40 hours a week, which forces me to be good at estimating how much I can do within that time and focusing on doing it. It means that I have time for other priorities, such as life and relationships. It also means that I can bring a lot of energy to work because I don’t feel like it’s taking over my life. I minimize travel, as trips require a lot of paperwork and disrupt a lot of things.

In the beginning, I took on lots of volunteer things: coaching other IBMers on Web 2.0 through the BlueIQ initiative, writing a lot on my personal blog, skimming through everything published in IBM’s internal blogosphere. (Back then, it was possible – there was just one place to find people’s blogs, volume was manageable, and you felt like you really got to know people.) Now, I’m more selective about the things I volunteer to do, and I try to help other people build their capabilities as much as possible. That means the occasional bit of work on:

I find myself thinking about these side projects like a semi-passive income stream of good karma. I look for places where a little effort can translate into a lot of benefit.

Things I didn’t expect when I signed up, but which worked out really well:

Looking ahead

I could happily continue doing this sort of work for years, I think. I like the mix of development and consulting. I might gradually move to leading more projects and training people along the way. It would be a good way to scale up. The kind of projects I love working on – small rapid web development projects – don’t typically involve large teams, though. Growth will probably involve going deeper (say, customizing Drupal and Rails even more), building assets so that we can save time, and mentoring people working on other projects.

I like working with IBM, even though sometimes I grumble about the paperwork. I really like these non-profit projects I get to work on, and it’s hard to imagine having quite the same kind of set-up anywhere else. I learn a lot from our commercial projects, too.

Good financial planning makes riskier choices easier to consider. A different position? A career change? We’ll see. The status quo is pretty darn awesome, though, and there’s plenty of room to grow.

Would I make the same decision again, if a time machine took me back to October 2007? Yes, without hesitation.

Four years. Thanks to writing, I know where the time went, and I can see how I’ve grown. There’s still a lot to learn, and I’m looking forward to sharing that with you.

The joys of development with Selenium web-testing

October 15, 2011 - Categories: development, geek

I’ve started using the Selenium web-testing framework as part of regular development, and I like it. Selenium makes it easy to automate testing web applications, but it’s also useful for developing web applications.

I was working on improving the administrative interface of a Drupal site. To test the new features, I needed to switch back and forth between different users, and I needed to move nodes through a workflow. Masquerade made it a little bit easier to switch between user roles without logging out and logging in, but there was still a lot of clicking and waiting involved. Selenium made it easy to record and tweak the steps I took, and I could even add assertions so that I didn’t have to check things myself.

Timestamps helped me doublecheck that new data was successfully submitted, and that my e-mail messages weren’t using the old data. Here’s how to store a timestamp:

storeEval { var stamp = new Date(); var year = stamp.getYear() + 1900; var month = stamp.getMonth() + 1; var day = stamp.getDate(); var hours = stamp.getHours(); var mins = stamp.getMinutes(); var time; var secs = stamp.getSeconds(); if (month < 10) { month = "0" + month; } if (day < 10) { day = "0" + day; } if (mins < 10) { mins = "0" + mins; } if (secs < 10) { secs = "0" + secs; } timestamp = "" + year + "-" + month + "-" + day + " " + hours + ":" + mins + ":" + secs; } timestamp

Then I can refer to that timestamp when filling out forms, like this:

type Node title ${timestamp}

I can check if the timestamp is present on a page:

assertTextPresent Node title ${timestamp}

I thought I would get impatient with the slow pace of web testing compared to directly testing the underlying models using code (Simpletest rocks for this). The visual feedback from watching my browser step through the tests helped me appreciate the time I saved compared to clicking through things myself. (And I had extra time to write notes in Emacs or comment my code while the tests are running!)

The Stored Variables Viewer (http://seleniumhq.org/download/) plugin was great for viewing timestamps, saved HTML snippets, and other things stored during test cases. In a pinch, it’s a decent way to explore something in the Selenium IDE context – store a variable, then view it.

Selenium IDE is a free Firefox plugin that you can get at http://seleniumhq.org/download/ Good stuff!

Weekly review: Weeks ending October 7 and October 14, 2011

October 16, 2011 - Categories: review, weekly

We’ve just come back from a short trip to the Philippines (Oct 5 – Oct 15) where we celebrated my sister’s wedding. It was a lot of fun, and I can’t wait to see how life unfolds. W- and J- took practically all the pictures, so I’ll post them and stories from the trip as we get things sorted out.

From the other week’s plans

  • Work
    • [-] Tidy up more project T issues – partially complete, more work to be done next week
    • [X] Import data for project O
    • Filled out new computer form, yay! Looking
    • Found SME for prjoect T, briefed on project
  • Relationships
    • [X] Celebrate anniversary – dinner at Dr. Generosity
    • [X] Spend time with family
  • Life
    • [C] Delegate blog-checking to virtual assistant – Cancelled, not needed
    • [-] Add library pickup check – Not yet implemented
    • Added clothing analysis to home dashboard

Plans for next week

  • Work
    • [ ] Project T: Catch up on tasks, prepare for launch
    • [ ] Project O: Catch up on work, set up integration server
    • [ ] Project I: Follow up on SQL Server configuration
    • [ ] Pick up new computer, replacement badge?
  • Relationships
    • [ ] Help J catch up with school
    • [ ] Share stories from trip
    • [ ] Catch up with laundry
    • [ ] Catch up with blog comments and email
    • [ ] Go to Quantified Self Toronto meetup (Friday)
    • [ ] Go to secondary schol info night
  • Life
    • [ ] Take it (relatively) easy

Time analysis

Vacation threw my schedule out of whack, in the best way possible. Timezones confused my time-tracking thing, too. So, no pretty graphs this week!

Jet-lag assisted days, once things settled down:

Day Woke up Slept Waking hours Slept
2011-10-07 5:44 AM 11:23 PM 17.65 6.35
2011-10-08 7:30 AM 7:30 PM 13.43 10.57
2011-10-09 6:46 AM 11:42 PM 16.93 7.07
2011-10-10 7:48 AM 11:52 PM 16.07 7.93
2011-10-11 5:32 AM 9:36 PM 16.07 7.93
2011-10-12 7:50 AM 9:59 PM 14.15 9.85
2011-10-13 7:31 AM 9:36 PM 14.08 9.92
2011-10-14 7:57 AM 11:13 PM 15.27 8.73

Passioneer survey (Submit your answers by Oct 18)

October 16, 2011 - Categories: passion

Many people struggle to name a single passion. Do you have several, or maybe too many to list? Kirsten (Good Ship Lifestyle) has put together a 19-question survey to explore demographics and interests for a potential Passioneer/Renaissance soul/polymath-type community. She’ll be tallying up results on October 18 (Wednesday), so if you want to participate, check it out here:

The Passioneer Survey

It looks like folks are trying to figure out what fields people work in, what interests might be good for a community / blog, other resources that might be useful, and some demographic information that might be useful for advertisers. Amusing oddity: the field selections are radio buttons, not checkboxes.

Questions that made me think before answering them:

Come to think of it, nothing about my passions really frustrates me, much less on a regular basis. Oh, there’s the usual quibble about the limitations of time and skill, but that’s okay. It’s okay to not have enough time for all the different things I want to do, because that forces me to identify the things that really matter to me. It’s okay to not have enough skill to do everything I want at the level I want, because learning is part of the experience. So there isn’t really anything I’d change about my life, except perhaps getting better at remembering, sharing, and delegating. I’m okay where I am, and it’ll get even better from here on.

What might grow out of this survey? I’m not really keen on joining Yet Another Social Network, but I wouldn’t mind some kind of directory where I can look up blogs or Twitter profiles by interest, and a blog aggregator might be convenient, too. I don’t want to hear a lot of pitches on how to convert my interests into income, although I’m sure other people would appreciate that. I get a lot of that through other channels already, as it’s one of those “how to make money on the Internet” staples. I’d like to read the personal blogs of people exploring deep interests and fascinating combinations. That would be worth some time and attention.

I’m curious about what you might share in terms of interesting resources and frustrations. Check out the survey, and stay tuned for results.

In addition to the survey, the blog post also has links to other blogs you might check out. Most of the blogs focus on personal development or coaching. Of the bunch, I like Strong Inside Out the most, because the personal touch lifts it above generic productivity advice.

Passioneer Survey

Monthly review: September 2011

October 17, 2011 - Categories: monthly

As predicted, September was a month of preparation. Work projects winding down and starting up; little things to take care of before our trip to the Philippines; personal projects like my home dashboard… It was a good month, productive but not overwhelming.

October will pass before I know it – and indeed, I’m writing this halfway through. We spent the first half getting ready for or enjoying our trip to the Philippines, where we celebrated my sister’s wedding. The rest of October will involve getting back into the swing of work, focusing on projects – maybe even setting up a new work laptop, if I’m lucky. That will make winter commutes better, because I’ll be able to work with just one laptop and I can leave that one at the office.

Personal projects: My home dashboard is working out quite nicely. Travel provided a great excuse to improve the clothing logs / analysis part. There are lots of little tweaks I can do to make it even smoother, but it’s already quite handy now.

I’d like to add more library functionality this month: showing the number of books that are ready for picking up, tracking the date/time they’re read, and maybe displaying some other statistics: mean time between books? This might make a nifty line graph: number of books going in and out of the house per week.

It would be really nifty to calculate the total volume and/or a bag-packing list, so I know if I can fit everything into two bike bags, if I should bring a backpack, or if I should wait until W- can either accompany me or take the car. (Yes, I have library days like that.) Amazon has product dimensions, so it might not be impossible to build my own tool, although there might be some packing inefficiencies. The next step would probably be to build a tool that automatically deactivates my holds when I get close to full capacity, but that might be way too geeky. Just In Time library checkout management. ;)

Yes, the library is very much worth our taxes and donations.

I’ll save the blog review for November or December, once routines are back to normal. One of the good things about being forgetful is that I learn a lot by going back over old posts. Maybe I can hack an “On This Day” feed into my home dashboard or my iGoogle page, so that I can see slices of days. You can see “On This Day” lists when you view single blog posts on my blog, and they’re interesting slices of life through the years. I also want to review my old blog posts, add more notes, and format them for the Kindle so that I can go through my notes in an easier-to-flip-through format.

Life is great!

From the feeds: Writing, more writing, journalism, and automation

October 18, 2011 - Categories: Uncategorized

Seth Godin shares how to get past writer’s block by pointing out people don’t get talker’s block. Write every day, even if it’s not brilliant. Low standards are useful. I’m working on writing even more – some posts for my blog, some notes for myself.

Chris Guillebeau writes about writing 300,000 words a year – a book, lots of blog posts, and assorted articles. Writing 1,000 words a day is a great way to use time. I’d like to get better at organizing this stream of ideas, too.

Jonathan Stray shares a computational journalism reading list. I’m interested in analytics, visualization, and using data to help tell stories. The new breeds of journalists are too. Yay!

Lifehacker features the AutoKey text expansion tool for Linux. AutoHotKey for Windows (a different tool) has become one of my favourite ways to automate everything from text shortcuts to transferring information to slides using a template. It boggles me that a similarly geeky tool has not yet become popular on Linux. AutoKey looks interesting. Does anyone know of anything better?

Lots of interesting posts turn up in my feedreader. I’m thinking of sharing highlights weekly so that I nudge myself to go back and review them, see what I’ve done with the information, and share the ideas with you.

Jetlag-assisted early days

October 19, 2011 - Categories: life, travel

I like jet lag. Used well, it’s a low-effort way to reset one’s sleep schedule. I’ve been waking up at 5 AM for the past couple of days. I realized that starting work early usually means that I end up working the entire day anyway, so I’ve been using the extra hours for personal projects on my laptop. Result: lots of improvements to my personal dashboard application, lots of reading, and lots of writing. Because W- is similarly jetlagged, our mornings and evenings are synchronized. We’ll probably drift towards later evenings eventually, but we might as well make the most of it now.

I occasionally experiment with early wake-up times, and I usually write happy blog posts about it whenever I do.

I’m not sure if that’s because this idea of waking up early is bound up in social approval or whatever it is (waking up early is considered good, so perhaps I feel satisfied and a little smug when I manage it?), or because I really do like it. But I also don’t mind late nights of hacking and having fun, although I can’t stay up as late as W-. He drinks coffee and I don’t, so I have lower tolerance for reduced sleep.

Anyway. Mornings. The office opens at 7 AM, and I can’t get in unless it’s open. I used to be able to badge in through the IBM street-front, but the IBM reception has moved to an inner location, so no more badge access for me. This means that on weekdays (particularly in winter), the earliest I should leave the house is 6:30 AM. Morning routines typically take me an hour, so a good time to wake up is around 5:30 AM. I’ve liked these 5 AM wake-up times, though, because that gives me a little time for personal projects in the morning: small improvements to my dashboard, a few chapters of a book, and so on.

When I finish work and head home, I’m pretty much ready to have dinner, tidy up, and go to bed. I’m continuing to track my time use, and maybe the data will help me get a sense of my discretionary time when my sleeping patterns stabilize.

Jet lag: not a bad thing.

Transcript: Blogging (Part 8): Slow life down and speed it up

October 20, 2011 - Categories: blogging, tips, writing
This entry is part 8 of 16 in the series Discovering Yourself Through Blogging

Hat-tip to Holly Tse for organizing this interview!

Sacha Chua: Writing is a tool for thinking, because it slows things down enough for you to look at it. As I’m talking at my usual nervous speed here, things are flying by pretty fast, right? I’m not going to remember a lot of these things until I go back and I write things down and I think through, hey, what did I want to say here, or what else do I want to do… Thought and speech and life move by so quickly. If you slow things down enough to write just a little bit about it, then you have something more to work with. I didn’t know that when I was in school. I’m glad I learned that, and I want other people to discover just how useful that is, because life moves too fast, and it’s great to be able to slow this down.

Have you ever noticed that life also goes too slowly?

HT: It can, yeah.

SC: Especially when things are changing just a little bit at a time. So you’re looking at your son, for example, and he’s changing. He’s in the early years, so he’s changing a lot, every month, but you’ll get to the point where today is kinda like yesterday, and the next day is kinda like today, and the day after that is kinda like the day before it. All these little changes are harder to see, but if you’re writing, you’ve got that record – even if you’re writing once a week about what you’re seeing and what you’re observing – then you can look back and say, “Oh yeah, a year ago, you were still learning how to speak.” “Oh yeah, five years ago you were still learning the multiplication table.” “Look at how far you’ve come.” Imagine how much he’s learned since then!

Life goes too fast, but it also goes too slow, and so writing becomes your way to get it to work at the pace at the pace that you can work with.

Series Navigation« Transcript: Blogging (Part 7): Learning how to writeTranscript: Blogging (Part 9): Learning from others »

Figuring out how to plan for a month

October 21, 2011 - Categories: kaizen, life, planning

I’ve been doing weekly reviews since October 2006 (210 weekly reviews over ~260 weeks, or about 80% coverage), so I’ve got a good sense of what fits into a week. I’ve also consistently done yearly reviews I tend to do ones by age more than by calendar year, as I think it might be more useful in the long run. Monthly reviews and plans have been sporadic, though, and maybe that’s because I haven’t sufficiently distinguished them from weekly reviews.

I’m starting to figure out what months are useful for: experimenting with habits. A month is a good chunk of time to make one change to routines or habits. It might not seem like a lot, but if I assume a life expectancy of 90 years (quite generous), that’s still something like 750 months. If I assume that 25% of those months (~190 experiments) will successfully result in a 1% cumulative improvement in my quality of life, then than’s still almost 6.5x awesomer than if I didn’t. Of course, those are totally thumb-in-the-air estimates, and I’m not accounting for diminishing returns (or senescence, or distraction, or whatever). But the time is going to pass anyway, so I might as well. =)

Tracking will help me get an idea of my actual success or relapse ratio. It’s a little harder to quantify the magnitude of improvement, so I won’t worry too much about that. As I accumulate data, I’ll be able to ask more interesting questions.

Calculation function for Emacs Lisp, just in case this is useful for anyone else.

(setq sacha/life-expectancy 90)
(setq sacha/birth-date '(8 12 1983))
(defun sacha/memento-mori ()
  (interactive)
  (let* ((expected (list
                    (elt sacha/birth-date 0)
                    (elt sacha/birth-date 1)
                    (+ (elt sacha/birth-date 2) sacha/life-expectancy)))
       (days-left (- (calendar-absolute-from-gregorian expected)
                     (time-to-days (current-time)))))
    (message "~ %d years or %d months or %d weeks left; make the most of them!"
             (/ days-left 365)
             (/ days-left 30)
             (/ days-left 7))))

I should build this into my personal dashboard. Hmm…

Stories from the trip: Making my peace with endings

October 22, 2011 - Categories: life, reflection, travel

Reflections during the flight back:

I try not to take even everyday routines for granted. There are only so many weeks and weekends in a lifetime. Extraordinary times — significant moments, all-too-short visits of family and friends — pass even more achingly.

This is part of life as an immigrant visiting home. Every second ticks toward a departure. Every departure involves a Stoic confrontation of inevitable loss. It’s not just the big losses. Even before then, you lose the everyday moments and the untold stories.

The only way through it is to hold on to the reasons for this part of the story. It’s difficult to remember this when I leave for a different horizon, but I’m getting better. Part of it is learning so much more from the varieties of love and life around me. The trick isn’t to extend the lessons I’m learning from the people around me, with so many this learning phase, just as students can’t be in school forever. The trick is to learn more deeply, apply what I learn quickly, and share what I’m learning along the way.

All things must end so that new things can begin. Moments must become memories so that we can apply the lessons we’ve learned from them.

So we’re going back to this second home we’ve created for ourselves. We’ll do our laundry, pick up the cats, restock our groceries. We’ll go to work and focus on our projects. Fall will turn into winter. (We call it baking season to dull its edge.) We’ll get on with the rest of our lives, and other people will do the same. It’ll be fun.

Looking ahead… You know, it’s okay. Time passes. That’s what time does. This is neither good nor bad. It just is.

The road ahead looks exciting too.

Sketchnotes from Quantified Self Toronto Oct 21 2011

October 22, 2011 - Categories: quantified, sketches, sketchnotes

David Phillips talked about surveillance and his impressions of the Quantified Self conference, I showed my personal tracking system, and Brent talked about tracking lots of biomarkers. Here are some notes:

image

image

Weekly review: Week ending October 21, 2011

October 23, 2011 - Categories: review, weekly

Back to work! Transition was smooth, thanks to some weekend time spent catching up with mail and getting things ready for a good work week. Lots of progress on my home dashboard – clothing, library, time analysis, etc. Quantified Self meetup was fun.

From last week’s plans

  • Work
    • [X] Project T: Catch up on tasks, prepare for launch
    • [X] Project O: Catch up on work, set up integration server
    • [X] Project I: Follow up on SQL Server configuration
    • [-] Pick up new computer, replacement badge? – postponed, waiting for shipment
    • Helped people with communities
    • Brainstormed ways to help improve other people’s happiness and connection at work
  • Relationships
    • [-] Help J catch up with school – next week
    • [X] Share stories from trip
    • [X] Catch up with laundry
    • [X] Catch up with blog comments and email
    • [X] Go to Quantified Self Toronto meetup (Friday)
    • [-] Go to secondary schol info night – next week
  • Life
    • [X] Take it (relatively) easy
    • Added lots of functionality to my home dashboard: clothing matches and status, library books, measurement tracking (ex: time)
    • Experimented with routine improvements: hair towel, podcasts, drawing
    • Scheduled more blog posts

Plans for next week

  • Work
    • [ ] Project O: Flesh out autosave on the form
    • [ ] Project I: Follow up on SQL Server changes
    • [ ] Project T: Follow up on pre-launch changes
    • [ ] Interview at least two people about happiness and connectivity in our consulting practice
  • Relationships
    • [ ] Help J catch up with school
    • [ ] Attend secondary school info session
    • [ ] Sort and share pictures
  • Life
    • [ ] Take notes on library books
    • [ ] Copy measurements into home dashboard

Time analysis

Activity This week Last week Delta Notes
! Discretionary 42.4 106.0 -63.6
! Personal care 16.6 16.6
! Unpaid work 14.6 14.6
A – Sleep 52.8 62.0 -9.2 Timezones, jet lag?
A – Work 41.6 41.6 Back to work
D – Break 0.8 0.8
D – Delegating 0.2 0.2
D – Drawing 0.8 0.8
D – Other 10.6 10.6
D – Personal 16.2 16.2
D – Reading 1.0 1.0
D – Social 5.6 106.0 -100.4
D – Writing 7.1 7.1
P – Eating 1.1 1.1
P – Exercise 3.8 3.8
P – Routines 11.7 11.7
UW – Cooking 1.9 1.9
UW – Tidying 5.6 5.6
UW – Travel 7.1 7.1
Category Average Weekday Weekend
Sleep 7.5 7.5 7.6
Work 5.9 8.1 0.6
Discretionary 6.1 3.7 11.9
Unpaid work 2.1 1.9 2.6
Personal care 2.4 2.8 1.3

Geek travel update: Mostly as planned

October 24, 2011 - Categories: geek, quantified, travel

I planned my packing for the Oct 5 – Oct 15 trip to the Philippines using several matrices. Life worked out mostly as planned. This was how I thought it would work out:

  Cream tee White tee Pink tee Dress
Dress       2011-10-9
Brown skirt 2011-10-07   2011-10-10  
Stretch pants 2011-10-15 2011-10-05 2011-10-08  
Cargo pants 2011-10-13 2011-10-11 2011-10-06  
Board shorts   2011-10-14 2011-10-12  

I liked the planning method, so I built the analysis into my home dashboard. This is what my clothing logs tell me:

image

Here’s that listed by date (also from the same page):

Clothing item 04 05 06 07 08 09 10 11 12 13 14 15 Total
pink board shorts                   A     1
dark brown capri pants                     A   1
white Wanko lace       B     A           2
cream v-neck shirt                 A   A   2
rose shirt     A             A     2
brown cable sweater A                     A 2
paint-spattered stretch pants A A     A             A 4
cream shift dress           A             1
light blue Jockey T-shirt       A                 1
white Jockey shirt A A     A     A       A 5
brown skirt with pattern       B     A           2
beige vest A                     A 2
blue cargo     A A       A A       4
Total 4 2 2 4 2 1 2 2 2 2 2 4  

A and B distinguish different outfits on the same day.

I might need to fix the clothing logs as the pictures come in. I forgot to track some of the earlier days, so I filled them in from memory.

I wore the white T-shirt / stretch pants combination on the plane rides, hence the double-counted days.

Next time, I should bring more polyester and less cotton. I brought the cotton T-shirts because they were easy to mix and match. They were fine in the city, where we spent most of our time in airconditioned comfort. The polyester top I borrowed from W- was much more comfortable in hot weather. It dried faster after washing, too. Many of my polyester tops are more sport-like and can’t easily be matched with skirts, but I’ll keep an eye out for other tops that would be a good fit. The travel pants my dad got me should also make it easier to use my travel tops.

I should plan for clothes to dry in two days, not one. Maybe even three days, for safety.

We packed just the right number of clothes, I think. I didn’t feel like I packed too few clothes, and I didn’t end up with lots of clothes unworn.

W- totally won in terms of clothing. It turns out that scrubs are excellent for air travel: a loose fit for comfort; pockets for pens, passports, and boarding passes; and room to avoid aggravating sunburns.

Yay geek travel!

Thought roundup: Podcasts, drawing, cats, and towels

October 25, 2011 - Categories: Tidbits

Here are some bits and pieces that probably won’t end up in their own blog posts, but which I thought might be useful to share.

Making better use of time by listening to podcasts: I tried using BeyondPod to download and play podcasts during commutes and chores. Bonus: Turns out it has Tasker support. I’ve set up Tasker to automatically play podcasts when I plug in my earphones. By default, BeyondPod pauses when I take my earphones out. Handy! I’m not sure whether I’ll stick with the free version, buy the $7 app, or use a different podcast player yet, but it’s a neat idea.

Practising drawing during the commute: I can’t really listen to podcasts while I write or read – verbal interference – but I can practise drawing. I’ve started drawing in a small notebook whenever I have a chance to sit down during my commute. Nothing amazing, just deliberate practice: straight lines, boxes, circles, faces. It’s really easy to draw lots and lots of faces. Draw plenty of circles, add two dots in almost any location, and then let your mind fill in the rest. I like drawing so many faces close together with the randomness of the occasional subway jolt. With all those variations, I get to see which kinds of faces I like.

Cats can be very cuddly: You know how cats are supposed to be independent and aloof? Luke is a complete sucker for attention. Leia likes putting her arms around my neck and being cuddled. Even Neko heads for our laps (well, W-‘s lap these days, not that I’m jealous or anything) whenever we’re on the couch.

Tweaking routines – hair towel: Turns out that a hair towel / turban is much better than using a regular towel. It keeps my hair out of the way, dries my hair faster, results in less laundry, and helps me avoid forgetting wet towels. My mom was onto something when she gave it to me.

Practising drawing: variations on a theme

October 26, 2011 - Categories: drawing, kaizen, sketches

image

You need to doodle your way through lots of faces until you get the hang of drawing them the way you like them. I haven’t quite figured them out yet, but I’m getting there. Minor variations on a theme help me understand things better. This must be why there are lots of classical music pieces that sound alike – composers figuring things out, too.

I like the simple style I picked up from Sachiko Umoto’s Illustration School: Let’s Draw Happy People. Two dots, a nose, a mouth. That’s all we need. Actually, people want to see faces so much, you can pretty much pick anything with two “eyes” and bilateral-ish symmetry.

It’s fun to draw faces. They make me happy even if I don’t fill in the rest of the figures.

Practice will help me learn how to draw better. Faces, then torsos, then legs, then arms, then hands.

Progress!

Transcript: Blogging (Part 9): Learning from others

October 27, 2011 - Categories: blogging, tips, writing
This entry is part 9 of 16 in the series Discovering Yourself Through Blogging

Hat-tip to Holly Tse for organizing this interview!

Holly Tse: People might think, okay, Sacha, you’re Generation Y, you’re in your twenties… What can you talk about motherhood? Do you want to share about your experience?

Sacha Chua: I can’t talk much about motherhood. I’ve got a sneak preview here. I have a stepdaughter. She’s 13. What I’m learning from that is that kids are learning all these incredible things. We’ve started doing math study groups. We nudge her to learn more about spelling and math and science and all of these things… But just watching what she’s learning… She actually has a blog too. She updates it sporadically. She talks about what she’s learning at school and her favourite video games and all these other things.

Just looking at how people are learning, and learning from their stories as well–that’s incredible. Whether you have kids or whether you don’t, whether you’ve got nieces and nephews or you don’t, whether you’re learning from your coworkers or people who are older than you, there’s so much you can learn from other people’s stories.

It’s a little difficult for people to tell everybody all the stories that might be relevant to them. It’s such a good thing when you can come across people who are also in the habit of sharing their stories with anyone in the very efficient way of doing it through a blog.

Series Navigation« Transcript: Blogging (Part 8): Slow life down and speed it upTranscript: Blogging (Part 10): Difficult situations »

Decision review: Switching from Rackspace Cloud to Linode

October 28, 2011 - Categories: decision, geek

Update from 2013-05-10: Linode doubled what you get in each plan, so now I have a 1.5GB VPS for $30/month. Whee! Plenty of space to run lots of nginx workers, Emacs, and maybe even a Ruby development environment… I might downsize to 1GB ($20/month) if I can’t find productive ways to use the extra memory and processing power, but I’m sure I can think of something! ;)

I moved my website from Rackspace Cloud to Linode in order to take advantage of Linode’s cheaper rates. A virtual private server on Rackspace Cloud cost me around USD 26 per month for a 512MB slice and data transfer. Linode promised USD 20/month for a 512MB slice. There’s a 15% discount if you prepay for 2 years, and they emphasize that this isn’t a contract – if you change your mind and leave, they’ll credit a pro-rated amount.

It took me about five hours to switch over. Most of that was spent backing up and double-checking my settings. I also fiddled around with Rails so that I could get that up and running again, too. (I haven’t quite gotten the hang of rvm, so I had to deal with version annoyances.) Now my site’s up, and things are pretty sweet.

I spend a little extra on virtual private hosting instead of shared hosting because virtual private hosting gives me more flexibility. I really like being able to SSH in and manage my own server, even though it means I’m also responsible for configuration and optimization. I can run other tools on it too, such as my weekly library renewal script. (Yes, I have a script that renews our books and tells us which ones we need to return.) It’s convenient being able to manage a few sites without paying extra for each, and to be able to mix PHP, Rails, the occasional Emacs session.

My Linode account has been up for only a short while, so we’ll see how it works out. Everything’s back in working order, though.

Update from 2012-06-10: So far, so awesome. I eventually upgraded my Linode slice to the 768MB slice (USD 29.95/month) because I was running quite a few things on it that I haven’t yet optimized for memory. The process of upgrading was painless. Haven’t had any network issues on their side. My site has occasionally been down, but those were entirely my fault. =) I like the service, and I really enjoy having a virtual server I can ssh into and tweak.

Considering Linode?

Weekly review: Week ending October 28, 2011

October 29, 2011 - Categories: review, weekly

New work laptop! Awesome. The Lenovo T420 (1600×900 resolution) is even wider than my X220i. Setting it up was relatively painless, and I’m looking forward to using it to make next week even better.

Work was pretty hectic. Lots of progress on the different projects I’m working on. Still not wizardly fast with Rails, but glad to be able to quickly finish bugs and new features. Onwards!

Life: Wow, this was a school-heavy week. We photographed the Halloween party last Saturday in order to help out with the yearbook, we attended a secondary school information night, and we hosted a study group on Friday. Next week promises to be a bit lighter, and I’m looking forward to carving out more time for personal interests like writing and hacking.

Community-supported agriculture: The fall shares have started, and I’ve added minimal CSA-tracking to my home dashboard. Looking forward to playing with the data.

From last week’s plans

  • Work
    • [X] Project O: Flesh out autosave on the form
    • [X] Project I: Follow up on SQL Server changes
    • [X] Project T: Follow up on pre-launch changes
    • [X] Interview at least two people about happiness and connectivity in our consulting practice – interviewed one person
    • Set up new laptop – yippee! Happiness just went way up.
    • Came up with some ideas for happiness and connectivity – extended game of human bingo, photo flashcards
    • Helped people with Web 2.0 questions
    • Scheduled IBM Drupal Users Group automated testing talk for November 16
    • Project O: Lots of new functionality and bugfixes!
  • Relationships
    • [X] Help J- catch up with school
    • [X] Attend secondary school info session
    • [X] Sort and share pictures
    • Facilitated math study group on exponents and scientific notation
    • Helped J- with history
    • E-mailed one of my godmothers because she’s currently in Toronto
    • Met with energy advisor for pre-grant assessments
  • Life
    • [X] Take notes on library books
    • [X] Copy measurements into home dashboard
    • Bought a domain for my quantified self ideas

Plans for next week

  • Work
    • [ ] Project O: Lots more work
    • [ ] Project I: Follow up on SQL Server changes
    • [ ] Project T: Follow up on pre-launch
    • [ ] Prototype flashcards – probably Rails
  • Relationships
    • [ ] Facilitate another fun study group
    • [ ] Help J- with writing
  • Life
    • [ ] Have massage!
    • [ ] Write about more quantified self stuff
    • [ ] Find other quantified self bloggers
    • [ ] Improve measurements for home dashboard

Time analysis

Activity This week Last week Delta Notes
! Discretionary 37.5 42.4 -4.8
! Personal care 12.6 16.6 -4.0
! Unpaid work 12.2 14.6 -2.4
A – Sleep 61.1 53.2 7.9 A few naps; consistent early-morning wakeups
A – Work 44.5 41.1 3.4 Thought I would be taking more time off on Friday, overcorrected
D – Break 1.3 0.8 0.5
D – Delegating 0.2 -0.2
D – Drawing 0.7 0.8 -0.1 Practising drawing faces
D – Other 0.1 10.6 -10.5
D – Personal 6.6 16.2 -9.7 Less work on dashboard this time
D – Reading 4.4 1.0 3.3 Reading lots of books and testing my library-related additions to dashboard
D – Shopping 2.1 2.1
D – Social 17.1 5.6 11.5 School Halloween event, high school info night, study group
D – Writing 5.3 7.1 -1.8 Didn’t feel like a lot of writing. Want more!
P – Eating 1.3 1.1 0.2
P – Exercise 1.8 3.8 -2.0 Quick walk to subway and back
P – Routines 9.5 11.7 -2.2
UW – Cooking 1.9 1.9 0.0 Batch-cooked oatmeal, packaged our rib lunches
UW – Tidying 6.6 5.6 1.0 Getting ready for energy inspection etc.
UW – Travel 3.7 7.1 -3.4 Commuting to work

Details: (Things may not multiply exactly due to rounding errors)

Activity Average Weekday average Weekend average
Sleep 8.7 8.2 10.1
Work 6.4 8.8 0.2
Discretionary 5.4 3.8 9.2
Unpaid work 1.7 1.1 3.2
Personal care 1.8 2.1 1.2
Count 5 weekdays 2 weekend days

Stories from our trip: Furry caterpillar

October 30, 2011 - Categories: family, life, travel

ccattrib_copyleft_caterpillar_2007_zenera

From October 7: I skittered across the pool in the opposite direction from the floating divider and the furry caterpillar I glimpsed. It had huge hairs sticking out of it, which sometimes means major irritation, which means me being far away. W- was unperturbed. Amused, even.

"I think I’ve figured you out," W- said afterwards.

"Oh?"

"Yes! You: Furry cat? Okay. Furry caterpillar? Not okay."

I nodded.

"Jelly? Okay. Fish? Okay," he said. "Jellyfish? Not okay."

"Now that you put it that way, it makes a lot of sense."

Image © 2007 zenera, Creative Commons Attribution ShareAlike License

Quantified Awesome: Data from waking up 3 hours earlier than normal

October 31, 2011 - Categories: kaizen, life, quantified

ccattrib_toronto_dawn_2009_mac_mcgillivray

I’ve been taking advantage of jetlag to wake up earlier than usual. I go to bed when I’m tired and wake up when I’m ready. Most of the time, I wake up on my own, although I set my alarm for 6 AM as a safeguard. From 2011-10-15 to 2011-10-28, I woke at 5:41 on average, with a median of 5:12 and a standard deviation of 1:09. (Weekends…)

I liked being up early in the morning. No guilt about hitting snooze, no rush to the bathroom, some time for personal projects or work momentum before the workday starts.

I was curious about a few things:

Fortunately, I’ve been collecting time data for a while, so I can compare it with a similar two-week period where I’d wake up around 7. Let’s see how the data stacks up against the data from 2011-08-20 to 2011-09-02, a two-week period also without any long weekends.

Going to bed

n = 14 for each condition

Late Early
Wake-up average 8:33 AM 5:41 AM
Wake-up median 8:30 AM 5:12 AM
Wake-up stdev 0:29 1:09
Bedtime average 1:03 AM 10:16 PM
Bedtime median 0:59 AM 10:09 PM
Bedtime stdev 0:38 1:15
Sleep average including naps 7.8 hours 8.2 hours

So if I want to get up at around 5:30, I should be in bed by around 10.

I tend to sleep less when I sleep later. Work gives me a reason to pay attention to my alarm clock, so even if I hit snooze and have lower-quality sleep, I’m out of bed. I used to stay up late so that I could spend more time hanging out with W- or working on projects. Sometimes it took me a while to go to bed because I’d get carried away hacking. My standard deviations for the late condition are pretty low – mornings because of the alarm clock, and evenings because I eventually look at the clock and go "I really should be in bed."

Waking up early and going to bed when I’m reasonably tired means wasting less sleep time fidgeting, enjoying better sleep and morning quality, and less stress in the morning. Based on this two-week sample, the difference is around 24 minutes a day. It’s hard to tell whether the increased wakefulness of being up early and on my own schedule compares well with the stress and bleariness of mornings jumpstarted by an alarm clock and stress. I think it’s worth it. Besides, if I zoom out and look at more than just the two-week period – say, two-month period 2011-08-01 to 2011-09-30 – I find that I actually sleep around 8.0 hours on average, so the difference isn’t that great.

I wonder if jet lag affected my numbers, increasing the amount of time I needed to sleep. If I look at just last week’s data (2011-10-22 to 2011-10-28), though, it turns out that I ended up sleeping a little more after I had theoretically recovered from jet lag: 8.7 hours on average, or 8.2 hours on weekdays and 10.1 hours on weekends. Part of that might be due to the Halloween event we photographed on Saturday – I got a case of introvert overwhelm and napped for 4.5 hours afterwards to recharge. No significant differences, though: unpaired t-test between number of hours slept during first week (M=7.6, SD=1.5) and second week (M=8.6, SD=1.4); t(12)=1.49 p=0.16. We’ll see how the numbers work out as my routine stabilizes.

I do like the sleep quality. People can spend a lot of time and money in the quest to improve their sleep. I had been playing around with using eyemasks or eye pillows I’ve made myself, and had even considered getting a light-based alarm clock and/or blackout curtains. Going to bed when I’m tired means not needing any of those things, so I can save that money for other things.

In a previous experiment with early-morning wakeups, my husband and I noticed that our schedules were diverging a bit. He’d stay up late, I’d wake up early, and we had less conversation time. He was similarly jetlagged this time around, so we’ve settled into a good routine with plenty of time in the evening and some high-quality morning time too. It’s been working well.

Waking up early and discretionary time

Late Early
Discretionary time average 6.4 hours 5.7 hours
Weekday average 5.2 hours 3.8 hours
Weekend average 9.4 hours 10.6 hours
Work 5.7 hours 6.1 hours
Weekday average 8.0 hours 8.4 hours
Weekend average   0.4 hours
Unpaid work average 1.9 hours 1.2 hours
Personal care average 2.4 hours 2.8 hours
Sleep average 7.8 hours 8.2 hours
Discretionary + work 12.1 hours 11.8 hours

For productive time, I looked at the sum of time I spent on work and the time I spent on discretionary projects. This took into account the extra time I shifted towards working last week. It turns out that there’s a little difference between the discretionary + work time I had (late: M=12.2, SD=2.0; early: M=11.8, SD=2.1), but it’s not significant either (unpaired t-test t(26) = 0.45, p = 0.65). So it looks like waking up earlier doesn’t mean giving up too much – or gaining a lot – in terms of focused time.

Activity substitution

If I have about the same amount of discretionary time anyway, does waking up earlier affect the kind of things I spend my time on? This one is harder to figure out, because other variables affect how I spend my time. I spend more time drawing when I’m attending events or preparing for presentations. I spend more time working on my personal dashboard when I’m buzzing with ideas. I spend more time writing when I don’t have lots of posts queued up. It’s hard to say.

Looking at my time graphs, though, I see that when I woke up early, I didn’t really have the chunks of discretionary time that I’d hope to have in the mornings, and my evenings were more fragmented and other-focused. When I woke up late, I tended to have more me-time at the end of the day, and I still had enough energy to make the most of it.

A previous analysis showed that even when I stayed up late, I didn’t really have many discretionary activities that used a four-hour chunk of time, so waking up early doesn’t mean I’m missing out on activities that need a long chunk of time. However, after-school hours tend to involve discretionary social activities, and I usually carve out time for personal projects either late at night or for a short time in the morning.

Overall, I’m happy with how I spend my discretionary time. I feel like I’ve made reasonable progress on my personal projects, and I’m glad I’ve been able to help with things like homework. I might shift things around so that I can write and program more, probably when I get work back under control. As we improve routine processes like cooking, we’ll free up more time for other pursuits too.

Summary

It looks like waking up early doesn’t have a significant impact on how much time I sleep or how much focused time I have. I like the sleep quality and the lack of stress in the mornings. It might come at the cost of not having a longer window of discretionary time focused on personal projects, but social time is good too. Overall, I’m happy with waking up early and the resulting shifts in my schedule, and will continue waking up early and going to bed late.

Testing your assumptions and trying new things is much easier when you collect data. I’m thinking of sharing observations every Monday. Check back next week for more!

Photo of Toronto at dawn © 2009 Mac McGillivray, Creative Commons Attribution License