• 延缓的脚步
  • 这样的我
    这样的勇敢的我单纯的我
    复杂的我冷的我热的我
    无聊的我懒惰的我总是怀疑的我
    讲了又不听听了又不做做又做不好的我
    看不见的世界里我是英雄
    然后回到没有目标的活著在现实中

时间记忆

最新评论

fason @ 2009-05-04 22:50

可能有一些没有必要的步骤在里面
1.安装moin
代码:
sudo apt-get install python-moinmoin

2.创建MoinMoin实例
例如我的用户名是fason,我在/home/fason/Program/ 里创建mywiki实例
代码:
cd /home/fason/Program/
mkdir mywiki
cp -rf /usr/share/moin/data mywiki/
cp -rf /usr/share/moin/underlay mywiki/
cp /usr/share/moin/config/wikiconfig.py mywiki/
cd mywiki
mkdir cgi-bin
cp /usr/share/moin/server/moin.cgi cgi-bin/
cd ..

3.设置实例目录权限
MoinMoin系统默认使用www-data用户运行WiKi服务器。
代码:
chown -R www-data:www-data mywiki/
chmod -R ug+rw mywiki/
chmod -R o-rwx mywiki/

4.Apache2+Mod_Python
代码:
apt-get install libapache2-mod-python2.6

装载mod_python模块
代码:
sudo gedit /etc/apache2/httpd.conf

文件中加入
代码:
LoadModule python_module modules/mod_python.so
Alias /moin_static182/ "/usr/share/moin/htdocs/"
ScriptAlias /mywiki "/home/fason/Program/mywiki/cgi-bin/moin.cgi"

5.修改moin的设置
5.1
代码:
sudo gedit ~/Program/mywiki/wikiconfig.py

分别查找下面几行相应修改
其实估计只需要修改data_dir和data_underlay_dir就可以了
代码:
# -*- coding: utf-8 -*-                         #使用UTF-8编码
sitename = u'Untitled Wiki'                   #你的WiKi网站的名称
page_front_page = u"FrontPage"                #启用首页
data_dir = '/home/fason/Program/mywiki/data/'                #设置data目录路径,要用绝对路径
data_underlay_dir = '/home/fason/Program/mywiki/underlay/'   #设置underlay目录路径,要用绝对路径
superuser = [u"moin_admin", ]                  #设置超级用户,1.5版新增选项
    navi_bar = [                                        #设置导航栏
        # If you want to show your page_front_page here:
        u'%(page_front_page)s',
        u'RecentChanges',
        u'FindPage',
        u'HelpContents',
    ]
language_default = 'zh'                             #设置默认语言

最后save as 将encoding 改成utf-8保存

5.2
代码:
sudo gedit ~/Program/mywiki/cgi-bin/moin.cgi

在import sys 后加入
代码:
sys.path.insert(0, '/home/fason/Program/mywiki')


最后再检查一次目录有没有全部设置正确。
重启apache
sudo /etc/init.d/apache2 restart
浏览器里输入
http://localhost/mywiki

备注:
I.确认是否moin正常安装
命令行输入 python
代码:
Python 2.6.2 (release26-maint, Apr 19 2009, 01:58:18)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MoinMoin
>>>

如果没有错误信息即为正常安装
II.确认python的版本
代码:
python -V
Python 2.6.2

III.安装modpython也要安装相应的版本
代码:
apt-get install libapache2-mod-python2.6

参考:
1.http://man.chinaunix.net/linux/debian/d ... h09s12.htm
2.http://koukaipan.pixnet.net/blog/post/21611407
3.http://blog.warrenc.com/2009/03/moinmoin-wiki.html


 
fason @ 2009-04-25 15:11

1.下载内核安装
引用:
下载地址
http://kernel.ubuntu.com/~kernel-ppa/ma ... .6.30-rc3/
下载headers和image顺序安装。

2.安装时image时显示ndivia编译错误
引用:
但不影响内核升级。只是nvidia驱动的编译错误。这个时候不要重启,做ndivia的准备工作

3.nvidia准备
引用:
3.1.下载驱动
http://ru.download.nvidia.com/XFree86/L ... 4-pkg2.run
注,这个是64位系统的安装。32位的同学参照一下自行找一下。
3.2.打补丁。
代码:
# sh NVIDIA-Linux-x86_64-180.44-pkg2.run --extract-only
# cd NVIDIA-Linux-x86_64-180.44-pkg2/usr/src/nv/
# wget http://pavlinux.ru/nv/nvidia-x86_64-180.44-2.6.30-rc2.patch
# patch -p0 < nvidia-x86_64-180.44-2.6.30-rc2.patch
# cd ../../../

