Yak Shaving just me

6Sep/090

Speeding up the Web

Might be old news and to be honest it should be if you do web development Speed. This page from Google contains lots of tips for speeding up web pages, lots of useful tips and worth at least one read.

Filed under: Uncategorized No Comments
9Aug/090

Little Script to Check Twitter’s Status

#!/usr/bin/env python

from lxml import html

print "Starting..."

page = html.parse("http://www.pingdom.com/reports/vb1395a6sww3/check_overview/?name=twitter.com%2Fhome")

if page:
    try:
        t = page.xpath("/html/body/div[@id='content']/table[1]/tr[2]/td")
        status_icon = t[0].xpath("img/@src")[0]
        status = status_icon.split('_')[2].split('.')[0]
        date = t[1].text
        print "Twitter is %s! Checked at: %s Pacific Time (GMT - 8:00)" % (status, date)
    except:
        print "Unable to correctly verify Twitters status"
else:
    print "Can't access http://www.pingdom.com status page!"
Filed under: Uncategorized No Comments
19Jul/090

Conduit from SVN

Installed in it from svn and kept getting: ImportError: No module named conduit

Fixed it with a: sudo cp -r /usr/lib/python2.6/site-packages/conduit /usr/lib/python2.6/ after failing with ./autogen.sh --prefix /usr

Filed under: Uncategorized No Comments
13Jul/090

Get CouchDB up and running

run:
sudo apt-get install libcurl4-gnutls-dev libmozjs-dev libicu-dev erlang

This should be all you require to build and install apache-couchdb-0.9.0

Filed under: Uncategorized No Comments
9Jul/090

Playing a DVD

A friend was getting the following error when playing some dvds:

[ 172.864397] Buffer I/O error on device sr0, logical block 278

Following https://help.ubuntu.com/community/RestrictedFormats/PlayingDVDs solved it.

Filed under: Uncategorized No Comments
9Jul/090

Google Contact API

This is more for me as a reminder.

To find the postal address from a gdata.contacts.ContactEntry use:

import atom
import gdata.contacts
import gdata.contacts.service
gd_client = gdata.contacts.service.ContactsService()
gd_client.email = 'jo@gmail.com'
gd_client.password = 'passdword'
gd_client.source = 'exampleCo-exampleApp-1'
gd_client.ProgrammaticLogin()
from lxml import etree
feed = gd_client.GetContactsFeed()
entry = feed.entry[0]
entry
entry.postal_address[0].text
'123 Fake Street'

Took me ages to figure that out...

Filed under: Uncategorized No Comments
21Jun/090

A Quick memcache demo for Python

So you need to use memcache with Python? Below is a brief intro I figured out in about 20 mins.

First install everything you need. I run Ubuntu so python-memcached memcached packages were required.

Next start the memcached server if its not already running:

/usr/bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1

The above gets you a 64Mb server, more than enough to play on.

Next some python below is from the interpreter as I was in a hurry:

import memcache
memc = memcache.Client(['127.0.0.1:11211'])
class test():
    def __init__(self):
        self.m = "Hello, world"

t = test()
memc.set('cheese', t, 120)
True
r = memc.get('cheese')
r.m
'Hello, world'

The above instantiates an object and then saves it memcached with set() and then we get it back using get(). Dead simple. The usage is pretty, try and fetch from memcached if if fails fetch from your datasource and then save that document ready for next time.

memc.set('cheese', t, 120) cheese is the reference, t is the object to store and 120 is the time to live. After 120 seconds the object is cleared from the cache.

Filed under: Uncategorized No Comments
20Jun/090

Webdriver and Python Bindings

I`m working on some WebDriver stuff and below is quick guide to get you started:

svn checkout http://webdriver.googlecode.com/svn/trunk/ webdriver
cd webdriver/
sudo python setup.py install

add the following to make sure you new libs can be found correctly

vi ~/.bashrc
export WEBDRIVER=/home/channam/Code/python/webdriver
. ~/.bashrc

and you are good to go.

Filed under: Uncategorized No Comments
30May/090

Laconica Fix

Thought I would have a go at making a timesheet based twitter thing using Laconica. All went well until I tried to run after install. All my links were screwed as they were prefixed with index.ph. Bit of googling found this solution http://laconi.ca/trac/ticket/1345. Strangly the ticket is closed but I`m seeing the same issue but the fix works:

Add $config['site']['path'] = ""; to your config.php file. Hope the fun bit goes a little bit easier than the install.

Filed under: Uncategorized No Comments
21May/091

I love Python

Compare two lists?

list(set(b).difference(set(a)))

done

Tagged as: 1 Comment