Skip navigation.

自一个人默默走

从 C 的角度使用 C++,而不是反切入 C——这样会简化很多的问题

Posts tagged with "Windows"

澄清一些认识

, , ,

  • unix 是一个低效的系统;当然相对于 windows 来说是一个高效的系统,只是因为 windows 比其更低效;
  • unix 的低效,保证了其系统的 kiss 和每个模块的独立,当然要实现非常高效的设计——例如 linux kernel 就用了很多技巧性的东西,所以 kernel 对外面的模块提供高效、简单的接口,而 kernel 内是耦合的;
  • 一个系统的设计并不是单纯地为了高效;

当然,也许会有很多人反对我的观点,那么我希望留言是经过深思熟虑、并且有考证的。

Graphic Scripting

, , , ...

在公司,因为要批量做一个特效,所以要用脚本来控制 photoshop。

很不幸的是,photoshop 仅支持 javascript, vbscript and applescript,而我希望能把精力放在 python 上。最先考虑的当然是 javascript 在 windows 上需要调用 com api 来进行它的库扩展,而在别的平台上是不存在 m$ com 的调用的——换句话说就是 javascript 不具有平台移植性。当然 vbscript 仅在 windows 上使用,而 applescript 仅在 macintosh 或 mac os x 上使用,更不可能有移植性可言了。

gimp 2.3.* 的版本有提供对 python 脚本的支持模块,很可惜我不会用 gimp——当然更主要的是策划和美工们都不会用——他们不能在 gimp 中做出他们想要的效果来——我个人比较喜欢 gimp 免费的授权,但是商业应用上,完全不是这么回事。

在网上还有找到一些关于用 python 调用的 photoshop 方式,其中一个比较成熟的是 pycs,很可惜,它使用 python 去调用 photoshop cs,据作者自己说,他没有测试过在其它的版本上是否可行——而特效需要的是 photoshop 7 的版本,且在我看来 cs 相对于 7 除了一些细节更细外,没有什么非要使用 cs 的理由——cs 能做的事情,7 也能做,只是多绕些弯而已。

刚刚突然有一个想法,假如 pycs 只是调用 photoshop com api 来创建一个 Photoshop.Application com object 的话,那么在 ps7 上,也可以用相同的办法来实现。

写个 pyps7?

ODBC, OLEDB, Database Access, via GCC/MinGW?

, , , ...

晚上在网上搜索了 GCC/MinGW 对数据库的访问——似乎没有结果。我不知道 POSIX 的人是通过什么来访问 ODBC/OLEDB 标准的数据库的(难道他们不使用 ODBC/OLEDB 标准?)?
在 Windows 上,已知的 BCB, VC, ICC 等几种编译器都支持对 ADO 的访问,我不想去学习或者深入 OLEDB Template 编程,因为不想为了获得比直接使用 OLEDB 相对于 ADO 高一些的效率,而带来代码难度上和维护上的困境;当然 ODBC 我是更不会去用的,那个访问的方式太落后了,我可以会使用 ADO 去间接访问 ODBC 但不会直接通过 MFC ODBC 的。
这篇 blog 的内容太乱了,连我自己都不知道什么是主题——这也是我现在面临数据访问的心境。
乱就乱吧,我懒得去整理了。

Doxygen

, , , ...

前些天跟朋友去吃饭,还说了使用 doxygen 来进行文档工作。本来我也不非常在意 doxygen 只是使用它的注释风格,今天仔细地研究了下,发现 doxygen 在实际的编码中太方便了。
根据今天的经验,在编码中使用 doxygen 生成 rtf 是最快的——生成 tex 文档需要再次编译才能成为 pdf,而且中文的问题不是非常好办;生成 html 会产生一大堆的文件,当然在作为网页发布时是非常方便;生成 man,有人不知道这个格式吗?是针对 POSIX 的 man 命令生成的文档,在 Windows 上肯定是不方便用了;XML 文档,似乎不能直接查看。
在编码中书写注释也非常容易,命令很多,我可以细细去记,在平时就经常做注释的工作了,不妨把它更规范化。

Visual C++ 8.0

, , , ...

因为工作的需要,我换回到 Windows 上,并使用 Visual C++ 编译器,具体是 8.0,现在一个问题就是我要学习 MFC 吗?我不是 MFC 的狂热者,但是历史项目很多是基于 MFC 开发的,原来使用 Object Pascal 开发的 VCL 库,实在是 C++ 人的一种尴尬。

关于 MFC 我考虑一下吧!

YAPP & ubuntu

, , , ...

太不幸了,我的 YAPP 在 ubuntu 用不了,去官方查了,说
"No, Samsung MP3 players are not manufactured for or tested with Linux Systems."
看来现在的办法是寻找 ubuntu 上直接的方案,还有就是先用新购买的 Windows 机器来处理 MP3 了。

QEMU/KQEMU

, ,

刚刚有朋友提到,心痒痒就想要装个 QEMU 来玩玩。

