shift+control

76design's blog

Archive for the 'Development' Category

Launched: Ottawa’s pictureitdowntown.ca photo contest

Posted by 76design on October 21st, 2009 Comments Comments Off

76design is proud to have launched pictureitdowntown.ca late last week during an event which included a submission from Mayor Larry O’Brien.  This campaign calls on Ottawans to share photos of their  favorite activity or destination in downtown Ottawa for a chance to win valuable prizes. The contest offers daily prizes for the next 6 weeks; a Grand Prize package from Henry’s will be awarded at the end of the contest.

Every member of our team has contributed in one way or another to this campaign. A big high five goes out to our entire team for their hard work.  This project was completed with the City of Ottawa, and representatives from Ottawa’s eight business improvement areas.

Campaign Elements:

Many 76designer’s have already shared photos of the city we live in and love.  So come on Ottawans, get out and picture it downtown.

Skunkworks Project 1: Twitter API Applications

Posted by 76design on September 15th, 2009 Comments 1 Comment

76design skunkworks

Our skunkworks Twitter applications are complete!  Over the past eight Friday afternoons our team has been working feverishly on experimental design & development projects using the Twitter API.  Why?  To learn and explore!  The web is a constantly changing landscape, and to be on top of our game it is necessary to research and explore. Not to mention, we are a creative and ingenious bunch who crave experimental projects to work on.

Skunk works or skunkworks is widely used in business, engineering, and technical fields to describe a group within an organization given a high degree of autonomy and unhampered by bureaucracy, tasked with working on advanced or secret projects.
- Skunkworks definition on Wikipedia

76design’s Skunkworks Recipe:

76design donates time each week (usually Friday afternoon), and the team donates an open mind, fresh creative ideas, energy, and finally a working demo. The projects are intended to encourage exploration, therefore the skunkworks recipe itself is iterative and malleable. Through skunkworks we will be testing new approaches to web dev with the hope of integrating the findings into our daily work. That said, the following was a guideline for our first project, but we expect this recipe to change over time.

Week 0: Preparation of project Theme & Constraints
Constraint breeds design. Therefore we present the team with a challenge while leaving plenty of room for creativity. The challenge also centers the  experimentation around a particular area of interest. For this project the Theme was Twitter, and the main constraint was the web application had to use the Twitter API.

Week 1: Brainstorming & Team Selection
The team gathered for a single large brainstorming session where everyone threw ideas at the whiteboard.  This generated a large quantity of ideas, and encouraged the team to be creative, critical, constructive, and considerate.  Following the brainstorm we broke into teams of 2 and selected the concepts we wanted to experiment with for the next few weeks.

Week 2: Research, Concept Refinement & Work plan
Now that the team has had a full week with their concept, they refine it into a concrete plan. Week 2 is all about editing  the ideas & features down into a reasonable plan which can actually be accomplished within the short time line. This exercise involves documenting each task’s level of effort and priority. At the end of the project the teams are asked to compare the outcome to their initial plan.

Week 3, 4, & 5: Design, Code & Test
These weeks are all dedicated to designing and coding the project. The teams check in briefly every week to discuss their progress and help each other with challenges. Inevitably, unforeseen issues or fresh ideas will cause the plans to change, therefore the teams are encouraged to work iteratively using agile methodologies. Teams are graded on their ability to define project scope and manage scope change.

Week 6: Present working demo to the entire team
The projects are now ready for a functional demonstration, and everyone gathers in the boardroom for a short 5 minute presentation and Q&A period for each project.

Week 7: Followup
The teams will write a reflective blog post about their project which includes an overview, the challenges faced, the outcome, and the potential next steps for their project.  Teams will also share the insights they gained from the skunkworks experience.  Furthermore, teams will post relevant information to our company wiki for future use. The Teams are free to continue the projects if they wish, or publish them online as they are.

So stay tuned. The first round of skunkworks twitter applications are complete and we will be posting the team’s project followups over the next week or so.

Celebration for SVN Commit # 8000

Posted by 76design on April 14th, 2009 Comments 3 Comments

A pat on the back is in order to our very own Ben Watts who responsibly committed his source code to SVN and wound up with commit number 8000.   Who would have thought that we could have come this far with our favorite software version control system.  This event only happens once per repository, and we are very proud of you Ben.

If we celebrate this much for 8000, I can’t imagine what we will do when we reach 10,000.  Let the countdown begin!

National Speakers Bureau Open for Business

Posted by 76design on January 26th, 2009 Comments 2 Comments

Whatever the category NSB has your speaker

What does a retired General, a former Olympian and a man they call “Dog” have in common? If you said they’re all speakers available through the National Speakers Bureau, you’d win the big stuffed narwhal.

