home

Boost Blog

Archive for the ‘Development’ Category

July 16th, 2010

Friday links: design, development, usability and more

Posted by courtney on July 16th, 2010

This is the first entry in a semi-regular series sharing things that we’ve been looking at and reading recently …

Sarah (one of our project managers)

  • Broadband becomes a legal right in Finland
  • Guggenheim collaborates with YouTube and invites video submissions

Sue (one of our designers, recently returned from a break in the sunny northern hemisphere)

  • Eye-candy and inspiration on www.citid.net
  • Great experimental fonts (also: free!)
  • Lighten up your winter blues: heaps of colour and shapes on Coolhunter

Alastair (one of our developers)

  • Firefox 4 introduces more HTML 5 and CSS functionality. One step further towards the death of Flash? Still in beta so one for the developers.
  • Excellent! Wayne and Garth spotted in the UK. Party on!

Rachel (our office manager)

  • Artist creates masterpiece on an iPad
  • World Cup 2010 statistics: all the key data for each team, from the Guardian

(Rachel notes that she’s not as much of a sports fiend as the above link might suggest, and also recommends data/infographic blog Cool Infographics)

Jake (who looks after our usability testing tool IntuitionHQ)

  • David Gillis on Fusing Content Strategy with Design, in UX Magazine
  • The Real Life Social Network, slides from a presentation by Paul Adams, Senior User Experience Researcher at Google
  • Gnarcade – Video Game Invasion: for video game fans, and geeks in general

Courtney (that’s me – project manager)

  • Aaron Straup Cope’s magical slippy map showing the world as revealed by geo-tagged photos on Flickr
  • Significant Objects, an investigation of art and the market through short stories and eBay
  • Swallows and Amazons, the current exhibition at Robert Heald Gallery, which is close to our office – on show until 31 July.
Tags: inspiration, research
Posted in: Cool tools, Design, Development, Random thoughts, Usabilty
No Comments
 
July 5th, 2010

Working with Git

Posted by jeremy on July 5th, 2010

During a brief slow period on a Friday afternoon I started pondering how much work I actually do, and if it was even useful knowing. Obviously all our code is stored in a version control system (git), so in a way all of the data for finding out the quantity of work is readily available. A little investigation and I found that it’s quite easy to pull a list of commits from git showing total lines added and deleted per file:

git log --oneline --numstat

I’ve committed a lot of code that I didn’t write, such as plugins, the Rails framework etc. So a quick and dirty ruby script later I could get a list of all unique files in all repositories that I’ve committed to. It was pretty easy to go through the list and create an exclusion list. I then broke out Ruport to aggregate everything by extension. That gave me the following table:

I’ve cleaned this up a little and collapsed some alternative extensions down.

Commits per week

Just over 110,000 lines added and 50,000 deleted, of which about 100,000 are to Ruby files. Now I’m not claiming to have written all those lines myself, any part of any line changed counts towards the total. All this does is illustrate the general balance of work that I do. There have been two lines added for every line deleted. This year has seen a lot of refactoring work, so it’ll be interesting to run the same exercise next year and see if the results are similar (of course git holds historical data, but we only started using it about 18 months ago, and previously had everything stored in subversion).

It’s interesting to see that the proportion of additons to deletions is much higher in view (rhtml/haml) files than in ruby code. This could point to the way things look being changed much more than the way things work.

Now if only there was a way to measure the quality of work. (Actually there are tools; metric_fu is a good starting point and we use it a lot at Boost. However, that’s going a little too far for this post).

Another interesting bit of data I extracted from git is the number of commits I’ve done per week over the last 52 weeks.

I’ve posted my script as a github gist. You  can run it by modifying the @repositories array with a list of git repositories, @author with your email address and @excludes with a list of regular expressions for excluding files. Run the script as ruby gitcount.rb. If it is run with the argument “files” then it will list individual files, making it easier to build the exclude list.

Tags: git, ruby
Posted in: Development, Random thoughts
No Comments
 
February 1st, 2010

DrupalSouth Presentation

Posted by paul on February 1st, 2010

DrupalSouth, an annual gathering of Drupal people from around New Zealand, happened over the long weekend here in Wellington.

The venue was Mac’s Brewery; a great location on the Wellington waterfront, a good venue for a conference of this size and of course geeks love good beer, it’s a fact.

Alastair (a fellow Boost developer) and I presented a talk on beginning Drupal module development at one of two Sunday morning red-eye sessions. Our presentation focused on getting people started with Drupal module development. The intention was to give simple examples of how you can tap into Drupal hooks and other elements of the API, such as the Form API.

Pitching a technical talk to beginners is always difficult depending on the background of the audience, hopefully it’s simple enough to understand while giving enough information for those who are raring to go.

The presentation slides and our sample code are available to download.

  • Presentation slides
  • Sample code

Any feedback will be appreciated, please feel free to comment.

Tags:
Posted in: Development, Drupal
4 Comments
 
January 26th, 2010

Scrum and Kanban – a developer’s perspective

Posted by jeremy on January 26th, 2010

We’ve been using Kanban for a few weeks now on some projects, taking over from Scrum where appropriate. We’ve used the Kanban process for projects in ongoing maintenance and for those that seem more like a list of tasks to be performed (Drupal CMS integration). more »

Tags:
Posted in: Agile, Development
7 Comments
 
January 26th, 2010

