如何通过ipage.com搭建个人网站

1. 为什么选择ipage.com

1.1 选择host时一般需要考虑的因素

首先我们google一下都有哪些website hosting的公司,分别具有哪些特性(features)和功能(functions)。

我们找到 2015 BEST Web Hosting Review REVIEWS AND COMPARISONS , Announcing the best web hosts of 2015 , Recommended web hosting offers for April 10, 2015 等等这些文章,然后逐一了解不同host的不同之处。

就一般搭建个人网站而言,在选择host的时候需要考虑这些因素:

  1. 价格(non-profit purpose…)
  2. 易用性(cpanel控制面板/one click install一键安装/ftp/SSH/phpadmin/….)
  3. 可用性(speed访问速度/disk space硬盘空间/database limit数据库容量限制/domain limit域名个数限制/…)
  4. 安全性(SSL/money back guarantee/…)

ipage.com主页很清楚地表达了以上为我们所重视的几个问题,如下图所示。

ipage-homepage

1.2 关于ipage.com的补充说明

  1. 价格。ipage的价格的确非常吸引人,如主页所示,只需每月2.25USD,即每年27USD约168RMB/Y。此外,其实ipage有个隐藏的coupon,得到此优惠券的方法是点击主页的sign up后进入下一个页面,页面载入完成后点击刷新,就会弹出一个“before you go …”这样的对话框,于是我们发现价格降至惊人的1.99USD/M,如下图所示。ipage-before-u-go
  2. 关于中文URL。这算是ipage的一个缺点,当然是对于中文环境用户来说。问题是:ipage不支持中文URL的解析,即如果网页路径中包含中文字符ipage会得到404 not found的错误。一般个人网站需要使用中文路径的情况是:将文章名添加在URL里时,URL便包含了中文字符,目的是为了SEO(搜索引擎优化)。当然这个URL是可以自己设定的,全设定为英文即可,另外,合适的英文关键字并不会比中文字符在SEO方面有明显劣势。

2. 注册ipage.com

点击上图coupon页面中的“Sign Up Now”之后,第一步是选择一个域名,如下图所示。

ipage-select-domain

可以选择注册一个新的域名“Register a new domain”,这域名个第一年的注册费用包含在此次开通ipage账号付款之中,即免费赠送约9.9USD的首年域名注册费用,在下方的文本框中输入想要的域名,点击“check availability”检查域名是否可用。也可以使用自己已拥有的域名,同样将其输入在文本框中。注意这里可以不输入域名最后的“.com”等内容,否则注册后的账号会是“domaincom”而不是简洁的“domain”。

下一步是输入付款信息,如下图所示。

ipage-billing-info

付款方法有信用卡和paypal两种,上图中的价格是未使用coupon的价格。付款完成后ipage的账号就可以使用了。在ipage.com的主页右上角点击“Sign In”就可进入管理界面。

3. ipage.com的cpanel管理面板和文件路径

3.1 cpanel管理面板

登录进入ipage后进入cpanel管理面板,如下图所示,非常直观。

ipage-control-panel

ipage-control-panel-2

cpanel共分为7个部分。

  1. My,即是常用选项。
  2. Website,搭建网站相关的选项。
  3. Email,包括了email的设定管理选项。
  4. Domain,域名管理的选项。
  5. Marketing,市场扩展的选项,包括主要搜索引擎和社交网站的广告等。
  6. Additional,其他选项。
  7. Account,账户设定如密码修改/支付方式变更等等。

此外,在该页面右下方,还可以看到“System Settings”信息,包括常用信息的显示,如网站ip/域名解析服务器/ftp路径/邮箱服务器等等,如下图所示。

ipage-system-settings

3.2 域名和文件路径的对应

这里需要说明的一点是ipage的域名和文件路径的问题。

由于ipage不限制绑定的域名的数量,也就是说,可以将多个网站放到一个ipage账户下,这一点非常超值(比如之前用的bluehost的基本套餐每月3.99USD只能绑定一个域名),但同时我们需要理解域名和文件路径的对应关系。

在cpanel的域名管理中心“Domain Central”中,可以控制域名的绑定和制定路径,界面如下图。

ipage-domain-center

图中的这个域名即是本站域名,同时,这个域名也是通过ipage申请注册的域名,所以很多选项可以在这个页面上修改。其中,制定这个域名所对应的文件路径的选项为“Pointers”,点击后打开如下页面。

ipage-domain-pointer

一般在左侧下拉选项中选择“Subdirectory”即子目录,并在文本框中输入“/drjxu”,Linux系统中,根目录以“/”表示,所以我们的这个域名所对应的路径就是“drjxu”子目录了,这样每一个域名就对应一个单独的文件夹,非常便于管理。然后在cpanel的“File Manager”工具中我们就可以非常直观地看出对应关系,如下图。

ipage-file-manager

“drjxu”这个目录已被创建在“root”根目录中。当然,我们也可以自由在“File Manager”创建或删除文件夹,然后再在“DomainCenral”中制定相互关系。甚至我们可以创建没有域名对应的文件夹,比如上图中的“backup”文件夹,我们可以把安装文件/备份等等数据储存在这里,反正ipage不限制储存空间。

域名和文件夹的名称可以不一致,当然建议保持一致易于管理。

4. 通过WordPress搭建个人网站

4.1 关于WordPress

可以查看WordPress的wiki页面和WordPress主页了解其信息。

WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。WordPress是目前因特网上最流行的博客系统。

WordPress由于使用较为广泛,教程很多,学习资源丰富,非常容易上手,所以选择其搭建个人网站。

4.2 WordPress的安装

一般安装WordPress的方法主要有两种,一是通过host提供的一键安装,二是通过ftp上传WordPress安装文件至服务器后安装。前者安装步骤简单快捷,后者则更具灵活性和可自定义选项。这里只介绍第二种方法。

首先,需要获得WordPress的安装文件。

WordPress主页点击页面中的“Download WordPress”按钮,进入下载页面如下图,点击“Download WordPress 4.1.1”.

wordpress-download

第二步,解压上传WordPress的安装文件。

下载的压缩包解压后会得到一个wordpress的文件夹,需要将其中的所有内容上传至服务器。wordpress文件夹文件列表如下图。

wordpress-files

将文件上传可以在cpanel的file management工具页面中进行,但这种方法上传速度慢且不稳定,所以一般我们选择通过ftp软件进行。一般选择“FileZilla FTP Client”这个软件来上传文件到服务器,安装好这个软件后我们需要知道连接ipage服务器所需要的账号和密码,这一信息可以在cpanel的FTP选项卡中查看。如下图。

ipage-ftp

上图显示了FTP的账号共有两种,一种为“Master FTP Account”即主FTP账号,一种为“Additional FTP Account”即附加FTP账号。其中主FTP账号和ipage账号一样,附加FTP账号则可自由创建,一般为每一个域名创建一个单独的附加FTP账号,分别单独管理。创建附加FTP账号的方法如下图。

ipage-create-ftp-account

在下方的“Create New FTP Account”栏目中输入相应信息即可,点击“Create FTP User”即可创建成功。需要注意的是其中“FTP(Home)Directory”的填写,如前文所述“/”表示根目录,如果我们需要一个专门连接到“drjxu”主页也即“drjxu”子目录的FTP账号则这里需要填写“/drjxu”。

