Mark McAulay

"Big kids did it" 

A new start

Today I made it official and joined up with my new employer. I am now to be known as a "front end developer" and can be found at Fifth Ring.

It promises to be a big challenge and will involve working on many high profile clients. I am super excited to join the Digital Media team at this stage and look forward to adding my experience and know-how to the already fantastic team that is being built there.

It's been a while since I worked in a large organisation and to have loads of different faces buzzing about is going to take a bit of getting used to again. Tomorrow will be my first official day, lets see what it brings.

Comments [3]

McAulay moves on

After the sale of Gravity Lab in 2006, ran by Graeme Benzie and myself, I joined forces with Stuart Ebdy and Mike Duguid and founded East Coast Interactive. Over the following 4+ years we grew the company into a well regarded digital media agency. Today, in March 2010, I have decided, after many months of careful consideration and much discussion with friends and family to leave "my baby".

Really?

Anyone who has had the gritty determination and lets face it, the balls to set up their own agency can tell you how difficult a decision like this actually is. Its not simply a case of "swapping jobs", "moving on" or "finding a new challenge" although these things do form some part of the decision. The emotional attachment I have to East Coast Interactive is very strong and I consider my co-founders and colleagues to be friends. The decision to part company is an amicable one and I know I can still have a beer and talk digital media down the pub with them like we've done for years.

Late nights are not a thing of the past...

Running your own agency becomes a huge part of your life and every waking hour is spent on it. It is both a blessing and a curse. This is a situation I've been fortunate enough to experience twice now with both Gravity Lab and East Coast Interactive. I'll still stay up late hacking out code and exploring design ideas because it's my passion to do so, I'll just have more time to focus on new "toys" and further enhance what I am capable of delivering.

East Coast Interactive FTW...

East Coast Interactive will continue to grow in reputation and offering without my direct involvement, of this, I have no doubt. The groundwork has been done and with the guys there at the helm, continued hard graft and the client base that has been built up over the years, there can only be a good outcome in the long term. I consider myself very fortunate to have been part of the company we have collectively built. We've delivered some outstanding, and at times cutting edge work to clients the world over. I know the guys will do very well in the future and I leave as a friend.

Whats next?

As of right now, I have nothing lined up and will start the process of looking for a new full time job so if you're looking to hire someone in the Aberdeen area with 10+ years experience at virtually every level in digital media then I may just be an option to investigate. I've not entirely ruled out the possibility of freelancing either and have an idea that i've been mulling over for many years which may come into play also. Now that I have some spare time, I may even get around to finishing my personal website http://funcy.co.uk and I may have more time to blog here on the cool stuff i've been teaching myself or maybe i'll do more OS work and start contributing stuff on my super inactive github account. Lets see what happens...I'm looking forward to it.

Comments [2]

Installing django-cms

NOTE: I have re-posted this due to fixing a couple of errors I had. It should be fine now but if you do find something wrong, just leave me a comment and i'll update as needed.

I am working on Ubuntu 9.10 here, not windows or mac...sorry, although I dont expect things will be much different for mac at least...if I get a chance i'll run through this process on windows too and update the article but no promises.

I'm assuming that Python, Django and sqlite3 are installed already. For reference, I am currently using Python 2.6.4 and Django (trunk version) 1.2.

I have lifted a good chunk of this from the official django-cms installation guide, the rest came from googling and trial and error. I found the official guide a little above my head so thought i'd keep notes on what I had to do to get this running.


Aaaannnnyway...

If you dont already have one, create a new folder for your code to live in. My folder lives in my home directory and is named "django_apps". This will pop up throughout this guide so if you're following along and you call yours something else, remember to replace "django_apps" with the name of your own folder when the time comes.

In a terminal, move into your code directory:

CD ~/django_apps

Create a new Django project (call this whatever you like but remember to change it if you're following along and have called it something else):

django-admin.py startproject project-name

No harm in making sure that all is indeed well with Django at this early stage so:

CD project-name

And...

python manage.py runserver 

Head on over to 127.0.0.1:8000 and if you see "it worked" then well, its working

Here comes the science...

If you dont happen to know your Python location then issue the following command:

which python
(my one is "/usr/local/lib/python2.6" for example)


Go to your Python dist-packages directory "your-python-path/dist-packages"
 
Download the latest and greatest Django CMS from here: http://www.django-cms.org/en/downloads/ (at the time of writing, this is version 2.0.2)

Unzip the downloaded file into the "dist-packages" directory...you will need to do this as "sudo" unless you have your system set up wrongly ;)

Make copies of the following directories like so: 

sudo cp -R digi604-django-cms-2.0-c0288a1/cms/ cms
sudo cp -R digi604-django-cms-2.0-c0288a1/mptt/ mptt
sudo cp -R digi604-django-cms-2.0-c0288a1/publisher/ publisher

