Jan 22

虽然很想吃芝麻糊,但是始终不知道把屋里的黑芝麻做成芝麻糊,今天从百度查到了,赶快分享一下!

原料:
1、主料:黑芝麻、黑米、糯米。
2、配料:根据个人喜好和来源任意选择加入,小米、薏米、玉米、黑豆、红豆、黄豆、淮山以及其它五谷杂粮。
3、调料:白糖

制作方法:一次可以做出吃许多天的成品。

(1)准备原料:主料不可以缺少。黑芝麻多放一点,以打出来的粉末偏黑色为宜。黑米是滋补佳品。糯米不能缺,起黏糊的作用。配料按自己的喜好和货源情况添加,品种多一点营养更丰富。比例随自己的喜好,喜欢吃的,多放一点。如果想用开水冲着吃的话,最好先把原料炒熟,然后再粉碎。

(2)粉碎:可以用任何方法(如粉碎机,碾子,石磨,甚至用酒瓶子压),将主料和配料粉碎成粉末。如果颜色偏白,就多加一点黑芝麻。粉碎完毕,产品就做好了,装瓶待吃。

(3)调制:嘴馋的时候,每个人约三勺,加半勺白糖,适量水。最好用铝锅用慢火煮,不停地用勺搅动,很快就越来越稠。稠到一定程度就可以解馋了。偷懒的人用开水冲服也可以(但粉碎前要将原料抄熟)。

(4)用途:营养丰富,可以解馋,余味无穷。吃完后还会“猫的干活”,舔干净为快。眼睛还会盯着别人碗里。选择适当的配料,还有其它功效。如黑芝麻有养颜保健和使白发变黑的功效,黑芝麻中的维生素E非常丰富,可延缓衰老,并有润五脏,强筋骨、益气力等作用;黑米、红豆可以瘦身;薏米可以活血养颜,富含膳食纤维的薏米还有预防高血脂、高血压、中风及心血管疾病的功效等等。

Jan 18

发现 Django i18n 的一个中文支持的 bug

如果你的浏览器的 locale 只设置了 zh-cn 的话识别中文应该是没问题的,但是如果有多个 locale,僻如我一次设置了 zh-cn, en-us, de-de,那么中文就不可能被识别出来了。

要了解这个问题,我们先看下这段代码,在 trans_real.py 里面。
主要看一个名为 get_language_from_request 的函数。
从里面打开可以看到程序的基本流程。

  1. 检测 session 中有没有设置过 django_language,如果支持这个语言,那么就返回语言代码
  2. 检测 cookies 里面有没有 django_language,如果支持这个语言,那么就返回语言代码
  3. 最后就是要从 HTTP 头中的 ACCEPT-LANGUAGE 中分析语言。就是在这一步的时候,对中文的支持就存在 bug 了。
  4. 如果都无法识别,那么从返回默认的 settings.LANGUAGE_CODE

为什么会出现多个 locale 无法识别中文的情况呢?我们来看下面的关于分析 ACCEPT_LANGUAGE 的代码:

for lang, unused in parse_accept_lang_header(accept):
    if lang == '*':
        break

    # We have a very restricted form for our language files (no encoding
    # specifier, since they all must be UTF-8 and only one possible
    # language each time. So we avoid the overhead of gettext.find() and
    # look up the MO file manually.

    normalized = locale.locale_alias.get(to_locale(lang, True))
    # 这一步会将浏览器的 locale 字符串标准化,僻如 zh-cn -> zh_CN.gb2312
    if not normalized:
        continue

    # Remove the default encoding from locale_alias
    normalized = normalized.split('.')[0]
    # 这里就把上面的的 zh_CN.gb2312 变成 zh_CN
    if normalized in _accepted:
        # We've seen this locale before and have an MO file for it, so no
        # need to check again.
        return _accepted[normalized]

    for lang in (normalized, normalized.split('_')[0]):
        # 这一步让 lang 成为 (zh_CN, zh),进而匹配 supported 这个支持的语言集合。
        # 这是出错的关键,因为无论 zh 还是 zh_CN 都是无法匹配到的。
        # 在 supported 里面只支持 zh-cn 和 zh-tw,对于 zh 和 zh_CN 是无法匹配的。
        if lang not in supported:
            continue
        langfile = os.path.join(globalpath, lang, 'LC_MESSAGES',
                'django.mo')
        if os.path.exists(langfile):
            _accepted[normalized] = lang
        return lang