洗澡的时候自己问自己,装 QEMU 干啥?回答装 Windows。那装 Windows 干啥?……答不上来。对啊,装 Windows 干啥,我现在没有任何需要 Windows 的理由。

结论是完全没有装 QEMU 的必要。

Writing LaTeX Documents on Ubuntu!

, , , ...

今天得到一位高人的指点,在 ubuntu 上成功地编译了中文 tex 文档!现在我可以全面放弃 kubuntu 转向 ubuntu 阵营了!加上前天对 ubuntu 做的种种美化,我现在的桌面非常漂亮,完全没有去使用 Windows 的任何兴趣了。

VIM & Anyothers

, , ,

下午,使用 Borland Developer Studio 2006 编写一个 C++ 程序,才深刻地感觉到 VIM 真是方便啊!
要修改一个单词、移动一个位置、删除行……我的天啊,BDS2006 做这些事情就像标准的 Windows 编辑器一样难用。移动到行首——Home;行尾——End;左移——Left Arrow;右移——Right Arrow……一些基本的操作都要让手离开主键盘,实在太不舒服了。要浏览代码,VIM 的 hjkl 就好了,BDS 要用上下左右键来移动,或者用鼠标,天啊,就看个代码这么麻烦。

GOD! 好多语言啊!

, , , ...

今天算了一下,如果要同时进行 Linux 和 Windows 开发,我现在至少要学会 8 种语言,天啊!
C++, C#, LaTeX, PHP/Perl/TCL, Bash, GNU Make, ISQL, JavaScript 每种都针对不同的方面。比方说 C++ 是用于跨平台开发,而 C# 是 Windows 开发;LaTeX 肯定要用于文档排版;PHP/Perl/TCL 要用于 Linux 上的脚本设计以及服务器脚本;Bash 跟 Windows 上随手写个批处理文件同样重要;要进行 C++ 自动构建 GNU Make 的必不可少;ISQL 是开发 Firebird 的基础;JavaScript 要在网页上实现 Ajax 效果。天啊,一个都不能少!
然后如果要深入学习 Vim 的话还要掌握 Vim Script,我的精力没有这么多,得精简下。

LaTeX for Linux!

, , , ...

今天配置成功了在 Linux 上的 LaTeX 环境!不只是简单地让 LaTeX 可以使用中文,而是可以使用自己的模板!
但是 tetex 只支持 GBK,Windows 上的 ctex 支持 UTF-8 编码,还要研究下。

KQEMU for Linux!

, ,

今天在 Kubuntu 上装了 KQEMU,太爽了。相比 Windows 的种种,在 Linux 上的运行速度相对可观!
我打算在 Kubuntu 上装个 Windows。装 XP 的话由于考虑到 XP 对于我只是界面上的差别,所以重新下载个 2000 等等装。

My Computer Desktop

, , , ...

昨天有个朋友看了我操作 Kubuntu 系统的终端,说道:跟 DOS 一样。
只能说那是对 Unixes 的非常肤浅的认识——同样在终端下,Unixes Terminal 和 Win32 Console 有着本质的不同:在 Unixes Terminal 几乎可以完成所有的操作;在 Win32 Console 你能完成一半的事情就偷笑了。
你可能会说:黑乎乎的终端界面,还不如 GUI 看起来舒服——我只能说你太不了解终端了。周围用 Unixes 系统的几乎人人都非常喜欢用键盘来解决问题,鼠标的使用会严重地阻碍了工作效率。打个比方:使用 Vim,手几乎不用离开主键盘的位置,它舒适地让盲打的人完成各种操作,甚至不用去做浪费时间的鼠标操作;相对之下,Windows 上,如果没有 gVim 或者 Emacs 的移植,可能有比目前更高效的工具吗?

QEMU & KQEMU

, , , ...

今天下载了 QEMU,安装在 Windows Server 2003 上效果不错,安装了 KQEMU 但似乎没有起作用——在 QEMU 虚拟机上装 Ubuntu 异常缓慢。
但是在网上找到些在 Linux 上安装 QEMU 并启用 KQEMU 加速的办法,等我申请的 Ubuntu 光盘一寄到,就把笔记本上的系统刷成 Ubuntu,然后安装 Windows XP 再在上面安装 Visual Studio 2005 Team Suite,以辗转在 Ubuntu 上开发 C# 程序。
另外在 Ubuntu 上使用 ReiserFS 分区,大可放心地使用 BitTorrent 下载——ReiserFS 分区可以自动均衡数据,减少文件碎片和磁盘的读取量,用 BT 下载完全不用担心会损坏硬盘。

关于盗版

, , , ...

有这么个悲哀:在国内不会用 Windows 的落伍了;在一些外国不会用 Unixes 的是傻瓜。

