分类目录归档:信息技术

VPS升级 LNMP(Oneinstack版本)设置笔记,重点排除rewrite伪静态问题


这几天抽空把博客升级,用了Oneinstack的套件。大部分的时间用来排除blog的伪静态rewrite。成功了才发现,之前早已经记录过这个问题。

Oneinstack的官网上好像还没有记载。照录在这里。

正常安装。编辑

usr/local/nginx/conf/rewrite/wordpress.conf

代码是这个:

location / {

if (-f $request_filename/index.html){

rewrite (.*) $1/index.html break;
}

if (-f $request_filename/index.php){

rewrite (.*) $1/index.php;
}

if (!-f $request_filename){

rewrite (.*) /blog/index.php;
}

}

要特别注意上面代码的最后,加粗的部分,这里的“blog”的放Wordpress的目录名称。然后重启服务:

service nginx restart

搞定。

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/1658/


和Evernote(印象笔记)交流记录


IMG 6617

6月26日,有幸应邀参加了印象笔记的一个聚会,和Evernote全球CEO Chris O’Neill、中国区(印象笔记)CEO 唐毅Raymond进行了面对面的交流。真正的互联网企业的管理者不应该是守着没有门槛的领域谈理想,也不应该是不顾产品的精神数用户。这方面,印象笔记做出了很好的表率。记录几条当时的谈话。这不是一篇广告,但我真心希望能有越来越多的用户使用Evernote(印象笔记),改变自己的生活。

慎重进行产品迭代

Evernote的大版本更新非常慎重,功能迭代一定是通过由小到大的累进实现的。Evernote不会因为“用户提需求”就对产品功能做出快速反应。企业内部要根据需求的合理性去评估具体的变化对产品整体的影响。一个具体的例子是,Evernote至今都没有“无限层级目录”这种功能,这就是对于“用户需求”的有效过滤。

中国区的“印象笔记”产品也不会片面的对标竞品,“丰富和完善”自身的产品功能。除了部分本土化的设置以外,完全与美国总部的产品架构保持一致。这不是懒惰,也不是迟钝,而是一种明确的价值观——爬雪山,慢就是快。

Evernote的用户数据是安全的,

Evernote也好,印象笔记也罢,至今未能对输出端进行丰富的开发,其共享、分享功能基本没有什么变化。这是有意为之的策略。目的是为了避免被定义为“社交软件”进而接受专属于“社交软件”的监管。唐毅特别提到,具体的事情就不要发在网上了。在这里,暂时只能这样说:Evernote(印象笔记)目前不具备太多“社交”属性,用户数据因此而安全。

数据是用户所有的

和Raymond谈到一个话题,不同的笔记软件对比,似乎只有Evernote的数据库格式可以自由的导出、迁移、转化,而有道、Wiz等均不行。Raymond介绍,Evernote内部是有明确的价值观的,用户的数据就是用户的,不是企业的。Evernote永远不会以使用深度和黏性要挟客户持续使用。每一个客户都有权利随时将数据导出,另作他用。说到底,数据是用户所有的。这是一个铁律,绝不会被突破。

彻底的推进API对外开放

Evernote目前完全开放了API,所有无数的App才能有“导出到印象笔记”这个功能。这一点上,Evernote领先于市场。Raymond介绍,这与目前“去社交化”的策略有关——“输出”一端被弱化了,就集中注意力把“输入”做得更便捷。

市场开拓注重维度拓展,而非线性扩张

这是我自己的感觉,不是管理层的谈话。Evernote目前的工作重点并不是单纯意义上的“地推”式扩张。国内用户做到2000万档位的今天,更多的拓展工作放在了和关联领域的企业进行多角度的合作。例如,近期和新东方的合作就是一例。Evernote在做的事情更像是“潜在客户的挖掘”,而非技术含量较低的“码人头”

技术上,以“借助技术,深化认知”为大方向

进一步改善存储与分享不是Evernote的前进方向。Evernote的未来将建立在借助人工智能技术帮助客户提升认知效率上。一方面,有学习意愿和学习习惯的客户将会借助Evernote获得更高的学习效率,另一方面,基础客户也将体会到技术力量对日常生活的改变。这一切将以最前沿的AI技术为基础,这是美国总部目前的主要努力方向。

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/1644/


OmniOutliner4安装插件,导出Markdown文件


Github上有一个OmniOutliner4导出Markdown文件的插件:
https://github.com/fletcher/Markdown.ooxsl

这个插件可以让OmniOutliner导出符合Markdown格式的文本文件。遗憾的是,由于说明文件写得不是很清楚,无法顺利安装。经过一个中午的摸索,成功安装插件。这里记录一下。

首先,下载Github的代码文件:

1

双击解压缩:
2

将解压缩文件夹“-master”字符串删掉,回车:
3

此时,Mac系统会要求确认,是否变更后缀。点击右侧的“使用.ooxsl”:
4

刚刚解压的文件夹变成了一个文件,后缀是“.ooxsl”
5

双击,选择“安装和退出”即可安装:
6

安装完成,重新运行Omnioutliner4,即可导出Markdown格式的txt文件了。
7

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/1624/


如何在mac系统下载Slideshare的演示文稿


