sgs client + server的解决方案
------------------------------------------------------------------------------------------------------------------------------------------------------------------
有一篇文章总结了一些Google比较著名的开源项目(该文全文已附在本文最后),本文在那篇文章基础上又添加了几个开源项目。
googletest
一个很著名的C++单元测试框架,简称gtest,有丰富的文档可以参考。另外一些比较著名的C++测试框架有CppUnit, CxxTest, boost::test。
googlemock
另外一个C++单元测试框架,在写单元测试用例,经常需要编写模拟对象来模拟测试单元的“上游”和“下游”程序逻辑和环境,googlemock就是用来mock这种对象的。据说google内部超过100个项目在使用它,可以和googletest一起使用
google-url
解析URL的一个类库
google-coredumper
该库支持在程序运行的时候随时生成coredump文件,而不同停止程序。
gwt-google-apis
提供了一系列google API
closure-compiler
是一个优化和编译javascript的工具,常用来分析和解析javascript,被google search, google doc,gmail等项目广泛使用。
closure-templates
一个模板工具。可以自己定义模板,并使用javascript或者java语言辅助生成HTML和UI元素,从而将程序逻辑层和展示层分开。被用于gmail和google doc等项目。
---------------------------------------------------------转载全文--------------------------------------------------------
Google是支持开源运动的最大公司之一,它们现在总共发布有超过500个的开源项目(大部分都是利用它们的API来完成),本文将列举一些有趣的开源项目,其中很可能有不少你不知道的哦。
Google CRUSH (Custom Reporting Utilities for SHell)
CRUSH是为命令行或shell scripts处理特定文字数据而制作的一系列工具,这里有指南。
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可以让第三方开发者开发出强大的应用程序。
Google MySQL Tools
各种管理、维护和改进MySQL数据库性能的工具,由Google编写,包括:
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更强大,它们的区别主要在:
另外一个可选的项目可以看看Google的FreeNx。
PSVM
它是这个文件的代码,这是一个SVM的“支持所有核心”的版本,可多机并行运行,实例见此。
GO
Google开发的新编程语言,谷奥有报道。
The Google Collections Library for Java
这是一系列与Java 5以及更高版本有关的库,Google花钱给买过来了。
Google styleguide
每个主流的开源项目都有它自己的向导形式,比如一系列的演示代码。如果这些代码都按照“Style”的形式来演示,会更友好。