International Women’s Day at Raised Eyebrow

Lauren Bacon | March 8th, 2010
photo: mimosa flowers

Happy 8th March, by lucaNRT on Flickr

Today, as we do every year, we’re closing our doors on March 8 to celebrate International Women’s Day. It isn’t a stat holiday here in Canada, but we like to honour it as a pseudo-stat, for several reasons.

One, we’re proud to be a women-owned business, and in our industry I’m pretty certain that still puts us firmly in the minority. (When we started out 10 years ago, I’m pretty certain we were the only web development shop in town that was women-run, but these days the landscape has thankfully shifted pretty significantly.) Although women are making great strides in the tech arena, we still have a long way to go in terms of achieving equity either in terms of raw numbers or on an economic level. Honouring International Women’s Day is a way for us to bring some visibility to women’s issues.

Two, we’ve always tried to create a work environment at Raised Eyebrow that’s healthy & balanced, and a big part of how we achieve that is by ensuring everyone who works here has a generous amount of time off. March is often a holiday-free zone (except in those years when Easter comes early), so it’s a great time to throw in a long weekend.

And three, taking the day off gives us a chance to celebrate the amazing women in our lives. In Italy, it’s traditional for men to give mimosa branches to their favourite women – here in Vancouver, cherry blossoms are probably easier to find.

We’d love to see more people and businesses in Canada celebrate International Women’s Day in big, visible ways. What are you doing to celebrate? Let us know in the comments.

DrupalCon Sessions to help you manage your business

Colin Calnan | February 26th, 2010

DrupalCon San Francisco 2010 is just around the corner and Raised Eyebrow hopes to “own the podium”, sorry I couldn’t resist. Chris and I have been to 2 Drupalcon’s so far in our Drupal lifetime, and have decided it is time to give something back. We’ve come up with 2 Session Proposals that are overviews about how we used Drupal to create two killer applications for managing a small Web Business.

One stores all kinds of client information; FTP connection info., Drupal logins, client contact info., newsletter provider and vendor info. The other is an online training manual for our clients, enabling us to train them remotely, give them access to it wherever they can find a browser and reduces the need to print large binders that end up getting lost or in the landfill/recycling.

So if you’re interested in hearing more about these the please go cast your vote by following the links below:

Manage your Web Studio using Drupal
Using Drupal to train clients on how to use Drupal

The closing date for voting for Voting is March 1st, so get voting. See you in San Fran.

A Hiatus for Emira

Lauren Bacon | February 1st, 2010

If you’ve spoken with us recently, or visited the office, you’ll already be aware that my business partner Emira is beginning a new chapter in her life, as a mother. Her baby is due about two weeks from now (and yes, we do have a pool going, so feel free to chime in with your date picks), and Friday was her last day in the office for a while. She’s taking a few months of maternity leave — we’re not yet sure how long she’ll be away, and we’re just going to leave it up to her to decide when she’s ready to come back. (I suspect it won’t be too long before her curiosity gets the better of her and she can’t stand not being up to speed on our clients’ projects any longer… but our hope is that she takes all the time she needs to settle in and enjoy her time with her newborn.)

We’ll miss Emira’s strategic savvy, hyper-efficient planning, and of course her cupcake baking — but we are incredibly excited for her, and can’t wait to meet her wee one when he or she arrives.

In the meantime, I’ll be attempting to fill her shoes on the sales side, and will be stepping up my roles as project manager and strategist. And to make room for all that work, we’ll be getting some help on the design side of things (which is my usual bailiwick) from the stellar Paul Jarvis. Paul has been an admired colleague of ours for many years and we’re delighted to partner with him.

If you’ve got any questions about who’s doing what in Emira’s absence, please don’t hesitate to drop us a line. And meanwhile, please join us in wishing Emira an easy birth and a wonderful nesting time with her babe.

(Oh, and don’t worry – we’ll update you all when the baby gets here!)

Socially Conscious Geek: Makin’ Money While Doin’ Good

Lauren Bacon | January 14th, 2010

