GAE应用维护解决方案

很显然我们在版本升级的时候不希望有用户正在操作,更多的是希望升级以后能有一个简短的线上测试。因此我们可能会选择服务中断一定的时间来完成这些任务,当我们在维护的时候,关闭访问,呈现给用户一个维护页面。这个其实称不上解决方案,GAE本身提供了这么一个隐性的功能,利用版本号(version: 0)的差异,使我们可以无缝升级。

application: oops
version: 0
runtime: python
api_version: 1

只是当数据库有变动的时候这种操作就比较危险了,还是提示给用户一个维护页面较安全。因此我做了一个通用的“System is maintenance.”页面,版本号为0,将application: oops改成相应应用的名字,部署到服务器上去,在需要关闭访问的时候切换到这个版本即可。维护和测试人员可以访问http://2.latest.app-id.appspot.com 形式的版本网址进行维护和测试。

下载 [下载没有找到]
-EOF-

HTML5新功能演示


这是一个HTML5新功能的演示文档,几乎包括HTML5所有激动人心的新功能的简介和DEMO。
IE系列浏览器无法浏览,firefox、opera等浏览器只能使用部分功能,如果想100%演示成功,请使用最新版的“谷歌浏览器(Google Chrome)”,建议使用最新版。

中文版演示文档请看此处:http://ioio.name/html5/html5_zh_CN.html
中文原版:http://directguo.com/html5/
英文原版:http://apirocks.com/html5/html5.html
英文镜像:http://ioio.name/html5/html5.html
-EOF-

编辑文件vi命令用法

模式转换:

命令模式下的命令:

//命令	解释
:x	保存之后退出
:wq	保存之后退出
:w	保存文件
:q	退出
:q!	不存盘就退出
:set number	在每行开始显示行数
h	光标左移
j	光标下移
k	光标上移
l	光标右移
0	光标移到本行的开头
$	光标移到本行的末尾
a	在当前位置之后添加
i	在当前的位置前面插入
o	在当前行的下面建一个新行
O	在当前行的上面建一个新行
数字G	跳至第“数字”行(无数字时跳到文件末尾)
数字yy	复制多少行(无数字时复制光标行)
数字dd	删除多少行(无数字时删除光标行)
p	在当前行的下面粘贴
u	撤消上一次的命令操作(可撤销多次操作)
D	从光标位置删除到本行行末
x	删除当前字符
X	删除前一个字符

-EOF-

Win32API之GetProcessTimes范例


API都会调用,放这个例子上来是想说一下程序运行时间,内核时间以及用户时间是怎么一回事。
部分关键的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
GetProcessTimes(hProcess, &ftCreation, &ftExit, &ftKernel, &ftUser);
 
timeCreation = ftCreation;
 
strData.Format("Created at %02d:%02d:%02d", timeCreation.GetHour(), 
               timeCreation.GetMinute(), timeCreation.GetSecond());
 
timeDiff = timeNow - timeCreation;
strData.Format("Elapsed time = %ud %uh %um %us", timeDiff.GetDays(), 
               timeDiff.GetHours(), timeDiff.GetMinutes(), 
               timeDiff.GetSeconds());
 
FileTimeToSystemTime(&ftKernel, &stKernel);
strData.Format("Time in kernel mode = %uh %um %us", stKernel.wHour,
               stKernel.wMinute, stKernel.wSecond);

下载 [下载没有找到]
via codeproject.com
-EOF-