??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩中文久久,性做久久久久久免费观看,国产99久久久久久免费看http://www.shnenglu.com/len/archive/2008/09/25/62778.htmllenlenThu, 25 Sep 2008 12:06:00 GMThttp://www.shnenglu.com/len/archive/2008/09/25/62778.htmlhttp://www.shnenglu.com/len/comments/62778.htmlhttp://www.shnenglu.com/len/archive/2008/09/25/62778.html#Feedback6http://www.shnenglu.com/len/comments/commentRss/62778.htmlhttp://www.shnenglu.com/len/services/trackbacks/62778.html|络书签自从del.icio.us推出后,各个|络巨头都推Z相应的服务,对于各个书签服务Q我针对了自q情况q行了一番小调查后,定下用google bookmarks服务。虽然del.icio.us味书签最早推出,q有些特别的工功能,有着很大的用LQ但是我感觉它更偏向C交化的web服务Q如好的书{օ享等Q有着好友的功能,而我更偏向于需要一U简z的书签存储功能。再有就是美味书{改版,对于|络安全功能q于注重Q导致一U不好的用户体验Q比如密码要数字字母混合Qƈ且不能与用户名有太多重合{,q有密码最多线上保存两周。这些安全措施我都知道,但比一些公司密码管理还严,q至于吗Q?/p>

