«

»

用微信免费查工商银行余额

快抢沙发

突然想到好多朋友估计还不知道,所以特将它写出来。
先关注”中国工商银行电子银行”的微信公众帐号.
工商银行
建议不要按照第一条消息给的“XXYE#卡号或帐号”,而是点击菜单里面的“帐号服务”–“查询余额”,然后收到提示输入“#卡号或帐号”,自行输入自己的帐号
工行
然后输入“#密码器动态密码”,有电子密保器的朋友就可以通过自己的密码器获取这6位数字,按要求回复即可,以后就可以直接用“查询余额”借口了。到时候大家就可以省掉开通工行的工行信使了,。节省掉每月的2元RMB.利用微信可以随时查询余额,但是有资金变动(工资到账,消费)的时候不会有提示,其实平时多查查余额也就行了,效果差不多,还不花钱哦。
工行

2014.02.25
H
阅读全文...

sae-eclipse插件加新浪sae进行java项目开发

快抢沙发

1.首先当然是下载eclipse和sae-eclipse插件喽,sae-eclipse的下载地址.
2.在eclipse新建一个Dynamic Web Project
sae-eclipse,然后再在WebContet下新建一个.jsp文件,下面就以将NewFile.jsp上传到新浪sae为例作为讲解.
sae-eclipse,右键菜单里面找到Sina App Engine Java下面的File Commit
sae-eclipse,如上图,分别填上app名字,安全邮箱,安全密码,版本号.Operation下面有add和delete两个操作.默认的空操作应该算是update操作.

2014.02.25
H
阅读全文...

新浪sae服务器故障,svn无法正常工作

快抢沙发

sae
在未收到官方任何预告的情况下,svn上传代码失败,无法通过svn部署代码.

2014.02.21
H
阅读全文...

PHP模拟post提交数结的三种方法

快抢沙发

用PHP来模拟post提交数据的方法整理,一般有三种方法,file_get_contents、curl和socket。
写了个公用函数,专门用来打印post数据:

<?php
function pr() {
    $params = func_get_args();
    foreach ($params as $key => $value) {
        echo "<pre>";
        print_r($value);
        echo "</pre>";
    }
}

先写一个post.php,用来接收post数据并打印出来:

<?php
require dirname(__FILE__).'/function.php';

if (isset($_POST) && !empty($_POST)) {
    pr($_POST);
} else {
    pr("NO POST DATA!");
}

下面是用file_get_contents来模拟post:

<?php
require dirname(__FILE__).'/function.php';

function file_get_contents_post($url, $post) {
    $options = array(
        'http' => array(
            'method' => 'POST',
            // 'content' => 'name=caiknife&email=caiknife@gmail.com',
            'content' => http_build_query($post),
        ),
    );

    $result = file_get_contents($url, false, stream_context_create($options));

    return $result;
}

$data = file_get_contents_post("http://www.a.com/post/post.php", array('name'=>'caiknife', 'email'=>'caiknife@gmail.com'));

var_dump($data);

很简单是吧?再来看看curl模拟post:

<?php
require dirname(__FILE__).'/function.php';