Slideshare上有很多有价值的资料。有些时候save按钮不能使用,也就无法保存演示文稿。采用下面的方法可以将这些文稿保存到本地。

下载Slideshare的演示文稿

首先你需要有一个自己的主机。用这段代码建立一个php文件。

<?php
$slideshowUrl="http://www.slideshare.net/coogle/ajax-and-php";
$slideshowPageContent = file_get_contents($slideshowUrl);
$pattern = "~doc=([w-]+)~";
preg_match($pattern,$slideshowPageContent,$matches);
$xmlurl = "http://s3.amazonaws.com/slideshare/{$matches[1]}.xml";
$sxml = simplexml_load_file($xmlurl);
foreach ($sxml->Slide as $slide)
echo $slide['Src']."<br />";
?>

http://www.slideshare.net/coogle/ajax-and-php中的coogleajax-and-php替换成要下载的Slideshare页面中的对应文字即可。

运行这个php文件,会得到类似这样的内容:

http://slideshare.s3.amazonaws.com/random-*****-phpapp02-slide-1.swf
http://slideshare.s3.amazonaws.com/random-*****-phpapp02-slide-2.swf
……

下载这些文件即可。

将下载的swf文件转换成pdf后合并

如果是windows系统,可以利用这个软件(vialocal)将swf转化成jpg。

如果是mac系统,可以直接用safari或chrome打开这些swf,然后另存为pdf。再将pdf文件合并即可。也可以用浏览器打开后直接存进印象笔记。

这时,下载的资料已经可以利用了。

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/1491/


读书笔记、读书卡片与DEVONthink


对一位科学家来说,整理和组织材料的过程本身,就是一种享受。……从事这一工作时,感到很愉快。这种快感,实际上就是意义本身。——《奇特的一生》

Devonthink

 

出于个人习惯,这些年一直在关注Mac终端上的读书笔记和读书卡片。不动笔墨不读书,读书不留下些书面材料,总觉得有点对不起读书用掉的时间。五六年来,对卡片的载体进行了一轮一轮的探索,目前使用的DEVONthink 2 pro。这个软件,可以很好的满足读书卡片系统的基本需求。

一年前曾写过一篇《用Filemaker Go打造iPad个人读书卡片数据库》,提到了读书卡片系统诸如元素化、本地化、便携性等几个基本要求。实际的使用中,Filemaker数据库暴露出了一个巨大的问题:作为数据库软件,将检索结果聚合在一起然后集中导出很容易,但想要实现快速检索然后集中显示聚合在一起的结果则很难——数据库将“卡片”检索出来,“摞成一摞”,每次只呈现一张。另一个问题是,数据库基于纯文本的存储原则,无法在后续使用中Highlight需要的字句,没办法在“卡片”上标标画画,人与卡片之间仿佛隔了一层玻璃。幸好在Mac上还有DEVONthink,可以满足元素化、本地化、可聚合等基本需求,同时还可以聚合呈现,可以Highlight标注。就目前的使用情况来看,这是一款读书卡片神器。

Devonthink

 

DEVONthink是一款德国人在很多年前编写的软件,中文互联网上对它的讨论还不太多。值得注意的一点是,在英文世界的讨论中,出自各学科研究者的比例非常大。也许这款软件天生就是为了学术研究而诞生的。

Devonthink

 

第一次知道DEVONthink是很偶然的打开了一篇2005年的文章,一个台湾人写的,题目是《從卡片盒到DEVONthink》。那时候还没有使用Mac,看了一眼就略过了。直到后来使用DEVONthink后重新检索到这篇文字,恍然间有了一种踏破铁鞋、柳暗花明的感觉。到目前为止,检索到的最早的讨论DEVONthink的材料是一个老外写于2003年的文章,题目叫《Outboard Brains for OS X》,将DEVONthink比做了“外脑”。绝不是夸张,DEVONthink就是“外脑”。除了收集、存储以外,DEVONthink可以将内容有序组织在一起。如果英文够好,能够用英文写笔记,抄卡片,读文献,DEVONthink甚至可以根据词汇的重叠程度自动分析文章或笔记之间的关联程度,提供“See also”功能,让内容关联最紧密的文章集中显示。这种关联并不是基于“Keywords”,不是基于“Tags”,而是基于文本的内容;这一切都是智能的,不需要人工干预的。当然,由于DEVONthink不能解决中文分词问题,对中文材料只能以句子作为判断单位,效果就差多了。

Devonthink

 

DEVONthink使用的是Mac系统中普遍采用的Library存储方式,有点像iPhoto这类的软件。所有的图片、文字全部存储在一个Library中。这个Library包可以任意移动位置,可以放到移动硬盘,也可以放到Dropbox随时同步。在本质上,Library并不是一个独立的文件,而是一个文件夹。Evernote、Onenote可能面临的存储文件损坏问题,在这里并不存在。内容变化时,Dropbox同步也仅仅同步改变的索引文件和增量的内容,并不会动辄将整个Library通过互联网上上下下的反复上传下载。

有一个老外,自己的主数据库达到了29G,有些担心软件的可靠性。经过咨询DEVONthink的开发者,得到了答案,DEVONthink的单数据库文件数上限是20万,字数(Words)上限是3亿。即使接近了这一上限,也可以通过分拆Library的方式处理。DEVONthink可以同时打开多个数据库操作,很方便。

