跳至主要内容

I Have a Dream

I Have a Dream

redraiment, 2009-07-03





  我们本学期学了数字图像处理,上机实验使用C语言,内容都相对比较简单。唯一复杂一点的也就是如何从BMP文件里读取图像信息,反倒是真正与课程相关的算法处理却像做加减法一样很简单。我觉得我们的课程安排上有很多不合理的地方,往往在学一门课程时需要很多前置知识。比如以前学“计算机图形学”是要求上机用C++&OpenGL,结果很多同学上机不成功不是因为课堂内容不理解,纯粹是因为OpenGL不晓得怎么使用。

  我一直憧憬着我们的计算机能平民化、大众化,降低大家的学习、使用门槛。如果我们学习时,有一门语言能屏蔽大部分和课程无关的细节,而只让我们专心于考虑和课程相关的问题,也许这样的效果会更好。这样的做法就好比我有一个月假期,我想去北京旅游一趟,而导游一路上一个劲地介绍说杭州有名胜、南京有古迹、山西还能看兵马俑……这样一路下来,估计一个月也未必能到达目的地北京,或者到了也不能尽兴。索性抛开一切坐飞机直达目标玩个痛快!


  本着这样的理想,我很想设计一门新的语言,尽量降低大家学习的难度,能专心的去做感兴趣的事情,苦于一直没找到一种通俗易懂、老妪能解、雅俗共赏的方式。传说面向对象的思想很接近人类的思维方式,理论上讲应该很好学、容易被普通人所接受,但事实是我们这些科班出身的人也未必能领悟到其精髓。


  我们所学的知识很多时候就像是工具,我们学习并使用它是希望能改进我们的工作方式、提高效率等等,但无论是出于什么目的,都绝不会为了自寻烦恼。可惜很多人就是喜欢玩弄自己的学识以求与众不同。


  例如,语言作为我们沟通的工具,其意义在于能相互交流思想,能将自己的想法传播出去。但很多专家就是喜欢玩弄语言:正话、反话、倒话连着说,十个人来理解能看出二十种意思,没人能明白其真正含义,但他们依然我行我素,陶醉于其中,完全脱离实际。做这样的学问,不免得有些孤芳自赏了吗?再比如,如果周围的人都认为“下里巴人”是个贬义词,我觉得这时候为了能正常沟通而放弃一下自己的原则也无可厚非。


  但愿计算机技术能避免卷入这些的漩涡中!但眼前也出现了少许并不“和谐”的景象:比如优秀的程序员就用C++、聪明的程序员用Delphi等言论;还有Unix是高手们用的,汝等草民还是回归Windows等。这让我联想到《无根的根》中无名师教导新门徒:“家猫也能欺负老虎,但猫叫永远比不过老虎吼。”


  我们应该时常扪心自问,我是不是在孤芳自赏?也许计算机也要时刻谨记党的宗旨:以广大人民为中心!



评论

此博客中的热门博文

AutoHotKey 新手入门教程

AutoHotKey 真是一个好玩的工具!短短几行代码就是先了“窗口置顶”、“窗口透明”等功能,之前我还特意为此装了好几个小工具,现在都可以卸掉了。闲来无事,就把 Quick Start 翻译了一下,我没有逐字逐句地翻译,有时候我嫌原文罗嗦就用自己的话概括地描述了一下。 原文地址:http://www.autohotkey.com/docs/Tutorial.htm 教程目录 创建脚本 启动程序 模拟鼠标键盘 操纵窗口 输入 变量与剪切板 循环 操纵文件 其他特性 创建脚本 每个脚本都是一个纯文本文件,由一些能被 AutoHotKey.exe 执行的命令组成。一个脚本可能还包含 热键 和 热字符串 。如果没有热键和热字符串,脚本在启动的时候就会从头依次执行到尾。 创建一个新的脚本: 下载 并安装 AutoHotkey。 右击鼠标,选择 新建 -> 文本文档 。 输入文件名并确保以 .ahk 结尾。例如:Test.ahk。 右击文件,选择 编辑脚本 。 输入以下内容:#space::Run www.google.com 上一行的第一个字符 "#" 代表键盘上的 Windows 键;所以 #space 表示在按住 Windows 键后再按空格键。"::" 后面的命令会在热键激活后执行,在本例中则会打开谷歌主页。继续按下面步骤操作,来执行这个脚本: 保存并关闭该文件。 双击该文件来启动它。在系统托盘里会出现一个新图标。 按下 Windows 和空格键,网页会在默认的浏览器里打开。 右击系统托盘里的绿色图标可以退出或编辑当前脚本。 注意: 可以同时启动多个脚本,并且在系统托盘里都会有一个相应的图标。 每个脚本都能定义多个 热键 和 热字符串 。 想让某个脚本开机即启动,可以将它的 快捷方式放到开始菜单的启动目录里 。 启动程序 命令 Run 可以运行程序、打开文档、网页链接或快捷键。请参看以下示例: Run Notepad Run C:\My Documents\Address List.doc Run C:\My Documents\My Shortcut.lnk Run www.yahoo.com Run mailto:someone@somedoma

DAO层测试

<dependency> <groupId>com.wix</groupId> <artifactId>wix-embedded-mysql</artifactId> <version>2.1.4</version> <scope>test</scope> </dependency> 利用 wix-embedded-mysql 把MySQL嵌入到进程中,作为内存型的MySQL来做单元测试。 脚本: resources/migrations/mysql/<database>/<timestamp>_<action>.sql 但多个项目需要共享数据库脚本,可能可以用 git submodule 共享。

Shell中同时读多个文件

Shell中同时读多个文件 redraiment, 2009-08-23 一个文件分割成多个文件   有时需要提取文件中的一个或多个列元素生成新的文件,这一操作在 Shell 里很容易实现。比如有一个数据文件 data,有三列信息:姓名、学号、班级。 redraiment 0612800134 0601 christine 0612800136 0601 zb 0612800229 0602   现在需要这个文件的第一列和第二列信息分别存到文件 f1 和 f2 中,可以用 awk 提取,也可以用下面这个简单 shell 程序: #!/bin/sh while read f1 f2 f3 do      echo $f1 >> f1      echo $f2 >> f2 done 多个文件合并成一个文件   如果想把多个文件重新合并成一个多列文件,而不是追加到文件尾处。例如把上列中生成的 f1 和 f2 重新组成 join.txt 。这时需要同时操作多个文件,就像 C 语言中用 fopen 同时打开多个文件,在 shell 里也是类似的。只是在 shell 里叫做“文件描述符”,用“0-9”十个数字表示。其中 0、1、2 分别是系统的标准输入、输出、错误。“3-9”则由用户只有使用。我们就可以任选两个来重定向输入。脚本如下: #!/bin/sh exec 3< f1 exec 4< f2 while read f1 < & 3 && read f2 < & 4 do      echo $f1 $f2 >> join.txt done