MinGW编译mplayer

参考自:
http://www.mplayerhq.hu/MPlayer/contrib/win32/MPlayer-MinGW-Howto.txt

第一步: Mingw, MSYS 和 MSYS Developer Tool Kit

去这里下载:
http://www.mingw.org/download.shtml

第二步: directx headers

这里:
http://www.mplayerhq.hu/MPlayer/releases/win32-beta/contrib/dx7headers.tgz

解压缩到你的include目录 (c:\mingw\include)
比如,在msys shell里
tar -xvvzf dx7headers.tgz
mv *.h c:/mingw/include

第三步:ogg, vorbis and theora

去这里:
Go to http://downloads.xiph.org/releases/
在ogg, vorbis and theora目录里下载这三个ogg是必需的,后两个可选。

tar -xvvzf libogg-1.1.2.tar.gz
cd libogg-1.1.2

编译libogg:
./configure --prefix=c:/mingw --disable-shared
make
make install
然后回到msys home,编译vorbis
cd ..
tar -xvvzf libvorbis-1.1.1.tar.gz
cd libvorbis-1.1.1
./configure --prefix=c:/mingw --disable-shared
make
make install
cd ..
和theora
tar -xvvzf libtheora-1.0alpha4.tar.gz
cd libtheora-1.0alpha4
./configure --disable-encode --prefix=C:/mingw --disable-shared
make
make install
cd ..

第四步:freetype (osd字体渲染)

下载libiconv:
http://www.gnu.org/software/libiconv/
编译:
tar -xvvzf libiconv-1.9.1.tar.gz
cd libiconv-1.9.1
./configure --prefix=c:/mingw --disable-shared
make
make install
cd..

下载freetype2:
http://sourceforge.net/project/showfiles.php?group_id=3157
编译
tar -xvvjf freetype-2.1.9.tar.bz2
cd freetype-2.1.9
./configure --prefix=c:/mingw --disable-shared
make
make install
cd

第五步:zlib, libregif, libpng, libjpeg

源码在这里:
http://www.gzip.org/zlib/
http://armory.nicewarrior.org/projects/libregif/
http://sourceforge.net/project/showfiles.php?group_id=5624
http://www.ijg.org/
编译他们:
tar -xvvzf zlib-1.2.1.tar.gz
cd zlib-1.2.1
./configure --prefix=c:/mingw
make
make install
cd ..

tar -xvvzf libpng-1.2.8-config.tar.gz
cd libpng-1.2.8-config
./configure --prefix=c:/mingw --disable-shared
make
make install
cd ..

tar -xvvzf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=/mingw/ --enable-static
make
cp .libs/libjpeg.a c:/mingw/lib/
cp jpeglib.h jconfig.h jmorecfg.h c:/mingw/include/
cd ..

tar -xvvzf libregif-4.1.6.tar.gz
cd libregif-4.1.6
./configure --prefix=c:/mingw
make
make install
cd..

第六步: lame, xvid and x264

下载nasm源码:
http://sourceforge.net/project/showfiles.php?group_id=6208
编译
tar -xvvzf nasm-0.98.38.tar.gz
cd nasm-0.98.38
./configure --prefix=c:/mingw
make
mkdir c:/mingw/man/man1
make install
cd

装lame:
http://lame.sourceforge.net/download/download.html
tar -xvvzf lame-3.96.1.tar.gz
cd lame-3.96.1
./configure --prefix=c:/mingw --disable-shared --disable-decoder
make
make install
cd

装xvid http://www.xvid.org/downloads.html
tar -xvvzf xvidcore-1.0.3.tar.gz
cd xvidcore-1.0.3/build/generic
./configure --prefix=c:/mingw --disable-shared
make
make install
mv c:/mingw/lib/xvidcore.a c:/mingw/lib/libxvidcore.a
cd ..

然后是x264
这里有二进制包:
http://subversion.tigris.org/project_packages.html#binary-packages
解压缩到$PATH/bin比如: c:/mingw/bin
或者取源码:
svn co svn://svn.videolan.org/x264/trunk x264
cd x264
./configure --prefix=/mingw --enable-avis-input --enable-pthread
make
make install
cd ..

第七步: 可选,live.com rtsp 流媒体
这里有代码
http://www.live.com/liveMedia/public/
编译
tar -xvvzf live.2005.08.09.tar.gz
cd live
genMakefiles mingw
make
cd ..

第八步:MPlayer
cvs checkout或者daily snapshot皆可

