35 个你也许不知道的 Google 开源项目

Google是支持开源运动的最大公司之一,它们现在总共发布有超过500个的开源项目(大部分都是利用它们的API来完成),本文将列举一些有趣的开源项目,其中很可能有不少你不知道的哦。

文本文件处理:

Google CRUSH (Custom Reporting Utilities for SHell)

CRUSH是为命令行或shell scripts处理特定文字数据而制作的一系列工具,这里有指南

C++库和源代码:

Google Breakpad

一个开源的多平台崩溃报告系统。

Google GFlags

Gflags是一个命令行标记的处理库,它可以替代“getopt()”,其内置对C++的支持比如string。指南在此

Google Glog

Glog库可执行应用级的日志,提供基于C++式的日志API,可用于Linux、BSD和Windows。指南见此

Google PerfTools

这个工具可让开发创建更强大的应用程序,特别是那些用C++模版开发的多线程应用程序,包括TCMalloc, heap-checker, heap-profiler 和cpu-profiler。指南见此还有这里

Google Sparse Hash

非常节省内存的hash-map。指南见此

Omaha – Google Update

Omaha,也就是Google Update,它可以保证你的软件随时升级到最新版本,目前很多Windows下的Google软件都是用Omaha升级的,包括Google Chrome和Google Earth,当然你也可以用于自己的应用程序。指南看这里还有这里

Protocol Buffers

Protocol Buffers是一种可扩展编码序列数据的方式,Google在几乎所有内部RPC协议和文件格式都使用了Protocol Buffers。指南见此它可以用于很多语言而且被一些IDE所支持,比如NetBeans

互联网:

Google Code Pretiffy

这是一个Javascript模块和CSS文件,它可以让HTML页面里的部分源码高亮显示,支持C/C++, Java, Python, Ruby, PHP, VisualBasic, AWK, Bash, SQL, HTML, XML, CSS, JavaScript, Makefiles和部分Perl,不支持Smalltalk和所有的CAML。例子见此

SpriteMe – easy “CSS spirtes”

SpriteMe使你可以更轻松的创造CSS Sprites(俗称雪碧……)就是把网站要用到的图片都堆在一张图片里,用CSS控制调用哪个区域。它有一个自己的官网在这里

Redacisaurus

Reducisaurus是一个压缩CSS和JS文件的网络服务,基于YUI压缩算法,运行于App Engine。

JaikuEngine

JaikuEngine是一个运行于App Engine的微博系统,由jaiku.com运营。要查看移动客户端的源码可以看这里这里还有介绍

Selector Shell

Selector Shell是一个基于浏览器的测试工具,它可以让你看到CSS在不同浏览器里的样式,用Javascript写的,你可以在这里测试

Google Feed Server

Google Feed Server是一个开源Atom发布协议服务,基于Apache Abdera框架,允许开发者快速为当前数据源(比如数据库)配置feed。指南见这里这里

Melange, the Spice of Creation

这个项目的目标是创建出一个适合开源贡献流程的框架,比如Google Summer of Code TM (GSoC)项目。使用这个框架你就可以用Google App Engine来运行Google Summer of Code项目,和其它类似项目比如Google Highly Open Participation TM Contest和GHOP。指南见此

NameBench

它可以查找最快的DNS服务器给你的电脑用,在Mac OS X、Windows和UNIX系统下都有命令行也有用户界面可以帮你测试,这是Google工程师用20%自由时间写出来的。

Rat Proxy

一个半自动化的大型被动网络应用安全审查工具,专为精确的探测而优化,文档在此

TopDraw

Top Draw是一个图形生成程序,使用简单的文字脚本,基于JavaScript编程语言,Top Draw可以创造出非常复杂和有趣的图形。支持Mac OS 10.5以上系统,使用XCode开发。

etherpad

开源的EtherPad,这是一个基于网络的实时合作文档编辑器,这个项目主要是为了演示代码而开发,帮助那些想在自己服务器部署Etherpad的人使用,这里有如何安装的指南。EtherPad使用JavaScript、Java和Comet服务器来建造实时协作服务。