国内的也出现了许多对应的web 2.0的网站,但是我没试用。还有一个选择是baidu?a >搜藏Q除了网快照这个功能比较吸人外Q其他ƈ无亮炏V最早看中google书签是因为它的开放性,比如搜藏都没有导出功能,而google有导出Q不怕用h失,q一点蛮赞的。但是就其本w来_使用q不方便Q后来我使用了一直比较反感的工具条后Q又开始用它的书{,除了d方便以外Q整理和查找功能都比较薄弱。比如在U上Q不能直接拖拽进行标{分类Q要手工点击~辑。google对这个服务不怎么看中Q自推出以后Q没有什么新的功能增加,希望以后有类似网快照的存档功能好了?/p>

现在使用firefox3览器后Q找CGMarks插gQ它能直接存取google书签Q包含一个边栏,工具栏,和一个书{ֿ速查找框Q可q行扚w修改Q删除书{,删除标签{等功能。它也可以在没有安装google工具条的情况下用,q有定制工具栏等Q最妙的是有了google工具条中没有的查扑֊能,不然在上千条书签扑ֈ你需要的Q那是有点儿困难的。现在我自q收藏全都保存到google书签了,q样以后重装pȝQ再不用做备份了Q而且在不同的机子上都可以用?/p>

Z说下Q如何将FF3的书{֯入到google书签服务中,那就使用google工具条,里面书签选项里有导入功能的,很简单?/p>

len 2008-09-25 20:06 发表评论
]]>
Live Spaces新旧I间q移Ҏhttp://www.shnenglu.com/len/archive/2008/09/24/62712.htmllenlenWed, 24 Sep 2008 13:50:00 GMThttp://www.shnenglu.com/len/archive/2008/09/24/62712.htmlhttp://www.shnenglu.com/len/comments/62712.htmlhttp://www.shnenglu.com/len/archive/2008/09/24/62712.html#Feedback0http://www.shnenglu.com/len/comments/commentRss/62712.htmlhttp://www.shnenglu.com/len/services/trackbacks/62712.html微Y启用了新的live域名Q有许多人将hotmail之类的帐可{到新的域名,q就出现了如何将原帐号下的个Z息{Ud新帐L问题。对于live messager的联pMh列表可采用其联系人选项中的导入导出功能Q而最ȝ当属live spaces的空间博客{Ud新的帐号名下。最直接Ҏ是联系微Y理员,你旧帐号下的空间所有权转移到新帐号名下Q但是业务上是否可行不得而知。因此{而另一ҎQ开新的I间Q将旧空间的博客转移到新I间来,本文是采用q种思\Q顺带提及下live api的简单用?/p>

Windows Live Spaces MetaWeblog API提供了给外部E序q行文章内容讄和读取的功能。API使用了XML—RPC协议来在客户端应用程序与Weblog服务器端q行通讯?/p>

Z使用MetaWeblog API~辑I间中的博文内容Q首先需要在I间启用E-mail发布功能Qƈ讄密码字?/p>

  1. C的空间中的Options->E-mail Publishing选项q行配置
  2. 打开E-mail发布功能Qƈ选择 secred word的密码字?/li>

在程序中会用到用户名和密码,如果你的I间地址为: oldname.spaces.live.comQ则用户名就?strong>oldname,而不是你的live idQ密码则是上面设|的secred word,而不是live id的密码?/p>

现在的MetaWeblogApi能进行发布新博文Q编辑现有的博文Q获取指定博文,获取cd列表Q获取最q发布的博文Q删除博文,获取用户博客信息Q获取用户信息等功能。由q些功能Q想q移博客内容Q首先需要获取到旧空间里的博文。我们自然想到用MetaWeblogAPI metaWeblog.getRecentPosts Method函数Q指定一个较大的|然后获取全部的博文。很可惜Q对于live spaces值只能取20,也就是说只能获取最q?0博文。顺便提下,q里?0包括你己发布的Q和存在I间里的草稿Q这些草E有时候ƈ不会在空间里昄出来Q但是操作时会有表示。如果用MetaWeblogAPI metaWeblog.getPost MethodQ需要知道指定博文的idP没有获取到全部博文id的方法作辅助Q这又是一个因难?/p>

最后我采用了将metaWeblog.getRecentPostsҎ的获取D?Q每ơ取最q的一博文,然后记录idP这博文?a >MetaWeblogAPI metaWeblog.newPost Method发表到新I间Q然后用MetaWeblogAPI blogger.deletePost Method这idL博文从旧I间中删去,重复q行Q直到无法从旧空间里获取到博文。在E序实现借用了MSDN中的CZQؓ了防止网l故障之cM及做了备份,先是获取博文内容写到本地文Ӟ再进行删除?/p>

E序中还要说明的是,׃live spaces服务器用非标准的时间格式,造成?em>DateTime.Now和获取到的博文的dateCreated都是"1/1/0001 12:00:00 AM"的格式,q需要在InvokeҎ调用前加上this.NonStandard = XmlRpcNonStandard.AllowNonStandardDateTime语句。还有需要用到CookComputing.XmlRpcV2.dllQ它实现?net 2.0版本的XML-RPC协议Q己包含在文末的源码中。如果是.net 1.1Q需要其他相应的文gQ可具体参见http://www.xmlrpc.com/metaWeblogApi?/p>

最后要提下的是Q程序只用于我自qI间q移Q再加上不懂C#Q用户名和密码之c都编码了QMetaWeblog之类的方法也应能用于像cppblog之类用wordpress的博客空间。这些部分加之完善,应能做个博客搬家工具的?/p>

参考:

文中的迁Udh码下?/a>

MDSN Windows Live Spaces SDKs



len 2008-09-24 21:50 发表评论
]]>
披着Chrome外衣的Firefoxhttp://www.shnenglu.com/len/archive/2008/09/07/61239.htmllenlenSun, 07 Sep 2008 10:45:00 GMThttp://www.shnenglu.com/len/archive/2008/09/07/61239.htmlhttp://www.shnenglu.com/len/comments/61239.htmlhttp://www.shnenglu.com/len/archive/2008/09/07/61239.html#Feedback5http://www.shnenglu.com/len/comments/commentRss/61239.htmlhttp://www.shnenglu.com/len/services/trackbacks/61239.htmlGoogle的chrome览器一出来Q我p它的z风格给吸引住了Q试用了几天QM上还不错。但是还有几个问题,一是扩展太,用些地方用v来不方便Q像它自家的google工具栏都q没有开始支持。二是有时候在切换tab的时候,感觉有明昄停滞感,不知是否是多q程切换的原因,三是q有些网站不支持chrome?/p>

因ؓq些U种原因Q我切换回了firefox 3。对于ff3Q我也是刚刚用,但是用顺手,特别是插件机Ӟ可以把玩好长旉。正像别q的那样Q没有插件的ff3Q还不如IE呢。于是通过讄Q将自己的Firefox打造成了chrome风格Q先上全屏截图,初始|快速拨P因ؓ隐私关系Q把它们都复位了Q效果跟chrome差不多的?/p>

firefox-chrome

下面介绍要操作步骤:

1、Chrome主题风格 Chromifox是仿Chrome的主题,现处于实验版本阶D,因此下蝲安蝲需要以|站注册用户的n份登陆。下载地址为:https://addons.mozilla.org/en-US/firefox/addon/8782

2、去除菜单栏 需要安?strong>Compact Menu 2的插Ӟ它可以定制原来的菜单栏ؓ单个按钮或图标。下载地址为:https://addons.mozilla.org/en-US/firefox/addon/4550

3、去除标题栏 q工作稍微有点儿ȝQ需要一个插件和一个脚本。Custom Buttons 2扩展提供创徏Q维护,导入Q导出工h按钮的基代码Q也是你可以用javascript代码写些特定用途的按钮。下载地址为:https://addons.mozilla.org/en-US/firefox/addon/5066。安装完成后Q再使用一个ؓ隐藏标题栏而定制的脚本Q地址为:http://custombuttons2.com/forum/viewtopic.php?f=35&t=523Q点d中的Toggle Chrome链接?a href="custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//custombuttons2.com/%22%3E%0A%20%20%3CCb2Ver%3E2.0.7.6%3C/Cb2Ver%3E%0A%20%20%3Cname%3EToggle%20Chrome/Maximized%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAWElEQVR4Xs3RQQqAMAxE0T+SK7bH0LPoMdpD1kVpJRJ0JfiWITBDIhqdcMbcGAoh0aARE7DwwhCFBAfeClDJxrSJae+pTxF/WjDX/JNLXt+seOneIcfvPgGTthCzF0BPtwAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%5D%5D%3E%3C/code%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bfunction%20hideChrome%28%29%20%7B%0A%20%20if%20%28navigator.platform%20%3D%3D%20%22Win32%22%29%20%7B%0A%20%20%20%20window.moveTo%280%2C0%29%3B%0A%20%20%20%20window.maximize%28%29%3B%0A%20%20%20%20document.getElementById%28%22main-window%22%29.setAttribute%28%27hidechrome%27%2C%27true%27%29%3B%0A%20%20%20%20//%20preserve%20small%20area%20for%20taskbar%20to%20appear%0A%20%20%20%20window.resizeTo%28screen.availWidth%2C%20screen.availHeight-2%29%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20document.getElementById%28%22main-window%22%29.setAttribute%28%27hidechrome%27%2C%27true%27%29%3B%0A%20%20%20%20window.moveTo%280%2C0%29%3B%0A%20%20%20%20window.resizeTo%28screen.availWidth%2C%20screen.availHeight%29%3B%0A%20%20%20%20window.maximize%28%29%3B%0A%20%20%7D%0A%7D%0A%0A//%20COMMENT%20OUT%20THE%20NEXT%20LINE%20TO%20START%20BROWSER%20NORMALLY%0AhideChrome%28%29%3B%0A%0Athis.leftclick%20%20%20%3D%20function%28evt%29%7B%0A%0A%20%20function%20showChrome%28%29%20%7B%0A%20%20%20%20if%20%28navigator.platform%20%3D%3D%20%22Win32%22%29%20%7B%0A%20%20%20%20%20%20document.getElementById%28%22main-window%22%29.setAttribute%28%27hidechrome%27%2C%27false%27%29%3B%0A%20%20%20%20%20%20window.resizeTo%28screen.availWidth%2C%20screen.availHeight%29%3B%0A%20%20%20%20%20%20window.maximize%28%29%3B%0A%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%0A%20%20%20%20%20%20document.getElementById%28%22main-window%22%29.setAttribute%28%27hidechrome%27%2C%27false%27%29%3B%0A%20%20%20%20%20%20window.maximize%28%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20function%20toggleChrome%28%29%20%7B%0A%20%20%20%20var%20mainWindow%20%3D%20document.getElementById%28%22main-window%22%29%3B%0A%20%20%20%20var%20isFullScreen%20%3D%20mainWindow.getAttribute%28%27hidechrome%27%29%3B%0A%09%09%09%0A%20%20%20%20if%20%28isFullScreen%20%3D%3D%20%22%22%20%7C%7C%20isFullScreen%20%3D%3D%20%27false%27%29%20%7B%0A%20%20%20%20%20%20hideChrome%28%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20showChrome%28%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0AtoggleChrome%28%29%3B%0A%7D%0A%0Athis.setAttribute%28%27onclick%27%2C%20%27gQuot%28event%2C%20this%29%27%29%3B%20//%20Calls%20the%20Global%20MouseClick%20handler%20gQuot%0A%0Athis.style.opacity%20%3D%20%27.65%27%3B%0Athis.setAttribute%28%27onmouseover%27%2C%20%27custombuttons.ButtonBrt%28event%29%3B%27%20%29%3B%0Athis.setAttribute%28%27onmouseout%27%2C%20%27custombuttons.ButtonDim%28event%29%3B%27%20%29%3B%0A%0Athis.setAttribute%28%22author%22%2C%27nicholas%27%29%3B%09%09%09%09%09%09%09%09//%20Stores%20Author.%0Athis.setAttribute%28%22version%22%2C%2720080622.00%27%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09//%20Stores%20Version.%0Athis.setAttribute%28%22homepage%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09%09//%20Stores%20Homepage.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22http%3A//custombuttons2.com/forum/viewtopic.php%3Ff%3D35%26t%3D%22%20+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22523%22%29%3B%0Athis.setAttribute%28%22dependency%22%2C%27FF%202.0.*%2CCB%202.0.*%27%29%3B%09%09%09%09%09%09//%20Stores%20Dependency.%0Athis.setAttribute%28%22status%22%2C%27Complete%27%29%3B%09%09%09%09%09%09%09%09//%20Stores%20Devstatus.%0Athis.setAtt">Toggle Chrome/MaximizedQ即可安装?/p>

4、隐藏状态栏 无需M插gQ只需菜单栏的“查看”中的“状态栏”不要勾选上卛_?/p>

5、快速拨?Speed Dial?strong>Fast Dialq两个插件均能提供,我现使用Speed DialQ地址?a title="https://addons.mozilla.org/en-US/firefox/addon/4810" >https://addons.mozilla.org/en-US/firefox/addon/4810Q另Fast Dial的地址?a title="https://addons.mozilla.org/en-US/firefox/addon/5721" >https://addons.mozilla.org/en-US/firefox/addon/5721?/p>

其他诸如隐n模式、下载状态栏、将|站转换为独立的应用E序都可实现Q具体可参见Q?a title="http://www.cnbeta.com/articles/64031.htm" >http://www.cnbeta.com/articles/64031.htm

我的扩展列表

附带我在用的一些有用的插g功能Q对于一般的用户来讲Q这些功能也会大大节省你的时_提高你上|浏览的体验。这些可能是最基本的,高的要随你自己Q你的地盘,你做丅R?/p>

IE Tab 有些|站不支持非IE内核的怎么办,先不要有抱怨,有了它让你自由切换到IE的内核,但是外部功能不会减少Q必?/p>

FireGestures 鼠标手势Q我是从Maxthon转过来的Q这个功能太好用了。这个插件更强大Q可以TabQ按键,滚轮上都可应?/p>

Easy Dragtogo cM于鼠标手势,有些链接只要一拖,可按设|在新tab或在另一tab打开Q不需要再用右键了。我对FireGesturesq不熟,不知道这功能是否可用FireGestures代替,q功能现在还需?/p>

Flashgot 文g下蝲理Q我用于理flashget工具Q内|支持许多下载工?/p>

Adblock 没有q告的世界真清静Q虽然Firefox自n的拦截能力己l很ZQ但是它提供更强大的定制能力Q一切由你自己定

Noscript 提高览安全Q可止一些恶意的脚本Q可用效对付一些XSS跨站d{?/p>

FoxyProxy 如果你需要时常在代理服务器上q行切换的话Q这非常用帮助。如果结合像Tor之类的工P那么爬墙也不是g困难的事了?/p>

len 2008-09-07 18:45 发表评论
]]>
单单用py2exe打包python脚本http://www.shnenglu.com/len/archive/2008/08/11/58547.htmllenlenMon, 11 Aug 2008 11:19:00 GMThttp://www.shnenglu.com/len/archive/2008/08/11/58547.htmlhttp://www.shnenglu.com/len/comments/58547.htmlhttp://www.shnenglu.com/len/archive/2008/08/11/58547.html#Feedback0http://www.shnenglu.com/len/comments/commentRss/58547.htmlhttp://www.shnenglu.com/len/services/trackbacks/58547.htmlpy2exe是实用的python脚本工具Q可以将python脚本E序转换为exe执行文g。这样你的pythonE序可以没有安装pythonq行时环境的电脑里运行了。py2exe方便地提取出pythonq行时所需要的文g档案Q你需要做的就是写一个两三行的安装脚本文件?/p>

py2exe可以?a title="http://sourceforge.net/projects/py2exe/" >http://sourceforge.net/projects/py2exe/下蝲Q唯一需要注意的是下载与你python版本号对应的版本Q简单的英文教程http://www.py2exe.org/index.cgi/Tutorial非常Ҏ入门?/p>

Ҏ先写的一?a href="http://www.shnenglu.com/len/archive/2008/07/02/55174.html">代理验证脚本q行exe文g装作ؓCZQ这试脚本名ؓHttpProxyTester.py?/p>

首先Q最好测试运行一下待装的脚本以定没有问题Q然后在HttpProxyTester.py脚本的同U目录新Zsetup.py文g?/p>

# setup.py

from distutils.core import setup
import py2exe

setup(console=['HttpProxyTester.py'])

上面的文仉先引入了distutils模块Q这模块随python安装分发的,也就是说内置的。接着导入py3exe模块Q它其实对distutils做了一些功能扩展。接下来的语句说明是控制台运行。对于windows的GUI模式q行Q而不出控制台H口Q则需要setup(windows=['xxx'])之类指oQ这对于pyWidgetE序很有用?/p>

在完成安装脚本后Q接下来是在控制台下运行这脚本?/p>

>python setup.py py2exe

q时会打印出许多log信息Qƈ在同U目录下出现两个新的文g夹:build和dist。build文g夹下是py2exe生成的一些时文Ӟdist是需要分发的文g内容Q可以这文gҎ包,然后在别的机子上q行了?/p>

MQpy2exe非常单实用,三分钟就可以搞定?/p>

len 2008-08-11 19:19 发表评论
]]>
IE代理依赖http://www.shnenglu.com/len/archive/2008/07/08/55621.htmllenlenTue, 08 Jul 2008 05:27:00 GMThttp://www.shnenglu.com/len/archive/2008/07/08/55621.htmlhttp://www.shnenglu.com/len/comments/55621.htmlhttp://www.shnenglu.com/len/archive/2008/07/08/55621.html#Feedback0http://www.shnenglu.com/len/comments/commentRss/55621.htmlhttp://www.shnenglu.com/len/services/trackbacks/55621.html在Windows下,许多|络E序的连接依赖于IE览器中的代理服务器的设|,IE览器的代理讄很可能设定了注册表中的全局|络q接配置?/p>