在msys home下:
checkout mplayer
cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer login
cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer co -P main
密码直接回车。
然后checkout ffmpeg
cd main
cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg login
cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -Pd libavcodec ffmpeg/libavcodec
cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -Pd libavformat ffmpeg/libavformat
cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -Pd libavutil ffmpeg/libavutil

好了,准备就绪,编译mplayer
cd main
./configure --enable-runtime-cpudetection --codecsdir=codecs --enable-static --with-livelibdir=/home/username/live
make

一切顺利的话,万能的mplayer.exe就出现了,YAY!
如果嫌自己土制的mplayer不够牛,推荐http://mulder.at.gg/的build

ffmpeg为 老款 ipod 转码

新的都支持H264了,网上一大堆信息,我那个老款的只能这样转...

#!/bin/sh

ffmpeg -i "$1" -f mp4 -vcodec libxvid -maxrate 720k -b 720k -qmin 3 -qmax 5 -bufsize 10240 -g 300 -acodec libfaac -ar 44100 -ab 192k -s 320x240 -aspect 4:3 $2

tiny screan capture script using scrot

# !/bin/sh
# take a screenshot with scrot
# usage: kacha
scrot '%Y-%m-%d_%s_scrot.jpg' -e 'mv $f ~/pic/' -d 5 -q 60 -m
ls -lh ~/pic/

read file - the basic

#include

#define BUFSIZE 1024

void usage(char *cmd)
{
  printf("Usage: %s \n", cmd);
  printf("If your file is at /home/sudha/documents/names.txt, then the command will be: \n");
  printf("%s /home/sudha/documents/names.txt\n", cmd);
}

int main(int argc, char *argv[])
{
  FILE *fp;

  if (argc < 2)
  {
      usage(argv[0]);
      exit(0);
  }

  fp = fopen(argv[1], "r");
  if (fp == NULL)
  {
     usage(argv[0]);
     exit(0);
  }

  printf("Contents of %s are: \n", argv[1]);

  while (!feof(fp))
  {
     char buf[BUFSIZE] = {0};

     fread(buf, sizeof(char), BUFSIZE, fp);
     printf("%s", buf);
  }

  printf("End of the file\n");

  fclose(fp);
}

批量改文件名

虽然身在windows,但是利用gnuwin32还是有不少好用的cli util可用:
gnuwin32: http://gnuwin32.sourceforge.net/

比如,最近从VeryCD上下片子比较多,要批量去掉文件名中恼人的中文..

夺命岛.Harper's.Island.SXXEXX.Chi_Eng.HDTVrip.720X396-YYeTs人人影视.rmvb 提取:
ls -1 *.rmvb | sed "s/夺命岛.\(.*\).Chi\(.*\)视\(.*\).rmvb$/""&"" ""\1.rmvb""/" | xargs -n 2 mv


英雄.Heroes.SXXEXX.Chi_Eng.HDTVrip.720X396-YYeTs人人影视.avi 提取
ls -1 *.avi | sed "s/英雄.\(.*\).Chi\(.*\)视\(.*\).avi$/""&"" ""\1.avi""/" | xargs -n 2 mv


多好啊!Windows里面也可以玩熟悉的cli工具们!!

A sample python main function

# -*- coding: utf-8 -*-
"""
A sample of main function
to demostrate usage of getopt.
"""

import sys
import getopt

class Usage(Exception):
  def __init__(self, msg):
    self.msg = msg

def main(argv=None):
  if argv is None:
    argv = sys.argv
  try:
    try:
      opts, args = getopt.getopt(argv[1:], "h", ["help"])
    except getopt.error, msg:
       raise Usage(msg)
  # display help msg
  except Usage, err:
    print >>sys.stderr, err.msg
    print >>sys.stderr, "for help use --help"
    return 2

  # parse options
  for o, a in opts:
    if o in ("-h", "--help"):
      print __doc__
      sys.exit(0)
  # parse arguments
  for arg in args:
    parse(arg) # parse() is defined elsewhere

  doRealThings(args)
    
def parse(arg):
  print 'Parsing option: ' + arg

def doRealThings(args):
  print 'Now do the real things.'

if __name__ == "__main__":
  sys.exit(main())

Mutt settings for multiple IMAP mail.

Mutt now supports remote mail Dirs. That means IMAP mails can be easily accessed.
I use folder-hook to access multiple imap mails. But only one mail is to be loaded with directories.
If you need to have multiple full-featured imap mailbox folders or filtering, consider some IMAP converter to treat them with procmail.