sxswi2010Two years ago, Emira & I went to South by Southwest (AKA SXSW) for the first time, and presented a panel called “Boss Lady” that featured tips for online business owners from several of the savviest women entrepreneurs we know: Vickie Howell, Jenny Hart & Alex Beauchamp, all of whom appear in the pages of our book, The Boss of You. We had such a good time that we knew we wanted to go back as soon as humanly possible, though last year we were too busy getting our book out the door to attend the conference.

But this year we’re back, this time with a panel that we hope will prove helpful to geeks of both the design and techie varieties – both camps are in full force at SXSW’s Interactive conference, which is a pure, 24/7, all-out geekfest – who are looking to bring their values into their paid work, whether it’s by learning to work with clients in the nonprofit sector, creating apps that help mission-driven organizations work more effectively, or infusing some environmental or social-justice savvy into their workplaces. The panel’s called “Socially Conscious Geek: Makin’ Money While Doin’ Good”, and it takes place Saturday, March 13th.

The topic was inspired by a topic our friend Noah Scalin (of Skull-A-Day and Another Limited Rebellion fame) spoke about at the 2009 HOW Conference. His focus was more on graphic design, since that’s his area of expertise, but when I asked him about riffing on his ideas for an interactive design audience, he shared his materials with me with typical generosity. (This is a guy who lives and breathes a DIY, share-and-share-alike mentality that a lot of designers could learn from. But that’s a topic for another day.)

This time I’ll be attending the conference solo, while Emira spends some time with her new baby; my co-facilitator for the session is Leif Utne, a friend and colleague who works for Zanby, a software company that specializes in supporting online social communities for change. Leif’s background includes a stint as the publisher of Worldchanging.org, and lots of experience building online communities; he’s also a journalist, activist and social entrepreneur.  Zanby is used to support The UpTake, a web video community that among other things was heavily involved in documenting the RNC and DNC prior to the 2008 election, and was also engaged in citizen vote monitoring during the election. He brings both amazing facilitation skills as well as a solid understanding of how businesses and nonprofits can work together in mutually beneficial ways.

We’ll be conducting our session in a highly interactive, inclusive format called a Core Conversation: Leif and I will be kick-starting the discussion and planting some seeds, but the idea is that whoever shows up will have a chance to step forward and contribute questions and ideas – so I’m really excited to see how it develops.

We’re hoping to address questions like:

  • What is a socially conscious geek?
  • How can I specialize in socially conscious work and earn a living wage?
  • What are some of the unique opportunities and challenges of specializing in socially conscious work?
  • What is the difference between non-profit and no-profit clients?
  • How do I make the transition from corporate work to working with non-profit and/or mission-driven clients?
  • What is the “triple bottom line” approach to business?
  • What are some examples of alternative business models that are emerging among socially conscious geeks?
  • How is socially conscious work different than “green” work?
  • What are some examples of clients I might be able to work with as a socially conscious geek?
  • How should I market myself to values-driven clients? Is it different from marketing to corporate clients?

Ultimately, though, the decisions about what we cover will rest with whoever shows up. So please help us spread the word – and if you’ll be at SXSW, we’d love to see you there!

Raised Eyebrow Celebrates Ten Years

Lauren Bacon | January 14th, 2010

There’s a lot of birth talk around the office these days. On top of Emira’s rapidly approaching due date, I find the birth of a new year often turns one’s thoughts to past accomplishments and new beginnings.

We’ve got one more birthday coming up on February 1, as our studio celebrates its tenth anniversary. It’s a little dumbfounding, I’ll admit, to think that it was ten years ago that Emira and I set out on our own and hung out our shingle – in some ways it seems the time has passed in a heartbeat, while in others it feels like a lifetime ago that we were working in a corner of my bedroom.

