Wave of Pink

On June 14, the Burnaby school board voted on an anti-homophobia and anti-heterosexism policy, and a rally in support was planned. Now, there had already been pro-homophobia rallies, so would we have to face a counter-rally? In a way I kind of wanted one: let’s be honest, part of me likes a clear-cut, good-vs-evil confrontation every now and then.

Back in 1997 I joined the SFU queer group to protest the blatantly ideological and oppressive banning of gay children’s books by the mostly right-wing Surrey school board. It was a frustrating and infuriating experience because the board ignored us, ignored all protestors, and just went on with their censorship. (Though there is a happy ending: a few years later (and a round in Canada’s Supreme Court), the ban was overturned)

This is not 1997, and this was not Surrey. On June 14, the Burnaby school board voted on an anti-homophobia and anti-heterosexism policy, and a rally in support was planned. Now, there had already been pro-homophobia rallies, so would we have to face a counter-rally? In a way I kind of wanted one: let’s be honest, part of me likes a clear-cut, good-vs-evil confrontation every now and then.

No homophobes showed up that day, though, except that one guy from the Mormon church across the street, probably looking to see what all the noise was about. Instead there was dancing and singing and beautiful inspirational speeches, by David C Jones, Spencer & Romi Chandra Herbert, and parents or kids from Burnaby gay-straight alliances. The weather was overcast and cool-ish, but the rain held out. Still by 7 (when the board actually met to vote), the entertainment was over and I was ready to go. I (and the 150–200 others) had done all we could, now it was up to the trustees to do the right thing.

Which they did, unanimously. Now bigotry has lost a battle, and queer/trans kids will be a bit safer, at least in Burnaby.

Lock Up Your Sons and Daughters

Bill Taylor put together a collection of old anti-gay propaganda to educate and entertain. easy to laugh, and in fact that’s part of the point. Laughter is the best medicine, and celebrating how far we’ve come is part of Gay Pride. But it’s also important to learn how our enemies think, and what they tell people about us.

Bill Taylor put together this collection of old anti-gay propaganda to educate and entertain. It’s easy to laugh, and in fact that’s part of the point: laughter is the best medicine, and celebrating how far we’ve come is part of Gay Pride. But it’s also important to learn how our enemies think, and what they tell people about us. David C Jones (in one of the many, many introductory speeches) pointed out that Evil wins too often because Good is dumb. Sorry, no, I meant because Evil is organised; Evil hates and fears and is authority-driven, while Good is just out to do good and have fun. Proposition 8 passed in California because of big money and lies propagated in part by the Mormon Church and NOM and a lot of people weren’t worried because, hey, it’s California! Likewise, few expected the Conservatives to get a majority, and now look at us.

Plus, we need to remember that these movies are still being made today. The lines have probably shifted a bit—I haven’t seen any recent anti-gay movie, but I bet they go on against same-sex marriage more than the evils of homo sex per se—but the message hasn’t changed.

Boys Beware

Apparently all homosexuals in the 50’s/60’s wear suits and have little creepy thin mustaches. This infomercial lays out the horrifying truth about how homos prey on good wholesome sports-playing American boys, and they (the boys) need to beware: don’t get in strangers’ cars, don’t accept gifts, don’t spend time with creepy guys without your parents’ permission, etc… It’s as deadly-earnest as you’d expect from a short of that era.

And hey, Boys Beware is available on YouTube!

Soapy The Germ Fighter

Equally old, this one features a boy who’s worried that excessive washing-up will make him a sissy. A talking bar of soap appears to him in a dream telling him that washing up isn’t sissy, cowboys totally do it, and goes on a bit about germs and why it’s important to fight them. This cutesy film is in the same vein as the old educational shorts shown on MST3K, like A Case Of Spring Fever. It’s not anti-gay, though, except insofar as sissiness is perceived as a valid fear.

Highlight 1: the soundtrack from The Nutcracker.

Highlight 2: Soapy recommends that women wash their hair at least every two weeks. But that part is (IIRC) because shampoos were very harsh and damaged the hair. Hence the need for perms.

Watch it for yourself!

William’s Doll

Fast-forward to 1981, and the touching tale (adapted from a book) of a boy who wants a doll for his birthday. Amidst the horrible acting and clunky writing, there’s actually a nice message here: dolls aren’t just girls’ toys, it’s okay for boys to express affection too, and the final scene shows that doll-playing isn’t turning William into a “sissy,” because he’s just as happy playing football and digging up dirt with his Tonka™ truck.