我比任何时候都痛恨盗版。这么说吧,当你使用自己的计算机,但是发现机器上的各种软件基本上都是偷来的(什么你说是义偷?那么如何解释有的人在个人电脑上装 SQL Server 2005 Enterprise?),什么感觉呢?
国内的出版社要求用 .doc 格式投稿,难道国内出版社假设用户都能使用上 Word ——都能使用上正版 Word?我想他们是假设用户都有途径使用某些 Word 吧。相对之下,国外的出版社要求用户用 .tex 投稿,用不起 Word 总用得起 LaTeX 吧,况且 LaTeX 的文档质量没有哪方面不如 Word 的。
有人说过:Windows 是商业运作的产物,它并不尊重要用什么的权力,所谓的商业手段就是,它提供给你什么,你就要全盘接受,就算你不要的,它也照样给你。Unixes 则非常人性化:你可以随心所欲地搭配你喜欢的各种软件,并给你足够的自由,甚至连内核都是可选择的。
在家里使用自己的笔记本,上面是 Ubuntu 然后用 Vim 做文字编辑,我有实在的感觉,毕竟不是在盗版的基础上创造额外价值。
中国因为软件昂贵而成为盗版大国,难道外国人就不觉得贵,就全部使用正版的 Windows 吗?或许应该从别的角度自己反省一下。

Ubuntu & C#

, , , ...

为了开发 C# 就把 Ubuntu 换成 Windows,太可笑了。就算 C# 是一种优秀的语言,那么其所依赖的 Windows 跟 Unixes 有可比性吗?什么,你说 Windows 的桌面强大?!那是你没有深入地了解 Unixes 和它桌面的关系。引用一句话:对 Unixes 来说,GUI Shell 只是一个进程,它的优先级甚至低于其日志进程。
什么,你又说了,用 Windows 你可以马上解决你想做的事情,用 Unixes 不行。那是你还没有熟悉 Unixes——在你熟悉 Windows 之前,你能够随心所欲地做想做的事情吗?
Unixes 崇尚使用键盘来解决各种问题——有个传说:鼠标当初发明并不是为了方便人机交互,而是为了降低打字员的速度——当然这只是个传说,我也相信不全是真的,但是有一点是可以肯定的:一个键盘熟手用键盘解决问题的速度是一个鼠标熟手的好几倍。

C# 2005

, , ,

正如我所说的,C# 在简化 C++ 的同时,把编程者带入了另外一种复杂。

一个简单的概念就是属性。Java 认为,所有用 get/set/is/has 开头的方法都是描述一个属性。C++ 标准库中把 get/set/is/has 等开头的方法直接去掉了 get/set/is/has 做为属性方法。而 C# 特别奇怪,即保留某些 Get 开头的方法(如 GetEnumerator),又在类中实现属性!?
在这个问题上,我个人比较赞成 Java 的做法;C++ 标准库的写法很容易让不太清楚标准库的人迷失方向;C# 我认为要么全部使用属性,要么全部使用 Get/Set 方法,为什么出现都有的情况呢?难道是因为实现上有某些困难吗?

Visual C++ 2005

, , , ...

我最终还是装了 VC,利用 Visual Assist X 的便捷进行 C++ 开发。当然装 VC2005 的目的不是为了进行 C++/CLI .NET 开发,而是要进行 native C++ 编码,然后再转到 GCC 上。在 Windows 上确实没有什么好的 GCC 开发环境(Windows 上的 Code::Blocks 都比 Linux 上的差了几个档次;在 Windows 上使用 VIM,天啊,饶了我吧)。
等不进行 C# 开发了,我很愿意到 Ubuntu 上从事专门的 C++ 编码,然后购买本 Unix 内核编程。在抽象思想上 GP 比 OOP 要先进些,一方面因为 GP 才刚开始流行(国内听说过 GP 的人不多,使用 GP 开发的人是少之又少),所以 GP 的作品相当少;但另一方面 GP 的设计具备了足够的弹性,需要再进行些研究,我个人认为是可以进行分布式计算的。

Windows & Ubuntu

, , , ...

非常遗憾,从 Ubuntu 上运行 Windows 失败!一方面是 Xen 对 Windows 并不完全支持;另外则是我现在机器的配置不行——用 Wine 跑 IE 就惨不忍睹了。没法,最终还是要装上 Windows XP。

现在的打算是:用 .NET Framework 开发程序,但同时进行 C++ 的研究,计划是开发一个基于 native code 的 managed C++,享有 GC 等高级功能,但是不失 native C++ 本身的速度。研究 C# 的 reflect 机制,估计会让我在 C++ 的反射方面有所突破吧。

现在头疼的是选择一个 C++ IDE。用 Visual C++ 或许不错,但是我想基于 GCC 进行开发,这个问题还要思考一下。

MonoDevelop

, , , ...

好不容易,才把 MonoDevelop 装上,使用了下,果然跟 Visual Studio 没有可比性。看来还是需要安装 Windows 然后装上 Visual Studio 2005,需要构建一个 VS 的集成开发环境。学习 MSBuild, Microsoft Test Framework 工具,我不知道 Team Foundation Server 有没有自动集成的功能,现在在 Ubuntu 上没有 IE 不能浏览 MSDN。
在 Windows 上安装 Cygwin 模拟 Linux,但是我不喜欢这种虚假的环境。只好留着 Linux 的经验,但在 Windows 进行 C# 开发,看来不能放弃 C++ 了。