星期二, 十二月 29, 2009

推荐几个 OpenOffice.org 扩展

以下介绍几个我常用的OpenOffice.org扩展。如果你和我一样,使用免安装的OpenOffice.org Portable,那么在安装扩展时,请注意选择“only for me”选项。这将保证,你安装的扩展存储在“Data/settings” 目录下,以防止今后更新OpenOffice.org时,已存在的扩展被覆盖。

ExtensionManager_OnlyForMe

Sun PDF Import Extension可以将PDF文档导入至OpenOffice.org Draw,并在保持原有格式的基础上做简单修改,随后你可以再将文档保存为ODF或PDF格式。利用Sun PDF Import Extension,可以修改文档中的文本内容,改变其字体和颜色;还可以缩放图片和增加图形。它适合对格式简单的文档做小范围调整,而对于格式复杂的大型文件(大于20页)可能会有些力不从心。(这世上能对PDF随心所欲的程序,还没有出现吧?)

Sun PDF Import Extension PDF

Sun Presenter Console可以为幻灯片放映提供更多控制。读者通过主屏幕看到当前页面,而讲演者则能够查看当前页面、下一页面、备注、计时、和幻灯片缩略图等更丰富的信息,以利于您掌控演讲过程。

Sun Presenter Console

Template Changer将在“File”菜单下的“Templates”子菜单中,增加两个项目:“Assign template (current document)...”将模板应用于当前文档;而“Assign template (folder)...”将对指定目录下的所有文档应用模板。利用Template Changer,你可以轻松改变文档的样式,也便于保持多篇文件的一致性。

Templates_Menu

星期五, 十二月 04, 2009

让 Hyperion Analyzer 报表自动定位当月数据

对于月度报表来说,能够自动定位并显示当月数据,是非常明显和必要的需求。

如下图所示:假定现在是12月,所以当前月份(黄色高亮显示区域)显示This Month,YTD和Full Year等详细数据;而其它月份只显示相应月度数据。重要的是,当前月份应该是自动定位的:即根据当前月份的变化,确定各个月份显示信息的多寡,而报表格式保持从财务开始期间到结束期间的排列。否则,我们就需要为不同月份生成不同的报表了。

Analyzer_Report_CurrentMonth

首先,在Essbase中,设置Substitution Variable: Current_Month为“Dec”;

Essbase_CurrentMonth_SubVar

然后,在Hyperion Analyzer中,右键点击行或列;从弹出菜单中选择“Analysis Tools”-“Show / Hide”;手动选择“Current_Month”显示多列数据,而其它月份只显示一列数据;

Analyzer_Report_CurrentMonth_Show

最后,设置结果如下:

Analyzer_Report_CurrentMonth_Show_Setting

现在,你的报表可以根据当前月份自动变化了。可谓,一劳永逸,化繁为简。

星期三, 十一月 25, 2009

Lovely Brizzly

我必须用“简洁流畅”来形容Brizzly的用户界面,她绝对配得上更美妙的赞赏。Brizzly也是给我最佳用户体验的Twitter网站。

当滚动到屏幕最末端时,Brizzly就会自动刷新,让你看到更多Tweet,而不需要重复地点击“More...”按钮。

当有新的Tweet或Mentions,左侧相应的功能链接旁就会显示一个蓝色的圆圈; 如果收到新的Direct Message,那么还会在右侧同时用浮动框提醒你阅读并回复。

你也可以在屏幕顶端的搜索框中,查找关键词或用户名。跟随你感兴趣的推友,获得新鲜的信息。

Brizzly_UI

Brizzly可以自动显示图片和视频,不用点击链接打开新窗口,就能欣赏多媒体内容。

Brizzly_PreviewImage

除了更新文字内容,Brizzly还允许上传图片,并生成相应的短地址。

Brizzly_Photo

点击任一Tweet下方的“Retweet”链接,就会扩展行后的空间,你可以在编辑框中修改RT的内容,或者上传图片。点击“Retweet”按钮RT,或者点出“Save draft”保存为草稿。重要的是,Brizzly并不会刷新屏幕,把你带到最近RT的Tweet,她只是隐去扩展出的空间,留在原来的地方,让你继续浏览下去。这样边看边推,当然更加方便,也更加合理。

Brizzly_RT

在任一Tweet中,只要点击用户的头像,就会立刻显示他的基本信息,随后点击相应按钮还可以发送消息、Unfollow,或者为用户分组。如果点击用户名,那么还会显示完整信息和最近Tweets。

Brizzly_Profile

利用用户信息里的“Mute”按钮,可以“静音”某个朋友的发言。如果你(只是出于礼貌)Follow了某人,而(目前)对他的言语并不是很有兴趣,那么并不需要生硬地Unfollow,只要Mute,他的更新就不会出现在Brizzly中。

在Brizzly中,可以使用多个Twitter帐号,还可集成Facebook帐户。

Brizzly_Facebook

现在侥幸暂时能“与国际接轨”了。

星期四, 十一月 19, 2009

Hyperion Planning Overview

Repeat this cycle until either the management team is happy with the budget or budget managers lose their will to live

- Gartner

诚如以上Gartner所言,编制预算对企业来说,无疑是个耗时费力的“痛苦“过程。突出表现为以下问题:

Planning Key Tasks and Common Issues

Hyperion Planning做为企业级的全面预算解决方案,能够优化和整合预算流程,显著提升计划的准确程度,并大大缩短计划编制时间。

以下文档,将简要介绍Hyperion Planning的主要功能和优势。

上传到SlideShare后,背景颜色有些问题,请至Google Docs查看正确版本。

星期五, 十一月 13, 2009

离去的诗歌

我们致力于获得专门技能......我们想问题是分类的,诗歌、武器、秘密; 我们高度重视意义......我们越来越少地幻想自己和相信自己。

诗歌是探寻真实感受的道路。

诗歌不能救赎我们,但诗歌能创造一种境界,在其中,我们生存,并获得救赎。

