Aware Monitoring branding: Logo, Business Cards and Holding Page

Things are moving fast at here Aware Monitoring HQ as we continue the development of our new web infrastructure monitoring service. One area that has come on leaps and bounds over the past few weeks is our branding. My co-founder Nick Barker blogged about our the importance of our logo, business cards and holding page some time ago, and now they have all come together . . .

Our first step: the logo. ..

I think we nailed it . . . well, actually our graphic designer did (with a little help and guidance from us of course!).  

Aware Monitoring Logo

Our logo is the foundation for all of our branding. It’s a strong image that stay’s recognizable in single/reverse colour and has an identity that we can build on. The ‘bars’ image reinforces the monitoring theme.

Next up: business cards . . .

Our business card design builds on the logo theme and extends it even further. On the front of the card we have subtle grey bars, and on the reverse we have a striking blue theme with a large logo image. 

Business Card

Nick and I spent some time discussing the advantages and disadvantages of using the back of the business card (versus leaving it plain white). After seeing the initial design concepts the decision became a no-brainer – we loved the image, and it’s a great addition to our branding. As Nick said: “It’s a walking advertisement”.

The holding page . . .

With our logo and business cards in place we moved on to our holding page. With lots of work still to do on our web-app we wanted to make sure we had something in place to point people to and capture their interest. Back to our trusted designer we went, and again he came through.

aware_launchpage

Instantly recognizable if you’ve been given one of our business cards, the holding page continues the blue theme to create a bold and striking image. Our holding page will be around for a while so we wanted to get it right in order to make a great first impression.

Seeing all of our branding come together has started to make everything seem more real. It’s no longer just an idea, it’s something I can actually see, hold, and touch.

Command Line Email with Django and Gmail

I needed to find a way to send email reports from a scheduled cron job. I looked for a simple linux command-line email solution but couldn’t find anything that fitted the bill. I was already using Django’s EmailMessage class in an existing app, so I started to think about how I could re-use it for scheduled jobs.

I’m using linux in this scenario, but it would probably work fine in Windows too.

First I configured my cron job (actually the .sh script that cron job runs) to output to a file called report.txt. This would be overwritten each time the job ran, so would always be the latest version.

An existing Django project settings.py had the following settings to enable email sending via a Gmail (or Google Apps) account. The settings are based on Nathan Ostgard’s Gmail and Django article.


EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'user@domain.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

So I knocked up a standalone python script sendreport.py that would take these settings and email the report.txt file to me.

#!/user/bin/python
#
# Get settings from an existing django project
import sys
import os
sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)), '/..'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'my_django_project.settings'

from django.core.mail import EmailMessage

# Set up email fields
recipient = 'myemail@mydomain.com'
subject = 'CRON Job Report'
body = 'CRON Job Report for blah, blah, blah . . .'

# Create email object, attach file, send
email = EmailMessage(subject, body, to = [recipient])
email.attach_file('report.txt')
email.send()

The EmailMessage class makes it very easy to attach a file and send the email.  I can tag this on to the end of the .sh script executed by the cron job and jobs-a-good-un :)

Well sort of . .  it’s functional, but not ideal. It works by reading email settings from an existing Django app’s setting.py. I wanted it to be more portable, and not dependent on a specific Django configuration/app.

Then I found out that you can specify Django settings from within a standalone python script. Could this method be used to break any dependencies and make the script more portable? Absolutely!

#!/user/bin/python
#
# Configure some standalone django settings
# These settings are for a gmail or google apps account
from django.conf import settings
settings.configure (
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'user@domain.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
)

from django.core.mail import EmailMessage
import datetime
import sys
import socket

# Get the hostname and current time to put in the email
hostname = socket.gethostname()
timestamp = datetime.datetime.now().ctime()

# Set up email fields
recipient = 'myemail@mydomain.com'
subject = '%s CRON Job Report: %s' % (hostname, timestamp)
body = 'Report for %s on %s attached' % (hostname, timestamp)

# Create email object, attach file, send
email = EmailMessage(subject, body, to = [recipient])
email.attach_file('bkp_report.txt')
email.send()

I also made use of hostname()and datetime() to provide some more detail for the email subject and body.

Now the only dependency is Django itself – which I’m happy with, my job reports are archived in email – which I like, and I get to use more Python – which is good for me.

Blog 2.0

Blog 1.0 never really got off the ground, one post in a year is hardly prolific. Time for a new start and a fresh look. I have moved from wordpress.com hosting to give myself more flexibilty, more theme choices, and more plugins. So in summary:

I’m now on a VPS running Ubuntu

. . . with Apacheand PHP

I grabbed the latest version of  Wordpress

. . . and hooked it up to a MySQL database.

 

Let’s see where it goes.

I’ve ported accross my single post for posterity. Maybe someday I’ll find the time to build something nice for myself in Django.