Chromium

Chromium是开源版的Chrome浏览器,Chromium的目标是建立一个新一代的强大网络应用程序,它与Chrome有很多不同之处。这里有指导如何在Linux上编译Chromium

V8 Google’s open source JavaScript engine

V8是Google的开源JavaScript引擎,用C++写成,用于Chrome浏览器之上。V8使用ECMAScript的ECMA-262 第三版可运行于Windows XP、Vista、Mac OS 10.5和使用IA-32或ARM处理器的Linux。V8可独立运行也可嵌入到任何C++程序里使用,这里有指南

Chromium OS

Chromium OS是开源版的Chrome OS操作系统,提供快速、简单而安全的网络体验,源码在此

Android

Android是第一个免费、开源而且可完全自定义的移动平台,提供完整的堆栈:一个操作系统、中间件和重要的一用应用,它包含丰富的API可以让第三方开发者开发出强大的应用程序。

MySQL工具:

Google MySQL Tools

各种管理、维护和改进MySQL数据库性能的工具,由Google编写,包括:

  • mypgrep.py:一个类似pgrep的工具来管理MySQL连接
  • compact_innodb.py:可导出和重载所有表格的密集型innodb数据文件

Google mMAIM

mMAIM的目标是对MySQL的监控和分析更简单,且可以和任何环境整合使用。它可显示主/从同步状态,一些性能状态,可以返回大量“show”命令的状态等等。

其它:

Stressful Application Test (stressapptest)

Stressful Application Test试图让来自处理器和I/O到内存的数据尽量随机化,以创造出模拟现实的环境来测试现在的硬件设备是否稳定,Google就在使用它,现在是Apache 2.0许可,这里有介绍安装向导指南

Pop and IMAP Troubleshooter

它用于诊断并解决客户端到邮件服务器的连接问题。

OpenDuckBill

Openduckbill是一个Linux下简单的命令行备份工具,可用于监视文件/目录在有变化后是否标记为备份,并传输这些变化到本地备份目录、远程NFS导出分卷或是用rsync命令导出到远程SSH服务器。见安装向导

ZXing

ZXing(发音类似Zebra crossing)是Java的开源多格式1D/2D条码图像处理库,目的是使用内置在手机上的摄像头拍照并对条码进行解码,而不必与服务器通讯,它被用于Android系统。这里有向导支持的设备列表

Tesseract OCR Engine

Tesseract OCR引擎是1995年UNLV Accuracy测试的前三名之一,在1995和2006年之间它的进展不大,但依然是当前精度最高的OCR引擎。这个源码可读取二进制、灰阶或彩色图片 并输出文字,内置一个TIFF阅读器可读取非压缩的TIFF文件,增加libtiff后也可读取压缩图片。指南问答

Neatx – Open Source NX server

Neatx是一个开源NX服务,类似NoMachine公司商业的NX服务。NX协议比VNX更强大,它们的区别主要在:

  • NX是X11客户端所以不会发送位图
  • NX可兼容X、VNC和Windows版的Remote Desktop
  • NX可缓存数据
  • NX安装简单

另外一个可选的项目可以看看Google的FreeNx

PSVM

它是这个文件的代码,这是一个SVM的“支持所有核心”的版本,可多机并行运行,实例见此

GO

Google开发的新编程语言,谷奥有报道

The Google Collections Library for Java

这是一系列与Java 5以及更高版本有关的库,Google花钱给买过来了。

Google styleguide

每个主流的开源项目都有它自己的向导形式,比如一系列的演示代码。如果这些代码都按照“Style”的形式来演示,会更友好。

via http://www.guao.hk/posts/35-google-open-source-projects-you-probably-do-not-know.html

美国《纽约时报》网络版今天撰文称,尽管Android存在一些不足,但仍在逐渐吸引开发者向这一平台投入资源。


每天仅赚1美元

Android开发者最近在曼哈顿市中心举行了一次非正式聚会,除了冰镇啤酒和热匹萨外,还充斥着许多行话。当然,话题不可避免地转向赚钱。

