GAE(google app engine)搭建twitter API注意事项

搭建的教程:

月光的博客:>>

1.可能年代问题很多抢建的都有无法成功的例子
就现在来讲有两个情况:

1.Python ,现在python被墙了,所以下载都成问题
但是目前来看,python版本也成问题,最新版本的不见得能成功!

F:\Google\google_appengine>appcfg.py update gae
Traceback (most recent call last):
File “F:\Google\google_appengine\appcfg.py”, line 68, in
run_file(__file__, globals())
File “F:\Google\google_appengine\appcfg.py”, line 64, in run_file
execfile(script_path, globals_)
NameError: global name ‘execfile’ is not defined

记得把python换成2.5 2.6的就好
下载就可以搜 python 2.6 下载

2. APP不成功
执行:yourid.appspots.com/api/ 放在浏览器里会报
internal server error

这时要用这个办法了(转自):

出现“internal server error”错误,这个看别个说是代码里面有问题,你可以尝试删除code.py里面的下面一段代码:
import socket
import re
ua = web.ctx.environ.get(“HTTP_USER_AGENT”, ‘None’)
if ua.find(‘jibjib’) >= 0:
socket.setdefaulttimeout(60)
elif ua.find(‘zh-CN’) >= 0:
#raise Exception(‘unknown error’)
socket.setdefaulttimeout(2)
else:
socket.setdefaulttimeout(2)

, ,

3 Comments

mysql事务备份

1.http://wasabi.javaeye.com/blog/180162

1. $LinkID =mysql_connect('localhost:3307','root',*******);
mysql_select_db('web_his',$LinkID);
mysql_query("set names utf8");