Here is what that part of muttrc looks like:

## main gmail defaults
set imap_user = "mail_1@gmail.com"
set imap_pass = "XXXXXX"
set smtp_url = "smtp://mail_1@smtp.gmail.com:587/"
set smtp_pass = "XXXXXX"
set from = "mail_1@gmail.com"
set realname = "Mea Culpa"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set record="+[Gmail]/Sent Mail"
set postponed="+[Gmail]/Drafts"

## all gmails
mailboxes 'imaps://mail_1@gmail.com@imap.gmail.com:993/INBOX' \
'imaps://mail_2@gmail.com@imap.gmail.com:993/INBOX'

#folder-hook . 'unset imap_user; unset imap_pass; unset tunnel'
folder-hook imaps://mail_1@gmail.com@imap.gmail.com:993 ' \
set from="mail_1@gmail.com" \
realname = "mail_1" \
imap_user="mail_1@gmail.com" \
imap_pass="XXXXXX" \
smtp_url="smtp://mail_1@smtp.gmail.com:587" \
smtp_pass = "XXXXXX" \
spoolfile = "+INBOX" \
record="+[Gmail]/Sent Mail" \
postponed="+[Gmail]/Drafts"'

folder-hook imaps://mail_2@gmail.com@imap.gmail.com:993 ' \
set from="mail_2@gmail.com" \
realname = "mail_2" \
imap_user="mail_2@gmail.com" \
imap_pass="XXXXXX" \
smtp_url="smtp://mail_2@smtp.gmail.com:587" \
smtp_pass = "XXXXXX" \
spoolfile = "+INBOX" \
record="+[Gmail]/Sent Mail" \
postponed="+[Gmail]/Drafts"'

...

Gentoo 下第三方TTF 字体安装

首先有空间的话,建议安装所有portage的字体:
# eix -C media-fonts | xargs emerge
其他渠道获得的字体,以youyuan字体为例:

1. 建立font目录,存放字体文件

portage里字体一般装到:
/usr/share/fonts
KDE/Gnome之类wm的util一般把字体装到:
/usr/local/share/fonts


我个人选择找个第三路径放;
# mkdir /usr/X11R6/lib/X11/fonts && cd /usr/X11R6/lib/X11/fonts
# mkdir ms && cd ms
# cp /path/to/downloaded/*.ttf .
# ls
youyuan.ttf
2. 生成scale和dir文件
# ttmkfdir > fonts.scale
# mkfontdir
# ls
youyuan.ttf fonts.dir fonts.scale
3. 安装字体
# xset +fp /usr/X11R6/lib/X11/fonts/ms/
# xset fp rehash

个人习惯用startx起X, 不喜欢折腾xorg.conf,而是用.xinitrc .Xmodmap之流捣鼓X...

Gentoo Kernel 升级之懒人做法

genkernel是很方便的脚本集,可以帮助完成一些无意义的简单劳动,
我们只要集中精力在内核配置上就是了。

1. 同步,更新genkernel

#emerge --sync && emerge genkernel

2. 选内核

#eselect kernel list
#eselect kernel set X

3. 提取当前内核配置

#zcat /proc/config.gz > /usr/src/config
这个文件任何gentoo安装媒体的内核都会生成,没这个config.gz的可以在以下内核配置中打开。
General setup --->[*] Kernel .config support[*] Enable access to .config through /proc/config.gz
可以检查是否打开了这个配置:
cat /path/to/your/config | grep -i ikconfig
输出结果应为:
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

4. 懒人genkernel
这里只用了genkernel功能的一小部分,让它帮我们写grub.conf,设splash
非lvm:

genkernel --kernel-config=/usr/src/config --menuconfig --bootloader=grub
--splash=livecd-2007.0 all
lvm:
genkernel --kernel-config=/usr/src/config --menuconfig --bootloader=grub
--splash=livecd-2007.0 --lvm all

你会看到熟悉的menuconfig, 这里没人能代劳了,干你该干的事
--kernel-config参数给了你一个配置的起点 :)

5. 最后别忘了看看是否有module需要更新

module-rebuild help/list/rebuild/del/populate
或升级,诸如
emerge nvidia-drivers/ati-drivers

等等...

这就是gentoo-way,Handbook上的安装部分并没有详解genkernel,
是因为不想让安装过程涉及太多内核配置的问题...