Which makes me wonder why this movie was included, since it’s not anti-gay at all. Mind you, I wouldn’t call it pro-gay, but it’s definitely pro-flexible-gender-roles.

Highlight: The toy train scene, where I’m pretty sure I saw some old Star Wars action figures (Greedo, especially, caught my eye). Ah, that brought me back, I totally played with them back in the day.

Perversion For Profit

Back to the 60’s now, with a deadly serious short going on (with pictures!) about how pornography is ruining the moral fiber of our country. And by “our country” I mean of course “America”. To be fair, this film features equal-opportunity fearmongering, giving equal time to girlie, S/M and physique mags.

Highlight 1: those hilarious little taped bars, blotting out eyes, nipples, asses and crotches of the models.

Highlight 2: the porn industry is controlled by Communism.

Watch it on YouTube: Part 1, Part 2

The Gay Agenda

This film was done in 1992 by some anti-gay group in California (I think), and so can’t be dismissed so easily. It features a couple of talking heads discussing oh so calmly why sexual orientation shouldn’t be a protected status under the law, because it’s a choice and gays are a health hazard, the latter backed up with all sorts of statistics: 95% of homosexuals have enjoyed fellatio, 92% anal sex, 35% have done fisting… Honestly, I forget the exact numbers, I’m making it up as I go along. Just like them.

Also, just to shock those decent church-going viewers, shots from Pride parades. You know the drill: half-naked men humping each other, topless women, leather doms dragging their slaves on a leash, dildo-wearing drag nuns, juxtaposed with pictures of kids at those parades. One little girl looked cranky and crying; Gawd knows what the audience was thinking when they saw her.

In addition we get to hear from a couple of “ex-gays”: what’s interesting is that both these guys are young, pretty and a little flaming, though obviously toning it down, while the stats-spouting talking heads look like regular straight guys. I didn’t realize it at first, but just like the parade scenes, this is designed to visually push buttons with the audience: at best, the producers wanted guys who looked stereotypically gay enough so that the audience would buy their story. At worst, it implies that ex-gays are still not really straight, and no matter what they do or say they can’t be considered normal.

Highlight: one of the “ex-gays” getting just a bit too excited when talking about bathhouses. You can bet that got a laugh from the audience.

Conclusion

Out of these five movies, three are gold, exactly what I signed up for. Two are not. They’re funny and cheesy as all hell, yes, but they’re not anti-gay by any stretch of the imagination. And while googling this show, I found references to a couple of other anti-gay shorts that for some reason were not shown tonight: Neurotic Behavior—A Psychodynamic View (via Hummingbird604), and Red Light, Green Light: Meeting Strangers (mentioned on the event’s Facebook page, and viewable online here). I wish we’d gotten the chance to see those.

Drupal and hook_form_alter()

I’ve been working with Drupal a lot in the last few months, and enjoying the hell out of it. Every day I’m learning some new tidbit, some interesting new scheme that at first seems confusing, but them usually makes me go, “Wow, that’s brilliant!”

I’ve been working with Drupal a lot in the last few months, and enjoying the hell out of it. Every day I’m learning some new tidbit, some interesting new scheme that at first seems confusing, but them usually makes me go, “Wow, that’s brilliant!”

Forms, for instance. Drupal offers a nice API to build and process forms; hook_form_alter() lets your modules modify forms defined in other modules, by adding fields, removing fields, even changing the back-end logic. At first I thought all this hook could do was fields, and I looked for something like hook_form_validate_alter(). But no, the real solution is even more elegant:

mymodule_form_alter(&$form, $form_state, $form_id) {
  if($form_id == 'form_whatever') {
    $form['#validate'][] = 'mymodule_form_validation';
  }
}

The $form['#validate'] looks like it contains an array of functions to be called when validating the form (likewise for $form['#submit'], I think). Simple and beautiful. The best part is, nothing is overwritten. Any module may alter any given form, and all their functions will be run. (The order in which they’re run can also be set: turns out modules have weight). I’ve thought for a while that Drupal seems ridiculously over-engineered, but that’s its strength: it allows developers to try out all sorts of crazy schemes like this. The more I learn about Drupal, the more I respect it.

A bunch of photos: Northern Voice, Slutwalk, walking in the West End