Do a bit of house cleaning to get rid of all the files you don't need:

sudo rm -rf digi604-django-cms-2.0-c0288a1.zip
sudo rm -rf digi604-django-cms-2.0-c0288a1/

Head back to the project you created previously

cd ~/django_apps/project-name

In your editor, edit "settings.py" like so:

On lines 1+2 put the following before anything else:
import os
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))

Then, after the import statements , add this:

gettext = lambda s: s

Set up the remainder of the file with the following changes/additions:

DATABASE_ENGINE = 'sqlite3'
DATABASE_NAME = '/path/to/your/data/your-db-name.db/

MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
MEDIA_URL = '/media/'

ADMIN_MEDIA_PREFIX = '/media/admin/'

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.admin',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'cms',
    'cms.plugins.text',
    'cms.plugins.picture',
    'cms.plugins.link',
    'cms.plugins.file',
    'cms.plugins.snippet',
    'cms.plugins.googlemap',
    'mptt',
    'publisher',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.middleware.csrf.CsrfResponseMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.locale.LocaleMiddleware',  
    'cms.middleware.page.CurrentPageMiddleware', 
    'cms.middleware.user.CurrentUserMiddleware', 
)

TEMPLATE_DIRS = os.path.join(PROJECT_PATH, 'templates')
(templates being the name of my template dir within project-name)

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.core.context_processors.auth', 
    'django.core.context_processors.i18n', 
    'django.core.context_processors.request', 
    'django.core.context_processors.media', 
    'cms.context_processors.media',
)

(I didnt have a "TEMPLATE_CONTEXT_PROCESSORS" specified so had to add all of the above anew.)

Set up your available templates (dont worry that they dont actually exist right now, its not that important. Perhaps i'll write about templates next as I discover more.)
CMS_TEMPLATES = ( 
    ('base.html', gettext('default')), 
    ('2col.html', gettext('2 Column')), 
    ('3col.html', gettext('3 Column')), 
    ('extra.html', gettext('Some extra fancy template')),

Next, Edit your "urls.py" file like so:

urlpatterns = patterns('', 
    (r'^media/(?P<path>.*), 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT } ), 
    (r'^admin/', include(admin.site.urls)),
    (r'^', include('cms.urls')),
)

Create a folder called 'media' in your project root (that's "project-name" for me), this means you create a symbolic link from the "cms/media/cms" folder in "dist-packages" to your new "media" folder:

ln -s /usr/local/lib/python2.6/dist-packages/cms/media/cms cms

Now for the magic...if you're not already there:

cd ~/django_apps/project-name

and...

python manage.py syncdb

If all goes well, you'll be asked if you want to set up your superuser account...which of course you do so just follow the instructions in the terminal.

That should hopefully be that. If your development server is still running in your terminal stop it, then restart it again just to be sure.

cmd c
python manage.py runserver

Visit http://127.0.0.1:8000/ to make sure all is well, you'll be greeted with appropriate text and if you can see the django-cms logo then your media folder is cool also.

log in via the admin link and enjoy :)

Comments [8]

Some UX clarity

I think i understand UX a bit better now. Here a point in case: I click on a link posted to twitter only to be redirected to some not apparently clear Facebook page, I then have to find the link I was expecting to visit in the first place, click that one, then be met with a warning page telling me to "be careful" and this time having to press a button to confirm i'm happy to leave Facebook? erm...i never wanted to be there in the first place! Only now am I at the end of the journey I started all those clicks and distractions ago...

Why use one link when three will do? #trainwreck

Comments [1]

Current Flash bashing mantra

I vowed not to get dragged into this but the fetid stench of bullshit has gotten too overwhelming now.

This whole "No one will be using Flash, the world is moving to HTML5" may be true on mobile browsers and certain mac products due to vendor lock out but lets not believe this hype, the dominant platform today and for the foreseeable future is still windows by a country mile...and I haven't heard that they as a whole, or of any of the primary browsers running on windows are dropping flash support in any way, have you?

Here are some links for you:

Perhaps a more quantifiable statement may read: "No one will be using Mac, the world is moving to Linux". silly huh? and of course will never happen but at least this statement, as ridiculous as it is has some grounding in the real world...

Lets be clear on one thing. There is no reason what so ever not to use both Flash and technology better suited to a non flash capable environment and serve the best experience based on browser capability and user preference...isn't that what we've been banging on about for years now? Just because a minuscule percentage of desktop users have taken the hump at the beck and call of Apple, doesn't mean we should exclude a widely used technology from those that require (and want to use) it. If this is the way we did things then we'd have stopped worrying about rendering content for IE, cause y'know it doesn't run on a mac and the world is moving to chrome...

Monday morning rant over.

Comments [4]