Yak Shaving

just me

Archive for the ‘Uncategorized’ Category

Compiling Couchdb on Karmic

without comments

This had my annoyed for a while. When I came to run ./configure I got:

checking for JS_NewContext in -lmozjs... no
checking for JS_NewContext in -ljs... no
checking for JS_NewContext in -ljs3250... no
checking for JS_NewContext in -ljs32... no
configure: error: Could not find the js library.

Is the Mozilla SpiderMonkey library installed?

I was unable to find much help until I looked at the instructions for installing from source http://wiki.apache.org/couchdb/Installing_on_Ubuntu?action=show&redirect=InstallingOnUbuntu. Which in retrospect would have been a good place to start. Use the following to stop the above error:

./configure --with-js-include=/usr/include/xulrunner-1.9.1.9/unstable --with-js-lib=/usr/lib/xulrunner-devel-1.9.1.9/lib

Oh and make sure you have xulrunner and its dev package installed.

Written by channam

May 5th, 2010 at 12:40 pm

Posted in Uncategorized

Python and Notify OSD

without comments

Silly little bit of code that will tell you when a command line operation has finished.

#!/usr/bin/env python

import sys
import pynotify

if __name__ == '__main__':
    if not pynotify.init ("icon-summary-body"):
        sys.exit (1)

    print sys.stdin.read()

    n = pynotify.Notification ("Finished")

    n.show()

This was based on https://wiki.ubuntu.com/NotificationDevelopmentGuidelines?action=AttachFile&do=view&target=icon-summary-body.py over on the article Notify OSD.

Written by channam

May 1st, 2010 at 2:00 pm

Posted in Uncategorized

Speeding up the Web

without comments

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.

Written by channam

September 6th, 2009 at 4:28 pm

Posted in Uncategorized

Little Script to Check Twitter’s Status

without comments

#!/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!"

Written by channam

August 9th, 2009 at 3:31 pm

Posted in Uncategorized

Conduit from SVN

without comments

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

Written by channam

July 19th, 2009 at 9:26 pm

Posted in Uncategorized

Get CouchDB up and running

without comments

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

Written by channam

July 13th, 2009 at 11:01 am

Posted in Uncategorized

Playing a DVD

without comments

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.

Written by channam

July 9th, 2009 at 10:49 pm

Posted in Uncategorized

Google Contact API

without comments

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…

Written by channam

July 9th, 2009 at 8:06 pm

Posted in Uncategorized

A Quick memcache demo for Python

without comments

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.

Written by channam

June 21st, 2009 at 10:47 pm

Posted in Uncategorized

Webdriver and Python Bindings

without comments

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.

Written by channam

June 20th, 2009 at 12:51 pm

Posted in Uncategorized