freebsd 有惊无险
May 20th, 2009 by song

安装mencoder的时候
说 /lib/libc.so.7版本不一样
mv /lib/libc.so.7 /lib/libc.so.7.bak
索性就用另外一个替换 刚替换就完蛋
执行任何命令出现
/libexec/ld-elf.so.1: Shared object “libc.so.7″ not found,required by

搞了半天
啥都用了 启动盘Ubuntu
Freebsd启动盘
google baidu 啥都用上没辙

最后在freebsdchina上找到一个和我一样的搬石头砸自己脚的家伙

delphij 的一个建议 /rescue/mv /lib/libc.so.7.bak /lib/libc.so.7
搞定 冷汗一身啊

写了个分页类代替 django的分页类 采用推进法无需count总数
May 14th, 2009 by song

其优势就是无需 count 以下总记录数

直接采用推进形式在百万记录及高负载有一定作用
但是只能上下推进 没更多页选择

paginator.py
[code]class InvalidPage(Exception):
   pass

class PageNotAnInteger(InvalidPage):
   pass

class EmptyPage(InvalidPage):
   pass
class Paginator(object):
   def __init__(self,object_list,per_page):
       self.object_list = object_list
       self.per_page = per_page
   def page(self,number=1):
       self.cur_pages = number
       if self.cur_pages < 1 :
           number = 1
       number = (int(number)-1)*int(self.per_page)
       max = int(number)+int(self.per_page)+1
       data = self.object_list[number:max]
       num = data.__len__()
       data = data._result_cache
       # if next
       if num > int(self.per_page):
           data = data[0:-1]
           nextpage = abs((int(number)+int(self.per_page))/int(self.per_page))+1
       else:
           nextpage = None
       # if prev
       if int(number) > 0:
           if int(number) < int(self.per_page):
               prevpage = 0
           else:
               prevpage = abs(int(int(number)-int(self.per_page))/int(self.per_page))+1
       else:
           prevpage = None
       return Page(data,nextpage,prevpage,self)
   def _get_num_pages(self):
       return self.cur_pages
   num_pages = property(_get_num_pages)
   def _get_num_per_page(self):
       return self.per_page
   per_pages = property(_get_num_per_page)
class Page(object):
   def __init__(self,object_list,next_page,prev_page,paginator):
       self.object_list = object_list
       self.next_number = next_page
       self.previous_number = prev_page
       self.paginator = paginator
   def has_next(self):
       if self.next_number is None:
           return False
       else:
           return True
   def has_previous(self):
       if self.previous_number is None:
           return False
       else:
           return True
   def next_page_number(self):
       return self.next_number

   def previous_page_number(self):
       return self.previous_number
[/code]

豆瓣的架构PDF
May 12th, 2009 by song

豆瓣的架构PDF

不知道在哪来的豆瓣的架构PDF,
有兴趣的看看
不过看了下挺好的!
[file]attachment/1242109569_0.rar[/file]

SIDEBAR
»
S
I
D
E
B
A
R
«
»  Substance:WordPress   »