Mac/Debian 环境配置 PostgreSQL/PostGIS/GeoDjango

PostgreSQL Debian 安装

postgres 有官方提供的源 <a>https://www.postgresql.org/download/linux/debian/</a>。以 Debian 7 为例,在 /etc/apt/source.list 文件中添加

deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main

安装 .. code-block:: shell

# aptitude install postgresql

# aptitude install python-dev # aptitude install libpq-dev

修改配置允许非 localhost 访问 postgresql …

Continue Reading →

在 python 类范围内使用装饰符

装饰符函数的传入变量为:使用装饰符的函数(目标函数)。其本质是:在调用目标函数之前,插入调用装饰符函数,然后由装饰符函数调用目标函数。

使用的优势:

  • 剥离高度重复,同时又需要共享变量(一般是局部变量,如果扩展变量作用域会引发更多麻烦)的代码
  • 便于函数扩展行为切换
  • 将一些通用行为(代码片段)做成装饰符方便使用和在需求发生变化时随时移除

网上装饰符的文章很多,但是在类范围内使用的很少;所以范例代码如下:

class dater(object):
    """"""
    def __init__(self, year=None, month=None, day=None):
        """Constructor"""
        if year == None and month == None and day == None:
            self.SetToday()
        return

    def get_self_date(func):
        """@"""
        def __call__ …
Continue Reading →

Convert between python datetime and unix timestamp

代码

import datetime, calendar, time

def timestamp2datetime(timestamp):
    return datetime.datetime.fromtimestamp(timestamp)

def date2timestamp(date):
    """local time"""
    return calendar.timegm(date.timetuple())

def date2timestamp_utc(date):
    """utc time"""
    return int(time.mktime(date.timetuple()))

def datetime2timestamp(year, month, day):
    return calendar.timegm(datetime.datetime(year, month, day).timetuple())

def time2timestamp …
Continue Reading →

一个简洁的基于 namedtuple 的 Python 枚举实现

查找比对的时候是数值类型,性能还是很不错的

from collections import namedtuple

def MakeEnum(enumList):
    return namedtuple('Enum', enumList)._make(range(len(enumList)))

USER_AT = MakeEnum(['noLogined', 'logined', 'hall', 'room'])


print USER_AT, type(USER_AT)

print USER_AT.noLogined, type(USER_AT.noLogined)

print USER_AT._fields[USER_AT.noLogined], type(USER_AT._fields[USER_AT.noLogined])

输出为

Enum(noLogined=0, logined=1, hall …
Continue Reading →

Python map class/类结构体 相互转换

#!/usr/bin/env python
#coding=utf-8

#----------------------------------------------------------------------
def obj2map(obj):
    """"""
    return vars(obj)

########################################################################
class obj:
    def __init__(self):
        self.a = 1
        self.b = 2

########################################################################
class map2struct:
    def __init__(self, **entries):
        self.__dict__.update(entries)

o = obj()

print '~~~~~~~~~~~~~~ obj -> map ~~~~~~~~~~~~~~'
m = vars(o)
print type(m), m

print '~~~~~~~~~~~~~~ map -> obj ~~~~~~~~~~~~~~'
o2 = map2struct …
Continue Reading →

Debian 使用 backports 机制在 stable 发布中安装 testing 发布中软件

当前 Debian V7.6 内置的 mongodb 未 v2.4 版本, v2.6 有一个很不错的 Aggregation Pipeline 特性。如果想使用 Debian 自己的包管理仓库就需要使用 backports 机制使用 testing 中的包 (mongodb v2.6),方法如下

首先在 /etc/apt/sources.list 添加

deb http://mirrors.163.com/debian wheezy-backports main contrib non-free
deb-src http://mirrors.163.com/debian wheezy-backports …
Continue Reading →

使用 apache2 作为 svn 仓库的访问接口

安装 apache 的 svn 支持

aptitude install libapache2-svn

svn.apache.conf 配置文件内容

<Location /svnroot>
  DAV svn
  SVNParentPath /home/rex/svnroot

  # Authentication: Basic
  AuthName "Subversion repository"
  AuthType Basic
  AuthBasicProvider file
  AuthUserFile /home/rex/trac.htpasswd

  # Authorization: Authenticated users only
  Require valid-user

  # Authorization: Path-based access control; authenticated users only
#  AuthzSVNAccessFile /path/to …
Continue Reading →

virtualbox 4.3.10 用 Mac OSX 做宿主 Linux 做客户机时无法装载共享文件夹问题的修复

virtualbox 4.3.10 用 Mac OSX 做宿主 Linux 做客户机时无法装载共享文件夹,提示如下

mount: wrong fs type, bad option, bad superblock on hunterServer,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)
       In some cases useful info …
Continue Reading →

Debian 3.0 安装笔记

Debian都出3.1r0了,以前一直放在桌面没来得及整理的笔记多数已经没有用了.放在这儿做个纪念好了

#
# Replace /etc/apt/sources.list with this file will change apt source to Debian Mirror on CN99
#
deb http://debian.cn99.com/debian stable main non-free contrib
deb http://debian.cn99.com/debian-non-US stable/non-US main contrib non-free
deb http://debian.cn99.com/debian proposed-updates main …
Continue Reading →

网站终于恢复

前段时间因为一个遗忘了的MP3文件被 Baidu 搜录;导致网站月流量耗尽,现已恢复正常.

Continue Reading →
“Stay hungry, Stay foolish.”