Devonthink

 

通过运用DEVONthink,很多灵活有效地存储组合得以实现。例如,一个研究者可以将收集到的报纸、书籍截图以内容命名,以出版发行的日期作为Spotlight Comment的注释,存储在DEVONthink中。这样,可以直接按照时间顺序组织、挖掘。就这个应用方法而言,Evernote、Onenote很难实现。DEVONthink的强大功能保证了使用者有充分的空间在软件内进行个性化的“二次开发”。

这是个神奇的软件。仅仅用做收集读书笔记和制作读书卡片,肯定是大材小用了。有兴趣的话,建议以英文关键字在google进行搜索。英语世界中,DEVONthink是个很严肃的研究者软件。

希望DEVONthink可以帮助到越来越多的朋友。

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/1260/


用Filemaker Go打造iPad个人读书卡片数据库


0.引子:人人都需要读书卡片

中国古文献全文数据库完成后,一个普通的研究生的文献功底可以接近乾嘉学派高邮二王(王念孙、王引之)及段玉裁的水平以进入研究;而教授可以更集中精力去发现历史上从未发现的问题,解决有史以来不能解决的课题。——朱青生:《十九札》

历来文人都重视制作整理读书卡片。良好的个人卡片库可以使得写作成为“组织”、“加工”的过程,有助于将精力完全集中于思考和观点的表达,而不用将大量精力分配给材料的整理。发表是最好的记忆,人人都需要读书卡片

据说诗人李贺有一个传说,每天随身携带一个锦囊,遇到有灵感的时候就快速记录下来,将纸条扔进锦囊。于是乎经年累月,遂成一代诗人。这个故事的真实性和可行性都是有问题的。真实性的质疑在于古时没有自来水笔,出门在外无法很难及时在纸上书写;可行性的困惑在于大量数据无序集中,后期的挖掘利用是个不小的问题。

李敖曾经自述过“大卸八块”读书法,读书时遇到需要记录的部分,直接用刀剪剪裁,粘贴到一个大夹子中。如果正反两页都有内容,则买第二本书。如书好,想留,则买三本。大夹子依照知识点的主题不同,呈树状排列(如:历史-中国古代-唐代-李世民)。日后需要写文章,直接查找相关知识点,材料自然充裕。这种方法比李贺的可行的多,也真实得多,但仍然存在两个问题。首先,树状结构的只是组织结构很难满足有序排列的需要。举个例子,如果一级门类存在“历史”和“人物”两个分类,则“李世民”这个topic究竟怎么放?李敖本人的办法是再做一个副本存放。这样做会增加无谓的工作量,同时容易遗漏。第二个问题是大量的剪裁材料以非数字化的形式存放,后期利用会很困难。关于这一点,有“一柜子”笔记本的人都会深有体会。

1.理想中的读书卡片是什么样子?

前面的那些问题已经可以通过科技手段予以克服,数据的录入、组织、存储、利用均可以通过数字化方式实现。对于现代人而言,一个理想中的读书卡片库应该具备这些特点:

元素化

卡片库不是网摘,不宜用保存文章的方式保存。“做资料卡片的根本原则只有一条——元素化。简单地说就是“一张卡片一句话”。一句话只包含一个意思,一个意思是意思的最基本的单位。……不怕卡片多,就怕意思杂。”(朱青生)卡片应该是一个个知识点,哪怕是同一作者同一著作同一段落的文字,如果表达了两个意思,也应该制作两张卡片。

随身携带

现时中,对知识的需求是无处不在的,移动性的要求是最基本的要求。将个人的知识存储于台式机中早已不能适应时代的发展,笔记本电脑也过于不便。如果可以将卡片通过ipad、iphone等随身设备携带,则在绝大多数场合均可以对知识加以利用。

字段管理

根据内容的不同,卡片应采取字段的方式进行管理。传统的纸质卡片上,我们会人为划分区域,注明作者、书籍、出版社、年代、页码、内容等,事实上就是一种字段化的处理过程。在数据化的背景下,简单的字段处理成为必然。单纯的一个TXT或者DOC文件分段落存储是不能满足后期利用的需求的。根据这个要求,evernote被淘汰了。evernote里,我们可以将笔记元素化存储,一条笔记一张卡片,但仅有一个tag功能很难将卡片应有的字段要求满足。

跨平台

你永远不知道下一台电脑、下一部手机会是什么牌子,所以不要选择只能用于windows、mac、ios、android系统的软件,否则数据迁移是一个很痛苦的过程。这应该是一个底线要求。根据这个要求大量的解决方案被排除掉了,其中包括著名的onenote、新兴的wiz等。

聚合功能

建立卡片数据库的目的是后期利用。因此,数据输出前合理的聚合功能也成为了必需。我们需要了解的不仅仅是某一个内容在这里有,在那里也有,而是将这些涉及到的卡片聚合在一起。仅仅能够检索到是不能满足要求的,还必须有办法将检索结果有序聚合。在这里,各类wiki已经被淘汰了。

稳定性和易用性

