代码之梦

Thursday, January 25, 2007

Dreaming In Code

 

出于一时自然而然的自指(self-referentiality),在这篇Blog之中我将谈及一本书,一本有提到本篇Blog的书。:)

Scott Rosenberg的新书Dreaming In Code之中大部分写的是有关我在OSAF工作期间所参与的Chandler项目的事情。这本书提到了我写的一些关于该项目的Blog文章中的内容,总的来说可以把它们描述为,嗯,“粗鲁”。

我有一篇BlogPython is Not Java,时至今日仍十分受欢迎。可奇怪的是Rosenberg把这篇文章说成是“公开揭露了OSAF小组的失误”,尽管事实是每个人都可以在网上得到代码并下载下来进行阅读!

许多人和一些Pythonistas对它的批评要远比我所做的苛刻。我只是想试着写一些都应该做什么的指导性的东西,而非把项目当儿戏看。在人们从Java迁移到Python这方面问题上那篇文章将继续发挥着作用,直至它与Chandler的关系被人淡忘掉。

(首先是大多数人并不了解这种关系你得自己检查完Chandler code base,或读一读与之相关的文章,尽管Rosenberg's认为这“对谈论它的那些人是很显而易见的”。对是显然的呢?)

奇怪的是,在书中提到我blog的那两处并没有什么明确目的,它们几乎就是用来转移话题的,就仿佛是我一直从事的工作需要一个由于太过技术性而逐渐销声匿迹的陪衬。(我的第一个重量级OSAF项目摒弃了所有XML schema/UI规范,取而代之的是一套速度更快,可维护性更好的Python API—并不是十分主流和热门的东西)

说实话,如果是我编辑这本书,我大概会把我的那三页全部删掉,因为那都是漫无目标毫无意义的题外话。(埃,据我所知,编辑应该已把那三页从最终版本中删掉了,因为我刚看了一下已经在OSAF成员间流传的预览版本。)看来这样做的唯一目的就是展示一下OSAF的伟大之处是在于他们能忽略我“粗野”的性格而从我的工作中“提取出优秀的思想”。

可是,这个怪异的结论是从RosenbergSpike用途的误解中得来的。开始时我在OSAF遇到的问题就是由于他们还想象不到结果会是什么样子,没有人认真对待我的重构建议。在这一点上它只是有点过于有悖常理而使其令人难以理解。基本上人们都是在说我的提议是无法实现的,因为他们没见过如何才能实现。

所以,Spike的思想是通过给出实际的例子来说明使用Python实现的程序是如何工作的,并证明了在拥有一套容易理解和使用的API的情况下这类问题实际上可以既快速又可靠地进行实现。

换句话说,这实际并非是要取代Chandler架构,而是提供一个显示其本来面目的模型。因此,训练的全部重点就在于从它之中“吸取优秀的思想”!这也是为何要尽快且要尽可能形式抽象地完成它目的就是向管理层和开发人员推广其思想,而不是去取代别的架构。

简而言之,Spike的目的是使OSAFPython的有用之处拥有更多期望值(反映在Rosenberg网站的Blog文章题目上)并让人们转变对事物的看法,从拒绝考虑“不可能”的事情到去问“我们该做什么,我们如何才能做到?”

简单的说,Rosenberg的叙述在忽略存在于实际情况中的事物的同时,还制造了实际情况所不存在的紧张气氛。这就使我想知道这本书的更多地方(大多数是在我去OSAF之前发生的)到底有多少是实际反映了项目其余部分的真实进展情况。

哦对了,OSAF的一个人给我这样解释过:Rosenberg并非是真的针对Chandler项目去写的,他是在从整体上去写软件项目的方方面面,以Chandler为例来讨论软件开发过程中的基本原则,这才是他真正想说的!因此,如果你想真正了解在Chandler项目中                                                                                                                                                                实际发生的事情,这本书也许并不适合你。

换句话说,如果你对如何将“public static void”以一种机器诗的形式来阅读或对01之间的间隔是怎样成为人与机器之间的鸿沟怀有强烈的兴趣的话,那就一定要看看这本书。(我发现实际上书中的这些部分还是很有意思的。)只是不要去设想这些抽象事物是怎样映射回到用来说明它们的实际项目中真实的人或任务的。

 

(原文链接网址:http://dirtsimple.org/2007/01/dreaming-in-code.html

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Python生成《红楼梦》词云的示例代码: ```python import jieba from wordcloud import WordCloud, STOPWORDS import matplotlib.pyplot as plt from PIL import Image import numpy as np # 读取文本文件 text = open('hongloumeng.txt', 'r', encoding='utf-8').read() # 使用jieba进行中文分词 words = jieba.cut(text) # 过滤停用词 stopwords = set(STOPWORDS) stopwords.add('一回') stopwords.add('不知') stopwords.add('两个') stopwords.add('什么') stopwords.add('说道') stopwords.add('听见') stopwords.add('这里') stopwords.add('进来') stopwords.add('我们') stopwords.add('你们') stopwords.add('如今') stopwords.add('知道') stopwords.add('众人') stopwords.add('那里') stopwords.add('起来') stopwords.add('姑娘') stopwords.add('这个') stopwords.add('出来') stopwords.add('他们') stopwords.add('自己') stopwords.add('一面') stopwords.add('只见') stopwords.add('怎么') stopwords.add('奶奶') stopwords.add('太太') stopwords.add('婆子') stopwords.add('回来') stopwords.add('不是') stopwords.add('这样') stopwords.add('只是') stopwords.add('一时') stopwords.add('不能') stopwords.add('不敢') stopwords.add('不好') stopwords.add('一点') stopwords.add('就是') stopwords.add('不到') stopwords.add('出去') stopwords.add('一句') stopwords.add('之后') stopwords.add('心里') stopwords.add('今日') stopwords.add('一声') stopwords.add('听说') stopwords.add('咱们') stopwords.add('这些') stopwords.add('就要') stopwords.add('下来') stopwords.add('大家') stopwords.add('不用') stopwords.add('只得') stopwords.add('不想') stopwords.add('不由') stopwords.add('一起') stopwords.add('这么') stopwords.add('这时') stopwords.add('如何') stopwords.add('不同') stopwords.add('不再') stopwords.add('一件') stopwords.add('这话') stopwords.add('不过') stopwords.add('不禁') stopwords.add('不免') stopwords.add('不由得') stopwords.add('不得') stopwords.add('不曾') stopwords.add('不肯') stopwords.add('不敢想') stopwords.add('不往') stopwords.add('不像') stopwords.add('不为') stopwords.add('不识') stopwords.add('不怕') stopwords.add('不觉') stopwords.add('不便') stopwords.add('不由自主') stopwords.add('不怎么') stopwords.add('一下子') stopwords.add('不成') stopwords.add('也许') stopwords.add('不好意思') stopwords.add('不少') stopwords.add('不比') stopwords.add('不大') stopwords.add('不然') stopwords.add('不知道') stopwords.add('不得不') stopwords.add('不会') stopwords.add('不要紧') stopwords.add('不必') stopwords.add('不敢当') stopwords.add('不过是') stopwords.add('不理') stopwords.add('不妨') stopwords.add('不出') stopwords.add('不用说') stopwords.add('不然的话') stopwords.add('不可') stopwords.add('不免让人') stopwords.add('不如') stopwords.add('不得已') stopwords.add('不在乎') stopwords.add('不过如此') stopwords.add('不妨碍') stopwords.add('也好') stopwords.add('不依') stopwords.add('不再说') stopwords.add('不比之下') stopwords.add('不但') stopwords.add('不到位') stopwords.add('不尽') stopwords.add('不妨说') stopwords.add('不挂') stopwords.add('不同意') stopwords.add('不止') stopwords.add('不留') stopwords.add('不是不') stopwords.add('不成问题') stopwords.add('不见得') stopwords.add('不祥') stopwords.add('不问') stopwords.add('不耐') stopwords.add('不就行了') stopwords.add('不免有') stopwords.add('不毛') stopwords.add('不易') stopwords.add('不然的话') stopwords.add('不成体系') filtered_words = [] for word in words: if word not in stopwords: filtered_words.append(word) # 基于文本生成词云 mask = np.array(Image.open('hongloumeng.png')) wc = WordCloud(background_color='white', font_path='msyh.ttc', mask=mask, max_font_size=100, min_font_size=10) wc.generate(' '.join(filtered_words)) # 显示词云 plt.figure(figsize=(10, 10)) plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() ``` 说明: - 代码中使用了jieba进行中文分词,需要先安装jieba库。 - stopwords是停用词集合,用于过滤一些无意义的词汇。在这里,我们添加了一些《红楼梦》中常出现但无实际意义的词汇。 - 词云使用了《红楼梦》的封面作为掩模(mask),通过指定mask参数可以将词云形状限制在指定图形内。在这里,我们使用了一张红楼梦的图片。 - 最后用matplotlib显示生成的词云。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值