Archive for September, 2010

vim刷新firefox

Monday, September 20th, 2010

yangsong 同学分享了一篇vim保存文件时刷新firefox的文章,用到了firefox的插架监听个端口通信的。貌似window下还用不了。我这firefox已经够慢了,对插件相当的节制,所以做个了发消息的,开始刷新IE很简单,sendmessage就行,firefox比较哏,屏了,只好去模拟按键……

代码如下

/*
 * jondynet http://jondy.net/
 * gcc firefox_f5.c -DWINVER=0x0501
 */
#include "windows.h"
#include "Winuser.h"

int main (int argc, char * argv [])
{
    HWND hwnd = FindWindow ("MozillaUIWindowClass", NULL);
    if (hwnd == 0)
    {
       MessageBox (0, "Where is firefox!", "Error", MB_ICONINFORMATION);
       return 0;
    }
    //char buffer[300];
    //SendMessage(hwnd,WM_GETTEXT,sizeof(buffer),(LPARAM)buffer);
    //MessageBox(NULL,buffer,"Captured Text",MB_OK);

    SetForegroundWindow(hwnd);
    //Sleep(2000);

    // minimize
    //SendMessage(hwnd,WM_SYSCOMMAND,SC_MINIMIZE,0);

    // ctrl + f5
    //PostMessage(hwnd,WM_KEYDOWN,VK_F5,0);
    //PostMessage(hwnd,WM_KEYUP,VK_F5,0); 

    //PostMessage(hwnd,WM_KEYDOWN,VK_CONTROL,0);
    //PostMessage(hwnd,WM_KEYDOWN,'R',0);
    //PostMessage(hwnd,WM_KEYUP,'R',0);
    //PostMessage(hwnd,WM_KEYUP,VK_CONTROL,0); 

    // SendInput
    INPUT inpdd[1];
    KEYBDINPUT kbyinp; 

    kbyinp.wVk = VK_F5;
    kbyinp.wScan = 0x3F;
    kbyinp.time = 0;
    kbyinp.dwFlags = 0;
    kbyinp.dwExtraInfo = 0;
    inpdd[0].type = INPUT_KEYBOARD;
    inpdd[0].ki = kbyinp;
    SendInput(1,&inpdd[0],sizeof(inpdd[0]));

    //关闭
    //PostMessage(hwnd, WM_CLOSE, 0, 0);
    return 0;
}

vim的设置看这里
" autocmd BufWriteCmd *.html,*.css,*.tmpl :call Refresh_firefox()
" function! Refresh_firefox()
"   if &modified
"     write
"     silent !firefox_f5
"     "silent !echo  'vimYo = content.window.pageYOffset;
"     "             \ vimXo = content.window.pageXOffset;
"     "             \ BrowserReload();
"     "             \ content.window.scrollTo(vimXo,vimYo);
"     "             \ repl.quit();'  |
"     "             \ nc localhost 4242 2>&1 > /dev/null
"   endif
" endfunction
silent !firefox_f5 这个是调用俺这个的,下边注释的那个是用插件的。

apache mod_wsgi autoreload

Thursday, September 2nd, 2010

各种nix下的参考mod_wsgi的wiki
win32平台的修改 _restart 方法

def _restart(path):
    _queue.put(True)
    prefix = 'monitor (pid=%d):' % os.getpid()
    print >> sys.stderr, '%s Change detected to \'%s\'.' % (prefix, path)
    print >> sys.stderr, '%s Triggering process restart.' % prefix
    if sys.platform == 'win32':
        #win32
        import ctypes
        ctypes.windll.libhttpd.ap_signal_parent(1)
    else:
        # nix
        os.kill(os.getpid(), signal.SIGINT)

apache:Could not reliably determine the server’s fully qualified domain name

Thursday, September 2nd, 2010

httpd: Could not reliably determine the server’s fully qualified domain name, using ::1 for ServerName

配虚机时的小毛病,在http.conf 设置ServerName 就好了