然后我们打开FileZilla FTP Client软件,填写主机/用户名/密码点击快速连接即可,如下图。

filezilla-connect-ftp

如果我们用附加账号连接,则软件中的远程站点根目录则为该域名对应的子目录;如果用主账号连接,则软件中的远程站点根目录则为实际的根目录。这一点一定要搞清楚。

同时,还需注意一个问题。那就是,如果想把WordPress安装在域名子目录下的一个子目录中(这种情况一般是因为需要在这个域名下安装多个程序,比如除了WordPress之外还想安装一个bbs的论坛程序),则更需注意文件的上传路径。本站即是将WordPress安装在域名子目录下的一个子目录(wpmain)中,如下图。

filezilla-file-upload

 

第三步,准备数据库。

安装文件就绪后,我们还需为WordPress配置数据库。

方法是从cpanel进入“MySQL”,如下图所示。

ipage-mysql

点击创建数据库按钮,输入数据库名称,并创建可操作此数据库的用户,同时记下“Sever Name”,这些信息在安装WordPress过程中会被需要。

第四步,安装WordPress。

安装文件上传完成/且配置好数据库后,即可开始安装操作。

安装方法是在浏览器地址栏输入WordPress的地址,比如,以本站为例,需输入“drjxu.com/wpmain”,因为WordPress的安装文件在“/drjxu/wpmain”子目录下,其中“drjxu.com”定位置“/drjxu”,“/wpmain”则为最终子目录。

由于WordPress未被安装,所以安装自动启动,第一个页面是语言选择,如下图。

wp-install-1

可以选择中文。点击“继续”进入第二个页面,提示信息,如下图。

wp-install-2

由于我们此前已经准备好数据库的相关信息,点击“现在开始即可”。进入第三个页面,如下图。

wp-install-3

输入相关信息,点击“提交”。如果输入的信息无误,连接数据库成功,则进入第四个页面,如下图。

wp-install-4

点击“运行安装”,进入第五个页面,“欢迎使用著名的WordPress五分钟安装程序!….”,如下图。

wp-install-5

 

填写好相关的信息,注意这里的用户名和密码不是数据库的,而是管理WordPress的用户和密码。 点击“安装WordPress”完成安装。进入第六个页面,贱贱的“您是否还沉浸在愉悦的安装过程中?很遗憾,一切皆已完成! :)”出现表示已安装完成,如下图。

wp-install-6

 

4.3 初步使用WordPress

点击上图中的“登录”,即进入WordPress的登录界面。如下图。

wp-install-7

 

输入第五个页面中创建的用户名和密码即可进入WordPress后台管理界面,“Dashboard”。如下图。

wp-dashboard

 

由于我们将WordPress安装在了一个子目录下,所以访问我们的网站的时候需要在URL中加入子目录的名称,比如本站,需要通过“drjxu.com/wpmain”来访问,非常不方便,那么是否可以只输入“drjxu.com”就定位到WordPress呢?当然可以,可以参考WordPress官方的说明文档

这里介绍具体的操作步骤。

首先,修改WordPress设置。

我们通过“drjxu.com/wpmain/wp-admin”进入Dashboard,如上图,在左侧菜单里选择“设置”->“常规”,进入下图所示页面。

wp-sub-dir

在“WordPress地址(URL)”中输入定位至WordPress的完整URL,在“站点地址(URL)”中输入域名URL,点击下方的保存。

第二,增加域名目录下的index.php文件。

还需在域名目录即“/drjxu”目录下增加一个index.php文件,该文件可在File Manager工具中完成添加也可在本地编辑好后通过ftp软件上传至合适位置。该index.php文件内容如下。

<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/

/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wpmain/wp-blog-header.php' ); //wpmain为WordPress的安装子目录
?>

 


 

至此,以ipage.com作为host搭建WordPress介绍完成。

如何通过godaddy.com注册域名

1. godaddy和domain

Go Daddy 很多朋友称之为“狗爹”,是一家提供域名注册和互联网主机服务的美国公司,是目前全球最大的域名注册商。据多家监测机构显示,放置在Go Daddy上的网站数量已经位居全球第一位。Go Daddy同时提供独立IP,SSL证书。

