News aggregator
Extensions: One Step Closer to the Finish Line
During the last few months, our team has been working hard to support extensions in Google Chrome's beta channel. Today, we are getting one step closer to this goal; developers can now upload their extensions to Google Chrome's extension gallery. We are making the upload flow available early to make sure that developers have the time to publish their extensions ahead of our full launch.
You can find all the info to write an extension in our docs. Once your extension is ready for the gallery, you'll need to upload a zip file of your code and an icon that helps users distinguish your extension. You'll also have the option to submit text, screenshots and/or YouTube videos that describe the functionality of your extension. All types of extensions are welcome in the gallery, provided they comply with our Terms of Service.
For most extensions, the review process is fully automated. The only extensions we'll review manually are those that include an NPAPI component and all content scripts that affect "file://" URLs. For security reasons, developers of these types of extensions will need to provide some additional information before they can post them in the gallery.
Once an extension is uploaded, our gallery takes care of packaging and signing. Updating an extension is also incredibly easy — all a developer needs to do is to upload a new file in the gallery. Finally, to further help developers, in the next few days, we plan to open up the gallery to a small group of trusted testers. They will provide developers with insights and bug reports that will help them polish their extensions ahead of our beta launch.
We can't wait to share all the great extensions that you'll submit with all of Google Chrome's users. In the meantime, we encourage you to submit any bugs you find in the upload process to our Issue Tracker and to ask all relevant questions in our discussion group.
Posted by Lei Zheng, Software Engineer
一斑
上周,美国国内最重要的新闻不是奥巴马的亚洲之行,不是艰难推进的医疗改革辩论,而是一份关于乳腺癌的报告――这份报告,由美国政府任命的一个小组起草,建议40-50岁之间的妇女(除去高危人群)不用像过去推荐的那样每年进行乳腺X光扫描,原因是这样做法带来的危害(辐射,误诊,心理等等)超过其带来的好处(发现早期的乳腺癌),因为对这个年龄段的妇女而言,每扫描大约2000个人,才能救1条命。这件事情在美国国内引起的震动,大概超过了任何人的想象。这里面有纯粹医学意义上的辩论,就是这个报告是否准确的反映了最好的医学证据;有伦理上的辩论,比如说是不是因为每扫描2000人才能救一条命,就应该建议不扫描;有联系到当前的医疗改革的,比如说这会不会是政府“限制”医疗服务来控制成本的一个前兆;这场辩论牵扯到很多的利益集团,美国癌症协会,保险公司,还有很多利益群体,都纷纷加入战团;当然,最终还有公众的迷茫,几十年了,美国妇女都一直被告知到了四十岁就要每年去医院检查乳腺(白人,比起亚裔有更高的乳腺癌发病率(亚裔的第二代,似乎发病率就接近白人了,所以不光是基因,饮食和生活习惯似乎也是很重要的因素),在美国平均每8个妇女就有一个会得乳腺癌),现在突然有人出来说,这样做其实弊大于利。
我从这件事情上,还看到另外一件小事,就是所谓的早预防早诊断能够节约医疗成本这件事情,恐怕未必完全是真的。此话怎讲?
乳腺X光扫描,一次的费用大概是100美元,每扫描2000个人才能救一条命,也就是每花20万美元,才能救一条命。对于那个幸运的乳腺癌被及早发现的人而言,100美元就救了自己的命,确实是一件非常值得做的事情。但对整个社会而言,这是花费20万美元,才能救一条命,而且只是针对乳腺癌这一种疾病。如果这100美元,完全由个人来出,那完全是个人的自由。但如果这100美元,最终要由政府来出(比如说在英国和加拿大这些有全民医疗保险的国家),那花20万美元救一条命而且只针对一种疾病,不能不说对整个社会而言会是一个很大的负担――绝大多数人,一辈子都在医疗上花不到20万美元的。
一份简单的报告,就引发了这么多的辩论,让人略见医疗改革复杂程度之一斑。也让人不得不惊叹:美国参众两院的议员们究竟是怎么在几个月的时间里就能拍脑袋拍出四五个版本的万亿美元级医改方案的?
(author unknown)0436058040241247943106401422136314234447062334077287100514571686788768994899174716964696555174275592003329372186276120310798170920680251412601439884718785672798059666297876863941371204082507202424979413088656624712918524114278945355383815330493872012894093360808768469251787656745125575202091802115360363949085503692200808379546542773100061photoshop_skills.jpg
president_of_eu.jpg
BT下载的未来
1.
前天,世界最大BT下载网站“海盗湾”(thepiratebay.org),在官方网志上宣布,永久关闭Tracker服务器:
TPB has decided that there is no need to run a tracker anymore, so it will remain down! It's the end of an era.
我们认为没有必要再维护Tracker服务器了,它不会再上线了!它的时代已经结束了。
无论对于海盗湾,还是对于整个互联网社区,这都是一个非常重大的事件,就像官方网志中所说,“一个时代结束了”。因为从今以后,我们使用BT下载的方式将发生革命性变化。
2.
表面上看,这个事件似乎是经过一系列法律纠纷之后,“海盗湾”做出了妥协,对版权组织的压力屈服了。要知道2009年整个一年,海盗湾都是麻烦缠身。
事情的起源是在2008月1月31日,瑞典检察官对“海盗湾”提起公诉,起诉该网站违反版权法。根据检察官的记录,控告海盗湾的案件已经达到了34起,其中涉及音乐行业的21起、电影行业9起、游戏行业4起。
形势在2009年出现了急剧发展。
2月16日,瑞典法庭开庭审判此案,庭审持续了9天,到3月3日结束。
4月17日,四个主要负责人被判有罪,入狱一年,支付罚金360万美元。四人随后提起上诉,目前此案仍在上诉中。
5月13日,几家唱片公司对海盗湾提出追加起诉,并连带起诉了海盗湾的网络接入商Black Internet。
6月30日,瑞典广告娱乐公司GGF宣布与海盗湾达成协议,将以850万美元的价格收购后者。
7月30日,美国一些主要的电影公司(包括Disney、Universal、Time Warner、Columbia、Sony、NBC和Paramount),加入起诉海盗湾的行列。
8月21日,法庭宣判Black Internet必须立即停止为海盗湾提供网络接入,否则将面临6万美元罚款。
8月24日,海盗湾下线。但是,24小时之内,海盗湾更换了服务商,又重新上线。
9月9日,瑞典证券交易所以“严重违规”为由勒令GGF退市,GGF面临破产压力,导致收购海盗湾协议流产。
10月5日,由于反盗版组织的压力,海盗湾的新网络接入商NForce切断网线,海盗湾再次下线。
10月6日,海盗湾将服务器搬入荷兰,在一个建在废弃的北约军事基地中的机房重新上线。
11月17日,海盗湾宣布永久性关闭所有Tracker服务器,此时距离它成立刚好满六年。
3.
难道“海盗湾”真的要“弃暗投明”,做一个顺服的“良民”吗?
不,真正的反抗者永远不会向腐朽的旧势力妥协,不会在金钱和权势面前低头。他们只会改变战斗的方式,继续抵抗下去。
“海盗湾”是这样解释为什么要关闭Tracker服务器的:
Now that the decentralized system for finding peers is so well developed, ...the era is no longer up2date. We have put a server in a museum already, and now the tracking can be put there as well.
去中心化的下载模式已经非常成熟了,……tracker模式过时了。我们已经把一台服务器送入了博物馆,现在是时候将旧的下载模式也送进博物馆了。
这就是说,海盗湾认为,关闭Tracker服务器只是因为它过时了,有更好的技术出现了。海盗湾为什么这么说呢?Tracker模式真的过时了吗?
4.
为了说清楚这个问题,我们必须了解传统的BT下载模式是什么样的,以及Tracker服务器到底起到什么作用。
请回忆一下,你是如何使用BT下载的。
首先,你从浏览器中找到你感兴趣的内容,下载相应的torrent文件。然后,你用一个BT下载客户端软件,打开这个文件。这时,客户端软件就会根据torrent文件中的网址,自动连接Tracker服务器,从它那里接收到其他正在下载该文件的人的网址名单。下一步,软件就一一与名单上的网址取得联系,从他们那里获取文件的片段,直到整个下载完成。
从这个过程中,我们可以看到,Tracker服务器是整个BT下载的灵魂,文件可以不存在,但是Tracker服务器却不能不存在。要是连不上它,BT下载根本没法启动,因为你无从知道,找谁索要文件。就是由于这个原因,Tracker服务器成为了版权组织打击的重点。他们的想法很明确,只要除掉了Tracker,BT下载就完了。他们的理由是,虽然Tracker本身不传递内容,但是为传播盗版提供了便利,是犯罪的协助者。更何况,Tracker服务器的网址是公开的,很容易找到它的所有者,逃都逃不掉。
在这种形势下,Tracker提供者的日子都很难过。海盗湾是世界排名第一的Tracker提供者,它已经在被追杀了。排名第二的Demonoid从今年9月15日起,就一直处于维护状态,不知道何时重新开放。其他的Tracker提供者基本上也是在法律诉讼的阴影下度日。那些不提供Tracker服务,只提供torrent文件索引服务的网站,比如Mininova、Torrentz、isoHunt,日子稍微好过一点。但是明摆着,版权组织收拾完Tracker以后,就要收拾它们了。比如,今年8月,Mininova就在一场官司中败诉,荷兰法官判决,该网站必须移除所有侵权内容的torrent文件。
5.
既然,Tracker服务器在法律上很难立足,那么有没有办法,在不使用Tracker的情况下,依然使用BT下载呢?
2002年,纽约大学的两个教授Petar Maymounkov和David Mazières发表了一篇论文,提出了一种真正去中心化的“点对点”下载模型,他们把它叫做Kademlia方法。Emule率先在软件中支持这种方法,KAD网络就是这样来的。到了2005年,BT软件也开始跟进了。目前,所有主流的BT下载客户端软件都支持这种方法。在BT下载中,这被叫做DHT协议(Distributed hash table,分布式哈希表)。
为什么有了DHT协议以后,就不再需要Tracker服务器了,真正实现了去中心化的点对点下载?
根据我对这个协议有限的理解,它是这样做的:
每一台加入BT下载的计算机,都被称为一个节点(node),有一个自己的ID。这个ID是一个哈希函数值,通过对要分享的文件内容或它的元数据进行哈希运算而得到。这就是说,如果两台计算机正在下载同一个文件,那么它们的ID应该是彼此相似的。于是,每一台计算机就通过寻找与自己相似的ID,来找到自己可以与之交换数据的其他节点。
DHT协议的另一个巧妙之处在于,每一台计算机只保留自己附近的一部分节点信息。因此,为了得到更多的节点信息,就必须采用接龙方式,在一个个节点之间跳跃,逐步得到全网的节点分布图。这种信息获取方式,就保证了整个网络没有单个的中心,即使一个节点下线了,依然可以通过其他节点来获取文件,因此也就不需要Tracker服务器来告诉你,其他节点在什么地方了。
我对这个协议有一个细节还不是很清楚,我不知道,当BT下载刚刚启动的时候,如何获得第一个外部节点的位置?需不需要有人告诉你,你首先应该去找谁?如果需要的话,那么这个协议或多或少还是有一个中央服务器的。但是,如果不需要的话,那就真的是纯粹的去中心化的分布式下载协议了。
现在所有主流的BT下载客户端,都支持DHT协议,也就是说,它们都能在没有Tracker的情况下完成下载。事实证明,它们不仅能完成,而且还能完成得很好!海盗湾和Demonoid的Tracker服务器都已经关掉了,但是如果你使用它们以前的torrent文件,依然能够完成下载。为什么?这就是DHT协议在发挥作用啊。所以,正是由于DHT可以取代Tracker,海盗湾才会宣布放弃Tracker模式。
6.
让我们看看,现在在海盗湾上,如何使用BT下载。
如果你细心观察的话,你会发现在每一个文件后面,现在都有一个磁铁标志。点击以后,会打开一个地址,这被叫做magnet URI。
举例来说,今天的热门下载文件是Inglourious.Basterds.DVDRip.XviD-iMBT.avi,按照以前的方式,我们需要下载它的torrent文件,然后才能下载这部电影本身。但是,在新的模式下面,我们不需要下载torrent文件,我们只需要知道它的magnet URI,就可以了。只要把这个地址告诉下载软件,软件就会开始自动下载。这和emule下载非常相似,只需要一个资源定位信息,其他都不需要。
Inglourious.Basterds.DVDRip.XviD-iMBT.avi的magnet URI如下:
magnet:
?xt=urn:btih:60c423137f453492ca34c2d69f6f573408dca35a
&dn=Inglourious.Basterds.DVDRip.XviD-iMBT.avi
&tr=http%3A%2F%2Ftracker.publicbt.com%2Fannounce
分解一下这个网址:
magnet:协议名。
xt:exact topic的缩写,表示资源定位点。BTIH(BitTorrent Info Hash)表示哈希方法名,这里还可以使用SHA1和MD5。这个值是文件的标识符,是不可缺少的。
dn:display name的缩写,表示向用户显示的文件名。这一项是选填的。
tr:tracker的缩写,表示tracker服务器的地址。这一项也是选填的。
简单说,只要知道magnet:?xt=urn:btih:60c423137f453492ca34c2d69f6f573408dca35a这个地址,不用下载torrent文件,也不用再了解其他信息,就能开始BT下载这个文件了。
7.
这样做有什么好处?
显而易见的好处是,整个下载网络的可靠性提高了,每一个节点都是可以被替代的。另一个好处是,审查变得更困难了,因为每次下载的路径都是不一样的,而且每个节点都是动态变化的,导致实际上无法追踪谁在下载。此外,magnet URI只是一个字符串,非常容易传播,根本无法禁止。
因此,从这些方面考虑,magnet URI取代Tracker模式是大势所趋,迟早成为主流的BT下载方式。
根据TorrentFreak的消息,下一步,海盗湾连Torrent文件也不打算支持了,将彻底放弃传统的BT下载模式,只提供Magnet URI。当然,这样一来,BT下载和emule下载就是同一种东西了,因此很可能这两者最终也会统一起来。
更重要的是,我们可以想像,这种模式既然可以安全地、匿名地传播文件,就一定可以安全地、匿名地传播其他东西。当互联网上每一台机器都在自动交换信息的时候,谎言和封锁又能持续多久呢?
8.
最后是几个目前还在运行的Tracker服务器地址,大家可以继续使用,更多的tracker网址请参考Trackon.org(大陆访问者需翻墙)。
* BitTrk
(完)
(author unknown)0827105120887988270917449493551695723987114743465513786385151010817470942192630806967847393341705662050412198825395992370118150922003177532607168187935744189338178415991472712816540639258030750977043916800045736724922663020951255230729922711200370590305937154707919125212026674705009698768382243995130275348781210078829105325641931498393350119458615428442470561608814970715807132206247113608217932830125341133891459366480060971328883790648407645590467106717359055630811503026324571704444788428841156814910828113284327001131872216725526548600387959125277622669007341646927512039910141669936294360964090826606325482384934313126905431407566638151644112242284533921473370258131844244106858345234663279773134981821827324810380302676416828479258803795517994141612710148658880794146328490946048257308398678807355717207596287962124536123446535259600941363130610771152007760851589886130818024830160940648279791464638467966657330602772728598693285239110561301895318518061132384317061405509402594613343908240092040210375343689115781555517596994222982902668500792303421942056339694935403333051343436014664023150802951025632273493772028831658221972328280573510881583405182608223447582059560284025299646470987044131489828904180123006112811967619461226759015778385667135900850898642176239559238115394491265795535543043777742394334990241493504269625150933506687869310461566853003523486837262729350027996117746819310814253496437301670230139529171299238470400058752861676368979204243024763273478198147710025332801667161416175398362289935012647536559983773541rubiks_cube_sandwich.jpg
Announcing the winner of Google Code Jam 2009 - google-codejam | Google Groups
Announcing the winner and champion of Google Code Jam 2009: China's Lou
TianCheng, *ACRush*! He takes home $5,000 and the title of Code Jam
champion!
In second place came China's Qi ZiChao (*qizichao*); and our third-place
finisher was Japan's Iwata Yoichi (*wata*).
You can check out the scoreboard and the problems at:
http://code.google.com/codejam/contest/scoreboard?c=311101
http://code.google.com/codejam/contest/dashboard?c=311101<http://code.google.com/codejam/contest/dashboard?c=311101#>
shadows.jpg
jane street core 0.6.0 has arrived
I've completed the packaging of the new release of (Jane Street) Core, version 0.6.0. Core is (yet another) extended / alternative standard library for OCaml, integrating not only the much needed "everyday functions" but also offering consistent abstractions throughout all stdlib modules (with a lot of inspiration from well-known type classes from the Haskell stdlib), consistent naming conventions (e.g. all functions using exceptions as meaningful return values ends in _exn), and significant syntax extensions.
While I've been thus far an OCaml Batteries Included fanboy, I confess that nowadays I'm more skeptical about its success than in the past, in spite of having contributed a tad of code to it. The reason is simply that the lead of the project is now gone and, more importantly, has done so without having (yet?) clearly appointed/found a new lead. That does not change the fact that David has only to be kudoed for his amount of impressive work on Batteries. Still, as a matter of fact right there is no stable release yet and there is no one that will be taking the project to deliver one, since no one else has stepped forward (yet?).
In this interim the OCaml problems in delivering, on top of an amazing core language, an amazing development platform in which programmers are not forced to reinvent wheels, stand. Core fills such a gap properly. I was preferring Batteries to it due to its more open development process, but in spite of that Core is a pretty damn good stdlib. Long life to Jane Street that currently maintains it
Now, back to the main topic of this post, Debian packages for Core 0.6.0 are now available; you will be able to get it from the main/unstable archive soon (some manual NEW processing is required). In the meantime they can be fetched from my personal APT repository, as usual:
deb http://people.debian.org/~zack/debian zack-unstable/ deb-src http://people.debian.org/~zack/debian zack-unstable/A few noteworthy changes from the past package releases:
-
There is now a new set of packages (libcore-extended-ocaml{,-dev}) that contains Core_extended. It is a new subset of Core, which offers more features on top of Core, but which has more dependencies (most notably Pcre-OCaml) and is declared to be less thoroughly peer-reviewed than Core itself.
-
There is now a separate documentation package (libcore-ocaml-doc) which contains the built ocamldoc HTML API reference for Core and Core_extended.
Note that it is not exactly the same doc that has been recently announced by Jane Street and that is now available on the web. The latter is comprehensive of all other Jane Street libraries (sexplib, bin-prot, ...). I'll be probably packaging that too, but first some licensing problems need to be solved.
Update 18/10/2009: core 0.6.0 and all its components have passed through NEW, they are now available in the Debian archive as usual
日语版九品芝麻官吵架片段
这个一定得贴一下。。。
nfjinjing@gmail.com0096987683822439951308614137371624076666打斗中最脆弱的部分—牙齿
拍片子这些年,苦的累的难的烦的都遇到过,早就不在意了。选择电影这个爱好作为事业,这些都是你所应该而且必须付出的。从92年至今为了拍片受伤是常事,从受伤中慢慢的学会如何保护自己且保护对手,这也是不同于武术竞技而需要学习的新东西。
此次拍摄《苏乞儿》由于是我主演,八爷好像终于遇到可以疯狂增加难度的对象了一样。KO的终结点从没有离开脸部,而且大都是特写镜头,500格的速度来拍摄(比正常速度慢20倍)作假是完全没可能的。
凭借这些年的拍片经验,我早早咬好棉花,等待着最重的一击。当然很多人在这个时候会选择牙套,但是牙套容易穿帮而且外形也会受到影响。棉花这个不起眼的小东西却让我的牙齿完好的还保留到现在。
和我对打的特约演员是美国特种兵出身,在戏中出演我的对手,由于他疏忽了保护牙齿,掉了一颗,他开玩笑的说,牙膏广告是不能接喽。
看来身体上最坚韧的牙齿,在受打击之后却是最脆弱的。所以在打斗中最好保护牙齿的方法就是紧紧的咬住棉花。
赵文卓worst_name_ever.jpg
Insurance
Insurance works if
- You have a sufficiently large population of people at risk of some loss.
- Otherwise, the insurance company can’t get started, since it can’t earn enough in fees to pay off the loss when it happens.
- The loss is large enough that most people are unable or unwilling to take a chance on having it happen to them.
- Otherwise, most people simply self-insure. E.g., most people do not buy insurance for their bikes, because they can afford to buy a new bike if necessary.
- The loss occurs unpredictably.
- Otherwise, the only people who buy insurance will be those who are likely to suffer the loss, and so the insurance company is forced to charge fees commensurate with the loss, violating clause 2.
- The loss occurs to a sufficiently small percentage of the population.
- Otherwise, the insurance company again must charge fees commensurate with the loss.
Health care meets conditions 1 and 2, but fails to meet conditions 3 and 4. As people get old, they predictably require health care. As people get old, they all require health care. Therefore, health case is not amenable to an insurance solution.
There is an aspect of health care which is amenable to health insurance: young and healthy people are unlikely to require much health care, but they are vulnerable to catastrophic events (in the U.S., typically a car crash or similar major accident). Therefore, there is a valid insurance market in providing catastrophic health coverage for the young and healthy. This would cover all health care charges after some large deductible.
However, using “health insurance” to cover routine care, and using it to provide coverage for people who are old and/or sick, simply isn’t insurance. What we call health insurance is in effect a tax on the young and healthy to provide health care to the old and sick. However, it is a very inefficient tax because it is collected by private for-profit companies which have a strong incentive to increase premiums and reduce payouts, and which in turn requires regulation which is paid for directly by taxes. And, of course, it leads to massive social inequity in that sensible preventative health care—i.e., routine doctor and dentist visits—is simply not available for poor people.
There is a role for private enterprise in health care, of course. There is nothing wrong with having private doctors and private hospitals. But private “health insurance” companies really makes no sense.
As an aside, pregnancy raises another set of predictable costs not amenable to an insurance solution.
This argument seems perfectly straightforward to me. The U.S. only uses private health insurance due to a historical accident: wage freezes in World War II led employers to pay for health care as a benefit to attract workers. Why are so many in the U.S. fixated on continuing a scheme which almost by definition can not work?
The bill which recently passed in the house addresses clause 3 above by simply requiring everybody to purchase health insurance. But it does not address clause 4. Since nearly everybody eventually requires substantial amounts of health care, health insurance premiums must be high, or people must find some other way to pay for their health care. That “other way” winds up being Medicare, which is funded by taxes. So how does health insurance help?
And then there is Medicaid. As long as we are not willing to let people simply die in the streets, poor people without health insurance will get their health care from emergency rooms, where it is vastly more expensive. We all pay for that through our taxes. Getting rid of the tax imposed by private health insurance companies, and paying directly for routine medical care for the poor, will actually reduce our overall tax burden.
If we could strike the word “insurance” from all discussion of health care in the U.S., I think our long-term health care needs would be much better met. Unfortunately, the health insurance lobby is large and powerful.
Recent comments
1 week 3 days ago
2 weeks 4 days ago
3 weeks 1 day ago
5 weeks 1 day ago
13 weeks 3 days ago
17 weeks 5 days ago
18 weeks 4 days ago
21 weeks 1 day ago
1 year 4 weeks ago
1 year 4 weeks ago