Size: 17522
Comment:
|
Size: 22911
Comment: delphij 大爱测试。
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
#acl WoodpeckerAdminGroup:read,write,delete,revert CsdnBookGroup:read All: | |
Line 8: | Line 8: |
<<Include(ZPyUGnav)>> | ##<<Include(ZPyUGnav)>> ''[[CsdnBookGroup|CSDN编辑观察团]]''~对稿ing... |
Line 18: | Line 19: |
=== 综合 === '''吾之膏腴彼之毒药!''' 以下工具的选择和坚持,是个持续的过程,对于俺,这一时间将近14年时间! * 所以,算是有一点自个儿的原则,先唠叨一下,是否认同另说,只是强调以下工具不是孤立存在于个人工具箱的,而是一个整体! * 工具选择原则: 1. 尽可能是 FLOSS 1. 输出格式尽可能多样或是标准化,有 txt/html 最好 1. 尽可能跨平台 1. 开发社区尽可能靠谱 1. 尽可能有命令行界面 1. 功能尽可能少,不用学习 |
== 俺的工具箱~CSDN版 == ||{{attachment:100514-zq-eye-w200.png}}<<BR>>大图:[[attachment:100514-zq-eye-IMG_1987.JPG]]||<<Include(ZeuuxZoomq,"自述",3)>>|| === 文启 === 应老刘之邀分享一下个人日常效率工具,但是:'''吾之膏腴彼之毒药!''',俺真不知道说过后,会有什么后果; 先聲明一下,所有经验皆为个人体验,未经任何有关部门认证,请读者自行判定是否靠谱哈; 对于工具的选择,对于俺,这是一持续将近14年的连续过程,很艰难的才算形成一点已知的原则,先唠叨一下,是否获得认同另说,只是强调都不是孤立存在于个人工具箱的,而是作为整体服务于俺的生活/工具领域,选择标准如下: 1. 尽可能是FLOSS/跨平台/开发社区活跃 1. 尽可能多样或是标准化的输出格式(有 txt/html 最好) 1. 尽可能有命令行界面/接口(以便通过管道和其它事儿连接起来) |
Line 31: | Line 31: |
* 工具的组合,追求: * 安装/升级/备份 简单/可靠,绝对无法容忍重装个系统,所有习惯的配置就得重新再配的杯具! * 管理的数据尽可能完全无关或是可以简单互通 * 工具组合的整体使用,追求: * '''MOO''' ~ '''M'''uscle '''O'''riented '''O'''perating ~ 面向肌肉的操作 * 工具的使用不应该依赖眼睛/鼠标,等等额外条件 * 最好的工具,就应该是 WYTIWYG ~ 所想即所得,没有意外,没有RP问题,没有杯具体验的! * 而且,形成肌肉记忆后,将不断的加强,不会因为环境的变化而失效,这样的工具才是终身受用的! * 当然,这里的肌肉记忆的必要前提就是有固定的位置,即,键盘操作,鼠标操作是不可能形成肌肉记忆的...表说鼠标手势,这东西消耗的功率是键盘的几倍,俺不想得鼠标手... 个人电脑使用经历大致: * ~1993 无电脑体验,只有YY * ~1994 高中,长城Apple 机,10小时体验,没有个人软件体验 * ~1998 大学,机房2/386,3寸盘软件体验,M$ 95系统,开始大量的各种软件试用 * ~2001 公司,配发PC,M$ NT系统,主要是设计软件使用体验 * ~2004 拥有了个人电脑,M$ 2000/3 系统,有了个人数据管理需求后,开始更大量的各种软件试用 * ~2005 配发了笔记本,接受了自由软件精神,开始准备迁移到 Ubuntu,软件开始进行大量的置换,选择 * 至今,有意识,有计划,有目标的坚持锤炼着自个儿的工具箱... === 输入 === 用来收集外界各种咨询到本地的高效工具: |
1. 安装/升级/备份都简单/可靠(绝对无法容忍一重装系统所有习惯的配置就得重新再配的杯具! ) 只要吻合条以上就很善哉了;非常使用现在想来好象是追求: * '''MOO''' ~ '''M'''uscle '''O'''riented '''O'''perating ~ 面向肌肉的操作 ;-) 使用不应该依赖眼睛/鼠标等额外条件干扰,仅仅键盘操作就可以达到目标,每次从鼠标定位/菜单操作中节省的零点几秒时间,在日常大量操作积累后,就是一可观的收获了! 而且,形成肌肉记忆后,将不断的加强,不会因为环境的变化而失效,这样的工具才是终身受用的!当然,这里的必要前提就是操作在键盘上是有固定的位置/组合的,显然鼠标是不可能形成肌肉记忆的...表说鼠标手势,这东西消耗的功率是键盘的几倍,俺不想得鼠标手... 下面根据自个儿非常的生产活动主要环节,来说明选用的工具组合: === import === 首先是一切的起点,输入活动,当前,基本上从外界的信息输入都是电子化的了,图书已经末落了;电子化的信息输入,又最多的来自互联网,互联网信息,最多的形式又是网页,所以,对于俺,最重要也最随手的就是网页的收集管理... |
Line 54: | Line 41: |
* 来源: SCRAPBOOK :: Firefox Extension http://amb.vis.ne.jp/mozilla/scrapbook/ * {{http://amb.vis.ne.jp/mozilla/scrapbook/screen/small/main.png}} * 沿革: 技术资料的收集是立志作程序员后就一直坚持的行为,但是总没有最好的工具体验: * 最初的目录组织(问题在无法快速定位想看的,使用桌面搜索也不方便) * 各种个人知识库软件(Mybas,KnowledgeTree,Tubo, Onenote...),再到Zotero;都难以达到功能/性能/管理三者均衡, 直到在FF 中遇见ScrapBook! * 体验: 和 FF 配合使用最简单轻便的离线网页管理工具,从06年使用至今,收集了4万多页面,近5G体积;可以随时用右键菜单将页面或是选中的内容收集到指定的本地分类中,搜索速度稳定,索引使用 rdf 非常标准的数据格式,方便进行各种二次处理; 确保好文章在第一时间先抓取到本地,不依赖原文网站,可以随时翻阅! * 可以自动输出网站样 html 索引页面,个人网站的资料分享就是直接使用这一功能发布的 * 需要注意的是,一定要有比较稳定和精简的知识体系分类,自个儿对任何一技术领域的资料,可以直觉性的判定出应该在哪个分类中,这才能够快速查询到 Zim:: * 来源: Ubuntu 自带! perl 完成的桌面维基! http://zim-wiki.org/ * {{http://zim-wiki.org/images/globe.png}} {{http://zim-wiki.org/screenshots/thumbs/zim-normal.png}} * 沿革: 作为日常笔记,从M$时代就一直在寻找,从TiddlyWiki(Tid 多时内存太占)->wixi(未成熟,使用不方便)->MoinMoin(太强大)->Tomboy(太简单) 都不完全如意, Zim 在收录在apt仓库中,绝对轻便/稳定,满足80%需要, enough enhoy! * 体验: 完全KISS 的桌面工具!就象有最简 Wiki 功能的记事本,用来管理各种工作笔记/帐号/零散不成体系的记要最方便;贴心的是: * 存储是纯文本,就是没有 Zim 也一样可以看 * 问题也和任意笔记式软件一样,如果没有习惯的固定的分类目录,长期使用,将立即感觉到想找什么都找不到的杯具情怀 ... * 当前主要用作工作周报,以及日常工作相关的各种配置和活动消息 * {{attachment:csdn-zoomq-2010-05-12-153811_788x467_scrot.png}} SwiftFox:: * 来源: http://getswiftfox.com/ * {{attachment:csdn-zoomq-2010-05-12-151406_1005x316_scrot.png}} * 沿革: 浏览器的选择,对于技术人员来讲,几乎是信仰的决策! * 当然是从 Netcape 开始的,当年的 NC3 就是标准配置哪 * 可惜M$ 95 出世后,基本就IE 了 * 从事一段时间的Web 开发后,就彻底恶心了IE,也用过 MyIE 之类,但是都不到位 * 尝试过 Opera 太另类了 * 一用 FireFox 就没有离开过,迁移到Ubuntu 后,当然要使用 SwiftFox 这一面向CPU 加速过的 FF * 体验: FT!这个不用介绍了,绝对的毒品,一用就上瘾,俺用了3年才戒了插件狂热症;当前最有感觉的输入相关插件: * AutoPage ~ 节省翻页时间就是抓住生命! * 下载 http://www.teesoft.info/content/view/68/1/lang,en/ * CHM Reader ~ 可以记录成书签哈! chm 中的关键页面! * 下载 https://sourceforge.net/projects/chmreader/ 国人作品! * Gmail ~ 没有FF 的配合,Gmail 绝对平庸! 再配合 Gmail lab 的有关扩展,可以支撑每日>700封邮件处理的快捷键是: * o ~打开邮件 * j ~下封邮件 * k ~前封邮件 * p ~线索前一 * n ~线索下一 * a ~回复全部 * f ~转发邮件 * u ~刷新列表 * f ~转发邮件 * l ~指定标签 * *u*i*aA ~ 选择所有未读邮件,配置成已读,再选择全部收件箱邮件 * 嗯嗯嗯,可以看出来,俺是 GTD 的拥趸,尽力保持收件箱永远是空的,的确,非常爽! moc:: * 来源: MOC - music on console http://moc.daper.net/ ;Ubuntu apt 仓库内置 * 沿革: 作为一个准 hacker,有追求的geek,宅人,任何时候,喜欢的音乐是得环线的 * M$时代当然是 winamp ,无数的皮肤哪... * 后来winamp团队杯具后, 摧生出的 foobar2000 立即喜爱上,开始关注音质,专辑管理...APE/FLAC * 迁移到 Ubuntu 中之后,也是找了很长时间音乐播放器,甚至于有段时间是用 wine 中的 foobar2000 * 体验: 就用命令行! Foobar2000 的完美替代品! * {{attachment:csdn-zoomq-2010-05-12-153811_788x467_scrot.png}} * 通吃所有音乐格式! 不用关心外形,安静的藏在命令行窗口中工作,资源占用也少,俺不关心歌词,就关心快速放送! * 稍微练习一下就习惯的快捷键: * h 显示帮助 * s 停止播放 * 空格 暂停 * q 退出 * → 音量调高 * ← 音量调低 * shift+R 循环播放 * shift+A 加入指定目录中的所有音乐文件到播放列表 * n 跳到下一首 * d 删除当前音乐,从列表 * 嗯嗯嗯!就是这样,听音乐就是要直接听,不应该关心播放工具的外观什么和音乐无关的东西,听到难听的音乐,播放器再有激情,再漂亮也对俺没有用... mplayer:: * 来源: http://www.mplayerhq.hu Ubuntu apt 仓库内置 * 在线的截屏效果展示 http://www.mplayerhq.hu/design7/screen.html * 沿革: 超级解霸->PwoerDVD->MPC->暴风,接受了软件正版的道德自诘后,才发现,原来至强播放器是不屑用GUI 的! * 体验: 就用正版! MPC 的至强超越! 无法放弃的快捷键(谋杀TV的高级工具!): * f 是否全屏 * 空格 是否播放 * ← 后退 10秒 * → 快进 10秒 * ↑ 快进 1分钟 * ↓后退 1分钟 * pg up 快进 10分钟 * pg dn 后退 1分钟 * 9 音量调低 * 0 音量调高 === 思考 === 用来高效将自个儿的思想整理成型的工具: |
* 这是一个火狐的插件 {{http://amb.vis.ne.jp/mozilla/scrapbook/screen/small/main.png}} * 历史上同类活动,最初是使用分类目录收纳,但是,问题在于无法快速定位想看的,即使后来动用了桌面搜索也不方便;后来尝试过各种个人知识库软件(Mybas,KnowledgeTree,Tubo, Onenote...), 主力浏览器迁移到火狐后,也体验过终极资料管理器Zotero;都难以达到功能/性能/管理三者均衡,最终还是坚持了crapBook; * 爽直在于: 是和火狐自然配合的使用最简单轻便的网页管理工具,仅用右键点选(当然的可以通过keyconfig之类快捷键定义插件来绑定键盘操作)菜单即刻抓取指定内容到本地,并组织到指定的分类中,同时提供足够可用的搜索/再编辑/导出/导入等实用功能;使用至今,收集了4万多页面,近5G体积,打开/搜索/定位本地页面,居然也从来不慢;索引使用 rdf 非常标准的数据格式,方便进行各种二次处理;确保好文章在第一时间先抓取到本地,不依赖原文网站,可以随时翻阅! 可以自动输出网站样 html 索引页面,个人网站的资料分享(http://floss.zoomquiet.org)就是直接使用这一功能发布的; * 需要注意的是,一定要有比较稳定和精简的知识体系分类,自个儿对任何一技术领域的资料,可以直觉性的判定出应该在哪个分类中,这才能够快速查询到; === think === 然后是面对大量资料的再整理/重构/思考阶段,自然的,俺也使用 |
Line 145: | Line 49: |
* 来源: * http://www.xmind.net/ {{http://static.xmind.net/css2/images/stage-ss-ss6.jpg}} * http://www.graphviz.org/About.php {{http://www.graphviz.org/gvicons/doc-theory.png}} * 沿革: 最早接触到思维图谱是 03年了,当时还以为只有手绘的才是思维图谱,后来知道了 freemind,这才开始追寻好用的思维工具: * freemind ~ JAVA创建,慢,中文支持诡异,数据格式规范 * yum ~ Ubuntu apt 中自带图谱工具,在7.04 阶段,freemind 中文杯具时期,一直在用,但是在 8.04时期,中文支持的情况又倒转了,数据格式私有 * CmapTools ~ 网络化思维导图工具,强大,但是中文/速度,都是个磨难...只好放弃 * JUDE ~ JAVA 的UML 工具,非常的专用,其它情景无法借用 * Dia ~ 号称可代替 Visio,但是,真的丑,而且操作很不 PS,无法提高效率 * yEd ~ 轻型的图谱工具,性能/功能/输出都很好,就是中文支持费劲... * 特别提点,以上图谱工具,只有 CmapTools 和 yEd 的输出有能力在图片上部署URL热区! * 体验: * 一个个尝试过来,最终习惯了 GUI+CLI 各一的工具组合 * XMind ~ 继承了 freemind 的所有好品质,更加快速和好用,内置的在线分享空间! * http://www.xmind.net/share/zoomquiet/ * {{attachment:csdn-zoomq-2010-05-12-160640_700x453_scrot.png}} * Graphviz ~ dot 图形脚本语言,是 WYTIWYG 的经典榜样,用文本来记录思维,用图形来展示思维,达到了禅样的高度!更加NB的是可以集成到各种工具中融入日常工作! * Doxygen ~ 文档化开发注释提取规范和工具, * Graphviz 自个儿的代码就使用 Doxygen 进行了自动化文档创建 * dot.c 文件的关系图谱 http://www.graphviz.org/pub/graphviz/development/doxygen/html/dot_8c.html |
* 最早接触到思维图谱是 03年了,当时还以为只有手绘的才是思维图谱,后来知道了freemind,这才开始追寻好用的思维工具 * '''Freemaind''' 是最常见的跨平台图谱工具,使用JAVA创建,缺点是慢,中文支持诡异,数据格式倒还规范~XML的,可以用XSL等工具,脱离Freemind进行二次处理/展示;但是在 Ubuntu7.04时期,Freemind中文完全杯具(主要是JAVA的配置问题),只好开始使用vym(ViewYouMind)是Ubuntu软件库中包含的图谱工具,基于Qt开发,速度快,中文支持,就是快捷键不好用。但是在8.04时期,中文支持的情况又倒转了,只好放弃,用回 FreeMind,但是已经对JAVA实现的FreeMind在复杂图谱中超肉的反应,以及不时的意外崩溃,丢失所有输入无法忍受了,开始尝试各种图谱工具,记有: * CmapTools ~ 网络化思维导图工具,强大,但是中文/速度,都是个磨难...只好放弃; * JUDE ~ JAVA 的UML 工具,非常的专用,其它情景无法借用; * Dia ~ 号称可代替 Visio,但是,真的丑,而且操作很不 PS,无法提高效率; * yEd ~ 轻型的图谱工具,性能/功能/输出都很好,就是中文支持费劲...; * 特别的,图谱的发布,很需要可点击,但是体验过的图谱工具,只有 CmapTools 和 yEd 的输出有能力在图片上部署URL热区! freemind非要跳转到下方的html文字链接树中才能继续点击进入真正的网址,奇怪的实现方式!(当然,Flash 格式的输出是可以的,但是,俺是Flash 反感者...) * 现在逐渐集中使用Graphviz(http://www.graphviz.org)~ 这是WYTIWYG的经典作品,通过编辑.dot 图形脚本来记录思维,用Graphviz提供的各种工具(比如说命令:dot)输出图形来展示思维,达到了禅样的高度,而且可以输出图片热区定义MAP文本,自然部署到HTML中成为可点击图片。 * 比如:编辑一文本 foo.dot {{{ digraph AnotherGraph { A->B;A->C; B->C->D; } }}} 然后在命令行使用 dot -Tpng foo.dot -o foo.png 命令就可以得到 foo.png {{{#!dot digraph AnotherGraph { A->B;A->C; B->C->D; } }}} * '''更加NB的是可以集成到各种工具中融入日常工作! '''例如: * 在Doxygen ~ 文档化开发注释提取规范和工具,就内置了 Graphviz 对代码的类关系进行图形化展示, Graphviz自个儿的代码就使用 Doxygen 进行了自动化文档管理,比如说: dot.c 文件的关系图谱 http://www.graphviz.org/pub/graphviz/development/doxygen/html/dot_8c.html |
Line 166: | Line 74: |
* MoinMoin ~ 强大的维基引擎,因为使用 Python 开发拥有自在的扩展能力,配合插件就可以直接在维基页面中书写 dot 收获图谱 * http://wiki.woodpecker.org.cn/moin/GraphVizForMoin * Trac ~ 轻巧的项目和配置管理系统,也是Python 实际,通过插件,使用 Graphviz 自动输出传票任务的关系图谱: |
* 在MoinMoin ~ 因为是用 Python 开发拥有自在的扩展能力,配合插件就可以直接在维基页面中书写 dot 文本而直接就地收获图谱;在轻巧的项目和配置管理系统Trac(也是Python 实际),通过插件,使用 Graphviz 自动输出传票任务的关系图谱。例如:{{attachment:moinmoin-dot_scrot.png}} * 在Trac ~ 轻巧的项目和配置管理系统,也是Python 实际,通过插件,使用 Graphviz 自动输出传票任务的关系图谱: |
Line 171: | Line 78: |
* ... === 输出 === 用来方便的将个人所得输出成合适格式: |
* 综上,以往的图谱工具都是GUI界面的,都需要鼠标,操作,依然强迫我们在叙述思维关系时,要关注排版的美观,只有使用Graphviz工具时,通过 .dot 脚本用纯文本,通过字符的简单约定来表述的思维关系,可以自然的使用版本系统进行统一管理,追踪变化,同时,可以随时调用命令生成图片,完美的解决了思维图谱的维护和展示两个完全不同层次/阶段的行为! 而且 .dot (甚至于可以使用.txt txt后缀,Graphviz 并不强行要求使用.dot)脚本不需要任何编辑工具,只要可以编辑文本的软件都可以来“画” 思维图谱 * 不过效率最高的还是直接手绘了... {{attachment:handarw-mindmap.gif}} === export === 最后是日常最艰苦和耗时的输出阶段了;习惯的工具也最多: |
Line 178: | Line 87: |
* 来源: Windows95 内置 表形码 ,后来编译成 SCIM 的码表沿用至今 * http://blog.zoomquiet.org/pyblosxom/Zen/Chinese/winbx-IMEstory-2006-05-15-12-00.html * 沿革: 五笔,没有学会;拼音,公认的效率低下;大二在工程制图老师的推荐下一用倾心! * 体验: 这是最接近汉字自然书写思路的输入法了: * 印刷 ~ 键入 `eppe` * 印 右边象大写`E`,左边象大写`P`,所以键入 `ep` |
* 输入法,可以说是所有国人使用电脑时,最最最频率使用的软件了,俺使用'''表形码''':来自Windows95SE内置输入法,一用倾心,最后编译成 SCIM 的码表沿用至今 (http://blog.zoomquiet.org/pyblosxom/Zen/Chinese/winbx-IMEstory-2006-05-15-12-00.html) * 爽直在于: 这是最接近汉字自然书写思路的输入法了:比如说,想输入"印刷: 就键入 `eppe`,为什么呢? * 印 右边就象大写`E`,左边象大写`P`,所以键入 `ep` |
Line 185: | Line 92: |
* 严格依照自然的汉字间架,以及笔顺来拆字 * 将E文字母的形状和中文部首的形态进行类比和归纳,不象其它形码类输入法,只是将键盘空间进行编码,输入时的转换是: * 整字->拆字(不一定按照书写顺序)->兑换成编号->对应到键盘位置->键入 * BXM 输入时的转换就非常简洁: * 整字->想象书写->形状对应字母->键入 * 所以! 使用表形码以来,还经常有查字典的经历,因为必须要知道怎么正确书写才可以正确输入! 非常好! * 当然的,承 SCIM 的情, BXM 导入Ubuntu 后,依然有完备的自定义功能,随时可以将近期常用词语记录成字典,快速调用 * 比如说: 去邮件列表交流使所有行者受益 就记录成 yyv |
* 哈哈哈,精巧在于:严格依照自然的汉字间架,以及笔顺来拆字,同时将E文字母的形状和中文部首的形态进行类比和归纳,直接对应成码表!不象其它形码类输入法,只是将键盘空间进行编码,以五笔输入时的思维转换为例: `整字->拆字(不一定按照书写顺序)->兑换成编号->对应到键盘位置->键入` * 然而 BXM 输入时的转换就非常简洁和人性: `整字->想象书写->形状对应字母->键入` * 所以! 使用表形码以来,还经常有查字典的经历,因为必须要知道怎么正确书写才可以正确输入! 非常好!省得俺忘记老祖宗的字儿怎么写了...当然的,承 SCIM 的情, BXM 导入Ubuntu 后,依然有完备的自定义功能,随时可以将近期常用词语记录成字典,快速调用 比如说: 去邮件列表交流使所有行者受益 就记录成 `yyv` |
Line 196: | Line 100: |
scort:: * 来源: (SCReen shOT) http://freshmeat.net/projects/scrot/ * 沿革: 截屏软件并不是功能越多越好,著名的 snapit 就一直没有用起来 * 在M$ 时代,最后习惯的截屏工具是: spx * 喜欢的它:快捷键唤起,截屏有撕边儿效果 * 体验: 迁移到Ubuntu 中,就用命令行! 截屏工具就应该简单到一行命令! * `scrot -s -d 1 -e 'mv $f ~/1snap/zoomq-$f'` 将这行命令设定成桌面快捷方式,就完成了M$ 时代软件截屏操作迁移! * 其实,可以继续用 管道,将图片输出给其它图片效果处理脚本,获得一样的撕边儿效果 t2t & rST:: * 来源: * {{http://docutils.sourceforge.net/rst.png}} http://docutils.sourceforge.net/rst.html * {{http://txt2tags.sourceforge.net/img/octus.gif}} http://txt2tags.sourceforge.net/ * 沿革: 文档的撰写,算是工作/生活的基本输出了 * M$时代,和大家一样忍受word ,这种永远无法用熟的界面,在 WYSIWYG ~ 所见即所得的神话中,不断的在作者/排版/美术/编辑角色间跃迁 * 遇到 MoinMoin 后,才知道世界上有 结构化文本,这种 WYTIWYG ~ 所想即所得 的文档组织过程,一但理解,就陷入无法割舍的享受;-) * 体验: 结构化文本的魔力! * text2tags ~ 简称 t2t * 到 2.1 版本后,已经支持从 纯文本到 HTML/XHTML/SGML/LaTeX/Lout/man/MediaWiki/MoinMoin/DokuWiki/Google code wiki/mpg/PageMaker 12种格式文本的输出! * 详细特性: http://txt2tags.sourceforge.net/features.html * 对于我,是核心中间文档格式之一,原先尝试 wixi 也是因为这种桌面维基工具,是使用 t2t 来解析文本的;-) * 特别是 t2t 本身 '''仅仅是一个Python 脚本''' 可以轻松的嵌入到任何应用中 ! * rST 则是作为大型文档的组织核心格式,当然,这离不了 {{http://sphinx.pocoo.org/_static/sphinx.png}} * http://sphinx.pocoo.org/ 提供了依托 rST 的完备图书工程组织工具 * 包括 Python 自身 http://docs.python.org/index.html 等等各种工程的帮助/API/图书,都快速将文档工程,从 DocBook 等框架迁移到了 sphinx * 这是支持模板的一整套图书工具,可以将一组 rST 根据配置,生成 HTML/CHM/PDF,有完备的命令行工具支持,结合版本管理系统,可以轻松的在任何服务器中架构自动化图书/大型文档编译事务 * http://obp.zoomquiet.org/ 就使用sphinx 在收集,管理,各种翻译和原创图书工程 Python:: * 来源: * 体验: 人生苦短,我用Python! * 不论什么目标,用Py 可以愉快的达到 * 沿革: VB->PHP->Shell Leo:: * 来源: * 体验: 这是种无法定位的编程环境: * 文学化编辑环境 * 将编程/写作 视作同一行为 * 真正解放文字组织想象力的生产率工具! * 这事儿无法细说,用了才知道! |
scrot:: * 即,SCReen shOT http://freshmeat.net/projects/scrot/ * 日常要写文档,少不了截屏以证明,但是截屏软件并不是功能越多越好,著名的 snapit 就一直没有用起来,在M$ 时代,最后习惯的截屏工具是: spx ;喜欢其:快捷键召唤,图片有撕边儿效果,功能极少,但都刚好需要; * 迁移到Ubuntu 中后,就用命令行! `scrot -s -d 1 -e 'mv $f ~/4snap/zoomq-$f'` 将这行命令设定成桌面快捷方式,就完成了习惯的截屏操作迁移,作到点击图标,召唤工具,使用坐标线划定截屏区域,等待1秒后(可以进行菜单什么的激活)截屏,并将图片移动到指定目录,重命名成 `zoomq-`前缀,嗯,图片名称形如:`2010-05-12-144121_463x380_scrot.png` 而且,可以继续用`管道`,将图片输出给其它图片效果处理脚本,获得一样的撕边儿效果 结构化文本!:: * 各种文档的撰写,算是代码之外,工作/ 生活的基本输出形式了。 瘟倒死时代,和大家一样忍受Word 这是永远无法用熟的界面!为什么这么说呢?因为在WYSIWYG~所见即所得的界面中,我们被迫不断地在作者/排版/美术/编辑角色间跃迁,其实被浪费了太多精力,何况Word不断增长的越来越复杂的功能,9成以上是我们可能永远用不到的,却需要我们不断学习,熟悉。 * 遇到MoinMoin后,才知道世界上有WYTIWYG(所想即所得)的文档组织过程,一但理解,就陷入无法割舍的享受。一切都是结构化文本的魔力。即通过简单的空格或是字符约定,标识出文章结构,撰写时,完全不考虑排版啊字体啊什么乱七八糟的事儿,专注将心中所想,用明确的内容结构表述出来,具体的展示由专门的工具自动处理,配合CSS什么的排版输出成标准化格式文档。 * 这方面,我习惯使用 {{http://docutils.sourceforge.net/rst.png}} (一般缩写为[[http://docutils.sourceforge.net/rst.html|rST]]),不论是文章还是作为大型文档的组织核心格式,都可以担当,其中 {{http://sphinx.pocoo.org/_static/sphinx.png}} (http://sphinx.pocoo.org) 提供了依托 rST 的完备图书工程组织工具平台;当前包括 Python自身各种级别的工程帮助/API/图书,都将文档工程,从 DocBook 等文档框架迁移到了 Sphinx。这是支持模板的一整套图书工具,可以将一组 rST 根据配置,生成 HTML/CHM/PDF,有完备的命令行工具支持,结合版本管理系统,可以轻松的在任何服务器中架构自动化图书/大型文档编译事务。 http://obp.zoomquiet.org/ 就使用Sphinx 在收集、管理、各种翻译和原创图书工程。 ==== Leo ==== '''文学化编程''' 发源自伟大的 [[http://www-cs-faculty.stanford.edu/~knuth/index.html|{{http://www-cs-faculty.stanford.edu/%7Eknuth/don.gif}}]] [美] Donald E. Knuth {{http://www-cs-faculty.stanford.edu/~knuth/chop.gif}} 在创作 {{http://img2.douban.com/lpic/s4093193.jpg}} 时发明的 [[http://en.wikipedia.org/wiki/Literate_programming|Literate programming]] * 官方网站在:http://www.literateprogramming.com/ * 实际上从 1984 年正式提出 `文学化编程` 之后,有很多工具和库在释放和使用: * [[http://www.literateprogramming.com/tools.html|Literate Programming - Tools]] * Leo 是其中一种,最易用的 ;-) '''Leo'''~`L`iterate `E`ditor with `O`tlines 意为 `基于提纲的文学化编辑器` * 官方社区: http://webpages.charter.net/edreamleo/front.html * 支持文学化编程:[[http://webpages.charter.net/edreamleo/design.html|Chapter 6: Leo and Literate Programming — Leo v4.6-b1 documentation]] * 基本界面: {{http://leo.zwiki.org/screenshot.jpg}} * 当 死Coder当然要有趁手的编程环境,俺主力编辑环境是Leo(辅助编辑器是最土的 gedit)。TurboC 时代,很羡慕机器配置好,安装起来 VC 的同学。工作后,一直专注UtralEdit,对edit++没有感觉(因为先用了UE),也形成了一些习惯操作以及快捷图标的安排,但是发觉无法保存,只要系统重装就得重新配置一切(而用瘟倒死,每个月不重装,基本很不靠谱)!进而,UE 也隨着升级,不断重型化,就开始寻求轻型替代。进入 FLOSS世界后,也严重信赖 utf-8,所以用EmEditor,但是性能肉点儿。Eclipse也尝试过,但是机器实在受不了这种坦克,俺的心理也受不了:什么都没有干就先食掉 500M。 然后:Gedit,Kate,Kedit,KWrite,Jed,SciTE,Vim,GVim,Emacs,XEmacs,Bluefish,Eric... 逐一尝试过,都无法沉浸其中。最终遇到并理解了Leo后,就无法放手了。为什么呢? 很难精确描述这种自在的感受...囧rz * Leo本身也是种很难定位的编程/辑/器/环境(因为其独特的文学化编程理念,完全颠覆了我们习惯的所有IDE行为)。理论根源于Donald Knuth 针对结构化编程,在撰写 TAOCP(计算机程序设计艺术~神书,写了30年都没有写完)时针对结构化编程发明的:文学化编程 ([[http://en.wikipedia.org/wiki/Literate_programming|Literate Programming]]) * (丫没文化的人才使用结构化编程呢!) * 就俺的体验:将编程/写作视作同种行为,认为文本的层次和结构要比语法结构重要! 是真正解放代码和思想间隔阂的生产力工具, 可这感觉无法细说,用了才知道。 最核心的爽直应该说是:'''“可以直接将思维层次和文本对应起来!”''' * 一般我们编程时,面对的都是线性铺下来的代码行,在IDE帮助下,可获得自动化根据语法结构折叠的效果,但是整体上面对的还是一维的面向单独文件的平铺下来的文本流; * 但是,我们在思考程序时,绝对不是这样的,通常是根据自然的思维,将问题对应成一“块块儿”需要实现的行动,并通过一些逻辑判定将这些“块”缀起来,分别测试实现后,才考虑什么封装哪,层次哪,非直接面向解决问题的程序问题;而且更多情况下,这种“块儿”根本没有必要在各种模块/项目中封装,复用仅需要复制过去,小修订一下就好的。等等,和我们的自然思维直接呼应的编辑/逻辑文本区块管理/复用/一致性维护等等行为,在其它IDE中不可想象的行为,在Leo 中是天然行为,可以将文章或是程序,用自个儿的层次理解表述/管理起来,但是输出时,却又是标准的线性代码以供编译器/解析器使用。可以说,Leo就如同 Graphviz通过.dot脚本,将思维的关系图谱叙述和图形展示进行了合理和自然的分离。Leo通过在界面中树形节点的操作配合文本编辑,将程序的自然思维形式化了,同时又通过丰富的输出方式,确保了这种基于节点树的形式化和编译/解析器要求的线性文本流兼容!优雅的实现了 文学化编程;举两个实际的爽快吧: 1. 在Leo 中,在调试复杂嵌套循环时,我可以逐层调试,而且每层要解决什么问题,是可以用中文直接标识在节点上的;而且通过每节点的编辑,可以集中精力在当前事务,而不用担心意外触动其它代码或是缩进异常~在节点界面中,只能看到属于节点的文本!进而,由于程序通过各种非语法结构,而是语义/逻辑/思想结构的节点划分,和标注,程序不论多复杂,任何时候看,都是直接阅读程序的意图结构,而不是生硬的和问题解决一般没有什么直接关系的语法结构! 1. 在Leo中,可以通过节点的“克隆”操作,对要复用的代码段生成N个复本插入到其它文件中,但是,所有复本,是自动统一维护的,即,其中任一修订了,其它有“克隆”关系的节点自动同步!当然,再怎么说,读者估计也是很难想象什么是 Leo的文学化编辑的,建议看看教程,自行在真实小工程中尝试一下就什么都明白了。 * 对俺来讲是真正解放文字组织想象力的生产率工具!-) (...可这感觉无法细说,用了才知道!) |
Line 240: | Line 140: |
* 沿革: UtralEdit->EmEditor->Eclipse... MoinMoin:: * 来源: * 体验: 完美的Wiki 引擎! * 结合 FireFox 的插件: 1. CoLT ~ 快速链接组合器 1. It's all text! ~ 外部编辑器调用者! 无视 txtarea 的杀手工具 * 沿革: 直接遇到了!没有怀疑,没有对比,就用到现在! PyBlosxom:: * 来源: * 体验: Geek的blog 系统,足够简单和hacking 的乐趣 * 沿革: blogger->LJ->WP->MT... === TODO === 万事古难全,留白天地宽: * 自个儿的工具箱依然在补全中,工具,不在使用中形成肌肉记忆,将无法对生产率产生积累影响 * 所以待体验的工具也先列一下吧: 1. Emacs ~ 编辑器之皇,连带的得熟悉和使用 Lisp,学习成本大,但是终身受益! 1. LaTeX ~ 终极排版工具,当前所有输出都是 txt 格式为标准的,只要掌握了 LaTeX 并开发自个儿常用的模板,就可以一键完成各种形式的展示文档! 1. ThunderBird ~ 一直无法稳定的配置成 Gmail 的操作快捷键,需要hacking 或是继续迁移 1. 纸+笔 ~ 不论什么电脑工具,都不如'''纸+笔''' 的组合高效!但是,这一组合,又实在太考验使用者,俺现在的初步组合是: * A6幅面的80页线圏本,配普通伸缩水笔 |
* 列举一下快捷键: * alt+↑ 移动编辑区到上一节点 * alt+↓ 移动编辑区到下一节点 * alt+← 折叠兄弟节点,移动到父节点 * alt+→ 展开下级节点 * enter 进入编辑视图 * ctrl+shift+C 复制当前节点以及所有下层子节点 * ctrl+shift+V 粘贴到当前节点 * ctrl+. 删除当前节点(可自行定制) * ctrl+` 克隆当前节点(所有克隆节点视作同一对象,任一变更,所有同步更新!) * ctrl+u 移动当前节点向上移动 * ctrl+d 移动当前节点向下移动 * ctrl+l 移动当前节点为上层节点 * ctrl+r 移动当前节点为子级节点 * 配合文本中类似 `@others` `@path` `<<子段落 节点>>` 等指示符,可以将文章或是程序,用自个儿的层次理解表述/管理起来,但是输出时,却又是标准的线性文本; * 连带的 S5: A Simple Standards-Based Slide Show System http://meyerweb.com/eric/tools/s5/ * 也好用起来,可以复用前次的幻灯通用页面,元素; 将各页幻灯,可以自由根据任意内容分类,进行分组,快速调整次序,统一调整样式... * {{attachment:csdn-zoomq-2010-05-12-203308_1044x438_scrot.png}} === 文合 === '''万事古难全,留白天地宽''' 大家可能发现了,俺是自由软件狂信者,从06年开始使用Ubuntu 后,彻底远离了晕倒死; 所以,所有工具全部是优先面向NGU/Linux 的; 但是以上工具除了 scrot 可都是跨平台的哈,另外,日常使用的无法划分到哪个阶段的工具还有: {{http://www.python.org/images/python-logo.gif}} http://www.python.org/ * 手边儿的脚本工具,'''人生苦短,我用Python!''' 整个入迷的过程,部分记录到了 `可爱的Python`一书中,这儿不细表;当前严重依赖 iPython ,随时印证想法,简单测试,当计算器用... 除了不能帮俺给自行车打气,基本什么都可以作了;-) 最爽直在于,这是唯一将排版缩进作为语法结构的通用脚本语言,好处在可以令一切 .py 脚本,看起来都是规范清晰的,不会因各种流程的排版方式,令人面对不熟悉的排版造成代码理解人为障碍; [[http://www.workrave.org|{{http://www.workrave.org/media/base/img/logo.png}}]] 这个软体是协助预防与復原重复性压力伤害 (Repetitive Strain Injury RSI) * 社区在: http://www.workrave.org/ * 有了这么多高效工具后,很容易深迷在阅读/思考/写作中,长期以同一姿势定在电脑前,非常容易引发 RSI! 所以, Workrave 强行提醒俺定期离开电脑前,活动放松一下眼睛/身体/头脑... * 并提供保健操指引 {{attachment:workrave-exercises.gif}} 操作时间/行为统计 {{attachment:workrave-zoomq-2010-06-04-144130_632x290_scrot.png}} * 更加重要的,有助与形成固定的高效工作节奏,自动的将任务用生物钟分解成小短时间任务,比如,45分钟, 这样在固定时间中,集中注意力完成任务,然后休息,再进入下一任务; 这种工作方式已经形成完整的理论,就叫: {{http://www.pomodorotechnique.com/_data/images/paper.jpg}} (http://www.pomodorotechnique.com/) 自个儿的工具箱依然在补全中,但是有种工具永远无法替代: * '''纸+笔''' ~ 不论什么电脑工具,都不如这组合高效!但是,这一组合的使用又实在太考验使用者,俺现在的初步使用方式是: * A6幅面的80页线圏本,配普通水笔; |
Line 267: | Line 189: |
* 从后到前, 是会议/沟通记要,坚持使用思维图谱形式 * 主要问题是: 定期的时间支出统计,和任务完成经验整理,有个从纸到电脑的转换,这一过程还没有找到靠谱的工具来自动进行... |
* 从后到前, 是会议/沟通记要,坚持使用思维图谱形式; * 主要问题是: 定期的时间支出统计,和任务完成经验整理,有个从纸到电脑的转换,这一过程还没有找到靠谱的工具来自动进行... 最后,借用好友cathayan 的小诗来总结一下我的工具追求: {{{ 文本文件好 工具遍地跑 程序两三行 全部改好了 }}} ( http://blog.cathayan.org/item/920) 让我们面向文本记录,面向数据程序,面向肌肉操作吧! == 俺的工具箱~素材版 == * /StuffVersion ~ 原始畅谈版 |
CSDN编辑观察团~对稿ing...
我的学习&工具
工具箱
个人效率工具箱,发源自100423 北京奇遇花园 推友聚会上的f2f 沟通
- 先简断截说当前日常在用的工具:
俺的工具箱~CSDN版
自述
|
文启
应老刘之邀分享一下个人日常效率工具,但是:吾之膏腴彼之毒药!,俺真不知道说过后,会有什么后果; 先聲明一下,所有经验皆为个人体验,未经任何有关部门认证,请读者自行判定是否靠谱哈; 对于工具的选择,对于俺,这是一持续将近14年的连续过程,很艰难的才算形成一点已知的原则,先唠叨一下,是否获得认同另说,只是强调都不是孤立存在于个人工具箱的,而是作为整体服务于俺的生活/工具领域,选择标准如下:
- 尽可能是FLOSS/跨平台/开发社区活跃
- 尽可能多样或是标准化的输出格式(有 txt/html 最好)
- 尽可能有命令行界面/接口(以便通过管道和其它事儿连接起来)
- 尽可能有完备的快捷键支持
- 安装/升级/备份都简单/可靠(绝对无法容忍一重装系统所有习惯的配置就得重新再配的杯具! )
只要吻合条以上就很善哉了;非常使用现在想来好象是追求:
MOO ~ Muscle Oriented Operating ~ 面向肌肉的操作
使用不应该依赖眼睛/鼠标等额外条件干扰,仅仅键盘操作就可以达到目标,每次从鼠标定位/菜单操作中节省的零点几秒时间,在日常大量操作积累后,就是一可观的收获了! 而且,形成肌肉记忆后,将不断的加强,不会因为环境的变化而失效,这样的工具才是终身受用的!当然,这里的必要前提就是操作在键盘上是有固定的位置/组合的,显然鼠标是不可能形成肌肉记忆的...表说鼠标手势,这东西消耗的功率是键盘的几倍,俺不想得鼠标手...
下面根据自个儿非常的生产活动主要环节,来说明选用的工具组合:
import
首先是一切的起点,输入活动,当前,基本上从外界的信息输入都是电子化的了,图书已经末落了;电子化的信息输入,又最多的来自互联网,互联网信息,最多的形式又是网页,所以,对于俺,最重要也最随手的就是网页的收集管理...
- ScrapBook
这是一个火狐的插件
历史上同类活动,最初是使用分类目录收纳,但是,问题在于无法快速定位想看的,即使后来动用了桌面搜索也不方便;后来尝试过各种个人知识库软件(Mybas,KnowledgeTree,Tubo, Onenote...), 主力浏览器迁移到火狐后,也体验过终极资料管理器Zotero;都难以达到功能/性能/管理三者均衡,最终还是坚持了crapBook;
爽直在于: 是和火狐自然配合的使用最简单轻便的网页管理工具,仅用右键点选(当然的可以通过keyconfig之类快捷键定义插件来绑定键盘操作)菜单即刻抓取指定内容到本地,并组织到指定的分类中,同时提供足够可用的搜索/再编辑/导出/导入等实用功能;使用至今,收集了4万多页面,近5G体积,打开/搜索/定位本地页面,居然也从来不慢;索引使用 rdf 非常标准的数据格式,方便进行各种二次处理;确保好文章在第一时间先抓取到本地,不依赖原文网站,可以随时翻阅! 可以自动输出网站样 html 索引页面,个人网站的资料分享(http://floss.zoomquiet.org)就是直接使用这一功能发布的;
- 需要注意的是,一定要有比较稳定和精简的知识体系分类,自个儿对任何一技术领域的资料,可以直觉性的判定出应该在哪个分类中,这才能够快速查询到;
think
然后是面对大量资料的再整理/重构/思考阶段,自然的,俺也使用
- 思维图谱
- 最早接触到思维图谱是 03年了,当时还以为只有手绘的才是思维图谱,后来知道了freemind,这才开始追寻好用的思维工具
Freemaind 是最常见的跨平台图谱工具,使用JAVA创建,缺点是慢,中文支持诡异,数据格式倒还规范~XML的,可以用XSL等工具,脱离Freemind进行二次处理/展示;但是在 Ubuntu7.04时期,Freemind中文完全杯具(主要是JAVA的配置问题),只好开始使用vym(ViewYouMind)是Ubuntu软件库中包含的图谱工具,基于Qt开发,速度快,中文支持,就是快捷键不好用。但是在8.04时期,中文支持的情况又倒转了,只好放弃,用回 FreeMind,但是已经对JAVA实现的FreeMind在复杂图谱中超肉的反应,以及不时的意外崩溃,丢失所有输入无法忍受了,开始尝试各种图谱工具,记有:
CmapTools ~ 网络化思维导图工具,强大,但是中文/速度,都是个磨难...只好放弃;
- JUDE ~ JAVA 的UML 工具,非常的专用,其它情景无法借用;
- Dia ~ 号称可代替 Visio,但是,真的丑,而且操作很不 PS,无法提高效率;
- yEd ~ 轻型的图谱工具,性能/功能/输出都很好,就是中文支持费劲...;
特别的,图谱的发布,很需要可点击,但是体验过的图谱工具,只有 CmapTools 和 yEd 的输出有能力在图片上部署URL热区! freemind非要跳转到下方的html文字链接树中才能继续点击进入真正的网址,奇怪的实现方式!(当然,Flash 格式的输出是可以的,但是,俺是Flash 反感者...)
现在逐渐集中使用Graphviz(http://www.graphviz.org)~ 这是WYTIWYG的经典作品,通过编辑.dot 图形脚本来记录思维,用Graphviz提供的各种工具(比如说命令:dot)输出图形来展示思维,达到了禅样的高度,而且可以输出图片热区定义MAP文本,自然部署到HTML中成为可点击图片。
- 比如:编辑一文本 foo.dot
digraph AnotherGraph { A->B;A->C; B->C->D; }
然后在命令行使用 dot -Tpng foo.dot -o foo.png 命令就可以得到 foo.png
更加NB的是可以集成到各种工具中融入日常工作! 例如:
在Doxygen ~ 文档化开发注释提取规范和工具,就内置了 Graphviz 对代码的类关系进行图形化展示, Graphviz自个儿的代码就使用 Doxygen 进行了自动化文档管理,比如说: dot.c 文件的关系图谱 http://www.graphviz.org/pub/graphviz/development/doxygen/html/dot_8c.html
在MoinMoin ~ 因为是用 Python 开发拥有自在的扩展能力,配合插件就可以直接在维基页面中书写 dot 文本而直接就地收获图谱;在轻巧的项目和配置管理系统Trac(也是Python 实际),通过插件,使用 Graphviz 自动输出传票任务的关系图谱。例如:
- 在Trac ~ 轻巧的项目和配置管理系统,也是Python 实际,通过插件,使用 Graphviz 自动输出传票任务的关系图谱:
- 综上,以往的图谱工具都是GUI界面的,都需要鼠标,操作,依然强迫我们在叙述思维关系时,要关注排版的美观,只有使用Graphviz工具时,通过 .dot 脚本用纯文本,通过字符的简单约定来表述的思维关系,可以自然的使用版本系统进行统一管理,追踪变化,同时,可以随时调用命令生成图片,完美的解决了思维图谱的维护和展示两个完全不同层次/阶段的行为! 而且 .dot (甚至于可以使用.txt txt后缀,Graphviz 并不强行要求使用.dot)脚本不需要任何编辑工具,只要可以编辑文本的软件都可以来“画” 思维图谱
- 不过效率最高的还是直接手绘了...
export
最后是日常最艰苦和耗时的输出阶段了;习惯的工具也最多:
- BXM
输入法,可以说是所有国人使用电脑时,最最最频率使用的软件了,俺使用表形码:来自Windows95SE内置输入法,一用倾心,最后编译成 SCIM 的码表沿用至今
爽直在于: 这是最接近汉字自然书写思路的输入法了:比如说,想输入"印刷: 就键入 eppe,为什么呢?
印 右边就象大写E,左边象大写P,所以键入 ep
刷 的尸字头象小写p,巾字部首,象竖起来的E ,所以键入 pe
- 哈哈哈,精巧在于:严格依照自然的汉字间架,以及笔顺来拆字,同时将E文字母的形状和中文部首的形态进行类比和归纳,直接对应成码表!不象其它形码类输入法,只是将键盘空间进行编码,以五笔输入时的思维转换为例:
整字->拆字(不一定按照书写顺序)->兑换成编号->对应到键盘位置->键入
- 然而 BXM 输入时的转换就非常简洁和人性:
整字->想象书写->形状对应字母->键入
所以! 使用表形码以来,还经常有查字典的经历,因为必须要知道怎么正确书写才可以正确输入! 非常好!省得俺忘记老祖宗的字儿怎么写了...当然的,承 SCIM 的情, BXM 导入Ubuntu 后,依然有完备的自定义功能,随时可以将近期常用词语记录成字典,快速调用 比如说: 去邮件列表交流使所有行者受益 就记录成 yyv
- scrot
即,SCReen shOT http://freshmeat.net/projects/scrot/
- 日常要写文档,少不了截屏以证明,但是截屏软件并不是功能越多越好,著名的 snapit 就一直没有用起来,在M$ 时代,最后习惯的截屏工具是: spx ;喜欢其:快捷键召唤,图片有撕边儿效果,功能极少,但都刚好需要;
迁移到Ubuntu 中后,就用命令行! scrot -s -d 1 -e 'mv $f ~/4snap/zoomq-$f' 将这行命令设定成桌面快捷方式,就完成了习惯的截屏操作迁移,作到点击图标,召唤工具,使用坐标线划定截屏区域,等待1秒后(可以进行菜单什么的激活)截屏,并将图片移动到指定目录,重命名成 zoomq-前缀,嗯,图片名称形如:2010-05-12-144121_463x380_scrot.png 而且,可以继续用管道,将图片输出给其它图片效果处理脚本,获得一样的撕边儿效果
- 结构化文本!
- 各种文档的撰写,算是代码之外,工作/ 生活的基本输出形式了。 瘟倒死时代,和大家一样忍受Word 这是永远无法用熟的界面!为什么这么说呢?因为在WYSIWYG~所见即所得的界面中,我们被迫不断地在作者/排版/美术/编辑角色间跃迁,其实被浪费了太多精力,何况Word不断增长的越来越复杂的功能,9成以上是我们可能永远用不到的,却需要我们不断学习,熟悉。
遇到MoinMoin后,才知道世界上有WYTIWYG(所想即所得)的文档组织过程,一但理解,就陷入无法割舍的享受。一切都是结构化文本的魔力。即通过简单的空格或是字符约定,标识出文章结构,撰写时,完全不考虑排版啊字体啊什么乱七八糟的事儿,专注将心中所想,用明确的内容结构表述出来,具体的展示由专门的工具自动处理,配合CSS什么的排版输出成标准化格式文档。
这方面,我习惯使用
(一般缩写为rST),不论是文章还是作为大型文档的组织核心格式,都可以担当,其中
(http://sphinx.pocoo.org) 提供了依托 rST 的完备图书工程组织工具平台;当前包括 Python自身各种级别的工程帮助/API/图书,都将文档工程,从 DocBook 等文档框架迁移到了 Sphinx。这是支持模板的一整套图书工具,可以将一组 rST 根据配置,生成 HTML/CHM/PDF,有完备的命令行工具支持,结合版本管理系统,可以轻松的在任何服务器中架构自动化图书/大型文档编译事务。 http://obp.zoomquiet.org/ 就使用Sphinx 在收集、管理、各种翻译和原创图书工程。
Leo
文学化编程 发源自伟大的 [美] Donald E. Knuth
在创作
时发明的 Literate programming
实际上从 1984 年正式提出 文学化编程 之后,有很多工具和库在释放和使用:
Leo 是其中一种,最易用的
Leo~Literate Editor with Otlines 意为 基于提纲的文学化编辑器
支持文学化编程:Chapter 6: Leo and Literate Programming — Leo v4.6-b1 documentation
基本界面:
当 死Coder当然要有趁手的编程环境,俺主力编辑环境是Leo(辅助编辑器是最土的 gedit)。TurboC 时代,很羡慕机器配置好,安装起来 VC 的同学。工作后,一直专注UtralEdit,对edit++没有感觉(因为先用了UE),也形成了一些习惯操作以及快捷图标的安排,但是发觉无法保存,只要系统重装就得重新配置一切(而用瘟倒死,每个月不重装,基本很不靠谱)!进而,UE 也隨着升级,不断重型化,就开始寻求轻型替代。进入 FLOSS世界后,也严重信赖 utf-8,所以用EmEditor,但是性能肉点儿。Eclipse也尝试过,但是机器实在受不了这种坦克,俺的心理也受不了:什么都没有干就先食掉 500M。 然后:Gedit,Kate,Kedit,KWrite,Jed,SciTE,Vim,GVim,Emacs,XEmacs,Bluefish,Eric... 逐一尝试过,都无法沉浸其中。最终遇到并理解了Leo后,就无法放手了。为什么呢? 很难精确描述这种自在的感受...囧rz
Leo本身也是种很难定位的编程/辑/器/环境(因为其独特的文学化编程理念,完全颠覆了我们习惯的所有IDE行为)。理论根源于Donald Knuth 针对结构化编程,在撰写 TAOCP(计算机程序设计艺术~神书,写了30年都没有写完)时针对结构化编程发明的:文学化编程 (Literate Programming)
- (丫没文化的人才使用结构化编程呢!)
就俺的体验:将编程/写作视作同种行为,认为文本的层次和结构要比语法结构重要! 是真正解放代码和思想间隔阂的生产力工具, 可这感觉无法细说,用了才知道。 最核心的爽直应该说是:“可以直接将思维层次和文本对应起来!”
- 一般我们编程时,面对的都是线性铺下来的代码行,在IDE帮助下,可获得自动化根据语法结构折叠的效果,但是整体上面对的还是一维的面向单独文件的平铺下来的文本流;
- 但是,我们在思考程序时,绝对不是这样的,通常是根据自然的思维,将问题对应成一“块块儿”需要实现的行动,并通过一些逻辑判定将这些“块”缀起来,分别测试实现后,才考虑什么封装哪,层次哪,非直接面向解决问题的程序问题;而且更多情况下,这种“块儿”根本没有必要在各种模块/项目中封装,复用仅需要复制过去,小修订一下就好的。等等,和我们的自然思维直接呼应的编辑/逻辑文本区块管理/复用/一致性维护等等行为,在其它IDE中不可想象的行为,在Leo 中是天然行为,可以将文章或是程序,用自个儿的层次理解表述/管理起来,但是输出时,却又是标准的线性代码以供编译器/解析器使用。可以说,Leo就如同 Graphviz通过.dot脚本,将思维的关系图谱叙述和图形展示进行了合理和自然的分离。Leo通过在界面中树形节点的操作配合文本编辑,将程序的自然思维形式化了,同时又通过丰富的输出方式,确保了这种基于节点树的形式化和编译/解析器要求的线性文本流兼容!优雅的实现了 文学化编程;举两个实际的爽快吧:
- 在Leo 中,在调试复杂嵌套循环时,我可以逐层调试,而且每层要解决什么问题,是可以用中文直接标识在节点上的;而且通过每节点的编辑,可以集中精力在当前事务,而不用担心意外触动其它代码或是缩进异常~在节点界面中,只能看到属于节点的文本!进而,由于程序通过各种非语法结构,而是语义/逻辑/思想结构的节点划分,和标注,程序不论多复杂,任何时候看,都是直接阅读程序的意图结构,而不是生硬的和问题解决一般没有什么直接关系的语法结构!
- 在Leo中,可以通过节点的“克隆”操作,对要复用的代码段生成N个复本插入到其它文件中,但是,所有复本,是自动统一维护的,即,其中任一修订了,其它有“克隆”关系的节点自动同步!当然,再怎么说,读者估计也是很难想象什么是 Leo的文学化编辑的,建议看看教程,自行在真实小工程中尝试一下就什么都明白了。
- 对俺来讲是真正解放文字组织想象力的生产率工具!-)
- (...可这感觉无法细说,用了才知道!)
最最最核心的致命吸引力:可以直接将思维层次和文本对应起来!
- 列举一下快捷键:
- alt+↑ 移动编辑区到上一节点
- alt+↓ 移动编辑区到下一节点
- alt+← 折叠兄弟节点,移动到父节点
- alt+→ 展开下级节点
- enter 进入编辑视图
- ctrl+shift+C 复制当前节点以及所有下层子节点
- ctrl+shift+V 粘贴到当前节点
- ctrl+. 删除当前节点(可自行定制)
- ctrl+` 克隆当前节点(所有克隆节点视作同一对象,任一变更,所有同步更新!)
- ctrl+u 移动当前节点向上移动
- ctrl+d 移动当前节点向下移动
- ctrl+l 移动当前节点为上层节点
- ctrl+r 移动当前节点为子级节点
配合文本中类似 @others @path <<子段落 节点>> 等指示符,可以将文章或是程序,用自个儿的层次理解表述/管理起来,但是输出时,却又是标准的线性文本;
连带的 S5: A Simple Standards-Based Slide Show System http://meyerweb.com/eric/tools/s5/
- 也好用起来,可以复用前次的幻灯通用页面,元素; 将各页幻灯,可以自由根据任意内容分类,进行分组,快速调整次序,统一调整样式...
文合
万事古难全,留白天地宽 大家可能发现了,俺是自由软件狂信者,从06年开始使用Ubuntu 后,彻底远离了晕倒死; 所以,所有工具全部是优先面向NGU/Linux 的; 但是以上工具除了 scrot 可都是跨平台的哈,另外,日常使用的无法划分到哪个阶段的工具还有:
手边儿的脚本工具,人生苦短,我用Python! 整个入迷的过程,部分记录到了 可爱的Python一书中,这儿不细表;当前严重依赖 iPython ,随时印证想法,简单测试,当计算器用... 除了不能帮俺给自行车打气,基本什么都可以作了;-) 最爽直在于,这是唯一将排版缩进作为语法结构的通用脚本语言,好处在可以令一切 .py 脚本,看起来都是规范清晰的,不会因各种流程的排版方式,令人面对不熟悉的排版造成代码理解人为障碍;
这个软体是协助预防与復原重复性压力伤害 (Repetitive Strain Injury RSI)
- 有了这么多高效工具后,很容易深迷在阅读/思考/写作中,长期以同一姿势定在电脑前,非常容易引发 RSI! 所以, Workrave 强行提醒俺定期离开电脑前,活动放松一下眼睛/身体/头脑...
并提供保健操指引
操作时间/行为统计
- 更加重要的,有助与形成固定的高效工作节奏,自动的将任务用生物钟分解成小短时间任务,比如,45分钟, 这样在固定时间中,集中注意力完成任务,然后休息,再进入下一任务; 这种工作方式已经形成完整的理论,就叫:
自个儿的工具箱依然在补全中,但是有种工具永远无法替代:
纸+笔 ~ 不论什么电脑工具,都不如这组合高效!但是,这一组合的使用又实在太考验使用者,俺现在的初步使用方式是:
- A6幅面的80页线圏本,配普通水笔;
- 从前到后,是每日时间帐单:两面一页一天,左边是顺序的任务用时记录,右边是当日计划任务图谱分析;
- 从后到前, 是会议/沟通记要,坚持使用思维图谱形式;
- 主要问题是: 定期的时间支出统计,和任务完成经验整理,有个从纸到电脑的转换,这一过程还没有找到靠谱的工具来自动进行...
最后,借用好友cathayan 的小诗来总结一下我的工具追求:
文本文件好 工具遍地跑 程序两三行 全部改好了
( http://blog.cathayan.org/item/920) 让我们面向文本记录,面向数据程序,面向肌肉操作吧!
俺的工具箱~素材版
/StuffVersion ~ 原始畅谈版
书摘
反馈
创建 by -- ZoomQuiet [2008-12-19 15:53:21]