(回到Blog入口)

应用安装|AppInstall 归档

2004年12月29日

CooCooWakka的URL Rewrite设置

今天尝试了一下CooCooWakka: 一个基于PHP/MySQL的wiki系统:CooCooWakka是咕咕基于WakkaWiki 0.1.2进行修改强化而来。主要进行了中文支持。

安装非常方便,填入数据库设置和一些字符集、路径设置就可以开始用了,但是在URL Rewrite的支持上还是费了一点事:

wiki.png
如果启用了rewrite mod,则需要将上图中缺省的base_url选定字符删除,使用http://blog.cnblog.org/wiki/
这样的路径作为缺省路径:
这样缺省.htaccess文件中的:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ wakka.php?wakka=$1 [QSA,PT,L]
才能生效。

按此阅读全文 "CooCooWakka的URL Rewrite设置" »

2004年12月31日

CooCoo的Wiki小结

CooCooWakka的讨论组上:咕咕的CooCooWiki小结

按此阅读全文 "CooCoo的Wiki小结" »

2005年01月15日

当wiki遇上chongqing, 受到恐吓的CooCooWakka

threat.png coocoowakka居然被wiki spammer恐吓。

建议在模板中设置:
<meta name="robots" content="noindex,nofollow"> 这样SPAMMER就无法从自身网站中得到任何反相链接的加分了。

最近CatHome01发起了一个 spamweblog.com 项目: 专门用于搜索各种SPAM网站的作弊特征并和大家交流anti spam的方法和策略。

按此阅读全文 "当wiki遇上chongqing, 受到恐吓的CooCooWakka" »

2005年03月04日

遭遇图片盗链:wiki成了色情网站的图片服务器

面对疯狂的TrackBack Ping Spam,我最近不得不已经停止了自己BLOG上所有的接收BackTrack Ping功能,并启用了评论的mt-blacklist;而这个月日志统计中也看到了很多莫名其妙的referer spam,不得不将AWStats加上了http认证,防止spider顺着日志统计报表爬到那些网站上去。

今天又遇到WIKI的文件上传盗链,自己网站成了色情网站的图片服务器。

当时情况记录如下:
后台服务器下午2点左右出现了380的高负载,我中间不得不重新启动一次了机器: 重启后发现服务器负载仍然非常高。mysql出现了:'Too many connections'错误,奇怪,平时数据库请求是很少的啊? 在apache服务器error_log日志中找到了异常多的wiki的文件下载请求。由于wakka的每次图片下载都需要经过数据库请求,导致数据库连接数饱满。

后来查看apache日志,通过referer看到这些请求都是来源于一个色情网站的论坛中,沿着wiki的uploade目录找下去:看到了4,5个200k以上的图片(上传时间是下午1点16分前后)。

按此阅读全文 "遭遇图片盗链:wiki成了色情网站的图片服务器" »

2005年03月17日

TWiki简明语法速查

WIKI是一个开放的自维护发布平台,任何人可以编辑任何文档和结构

简要的语法备忘如下:


如何新建TWIKI页面
=================
建立新入口的方法就是建立一个CamelWord 就是2个大小写交错的关键词:
比如 CheDong 如果这个节点不存在,TWIKI就会有一个可以点击的"?",点击这个"?",
就会出现这个页面的编辑入口,保存后,这个节点就创建了。
同样的:如果其他页面中引用了这个关键词,页面上会自动生成一个指向相应TAG的链接。

如何插入链接
============
最简单的:直接把链接输入,TWIKI自动会把它变成链接。如果链接是以 .jpg .gif .png结尾的,twiki会自动将其变成图片。