return settings.LANGUAGE_CODE
Jan 10

Software design and implementation should be a joyous art, a kind of high-level play. If this attitude seems preposterous or vaguely embarrassing to you, stop and think ask yourself what you’ve forgotten. Why do you design software instead of doing something else to make money or pass the time? You must have thought software was worthy of your passion once…

今天读《The Art of UNIX Programming》,很精彩的一段话。当你从事软件开发工作一段时间之后,是不是感觉背离了最初的梦想呢?

Jan 09

今天打开了 lighttpd 得 mod_status,发现居然 fd-Event-Handler 默认用的是 Poll,大吃了一惊。还以为他怎么也会根据平台使用 kqueue 呢。网上搜了一下,找到了配置的方法,不需要重新编译只需要在 conf 里面配置一下。

server.event-handler = “freebsd-kqueue”

当然还可以选择其他,详细的参考 lighttpd wiki 吧。

Jan 07

你能在做梦的时候知道自己做梦吗?

这是一个很有意思的问题,或许有人有这样的经历。知道自己在做梦,于是通过自己的意识去控制梦的内容,譬如让自己飞起来,做任何自己想做的事情。

其实关于这样的经历确实是存在的,这就是称为 Lucid Dreams 的东东,我们尚且可以称为“醒梦”。Sigmund Freud 曾经解释过这种现象,统计过至少有半数的成年人在一生中至少会经历一次这样的梦。而且,经过练习,自由的产生 Lucid Dreams 的可能性也是很大的。

为什么会产生 Lucid Dreams?

要回答这个问题,我们必须先了解 Lucid Dreams 产生的环境,这是一个你能够自己控制的梦,你可以做你想做的任何事情,所以,Lucid Dreams 的唯一限制就是你的想像力,你不可能梦见超出你想像的东西。当然了,除此之外,还有一些其他比较常见的原因可以产生 Lucid Dreams。譬如希望体验现实中没有的刺激与惊险,希望从恶梦中挣脱出来,希望模拟现实中的某些情景等等。举个例子,你是AV女优的fans,如果你在梦里梦见她们了,并且你的意识已经可以控制你的梦境的了,你会如何……这在一定程度上促成了 Lucid Dreams 的发生。

是否有可能直接产生 Lucid Dreams 呢?

那是肯定的,但是你需要加以训练。这绝对不是什么伪科学,一定比 CCTVx 要真实的多。这就好比是一项技能,你需要不断的练习。

那么首先你需要尝试 Dream Recall,如果你每天做梦,你能记住多少梦里面的内容?恐怕不加以练习的话,醒过来就忘了吧。关于梦的情景不是一种记忆,因为他是不真实的,会在很短时间内忘记,这就是为什么醒来之后需要迅速去回忆你梦里的事情,否则很快就忘记了。

不管谁都不可能稳定的产生 Lucid Dream,但是 Dream Recall 能力强的朋友可以有比较大的成功率。为什么呢,因为你需要了解梦中的一些线索和暗示。继续之前的例子,你都梦见AV女优了,你应该明白你的意图是什么了,知道这是自己的梦。这就是一种暗示,如果你不知道这是你的梦,你一定不干干什么,如果你知道这是梦,那么主动权就在你的手里了……

其实理解一下睡眠的几个阶段,可以让你更好的练习 Dream Recall,做梦通常发生在REM阶段,现象是快速的眼皮跳动。大概会持续8-15分钟,这之后大脑会自动清除这一阶段的记忆,这也就是大多数人记不住梦境的原因。这就是说如果你在深夜做梦通常无法回忆起来,但是清晨做梦比较容易记忆,因为早上很可能在REM阶段被打断,人就醒来了,这部分记忆还没来得及被清除,你就可以回忆出来。所以说一般睡眠质量不好,容易半夜醒来的人,或者说是做恶梦的醒来的人对梦里的情况记的比较清楚。

参考