Our insights
The latest from our world and beyond.
Read, watch and delve deeper into what's happening.
Our tips
Helping you stay ahead of change
Sencha Touch – Deploying to Production
When examining how to build a new Sencha Touch 2 application for production, I wanted to make sure I wasn’t reinventing the wheel. I’d heard of Sencha’s commandline SDK tools but this gave me cause to look into it more. Now that I’ve done so, I’m impressed, but I think the documentation could be doing...
Read more
Stubmatic Update [31 Oct 2011]
We have just rolled out an update to Stubmatic. Although on the surface stubmatic looks the same we have made some major changes to the underlying logic in preparation for some future enhancements that we are working on. For now one of the biggest changes you will notice is we have updated the way events...
Read more
From QR to Blippar: Making sense of the increasingly complex world of mobile
As mobile and smartphone camera technology continues to become more powerful, there has been increased speculation into the usefulness of camera phones for driving consumers of offline marketing towards digital content via scannable tags, codes and images. Mobile tagging adoption From crowd-sourcing reviews and comments of physical products via barcode scanning, to embedding URLs in...
Read more
Love Coding, Love Source Control, Love Github
The source code which makes up the software we develop is our most valuable asset. As such, it needs to be treated with love and care. While backing up assets like this is important, with something such as source code – which is changed by multiple developers – you also want something to analyse and...
Read more
Learning Ext JS Second Edition Now Available
The second edition of the book written by Shea Frederick, Steve “Cutter” Blades, Nigel White and myself is now available for purchase. Learning Ext JS covers version 3.2+ of the Ext JS JavaScript framework and will give developers who are new to the framework a head-start in creating high-quality rich applications. The second edition updates...
Read more
Crazy Egg’s Slick Signup
Investigating Crazy Egg’s heatmap and visitor tracking tool today, I found a nice bit of UI in their plans and signup process. The plans page itself looks sweet: But the really slick part comes when you click the “Sign Up” button: The other plans fade out and the signup form slides in – no page...
Read more
The Most Lightweight Audio Player for OSX
I had an issue. iTunes is a fine program, with loads of great features, and it’s essential for the iTunes store and syncing my iPhone. Trouble is, in my house, we’ve got a central media server which reports 1037 albums – pulled from the CD collections of four music lovers. The combination of network access...
Read more
Ext JS 3.0 Cookbook – Available Now
The Ext JS 3.0 Cookbook by Jorge Ramon is now available. As Jorge says in his introductory post: The Ext JS 3.0 Cookbook is for developers who want a book of useful techniques, with explanations, that they can refer to and adapt to their purposes. I was a Technical Reviewer for this book, and it...
Read more
Dynamic Nested Forms in Rails 2.3+ Using RJS
Rails 2.3 delivered a new feature that allows you to easily write forms in rails that can process nested attributes for related objects using the accepts_nested_attributes_for method in your models. Now there is a plugin to make adding and removing nested forms a walk in the park! I am not going to go into detail...
Read more
ASP.NET SMTP – Setting a Pickup Directory for Development
One of the hidden gems of System.Net is the ability to change from using an SMTP server for sending your email. Instead you can specify a pickup directory which will receive all emails sent from your application as a .EML text file. There are clearly uses for this in production – you may have a...
Read more
Scale-9 in Objective-C Cocoa on the Mac
Having used flash extensively for the last few years I have really come to rely on using Scale-9 scaling on UI elements in the rich internet apps I design and develop. It is a great technique for things like rounded rectangles, button graphics etc and ensuring the rounded corners do not distort when stretched. I...
Read more
Rails deployment is so easy these days
I have been meaning to blog about Phusion Passenger for a while as about 3-4 months ago we migrated Stubmatic from using Apache / Mongrel Cluster to Phusion Passenger A.K.A. mod_rails. Mod rails is extreamly easy to install. Make sure you update gem first: gem update –system Then install the Phusion Passenger gem gem install...
Read more
Excellent OS X SQLite 3 Management & Query App
iPhone and Adobe Air developers (as well as any others that use SQLite 3) Menial has just released an excellent little app for creating, managing and running queries against SQLite 3 databases called Bases. The application is simple to use, very user friendly and has worked well from the testing I have done. It costs...
Read more
Creating a two-way binding between Model and Form in Flex
A quick sorry to all my Flex readership for the lack of Flex related posts these last few months. I though I would drop a quick tip / class I often use to create a two way binding between a form to a corresponding class model. Flex provides a one way binding through its
Read more
Ruby on Rails, PayPal Express Recurring Payments using Active Merchant
I recently needed to setup recurring payments through PayPal’s express checkout for a subscription based site I have writen using Ruby on Rails. There is already an excellent framework for interacting with most payment gateways, including PayPal, for Ruby called Active Merchant. Unfortunately recurring payments support in Active Merchant for PayPal Express Checkout is limited...
Read more
Objective-J & Cappuccino
This may be an unusual first post in my Objective-C and Cocoa categories however it is quite relevant as the guys behind 280 Slides have released a new open source extension to the Javascript language known as Objective-J and a new Javascript framework based on Cocoa named Cappuccino. Other than having a very nice logo...
Read more
Changing Flex3 ScrollBar maxScrollPosition at runtime
A quick tip if you have a dynamic scroll bar and want to bind it’s maxScrollPosition to a value at runtime unfortunately you can’t use the MXML binding, i.e. maxScrollPosition={value}. Alternatively you need to set the value programatically in an event handler, AND importantly call updateDisplayList() on the scrollbar. i.e.
Read more
Scaling up EasyMVC as your Flex application grows (Part 2: Services)
EasyMVC is a lightweight architecture process for Adobe Flex and AIR first proposed by Tom Bray of SearchCoders and Chatopica. This is the second part covering Service calls, of a two part article on how to take that architecture and scale up to a simplified cairngorm style architecture when you outgrown EasyMVC. Click here to...
Read more