Beyond moving our desks out of my apartment, we’ve passed a few milestones in the last ten years. I’d like to mention just a few:

  • Our first client was the Vancouver Recital Society, who we’re delighted to report is still working with us. (This past year, in addition to supporting online sales for their 2009-10 season, we also launched enhancements to their home page design along with a brand-new blog.)
  • In 2005, we hired our first employee – the brilliant and witty Chris Torgalson, who we’re proud to say is still a member of our team. Since then, we’ve expanded to a staff of six.
  • We’ve launched hundreds of websites for hundreds of clients, ranging from social justice activists, to research institutions, political parties, health agencies, and international consumer product manufacturers. The variety has been staggering and hugely inspiring – there’s never a day when our clients don’t teach us something new.
  • When we founded Raised Eyebrow in 2000, Content Management Systems were new, and mostly in use on large, enterprise-level websites. We coded our websites by hand, page by page. For about five years now, though, we’ve been developing sites using open-source CMS platforms: first Typo3, now Drupal and WordPress.
  • We’ve navigated a constantly evolving technological environment, that has seen changes such as the spread of broadband access, which made online audio & video widely accessible, and the dawn of Web 2.0 and social media.
  • Emira and I published our book for women entrepreneurs, distilling the wisdom we’d earned in building Raised Eyebrow into a guidebook that encourages both budding and established entrepreneurs to build businesses that reflect their values and care for their staff, clients & communities.
  • We’ve begun offering workshops on social media, publishing with WordPress, and other topics. Watch for more of these in 2010 and beyond – we’re excited about extending our longstanding commitment to sharing knowledge into this new context.

We set out ten years ago to create a small, sustainable business doing what we love, and it’s incredibly rewarding to look around and see what we’ve built over the course of a decade – with a lot of help from our amazing clients and staff. We’ve got ambitious plans for the next few years, too – but right now it feels good to pause briefly and raise a virtual glass to celebrate how far we’ve come.

A Better Word for “Nonprofit”

Lauren Bacon | January 11th, 2010

Is there a better term for “nonprofit”? A recent article by Dan Pallotta at Harvard Business blogs begins, “Anyone who has thought about it for more than a nanosecond agrees that ‘nonprofit’ is about the worst possible summary we could give of ourselves and our work.” He goes on to argue that the nonprofit sector could stand to define itself in terms of what it is, rather than what it is not. (It’s a great post, and well worth reading, as are the unusually thoughtful comments that accompany it.) Pallotta’s suggestion is we move to using the term “Humanity Sector.”

This isn’t the first time I’ve come across the idea of renaming the nonprofit sector. Tom Suddes makes a compelling case in favour of using “for impact” instead — though personally, I’m not sure that distinguishes this sector from the business & government sectors in any useful way. Surely we all want to make an impact? (That being said, if you ever get to hear him talk about fundraising, do yourself a favour and go — he has some amazing insights and a great deal of charm.)

I’m also not convinced of the “humanity” moniker, because the nonprofit sector includes a lot of organizations that really don’t focus on humanity — there are astronomy educators and environmental justice warriors and all kinds of other groups for whom “humanity” isn’t the emphasis. I’ve heard “third sector” (which feels awkward & low-priority), “non-governmental” (okay, but uninspiring), “community profit” (can’t the community profit from corporate & governmental work as well?), and “public benefit” (see “community profit”) — but none of those work for me either.

Although I love the idea of moving away from “nonprofit,” I’d really like us to find an option that is both broadly inclusive of the wide variety of organizations within the sector, and clearly distinct from the focus of for-profit and governmental actors. Because the key differences that mark nonprofits are legal in nature, perhaps “nonprofit” is the simplest option.

But there is one other suggestion I quite like, with a couple of reservations: “the delta sector,” as proposed by Robert K. Ross in The Chronicle of Philanthropy. Yes, it sounds a bit like a Star Trek reference. But here’s his pitch:

Robert K. Ross, president of the California Endowment, a health foundation in Los Angeles, says he’s got just the word: “delta,” the Greek letter that signifies change. So, no more talk about the “nonprofit sector,” he said at the closing session of the National Conference on Volunteering and Service.

It’s now the “delta sector.”

“We need to be more intentionally about change and transformation,” he said. “Business as usual is leaving too many families broken and too many families and folks with hopelessness and despair.”

