雕虫小技大杂烩(http://luozhifan.googlepages.com)

  • coLinux配置网卡一个被忽略的细节
公司主机上装有symantec的安全客户端,并在出口的防火墙上给了一堆的规则,给colinux的网卡配置带来障碍,在其它网络环境下能用的colinux在公司里面就跑不起来了,回忆起两个月之前装的,没有任何问题,相比较,得出结论:
网络始终设置不好的,是来自colinux安装包
网络没问题的,来自下载的ubuntu 9.10 desktop标准版本,安装到主机里,再设置colinux的分区 cobd0=/Device/Harddisk0/Partition5,自然就可以工作,网卡信息:
eth0=slirp
eth1=tuntap,"tap",02:00:00:00:04:0
原来如此。
  • 在页面中用javascript实现按键模拟,在主流的浏览器下均通过测试
function insertKey(keycode)
{
    focusedObj.focus();

    var evt;
    var chr="";
    if (window.KeyEvent) {
        if(keycode=='l') keycode=8;
        else keycode=keycode.charCodeAt(0);
        evt = document.createEvent('KeyEvents');
        evt.initKeyEvent("keypress", true, true, window, false,
          false, false, false, keycode, keycode);
          focusedObj.dispatchEvent(evt);
    }
    else
    {
        if(keycode=='l')
        {
            DocumentSelection.deleteAtCursor(focusedObj, false);
        }
        else
        {
            chr=keycode;
        }
        if(chr)
        {
            DocumentSelection.insertAtCursor(focusedObj,chr);
        }
    }
}

调用举例:
insertKey('a');


  • vim状态栏里显示光标所在代码函数名称,编辑大的源码时很有用
借助TagList.vim插件可以实现该功能:
let g:Tlist_Process_File_Always=1
let g:Tlist_File_Fold_Auto_Close=1
let g:ctags_statusline=1
let g:ctags_path=$ANDROID_BUILD_TOP
set statusline=%<%F%=%([%{Tlist_Get_Tagname_By_Line()}]/ %l,%c%V%)/ %P

  • linux下,如何在python脚本中改变运行后的shell环境变量
    常规的办法是做不到的,因为python脚本是在shell中启动的子进程的解释器中执行的,当python执行完毕,这个子进程会完全退出,好在有一些折中的办法,就是利用tty的特点,用子进程向父进程模拟输入按键,然后这些按键组成的命令就能达到改变环境变量的目的了:

def shellcmd(cmd):
for c in cmd: fcntl.ioctl(0, termios.TIOCSTI, c)
    
  • 让ollyscript输出字符串
exec
push eax                 //字符串首地址       
call OutputDebugStringA
ende
ret

在ollyscript 9.2版本上测试通过,结果在ollydbg的log窗口中
(让我很意外,做了好多年的脚本系统居然字符串处理系统如此的弱,好在还能用系统api实现。)
  • 如何更安全设置宏用于多平台编译:

1, Add two defines as followed, before call qmake

export FEAT_FORM_FACTOR=slider
export ASSERTIONS=FEAT_FORM_FACTOR

2, Change qmake.conf
 
QMAKE_CFLAGS = -pipe ====> QMAKE_CFLAGS = -pipe $(foreach a,$(ASSERTIONS),-A$(a)=$($(a)))

3, Change source codes if needed.

#if #FEAT_FORM_FACTOR(slider)
//...
#endif

  • 让一个函数调用在release环境中完全消失。
#ifdef DEBUG
#define DFUN printf
#else
#define DFUN 1?0:printf
#endif

code:

DFUN("%s:%d debug:%s", __FILE__, __LINE__, debugOutString);
 

你可能感兴趣的:(雕虫小技大杂烩(http://luozhifan.googlepages.com))