Gentoo恰恰是做了不少工作简化内核的安装过程。

How to make GFW real suck

翻墙!翻墙!有墙若无墙!

--摘自http://fuckgfw.jottit.com/



本文将提供一种一劳永逸的翻墙方式(ssh -D),实施之后,那道墙——对你来说——将从此透明。

本文面向的用户:使用Windows作为操作系统并且使用Firefox作为常用浏览器。

第一步:免费获取拥有SSH权限的帐号和密码。


默认的免费获取方式:将本文转载到你自己的博客上,将转载后的文章网址发送到f.ckgfw#gmail.com

注意:转载前请先确认自己是(或曾是)一名blogger(博客),否则将会浪费彼此的时间。

转载方式:拷贝文章代码至博客后台HTML编辑器中,直接发布即可,文章标题自拟,可在前后文插入自己的评论。

经过人工审核,你将收到一封附有五个拥有SSH权限的帐号和密码的电子邮件,你可以将它们赠与你信任的人。



更多获取方式将在今后陆续激活,请关注我们的最新更新:https://friendfeed.com/fuckgfw



第二步:配置MyEnTunnel软件

下载并安装MyEnTunnel,该软件全名为My Encrypted Tunnel。

一键下载:https://dl.getdropbox.com/u/873345/download/myentunnel.exe

myentunnel

按照上图将第一步收到的帐号信息填写到相应的地方后,点击save按钮,再点击hide按钮。

第一次连接过程中会出现一个认证对话框,按照提示确认即可。以后的自动连接中将不再出现此认证对话框。

最后点击hide按钮,使对话框隐藏到系统任务栏中。

提示:

为MyEntunnel创建一个快捷方式,将其复制到系统的【启动】(C:\Documents and Settings\当前用户名(需要修改成你自己的)\「开始」菜单\程序\启动)文件夹中,今后开机便可自动启动软件,并自动连接服务器。

tray

绿色代表连接成功且稳定;黄色代表正在连接或重新连接;红色代表连接失败。

第三步:配置Firefox浏览器

假设你正使用Firefox浏览器阅读本文。

一键安装:http://autoproxy.mozdev.org/latest.xpi

xpi-offical

点击立即安装,安装后,重新启动Firefox。然后你会看到如下对话框,选择gfwlist (P.R.China)后,点击确定。

gfwlist

接着你会看到Firefox主界面右上角出现有一个“福”字图案,点击“福”。

fu

点击“代理服务器——编辑代理服务器”。

edit

随即出现如下画面,你会看到如GAppProxy、Tor和Your Freedom这样一系列代理服务器名称。

before

将GAppProxy一栏的参数修改为如下图所示。

after

修改完毕后,点击确定。至此配置已全部就绪。

获取更多帮助,请关注反馈中心:https://friendfeed.com/fuckgfw-feedback




第四步:支持fuckGFW


  1. 如果您翻墙成功,请大笑一声并用充满磁性地低音说出:Hello, world!

  2. 如果由于线路原因,始终翻墙不成,不要气馁,给我们发Email,咱们一起解决问题。

  3. 假如哪天突然无法正常连接,请先到反馈中心汇报,我们会及时做出反应。

  4. 目前您有如下几种方式及时获取我们的最新动态:FriendFeed | Twitter | Blog

  5. 保持默契,我们相信您一定可以做到。

版权信息:您可以自由复制、传播、演绎本作品且无需署名、无需注明原始出处。

Font Test

Quenya, 精灵古语,精灵们的“拉丁语”是J.R.R.Tolkien发明的若干语言中的一种,并非《魔戒》三部曲发生时候精灵们的日常用语,而是作诗词歌赋时使用的古语。语法工整,韵文优美。在此以西班牙语字母抄录一段Quenya诗歌, 测试一下Blog和浏览器的字体/编码设置。


Namárië!

Ai! laurië lantar lassi súrinen,
yéni únótimë ve rámar aldaron!
Yéni ve lintë yuldar avánier
mi oromardi lissë-miruvóreva
Andúnë pella, Vardo tellumar
nu luini yassen tintilar i eleni
ómaryo airetári-lírinen.

Sí man i yulma nin enquantuva?

An sí Tintallë Varda Oiolossëo
ve fanyar máryat Elentári ortanë
ar ilyë tier undulávë lumbulë
ar sindanóriello caita mornië
i falmalinnar imbë met,
ar hísië untúpa Calaciryo míri oialë.
Sí vanwa ná, Rómello vanwa, Valimar!
Namárië! Nai hiruvalyë Valimar!
Nai elyë hiruva! Namárië!