如果需要自己定义链接的标题:
[[http://www.example.com/][标题]]

如果是指向TWIKI内部链接:可以直接写 CamelWord
[[CheDong][标题]]

如何列表缩进
============
* 3个空格加*
* 6个空格加*
* 9个空格加*

如何编号缩进
============
1 3个空格加1
1 6个空格加1
1 9个空格加1


如何设置标题
============
---+ 顶级标题
---++ 2级标题
---+++ 3级标题

如何创建表格
============
就是用竖线将不同字段分割开: "|" 样例
| *name* | *age* |
| Tom | 10 |
| Jerry | 10 |

按此阅读全文 "TWiki简明语法速查" »

2005年04月13日

Lilina的简单预缓存加速

何东也安装了一个LilinaInfo-Aggr for Hedong,他觉得太慢。

如何加速呢:Lilina的RSS更新是一种动态触发的缓存更新机制,当每次有用户访问请求的时候,lilina检查cache目录中相应RSS的缓存,如果没有缓存或者缓存过期了,就立刻去服务器上取。而慢一般就慢在这个RSS的同步上了,比如:每天早上第一次访问,所有的RSS都需要更新,而订阅的RSS又非常多的情况下速度就非常慢了。 减少每次访问时触发RSS更新的几率是提高速度的关键。

我的方法:
1 使用wget导出成静态页面或者按照一定时间强制RSS更新
我在crontab中增加了:
# chedong's homepage
*/10 * * * * (/usr/bin/wget -O - http://www.chedong.com/)
这样后台就能每10分钟去取一次RSS结果页,这样:一般用户看到的时候可以大大降低没有命中缓存的情况。"wget -O -"表示输出到标准输出,完全可以改成 wget -O /home/path/to/lilina/index.html 这样用户就直接访问导出的index.html了,和PlanetPlanet效果一样。

2 将缓存时间设置为4个小时过期(缺省为1个小时):这样每次访问的时候同时又多个RSS同时过期的几率就会小很多。

具体做法是在Lilina的输出脚本中增加'MAGPIE_CACHE_AGE'全局变量:
单位是秒 缺省是3600秒 比如要改成4小时
define('MAGPIE_CACHE_AGE', 60 * 60 * 4);

其实大部分BLOG每周只有少量更新,达到4个小时的同步延迟速度已经足够了(Google的新闻的更新周期才3个小时)。

3 控制你的RSS数据源个数:
如果RSS有上百个,Lilina每次都要检查上百个的缓存文件,所以即使缓存文件都是最新的,检查过程也会非常漫长。我个人觉得控制在RSS在20个以下比较好,建议经常删除一些你不关心的或者更新很慢的BLOG。

4 客户端浏览器本地缓存:
在lilina输出程序的开头增加以下Header:
// always modified now
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// Expires one hour later
header("Expires: " .gmdate ("D, d M Y H:i:s", time() + 3600). " GMT");

告诉浏览器:这个网页1个小时后才过期,一个小时内不要再向服务器发送请求,这样如果一个用户在一个小时内多次访问的话,也不会向服务器发送多个请求了(直接利用浏览器本地的缓存)。关于客户端缓存和服务器端缓存机制,可以进一步参考一下缓存设计一文。

按此阅读全文 "Lilina的简单预缓存加速" »

2005年06月12日

TWiki的安装,配置和用户管理

TWiki是一套基于Perl的wiki实现(为什么又是perl?):功能强大,速度很快,核心存储使用纯文本实现,不需要数据库的支持,因此非常适合企业级的大规模应用:在很多公司都有成功的应用案例

Wik应用路径相对传统内容发布系统比较固定和扁平, 内容之间的连接也非常多 充分体现了Well referenced with easy navigation....
http://www.chedong.com/twiki/bin/view/TWiki/TWikiPreferences
http://www.chedong.com/主目录/程序目录/动作/子库名/页面

TWiki本身的配置分成3级
网站级别: 站点级别的配置都在TWiki/目录下TWikiPreferences ChangePassword ResetPassword等
目录级别: 每个目录下的WebPreferences文件中设置 比如 Main/WebPreferences
页面级别: 每个页面可以设置一些访问参数

搭建使用TWiki的时候, 会发现TWiki中很多的配置居然也是用WIKI页面管理的: 真正将模板技术用到了及至。具体的配置位于TWiki/TWikiPreferences
TWiki语法本身就是一个非常完整的模板语言, 而网站的很多设置都可以使用
Set PARAMETNAME = value
这样的语法进行设置

以下是我在安装时的备忘:(不断更新中)

2006-1-1更新:
1 增加了认证和用户分组方面的配置说明;
2 增加了文德的参考文档;


按此阅读全文 "TWiki的安装,配置和用户管理" »

2005年11月17日

lilina(MagpieRSS)的缓存加速II:加入MAGPIE_LOAD_CACHE_ONLY模式

订阅的Feed越来越多,即使基于简单的配置缓存有时候也经常速度跟不上:网站经常出现只剩下右边半边的情况,就是由于缓存期间抓取远程的网页超时导致的。其实PlanetGregarius一样,都是在用户访问的时候避免对FEED的动态更新。Planet和Gregarius都是使用后台脚本定时同步FEED,在MagpieRSS外面包了一层存储(数据库),我直接在MagpieRSS中增加了一个只读本地缓存模式。修改了一下MagpieRSS的缓存逻辑:加入一个MAGPIE_LOAD_CACHE_ONLY 模式,只从本地的缓存中取feed,避免更新期间向远程发送FEED同步请求。

然后在lilina前台这样调用即可:

// cache expire in 3 hours
define('MAGPIE_CACHE_AGE', 60 * 60 * 3);
// load cache only
define('MAGPIE_LOAD_CACHE_ONLY', true);

require_once('./lib.php');

按此阅读全文 "lilina(MagpieRSS)的缓存加速II:加入MAGPIE_LOAD_CACHE_ONLY模式" »

2006年01月13日

Wiki发布系统的选型

虽然经历过使用Wakka被色情网站盗链当作图片服务的攻击,但一直没有放弃寻找一个Wiki平台的努力。知道最近休假期间,分别尝试了2个Wiki平台的搭建过程,算是对Wiki系统的发展有了一个初步的了解。尤其是初步试用了TWiki的DakarRelease的发布(稳定Beta版)和MediaWiki的1.5的发布。感觉Wiki发布系统在2005年成熟了很多。

和很多开源产品一样,开始的多种系统会向少数优秀平台集中:好比Blog发布工具,最后都集中到MovableType(Perl)和WordPress(PHP)这2个平台上,Wiki的发布系统也在向少数平台集中。我了解了Perl/PHP/Python/Java这几种开发语言的主流Wiki平台
Perl: TWiki 非常著名的企业Wiki写作,在很多大公司有广泛的应用,非常完善的权限管理
PHP: MediaWiki(就是WikiPedia维基百科等项目的后台发布系统),非常适合大规模/丰富主题的Wiki平台搭建;豆酷DokuWiki:完全使用文件实现,也是一个非常完善的小组wiki平台
Java: Confluence虽然商业版本的收费(开源),但是对于非盈利组织是免费的,Apache基金会的很多项目都是用Confluence+JIRA(变更管理工具)协作开发;
Python: TRACTrac和SVN的集成是Python内部协同开发环境的绝妙搭配;MoinMoin:也是一款非常经典的Wiki平台。

按此阅读全文 "Wiki发布系统的选型" »

2006年01月15日

TWiki DakarRelease安装备忘

上周和建硕聊天的时候,我提到了新年打算不再花太多时间写BLOG,blog毕竟只是一些碎片,而更有意义的是将这些碎片整理起来。我尝试了很多方法,发现还是使用wiki这种方式比较好。

Wiki的发布工具去年年底有2个比较重要的发布:都显示了各种wiki系统的成熟
MediaWiki(Wikipedia的后台): 1.5版本发布

TWiki 的后台平台是用:Perl写的,TWiki从2001年的发布版本开始:使用城市的名字作为版本命名,每次重大的版本相隔1年左右
2001年叫雅典(Athens),
2003年的北京(Beijing),
2004年的开罗(Cairo):也是目前用的最多的稳定发布版
2005年底发布Beta测试版的达喀尔(Dakar):已经是稳定版了。这个版本的优势在于:
1 国际化:重构的框架使得本地化的界面更加方便,我已经完整翻译了中文界面
2 更方便的安装:有了一个全局变量的configure界面是web方式管理的。但是实际上仍然比较麻烦,因为需要了解很多的apache的配置,如果对 .htaccess配置不熟悉,还是比较麻烦的;
3 子目录的支持等;
4 可视化的编辑器:WSYIWSG的编辑TWIKI 对于TWiki语法的高门槛来说,可视化编辑是非常重要的改进;

2月1日:
TWiki如期发布了4.0

以下就是我的安装手记:

按此阅读全文 "TWiki DakarRelease安装备忘" »

2006年07月02日

[AWStats]6.6中的蜘蛛和搜索引擎数据库更新

最近sf.net的CVS库的访问有些更新,原先从cvs.sourceforge.net同步的代码现在要改成通过projectname.cvs.sourceforge.net了。所以如果原先有AWStats代码通过cvs进行更新,需要将CVS/Root文件改成awstats.cvs.sourceforge.net,(或者重新导出)。

仍在cvs中的6.6:从robots.pm和search_engines.pm的更新日志中就可以发现去年下半年以来针对各种robots/RSS reader的统计和各种搜索引擎的统计是越来越丰富了(甚至区分了雅虎美国的蜘蛛Slurp雅虎中国的蜘蛛Slurp China),今天的统计输出:
53 个机器人* 文件数 字节 最近参观日期
Yahoo Slurp 8750+183 60.60 M字节 2006年 七月 01日 23:59
Yahoo! Slurp China 7032+120 40.09 M字节 2006年 七月 01日 23:59
而来自referer spam的列表也已经有3132条记录了,部分的统计项目(蜘蛛/搜索引擎)都增加了官方网站的链接,但是明显国外开发人员不是很了解中国目前的情况,在很多统计项目中仍然有些落后于实际的情况:比如将TencentTraveler当成蜘蛛,没有计入来自sogou soso等新的搜索引擎的来源等。根据cvs版本中的配置重新更新后的文件:lib/robots.pmsearch_engines.pm可以直接下载。
效果可以看看这里: 用户名 awstats 密码 awstats
http://www.chedong.com/cgi-bin/awstats/awstats.pl?config=chedong

按此阅读全文 "[AWStats]6.6中的蜘蛛和搜索引擎数据库更新" »

2006年07月19日

慎用DreamHost

桑林DBANotes都说最近他们在dreamhost的空间最近有down机导致的流量损失,我用ssh登录到服务器上:服务器机器是3天前重启的,而且目前系统负载也比较高。
02:58:39 up 3 days, 20:00, 3 users, load average: 1.80, 3.24, 4.15
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

从日志统计看:15日当前有比较长的down机时间,而且15日以后4天的日志文件也丢了。之前得到的是大辉的折扣: 第一年 25$,把几个亲友朋友的空间都搬过去了,现在看来还是要注意备份一下。
假设一台服务器有500个用户(而且每个用户还可以申请75个子帐号),这是一个多大的数字,几乎都支持客户再对外提供一个虚拟主机服务了。

2006-07-23 今天又一次电力故障,DreamHost和以色列和黎巴嫩一起成为了TechnoRati的热门关键词。

按此阅读全文 "慎用DreamHost" »

2006年07月30日

服务器硬盘故障恢复备忘

大概是从上周四晚上开始,托管的服务器就无法访问。周五请机房重启后,仍然无法登录,干脆拔掉网线,过一个不插电的周末。

周六中午,赶到机房,尝试重启几次,发现硬盘已经无法引导了(grub error 17)。联系机器的提供商提供了块新硬盘(才用了半年),在机房现刻安装光盘,重新安装系统……这就是大概的经过了。虽然平时做了完整的apache和mysql的备份,但是恢复还是花了半天的时间。这就是用虚拟主机的好处:虽然DreamHost偶尔有掉链子的时候,可是至少不用跑机房啊……

按此阅读全文 "服务器硬盘故障恢复备忘" »

2006年08月21日

DSO模式安装mod_perl备忘

下载:mod_perl 目前最新版本是1.29
wget http://perl.apache.org/dist/mod_perl-1.0-current.tar.gz

解包后,

%perl Makefile.PL USE_APXS=1 WITH_APXS=/home/apache/bin/apxs EVERYTHING=1
%make
#make install

mod_perl的作用和eAccelerator差不多,面向perl应用的预编译。通过phpinfo可以看到Apache Version
Apache/1.3.37 (Unix) mod_perl/1.29 PHP/4.4.2

按此阅读全文 "DSO模式安装mod_perl备忘" »

2006年09月08日

twiki 4.0.x 安全漏洞警告:服务端任意文件读取

9月6日收到了twiki开发邮件列表的安全警报:twiki 4.0.x中发现了服务器端文件读取安全漏洞。黑客有可能通过这样的链接查看后台系统上的文件:
http://example.com/bin/viewfile/TWiki/TWikiDocGraphics?rev=1;filename=../../../../../etc/passwd

请尽快升级twiki 4.0.x 的系统:
===========================================================
--- View.pm (revision 11339)
+++ View.pm (working copy)
@@ -356,6 +356,7 @@
my $topic = $session->{topicName};

my $fileName = $query->param( 'filename' );
+ die "Illegal attachment name" if $fileName =~ m#[/\\]#;

my $rev = $session->{store}->cleanUpRevID( $query->param( 'rev' ) );

按此阅读全文 "twiki 4.0.x 安全漏洞警告:服务端任意文件读取" »

2006年11月12日

LiveHTTPHeaders更新,能在FireFox2.0里用了

Firefox升级到2.0以后:LiveHTTPHeaders这个我常用来debug网页的插件就不能用了(另外一个是Proxy切换工具)。其实大部分这些插件都是兼容的:兼容不兼容全看插件自己声明,只是当初做的时候中还没有FireFox 2.0。着急的话可以下载插件的xpi文件,将其中的1.5改成2.0即可。

但是还是最好有官方的升级:今天打开FF发现已经有了。
live_http_headers.png

LiveHTTPHeader的主要功能:就是实时跟踪浏览器与服务器端的HEADER请求,并导出日志供分析。

更新说明:
# The version 0.13.1 is now available. It simply fixes the version number in a few places ;).
If you want, you may also make a donation
E-Gold account:
- 1746494
Pecunix account:
- savardd@gnulinux.ca
# The version 0.13 is now available. It is compatible with Firefox 2.0.

按此阅读全文 "LiveHTTPHeaders更新,能在FireFox2.0里用了" »

2006年11月18日

Apache 1.3上的mod_gzip编译和配置

最近打算做一个试验,需要重新安装一下apache 1.3上用的的http压缩模块:mod_gzip(这个模块已经很久没有维护了,apache 2.x已经内置有mod_deflate压缩模块)

以下是编译mod_gzip报的错:
make APXS=/home/apache/bin/apxs

/home/apache/bin/apxs -Wc,-Wall,-O3,-fomit-frame-pointer,-pipe -c mod_gzip.c mod_gzip_debug.c mod_gzip_compress.c -o mod_gzip.so
gcc -DLINUX=22 -DHAVE_SET_DUMPABLE -I/usr/include/gdbm -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -fpic -DSHARED_MODULE -I/home/apache/include -Wall,-O3,-fomit-frame-pointer,-pipe -c mod_gzip.c
cc1: error: unrecognized command line option "-Wall,-O3,-fomit-frame-pointer,-pipe"
apxs:Break: Command failed with rc=1
make: *** [build] Error 1

只好把Makefile中的:-Wall,-O3,-fomit-frame-pointer,这几个选项取消,然后就编译通过了……
gcc的版本如下:

Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,java,f95,ada --enable-java-awt=gtk --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --host=i386-redhat-linux
Thread model: posix
gcc version 4.0.2 20051125 (Red Hat 4.0.2-8)

有哪位遇到过类似问题吗?

按此阅读全文 "Apache 1.3上的mod_gzip编译和配置" »

2006年11月20日

CCode and TCode: MT的防SPAM插件

老办法改脚本文件名还是要用:
在mt-config.cgi中加上:

TrackbackScript tb.cgi
CommentScript comments.cgi

注意:MT官方网站上的TrackbackScript说明有误:应该是小写b
TrackbackScript != TrackBackScript

CTCode已经调通了,写笔记宣传一下。感谢毕勤的提示,找到了CCode和TCode这个防spam插件。原理很简单:就是将原来的Comment和Trackback的ID后面增加了一个数字(我观察:10位数字应该是文章发表的时间戳基于时间戳生成的数字)用作干扰,以防止Spammer用留言机对于使用MT进行blog发布的系统进行地毯式trackback轰炸(从文章1到文章1000)。

优点:
1 COMMENT和TRACKBACK的spam问题同时解决;
2 不用安装新的PERL模块(使用图形验证就比较麻烦,需要安装很多动态生成模块);
3 blog读者不增加负担,不用输入校验码之类的(但是TRACKBACK变成手工的了,无法自动发现了);

缺点:
改的地方太多,除了部署plugins文件外:
1 每个BLOG一一修改模板单篇归档模板的留言表单;
2 留言页面需要增加一个JS函数:增加单独js文件,或者扩展mt-site.js
3 需要重建所有页面;
4 针对分布式spambot不管用:还是要先将改文件名。

安装以后的确有感到回到刚安装MT时候的安静环境中(但:目前spamlookup插件仍然在使用中)。希望能和spamlookup一样,成为MT的标准插件配置;

以下是具体安装和配置过程:

按此阅读全文 "CCode and TCode: MT的防SPAM插件" »

2007年01月17日

twiki 4.1发布

twiki.org今天宣布: TWiki 4.1发布了。今天收到了一个TWiki Advocate(拥护者)的信:鼓励用户去TechCruch论坛发表评论。

Because Wiki technology is "top of mind" in the blogosphere and press,we have the opportunity to dramatically increase awareness for TWiki as an open source alternative. To this end, I have started a thread on Tech Crunch Forums to alert everyone about TWiki and to pose the question, "What will it take for wikis to be officially sanctioned by the IT department?"

I encourage each of you to visit the forum at http://forums.techcrunch.com/forums/thread.jspa?threadID=856&tstart=0 and join the conversation. The more traffic this article gets, the more likely the Tech Crunch staff is to write about TWiki and our community, and the more likely that TWiki will be a hot topic in the blogosphere in general. Every click counts, so please take action right away.

按此阅读全文 "twiki 4.1发布 " »

2007年04月15日

svchost.exe占用CPU 100%的解决方法

现象:

  1. 机器启动运行几分钟后 svchost.exe就会占系统cpu资源的100%
  2. 拔掉网线就好了,重连上网后一会儿:svchost.exe又占cpu资源的99%;

解决:

假设你已经使用了免费杀毒软件排除了病毒和已经使用防间谍软件排除了恶意软件的影响:
想办法清空C:\WINDOWS\SoftwareDistribution 目录下所有的文件重启机器即可
。(C:\WINDOWS\SoftwareDistribution是Windows update服务的临时文件存放目录)

如果机器提示文件正在使用("Automatic Updates"服务正在运行)无法删除相应目录:

  • 则想办法打开控制面板==>管理工具==>服务,找到"Automatic Updates",设置成手动启动,
  • 重启后再删除 C:\WINDOWS\SoftwareDistribution。问题就解决了。
  • 然后再打开控制面板==>管理工具==>服务,找到"Automatic Updates",恢复成自动启动重启。

注意:重启后最好在上网条件比较好的地方让系统顺利完成一次系统自动更新。

推广: 遇到类似问题的应该挺多的,如果你也发现这个方法有用,请将 http://www.chedong.com/blog/archives/001286.html
这个链接加到你的blog里。
html代码: <a xhref="http://www.chedong.com/blog/archives/001286.html">svchost.exe</a>

按此阅读全文 "svchost.exe占用CPU 100%的解决方法" »

2012年12月22日

Mac OSX上的ssh tunnel 代理设置备忘ssh -i /path/to/key -D 1080 -C -N remoteuser@remote.host

最简单的是打开终端,然后直接用命令行:
ssh -i /path/to/key -D 1080 -C -N remoteuser@remote.host

-D 设置动态转发端口号;
-C 启用压缩;
-N 不执行远程shell命令(ssh2支持),登录后不会有提示行;
-i 优先使用秘钥key 而不是密码;


然后就可以设置应用通过代理访问了;

按此阅读全文 "Mac OSX上的ssh tunnel 代理设置备忘ssh -i /path/to/key -D 1080 -C -N remoteuser@remote.host" »

关于 应用安装|AppInstall

此页面包含了发表于 车东[Blog^2] 的 应用安装|AppInstall 所有日记的归档,它们从老到新列出。

前一个分类 个人爱好|Hobbies

后一个分类 社交网络|SNS Blog

更多信息可在 主索引 页和 归档 页看到。

Creative Commons License
此 Blog 中的日记遵循以下授权 Creative Commons(创作共用)授权.
Powered by
Movable Type 3.36