我在IE览器中讄了代理,而用Maxthon览|页。在写PythonӞ用了urllib2库,后来出现了下面的错误Q?/p>

urllib2.URLError: <urlopen error (10061, 'Connection refused')>

先前q个E序是运行正的Q又直接用浏览器讉K需要的|址Q正常。通过排查Q发现IE览器中讄了代理,而代理无效,而urllib2库用其|络配置Q因此无法连接。通过取消代理Q程序连接正常?/p>

q有一例是Q刚才用Windows Live Writer索日?和发布日志时出错Q分别显C如下的错误Q?/p>

error  err

q也是因为WLW使用IE的网l设|,造成的网l错误而显C的错误提示?/p>

因此在设|了IE代理Qƈ使用其他与网l相关的E序Q要特别注意其是否对IE代理讄有依赖。像Maxthon{就可选择不用IE代理配置的选项?/p>

len 2008-07-08 13:27 发表评论
]]>
CygwinQ以及远E登陆Linux桌面http://www.shnenglu.com/len/archive/2008/07/03/55234.htmllenlenThu, 03 Jul 2008 13:55:00 GMThttp://www.shnenglu.com/len/archive/2008/07/03/55234.htmlhttp://www.shnenglu.com/len/comments/55234.htmlhttp://www.shnenglu.com/len/archive/2008/07/03/55234.html#Feedback0http://www.shnenglu.com/len/comments/commentRss/55234.htmlhttp://www.shnenglu.com/len/services/trackbacks/55234.html安装Cygwin

?a >cgywin官方主页下蝲安装文gsetup.exe,q只是一个网l安装包Q体U很。cgywin包含了许多GNU下的应用E序Q真正安装时会根据你选择的组Ӟ会自动去|上下蝲安装的。在国内最好用镜像服务,q样速度会提高很多,?a title="http://www.cygwin.net.cn/" >http://www.cygwin.net.cn/?a title="http://www.cygwin.cn/" >http://www.cygwin.cn/下蝲上述的安装包Qƈ在安装进行到Choose A Download Siteq个步骤Ӟ选择合理的镜像。由于中国南北网速的差异Q上qC个地址都尝试一下,看看哪个对你而言速度更快一些?/p>

在进行到Select Packagesq个步骤Ӟ选择你需要包Q徏议如下:

  • Shells -> rxvt-unicode-x  强大的Xl端Q可用它替换windows下的cmd.exe
  • Net-> openssh  ssh客户端,可作putty的替?
  • Net-> inetutils  可选,包含一些基本的|络工具Q如telnetQ否则在cygwin下无法用windows的telnet

cygwin安装时会自动q行包关联,在安装rxvtӞ已自动将X server安装上了?/p>

配置调整

启动cygwin,实际上是q行cgywin.bat批处理,它又调用了cmd.exe。我们将安装的rxvt作ؓ默认l端Q需要修改cygwin.bat。下面是我机子上的配|修改,请对应修改相应的路径?/p>

@echo off
d:
chdir d:\Cygwin\bin
rxvt -e bash --login -i

调整rxvt观感Q需要修改你用户ȝ录下?Xdefaults文gQ此文g在你选择的安装目录下的home\usrname下,在我的机子上?tt>D:\Cgywin\home\len。若不存在,可在此目录下新徏一个,修改内容如下Q?/tt>