--莫瑞尔·鲁凯塞

星期一, 十一月 09, 2009

谁是(公共)知识分子?

《谁是知识分子?》一文中,作者追溯了“知识分子”这一称谓的来历。

“知识分子”(intellectual)一词的产生源于法国历史上著名的德雷福斯事件(Dreyfus Affair)。1894年法国参谋部得知内部有人秘密向德国情报机关提供武器资料,此事引起上层军官重视,将军要求在最短的时间内找出叛徒。参谋部在证据极不充分的情况下将实习军官犹太人德雷福斯推上审判席,经过秘密审判德雷福斯以间谍罪和叛国罪被判终身流放。两年后一些新的证据被媒体披露,这些证据足以证明真正的叛徒逍遥法外而德雷福斯只不过是“替罪羊”,许多法国人纷纷向政府和军队呼吁要求重新审判德雷福斯案。在舆论压力下法院重新开庭,但审判结果不仅维持了原判还将一个向媒体说出实情的军官判为泄密罪。

作家左拉在报纸上发表了《致法兰西共和国总统的公开信》,它有一个更为大家所熟悉的标题——《我控诉》。在公开信中左拉以极大的勇气控诉国防机关、军事法庭及某些上层军官违法乱纪的行为,指出这是最为可耻的违背人道和正义的“国家犯罪”。法国军方以“诽谤罪”对左拉提出起诉,左拉被判有罪,逃亡英国。流亡国外的左拉并未放弃抵抗,他号召更多的人认清真相,起来斗争。除了左拉,许多学者、教师、媒体工作者、学生都纷纷站出来,表达他们的正义和良知。这时“知识分子”一词出现了,初始这是对抗议者的蔑称,暗示这些人的行为脱离现实、不合时宜,但抗议者却主动接受“知识分子”的叫法。在“知识分子”的带动下,越来越多的法国民众发出质疑的声音,法院不得不再次重审德雷福斯案,这次审判依旧认为德雷福斯有罪,但迫于公众的压力,新上任的总统宣布特赦德雷福斯。1906年,在德雷福斯首次被宣判有罪十二年之后,上诉法庭终于宣布取消德雷福斯的叛国罪、间谍罪罪名,为其恢复名誉。

在这一事件中诞生的“知识分子”一词毫无疑问和争取公理、正义以及对抗强权有密切关系,而在西方学者对知识分子的概念界定中,无论是萨伊德认为的“知识分子是具有能力‘向'公众以及‘为'公众来代表、具现、表明信息、观点、态度、哲学或意见的个人,在扮演这个角色时必须意识到其处境就是公开提出令人尴尬的问题,对抗(而不是产生)正统与教条,不能轻易被政府或集团收编,其存在的理由就是代表所有那些惯常被遗忘或弃之不顾的人们和议题。”还是福柯提出的“知识分子的工作不是去塑造他人的政治意志,而是通过他在自己研究领域的分析,对那些自说自话的规则质疑,去打扰人们的精神习惯、他们行事与思想的方式,去驱散那些熟悉和已被接受下来的东西,去重新检验那些规则和体制,在这一重新质疑的基础上(他在其中完成作为知识分子的特殊任务),去参与政治意志的形成过程(他在其中扮演公民的角色)。”亦或是萨特的例证,“当一个科学家在实验室里进行核试验研究时他不是一个知识分子,而当他在反对核战争的请愿书上签名时才是。”具有公共关怀和批判意识,且有强烈社会责任感显然是知识分子的一大特质。

文中虽然用的是“知识分子”这一称谓,但显然只谈论的是“公共知识分子”––简而言之就是,那些关注社会,同时也被社会关注的知识分子。就像萨伊德在《知识分子》论中说的那样:

真正的知识分子应该在公开场合代表某种立场,不畏艰险地向公众做清楚有力的表达,叱责腐败,保卫弱者,反抗压迫的权威。

当然,应该还有另一类“知识分子”––他们只专心于自己的学问,而对世事并不在意。可能他们也像翁贝托·埃科一样相信:

知识分子是一种只能制造危机,却无法解决危机的职业。

而我以为,“知识分子”应该有着美好的精神世界,着实不该去想如此污浊的人间。

在我看来,当下中国只有三个“公共知识分子”:韩寒、老罗和陈丹青,可他们对这样的称谓却也不以为然:韩寒并不接受这个角色,他说自己只是在由着性子来,想什么就说什么而已。陈丹青也不承认自己是公共知识分子,他说现在中国还没有充分的公共空间,哪里来的公共知识分子。老罗理解的知识分子很简单,读过几本书,有独立思考能力,再有几根硬骨头就差不多了。他希望所有知识分子都关心社会现实,瞧不上那些一心关门做学问的知识分子。

唯一的好消息是––原来除了专家之外,还真有“知识分子”存在。

星期六, 十一月 07, 2009

如果怀疑主义能平息狂热

如果怀疑主义能平息狂热,那么就让我们真心呼唤它们的来临吧!

—— 雷蒙·阿隆(1905-1983)

星期三, 十月 28, 2009

VIM学习笔记 状态行(statusline)

Vim默认的状态行,左侧显示当前打开的文件名,右侧显示当前所处的行列位置。当你执行Vim命令时,状态行将消失并显示命令输入及输出。

通常状态行用反色显示。你可以通过修改highlight选项中的s字符来改变。例如,sb设置为粗体字。如果状态行没有启用高亮 (sn),那么字符^表示当前窗口,字符=表示其它窗口。如果支持鼠标并且已经通过设置mouse选项使之启动,那么你可以用鼠标拖动状态行以改变窗口的大小。

定制状态行

我们可以使用以下命令来定义状态行:

:set statusline format

例如以下命令,将在状行中包含文件名:

:set statusline=The file is"%f"