I’m not a hundred percent sold on “delta sector” — I’m not sure it works for arts organizations (or many conservative groups that actively resist change), and I’m also not convinced that change is a worthwhile motive in and of itself — but I like the sentiment behind it, and indeed behind all these ideas. It warms my former-English-major heart that so many good people are putting so much brain power towards thinking about the importance of language, and I’d love to see the nonprofit / for impact / humanity / delta sector wrestle with this some more and see if we can’t come up with a better name.

Job Posting closes soon

Lauren Bacon | January 5th, 2010

Vacation’s only just over, but we are hitting the ground running here at Raised Eyebrow, and there are just two days left to apply for our Front-End Developer posting. If you’re passionate about clean code and building fabulous websites, and you’re looking for a position where you can learn from some of the best code artisans in town and work for clients who are making the world a better place, look no further.

We offer a friendly and healthy workplace, a client list that includes national and local nonprofits, mission-driven businesses, and government agencies, and a very competitive salary & benefits package. If you (or someone you know) might be a fit, please check out our posting & send your resume & cover letter in by 5:00 PM on Thursday, January 7th.

Using Drupal to deliver video

Colin Calnan | December 22nd, 2009

There are many ways to skin the cat when it comes to putting video on a Drupal site. I’ve tried and tested quite a few methods since my first introduction to Drupal 2 years ago. I’ve used Embedded Media Field as well as Video Filter but finally settled on the combination of FileField with JWPlayer or Flowplayer and in some cases the Media Mover Module for moving files to Amazon S3 storage. I’m going to use our recent launch of the CCPA website as a case study for how we currently handle video delivery. So let’s dissect this a little.

Uploading files

The video files need to be uploaded before we display them. This is best achieved using the wonderful Filefield Module. This is quite a simple yet powerful module developed/maintained by Lullabot, Nate Haug (quicksketch), whom I’ve had the pleasure of being trained by at one of their excellent Drupal Theming workshops. Once you install and enable the module you then add a new CCK field, of type “filefield”. In our case we have a content type called “Multimedia”. We add the field to this content type. You then need to configure the following:

1. Permitted upload file extensions

In most cases this is relatively straightforward, it’s just one file type. If you’re using JWPlayer or Flowplayer it will be FLV. Both these players are built to play Flash Video files (FLV). If you have Quicktime MOV’s or AVI’s that you want to upload then you’ll need to consider different options for playing video. For the purpose of this case study we’re just uploading FLV files.

2. File size restrictions

It’s very important that you set these, otherwise you may end up with users trying to upload 200MB videos, not a very good idea. I set this low as a learning feature for clients. Any reasonably long FLV file that is over 40MB is probably not optimized as well as it should be.

3. Path Settings

I like to keep all files that admin/editor users upload in a folder called uploads so that it’s easy to manage them later if they need to be exported etc.

File Field

Multimedia File Field Settings

Create a placeholder image

Most video players require some sort of poster/placeholder image to display before the video plays. In this case I created another FileField for the placeholder image. We’ll use that later on in conjunction with the ImageCache module to achieve our desired results.

Moving Files to Amazon S3

We’ve been using Amazon S3 for storing video files on quite a number of sites recently. One reason is that we were looking for a location off the webserver that could deliver the video, without impacting the performance of the server, so that in the event of a traffic spike the webserver wouldn’t fall over. We could also have used Amazon EC2 or another CDN service for this, however as most of our clients have a very regional (BC) audience. Most CDN’s have nodes in various locations across the US and Europe and this would have served no real improvement as the nearest cached version will always be in the same place for everyone.

So if they’re uploading the files directly to the Drupal site, how to the files get delivered from Amazon S3. That’s where the Media Mover module comes in. This module has many purposes, but for our needs it simply harvests all the files uploaded via the “Multimedia” content type and moves those files to Amazon S3 so that we can deliver them from there.

Download, install and enable the Media Mover module. You’ll also need an S3 account and will need to set that up via the module setting page. You then need to add a Configuration via https://www.yoursite.ca/admin/build/media_mover/add.

Media Mover has 4 actions which it performs on your files:

  • Harvest – Define/collect the files you want to perform actions on
  • Process – Perform certain actions on the files
  • Storage – Where to store files once the actions have been carried out
  • Complete – Final actions to perform on the files

