Archive for the ‘1. Website Showcase’ Category

Google analytics for Brisbane

Friday, February 14th, 2014

A new city asked me about developing their website. This encouraged me to check into the Brisbane analytics. It’s been enough time now that there are some trends that are interesting.

Use of the site is cyclical, being more busy in the summer.

nearly a million pageviews since we started in late 2010.  Broad usage of the site (61% not the home page or pool page etc)
There have been a quarter million unique visitors, and decent return usage (36%).  Site is heavily used for informational purposes, as you’d expect
You can also see neat stuff like how people are navigating the site and what most people see based on their screen size

even where they arrive – coming straight into a particular page (like the pool page) and see how cyclical the use of that page is

Have You Seen TV

Wednesday, May 2nd, 2012

Working on a project with some friends –  It’s a way to make strings of youtube and vimeo videos into a curated TV show.  The premise is that the assemblage of videos makes something more valuable.  It’s kind of fun, and used on an ipad can make youtube into more of a lean-back type experience.  Creating channels is pretty fun!  You can sign up for the beta, we’ll be rolling out beta invites on a steady basis starting very soon.

Handy Dandy PHP script to clean phone numbers

Monday, May 2nd, 2011

I needed a quick way to clean a bunch of phone numbers, I wanted to do it in excel but excel doesn’t do PHP, and the example I found was in PHP and it seemed to work well. So I used textmate, and pulled together the basic script with a fopen command to suck up a file from the disk and output a simple list to the screen (console output from TextMate) and then I could copy and paste it right back into excel.

Ingredients needed:
a bunch of messy numbers

The numbers like this, with all different formats

no number
(510) 250-0907
(510) 844-0233
510.845.7548 ext 151
510-388-3198 (cell)
no number

Save them on your desktop, and then create this file in textmate:
(excuse the lousy formatting, wordpress (or maybe this theme) is messing with the formatting and colors. I’ve attached the php file which should retain the formatting)

// gets the file
$handle = @fopen("/Users/xxx/Desktop/phone1.txt", "r");
if ($handle) {
while (($buffer = fgets($handle, 4096)) !== false) {
$clean = phone_clean($buffer);
$number = $clean[0];
$ext = $clean[1];
print $number.$ext."\n";
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
function phone_clean($data){
// Cleans phone numbers and strips extensions
// Returns array [number,extension]
$pattern = '/\D*\(?(\d{3})?\)?\D*(\d{3})\D*(\d{4})\D*(\d{1,8})?/';
if (preg_match($pattern, $data, $match)){
if ($match[3]){
if ($match[1]){
$num = $match[1].'-'.$match[2].'-'.$match[3];
$num = $match[2].'-'.$match[3];

$num = NULL;
$match[4] ? $ext = " x".$match[4] : $ext = NULL;
$num = NULL;
$ext = NULL;
$clean = array($num,$ext);
return $clean;

Set it up with the file location and name (see phone1.txt above) and run it from textmate by going bundle-php-run

cleanphone script (rename to php to have textmate treat it properly)

Thanks to Chris Nanney’s Post for source material including the fantastic regexp work dealing with a wide variety of data.

Ecology Action

Friday, January 28th, 2011

Since the beginning of the month I have been working with Ecology Action, a non-profit in Santa Cruz.  I’m helping them develop a Drupal based administration mechanism for a large energy upgrade program.  It’s enmeshed in the Energy Upgrade California.  It’s a good bunch of people, and the focus is on something I care a great deal about (energy conservation).  More as it develops, though there won’t be a public face on this thing.

Wednesday, December 1st, 2010

I’m working with a startup doing a social TV platform, working on marketing and user interface design.  I managed the creation of their web presence (and the infrastructure) and also worked on their demo that allows for social collaborative TV.  If you want to see it send me an email and I’ll get you a login. screenshot

Drupal for Municipalities

Tuesday, November 30th, 2010

Ever since I started on the Brisbane, CA site I have been interested in making Drupal work better for cities.  The fact that so many government agencies are glued into proprietary solutions, especially aspx based systems, is not just silly or sad but actually a real problem.  I’d like to see open source in general, and Drupal in particular, used in government, particularly local government.  To this end, I am working with a couple guys in Sacramento to create a company that will do Drupal for municipalities.  We have started a website here.  One of the goals is to try to minimize the amount or repetition that web developers do.  This is already well done by specialized vendors of city website solutions, but not for an open source framework.  What I plan to do first is create an installation profile for Drupal to be used in municipalities.  The first thing I have done in this regard is create a feature using the features module.  I did a post over there about it.

Community Site Design Group website screenshot

Ruby on Rails Video Editing Platform

Tuesday, November 30th, 2010

Some time back I managed a Ruby on Rails team in Vietnam that did a video site for students and coaches to assemble their sports plays.  I was very pleased with how well the project went and how fast development is in ROR.  It’s not all that pretty yet as they are focussed on the core functionality and working on testing and funding, so I haven’t been all that keen to showcase it, but the system works so darn well that I felt I really should post it here. screenshot

City of Brisbane, California

Tuesday, October 19th, 2010

The City of Brisbane hired me to completely overhaul their site – visually and architecturally.  I was able to choose the platform and so I proposed Drupal.  I’m happy with it because it really allows Drupal to shine as a content management system.  It allows for the city staff to upload video of council meetings and attach them to the agendas – and views are used to sort and display the meetings pages.  Have a look.  The project was completed on time and on budget.  Here’s what they had to say about it:

“I worked closely with C.J. on the development of Brisbane’s new website,  It was a daunting project, with the huge amount of information of most government sites house, but C.J. has the know-how and experience to make even the most complex websites extremely easy to navigate and maneuver.  He constantly was thinking from the perspective of the citizen, laying out department menus and information in a way that was not only easy to find, but enjoyable to go through, too!  I think that made all the difference in our website being so widely received and welcomed by the community.  I had a great experience myself working with C.J. – I just wish wish we had found him sooner!”

Brisbane, CA Website Screenshot

Jessie Steele

Friday, December 18th, 2009

Jessie Steele is a specialty clothing manufacturer.  I managed the implementation of the theme and the backend with a warehouse management system, all implemented in the PHP based open source Magento e-commerce system.

Jessie Steele Website Screenshot

Marlin Developer Community

Friday, December 18th, 2009

This site was built as a combined effort of four corporations: InterTrust, Sony, Philips and Samsung.  I led the design and proposed Drupal to the client. It worked out well in ways that are not immediately visible: the backend integration and the fact that the client is able to maintain it themselves.

Drupal worked very well at connecting disparate systems and combining at least three websites into a cohesive interface. LDAP and Salesforce were integrated.

marlin developer community screenshot

Open Architecture Network

Thursday, June 18th, 2009

oanI have worked with Architecture for Humanity on the Open Architecture Network two times – once back in 2006 and again in 2009. Both times I worked on custom module development, to their project module and later with a linkage to Nike’s WE system via an API.


Monday, May 18th, 2009


Again, a site in development but included because it is an example of an excellent use of Drupal.  The customer requirement here is a very comprehensive system for managing venues, films and fans of independent film shown in a variety of screening locations. I tied together custom views, ubercart, and imported over 500 films with some custom scripting to assemble the data with a web scraper.