# ./nvidia-installer

最后一个命令是要在完全退出xserver的情况下才能安装。我不懂怎么退出。所以直接重启了。
4.安装
引用:
如果是直接重启的话,重启后就会提示驱动有问题
选择到后台模式
login以后,cd到刚才的目录
# ./nvidia-installer
然后看提示走就可以了
默认需要gcc4.2,但是我已经安装了4。3了。会警告,但是用4.3编译没有问题。

最后startx就ok啦
参考:
1.PATCH FOR 180.44 with kernel 2.6.30-rc2
http://www.nvnews.net/vbulletin/showthread.php?t=131597


 
fason @ 2008-06-23 14:36

适用环境:windows
公司里面只能使用代理上网
Subclipse连接网络的时候不是使用eclipse的默认代理的
因此要在注册表里面加入相关选项
注册表文件:
REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\groups]

[HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\global]
"#http-proxy-host"=""
"#http-proxy-port"=""
"#http-proxy-username"=""
"#http-proxy-password"=""
"#http-proxy-exceptions"=""
"#http-timeout"="0"
"#http-compression"="yes"
"#neon-debug-mask"=""
"#ssl-authority-files"=""
"#ssl-trust-default-ca"=""
"#ssl-client-cert-file"=""
"#ssl-client-cert-password"=""

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\auth]
"#store-auth-creds"="no"

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\helpers]
"#editor-cmd"="notepad"
"#diff-cmd"=""
"#diff3-cmd"=""
"#diff3-has-program-arg"=""

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\miscellany]
"#global-ignores"="*.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store"
"#log-encoding"=""
"#use-commit-times"=""
"#template-root"=""
"#enable-auto-props"=""

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\tunnels]

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\auto-props]
将相应的代理,端口,如果要登录的话也都填一下
然后相应去掉#号
然后把上面那个注册表双击导入
eclipse下就能通过代理使用svn了
参考网址
  1. http://subclipse.tigris.org/faq.html#http-proxy



 
fason @ 2008-06-19 23:21

用deb包安装好了以后,直接运行不起来
在命令行下输入freemind后报以下错误

User properties found.
Default (System) Look & Feel: com.sun.java.swing.plaf.gtk.GTKLookAndFeel
[Freemind-Developer-Internal-Warning (do not write a bug report, please)]: Tried to get view without being able to get map module.

(<unknown>:8322): Gtk-WARNING **: Attempting to add a widget with type GtkButton to a GtkComboBoxEntry (need an instance of GtkEntry or of a subclass)

(<unknown>:8322): Gtk-CRITICAL **: gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
2008-6-20 0:14:50 freemind.modes.ModesCreator getAllModes
信息: Modes:[freemind.modes.browsemode.BrowseMode, freemind.modes.filemode.FileMode, freemind.modes.mindmapmode.MindMapMode]
2008-6-20 0:14:50 freemind.modes.ModesCreator getMode
信息: Initializing mode MindMap
2008-6-20 0:14:50 freemind.modes.mindmapmode.MindMapController <init>
信息: createIconActions
2008-6-20 0:14:50 freemind.modes.mindmapmode.MindMapController <init>
信息: createNodeHookActions
2008-6-20 0:15:14 freemind.modes.ModesCreator getMode
严重: Mode freemind.modes.mindmapmode.MindMapMode could not be loaded.
java.lang.NullPointerException
    at freemind.extensions.ImportWizard.addClassesFromDir(ImportWizard.java:128)
    at freemind.extensions.ImportWizard.addClassesFromDir(ImportWizard.java:164)
    at freemind.extensions.ImportWizard.buildClassList(ImportWizard.java:76)
    at freemind.extensions.HookFactory.actualizePlugins(HookFactory.java:148)
    at freemind.extensions.HookFactory.searchFor(HookFactory.java:111)
    at freemind.extensions.HookFactory.getPossibleNodeHooks(HookFactory.java:95)
    at freemind.modes.mindmapmode.MindMapController.createNodeHookActions(MindMapController.java:238)
    at freemind.modes.mindmapmode.MindMapController.<init>(MindMapController.java:149)
    at freemind.modes.mindmapmode.MindMapMode.init(MindMapMode.java:43)
    at freemind.modes.ModesCreator.getMode(ModesCreator.java:89)
    at freemind.controller.Controller.changeToMode(Controller.java:441)
    at freemind.main.FreeMind.<init>(FreeMind.java:300)
    at freemind.main.FreeMind.main(FreeMind.java:647)