选项包含printf风格的%项目,中间可以间杂普通文本。内容默认为右对齐,如果希望左对齐,那么可以在%后面加上-。数字内容是忽略开头0显示的,如果需要显示前导0,那么可以在%后加上一个"0"。单个百分号可以用"%%"给出。最多可给出80个项目。

如果此选项以%!开始,它用作表达式。计算此表达式的结果用作选项值。

参数列表
%(...%)定义一个项目组。
%{n}*%对其余的行使用高亮显示组Usern,直到另一个%n*。数字n必须从1到9。用%*或%0*可以恢复正常的高亮显示。
%<如果状态行过长,在何处换行。缺省是在开头。
%=左对齐和右对齐项目之间的分割点。
%字符%
%B光标下字符的十六进制形式
%F缓冲区的文件完整路径
%H如果为帮助缓冲区则显示为HLP
%L缓冲区中的行数
%M如果缓冲区修改过则显示为+
%N打印机页号
%O以十六进制方式显示文件中的字符偏移
%P文件中光标前的%
%R如果缓冲区只读则为RO
%V列数。如果与%c相同则为空字符串
%W如果窗口为预览窗口则为PRV
%Y缓冲区的文件类型,如vim
%a如果编辑多行文本,这个字行串就是({current} of {arguments}),例如:(5 of 18)。如果在命令行中只有一行,这个字符串为空
%b光标下的字符的十进制表示形式
%c列号
%f缓冲区的文件路径
%h如果为帮助缓冲区显示为[Help]
%l行号
%m如果缓冲区已修改则表示为[+]
%n缓冲区号
%o在光标前的字符数(包括光标下的字符)
%p文件中所在行的百分比
%r如果缓冲区为只读则表示为[RO]
%t文件名(无路径)
%v虚列号
%w如果为预览窗口则显示为[Preview]
%y缓冲区的文件类型,如[vim]
%{expr}表达式的结果

显示/隐藏状态行

即使已经使用以上命令设置选项,状态行还是保持原样,这是因为Vim在默认情况下是不显示状态行的,而仅显示命令缓冲区等极少的信息。我们可以使用以下命令,将状态行显示在窗口底部倒数第二行:

:set laststatus=2

你也可以使用以下命令,移去状态行:

:set laststatus=0

状态行实例

利用以下命令,可以在状态行中显示:当前文件名,文件格式(DOS, Unix),文件类型 (XHTML),当前位置和文件总行数。

:set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]

实际效果如下图所示:

statusline_1

除了显示的内容,你还可以使用以下命令定义显示的颜色。

:set statusline=%2*%n%m%r%h%w%*\ %F\ %1*[FORMAT=%2*%{&ff}:%{&fenc!=''?&fenc:&enc}%1*]\ [TYPE=%2*%Y%1*]\ [COL=%2*%03v%1*]\ [ROW=%2*%03l%1*/%3*%L(%p%%)%1*]\

需要使用以下命令,自定义高亮显示颜色。

hi User1 guifg=gray

hi User2 guifg=red

hi User3 guifg=white

实际效果如下图所示:

statusline_Color

你还可以通过在_vimrc文件中包括以下命令,使状态行根据状态的不同,显示不同的颜色。

function! InsertStatuslineColor(mode)
if a:mode == 'i'
  hi statusline guibg=peru
elseif a:mode == 'r'
  hi statusline guibg=blue
else
  hi statusline guibg=black
endif
endfunction
au InsertEnter * call InsertStatuslineColor(v:insertmode)
au InsertLeave * hi statusline guibg=orange guifg=white
hi statusline guibg=black

如下图所示,状态行的文件名部分,在插入状态时显示为橘色背景,这样就能很明显地提醒我们所处的状态:

statusline_Mode

命令小结
:set statusline format定制状态行
:set laststatus显示/隐藏状态行

Ver: 1.1<上一篇 | 目录 下一篇>

星期五, 十月 23, 2009

在Mac下选取PDF

在Mac内置的预览(Preview)程序中,点击工具栏上的“文字工具”,就可以像普通的文字编辑工具那样利用鼠标拖动选择文字。如果你只想选取某些列,而不是整行的文字,那么只需要按住Option键的同时拖动鼠标。

Crop_Column

点击工具栏上的“选择工具”,可以选取PDF文件中的特定部分,然后拷贝并生成图片。

Crop_Image

开源的PDF阅读程序Skim,不但可以分列选择文字,而且还可以组合这些分开的文字。

点击工具栏上的“Text Tool”按钮,按住Option键的同时拖动鼠标以选择某个区域中的文字;然后点击“Add New Highlight”按钮,高亮显示选中的文字。重复以上操作,就可以高亮显示多段文字。

Select_Skim_Highlight

按住Shift键的同时,逐一单击高亮显示区域,就可以组合这些区域;然后双击鼠标,查看和复制连接后的文字。这样很方便你摘录不同段落中的文字,然后经过组合再用于别处,省去了多次复制粘帖的烦琐。

Select_Skim_Highlight_Join

Tags: , , , ,

星期日, 十月 18, 2009

在Mac下隐蔽PDF

你可能并没有意识到,当你创建PDF文档时,可能正在泄露自己的隐私。因为在保存PDF文档的同时,也将存储一些元数据(metadata):比如你的姓名、文档由何种程序创建、创建和修改日期等。而这些信息也将在PDF阅读器中一览无遗。比如在预览程序中,选择“工具”菜单下的“显示简介”。

Preview_GetInfo

为避免泄漏隐私信息,我们可以创建压缩的PDF文档。在打印生成PDF时,选择“Compress PDF””菜单项。

注意:在10.4 (Tiger)的打印对话框中默认存在“Compress PDF”选项,而在10.5 (Leopard)中却没有直接显示出来。因此,我们需要安装Compress PDF Workflow,以重新激活此功能。

Print_to_PDF_Compress

经过压缩的PDF文档将不会包含个人信息。

Get_Less_Info

