HOW TO WRITE A RANK CHECKER IN PYTHON

I wanted to keep track of a ranking position today so I repurposed some existing code I had and came up with somethin...


BUILDING A WEB APP

As the title suggests, I have been quietly working away building a web app in my spare time, there is more to do yet ...


INTRODUCTION TO THE PYTHON CLASS

Python Classes have been difficult to learn, the tutorials for them are either to in-depth, complicated or to simplis...


PYTHON QUEUES AND MULTI-THREADING

Over the last few weeks I have been working on a web app that need to ability to query hundreds, thousands or even mi...


RENAME AN IMAGE USING PYTHON

Today I was tasked with renaming over a thousand files, this comes off the back of a recommendation to the client to ...


GOODBYE WORDPRESS, HELLO CRAIGPRESS

So as the title suggests and as you may or may not have noticed I have a new design and a whole new backend. After ge...


INTRODUCTION TO PYTHON LIST COMPREHENSIONS

When I first saw a list comprehension I simply shook my head in utter confusion, the fact is that they are actually f...


PYTHON COURSE

I've been trawling the interwebz recently looking for a Python course that I could potentially take to fast-track my ...


WEB SCRAPING OUT IN THE WILD

So I've done a little web scraping, mainly for myself, a little for work purposes but a few nights ago my wife was te...


PYTHON SCRIPT TO MONITOR SITE UPTIME

I wrote the following script in an attempt to monitor my clients-sites uptime, essentially if a sites goes down for w...


MINING ALL TWEETS WITH PYTHON

According to the Twitter api, they'll allow you to extract a maximum of 3,200 tweets, 200 at a time, to do this I'm u...


PARSE AN XML SITEMAP WITH PYTHON

I have had parse a number of XML sitemaps this week for different reasons so I thought I would make it a little easie...


WORKING WITH CSV FILES

When working with large datasets I tend to use Python as it's a lot faster then excel for file manipulations and does...


WORDPRESS TITLES TO LOWERCASE WITH MYSQL

I randomly decided I didn't want uppercase titles anymore on my blog posts, so I opened up 'All Posts' within my Word...


IF MACHINES CAN DO IT, THEY SHOULD

I came across the following quote and it pretty much sums up my own thoughts on Python and programming/technology ...

SCRAPING TWITTER AND FACEBOOK SHARES WITH PYTHON

There are obviously dozens of reasons to want to see Twitter and FaceBook shares, so I have written a surprisingly si...


MASS LINK DUPLICATION CHECKER WITH PYTHON

I wrote this script as I was getting pissed off with Excel crashing when checking a measly 100,000 links; working wit...


CHECKING HTTP RESPONSE CODES IN PYTHON

I've just been trying to check for canonical issues on a sites domain and my usual tool of choice was showing respons...


2013 RECAP AND 2014 GOALS

Wow what a year, most notable was of course getting married, after 7 years we finally did it. A small, intimate famil...


IMAGE MANIPULATION WITH PYTHON

So having recently got married, my Mrs wanted all the wedding photos turning into grey scale, I originally planned to...


KEEPING YOUR DESKTOP TIDY - LIKE A BOSS!

I'm still on my path to Pythonic enlightenment and today on my break I wrote a little script that I'm now going to be...


HOW TO INCREASE MEMORY ALLOCATION FOR SCREAMING FROG

First and foremost, this isn't anything that Screaming Frog do not already document but as with everything, nobody ta...


HOW TO FIND AN XML SITEMAP

Not getting into anything to complex in this post but this is just a nice-to-have that you might find useful; a javas...


INTERVIEW WITH PAUL MAY OF BUZZSTREAM

Today we have an interview with Paul May of the popular link building tool BuzzStream. So once again without further ...


HOW TO GENERATE CONTENT IDEAS

Sometimes for a client or your company you need to come up with content ideas. To fall in line with seasonality of yo...


CONVERSION RATE OPTIMISATION - SORRY BUT YOU'RE DOING IT WRONG

Lately, I have heard lots of talk on conversion rate optimisation, while it's nothing new, I'm seeing more and more c...


AN INTERVIEW WITH BARRY ADAMS

Today I have the pleasure of bringing you an interview with the SEO communities "foul-mouthed contrarian" and the man...


AN INTERVIEW WITH RAND FISHKIN OF MOZ

Rand of Moz was kind enough to agree to be interviewed, here he we talk about his blackhat days, costs of running Moz...


INTERVIEW WITH JAMES AGATE OF SKYROCKET SEO

Today I'm excited to bring you an interview with James Agate of Skyrocket SEO you probably already know of James but ...


INTRODUCING THE TWITTER VANITY LIST

Just a quick one today. I have been using Twitter lists for a little while now and playing with how best to use them ...


ADVANCED META DESCRIPTIONS

Meta descriptions are often over looked, even SEOmoz have theirs automated, Meta descriptions are annoying, you finis...


BUILDING AN AUTOMATED PERSONA ON TWITTER FOR QUICK AND DIRTY OUTREACH

Using a persona for outreach purposes merely improves your chances of conversion, don't see a persona as being dishon...


GAMING SOCIAL SIGNALS - AN AUTOMATED TWITTER NETWORK

I'm tired of reading about content curation at the moment so I thought I would share a random thought and just an FYI...


BEST SEO BLOGS - THE ULTIMATE RECOMMENDED READING LIST

I thought I'd throw together some of the blogs on my regular reading list to show my appreciation as well as help bro...