Skip to content

Instantly share code, notes, and snippets.

zhangsen /
Created Sep 7, 2011
# This piece of code is in the public domain.
# <>
from datetime import datetime
def get_age(date):
'''Take a datetime and return its "age" as a string.
The age can be in second, minute, hour, day, month or year. Only the
zhangsen /
Created Jun 17, 2012
0-1 knapsack with exact total weight and minimal total value
# weight: cable length
# total weight: target span
# value: 1 for each cable
# want minimum number of cables, i.e. minimum total value
def knapsack_01_exact_min(weights, values, W):
# 0-1 knapsack, exact total weight W, minimizing total value
n = len(weights)
View simple-template.rb
# Rails template: rspec, guard, spork, libnotify, capybara
# $ rails -T -m <path-to-me>
gem_group :development, :test do
gem 'rspec-rails'
gem 'guard-rspec'
gem 'guard-spork'
gem 'spork'
zhangsen / gist:3082270
Created Jul 10, 2012
braindead downloader
View gist:3082270
import threading, sys
import urlparse, httplib
is_done = False
class Downloader(threading.Thread):
def __init__(self, url, buf, n, semin, semout):
self.buf = buf
self.bufn = n
self.semin = semin
zhangsen / import.rb
Created Jun 14, 2012 — forked from dnagir/import.rb
Import a blogger archive to jekyll (octopress version, allows quotes in titles)
View import.rb
require 'rubygems'
require 'nokogiri'
require 'fileutils'
require 'date'
require 'uri'
# usage: ruby import.rb my-blog.xml
# my-blog.xml is a file from Settings -> Basic -> Export in blogger.
data = ARGV[0]
zhangsen / android-unlock.c
Created May 13, 2012
number of patterns of android unlock screen
View android-unlock.c
#include <stdio.h>
int visited[9] = {0};
int nsteps = 0;
/* alternate can_connect */
int max(int x, int y)
return x >= y? x: y;
zhangsen / 2-devel
Created Dec 2, 2011
/etc/conary/system-model head
View 2-devel
# /etc/conary/system-model for fl:2-devel
search '[~!bootstrap,~buildtests,~!cross,desktop,~!dom0,~!domU,~!gcc.core,~grub.static,ipv6,~kernel.debugdata,krb,ldap,pam,~!pie,readline,ssl,tcl,tk,~!vmware,~!xen is: x86(i486,i586,i686,sse,sse2) x86_64]'
install group-gnome-dist
zhangsen / gist:1421895
Created Dec 2, 2011
pkgs out of group
View gist:1421895
zhangsen / gist:1421246
Created Dec 2, 2011
analyze fl packages
View gist:1421246
find * -type f ! \( -name '*.recipe' -o -name '*.patch' \) | while read f; do if ! file $f | grep -qi 'text\|xml\|empty'; then echo $f; fi; done > /tmp/files.bin
cat /tmp/files.bin | while read ln; do pkg=`echo "$ln" | cut -d/ -f1`; f=`echo "$ln" | cut -d/ -f2`; grep -q "$f" $pkg/$pkg.recipe && echo $ln; done > /tmp/files.bin.directly-referenced
diff -u /tmp/files.bin.directly-referenced /tmp/files.bin | grep '^+[^+]' | cut -c2- > /tmp/files.bin.un-refed
xargs -a /tmp/files.bin -d '\n' du -s | sort -nr > /tmp/files.bin-sizes-no-human
du -s * | sort -nr > /tmp/pkgs.size
cat /tmp/files.bin | grep -v 'png\|jpg\|svg\|vimrc' > /tmp/files.exclude-pics