Last week I attended Northern Voice 2011. Much fun was had by all.

Last week I attended Northern Voice 2011. Much fun was had by all.

LSC Atrium

ESL FTW

Life Sciences Atrium

Also last week, I attended Slutwalk Vancouver.

Consent is never implied

Sluts. Or women with signs.

And in the last week, I’ve been able to organise my morning routine so that I can walk to/from the North Van bus, instead of connecting twice. I tell you, there’s nothing like a morning walk in the West End, in the warm sunlight, surrounded by joggers and the smell of fresh cut grass. Likewise, walking from the Skytrain along the Seawall.

Bute Street

Glowing Leaves

Foot of Davie Street

Burrard Bridge and Setting Sun

Northern Voice 2011

And it’s that time of year again. Time to hob-nob with all sorts of bloggers and assorted geeks in UBC’s lovely Life Sciences Centre, with its gorgeous atriums filled with natural light.

And it’s that time of year again. Time to hob-nob with all sorts of bloggers and assorted geeks in UBC’s lovely Life Sciences Centre, with its gorgeous atriums filled with natural light.

Friday Keynote: April Smith

This was different. Both previous keynotes dealt with high-level politics, how social media intersects with mainstream media and corporate power. But April Smith brought us down to earth for a moment with her stories of living in the Downtown Eastside. We learned about her work as a citizen journalist empowering the residents with access to technology—Nokia handphones, specifically. I forget the exact model, and I’ll forgive the constant product placement, especially if it turns out that they’re as easy to use as she claims. Those phones were donated by some Nokia rep, and it’s a hard reminder that this shit ain’t free, and every social movement must depend on the kindness of sicher strangers.

April was clearly nervous and reading from prepared notes—she admitted to being uncomfortable speaking in front of people—but that didn’t matter. Her stories were raw, straight from the heart, and powerfully moving. The short clip of the man whose cat was thrown out of his 5th storey apartment during a breakin. The simple brief connection that stopped a man from killing himself, just because she showed him a bit of kindness and let him see his own photo. If April hadn’t been there, with her phone, that man would now be dead.

That’s what social media means, in the Downtown Eastside. It’s about connecting with people, telling your story, and changing lives for the better.

Drawing on Walls

Okay, that was kind of a bust. I don’t think I got anything out of it, except yet a reminder that my drawing skills suck. I chose this session just to go a little outside the box (and because none of the other ones really appealed to me), but an hour-long workshop wasn’t going to give me any super-creative power. Ah, well. Live and learn.

Your Blog Is Boring and Your Photos Suck

Syx Langemann and Morten Rand-Hendriksen teamed up to give the audience some tools to make their photos suck less and their blogs less boring. Somewhat disappointingly, they mostly covered the technical aspects (Syx: aperture, shutter speed, ISO; Morten: ALT tags, meta tags, SEO, and WordPress-specific tidbits) but not so much ways to make things less boring or sucky. I guess that part is up to each of us. But I did love the sample photos Syx showed us; nothing like the portfolio of a talented photographer to get you inspired!

The Naked Truth: Canadian Science Blogging Scene

A panel consisting of Rosie Redfield, Beth Snow, Eric Michael Johnson and Maryse de la Giroday discussed science, blogging, and all related issues. Does blogging impact your credibility as an academic and researcher? What are the pros and cons of pay-to-read vs. pay-to-publish journals? What place do non-peer-reviewed blogs have in science education and research? What incentive do researchers have to blog about their work if it means the risk of competitors scooping them out (and their funding)? Why would a researcher blog?

Dr. Redfield (who did most of the talking) answered that last question: she likes the idea of a non-scientist stumbling on her writing, it clarified her thinking, serves as a memory aid, and helps her write. Also, it allows her to critique science in the media.

Good stuff, for sure.

Incidentally, I found it interesting that 3 out of the 4 panelists were women. I wouldn’t have expected that kind of breakdown for science bloggers and academics, but there you go.

Also: the following day at lunchtime, Dr. Redfield took a few of us on a short tour of the labs in the building. Behold the power of social media: there was no big announcement, no signs put up, just a couple of calls retweeted back and forth.

MooseCamp: Five Card Flickr

Five Card Flickr is fun. Our small group spent the hour with Alan Levine getting to know the game, choosing pictures, and coming up with a story. Didn’t go anywhere and it had no plot, but man was it fun. I haven’t taken part in this kind of collective storytelling since… what, my D&D days? Ooo, and check out Pecha Flickr.

