Official ObjectGraph Blog
Monday, February 04, 2008
Announcing PageChat.com
PageChat.com is an innovative tool to communicate with anyone by dynamically creating chat rooms.
You could also use page chat to communicate with others about various topics of interest. Integrate our chat rooms with your websites/blogs to create a unique experience for your audience to chat with each other while on the same page.
We are currently releasing this version as a public beta and these are upcoming features:- Sharing Files
- Guest View
- Youtube integration
Labels: chat, pagechat.com, python
posted by gavi at 11:34 PM | 3 comments |


Friday, January 19, 2007
PIL on captcha - Transparency and Masking for CAPTCHA
It seems that there are no good introductions for how to create transparent image text. However we want it for common image module like CAPTCHA which is an image authentication method. It's easy to just draw text on image, but in order to rotate the text, you have to rotate the image with the text. I think one of the solution is using mask after rotation. You need 3 images to do this.
1. Background
2. Text
3. Mask
2 and 3 must be in a same size, and when you "paste" the text, you can specify the mask as the extra paramter.
This is simple exapmle, to rotated "Hello" on the background
import Image,ImageDraw,ImageFont # Create a background image image = Image.new('RGB', (300, 50), (220,210,190)) draw = ImageDraw.Draw(image) # Create a text image textImg = Image.new('RGB',(150,40),(0,0,0)) tmpDraw = ImageDraw.Draw(textImg) textFont = ImageFont.truetype('ARIAL.TTF',36) tmpDraw.text((0, 0), 'Hello', font = textFont, fill = (10,200,200)) textImg = textImg.rotate(-10) # Create a mask (same size as the text image) mask = Image.new('L',(150, 40),0) mask.paste(textImg,(0,0)) # Paste text image with the mask image.paste(textImg,(100,0),mask) image.save('hello.jpg')
In order to generate CAPTCHA-like image, you might want to apply random xy, color, font size, lines, etc...
So it'll be like this:
This is entire source for these examples. Please install PIL (do easy_install PIL) first.
Download Source Code Here (7.95KB)
Labels: python
posted by Kiichi Takeuchi at 1:44 PM | 0 comments |


Sunday, January 14, 2007
Line numbers and other cool stuff Added to Pygments.com
I added line numbers and some formatting capabilities to Pygments.com
Now the script tag renders line numbers by default. Also RTF download of colored code is available on the Test Page for those nice looking word documents
Check it out @ http://www.pygments.comLabels: pygments.com, python
posted by gavi at 3:08 PM | 0 comments |


Saturday, January 13, 2007
Pygments.com Launched
I purchased Pygments.com domain yesterday. Iam surprised the domain is still available. i guess the Pygments guys dont really care about the .com domain name.
Any way access it via http://www.pygments.com
You can use the code colorizer by going to the Colorizer Test Program.
But the cool thing i added is, a javascript service to colorize any code. Lets say you have a webpage with code, that needs colorizing, Just add this Javascript to the end of the page (Before you close the body tag)
<script src="http://www.pygments.com/js/init.js" type="text/javascript"></script>
All you will need to do is define your code in <pre> tags with unique ids that include some information about the type of the language.
For example:
<pre id="python_1">
print "Hello World"
</pre>
It will automatically colorize the page by making JSON type requests to pygments.com with the code in the page.
So the above would come out like this
print "Hello World"
BTW: pygments javascript is enabled on this site
Labels: json, pygments.com, python
posted by gavi at 5:59 PM | 5 comments |


Friday, January 05, 2007
Recompilining Apache with mod python
So i decided to compile Apache from source and it works beautifully.
And apache is very clean, when you compile from scratch. I was able to compile the latest version (2.2) and recompile mod python.
Removed all httpd related packages from CentOS
php-5.1.6-1.2.1.centos php-mysql-5.1.6-1.2.1.centos php-pear-1.4.9-1.2.centos php-pdo-5.1.6-1.2.1.centos httpd-suexec-2.0.52-28.ent.centos4 httpd-2.0.52-28.ent.centos4
Then got the latest version of apache.
#wget http://apache.mirrormax.net/httpd/httpd-2.2.3.tar.gz #tar xvfz httpd-2.2.3.tar.gz #cd httpd-2.2.3 #./configure #make #make install
this time mod python was again complaining. You will have to compile with the apxs installed by the new apache 2.2.3
#./configure --with-apxs=/usr/local/apache2/bin/apxs
So what did i learn from this exercise.
Always recompile everything unless you want to stick to versions of python that came with the distro.
posted by gavi at 10:28 AM | 0 comments |


Wednesday, January 03, 2007
Installing Python 2.4.4 on Cent OS 4.4 (Final)
class Test: def __init__(self): print "Hello World!" def sum(self,a,b): return a+b @staticmethod def sum1(a,b): return a+b t=Test() print t.sum(10,10) print t.sum1(10,10)After a lot of struggle to find a binary package of Python 2.4.4 for Cent OS, I gave up and compiled python from source. It was pretty straightforward and i am happy with the results. This is what i did.
#wget http://www.python.org/ftp/python/2.4.4/Python-2.4.4.tgz
#tar xvfz *.tgz
#cd Python-2.4.4
#./configure
#make
#make install
Just run python to see if it is the version 2.4.4
Now python is cleanly installed. The site-packages folder under /usr/local/lib/python2.4 are empty. So get the latest version of django and install it
#svn co http://code.djangoproject.com/svn/django/trunk/ django
#cd django
#python setup.py install
Similary you can install MySQLdb and other libraries you want on python.
Now the next steps for us is to get django running on Apache using mod_pythonposted by gavi at 10:02 PM | 2 comments |