现年26岁的软件开发者詹姆斯·恩格勒特(James Englert)刚刚发布了他的第一款Android应用。这款应用专门用于显示火车时刻表,在被问及收益时,他给出的数据是:“每天1到2美元。”

房间里顿时爆发出笑声。“这是笔相当好的收益。”他对众人的喧闹回应道。

其他开发者可能会对恩格勒特的遭遇感同身受,因为开发Android软件尚未成为一门赚钱的生意。尽管Android销量飙升——谷歌表示Android手机目前的日激活量达到20万部——但与苹果及其欣欣向荣的应用商店相比,Android应用市场仍然缺乏活力。

改善支付环境

在专家和开发者看来,之所以出现这种状况,部分原因要归咎于Android Market——占据主导地位的Android应用商店——存在一些蹩脚的功能,从而给那些希望快速购买应用的手机用户带来麻烦。对于一名新手而言,由于Android使用Google Checkout而非PayPal等知名的网络支付工具,因此许多Android开发者不得不免费提供应用,并依靠移动广告来负担成本。

“这并非最好的即兴购买环境。”Larva Labs联合创始人马特·赫尔(Matt Hall)说,这是一家专门为Android、iPhone和黑莓开发游戏的企业。“很难想象会有一款应用,让你愿意坐在那里,并输入信用卡信息。”

但是随着Android的热度持续激增,而谷歌也采取了一系列消除障碍的措施,使得这种趋势开始改变。例如,Android Market最近在显示应用价格时,已经开始以用户而非开发者所在地的货币为准。

谷歌工程副总裁、Android主要架构师安迪·鲁宾(Andy Rubin)说:“我们看到的仍然是1.0版本的生态系统。我们每天都在考虑,如何将阻力降到最小,让生态系统随着平台一同发展。”

鲁宾表示,目前有27万开发者为Android开发软件,Android Market目前可供下载的应用已经达到10万款,较今年3月的数字翻了3倍。

开发者也能够感受到这种变化。“以前我跟别人说我为Android开发应用时,他们会用异样的眼光看着我,就好像我长了三个脑袋一样。”说这话的是迈克尔·诺瓦克(Michael Novak),他在移动广告软件公司Medialets负责Android开发,并且参与组织了一月一次的“纽约Android软件开发者见面会”(New York Android Software Developers Meetup)。“当时距离现在才一年。而如今,所有人都知道Android了,它的热度已经激增。”他说。

平台分化严重

Android的成功原因或许正是其最大的发展障碍。

由于谷歌将Android免费提供给多家手机厂商,因此市面上存在数十款不同的Android兼容设备,但每一款都有着不同的屏幕尺寸、内存容量、处理器速度以及图形性能。一款能够在摩托罗拉Droid手机上完美运行的应用,在宏达电的Android手机上使用时,或许会出现问题。而与此同时,iPhone开发者只需要考虑iPhone、iPod Touch和iPad等少数几款设备。

当芬兰软件开发公司Rovio准备将热门iPhone游戏《愤怒的小鸟》(Angry Birds)引入Android时,该公司花费了数月时间在多款设备上进行测试,以确保其正常运行。

“分化太严重了。”Rovio的程序员彼得·维斯特巴卡(Peter Vesterbacka)说,“比起为iPhone这样单独的一款设备开发应用,这种挑战要大得多。”

但他表示,从最终结果来看,这种麻烦还是值得的。《愤怒的小鸟》登陆Android平台首周的下载量就突破300万次。通过0.99美元的单价,Rovio借助iPhone版《愤怒的小鸟》获得了数百万美元的收入。尽管如此,该公司还是选择免费推出附带广告的Android版本。之所以采取这种方式,部分原因在于Android Market只对32个国家和地区开放,而苹果应用商店则对90个国家和地区开放。Rovio担心那些无法购买该应用的用户会使用盗版产品。

但开发者还表示,或许根本无法通过Android收费应用获利。