Communities That Rock

How do you create kick-ass online communities? Arieanna Schweber and Raul Pacheco-Varga give us the lowdown. Some of their advice applied for blogs, others for forums and community sites, but the bottom line is pretty much the same: engage with your audience, have everything (tweets, photos, videos) point back to a single site, have proper internal linking, know how to tell a story. Pretty common-sense stuff, right? Maybe, but it has to be said. Also, keep in mind that this is hard work, and community building doesn’t happen overnight. Finally, avoid becoming isolated. It’s good to be active both offline and online.

Saturday Keynote: Chris Wilson

Chris Wilson took us on a trip down memory lane, reminiscing about NCSA Mosaic (which I also remember fondly from my early days on the WWW), his early work on Web standards—apparently he’s responsible for overlapping <B> and <I> tags—and adventures in social media. Of course, they didn’t call it that. But games like Nethack (through other people’s ghosts) and other applications allowed connections and interaction between people, mediated by technology. And isn’t that what this conference is about?

Wilson cautioned us: There are people that need to learn how to play well with others. What voice should you use? How much should you share? Sharing feels good. It makes you vulnerable, but you create lots of real connections. I guess it’s up to each of us to choose how far to take it. He closed off with a quote from the late, great Douglas Adams

I may not have gone where I intended to go, but I think I have ended up where I needed to be

A Code of Ethics For The Social Web

Morten R-H again, this time discussing our responsibility, as bloggers, to the truth. This applies much more to journalism-style blogging, and reviewers, but everyone can benefit. Really, it boils down to a few simple principles: be honest with yourself and your audience; admit when you may be biased (e.g.: when you get freebies in exchange for reviews), be critical of your own biases and opinions. It is important to have such a code of ethics, and hold each other accountable, because anyone with a big enough audience has a big influence.

Trust relationships—brought up by an audience member who disagreed with Morten’s basic thesis—will only take you so far. It’s all very well to personally be critical of the blogs you follow and if you find they’re unreliable, well, to just stop following them, but (a) that does nothing to discourage unreliable bloggers, and (b) it doesn’t help people who don’t have working bullshit filters. If the Tea Party, 9/11 Truthers and the Huffington Post* have taught us anything, it’s that popularity has very little to do with truth.

(*Seriously, early on in the talk he lumped all three together. Awesome)

And here’s his code of blogging ethics

Looking Through The Lens

Alan Levine again, taking us through some of the ins-and-outs of taking good photos, both from a technical and creative standpoint. It was great stuff, but hard to summarise.

Stop Apologising For Your Online Life

Alexandra Samuel asks: is online life any less real than IRL? Are those three letters themselves a dead giveaway? She argues that no, life online is just as interesting and meaningful as offline. She proposed a new 3-letter term: RLT, meaning Real Life Too. Kinda catchy, though I’m not really feeling it. Still, who knows? It just might catch on.

Online art is just as valid and meaningful as offline art, just because you can’t hang it on a wall or show it off in a gallery. There is amazing stuff being done online, like the It Gets Better Project (and indeed, for a lot of queer youth, online is the only way to connect with other queer people); I’ll just add Pogo’s fantastic remixes.

But you also have a responsibility to your online life, as much as your offline one. Don’t be passive, invest real attention; give back, and commit to creating something real. Likewise, don’t just friend any Tom, Dick and Harry on Facebook. Friendship means something, online as well as off-. Only connect with people you feel a relationship with, not just faces that’ll increase your friend count.

Conclusion

I left early on Saturday, because I was still feeling a bit under the weather, but I’m so glad I went. Looking forward to next year’s Moose!

WordCamp: Developers

Yesterday was a very, very good day. Why? Because I went to WordCamp: Developers, that’s why! A whole day of knowledge, hot geeks, and interesting people. Though I’ve been tinkering with WordPress for a few years now, I’ve been starting on larger projects for other people (both volunteer and paid). It’s exciting and a little scary.

Yesterday was a very, very good day. Why? Because I went to WordCamp: Developers, that’s why! A whole day of knowledge, hot geeks, and interesting people. Though I’ve been tinkering with WordPress for a few years now, I’ve been starting on larger projects for other people (both volunteer and paid). It’s exciting and a little scary.

Keynote