密党六戒

身为我们Camarilla的一员,首先要谨记六戒。

第一戒条:避世 (The First Tradition: The Masquerade)

"Thou shalt not reveal thy true nature to those not of the Blood. Doing so shall
renounce thy claims of Blood"

不能对非吸血鬼露出自己的真面目,否则,其他吸血鬼会和你断绝一切关系。 第一条传统是最重要也是最核心的吸血鬼戒律:避世。违反此传统的吸血鬼会受到最严厉的处罚,而整个吸血鬼社会也可能因此受害。



第二戒条:领权 (The Second Tradition: The Domain)

"Thy domain is thy concern. All others owe thee respect while in it. None may
challenge thy word in thy domain"

你在你的领地有着自己的权利,到你的领地内的吸血鬼要尊重这种权利。在你的领地 里,无人能违背你的话。 中世纪以前的吸血鬼大多有自己的地盘,但当代的吸血鬼领域通常是指亲王的辖地。有些地方的亲王力有未逮,会将辖区暂时分封给长老们管理,这大多含有政治上 的互动意义。 有些年轻的叛逆者会扭曲这项传统的原意,想要结党成派地形成地方势力。就像街头黑帮一样,这些小帮派常常彼此争斗。但只要他们不违反潜藏的戒律和亲王的号 令,不让事情闹得太大,长老们并不会在这一点上加以过度约束。事实上,亲王通常会设法让这些街头帮派彼此不合,让叛逆的吸血鬼成员彼此压制力量。



第三戒条:後裔 (The Third Tradition: The Progeny)

"Thou shalt sire another only with permission of thine elder. If thou createst
another without thine elder's leave, both thou and thy progeny are forfeit"

只有在得到你的长老同意才能创造新的吸血鬼。如果你没有得到长老的同意而创造了新 的吸血鬼,你和你的后裔都将被处死。 这道传统中所谓的长老,本来是指自己的尊长,不过现在密党通常解释为该地的亲王。也就是说,如果吸血鬼要创造新的血脉,必须徵得所属地亲王的同意。亲王对 於新创造的吸血鬼,拥有绝对的处置权,他可以承认其资格、纳为己出、将其放逐或甚至杀掉。密党赋予亲王这项权力,以控制叛逆者的数量。



第四戒条:责任 (The Fourth Tradition: The Accounting)

"Those thou create are thine own childer. Until thy progeny shall be released,
thou sahlt command them in all things. Their sins are thine to bear
"

那些你所创造出的吸血鬼是你的晚辈。在他们被让渡之前,你应该在各个方面教导指挥 他们。他们的罪要当成你自己的来忍耐。 吸血鬼有义务全责照顾自己创造出来的晚辈,直到引介给亲王释放身份为止。在吸血鬼社会中,晚辈是被当作孩童一样的教导抚养,尊长必须尽力加以指导教养,使 其成熟。一旦被亲王认可之後,晚辈便获得独立之身,拥有和其他正式吸血鬼社会成员一样的权利。当然,被释放的新吸血鬼成员如果仍从事一些「幼稚」的行为, 便会受到其他吸血鬼的耻笑。新吸血鬼成员必须以能力证明自己的确
有资格成为吸血鬼社会中的成人。  




第五戒条:客尊 (The Fifth Tradition: Hospitality)

"Honor one another's domain. When thou comest to a foreign city, thou shalt
present thyself to the one who ruleth there. Without the word of acceptance,
thou art nothing"

应该互相尊重领权。在你到达一个陌生的城市时,应该向那里的管理者引荐自己。如果 没有得到他的批准,你不能在那里做任何事。 通常吸血鬼很少远行,但是只要进入其他吸血鬼的领地,便必须接受其统治。当代的领地指的就是亲王的辖地,当吸血鬼进入某亲王的辖地时,通常必须晋见让知 晓。晋见的过程随不同的亲王而异.有些亲王要求正式的会面仪式,并且须通报血脉身份,有些则以简单的方式互相认识。进入他人领地未通报的吸血鬼,若被发 现,通常不会受到太大惩罚,只会被抓到亲王面前质问一番然後饬回。这项传统主要是为了保障亲王的统辖权,因此亲王在晋见之後,通常不会过度拒绝外来者,除 非是恶名昭彰之徒。 叛逆者常不愿主动遵守这项传统。另外,Methuselahs 也大多不理睬亲王的权力,因为他们通常活得比亲王还长久,能力十分强大,在他们眼中,一般吸血鬼和人类没什麽两样。