谷歌表示,希望最终向Android系统中引入交易功能,让用户可以在应用内进行购买,帮助开发者赚钱。

优势犹存

开发者也认为,相对于苹果的严格控制,自由的Android平台的确是一个选择。Android开发者拥有更多的自由,可以对地址簿以及基本界面等手机本身的功能进行修补,而苹果却很少允许这种行为。不仅如此,要想进驻应用商店,任何应用都要经过苹果的审查,而谷歌则没有这种限制,完全依赖Android用户自己对恶意或侵犯性应用进行标记。

诺瓦克说:“你花好几个月编写的软件很可能会被苹果否决。对开发者而言,最大的奖励就是将软件尽快发布。相比而言,其他所有事情都是值得的。”

谷歌与苹果的另外一大不同在于,谷歌不会针对SDK(软件开发套件)向开发者收费。

开发者并未因为Android而彻底放弃iPhone。相反,他们表示,会逐渐将更多资源转向Android,以期通过这些努力获得回报。

他们还指出,相比于苹果应用商店30万款应用的规模,要想在Android的10万款应用中脱颖而出,更为容易。

“苹果应用商店已经拥挤不堪,而且已经饱和。”埃里克·迈拓伊斯(Eric Metois)说,他是一名独立科技咨询师,业余时间为iPhone和Android编写应用。

迈拓伊斯的首款iPhone应用iChalky配备了一个火柴人舞者。自2008年12月发布以来,该应用已经售出了30万份。但他开发的第二款名为Sparticle的游戏却没有获得这种成功。

“我花了500个小时在我的第二款iPhone应用中,但几乎一无所获。”迈拓伊斯说。在对为何推出Android版iChalky进行解释时,他说:“在另外一个新兴的平台上,iChalky有机会获得类似的成功。”

拓展更多设备

分析师表示,如果谷歌希望Android获得成功,就需要确保开发者不会对其失去耐心——尤其在新的竞争不断加剧之际,包括微软Windows Phone 7的发布,以及iPhone不可避免地在美国市场与AT&T以外的其他运营商展开合作。

鲁宾并不担心竞争对手阻碍Android的发展势头,因为他相信,Android今后将突破手机领域,并拓展到平板电脑以及其他一些尚未被设想出来的产品中。

“Android的前景并不限于一种设备,”鲁宾说,“我们将看到Android被用于一些未曾设想的设备。”(书聿)

http://tech.sina.com.cn/t/2010-10-25/12004785265.shtml

解决wordpress 3.0.1中Gravatar头像无法正常显示问题


在v2ex中看到个帖子“悲剧的Gravatar”, 说是Gravatar被墙了, 我查了下我的博客中的头像好好的, 看到marguin的回复(“没有被墙,不过在WordPress 3中,默认的代码有问题,URL有变化所致”),查了下装的wordpress 3.0.1的博客, 头像真不显示了

解决办法:
在根目录的wp-includes文件夹找到pluggable.php文件, 并按下面的代码修改(在1645行)
[cc lang=”php”]
//if ( is_ssl() ) {
// $host = ‘https://secure.gravatar.com’;
//} else {
// if ( !empty($email) )
// $host = sprintf( “http://%d.gravatar.com”, ( hexdec( $em
ail_hash{0} ) % 2 ) ); // else
// $host = ‘http://0.gravatar.com’;
//}

if (is_ssl()){
$host = ‘https://secure.gravatar.com’;
} else {
$host = ‘http://www.gravatar.com’;
}
[/cc]

感谢marguin的分享:解决WordPress升级到版本3后Gravatar头像无法显示的问题

极客定义

目录

极客的起源及发展
极客的特征
极客各个级别范例
国外极客发展史
展开
编辑本段
极客的起源及发展

