<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6132100917633479663</id><updated>2012-01-13T08:06:14.678-08:00</updated><category term='linux'/><category term='proxy'/><category term='3 idiots'/><category term='usb'/><category term='tata'/><category term='redis'/><category term='programming'/><category term='broadband'/><category term='modem'/><category term='fast'/><category term='indicom'/><category term='dnsmasq'/><category term='utf-8'/><category term='mencoder'/><category term='youtube'/><category term='dot'/><category term='autocomplete'/><category term='graphviz'/><category term='networking'/><category term='vde'/><category term='squid'/><category term='movie'/><category term='stockie'/><category term='generating'/><category term='opensource'/><category term='python'/><category term='syncer'/><category term='LinkedIn'/><category term='zope'/><category term='tap'/><category term='flowchart'/><category term='internet'/><category term='xfce'/><category term='reliance'/><category term='qemu'/><category term='unicode'/><category term='professional'/><category term='ubuntuone'/><category term='code'/><category term='ubuntu'/><category term='zinterfaces'/><category term='review'/><category term='google'/><title type='text'>Pythonik</title><subtitle type='html'>Python and general tech dump</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-4134268191495736996</id><published>2010-11-25T18:41:00.000-08:00</published><updated>2010-11-25T18:55:27.901-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='autocomplete'/><category scheme='http://www.blogger.com/atom/ns#' term='redis'/><title type='text'>Redis patterns | search</title><content type='html'>&lt;div id="readme" class="blob"&gt;     &lt;div class="wikistyle"&gt;&lt;h3&gt;Problem&lt;/h3&gt;  &lt;p&gt;You want to implement search against user objects stored in redis  using Python. Something like querying for all user ids whose username  begins with "an".&lt;/p&gt;  &lt;h3&gt;Solution&lt;/h3&gt;  &lt;p&gt;Here we have user objects stored in as hashes with "user:obj:" as prefix.&lt;/p&gt;  &lt;p&gt;For example&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;user:obj:3955 {id: 3955, username: 'John', ..}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;We need some extra data structures to support our search i.e. (search  user objects where username begins with given phrase. So search for &lt;code&gt;jo&lt;/code&gt; should match John, Joe and so on. We will use sorted sets of all usernames and will assign every element a score. This score is a float and helps us in finding the matching words.&lt;/p&gt;  &lt;p&gt;Some scores for eg.&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;a -&gt; 0.097&lt;br /&gt;ab -&gt; 0.097098&lt;br /&gt;ac -&gt; 0.097099&lt;br /&gt;bc -&gt; 0.098099&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;So for above four string if we find strings that has score that is  =&gt; 0.097 and &lt; 0.098, we find all strings that begins with 'a'  &lt;p&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Code&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/716212.js"&gt; &lt;/script&gt;&lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Discussion&lt;/h3&gt;  &lt;p&gt;This to demonstrate simple redis pattern and using it in Python.&lt;/p&gt;  &lt;h3&gt;See Also&lt;/h3&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/redis/wiki/ZrangebyscoreCommand"&gt;ZrangebyscoreCommand&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;       There are already some good writeups on related topics.&lt;ul&gt;&lt;li&gt;&lt;a href="http://playnice.ly/blog/2010/05/24/redis-multi-field-searching-and-filtering/"&gt;playnicely&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://antirez.com/post/autocomplete-with-redis.html"&gt;autocomplete&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;   &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-4134268191495736996?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/4134268191495736996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2010/11/redis-patterns-search.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/4134268191495736996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/4134268191495736996'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2010/11/redis-patterns-search.html' title='Redis patterns | search'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-2336495986296406241</id><published>2010-08-28T18:34:00.000-07:00</published><updated>2010-11-25T18:36:31.977-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntuone'/><category scheme='http://www.blogger.com/atom/ns#' term='xfce'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>xfce and ubuntuone</title><content type='html'>I do like Ubuntu Netbook Remix’s UI. However with 10.04 it’s just gone so unstable for me. &lt;ul&gt;&lt;li&gt;After login when system prompts for keyring secret, UNR environment  crashes and drops to gnome. I have to relogin if I need UNR env.&lt;/li&gt;&lt;li&gt;After I removed a few packages it could not just start gnome panel  causing a great inconvenience. I guess this is due to Evolution  integration with latest Ubuntu. Mail client I like and use is &lt;a title="Thunderbird" target="_blank" href="http://www.mozillamessaging.com/en-US/thunderbird/"&gt;Thunderbird&lt;/a&gt;. I cant switch to Evolution.&lt;/li&gt;&lt;li&gt;Initially after 10.04 release it was damn slow to respond, so had to do some work around to get it to acceptable speed.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Considering all that I decided to switch to &lt;a title="Xfce" target="_blank" href="http://www.xfce.org/about/screenshots"&gt;Xfce&lt;/a&gt;. It just worked like charm. But now I also use (and like :) ) &lt;a title="Ubuntu One" target="_blank" href="https://one.ubuntu.com/"&gt;UbuntuOne&lt;/a&gt; service for my backup. UbuntuOne is not integrated for XFCE. Also you cant do everything from UbuntuOne’s cli.&lt;/p&gt; &lt;pre&gt;u1sdtool -q; killall ubuntuone-login; u1sdtool -c # configuration&lt;br /&gt;u1sdtool --create-folder ~/my_data # add folders you want to be synced&lt;br /&gt;u1sdtool --list-folders&lt;br /&gt;u1sdtool --current-transfers&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;For more details you might want to check &lt;a title="Ubuntu One Wiki" target="_blank" href="https://wiki.ubuntu.com/UbuntuOne/FAQ#How%20do%20I%20add%20my%20computer?"&gt;Ubuntu One wiki&lt;/a&gt; .&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-2336495986296406241?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/2336495986296406241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2010/08/xfce-and-ubuntuone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/2336495986296406241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/2336495986296406241'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2010/08/xfce-and-ubuntuone.html' title='xfce and ubuntuone'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-4854114912892524600</id><published>2010-02-24T18:36:00.000-08:00</published><updated>2010-11-25T18:38:48.392-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reliance'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='broadband'/><title type='text'>Reliance Netconnect Broadband+ on Linux</title><content type='html'>&lt;ul&gt;&lt;li&gt;It works. Make sure while purchasing you inform them that you use Linux&lt;/li&gt;&lt;li&gt;It’s fast and reliable in Pashan, Pune area&lt;/li&gt;&lt;li&gt;Below config worked for me on Ubuntu 9.10 AND 10.04&lt;/li&gt;&lt;li&gt;There are Linux drivers on the CD but I could not get it working on Ubuntu 9.10.&lt;/li&gt;&lt;li&gt;For activation, I had to use Windows :(&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;sudo apt-get install usb-modeswitch wvdial&lt;/p&gt; &lt;p&gt;vi /etc/wvdial&lt;/p&gt; &lt;p&gt;[Dialer Defaults]&lt;br /&gt;Phone = #777&lt;br /&gt;Password = &lt;mobile&gt;&lt;br /&gt;Username = &lt;mobile&gt;&lt;br /&gt;Baud = 460800&lt;br /&gt;Stupid Mode = 1&lt;br /&gt;New PPPD = 1&lt;br /&gt;Tonline = 0&lt;br /&gt;Init1 = ATZ&lt;br /&gt;Init2 = ATQ0 V1 E1 S0=0 &amp;amp;C1 &amp;amp;D2 +FCLASS=0&lt;br /&gt;Modem Type = Analog Modem&lt;br /&gt;Baud = 460800&lt;br /&gt;Modem = /dev/ttyUSB0&lt;br /&gt;ISDN = 0&lt;br /&gt;&lt;/mobile&gt;&lt;/mobile&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-4854114912892524600?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/4854114912892524600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2010/02/reliance-netconnect-broadband-on-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/4854114912892524600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/4854114912892524600'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2010/02/reliance-netconnect-broadband-on-linux.html' title='Reliance Netconnect Broadband+ on Linux'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-5664921810925367890</id><published>2010-01-02T18:39:00.000-08:00</published><updated>2010-11-25T18:40:37.999-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3 idiots'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='movie'/><title type='text'>All izz well?</title><content type='html'>&lt;p&gt;Surely one of the most over-hyped film. What was good? Aamir,  Music and the first half laughs. Post interval it becomes a  predictable, boring, idiot bollywood movie.&lt;/p&gt; &lt;p&gt;Munnabhai s were certainly better. I would say watch it on TV or  atleast don’t pay 3 times higher than usual for tickets like we did. 4  and half stars by critic hmmmm..&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-5664921810925367890?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/5664921810925367890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2010/01/all-izz-well.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/5664921810925367890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/5664921810925367890'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2010/01/all-izz-well.html' title='All izz well?'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-2760429728423473093</id><published>2009-03-27T12:01:00.000-07:00</published><updated>2009-03-28T02:35:34.551-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utf-8'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Unicode</title><content type='html'>Pulling your hairs over some i18n bug or you fix it but are not able to explain what. This is little help in getting fair idea about unicode/codecs/encoding/decoding etc.&lt;br /&gt;&lt;br /&gt;Quick tips:&lt;br /&gt;&lt;br /&gt;a. It does not make sense to have a string without knowing what encoding it uses.&lt;br /&gt;b. Utf-8 is a way of storing string of Unicode code points.&lt;br /&gt;c. Encoding: Transforming a unicode object into a sequence of bytes&lt;br /&gt;d. Decoding: Recreating the unicode object from the sequence of bytes is known as decoding. There are many different methods for how this transformation can be done (these methods are also called encodings).&lt;br /&gt;&lt;br /&gt;Now&lt;br /&gt;Must Read 1. http://www.joelonsoftware.com/articles/Unicode.html&lt;br /&gt;Must Read 2. http://stackoverflow.com/questions/447107/whats-the-difference-between-encode-decode-python-2-x&lt;br /&gt;Continue reading 1: http://farmdev.com/talks/unicode/&lt;br /&gt;Continue reading 2: http://diveintopython.org/xml_processing/unicode.html&lt;br /&gt;Continue reading 3:http://stackoverflow.com/questions/440320/unicode-vs-str-decode-for-a-utf8-encoded-byte-string-python-2-x&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-2760429728423473093?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/2760429728423473093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2009/03/unicode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/2760429728423473093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/2760429728423473093'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2009/03/unicode.html' title='Unicode'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-1446115030121003709</id><published>2009-03-14T03:39:00.000-07:00</published><updated>2009-03-14T03:41:54.014-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='indicom'/><category scheme='http://www.blogger.com/atom/ns#' term='modem'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tata'/><category scheme='http://www.blogger.com/atom/ns#' term='usb'/><title type='text'>Tata Indicom USB Modem on Linux</title><content type='html'>&lt;blockquote&gt;cat /etc/wvdial.conf &lt;br /&gt;&lt;br /&gt;[Dialer Defaults]&lt;br /&gt;Init1 = ATZ&lt;br /&gt;Init2 = ATQ0 V1 E1 S0=0 &amp;C1 &amp;D2 +FCLASS=0&lt;br /&gt;Modem Type = USB Modem&lt;br /&gt;Baud = 460800&lt;br /&gt;New PPPD = yes&lt;br /&gt;Modem = /dev/ttyACM0&lt;br /&gt;ISDN = 0&lt;br /&gt;Stupid mode = 1&lt;br /&gt;Phone = #777&lt;br /&gt;Password = internet&lt;br /&gt;Username = internet&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Don't understand above. Um ok but I am too lazy to explain.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-1446115030121003709?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/1446115030121003709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2009/03/tata-indicom-usb-modem-on-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/1446115030121003709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/1446115030121003709'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2009/03/tata-indicom-usb-modem-on-linux.html' title='Tata Indicom USB Modem on Linux'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-7864009349651815609</id><published>2009-02-16T23:16:00.000-08:00</published><updated>2009-03-14T03:43:59.863-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='professional'/><category scheme='http://www.blogger.com/atom/ns#' term='LinkedIn'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>LinkedIn backlash</title><content type='html'>&lt;a href="http://www.linkedin.com/"&gt;Linkedin&lt;/a&gt; is one of the few sites that has certainly impressed me with it's clever design. I would rate it very highly for professional networking. It has one very popular feature "recommendations". Well while I am not against recommending or get recommended by, as I have done both in past. But I see people who&lt;br /&gt;think that more and more people they have in their list (no matter how they know well each other professionally) and more recommendations they have received (mostly by requesting others) would make their prospects better. Umm oh, I wonder why are they are madly behind this. I receive a quite&lt;br /&gt;a few requests often. Some morning you check your emails and you see that some colleague in your company 2 years ago sends you a mail with subject "can you endorse me?". And the email says something&lt;br /&gt;similar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;Dear ,&lt;br /&gt;I'm sending this to ask you for a brief recommendation of my work that I can include in my LinkedIn profile. If you have any questions, let me know.&lt;br /&gt;&lt;br /&gt;Thanks in advance for helping me out.&lt;br /&gt;&lt;br /&gt;&lt;me&gt;-&lt;him&gt;&lt;br /&gt;&lt;br /&gt;Now this above guy could be someone I don't know that well how well he/she is skilled. But now I can't deny the request so in a day or two I would look at some other recommendations available for my other LinkedIn friends, copy some matter and send what is requested for.  He happily accepts and send me a nice Thank you email. I see people who worked completely unrelated departments and has probably no ability to judge other's work, go praising out of good relationships. May be what should happen on Orkut testimonials or somewhere similar.&lt;br /&gt;&lt;br /&gt;Does these people who have tens and hundreds of people in network and so many recommendations have no work other than hopping the jobs and sending such requests.&lt;br /&gt;&lt;br /&gt;Next time I interview a guy with many endorsements , I would probably more cautious hiring him.&lt;/him&gt;&lt;/me&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-7864009349651815609?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/7864009349651815609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2009/02/linkedin-is-one-of-few-sites-that-has.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/7864009349651815609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/7864009349651815609'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2009/02/linkedin-is-one-of-few-sites-that-has.html' title='LinkedIn backlash'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-5501817448128663911</id><published>2009-01-25T01:21:00.000-08:00</published><updated>2009-02-16T23:26:59.898-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stockie'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='syncer'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>My open source projects</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/syncer/"&gt;Syncer&lt;/a&gt;: A event daemon based on Pyro.&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/stockie/"&gt;Stockie&lt;/a&gt;: A personal portfolio manager for an Investor&lt;/li&gt;&lt;/ul&gt;Will soon write more about these projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-5501817448128663911?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/5501817448128663911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2009/01/my-open-source-projects.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/5501817448128663911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/5501817448128663911'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2009/01/my-open-source-projects.html' title='My open source projects'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-2664362036672671941</id><published>2008-10-12T12:40:00.000-07:00</published><updated>2009-02-16T03:25:36.457-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vde'/><category scheme='http://www.blogger.com/atom/ns#' term='qemu'/><category scheme='http://www.blogger.com/atom/ns#' term='tap'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Qemu networking setup</title><content type='html'>&lt;pre&gt;          &lt;br /&gt;------------        ----------&lt;br /&gt;|           |      |  Guest  |&lt;br /&gt;| Host  ----+------+-----    |&lt;br /&gt;|      |    | Hub  |     |   |&lt;br /&gt;|      |tap0|      |tap1 |   |&lt;br /&gt;|      |-----+-----+-----|   |&lt;br /&gt;| eth0      |      |         |&lt;br /&gt;|   |       |      |         |&lt;br /&gt;----+-------       ----------&lt;br /&gt; |&lt;br /&gt;(Internet)&lt;br /&gt;&lt;br /&gt;Host&lt;br /&gt;* Add a hub&lt;br /&gt;# vde_switch  -x -d -tap tap0 -tap tap1&lt;br /&gt;* Assign ip to host's nic&lt;br /&gt;# ifconfig tap0 192.168.1.1&lt;br /&gt;* Setup ip forwarding&lt;br /&gt;Modify /etc/sysctl.conf&lt;br /&gt;net.ipv4.ip_forward=1&lt;br /&gt;* Setup masquerading&lt;br /&gt;# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&lt;br /&gt;* Fire qemu&lt;br /&gt;# vdeqemu -m 1024 -localtime /vm//jos_8.04_01/jos_8.04_01.img&lt;br /&gt;&lt;br /&gt;Guest&lt;br /&gt;# ifconfig eth0 192.168.1.2&lt;br /&gt;# route add default gw 192.168.1.1&lt;br /&gt;# vi /etc/resolv.com&lt;br /&gt;# ping google.com&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-2664362036672671941?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/2664362036672671941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2008/10/qemu-networking-setup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/2664362036672671941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/2664362036672671941'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2008/10/qemu-networking-setup.html' title='Qemu networking setup'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-7749804454663004473</id><published>2008-08-25T04:52:00.000-07:00</published><updated>2011-02-04T07:57:27.796-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='fast'/><category scheme='http://www.blogger.com/atom/ns#' term='squid'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='dnsmasq'/><category scheme='http://www.blogger.com/atom/ns#' term='proxy'/><title type='text'>Configuring your ubuntu for faster internet access</title><content type='html'>While there is a lot already written here my quick howto&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ sudo bash&lt;br /&gt;# apt-get install dnsmasq squid&lt;br /&gt;# echo "listen-address=127.0.0.1" &gt;&gt; /etc/dnsmasq.conf&lt;br /&gt;# echo "no-dhcp-interface=" &gt;&gt; /etc/dnsmasq.conf&lt;br /&gt;# vi /etc/dhcp3/dhclient.conf &lt;br /&gt;# # ^ uncomment line #prepend domain-name-servers 127.0.0.1;&lt;br /&gt;# vi /etc/resolv.conf  # Add nameserver 127.0.0.1 &lt;br /&gt;# /etc/init.d/dnsmasq restart&lt;br /&gt;# vi /etc/squid/squid.conf &lt;br /&gt;&lt;br /&gt;http_port 3128&lt;br /&gt;visible_hostname localhost&lt;br /&gt;&lt;br /&gt;acl all src 0.0.0.0/0.0.0.0&lt;br /&gt;&lt;br /&gt;cache_effective_user proxy&lt;br /&gt;cache_effective_group proxy&lt;br /&gt;&lt;br /&gt;http_access allow all&lt;br /&gt;icp_access allow all&lt;br /&gt;&lt;br /&gt;positive_dns_ttl 1 month&lt;br /&gt;negative_dns_ttl 1 minute&lt;br /&gt;httpd_accel_port 80&lt;br /&gt;httpd_accel_with_proxy on&lt;br /&gt;httpd_accel_uses_host_header on&lt;br /&gt;&lt;br /&gt;cache_dir ufs /cache 400 16 256&lt;br /&gt;cache_store_log none         &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# mkdir /cache # I have this dir on reizerfs partition&lt;br /&gt;# chown proxy.proxy /cache&lt;br /&gt;&lt;br /&gt;# /etc/init.d/squid restart&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Configure your browser to use 127.0.0.1:8080.&lt;br /&gt;Also read detailed dnsmasq setup article  http://ubuntu.wordpress.com/2006/08/02/local-dns-cache-for-faster-browsing/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-7749804454663004473?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/7749804454663004473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2008/08/configuring-your-ubuntu-for-faster.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/7749804454663004473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/7749804454663004473'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2008/08/configuring-your-ubuntu-for-faster.html' title='Configuring your ubuntu for faster internet access'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-6747912711801586978</id><published>2008-08-01T01:43:00.000-07:00</published><updated>2009-03-15T01:57:00.948-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mencoder'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='youtube'/><title type='text'>Youtube flash videos to DivX (on Linux)</title><content type='html'>&lt;span style="font-family: verdana;font-family:courier new;font-size:85%;"  &gt;This how I convert flash&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: verdana;font-family:courier new;font-size:85%;"  &gt;I usually use &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a style="font-family: verdana;" href="https://addons.mozilla.org/en-US/firefox/addon/3006"&gt;Firefox VideoHelper Addon &lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: verdana;font-family:courier new;font-size:85%;"  &gt; to download youtube videos. To play them on my Philips DVP5986K DVD player from USB drive, I need to convert it to DivX.&lt;/span&gt;&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;mencoder /home/shon/Desktop/file-864260998.flv -ovc lavc -oac mp3lame -ffourcc DX50 -o out.avi&lt;br /&gt;&lt;/tt&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-6747912711801586978?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/6747912711801586978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2008/08/youtube-flash-videos-to-divx-on-linux.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/6747912711801586978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/6747912711801586978'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2008/08/youtube-flash-videos-to-divx-on-linux.html' title='Youtube flash videos to DivX (on Linux)'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-958514232066012628</id><published>2008-05-08T12:19:00.000-07:00</published><updated>2008-12-09T02:01:18.296-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='graphviz'/><category scheme='http://www.blogger.com/atom/ns#' term='generating'/><category scheme='http://www.blogger.com/atom/ns#' term='dot'/><category scheme='http://www.blogger.com/atom/ns#' term='flowchart'/><title type='text'>Using DOT language to produce Flowchart</title><content type='html'>much better than struggling with the graphical tools.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;shon@ubuntu:~$ cat test.dot&lt;br /&gt;&lt;br /&gt;digraph FlowChart {&lt;br /&gt;&lt;br /&gt; node [&lt;br /&gt;         fontname = "Bitstream Vera Sans"&lt;br /&gt;         fontsize = 8&lt;br /&gt;         shape = "record"&lt;br /&gt;     ]&lt;br /&gt;&lt;br /&gt; edge [&lt;br /&gt;         fontname = "Bitstream Vera Sans"&lt;br /&gt;         fontsize = 8&lt;br /&gt;         fontcolor = "Red"&lt;br /&gt;     ]&lt;br /&gt;&lt;br /&gt;// all blocks&lt;br /&gt;greet [label="Hello, techie", shape="oval"]&lt;br /&gt;which_os [label="What OS do you use?" shape="diamond"]&lt;br /&gt;like_me [label="Great, me too!", shape="oval"]&lt;br /&gt;which_browser [label="You must be using firefox", shape="diamond"]&lt;br /&gt;ff [label="Cool", shape="oval"]&lt;br /&gt;bye [label="Bye", shape="oval"]&lt;br /&gt;&lt;br /&gt;// relations&lt;br /&gt;greet -&gt; which_os&lt;br /&gt;which_os -&gt; like_me [label="I use Linux"]&lt;br /&gt;which_os -&gt; which_browser [label="I use Windows"]&lt;br /&gt;which_browser -&gt; ff [label="Right"]&lt;br /&gt;which_browser -&gt; bye [label="what firefox?"]&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;shon@ubuntu:~$ dot test.dot -Tpng -o test.png &amp;amp;&amp;amp; eog test.png&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IgPaZdg3-oA/SCNU88UqZEI/AAAAAAAACb0/3gM5151dOhg/s1600-h/test.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_IgPaZdg3-oA/SCNU88UqZEI/AAAAAAAACb0/3gM5151dOhg/s320/test.png" alt="" id="BLOGGER_PHOTO_ID_5198091800877360194" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-958514232066012628?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/958514232066012628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2008/05/using-dot-linaguage-to-produce.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/958514232066012628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/958514232066012628'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2008/05/using-dot-linaguage-to-produce.html' title='Using DOT language to produce Flowchart'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IgPaZdg3-oA/SCNU88UqZEI/AAAAAAAACb0/3gM5151dOhg/s72-c/test.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-116338640849603970</id><published>2008-04-16T23:10:00.001-07:00</published><updated>2008-04-16T23:10:39.727-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='zope'/><category scheme='http://www.blogger.com/atom/ns#' term='zinterfaces'/><title type='text'>Contract verification in Python</title><content type='html'>&lt;pre&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;import zope.interface.verify&lt;br /&gt;&lt;br /&gt;class ITest(zope.interface.Interface):&lt;br /&gt;   def foo(arg1): pass&lt;br /&gt;   def bar(): pass   &lt;br /&gt;&lt;br /&gt;class Test(object):&lt;br /&gt;   zope.interface.implements(ITest)&lt;br /&gt;   def foo(self): pass&lt;br /&gt;&lt;br /&gt;class Test2(object):&lt;br /&gt;   zope.interface.implements(ITest)&lt;br /&gt;   def foo(self, arg1): pass&lt;br /&gt;  &lt;br /&gt;class Test3(object):&lt;br /&gt;   zope.interface.implements(ITest)&lt;br /&gt;   def foo(self, arg1): pass&lt;br /&gt;   def bar(self): pass&lt;br /&gt;&lt;br /&gt;for cls in (Test, Test2, Test3):&lt;br /&gt;   try:&lt;br /&gt;       if zope.interface.verify.verifyClass(ITest, cls):&lt;br /&gt;           print "OK: %s correctly implements %s" % (cls.__name__, ITest.__name__)&lt;br /&gt;   except Exception, err:&lt;br /&gt;       print "Error detected with %s's implementation: %s" % (cls.__name__, err)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-116338640849603970?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/116338640849603970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2008/04/contract-verification-in-python.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/116338640849603970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/116338640849603970'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2008/04/contract-verification-in-python.html' title='Contract verification in Python'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-752403488615331958</id><published>2008-04-16T23:08:00.000-07:00</published><updated>2008-04-16T23:09:47.986-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Getting older, getting better and better!</title><content type='html'>Python programming is joy. I was stuck on python 2.3 at my work for long and could not really get chance to explore later versions. Now that I got the opportunity doing re-architecture of the  product I started exploring these. I am more than excited looking at deque, groupby, defaultdict and much more ... Also on top of it there exist excellent python softwares like &lt;a href="http://twistedmatrix.com"&gt;twisted,&lt;/a&gt; &lt;a href="http://sqlalchemy.org"&gt;sqlalchemy&lt;/a&gt;, &lt;a href="http://turbogears.org"&gt;turbogears&lt;/a&gt; makes it even more cool.&lt;br /&gt;It's little pity that the language is stll somewhat less recognized than others. Or there are more hyped languages exist.&lt;br /&gt;&lt;br /&gt;Anyways Python rocks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-752403488615331958?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/752403488615331958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2008/04/getting-older-getting-better-and-better.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/752403488615331958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/752403488615331958'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2008/04/getting-older-getting-better-and-better.html' title='Getting older, getting better and better!'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132100917633479663.post-3524779841206635688</id><published>2008-04-16T23:07:00.000-07:00</published><updated>2008-04-16T23:11:10.772-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>SQLAlchemy elixir: Simple example</title><content type='html'>&lt;span style="font-family:verdana;"&gt;DB Setup&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;[root@localhost ~]# yum -y install postgresql-python \&lt;br /&gt;postgresql postgresql-server&lt;br /&gt;[root@localhost ~]# /etc/init.d/postgresql start&lt;br /&gt;[root@localhost ~]# /etc/init.d/postgresql status&lt;br /&gt;[root@localhost ~]# su - postgres -c "createuser --createdb \&lt;br /&gt;--adduser shon"&lt;br /&gt;[root@localhost ~]# su - shon # normal user&lt;br /&gt;[shon@localhost ]$ createdb test&lt;br /&gt;[shon@localhost ]$ psql test&lt;br /&gt;test=# \q&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Code test_alchemy.py&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;from elixir import *&lt;br /&gt;&lt;br /&gt;metadata.connect("postgres:///test")&lt;br /&gt;&lt;br /&gt;class Movie(Entity):&lt;br /&gt; has_field('title', Unicode(30))&lt;br /&gt; has_field('year', Integer)&lt;br /&gt; has_field('description', Unicode)&lt;br /&gt;&lt;br /&gt;def __repr__(self): return '&lt;/span&gt;&lt;movie&gt;&lt;span style="font-size:85%;"&gt;' % (self.title, self.year)&lt;br /&gt;&lt;br /&gt;metadata.create_all()&lt;br /&gt;&lt;br /&gt;def test1():&lt;br /&gt; m1 = Movie(title="Blade Runner", year=1982)&lt;br /&gt; m2 = Movie(title="Life is beautiful", year=1980)&lt;br /&gt; objectstore.flush()&lt;br /&gt; print m1&lt;br /&gt;&lt;br /&gt;def test2():&lt;br /&gt; print Movie.select()[0]&lt;br /&gt;&lt;br /&gt;test1()&lt;br /&gt;# test2()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132100917633479663-3524779841206635688?l=pythonik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pythonik.blogspot.com/feeds/3524779841206635688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pythonik.blogspot.com/2008/04/sqlalchemy-elixir-simple-example.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/3524779841206635688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132100917633479663/posts/default/3524779841206635688'/><link rel='alternate' type='text/html' href='http://pythonik.blogspot.com/2008/04/sqlalchemy-elixir-simple-example.html' title='SQLAlchemy elixir: Simple example'/><author><name>S H O N</name><uri>http://www.blogger.com/profile/16424452620231038473</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_IgPaZdg3-oA/RnEh6dt-ioI/AAAAAAAAAco/KlD-_GqrzHY/s320/buggie.png'/></author><thr:total>0</thr:total></entry></feed>
