-
Markdown 及杂谈
Markdown 是一种轻量级的标记语言,两位牛人从纯文本邮件的格式惯例中借鉴了一些想法,规定了该语言的语法。因为标记语言的英文是 Markup, 所以大家看 Markdown 的名字就大概了解作者的意图了…… 著名的面向程序员的问答交流站点 Stack Overflow 即采用 Markdown 作为用户输入中格式化文本的语言。我的这个新版 blog 也在后台采用这种格式写文章,很快就会上线的评论功能也将用 Markdown 作为输入格式。 我个人比较烦可视化 (WYSIWSG) 编辑器,因为大部分都异常臃肿(客户端加载慢,用户体验差),生成的代码非常垃圾。我使用 WordPress 的时候,也从来不用它自带的 tinyMCE,quick tag editor 挺好用的。 Stack Overflow 可以放心大胆地使用 Markdown,因为它面向的是程序员群体,即使从来没有接触过,稍微看一下帮助也就没问题了。如果真的不会,那你走错路了,我说程序员的平均水平咋这么差呢,你还是该干嘛干嘛去吧。 Flickr 不是面向程序员的,不过它同样没有在图片评论框使用可视化编辑器,而是使用了自定义图片、链接格式加部分 HTML 代码的形式。这一方面也是因为在评论框中输入大量格式文本的需求不是那么大。我觉得这样很好,稍微有点脑子就很快知道怎么格式化文本,那些智商实在太低的,就淘汰掉吧。 可是有时候不得不面对低智商的用户群,以前跟一个朋友交流,他就说,应用了可视化编辑器,许多用户还是不知道如何插入链接、图片。如果你不得已需要在网站上应用可视化编辑器,我推荐 NicEdit。 使用非 HTML 代码作为用户输入方式,还有一个很大的好处,就是你可以放心地过滤掉 HTML 代码,不需担心用户夹杂恶意代码。最近很感兴趣的 web.py 中,就提供了一个方便的函数 safemarkdown 来做这样的事情。 写完才发现,类似的内容我以前就写过一篇了: 表单富文本输入,选择什么方式?
-
重新开张,从里到外通通换了一遍
blog 初步迁移到了自己写的 python 程序中,目前还非常简单,连评论也不能添加。在我自己的项目管理系统里,我就叫这个 milestone 0.1,到 0.2 就会有评论功能,肯定在一个月之内会实现。没有评论功能,意味着不能接受大家的贺电了,请抑制一下你们激动的心情…… (其实我是在响应号召,为建设和谐社会作贡献) 大约从 05 年底我开始写 blog,最初似乎是在 donews 提供的 wordpress mu 平台上写(我不太清楚之前有没有在其它的一些 BSP 写过没有了)。很快为了自己能更加方便地自定义而选择了租用空间自己管理 WordPress. 其实 WordPress 对我影响非常大,我的 Web 开发就是从定制 WordPress 开始学起的,尽管 PHP 一直不是太熟悉,后来用 Java 比较多。 所以转移阵地并不意味着 WordPress 不好。作为一个通用 blog 软件,它功能齐全,很容易定制,还是非常适合刚开始尝试自己架设 blog 的用户(或者刚刚弃暗投明从 sina, 163 等 BSP 过来的人)。我只是有了更加确切的需求,并且想放弃 WordPress 的大部分附加功能,同时借机学习一下 python. blogging 也是需要新鲜感的,所以每次 WP 的编辑页面升级的话,会大大提升写文章的欲望(虽然回头看时觉得文章大部分都是垃圾)。我现在确实有点厌烦 WordPress 了,并且在一个自己从头写出来的系统中,我可以更容易实现新的想法,甚至有些想法在 WordPress 中几乎不可能实现。…
-
用 pscp 代替 WinSCP
第一次从 Windows 向 Linux 传文件的时候,我找到了 WinSCP,于是就以为世界上只有它可以干这个事情,一直以来都是用它在 Windows 和 Linux 之间互传文件,当然 samba 不算了。 最近经常在 Windows 里用 Excel 处理一些数据,保存成 csv 格式再放到 Linux 里继续处理。正好那台 Windows 上还没有安装 WinSCP,我就通过 Windows 共享中转到 Mac 上,然后再 scp 到 Linux 服务器上 —— 我也不知道我为啥自己懒得装 WinSCP 🙁 前几天实在受不了这个繁琐的过程了,在下载 WinSCP 之前搜了一下,原来 Windows 上也有成熟的 scp 命令行工具,即与 PuTTY 项目中的 pscp —— 不知道去那个页面下载过多少次 PuTTY,却没有仔细看 PuTTY 之外的其它程序,惭愧惭愧。我不知好歹炫耀新发现的时候,发现某些同事早就在用 pscp 了…… 简单试用了一下 pscp,就我目前用到的功能,和…
-
停业整顿
关闭了所有文章的评论,打算重新整理一下自己的网站,包括 blog 在内。 可能将来就不再使用 wordpress 了。 过半个月或者一个月,你就会看见我的新网站巍然屹立在 linode 上,以全新的技术(对我来说)驱动。 关闭评论,就可以把数据拿回来随便玩了。
-
扭曲的技术环境
扭曲的生存环境当然会造成扭曲的技术环境。在大部分技术人才没有房子可住的情况下,当然会有好多人选择所谓的“捷径”,去“精通”一些歪门邪道的东西。是啊,整天为房租或者还贷以及其它高昂的生活费用发愁,哪儿有那么多闲心去钻研真正可以称为技术的东西呢,这是可以理解的。 大多数(不是全部)“精通” SEO 的人,不会知道所谓 web 标准,不会知道 HTML 4,但是他们知道 h1, strong, meta-keywords, meta-description,还会熟练地用蹩脚的代码隐藏一些肮脏的东西在页面上,引来一阵艳羡。 作为某大公司的客户,拿到他们的 API 文档,废话连篇也就罢了,错误百出。打算写邮件给他们,写到一半就放弃了,烂得不可救药,让人连提建议的心都没有。这方面跟他们国外的竞争对手比起来差的是十万八千里,不过人家在国内活得滋润得不得了。说到最后,还是市场即环境决定的,他们不会把主要资源投到这么“没钱途”的事情上。 再往上说到那些高校实验室、研究所,里面有几个人在真正做科研?拉帮结派搞关系,骗国家钱,压榨学生才是来钱的正路。当然不是所有的老师都在这么干。 穷则独善其身……
-
SOHO 尚都,中看不中用
公司在 SOHO 尚都,看起来很时尚很前卫的楼。租的是一间 LOFT,空间超大,非常开阔,墙壁多半都是玻璃,很亮堂。不过住在里面,很快就发现缺点不必优点少: 空调-我们租的 LOFT 据说是业主自己装的空调,所以不好用。由于屋顶特别高,所以夏天凉风吹下来就变热了(每人发一把扇子),冬天暖风吹下来就变冷了(那时我还没来,估计大家都穿着羽绒服)。后来又租了一件普通的办公室,中央空调,依旧不好用,三天两头打电话让物业来修。 漏雨-有一台小服务器放在窗台上(窗台很宽),某次下雨,第二天早上去,发现机器重启了,进而发现机器顶上还有下面都有不少水,于是检查前一天晚上是不是没关窗户。最终发现原因是“紧闭”的窗户漏水,需要定期让物业来涂密封胶。 网络-似乎大楼有专门的 IT 部门,住户不是跟网通、电信等 ISP 直接打交道,但是网络非常之不稳定,正好这几天尤其严重呢(这也是促发本文的重要因素),作为一家网络公司,遇到这样的情况真是窘迫。为了提供原始的“failover”,同事故意给两间办公室选择了不同的接入,但是……似乎效果不是很明显 🙂 电力-这个就不用细说了,我们的多台服务器都被摧残过许多次。搞得我每次在上面执行个较长事件的任务都得探一下风声,看看断电的可能性有多大。 周围也有其它的 SOHO 建筑,应该都是出自万科,同事说都是中看不中用。是啊,破烂的办公楼见的多了,但是从来没有遇到过空调、电力、网络都这么差劲的……
-
如何将 AS 文件编译成为 swf
上篇文章留下这么一个疑问,本以为被琐事缠身,没时间再写了,不过发布完之后正好将某事推掉,于是有时间马上写这一篇。造一个句:如果志不同,那么道不合。跟很没劲甚至很烦的人在一起吃饭,不如饿着肚子弄点技术方面的东西。我鼓捣的也不是很有技术含量的东西,就是有兴趣。 下载并正确配置 Flex SDK 以后,就可以使用 compc 命令了。这个名字实际上是 component compiler 的简写,就是用来生成 swc 文件的。还有一个命令叫 acompc,前面加的那个字母应该是指 AIR,它与 compc 的区别只是加载了不同的配置文件而已,所以本文以后就只使用 compc 了。 执行命令 “compc -help list” 就可以看到许多的编译选项,最重要的: -compiler.context-root path to replace {context.root} tokens for service channel endpoints. 我不是特别了解,不过我把它设置为所有 package 的上级目录,对于 twitterscript 来说就是 http://twitterscript.googlecode.com/svn/trunk/src/ (这里只是示意,我写了 svn 的链接) -include-sources 必须指定的源代码目录,不必多解释了。对于 twitterscript,仍然是 http://twitterscript.googlecode.com/svn/trunk/src/ -directory 本来结果是输出成为一个 swc 文件的,你需要 unzip 之才能得到想要的 swf,现在有了这个选项就好多了,直接生成一个目录,而不是压缩文件。 知道了这些就可以编译了 (我的当前目录下面是…
-
AIR – 在 HTML/Ajax 的程序中使用 ActionScript 3 的 Library
在 Adobe AIR 的首页上,就给出了三种 AIR 编程的途径: Ajax – 主要编写 HTML 和 JavaScript 代码,对于经常编写 Web 应用的程序员们来说,很容易上手。 Flex – 我不太熟悉,应该是配置文件主导的一种方式吧,有可视化设计工具。 Flash – 利用可视化设计工具设计界面,配合编写 ActionScript 代码。 Flex 编程中应该也会用到大量的 AS 编程,但是 Ajax 方式的 AIR 呢?一开始,我认为它利用与 Web 编程几乎没有差别的环境吸引了以前熟悉 Web 应用的开发者,但是却牺牲了 Flash 强大的表现能力,如果用 JavaScript 实现 Flash 同等的动画效果,难度和复杂度应该会大很多。 但是很快我就发现这个顾虑是多余的。Adobe 的 livedocs 中就有一个页面教大家怎么在 HTML 页面中调用 AS 的 library:”Using ActionScript libraries within an HTML…
-
四号线不到北京西站……
国庆回家,我一个朋友帮买的9月30号晚上的火车票,我们分头往西站走。 当时风声比较紧,天天超载去西站的一辆公交车也不敢跑了。不过天无绝人之路,四号线不是开通了么,正好也让我沐浴一下春风,分享改革开放三十年伟大成就,于是我计划先乘十号线,再换四号线到达西站。 四号线的地图给我的感觉,下面向东突出的部分就是北京西站,我也从来没有仔细辨认过那个字。之前坐火车去广东,跟旁边的人聊天,还说四号线就是通北京西站,他们还附和说是呢,后来看都是托…… 我悠哉游哉上了四号线,感觉挺不错,就是那么凉快的天,空调温度还开那么低,我冷倒也罢了,社会主义也禁不住你这么糟蹋啊。有点奇怪国庆前夕去西站的人怎么那么少,不过别想太多了,有座位真好。朋友打电话过来说你还有心情绕北京转圈啊,我不急,地铁又不堵车。 到了“北京×站”,我一下车,经过那个大柱子之后,又忍不住退回来,因为感觉柱子上的站名写错了。四处张望一番,发现到处写的都是“北京南站”,我一下懵了,一边往站外跑一边给朋友打电话——如果我为祖国牺牲了,你就一个人回家吧。此时距列车发车还有半小时,我也不清楚南站离西站到底有多远。骑三轮车的看我着急,说送到西站40块,真黑,我心里想,车票才二十几块,大不了明天再买一张,也不助长不正之风!这时开过来一出租车,司机师傅想进南站接个叫车的人,绕了好几圈都没找到进去的办法,正好拉着我一路顺风到了西站,我又一路狂奔拒绝出示身份证终于赶上了火车。 一个半小时后到达保定,住了一夜,第二天一早吃了一个半驴肉火烧,赶到人山人海的汽车站,设法挤上汽车,被超载和破烂不堪的公路折磨到家。 回到北京后上网看,果然又很多人认为四号线是通北京西站的……
-
Windows 7 截图工具快捷键
Windows 7 新的一个小工具程序是截图工具,虽然还是比较鸡肋,但终归可以自选区域了。 不过有些时候,用它来截图的话,切换到截图工具的窗口,要截图的东西却已经没了,比如说上篇文章里的百度输入框自动提示。 这时候有个快捷键就解决问题了。我看到网上好多人在问截图工具的快捷键是什么,似乎大家都觉得 Windows 的帮助文档很没用。我在帮助里很快查到了 Ctrl+PrtScn,试了一下,果然可以。