“极客[1]”一词,来自于美国俚语“geek”的音译,一般理解为性格古怪的人。数学“极客”大多是指,并不一定是数学专业但又对数学等技术有狂热的兴趣并投入大量时间钻研的人。所谓的“分形”本意是指“破碎、不规则”,在“分形几何”中指的是不规则复杂现象中的秩序和结构。因此,“分形几何”就是研究无限复杂但具有一定意义的自相似图形和结构的几何学。所谓“分形艺术”图就是利用数学方法通过计算机程序进行无数次运算最终形成的分形艺术图案。

又译作“奇客”。以前是对那些残忍的马戏表演者和令人厌恶的不食人间烟火的计算机癖的老式称谓,用以形容他们的自由思想和离经叛道的计算机嬉皮士的形象。很长时间在西方文化里geek的意思一直偏向鄙意,在PC革命初期,Geek开始衍生为一般人对电脑黑客的贬称,他们具有极高的技术能力,对计算机与网络的痴迷有时会达到不正常的状态。但如今,随着互联网的日益普及,那些一直被视为怪异者的边缘人物,突然被历史之手推向舞台的中央,转变成为社会主流。Geek们自己却对“局外人”身份感到骄傲,宗教一样强烈信仰科技的力量。

现在国外普遍定义Geek是指一些喜于业余时在电脑网络上与人交往的人,一般认为在电脑和网络上进行生活的人就是Geek。但是和工作中必须使用电脑的人不同,Geek需要把他们的休闲时间也在电脑中度过,Geek也可能是电脑高手也可能不一定是电脑高手,不过大部分都对电脑有莫大的偏爱,他们可能会对一切新鲜玩意儿都弄来搞搞。他们每天打开他们的计算机蜂拥进因特网去追求他们自己的地下文化。Geek是新的精英亚文化群,是一群爱好新事物的、以技术为中心的、同时对社会怀有深刻不满的地下人类。Geek们是那些依靠计算机技术结合成的社会性人群,他们把大量社交时间花费在电脑网络上,他们的娱乐是每天到处寻找新奇的东西,比如各种软件,书籍,MP3,电影之类的,他们在各种BBS里发表代表个人观点的帖子,有些高级Geek则以编写共享软件为乐事。

极客的特征

正常人总是觉得geek如此沉迷于虚幻世界中是一件很不理智,极度幼稚的事情,故而看不起geek。Geek们在网上则是称霸天下,网络原是为交流而制造的工具,Geek们只有在Geek的社会里才有自己的活力,Geek们更愿意像谈论现代神话一样谈论那些超级英雄,而不是议论上周无聊的足球联赛里无聊的比分。geek们在网上 bbs如鱼得水,可以尽情的geek out, 交流,发泄,创造,享受着他们自己的狂热。

并不是天天坐在电脑前的人就是Geek;一个打字员可能一天八小时都坐在电脑旁,但他可能下班后就变成了一个徘徊在床和厕所之间的孤独的普通人,他不是“计算机怪人”,他只是个计算机用户。大多数Geek都是计算机科技的狂热爱好者。

Geek的社会其实是个受教育程度相当高、超信息化的“地下社会”。这个社区能够接受各种各样的人,只要这个人能够接入网络并善于使用它。你无法仅从外表上来区分一个人是否是Geek。不过Geek和 Nerd不同,这也是Geek更有影响力的原因。Nerd是指技术尖子,读书狂,不参加社交活动的人。而Geek把自己定义为不止是一个技术人员或者电子热爱者,他们有自己更高的理想,希望创立一个更为理想的社会,如果不是在目前的现实生活中,也至少要在Internet上。他们把Internet视为他们的世界,普通人很难进入的世界。他们试图保护这个“纯洁”的新世界,他们反抗任何商业性的东西进入,他们的目标可能就是一个信息绝对自由的电子空间。Geek们思想开放,对于“非标准”的生活方式充满敬意。

Geek信条:需要的是原创和新奇,盲目的跟从和愚昧是不可原谅的。

极客各个级别范例

希望成为者/入门Geek
小时候就喜欢把东西拆了,希望知道其工作原理;对于电子设备一直有兴趣;对电视遥控器感到非常好奇;能够对家里的VCR编程(定时录像等);喜欢自学使用各种东西;对于学校提供的电脑上机时间总是感觉不够;