Drupal linked themes

Posted by jeremy on January 26th, 2010

We’ve released our first public Drupal module – linkedtheme. This modules gives you the ability to link themes together so that they share their block configuration, great for subthemes. more »

Tags: Drupal
Posted in: Development
No Comments
 
December 3rd, 2009

Scrum and Kanban – less is more

Posted by Nathan on December 3rd, 2009

Here at Boost we are always endeavouring to improve our processes and ultimately our outputs. The ‘cycle of continuous improvement’, if you will. This means we actively looking for new ideas to test and where appropriate integrate into our day.

Recently we have been researching the agile process Kanban and how it might integrate with our Scrum processes. Kanban is a less prescriptive agile methodology than Scrum. It concentrates on moving items through the pipeline from formulation to completion. It shares many ideas with Scrum and often Kanban teams adopt Scrum artifacts such as daily standups.

What is Kanban

Kanban is an agile methodology that shares much in common with Scrum, but it also has a number of key differences. For example, where scrum uses sprints to limit work in progress, Kanban limits work in progress by workflow state.

more »

Tags: Development
Posted in: Agile, Development
No Comments
 
October 27th, 2009

How the west was clustered

Posted by jeremy on October 27th, 2009
Screen shot 2009-10-27 at 9.20.25 AM

A cluster on IntuitionHQ

Our new product, IntuitionHQ, shows clusters of clicks on an image. To generate these clusters we made use of a gem called Hierclust. The great thing about this gem is it’s simplicity – just input the points and a minimum cluster separation, and out come the clusters.

The problem with Hierclust was the performance. With fewer than 100 points to cluster Hierclust was running too slow to do it dynamically. This was no problem, we moved the clustering program into a cronjob and stored the data in a marshalled file.

However, in testing we found that Hierclust was still too slow. Once we had over 200 points being clustered it started taking minutes to process – an unsustainable amount of time for the data we expected. The graph below shows the timings, which I believe is O(n3). We had to disable cluster processing while looking at the problem due to issues it was causing on the server.

Screen shot 2009-10-27 at 10.14.36 AM

Graph of points v time taken

more »

Tags: rails, ruby
Posted in: Development
1 Comment
 
September 15th, 2009

What should break the test?

Posted by jeremy on September 15th, 2009

I recently came across FakeFS, which sounds like a great idea for helping to test file functions. However, I did pick up on the following off the website:

[...] it means replacing our mkdir call with a call to mkdir_p won’t break our tests. Because, really, it shouldn’t.

Now I understand that in the context of the example given, mkdir and mkdir_p should do the same thing. But mkdir and mkdir_p do perform different operations, and the tests should break if mkdir_p is changed to mkdir. If you change mkdir_p to mkdir and your passing tests don’t fail then your tests aren’t correct.

Tags: ruby, tdd
Posted in: Development
No Comments
 
September 11th, 2009

Squirrel and the custom nut matcher

Posted by jeremy on September 11th, 2009

I recently found squirrel, and I wanted to use it for a project we’re working on to simplify some complex finder statements. Squirrel allows turning something like this:

Task.find(:all,
  :conditions => [
    'active = ? and (updated_at > cache_version or cache_version IS NULL)', true
  ]
)

into:

Task.find(:all) do
  active == true
  any do
    updated_at > cache_version
    cache_version.nil?
  end
end

The problem is testing

Then I ran into a serious problem – how to test this piece of code using rspec? Here was my first attempt: more »

Tags: rails, rspec, ruby, tdd
Posted in: Development, Ruby on Rails
2 Comments
 
August 20th, 2009

Choosing which database indexes to add

Posted by jeremy on August 20th, 2009

When writing a Rails application, how do you decide on the best indexes to add to your database? It might seem obvious, especially if you work on a project from scratch. The problem is a little harder when you come to optimize an existing codebase.

New Relic

Recently I’ve been using two methods to work out where to put indexes. Firstly I’d strongly recommend using New Relic RPM in development mode. When running your application you can visit /newrelic to get all kinds of useful information. Here you can see the most recent rails calls:

Picture 4

more »

Tags: mysql, rails
Posted in: Development, Ruby on Rails
2 Comments
 
« Older Entries
  • Categories

    • Agile (3)
    • Cool tools (5)
    • Curriculum (2)
    • Design (6)
    • Development (14)
    • Drupal (1)
    • e-Learning (6)
    • Publishing (1)
    • Random thoughts (2)
    • Ruby on Rails (8)
    • Social media (6)
    • Usabilty (2)
  • Archives

    • July 2010 (6)
    • June 2010 (2)
    • April 2010 (1)
    • March 2010 (1)
    • February 2010 (1)
    • January 2010 (3)
    • December 2009 (1)
    • November 2009 (1)
    • October 2009 (4)
    • September 2009 (2)
    • August 2009 (3)
    • July 2009 (6)
    • June 2009 (1)
    • May 2009 (1)
    • April 2009 (2)
    • March 2009 (1)
  • Boost Loves Design

    • I love Typography
    • IntuitionHQ | easy website usability
    • OMG It even has a watermark
    • Follow me on Twitter
    © Boost Limited.
    All rights reserved.
    CONTACT US
    info@boost.co.nz
    tel. (04) 939 0062
    fax. (04) 939 0063

    Level 6, 175 Victoria Street
    PO Box 11504, Wellington
    New Zealand