精华内容
下载资源
问答
  • 一个字体,博洋行书~还有很多,如果受欢迎,下次会多多发来
  • 一套自己手写字体

    2016-11-07 21:57:59
    如何做一套自己手写字体? 1、写字,然后扫描、图像切割;2、算字编码:“一”(02B7)即695,其他的字可以用相隔多少个来算,比如要算“水”字编码,可从“一”字鼠标拉到“水”字,word显示两个字之间有2815个字...
  • 1.完全可以以假乱真! 2.全网络300款字体中精选! 3.最好的楷书钢笔字体,精品之中的精品!!
  • 珍藏多年的钢笔字,挥泪奉上
  • 一台笔记本,一部相机,教你做出自己的手写字体,以后就能打印出自己仿手写文件了!

     

        前一段写入党思想汇报写得很头疼,明明不是自己写的文章,却要抄一遍,可自己抄都懒的抄。突发奇想,如果把字体换成自己的手写体,那么直接打印出来不就像手写的一样的么?不过那样貌似要先抄一遍字典,把所有的字体录入到电脑里,这个实在不划算。

        但是,同样道理,录入26个英文字母还是可行的,以后有需要手写的英文材料,直接用自制的手写字体打印出来,就可以以假乱真,达到偷懒的目的~偷笑

        下面我来介绍如何自制属于自己的手写字体文件。

        Windows里字体文件都存放在C:/Windows/Fonts文件夹中,每一种字体都存储在一个扩展名为ttf的文件中。

        所以,第一步:在纸上写下26个英文字母的大写和小写,以及常用标点符号(可以对照键盘上的符号),以及10个阿拉伯数字。如下图:

     

    char

     

     

       这里我用红笔画出写英语用的四线格,用黑笔写下一些字符,从中挑选一个较好看的(因为你要意识到,用这字体打印出来的所有同一字符都来自于你写的这个字)。

      第二步,用照相机近距离将字符分别拍下来,这里注意一定要开微距拍摄,否则会不清晰。效果如下:

     

    photo

     

        然后,用Photoshop将字符分别提取出来,做成单独的图片。当然,后面要将这些图片通过字体创建软件录入到字体中,我用的这款软件有二值化的功能,如果在纸上不花四线格,直接录入也是可以的。我这里加入四线格,是为了在录入时方便调整字符大小,具体功能下面会介绍。

     

      f

        第四步,在PS中,通过简单的使用“魔棒”工具,就可以轻易从原照片中提取出字体形状,新建一个图层,初始为黑色,然后将非字符部分依次剪切掉,再按照四线格的位置,新加四道黑线,就制作完成了一个字符,我将它存储为PNG格式,其他的如JPEG也可以。

      然后,你需要一个字体制作工具,网上可以搜到很多,我这里使用的是FontCreator,从CSDN上下载的可以用,而且绿色汉化,只要1个积分。

     

    font

     

        第五步,使用fontcreator工具,新建一个字体文件,双击打开其中对应的每一个字体,然后点击上方的“导入图像”按钮,就可以将图片F.PNG关联到字符F上。

     

    fontcreater

     

      第六步,将保存的字体文件felix handwriting打开,点击“安装”,即可以把该字体装入系统,在你所有的文字处理工具中也都会出现你的字体。若想卸载,可以直接从C:/Windows/Fonts文件夹中找到你的字体文件删除。

     

    ttf

     

        最后,你就可以直接从网上荡一篇你想要的英语文章,在word文档中将字体格式改为felix handwriting。不过要注意,一定要保存为PDF格式,因为这样可以在没有该字体的机子上打印出这种字体(如果拿着word文档去打印店,可是找不到自己的字体的!)。最后的效果:

     

    good

     

     

        效果很好!庆祝庆祝,忙了一天才搞定的~其实工作量相当大的,26个英文字母分别大小写,加上31个符号、10个数字,总共93个字符,没有一点耐心还真是搞不定的。

        其实对于这个方法我还有改进的想法。这样产生的字库,打出来的同一个字符统统一样,比如一个“F”长的其实一模一样的。那是否可以做好几套字库,各自略有不同,然后写一个程序,读入一个word文档,然后将其中的字体随机地更改为字库1、字库2...如此以来,就会在文章中加入不确定的因素,模拟人手写时同一个字符之间的差别。打印出来我想应该会更加逼真吧。这个以后有空可以搞一搞~

     

     

     

     

    展开全文
  • 它真正厉害的就是模拟手写字体。 只需输入一段文本内容,加上你的笔迹,1个单词即可,它就能生成“手写版”。 这个效果,用肉眼看真的是分辨不出真伪! 把菜场中价签的印刷体都换成手写体的过程中,它还能识别出...
    明敏 萧箫 发自 凹非寺
    量子位 报道丨公众号 QbitAI

    终于,我小学时的梦想有人实现了!

    只需要我拍下自己的笔迹,AI就能帮我誊抄英语作业,画风“完全一致”的那种:

    甚至帮别人抄作业也没问题……

    简直吊打一批只能仿手写、价格还动辄几百上千的“作业神器”。

    咳咳,划重点

    虽然功能很强大,但这可不是给你们抄英语作业的。(作业就得认真做!)

    这是Facebook AI最新出品的“文字风格刷”(TextStyleBrush),它只需要一张笔迹的照片,就能完美还原出一整套文本字迹来。

    不仅能移花接木,凭空将“酱油瓶”变成“茶壶”:

    还能直接实现风格替换,让蔬果店里的所有印刷字都变成手写体:

    这样看来,现在就连照片文字,也不一定是真实的了。

    比格式刷还强:文本也能换

    在实际使用过程中,TextStyleBrush真的就是个格式刷,哪里需要刷哪里。

    它真正厉害的就是模拟手写字体。

    只需输入一段文本内容,加上你的笔迹,1个单词即可,它就能生成“手写版”。

    这个效果,用肉眼看真的是分辨不出真伪!

    把菜场中价签的印刷体都换成手写体的过程中,它还能识别出不是印刷体的样本,自动跳过转换合成。

    两个手写标签并没有被更改

    模拟特定字体格式时,TextStyleBrush表现也很不错。

    包括海报、垃圾桶、路牌、饮料瓶、店面装饰……各种文字的风格都能handle:

    除了直观的效果,开发人员对合成图片也做了数据上的分析。

    TextStyleBrush生成的图片在合成误差(MSE)上大幅降低,峰值信噪比(PSNR)和结构相似性(SSIM)也提高不少。

    在文字识别的准确性上,TextStyleBrush在三组数据集中的表现都不错:

    准确率都高达95%以上。

    拿GAN改一改,真假文字难辨认

    据Facebook介绍,“文字风格刷”TextStyleBrush是一个基于自监督方法训练的模型,可以对相同文本内容的文字进行风格转换,就像格式刷一样。

    当然,不只是Word的格式刷,它甚至能直接对照片中的文字进行替换,因此模型还需要学习文字识别图像分割的方法。

    逆光场景也不在话下

    为了同时实现图像分割和文字风格转换,TextStyleBrush模型基于StyleGAN2进行了设计,后者能生成非常逼真的图像照片。

    然而,StyleGAN2存在两个问题:

    • 首先,它生成图像的方式是“随便乱打”的,也就是没办法控制输出图像特征。但TextStyleBrush必须要生成指定文本的图像。

    • 其次,StyleGAN2的整体风格不受控制,但TextStyleBrush中的风格涉及大量信息组合,包括颜色、尺度和风格转换等特征,甚至是带有个人特色的笔迹细节差异。

    为此,TextStyleBrush首先通过将文本信息和风格作为两个“附加条件”控制模型输出,来解决模型随机生成图像的问题。

    然后,为了进一步更精细地控制文本的风格特征,还会提取神经网络层中的各种风格信息,并将这些信息注入文本生成器中,便于从各种尺度(颜色、整体风格、细节)上控制文字的风格。

    除此之外,由于不同的图片分辨率不同,生成器还必须生成和替换区域分辨率相似的文字。

    为此,这一模型加入了能够控制高低分辨率的结构,使得生成的文字图像能匹配输入图像的分辨率。

    就像这样,替换前后也不会出现字体清晰度差异大的问题:

    但不同于照片,文字的风格其实要更加自由,所以有时候画风的真实性不好说。

    为此,在训练的时候,Facebook引入了一种创新的自监督训练方法,结合风格分类、文本识别(OCR)和GAN三种模型来保留输入的风格/文字内容,再决定要替换哪个。

    例如,在文本识别上,让TextStyleBrush生成文本图像后,模型会用一个预训练文本识别结构来“判断”图像的文字内容,并给它打分。

    事实证明,这样训练出来的模型,确实很好用。

    网友:以假乱真?我真有点担心……

    合成人脸已经玩太多了,合成笔迹还是头一回。

    而且它的效果真的还不错!

    所以,TextStyleBrush一经发布,就引来了很多人的围观。

    已经有网友开始想象它的用途了:

    欢迎来到花式签名的世界!

    LeCun也转发了一波。

    不过,能看不能玩实在是太难受了,有手痒的网友就跑来提问:

    TextStyleBrush会对大众开放使用吗?

    这自然也就引出来一个会引起争议的点:

    合成后的笔迹足以以假乱真,如果被滥用或恶意使用怎么办?

    假设任何一个人的笔迹都能被非常轻松地合成,那许多需要签字的场合该怎么办呢?

    例如,有网友表示,要是连医生们的“草书”处方都能模仿……

    而除了安全隐私问题上的担忧,这对字体设计师来说也不是个好消息。

    毕竟各款字体其实都是有版权的,如果可以被轻松模拟出来,那岂不是盗版满天飞,甚至连作者本尊都分辨不出来真伪。

    有网友就表示:这离真假难辨的反乌托邦世界更近了一点……

    对此,Facebook的CTO作出了回应:

    因为可能会被用来伪造笔迹,所以我们只发布论文和数据集,源代码并不会开源

    分享研究和数据集,也更多是为了预防文本版Deepfakes。

    你觉得呢?

    TextStyleBrush数据集:
    https://github.com/facebookresearch/IMGUR5K-Handwriting-Dataset

    论文地址:
    https://scontent-fml2-1.xx.fbcdn.net/v/t39.8562-6/10000000_944085403038430_3779849959048683283_n.pdf

    展开全文
  • 它真正厉害的就是模拟手写字体。 只需输入一段文本内容,加上你的笔迹,1个单词即可,它就能生成“手写版”。 这个效果,用肉眼看真的是分辨不出真伪! 把菜场中价签的印刷体都换成手写体的过程中,它还能识别出...

    点上方人工智能算法与Python大数据获取更多干货

    在右上方 ··· 设为星标 ★,第一时间获取资源

    仅做学术分享,如有侵权,联系删除

    转载于 :量子位

    终于,我小学时的梦想有人实现了!

    只需要我拍下自己的笔迹,AI就能帮我誊抄英语作业,画风“完全一致”的那种:

    甚至帮别人抄作业也没问题……

    简直吊打一批只能仿手写、价格还动辄几百上千的“作业神器”。

    咳咳,划重点

    虽然功能很强大,但这可不是给你们抄英语作业的。(作业就得认真做!)

    这是Facebook AI最新出品的“文字风格刷”(TextStyleBrush),它只需要一张笔迹的照片,就能完美还原出一整套文本字迹来。

    不仅能移花接木,凭空将“酱油瓶”变成“茶壶”:

    还能直接实现风格替换,让蔬果店里的所有印刷字都变成手写体:

    这样看来,现在就连照片文字,也不一定是真实的了。

    比格式刷还强:文本也能换

    在实际使用过程中,TextStyleBrush真的就是个格式刷,哪里需要刷哪里。

    它真正厉害的就是模拟手写字体。

    只需输入一段文本内容,加上你的笔迹,1个单词即可,它就能生成“手写版”。

    这个效果,用肉眼看真的是分辨不出真伪!

    把菜场中价签的印刷体都换成手写体的过程中,它还能识别出不是印刷体的样本,自动跳过转换合成。

    两个手写标签并没有被更改

    模拟特定字体格式时,TextStyleBrush表现也很不错。

    包括海报、垃圾桶、路牌、饮料瓶、店面装饰……各种文字的风格都能handle:

    除了直观的效果,开发人员对合成图片也做了数据上的分析。

    TextStyleBrush生成的图片在合成误差(MSE)上大幅降低,峰值信噪比(PSNR)和结构相似性(SSIM)也提高不少。

    在文字识别的准确性上,TextStyleBrush在三组数据集中的表现都不错:

    准确率都高达95%以上。

    拿GAN改一改,真假文字难辨认

    据Facebook介绍,“文字风格刷”TextStyleBrush是一个基于自监督方法训练的模型,可以对相同文本内容的文字进行风格转换,就像格式刷一样。

    当然,不只是Word的格式刷,它甚至能直接对照片中的文字进行替换,因此模型还需要学习文字识别图像分割的方法。

    逆光场景也不在话下

    为了同时实现图像分割和文字风格转换,TextStyleBrush模型基于StyleGAN2进行了设计,后者能生成非常逼真的图像照片。

    然而,StyleGAN2存在两个问题:

    • 首先,它生成图像的方式是“随便乱打”的,也就是没办法控制输出图像特征。但TextStyleBrush必须要生成指定文本的图像。

    • 其次,StyleGAN2的整体风格不受控制,但TextStyleBrush中的风格涉及大量信息组合,包括颜色、尺度和风格转换等特征,甚至是带有个人特色的笔迹细节差异。

    为此,TextStyleBrush首先通过将文本信息和风格作为两个“附加条件”控制模型输出,来解决模型随机生成图像的问题。

    然后,为了进一步更精细地控制文本的风格特征,还会提取神经网络层中的各种风格信息,并将这些信息注入文本生成器中,便于从各种尺度(颜色、整体风格、细节)上控制文字的风格。

    除此之外,由于不同的图片分辨率不同,生成器还必须生成和替换区域分辨率相似的文字。

    为此,这一模型加入了能够控制高低分辨率的结构,使得生成的文字图像能匹配输入图像的分辨率。

    就像这样,替换前后也不会出现字体清晰度差异大的问题:

    但不同于照片,文字的风格其实要更加自由,所以有时候画风的真实性不好说。

    为此,在训练的时候,Facebook引入了一种创新的自监督训练方法,结合风格分类、文本识别(OCR)和GAN三种模型来保留输入的风格/文字内容,再决定要替换哪个。

    例如,在文本识别上,让TextStyleBrush生成文本图像后,模型会用一个预训练文本识别结构来“判断”图像的文字内容,并给它打分。

    事实证明,这样训练出来的模型,确实很好用。

    网友:以假乱真?我真有点担心……

    合成人脸已经玩太多了,合成笔迹还是头一回。

    而且它的效果真的还不错!

    所以,TextStyleBrush一经发布,就引来了很多人的围观。

    已经有网友开始想象它的用途了:

    欢迎来到花式签名的世界!

    LeCun也转发了一波。

    不过,能看不能玩实在是太难受了,有手痒的网友就跑来提问:

    TextStyleBrush会对大众开放使用吗?

    这自然也就引出来一个会引起争议的点:

    合成后的笔迹足以以假乱真,如果被滥用或恶意使用怎么办?

    假设任何一个人的笔迹都能被非常轻松地合成,那许多需要签字的场合该怎么办呢?

    例如,有网友表示,要是连医生们的“草书”处方都能模仿……

    而除了安全隐私问题上的担忧,这对字体设计师来说也不是个好消息。

    毕竟各款字体其实都是有版权的,如果可以被轻松模拟出来,那岂不是盗版满天飞,甚至连作者本尊都分辨不出来真伪。

    有网友就表示:这离真假难辨的反乌托邦世界更近了一点……

    对此,Facebook的CTO作出了回应:

    因为可能会被用来伪造笔迹,所以我们只发布论文和数据集,源代码并不会开源

    分享研究和数据集,也更多是为了预防文本版Deepfakes。

    你觉得呢?

    TextStyleBrush数据集:
    https://github.com/facebookresearch/IMGUR5K-Handwriting-Dataset

    论文地址:
    https://scontent-fml2-1.xx.fbcdn.net/v/t39.8562-6/10000000_944085403038430_3779849959048683283_n.pdf

    ---------♥---------

    声明:本内容来源网络,版权属于原作者

    图片来源网络,不代表本公众号立场。如有侵权,联系删除

    AI博士私人微信,还有少量空位

    如何画出漂亮的深度学习模型图?

    如何画出漂亮的神经网络图?

    一文读懂深度学习中的各种卷积

    点个在看支持一下吧

    展开全文
  • 好了,现在全国的大学包括清华,几乎所有人机器必装盗版 Win2000,Office XP,学校的选课系统是非IE不能正确浏览,论文用 Word 编辑,演示用 ppt 做, email 的通知附件是 doc 文件,你不用 Word 打不开,连 ...

    “UNIX 是简单的,你不需要成为天才也能理解这种简单。”

    由于GNU/Linux这个词太长,下面如果没有特别指明,“Linux”就是指“GNU/Linux”。

    在这个年代,恐怕没有人需要我来介绍 Linux 是什么了吧?如果你觉得“Linux 只不过是跟 DOS 差不多的东西”,那你恐怕很久在山洞里没见天日了吧?请问问你旁边的 Linux 用户,Linux 到底是个什么地位?

    那为什么我还要写一篇这样的文章?因为,我发现还有很多人不不理解 Linux 和 UNIX,虽然他们也在用它,但是他们有时会问:“为什么 Linux 不能像 Windows 那样 ……?”,“怎么Redhat Linux不能 mount NTFS 分区!”,“Linux下用什么整理硬盘?”,“什么时候OpenOffice才能完全兼容Word文件啊?”,“现在还有什么Windows能干的事情Linux干不了的?”……

    他们有40G的硬盘,却只为 Linux 分配了2G空间,有时还抱怨“这个东西怎么占这么多硬盘!” 似乎 Windows该占用大部分硬盘。他们把重要的数据装在Windows的分区,似乎信不过 Linux。他们总是到处寻找新奇的,好看的GUI程序,对命令行的东西一概不屑一顾。他们对Drag&Drop,菜单配置,自动升级非常感兴趣。他们如果找到一个很像 Windows 程序的 Linux 程序,一定会很高兴的说:“哈哈!Linux 也能……了!” 如果Linux在某种测试中胜过Windows,他们会高兴得跳起来。他们没有办法用Linux解决问题的时候,甚至用Wine来运行Windows程序。有时实在没办法,只好重起到 Windows,或者干脆省得麻烦,在 Windows 下装一个 VMWare 虚拟一个 Linux 玩。

    你支持 Linux,你喜欢 Linux,你能从中感觉到快乐,这非常好。你现在只需要明白的是:Linux 从来就不是一个玩具,它是天才UNIX的后代。UNIX 是自晶体管发明以来最伟大的发明,它从诞生那一天开始就比 Windows 的设计出色。Linux 并不需要追赶Windows,不需要打垮微软,它的最终目标是改变整个计算机世界,还人们自由,给人们乐趣和方便。其它UNIX很多都已经败在Linux脚下,更何况 Windows!

    你如果出现了以上的情况,说明你的思想受到了 Windows 的某种潜移默化的影响和误导。你没有能够从本质上理解存在于 Linux 身上的 UNIX 思想。UNIX的设计者 Dennis Ritchie 说:“Unix is simple. It just takes a genius to understand its simplicity.” 但是我不这么认为,因为我不是一个天才,但是我却勇敢的把Windows完全删除掉,半年之后我体会到了 UNIX 的思想和好处。因为我相信这样的信念:“Windows 能办到的事 Linux 一定能办到,而且办的更好。”

    这小节开头的话应该改成:“Unix 是简单的,但是在这个冲斥着 Windows 错误观念的世界,你需要信念和勇气才能理解它的简单!” 我下面就告诉你一些我理解到的东西。

    微软的地位

    微软的名声在欧洲和美国的大学里,特别是在计算机系里之坏,大家可能有所耳闻。我认识的 MIT,Stanford 的教授,贝尔实验室的专家,甚至一个欧洲小国的高中计算机老师都绝口不提微软的名字。在他们眼里,微软只是一个没有真技术,专靠在落后国家商业宣传和垄断经营的小公司。这个“小”并不是说它人少,钱少,而是说它先进技术少。

    我上次和王益合作写了一个算法演示程序,那个算法是贝尔实验室一位科学家Steven Fortune很天才的发明,为了程序能够被身边大多数人使用,我们选择了 VC+MFC 作为平台。我在分析算法时还得到 Fortune 很热情的鼓励,寄给我一份资料,还多次回信耐心的给我讲解了很多细节。但是程序完成之后,我把样品发给 Fortune,他回信说:“对不起。我机器上没有 MFC。” 话说的很客气,但是我已经感觉到了他对 Windows 的不屑。然后我把 MFC 静态编译进程序再发给他,他就没有再回信了。他显然不是瞧不起我,而是确实有难处。

    你能感觉到这位科学家对微软和 Windows 是什么态度了吧?不是反感,而是他心里根本没有 Windows 这个东西!微软在高科技领域没有发展,那么它怎么生存呢?到发展中国家去发展一下,他们的人民还对电脑一无所知,我说不定甚至可以打入大学的计算机系呢。我送他们软件,我捐钱盖大楼,我出钱找图灵奖获得者来演讲,让他们觉得我们都是科学家!

    好了,现在全国的大学包括清华,几乎所有人机器必装盗版 Win2000,Office XP,学校的选课系统是非IE不能正确浏览,论文用 Word 编辑,演示用ppt做,email 的通知附件是 doc 文件,你不用 Word 打不开,连 863 项目都用 VC 写程序了。我很久以前就看到一份报纸说,“微软为什么不严厉打击盗版?” 这篇文章说,微软非但不打击中国的盗版行为,而且有放任之趋势。放长线吊大鱼,“以后我要你们加倍的来还我!” 确实如此,它的目的快实现了。

    Windows 笼罩下的中国计算机教育

    说句丢脸的话,比尔盖茨很久以前是我的偶像…… //blush

    在中国,比尔盖茨被很多人奉为神圣,“少年电脑天才”,甚至有的人提到他的名字就做出“抱拳对天”的姿势。很多人谈到微软的“新技术”,“高科技” 都是眉飞色舞。各种“VC编程圣经”,“深入了解 Visual C++”之类的书,在开头几页都会出现非常肉麻的字眼,“在那团团的混沌中,一个开天辟地的精灵,Windows 1.0,诞生了……”

    微软的软件被这么多人盗用,那么人们是怎样使用这些盗版程序的呢?先看看电脑培训班,教的都是一些 DOS 命令,打字,Windows 基本操作,Word 文档处理,PowerPoint,高级班可能有 Excel,Access…… 参加各种微软认证考试,MCSE,MSDE 的人络绎不绝。考试辅导班都贴出了“280元,考过为止”之类的字样。考试参考资料更是昂贵,有些电脑书店整整两书架都是“Microsoft Press”的东西。我有个同学参加认证考试,每门考试都要200多元。而且你一次考不过可以再考,又要交钱。他后来还津津乐道跟我说,看我,花了XXXX(一个四位数)元考过了微软认证,得到一张比尔盖茨亲笔签名的证书和价值6000元的 Windows XP 内部发行版。

    “电脑要从娃娃抓起”,我们再来看看娃娃们学的是什么。大部分家长给孩子买了电脑之后,他们首先就会装一个盗版的 Windows,然后买来盗版的游戏开始玩。如果哪个孩子会用 Delphi 编程序,那可不得了。报社记者,电视台争相报导,说,某某学校的初中生某某,在别人都还在玩电脑游戏这种“初级阶段”的时候就已经用 Delphi 写程序了。镜头还瞄准了他显示器上面的像框中的比尔盖茨头像!

    我刚进入大学计算机系时还不懂得什么是操作系统,因为我以前只用过“中华学习机”。看到新入学的同学们各个谈论的都是 “Windows 95”,“VC”…… 我简直觉得我落后了好几十年一样,整个一土人,根本跟他们答不上话。好不容易找到一个比较熟的同学问了一下:“你们天天谈论的瘟95是什么啊?”答:“win95就是一个操作系统,跟DOS是一类。”“朵死是什么?” “你连DOS都不知道是什么?别在计算机系混了。” 学校上课当然不讲VC编程之类的东西,但是上 Pascal 的老师有一次就说:“嗨,我们学校真是落后。现在别人都用 C, C++,甚至 VC 了,我们还在讲 Pascal。不知道什么时候才能有VC课啊。你们出去也是要用VC的,只好自学了。” 于是,有些同学很多时候上课都捧着一本很重的“Windows 编程大全”之类的书,根本没有听课。吃饭时就念念有词的跟我说,“代码的优化是无止境的”,“匈牙利命名法真是伟大的发明” …… 这就是中国很多大学计算机系的情况。

    感觉到无知了?这不是偶然的,而是微软长久以来埋下的伏笔。它要让无知的大家都把它奉为神圣,它要让支持UNIX,Xwindow的人一旦说 UNIX 好,Xwindow 好的时候,都被一群人围着说教:“这个 Windows 也能做到”,“你对 Windows 有偏见”,“微软才是主流啊”,“你敢瞧不起 win2k?”,“.NET 就是世界潮流”,“微软的毕竟是新技术”,“有钱就是有技术”…… 甚至在一番论战比较后败下来还是要说:“Windows 性能差点,但是易用性强”,“Windows 是老百姓用的,要求别那么高”,“微软那么有钱,以后想超过 UNIX 还不容易吗?”……

    发达国家的计算机教育

    我前段时间在 USENET 发文问有关 Scheme 语言的问题时,认识了一位丹麦人。他解决了我所有的问题,并且建议我阅读一些很“深奥”的有关程序语言语法,文法的书,他告诉我很多网站可以学习 LISP,Scheme,人工智能,算法。他叫我看 Jonathan Rees 的论文 "Syntactic Closures"。他还打包给我寄过来一份 MIT 的 "How to Design Programs"。他说他在自己的 PC 机上装的是 Linux,他用 Emacs 编辑,运行 Scheme 程序。他对 Emacs 的了解和爱好真是使人惊讶。他大学本科毕业时做的毕业设计是一个Scheme 解释器。这对于我来说是望尘末及了。

    他是那么的不厌其烦,我的每一个问题他都详细的回答。我有时都觉得过于详细了,怎么这么耐心啊?我觉得他似乎是我的高中老师。他是什么样的人呢?我好奇的打听了他的情况。原来,她是丹麦一所普通高中的计算机老师,而且是个女老师!

    她说她在高中里讲授程序设计和算法,计算机语言文法。她说用 Scheme,她的学生不用再为内存泄漏等程序语言本身的问题而烦恼,而专注于问题和算法本身。有利于培养学生解决问题的能力,特别是用计算机解决数学问题的能力。

    天哪!为什么欧洲出现那么多数学家,几何学家?你看看别人重视的是什么!我们的计算机教育如果继续这样下去,只会沿着弯路越走越远!

    微软和它的朋友们的如意算盘

    下面来看看微软的收入是怎么来的。首先,Windows 98系列操作系统,一个就是 100 多美元,每次升级又是几乎同样的价钱。Windows NT 还要贵几倍,而且有用户数目限制,5个用户的,10个用户的…… 以后如果要增加用户数目还要按比例付钱。这个奇怪的现象被通用汽车公司的总裁比喻为:“你买的微软牌汽车最开头只有一个座位,每加一个座位你得向汽车公司付钱,每开100英里要大修一次,每过一年要换一次引擎。”

    花了如此多钱买来的操作系统就能用了吗?它竟然连压缩程序都没有提供!你装上 Windows 之后一般第一件事就是去下载一个 WinZip 吧,“只要 29 美元”。Windows 会中病毒啊,马上花 70 美元买一个 Norton AntiVirus 吧。还有黑客呢?再买一个Norton Internet Security 好了,100 美元。系统需要优化,磁盘需要整理,买一个 Norton System Works 是你最佳的解决方案,100美元。

    可是你现在还是不能干正事啊!你想要一个 Word, PowerPoint?那就买一套 Office XP 吧,一起买便宜些,9.90。

    那些程序不会用啊!那些菜单怎么设置,到底有什么功能啊?看“帮助”也学不会。买本书看看吧,我推荐“Special Edition Using Microsoft Office XP”,不贵,.99。这本书里面大部分是屏幕抓图,还是买一本旧的比较划算,.85。

    你如果只是当个秘书,上面的差不多还凑合了。可是你有更高的追求,你想成为 Windows 程序员。首先买一个 Visual Studio.NET 吧,要不然怎么编译程序。4.95。

    为了紧跟微软动向,世界潮流,不能不注册个 MSDN 什么的吧?这个贵一点,不过物有所值啊,,799。

    嗯,你现在已经是上层阶级,白领人士了。你现在可以像这样“自由”的,“安全”的生活了:

    什么是 Windows 能干而 Linux 干不了的事情?

    “Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。”

    有个朋友看我半年没有用 Windows,有时就会问我:“你只用 Linux,有没有发现有些 Windows 能处理的事情 Linux 干不了?”

    我回答说:“Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。”

    Windows 能做的有益的事情 Linux 都能做

    Windows 下的某些功能确实是我们需要的,那么 Linux 的开发者们和用户也需要这种功能,他们就会去实现这种功能,而且比Windows 的方式好得多。由于大多数科学家,工程师用的都是 Linux 或者某种商业 UNIX, 所以几乎所有商业的科学工程程序,比如Matlab, Mathematica, AutoCAD, Candence的,Synopsys的,Avant! 的……全都是先有 UNIX 的版本(包括Linux),然后再考虑移植给 Windows,甚至根本不移植给 Windows,因为 Windows 的机器一般没有足够的能力运行这样的程序。你不要以为只有Windows 才有 PSpice, UNIX 的 HSpice 要好得多,而且可以运行在大型主机上。当然它们不是免费的,但是它们值那个价钱。

    但是 Windows 下有些东西在 Linux 下没有很相似的,或者你找到很多类似的,但是它们每一个比起 Windows 的那个程序都要差很多,那么原因有两种可能性:

    1. 有一个完全类似的程序,但是由于它乍一看不漂亮,被你忽略了。

    而其它程序虽然看起来很漂亮,但是它们是一些初学编程的人写的。现在由于 Gtk+, Qt 的诞生,Linux 下开发图形界面程序极其简单,很多初中生甚至小学生都可以随手编出一些漂亮不中用的程序。如果你整天寻找这样的程序挑来挑去,永远也找不到你满意的。

    我曾经也犯过这样的错误,优秀的 FVWM, lftp, Mutt, wget 都被我忽略过!当我找回它们的时候,我是那么的羞愧不已,它们现在都是我的朋友 :) 用这些程序你可以改变它们的一切,我第一次看到 FVWM 觉得它只不过是一个有很厚很难看边框的东西。可是现在,我的同学看到 FVWM 都说:“哇!真漂亮。”

    2. 有另一种完全不同的方式可以达到相同的目的,甚至更好。

    很多人很关心 Open Office, Star Office, AbiWord, ... 他们多么盼望有一天某一个 Linux 程序能够完全兼容的打开一个复杂的 doc 文档。但是你永远也不可能有那一天。为什么呢?因为微软为了占有市场,必定不会让其它系统的程序能够完全兼容它的文档格式!它一定会不断变化 doc 文档的内部结构,隐藏一些秘密,让其它公司的程序打开 doc 文档时总是有某种问题,从而你必需购买 Microsoft Office 和Windows。

    你应该想一下,那么多的高智商的大学教授,科学家,学生,他们用的都是 Linux 或者其它类型的 UNIX,他们没有 Word 可用,怎么处理文档呢?这么多年没有一个像 Open Office 的程序出现,难道大家没有办法写文档吗?

    显然不是这样。你看看那些高水平的学术杂志,论文,那些大学教授的网页,那些漂亮的PDF幻灯片,它们是什么做的?原来 UNIX 用户早就有非常方便的 troff, LaTeX, SGML 等东西可以处理文档,而且它们比起 Word 都要高明的多。Word 显然被这些大拿忽略了,以至于很久以来没有人想在 Linux 下开发一个类似 Word 的程序,除非某些公司想抢微软的饭碗。

    很多人留着 Windows 在硬盘上的原因无非是为了用 Word 和 PowerPoint。你待会儿可以看看我的TeX网页,你就会知道为什么我可以完全离开 Windows.

    Windows 能做的那些没用的事情 Linux 永远做不好

    1. 电脑游戏

    有些人说 Linux 下不能玩 Windows 下所能得到的所有游戏。的确,Linux 下虽然也有少量的游戏,比如 Quake。但是它没有 Counter Strike, 没有 Star Craft, ……

    并不是说电脑游戏不该玩,但是应该适可而止。电脑是用来处理事务,帮助你学习,解决问题的工具,而不是一个玩具!整天沉迷于电脑游戏中,而不出去感觉外面的世界,你会变得越来越冷酷,越来越缺乏人情味。你与真实的世界越来越远。

    你可以在 CS 里杀人,你可以在 Tomb Raider 里探险,你甚至可以在 Tony Hawk's Pro Skaters 里滑板…… 但是 It's not real!你虽然有很高的“反恐技巧”,但是遇到歹徒的时候,你是那么的怯懦;你虽然控制 Laura 伸手敏捷,但是你打篮球的时候怎么总是被人断球?你虽然可以轻易的在 THPS 里作出一个 "360 kickflip to hangten grind to fakie",但是你踩在自己的滑板上的时候还不会 ollie!

    说回来,如果你偶尔玩一下电脑游戏未尝不可。但是世界上有远比 Windows + PC 更好的游戏方式。Sony 的 PlayStation2, SEGA 的 DreamCast, Nintendo 的 N64,Namco 的街机……每一个都比 Windows 游戏精彩,每一个都有如此高的3D性能,以至于Pentium4, Itanium + GForce4 都无法与它们比美!

    Linux 的用户们都是关心解决世界的关键问题的份子,他们哪里有时间用自己的机器来玩游戏啊?他们每天用Linux高效的做完自己的工作就到阳光下享受自然去了。要玩游戏也是玩一些类似推箱子,贪吃蛇之类的智力小游戏。所以,你知道为什么Linux 几乎没有游戏了吧?:)

    2. “整理硬盘,优化系统”

    这是一个非常有意思的话题,仅次于有关“病毒”的话题。相信很多 Windows 用户都有整理硬盘的经历。在很多 Windows 用户眼里,“硬盘用久了,会出现碎片,速度会减慢,需要一个程序来整理,整理硬盘的时候不要做其它工作”,这好像是天经地义的事情。

    我也曾经津津有味的看着 Norton Defrag 一点一点的把我的硬盘排序,调整,用图形的方式显示出来,然后报告:“100% 没有碎片。你的硬盘现在已经达到最佳状态。” 我现在才发觉我那时是多么的幼稚。

    Linux 和 UNIX 用户似乎从来没有“整理硬盘”这种说法呢?你觉得很奇怪吗?如果你觉得很奇怪,那说明你的思想在某种程度上被微软的垃圾程序禁锢了。你需要明白,UNIX 的大型主机很多必须是一天24小时,一年365又1/4天不停运转的,要是每个星期都要整理一次硬盘,在整理的时候几乎不能干任何事情,那是绝对行不通的!

    Linux 机器根本不用整理硬盘,这就是为什么没有看到过 Linux 用户整理硬盘。Linux 的文件系统是比 Windows 的 FAT, FAT32, NTFS 高明得多的文件系统,它们不但可以对文件设置权限,实施完全的保护,而且可以“越用越整齐”,“越用碎片越少”!你应该把文件大部分放在 Linux 的分区,而不是 Windows 分区,因为它比 Windows 分区可靠得多。

    还有更滑稽的事情就是有很多“Norton System Doctor”,“Windows 优化大师”,“超级兔仔注册表魔法” 之类的程序存在,而且价格昂贵。似乎一个操作系统本来应该有很多问题,需要别的厂商做程序来“优化”它,而且为了得到优化,你需要付钱!这些问题 Linux 根本就没有,所以不需要什么优化。Linux 内核本身就是高度优化的。

    3. IDE

    有些人在抱怨为什么 Linux 没有一个良好的 IDE 开发环境。Linux 现在已经有一些 IDE 了,但是总是有很多问题。你是不是正在寻找,正在期望 Linux 某一天可以有一个VC那样的开发环境?你有没有发现你正在进入微软给你设下的怪圈?你为什么一定要用 IDE?你说:“IDE 开发迅速,调试方便,适合大型程序……” 那说明微软的程序在你脑子里已经比较根深蒂固,你需要好好清醒一下了,看看我来告诉你。

    高明的 UNIX 程序员不用 IDE,IDE 从来就是给初级 Windows 程序员用的。

    你看看大型的 UNIX 程序,包括 Linux 内核,各种网络服务程序,Xwindow 程序在内,哪一个是 IDE 搞出来的?我们实验室的 EDA 程序也没有一个是 IDE 弄的,我还知道 Candence, Synopsys,Mentor 的高性能的图形界面 EDA 程序也都不是 IDE 写的。你信不信,微软的人在写 Windows 本身的时候也根本不用 IDE!

    有一次某杂志采访一些出名的 Linux 内核程序员,包括 Linus 在内,没有一个人用 IDE,有的人用 VIM,有的用 Emacs,只有 Linus 说“GNU Emacs is evil”,但是其实他用的是一种跟 Emacs 有同样键绑定功能的 MicroEmacs。大家都是用编辑器编辑了程序文件,然后用 make 这样的自动工具调用 gcc 编译器完成编译工作的。

    我以前也编过 Windows 程序:应用程序,驱动程序。但是我没有用 VC 的 IDE。Linux 教育了我,我会在命令行调用 CL,我知道 CL 才是 VC 的编译器。我可以在 cygwin 的 Makefile 里使用 CL。我还知道 CL 的参数都有什么用处。但是这些不是一个从一开头就用 IDE 的人能很快理解到的。

    我相信: IDE is evil。我有一些用 Windows 的 IDE 写程序的朋友,他们对那套东西已经很精通了。但是我却惊奇的发现,他们竟然把编译器和汇编器的概念都分不清楚,甚至有的人连“编辑器”和“编译器”都搞混淆了!他们只知道在一个窗口里输入了代码,点击一个按钮就可以编译程序,但是这里面到底是怎么工作的,他们不知道!他们被盖在上面的窗口挡住了视线,甚至会以为那个按钮就是编译器!

    他们对那些 IDE 的热键背的滚瓜烂熟,但是我却看到他们在一个函数一个函数的把别人的 ANSI 风格的代码变成 VC 的风格。想想这件事在 VIM 里有多么简单,一瞬间就可以搞定。

    为什么 UNIX 程序员不用 IDE?明白了这个道理你就能体会到 UNIX 的设计思想了。首先,一个 IDE 集成了编辑器,编译器,汇编器,调试器,跟踪器…… 这个编辑器功能肯定比不上 VIM 或 Emacs,编译器比不上 GCC,汇编器比不上 as,调试器比不上gdb, ddd, 跟踪器比不上 strace, ltrace, truss。你得到的是一套整合的低能的程序。如果你对调试器的功能不满意,你只好换用另外一套 IDE,但是这套 IDE 的热键,菜单,编辑器功能,按钮…… 跟原来那个有很大不同。你不得不花很多时间来熟悉新的环境,而不能保持原来的某些东西。

    而在 UNIX 下就不一样了。你可以用你最喜欢的 VIM 编辑程序,你在 VIM 里可以调用 GNU make,make 可以调用 gcc, ld, ... 实际上 make 能帮你很多忙。make 的出错信息可以被 VIM 捕获,VIM 能帮你在源程序里定位。你如果喜欢 icc, 你可以让 make 用icc 而不是 gcc。你如果觉得 gdb 跟踪变量时比较麻烦,你可以用 ddd 来显示各种数据结构之间的关系。你还可以在 Emacs 里调用 gdb,那样就可以同步显示源代码了。而且 VIM 和 Emacs 还可以编辑很多其它东西,比如信件,LaTeX 文档,HTML,配置文件…… 你不用另外找一个什么编辑器来干这些杂活了。很多程序比如 Mutt, tin 都可以在内部使用 VIM,这样就更方便了。

    4. 释放内存

    我在 Windows 下做过的一件最傻的事情莫过于“释放内存”了。有一天我看到一个 Windows 程序说:“这个程序可以帮你把大量内存释放出来给一个很大的程序用。”我试了一下,居然一下把我的 64M 内存释放出来 48M!我高兴极了。现在想一想,那是多么傻的事情,那么多的内存留着干什么?不用白不用啊!一个操作系统,居然还需要别人写的程序来释放内存,那是什么样的操作系统?

    在 Linux 下用 free 命令,你会发现你的内存几乎每时每刻都快要被用完。那是因为 Linux 把大部分内存用来作为磁盘缓冲了。Linux 有比 Windows 先进的磁盘缓冲技术。你有没有发现你往硬盘写数据的时候,很快就完成了?那是因为 Linux 在内存里有很多磁盘缓冲区,你要写到硬盘上的数据先被写到了这些内存里,然后 Linux 就告诉你“拷贝完成”,当你马上又想删除刚才写入的某些数据时,Linux 只是把数据从内存里移除,然后报告“删除完成”。在一定的间隔时间后,Linux 才把数据写回硬盘,这样不但高效,避免了多次硬盘操作,而且减少了文件的不连续,也就是减少了“碎片”。Windows 当然也有磁盘缓冲,但是由于它内存管理的低效率,它不敢把大量内存都用来作为磁盘缓冲,因为它没有能力在用的时候随时把内存收回来。

    Linux 能干的高级的事情 Windows 都干不了

    当然有很多事情是Linux/UNIX的专利了。因为 Windows 只能装在 PC 机上,好像以前也有 Alpha 可以使用 Windows NT,但是就是没见到有人用。PC 机的能力是很低的,像我们编程序处理 NP-Hard 问题的人,用 Windows 的机器显然速度不够,而且有时一个问题算上几天甚至几个星期,Windows 机器是以“死机”著称的,我们怎么能放心?

    所以几乎所有科学计算程序,EDA 程序,高性能图像处理程序都不是 Windows 的。他们有时也会移植一些给 Windows,但是常常降低那些程序的能力。你比较过 Windows 版本的 Mathematica 和 Linux 的有什么区别吗?

    IBM 制造的最大的并行计算机有 8000 多个处理器,Windows 不可能有能力管理这么多处理器,它用的是什么操作系统?答案是 Linux。

    《泰坦尼克号》电影里的三维动画,那么细腻逼真,Windows机器能做出来吗?不行。那也是 Linux 机器做的。

    民航总局用来训练地情人员的虚拟现实训练设备,Windows 当然无能为力。那都是商业的 IRIX 机器。

    UNIX 是最早支持 TCP/IP 网络协议的系统。它上面有很多可以互相协作的网络服务程序,它们经过多年的使用和修订,已经达到比较完善的程度。而就在1997年,微软的比尔盖茨还在扬言:“Internet 是没有前途的。” 微软的这个“远见卓识”大家应该都已见识,它后来加上的网络服务程序IIS漏洞之多,让公安部都频频发出警报,大家也是见识了的。

    其实你知道了,Windows 没有一样有用的事情能比 UNIX 干的更好。

    Linux 干不了的有用的事情 Windows 照样干不了

    当然 Linux 不是万能的。它也有不能干的事情,电脑也有干不了的事情。但是 Linux 干不了的事情,Windows 肯定也干不了。这些事情就是我们需要探索,需要努力的事情了。在你探索的过程中,Linux 必定是你的好伙伴。

    Windows 的流毒

    不要用 Windows 的方式来思考问题

    什么?你早就知道 Windows 是垃圾?噢!你怎么不早说呢!害我废话这么多。嘿嘿。

    “好了。你知道 Windows 是垃圾,你现在用什么?”

    “Linux + Xwindow”

    “那我问你,Xwindow 是什么样的?”

    “不就是跟 Windows 差不多吗?只不过 'Start' 按钮比较方,而且上面不是一个 Windows 标志,而是一个脚丫子。点击一下居然还有很漂亮的中文菜单。我喜欢!”

    “你知道什么是‘根窗口’吗?”

    “不知道。从来没听说过呢?”

    “根窗口就是遮盖整个屏幕的那个最大的窗口。”

    “哪儿有什么窗口啊!我没有看到呢?”

    你发现了问题吗?这些 Linux 用户说是在用 Linux 和 Xwindow,但是他们对 Linux 和 Xwindow 几乎完全不了解。很多人用了那么久 Xwindow 都不知道根窗口是什么东西,不知道其实按钮也是窗口,不知道窗口管理器和 Gnome,KDE 有什么关系,大家都以为窗口上面的按钮是程序自己放上去的,不知道窗口的“class name”,“resource name”是什么东西。他们被遮在 Linux 之上的一层一层的包装迷惑了!

    当我告诉一个既能用 Windows 又能用 Linux Qt 编程的朋友 Xwindow 的“中键粘贴”是怎么回事时,他大吃一惊,说:“Xwindow 怎么这么落后啊!居然请求剪贴板的东西时还要联系剪贴内容的所有者自己来转换格式!你看看 Windows 的剪贴板……”经过一顿饭的友好的讨论之后,他不得不称认,这个 Xwindow 用了几十年的方法比 Windows 的剪贴板要合理的多。

    后来又有一次,我告诉他每个 Xwindow 的按钮都是一个窗口。他说:“不会吧~ 这样效率一定很低。你看看 Windows 的按钮 ……” 又是一顿饭之后,他说:“哎呀。不得不承认 Xwindow 的方式是良好的设计。”

    现在很多人已经把能够利用别人的库写出一个好看的程序作为自己编程水平的象征。在这个“图形化”,“可视化” 的年代,你如果还在用 troff, LaTeX 写文档,你还在用 VIM 自己编辑 HTML,用 Mutt 处理邮件,你还在用文本模式的 gdb 调试程序,你还在用 Xlib 写程序, 你还在用 tin 上 USENET,你还在自己写 Makefile,写机器代码,你还在玩 Clossal Cave 这样的字符模式冒险游戏,那你就是老古董,不合时宜,变态。

    其实这种思想是错误的。虽然你是一个坚决的 Linux 支持者,但是你的思想是 Windows 的思想。你认为图形界面,菜单,按钮就可以解决一切问题,就可以给你高效方便。你要做坚决的 GUI 派而不是 CLI 派 …… 你还是没能摆脱微软给你的潜移默化的东西。你其实离不开 Windows 那样的环境,你害怕符号,你迟早会删掉自己的 Linux。

    GUI vs. CLI

    UNIX 和 Xwindow 是一家

    大家看到这个标题是不是热血沸腾?两派大虾都可以围攻我了:

    GUI派用户:“哇!我一看你这小子就是 CLI 的。要不然自己写什么 Makefile?用什么 Mutt?”

    CLI派用户:“切~ 你还用 X!高手都不用 X。你是 GUI 那边的。”

    可怜的我:“555~~你们都不要我~~ GUI 和 CLI 就那么水火不容吗?”

    计算机界这样的门派之分还很多。很有特点的就是 CLI 和 GUI 了。CLI (Command LIne) 的狂热份子声称永远不用 X。我上次在实验室看到一个同学用一个 SecureCRT 登录到 Sun 机器,然后用一个 vanilla vi 编辑程序,我建议他启动一个 GVIM 过来显示在Exceed 上可以有语法加亮。但是他坚决反对,说:“高手不用X。你想想,要是我在一个很慢的网络连接怎么用 X?而且好多服务器没有装 X 程序。”

    但是我们实验室的网速可够快,Windows 机器都有 Exceed 啊,而且 Sun 机器有全套 X 客户程序包括 GVIM。他说他是 CLI 的坚决拥护者,但是他却在用 Windows,他后来打开了好几个 SecureCRT,每次从文本框输入地址,用户名和密码,从下拉菜单选择"SSH2",然后点击“Connnect”。他还不断的夸SecureCRT是“网络管理员投票选出的最受欢迎的登录方式”。老天,SecureCRT 本身就是个 GUI 啊,他其实是一个 GUI。

    你说我是 GUI 的?我虽然很少在 console 下工作。但是我对 bash, VIM 很熟悉,我可以让 bash 按照我的键绑定方式来工作。我可以在 rxvt 里使用 Mutt 来收发 email。我的每个桌面上都常常堆放着一打不同大小的 rxvt。我用 VIM 编辑 LaTeX。我自己写Makefile 来维护 LaTeX 文档。我有时用 mpg321 来放 mp3。我上BBS用的我自己写的 expect 脚本,定义了很多热键,我只要 Ctrl-H 就可以随机变化我的签名档和说明档。我的 expect 脚本有高级的自动回复功能,甚至可以以假乱真,让你看不出其实我不在,你有可能跟我的机器人聊上10分种才发现那不是我 :p 好了,CLI 派的朋友可以收我做盟友了 :)

    你说我是 CLI 的老古董?我的 FVWM 被我配置为可以“手写操作”,我只要画一个"r"就可以启动 rxvt,我只要画一个 "U" 就可以启动 GVIM,…… 我用 GVIM 语法加亮模式编辑程序,我用 Mozilla 浏览网页,…… GUI 派的现在好像认我做朋友了 :)

    好了。CLI 派的朋友,虽然我很喜欢命令行,但是我有时在屏幕上左右画一下就可以执行:

    Module FvwmConsole -terminal rxvt -geometry 45x5-0+0 \

    -bg gold -fg midnightblue \

    -fn "-adobe-courier-medium-r-*-*-14-*-*-*-*-*-*-*"

    你是不是现在又想把我逐出师门?

    GUI 派的朋友,虽然我很喜欢窗口。但是我可以在 FvwmConsole 里输入:

    All (rxvt) MoveToDesk

    把我所有的 rxvt 移动到我现在工作的桌面。“这家伙,怎么这么快就叛变了!”

    其实何必分什么 GUI 和 CLI,UNIX 和 Xwindow 都是工业标准,它们从设计那天开始就有非常灵活的用法,各个程序,不管是 GUI 还是命令行的都可以互相协作。UNIX 和 X 是一家,何必搞的那么偏激,非此即彼?你从我上面的行为可以看出 GUI 和 CLI 的模糊界线吗?你说我是“花心大萝卜”?花心就花心。hengheng :P

    UNIX 的真谛何在?

    让聪明人干任何他们想干的事情。

    UNIX 的一个特点就是非常高的灵活性,Xwindow 也具有这种灵活性。这种灵活性体现在哪里呢?

    UNIX 的程序一般都有很多参数,不管你现在用的着用不着,总有人需要某些参数。它们的行为很多都可以用配置文件来改变。比如 GNU bash, 通常缺省的命令行输入方式是 Emacs 方式,但是只要我编辑一个 .inputrc 文件,就可以把它变成 vi 的输入方式,而且我还可以自己绑定键序列到某些操作。我可以用 shopt 来设置它的很多特点,比如是否进行通配符扩展,是否可以把一个变量当作一个目录来cd,是否可以自动纠正某些明显的目录名打字错误 ……

    UNIX 程序设计的思想是提供给用户“机制”,而不限制用户制定“政策”。这是一个重要的尊重用户的作法。

    我们再来看看 Xwindow。Xwindow 是一个出色的设计,它把显示服务器和客户程序分开。一个显示上既可以显示本机上的程序,也可以显示别的机器上的 X 程序,而它们都遵守你的窗口管理器的统一指挥,它们之间可以方便的传送剪贴版数据,各种事件 …… 比如有时我的 XFree86 上会出现四个不同机器上的 XTerm,两个不同机器上的 GVIM,…… 它们统一受本机上的 FVWM 指挥。

    Xwindow 程序都具有很多很多命令行参数和 resource 参数。你可以随意的在命令行或者 .Xdefaults 文件设置所有的颜色,字体,尺寸…… 而且如果你用 xrdb 把 .Xdefaults 导入到根窗口,那么其它机器上没有经过配置的同样的程序,显示到你的机器上的时候也会遵守同样的外观规定。

    Xwindow 的窗口具有 Property, 也就是一些可以自己定义的共享数据(原子)。正是因为这些 Property 的存在,使得 Xwindow 具有无比强大的生命力。X 的窗口管理器和其它客户程序之间并没有统一的协议,但是后来出现了 ICCCM(客户程序间通信规范),这个规范就是通过 property 定义的。现在又有人定义了一套“扩展的窗口协议(EWM Hints)”,使得 Xwindow 可以具有某些 Windows 的特征,比如一个工具条程序可以告诉窗口管理器:“这个屏幕下面被我占据了24个像素的空间,你最大化程序的时候不要越过这个界线。”

    一个强大的窗口管理程序比如 FVWM,它收到这样的提示时,可以答应工具条程序的这个要求,也可以不答应。一切选择的权力在于谁?当然是用户了!一切窗口乖乖听话,FVWM 给予用户最大的尊重。

    你想想,是不是有些 Windows 程序常常弹出一个窗口要你选择 "Yes or No"?你不点击它它就不下去。你觉不觉得你的程序在侵犯你的尊严?你是一个人,一个智慧的生物,怎能受到一个程序如此的待遇?

    还有就是很多 Windows 程序把人当成傻瓜,而它是“智能程序”。比如,有一个程序就是喜欢把你的每句话第一个字母都变成大写,我不说它是谁了,你遇到的时候就知道了。如果连“一句话开头一个字母要大写”这么明显的问题都需要程序帮你纠正的话,人脑还用来干什么?况且如果你故意想要不大写的话,那就更麻烦了,我楞是没有从它那一大堆菜单里找到怎么关闭这个愚蠢的选项。

    只有符号才能完全操纵计算机。

    我们来说说很多初学 Linux 的用户。虽然他们在用 Linux,但是他们打心眼儿里是觉得 Windows 的工作方式好,他们希望 Linux 有一天能“像Windows那样”。你说:“我鼠标一点,我菜单一拉,…… 就可以完成我的操作。” 但是我要告诉你:“Linux 从来没有摹仿 Windows,将来也不会。Linux 从诞生之日起,它的工作方式就比 Windows 的先进。Linux 属于能勇敢面对符号的人。只有符号才能完全操纵计算机。”

    看看优秀的 UNIX 程序,XFree86, FVWM, VIM, Emacs, proftpd, Mutt, wget, tin, ... 没有一个不是用配置文件来设置选项的。为什么这些程序没有方便的菜单可以用来配置?难道它们的设计者就那么低能,连个图形配置界面也写不出来?

    当然不是。因为图形界面配置方式的能力是极其有限的,而配置文件和程序语言的表达能力却是无限的。用图形界面配置这些程序的话,如果你想达到配置文件的效果,你需要成百上千的菜单,checkbox, radio button, ... 到时候你根本没办法找到你需要修改的地方了!而各个程序的配置文件的语法都有很多相似之处,一般就是一些命令,设置一些变量,参数,…… 一旦用会了一个,其它的也就容易理解了。如果你用惯了 awk, sed, Perl,你会觉得那才是真正的自动化啊。

    鼠标虽然是很好的工具,但是它的表达能力是有限的。你不可能光用鼠标就让电脑完全明白你的意思,它毕竟只有3个按钮。看看我的MetaPost页你就能体会到鼠标的这一弱点。所以我们虽然很喜欢鼠标,但是却不能完全依赖它。

    各个小程序的完美配合

    这就是UNIX最重要的特点了,它就是UNIX设计的思想。让每个程序只具有一项专门的能力,然后让它们合作。Xwindow也继承了这种好传统。

    这恐怕就是Windows和其它操作系统望尘末及的地方了。UNIX 程序设计之统一,配合之完美,真使我难以置信!shell, grep, find, awk, sed, make, Perl, Emacs, vi, tin, Mutt, ... 它们是那么的具有一致性!你一旦学会了 sed 的正则表达式,其它程序基本上都能用了。你一旦学会了 vi 和 VIM, 你会发现它的操作是那么的有规律性,似乎vi的设计者在几十年前就已经设计好了 VIM 在今天的完美而统一的操作方式!而且vi的操作还体现在 Mutt, tin 等很多程序中。你甚至可以把 bash 设置为 vi 的输入方式来输入命令行,我就是这么做的。一个程序可以调用另外一个程序来得到数据,可以把数据交给它处理后返回来,可以在自己的窗口里“嵌入”另外一个程序。

    在 Windows 和其它非 UNIX 操作系统中,这种合作是非常困难的。我曾经在 Windows 下使用 Perl来进行一些自动工作。但是 Windows 的文件操作,管道是如此的不稳定,程序之间基本不能合作。你别想在 Visual Studio 窗口里面嵌入 UltraEdit 编辑器,你别想用一个 expect 脚本来控制 telnet 到水木清华BBS,这就是为什么 helloooo 诞生在 Linux 而不是 Windows。我曾经试图从 Windows + Exceed + SecureCRT ssh 登录到 Sun 机器,然后通过 ssh 的隧道(X11 tunnel)把 X 程序传到 Exceed 上运行,但是搞了两天都没有成功!而在 Linux 下这个事情根本就是不用怎么配置的,OpenSSH 和 XFree86 本来就是完美结合,只要打开 ssh 的 "forward X11" 选项就什么都搞定了。

    Windows 的程序都是大而全,大而杂,所有的电子邮件程序都需要自己提供编辑器,自己发送和收取邮件,自己显示邮件的附件。每一个BBS程序都提供自己的Virtual Terminal, 自己的通讯代码。每一个 IDE 都自己提供编辑器,编译器,汇编器,调试器。人们为了使用一种新的程序,需要适应所有这些它提供的界面,而不能使用自己喜欢的编辑器的键绑定,菜单组织…… 不能 DIY!

    展开全文
  • 微软研究人员在ICLR 2018发表了一种新的GAN(对抗网络生成)训练方法,boundary-seeking GAN(BGAN),...这个“以假乱真”,用形式化的语言来说,就是假定我们有一个模型G(生成网络),该模型的参数为θ,我们要找...
  • 转自:量子位终于,我小学时的梦想有人实现了!只需要我拍下自己的笔迹,AI就能帮我誊抄英语作业,画风“完全一致”的那种:甚至帮别人抄作业也没问题……简直吊打一批只能仿手写、价格还动辄几百上千...
  • 好了,现在全国的大学包括清华,几乎所有人机器必装盗版 Win2000,Office XP,学校的选课系统是非IE不能正确浏览,论文用 Word  编辑,演示用 ppt 做, email  的通知附件是  doc  文件,你不用  Word  打不开...
  • 好了,现在全国的大学包括清华,几乎所有人机器必装盗版 Win2000,Office XP,学校的选课系统是非IE不能正确浏览,论文用 Word  编辑,演示用 ppt 做, email  的通知附件是  doc  文件,你不用  Word  打不开...
  • 编码coding能力怎么强调都不过分,比如最简单的手写快速排序、手写二分查找)、数据结构、算法、计算机体系结构、操作系统、概率统计等等也必须掌握。对于数据结构和算法,一者 重点推荐前面说的微软面试100题系列...
  • 机器学习-hjasfgiudgasu

    2020-11-06 20:24:10
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f1gkdd4S-1604662143417)(C:\Users\Jing\OneDrive\笔记\机器学习\图包\机器学习知识体系.png)] Linux基础 ** 利用虚拟机安装Ubuntu** ...
  • 《完全用Linux工作》作者:王垠

    千次阅读 2014-07-24 15:35:09
    好了,现在全国的大学包括清华,几乎所有人机器必装盗版 Win2000,Office XP,学校的选课系统是非IE不能正确浏览,论文用 Word  编辑,演示用 ppt 做, email  的通知附件是  doc  文件,你不用  Word  打不开...
  • PyTorch—学习笔记(附源码)

    千次阅读 2020-07-16 18:20:17
    1.基础知识 torch.Tensor(a,b) #分配了a*b矩阵,只分配空间,未初始化 torch.rand(a,b) #使用[0,1]均匀分布随机初始化二维数组 torch.Size() #查看其形状 torch对象相加的三种写法 y.add_(x) #这种加法会改变y的...
  • robot---百度百科

    千次阅读 2008-12-08 20:17:00
    百度首页 | 登录.popb2{padding:10px;line-height:22px;font-size:14px;width:280px;height:230px;margin:0 auto}#rempassItem {font-size:12px;color: #FF0000;display:none;}.regButton{padding:2px;...
  • 比方说,我们可以使用手写识别的数据集MNIST和图像识别的数据集TFD来验证,最后发现GAN在集种不同的算法里面的得分是最高的! 利用GAN也可以让电脑学写字。在训练好的时候,这些GAN写的文字几乎可以以假乱真。但它也...
  • 完全用Linux工作

    2015-05-12 11:30:53
    好了,现在全国的大学包括清华,几乎所有人机器必装盗版 Win2000,Office XP,学校的选课系统是非IE不能正确浏览,论文用 Word  编辑,演示用 ppt 做, email  的通知附件是 doc  文件,你不用  Word  打不开,...
  • 完全用Linux工作-王垠

    2018-11-04 11:21:39
    好了,现在全国的大学包括清华,几乎所有人机器必装盗版 Win2000,Office XP,学校的选课系统是非IE不能正确浏览,论文用 Word 编辑,演示用ppt做,email 的通知附件是 doc 文件,你不用 Word 打不开,连 863 项目都...
  • 中文信息处理——纵览与建议

    千次阅读 2012-07-30 15:24:13
    Word的用户远远超过了WPS,摩托罗拉等外企在手机中推出的手写识别技术同样非常成熟,IBM、微软在语音识别和TTS技术上处于领先地位,Google提供的中文搜索也在国内占有30%的市场份额,并且从技术实力来讲胜过中国的...
  • 简单理解与实验生成对抗网络GAN

    千次阅读 2018-09-19 11:02:24
    mnist手写体数据库应该都熟悉的。这里简单的使用matlab来实现,方便看到整个实现过程。这里用到了一个工具箱  DeepLearnToolbox ,关于该工具箱的一些 其他使用说明 网络结构很简单,就定义成下面这样子:  ...
  • BAT机器学习面试1000题系列(第1~305题)

    万次阅读 多人点赞 2017-09-28 11:37:49
    编码coding能力怎么强调都不过分,比如最简单的手写快速排序、手写二分查找)、数据结构、算法、计算机体系结构、操作系统、概率统计等等也必须掌握。对于数据结构和算法,一者 重点推荐前面说的微软面试100题系列...
  • 深度学习基础知识整理

    万次阅读 多人点赞 2018-07-23 11:51:43
    编码coding能力怎么强调都不过分,比如最简单的手写快速排序、手写二分查找)、数据结构、算法、计算机体系结构、操作系统、概率统计等等也必须掌握。对于数据结构和算法,一者 重点推荐前面说的微软面试100题系列...

空空如也

空空如也

1 2 3 4
收藏数 61
精华内容 24
关键字:

word手写字体以假乱真