记忆从这里开始

时间过去了很久,希望有些东西能沉淀下来,虽然我有记录的爱好,却总不能坚持。 陆陆续续这么多年,弄了很多很多博客,要不是被限制,要不就是被墙了,甚至无缘无故被删除掉,白白浪费了我很多心血。所以我决定在建军节前夕,购买了这个空间和域名,在此安家。 这是博客的第一篇,特此记录。

自定义WordPress文章归档的显示数量

有时候我们希望在Wordpress侧边栏显示文章归档,可以在后台直接添加“文章归档”小工具就可以了,但Wordpress默认显示所有的阅读存档,如果我们的站点只有几个月,那还无所谓,但是如果我们的站点有两三年甚至更长的时间,那么显示出来的文章归档列表将是长长的一列,实在很不美观。其实我们可以通过修改Wordpress源码的方式对文章归档显示数量进行自定义。
具体方法: 使用FTP工具打开网站空间FTP,找到wp-includes文件夹下的default-widgets.php,下载下来,然后使用Editplus之类的文本编辑软件打开(不要使用记事本),搜索“widget_archives_args”,找到关键字所在的行,将其内容修改为:
'monthly', 'show_post_count' => $c,'limit' => 12)));
此行代码的作用就是使用wp_get_archives函数显示最近12个月的月度归档,当然我们也可以根据自己的需要修改为其他数值。
保存后使用FTP工具将修改后的default-widgets.php上传即可,上传前最好是做好default-widgets.php的备份,以免出现问题,要养成修改之前先备份的良好习惯。
本文参考了不得言的博客,原帖地址:http://www.budeyan.com/tech_notes/wordpress-wp_get_archives/,如果大家希望进一步了解wp_get_archives函数的使用,可以参考原帖
本文来源于:高海鹏的博客,原文地址: http://www.gaohaipeng.com/696.html
另一个修改处为:general-template.php 查找“wp_get_archives”函数.
参考http://blog.ithomer.net/2014/03/wordpress-article-archive-date-display-format/

在blogger中使用LISP的语法高亮

此文仅仅为那些想在blogger用LISP的语法高亮代码发帖的人。
首先,请参考:
让Blogspot支持语法高亮:
http://blog.venj.me/2010/06/blogspot.html
在Blogger中添加代码语法高亮:
http://zjunet.blogspot.com/2013/04/blogger.html。
syntaxhighlighter这个插件很好,可是没有为LISP定制的js.
那么,想用LISP语法也能达到这样的效果,只好自己动手了。
下面是我写的:shBrushLisp.js文件:
shBrushLisp
按照网上的方法,你添加进去就可以了。