第六戒条:杀亲 (The Sixth Tradition: Destruction)

"Thou art forbidden to destroy another of thy kind. The right of destruction
belongs only to thine elder. Only the eldest among thee shall call a bloodhunt"

严禁杀害你的同类。猎杀的权力只属于你的长老。只有长老之中最年长的一个有权下发 猎杀令。 这项传统向来备受争议,过去的 Elder指的是尊长,但当代的意义已逐渐转为特指亲王。也就是说,只有亲王拥有处决辖下吸血鬼的权力,这项权力是受到密党所认可的,只要亲王是因为维护 传统而使用此权力,通常长老便会支持他。这也是当代年轻吸血鬼与年老者的主要冲突点。犯下「谋杀罪」的吸血鬼成员,通常会被亲王以猎杀令缉捕。 对於严重违反传统戒律的吸血鬼,所谓的惩罚通常只有叁个字:杀无赦。亲王有权下达猎杀令,他通常会秘密命令一些或全部辖地中的吸血鬼补杀犯戒者。若有其他 吸血鬼敢协助被猎杀者逃亡,将视为是对亲王权威的严重触逆,而成功捕捉到被猎杀者的吸血鬼,通常会获得一定的名声,同时也可能有权取得被猎杀者的血液,因 此许多年轻的吸血鬼常愿意参与猎杀行动。 一般而言,只要亲王下达了猎杀令,便在辖地内永远有效。但是密党允许高层的秘密会议 (Conclave) 事前否决亲王的命令,参与秘密会议的成员以正反证据作为表决依据。若亲王不遵从秘密会议决议,虽然不会受到任何惩罚,但是必然会损失相当的名望。

法师与巫师

witch是wicce的现代词语, 男女的Wicca-Wicce模式现在男的不用了, 他们指得是一种日而曼撒满, 据说比较残酷

10世纪罗马天主教会控制英国以后, Edgar王定下的昂格虏-萨克逊教会法典记载:

"If any wicca (witch), wiglaer (wizard), false swearer, morthwyrtha (worshipper of the dead) or any foul contaminated, manifest horcwenan(whore), be anywhere in the land, man shall drive them out."

"We teach that every priest shall extinguish heathendom and forbid wilweorthunga (fountain worship), licwiglunga (incantations of the dead), hwata (omens), galdra (magic), man worship and the abominations that men exercise in various sorts of witchcraft, and in frithspottum (peace-enclosures) with elms and other trees, and with stones, and with many phantoms."

Warlock从语源学上,
可能是"wa-loga", 就是man of the logs, 那是指在小木片上写Rune文字的圣人, 罗马天主教会自然不会放过这些, 于是侮蔑一把~~~
也有人说源自古挪威语 Vard-lokkur, "caller of spirits".

还有一种戏剧性的说法, warlock是对上述日而曼"旧信仰者"的一种惩罚方法, 把他们全身锁起来, 不让他们进行任何魔法活动, 这对他们是莫大侮辱和惩罚, 所以warlock也是一种对wicca/wicce之类的蔑称.

之于mage么, 很显然出自Magus和Magi, 波斯袄教(拜火教)僧侣的单数和复数,是波斯语关于袄教僧侣崇拜的神之类的音译; 圣经里说耶稣降生时有三个Magi来拜访. 就是指他们. 这里神职人员和神本身似乎混用着称谓, Magi所以是神圣的词,很多时候指和神有关的 教会也不会去侮蔑, 自然没什么贬义. 这个偶参见的Arbatel of Magic倒是一上来就说了

升级强迫症患者每天做的事

作为一个Gentoo Linux桌面用户,强迫症是难免的...

# cat .bashrc
alias measyncall="emerge --sync && layman -S && eix-update && emerge -uptDN world"
alias meaesys="emerge -uDN system || until emerge --resume --skipfirst; do emerge --resume --skipfirst; done"
alias meaeworld="emerge -uDN world || until emerge --resume --skipfirst; do emerge --resume --skipfirst; done"

用循环而不用--keep-going, 纯粹为了能够以CTRL+C跳过不想emerge的包包和他们的依赖。

强迫症的由来:升级越频繁,Block越少...
| More

Twitter Updates