另外,简单介绍一下域名

 域名(英语:Domain Name),又称网域、网域名称,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。DNS(网域名称系统,Domain Name System,有时也简称为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

例如,www.wikipedia.org作为一个域名,便和IP地址208.80.152.2相对应。DNS就像是一个自动的电话号码簿,我们可以直接拨打wikipedia的名字来代替电话号码(IP地址)。DNS在我们直接调用网站的名字以后就会将像www.wikipedia.org一样便于人类使用的名字转化成像208.80.152.2一样便于机器识别的IP地址。[1]

所以,简单地说,围绕域名需要完成两件事情:注册和解析。一般地这两个功能在诸如godaddy这样的注册商那里被一并完成。

域名的注册

域名的注册遵循先申请先注册为原则,管理认证机构对申请企业提出的域名是否违反了第三方的权利不进行任何实质性审查。在中华网库每一个域名的注册都是独一无二、不可重复的。因此在网络上域名是一种相对有限的资源,它的价值将随着注册企业的增多而逐步为人们所重视。

在新的经济环境下,域名所具有的商业意义已远远大于其技术意义,而成为企业在新的科学技术条件下参与国际市场竞争的重要手段 ,它不仅代表了企业在网络上的独有的位置 ,也是企业的产品、服务范围、形象、商誉等的综合体现,是企业无形资产的一部分。

最为通用的域名.com/.net的管理机构是ICANN,ICANN(The Internet Corporation for Assigned Names and Numbers)互联网名称与数字地址分配机构是一个非营利性的国际组织,成立于1998年10月,是一个集合了全球网络界商业、技术及学术各领域专家的非营利性国际组织,负责互联网协议(IP)地址的空间分配、协议标识符的指派、通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理。这些服务最初是在美国政府合同下由互联网号码分配当局(Internet Assigned Numbers Authority,IANA)以及其它一些组织提供。ICANN行使IANA的职能。

但ICANN并不负责域名注册,ICANN只是管理其授权的域名注册查询商,在ICANN和注册商之间还有一个Verisign公司,注册商相当于从Verisign公司批发域名,但管理注册商的机构是ICANN。

所以我们在godaddy注册域名的时候会向ICANN缴纳约1$/个域名的管理费。

域名的解析

域名解析就是域名到IP地址的转换过程。IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址。域名的解析工作由DNS服务器完成。域名解析记录可以通过nslookup在窗口界面查询,也可以通过外部网站进行查询。

A记录设置:

A(Address)记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。

MX记录设置:

MX记录是邮件路由记录,用户可以将该域名下的邮件服务器指向到自己的mail server上,然后即可自行操控所有的邮箱设置。您只需在线填写您服务器的IP地址,即可将您域名下的邮件全部转到您自己设定相应的邮件服务器上。

CNAME记录设置:

CNAME记录是别名记录。这种记录允许您将多个名字映射到同一台计算机。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.abc.com”(A记录)。它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。这两个别名的全称就是www.abc.com和“mail.abc.com”。实际上他们都指向“host.abc.com”。

Wildcard MX记录设置:

Wildcard MX记录是泛邮件路由记录(姑且称之),功能上比较接近MX记录,除此之外它亦可以用子域名来收邮件。当然,备描述的主机本身必须具备收邮件的功能。

2. godaddy域名注册的流程

以下用大量图片展示通过godaddy注册域名的完整流程和详细方法。

注册godaddy

首先我们需要注册一个godaddy的账号。打开godaddy.com主页,点击右上角的“Sign In/Register”,看到如下图的画面,点击“Create My Account”。

godaddy-register

之后会弹出如下窗体,填写相应信息即可。

godaddy-create-account

点击“Create Account”创建账号。

登入godaddy.com

在主页Sign In栏目中填写账号和密码,点击”SIGN IN”就可登入godaddy.com。

godaddy-sign-in

个人中心

登入godaddy.com后进入个人中心,可以看到已购商品为空,如下图。

godaddy-my-account-ini

域名检索

之后我们就可以检索自己想要注册的域名了,方法是点击上方的“All Products”,在“Domains”列表中点击“Doamin Search”标签,如下图所示。

godaddy-all-products

接下来的页面如下图,在输入框中输入想要注册的域名,这里以“exampletestmaster.com”为例,点击“SEARCH”按钮即可。

godaddy-domain-search

检索结果会在跳转后的页面中显示出来,如下图所示。

godaddy-domain-search-result

幸运的话该域名没有被注册,页面中会提示“YES!YOUR DOMAIN IS AVAILABLE”,当然,此前我们肯定事先在who.is网站上查看了我们想要的域名是否可注册了,然后我们点击“.com”域名后的“SELECT”按钮,再点击“CONTINUE TO CART”按钮进入购物车。

godaddy-domain-selected

如果想要的域名已经被注册,那么我们需要重新检索,godaddy也会给出一些建议的域名供选择。具体的策略可自行google。

付款流程

当我们选定心仪的域名后,就可以进入付款流程了,点击如上图中所示的“CONTINUE TO CART”即会进入如下图所示的页面。

godaddy-in-cart

首先,是商品(即域名)的情况,可以选择年限,最后产生不同的价格在右侧显示,例中使用币种的是日元,换算后价格大概是:第一年8.3美元(50RMB),此后每年15.6美元(100RMB)左右。当然币种可以自由选择,具体要看信用卡是否支持。

点击“Proceed to Checkout”进入付款流程。

跳转后的页面上方方会显示付款人信息栏目,需要填写完整,如下图所示。

godaddy-billing-info

该页面下方是付款方法的栏目,也需填写完整,如下图所示。

godaddy-payment-info

Godaddy的支付方式如上图所示,可以通过信用卡/paypal/银联/moneybookers等手段支付,也就是说国内的银联卡是可以直接支付的。

点击“Continue”以继续完成付款。

3. godaddy的域名管理

在个人中心中选择域名“Domains”即可显示已购的域名列表,如下图。

godaddy-domain-list

点击一个域名,即可进入该域名的详细信息和设定界面,如下图。

godaddy-domain-details

一般地,如果我们使用其他主机提供商的话,我们需要修改“Nameservers”信息为主机提供商的“Nameservers”。

 


至此,通过godaddy.com注册/解析/管理域名的方法介绍完毕。

 

主成分分析(PCA)及其在MATLAB中的实现

主成分分析 Principal Component Analysis(PCA)

 1. 什么是主成分分析? What is PCA?

以下是Wikipedia英文Principal component analysis词条的叙述:

Principal component analysis (PCA) is a statistical procedure that uses an orthogonal transformation to convert a set of observations of possibly correlated variables into a set of values of linearly uncorrelated variables called principal components. The number of principal components is less than or equal to the number of original variables.

意为:

主成分分析(PCA)是一种统计过程,通过一种正交变换将一组可能相关联的参数的观测值转换成一组线性互不关联的参数值,转换后的参数即被称为主成分。主成分的个数小于等于原参数的数目。

This transformation is defined in such a way that the first principal component has the largest possible variance (that is, accounts for as much of the variability in the data as possible), and each succeeding component in turn has the highest variance possible under the constraint that it is orthogonal to (i.e., uncorrelated with) the preceding components.

意为:

还定义这种变换具有如下特点:第一个主成分具有可能的最大方差值(也就是,它尽可能地包含数据中的变化性),随后的主成分依次具有可能的最大方差,且满足与之前的成分正交这一限制。

The principal components are orthogonal because they are the eigenvectors of the covariance matrix, which is symmetric. PCA is sensitive to the relative scaling of the original variables.

意为:

主成分是正交的,因为它们是协方差矩阵的特征向量,而协方差矩阵是一个对称矩阵。主成分分析对原参数的相关度比较敏感。

2. 主成分分析能做什么?What can PCA do?

以下是Wikipedia中文 主成分分析 词条的叙述:

在多元统计分析中,主成分分析(英语:Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。

关键词:简化数据,减少数据集的维数

PCA是最简单的以特征量分析多元统计分布的方法。通常情况下,这种运算可以被看作是揭露数据的内部结构,从而更好的解释数据的变量的方法。如果一个多元数据集能够在一个高维数据空间坐标系中被显现出来,那么PCA就能够提供一幅比较低维度的图像,这幅图像即为在讯息最多的点上原对象的一个‘投影’。这样就可以利用少量的主成分使得数据的维度降低了。

关键词:数据的内部结构,解释数据

3.怎么做主成分分析?How to conduct/perform PCA?

这里需要说明:在Matlab和Wikipedia的Principal component analysis词条中,都将原数据矩阵的行定义为不同的实验/观测,将列定义为不同的参数/变量,这与其他一些文献中的定义方法刚好相反,所以会产生误解,比如,Wikipedia中covariance matrix词条中将行定义为参数/变量,本文中以Matlab和Wikipedia的Principal component analysis词条中的定义为准。

在维基百科英文词条下有具体的推导过程,本文不作详述,只介绍具体的计算方法,但所用的符号和数据的设定与英文词条下一致。

Consider a data matrix, X, with column-wise zero empirical mean (the sample mean of each column has been shifted to zero), where each of the n rows represents a different repetition of the experiment, and each of the p columns gives a particular kind of datum (say, the results from a particular sensor).

首先,假设有一个矩阵X,列向经验均值为零(即每列的样本均值移动到零),其n行表示被重复的n次实验,共p列的每一列表示一种特别种类的数据(比如说一种传感器的输出)。

The full principal components decomposition of X can therefore be given as

T=XW

where W is a p-by-p matrix whose columns are the eigenvectors of XTX。

于是,X的完整的主成分分解可由 T=XW 得出,其中W是一个pxp的矩阵它的列是矩阵XTX的特征向量。注意,这里的XTX与其他情况下协方差矩阵算式中的XXT其实是同一个矩阵,只不过两种情况下X的行列定义刚好相反。

具体的,先定义源数据矩阵如下:

PCA-orignal-matrix-definition

注意,此处Xi为行向量。

此后,计算过程如下:

PCA-calculation-procedure

具体的:

  • 第一步,计算Rx,即XTX,或XT的协方差矩阵(无1/(n-1)的系数)。
  • 第二步,求解Rx的特征值和特征向量。
  • 第三步,将特征值按从大到小顺序排列,同时将特征矩阵中的各列按对应特征值的顺序重新排列得到矩阵W
  • 第四步,计算排序完成后的特征值的累积贡献率accumulative contribution rate(ACR),设定阈值,如0.9,得到满足阈值的主成分数目。
  • 第五部,以L个主成分代替了p个变量,实现降维,且计算出源数据转换后的主成分的值。

主成分分析在Matlab中的实现 Perform PCA in Matlab

1. PCA算法的检验

首先我们根据PCA的定义算法进行计算,所用的源数据13*4的double表,13个观测4个变量,该数据通过matlab的hald数据获得,为ingredients矩阵。

load hald;
ingredients =
     7    26     6    60
     1    29    15    52
    11    56     8    20
    11    31     8    47
     7    52     6    33
    11    55     9    22
     3    71    17     6
     1    31    22    44
     2    54    18    22
    21    47     4    26
     1    40    23    34
    11    66     9    12
    10    68     8    12

在开始PCA前,首先需要将此矩阵列中心归零化,得到X

X = ingredients - repmat(mean(ingredients),13,1);
X =
   -0.4615  -22.1538   -5.7692   30.0000
   -6.4615  -19.1538    3.2308   22.0000
    3.5385    7.8462   -3.7692  -10.0000
    3.5385  -17.1538   -3.7692   17.0000
   -0.4615    3.8462   -5.7692    3.0000
    3.5385    6.8462   -2.7692   -8.0000
   -4.4615   22.8462    5.2308  -24.0000
   -6.4615  -17.1538   10.2308   14.0000
   -5.4615    5.8462    6.2308   -8.0000
   13.5385   -1.1538   -7.7692   -4.0000
   -6.4615   -8.1538   11.2308    4.0000
    3.5385   17.8462   -2.7692  -18.0000
    2.5385   19.8462   -3.7692  -18.0000

第一步,计算Rx

Rx = X'* X;
Rx =
   1.0e+03 *
    0.4152    0.2511   -0.3726   -0.2900
    0.2511    2.9057   -0.1665   -3.0410
   -0.3726   -0.1665    0.4923    0.0380
   -0.2900   -3.0410    0.0380    3.3620

第二步,求解特征值和特征向量:

[V,Lambda] = eig(Rx);
V =
    0.5062    0.5673    0.6460   -0.0678
    0.4933   -0.5440    0.0200   -0.6785
    0.5156    0.4036   -0.7553    0.0290
    0.4844   -0.4684    0.1085    0.7309
Lambda =
   1.0e+03 *
    0.0028         0         0         0
         0    0.1489         0         0
         0         0    0.8100         0
         0         0         0    6.2136

第三步,按特征值由大到小调整特征向量的列的顺序:

Lambda(4) > Lambda(3) > Lambda(2) > Lambda(1)
Lam(1) = Lambda(4,4);
Lam(2) = Lambda(3,3);
Lam(3) = Lambda(2,2);
Lam(4) = Lambda(1,1);
Lam =
 1.0e+03 *
 6.2136 0.8100 0.1489 0.0028
W(:,1) = V(:,4);
W(:,2) = V(:,3);
W(:,3) = V(:,2);
W(:,4) = V(:,1);
W =
   -0.0678    0.6460    0.5673    0.5062
   -0.6785    0.0200   -0.5440    0.4933
    0.0290   -0.7553    0.4036    0.5156
    0.7309    0.1085   -0.4684    0.4844

第四步,设定阈值为0.9,根据ACR值确定主成分数目:

ACR = cumsum(Lam)./sum(Lam);
ACR =
    0.8660    0.9789    0.9996    1.0000

由ACR的值可知,当主成分数目L=2时,ACR值>0.9的阈值,所以主成分数目为2即可。

第五步,计算源数据在主成分上的值:

T = X*W(:,1:2);
T =
   36.8218    6.8709
   29.6073   -4.6109
  -12.9818    4.2049
   23.7147    6.6341
   -0.5532    4.4617
  -10.8125    3.6466
  -32.5882   -8.9798
   22.6064  -10.7259
   -9.2626   -8.9854
   -3.2840   14.1573
    9.2200  -12.3861
  -25.5849    2.7817
  -26.9032    2.9310

至此,PCA计算过程结束。

2. Matlab函数的实现

在Matlab中进行PCA可通过princomp这一函数实现。

语法如下:

[COEFF,SCORE] = princomp(X)
[COEFF,SCORE,latent] = princomp(X)
[COEFF,SCORE,latent,tsquare] = princomp(X)
[...] = princomp(X,'econ')

其中COEFF表示变换系数,即W矩阵,SCORE表示源数据在主成分上的数值,即T矩阵,latent表示X的协方差矩阵的特征值,与之前的PCA定义中稍有不同,即相差1/(n-1)的倍数。

此外,princomp函数会自动对源数据矩阵进行列中心归零化,所以直接执行命令即可:

[pc,score,latent,tsquare] = princomp(ingredients);
pc =
   -0.0678   -0.6460    0.5673    0.5062
   -0.6785   -0.0200   -0.5440    0.4933
    0.0290    0.7553    0.4036    0.5156
    0.7309   -0.1085   -0.4684    0.4844
score =
   36.8218   -6.8709   -4.5909    0.3967
   29.6073    4.6109   -2.2476   -0.3958
  -12.9818   -4.2049    0.9022   -1.1261
   23.7147   -6.6341    1.8547   -0.3786
   -0.5532   -4.4617   -6.0874    0.1424
  -10.8125   -3.6466    0.9130   -0.1350
  -32.5882    8.9798   -1.6063    0.0818
   22.6064   10.7259    3.2365    0.3243
   -9.2626    8.9854   -0.0169   -0.5437
   -3.2840  -14.1573    7.0465    0.3405
    9.2200   12.3861    3.4283    0.4352
  -25.5849   -2.7817   -0.3867    0.4468
  -26.9032   -2.9310   -2.4455    0.4116
latent =
  517.7969
   67.4964
   12.4054
    0.2372
cumsum(latent)./sum(latent)
ans =
      0.86597
      0.97886
       0.9996
            1

可见,该结果与之前的五步法结果一致。

Matlab的使用方法之总体介绍

Matlab从使用的角度来说,更像是把一般的编程软件和办公软件结合了起来。我们可以像很多的编程软件一样,通过指令、代码编写算法程序,可以通过代码显示出结果,也可以像使用excel这样的办公软件一样,通过导入数据,进行可视化的编辑,进而绘制图形。

从数据的获得、导入到分析、处理再到结果的显示、输出整个流程都可以用Matlab实现,而实现的方法可以是基于程序代码的,也可以是基于可视化操作的。

所以,主要将Matlab的用法分成两个部分,一种为代码的方法,一种为可视化的方法。

1.1 代码的方法

Matlab程序界面中有command window窗体,可以直接在其中输入代码实现所有可能的操作,每一行的代码都会自动保存在边上的command history窗体内,双击其中的一行,相当于再次执行该行代码一次。

为了系统地管理我们的代码,我们可以建立Matlab中被称为script的以“.m”为扩展名的文件,这个文件就是一个代码的合集,文件中的所有代码按行依序执行,和C语言类似,以分号分隔各行。

1.2 可视化的方法

如果遇到大量重复性的工作,并且各自需要不同的认为干预时,可视化的操作是非常必要的。

在Matlab中,可以通过Graphical User Interface(GUI)非常直观地来编辑程序界面,GUI类似于VC中的对话框,内置了常用的“控件”,如按钮/编辑框/列表框等等,可以直接拖拽到fig上。

非常有趣的一点是,GUI也是一个fig,和Matlab中显示图形结果的fig没有本质不同,所以理解Matlab的fig对学习好Matlab至关重要。

博士学位获得-Day 9939

夜梦读宋词

夜梦读宋词,下十余首,皆新词未曾闻,疑惑间,旁一人指卷曰:此句乃愚兄腹藏之冠,且送贤弟。盛赞未已,卷帘处有人曰:美成可在?大惊乃醒,不记片语。

学术、科研、发文章的三件利器(3)

3.3 利器三:Matlab

这第三个利器就是一个好用的数据处理软件了。

从获得实验数据到数据的处理分析,再到输出图形化的结果,这一过程离不开数据处理软件,一个好的数据处理软件无疑可以产生事半功倍的效果。

3.3.1 Why Matlab?

第一个问题是,为什么选择Matlab?

首先,我们要了解一下所谓的数据处理软件都有哪些,各自都有什么特点。非常庆幸的是这个工作已经有人做了,那就是人见人爱的Wikipedia,这里有详细的列表,包括了很多常见的和不常见的软件。

既然这些candidates的方方面面的信息我们都已掌握了,而且数量又是如此之多,那么下面的工作就是,设定一些标准、择优选用。那么这些标准又应该包括哪些内容?问题来了,因为这些标准本身并没有一个标准,这些标准是应该根据需求量身定制的,而需求是多样的、变化的。所以,这里设定一个尽可能通用的、相对严格的的标准,主要包括以下几项:

1. 多平台支持

可以在Windows、Mac OS和Linux上运行。

2. 支持创建GUI

可以建立GUI,进行可视化操作。

3. 科学、高效的数据结构

变量、数据的定义、产生、赋值简便。

4. 便捷、丰富的功能模块

调用一个现成的功能模块就可以完成一个复杂工作。

5. 代码自动生成

通过可视化操作自动生成代码。

6. 语法高亮、纠错

能够明晰地显示语句结构、提示语法错误。

毫无疑问地,Matlab可以满足以上要求。基本上能够满足以上要求的软件就已经非常好用了,剩下的就是个人喜好的问题了。

3.3.2 The advantages of Matlab

1. Matlab可以运行在Windows、Mac OS、Linux等平台上,这样,在自己的MBP和办公室的Windows电脑上可以同步工作,再配合google drive这样的云硬盘,非常方便!

2. Matlab可以创建用户界面,这让它从一个数据分析的软件几乎变成了一个通用的编程工具,它的Graphical User Interface创建的fig对话框与MFC的对话框类似,功能非常强大,就一些小程序而言,基本可以和庞大臃肿的VS系列say goodbye了。

3. Matlab的数据结构非常得科学、清晰、易用。在Matlab里,所有的数据都在workspace中列出,一目了然,并且可以双击查看其内容;此外,Matlab有一个非常厉害的变量类型,叫cell(元胞),可以定义一个元胞数组(cell array),次数组的各个元素可以是不同的数据类型!比如一个2*2的cell array,第一个cell可以是一个常规变量(比如一个浮点值),第二个cell则可以是一个数组(比如一个整形的2维数组),第三个cell则可以是一个字符串,第四个cell则可以是另一个cell类型的数据。

4. Matlab有众多非常好用的ToolBox,这里是各种ToolBox的列表。通过ToolBox,可以非常方便、快速地得到分析结果,图形界面的操作也非常容易理解使用。

5. Matlab有非常强的代码生成功能,几乎每一步的图形界面的操作都可以生成这一步骤的代码,这样通过若干自动生成代码的步骤,很快就可以编写出非常复杂的程序。

6. Matlab的script编写界面也改进了不少,特别是2012版之后,改进特别大,语法高亮更加明晰、美观,而且新增了很多易用的功能,比如一键全部collapse,shift+enter全部替换等等。

总之,Matlab是个非常不错的数据处理软件,甚至已经不能仅仅算是一个数据处理软件了。跟Mathematica等一样,这些计算软件已经不能算是一个计算工具或者一门语言了,大概将世界数字化才是它们的最终目的吧。

想到《黑客帝国》(The Matrix),不禁森然。


此篇简单介绍Matlab的优点,下篇着重介绍如何使用。

 

学术、科研、发文章的三件利器(2)

3.2.4 Mendeley文献文件的组织方法

之前有提到,文献池文件夹是可以清理的,因为被Mendeley检测到的新添加的文件会被转移到Mendeley自己指定的文件夹下。那么它是怎么组织这些文件的,文件目录的层次结构是怎样的,文件和数据库中的内容又是如何对应关联的,这就是这一节需要说明的内容。

首先,文件被导入进来并且已被识别,一些基本信息比如标题、作者等等已经显示出来,与此同时,Mendeley会复制一份文件到自己的文件目录下,这个目录的位置我们是可以定制的,甚至于文件目录的层次结构也是可以设定的。具体方法如下图。

Mendeley - file organize

上图是Mendeley选项界面的file organizer标签。第一个框中所显示的即是所指定的Mendeley的文件根目录。第二个框中所表示的是目录下子文件夹的层次结构,这里我采用了两层结构,第一层为期刊名,第二层为年份,这样,在根目录下会为每一个期刊创建一个文件夹,然后在每一个期刊文件夹下再创建不同年份的文件夹,怎么样,很有条理吧,当然可以自己随意定制,而且只需拖拽不同的标签(fields)到文件路径(folder path)栏就可以了,改动后文件会被自动重新整理。第三个框中所显示的是定制文件名的形式的内容,每个文件被移动到对应的文件夹下后,还可以指定文件名的组织形式,这里我使用的是“年份 – 标题”的形式,同样的,可以自由拖拽定制。

通过以上设定,大量的文件可以被有序地组织起来,真的是赏心悦目。

 3.2.5 Mendeley的数据库结构

这一部分是纯理性探究的内容,对使用没有影响,只是出于好奇,想弄清楚它的运作原理,理解了原理之后当然会能更好地使用它。

Mendeley所使用的数据库是SQLite,从这个SQLite的Lite可以看出,这是一个轻量的服务器,的确如此,SQLite的最大特点是它是没有服务器客户端这样的说法的,它的运行无需外部依赖,不需要安装各种服务,不需要配置,于是响应速度很快,特别适合Mendeley这种管理本地内容的程序。

SQLite数据库的数据库文件以“.sqlite”为扩展名,可以使用SQLite Database Browser等应用程序打开,不过不建议改动Mendeley程序目录下的sqlite文件,感兴趣的话可以复制出来再研究,可以发现很多有趣的东西。

3.2.6 推荐的Mendeley的一些使用方法

对文献的研究主要方法有分类、标签、标注等等。这里介绍我觉得比较好用的方法。

首先,Mendeley将所有导入的文献构成的集合叫做“my library”,并且在软件界面的左侧显示出整个“my library”的文献情况,我们可以在其中建立不同的文件夹,将文献进行各种分类。下图说明了一种利用的情况。

Mendeley - tips

如上图,“my library”下默认有几个常用的分类标签,比如“All Documents”、“Recently Added”、“Unsorted”等,点击这些标签,会在右侧的文献信息显示栏中将其中的文件列出来,比如这里点击了“All Documents”,右侧显示的就是所有文献。

可以自行增减分类,并形成目录层次,比如上图框中显示的。这里我新建了一个叫做“Dissertation”的分类,也就是博士论文中所有引用、参考的文献的合集,然后可以在此类下按照章节等,构建出一个文献目录来。

当然有些人会问,这里新建的这种文件目录会不会对文件的存放位置等等做出改变,或者说这样做会不会在磁盘上新建如此结构的文件树?当然不会,每个文献在Mendeley中只对应一个文件,在存储上也只存储一个文件,并只会按照上上一节的方法组织文件。上面所说的分类目录并不会对文件在磁盘上的存储产生影响。

此外,一个文献可以被添加到多个自定的分类目录中,比如它在博士论文中被引用了,同时又在发表的文章中被引用了,又比如在第一章中然后又在第二章中被引用了,等等。

还有要说明的是,对文献的引用,可以安装一个叫WordPlugin的插件,这样在Word中的参考文献工具下会出现Mendeley的文献引用工具菜单,然后就可以非常方便地添加参考文献了。如果对引用的格式不满意的,可以自行定义引用格式,但是需要一定的编程基础,不过常用的格式偏差不大,Mendeley中也自带了多种,基本够用。

最后Mendeley的文献可以同步到云端,并且提供了2G的免费空间,可以说绰绰有余了,这样就可以在手机、平板电脑和其他电子设备上同步内容了。这样在喝咖啡等公车等女朋友下楼时都可以看上一会儿文献,是不是很酷。


感觉好久没有写这么多东西了,写起来有点挡不住啊。下一篇再说Matlab吧,文献相关的内容到此为止吧。

欢迎提出意见建议,欢迎评论分享。

此外,求关注。桌面用户请点击左侧、移动设备用户点击下方的微博关注按钮,谢谢。

下课。

 

学术、科研、发文章的三件利器(1)

1. 引言

博士论文已经写完了,答辩也进入了最后的准备阶段,有必要将博士期间的一些收获总结一下。

博士论文的撰写总共花了整整一个月的的时间,从4月初到5月中旬左右,自己觉得效率还是蛮高的。特别是博士论文中的很多内容都是新写进去的,之前发表的文章内容毕竟很少,而且为了使通篇更流畅,之前的文章其实可用的内容并不多。

特别是在论文的第二章,做了之前不敢做的一件事情,就是整理出了一个review。单单review部分就参考了50篇左右的文章,并且还对它们的研究内容、方法、结论等等做了不同角度的归纳,说实话工作量还是相当大的。如果在平时,干干停停,个把月的时间写这么一篇文章,都可以说是很厉害了,这次只用了10天左右的时间,还是很自豪的。所以说,人的潜力都是很大的,就是看有没有这样的决心了。好啦,自我表扬到此结束。下面开始正题。

2. 背景

在写博士论文的过程中发现了这样一个问题,对于以前没有好好做review感到惋惜和后怕,甚至惊出一身冷汗。由于下定决心要写出一个像样的review来,的确还是下了狠功夫的。而且,的确在此过程中发现了一些好的方法和经验,于是斗胆献拙,与大家共勉。

此外,还有一些感慨与领悟也一并讲出来,为博士生涯做一个结吧。

这篇文章主要还是以“学术、科研、发文章的三大利器”为主要内容,毕竟题目叫这个嘛,至于题目为何叫这个,主要还是觉得高大上一点能吸引眼球啊。

OK,背景到此结束,下面开始正题。(终于开始正题了……..)

3. 利器

将要介绍的三大利器分别是Google scholar,Mendeley和Matlab。

前两个是文献相关的工具,最后是数据处理相关的工具。

搞科研,其实应该是从整理文献开始的。这一点非常重要,往往是实验什么早已开始了,文献还没看几篇,然后终于有一天发现,这一步还是跳不过去。可以毫不夸张地说,对文献掌握的水平决定了也标志着科研的水平。

那么如何提高文献水平,就是非常迫切需要解决的问题了。每个人的方法都不一样,甚至会有过目不忘的神人,一篇文章看完一遍,数月甚至数年后仍能如数家珍娓娓道来,但是,对于一般人,如何获取和掌握大量的的文献信息是需要技巧的。

此外,工科的同学们往往需要做大量的实验,并且需要获取大量的信息,然后还要对这些信息进行分析处理,这个过程和文献整理的过程其实非常相似,都是从混沌中获得需要的信息并对其进行处理分析,只不过形态和方法上有些差异。

后面的叙述可能处女座的看起来会比较愉悦,因为涉及了大量的将无序的、混乱的信息梳理、分类、整合的过程,这应该会是一种享受吧。反正对我来说是这样的。

3.1 利器一:Google scholar

首先,谈谈文献的获取。

相关的方法有很多,如果您已近觉得您的方法足以获得大量优质的文献资料了,尽可与众分享,如果您还未开始收集文献或者正为选择何种工具发愁,尽可试试我下面描述的方法。

Google是信息检索领域目前最优秀最领先的公司了,至少我是这么认为的。虽然它也曾在涉足其他领域时铩羽,玩坏了不少项目,不过在信息整理、检索等相关技术上,的确无出其右者。

Google scholar即是专门针对文献类信息的一种检索引擎,它基于Google强大的信息检索引擎技术,覆盖了较广的文献来源,排序机制还算比较合理,而且有多种自定义检索设定和组合,还能将检索到的文献收藏,甚至可以检索专利,当然,还是完全免费的。

我是将Google scholar和下面要说的Mendeley配合使用的,目前效果相当不错。

3.2 利器二:Mendeley

Mendeley是非常好用的一款文献管理软件,它可以运行在Windows、Mac和Linux平台,甚至于iOS设备上,功能十分强大,可以完成从文献获取之后到编辑引用的整个流程,而且它还引入了社交元素,并且建立了文献数据库,文献的基本信息可以被分享、收藏等等。

由于版权等原因,一般地,mendeley不提供文献下载的功能,但是支持多种导入方法。

3.2.1 文献的检索和获取

如前文所述,文件的检索由Google完成,在检索到需要的文献时,一般地,我会选择将这个文献用Google收藏起来,目的是表明,这个文献已经被我添加到我自己的文献数据库中了,当然这个数据库不仅仅指Google的数据库,而且表示我已经将它下载到本地了,下次检索到它是,Google会标明只是已收藏的文献,那么就无需再次下载或者浏览它了,相当于给他加了一个已读标签。

如下图,在Google scholar搜索airplane,第一条结果,点击下方的“保存”链接,即可将其加入个人图书馆,之后再次检索到它的时候会显示为已保存,这样就不需要再次浏览或者下载它了。 屏幕快照 2014-07-02 23.37.24

当然,也可以使用Google scholar的“我的图书馆”功能管理文献,不过最大的问题是它不能显示全文,所以,只是用这个功能做一个标记而已。

文献的下载很方便,如果在学校的话由于ip地址在某个期刊或者出版商的许可范围内,Google scholar会在搜索结果的右侧显示下载的地址或者出版商等的该文献页面,我们只需移步然后点击下载就好。当然如果学校没有买该出版商的版权,那么有可能会下载不了,这样的话就需要移步到Google搜索了。

 3.2.2 文献的存放和导入

当我们从网页下载文献的时候,浏览器会问我们这个文件(一般是pdf格式的)要存放到哪里。我建议在硬盘上建立一个文件夹,可以命名为“document pool”,我们称这个文件夹为文献池,所有下载来的文献都放到这里。

建议这么做的原因是,mendeley软件有一种文件导入的功能叫做“文件夹监视”,顾名思义,即是设定一个文件夹被mendeley监视,当新的文件被添加进来的时候,只要mendeley运行着,它会自动被识别,并添加到mendeley数据库中。当然如果mendeley在下载新文件时没有运行,那么在下次它被运行时会自动添加进来。

这时候处女座要问了,那放在这个监视文件夹下的文件是不是不能移动啊,万一删了在mendeley中是不是就没有了?哈哈,当然不会,而且的确建议你过一段时间就清理一下这个文件夹,毕竟占用磁盘空间不是。那么,mendeley是怎么处理这些监控到的文件的呢。这就要谈论到mendeley的文献组织和数据库了,下下一节中讨论。

当然文献的导入不只有这一种方法,在文件工具栏选择导入、将文件拖拽到mendeley,这些方法都是可以的。

3.2.3 Mendeley中文献文件的识别

导入的pdf文件是会被自动识别的。识别的原理会比较复杂,但是这里需要说明的是“doi”这么一个属性,Mendeley估计是将这一项作为识别的最重要的特征。当然此外论文标题、作者、出版信息等其他项目,可以通过与数据库对比特征进行最终的确认。

“doi”(Digital Object Identifier,简称DOI,注意不是Dio)是一套识别数字资源的机制,涵括的对象有视频、报告或书籍等等。对于文献资源来说,一篇文献对应一个DOI代码,一本书也对应一个DOI码,获得了一个文献的DOI码,就可以在多个不同的数据库中把这个文献的详细信息找出来,怎么样,有没有很厉害。所以我们优先从pdf文件中识别出这个文献的DOI,然后检索这个DOI,这个文献的各种信息就都显示出来啦。

Mendeley也是优先从pdf中找DOI,因为现在很多的出版商还是比较上道的,他们会在文件中包含DOI信息,但是也有很多不靠谱的或者很古老的文献,文件里没有DOI信息,那就只能通过找标题等其他信息了。

Mendeley在识别出文件信息后,在界面右侧的“details”里会列出各种信息,比如标题、作者、期刊名称、年份等等,其中有一项叫做“Catalog IDs”的栏目,该栏目下就包括了“ArXiv ID”、“DOI”和“PMID”这三项,如果DOI被Mendeley识别了,会在这里显示出来。

这时候建议点击DOI这行右侧的搜索按钮,Mendeley会以此作为indicator去文献数据库中搜索,更新一些信息,比如摘要、或者识别有误的项目等等。

如果Mendeley识别一个pdf文件不成功,或者它觉得识别结果不是很可靠的时候,它会建议以文件名在Google中搜索,以获取文献的详细信息。您可以这么做,也可以自己找到这个文献的DOI,输入“Catalog IDs”栏目下的“DOI”项中,然后点击检索,结果也会非常好。

当然还有很坏的情况,现在只有文献pdf文件,没有DOI,Mendeley中也不提示Google搜索,那怎么办。很简单,在对应的栏目中自己输入相应的内容就好了,当然会比较累。


忽然发现竟然写了这么多,果然太唠叨。那么就到此分为第一篇。

欢迎多提意见建议,欢迎评论分享。

诚然梦里可作诗矣

诚然梦里可作诗矣!

惜佳句万千,只忆片语。

曰:

玉处凭栏几多愁,飘来烟花飘来楼。

此后二句,最是精彩。余梦中已慨然泪下,觉醒来可名留千古。

奈何只得片鳞,诗者梦碎。

好了,滚去写论文了。

岁月如飞刀,刀刀催人老

今年的冬天似乎特别的冷。

以前总会听到老人们抱怨说,这个冬天太冷啦,怕是要熬不过去了,赶紧让出门在外的子子孙孙都回来吧,把那不知刷了几道漆的棺材再刷道漆吧,早年准备好的蓝缎子的衣裳也翻出来晒晒吧,这么大的雪,阎王要收人啦。可是小孩子们兀自裹着件破棉袄,滚雪球、嚼冰茬,小手笑脸冻得红扑扑的,大人怎么叫也是叫不住的。小孩子又有谁能想到自己有怕冷的一天?

当终于有一年冬天,感到风是那么的硬,吹得脑袋生疼;风是那么的尖,吹到骨头里,腿也跟着疼;灌了两口冷风,就拉了三天的稀;没带帽子在外头呆了一根烟的功夫,就能感冒一个星期。人老得其实很快。

老人喜欢讲故事,天气好的话,找个背风的墙角蹲着,懒懒地晒着太阳,兴致来了可以一直讲到太阳下山。有时候觉得世间最享受的事情,就是晚年能有这么一处地方,风雨不透,阳光直漏,再加一把躺椅,一炉温酒,和一个喜欢听故事的人。

故事是很久以前的故事,二十世纪初时候的事情。

某地有这么一家子,三口人,一个爹俩儿子。爹是这样一个爹,高大威猛,膂力过人,但老婆死后,嗜赌成性,有时候出门一赌就是半月不见踪影,几乎不事生产。好在两个儿子已经十二三岁了,那年头,十岁出头就算成人了。老大念私塾,因其生来身体羸弱,名为文;老二比较壮实,像他爹,名为武,萧氏到这兄弟俩谱上得的是靖字,故为靖文、靖武。

此地地主为陈氏,不知几代之前中过榜眼。靖文的先生是陈氏旁支中的一个五十多岁的秀才,每年学费就是一口袋的谷子。陈氏乃旺族,有四五十户人家,牛过百头,田过百顷,佃户过百,大车四十架,当真是钟鸣鼎食。

萧氏是外来户,到萧父是第三代。萧父本有薄田数十亩,略识文字,无字号,名布衣。萧母病后全成了县镇郎中的财产。萧布衣并非为奴之人,待妻亡家散之后,即入了绿林。

河西乃群匪聚集之地,三省交汇,政令不达。恶霸土匪、江湖亡命、赌徒烟鬼云集于此。萧布衣身长力大,单臂可提立八百斤的石磙,粗通套路,徒手放倒十来八个汉子也仅仅是脸红心跳而已。

纠缠在“不逊”与“怨”之间 — 孔氏追女大法

孔子曰:唯女子与小人为难养也,近之则不孙,远之则怨。

孔老二的这句话真所谓授人以柄,有知女性以此作为男权专制统治的铁证,热衷于以彼之矛攻彼之盾。

对这句话的理解持不同意见的人辩论得很激烈,褒者有之,贬者有之,文化人嘛,引经据典地,听了都觉得对,往往以其昭昭,使人昏昏。百家争鸣固然有其好处,不至于产生学术垄断也不会弱化社会意识,但同时人们莫衷一是,导致主体意识流的弱化。学术垄断刚好与之相反。所以历史上总会出现两者之间反复纠缠的情形。比如先秦诸子百家,汉武独尊儒术,魏晋清谈,道佛二教,理玄二学,阴阳地理,等等等等。这也是事物发展的必然规律吧。

个人不喜欢学术权威、学术垄断,我们应该保护社会意识的多样性,就跟保护物种多样性一样,而且其重要性丝毫不弱于保护物种多样性。往往学术垄断制造出来的全是些个变态的学术权威。举个例子,朱熹,学术超人,嘉定二年(1209)诏赐遗表恩泽,谥曰文,寻赠中大夫,特赠宝谟阁直学士。理宗宝庆三年(1227年),赠太师,追封信国公,改徽国公。是程朱学派的主要代表。认为理是世界的本质,“理在先,气在后”,提出“存天理,灭人欲”。就是这个立志做圣人的大学者,“纳尼为妾”,“家妇不夫而孕”。当然,不排除政治斗争中采取的非常规的舆论打击手段,但是事实朱熹上表认罪了。

回到孔老二的那句话上来,怎么看待一件事情,是与个人的文化修养、世界观密切相关的。周易:仁者见之谓之仁,智者见之谓之智。东坡和佛印的故事也是这个道理。

孔老二的这句话在我看来是相当有道理的,而且,可以看出老二是个可爱的人。为何?且听我慢慢道来:

唯女子与小人为难养也,近之则不孙,远之则怨。人们往往纠缠在前半句“唯女子与小人为难养也”上面,批判的就说老二养女人,当然是包养、玩弄的意思,而且还嫌女人跟小人一样不好养;维护的比如说于丹,说这里的小人指的是小孩,丝毫没有鄙视、歧视的意思。老徐的理解是,这里的女子就是女人,小人呢就是那种依附你的人,养,不是玩弄,也不仅是于丹的养老婆孩子的养,还包含相处、相娱在里头。把女人和小人放在一起,一个是二者的确有着共同点,都是“养”的,都有“近之则不孙,远之则怨”的特点;二就是孔老二可爱之处了,开个玩笑嘛,不要那么认真嘛!“近之则不孙,远之则怨”的意思是,对他们太好了,他们就会恃宠而骄,变得“不逊”,就是不规矩、不客气,太疏远了吧,又会“怨”,试想一个姣好的女子,扑闪着水灵灵的大眼睛幽怨的看着你,这份柔情,百炼钢也绕指柔了,远与近的程度很难把握,孔老二很纠结!我也很纠结!

老二是个可爱的人,在公元前就给我们总结出了追女孩子的终极兵法,深得要领者,凭此一法,玩弄万千女子于股掌之间,老二一语道破女子软肋,试想有知女性对此焉能不恨!

但是,我知道,老二并无教人玩弄女性之意。想想能够和女子在远近之间纠缠,是何等缠绵浪漫之事!而将女子摆在这一平等的位置,何其智也!君不闻庄子丧妻“鼓盆而歌”!君不见吴起“杀妻求将”!君不闻“刘安杀妻飨玄德”!

女子如水,望诸君善待之!

萝莉控列传 东郭先生

以下文字,切莫当真,若非知己,不可示人。

萝莉者,豆蔻少女也,萌之萌者也。子云,萝莉萌于虎也。

控者,御也。孙子云,控者,诡道也。国之大事,死生之地,不可不察也。

怪叔叔者,萝莉控者也。庄子云,顺之萝莉昌,逆之萝莉亡。

子云:萌可萌,非常萌;控可控,非常控。萝莉控者,玄之又玄,众妙之门也。

时有痴者东郭先生,是日游于池。

有萝莉一双,步摇而来,甚萌。

远而望之,皎若太阳升朝霞;迫而察之,灼若芙蕖出渌波。

襛纤得衷,修短合度。肩若削成,腰如约素。

延颈秀项,皓质呈露。眼含秋波,目有远雾。

出没花间兮,宜嗔宜喜;徘徊池上兮,若飞若扬。

于是忽焉纵体,以遨以嬉。左倚采旄,右荫桂旗。

壤皓腕于神浒兮,采湍濑之玄芝。

东郭悦其淑美兮,心振荡而不怡。

东郭浑身痉挛,取道萝莉,直飙而去。

二萝莉大惊,然不善泳,躲之不及。

东郭破生理、物理之极限,乘风而至。

是时,东郭气势汹汹,势若奔雷,携惊涛骇浪,掩杀而至。

二萝莉惊呼:叔叔,莫要推倒小萌!

东郭先生闻言五脏俱裂,鼻血彪出三尺有余!

霎时势尽,没于水中,刻许竟不复出。

唯鼻血绽于水中,煞是美艳。

东郭非溺,乃惭,遁去也。

东郭自谙:

萝莉者,可远观而不可亵玩焉,古人诚不欺我。子云,三军可以夺帅也,匹夫不可以夺萝莉也。然余十有五而志于学,修身,齐家,治国,平天下之萝莉,将即而立而一事未成,有何颜见江东之萝莉!古云,万般皆下品,唯有萝莉高,若为萝莉故,生死皆可抛。况人而无萝莉,有如天之无太阳,情何以堪!萝莉未控,何以家为!

于是,东郭乃作腼腆状,人畜无害者也。循循而近。

及近,东郭乃问曰,吾有一物遗于此,遍寻不得,可曾见乎?

萝莉作掩胸状,曰,何物?

东郭摇首而叹,无他,金鱼尔。

萝莉甚怒,曰,金鱼溺此,不死何为,上天有好生之德,我等且速速寻之,放归大海。

于是,三人乃伴,遍寻于池。

太史公曰: 古来萝莉控者,不一而足。诗云,关关雎鸠,在河之洲。窈窕萝莉,君子好逑。子曰,志于道,据于德,依于仁,控于萝莉。孙子云,凡控萝莉之法,纯爱为上,推倒不为。故百推百倒,非善之善者也;不推而控之,善之善者也。故上控伐谋,其次伐利,下政为蛊。推倒者,禽兽不如,人神共愤者也。

行香子.情人节

行香子.情人节

自填词

世间蹀躞

权且抛却

无爱时把酒对月

情深清浅

与我无缘

只在乎那

杯中物

甘与甜

 

腹中万卷

怒马仗剑

铩羽只似

在红颜

酒后登徒

踉跄且呼

作草间花

花中蕊

蕊中蝶

 

东坡先生,此行香子被小徐填成这样,还请见谅!人云:酒入愁肠,化作相思泪。我连泪都流不出来,着实悲惨。你还有一张琴、一壶酒、一溪云,还有首者弗、后者闰、再者云。

罢了罢了,酒斟时须满十分,感情深的要一口闷!