由于是个人的卡片数据,稳定性和易用性必须同时兼顾。一来这个数据库可能会存储成千上万张卡片,用上几年、十几年,必须保证软件的稳定;二来由于软件是个人使用,技术要求不能太复杂,可以根据用户实际需求随时调整。从这点考虑,个人开发的软件(包括wiz、针式等)、在线服务(包括各类wiki、evernote、springpad等)和大型数据库系统均不宜采用。

2.用Filmemaker制作个人卡片数据库

事实上,上面这些要求,一台电脑,一个ipad和一个数据库平台就完全可以满足。软件方面,只需要一个适合个人的、跨平台的并可以在移动设备使用的数据库软件即可。这里我选择Filemaker作为了开发平台。制作过程可以用“三张表格、两个版本、一组关系”概括。

三张表格:书目信息、卡片内容和读书记录

书目信息、卡片内容和读书记录这三张表格应该是读书卡片数据库必不可少的。卡片内容自不必说,为了每一张卡片引用固定的书名、作者、出版社、年代甚至是封面,一个引用源“书目信息”是必不可少的。同时,为了记录自己的读书情况,便于日后检讨回顾,读书记录表也要有。读书记录表格大量引用书目信息,自有字段主要是开始读书的日期和读完的日期。

skitched-20120805-163735.jpg

(图片:Filemaker读书卡片数据库:书目信息表单)

skitched-20120805-163900.jpg

(图片:Filemaker读书卡片数据库:卡片内容表单)

Filemaker读书卡片数据库:读书记录表单

(图片:Filemaker读书卡片数据库:读书记录表单)

两个版本:MAC或PC端/移动设备端

Filemaker数据库有多个版本,可以在windows、mac和iOS系统上使用。PC机或MAC电脑的版本自不必说,为了实用性考虑,移动版本我选择的是ipad版本。iphone太小了,实在不适合使用。尽管iphone确实更随身一些。

Filemaker读书卡片数据库:mac版本界面

(图片:Filemaker读书卡片数据库:mac版本界面)

Filemaker读书卡片数据库:ipad版本界面

(图片:Filemaker读书卡片数据库:ipad版本界面)

值得一提的是,filemaker数据库目前最新版本是filemaker 12版,配套的iPad版本Filemaker Go 12 已经免费,但不支持12以前的数据库版本。现在开始动手的话有福了。我当时买Filemaker Go 11花了300多块钱。

一组关系:以书名为核心关联字段

这个数据库中表与表之间的关系是一个简单的不能在简单的关系。如图:

Filemaker读书卡片数据库:数据库关系

(图片:Filemaker读书卡片数据库:数据库关系)

其中,书名是最核心的字段,串联起了三个表格。

3.卡片数据库的检索

这个数据库制作完毕后,主要的应用模式要通过检索功能实现。Filemaker Go的检索主要通过两个方式:快速查找和进入查找模式(一般检索)。

快速查找

快速查找是在整个数据库中跨字段地检索内容,例如关键字为“excel”,检索结果既包含摘录笔记中包含“excel”的记录,也会包含书名中包含“excel”的记录。在实践中,快速查找可以很好的避免信息遗漏,但同时也会给检索结果带来干扰项。例如,快速查找“心态”这个关键词,《官僚体制,反资本主义的心态》这本书项下的所有记录都会被检索到。

可见,快速查找主要用于一两个关键词进行浏览式检索使用。

进入查找模式

进入查找模式就是进入一般数据库软件中的按字段分别查找。具体使用环节不用细说。查找模式可以实现一些高级功能。比如,要查找关于“茅海建谈论琦善”的观点,就可以在作者一栏填写“茅海建”,在笔记内容填写“琦善”,这样就可以避开蒋廷黻《琦善与鸦片战争》对检索结果的干扰。类似的字段组合方式还有很多,不再一一列举。

可见,查找模式有利于通过组合字段检索条件,实现精确的查找。

4.检索的实际应用

对于回想式的查找,一般只需要再iPad终端浏览查看即可。对于较为大量的信息汇总,iPad版本的Filemaker Go最常用的导出方式是打印PDF。如图:

Filemaker读书卡片数据库
Filemaker读书卡片数据库
Filemaker读书卡片数据库

无论是快速查找还是一般检索模式,检索结果无论多少,都可以输出PDF。通过点击设置图标-打印-PDF-保存或发送电子邮件,检索结果就以PDF的形式输出了。多项检索结果在PDF中对应多个页,一条记录一页。

举例。我们需要在从成千上万张卡片中输出关于“林则徐”的内容,则可以分别以“林则徐”、“林文忠”、“文忠公”为关键字检索,将结果输出一个PDF,片刻间我们手里就有了筛选过的关于林则徐的卡片汇总。

5.实践中的信息流动

实践中卡片数据库的使用一般遵循三个步骤:文本外部录入、集中整理数据、定期更新移动设备

文本外部录入

如果是纸质书籍或者扫描版PDF,一定要将摘录内容提前再记事本或notepad.cc等界面下录入电脑。录入时一般只需要录入页码和摘录内容即可。

之所以不在数据库内录入,主要是考虑尽量减少打开数据库的时间。另外纯文本的录入环境是有助于提高工作效率的。

集中整理数据