So in this case we just want to harvest all Multimedia files and store them on Amazon S3.

So for clarification here Media Mover does NOT MOVE the files to Amazon S3, it simply COPIES them over to S3 and the original files remain on your server.

Media Mover Settings

Media Mover Settings

Delivering the moved Video files

So this is where the Drupal theming trickery comes in. Flowplayer and JWPlayer are both Flash based FLV video players than can be called using Javascript and that’s exactly what I do on this site. In plain english this is what happens:

  1. Output the placeholder image to screen as a link.
  2. Use Javascript so that when the user clicks on the image the video plays.
  3. Deliver the video from the file on Amazon S3 rather than the file on the webserver (Drupal site).

We need to modify three files to achive the above:

  • template.php
  • multimedia.js (a newly created JS file)
  • node-multimedia.tpl.php (a custom template file for all multimedia types)

template.php file

Setting up all the variables we’re going to need to use as well as making the javascript available

if($variables['field_file'][0]['view']) { //If there is a file and there is something to display...
  if ($variables['field_aspect_ratio'][0]['value']) { //Aspect ratio handling
    $variables['aspect_ratio'] = $variables['field_aspect_ratio'][0]['value'];
  } else {
  $variables['aspect_ratio'] = 'normal';
  }
  $variables['multimedia_type'] = 'video'; //Set the type of multimedia - we also have audio and interactive...
  custom_theme_get_media_mover_files($variables['field_file'][0], $variables['media_mover'][3]); //Set the filepath to the media moved filepath...
  drupal_add_js(array('videoplayerpath' => path_to_theme() .'/scripts/plugins/flowplayer/flowplayer-3.1.1.swf'), 'setting'); //Set a JS variable to retrieve later...
  drupal_add_js(path_to_theme() .'/scripts/plugins/flowplayer/example/flowplayer-3.1.1.min.js', 'theme'); //Call the player...
  drupal_add_js(path_to_theme() .'/scripts/multimedia.js', 'theme');//Call the custom JQuery to handle creating the player...
}
 
/**
 * A function that takes a file object and a media_mover element array and set the file path to
 * its media moved path on Amazon S3 or wherever it moved to.
 *
 * It uses the unique file_id identifier to match file with media_mover file.
 *
 * $file = $variables['file_image'][0];
 * $media_mover = $variables['media_mover'][{id of media mover configuration}];
 *
 * @param 		&$file A Drupal file array (by reference)
 * @param 		$media_mover A media_mover file/element array
 */
function custom_theme_get_media_mover_files(&$file, $media_mover) {
  if(module_exists('media_mover_api') && $media_mover) { // If media mover is installed...
    foreach($media_mover as $media) { // Loop through each media_moved file...
      if($media['fid'] == $file['fid']) { // If they match (file id is a unique identifier...
        $file['filepath'] = $media['complete_file']; // Replace the attached file path with the media moved file path...
      }
    }
  }
} // custom_theme_get_media_mover_files()

Let me explain one thing in regards to line 9. I’ve created a custom function and I’m passing

$variables['media_mover'][3]

to my custom function. When you create a Media Mover configuration and map it to a CCK field, it creates an array in $variables to keep track of the Media Mover object. The array is called ‘media_mover’ and the number 3 in this case is the ID of the Media Mover configuration.

node-multimedia.tpl.php

Set up the template. Create a wrapper div with the placeholder image as the background image (this is run through imagecache) and display the play button as a link with the path set to the path of the Amazon S3 file. This link will also have an id attribute of ‘multimedia’. This is necessary as it allows us to attach the player, via Javascript, to this link.

<div id="containing-block">
<div id="video-wrapper" class="<?php print $aspect_ratio;?>">
<div>
     &lt; ?php print l('<img src="/'.path_to_theme().'/images/ccpa-button-play-large.png" alt="Play this video" />', $field_file[0]['filepath'], $options = array('html' => TRUE, 'attributes' => array('id' => 'multimedia', 'class' => $multimedia_type))); ?></div>