jPdf Tweak是一个用Java编写的跨平台的开源软件。她可以说是一把PDF的瑞士军刀,提供了组合、拆分、旋转、排序、水印和加密PDF等多种功能。我们可以用它来修改PDF文档中的隐私信息。

jPDFTweak_DocumentInfo

首先,在“Input”页里选择PDF文档;然后,在“Document Info”页里加载文档信息,并增加、删除或修改其中的重要隐私;最后,在“Output”页里生成新的文件。

Tags: , , ,

星期五, 九月 18, 2009

在Mac下加密PDF

利用预览(Preview)程序的“存储为...”功能,在保存对话框中选中“加密”选择框;点击“存储”按钮后,将要求你输入密码。通过此过程,你将user password和owner password设置为相同的密码。

Preview_Encrypt

Set the Passwords to PDF是一个免费的程序包,其中包括一个名为“pdfauxinfo”的命令行工具,和一个名为“Add Auxiliary Info to PDF”的Automator动作。它可以为PDF文件设置user password和owner password。

Set_the_Password_to_PDF_v2

jPdf Tweak是一个用Java编写的跨平台的开源软件。她可以说是一把PDF的瑞士军刀,提供了组合、拆分、旋转、排序、水印和加密PDF等多种功能

首先,在“Input”页里选择要加密的PDF文档;然后,在“Encrypt/Sign”页里分别设置user password和owner password两组密码,在这里还可以选择加密模式和分配权限;最后,在“Output”页里生成加密后的新文件。

jPDFTweak_Encrypt

通常:如果你知道owner password,那么你几乎可以对文档做任何事;如果你只知道user password,那么你就只能做那些被授权的事。

注意:user password和owner password两组密码的作用,可能因为阅读器的不同而不同。

情形行为
User PasswordOwner PasswordPermission to printPreview 4.2Skim 1.2
YesYesYes打开文档,需要输入User Password或Owner Password。打印文档,不需要再次输入密码。
YesYesNo打开文档,需要输入User Password或Owner Password。打印文档,必须输入Owner Password。
YesNoYes输入user password即可以打开和打印文档。
YesNoNo打开文档,需要输入user password。但不能打印文档。
NoYesYes不需要密码密码,即可以打开和打印文档。
NoYesNo打开文档,不需要输入密码。打印文档,需要输入owner password。

当你打开设置了密码的PDF文档时,阅读器将提示你输入密码,并根据权限限制你的操作。开源的PDF阅读程序Skim还可以将密码保存至Keychain中,以免去多次重复输入密码的烦琐。

注解:钥匙串访问(Keychain)是Mac内置的程序,用于集中保存登录网站、软件的密码和保存加密内容。

Skim_RemeberPassword

Tags: , , ,

星期日, 九月 13, 2009

胡须管理

这应该是名符其实的标题党了吧!可这并不是我干的,这是从《周末画报》上看来的。这年头,不夸大其辞,不装成“专家”,真是没法出来见人了。

普通男人一生在剃须上要花超过1500个小时。有些估算显示竟要这个时间的两倍。控制胡须的生长是一项必须的男性工作,而非自我陶醉的享乐。

我很喜欢“湿刮”享受。虽然享受不起理发大师25欧元的的湿刮服务,但每天早晨只要花上几分钟,自己也能干净舒服来次湿刮,请参考以下步骤:共7步,7分钟。

胡须管理

以下附送7个剃须小贴士

  1. 剃须最好的时机是在你刚洗完澡的时候,这时柔软的剃须状态最利于剃须。
  2. 尽量避免干剃剃须。
  3. 剃须最好分两遍剃除胡须。第一遍顺着胡须生长的方向剃须,第二遍则是逆着胡须生长的方向剃须。
  4. 应该由脸颊上方往下文刮。
  5. 剃须刀不够锋利时,应及时更换。
  6. 千万不要用镊子拔胡子。
  7. 剃须后用凉水洗脸,使面部肌肤毛孔闭合。

再推荐TASK的极致温和剃须泡活氧舒缓须后露,这两款产品清新温和,可以在SEPHORA买到。

星期五, 九月 11, 2009

使用cURL下载文件

curl一个传输文件(上传/下载)的命令行工具,它支持FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE和LDAP等多种协议。在Mac OS X已经预装了curl,我主要用它来下载文件。

基本用法

curl使用格式如下: curl [选项][下载地址]

如果你只是指定网络地址,而没有使用其它选项,那么将直接在屏幕上显示文件的内容:

curl yyq123.journalspace.com

curl_1

下载文件

如果我们想要下载文件,而不是查看,那么可以使用如下命令:

curl -O http://mif.polimercolor.ru/mifsoft/MDict.zip

以上命令会下载文件并以原名保存到当前目录中。如果你想自己指定下载后文件的名字,可以使用-o选项。

curl -o MDict_ver.zip http://mif.polimercolor.ru/mifsoft/MDict.zip

curl_2

断点续传

如果需要继续已经中断的下载,那么可以使用-C选项。利用-C -选项并指出已经部分下载的文件名,curl将自动下载文件的剩余部分。

curl -C - -o Smultron-2.2.6.dmg http://jaist.dl.sourceforge.net/Smultron-2.2.6.dmg

curl_3

使用代理服务器

curl -x 10.1.27.10:1022 ftp://ftp.funet.fi/README

以上命令使用代理地址为10.1.27.10端口为1022的代理服务器下载一个文件。如果代理服务器需要验证,则应该提供合法的帐号和密码。

curl -U user:passwd -x 10.1.27.10:1022 ftp://ftp.funet.fi/README

更多功能

以上提及的只是curl功能中的万分之一, 但是对于普通的文件下载任务已经足够。如果希望了解curl的更多功能,可以用命令:curl -h查看帮助,或者从网站上获得完整的文档,也可查看实际应用的例子