Exception in thread "main" java.lang.NullPointerException
    at freemind.main.FreeMind.main(FreeMind.java:652)
而直接运行/usr/share/freemind.sh却是正常的
修改sh文件
sudo gedit /usr/share/freemind.sh
增加红色的那行
/usr/share/java/jaxp-1.2.jar:\
/usr/share/java/relaxngDatatype.jar:\
/usr/share/java/commons-codec.jar:\
${freedir}"
cd ${freedir}
if [ "${JAVA_TYPE}" = "sun" ]
就能正常运行了
参考网页
  1. http://forum.ubuntu.org.cn/viewtopic.php?p=739898&sid=7315915f7d19c85030fd81e644d76856



 
fason @ 2008-06-19 13:48

公司的网络因为安全原因,所有访问都只能通过一个8080端口对外访问。
无论是http还是https协议也好
appengine官方也提示如何通过代理更新
参考http://code.google.com/appengine/docs/appcfgpy.html
即在环境变量里增加http_proxy这个参数
windows下为set http_proxy=http://10.xx.xx.xxx:8080
但是可能是代理的原因,仍然无法上传。
在appcfg.py运行时增加参数 --noisy 来判断
发现是登录不了
timeout错误。因此怀疑是https协议登录时使用的代理有误
增加https_proxy也不行
因此按照这个网页的方法,重写了用https访问的方法,
并使用其来登录google帐号后顺利通过
修改src如下:
  1. C:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.py
      from google.appengine.tools.ProxyHTTPConnection import *
      opener = urllib2.build_opener(ConnectHTTPHandler, ConnectHTTPSHandler)
      urllib2.install_opener(opener)
      urlpath = r"https://www.google.com/accounts/ClientLogin?"
      urlpath = urlpath + "Passwd="+password
      urlpath = urlpath + "&source=Google-appcfg-1.0&accountType=HOSTED_OR_GOOGLE&Email="
      urlpath = urlpath + email
      urlpath = urlpath + "&service=ah"
      req = urllib2.Request(url=urlpath)
      req.set_proxy('10.xx.xx.xxx:8080', 'https')
      f = urllib2.urlopen(req)
      response_body = f.read()
      #response = self.opener.open(req)
      #response_body = response.read()
2.在C:\Program Files\Google\google_appengine\google\appengine\tools\下增加ProxyHTTPConnection.py
文件内容如下
# urllib2 opener to connection through a proxy using the CONNECT method, (useful for SSL)
# tested with python 2.4

import urllib2
import urllib
import httplib
import socket


class ProxyHTTPConnection(httplib.HTTPConnection):

    _ports = {'http' : 80, 'https' : 443}


    def request(self, method, url, body=None, headers={}):
        #request is called before connect, so can interpret url and get
        #real host/port to be used to make CONNECT request to proxy
        proto, rest = urllib.splittype(url)
        if proto is None:
            raise ValueError, "unknown URL type: %s" % url
        #get host
        host, rest = urllib.splithost(rest)
        #try to get port
        host, port = urllib.splitport(host)
        #if port is not defined try to get from proto
        if port is None:
            try:
                port = self._ports[proto]
            except KeyError:
                raise ValueError, "unknown protocol for: %s" % url
        self._real_host = host
        self._real_port = port
        self.set_debuglevel(99)
        httplib.HTTPConnection.request(self, method, url, body, headers)
       

    def connect(self):
        httplib.HTTPConnection.connect(self)
        #send proxy CONNECT request
        self.send("CONNECT %s:%d HTTP/1.0\r\n\r\n" % (self._real_host, self._real_port))
        #expect a HTTP/1.0 200 Connection established
        response = self.response_class(self.sock, strict=self.strict, method=self._method)
        (version, code, message) = response._read_status()
        #probably here we can handle auth requests...
        if code != 200:
            #proxy returned and error, abort connection, and raise exception
            self.close()
            raise socket.error, "Proxy connection failed: %d %s" % (code, message.strip())
        #eat up header block from proxy....
        while True:
            #should not use directly fp probablu
            line = response.fp.readline()
            if line == '\r\n': break