Rxvt*background:        black
Rxvt*foreground:        #E2E6C7 
Rxvt*font:              9x16 
Rxvt*boldFont:          9x16 
Rxvt*scrollBar_right:   True
Rxvt*saveLines:         1024
Rxvt*geometry:          80x30
Rxvt*color0:            black
Rxvt*color1:            red
Rxvt*color2:            green   
Rxvt*color3:            yellow
Rxvt*color4:            blue
Rxvt*color5:            magenta
Rxvt*color6:            cyan    
Rxvt*color7:            white   
Rxvt*color8:            burlywood1
Rxvt*color9:            sienna1 
Rxvt*color10:           PaleVioletRed1  
Rxvt*color11:           LightSkyBlue    
Rxvt*color12:           white   
Rxvt*color13:           white
Rxvt*color14:           white   
Rxvt*color15:           white 

在cygwin下也是可以访问Windows下其他盘W的,?tt>cd /cygdrive/c/windowsQ就转到了C盘windows目录下。这样对于在linux下工作的有点儿别扭,更希望是?tt>cd /mnt/c/windows的mount方式来访问其他盘W。这需要修Ҏ册表的选项Q将HKLM\software\Cygnus Solutions\Cgywin\mounts v2下的子项cygdrive prefix更改?tt>/mnt卛_?/p>

q程登陆Linux桌面

其实q里介绍的不仅仅适用于LinuxQ而是针对X Window的。X Widonw的介l不q行赘述Q但需要明其中的服务器端和客L的区别,在X Window的概念中服务器端是指你进行显C,输入输出的机器,也是接下来示例中的本机len-computer,IP?0.3.164.70Q而客L指的是进行远E登陆的机器auto-desktop,IP?0.3.164.74?/p>

在局域网内最单的Ҏ是用XDMCPq接Q这时远E的机器启用xdmcp。那台机器运行着ubuntu-8.04Q用gdmq行H口理Q编?etc/gdm/gdm.conf-custom如下Q其他版本的linux需扑ֈ对应的窗口管理的配置文g?/p>

[security]
DisallowTCP=false

[xdmcp]
Enale=true

修改完后Q在q程机器上重启服务,$sudo /etc/init.d/gdm restart?/tt>接下来本机启动cgywinQ{到X目录下,q行Xwin.exeQ?-query指定q程的linux机器的ip卛_?/p>

Len@len-computer /usr/X11R6/bin
$ cd /usr/X11R6/bin

Len@len-computer /usr/X11R6/bin
$ Xwin -query 10.3.164.74

q里会出现如下面囄的窗口,提示输入用户名和密码。另再附一张在登陆成功后,我在本地执行q程操作的截图?/p>

login

cygwinX

如果你需要连接的q程机器比较固定Q可以修Ҏ地机?tt>d:\cgygin\usrX11R6\bin\startxdmcp.bat中的REMOTE_HOSTgؓ你需要连接机器的IPQ这个批处理讄了一些有用的环境变量倹{或怽需要创Z个桌面的快键方式Q这hơ点击,q接连接到q程机器了?/p>

不引入桌面环?/h3>

可能有时候只需要将某个需要X服务的远E应用程序引入到本地桌面昄Q而不需要启动像上面的GNOME或者KDE{庞大的桌面环境。这样做比较适合喜欢l端操作的hQ我常常终端敲命oQ然后将gvim,openofficeq些从远E导入到本地操作?/p>

扑ֈd:\cgywin\usr\X11R6\bin\startwin.batQ将%RUN% xterm -e /usr/bin/bash -l注释掉,因ؓ我们q有了rxvt,不需要一个新的xterml端了,执行该批处理文gQ就会在本机q行X server。启动cgywinQ用ssh登陆到远E机器上Q执行如下命令,导出DISPLAY环境变量和运行你感兴的E序?/p>

auto@Auto-desktop:~$ export DISPLAY=10.3.164.70:0.0
auto@Auto-desktop:~$ gvim&
[1] 22652
auto@Auto-desktop:~$ oowriter&

其中环境变量DISPLAY中的:0.0部分表示X server的display和screen。display指运行着X server实例。如果用TCP/IPq接Q表C的是端?000+display号做接。screen代表X server上的不同输出讑֤。我在例子中执行gvim和openoffice.org-writerQ运行的效果可看下面的截图。在ubuntu上运行着的gvim和openoffice都在我本?0.3.164.70上显CZQƈ且可操作?/p>

screen

有用的链?/h3>

Cgywin/X FAQ 在碰C些操作问题时Q不妨先看看q䆾FAQ

使用cygwin X server实现Linuxq程桌面 easwy介绍了KDE环境下的配置Q部分受此启?/p>

使用rxvt做ؓcygwinl端 到rxvt中文昄问题Ӟ或许有帮?/p>

len 2008-07-03 21:55 发表评论
]]>单的QQ代理验证http://www.shnenglu.com/len/archive/2008/07/02/55174.htmllenlenWed, 02 Jul 2008 14:13:00 GMThttp://www.shnenglu.com/len/archive/2008/07/02/55174.htmlhttp://www.shnenglu.com/len/comments/55174.htmlhttp://www.shnenglu.com/len/archive/2008/07/02/55174.html#Feedback0http://www.shnenglu.com/len/comments/commentRss/55174.htmlhttp://www.shnenglu.com/len/services/trackbacks/55174.htmlQQ在许多公司内部被止使用,Z能用QQ,E微懂点儿计机的h都知道用代理。QQ提供了socket和http代理q两U功能,socket代理功能强大Q但一般公司对外允许连接的端口h较有限,难以利用。大多数公司是允许连接外部的80端口的,q样使用QQ的http代理是可行的。但是找到能用的QQ代理有点儉K烦,因此下面的Python代码提供了自动进行QQ代理验证的功能?/p>
import urllib2
import socket
import re

f = urllib2.urlopen('http://www.proxycn.com/html_proxy/http-1.html')
content = f.read()
f.close()
ipPattern = re.compile(r'(\d+\.\d+\.\d+\.\d+):80')
ipList = ipPattern.findall(content)
print ipList
requestData = "CONNECT http.tencent.com:443 HTTP/1.1\x0d\x0a"
requestData += "Accept: */*\x0d\x0aContent-Type: text/html\x0d\x0a"
requestData += "Proxy-Connection: Keep-Alive\x0d\x0a"
requestData += "Content-length: 0\x0d\x0a\x0d\x0a"
for ip in ipList:

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
        s.connect((ip,80))
        s.send(requestData)
        data = s.recv(64)
        if data.find("200 Connection established")!= -1:
            print ip, 'good'
            # A vailable proxy is found once, then exit the program
            s.close
            exit(0)
        else:
            print ip, 'bad'
    except socket.error:
        print ip, 'dead'
    finally:
        s.close

E序在找C个可用的QQ代理后退出,用good标识。另两种代理服务器的状态是dead,说明本地无法q接C理服务器Q或是badQ能与代理服务器建立q接Q但是代理不能与QQ服务器通讯?/p>

代码思\

通过代理中国获取?0端口的代理服务器列表Q用了urllib2模块获取面数据Q然后正则表辑ּ解析?0端口的IP地址存入list中。接下来的几行代码简单,但是很重要,使用较ؓ底层的socket对象Q构造合适的数据包通过代理Q请求与QQ服务器连接,通过d的返回数据包来验证连接是否能建立?/p>

q里主要涉及CHTTP协议的CONNECT的概念,很多人可能认为http代理只是为web览提供服务Q其实CONNECTҎ允许允许用户建立TCPq接CQ何端口,q意味着代理不仅可用于HTTPQ还可用于FTPQQQ{其他协议。只是网上提供CONNECTҎ的代理服务器比较,我有时候扫了一大堆Q也没有扑ֈ一个可用的代理。反q来_有时候你扑ֈ的能览|页的http服务器,未必能用在QQ上,QQ需要的是能CONNECT的代理。网|览一般只使用HTTP协议的GET或POSTҎQ提供这两种Ҏ的服务器多了?/p>

了解了代码的原理Q稍做改动,可以用于其他类型的代理的验证了Q需要的是一些基本网l知识和数据报的发送和接收?/p>

len 2008-07-02 22:13 发表评论
]]>
好用的Subversion属性功?/title><link>http://www.shnenglu.com/len/archive/2008/06/30/54948.html</link><dc:creator>len</dc:creator><author>len</author><pubDate>Mon, 30 Jun 2008 04:06:00 GMT</pubDate><guid>http://www.shnenglu.com/len/archive/2008/06/30/54948.html</guid><wfw:comment>http://www.shnenglu.com/len/comments/54948.html</wfw:comment><comments>http://www.shnenglu.com/len/archive/2008/06/30/54948.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/len/comments/commentRss/54948.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/len/services/trackbacks/54948.html</trackback:ping><description><![CDATA[ <p>Subversion的属性是非常好用的功?它将一些工作自动化Q实Cؓ受版本控制的源文件添加元信息的作用。属性是外部不可见的Q可以简单认为是附加上在文g上的信息Q和文g大小之类的信息是一LQ只不过他是通过subversion来管理的。属性的名称和值可以是你希望的M|限制是名称必须是可ȝ文本Qƈ且最好的一Ҏq些属性也是版本化的,像你的文本文g内容Q你可以像提交文本修改一样修攏V提交和恢复属性修改,当你更新时也会接收到别h的属性修改—你不必为适应属性改变你的工作流E?/p> <p>Subversion保留了一l名UC<code>svn:</code>开头的属性,来预定义一些有用的功能。比如你怼看到一些h的源代码底部有像下面之类标识的文字:</p> <pre class="code">$Id: main_window.py 68 2008-06-30 02:05:05Z Len $</pre> <p>q就使用了Subversion 中的 svn:keywords的自动属性,它让发生在源代码中的一些属性的变化自动地更新到源代码中。这行字的意思是表示Qmain_windows.py q个源代码文件最后被用户 len 更新?2008-6-30 02:05:05ZQ修订版本号?68。要实现q样的自动更斎ͼ你只要对需要这样属性的文g上用下面这行指令?</p> <pre class="console">> svn propset svn:keywords "Id" main_window.py</pre> <p>或者用TortoiseSVN中的Properties的操作按钮,方便地增加新的属性。接着需要在源代码文件中需?Subversion q行自动更新的地Ҏ?$Id$ q样?KeywordQ那么在你下ơ进行提交更新时Q该<code>$Id$</code> ׃?Subversion 自动替换?code>$Id: main_window.py 68 2008-06-30 02:05:05Z Len $</code> q样的格式? <br />Subversion 中可以用的Keyword 包括下面q些Q?/p> <ul> <li>Id <br />上面介绍q的l合的格?</li> <li>LastChangedDate <br />最后被修改的时_~写?Date?</li> <li>LastChangedBy <br />最后修改该源代码文件的用户名,~写?Author?</li> <li>LastChangedRevision <br />最后修订的版本P~写?Revision?</li> </ul> <p>如果xơ向Subversion服务器提交文件修ҎQ都要设|文件的属性,则需要进行Subversion配置的修攏V配|文件在你用Lȝ录下Q在Windows下应cM?code>C:\Documents and Settings\Len\Application Data\Subversion\config</code>文gQLen是Windows用户名,注意Application Data是隐藏文件夹Q需要显C全部文件才能看到。接着如下相应的修改,对你惌处理的文件做配置?/p> <pre class="code">enable-auto-props = yes [auto-props] *.c = svn:keywords=Id *.py = svn:keywords=Id </pre> <p>对于开源项目,常见其源文g头部有着版权声明的文本,q些操作大多也是通Subversion的属性功能来完成的,有关更详l的介绍和操作指南,可参?a >Subversion中文手册</a>中的<a >属?/a>章节?/p> <img src ="http://www.shnenglu.com/len/aggbug/54948.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/len/" target="_blank">len</a> 2008-06-30 12:06 <a href="http://www.shnenglu.com/len/archive/2008/06/30/54948.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>强大的网l传输工具cURL和libcurlhttp://www.shnenglu.com/len/archive/2008/06/21/54229.htmllenlenSat, 21 Jun 2008 08:33:00 GMThttp://www.shnenglu.com/len/archive/2008/06/21/54229.htmlhttp://www.shnenglu.com/len/comments/54229.htmlhttp://www.shnenglu.com/len/archive/2008/06/21/54229.html#Feedback1http://www.shnenglu.com/len/comments/commentRss/54229.htmlhttp://www.shnenglu.com/len/services/trackbacks/54229.html介绍

