星期一, 十二月 19, 2011

星期日, 十二月 18, 2011

如何查看一个Hyperion Essbase技术论坛

Essbase discussion board是一个专注于Hyperion Essbase的技术论坛,其中有很多业界大牛答疑解惑,实为不可多得的学习资源。但是,在天朝你却无法直接访问这个纯技术的论坛。所以,需要经过代理网站才能顺利浏览网站内容:

Essbase discussion board

论坛话题涵盖了Hyperion多种EPM产品(比如Essbase、Planning、Web Analysis),内容非常丰富。我们可以通过RSS订阅论坛更新,以随时关注最新话题。

首先,在RSS阅读器(如Googel Reader)中,订阅论坛的RSS Feed

Essbase discussion board_rss feed

然后,右键点击话题条目并复制链接:

Essbase discussion board_rss read

最后,将链接粘贴到代理网站的地址栏中,并打开网页:

Essbase discussion board_proxy

星期一, 十二月 12, 2011

灵魂 / 肉体

被理性所驯顺的灵魂才是肉体的监狱。

--福柯

星期日, 十二月 11, 2011

知识和真理只是实行统治的一种方法

所谓知识和真理只是统治者实行统治的一种方法。

--福柯

星期六, 十二月 10, 2011

折线图 (Line Chart)

折线图(Line Chart),适合于在时间序列上,反映数据的变动情况及发展趋势。(Show a pattern or progression over a continuous range or period.)

Line-Consumer Satisf Index
使用不同颜色的拆线,对比两组数据。

Line-Vettek vs Mansell
2011年F1收官战巴西大奖赛排位赛中,维特尔在锁定本赛季第15个杆位的同时,也打破了曼塞尔保持的单赛季杆位纪录。图表的纵轴表示领先第二名车手的成绩,突显了维特尔的明显优势。此图表也打破了拆线图中横轴表示时间,纵轴表示比例的常规用法。

星期六, 十一月 26, 2011

VIM学习笔记 备份文件(Backup)

Vim利用writebackup和backup两个选项,在编辑文件的过程中,自动生成备份文件,以防止异常情况下的数据丢失。

启用文件备份

在默认情况下,Vim已经设置了writebackup选项。我们可以使用以下命令,启用backup选项。vim将首先删除旧的备份文件,然后再为正在编辑的文件生成新的备份文件:

:set backup

备份文件名称

默认情况下,备份文件的名称是在原始文件名最后加上“~”后缀。例如,正在编辑一个名为“data.txt”的文件,那么Vim将产生名为“data.txt~”的备份文件。我们也可以使用以下命令,来自定义备份文件扩展名,新的备份文件名将命名为“data.txt.bu”。

:set backupext=.bu

备份文件位置

默认情况下,备份文件将存储于原文件相同的目录下。使用以下命令,可以设置备份文件存放到指定位置:

:set backupdir=C:/Temp

需要注意的是,如果在不同目录下编辑相同名称的文件,在保存退出时,Vim会将备份文件放置到同一指定的目录中,名字冲突会使已存在的备份文件被覆盖。

备份文件过滤

如果你并不需要对所有文件都进行备份,那么可以利用以下命令取消对指定目录下文件的备份:

set backupskip=D:/Temp/*

需要注意的是,Windows文件路径中斜线(/)的用法。

禁止文件备份

在保持默认writebackup选项的情况下,我们可以使用以下命令,取消备份文件的生成:

:set nobackup

需要注意的是,如果同时设置了nobackup和nowritebackup选项,那么在磁盘已满而更新文件时会造成数据的丢失,所以我们最好不要改变默认的writebackup选项。

命令小结
:set backup启用文件备份
:set nobackup禁止备份文件
:set backupext设置备份文件扩展名
:set backupdir设置备份文件存储位置
:set backupskip过滤不需备份的文件

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

星期六, 十一月 19, 2011

意义的消解

因为没有意义。因为意义被彼此抵消。因为太多影像无时无刻向我们倾销意义。因为对意义无所适从,人的最后的反应,就是发笑。

--陈丹青

星期五, 十一月 18, 2011

VIM学习笔记 多重色彩括号(Rainbow Parentheses)

在编写代码时,经常需要函数嵌套,这就会造成一行代码中会有很多括号,而变得难以阅读。我们可以使用Rainbow Parenthesis插件或者Rainbow Parentheses Improved插件,通过多种颜色来标识匹配的括号。

安装Rainbow Parentheses

首先下载Rainbow Parenthesis;然后在vim中打开下载的vba文件;最后执行:so %命令以完成安装。

plugin_RainbowParentheses_install

配置Rainbow Parentheses

打开vimfiles\autoload\rainbow_parenthesis.vim文件,在第66行插入以下命令,以避免Rainbow Parentheses插件运行时报错。

plugin_RainbowParentheses_workaround1

将该文件第34-49行中的guibg部分删除,以避免Rainbow Parentheses插件改变括号的背景色。

plugin_RainbowParentheses_workaround2

启用Rainbow Parentheses

我们可以使用以下命令,手工启动Rainbow Parentheses插件:

:ToggleRaibowParenthesis

显示效果如下图所示:

plugin_RainbowParentheses

也可以在vimrc文件里添加以下命令,在vim启动时自动加载Rainbow Parentheses插件:

plugin_RainbowParentheses_load

安装Rainbow Parentheses Improved

Rainbow Parentheses Improved在以下几个方面进行了改进:不再限制括号的嵌套层数;可以分别自定义图形界面下和终端上所使用的括号颜色;甚至可以为不同类型的文件设定不同的配置;增加了中文说明。

首先,将下载到的rainbow.vim文件放到vimfiles/plugin文件夹(在linux系统里是~/.vim/plugin文件夹)中。然后,将以下句子,加入到你的vimrc配置文件中:

let g:rainbow_active = 1

启用Rainbow Parentheses Improved

我们可以使用以下命令,手工启动Rainbow Parentheses Improved插件:

:RainbowToggle

显示效果如下图所示:

plugin_RainbowParenthesesImproved

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

星期六, 十一月 12, 2011

VIM学习笔记 非可见字符(Listchars)

显示/隐藏

默认情况下,Vim是不会显示space,tabs,newlines,trailing space,wrapped lines等不可见字符的。我们可以使用以下命令打开list选项,来显示非可见字符:

:set list

如下图所示,制表符被显示为“^I”,而行尾则标识为“$”。

set_list_default

我们也可以使用以下命令,重新隐藏不可见字符:

:set nolist

通常我们会利用以下命令,切换显示或隐藏不可见字符:

:set list!

显示符号

使用:set listchars命令,可以配置使用何种符号来显示不可见字符。例如以下命令,将制表符(tab)显示为…;将尾部空格(trail)显示为·;将左则超出屏幕范围部分(precedes)标识为«;将右侧超出屏幕范围部分(extends)标识为»。

set listchars

其中,特殊符号是在插入状态下,点击快捷键Ctrl-k,然后键入编码来输入的。比如,中点是由.M输入;左书名号是由<<输入,右书名号是由>>输入。

可以使用以下命令,查看可以输入的特殊字符:

:digraphs

digraph

如下图所示,通过选择合适的符号和色彩,非可见符号被低调地显示出来––即没有影响实际的文本内容,又能展示容易被忽视的重要信息:

set listchars_result

显示颜色

非可见字符"eol"、"extends"、"precedes"是由NonText高亮组来控制显示颜色的,而"nbsp"、"tab"、"trail"则是由"SpecialKey"高亮组来定义的。

我们可以使用以下语法高亮 (Syntax Highlight)命令,来设置非可见字符的显示颜色和格式:

hi NonText SpecialKey

请使用以下命令,查看关于非可见字符的帮助信息:

:help listchars

命令小结
:set list显示非可见字符
:set nolist隐藏非可见字符
:set listchars设置非可见字符的显示模式

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

星期二, 十月 25, 2011

古典文学的用途

从古至今,一般认为古典文学的研究具有一定的道德价值。因为经典作品,不论其内在价值如何,都对高层的统治阶级提供了理想化行为 模式的参照系。和诗歌、逻辑、哲学一样,古典作品提供了一种礼节体系。这类经典作品提供了许多范例,说明应如何度过生命中的闪光时刻 ——让人看到他做出英雄式的行动,庄严地运用权力,激情澎湃,慷慨赴死,高洁地追求欢乐——或者,至少应该被人看到:自己生活过。

——约翰·伯格 《观看之道

星期六, 十月 08, 2011

VIM学习笔记 替换(Substitute)

利用:substitute命令,可以将指定的字符替换成其他字符。通常,我们会使用命令的缩写形式:s,格式如下:

:[range] s/search/replace/[flags] [count]

其中,range是指定范围,也就是在哪些行里做替换。而后是将字符串from替换成字符串to。

替换标记

在默认情况下,替换命令仅将本行中第一个出现的的字符替换成给定字符。如果我们想要将所有出现的字符都替换成给定字符,可以在命令中使用g(global)标记:

:%s/from/to/g

其他的标记(flags)包括:p(print),是要求打印所做的改动;c(confirm),是要求在做出改动以前先询问;i(ignorecase),是不区分大小写。我们可以组合使用标记,比如以下命令,将会显示将要做改动的文本并要求确认:

:1,$ s/Professor/Teacher/gc

replace with Teacher (y/n/a/q/l/^E/^Y)?

这时你可以做出以下回答:

  • y Yes:执行这个替换
  • n No:取消这个替换
  • a All:执行所有替换而不要再询问
  • q Quit:退出而不做任何改动
  • l Last:替换完当前匹配点后退出
  • CTRL-E 向上翻滚一行
  • CTRL-Y 向下翻滚一行

指定范围

如果没有在命令中指定范围,那么将只会在当前行进行替换操作。以下命令将把当前行中的I替换为We。命令中的/i标记,用于指定区分大小写。

:s/I/We/gi

以下命令将文中所有的字符串idiots替换成managers:

:1,$s/idiots/manages/g

通常我们会在命令中使用%指代整个文件做为替换范围:

:%s/search/replace/g

以下命令指定只在第5至第15行间进行替换:

:5,15s/dog/cat/g

以下命令指定只在当前行在内的以下4行内进行替换:

:s/helo/hello/g4

以下命令指定只在当前行至文件结尾间进行替换:

:.,$s/dog/cat/g

以下命令指定只在后续9行内进行替换:

:.,.+8s/dog/cat/g

你还可以将特定字符做为替换范围。比如,将SQL语句从FROM至分号部分中的所有等号(=)替换为不等号(<>):

:/FROM/,/;/s/=/<>/g

可视化模式下,首先选择替换范围, 然后输入:进入命令模式,就可以利用s命令在选中的范围内进行文本替换。

Substitute_VisualMode

精确替换

在搜索sig时,也将匹配sig, signature, signing等多个单词。如果希望精确替换某个单词,可以使用“\<”来匹配单词的开头,并用“\>”来匹配单词的结尾:

:s/\<term\>/replace/gc

多项替换

如果想要将单词KangKodos都替换为alien,那么可以使用|进行多项替换。

:%s/Kang\|Kodos/alien/gc

变量替换

使用以下命令可以将文字替换为变量的内容:

:%s!\~!\= expand($HOME)!g

Substitute_ExpandVar

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

星期五, 十月 07, 2011

关于屏幕截图的一切(四)

Format图片格式

PNG、JPG和GIF是最常用于屏幕截图的三种图片格式。综合考量显示质量和文件大小,他们分别适合于不同的内容。

对于文字内容(比如代码、搜索、文档等),适合于GIF或PNG格式。相对于JPG格式,他们显示更加清晰,文件尺寸也更加精简。

gif
GIF (16kb)
jpg
JPG (25kb)
 

对于软件界面(比如窗口、对话框、桌面等),PNG和JPG格式没有太大差别,PNG格式显示色彩更加饱满文字更加清晰,文件尺寸也更大;而JPG图片尺寸相对较小。

jpg
JPG (20kb)
PNG
PNG (29kb)
 

对于图片视频(比如动画、地图、游戏等),适合于JPG格式。达到相似的图片质量,PNG文件尺寸会更加庞大。


JPG (20kb)
PNG
PNG (66kb)
 

Zoom屏幕缩放

屏幕截图时,经常需要放大尺寸,以使读者看清细节。我们可以在按住Control键的同时,用滚轮缩放屏幕。然后利用快捷键或图像捕捉程序抓取放大后的屏幕。

ControlScroll_ScreenZoom

注意:屏幕缩放仅对区域截图有效。如果你选择抓取窗口,将无法获得缩放效果。

星期日, 九月 04, 2011

VIM学习笔记 折叠 (Fold)

当我们查看很长的文本时(比如程序代码),可以使用:set foldenable命令来启动折叠。首先将内容按照其结构折叠起来,查看文件的大纲,然后再针对特定的部分展开折叠,显示文本的详细内容。

fold_close

Vim将折叠等同于行来对待——你可以使用j或k命令,移动跳过包含多行的整个折叠;也可以使用y或d命令,复制或删除某个折叠。

通常在折叠处向左或向右移动光标,或者进入插入模式,都将会自动打开折叠。我们也可以使用以下命令定义快捷键,使用空格键关闭当前打开的折叠,或者打开当前关闭的折叠。

:nnoremap <space> za

按照折叠所依据的规则,可以分为Manual(手工折叠)、Indent(缩进折叠)、Marker(标记折叠)和Syntax(语法折叠)等几种。

Manual Fold

使用以下命令,启用手工折叠。

:set foldmethod=manual

在可视化模式下,使用以下命令,将折叠选中的文本:

zf

通过组合使用移动命令,可以折叠指定的行。例如:使用zf70j命令,将折叠光标之后的70行;使用5zF命令,将当前行及随后4行折叠起来;使用zf7G命令,将当前行至全文第7行折叠起来。

我们也可以使用以下命令,折叠括号(比如()、[]、{}、><等)包围的区域:

zfa(

Vim并不会自动记忆手工折叠。但你可以使用以下命令,来保存当前的折叠状态:

:mkview

在下次打开文档时,使用以下命令,来载入记忆的折叠信息:

:loadview

可以使用以下命令,查看关于手工折叠的帮助信息:

:help fold-manual

Indent Fold

使用以下命令,启用缩进折叠。所有文本将按照(选项shiftwidth 定义的)缩进层次自动折叠。

:set foldmethod=indent

使用zm命令,可以手动折叠缩进;而利用zr命令,则可以打开折叠的缩进。

使用以下命令,将可以根据指定的级别折叠缩进:

:set foldlevel=1

可以使用以下命令,查看关于缩进折叠的帮助信息:

:help fold-indent

Syntax Fold

使用以下命令,启用语法折叠。所有文本将按照语法结构自动折叠。

:set foldmethod=syntax

可以使用以下命令,查看关于语法折叠的帮助信息:

:help fold-syntax

Marker Fold

使用以下命令,启用标记折叠。所有文本将按照特定标记(默认为{{{和}}})自动折叠。

:set foldmethod=marker

我们可以利用标记折叠,在文本中同时体现结构和内容,并且能够快速跳转到文件的不同部分。

fold_marker

可以使用以下命令,查看关于标记折叠的帮助信息:

:help fold-marker

折叠选项

使用:set foldcolumn=N命令,将在屏幕左侧显示一个折叠标识列,分别用“-”和“+”而表示打开和关闭的折叠。其中,N是一个0-12的整数,用于指定显示的宽度。

foldcolumn

使用以下命令,可以查看关于折叠的帮助信息:

:help folding

命令小结
za打开/关闭当前的折叠
zc关闭当前打开的折叠
zo打开当前的折叠
zm关闭所有折叠
zM关闭所有折叠及其嵌套的折叠
zr打开所有折叠
zR打开所有折叠及其嵌套的折叠
zd删除当前折叠
zE删除所有折叠
zj移动至下一个折叠
zk移动至上一个折叠
zn禁用折叠
zN启用折叠

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

星期六, 八月 13, 2011

关于屏幕截图的一切(三)

Command命令

执行以下命令,然后使用相机图标点击任意窗口,就可以截取选中的窗口并保存图片到指定位置:

screencapture -iW ~/Desktop/screen.jpg

而使用以下命令,则可以截取整个屏幕:

screencapture -S ~/Desktop/screen.jpg

以下命令则可以截取部分屏幕,并将图片放入剪贴板:

screencapture -ic

利用-t选项,可以设置图片格式;而-x选项,则可以关闭截图时发出的声音:

screencapture -iW -ttiff ~/Desktop/screen.tiff

如果你希望在截取屏幕后立刻查看图片,那么可以编写一个简短的AppleScript来自动化这个过程。首先屏幕截图,然后使用Preview程序来显示图片。

运行Applications中Utilities目录下的AppleScriptEditor,并输入以下代码:

将以上脚本保存到~/Library/Scripts目录,并设置为应用程序。

AppleScript_Screen

在AppleScriptEditor的“偏好设置”中,选择“在菜单栏中显示脚本菜单”。

AppleScript_Screen_Menu_Show

从菜单栏里的脚本图标调用程序,就将在屏幕上显示相机图标,你可以用它点击并截取窗口;也可以点击空格键,将显示十字图标,用以截取鼠标拖拽的屏幕区域。

AppleScript_Screen_Menu

星期一, 八月 08, 2011

在Mac下管理文档

Structure架构

用文件夹组织文档已经广为人们熟悉和接受。在Mac中,可以利用Finder构建文件夹的主体结构。

通过菜单或快捷键(Command+3),设置Finder为分栏显示,就能用直观递进的树状结构来观察文档库的结构。

Finder_View_Column

当我们在Finder中选中图片、音乐、视频或PDF等文档时,可以立刻获得文档的预览;同时还将显示名称、种类、大小和尺寸等相关信息;点击“更多信息”按钮更能获得非常详尽的文档描述

结构不仅仅在于分类,同时也应该排列顺序和突出重点。

  • 尽量使用英文来命名目录。利用英文字母可以自然地形成顺序。比如我可以很快找到“CaseStudy”目录,因为它一定排在前面,应该就在“Book”目录后面。如果很难一眼看到,那么只要选中任一目录,然后按“C”键就会移动到以“C”开头的目录。这些都是中文目录名所不具备的优势,因为你很难判断“案例”目录所处的位置。
  • 用下划线开头的目录名突出重点。如果我希望突出某个目录,并将它置于所有目录之上,那么我会以下划线开头来命名目录。比如第一个“_ToDo”目录,就代表我要优先处理的文档。
  • 用下划线和数字来排序目录。如果有一系列目录需要排序,我会采用下划线和数字开头的方式来命名它们。比如用“_1_Integration”,“_2_Scope”......来依次列出项目管理的9大知识领域。这样的结果是,目录将以适当的顺序排列在一起,并且分段的文件名也更容易识别。

Finder_SortFolder

Navigate导航

我们经常需要在文档库中,依据分类路径(也就是文件系统的目录结构)来浏览文件。在Finder工具栏上点击鼠标右键,选择“自定义工具栏...”菜单项,将“路径”按钮拖拽到工具栏上,点击“完成”按钮。 你只需要点击“路径”按钮,就能看到一系列路径,选择其一就能立刻跳转到指定目录。右键点击Finder标题栏上的代理图标(Proxy Icon),也能实现相同功能。

在Finder中,选择“显示”菜单下的“显示路径栏”菜单项,将在窗口底部显示当前所处的完整路径。你可以双击其中的任意一级路径,快速导航到指定的目录。

Finder_Path

使用文件夹来组织文档并不足够--主要问题是不够灵活,不能反映文件的多维度属性。比如我有一篇介绍网站开发的文档,它其中包括了Linux、Apache、XHTML、CSS等多方面的知识,如果我把它置于以上任何一个目录,都会有失偏颇。这时我们就发现仅利用文件夹组织文档是过于生硬的,所以必须引入更灵活的机制--标签。

Tags标签

利用标签可以全方位地描述文件,充分体现文档所包含的内容。比如上面提到的介绍网站开发的文档,我将它放在“WebDesing”目录下,然后打上Linux、Apache、XHTML、CSS等多个标签。这样不但完整地描述了文档,也为将来搜索文件提供了方便的标靶。

添加标签

  1. 在Finder下选中文件;
  2. 调出Quicksilver;
  3. Command+G键将选中的文件发送至Quicksilver;
  4. Tab键移动到第2个窗格,只要输入字母"A",就会调用File Tagging插件的"Add Tags..."动作;
  5. Tab键移动到第3个窗格,即可标记Tag,多个Tag用空格分隔,按Return键完成操作。

Quicksilver_FileTagging

用于添加标签的程序还有:punakeaSpotMeta

搜索标签

  1. 调出Quicksilver;
  2. 在第1个窗格中输入标签;
  3. Tab键移动到第2个窗格,选择"Show Files Matching Tag"动作;
  4. Return键将显示所有匹配此标签的文件。

Quicksilver_ShowMatchedFile

Quicksilver利用Mac强大的Spotlight搜索能力,分门别类地显示匹配标签的文件。

Quicksilver_ShowMatchedFileList

Status状态

标识状态

利用Mac内置的“颜色标签”功能,可以标识文件的阅读状态。只要在Finder中选中文件,然后用鼠标右键调出弹出菜单,并选择需要的颜色标签。比如就用橙色标示“尚未阅读”的文件;用黄色标示“部分阅读”的文件,这样就可以一眼看出哪些文件需要阅读。

Finder_ColorTag_File

更妙的是,我们不但能选用不同颜色,还能定义这些颜色所代表的含义,这样就可以更方便地标示文件状态。

Finder_ColorTag_Option

跟踪状态

利用Mac的智能文件夹(Smart Folders)功能,可以轻松方便地跟踪文件状态。

  1. Finder中,用快捷键Command+F进入查找状态;
  2. 在“种类”中选择“颜色标签”;
  3. 选择“橙色标签”;
  4. 点击“存储”按钮。

Finder_Status

今后只要双击已保存的智能文件夹,就能根据你早先设定的查找条件迅速找到匹配文档。查找结果可以自动更新,随时反映你的阅读状态。如果你已经阅读了文档,那么只要取消颜色标签,那么文档就不会再出现在智能文件夹中。

我们还可以将智能文件夹拖放到Finder的侧边栏(Sidebar)中,这样就可以更方便获得查找结果。

Score评分

彼得·德鲁克,让·波德里亚,库尔特·冯内古特......智者纷纷逝去,这也意味着将越来越难读到伟大的思想。所以,只要我看到精彩的文章,就一定要做下记号,以便日后重温。

首先,利用Quicksilver中File Tagging插件的"Add Tags..."动作,为精彩文章打上星级符号。比如用“*****”表示最精典的文章。

Quicksilver_FileTagging_Score

随后,利用Quicksilver中File Tagging插件的"Show Files Matching Tag"动作,来查询精彩的文章。

Quicksilver_ShowMatchedFile_Score

利用智能文件夹,可以更方便地查看精典文章。

  1. Finder中,用快捷键Option+Command+N新建智能文件夹;
  2. 在“种类”中选择“Spotlight 注释”;
  3. 在“包含”下拉框后的编辑框中,输入“@*****”(因为Quicksilver对所有标签自动加入了@前缀);
  4. 点击“存储”按钮。

Finder_Score

View查看

这个世界上有许多不可理喻的谬论!比如有人以为用了苹果电脑就意味着是搬去另一个星球--要使用完全不同的软件,放弃长久形成的习惯,连常见的文件类型也无法访问。我可以用自己的亲身体验来击碎这些不实之辞--除了人性化设计带来的惊喜之外,你不会感到任何不自在。其实并不奇怪,这个世界本来就是被谎言所包裹的。掌握话语权的既得利益者,无知,无聊,无耻,所以我们必须自己自觉地分辨好恶。

TXT和RTF文件可以用Mac内置的文本编辑器(TextEdit);PDF和图片可以用Mac内置的预览(Preview);HTML网页可以用Firefox;M$ Office和OpenOffice文件可以用NeoOffice;CHM文件可以用Chmox......总之,你有无数种选择。只要你愿意选择。

我们应该使用通用标准的文件格式(比如TXT、HTML和ODF),只有这样才能最大程度保护我们的投资,只有这样才能营造平等平和的生态环境。请不要在公开场所抽烟,也请不要使用封闭垄断的文档格式。这不是一个技术问题,而是一个文化问题!

TextEdit_RTFPreview_PDFNeoOffice_ImpressNeoOffice_Writer

Tags: , , , , , , ,