文章出自:
http://www.yeeyan.com/articles/view/nana/9276 译者:
scorpio31
简介
探讨新的互联网技术发展趋势及其代表公司,google 苹果 Facebook
接受人类的创造并使用它
但是不要崇拜它
因为它将成为过去
一位匿名的智者在一个废弃的汽车门上刻下了上面的话,并把它拖到了我在北部加利福尼亚的家附近的一条小路上。原始的红衫小树林似乎不该出现这样锈迹斑斑的汽车门,然而车门上的话却神奇般地把这片破旧不堪的东西变成了一件艺术品。我一回到家就再google上搜索这句话,当然是什么也没发现。(多亏了google, 我们生活的世界,把“我不知道”变成一个无法接受的回复。因此,我不能找到作者的结果让我抓狂。)
我住的小镇距离硅谷很近,我大多数朋友都以技术为生,而我则以撰写这些内容为生。 我们都崇拜那些璀璨耀眼的新事物。这段时间,日益临近的苹果下一代iphone发布正处在信誓旦旦的祈祷中。 如果这马上到来的奇迹将被相信,这款新的手机将会成为下一个大的“平台”。
一个平台,对于计算机人士而言,是指在其上可以运行第三方的应用程序。目前已有许多平台,仅在手机一块国际上就有30多种。 但是一个真正成功的平台应该可以超越它的直接用户群并能有效的创造并控制一个巨大的市场。 在计算机工业界,IBM凭借其大型机和操作系统主宰着高端商用平台,着眼于企业用户。 随着PC革命的兴起,似乎是在一夜之间,IBM受到了微软和Windows操作系统的排挤。 依次下来,随着web-不被任何个体拥有,对全体开放—成为主宰平台,Windows正在失去其往日的威力。(是的,web只不过是一层巨大的程序代码,所有我们访问的网络站点不过是跑在其上的应用程序而已。)
当然每个技术领域的主要角色都想创造出下一代平台。新颖之处在于的确有这样的可能使得任意多的他们取得成功。“在这些当中与以往的观点不同,即只有一个成功者” Marc Andreesen说,他辅助开发了第一个被广泛使用的浏览器,Mosaic,后来在互联网中流行。 互联网相对PC操作系统而言是一个广大的多的天地。“试图找出谁将取胜”Andereessen 补充道,“有点类似于争论在食品市场中牛肉、鸡肉还是龙虾将会赢得市场一样。”
然而,对象我这样喜欢过度用功的人,观察硅谷当中最具创新性的三家公司—每家都代表信息时代的一种基本特质—谁能胜出是一件吸引人的事情。 苹果、google、facebook分别是个人计算机开创时代的小角色;是最大的、获利最多的、造就了web的公司;并且是充满胆识的“暴发户”,是当前社会网络迁移的同义词。
在很多方面,这些公司成为了技术标准的棋手,虽然他们的指导体系有差别。 例如,google倡导“开放”的web,并且倾向于在开发者中推动开放的标准和联盟。 Facebook, 连同其注册社区中7000万的活动用户,提供了一个更可控的经验,至少迄今为止,希望在其虚拟社区内保证用户的安全。苹果从旧世界中走来。 它雅致的产品保护了用户远离信息时代的混乱,但是苹果的经验仍倾向于产品的高度受限,使用苹果独有的硬件终端以及苹果的软件和服务,例如iTunes音乐商店。
在这场平台之争中的获胜者将会赢得数十亿的用户,为广告商赚足眼球,销售其诸如音乐、电影、甚至按需的计算能力等服务。然而这里的结果远比谁将挣得最多更为重要。互联网的将来—我们如何获取信息,如何在相互之间进行交流,更重要的一点,谁将控制它—都还是一个问题。
Facebook为何出现
当Facebook创始人Mark Zuckerberg宣称这项运动开始时,平台这个词在一年前成了时髦用语。 ‘“社会网络是封闭的平台”。他讲述了一群在旧金山的800开发人员的聚会。“今天我们将会去改变所有这些。”
你将观看这个讲演的视频,像我所做那样,在google中搜索开发者会议的名称,“F8。” 让F8有史以来变得有意义的是Facebook平台首次对开发人员开放。任何人知道如何编写应用程序的人都被Facebook所欢迎。Andreessen说一个开放的编码环境是任何一个平台成功的关键,因为它将更加易用,更多的开发人员将汇集起来,使得平台变得不断强大。Facebook也把免费的版本分发给开发人员。想要增加新应用的用户可以通过单击的快捷方式来实现。谣传将会进入Facebook董事会的Andreessen说,所有这些都帮助Facebook更引人注目。“成为一个平台的关键是能够激发成千上万的处在另一侧的你不需要支付费用的人群的创造力,并且他们可以想到你没有想到的东西。”
这正是过去一年中发生在Facebook身上的事情。类似于淘金热的一波又一波的开发人开始编写简单的应用。截至6月1日,24000个程序,小到手势,例如虚拟打人的能力,再到完整的游戏例如Scrabulous都对Facebook的用户可用。期待可以加载更多,Facebook开放了其关键的编程接口,这些代码是开发人员访问Facebook平台所需要的,令人震惊的达到400000个,远远超出了Zuckberg的预期。
Zuckerberg,24岁,在会议中是热门人物。当我和他交谈时,他刚从旧金山附近的一个大型的业界技术活动回到加州的Palo Alto.在那里他又一次被问到是否会把Facebook卖给微软,仅是小规模投资就给了Facebook150亿资金。(微软,曾经尝试收购雅虎但以失败告终,将会使用一个新的平台。)Zuckerberg有一次说了不,他将不会卖出,他会尽全力打造一个伟大的并且切实可行的平台,当然这需要时间。 Zuckerberg以一种平稳流畅的男高音讲述着,他长长的脖子,并习惯于把下巴上翘,像是在吹萨克斯。“许多去年中所作的开发平台的工作只是为了跟上胜利的步伐。”他说。
这就是当你创造一个成功的平台时所要发生的:一个有效的圈子扩张着,有广大的用户吸引着一批开发人员创造更多乐趣和有用的东西,这些反过来又吸引更多的用户加入。无需提及的是,当然也会存在相当的无用的、让人厌烦的应用。 在Facebook,应用程序开发者的收入是从与安装该程序的用户相关的广告发布费用中提取的,其中一批很适合插入式的广告。Facebook也会对类似Funwall的应用采取措施,这个程序很容易使得用户不经意间对其邮件列表中的朋友发送垃圾邮件,邀请其安装Funwall. Zuckerberg说Facebook在调整其平台以帮助最有用的应用程序有效传播,而打击压制那些不良应用程序。
我询问Zuckerberg关于类似Facebook这样的封闭专有网络可能会抑制网络创新性的理论。这个想法是Jonathan Zittrain 的新书《互联网的将来和如何停止它》的主题,这本书由哈福大学的Berkman互联网与社会中心联合撰写。他指出像Facebook这样的封闭社区的兴起,iPhone的出现,以及看起来没有副作用的google所设立的标准会使得那些不正当的、甚至有具有破坏性的发生在无序网络中的创新活动退出视野。Zuckerbert停下来想了一回,接着说:“总体上我是同意上述原则的,我认为某种程度的开放性和兼容性是极其重要的。” 伟大的平台在开始时通常都是封闭式的,当其走向成熟可以处理更多的负载时会逐渐开放。他补充道:“我们在某种程度上已经完成了那个初始阶段,正在向更开放的阶段迈进。”
实际上,上个月Zuckerberg发布了Facebook Connect功能,这项功能允许用户通过一小段代码把自己的联系列表放在网页上。再比如说,过些时间,博客作者把Facebook风格的“围墙“嵌入到自己的站点上也会成为可能,这将允许方便地查看朋友留言。这是个很棒的想法。到处都是Facebook! 但还存在一个问题。在Facebook Connect发布之后,goolge发起了一个近乎相似的计划—Friend Connect. 如果有什莫会使Facebook近乎疯狂脚步放慢下来,那就是google.
Google尝试连接
网络发展的最初阶段是把信息在线发布并让人们可以通过某种方式找到并连接上。第二阶段即现阶段是关于在人们之间彼此建立连接。
“社会性是个新的重点” Joe Kraus说, 他负责指导google创建运行在整个网络之上的社会层。在这一点上,正如google在其他方面所为一样,Kraus的策略是创造一个社会网络的联盟,这个网路将使用开放的标准而不是Facebook的专有网络和编程语言,因此开发人员可以推广他们的应用。
“Google依赖于开放的互联网来运作它全部的业务。”他告诉我说,“这存在开放性所带来的各种遗传性问题。” 这部分也是由于google的核心业务,搜索依赖于开放性。Google无法找到位于网上的文件、音乐、图片等等--除非它们是开放的可以访问的,Kraus说。在财富500强中最富有的互联网公司(排名150,市值165亿),google有个商业计划,其依赖于网络被尽可能多的人使用。这也正是为何公司会投入如此大量的时间和精力来发掘新的应用以使得网络变得更有用、更有趣。
社会网络对这个计划是一个威胁;用户将会倾向于留在其自己所属的网络社区中,在那些应用中流连。例如,当Facebook的用户开始玩Scrabulous或修改图片时,他们就不使用google。实际上,他们更可能过其朋友或网络应用程序来发现新事物,比如iLike,一个用于匹配你的朋友和你相似音乐喜好的服务。
所以,google在去年12月通过OpenSocial,这个由Facebook竞争对手:MySpace,Hi5, 以及google自己的社会网络Orkut构成的联盟, 试图创造一个一次开发即可普遍运行的应用平台。 这意味着开发者,只要经过微小的改动就可以创造一个可以
在所有主要社会网络运行的应用,当然了,Facebook除外。 "当你同开发人员交谈时,他们中的多数都不超过50人;他们不可能用50种不同的方式来编写应用,"Kraus说,“他们的确需要一次性开发,然后尽可能多的推广。”
他的观点确实是有道理的。但是我在想也许对google也许已经晚了,或者对于社会网络的聚会已经过时了。“Google意识到了它需要面向更多用户,但这需要在现有平台上增加许多。这并不都是自有的。”我的邻居Seth Goldstein说,他经营着SocialMedia,一个针对社会网络的广告网。“Facebook是从头开始被设计出来用于描绘展现这些复杂的且有细微差别的各种社会关系的。”
为什么iPhone是重要的
苹果的理念更加简单:谁占领网络根本不重要- Facebook,Google或者二者都有,抑或其它。 Steve Jobs只是希望确保你使用他们的设备去访问。
到了那时,新的iPhone,这个被期待在于6月9日发布的茶品,将是具有“巨大意义的”,Andreessen说,他现在主持一家名为Ning的公司,允许任何人打造自己的社会网络。 “,所有这里的人们都相信iPhone—并且我认为这是事实—将是第一个真正的、完整意义上的手持计算机终端,”他说,“它具备一个可用平台所必需的一切要素。”
Matt Murphy,一位位于Kleiner Perkins Caulfield & Byers的风险投资人,目睹了这项花费1亿资金启动iPhone伟大应用的过程,乃至更远。他宣称iPhone将会“毫无疑问的成为后PC时代的驱动力。” Murphy指出用于开发iPhone应用程序的开发包已经被下载超过了200,000次,他估计当iPhone商店开业时将约有1000个应用程序商品提供给消费者。“当看到有众多的阻碍移动生态环境的制约因素时,苹果只想抛弃这些因素并提供一个开放的平台,一个伟大的设备和用户群对于这些新的应用来说是非常重要的。”
Jobs的杰出才能总是表现在融合边缘的技术并使之易于接受。平板监视器,电影制作软件,wi-fi,数字音乐播放器,触摸显示屏---所有这些都大约是在过去的20年中以比较粗糙的方式出现的,他的天才在于发现这些并重新包装它们,使得这些技术可以在大众面前闪亮登场。与之相似的是,苹果的iPhone2.0将会在地理位置上更广泛流行,想想车载卫星导航系统作为一种人们随地都可进行的交流方式。
又一次,在平台之战中面临保卫多个战场的Google将是苹果的强大对手。它正在领导另一个联盟为下一代手机以及其它消费终端来建造一个称为Android的开放操作系统。这个开放的手持设备联盟具有34名成员,手机网络运营商以及设备制造商,包括摩托罗拉,LG电子,三星,中国移动,Sprint Nextel和T-Mobile. 尽管Google的CEO Eric Schmidt坐在苹果执行董事会的位置上,Jobs像对待合作伙伴一样在iPhone上运行google的应用,苹果却不在这个联盟当中。
这看起来类似于在山谷中来大喊“Frenemies”, 公司之间在某些领域进行合作而在其它则相互竞争。
第一款Android研制的手机就要面世了,Google宣称,在今年下半年,也可能就是在新的iPhone发布的时刻。在最近的google开发者大会上,公司第一次作了展示,一个通用的运行操作系统的手机。 可触摸,附一个可随车携带的运动检测加速计,用于在google卫星地图上指示用户的位置,这个设备与iPhone没有任何相似之处。 Google的移动平台总监,Andy Rubin解释说,Android对开发者来说是一个开放的平台;他们可以随意更改代码。他说迄今为止,开发者已经编写了超过1800个应用程序,这些都可通过google站点传播,类似于YouTube一样根据受欢迎程度。“这当中有一些相当有创意的东西”,Rubin解释到,“这将融合手持设备与网络以及随之出现的全新的事物。”
为了推动进程,google举办竞赛,最终将有10个最佳应用的开发者赢取275000美元的奖金。 Robert Lam, 他的Eco2go在上个月被提名为50名进入决赛顶级奖项之一,他表示决定为Android平台而不是iPhone开发自己的应用程序,用来帮助用户计算并减少carbon footprints, 因为对于Android平台而言,比iPhone要简单的多。为iPhone做开发“将会花费我们一定的年度费用,所以我们不得不与苹果分享收入的30%”,Lam说。这就是说,Lam已经考虑在Eco2go建立后把其应用移植到iPhone上。 iPhone可能最终将会变得非常流行,在这个阶取消所有可能的选项是不明智的。
我同意。像他一样,在这场战争里,我在各处植根,因为听起来哈佛的Zittrain的担忧似乎并非是事实,我们都身处其中。当Andreessen说网络太广阔以至于拒绝任何控制的企图时他是正确的。 有了google,使我深刻意识到Facebook或者任何其他人似乎都不太可能领先的太远。同时我也相信当Zuckerberg说Facebook将随着时间逐步开放。 这是个明智的进步,他是个聪明的人。最后,我希望手上可以拿着新的iPhone. 属于它的时间会来的也会过去。但是现在呢?伟大的技术,仍会一如既往的呈现在我们每一个上帝面前。
posted @
2008-06-24 12:34 张老三 阅读(225) |
评论 (0) |
编辑 收藏
周末加班,在IBM小型机上部署升级版的应用程序。
我在学校学过Linux,实验室环境下用过red hat 。但是还没用过IBM 的AIX系统,其实命令应该差不多,整整忙一天。
系统很庞大,我们首先需要使用MQ将程序包从顶级节点下发到下一层每个服务器节点,剩下的都是重复性的工作了。每个下层环境下都有三台小机,分别是DB2server、MQserver、WASserver,现在总结一下。
使用secureCRT telnet到WASserver上,在这里,创建备份目录,先备份当前版本的程序包,然后将升级版的程序包copy进去。
1、mkdir -p /tmp/20080621/app_bak 创建备份目录
如果不指定-p参数,那么若/tmp/20080621路径不存在的话,app_bak就无法创建;指定-p就可以连续创建不存在的目录
2、cd /tmp/20080621/app_bak 进入备份目录 可以使用pwd查看一下当前目录
3、mv 原来的文件包 ./ 将原来的程序包移动到当前目录下
到现在为止,备份算是搞定了,接下来将升级版的软件包copy到WASserver上,由于升级版的软件包在MQserver上,我们使用ftp命令把它取到WASserver上,过程如下:
1、cd 应用程序目录
2、ftp MQserver ip
系统提示输入user、password,验证之后,进入ftp命令模式下,即ftp>
使用ftp的get命令将MQserver上的升级版软件包取至当前目录:ftp>get 软件包在mqserver上的全路径 ./
文件不大的话,应该很快就能传完。然后使用bye命令断开ftp连接(ftp真是个好东西,其他的命令很多,请见ftp相关资料)
现在升级版的软件包就copy到WASserver上了,接下来要做的是升级数据库,这要登录到DB2server上,AIX提供了一个连接本地主机或远程主机的命令,rlogin [本地主机或远程主机名],查看主机名可以使用hostname命令,例如我现在键入hostname,系统会打印出WASserver。
1、rlogin DB2server 登录到DB2server上
2、cd /tmp/datascript 然后使用chown -R db2admin:db2grp1 * 修改此目录的所有权,使用chmod 777 *修改读写权限,chmod 有符号方式和数字方式两种,不清楚的Google一下。
2、使用同样的方法,将数据库升级包从MQserver ftp到DB2server上
3、DB2 -tvf xxxx.sql > ./xxxx.sql.log 执行升级脚本 并创建日志,如果有很多sql脚本要执行的话,可以写成shell脚本,然后直接执行就ok了,如./update_20080621.sh
4、使用cat或more命令仔细查看脚本执行的日志,确保执行无异常
做到这里,一个地方的升级基本上完成了,重启一下was就可以到另一个地方的去升级了。全国30多个地方呢,够我们忙的了。
期间也遇到了很多小问题,值得一提的是,在升级数据库的时候,脚本文件是dos格式还是unix格式的问题。不知道怎么回事,我们在Windows下编写好脚本之后,已经改为unix格式,而传到小机上之后仍然发现有很多dos格式下的回车,只好使用vi编辑器在小机上做了修改。熟练使用vi是在unix/linux工作的必备能力,尚且不熟的请赶快Google,学习学习,vi的内容很多,先不说了。
周末忙了两天,累,欣慰的是客户反映升级后,系统使用正常,还没发现问题。好了,收工喽!
其实上面这些都是类unix系统中最简单的操作,对牛人来说不值一提,但我还不是牛人,希望和我同水平的人共同学习!
posted @
2008-06-22 16:40 张老三 阅读(1913) |
评论 (1) |
编辑 收藏
简要说一下http请求报文的格式:
HTTP请求包括三部分:请求行(Request Line),头部(Headers)和数据体(Body)。其中,请求行由请求方法(method),请求网址Request-URI和协议 (Protocol)构成,而请求头包括多个属性,数据体则可以被认为是附加在请求之后的文本或二进制文件。
get 请求表示客户端请求一个uri,服务器返回客户端请求的uri,post请求表示客户端请求的时候还要提交数据,比如提交form表单,要提交的数据会放到请求报文的body部分,服务器收到后这样的请求后通常需要来处理这些数据。
get请求是将数据放在请求的url之后,是一个以"?"打头的查询字符串,比如常见的test.jsp?name=aaa&age=10这种格式,这个是可以直观看到的,(登陆的用户名和密码可不能用get哦)。由于http协议的限制,这样放在url之后的get请求的数据是受大小限制的,最大长度不超过256字符(好像是,可能和web服务器有关)。
为了能够传输更多的数据,可以采用post请求,post请求是将数据放到了http的Content中,这就无大小的限制了,而且传输的数据不能直接被看到(登陆的用户名和密码一般采用post请求),大量的数据或是文件上传,都只能用post来传输。
简单的说,get是通过http header来传输数据,有数量限制,而且可见,而post则是通过http body来传输数据,没有数量限制。
再说servlet中的doget和dopost方法
web服务器处理这些请求的时候,如果客户端提交的是get请求,则响应doget方法,如果客户端提交的是post请求,则响应dopost方法。这是web服务器在响应doservice方法时,由doservice方法分发下来的(详情请查看http协议和servlet生命周期方面的文章)
posted @
2008-06-19 00:28 张老三 阅读(4796) |
评论 (2) |
编辑 收藏
大学中从未写过Java代码的我,竟然要做Java开发了,
看来这个时间还是很有意思的!
那我张老三也只能很感兴趣的奉陪了!
以后注定是Java的人。
专注于技术,我会走好我的路!
高调做事,低调做人,开博第一天,就不大宴宾客了!
posted @
2008-06-16 17:25 张老三 阅读(371) |
评论 (1) |
编辑 收藏