Aug
12
#!/bin/bash
if [ $# -eq 0 ]; then
grep
else
/bin/grep $@ --exclude-dir=.svn
fi
exit $?
if [ $# -eq 0 ]; then
grep
else
/bin/grep $@ --exclude-dir=.svn
fi
exit $?
Aug
7
----Vista/Win7摄像头拍照、录像工具----
在系统升级到Vista/Win7以后,发现系统里没有直接利用摄像头拍照、录像的工具软件,非常郁闷。在网上找了好久,终于找到两款能用的,在此share一下~~
· Ecap for Win7 是从EEEPC中提取的,支持拍照、录像,拍照保存为bmp格式,录像保存为wmv格式,推荐默认使用这个。Win7 x86测试通过,x64应该没问题;vista应该也是兼容的。
· amcap.exe 貌似是从万用摄像头驱动中提取的,没有直接的拍照功能,可以录像,默认录成基本没压缩的avi,体积非常大。设置功能很多,可以慢慢研究。xp/vista/win7应该是通用的。
这些软件都是绿色的,直接双击就可以使用,不过推荐将Ecap For Win7.exe拷贝到C:\Windows目录下,创建一个快捷方式命名为“摄像头”,拷贝到这个目录下面,然后再打开我的电脑,就像XP一样,可以看到你的摄像头了。
注意,AppData这个目录是隐藏目录,可以直接在地址栏输入打开。或者在资源管理器中按下Alt+T,在【文件夹选项】的【查看】选项卡中找到:“显示隐藏的文件、文件夹和驱动器”。
p.s. 这几个exe没有直接经过杀毒软件,但是有发送到QQ邮箱,通过QQ邮箱的卡巴斯基附件查毒,应该是没有病毒的;如果不放心,请自行杀毒检验或干脆不要使用。
在系统升级到Vista/Win7以后,发现系统里没有直接利用摄像头拍照、录像的工具软件,非常郁闷。在网上找了好久,终于找到两款能用的,在此share一下~~
· Ecap for Win7 是从EEEPC中提取的,支持拍照、录像,拍照保存为bmp格式,录像保存为wmv格式,推荐默认使用这个。Win7 x86测试通过,x64应该没问题;vista应该也是兼容的。
· amcap.exe 貌似是从万用摄像头驱动中提取的,没有直接的拍照功能,可以录像,默认录成基本没压缩的avi,体积非常大。设置功能很多,可以慢慢研究。xp/vista/win7应该是通用的。
这些软件都是绿色的,直接双击就可以使用,不过推荐将Ecap For Win7.exe拷贝到C:\Windows目录下,创建一个快捷方式命名为“摄像头”,拷贝到这个目录下面,然后再打开我的电脑,就像XP一样,可以看到你的摄像头了。
引用
C:\Users\[你的用户名]\AppData\Roaming\Microsoft\Windows\Network Shortcuts
注意,AppData这个目录是隐藏目录,可以直接在地址栏输入打开。或者在资源管理器中按下Alt+T,在【文件夹选项】的【查看】选项卡中找到:“显示隐藏的文件、文件夹和驱动器”。
p.s. 这几个exe没有直接经过杀毒软件,但是有发送到QQ邮箱,通过QQ邮箱的卡巴斯基附件查毒,应该是没有病毒的;如果不放心,请自行杀毒检验或干脆不要使用。
下载文件 (已下载 11323 次)
Aug
4
参考 http://hi.baidu.com/oscarbj/blog/item/43931bfbd4de3c66034f56b6.html
修改~/.subversion/config
diff-cmd = vimdiff_for_svn
下面是代码:
修改~/.subversion/config
diff-cmd = vimdiff_for_svn
下面是代码:
#!/usr/bin/python
import sys, os
diffprogram = '/usr/bin/vimdiff'
fn_old = sys.argv[6]
fn_working_copy = sys.argv[7]
# arrange the args in the order diffprogram expects them
args = ['mydiff', '-d', fn_old, fn_working_copy]
os.execv(diffprogram, args)
import sys, os
diffprogram = '/usr/bin/vimdiff'
fn_old = sys.argv[6]
fn_working_copy = sys.argv[7]
# arrange the args in the order diffprogram expects them
args = ['mydiff', '-d', fn_old, fn_working_copy]
os.execv(diffprogram, args)
Aug
3
svn的diff很好用,但是还不够好用,因为不像vim,可以很直观地看到两个文件的区别。Google了一下,发现一个还不错的解决方案( http://erik.thauvin.net/blog/news.jsp?date=2006-02-14 ),代码在这里: http://vc.thauvin.net/svn/linux/svndiff/svndiff.sh?view=markup ,但是有点小BUG。我FIX了一下,然后增加了一个小feature,允许在命令行后面跟上 "-r REV" 来指定与最新版本比较的版本号。代码如下:
@p.s. 2010.8.4 昨天给Erik发了封邮件,今天发现他已经把我的修改更新进去了:D
#!/bin/sh
# svndiff -- svn diff with vimdiff.
#
# Written by Erik C. Thauvin (erik@thauvin.net)
# May 11, 2006
#
# Copyright (C) 2006 Erik C. Thauvin. All rights reserved.
#
# This software is provided "as is" without express or implied warranties.
#
# Permission is granted to use, copy, modify and distribute this software,
# provided this disclaimer and copyright are preserved on all copies. This
# software may not, however, be sold or distributed for profit, or included
# with other software which is sold or distributed for profit, without the
# permission of the author.
#
# $Id$
#
# Modified by felix021 (felix021@gmail.com)
# Aug 3, 2010
PROGNAME=`basename $0`
if [ $# -lt 1 ]; then
echo "Usage: $PROGNAME <file> [-r REV]"
exit;
fi
filename=$1
pid=$$
TEMP=/tmp/tmp.$pid.$filename
pv=
if [ $# -gt 3 -a $2 = "-r" ]; then
pv="-r $3"
fi
svn cat $filename $pv > $TEMP
vimdiff $TEMP $filename
rm -f $TEMP
# svndiff -- svn diff with vimdiff.
#
# Written by Erik C. Thauvin (erik@thauvin.net)
# May 11, 2006
#
# Copyright (C) 2006 Erik C. Thauvin. All rights reserved.
#
# This software is provided "as is" without express or implied warranties.
#
# Permission is granted to use, copy, modify and distribute this software,
# provided this disclaimer and copyright are preserved on all copies. This
# software may not, however, be sold or distributed for profit, or included
# with other software which is sold or distributed for profit, without the
# permission of the author.
#
# $Id$
#
# Modified by felix021 (felix021@gmail.com)
# Aug 3, 2010
PROGNAME=`basename $0`
if [ $# -lt 1 ]; then
echo "Usage: $PROGNAME <file> [-r REV]"
exit;
fi
filename=$1
pid=$$
TEMP=/tmp/tmp.$pid.$filename
pv=
if [ $# -gt 3 -a $2 = "-r" ]; then
pv="-r $3"
fi
svn cat $filename $pv > $TEMP
vimdiff $TEMP $filename
rm -f $TEMP
@p.s. 2010.8.4 昨天给Erik发了封邮件,今天发现他已经把我的修改更新进去了:D
Jul
20
纯粹记录一下。看不懂的绕行吧..
当客户端COMMIT成功以后,post-commit会被执行,调用时会传入两个参数,$1是repos的绝对路径,$2是REV,此次提交的版本号。
可以配合rsync用于分发各种东西。
$ mkdir repos
$ svnadmin create repos
$ ls repos/
conf db format hooks locks README.txt
$ ls repos/hooks/
post-commit.tmpl post-revprop-change.tmpl pre-commit.tmpl pre-revprop-change.tmpl start-commit.tmpl
post-lock.tmpl post-unlock.tmpl pre-lock.tmpl pre-unlock.tmpl
$ cd repos/hooks
$ cp post-commit.tmpl post-commit
$ chmod +x post-commit
$ vi post-commit
……
$ svnadmin create repos
$ ls repos/
conf db format hooks locks README.txt
$ ls repos/hooks/
post-commit.tmpl post-revprop-change.tmpl pre-commit.tmpl pre-revprop-change.tmpl start-commit.tmpl
post-lock.tmpl post-unlock.tmpl pre-lock.tmpl pre-unlock.tmpl
$ cd repos/hooks
$ cp post-commit.tmpl post-commit
$ chmod +x post-commit
$ vi post-commit
……
当客户端COMMIT成功以后,post-commit会被执行,调用时会传入两个参数,$1是repos的绝对路径,$2是REV,此次提交的版本号。
可以配合rsync用于分发各种东西。
Jul
6
前一阵更新了Virtualbox到3.2.4,因为7788的原因,虚拟机配置丢失,于是重新建立,再用vboxmanage设置NAT端口转发。再次启动虚拟机,提示无法启动:
搜了一下,在这个页面:http://forums.virtualbox.org/viewtopic.php?t=7175 的回复中看到解答。
原来的vbox都是使用PCNET作为虚拟网卡,而3.2.4新建虚拟机的时候,虚拟的则是Intel的网卡。因此原先用于设置NAT的命令:
就不能再使用pcnet了。
然后再一查文档,发现3.2.4里头vboxmanage已经不用setextradata来设置Port Forwarding了,而是改成更简洁易懂的:
p.s. 端口转发的信息是存放在虚拟机的xml配置文件文件里了,需要重启(或休眠->恢复)以后才能重新载入
引用
Configuration error: Failed to get the "MAC" value.
VBox status code: -2103 (VERR_CFGM_VALUE_NOT_FOUND).
VBox status code: -2103 (VERR_CFGM_VALUE_NOT_FOUND).
搜了一下,在这个页面:http://forums.virtualbox.org/viewtopic.php?t=7175 的回复中看到解答。
原来的vbox都是使用PCNET作为虚拟网卡,而3.2.4新建虚拟机的时候,虚拟的则是Intel的网卡。因此原先用于设置NAT的命令:
引用
VBoxManage setextradata "Ubuntu" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "Ubuntu" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 2222
VBoxManage setextradata "Ubuntu" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 22
VBoxManage setextradata "Ubuntu" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 2222
VBoxManage setextradata "Ubuntu" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 22
就不能再使用pcnet了。
然后再一查文档,发现3.2.4里头vboxmanage已经不用setextradata来设置Port Forwarding了,而是改成更简洁易懂的:
引用
VBoxManage modifyvm "Ubuntu" --natpf1 "guestssh,tcp,,2222,,22"
vboxmanage 修改vm配置 虚拟机名(Ubuntu) nat_port_forwarding(第1个网卡) "端口转发名(guestssh),tcp,宿主机IP(略),宿主机端口2222,虚拟机IP(略),虚拟机端口22"
vboxmanage 修改vm配置 虚拟机名(Ubuntu) nat_port_forwarding(第1个网卡) "端口转发名(guestssh),tcp,宿主机IP(略),宿主机端口2222,虚拟机IP(略),虚拟机端口22"
p.s. 端口转发的信息是存放在虚拟机的xml配置文件文件里了,需要重启(或休眠->恢复)以后才能重新载入
Jun
8
我的邀请注册链接: https://db.tt/5PWtd8Vc
最大化Dropbox的免费空间(4G+)
虽然早就听说Dropbox这个同步应用,但是一直没有用上。根据Dropbox于近日被GFW掐掉,于是我决定开始使用它。
简单地说,Dropbox在单纯网络硬盘之上提供了数个很有创意的功能。包括:
a. 2G免费空间,介绍一个用户增加250M,上限是8G(或者10G?没理解)。
b. 自动同步。由于有个客户端,可以在多个电脑、手机之间自动同步文件,非常方便。
c. 照片文件夹可以作为WEB相册访问
d. 共享文件夹允许你和多个朋友一起共享、交流文件,尤其特别是小文档,比邮箱方便快捷,比IM传文件靠谱。
e. 有一个公开目录,可以生成直接的下载链接。
由于第一定律导致了它被墙的必然,但是第二定律暂时还没生效,因此,希望使用第三定律界定的这个优秀服务还是得绕个弯。所谓“奇伟瑰怪非常之观,常在於险远而人之所罕至”,所以,找个翻墙工具吧!
推荐使用 shadowsocks 来创建一个 socks5 代理,创建好以后安装Dropbox,在 preference -> network 选项卡填入代理(注意代理类型为 socks5),就可以畅享Dropbox了! (注:2018年更新,现在 ssh 和 openvpn、pptpvpn 都不好用了,shadowsocks 还行)
【创建socks代理】
创建 socks5 代理最简单是购买一个;如果有一定动手能力的话,推荐自己搭建:
1. 推荐购买一个国外的 VPS,例如 搬瓦工 年付 19.99 美元的机型:https://clients.hostmybytes.com/aff.php?aff=1042&gid=55,操作系统推荐使用Ubuntu 16.04 (配合下面说明)。购买后可以得到服务器的 ip 和 root 帐号登录密码。
2. 用 ssh 客户端(windows下推荐Tunnelier,下载地址:https://share.weiyun.com/5a3IPmg ),使用 root 密码登录服务器。
3. 安装 shadowsocks 服务端,执行命令:sudo apt-get install -y screen shadowsocks
4. 启动 shadowsocks 服务端,执行命令(记得替换你的密码):screen -dmS ss ssserver -k 密码 -m aes-256-cfb -p 8388
注:screen -ls 如果能看到一条 ss 说明正常启动了。稳妥起见可以在crontab添加一个任务 "* * * * * screen -dmS ss ssserver -k 密码 -m aes-256-cfb -p 8388"
5. 下载并打开 shadowsocks 客户端:
6. 双击通知区域窗口区的纸飞机图标,将服务器的 IP 和端口(8388)、密码填入,就可以在本机启动一个 socks5 代理了。
====
我的邀请注册链接: https://db.tt/5PWtd8Vc
最大化Dropbox的免费空间(4G+)
最大化Dropbox的免费空间(4G+)
虽然早就听说Dropbox这个同步应用,但是一直没有用上。根据
引用
GFW 三定律
GFW 第一定律:只要是 “用户产生内容”(User-generated content, UGC) 的国外网站都会被和谐。
GFW 第二定律:只要是被和谐的网站,国内一定会有个克隆版。
GFW 第三定律:没有被和谐的网站一定不是同类竞争者中最出色的。
GFW 第一定律:只要是 “用户产生内容”(User-generated content, UGC) 的国外网站都会被和谐。
GFW 第二定律:只要是被和谐的网站,国内一定会有个克隆版。
GFW 第三定律:没有被和谐的网站一定不是同类竞争者中最出色的。
简单地说,Dropbox在单纯网络硬盘之上提供了数个很有创意的功能。包括:
a. 2G免费空间,介绍一个用户增加250M,上限是8G(或者10G?没理解)。
b. 自动同步。由于有个客户端,可以在多个电脑、手机之间自动同步文件,非常方便。
c. 照片文件夹可以作为WEB相册访问
d. 共享文件夹允许你和多个朋友一起共享、交流文件,尤其特别是小文档,比邮箱方便快捷,比IM传文件靠谱。
e. 有一个公开目录,可以生成直接的下载链接。
由于第一定律导致了它被墙的必然,但是第二定律暂时还没生效,因此,希望使用第三定律界定的这个优秀服务还是得绕个弯。所谓“奇伟瑰怪非常之观,常在於险远而人之所罕至”,所以,找个翻墙工具吧!
推荐使用 shadowsocks 来创建一个 socks5 代理,创建好以后安装Dropbox,在 preference -> network 选项卡填入代理(注意代理类型为 socks5),就可以畅享Dropbox了! (注:2018年更新,现在 ssh 和 openvpn、pptpvpn 都不好用了,shadowsocks 还行)
【创建socks代理】
创建 socks5 代理最简单是购买一个;如果有一定动手能力的话,推荐自己搭建:
1. 推荐购买一个国外的 VPS,例如 搬瓦工 年付 19.99 美元的机型:https://clients.hostmybytes.com/aff.php?aff=1042&gid=55,操作系统推荐使用Ubuntu 16.04 (配合下面说明)。购买后可以得到服务器的 ip 和 root 帐号登录密码。
2. 用 ssh 客户端(windows下推荐Tunnelier,下载地址:https://share.weiyun.com/5a3IPmg ),使用 root 密码登录服务器。
3. 安装 shadowsocks 服务端,执行命令:sudo apt-get install -y screen shadowsocks
4. 启动 shadowsocks 服务端,执行命令(记得替换你的密码):screen -dmS ss ssserver -k 密码 -m aes-256-cfb -p 8388
注:screen -ls 如果能看到一条 ss 说明正常启动了。稳妥起见可以在crontab添加一个任务 "* * * * * screen -dmS ss ssserver -k 密码 -m aes-256-cfb -p 8388"
5. 下载并打开 shadowsocks 客户端:
下载文件 (已下载 877 次)
6. 双击通知区域窗口区的纸飞机图标,将服务器的 IP 和端口(8388)、密码填入,就可以在本机启动一个 socks5 代理了。
====
我的邀请注册链接: https://db.tt/5PWtd8Vc
最大化Dropbox的免费空间(4G+)
Jan
17
p.s. @ 20100119 这是前几天写的,本来打算给godaddy加一个sockets扩展,但是失败了,还是发出来,记录一下。
godaddy的虚拟主机给的权限真是宽,允许自定义php.ini。
自定义的php.ini默认放在$HOME/html/php.ini,这个是针对php4的,我选择的是php5,所以应该是php5.ini。
//以下在虚拟主机上操作
$ cd ~/html
$ cp /web/conf/php5.ini .
$ vi php5.ini
然后修改max post size之类的参数吧~过一小段时间,再看phpinfo(),就出效果了。
编译php扩展的步骤
$ wget http://museum.php.net/php5/php-5.2.8.tar.bz2 //godaddy上面的是5.2.8, i386
$ tar jxf php-5.2.8.tar.bz2
$ cd php-5.2.8/ext/sockets
$ phpize //注意,需要安装php5-dev (apt-get install php5-dev)
$ ./configure --with-php-config=/usr/bin/php-config (最好$ whereis php-config 看一下路径)
$ make
拷贝到godday去
$ scp modules/sockets.so yourname@yourdomain:~/
然后修改php5.ini,增加
extension=sockets.so
发现无法正常加载,失望=。=
godaddy的虚拟主机给的权限真是宽,允许自定义php.ini。
自定义的php.ini默认放在$HOME/html/php.ini,这个是针对php4的,我选择的是php5,所以应该是php5.ini。
//以下在虚拟主机上操作
$ cd ~/html
$ cp /web/conf/php5.ini .
$ vi php5.ini
然后修改max post size之类的参数吧~过一小段时间,再看phpinfo(),就出效果了。
编译php扩展的步骤
$ wget http://museum.php.net/php5/php-5.2.8.tar.bz2 //godaddy上面的是5.2.8, i386
$ tar jxf php-5.2.8.tar.bz2
$ cd php-5.2.8/ext/sockets
$ phpize //注意,需要安装php5-dev (apt-get install php5-dev)
$ ./configure --with-php-config=/usr/bin/php-config (最好$ whereis php-config 看一下路径)
$ make
拷贝到godday去
$ scp modules/sockets.so yourname@yourdomain:~/
然后修改php5.ini,增加
extension=sockets.so
发现无法正常加载,失望=。=