为什么要使用?

  • 聚焦功能,而非软件。如果想喝一瓶啤酒,先要做什么呢?不是去找一个酒瓶启子,而是要打开瓶盖。我们需要的是完成一个任务,而不是去使用一种工具。我见过有人用牙齿、筷子、打火机或用另一个瓶子打开瓶盖,所以完成任务有很多种方法,根据情景和要求的不同也就会有不同的选择。比如下载文件,你可以使用图形化的软件,也可以像我一样就用内置的命令行。因为我需要的功能很简单--能够断点续传文件。只要记住几个简单的命令就,能完成我需要的功能,而且也不需要安装额外的软件,又何乐而不为呢?
  • 一次学习,终生受益。我认为自由软件的最大的竞争优势之一就是--学习成本低。比如我现在学会了curl,不仅仅能在Mac里使用它,有很多Linux中也内置了这个软件,而且它还有几乎所有操作系统的版本(包括Unix,Linux,Solaris,Windows,甚至Dos)。所以,只要学习一次,就能随处可用。而且你通过自由软件学习的知识,可以得到很好的延续和保值。不知您注意了没有--在GmailBloglines的快捷键里,都用j移动到下一条记录,用k移动到上一条记录,难道会这么巧合吗?我相信这是有原因的。因为在文本编辑器Vim中,jk就是用来向下和向上移动。而Vim做为历史悠久的自由软件,出现在几乎所有Linux中,而且也预装在Mac里。这也说明,智慧是跨越时空的,是广受尊重的。而在自由软件中蕴涵的智慧,不但在自由软件界得到广泛传播,而且也扩展到更广的空间,所以你的学习成本也得到更好地保护。现在也不难理解--为什么Firefox中Quick Find的会使用/来激活了吧!

Tags: , , , , , ,

星期日, 九月 06, 2009

在Mac下批注PDF

Mac内置的预览(Preview)程序提供了“椭圆形”、“矩形”、注释和“链接”四种注解,你可以方便地在文件中留下注释(而且能够改变注释的颜色)。你还可以利用“标记”功能,高亮显示文本,为文本增加删除线和下划线。

Annontation_Preview10.5

开源软件Skim提供以下九种批注类型,并分别对应Control+Command+1-9的快捷键。

  1. 文字(Text Note)
  2. 图钉(Anchored Note)
  3. 椭圆(Circle)
  4. 方框(Box)
  5. 高亮(Highlight)
  6. 下线(Underline)
  7. 中线(Strike Out)
  8. 直线(Line)
  9. 徒手(Freehand)

Skim_TakeNote

注意:批注只有使用Skim才能看到,而其它软件并不会显示。这真是个很棒的主意,既保留了文章的原貌,又达到了批注的目的。Skim也将在批注面板中列出所有批注,使你更方便地阅读批注。我们也可以从“Note”菜单中,选择显示(Show Noites)或隐藏(Hide Notes)批注,Skim默认是显示批注的。

Skim对于保存批注也提供了更多选择:在文件导出对话框中,可以选择只保存原始文档;只保存批注、保存文档和批注,或者干脆将批注脱离于原文档而保存为文本或PDF文件。

Annontation_Skim_Export

Tags: , , , , ,

星期二, 九月 01, 2009

用Rsync备份文件

备份一定是件极无聊的事,因为大家都不太愿意去做。常听朋友说丟了手机,坏了硬盘,更痛心的是––大量文件也不复存在。也许,平时定期备份文件,就可以避免这些灾难。

Mac自带的Time Machine可以自动备份包括系统文件、应用程序、音乐、照片、影片和文档在内的所有内容。但是,如果你和我一样希望自己选择备份哪些内容以及在什么时候备份,那么Mac内置的另一款备份工具––Rsync,可能更适合我们。

命令

Rsync是一个简单易用而且功能强大的命令行备份工具。她几乎出现在所有Linux和Unix操作系统中,当然也被包含在Mac OS X里。命令行已经被妖魔化成复杂繁琐的老古董,其实命令行工具(比如Rsync),简单的超乎想象。

打开“实用工具”中的“终端”(Terminal)程序,输入以下命令,就可以轻松完成用户目录的备份:

rsync -aE --delete --progress ~ "/Volumes/backup"

rsync是命令名;

-aE参数设置复制文件及目录,并保持访问权限、修改时间等文件的元数据(metadata);

--delete参数让目标同源保持完全一致,在源目录被删除的文件,在目标目录也会被删除。如果不包含“--delete”选项,那么即使在源目录已经删除的文件,也会仍然保存在目标目录中。

--progress参数将显示复制详细的进度。

~代表当前用户的home目录,也就是你需要备份的源目录;

/Volumes/backup/是备份的目标目录。

如果你对备份的效果不太有把握,不妨先加上以下参数试运行一下命令:

-n参数让命令只是虚拟运行,而不去实际改变任何东西;

Rsync_DryRun

脚本

我们可以指定不同的源目录,来选择需要备份的内容;而/Volumes/backup/则将一个外置硬盘做为备份的目标介质,显然您需要根据自己的驱动名称做出改变。(你可以在Finder或桌面上看到驱动器的名称,或者在终端程序中使用ls /Volumes命令来查看驱动器列表。)将这些命令保存为以.command为后缀名的脚本文件。

Rsync_CommandFile

然后,利用以下命令,使用户有权运行脚本文件:

chmod u+x ~/Documents/Tools/backup.command

chmod命令用于修改文件和目录的权限,u+x参数让所有者有权执行文件。

现在,只要在Finder中,双击backup.command文件,就可以自动完成文件的备份了。

自动

如果需要更加自动化和周期性的备份。打开iCal,新建事件,指定“重复”频率(比如每周或每月),在“提醒”部分,选择“打开文件”,点击下拉菜单中的“其它...”,在弹出的对话框中选择用于备份的脚本文件。今后,每当指定时间到来时,系统就会自动执行备份命令。

iCal_OpenCommandFile

星期一, 八月 31, 2009

VIM学习笔记 编辑多个文件(Edit Multiple Files)