整理数据主要是靠粘贴了。由于我们会在数据库的书名设置好默认等于上一条记录,作者、年代和封面等字段从属于书名,所以一般将数据批量粘贴进卡片库时一本书只需要选择一次书名,需要每条记录都填写的只有页码和内容,这样效率比较高。

定期更新移动设备

制定一个计划,每周或每天单向的将电脑中的数据库复制进iPad。由于目前Filemaker Go还没有支持Dropbox或iCloud,暂时只能通过手动方式复制。好在卡片内容时效要求不高,每周或每晚定期复制也可以满足日常要求。

6.结语

高三开学前的暑假,我新启用了一个破旧的牛皮纸本子,专门摘录看书时遇到的比较有启发的句子,然后翻来覆去看。那时颇有些唐吉诃德般的勇气,不看英语不做数学,最喜欢翻来覆去看刘勰的《文心雕龙》和陆机的《文赋》。那个本子记了小半本东西。高三一年,作文无忧。

后来弃用了这个本子,最大的理由就是东西多了不好找。然后几年浑浑噩噩,混乱无序的乱用了几年电脑,直到遇到evernote2,那个纸条一般的笔记软件。之后,Mybase、evernote、Mediawiki、Confluerence等等所有和知识管理相关的软件都接触过。觉得还是Evernote好,但还是无法解决读书卡片的问题——设置不了字段,元素化起来整理不方便。直到一狠心啃了几天Filemaker,似乎真的走上了至少是目前能看到的终南之道。

知识管理这事,如美国诗人艾略特所说:

我们必不可停止探索,而一切探索的尽头,就是重回起点,并对起点有首次般的了解。

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/1131/


“能升值的电子产品”——Apple TV 3开箱记


十来天前,Justtwoit老师和AndersFu老师送了一个Apple TV 3。交货之际神神秘秘,“我们送你个能升值的玩意……”搞了半天,原来现在不能越狱,没办法安装XBMC等软件,功能大受限制。原配系统的环境下试用了一下,确实很不错。

开箱情况如下:

正面照:

Apple TV 3

后面照:

Apple TV 3

开箱了:

Apple TV 3

遥控器很小巧。

Apple TV 3

机身其实也很小。

Apple TV 3

播放界面很简明。

Apple TV 3

操作界面还是苹果一贯的风格,很方便。

Apple TV 3

感谢Justtwoit老师和AndersFu老师。期待越狱后的XBMC。

(本文图片来自iphoto的19350张照片中,若不是升级了内存,实在不会有心情一张张拿出来编辑。所以说,Macbook升级8G内存很重要。)

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/1104/


根治风火轮!——将Macbook Pro 466升级到8G内存


skitched-20120529-212725.jpg

不知从什么时候开始,手里4G内存的Macbook开始越来越频繁的出现风火轮,以至于使用iphoto、filemaker等大型软件时必须倍加小心,关上一个,再打开下一个。尽管如此,风火轮来的时候依然只有停止操作,等这台气喘吁吁的电脑缓过来了,才好继续使用。

使用内存监控软件观察了一下,每次Free空间跌破1G的时候,硬盘的swap功能就强制启动,风火轮随之而来。

今天升级了8G内存,果然再没有出现一次风火轮。

skitched-20120529-213459.jpg

总结几点:

1.尽量选择金士顿等兼容性好的品牌内存。我选的是KTA-MB1333/4G*2,总线频率1333Mhz,老款466可以100%兼容,甚至看起来不用降频(此处存疑,但上图确实显示1333Mhz)。

2.466是一款几年前的老机器,升级内存前应将系统更新至最新版本。

3.更换内存条前最好洗个手,再摸摸金属管道等物品,释放静电,防止静电击穿芯片。

P.S.有几位朋友建议升级SSD,确实是好主意。这次升级内存花费只有RMB300+,升级SSD大概要1000+-。此外,目前比较尴尬的容量也是个问题。如果希望彻底提升性能,SSD确实是不二选择。(20120529)

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/1092/


WordPress默认主题Twenty Ten的blockquote引用样式修改


WordPress默认主题Twenty Ten的默认blockquote引用样式为“斜体+缩进”,在排版上不太醒目。如图:

image

通过修改主题样式,可以使排版更加醒目、清晰。如图:

image

修改主题的Style.css:

查找“blockquote”,找到下面的代码:

blockquote {
font-style: italic;
padding: 0 3em;
}

这段代码有两个作用:一个句定义了斜体,一句定义了偏移的位置。我们在这段代码的前后通过注释符将代码注释掉:

/*
blockquote {
font-style: italic;
padding: 0 3em;
}
*/

在css文件末尾加入下面的代码:

blockquote {
background:#f9f9f9;
border-left:10px solid #ccc;
margin:1.5em 10px;
padding:.5em 10px;
width: 90%;
font: 微软雅黑, Georgia;
color: #888;
}
blockquote p {
display:inline;
}

其中,width宽度、font字体等处可根据实际情况修改。改完保存即可。如果需要恢复原状,只需要去掉最后一段代码,再把前面的注释符号去掉就可以。

20120211

20120529:经土木坛子兄提醒,如将上述代码最后三行去除,引用段落内可以完成换行。

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/892/


