pelican增加自定义jinja template filters

pelican官方文档没有显式的指明应该如何自定义jinja template filters.

在制作标签云的时候,不想写复杂的javascript,更不想又import一份javascript进来,所以决定自己搞一个比较简单的标签云

pelican默认的tag排序比较简单,为了能有比较“云”的感觉,决定对tag加个随机排序

查了Jinja的文档,没有随机排序的filter。由于我使用了virtualenv,所以最简单粗暴的解决方案是直接修改了Jinja的源码,添加了随机排序的功能

不过对于稍微有些“洁癖”的好,这样改后,心理上非常难受,决定到pelican社区,看看是否有幸添加个patch

当然,更幸运的是在github找到了此commit:

https://github.com/getpelican/pelican/pull/96

原来有个JINJA_FILTERS的设置,那一切就好办了, 增加自定义模块jinja_filters.py

import random

def shuffle( value ):
    """ Jinja template …
more ...

配置Bind使用MySQL dlz模式

安装MySQL/Bind with dlz

略过,bind dlz安装,只需在编译的时候增加 --with-dlz-mysql 选项即可。

创建 MySQL 数据库

根据自己的需求创建即可,如使用如下命令创建一个名为 dns 的数据库:

CREATE DATABASE dns DEFAULT CHARSET UTF8;

使用 use dns 切换进 dns 数据库后,使用如下命令创建一张 dns_records 表:

CREATE TABLE `dns_records` (
`zone` varchar(255) NOT NULL,
`host` varchar(255) NOT NULL,
`type` varchar(12) NOT NULL …
more ...

Django multiple select option with title

from django import forms
from django.utils.encoding import force_unicode
from django.utils.html import escape, conditional_escape

class SelectMultipleWithTitle(forms.SelectMultiple):
    """ multiple select optihon with title """
    def render_option(self, selected_choices, option_value, option_label):
        option_value = force_unicode(option_value)
        selected_html = (option_value in selected_choices) and u' selected="selected"' or ''
        return u'<option value="%s"%s …
more ...

install Facebook scribe on Debian Squeeze

系统:

Debian Squeeze 6.0 amd64

thrift: 0.8.0

hadoop: 0.20.2 cdh3 hadoop-0.20_0.20.2+923.142

scribe: git current version

首先安装各种库,包括但不局限于:

python-dev maven2 ant sun-java6-jre sun-java6-jdk bison flex gcc make autoconf libevent-dev libboost-all-dev git-core

之后:

sudo update-alternatives --set java /usr/lib/jvm/java-6-sun/jre …

more ...

Windows OpenVPN GUI记住用户名和密码

日常工作中经常使用VPN,由于Server端要求进行用户名和密码校验,在第一次链接的时候,OpenVPN Client会弹出输入用户名和密码的窗口。 如果网络比较稳定的情况下,这个还没什么问题,网络不稳定的时候,每次弹开,都会弹出重新验证的窗口,加上我自己的密码比较长,不胜其烦

more ...

Debian系统添加全局根证书(CNNIC)

鉴于CNNIC的证书默认被不信任,导致了应用在访问某些使用cnnic证书的ssl站点时,请求失败。本篇文章介绍了如何将CNNIC CA添加至Debian操作系统全局根证书。

more ...