dp.sh.Brushes.Lsp = function()
{
	var keywords =
	'abs acad_colordlg acad_helpdlg acad-pop-dbmod acad-push-dbmod ' +
	'acad_strlsort acdimenableupdate acet-layerp-mode acet-layerp-mark acet-laytrans acet-ms-to-ps ' +
	'acet-ps-to-ms action_tile add_list ads alert alloc and angle angtof angtos append apply arx ' +
	'arxload arxunload ascii assoc atan atof atoi atom atoms-family autoarxload autoload Boole boundp ' +
	'caddr cadr car cdr chr client_data_tile close command cond cons cos cvunit defun-q-list-set defun-q-list-ref defun-q ' +
	'defun dictadd dictnext dictremove dictrename dictsearch dimx_tile dimy_tile distance ' +
	'distof done_dialog end_image end_list entdel entget entlast entmake entmakex entmod entnext entsel ' +
	'entupd eq equal error eval exit exp expand expt fill_image findfile fix float foreach function ' +
	'gc gcd get_attr get_tile getangle getcfg getcname getcorner getdist getenv getfiled getint getkword ' +
	'getorient getpoint getreal getstring getvar graphscr grclear grdraw grread grtext grvecs handent help ' +
	'if initdia initget inters itoa lambda last layoutlist length list listp load_dialog load log logand ' +
	'logior lsh mapcar max mem member menucmd menugroup min minusp mode_tile namedobjdict nentsel nentselp ' +
	'new_dialog not nth null numberp open or osnap polar prin1 princ print progn prompt quit quote read-char read-line read ' +
	'redraw regapp rem repeat reverse rtos set set_tile setcfg setenv setfunhelp setq ' +
	'setvar setview sin slide_image snvalid sqrt ssadd ssdel ssget ssgetfirst sslength ssmemb ssname ssnamex ' +
	'sssetfirst startapp start_dialog start_image start_list strcase strcat strlen subst substr tablet tblnext ' +
	'tblobjname tblsearch term_dialog terpri textbox textpage textscr trace trans type unload_dialog untrace ' +
	'vector_image ver vlisp-compile vports wcmatch while write-char write-line xdroom xdsize xload xunload zerop '+
	'nil t pi';
	this.regexList = [
			{ regex: /;.*$/gm, 										    css: 'comments' },  	// 单行注释
			{ regex: /;\|[\S\s]*?\|;/g, 								css: 'comments' },		// 多行注释
			{ regex: dp.sh.RegexLib.DoubleQuotedString,					css: 'string' },		// 字符串
			{ regex: new RegExp(this.GetKeywords(keywords), 'gmi'),		css: 'keyword' },       // 内部函数
			{ regex: /|/gm, 										css: 'preprocessor' },  // 括号
			{ regex: new RegExp('\\#[a-zA-Z0-9]{3,6}', 'g'),			css: 'value' },
			{ regex: /(vl-)[\w->]+/gmi,									css: 'functions' },		// keywords
			{ regex: /(vla-)[\w->]+/gmi,								css: 'functions' },		// keywords
			{ regex: /(vlax-)[\w->]+/gmi,								css: 'functions' },		// keywords
			{ regex: /(:vlax-)\w+/gmi,									css: 'functions' },		// keywords
			{ regex: /(:vlr-)\w+/gmi,									css: 'functions' },		// keywords
			{ regex: /'/gm,												css: 'keyword' },		// keywords
			{ regex: /(\+|1\+|-|1-|\*|\/|=|\/=|>|<|<=|>=|~)/gmi,css: 'keyword' }	// Operators运算符
		];
	this.CssClass = 'dp-lsp';
	this.Style =	'.dp-lsp .value { color: red; }' +
					'.dp-lsp .keyword { color: blue; font-weight: bold; }' +
					'.dp-lsp .string { color: green; }' +
					'.dp-lsp .preprocessor { color: magenta; }' +
					'.dp-lsp .functions { color: blue; font-weight: bold; }' +
					'.dp-lsp .comments { color: grey; }'
					;
};
dp.sh.Brushes.Lsp.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.Lsp.Aliases	= ['lisp', 'lsp'];

效果如下:
LispSynHighlighter

关于谷歌被GFW之后的搜索引擎解决

从5月27号左右开始,谷歌(Google)在华的几乎所有的服务都处于无法使用的状态,谷歌官网域名Google.com、谷歌香港Google.com.hk所有服务都打不开。但我真心不喜欢百度搜索,很讨厌,有办法么?
1,Chrome浏览器下的google搜索解决。
首先,找一个没被封的google 镜像地址,譬如:209.116.186.246之类的,反正你去搜索吧。
然后在Chrome设置里面,从 “搜索” 项里面选择“管理搜索引擎”,弹出框里面的“其他搜索引擎”中设置:
第一个 是名字,随你便了,第二个是关键字 ,一般可输入网址,如你找到的地址:209.116.186.246, 第三个输入框中输入:
http://209.116.186.246/search?hl=zh-CN&q=%s
并把它设置为默认搜索引擎,这样就可以了,以后你的默认搜索就按照这个搜索了,不会跳转到www.google.com.hk上去了。
如果想把chrome浏览器的首页修改,在 设置里面的“启动”中选择 “打开特定网页或一组网页。 设置网页”,然后你输入找到的可用的google地址。
google search
2,IE浏览器中,如果你以前添加了google的搜索引擎了,那么如果不修改其地址,肯定又是打不开网页了,
修改地址简单,找到注册表的:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes 里面的有关google项的,
把其 URL键值改成如下:
http://209.116.186.246/search?hl=zh-CN&q={searchTerms}
这样就可以了。

对白

我    至高无上。

这么多年来,一直不愿蜗居在城市花园
而愿栖身传统的废墟。
周围遍是理念的危崖,世事的荆棘
遍是尊严的丛林,自由的寒风
嘲笑像涛声一样不断淘空你的根,冷眼
反射着千万年被冰封的月色,挫折
在你走过的和未来的路上布满罗网和陷阱,梦想
在罅隙中艰难穿梭,高傲而孤独
你还需要什么?
离开或者涅槃。

但我不是一只凤凰。

世上并不存在绝对的庸俗和高雅。
叶子被阳光与黑夜交替修剪,每一片
具有相同卑微的脉络,每一片
具有相似灵魂的锯齿边缘,且
琐碎而平凡,至为真实,至为清淡
高贵从遍是渣滓和污秽的泥土中
生长出来,它的芳香谁都可以采摘。即使
乞丐拿在手中,亦能感到富足和素洁
你还要超越什么?
放弃或者是湮灭。

但我的心中还有一块镜子。

取下你的脸谱,告诉我你的额头上
是否铭刻着好与坏,正与邪?
人人都有一个盒子,却从来不知道里面还有什么。
盒子里有什么呢?一只蝴蝶
一只蝴蝶左右展翅,随风翕合
在盒壁的花园翩翩曼舞;
一只苍蝇它的卵四周膨胀;
盒子里有什么呢?一锭金子
永不生锈;一张渐渐发霉的荣誉证书;
一缕魔鬼化作的美丽青烟;抑或是
一个天使变幻的丑陋石块?
一段洁白无瑕的帛丝;抑或是
一件经历过生活压皱的衣裳?
或者全都不是。它可以空空如也
可以盒子套着盒子,象千瓣莲花
层层包裹,仿佛永无穷尽
你还要珍藏什么?
打开或者埋葬。

但我    永远至高无上。

(...没有回音,只有喧嚣。听不清每一句回答,每一个音节。这喧嚣竟是巨大无比的寂静。)

1996.11.8写于长沙

变季


    雁
        排
            着
                人
            字
        形
    队

飞越冰冷的河
飘洒的羽毛
好像白云凝成的秋霜
 

1996.11.13

水仙香

年轻时的那束水仙花
香已逝 我难追
在一个晴暖的日子
我曾想画下她长长的发丝
洁白的梦 一掬清水
都挽留不住
她的素洁和高贵

我看见了幸福
如飞鸟的影子
匆匆闪过瞳孔
就在那瞬间我已错失
与她同行的列车
只剩漫长的铁轨
和更漫长的孤寂

世俗的人
只会唱着爱的民谣
把金色的戒指
戴在她的指尖上 说
爱你永远
而她无奈的欢颜
是我一生中唯一的记惦

还有谁能比懦弱的人
遭受更多的悲欢
如今我也开始慢慢放弃
慢慢忍耐 渐渐坚强
且让那束水仙花香
留在年轻

1996.3.1 于长沙

CAD中的美与乐

我是属于爱折腾的那一类人的。
CAD是我这个专业的必备工具。一天到晚都离不开它。
当然,有时候画图累了,就想开开小差。偶然的一次,我在用CAD的夹点拉伸的时候,竟然发现了一个很有意思的现象。
用过CAD的人基本都知道,一段弧有四个夹点 :弧的两个端点、弧段的中点、弧心。当我们把弧的中间的那个夹点拉到弧心的那个夹点位置后,弧心的那个夹点位置却跑走了,然后我又把弧中间的夹点拉到新的弧心处,当我这样重复下去,我开始以为整个弧会最后定在一个位置,但实际上没有,无论我这样做多少次,弧的位置永远也不会固定。
这个偶然的发现引起了我的注意。我觉得不是一个普通的问题,我感觉它是发散的。QJchen博士用Maple佐证了我的感觉--它的确是发散的!但是,发散的,并不意味这这些夹点的位置是毫无规律的。那么,我就开始折腾了:
首先,我用公式找出它们之间的关系,通过一番简单的数学推理,得到如下图的公式:

zzzf

这个关系看起来比我想象的要简单多了,跟求开平方的公式仅仅相差一个正负号,如此的简洁而美妙的公式。当然这个公式是对于实数集的,我又展开联想了,如果把这个公式扩展到复数集呢,按照这样的迭代,是怎样的效果呢?
很好,那么稍加推理,对某个位置(C_{x},C_{y})的迭代得到如下公式:

X_{n+1} = \frac{X_{n}}{2}-\frac{X_{n}}{2(X_{n}^{2}+Y_{n}^{2})}+C_{x};


Y_{n+1} = \frac{Y_{n}}{2}+\frac{Y_{n}}{2(X_{n}^{2}+Y_{n}^{2})}+C_{y};


到此,我想到了曼德布罗特的分形集,说做就做,我利用我编写的一段程序,加入了一点代码,然后在CAD上运行,得到了如下的效果:

结果证明了,它果然具有分形的性质。像啥?有的说是蝴蝶,有的说是猴子的脸,究竟像什么,就凭你的想象了。
我把这个图形叫做高飞鸟集。因为我没在其他人中或者其他地方看到过类似的图片。这也算是我的一个发现。
是啊,CAD中竟然蕴藏了这么多的乐趣和美,是我以前从未领略过的。
美是无处不在的,只不过我们还未发觉。

附注:多年前我就想把写下来,直至今日才付诸实现。

2014年8月21日 Highflybird于深圳

语法测试

;|This is a test ,Don't copy it!|;
(defun c:test ()
  (setq ent (car (entsel)))
  (setq obj (vlax-ename->vla-object ent))
  (setq pts (vla-intersectwith obj obj acExtendNone))
  (setq par (vlax-curve-getEndParam  obj))
  (setq i 0)
  (while (<= i par)
    (setq pt (vlax-curve-getpointatParam obj i))
    (princ pt)
    (setq i (1+ i))
  );while
  (princ)
);defun