如果需要同时打开并编辑多个文件,可以使用以下几种方法:

  • 在启动vim时,可以指定多个文件做为参数(Argument)以同时打开多个文件;
  • 在Vim中,新建窗口(Window)用于打开文件;
  • 在Vim中,在任一窗口(Window)内,都可以新建多个缓冲区(Buffer)用于编辑不同的文件。

以下表格,简单列举了参数、窗口和缓冲区命令的对照关系:

参数和缓冲区命令对照
:next切换到下一文件:bnext
:previous切换到上一文件:bprevious
:Next:bNext
:first切换到第一个文件:bfirst
:last切换到最后一个文件:blast
:args显示正在编辑的文件名              :buffers
:argument [N] 切换至第N号文件:buffer [N]

参数、缓冲区和窗口命令对照
:snext分割窗口并切换到下一文件:sbnext
:sprevious分割窗口并切换到上一文件:sbprevious
:sNext:sbNext
:sfirst分割窗口并切换到第一个文件:sbfirst
:slast分割窗口并切换到最后一个文件:sblast
:sall分割窗口并显示所有文件:sball
:sargument [N]分割窗口并切换至第N号文件:sbuffer [N]

在不同文件之间拷贝文本

使用标记,在不同文件之间拷贝文本:

  1. 编辑第一文件
  2. 执行命令:split second_file打开另一个窗口并开始编辑第二个文件
  3. 使用命令ctrl+Wp回到含有原始文件的前一个窗口
  4. 将光标移动到要拷贝文本的第一行
  5. 用命令ma标记这一行
  6. 移动到要拷贝文本的最后一行
  7. 执行命令y'a来复制当前光标位置到所做标记之间的文本
  8. 使用命令ctrl+Wp回到将要放置文本的文件
  9. 将光标移到将要插入文本的地方
  10. 使用命令P将复制的文本粘贴到文件中

使用可视化模式,在不同文件之间拷贝文本:

  1. 编辑第一文件
  2. 执行命令:split second_file打开另一个窗口并开始编辑第二个文件
  3. 使用命令ctrl+Wp回到含有原始文件的前一个窗口
  4. 将光标移动到要拷贝文本的第一行
  5. 执行命令V进入可视化模式
  6. 移动到将要复制文本的最后一行,被选中的文本将会被高亮显示
  7. 执行命令y复制选中的文本
  8. 使用命令ctrl+Wp回到将要放置文本的文件
  9. 使用命令P将复制的文本粘贴到文件中

使用寄存器,在不同文件之间拷贝文本:

  1. 编辑第一文件
  2. 执行命令:split second_file打开另一个窗口并开始编辑第二个文件
  3. 使用命令ctrl+Wp回到含有原始文件的前一个窗口
  4. 将光标移动到要拷贝文本的第一行
  5. 执行命令"a3yy将需要复制的行放入寄存器
  6. 使用命令ctrl+Wp回到将要放置文本的文件
  7. 使用命令"ap将复制的文本粘贴到文件中

读入文件

使用:read filename(可简写为:r)命令,可读进一个文件并将内容插在当前行的后面。我们也可以在命令中,指明读取内容放置在文件中的特定位置。例如:0r filename命令,将读取内容放置在文件开头;而:$r filename命令,则会将读取内容放置在文件末尾。

写入文件

命令:write(可简写为:w)用来写入文件(也就是保存当前文件)。

使用以下命令将保存文本到文件collect.txt中:

:write collect.txt

如果这个文件已经存在,那么就会显示错误信息。如果要强行保存,那么需要使用!选项:

:write! collect.txt

我们也可以向已有文件中追加内容。使用以下命令将正编辑的文件内容追加到collect.txt中:

:write >> collect.txt

使用以下命令,将正编辑的文件的部分内容(第100行到文件末尾)追加到collect.txt中:

:100,$write >> collect.txt

如果这个文件不存在,那么就会显示错误信息。可以使用!选项,强行创建并保存新文件:

:write! >> collect.txt

我们还可以导出文件中的部分内容到其它文件中,以达到分拆文件的目的。以下命令将第10行到文件末尾的内容保存到collect.txt中:

:10,$write collect.txt

以下命令则会将当前行到第100行的内容保存到collect.txt中:

:.,100write collect.txt

在可视化模式下,选择内容,然后使用以下命令也可以写入其它文件:

:'<,'> write collect.txt

使用写入命令不仅可以保存文件,而且还可以将文件重定向到其他程序。在Linux系统中,我们可以使用以下命令将文件发送到打印机:

:write !lpr

注意:命令:write! lpr:write !lpr是不同的,前者是强行保存文件,而后者则是将文件发送到打印机。

命令:wall可以保存所有已经修改过的文件(包括隐藏缓冲区中的文件)。

退出文件

:quit可以退出当前文件。而:qall命令,则可以退出所有打开的文件。

如果文件已修改但没有保存,则会在窗口底部显示警告信息并禁止退出。可以使用以下命令,配置Vinm在此类情况下显示确认对话框:

:set confirm

set_confirm

如果想要放弃所做的修改并强行退出,可以使用:qall!命令。

使用命令:wqall组合,可以保存所有文件并退出。

Ver: 2.0 | YYQ<上一篇 | 目录 下一篇>

星期一, 八月 24, 2009

VIM学习笔记 参数(Arguments)

启动参数

在启动vim时,可以指定多个文件做为参数,例如以下操作系统命令将打开多个文件,并显示第一个文件:

vim file1.txt file2.txt file3.txt

参数(Arguments)和缓冲区(Buffer)是不同的概念。早在Vi之中,就存在参数概念;而缓冲区则是在Vim之中新引进的。参数列表中的所有文件名,都会同时存在于缓冲区列表之中;但并不是所有缓冲区列表中的文件名,也都会出现在参数列表之中。

例如在启动vim之后,我们使用以下命令打开并编辑文件4:

:e file4.txt

此时显示以下3个参数:

args_3

而缓冲区则为4个:

args_4

参数列表