/* 创建事务 */
mysql_query('START TRANSACTION') or exit(mysql_error());
$ssql1="insert into pf_item values('22','我们','30')"; //执行sql 1
if(!mysql_query($ssql1)){
echo $ssql1.mysql_errno().":".mysql_error()."
“;
mysql_query(‘ROLLBACK’) or exit(mysql_error());//判断当执行失败时回滚

exit;
}
$ssql1=”insert into pf_item values(‘21′,’hell’,'10′)”; //执行sql 2
if(!mysql_query($ssql1)){
echo $ssql1.mysql_errno().”:”.mysql_error().”
“;
mysql_query(‘ROLLBACK’) or exit(mysql_error());//判断当执行失败时回滚

exit;
}

mysql_query(‘COMMIT’) or exit(mysql_error());//执行事务

mysql_close($LinkID);
?>


2.

mysql_query(“BEGIN”);//开始一个事务
mysql_query(“SET AUTOCOMMIT=0″); //设置事务不自动commit
$insert=”INSERT INTO userinfo VALUES (‘aa12′,’aa’,'1′,’aaa’)”;
mysql_query($insert);
mysql_query(“COMMIT”);//非autocommit模式,必须手动执行COMMIT使操作生效
//mysql_query(“SET AUTOCOMMIT=0″);
$insert=”INSERT INTO userinfo VALUES (‘aa20′,’aa’,'1′,’aaa’)”;
$insert=”INSERT INTO userinfo VALUES (‘aa8′,’aa’,'1′)”;
//mysql_query(“COMMIT”);
if(mysql_num_rows==0)
mysql_query(“ROLLBACK”);//非autocommit模式,执行ROLLBACK使事务操作无效
else echo “ok”;
//mysql_query(“CLOSE”);
mysql_query(“SET AUTOCOMMIT=1″);//恢复autocommit模式
$insert=”INSERT INTO userinfo VALUES (‘aa15′,’aa’,'1′,’aaa’)”;
mysql_query($insert);//不需要手动执行COMMIT就可以使事务操作生效

执行BEGIN之后,其作用同set autocommit=0,而且之后设置set autocommit=0或1时无效。所以,为使操作清楚,一般不使用BEGIN。

3.mysql事务与行锁

http://www.611530.com/PC/wangzhan/200910/2220.html

4.

http://hi.baidu.com/cuihu0706/blog/item/1dd6ccb1621c355709230278.html

$handler=mysql_connect("localhost","root","");
mysql_select_db("task");
mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行
mysql_query("BEGIN");//开始事务定义
if(!mysql_query("insert into trans (id) values('2')"))
{
mysql_query("ROOLBACK");//判断当执行失败时回滚
}
if(!mysql_query("insert into trans (id) values('4')"))
{
mysql_query("ROOLBACK");//判断执行失败回滚
}
mysql_query("COMMIT");//执行事务
mysql_close($handler);
?>

5.各种锁的类型:

http://www.d5s.cn/archives/93

6.CI中的事务:

http://xinbituya.blogbus.com/logs/21820416.html

http://codeigniter.org.cn/user_guide/database/transactions.html

,

3 Comments

myssql fulltext 全文索引

参考:http://haka.sharera.com/blog/BlogTopic/1001.htm

mysql当把字段设成fulltext时,就可以使用了,
但有几个问题要注意:
1.对于四个字符以下的字符可以搜不出来:
SELECT * FROM articles
-> WHERE MATCH (title,body) AGAINST (’spa’);

这是因为mysql设置
需要修改配置:
ft_min_word_len 为2或者你想要的字符长度
默认是4

2.对于出现机率太高的可能搜不出来,不太清楚原因:
SELECT * FROM oneword_content where match( name) against (’space’)

试试:
SELECT * FROM oneword_content where match( name) against (’space’ IN BOOLEAN MODE)

, , ,

No Comments

。。。。。。

亲爱的
你有太多的我不了解
亲爱的
我要从今天起读你
亲爱的
。。。。。

2 Comments

双输入对话框CAknMultiLineDataQueryDialog

CAknMultiLineDataQueryDialog 是个很奇怪的方式

如果在模拟器运行正常,但在真机上无法出现的时候,请注意在mmp加上stacksize的选项

如果还是不行,请注意make clean 原来的项目!

1 Comment

WebGame开发笔记

辞掉之前养老的MMORPG的运营工作,开始了新的webgame研发之旅。
由于平时不是太玩游戏,这对我是一次挑战
时间只有两个月,要出一个alpha版本。

1.开发准备
2.开发小组人员配备说明
3.开发思路说明
a)、想直接走霸王硬上弓的线路,即按自己思路搭好架构,参照代码进行DB设计和library开发
发现对小组成员要求太高,
走b)路线
b)全盘阅读代码,笔记下所有疑点,是否成功,有待观察

No Comments

Container中加入切换View视图功能

在目前情况下,自带的MultiView例子中
可以轻松做到切到view1切换到view2,
但是有时我们需要在container中加一些itemlist,切换到 view2的功能,那要怎么做呢?

其实不是太复杂
我们可以在container里的构造函数里加入view的引用,就可以了

可以参考:fepexample的例子,他里面有就一个iFep aFep的引用例子

值得注意的是一个报错:

illegal use of incomplete struct/union/class

这个可能是由于没有 container没有include view的头文件导致的,
尽管Carbide c++ 提示 iView能够调用 View库的函数,切记切记

No Comments

PHP加载OPEN SSL功能

MS是个很麻烦的问题,不简单是从php.ini中去掉

;extension=php_openssl.dll

和把dll复制到c:\windows\system32目录中

你会发现在PHPinfo里,还是看不到openssl的信息。

————————————-一条分隔线————————————-

看这里的文档:

http://www.php.net/manual/en/openssl.installation.php

大意是说:

在Apache加载PHP模式下,加载这两个dll是有顺序,先去Apache的bin下的dll加载,一看真是两个文件名一模一样,就是大小不一样,

换上新的文件,phpinfo又出现OpenSSL了

但是http  request 还是得不到他的信息,真郁闷,最后还是用Curl来解决这个问题

// 初始化一个 cURL 对象
$curl = curl_init();

// 设置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, ‘https://XXXXX/xxx.xxx’);

//SSL验证
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  //如果需要验证的话,设成false
// 设置header
curl_setopt($curl, CURLOPT_HEADER, 1); //如果为1,会打印出来header的

// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

// 运行cURL,请求网页
$data = curl_exec($curl);

// 关闭URL请求
curl_close($curl);

// 显示获得的数据
var_dump($data);

3 Comments

Lightwindow图片大小的BUG

Lightwindow 是个不错的图片浏览库,但有个情况就是在IE下,会出现在图片没有载入完全时,会出现很小一个框的BUG,看不清图片

lightwindow

现在有个解决方案:

老外提供的》》

主要是IE引起的,具体原因要研究一下,但注意不要COPY他的代码

要用原版的:>>>

同样,你也可以下载我这里的:

Lightwindow.js    1217-1239:
// We have to do this instead of .onload
this.checkImage[i] = new PeriodicalExecuter(function(i) {
if (!(typeof $('lightwindow_image_'+i).naturalWidth != "undefined" && $('lightwindow_image_'+i).naturalWidth == 0)) {
this.checkImage[i].stop();
var imageHeight = $('lightwindow_image_'+i).getHeight();
if (imageHeight > this.resizeTo.height) {
this.resizeTo.height = imageHeight;
}
this.resizeTo.width += $('lightwindow_image_'+i).getWidth();
this.imageCount--;
$('lightwindow_image_'+i).setStyle({
height: '100%', width: '100%'
});
if (this.imageCount == 0) {
this._processWindow();
}
}
}.bind(this, i), 1);

换成如下代码:

// We have to do this instead of .onload
var ie = (document.all)?1:0;
this.checkImage[i] = new PeriodicalExecuter(function(i) {
if(ie){ //THE BROWSER IS IE
if ( $('lightwindow_image_'+i).complete && !(typeof $('lightwindow_image_'+i).naturalWidth != "undefined" && $('lightwindow_image_'+i).naturalWidth == 0)) {
this.checkImage[i].stop();
var imageHeight = $('lightwindow_image_'+i).getHeight();
if (imageHeight > this.resizeTo.height) {
this.resizeTo.height = imageHeight;
}
this.resizeTo.width += $('lightwindow_image_'+i).getWidth();
this.imageCount--;
$('lightwindow_image_'+i).setStyle({
height: '100%', width: '100%'
});
if (this.imageCount == 0) {
this._processWindow();
}
//alert('IE has been detected')
}
}
else
{//NOT IE, PROBABLY FF, OPERA, OTHER
//this line works for all other browsers
if ($('lightwindow_image_'+i).complete && !(typeof $('lightwindow_image_'+i).naturalWidth != "undefined" && $('lightwindow_image_'+i).naturalWidth == 0)) {
this.checkImage[i].stop();
var imageHeight = $('lightwindow_image_'+i).getHeight();
if (imageHeight > this.resizeTo.height) {
this.resizeTo.height = imageHeight;
}
this.resizeTo.width += $('lightwindow_image_'+i).getWidth();
this.imageCount--;
$('lightwindow_image_'+i).setStyle({
height: '100%', width: '100%'
});
if (this.imageCount == 0) {
this._processWindow();
}
}
}
}.bind(this, i), 1);

2 Comments

symbian应用程序Uid

RWsSession& ws = iEikonEnv->WsSession();
TInt wgid = ws.GetFocusWindowGroup();
CApaWindowGroupName* gn = CApaWindowGroupName::NewLC(ws, wgid);
TUid aCurAppUid = gn->AppUid();
CleanupStack::PopAndDestroy(gn);

0002

需要从Uid转为十六进制。。。

0003

0001

const TUid KUidIdleApp5 = {0×10005901};

No Comments

Switch to our mobile site