The keynote consisted of Lorelle Van Fossen interviewing Andrew Nacin. Okay, kinda different, but I totally didn’t mind. First impressions: even with that playoffs beard, Nacin is hot. And used to be a fireman. Seriously. Second impression: he loves what he does, and inspired the same kind of love in the audience. “Innovation is the key to WP’s success,” he said. Things like menus, internal linking, even the current design, started out as pieces of code in various themes and plugins. Who knows where our little ideas will lead us?

Also, “Never trust the user.” But that’s a bit less inspirational.

HTML5 & CSS3 Integration For WordPress

Ray Villalobos took us on a whirlwind tour of these new technologies’ features. I was already familiar with some of them (border radius, semantic tags, transparencies) but at the end of the hour, my brain felt more than full. And I still had five more talks to go!

One quibble, though: As informative as it was, Ray’s talk didn’t really have anything to do with WordPress per se. I understand that a good WP developer has to know these things, but they apply to any Web development work. So… should they have been in a WordCamp event? I’m still undecided.

Developing a Control Panel for Multiple Sites Using the Same WordPress Theme

O HAI. Toby McKes works at Cheezburger Networks, the people responsible for bringing you lolcats (and Fails, and Squee, and Graphs) each and every day. I know, I couldn’t believe our humble city could be so honoured.

But bringing laffs to the world takes a lot of hard work. In the early days, all their blogs were running on different hacked themes, they all looked at least a bit different, and maintaining them was a huge headache. The solution was a unified theme, with dozens and dozens of theme options, controlled via a custom admin panel. This made installations a breeze, since they were all running on the exact same code. They even have a tool for importing and exporting options, too!

This really resonated with me, because one current project involves implementing a site with lots of custom options. I don’t need a full-blown admin panel for multiple installations… but it’s good to know others are dealing with similar issues.

Unconference: Finding Work as WordPress Consultants

I decided to skip the WordPress e-commerce talk (though I heard later it was very informative) and headed over to the Unconference track for a little discussion with Lloyd Budd on making money with WordPress. I’m honestly not sure if I have enough experience to really make a go at it just yet, but I want to know what options (and obstacles) lie ahead. We discussed CodePoet and other consultant-finding sites, and shared personal insights. No insights from me right now, but maybe next year…

Tackling JavaScript for WordPress

Again, lots of information, great if you want to get into fancy web development, but not directly related to WordPress. (Almost as an afterthought, he did mention wp_enqueue_script()). But I have to say, I loved how enthusiastic, yet low-key Allen Pike is about JavaScript. The way he says “Mind-blowingly awesome code you’ll learn a lot from” in an adorkably deadpan voice is just awesome.

Challenging Traditional WordPress Design

So you’ve got your traditional blog design with all this extra navigation in the sidebar: categories, tag clouds, recent posts, etc… Is it useful? Do people read them, or do they just tune them out? Catherine Winters looks at various site designs and relevant studies and concludes that, no, they’re not that useful. That a lot of these frills are in fact making pages harder to read, and that today’s web designers are ignoring lessons learned over centuries of print design.

Catherine’s delivery could have used some polish, but her ideas were right on the money. In my last blog redesign I deliberately cut out all the sidebar bits she mentioned. My inspiration, in part, came from AdamSchwabe.com, whose blog was even more radical in its minimalist design. And worked beautifully.

Possibly the Strangest WordPress Project You’ve Ever Seen in Your Life

That’s really what the schedule said. And holy shit did it deliver. Mark Reale led us through the design and implementation process of 6q.com, a site he did for artist John Oswald. It’s a trippy thing, loaded with crazy JavaScript animation, but it really does run on WordPress!

Oh, and I won a book at the end of this talk, too. Jesse James Garrett’s The Elements of User Experience. Go me!

Final Thoughts

So, that was WordCampDev. The organisers did a fantastic job, and I love these events because there’s so much to learn and absorb, and I come home so inspired! Looking forward to Northern Voice next week!

WordPress Options

I’ve been working on a project that involves reimplementing a site in WP. This specific setup requires quite a bit of custom logic, including several dozen options. It’s interesting work, and I feel I’m really stretching myself as a WordPress developer.

I’ve been working on a project that involves reimplementing a site in WP. This specific setup requires quite a bit of custom logic, including several dozen options. It’s interesting work, and I feel I’m really stretching myself as a WordPress developer.

