自从分析了开心网成功的秘诀——越堕落越快乐之后,开心网上的好友越来越多,当然可偷的东西也更多了,真是偷菜偷到手软。每天偷菜、偷动物花费了大量的时间,用了几个外挂,一是不知道实现方式,担心帐号被封;二是本地网速的原因,速度仍然不尽如人意。于是利用闲暇时间,自己动手写了一个开心网外挂的在线服务,开心大盗,随时随地,轻轻一点,手到擒来。外挂运行于服务器上,速度比本地运行更快。
开心大盗采用Java版Google App Engine开发,整合了Google的GWT。开源,免费,放心使用!
开心大盗功能:
- 收获自己的菜地
- 偷好友的菜地
- 收获牧场 TODO
- 偷牧场 TODO
- 停车 TODO
- 种菜 TODO
- 买动物 TODO
- 做最赚钱的工作
- 访问朋友买卖,每天获取100块
- 马甲买卖炒作 TODO
2002年就开始参加TopCoder的算法竞赛。当时一周举行两次,每个房间12个人参加比赛,前三名都有现金奖励。有空参加一下,练练算法,给头脑保鲜。
下面总结了一些题目中常用的STL库的用法。
#include <algorithm>
#include <string>
#include <vector>
#include <map>
#include <iostream>
using namespace std;
//递归
int GetN(int n)
{
if (n==1) return 1;
else return GetN(n-1);
}
void TestSTL_main( int argc, char* argv[] )
//void main( int argc, char* argv[] )
{
/******** STL **********/
//string的用法
{
string s = "mmmmm";
string s2("ss22");
s2.insert(2,"kkkkk"); //把"kkkkk"插到s2的第2个位置之前(位置从0开始)
s2+=s+"44444"+'c';
const char *pc = s.c_str();//把string转成C-style的string,以\0终了
const char *ptr1 = s.data();;//把string转成字符串
if (s2[2] == 'k') s2[2]='C';
s+="jkl";
s+='m';
s.push_back('\n'); //把'\n'(换行符)放在s的最后一个位置
reverse(s.begin(), s.end()); //反转
basic_string <char>::iterator str_Iter; //遍历
str_Iter = s.begin();
}
//vector的用法
{
vector<int> v;
v.push_back(8); //向v中插入元素,元素的值是8
int iLen = (int)v.size();
for(int i=0;i<iLen;i++)
{
int k = v[0]; //k==8
}
}
//map的用法
{
map<int, int> mp;
for(int i=0;i<3;i++)
{
mp[i]=i*2; //通过[第一个元素]来访问第二个元素
}
int total = 100;
map<int, int>::iterator it = mp.begin();
for(;it!=mp.end();it++) //遍历mp
{
total+=it->second; //通过iterator it来访问第二个元素
}
cout<<"total="<<total<<endl;
}
//算法
int n = GetN(5); //递归n!=n*(n-1)*(n-2)*…*1
int aa=10,bb=15;
int maxi = max(aa,bb); //最大值
int mini = min(aa,bb); //最小值
int absi = abs(-12); //绝对值
vector<string> v;
v.push_back("hello");
v.push_back("123");
v.push_back("no");
sort(v.begin(),v.end()); //按照字母顺序,把v里面的元素排序
int savei;
sscanf(v[0].c_str(), "%d", &savei); //把字符串“123”转换成数字123
cout<<"savei="<<savei<<endl;
char buf[100];
sprintf(buf,"v[1]=%d",savei); //把内容打印进字符串
cout<<"buf="<<buf<<endl;
}
做了G-Proxy,一个开源免费的HTTPS代理服务器,使用的正是新鲜出炉的Java版Google App Engine。从97年开始使用Java到现在也有12年了,从未感觉Java如此强大。Google的这一步很英明,Sun倒下了,Google接过了接力棒,云端Java会让Java从企业级真正走向web2.0级。任何一个熟悉企业级Java开发的人都可以在1天之内开始云计算的开发,Google一统江湖的日子不远了。
G-Proxy具有的功能:
- 完整的代理服务器功能;
- 自动把获取的HTML文件中的图片和链接,加上代理服务器的网址;
- HTTPS功能,这样可以保护您的数据不被任何人看到;
- 代理服务器不保存任何访问记录,充分保护您的隐私;
- 暂时不支持中文编码;
上网第一周,《Google API大全》已经名列中国互动出版网计算机类的近7日销售排行榜第17位。

Shameless self-promotion
中国互动出版网(China-pub)成立于2000年,是中国最早的一批网络书店,最早主营计算机图书,我买计算机方面图书的首选网络书店。现已扩展到通信、经济管理、数理化、各类专业技术、教育等领域。
算起来,用Google API来开发web系统已经有1年多了。一年前,参加Google开发者大会时的情景还历历在目。各大公司的会议将和讲座参加了很多,但是很少有像参加完Google大会之后这么激动。或许是被Google的创新精神所折服,或许是被Google API的强大威力所感召,不久之后,结合了Google App Engine,Google Ajax Search和Google Gadget的RankRadar Tracking 便诞生了。半年多来,RankRadar系统在Google云计算平台上,顺畅地奔跑着,每天都为用户抓取、保存、展示着数据,轻松应对大数据量的访问。Google平台的强悍可见一斑。
使用了Google API这么久,现在终于有机会把自己的经验分享出来,真是一件很荣幸的事情。我与数位Google公司的一线工程师,还有几位活跃在技术社区的开发者一起合著了《Google API大全:编程·开发·实例》这本书。6月5日,Google 2009 年开发者日大会上,将会正式发布。
我写作的章节如下:
- 第11章 小工具开发——Google Gadgets API
- 第26章 网络广告整合——Google AdSense API
- 第35章 让应用支持桌面搜索——Google Desktop Search APIs
本书书如其名,确实很全,囊括了绝大多数的Google API,既提供了对Google API的全面认识,也让读者很容易的结合示例开发出自己的应用。“学习Google API,与Google一起编织互联网!”站在业界领导者的肩膀上,才能更好的专注于自己的核心业务,把网结好,从而为用户创造更多的价值。好的产品,自己会销售!祝愿读者朋友们使用了Google API,都能开辟出自己的一片天地!
本书相关的链接:
豆瓣
http://www.douban.com/subject/3764948/
配套源代码和相关的说明
http://code.google.com/p/google-api-broadview/
推荐序
http://blog.csdn.net/bvbook/archive/2009/05/31/4227452.aspx
http://bvbook.javaeye.com/blog/398813
作者们的博客
http://www.gaoang.com/archives/125
http://www.cnblogs.com/guanhe/archive/2009/06/01/1493789.html
http://diuera.blogbus.com/logs/40249425.html
视野决定高度,格局决定结局。临渊羡鱼,不如退而结网。好的产品需要不断调整的战略、精美的设计和持之以恒的专注!