ExtJs Simple Grid - Calculated Column

Calculated columns in Grid

HTML

<link rel="stylesheet" href="http://cdn.sencha.com/ext/gpl/4.2.0/resources/css/ext-all.css">
<!-- corresponding blog at http://blog.jardalu.com/2013/5/27/calculated-column-in-grid-extjs-sencha -->
<title>ExtJs- Grid : Calculated Columns</title>
<div id="example-grid"></div>

CSS

body {
    padding: 50px 20px 0 20px;
}

JavaScript

Ext.require([
    'Ext.data.*',
    'Ext.grid.*'
]);

function calcAge(dateString) {
  var birthday = +new Date(dateString);
  return ~~((Date.now() - birthday) / (31557600000));
}

function getRandomDate() {
    var from = new Date(1900, 0, 1).getTime();
    var to = new Date().getTime();
    var date = new Date(from + Math.random() * (to - from));    
    return Ext.Date.clearTime(date);
}

function createFakeData(count) {
        var firstNames   = ['Ed', 'Tommy', 'Aaron', 'Abe'];
        var lastNames    = ['Spencer', 'Maintz', 'Conran', 'Elias'];            
        var data = [];
        for (var i = 0; i < count ; i++) {
            var dob = getRandomDate();           
            var firstNameId = Math.floor(Math.random() * firstNames.length);
            var lastNameId  = Math.floor(Math.random() * lastNames.length);
            var name        = Ext.String.format("{0} {1}", firstNames[firstNameId], lastNames[lastNameId]);
            data.push([name, dob]);
        }
        return data;
    }

Ext.onReady(function(){
    Ext.define('Person',{
        extend: 'Ext.data.Model',
        fields: ['Name', 'dob']
    });

    var store = Ext.create('Ext.data.Store', {
        model: 'Person',
        autoLoad: true,
        proxy: {
            type: 'memory',
            data: createFakeData(10),
            reader: {type: 'array'}
        },
        sorters: [{
            direction:'ASC'
        }]
    });

    Ext.create('Ext.grid.Panel', {
        store: store,
        columns: [
            {text: "Name", width:120, dataIndex: 'Name'},
            {text: "DOB", width: 120, dataIndex: 'dob', renderer: Ext.util.Format.dateRenderer('M d, Y')},
            {text: "Age", width:40, 
                renderer : function(value, metaData, record, rowIdx, colIdx, store, view){
                    return calcAge(record.get('dob'));
                }
            },
            {
                xtype: 'actioncolumn',
                width: 30,
               ...