Options in WordPress are easy to do. My first exposure to them was from looking at various themes’ options, but when you get right down to it they’re very simple. It all comes down to three little self-explanatory functions, that may be used anywhere in a theme:

set_option('option name','option value');
get_option('option name');
delete_option('option name');

That’s it, that’s all you really need. Now, a good theme or plugin will put in a lot of extra logic to make options pages nice and user-friendly. For instance, Erudite will structure options in a multi-level array, like so

$erdt_options = array (

	array(	"name" => __('Dark Colour Scheme','erudite'),
			"desc" => __("For all the dark colour lovers out there",'erudite'),
			"id" => $shortname."color_dark",
			"std" => "false",
			"type" => "checkbox"),

…and so on. Each field has a name, a description, a type (for the options screen), an id (used to retrieve and store the option) and a default value (“std”), for when a user wants to reset a theme. All of these are completely optional and depend on how the developer wants to built the options page. Unlike Drupal, there doesn’t seem to be a standard API.

The code might look something like this (again, taken from the Erudite theme):

foreach ($erdt_options as $value) { 
  switch ( $value['type'] ) {
    case 'text':
    // display one text field
    case 'select':
    //display a dropdown
  }
}

And to display one field:

<input name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" value="<?php if ( get_option( $value['id'] ) != "") { echo get_option( $value['id'] ); } else { echo $value['std']; } ?>" />
        <?php echo __($value['desc'],'erudite'); ?>

As you can see, each input field has its own ID, in case you want to do a bit of styling. Personally I would also add a general class to cover all fields, or maybe different classes for different types.

Saving these options is also quite simple:

foreach ( $erdt_options as $value ) {
  if ( isset( $_REQUEST[ $value['id'] ] ) ) { 
    update_option( $value['id'], $_REQUEST[ $value['id'] ]  );
  } 
  else {
    delete_option( $value['id'] );
  }
}

I’m ignoring all questions of where all this code fits in the functions.php file, where to place options pages in the admin section. That’s a topic for another day; I’m just going through the basics for my own benefit, and that of anyone who reads this.

Jesus says BRB, Mary Magdalene says LOL

Found this right in front of my building this morning. There were also a few Earth Day-themed chalk drawings on the sidewalk, and others pointing us to the nearest polling station (they all want us to vote Green). I love the West End!

Found this right in front of my building this morning. There were also a few Earth Day-themed chalk drawings on the sidewalk, and others pointing us to the nearest polling station (they all want us to vote Green). I love the West End!

Jesus Says BRB

WordPress Queries

A little while ago I had to display author pages for posts of a certain custom type. Let’s call it “portfolio.” Now, I’m still learning, but my understanding is that author page templates require the following logic:

A little while ago I had to display author pages for posts of a certain custom type. Let’s call it “portfolio.” Now, I’m still learning, but my understanding is that author page templates require the following logic:

  1. Go through at least one iteration of The Loop (by calling the_post())
  2. Use the_author_meta() or get_the_author_meta() to get the author info you want and display it accordingly
  3. If you also want to display the author’s posts on this page, call rewind_posts() to (you guessed it) rewind The Loop, or build a whole new query

You don’t need to explicitly build a query at the start of the template. That’s automagically taken care of you by WordPress. However, if you want to get more specific, here’s how it’s done:

global $wp_query;
$args = array_merge( $wp_query->query, array( 'post_type' => 'portfolio' ) );
query_posts( $args );

The first line makes the query object (which is a really complex beast I’m just starting to wrap my head around) visible to the script. The second adds an extra argument to the query string. The third performs a new query. Pretty simple, right?

Mind you, for author pages the above code is only necessary if you’re doing step (3). Otherwise you’re good.

Spring Blossoms

It’s been a cold and rainy spring for the most part, putting a serious damper on Vancouver’s Cherry Blossom festival. Still, there were a few sunny breaks here and there, and I managed to take a few shots of spring flowers.

It’s been a cold and rainy spring for the most part, putting a serious damper on Vancouver’s Cherry Blossom festival. Still, there were a few sunny breaks here and there, and I managed to take a few shots of spring flowers.

Blossoms

Budding Blossoms

You know what’s really interesting? The blossoms in the above photos (taken on April 2nd) are noticeably pinker than the later ones (taken on April 11th)

Sunset Beach

Blossoms

Blossoms and Tower