Linode VPS主机设置sendmail实现WordPress邮件通知


购买VPS后,一切系统功能都要自己动手实现。Wordpress通过mail()实现邮件发送。在VPS上,需要通过sendmail模块予以实现。

以Ubuntu为例:

1.安装sendmail

apt-get install sendmail
service sendmail start

2.设置sendmail开机自动运行

apt-get install chkconfig
chkconfig sendmail on

3.修改下php.ini的配置,调用sendmail功能

vim /usr/local/php/etc/php.ini 

找到有关sendmail_path的那一行,去掉行首注释,并改成如下的样子:

sendmail_path = /usr/sbin/sendmail -t –i

4.重新启动VPS主机

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/883/


买哪个Kindle好?


春节快过完了,全国快递员纷纷回归工作岗位,电动车物流系统康复在望。@哥本中分 老师打算用年终奖加上春节的理财收益再添点钱买一个Kindle。由衷为哥老师开心:Kindle这个群落又多了一员屠书虎将。想对哥老师说,年终奖存好或买好,Kindle没那么贵,用不了那么些钱。

型号

一共买过4个Kindle,涵盖了产品线的3个型号。Amazon的Kindle到了4代,去粗取精,只推荐两个型号:Kindle DXG和Kindle4。

这个是Kindle4:(via

1-33

这个是我的DXG:

只推荐这两个型号的原因,是在我看来触摸屏、Apps等因素都是没有太大意义的。Amazon Kindle的核心,一在内容和渠道,二在推送和扩展,三在E-ink电子墨水技术。三者之外皆是浮云。比如Touch,不仅触摸技术意义不大,还有一个致命缺陷——不能横屏阅读。这对于尝试用6寸屏幕去将就着看扫描版PDF的朋友来说,实在是个致命的打击。比如,一向不打诳语不杀生的@要冷静啊 老师就被暗算了。需要复杂的功能,买MAC Air吧,Ipad都直接被秒杀了。

Kindle DXG的优势和Kindle DXG的劣势

Kindle DXG最大的优势就是尺寸,与一本正常的书籍差不多大,完全可以良好显示扫描版本的PDF。当初刚刚买了Kindle,第一本阅读的扫描PDF是茅海建的《天朝的崩溃——鸦片战争再研究》,读到正文第一页,我就崩溃了。只恨自己没有早下决心,相见恨晚。在扫描版PDF资源保证的前提下,用Kindle DXG,完全可以替代读书。就像上年的读书总结中说的,用Kindle DXG读扫描PDF,最大的好处是可以解放双手。

此外,Kindle DXG的第二个比较优势是可以免费上网。只要出手的时候选好商家,货品全新,Kindle DXG会内含一个AT&T的全球免费不限流量3G上网专用SIM卡。用Kindle DXG内置的浏览器,可以不用特别设置直接浏览Twitter、Facebook、YouTube。带着Kindle DXG出门,查一下Gmail这类的需求可以随时得到满足。另外,这个SIM卡可以接入中国联通村村通大喇叭广播系统,直接使用WCDMA的3G网络。联通信号不好的时候,可以切换到中国移动的Egde网络。是的,你没看错哥老师,可以。——尽管回头来看,Kindle DXG上网比较鸡肋。

除了以上两点,Kindle DXG没有别的比较优势了。比较劣势包括:

  • 实际运行速度略慢于Kindle4(远好于任何一款国产产品)。
  • 电池待机时间少于Kindle4(远长于任何一款国内产品)。
  • 尺寸重量都大于Kindle4,不方便携带。
  • 贵。

这些都可以忍,爱它就要包容不是么。最不能忍受的一个缺陷,如同Touch不能横屏一样Amazon不会告诉你的缺陷是——Kindle DXG没有Wifi功能,不能接入随处可见的Wifi网络。每一款Kindle产品都可以实现这样一个功能:通过Push技术,将内容推送到Kindle里面。这内容可以是PDF、Mobi电子书,可以是一组汇总的“ReadLater”的网页,也可以是每天定时发来的报纸。Kindle DXG没有Wifi,意味着一切推送都要通过3G网络,意味国内使用要承担$1/MBytes的流量费用,意味着你基本上不会使用Kindle的头牌功能“推送”了——当然,也有可能你会像我一样,酝酿着再买一个Kindle4,Wifi的。

Kindle4 的优势和Kindle4的劣势

Kindle DXG的优势基本就是Kindle4的劣势。不再赘述了。买Kindle4,要想好一个问题:生命中可不可以没有扫描版PDF?相信我,这个世界上绝大多数的人是不需要扫描版PDF的。所以我并不是不推荐Kindle4。比如,你只喜欢茅盾文学奖,那基本上就可以选Kindle4了。

不用为难于选择型号。大不了再买一个Kindle4就是了。价格只相当于DXG的一个原装皮套而已。

价格和购买渠道

根据淘宝网的市场价格,Kindle4售价应该在600多元,Kindle DXG价格依然坚挺,高高在上,相当于4个Kindle4左右。Kindle DXG的如果屏幕碎了坏了,据说换一个屏幕的价钱是800左右。

我是通过淘宝网购买的全部Kindle产品。我很想直接把那个商家的链接贴在这里,但我不想以某种形式为其提供长期的授信。有兴趣又不踏实的朋友搜索所在地在你的省,同时销量降序排列的前3个商家吧,不会差很多,错不了。其实我在淘宝所有消费都是“所在地+销量”排序,大家可能都是这么做吧。最近一段时间经常收到发自河北、山东的北京卖家货品。

配件

一个原装壳是必要的。没有任何一款非原装壳可以在质量、重量和价格上媲美原装产品。我曾为Kindle DXG花费500+买了个原装壳,实践证明品质非常给力。专门的LED或原装带灯的壳就不必了,真没用,又不住集体宿舍,看书开灯就是。办公室中午大家午休的话可以买一个上图那样的LED灯,通用性强一些,也不贵。贴膜看兴趣,再差的膜也基本不会影响效果,再好的膜也派不上什么用场。我的办法是,买机器,让卖家送一个。这个要求还没被拒绝过。

结语

@哥本中分老师,可以出手了。买吧!

如果对Kindle4感兴趣,还可以看看这里

20120208补充:

网友Lionheart:

Touch虽然官方没有支持横屏,但是装上这个就可以可以横屏了 https://github.com/yifanlu/KindleLauncher/downloads 而且也带有重力传感器,可以期待以后的升级

4虽然便宜了20$,但是它的内存和待机时间仅有Touch的一半,还没音频播放功能

触摸屏用起来很方便的,也很精准,现在触屏手机用多了,还是划来划去方便,恨不得在电脑上也装个触摸屏

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/860/


Nginx下设置www.kangjian.net访问kangjian.net


在VPS上配置好LNMP环境后,发现已经在Linode DNS Manager里面设置好的www.kangjian.net的A记录解析失效,访问显示403错误。kangjian.net访问一切正常。conf配置文件出了问题。

配置操作如下:

系统环境:Ubuntu+Nginx

首先进入vhost.sh设置过虚拟主机域名的conf文件夹

cd /usr/local/nginx/conf/vhost

vim kangjian.net.conf

这个文件里面的server_name行,加入粗斜体部分:

server_name kangjian.net www.kangjian.net;

ESC-Shift+Q-x保存退出,重启Nginx

/usr/local/nginx/sbin/nginx -s  reload

www.kangjian.net可以访问了。

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/790/


Linode VPS 设置LNMP (Linux + Nginx + Mysql + PHP) + WordPress伪静态笔记

Lunarpages实在是过慢了。服务行业就是这样,低价格一定是低品质。500ms以上的ping值无论如何不具有实用价值。于是挑战一下,从零开始试用了一下Linode的VPS。门户博客就像宾馆,拎包入住;虚拟主机就像毛坯房,尽管作何用很自由,但毕竟格局已定,条条框框就在那里,简单装修即可;VPS则彻底是地皮一块——裸机一台,需要自己选择系统究竟是CentOS还是Ubuntu,再通过SSH远程操作,从装系统开始,逐步搭建一个生产环境。 自从进了法学院,久违了这种码农似的研究。Linux的操作感果然很好,尽管没有GUI界面,依然是高效的。记录一下设置VPS的过程,方便以后的自己,也方便有缘读到这些文字的朋友。

一、牢记几个关键密码

这些密码层级不同,用处各异,必要的话用纸写下来。无论是操作虚拟主机还是VPS,千万不要因为记错不同的密码浪费时间。

  • 登录linode的账号、密码
  • 主机root密码
  • MySQL的root密码
  • FTP用户的密码
  • MySQl的FTP数据库(PureFTPd)密码
  • PhpMyAdmin的root密码

二、安装系统,搭建环境

这里我选择的是Ubuntu 11。这是我唯一接触过的Linux系统,使用者也多,google的资源丰富。 ssh环境下,vim或Linux操作时,鼠标右键单击=Ctrl+V,Ctrl+Inster=Ctrl+C。下面的所有指令都可以复制到剪贴板然后再ssh中右击粘贴,不要一个字母一个字母录入。

1.直接运行以下命令:

apt-get upgrade apt-get update

2.使用以下命令修改主机名称:

echo “YourVPSName” > /etc/hostname hostname -F /etc/hostname

其中YourVPSName可以替换成你自己的名字。

3.设置时区

tzselect

根据提示选择,一般5-9-1-1设置Beijing即可。

4.获取lnmp一键安装包并解压

wget -c http://soft.vpser.net/lnmp/lnmp0.8.tar.gz tar zxvf lnmp0.8.tar.gz

5.安装lnmp

cd lnmp0.8/ ./ubuntu.sh

这一步需要输入一个绑定的域名,根据lnmp.org的建议,使用一个二级域名lnmp.xxx.xxx,这个域名是互联网上不存在的,修改本地hosts可以使用。 马上要设定几个密码,准备好纸笔,写清楚即可。 这一步耗时大概30分钟左右。程序会自动安装编译Nginx、PHP、MySQL、phpMyAdmin、Zend这几个软件。

6.安装几个必要组件

这一步基本没什么难度,相当于Windows下的一路Next。这一阶段要安装eAccelerator、ionCube、imageMagick、memcached、PureFTPd等。

7.升级Nginx版本

./upgrade_nginx.sh

按提示输入nginx的版本号,如1.1.13。

8.升级PHP版本

./upgrade_php.sh

按提示输入php版本号,如5.3.9。这一步很重要,据说老版本的PHP有比较严重的漏洞。5.3.9比较安全。

9.添加虚拟主机

/root/vhost.sh

这里会要求输入一次rewrite的程序。输入即可。伪静态不管用,后面需要重新写rewrite规则。

10.至此,系统环境基本搭建完毕。

三、几个必须要做的调整

1.设置ftp自动运行

这一步是必需的,否则一旦VPS重新启动,FTP将无法直接登录。如果你几周以后Reboot了系统,忘了FTP不能自动运行,导出找原因会找到死。 执行如下命令使开机启动:

cat >/etc/init.d/pureftpd.sh<<eof /root/pureftpd start eof update-rc.d pureftpd.sh defaults

2.设置目录写入权限

之前我们的操作是以root账户完成的,所有文件/文件夹的所有者都是root。如果保持这个状态,之后我们将无法以ftp账户的名义执行很多操作——比如任何形式的写入;同样,Wordpress等程序也无法上传附件。

chown -R www /home/wwwroot

chown指令将后面的目录的所有权限指派给了www用户。在前面设置ftp你已经将ftp账号的uid和gid设置成www组了。至此,一个Wordpress的环境设置结束,可以“自豪的使用Wordpress了”。

3.设置可用的rewrite伪静态规则

网上有很多Nginx的rewrite伪静态规则笔记。在我的实践中发现,大多不能用——不仅仅没有效果,有可能连累系统无法运行。rewrite设置得我几欲放弃,已经甘心宁愿用“?p=**”的传统默认链接了,最后一试成功了。下面的代码可以直接解决单域名单一目录或多子目录(多Wordpress,比如kangjian.net)的伪静态rewrite问题:

vim usr/local/nginx/conf/wordpress.conf

单一目录rewrite伪静态规则:(根据WP所在目录改写/blog部分)

location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /blog/index.php; } }