class ProxyHTTPSConnection(ProxyHTTPConnection):
   
    default_port = 443

    def __init__(self, host, port = None, key_file = None, cert_file = None, strict = None):
        ProxyHTTPConnection.__init__(self, host, port)
        self.key_file = key_file
        self.cert_file = cert_file
   
    def connect(self):
        ProxyHTTPConnection.connect(self)
        #make the sock ssl-aware
        ssl = socket.ssl(self.sock, self.key_file, self.cert_file)
        self.sock = httplib.FakeSocket(self.sock, ssl)
       
                                      
class ConnectHTTPHandler(urllib2.HTTPHandler):
  
    def __init__(self, proxy=None, debuglevel=9):
        self.proxy = proxy
        urllib2.HTTPHandler.__init__(self, debuglevel)

    def do_open(self, http_class, req):
        if self.proxy is not None:
            req.set_proxy(self.proxy, 'http')
        return urllib2.HTTPHandler.do_open(self, ProxyHTTPConnection, req)

class ConnectHTTPSHandler(urllib2.HTTPSHandler):

    def __init__(self, proxy=None, debuglevel=9):
        self.proxy = proxy
        urllib2.HTTPSHandler.__init__(self, debuglevel)

    def do_open(self, http_class, req):
        if self.proxy is not None:
            req.set_proxy(self.proxy, 'https')
        return urllib2.HTTPSHandler.do_open(self, ProxyHTTPSConnection, req)

if __name__ == '__main__':
   
    import sys
   
    proxy = '10.xx.xx.xxx:8080'
    opener = urllib2.build_opener(ConnectHTTPHandler(proxy=proxy), ConnectHTTPSHandler(proxy=proxy))
    urllib2.install_opener(opener)
    urlpath = r"https://www.gmail.com/"
    req = urllib2.Request(url=urlpath)
    f = urllib2.urlopen(req)
    print f.read()

之后就可以正确的登录google账户并上传了。
查了一下英文的资料,似乎是因为python对于代理访问https时urllib内部有bug。。。
能用就可以
我的朋友就和我同样的网络环境,同样的python版本
按照上面的写法还是不行
一定要强制将http访问改成https访问才成,很奇怪。
即return urllib2.HTTPHandler.do_open(self, ProxyHTTPConnection, req)
变成return urllib2.HTTPHandler.do_open(self, ProxyHTTPSConnection, req)

参考资料:
  1. 【英文】http://code.google.com/appengine/docs/appcfgpy.html
  2. 【英文】http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/456195
  3. 【日文】http://d.hatena.ne.jp/yuki_next/20080308



 
fason @ 2008-06-18 17:13

google 的appengine网页提供了最基本的Django使用例子
在以下的链接里下载
http://code.google.com/p/google-app-engine-samples/downloads/list
里面的django_example_20080409.tar.gz
解压后本地运行,没有问题
使用appcfg.py update 上传上去后
报错无法运行。
根据
http://code.google.com/appengine/articles/django.html
往django_bootstrap.py里import的地方增加以下三行
from django.conf import settings
settings._target = None
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
再次上传就可以了



 
fason @ 2008-06-13 13:22

环境:
OpenOffice 2.2 Writer 中文版
现象描述:
复制带有图片的网页到Openoffice,
即使复制大量的内容(图片比较多)
文件也只有70K
而且在上下拖动的时候感觉很慢
怀疑只是复制了图片的链接过来
每次查看时自动load。
解决方法:
目标是去除所有的链接
第一步,先保证所有的图片都已经被取得
--工具->更新->链接
否则的话链接断掉后图片就找不回了
第二步
--编辑->链接
里面是文档的所有外部引用链接
因为我的全部是网页的图片,所以ctrl+a全选后
摁【解开】,确定删除链接
这样指向网页的链接就被删除
已经装载进来的图片则仍然保留



 
fason @ 2008-05-03 18:22

本文为在Ubuntu下的安装方法
其他Linux环境请斟酌使用

下载源代码
http://multiget.sourceforge.net/download.html

下载multiget-1.2.0.src.tar.bz2
解压缩
tar jxvf ./multiget-1.2.0.src.tar.bz2

安装编译环境
 sudo apt-get install build-essential autoconf automake1.9 cvs subversion

安装编译multiget所需要的环境
sudo apt-get install libwxgtk2.8-dev libglade2-dev

进入解压缩的文件夹
cd /home/user/temp/multiget

编译安装
./configure
make
sudo make install
编译好的文件在/usr/local/bin 下



 
fason @ 2008-05-01 19:10

不知道有没有人碰到和我一样的情况,同一台机器
windows和ubuntu linux下的网络速度差距非常的巨大
用我参考的那篇英文帖子来说“internet speed as slow as hell.”
不仅是看网页,包括ftp,局域网共享,都下降到无法忍受的水平
因为从7.04起四处收集资料,终于能基本解决了,两眼泪汪汪
贴出来以供参考

