Skip to content

Instantly share code, notes, and snippets.

View anandology's full-sized avatar

Anand Chitipothu anandology

View GitHub Profile
@anandology
anandology / format_skype_text.py
Created June 3, 2011 10:01
Script to format the conversation text copied from skype window for better readability.
"""Script to format the conversation text copied from skype window for better readability.
"""
import sys
import re
import web
re_timeline = re.compile("^([^/]* )?((?:\d\d/\d\d/\d\d )?\d\d?:\d\d [AP]M) *$")
def parse_text(text):
lines = text.strip().splitlines()
#! /usr/bin/env python
import json
import urllib
def jsonget(url):
text = urllib.urlopen(url).read()
return json.loads(text)
def get_edition(key):
url = "http://openlibrary.org" + key + ".json"
@anandology
anandology / author-keys_2012-01-31.csv
Created February 22, 2012 16:42 — forked from bencomp/author-keys_2012-01-31.csv
Identifiers found in Open Library Edition records, keys found in all records by record type
key records
_date 1
alternate_names 18975
authors 21
bio 9291
birth_date 1240612
body 1
by_statement 10
comment 12165
contributions 1
@anandology
anandology / liveweb.py
Created March 21, 2012 03:02 — forked from rajbot/liveweb.py
wayback-python prototyping
"""Prototype of liveweb proxy.
"""
def get_recent_crawl_location(url):
"""Looks at memcache to find the location of the recent crawl of the given URL.
"""
return memcache_client.get(md5sum(url))
def fetch(url):
"""Fetches a url from liveweb.
@anandology
anandology / 00-Protocol
Created March 22, 2012 05:54
Liveweb Proxy Design
Liveweb is a http proxy.
Request:
GET http://www.example.com/foo.html HTTP/1.1
Header1: Value1
Header2: Value2
Response:
@anandology
anandology / datetime_racecondition.py
Created May 9, 2012 10:33
Program to demonstrate a race condition in datetime module
"""I suspect that there is a race condition in datetime module.
When I ran the following code in a multi-threading application:
datetime.datetime.strptime('20120509100335', "%Y%m%d%H%M%S")
I've noticed the following error in the log.
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/threading.py", line 522, in __bootstrap_inner
@anandology
anandology / count.py
Created May 24, 2012 07:36
Code to demonstrate issues of using iterators and generators in multi-threaded applications
import threading
def count():
i = 0
while True:
i += 1
yield i
class Counter:
def __init__(self):
import sys
# Uses httplib2 by default.
# Pass "--requests" command-line arg to use requests.
if "--requests" in sys.argv:
import requests
requests.get("https://auth.hasgeek.com/").content
else:
import httplib2
@anandology
anandology / map.rkt
Created September 4, 2012 13:14
Implementation of map function in Racket
#lang racket
; Tail-recursive implementation of map
(define (map f xs)
(define (map-iter xs result)
(if (null? xs)
(reverse result)
(map-iter (cdr xs) (cons (f (car xs)) result))))
(map-iter xs '()))
@anandology
anandology / gist:3929961
Created October 22, 2012 06:24
BSNL DNS servers are crappy
# BSNL
# Primary DNS Server: 218.248.245.1
# Secondary DNS Server: 218.248.255.141
#
# In this case the secondary DNS server looks unhealthy.
# Taking too long to respond or failing to respond.
$ time dig @218.248.255.141 archive.org
; <<>> DiG 9.6-ESV-R4-P3 <<>> @218.248.255.141 archive.org