For over 35 years, the National Speakers Bureau has garnered a reputation as the source for event speakers. They are the sole agents for over 100 speakers, and they work with over a thousand others in North America and abroad.

They came to 76design with a request, upgrade their brand. This included a new logo and revamping their site. During our analysis of their brand, we felt that their existing website didn’t accurately reflect the class of speakers they had, nor did it “speak” (so punny!) to their great customer service.

76 updated their corporate logo, created a brand new site with a focus on bringing their speakers to the forefront, improving the speakers search functions, and we also created a new interactive module on the homepage. Overall, our goal was to facilitate the user experience, but also motivate potential clients to call one of their reps to assist them through the booking process. The new National Speakers Bureau site launched January, 2009.

Take a spin on NSB.com, and book yourself a speaker or two. On a personal note, I am awaiting the confirmation that Strombo is coming to my Super Bowl party. Fingers Crossed!

Monitoring Websites with Pingdom

Posted by Steve Lounsbury on December 31st, 2008 Comments 2 Comments

I thought I would continue with the “Monitoring stuff” theme and talk about how we make sure our websites are running smoothly. Over the years, we’ve collected a pretty large number of sites. It’s pretty much impossible for us to check every one of them every day just to make sure they aren’t having any problems. Naturally, being developers, we look for ways to automate this process.

Our first stab at it was a home grown script. This was done in a few hours one afternoon and was setup on a cron job. It would ping a set of sites every five minutes, check the http response header and make sure we were getting a “200 ok”. This worked for the most part, but didn’t save any history and it would continue to pester us until the site was back up.

After our needs outgrew the homegrown script, we looked for something a little more sophisticated. There are several open source options. One being Nagios. It lets you monitor any server for standard services like HTTP, FTP, SSH, etc. Also, there are several plugins available that let you monitor load, database activity, etc. It produces pretty “management friendly” graphs and has a very flexible system for notifying you when something goes wrong. This is all great, but you have to set it up and maintain it yourself. I don’t have the time to do that.

Finally, I came across pingdom.com. Pingdom is a distributed monitoring service that does one job and does it well. You can monitor all the standard services, setup notifications over email and sms, see those “management friendly” graphs and even check for certain strings on the site you are monitoring. This makes it easy to write an endpoint that checks crucial services (db, filesystem space, etc) and produces an “OK” or “BAD” message. This way, pingdom can not only let you know if your site is up and responding, but if your database is up and running too. Overall, Pingdom is exactly what we need and best of all, I don’t need to do anything to maintain it.

I’ll leave you with an example of one of those pretty graphs:

Pingdom uptime graph.

Monitoring SVN commits with Twitter

Posted by Steve Lounsbury on December 11th, 2008 Comments Comments Off

Like a lot of developers, we use SVN on a day to day basis. I can’t imagine working without it. We’ve been using it for over a year now. Svnlook on revision 1 give me this:

[steve@76design ~]$ svnlook info /svn -r 1
steve
2007-08-23 18:23:03 -0400 (Thu, 23 Aug 2007)
23
Created folder remotely

And svnlook youngest gives me this:

[steve@76design ~]$ svnlook youngest /svn
6567

In a year we have over 6500 commits and many projects contained in that (now not so little) repository. Given that there are so many commits going on, we thought it would be useful to have a feed of commits happening in real time. If we had that, we could get a good feel for the activity in the office over the day. One obvious choice for a feed is RSS, and we have that too, but we thought it could be fun to have a twitter stream of our commits.

I did some quick googling and came across a Google code project called twitvn. Unfortunately, due to hosting restrictions, I was unable to get it installed on our svn server. So, like any developer would do, I wrote my own ;)

SVN provides you with some interesting ways to interact with it pre and post commit. I wanted to hook in on post-commit and fire off a twitter message with some details about the commit. Turns out it’s fairly simple to do.

After every commit, if a script is available at [svn path]/hooks/post-commit, SVN will run that script. Two arguments are provided, the svn path and the revision number of the commit. Using these two pieces of info, you can then pull out whatever details you want about that particular commit and choose to do what you want with it. Knowing that, here is the approach I took:

  1. Get the particulars about the commit using ‘svnlook info’
  2. Get the modified files using ‘svnlook changed’
  3. Determine the author and the project that was being committed
  4. Create a twitter message and send it using Curl

I decided to write it using PHP, mostly because it’s what I know and I wanted to get it done quickly. In order to determine the project, I assumed that the top level folder of the first modified file is the project (this will depend on your repository layout so your mileage may vary here).

The final script is called tweeter.php, grab it here.

In order to run it, drop your twitter account details into CMD_CURL_TWITTER and add this line to your post-commit file:

[path-to-php5-cli] [path-to-tweeter.php] “${REPOS}” “${REV}”

Let me know if you get some use out of it!