function curl_post($url, $post) {
    $options = array(
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER         => false,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $post,
    );

    $ch = curl_init($url);
    curl_setopt_array($ch, $options);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

$data = curl_post("http://www.a.com/post/post.php", array('name'=>'caiknife', 'email'=>'caiknife@gmail.com'));

var_dump($data);

最后是用socket来模拟post:

<?php
require dirname(__FILE__).'/function.php';

function socket_post($url, $post) {
    $urls = parse_url($url);
    if (!isset($urls['port'])) {
        $urls['port'] = 80;
    }

    $fp = fsockopen($urls['host'], $urls['port'], $errno, $errstr);
    if (!$fp) {
        echo "$errno, $errstr";
        exit();
    }

    $post = http_build_query($post);
    $length = strlen($post);
    $header = <<<HEADER
POST {$urls['path']} HTTP/1.1
Host: {$urls['host']}
Content-Type: application/x-www-form-urlencoded
Content-Length: {$length}
Connection: close

{$post}
HEADER;

    fwrite($fp, $header);
    $result = '';
    while (!feof($fp)) {
        // receive the results of the request
        $result .= fread($fp, 512);
    }
    $result = explode("\r\n\r\n", $result, 2);
    return $result[1];
}

$data = socket_post("http://www.a.com/post/post.php", array('name'=>'caiknife', 'email'=>'caiknife@gmail.com'));

var_dump($data);

这三种方法最后看到的内容都是一样的,但是在是用socket的时候,发送header信息时必须要注意header的完整信息,比如content type和content length必须要有,connection: close和post数据之间要空一行,等等;而通过socket取得的内容是包含了header信息的,要处理一下才能获得真正的内容。

转载原文点此进入

2014.02.20
H
阅读全文...

百度开放云BAE下周四扩容

快抢沙发

今天突然想起来去百度开放云看看,现在还能申请创建应用引擎不,自从上次删除后,现在将应用全部调整应用到了新浪云SAE上面去了,但是BAE的速度比SAE还是要快些,所以还是有点恋恋不忘。之前一直是收到通知说“BAE资源不足,正在扩容中,请等候下一批”,今天收到的通知是“BAE资源不足,正在扩容中,请等候下周四”。
BAE扩容
还是无法创建,还好的是这次给出了具体时间–下周四,也就是2月27日。到时候早点申请吧。

2014.02.18
H
阅读全文...

windows平台Emacs单实例原理、设置及右键菜单的添加

快抢沙发

鉴于Emacs那神奇的启动速度,如果像Vim一样,每打开一个文件都启动一个Emacs的话,那肯定是无法忍受的,于是,Linux下可以使用emacs –deamon来启动Emacs作为一个守护进程,但该参数不支持windows平台(虽然说在windows平台使用Emacs是一件感觉很别扭的事情),估计是使用了windows平台没有的特性,具体使用的什么特性我并没有研究。

但是windows平台还是可以实现只启动Emacs单实例的,这样每次打开文件时用这个已经存在的实例打开即可,避免等待Emacs那尴尬的启动速度。其原理是启动一个Emacs实例作为server,监听某个端口,然后在需要打开文件时,利用client连接那个端口,将需要打开的文件路径等信息传递给server,然后作为server的Emacs收到路径信息后,找到文件并打开它。

 

要将Emacs启动为一个server,需要在Emacs的配置文件中加入以下命令:

(server-start)

这样,使用runemacs.exe启动Emacs后,在Home目录(HOME目录的设定及具体值请参看这里)的.emacs.dserver目录下会生成一个server文件,里面记录了Emacs实例的IP地址及端口号等信息,在退出Emacs后,这个文件就会被删除。

 

现在server已经起来了,下面就可以用client连接server了,在Emacs安装目录的bin目录下会有emacsclient.exe和emacsclientw.exe两个exe文件,前者基于命令行,后者有图形界面,使用client来连接server打开文件的命令如下:

emacsclientw.exe --no-wait --alternate-editor="runemacs.exe" "~/.emacs"

其中–no-wait参数告诉client不要等待Emacs server返回,而是直接退出;–alternate-editor参数指定一个fallback的编辑器,在server不存在的时候就使用该编辑器来打开文件,在这里指定为runemacs.exe,这样就可以在Emacs没运行的情况下运行Emacs并使用之进行编辑,第三个参数是要打开的文件,这里指定为HOME目录下的配置文件.emacs。在运行这个命令后,emacsclientw.exe会去<HOME>.emacs.dserver目录下找到server文件,取出里面的IP地址和端口号,连接之,将”~/.emacs”传过去,然后作为server的Emacs打开该文件,因为有–no-wait参数,所以client不会等作为server的Emacs返回结果就直接退出了;当然如果在<HOME>.emacs.dserver目录没有找到server文件的话,client就会调用runemacs.exe来打开该文件。

====================================我是自豪的分界线====================================

情况来了,我们不可能在每打开一个文件的时候就去命令行输入这么大一串东西,况且路径每次都有变化,所以,将“Edit with Emacs”加入右键菜单是不二选择,于是,在注册表中建如下键值:

HKEY_CLASSES_ROOT*shellEdit with Emacscommand

并将其default的值设为:

"pathtoemacsclientw.exe" --no-wait --alternate-editor="pathtorunemacs.exe" "%1"

上述命令需要把emacsclientw.exe和runemacs.exe的路径换成实际路径,而后面的%1则代表要打开的文件。最好把所有的带有路径的部分都加上引号,以防止空格的”骚扰“。如下图:

右键菜单的效果如下图:

转载原文点此进入

2014.02.10
H
阅读全文...

emacs常用指令(快捷键)

快抢沙发

不重动 Emacs 让 .emacs 配置文件生效
有四个函数可以做到:eval-last-sexp,eval-region,eval-buffer 和load-file
M-x eval-last-sexp 使.emacs中光标前的那一条语句立刻生效。
M-x eval-region 使.emacs中选中的region中的语句立刻生效。
M-x eval-buffer 使当前的buffer中的设置语句立刻生效。
M-x load-file ~/.emacs 载入.emacs文件,从而使其中的设置生。

在线帮助(Online-Help)

C-h c 显示快捷键绑定的命令
C-h k 显示快捷键绑定的命令和它的作用
C-h l 显示最后100个键入的内容
C-h w 显示命令被绑定到哪些快捷键上
C-h f 显示函数的功能
C-h v 显示变量的含义和值 或者 M-x describe-variable
C-h b 显示当前缓冲区所有可用的快捷键
C-h t 打开emacs教程
C-h i 打开info阅读器
C-h p 显示本机Elisp包的信息
C-h C-f 显示emacs FAQ
C-h a 查找与之匹配的命令

打开与关闭
打开文件:C-x C-f
退出Emacs:C-x C-c
用另一文件替换当前打开的文件:C-x C-v
显示可打开的buffer:C-鼠标左键 或者 C-x C-b
打开另一个buffer:C-x b
关闭一个buffer:C-x k

重要快捷键(Important)
C-g 停止当前运行/输入的命令
C-x u 撤销前一个命令
C-x C-q 当前buffer设为只读
M-x revert-buffer RET (照着这个输入)撤销上次存盘后所有改动
M-x recover-file RET 从自动存盘文件恢复
M-x recover-session RET 如果你编辑了几个文件,用这个恢复

光标移动
跳到指定行:M-g g(M-x goto-line)
到的第N字节:M-x goto-char
前一屏:M-v 后一屏C-v
行首:C-a 行尾:C-e
上一行:C-p 下一行:C-n
上一词:M-b 下一词:M-f
上一字:C-b 下一字:C-f
上一句:M-a 下一句:M-e
上一段:M-{ 下一段:M-}

大小写转换
大写:M-u(词) C-x C-u(区域)
小写:M-l(词) C-x C-l(区域)
首字母大写:M-c

查找与替换
查找:C-s(向前) C-r(向后)
C-g 回到搜索开始前的位置(如果你仍然在搜索模式中)
使用正则表达式向后搜索 :C-M-s RET
使用正则表达式向前搜索 :C-M-r RET
替换:M-%
使用正则表达式搜索并替换:M-x query-replace-regexp

替换模式中的操作
替换当前匹配 :Space 或 y
不要替换当前匹配:Del或n
仅仅替换当前匹配并退出(替换) :.
替换并暂停(按Space或y继续) :,
替换以下所有匹配 :!
回到上一个匹配位置 :^
退出替换:RETURN 或 q

可在正则表达式中使用的符号
^ 行首
$ 行尾
. 单个字符
.* 任意多个(包括没有)字符
\< 单词开头 \> 单词结尾
[] 括号中的任意一个字符(例如[a-z]表示所有的小写字母)

选择
区域选择:C-@
段落选择:M-h
全选:C-x h

删除
删除光标处所有空格:M-\
光标处产生唯一空格:M-SPC
删除光标处所有空行:C-x C-o
删除一个字母:DEL(向后),C-d(向前)
删除一个单词:M-DEL(向后),M-d(向前)
删除一行:M-0 C-k(向后),C-k(向前)
删除一个句子:C-x DEL(向后),M-k(向前)
kill region: C-w
复制区域到kill ring: M-w
kill through next occurrence of char: M-z char
yank back last thing killed: C-y
replace last yank with previous kill: M-y

窗口操作
C-x o 切换至其他窗格
C-x 0 关闭窗格
C-x 2 水平分割窗格
C-x 3 垂直分割窗格
C-x 1 关闭除了光标所在窗格外所有窗格
C-x ^ 扩大窗格
M-x shrink-window 缩小窗格
C-M-v 滚动其他窗格内容
C-x 4 f 在其他窗格中打开文件
C-x 4 0 关闭当前缓冲区和窗格
C-x 5 2 新建窗口(frame)
C-x 5 1 删除其它所有窗口
C-x 5 f 在新窗口中打开文件

输入特殊字符
C-x 8 R 输入 ®
C-x 8 o 输入 °
C-x 8 C-h 可以得到一份完整的列表

拼写检查
一、使用flyspell进行“在线”拼写检测
1.启用flyspell-mode。Tools-Spell Checking-Automatic spell checking(Flyspell)或者M-x flyspell-mode。在进行输入的时候可以及时对拼写错误进行提醒。
2.提示如何修改:C-c $
二、使用ispell进行“离线”拼写检测
1.基本命令:M-x ispell-region M-x ispell-buffer
2.数字键进行拼写更改,空格键在不更改的情况下直接跳到下一个拼写错误处。
3.退出检测:C-g
4.检测某个单词的拼写:M-$

DontZap

其它
设置变量的值:M-x set-variable VAR VALUE
用另一种编码打开重新打开当前文档:M-x revert-buffer-with-coding-system
显示行号:M-x setnu-mode
C-u + 数字 + 操作 重复执行”数字“次”操作“
段落(行)居中对齐:M-S
简单的凯撒位移加密解密方法:M-x rot13-region
打开shell:M-x eshell 或者 M-x shell
启动Octave:M-x run-octave

删除选中区域的所有空行: M-x flush-lines ^$
使用 Emacs daemon: http://tigersoldier.is-programmer.com/2010/2/5/tips-on-emacs-daemon.15404.html
插入当前日期和时间:C-u M-! date

转载原文点此进入

2014.02.10
H
阅读全文...

windows版emacs中文乱码

快抢沙发

找到C:\Users\Shadow\AppData\Roaming(自行修改用户名)下的.emacs文件,

(set-language-environment 'Chinese-GB)
;; default-buffer-file-coding-system变量在emacs23.2之后已被废弃,使用buffer-file-coding-system代替
(set-default buffer-file-coding-system 'utf-8-unix)
(set-default-coding-systems 'utf-8-unix)
(setq-default pathname-coding-system 'euc-cn)
(setq file-name-coding-system 'euc-cn)
;; 另外建议按下面的先后顺序来设置中文编码识别方式。
;; 重要提示:写在最后一行的,实际上最优先使用; 最前面一行,反而放到最后才识别。
;; utf-16le-with-signature 相当于 Windows 下的 Unicode 编码,这里也可写成
;; utf-16 (utf-16 实际上还细分为 utf-16le, utf-16be, utf-16le-with-signature等多种)
(prefer-coding-system 'cp950)
(prefer-coding-system 'gb2312)
(prefer-coding-system 'cp936)
(prefer-coding-system 'gb18030)
;(prefer-coding-system 'utf-16le-with-signature)
(prefer-coding-system 'utf-16)
;; 新建文件使用utf-8-unix方式
;; 如果不写下面两句,只写
;; (prefer-coding-system 'utf-8)
;; 这一句的话,新建文件以utf-8编码,行末结束符平台相关
(prefer-coding-system 'utf-8-dos)
(prefer-coding-system 'utf-8-unix)

2014.02.06
H
阅读全文...

新浪sae上传图片的方法

快抢沙发

自从上次把百度的bae里面的应用删除了,再次申请时收到提示”BAE资源不足,正在扩容中,请等候下一批”就很郁闷,然后转到新浪的sae了。查看其api的第一件是就是看看它支持如何上传图片,因为这个功能对我来说很重要,如果提供的方式不适合我,我也就没有必要再用了。
看了看sae给出的示例代码。

第一种、通过利用表单上传,这种适用于前台,上用户点击上传。
做一个uplaod.html,代码如下:

<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>

sae上传图片
upload.php的代码如下:

<?php
$s = new SaeStorage();
if ($_FILES["file"]["error"] > 0){
	echo "Error: " . $_FILES["file"]["error"] . "<br />";
}else{
	if( $s->upload( "4wp" , "test.jpg" , $_FILES["file"]["tmp_name"]) ){ //4wp是sae里面的bucket,test.jpg是最后保存的文件名
		echo "上传成功";
	}else{
		echo "上传失败";
	}
}
?>

但是我们经常需要将远程的图片上传到sae的bucket里面这么办?新浪给出的api也没有这个功能啊。我们只有变通一下了,先将远程图片下载到本地,再将它上传至bucket。如果网友有更好的办法,请不吝赐教。

第二种、远程图片上传
因为新浪没有给出直接上传远程图片的api,但是给出了另外的解决方案。我们通过获取文件的二进制数据来达到目的。新浪允许我们用file_put_contents,不能用fopen之类的。

<?php
$s = new SaeStorage();
ob_start(); 
readfile("http://img.baidu.com/img/baike/logo-baike.png"); 
$img = ob_get_contents(); 
ob_end_clean(); 
$size = strlen($img); 
file_put_contents(SAE_TMP_PATH .'/bd.jpg' , $img );

if( $s->upload( "4wp" , "test.jpg" ,SAE_TMP_PATH .'/bd.jpg') ){
	echo "上传成功";
}else{
	echo "上传失败";
}
2014.02.06
H
阅读全文...

evernote(印象笔记)开始测试手写功能了

快抢沙发

想必evernote(印象笔记)测试其手写功能已经比较久了吧,其beta版本支持手写,小编是昨天申请测试的,目前感觉手写功能很不错。
下面介绍一下我申请使用beta版的步骤如下:
1.申请加入evernote在Google+上的测试社区,Evernote for Android App Beta Test,等待批准。PS:别说你连Google账号都没有
evernote申请测试
2.进入Evernote测试版的Google play地址 (可能需要翻墙)。这时会要求你登录Google账号,登录后如图
申请测试evernote
3.点击下方的“Download Evernote from the Play Store”,此时你会发现你的evernote可以更新了。直接更新即可。
4.开始玩手写记笔记吧
evernote手写

2014.02.06
H
阅读全文...
  • sitemap_baidu