命令:args可以列示打开的多个文件,并用中括号“[]”标识出正在编辑的文件名。

args

切换多个文件

可以使用:argument命令,直接切换到指定的文件。例如以下命令,将切换至列表中的第三个文件:

:argument 3

需要切换到下一个文件时,可以输入:next命令,如果你没有保存当前文件的修改,vim将给出提示信息,不允许切换到下一文件。输入:write:next命令,则可以保存并切换到第二个文件(此命令也可简写为:wnext)。

使用:next!命令,可以强制切换到第二个文件,但所做改动也将会丢失。使用:set autowrite命令打开自动保存功能,可以避免数据丢失的意外情况;而命令:set noautowrite则可以关闭自动保存功能。

如果想要回到上一个文件,可以使用:previous或是:Next命令。如果要保存当前文件并切换到前一文件,可以使用:wprevious或是:wNext命令。

使用快捷键ctrl+^可以快速切换到上一个文件,以实现在#(current filename)和 %(alternate filename)文件之间快速切换的目的。

使用:first:rewind命令,可以快速切换到第一个文件;而:last命令,则可以快速切换到最后一个文件。

命令小结
:next切换到下一文件
:wnext保存后切换到下一文件
:previous切换到上一文件
:Next
:wprevious保存后切换到上一文件
:wNext
:first切换到第一个文件
:last切换到最后一个文件
:set autowrite打开自动保存功能
:set noautowrite关闭自动保存功能
:args显示正在编辑的文件名
:argument [N]切换至第N号文件

Ver: 2.0 | YYQ<上一篇 | 目录 下一篇>

星期六, 八月 22, 2009

金融是艺术

金融就是将钱从一人传到另一人,直到钱不见了的艺术。

Finance is the art of passing currency from hand to hand until finally disappears.

--

沙诺夫

星期四, 八月 20, 2009

在Mac下压缩PDF

Preview

有些PDF文件会因为包含大量图片或随着不断编辑而变得越来越庞大,我们可以用Mac内置的预览(Preview)程序来帮这些臃肿的文件做个瘦身。

  1. 用Preview打开PDF文件;
  2. 选择“文件”菜单下的“存储为...”;
  3. 在“存储为...”对话框中的“Quartz滤镜”选项中,选择“Reduce File Size”;
  4. 保存文档。

Shrink_Using_Preview

Print

我们在初始生成PDF时,就可以缩减它的尺寸。

注意:在10.4 (Tiger)的打印对话框中默认存在“Compress PDF”选项,而在10.5 (Leopard)中却没有直接显示出来。因此,我们需要安装Compress PDF Workflow,以重新激活此功能。

  1. 在任意程序中,选择"Print"菜单;
  2. 在打印对话框中,点击"PDF"按钮,选择"Compress PDF";
  3. 保存文档。

Print_Compress

在10.4 (Tiger)下,还可以利用滤镜选项来压缩PDF文档:

  1. 在任意程序中,选择"Print"菜单;
  2. 在打印对话框中,点击"Copies & Pages"下拉列表,选择"ColorSync";
  3. 点击"Quartz Filter"下拉列表,选择"Reduce File Size";
  4. 保存文档。

Print_to_PDF_ReduceFileSize

警告:缩减文件尺寸,可能降低显示和打印质量,并可能丢失书签。

Tags: , , , ,

星期五, 八月 14, 2009

人类都在太空做了什么?

具体点说,我们花了近40年时间在近地轨道上“研究”失重下的不良反应和那深不见底的宇宙黑洞。我们用有史以来最美丽、最精密、不切实际得让人绝望的航天飞机完成了这些“研究”,再把这个唯美的庞然大物改造成“人货两用运输机”,往返于地面及“巨型玩具”--国际空间站,后者实际上乃冷战后国际主义者们心血来潮的产物,供不同国家的人体验在失重状态下合唱《世界多美妙》之用。

--查尔斯·克拉塔莫 Charles Krauthammer

星期三, 八月 12, 2009

VIM学习笔记 窗口(Window)

窗口(Window)用来查看缓冲区(Buffer)的内容。你可以用多个窗口查看同一个缓冲区,也可以用多个窗口查看不同的缓冲区。利用多窗口,我们就能够很方便地对比多个文件,在不同文件之间复制粘贴或者查看同一文件的不同部分。

Vim主窗口可以容纳多个分割的窗口。也可以创建多个标签页(tab-page),每个标签页也能容纳多个窗口。

在默认情况下,与Vi类似,Vim启动后只打开一个窗口。参数 "-o" 和 "-O" 可以让Vim为参数列表里的每一个文件打开一个窗口。参数 "-o" 水平分割窗口;参数 "-O" 垂直分割窗口。如果 "-o" 和 "-O" 都用了,那么最后一个参数决定分割的方向。例如,下面的例子打开三个水平分割的窗口。

vim -o file1 file2 file3

分割窗口

:split命令,会将当前窗口水平分为两个,并且在这两个窗口中同时显示当前文件。如果你在其中一个窗口进行编辑,那么另一个窗口也会同步显示出你所做的更改。

默认情况下,每一个窗口都是独立滚动的。所以在编辑很长文档的时候,我们可以在不同窗口显示同一文档的不同部分。例如:一个窗口显示目录,另一个窗口显示正文。我们也可以使用:set scrollbind命令,绑定不同的窗口同步滚动。

如果想要在两个窗口中编辑不同的两个文件。使用:split file命令,就可以在另一个窗口中打开文件file了。

相对应的:vsplit命令,用于垂直分割窗口。

命令:new可以直接水平打开一个新窗口,并对新文件进行编辑。

相对应的:vnew命令,用于垂直分割窗口并编辑新文件。

:sview是:split和:view两个命令的组合,它可以分隔出一个新窗口,并以只读方式打开指定的文件。

与窗口操作相关的命令,通常也有相对应的ctrl+W快捷键:

新建窗口命令
:new新建水平窗口并开始编辑新文件ctrl+Wn
:vnew新建垂直窗口并开始编辑新文件
:split新建水平窗口并显示当前文件ctrl+Ws
:vsplit新建垂直窗口并显示当前文件ctrl+Wv
:sview新建窗口并只读打开文件

Windows_Split

切换窗口

在gvim和vim中,使用命令:set mouse=a启用鼠标支持,就可以通过点击鼠标来进入不同的窗口。

你也可以使用以下ctrl+W快捷键在多个窗口中进行切换:

切换窗口命令
ctrl+Ww切换窗口
ctrl+Wj切换至下一窗口
ctrl+Wk切换至上一窗口
ctrl+Wh切换至左侧窗口
ctrl+Wl切换至右侧窗口
ctrl+Wt切换至顶部的窗口
ctrl+Wb切换至底部的窗口
ctrl+Wp切换至刚才所在的窗口

移动窗口

命令ctrl+Wx,可以将当前窗口与下一窗口进行位置对换。如果当前窗口在底部,则没有下一个窗口,这时命令将当前窗口与上一个窗口进行位置对换。

Wx

命令ctrl+Wr命令可以使得窗口向右或向下进行循环移动。这个命令可以带一个数字作为参数,指明向下循环移动所执行的次数。与其相类似的ctrl+WR命令,可以使得窗口向左或向上循环移动。

以上命令在调换窗口位置时,会维持现有的窗口尺寸和布局;而以下命令,则会同时改变窗口的位置、尺寸和布局:

移动窗口命令
维持
布局
ctrl+Wr向右或向下循环移动窗口
ctrl+WR向左或向上循环移动窗口
ctrl+Wx将当前窗口与下一窗口位置对换
改变
布局
ctrl+WK将当前窗口放到最顶端,并使用最大屏幕宽度
ctrl+WJ将当前窗口放到最底部,并使用最大屏幕宽度
ctrl+WH将当前窗口放到最左侧,并使用最大屏幕高度
ctrl+WL将当前窗口放到最右侧,并使用最大屏幕高度
ctrl+WT将当前窗口放到新的标签页

控制窗口尺寸

在输入:split命令时,可以加入参数来指定打开窗口的大小。例如命令:3 split file,将在一个大小为三行的新窗口中打开文件file。我们也可以将这个命令中的空格去掉,写成:3split file

使用ctrl+W+命令增大窗口高度,默认增量为1行;ctrl+W-命令减小窗口高度,默认值为1行。命令countCtrl+W_可以使得当前窗口变为count指定的高度;如果没有指定count,则将当前窗口变得尽可能最大。

使用:resize命令,可以精确控制窗口高度。例如::resize +3将增大窗口高度3行;:resize -3将减少窗口高度3行;:resize 3则将精确指定窗口高度为3行。

命令ctrl+W=可以将几个窗口的大小变为相等。

使用ctrl+W>命令增大窗口宽带,默认增量为1列;ctrl+W<命令减小窗口宽度,默认值为1列。命令countCtrl+W|可以使得当前窗口变为count指定的宽度;如果没有指定count,则将当前窗口变得尽可能最大。

使用:vertical resize命令,可以精确控制窗口宽度。例如::vertical resize +3将增大窗口宽度3列;:vertical resize -3将减少窗口宽度3列;:vertical resize 3则将精确指定窗口宽度为3列。

当然,你也可以用鼠标上下拖动状态行来改变窗口的高度。

控制窗口尺寸命令
:resize +n增大窗口高度ctrl+W+
:resize -n减小窗口高度ctrl+W-
:resize n最大化窗口高度Ctrl+W_
:vertical resize +n增大窗口宽度ctrl+W>
:vertical resize -n减小窗口宽度ctrl+W<
:vertical resize n最大化窗口宽度Ctrl+W|
ctrl+W=等分窗口

关闭窗口

可以使用以下命令来关闭窗口:

关闭窗口命令
:quit退出当前窗口ctrl+Wq
:close关闭当前窗口ctrl+Wc
:only关闭其它所有窗口Ctrl+Wo

帮助信息

使用:help CTRL-W命令,可以查看关于窗口操作的帮助信息。

Ver: 1.0<上一篇 | 目录 下一篇>

星期一, 八月 10, 2009

没什么大不了

一部高性能赛车能让你在5秒钟内从0加速到100公里/小时。你会感到在后背有巨大的推力。这么想,如果你的赛车这么持续加速8分钟,你就到太空了。

--查尔斯·西蒙尼 (第5位自费太空游客)

星期五, 八月 07, 2009

在Mac下拆分PDF

如果你需要将一个PDF文档拆分成几个文件,那么最简单的方法就是使用Mac内置的Preview程序。

首先,选择“编辑”菜单下的“删除选定的页面”,或者使用快捷键Command+Delete,删除页面;然后,将修改后的文件另存,就可以从原始文档中拆分出自己需要的部分。

Preview_Delete_Page

以上方法适用于抽取文档中的绝大多数页面。如果你只需要文档中的极个别页面,那么可以选择“显示”菜单下的“工具条”菜单项;在Preview的侧边工具条中,选择你想要导出页面的缩略图;然后用Command+C快捷键复制它们;再选择“文件”菜单下的“从夹纸板创建新文稿”菜单项,就可以获得一个仅包含你选中页面的新文件。

Split_Preview_Paste-2

利用免费软件PDFLab,可以选定文件中的某些页,然后生成一个新的文件。也就是说,可以将一个文件拆分成几个文件,每个文件中只包含奇数页、偶数页或指定的页面。

  1. 将PDF文件拖拽到PDFLab的主界面中;
  2. 取消选择指定页面;
  3. 点击“Create PDF”按钮,重建文件;

delete_page

利用Mac内置的Automator功能,你只需要依照下图鼠标拖拽,就可以制作自己的工作流--提取PDF文件中的奇数页、偶数页或全部页面。

Split_Automator

Tags: , , , ,