参考的网页太多,原始地址有很多不可考
只能最后标出几个还保留记录的

1。关闭IPV6
    1. 开启 /etc/modprobe.d/aliases
    2. 里面有一行是 "alias net-pf-10 ipv6"
    3. 将以上一行用以下两行取代:
        alias net-pf-10 off
        alias ipv6 off

    Red Hat
        1. 开启 /etc/modprobe.conf
        2. 加入这一行:
            alias net-pf-10 off
    更改以上档案后重新启动系统,这时 IPv6 便会关闭。据说能改善DNS的效能,解析ip时回应变快。
    另外为了保险起见,把firefox的ipv6选项也关闭一下
    firefox地址栏输入:about:config
    过滤器里面输入:network.dns.disableIPv6
    双击将值设成true
2。另外一种关闭方法:这种方法能从全局上关闭IPV6
    1)检查ipv6是否打开
        lsmod | grep ipv6
        >ipv6 265856 10
    2)关闭ipv6
        sudo -i && echo "blacklist ipv6" > /etc/modprobe.d/blacklist-ipv6
        或者
        sudo echo "blacklist ipv6" | sudo tee /etc/modprobe.d/blacklist-ipv6
    3)重启机器,暂时使用[1)]中的命令查看是否ipv6已经被关闭
        dbott@thedrake:~$ lsmod | grep ipv6
        dbott@thedrake:~$
3。删除ipv6的host
    系统->系统管理->网络
    如果当前用户没有权限,按"解锁"
    主机里面把ipv6相关的项目全部删除
4。禁用直接拥塞通告
    即禁用tcp_ecn:
    把TCP的直接拥塞通告(tcp_ecn)关掉的方法如下:
     sudo gedit /etc/sysctl.conf
    在里面加入
    net.ipv4.tcp_ecn = 0
    然后重新启动一下系统。
5。查看
    sudo gedit /etc/network/interfaces
    不知道为什么我的只有lo的配置。
    auto lo
    iface lo inet loopback
    所以我追加了以下两行配置
    #add start
    auto eth0
    iface eth0 inet dhcp
    #add end
    重启网络
    sudo /etc/init.d/networking restart
6。在gusty下的bug影响
    这条仅在关闭ipv6后情况还是严重的情况下
    具体bug信息请参照:https://bugs.launchpad.net/ubuntu/+source/tracker/+bug/131983
    执行以下命令
    $ sudo apt-get remove --purge tracker
    因为该软件占用了一定的系统资源
    ps:不知道8.04改掉了没有
7。以上都未奏效的情况下,可能就需要调整网卡了
    首先需要知道你的网卡类型,可能写在你的网卡说明书,或者主板说明书中(主板集成的情况下)
    如果你还保留着windows,那么可以使用一些硬件测试软件,或者硬件管理器来查看
   
    以下命令用来查看你在linux下的网卡信息
    sudo ethtool eth0
    我的信息如下
    Supported ports: [ MII ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Advertised auto-negotiation: Yes
    Speed: 100Mb/s
    Duplex: Full
    Port: MII
    PHYAD: 1
    Transceiver: external
    Auto-negotiation: on
    Supports Wake-on: g
    Wake-on: d
    Link detected: yes
    请务必根据你的网络具体情况修改我的命令
    sudo ethtool -s eth0 speed 100 duplex full autoneg off
    如果起效,修改以下这个文件
    sudo gedit /etc/rc.local
    将上面执行过的命令加到exit 0这行的前边,以保证这条修改能够自动在系统启动时执行
    【20080613】补充,最终还是将Auto-negotiation参数改成On。
    打开和不打开差距很巨大。后者ftp的速度停留在1~3MB/s之间。而前者能达到我的路由极限10MB/S


参考网址:
[1].http://ubuntuforums.org/showthread.php?t=589011&highlight=speed+up+gutsy
[2].http://www.lirui.name/post/21.html



 
fason @ 2007-09-30 19:27

1.直接从cd压制iso文件
sudo umount /dev/cdrom
dd if=/dev/cdrom of=file.iso bs=1024

2.将文件或者目录放入已存在的iso中
工具:mkisofs
mkisofs -r -o file.iso your_folder_name

3.生成md5文件
md5sum file.iso > file.iso.md5

4.烧制iso成cd
在ubuntu里面有右键直接烧录的选项