</div>
</div>

multimedia.js file

Hook the Flowplayer to the link, with id of ‘multimedia’, that we created in the template.

?View Code JAVASCRIPT
Drupal.behaviors.showMultimedia = function(context) {
  var interactive_path = $('#multimedia').attr('href'); /*Get the path to the video*/
  var interactive_image = $('#multimedia').css('background-image');	/*Get the path to the placeholder image*/
  interactive_image = interactive_image.slice(4,interactive_image.length-1);/*Tidying up the interactive image path*/
 
  if($('#multimedia').hasClass('video')) {/*If the link has a class of video*/
  $('#multimedia').flowplayer( /*Initialize the flowplayer and configure the controls*/
    Drupal.settings.basePath + Drupal.settings.videoplayerpath, /*Path to the player, gotten from temaplate.php*/
    {
      plugins: {
	controls: {
	  stop: true,
	  backgroundColor: '#efefef',
	  backgroundGradient: 'none',
	  borderRadius: '0px',
	  bufferColor: '#d2d6ab',
	  bufferGradient: 'none',
	  buttonColor: '#777777',
	  buttonOverColor: '#99a134',
	  durationColor: '#cccccc',
	  height: 25,
	  opacity: 1.0,
	  progressColor: '#99a134',
	  sliderColor: '#9999999',
	  sliderGradient: 'none',
	  timeBgColor: '#777777',
	  timeColor: '#ffffff',
	  tooltipColor: '#000000',
	  tooltipTextColor: '#ffffff',
	  volumeSliderColor: '#777777',
	  volumeSliderGradient: 'none'
	}
      }
    });
  }
};

I hope that was easy to follow. Now there’s one more thing to cover and that’s Aspect Ratio.

Aspect Ratio

The issue of aspect ratio is very important when figuring out how to display video. Not so recently YouTube switched all video display to the 16:9 ratio thus setting the stage for the proliferation of the widescreen aspect ratio across the web. So how do you allow the user to upload a video and choose it’s aspect ratio. I’m sure there are other ways to do this via Metadata etc, but for our needs on this site I used a CCK field. This is a simple CCK field set with three options:

  1. None (defaults to 4:3)
  2. Normal (4:3)
  3. Widescreen (16:9)
ccpa-aspect-ratio

Aspect Ratio Field Settings

We then check the value of this field in template.php above:

if ($variables['field_aspect_ratio'][0]['value']) { //Aspect ratio handling
    $variables['aspect_ratio'] = $variables['field_aspect_ratio'][0]['value'];
  } else {
  $variables['aspect_ratio'] = 'normal';
  }

and set a variable called ‘aspect_ratio” which we apply as a class to the div wrapping the video in the node-multimedia.tpl.php:

<div id="containing-block">
<div id="video-wrapper" class="<?php print $aspect_ratio;?>">
<div>
     < ?php print l('<img src="/'.path_to_theme().'/images/ccpa-button-play-large.png" alt="Play this video" />', $field_file[0]['filepath'], $options = array('html' => TRUE, 'attributes' => array('id' => 'multimedia', 'class' => $multimedia_type))); ?></div>
</div>
</div>

We have also created image cache presets for the placeholder images to account for both aspect ratios. These are named ‘multimedia_normal’ and ‘multimedia_widescreen’ and these have the appropriate dimensions associated with them:

ccpa-imagecache-presets

Image Cache Presets

So using the amazing article on A List Apart for creating intrinsic ratios for video we use CSS to resize the player based on the aspect ratio chosen by the user.

style.css file

/* -- Multimedia -- */
#containing-block {
  width: 100%;
}
 
#video-wrapper {
  position: relative;
  padding-top: 25px;
  height: 0;
}
 
  #video-wrapper div,
  #video-wrapper embed,
  #video-wrapper object {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
 
  #video-wrapper.normal {
    padding-bottom: 75%;
  }
 
  #video-wrapper.widescreen {
    padding-bottom: 56.25%;
  }
 
  * html #video-wrapper {
    margin-bottom: 45px;
    margin-bot\tom: 0;
  }
 