多个wordpress程序,多个子目录:(根据WP所在目录改写/blog和/paste部分)

location /blog/ { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /blog/index.php; } } location /paste/ { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /paste/index.php; } }

改写完wordpress.conf,执行下列语句重新启动Nginx的web环境:

/usr/local/nginx/sbin/nginx -s  reload

四、安装Wordpress程序

现在,安装Wordpress还是恢复别处备份来的Wordpress就看具体情况了。 感谢lnmp.org

后续文章:

Nginx下设置www.kangjian.net访问kangjian.net》 – 2012-1-30
Linode VPS主机设置sendmail实现WordPress邮件通知》 – 2012-2-11
Linode VPS升级 LNMP(Oneinstack版本)设置笔记,重点排除rewrite伪静态问题》 – 2016-8-23

WordPress程序中的Trackback


一直以来觉得blog最伟大的功能就是trackback,尽管这个词目前还没有统一的翻译。前几天还在做专家状给初级zbloger普及 trackback的功能,却发现其实自己还没搞清楚Wordpress下的trackback地址究竟是什么。以至于信誓旦旦的说,Wordpress 就不像Zblog那样单独有一个trackback地址,日志地址就是trackback的URL。完全记错了。

WordPress下面的trackback地址是每篇日志的url后面加上“/trackback/”。