cURL是一个利用URL语法的文件传输工?是基于libcurl的前端命令行工具。它支持很多协议QFTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP?它同h持HTTPS认证QHTTP POSTҎ, HTTP PUTҎ, FTP上传, kerberos认证, HTTP上传, 代理服务? cookies, 用户?密码认证, 下蝲文g断点l传, 上蝲文g断点l传, http代理服务器管道( proxy tunnelingQ? 甚至它还支持IPv6, socks5代理服务?通过http代理服务器上传文件到FTP服务器等{,功能十分强大?/p>

除了使用curl命o行直接进行相关的|络操作Q你也可以自由地使用libcurl,它是用C语言~写的,可以l定C多的~程语言中,如C,C++,PHP,Python,Perl,Java{等。你可以很方便地利用libcurlQ在E序中进行一些网l传输工作,来代替一些语a的内|,使你的知识可重用。在Unix工作环境下,你可以用curl代替wget和ftp{工Pq能这U学习经验迁Ud来使用libcurl来完成一些自动化d?/p>

curl是瑞典curll织开发的Q可以通过http://curl.haxx.se/来获取更详细的信息和下蝲文g?/p>

curl命o行工具?/h3>

curl太强大了Q只能对其HTTP的部分作一单的介绍Q其他选项可以参见光带的手册。它的后端库的用也非常方便Q主要也是在选项讄上,跟命令行基本无异?/p>

用法

curl [选项] [URL...]

URL 语法

URL语法是跟协议相关的,具体l节可参见RFC 3986
可以指定多个URLs或者部分URL地址Q通过花括号{}q行分割Q?
http://site.{one,two,three}.com
或者用[]使用字母序:
ftp://ftp.numericals.com/file[1-100].txt
ftp://ftp.numericals.com/file[001-100].txt (有前导零)
ftp://ftp.letters.com/file[a-z]].txt

当前序列嵌套不被支持Q但是还是可以用下列的样式Q?
http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html
可以在命令行指定L数量的URLs,它们以指定的顺序被取回?

从curl7.15.1开始指定可以范围步长,所以可以得到第n个数或字母:
http://www.numericals.com/file[1-100:10].txt
http://www.letters.com/file[a-z:2].txt

如果使用了protocal://前缀Qcurl会将试你想使用的协议。它默认使用HTTPQ但是其他一些协议也常被用作L名。比如说Q以"ftp"打头的主机名Qcurl会假定你想用ftp协议?

Curl会尝试对多文件传输用重q接Q可以从同一服务器获取很多文件时Q不会进行多ơ的q接。这U做法改q了速度Q当然这只会在同一命o行中指定的文件启用,而不会在独立的Curl调用时用?

q度指示?/h4>

curl通常在操作时会显CZ个进度指C器Q来指明当前的传输量Q传输速度和预计的剩余旉{等?

但是Q即然curl默认数据显C在l端Q如果你调用curlq行操作Q它会将数据打印到终端上Q这时它会禁用掉q度指示器,否则q些会将输出信息搞ؕ掉?

如果在进行HTTP的POST或PUThӞ你想输出重定向到文件中Q可以用shell的重定向W?>)Q或者类似的-o[file]选项?

但是在FTP上传q不会这Pq些操作不会数据插入到l端中?

如果想用进度栏Q而不是常规的指示器,那么-#会非常有帮助?

常用的HTTP选项

-A/--user-agent<agent string>
(HTTP)指定用户代理字符串发送给HTTP服务器。如果这个字D|有被设ؓ"Mozilla/4.0"Q某些CGIs不会正常工作。如果在字符串中存在I白字符Q需要用单引h识。这个字Dg可用-H/--header选项q行讄?
如果q选项被多ơ设|,最后的讄v作用?

-b/--cookie<name=data>
(HTTP)data作ؓcookie传给HTTP服务器,q数据当然是在用了"Set-Cookie:"后,先前从服务端接收到的。这数据应是"NAME1=VALUE1;NAME2=VALUE2"的格式?
如果没有"="字符Q它会当作先前存储cookie行的文g名,如果它能被匹配的话。用这选项Q也能激z?cookie parser"Q它使curl记录传入的cookies数据。将它与-L/--locaion选项l合会更加便利。被dcookie的文件格式应当是文本HTTP头或者Netscape/Mozilla cookie文g格式?
注意Q被-b/--cookie指定的文件只能作入用。没有cookie会存储在q文件中。ؓ了存储cookieQ应使用-c/--cookie-jar选项或者直接将HTTP头输出到文g中,?D/--dump-header选项。这选项可以讄多次Q但是只有最后一个v作用?

-connect-timeout<seconds>
以秒计的最大超Ӟ用于q行服务器连接时。这只在q接阶段起作用,一旦curlq接建立Q这选项不再v作用?

-c/--cookie-jar<file name>
指定在完成一pd操作后,需要将全部的cookie信息保存到哪个文件中。Curl会将先前d的cookie的信息和从服务器q回的信息一起保存。如果没有cookie信息Q则不会q行写文件。cookie信息的文件将与Netscape cookie文g格式保存。如果文件名被设|ؓ'-'Q则cookie打印至终端?
注意Q?/strong>如果cookie-jar不能被创建写入,整个curl操作也不会失改,甚至不会向你报告错误.使用-v会得到警告昄Q但也只能在可能D发生致命错误的情冉|会显C?

--create-dirs
q与-o选项配合使用Qcurl会在需要时建立本地文g夹结构。这选项会创建在-o选项中涉及到的文件夹。如?o选项中的文g名没有用到文g夹,或者所需的文件夹已经存在Q则不会有文件夹创徏?

-D/--dump-header<file>
协议头写到指定的文件中。当你想存储HTTP站点发给你的数据Ӟq选项非常有用。在协议头中的cookie来可以用curl的另外调用来q行dQ那是-b/--cookie选项。但?c/--cookie-jar选项会是更好的存储cookie信息的方法?
当用FTP协议Ӟftp服务器的应答信息相应地当作成协议头Q然后被存储?

-p/-proxytunnel
当HTTP代理被设|后(-x/--proxy)Q选项会不是HTTP协议的传输试N过代理隧道Q而不是表现得HTTPcM的操作Ş为。代理隧道的Ҏ是通过HTTP服务器直接用CONNECThQ让代理直接q接到curl隧道所h的远E端口号的方式来实现的?/p>

-o/--output<file>
输Z息打印到文g中,而不是终端。可使用{}或者[]取回多个文档Q可在file指定格式中的'#'跟一数字Q这栯变量会由取回的URL字符串所取代。如下:
curl http://{one,two}.site.com -o "file_#1.txt"
如果有多个变量,可以写成下面的样子:
curl http://{site.host}.host[1-5].com -o "#1_#2"
你可对Q意数量的URL使用同样多的q个选项

-x/--proxy<proxyhost[:port]>
使用指定的HTTP代理Q如果端口号没有被指定,默认?080.
q选项会覆盖环境变量中代理服务器的讄。如果环境变量中讄了代理,可将proxy讄为空字符Ԍ来覆盖环境变量中的设|?
注意Q?/strong>所有通过HTTP代理的操作都会自动{化ؓHTTP协议。这意味着一些特定协议的操作会变得无效。这不会有问题,如果在设|了-p/--proxytunnel选项来通过代理隧道q行操作?

单示?

获取cppblog首页Q打印至l端

>curl http://www.shnenglu.com
重定向,保存到文件cppblog.html
>curl http://www.shnenglu.com
作用同上Q用选项
>curl -o baidu.html http://www.baidu.com
使用http代理Q可指定IP和端?
>curl -x 202.127.98.43:80 -o baidu.html http:www.baidu.com
在访问一些论坛时Q常常要求启用cookieQ因些网站需要启用cookie来记录sessioin信息,q时需要选项-DQ将cookie信息保存h
>curl -o cpp.html -c len@cppblog.com[1].txt http://www.shnenglu.com

先前保存的cookie信息q回l网?q通常会传回你的一些用户信息?
>curl -o cpp.html -c len@cppblog.com[2].txt -b len@cppblog.com[1].txt http://www.shnenglu.com


len 2008-06-21 16:33 发表评论
]]>
Xmanagerq程q接ubuntuhttp://www.shnenglu.com/len/archive/2008/06/01/51839.htmllenlenSun, 01 Jun 2008 13:10:00 GMThttp://www.shnenglu.com/len/archive/2008/06/01/51839.htmlhttp://www.shnenglu.com/len/comments/51839.htmlhttp://www.shnenglu.com/len/archive/2008/06/01/51839.html#Feedback0http://www.shnenglu.com/len/comments/commentRss/51839.htmlhttp://www.shnenglu.com/len/services/trackbacks/51839.html涉及到YӞXmanager 1.3.9 / Windows xp, ubuntu hardy

W一步,在ubuntu机器上配|好gdm,修改/etc/gdm/gdm.conf-custom,对照d如下内容Q?/p>

[security]
DisallowTCP=false
[xdmcp]
Enable=true

W二步,性能调优。这步非常关键,不然使用Xmanager登陆速度非常慢,且会报错Q主要原因是gnome使用Esoundq行声音数据的传送,需要用TCP 16001端口。所以我在ubuntux混音选项?br />pȝ-首选项-x-x,“允许Y件؜音”不要勾选上Q?br />pȝ-首选项-字体-字体渲染,选择"单色",在“细节”的“字体渲染细节”中的^滑和微调选项Q都选择"??

有用的参考:http://www.netsarang.com/products/xmg_faq.html



len 2008-06-01 21:10 发表评论
]]>
可爱的Vimhttp://www.shnenglu.com/len/archive/2008/05/25/51065.htmllenlenSun, 25 May 2008 12:19:00 GMThttp://www.shnenglu.com/len/archive/2008/05/25/51065.htmlhttp://www.shnenglu.com/len/comments/51065.htmlhttp://www.shnenglu.com/len/archive/2008/05/25/51065.html#Feedback13http://www.shnenglu.com/len/comments/commentRss/51065.htmlhttp://www.shnenglu.com/len/services/trackbacks/51065.htmlVim是功能强大的文本~辑?但是每个工具都有光对的适用体。如果你只是偶尔做些文本~辑工作的话Q那灉|而又昑־J琐的设|,以及特别的操作方式可能不适合你。但是你是跟我一P是个q_^凡凡的程序员Q每天要p大量旉在写代码,把弄着各式各样的程序语a:C\C++,Python,Tcl,Html,Xml,...Q那么你可能需要像Vimq样的工P即你要在它上面p些时间去熟悉和适应它?

先讲qC下,我跟Vim相处的过E,q是个从认识Q到抛弃Q到再认识,到再学习Q到喜欢的过E。最早接触到Vim是在Solaris上,需要修改编辑一些配|文Ӟ看着其他工程师们手指随意地在键盘上敲击,完成内容的修改Q根本没有动用到什么鼠标,那是好生慕。严格意义来_那时候碰到还不是VimQ只是VI而已。在l端上工作,没有什么Notepad之类的程序,只好把指令抄在纸上,查查|上的资料,学会了h,j,k,l,w,q,e,q几个简单指cLq行单的文本查看工作Q仅此而己。后来在Windows上安装了VIMQ但是挣腾了几下Q没有适应q来Q也只好用UltraEdit了。UltraEdit对一般的U文本,按Windows习惯来说是蛮好的。再后来Q玩了会儿rubyQ又装v了VimQ但是那时候的对Vim的用也只是限于上面的简单的指oQ再加上Vim的插Ӟ来完成语法高亮,ruby中的MVC文g的方便蟩转而已Q还是没有习惯VimQ有时候还是不l意用UltraEdit来打开查看~辑文g。直到最q,需要编写DocbookQ以及用PythonQ才真正p了大量时间来学习使用VimQ才真正认识到到它的可爱?

接着说说Q我Z么用VimQ觉得值得学习它,喜欢它的理由吧,Ua以自q观点来叙q?

 跨^台?/strong>Q无论在WindowsQLinux,Solaris,FreeBSD{等操作pȝ上,以及一些名都没有听q的pȝ上,你都可以扑ֈ它。这样就保证了你的学习投资的保值性,拿UltraEdit做对比吧Q即使你在UltraEdit上学会灵z运用许多功能,CLinux上,你在q部分学习投资就没有价gQ你可能需要找其他U手的编辑器Q然后再q行学习一些功能。特别在一些古老的大型Z的系l上Q即使没有VimQ一般来_q有Vi的,q样一般简单的操作命oq是可复用的。如果你定你一直只呆在Windows上可忽略q一炏V?

开源免?/strong>,Vim是开源YӞ意味着你可以自׃用,修改Q查看它的代码。我对FreeSoftware,Open Source,CopyrightQ这些都是持中间立场的。对于自由查看,修改E序代的保证Q有L没有好。对于盗版YӞ你有能力q是不要使用的好。正是这一Ҏ,也是促我放弃UE,投向Vim的重要原因。如果你对于使用盗版软g蛮不在乎Q或你有财力购买正版软gQ也可忽视这一条?

支持多种~程语言QVim是程序员的编辑器Q当然对E序员是非常友好的。它对C,C++,Python,Perl,Tcl,Ruby,PHP{等Q以及一大堆我没有听q见q的语言Q以语法着Ԍ代码~进{基本支持,q有一些其他特性。比如,我在~辑XMLӞ它能提供自动闭标记的支持。因此如果你有对多种格式的文本编辑需要,那么你就有了一个编辑的大^収ͼ不需用再装一大堆针对某个格式特定的编辑器了。正如跨q_性一P你只要一ơ投资,多次回报。如果你专注于某一格式文g的工作,那这一点同样对于你来说是没有用的?

高效地编?/strong>QVim的操作方式相对于Windows上呆久了的h来说Q是蛮奇特的Q这一Ҏ深有体会。但是正如很多h讲的那样Q你掌握了其操作后,发现它会大大增进你的~辑速度。你的双手根本不用离开键盘Q就完成了许多事情,可以让鼠标歇会儿了。如果你特别钟爱鼠标Q或只偶打打字Q那么我说的q点Q同样对你没有用?

灉|的设|?/strong>QVvim可自定义的地方太多了Q你可以自定义键盘映,语法着Ԍ~进Q格式等{。所以你在网上可以看到许多h贴着自己的vimrc配置文gQ配|着自己喜欢的作业环境。如果你需要开盒即用的工具Q那么这点对你的吸引力就不大了?

安装

可到VIM官网Q选择Self-install executable形式的安装包下蝲安装?

帮助

帮助非常重要QVIM带有我认为非常好的帮助系l,可以获取你需要的M有关VIM的详l信息。用帮助非常简?只需?help安装卛_。安装后E序带的是英文帮助,如果你对英文不是特别适应的话Q可以去http://vimcdoc.sourceforge.net/下蝲安装中文帮助Q或像我一L接用在U的中文帮助

操作Ҏ

对于基本操作ҎQ通过Vim的教E,你应该能很好的掌握了。一些常见的讄Q关于特定类型的配置Q因异Q不惛_q。我会列Z些认为比较好的参考文章,|于文尾供参考。但在下面,我还是在Windows下的Vim的用做点说明,或许你现在用不上?

Vim文g夹结?/h4>

安装完Vim后,你在其安装目录下应有vim$ver($ver是版本号)和vimfiles两个文g夏V其中vim$ver是vim的程序运行时目录,在里面会看到gvim.exe(vim的GUI),vim.exe,xxd.exe{程序,一大堆的dll动态链接库,q有是color(语法着?,doc(帮助说明),indent(~进){文件夹。在vimfiles内,也会看到color,doc,indent{类似的文g夹,但它们里面没有文件。vim$ver和vimfiles两者有什么区别呢Qvim$ver是运行时文g目录Qvimfiles相当于个人配|目录,常常有文章说在linux下将什么插件放q?vim下的plugin{等之类的,?vim在windows下就相当于vimfiles?

标签?/h4>

Tabpage是Vim后增的功能,cM于UltraEdit的标{N。也惛_Windows下用Untraledit一P在同一个VIM实例中打开多个文g的话Q需要做些小修改。在注册表中删除"HKCR\*\shellex\ContextMenuHandlers\gvim\"主键Q然后在Shell下新?Vim ~辑",再在其下新徏command?然后修改其gؓ$vimruntime\gvim.exe -p --remote-tab-silent "%1"Q其?vimruntime修改Zpȝ中VIM实际q行目录。如果你不知?vimruntime的|可以打开gvimQ输?echo $vimruntime。你惛_d联文Ӟ也在同一实例打开的话Q查找注册表中gvim相关,?vimruntime\gvim.exe改ؓ上述的值即?主要是HKLM\software\classes\application\gvim.exe\shell\edit\command下的倹{?

文g~码

具体可参?Vim实用技?实用技?/a>"。我推荐内部~码使用utf-8Q以支持国际化,即encoding=utf-8。这需要在_vimrc中进行设|,|上常有人启用这一选项后Vim菜单和消息出Cؕ码。据我的l验Q需要将qencoding=utf-8写在_vimrc最开_然后讄language message,可参见我的_vimrc文g?

vimrc文g

Vim使用中,配置文gvimrc是非帔R要的Q用:echo $myvimrcQ来查看你的vimrc在哪里?br />如果qؓI的话,你可以在$vim目录Q徏一新的_vimrc文g?br />我的vimrc文g

set encoding=utf-8
set termencoding=gbk
set nocompatible          " We're running Vim
set nobackup		"We don't need the backup file
set showmatch		"Show where the bracket match
set showcmd
set ruler		"Show the line and column number 
set hlsearch		"Highlight the search key
set backspace=indent,eol,start
set fileencodings=ucs-bom,utf-8,chinese
set guifont=courier_new:h10
set autoindent
syntax on           " Enable syntax highlighting
filetype plugin indent on " Enable filetype-specific indenting and plugins
language message zh_CN.utf-8 " Use chinese message
color zellner		" Color theme

其中termencoding=gbk是因为windows中的“命令提C符”窗口只能用gbk~码Q不能像Gnome中的Console那样用utf-8。不讄的情况下Q用“命令提C符”下的vimQ而不是gvimӞ会出q。在讄文g中的色彩和字体,可以先在gvim菜单中设|,然后你所喜好的,d到_vimrc文g中。看到我的vimrc文gQ你是不是感觉特别短。因为我把许多跟文gcd的相兌|放在其对应的脚本里Q扔在vimfiles文g夹了。在vimrc里,例如常见的空|制表W,~进都没有在q配|?

杂项

Vim中一些内|的变量Q你都可以通过:echo varname来查看|比如Q?echo $myvimrc
q些变量Q注意大写Q常用的?br />$VIM Vim的安装目?br />$vimruntime Vimq行时目?br />$myvimrc 用户的_vimrc文g
$home 用户的主目录
我常怋?e $myvimrc来编辑我的vimrc文gQ非常方ѝ?

对一些带值的配置选项Q你可以?set optionname来查看其当前|或用:set optionname=val来更改其?比如:set fileformat查看文g格式Q因为dos,unix,mac对于换行是不一L?set filemat=unix的话Q换行将用LFQ而不是dox\windows下的CR,LF?/p>

参考链?/h4>

IBM开发中心非常实在的Vim实用技术系列:
Vim实用技?1)-实用技?/a>
Vim实用技?2)-常用插g
Vim实用技?3)-定制Vim

Easwy的博客,里面有用的信息,更多的Vim资源链接
Vim专栏



len 2008-05-25 20:19 发表评论
]]>Q和小A的故事之EFS加密http://www.shnenglu.com/len/archive/2008/03/16/44609.htmllenlenSun, 16 Mar 2008 07:37:00 GMThttp://www.shnenglu.com/len/archive/2008/03/16/44609.htmlhttp://www.shnenglu.com/len/comments/44609.htmlhttp://www.shnenglu.com/len/archive/2008/03/16/44609.html#Feedback3http://www.shnenglu.com/len/comments/commentRss/44609.htmlhttp://www.shnenglu.com/len/services/trackbacks/44609.html自从d底娱乐圈曝出?艳照?事g? Q开始注意自qU密文g?在网上google加密软g,x那些珍藏的AV电影和情感日记加密v?防止一个不心被h公布.|上的私人出品的加密Y件不敢用,怕被别h留了后门,至于安全性也没有保证.后在|上l高手指?使用WinRAR软g的加密功?把一个个文g压羃成包,q设|了密码.q东西倒是?但是Q常常需要回一下这些小电媄,以解单n之苦,偶尔又写下日?q样一?常常需要输入密?解压,解,压羃,ȝ又耗时Q且WinRAR密码又不能太单,不然有被暴力破解的可能.

Q又在忙活了,凑y被密友小A看到Q将情况如实向小A说了Q小A是个计算Q知道小Q需求后Q立即问刎ͼ你怎么不用Windows自带的EFS加密呀?

Q:什么是EFS加密呀?

A:EFS阿,是Encryption File System,反正跟你说英语也不清楚,是加密文gpȝQ是Windows 2000开始所Ҏ的一个实用功能,对于NTFS卷上的文件和数据Q都可以直接被操作系l加密保存.EFS加密是基于公钥策略的,安全的很.

A是q样喜欢卖弄一下英语和专业词汇,q样才显得水q高.

Q:那你说的公钥{略是什么呀?

A:公钥要这可要从加密领域说?拿你用WinRAR加密文g来说?WinRAR是用DES对称加密法,也就是加解密都是用同一个密?q再教你个新?搞计机的h,密码不叫密码,要说?strong>密钥,相当于开锁的钥匙,q样才显得X.而公钥策略呢,加解密不是用同一密码,一般加密的?strong>公钥,解密的叫U钥.

Q:?弄得q么ȝ呀,那我l文件加个密?输入密码?怎么知道U钥是什么呀?

A:q个EFS加密呀,不用你输入密?它在加密?会自动ؓ你生成公钥和U钥,公钥和私钥的长度很长.打个比方,如果你^时用到密码很长很复杂,你会怎么办呢?是不是把密码抄在本子什么的,然后用到的时候拿出来看呀.q公钥和密钥的信息就跟所谓的证书l定在一起了,也就相当于小本子.

Q:?U钥自动生成攑֜电脑?那不是相当于q是没有加过?不安全呀?

A:U钥是放在你的硬盘上,但是windows用你的帐户信息ؓ依据又加了层密.如果你能用你的用户帐L陆系l,也就完成了验证工作.如果你用另外个帐L陆的话,那些EFS加密q的文gQ就无权获取了.即你不通过windwospȝQ获得了存储密钥的物理空_也是无法q行解密的.q样才显得安全.

Q:你说得这些,我也不是怎么懂,p说怎么用这个EFS吧.

A:好的Q这个EFS呀Q正如我上面所说的Q要在Windows2000以上的系l才可以Q还有一点,q样高的功能,家庭?windows xp home, windows vista home)可用不了Q右M需要加密的文g和文件夹Q选择Q属性"Q然后点击"属性"对话框的Q高U?..Q?在"高属性"中勾选上Q加密内容以便保护数据"卛_Q如果不惛_密了的话Q去掉勾选即可.

p1   p2

 

Q:好了Q这么简单,学会了.

A:q没有好呢,再跟你说点.不然到时候,你重装系l,打不开加密的文件又要哭了.我说q这EFS是用公钥{略的,如果没有U钥是你是打不开加密q的文gQ然而你重装pȝ后,原来U钥是由用户信息加密q的Q即使你重新取了相同的用户名q是不行的.所以呀Q你要装原先的密钥提前备份好Q这样加密过的文Ӟ无论在你的电脑里Q还是{Ud其他NTFS的格式的盘里,都可以打开Q密钥是与证书关联的Q这h们就要做好证书的备䆾工作Q我要说下证书备份吧Q在开始菜单的Q运行"中输入certmgr.mscQ打开证书理l端,在个?证书中,会看C个预期目的ؓQ加密文件系l"的证书,q是在第一ơ用加密后自动生成的.叛_该证书,在所有Q务中Q选择Q导?..",通过证书导出向导Q按照提C选择对应的选项卛_Q?/p>

p3 p4

在输入密码,选择存储位置后,你会看到你所取名的xxx.pfx文gQ下ơ你重装pȝ或在别的机子要打开加密的文Ӟ只要要双?pfx文gQ按向导导入卛_Q这?pfx文g可要保存好,不要让h拿去了.q个文g相当于钥匙,谁有q把钥匙Q谁p打开加密文g了.

 



len 2008-03-16 15:37 发表评论
]]> Ʒþþþһ | þþþùƷ۲ӰԺ| 99þþƷž޾Ʒ| 99ȳ˾ƷѾþ| ھƷ˾þþӰԺ| þþƷ| þ99ֻоƷ| ˾þþƷӰԺ| 91Ʒ91Ⱦþþþø | žžƷ99þþ㽶| 99þþƷëƬ| ˾þô߽AVһ| 2021þùԲľƷ| ഺþ| Ʒþˬۺ| ɫۺϾþþþһ | þó˾Ʒ| aëƬþ| רþۺϾĻ| ޹Ʒþþþ| þav뾫Ʒ˳| ƷƷھþø| þ붯aëƬ| þˬˬƬAV鶹 | ޹һ˾þþƷ| þþþ| þþƷһ| þ97Ʒþþþþþò| þþþƷ| þþƷAVþþ| þùƷ| þþѹ۳ӰԺ| ھƷþþþù| պƷþþþþ| Ʒtvþþþþþ| ھƷžžþþþƷ| Ʒþۺ| 99þ99ֻѷѾƷ | ˾þۺij| þþþһƷ| ɫ99þþþø߳ۺӰԺ|