#video-wrapper #multimedia.audio {
  display:block;
  height:100%;
  margin:1em 0 0 0;
  text-align: center;
  width:100%;
}
 
#video-wrapper #multimedia {
  display:block;
}
 
  #video-wrapper.normal #multimedia img {
    /*margin:118.5px 0 0;*/
    margin:32% 42%;
  }
 
  #video-wrapper.widescreen #multimedia img {
    margin:22% 41%;
  }

And the end result looks something like this http://www.policyalternatives.ca/multimedia/matthew-poverty-and-looking-after-each-other-tough-times. They haven’t added any widescreen content yet, just testing content.

So what are the advantages of doing things this way?

  1. You can easily use any player to play your flash files (all you need to do  is change the path to your player and a few configuration params in multimedia.js)
  2. All your video content is hosted on and delivered from Amazon S3. But there is also a copy on your local server in the event of something going wrong on Amazon S3
  3. You don’t have to worry about your video looking skewed due to aspect ratio problems
  4. You can add many other apsect ratios pretty quickly
  5. The video file is still downloadable when javascript is not present or disabled

I’d love to get feedback on how other do this, please leave a comment or send me an email and let me know how you deliver Video content on your site.

We’re hiring…

Lauren Bacon | December 15th, 2009

We’re expanding our team here at Raised Eyebrow, and this time we’re looking for a Front-End Developer/Themer — someone who loves building websites, and is looking to extend their skills with Drupal and WordPress.

Beyond our roster of fantastic, progressive clients, we offer a positive & healthy work environment, beautifully remodeled heritage office space, and a team of web experts who love what we do and are keen to share knowledge and produce top-notch work.

Intrigued? Know someone who might be a fit? Check out the job description and get in touch.

Launched: PolicyAlternatives.ca

Lauren Bacon | December 14th, 2009

Redesigned CCPA home pageWe are very proud to unveil a project we’ve been working on for several months now: a redesign of policyalternatives.ca, the online home of the Canadian Centre for Policy Alternatives. Canada’s leading progressive research institute, the CCPA is a prolific publisher of reports and studies, books, articles, commentary and fact sheets on issues ranging from income equality to environmental policy, privatization of public services, and beyond.

They are highly respected, but like many organizations working towards policy change, they don’t always reach as broad an audience as they might hope; not many people have the time and inclination to read an in-depth research report, so in recent years they have been creating more bite-sized, easy-to-digest content in both written and multimedia formats. As the range of content has grown, though, so has the need to cross-reference related materials — so the CCPA’s website needed to both invite visitors to browse through an extensive library in an intuitive and approachable way, but also allow people seeking more in-depth content to locate related materials quickly and easily. (One of our developers describes the complex interrelationships between the CCPA’s publications as “like Facebook for documents.”)

Their five year-old website, although rich in content and highly trafficked, didn’t offer visitors any way to easily share the CCPA’s content with their social networks, whether through Facebook or Twitter, or even through their own publications, blogs or presentations. Exchange of ideas is the CCPA’s raison d’etre, so it stands to reason that above and beyond extending the website’s “share this” features, the organization would benefit from encouraging online visitors to use and share its content — and they do, using a Creative Commons license.

This project was a complex one on several fronts, as we wrestled with improving navigation through the site (both via menus and site links as well as with improved search tools); updating the site’s look and feel; and migrating the extensive site content (along with the aforementioned relationships between content items) from a commercial CMS platform into Drupal.

Oh, and we also set up a shopping cart (for books, memberships, donations and journal subscriptions).

There’s a real sense of accomplishment here at Raised Eyebrow when we look at the final result, but of course on the web, there’s no such thing as a final edit. Our best hope, in fact, is that we’ve helped to create a solid platform upon which the CCPA can continue to build and extend over the coming years. So while right now we are celebrating the grand opening, the real fun in some ways is still to come. I’m sure we’ll see the CCPA continue to play a leadership role when it comes to presenting research online in accessible and innovative ways.

 


t. 604.684.2498 | f. 604.721.4007 | e. turningheads [at] raisedeyebrow.com