例如这篇日志的URL是:

http://kangjian.net/blog/439

这篇日志的trackback地址就是:

http://kangjian.net/blog/439/trackback/

WordPress下面的很多模板都不会默认设置显示trackback地址,可以手动添加到single.php的适当位置中去:

本文Trackback引用地址,欢迎通过Trackback与我一起讨论

顺便多说几句,一直以来鄙视新浪博客的最主要原因就是新浪把类似trackback这样的blog基本功能阉割了,好端端的博客变成了“网络日记+留言板”,十足的落后生产力的代表。为什么这么说,可以参看这篇文章

写这篇日志参考了几位朋友的文章(1,2),在此一并表示感谢。

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/439/


解决了Windows Update下载成功更新失败的问题


以前总觉得Live Writer写博客不能设置Tags、摘要,很麻烦。最近Zblog推出了个Windows Live Writer的插件,据说是可以直接支持Writer中关于Tags和摘要的输出了。找到了Writer重新安装,却莫名其妙地出错。有点梁亚洲“有贼心也有贼胆,贼没了”的意思。折腾了几天,总算把莫名其妙的Update弄好了,Live Writer的在线安装自然也好了。把方法记在下面,有同样情况的同学可以试一下。

1、点击开始-运行,输入cmd回车,进入命令行状态,输入下面的命令,一行一回车。

regsvr32 wuapi.dll

regsvr32 wuaueng.dll

regsvr32 wuaueng1.dll

regsvr32 wucltui.dll

regsvr32 wups.dll

regsvr32 wups2.dll

regsvr32 wuweb.dll

2、还是在cmd命令行环境下,输入下面的命令行。不用管具体显示的内容,知道光标提示符重新出现,尝试按下字母键可以输入字母的时候就可以了。

for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

3、重新启动计算机,问题应该可以解决。

原文来自:风云居 | Less is more
本文链接: https://kangjian.net/blog/188/