中级Geek
喜欢告诉别人你昨晚如何用了3个小时搜索WEB;有一些朋友会一直问你有关电子的任何问题,而且相信你给出的任何答案;已经写出了你自己的电脑程序;使用Notepad或者VI写一些回信; 知道如何使用文本编辑器编写HTML;从来不关电脑;

高级Geek
喜欢告诉别人你是如何成功的启动了计算机,或者,重新给遥控器编程;不相信任何电子设备的使用手册;相信任何东西都能被修好;购买昂贵的电子玩具,以期能够把它和其他设备结合起来,但是往往适得其反;知道从注册域名到Internet如何工作的所有知识;你的电脑的显示器比你的电视机的屏幕还大(如果你有电视机的话);有超过一台的电脑,而且都一直开着;家里有局域网;

超级Geek
相信科技的力量,追求新鲜与热辣的科技;用不完的想象力与超高的动手能力;对知识有一种源自内心的渴望同时能够快速的分析新的信息,找到其中关键的或者对自己有影响的部分并进行实际应用。
GEEK不单单是电脑方面的,GEEK无所不在

国外极客发展史

穿着内衣坐在电脑前,直到凌晨,一如既往;情愿坐在电脑前吃方便面,也不愿出去约会;能够修好任何东西;打字比你思考还快;比和人们在一起花更多的时间上网;不能理解为什么有些人不能从头到尾装起一台完整的电脑来;不相信有图形的WEB浏览-Lynx(Lynx是个纯文字网页浏览器,是在具有强调文字功能的终端上使用的。)始终是最好的选择,也是唯一的需要;使用文本编辑器-而不是文字处理软件-来回所有的信件;从不,决不,绝对不穿西装;相信只有Sucker才付费-免费网络连接,自由软件,用IP打电话。

在国外,Geek伴随着电脑和互联网技术的发展,呈现出与科技高度结合的特征,这些Geek一般是受过教育的、知识丰富的小群体。因为这种技术Geek的风行,在上个世纪的最后二、三十年中,许多与电脑和互联网相关的技术或商业传奇都刻下了Geek的烙印,比如微软的Bill Gates、比如Linux之父Linus Torvalds等等。

Wikipedia(维基百科)堪称一部网络时代的超级知识宝典,它对Geek的定义已经逐渐从早期痴迷技术发展到现在痴迷于与技术、想象力、创造力相关的一切活动,这也许和它的创始人也自称为Geek有关。维基的定义在很大程度上反映出国外“群众”意识的变化,那就是Geek不再特指某种技术天才或技术鬼才,他们不再自我封闭、游离于主流人群之外,而是用技术手段、创新能力和源源不断的想象力不断地将更新更好的生活方式、娱乐方式推向高潮、推向顶点。

不管是看的Youtube ( Chad Hurley)、玩的DoomIII (John Carmack)、听的Napster ( Shawn Fanning), 都诠释了新一代Geek的生存状态,那就是你可以不玩,玩就要玩到最好。

另:现在PC界也将一些类“黑客”的电脑安全高手称为极客。美国战略司令部所组建的黑客部队中就有不少人是极客。

i极客
有这样一群人,他们狂热地热爱各种IT产品、追求新奇潮流、爱钻研折腾、甚至有点爱好上的偏执狂,同时又乐于与人分享,他们全身都充满了“极客”的细胞。i极客是由国内一线主流IT垂直网站IT168(盛拓集团旗下网站)在2010年推出的重要产品,旨在通过“分享”极客的点滴,来帮助用户更加完美地使用产品,改善用户的生活。一经推出,i极客便迅速获得了网友的喜爱,并且获得了网友的巨大支持。

如果你对各种新奇IT产品和产品相关的各种新奇玩法、甚至是极端玩法非常感兴趣,那你完全可以将i极客收纳入浏览器的收藏夹。因为,对于极客们而言,访问i极客犹如白领每天必看团购网站、任何人每天必上QQ一样重要。