November 29, 2009

Bulk view

Weekly review: Week ending Nov 29, 2009 (and website redesign!)

If you’re reading this in your feed reader, check out my new site design at http://sachachua.com! =) 

It’s amazing what you can do with focused time. I created my own website theme, tweaked a number of things that had been bugging me, and tried some optimizations. I’d love to hear what you think about the new theme, and what could make the site even better for you. =) Looking forward to your comments!

Plans from last week:

Work

  • Catch up on deferred work
  • Interview Jason Wild
  • Present “Remote Presentations That Rock” at IBM women’s leadership program
  • Double-check calendar (including speaking engagements)
  • Also: Organized training activity
  • Documented processes
  • Set up community for women’s leadership program
  • Filed expenses from Boston trip
  • Nudged manager

Relationships

  • Take more pictures
  • Tidy up around house
  • Also: Enjoyed watching W- play Quake 4

Life

  • Work on writing backlog
  • Review editors’ feedback
  • Bake another pie
  • Cut pieces for a coat
  • Also: Sent permanent residency paperwork
  • Created new website theme that involves more sketches and a grid layout, yay!
  • Started learning animation
  • Ordered Anime Studio 6 Debut
  • Learned more about drawing
  • Picked up tons of books from the library
  • Looked up paperwork needs

Plans for next week:

Work

  • Support training sessions, community
  • Interview speaker for podcast
  • Talk to various people in the organization about similar initiatives

Relationships

  • Spend more time cooking
  • Buy/make gifts

Life

  • Tweak blog some more
  • Learn more about animation
  • Post sketches
  • Recover from cold

WordPress tweak: Proper navigation for date.php

I can’t be the only person who’s ever wanted proper navigation on WordPress date.php archive pages. By this, I mean that if you’re browsing, say, http://sachachua.com/wp/2009 and you’re on the first page, there should be a way for you to get to 2008.

So I spent a couple of hours hacking that in. This even skips non-existent years/months/days. Tweak and enjoy.

Minor notes: It jumps to the first page of the other year/month/day, so the results aren’t strictly chronological. Going to 2008 from 2009 will show you the blog posts from January 1 instead of the last posts of 2008. Since I display a huge list of posts and I only use one page, that’s fine with me.

<?php
  $y = mysql2date('Y', $wp_query->posts[0]->post_date);
  $m = mysql2date('m', $wp_query->posts[0]->post_date);
  $d = mysql2date('d', $wp_query->posts[0]->post_date);
  $display = mktime(0, 0, 0, $m, $d, $y);
  if (is_year()) {
    $format = 'Y';
    $prev_display = mktime(23, 59, 59, 12, 31, $y - 1);
    $next_display = mktime(0, 0, 0, 1, 1, $y + 1);
    $url_format = 'Y';
  } elseif (is_month()) {
    $prev_display = mktime(23, 59, 59, $m, 0, $y);
    $next_display = mktime(0, 0, 0, $m + 1, 1, $y);
    $format = 'F Y';
    $url_format = 'Y/n';
  } elseif (is_day()) {
    $prev_display = mktime(23, 59, 59, $m, $d - 1, $y);
    $next_display = mktime(0, 0, 0, $m, $d + 1, $y);
    $format = 'F j, Y';
    $url_format = 'Y/n/j';
  }
  $paged = get_query_var('paged');
  if ($paged < 2) { // No previous pages; navigate by date instead
    $past = $wpdb->get_row("SELECT UNIX_TIMESTAMP(MAX(post_date)) AS post_date
FROM $tableposts WHERE post_date <= FROM_UNIXTIME($prev_display) AND post_status='publish'");
    if ($past->post_date) {
      $prev_text = '&laquo; ' . date($format, $past->post_date);
      $prev_link = get_bloginfo('url') . '/'
        . date($url_format, $past->post_date);
    }
  }
  if ($paged >= $wp_query->max_num_pages) { // No next pages
    $future = $wpdb->get_row("SELECT UNIX_TIMESTAMP(MIN(post_date)) AS post_date
FROM $tableposts WHERE post_date >= FROM_UNIXTIME($next_display) AND post_status='publish'");
    if ($future->post_date) {
      $next_text = date($format, $future->post_date) . ' &raquo;';
      $next_link = get_bloginfo('url') . '/'
        . date($url_format, $future->post_date);
    }
  }
  $title = date($format, $display);
  ?>
  <div class="navigation">
    <div class="left">
      <?php if ($prev_text) { ?>
        <a href="<?php print $prev_link ?>"><?php print $prev_text ?></a>
      <?php } else { ?>
        <?php previous_posts_link('&laquo; Older posts'); ?>
      <?php } ?>
    </div>
    <div class="right">
      <?php if ($next_text) { ?>
        <a href="<?php print $next_link ?>"><?php print $next_text ?></a>
      <?php } else { ?>
        <?php next_posts_link('Newer posts &raquo;'); ?>
      <?php } ?>
    </div>
    <div style="clear: both"></div>
  </div>
  <h1><?php print $title ?></h1>

Process: How to ask communities for help

Reaching out to communities can be a powerful way to find talent or resources. Your personal network may take a while to find the right person or file, especially if key people are unavailable. If you ask the right community, though, you might be able to get answers right away.

Here are some tips on asking communities for help:

  • Providing as much information as you can in the subject and message body.
    • Show urgency. Does your request have a deadline? Mention the date in the subject.
    • Be specific. Instead of using “Please help” as your subject, give details and write like an ad: “Deadline Nov ___, Web 2.0 intranet strategy expert needed for 5-week engagement in France” .
  • Whenever possible, create a discussion forum topic where people can check for updates and reply publicly. This will save you time and effort you’d otherwise spend answering the same questions again and again. It also allows other people to learn from the ongoing discussion. If you’re broadcasting your request to multiple communities, you can use a single discussion forum topic to collect all the answers, or you can create multiple discussion topics and monitor each of them.
  • If your request is urgent, send e-mail to the community. Most people do not regularly check the discussion forum, so send e-mail if you feel it’s necessary. You may want to ask one of the community leaders to send the e-mail on your behalf. This allows leaders to make sure their members aren’t overwhelmed with mail. Using a community leader’s name can give your message greater weight as well.
  • Plan for your e-mail to be forwarded. Because your e-mail may be forwarded to others, include all the details people will need to evaluate your request and pass it on to others who can help. Omit confidential details and ask people to limit distribution if necessary. Include a link to your discussion forum topic so that people can read updates.
  • Promise to summarize and share the results, and follow through. This encourages people to respond to you because they know they’ll learn something, and it helps you build goodwill in the community.

Good luck!