Google

星期五, 八月 29, 2008

DOS命令淘金——ECHO命令地运用

ECHO命令是大家都熟悉的DOS批处理命令的一条子命令,但它的一些功能和用法也许你并不是全都知道,不信你瞧:

1. 作为控制批处理命令在执行时是否显示命令行自身的开关

格式:ECHO [ON|OFF]

如果想关闭“ECHO OFF”命令行自身的显示,则需要在该命令行前加上“@”。

2. 显示当前ECHO设置状态

格式:ECHO

3. 输出提示信息

格式:ECHO信息内容

上述是ECHO命令常见的三种用法,也是大家熟悉和会用的,但作为DOS命令淘金者你还应该知道下面的技巧:

4. 关闭DOS命令提示符

在DOS提示符状态下键入ECHO OFF,能够关闭DOS提示符的显示使屏幕只留下光标,直至键入ECHO ON,提示符才会重新出现。

5. 输出空行,即相当于输入一个回车

格式:ECHO.

值得注意的是命令行中的“.”要紧跟在ECHO后面中间不能有空格,否则“.”将被当作提示信息输出到屏幕。另外“.”可以用,:;”/[/]+等任一符号替代。

在下面的例子中ECHO.输出的回车,经DOS管道转向作为TIME命令的输入,即相当于在TIME命令执行后给出一个回车。所以执行时系统会在显示当前时间后,自动返回到DOS提示符状态:

C:>ECHO.|TIME

ECHO命令输出空行的另一个应用实例是:将ECHO.加在自动批处理文件中,使原本在屏幕下方显示的提示画面,出现在屏幕上方。

6. 答复命令中的提问

格式:ECHO答复语|命令文件名

上述格式可以用于简化一些需要人机对话的命令(如:CHKDSK/F;FORMAT Drive:;del *.*)的操作,它是通过DOS管道命令把ECHO命令输出的预置答复语作为人机对话命令的输入。下面的例子就相当于在调用的命令出现人机对话时输入“Y”回车:

C:>ECHO Y|CHKDSK/F

C:>ECHO Y|DEL A :*.*

7. 建立新文件或增加文件内容

格式:ECHO 文件内容>文件名

ECHO 文件内容>>文件名

例如:C:>ECHO @ECHO OFF>AUTOEXEC.BAT建立自动批处理文件

C:>ECHO C:/CPAV/BOOTSAFE>>AUTOEXEC.BAT向自动批处理文件中追加内容

C:TYPE AUTOEXEC.BAT显示该自动批处理文件

@ECHO OFF

C:/CPAV/BOOTSAFE

8. 向打印机输出打印内容或打印控制码

格式:ECHO 打印机控制码>PRN

ECHO 打印内容>PRN

下面的例子是向M-1724打印机输入打印控制码。<Alt>156是按住Alt键在小键盘键入156,类似情况依此类推:

C:>ECHO +156+42+116>PRN(输入下划线命令FS*t)

C:>ECHO +155@>PRN(输入初始化命令ESC@)

C:>ECHO.>PRN(换行)

9. 使喇叭鸣响

C:>ECHO ^G

“^G”是用Ctrl+G或Alt+007输入,输入多个^G可以产生多声鸣响。使用方法是直接将其加入批处理文件中或做成批处理文件调用。

10.执行ESC控制序列修改屏幕和键盘设置

我们知道DOS的设备驱动程序ANSI.SYS提供了一套用来修改屏幕和键盘设置的ESC控制序列。如执行下述内容的批处理程序可以把功能键F12定义为DOS命令“DIR/W”,并把屏幕颜色修改为白色字符蓝色背景。

@ECHO”←[0;134;”DIR/W”;13p

@ECHO”←[1;37;44m

(注:批处理文件中“←”字符的输入方法是在编辑状态下按Alt中小键盘上的27)

DOS命令是接触计算机的人首先要学到的,对许多人来说是太熟悉太简单了,其实不然,在这些命令中蕴藏着丰富的内容,仍有待于我们进一步去理解去开发,如果你是一个有心人就一定会从这些自以为熟知的命令中发现新的闪光点,淘得真金。

http://soft.xuezhishi.net/OS/DOS/doslm/2007-01-20/18688.html

标签: ,

LightZone: built for photography

LightZone fully embraces fearless visual experimentation.
Windows_Logo_45px MacOSX_Universal_45px
LightZone provides a unique visual approach to digital photo editing, allowing you to focus on what you want to do with your photos, not how you do it. All operations are live and have an immediate effect upon which you can make new editing decisions. No more guess work. The software allows you to enhance photos in a simple and natural way, without the steep learning-curve found in many other software programs.

http://www.lightcrafts.com/products/index.html

标签: ,

星期四, 八月 28, 2008

又想起XUL

Spket IDE is powerful toolkit for JavaScript and XML development.

The powerful editor for JavaScript, XUL/XBL and Yahoo! Widget development. The JavaScript editor provides features like code completion, syntax highlighting and content outline that helps developers productively create efficient JavaScript code.


http://www.spket.com/

有点可惜,又是Eclipse,有点庞大。;)

标签: , ,

星期三, 八月 27, 2008

无题

1. 来如飓风,去如落潮。

2.一找朋友有手机骗子找到我。昨晚还有兴趣陪他玩会,今天一看没有新意,还是算了吧。

标签:

星期二, 八月 26, 2008

一点有用的东西

Jabber server written in Python
http://code.google.com/p/pretzel/

Twisted 太重要了。写的非常好。
http://twistedmatrix.com/

标签: ,

Jabbers and others important

Jabber servers:

OpenFire
http://www.igniterealtime.org/projects/openfire/index.jsp

JabberIn
http://www.jabbin.com/index.html

OpenZoep: An Open Source VoIP Engine

http://www.voipster.com/

VOIP Jingle library
http://www.xmpp.org/extensions/xep-0166.html

XPCOM
http://www.mozilla.org/projects/xpcom/

http://xmpppy.sourceforge.net/

标签: , , ,

Tigase XMPP/Jabber Server

Tigase Jabber/XMPP Server is Open Source and Free (GPLv3) Java server using all available features in last JDKs.

It uses NIO for network communication, selectors, concurrent JDK framework, security library and so on.

All these functionalities are available directly from JDK so the need for external libraries is limited to minimum. Actually it doesn't use any external library at run-time. A few third-party libraries are used for development such as JUnit, UnitTestsGen and ANT and Maven 2.


http://www.tigase.org/en/project/Servers+and+Server+Components

标签: , , , ,

用Python操作MS Access数据库

首先,你应安装了python和Python for Windows extensions。
1、建立数据库连接
import win32com.client
conn = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:/MyDB.mdb;'
conn.Open(DSN)
2、打开一个记录集
rs = win32com.client.Dispatch(r'ADODB.Recordset')
rs_name = 'MyRecordset'#表名
rs.Open('[' + rs_name + ']', conn, 1, 3)
3、对记录集操作
rs.AddNew()
rs.Fields.Item(1).Value = 'data'
rs.Update()
4、用SQL来插入或更新数据
conn = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:/MyDB.mdb;'
sql_statement = "Insert INTO [Table_Name] ([Field_1], [Field_2]) VALUES ('data1', 'data2')"
conn.Open(DSN)
conn.Execute(sql_statement)
conn.Close()
5、遍历记录
rs.MoveFirst()
count = 0
while 1:
if rs.EOF:
break
else:
count = count + 1
rs.MoveNext()

注意:如果一个记录是空的,那么将指针移动到第一个记录将导致一个错误,因为此时recordcount是无效的。解决的方法是:打开一个记录集之前,先将Cursorlocation设置为3,然后再打开记录集,此时recordcount将是有效的。
例如:
rs.Cursorlocation = 3 # don't use parenthesis here
rs.Open('Select * FROM [Table_Name]', conn) # be sure conn is open
rs.RecordCount # no parenthesis here either

http://www.pythontik.com/blog/article.asp?id=23

标签: ,

关于urllib2中的Keep-Alive

http://www.nabble.com/-CPyUG:41451--%E5%85%B3%E4%BA%8Eurllib2%E4%B8%AD%E7%9A%84Keep-Alive%E5%8F%8A%E8%AF%B7%E6%95%99%E5%A5%BD%E7%94%A8%E7%9A%84http%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8C%85-td15706978.html

标签: , ,

ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER方法探讨

ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER方法探讨

当 用户访问Web服务器请求一个页面时,用户浏览器发送的HTTP请求中会有一个被称为HTTP请求头(HTTP Request Header)的信息,这个头信息中包含客户请求的一些信息,例如发出请求客户主机的浏览器版本、用户语言、用户操作系统平台、用户请求的文档名等,这些 信息以变量名/变量值的方式被传输。

HTTP-REFERER这个变量已经越来越不可靠了,完全就是可以伪造出来的东东。

以下是伪造方法:

ASP:

dim http
set http=server.createobject("MSXML2.XMLHTTP") '//MSXML2.serverXMLHTTP也可以
Http.open "GET",url,false
Http.setRequestHeader "Referer","http://www.dc9.cn/"
Http.send()

http://www.dc9.cn/catalog.asp?tags=C%23

标签: , ,

TGFusionCharts

TGFusionCharts is a TurboGears widget which lets you easily add FusionCharts Flash Charts to your application. TGFusionCharts is licensed under MIT License; FusionCharts has a commercial license, but offers a free trial.

http://www.thesamet.com/TGFusionCharts/
http://www.fusioncharts.com/Demos/SalesDashboard/Contents/Visits.html

标签: , ,

py2exe使用方法

一、简介

py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。

py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序。py2exe是发布在开源许可证下的。

二、安装py2exe

从 http://prdownloads.sourceforge.net/py2exe下载并运行与你所安装的Python对应的py2exe版本的 installer,这将安装py2exe和相应的例子;这些例子被安装在lib\site-packages\py2exe\samples目录下。

三、py2exe的用法

如果你有一个名为helloworld.py的python脚本,你想把它转换为运行在 windows上的可执行程序,并运行在没有安装python的windows系统上,那么首先你应写一个用于发布程序的设置脚本例如 mysetup.py,在其中的setup函数前插入语句import py2exe 。
mysetup.py示例如下:
# mysetup.py
from distutils.core import setup
import py2exe

setup(console=["helloworld.py"])

http://www.diybl.com/course/1_web/webjs/2007111/81629.html

标签: ,

星期一, 八月 25, 2008

孟岩《来自巴西的Lua语言新星让我脸红》及网友评论

一种自由软件的脚本语言 Lua ,由于在游戏界日益成为主流脚本语言(得到著名的卢卡斯艺术公司两款游戏采用,并在GameDev.net的调查中高居脚本语言榜首),最近引起了业界的广泛关注。
Lua (葡萄牙语,义为月亮)是一种轻量级的强大的扩展语言,用纯ANSI C编写,最初版本只有6000行代码,却实现了垃圾收集、反射、面向对象等机制。Lua 是由巴西里约热内卢天主教大学计算机系的Roberto Ierusalimschy 等人于1993年开发的。
最近,Roberto Ierusalimschy 撰写的《Programming in Lua》一书也已经出版
---tangl_99

Python是荷兰人写的,Ruby是日本人写的,Lua是巴西人写的,我这个中国人只能在这里脸红。
---孟岩

不必人人制轮胎,难道你不想躺在轮胎做的吊床上休息?
---牡蛎

只选对的,不选贵的。
---路人甲

转载自tangl_99的blog孟岩的blog

Python是荷兰人写的,Ruby是日本人写的,Lua是巴西人写的,我这个中国人只能在这里脸红。
Lua是所有动态语言中间平均效率最高的一个。它最初是以Library的形式存在,纯粹只是用作C/C++的一个扩展。现在不仅发展出了解释器,还发展 出了编译器。游戏开发里Lua是使用最广泛的脚本语言。当世界上第一本Lua图书上市销售的时候,一位读者评价道:"Lua is a real gem."
(牡蛎到没有听过Lua、Python或者Ruby的编译器——.NET的冒牌货除外)

Lua很棒,Lua是巴西人发明的,这些都令我不爽,但是还不至于脸红,最多眼红。
让我脸红的是Lua的源代码,百分之一百的ANSI C,一点都不掺杂。在任何支持ANSI C编译器的平台上都可以轻松编译通过。我试过,真是一点废话都没有。
我1996年就学会了C,1997年就跑去研究Win32 API,后来是C++,STL,Java... 直到2002年看到C Interfaces and Implementations,才知道仅仅用ANSI C就可以实现一个强大的优美的library,直到2004年看到Lua的源代码才知道仅仅用ANSI C就可以实现一个非常快的虚拟机、非常棒的解释器/编译器和非常漂亮的语言实现。
这8年我都干什么去了?
---孟岩

http://www.chinaitpower.com/2005September/2005-09-13/204728.html

标签: , , , , , , ,

星期五, 八月 22, 2008

无题

1. 忌酒(不是戒酒)若干时日之后,喝了一瓶“勇闯天涯”感觉已经生出了“勇闯天涯”的勇气了。
2. 会过账之后发现,这家店是老外的后台,居然使用的是美国的时间。
3. 一切不如意终会过去,所有我未曾期待过的美妙时刻即将到来。

标签:

星期四, 八月 21, 2008

使用xrc的一点心得

这篇文章老早就想引过来了。写得不错。

首先向大家说明,我学python才一个多月,写了一个程序主 要是为了练习python和wxPython,如果有什么不对的地方还请大家指出。我也没怎么查是否有人写过类似的说明,就当给大家一个参考。我原来写过 c++/gtk/gtkmm的程序,觉得wxPython的图形程序写起来还是很容易的,不过偶得一个同事说我的python程序写 的比较像C++程序,现在正在深入的研究python中。

我要讲的是如何在程序中使用wxPython库,其中包括各种widget的获得,动态的切换widget,也有很多资料的,我就把我使用过程中觉得需要注意的总结一下,其中也说明了整个gui的构建框架

我把程序分成了三个文件
一个 main.py
一个 ui.py
一个 common.py

Main.py 是这样写的

import ui

if __name__ == '__main__':
application = ui.Application(0)
application.MainLoop()
else:
print "Can't import Buildipsl main module,it shoud be run alone!"

也就是在主程序中运行起来图形界面,进入事件循环,比较简单。

Ui.py程序比较长,大概有1000行,就不贴在这了,我主要说明的就是这个部分。

Common.py是一些常用的公共函数,定义的一些存放数据的底层的类,ui界面的数据交互最终都是通过和底层类对象数据交换来实现的,这样层次比较分明,也容易独立修改。

下面看一下ui.py文件中的Application类,也就是main.py中调用的那个类

class Application(wx.App):
def OnInit(self):
self.conf = common.HandleConfig('fic.conf')
self.connection_pool = common.ConnectionPool()
self.resource = xrc.XmlResource('../resource/IPSLBuild.xrc')
self.frame = MainFrame(None, self.resource,self.conf,self.connection_pool)
self.frame.Show()
return True

这个类在构造函数中实列化了一个’配置文件’类对象,一个’连接缓冲池’类对象,并且初始化了一个xrc资源文件类对象,传入MainFrame这个主窗体类。


MainFrame类 ,主窗体的实现类:
先看一下前几行
class MainFrame(wx.Frame):
def __init__(self, parent, resource,setting,pool):
self.res = resource
self.setting = setting
self.connection_pool=pool
self.PostCreate(self.res.LoadFrame(parent, 'MainWindow'))

self.PostCreate(self.res.LoadFrame(parent, 'MainWindow'))
这一行利用xrc资源对象,把在xml文件中定义的窗体load进来,设置本窗体类。

主窗体load进来了,接着就load窗体上的widget
一般的widget都可以使用像下面这样的函数:
self.text_ctrl_build_dir = xrc.XRCCTRL(self,'text_ctrl_build_dir')
也就是使用xrc,XRCCTRL,第一个参数是parent,这里是self,也就是我们load进来的主窗体,后面加的是包含在主窗体里的 widget的XML id 值,这样widget就进来了,由前面的self.text_ctrl_build_dir来引用着。使用和用代码构建出来的widget没什么区别。
但是,这里有例外,xrc.XRCCTRL只能使用在由wxWindow继承出来的widget上,如果widget不是由wxWindow 继承而来的,就获得不到对象引用,比如menu 和 toolbar。Menuitem和toolbar button要使用下面的方式:

Menubar:
self.menubar = self.res.LoadMenuBar('MainWindow_MenuBar')
这里的menubar在XML文件中是个顶层的widget,也就是说这个menubar不是包含在主窗体里的,结构上是和主窗体平级的

一个小提示:
XML文件中顶层的widget都是用LoadXXXX 来获得,非顶层的才使用XRCCTRL,并且XRCCTRL中第一个参数要是以LoadXXXX获得的widget做为直接或间接的父widget.
比如一个panel,如果在XML文件的最顶层,就要使用LoadPanel,如果在一个Frame中,那就要使用XRCCTRL(Frame的引用,’panel xml id’)

Menubar获得了,就把menubar设置在主窗体上
self.SetMenuBar(self.menubar)

获得子菜单用
self.menu_add = self.menubar.FindItemById(xrc.XRCID('menu_item_node_add'))

toolbar可以在主窗体上获得
self.toolbar = xrc.XRCCTRL(self,'MainWdinow_ToolBar')

在使用上,我获得toolbar button主要是要改变其可用和不可用的状态:
self.toolbar.EnableTool(xrc.XRCID("tool_button_node_add"),True)
想要toolbar button不能使用就用False
回调函数我下面再说.

到现在获得widget大家应该都没什么疑惑了吧,再说回调函数
回调函数一般是这样
self.config_panel.Bind(wx.EVT_BUTTON,self.OnConfSearch,id=xrc.XRCID('button_search_node_conf'))

self.Bind(wx.EVT_MENU, self.OnAdd,id=xrc.XRCID('menu_item_node_add'))
self.Bind(wx.EVT_TOOL, self.OnAdd,id=xrc.XRCID('tool_button_node_add'))

第一个是正常的Buttton
第二个是menuitem
第三个是toolbar button
其实都是一样的
父widget.Bind(事件类型,函数名,xml id)
再次说一下上面的menuitem 和toolbar button,其实如果不要像我这样要设置他们的可用和不可用的状态,不用获得他们的对象引用,可以直接绑定的,因为他们用的是xml id来查找的,没有bind在他们对象的引用上.

下面说一个我使用中的需求:
我窗体左边有一个treeview,需要在点左边不同的treeview item的时候,右边可以根据不同的情况变化.
我不想给右边通过代码来实现,因为可能有如下问题
1. 右边可能是个比较复杂的panel,代码量比较大,而且手写代码不容易后来的修改
2. 每次切换都要destory和Create一堆东西,资源的占用比较大
我喜欢完全的界面代码分离,好处多多,所以还是想用xrc的方式来做.
下面是实现步骤

右面我们要操作的实际上是一个splitter window的panel,叫splitter_right_panel

定义一个BoxSizer,用来向里面添东西
self.splitter_right_box_for_guest_panel=wx.BoxSizer(wx.VERTICAL)

初始化的时候先放上一个空panel
self.splitter_right_box_for_guest_panel.Add(wx.Panel(self),1, wx.EXPAND, 0)

设置布局
self.splitter_right_panel.SetAutoLayout(True)

设置容器
self.splitter_right_panel.SetSizer(self.splitter_right_box_for_guest_panel)

调整widget间的布局关系
self.splitter_right_box_for_guest_panel.Fit(self.splitter_right_panel)

把两个要加的panel都变成右边splitter_right_panel的子widget
self.config_panel.Reparent(self.splitter_right_panel)
self.connection_panel.Reparent(self.splitter_right_panel
这一步比较重要,一定要让panel的父widget是他的直接panel,如果是主窗体,显示有问题.
还有这两个panel是xml文件中顶层的panel,要使用LoadPanel加载进来.

初始化基本上就完成了,在切换中的代码是写在treeview中的select changed回调函数中.

self.main_frame.splitter_right_box_for_guest_panel.Detach(0)
self.main_frame.config_panel.Hide()
self.main_frame.connection_panel.Hide()

if ……:
self.main_frame.config_panel.Show()
self.main_frame.splitter_right_box_for_guest_panel.Add(self.main_frame.config_panel,1,wx.EXPAND,0)
else:
self.main_frame.connection_panel.Show()
self.main_frame.splitter_right_box_for_guest_panel.Add(self.main_frame.connection_panel,1,wx.EXPAND,0)


1. 任何时候都先把BoxSizer中的panel分离
2. 两个面板都hide
3. 根据判断加载不同的panel,show出来
这里用到的是Detach(),不要用Destory,panel对象是在xrc 资源文件中的,destory有问题,而且我们就是不想让它被destory,这样最开始得到的panel内部的widget的对象的引用一直都是可用的.

基本的原理我就说完了,写了两个common文件的类在这,是实现ssh连接的,我测试是可用的,还没写好, python异常我还没看,不好意思
使用的是paramiko模块,不过我用起来发现有问题,put和get函数有问题,没办法我自己写的put和get.
远程执行命令的时候不等执行完就退出了,命令在后台执行,这个不是我想要的,不过肯定有方法,只是我还不知道.我还没写完,让大家见笑了,呵呵

class Connection:
def __init__(self,ip,account,pwd):
self.trans = paramiko.Transport((ip, 22))
self.trans.connect(username=account, password=pwd)
def put(self,localfile,remotefile):
sftp=paramiko.SFTPClient.from_transport(self.trans)
data = open(localfile, 'r').read()
print 'remotefile is %s' % remotefile
sftp.open(remotefile, 'w').write(data)
def get(self,remotefile,localfile):
sftp=paramiko.SFTPClient.from_transport(self.trans)
data = sftp.open(remotefile, 'r').read()
open(localfile, 'w').write(data)
def execmd(self,cmd):
chan = self.trans.open_session()
chan.exec_command(cmd)
def active(self):
return self.trans.is_active()
def __del__(self):
self.trans.close()

class ConnectionPool:
def __init__(self):
self.pool={}
self.filelist=['bg','pnp','sub','fp','ep']
self.genscript='fic.pexpect'
def add_connection(self,name,ip,account,pwd):
if self.pool.has_key(name):
return False
try:
con=Connection(ip,account,pwd)
except Exception:
return False
self.pool[name]=con
return True
def del_connection(self,name):
if not self.pool.has_key(name):
return False
else:
del self.pool[name]
def connected(self,name):
if self.pool.has_key(name):
return True
else:
return False
def gen_config(self,name,path):
if not self.pool.has_key(name):
return False
try:
self.pool[name].execmd(r'rm -rf /tmp/%s' % self.genscript)
self.pool[name].put(get_path(self.genscript),'/tmp/%s' % self.genscript)
self.pool[name].execmd('python /tmp/%s' % self.genscript)
self.pool[name].execmd(r'rm -rf /tmp/%s' % self.genscript)
time.sleep(600)
for i in self.filelist:
print os.path.join(path,i)
self.pool[name].get("/tmp/fic/%s" % i,os.path.join(path,i))
except:
return False
return True

http://bbs.chinaunix.net/viewthread.php?tid=858243

标签: , ,

这是四点零八分的诗歌——说说食指

http://www.ruiwen.com 中学语文教学资源网 2006-07-26
雾里探花

 “我把自己定位为疯子。我戴着一顶疯子的帽子,在思想上和精神上可以天马行空独往独来,爱怎么想怎么想,因为我是疯子。”
                   --------食指


 记得一年前浏览某国内著名诗歌网时,看到其中收录林林总总的诗人简介及作品,却独不见食指或关于他的只言片语。找到站长一问,答道,食指的诗只 在历史上有意义。我不明白。真不明白,不甘心。又陆续追问了一些人。有好心人告诉我:很简单,那个曾经写出《相信未来》的诗人,此刻正在疯人院中度过他的 余生,... ...

 我被彻底震惊了,动摇了,口中全是苦味,说不出话。

 此后更多的关注食指,以及他的作品。在此以前,我只知道海子,而后我却知道了食指。因此对于人们的种种议论,总想说些什么,可是觉得很无力,只好作罢。后来偶尔还能听到食指出席公众场合并朗颂诗歌的消息。

 食指,原名郭路生(很奇怪,怎么跟海子的名字这么相似,海子叫查海生)。著名诗人,小学时代开始热爱和创作诗歌,20岁时已写出成名之作《相信 未来》、《海洋三部曲》、《这是四点零八分的北京》等。他的作品在当时以手抄本的形式在社会上广为流传,激励和震憾着一代青年。1973年食指被诊断患有 精神分裂症,入北医三院就医。出院后继续写作。1990年至今在北京第三福利院接受治疗。2001年4月28日与已故诗人海子共同获得第三届人民文学奖诗 歌奖。

 有人说,但凡喜欢或读过中国当代诗歌的人,无一不知道诗人海子,也无一不知道诗人食指。

 知道食指的人,都会提到那首《相信未来》,据说当时的江青读到了《相信未来》,为诗歌的独立不羁所震惊、恼怒。说这是一个灰色的诗人;相信未来 就是否定现在.她一定要找到那个“坚定的相信未来/相信不屈不挠的努力/相信战胜死亡的年轻/相信未来,相信生命”的“反动”诗人、年仅十九岁的食指。于 是,年轻的“反动诗人”被严格审查,被深刻批判。

 诗人是敏感的、忧伤的、饱含凄凉的但又悲壮的情怀,在悲伤中透出一种强烈的力量。他有着忧苦的凄凉的遭遇,却不屈不挠。用他的话来形容他自己就是,“身世如秋雨般凄凉,内心却落日般悲壮。” 

 1968年食指在《难道爱神是……》中写道:“难道爱神是踪影的风/只顾追逐天堂上轻浮的云/而忘却了在地狱里/还有两颗沉重的心/难道爱神是心舟的桨/无意间摇碎了月儿在湖心的印/而忘却了在波动中/还有两颗破碎的心。”

 即使是在追求快感把阅读当作娱乐无视作品内涵的今天,我们读到这样的诗句时,还是不能自已的战栗。

 有时候我会从网上、书上、歌词中看到类似这样的句子:“这是四点零八分的XXX”,后来读到《这是四点零八分的北京》,才霍然而醒,相信和我同样地读着这首诗而被同样强烈地震憾的青年或中年们也不在少数:

  这是四点零八分的北京,
  一片手的海洋翻动;
  这是四点零八分的北京,
  一声雄伟的汽笛长鸣。
  北京车站高大的建筑,
  突然一阵剧烈的抖动。
  我双眼吃惊地望着窗外,
  不知发生了什么事情。
  我的心骤然一阵疼痛,一定是
  妈妈缀扣子的针线穿透了心胸。
  这时,我的心变成了一只风筝,
  风筝的线绳就在妈妈手中。
  线绳绷得太紧了,就要扯断了,
  我不得不把头探出车厢的窗棂。
  直到这时,直到这时候,
  我才明白发生了什么事情。
  ——一阵阵告别的声浪,
  就要卷走车站;
  北京在我的脚下,
  已经缓缓地移动。
  我再次向北京挥动手臂,
  想一把抓住她的衣领,
  然后对她大声地叫喊:
  永远记着我,妈妈啊,北京!
  终于抓住了什么东西,
  管他是谁的手,不能松,
  因为这是我的北京,
  这是我的最后的北京。

 这首原是描写别离的作品,写于当年大批知识青年上山下乡的热潮中。诗人在赴山西插队的列车上开始创作这首作品,后几经修改成为一首传世佳作,是整个六十年代最震撼人心的作品,至今仍被不少热血青年所引用和模仿。

 有人说,愤怒出诗人;有人说,诗人产生于痛苦;可是我看不到诗人的愤怒,也看不见痛苦。诗人在这纷扰的世间诞生,又谢客而居。那是种痛与无奈的 惊艳。我们通常不相信有天才,如果有,我一定说,他是的。然而天才一定会被曲解的。因此食指在后来为社会上的各色议论说:“我把自己定位为疯子。我戴着一 顶疯子的帽子,在思想上和精神上可以天马行空独往独来,爱怎么想怎么想,因为我是疯子。”
 
 这个疯子一九九零年进入北京第三福利院。每天就擦楼道,洗餐具,保持最低的生活费,抽低价的烟。
 
 \"十多年了。很多人不相信,说是神话,因为我在这样的环境里还能写诗。我是疯子,我在我自己的王国里是国王。很多东西,我放下了,我自在了。我不求酒色财气,我把这些放下了,我就自在了。\"

 真正的诗歌并不是拿去感动人煸动人的;她必定是使人感觉到刺痛的,以及知道自己是孤独的.然而像这么样的一个年代,真心的爱诗读诗已经是一个奇 迹;当海子说出了\"面朝大海,春暖花开\",他同时又在问:\"你们所说的曙光究竟是什么\";当顾城说\"黑夜给了我黑色的眼睛,我却用它寻找光明 \"时,他在光明中和痛苦同归于尽.为什么在诗人完美的世界里,总不得不压抑着这许多挥之不去的现实矛盾.北岛说:“告诉你吧,世界:我不相信!” 然而,让我相信什么好呢?又不相信什么好呢?我不如在自己的国度里继续沉沦.


  火红色的酒浆仿佛是热血酿成
  欢乐的酒杯里溢满过疯狂的热情
  而如今这酒杯在我激动的手中战栗
  波动中有你一双美丽的眼睛
  我已在欢乐中陶醉
  但为了心灵的安宁
  还要干了这一杯
  喝尽你那一片痴情

          ——《酒》,食指

http://ruiwen.com/news/30586.htm

标签: , ,

Complete syntax of Lua in extended BNF

Complete syntax of Lua in extended BNF. (It does not describe operator precedences.)
 chunk ::= {stat [`;´]} [laststat [`;´]]

block ::= chunk

stat ::= varlist1 `=´ explist1 |
functioncall |
do block end |
while exp do block end |
repeat block until exp |
if exp then block {elseif exp then block} [else block] end |
for Name `=´ exp `,´ exp [`,´ exp] do block end |
for namelist in explist1 do block end |
function funcname funcbody |
local function Name funcbody |
local namelist [`=´ explist1]

laststat ::= return [explist1] | break

funcname ::= Name {`.´ Name} [`:´ Name]

varlist1 ::= var {`,´ var}

var ::= Name | prefixexp `[´ exp `]´ | prefixexp `.´ Name

namelist ::= Name {`,´ Name}

explist1 ::= {exp `,´} exp

exp ::= nil | false | true | Number | String | `...´ | function |
prefixexp | tableconstructor | exp binop exp | unop exp

prefixexp ::= var | functioncall | `(´ exp `)´

functioncall ::= prefixexp args | prefixexp `:´ Name args

args ::= `(´ [explist1] `)´ | tableconstructor | String

function ::= function funcbody

funcbody ::= `(´ [parlist1] `)´ block end

parlist1 ::= namelist [`,´ `...´] | `...´

tableconstructor ::= `{´ [fieldlist] `}´

fieldlist ::= field {fieldsep field} [fieldsep]

field ::= `[´ exp `]´ `=´ exp | Name `=´ exp | exp

fieldsep ::= `,´ | `;´

binop ::= `+´ | `-´ | `*´ | `/´ | `^´ | `%´ | `..´ |
`<´ | `<=´ | `>´ | `>=´ | `==´ | `~=´ |
and | or

unop ::= `-´ | not | `#´


标签: , ,

ADG:自动绘图生成库

ADG的全称是:Automatic Drawing Generation,它不是一个应用软件,而是一个经过包装、容易使用的图形库。它主要面向CAD系统,提供一个通用的、非交互的画板。
ADG基于著名的Cairo矢量图形库,因此能提供质量非常好的2D图形渲染。ADG使用了GObject来提供面向对象机制,并具备Model-View概念,具备很强的定制能力。
软件开发者可以利用ADG来开发出一款具备工业级标准的平面设计软件,当然因为这套库还在开发当中,还不能与已有的CAD系统相比。

The ADG library (Automatic Drawing Generation) is a set of functions focused on automating the drawing of mechanical parts.

It is not a CAD system but a library providing a non-interactive canvas where you can put common CAD entities such as paths, xatches and quotes, to create your technical drawings.

If you want to develop an application that needs to show and print drawings, also complex, where some data change but the overall design is ever the same the ADG library comes in handy. In production factories, this is often a good choice and could help to greatly improve the production in technical offices.

You can reach similar targets using parametric CADs but a custom application provides the following benefits:

  • more customizable
    if you have to create an application from ground, you can do whatever you want;
  • not so bloated as a parametric CAD
    this honestly depends on your application but, talking in general, ADG doesn't have a lot of stuff a CAD system must have;
  • can be easily connected to a database
    the model-view separation greatly improves the ADG connectivity;
  • the drawings could be generated on-fly
    no needs for user interaction: this feature can be used in a dynamic site throught a web-based application.

This library is developed in C using an object-oriented approach. It is primarily focused on GNU/Linux systems, but a porting to other environments should be easy (if not automatic): all the underlying libraries are known to run on Windows and OSX (at least).

As yet stated, the ADG uses the model-view concept: this helps the data source connection because, whenever you need to change the current part you want to see/check/print, it suffices to change the data inside the model.


http://www.entidi.it/adg/

标签: , ,

星期三, 八月 20, 2008

无忌论坛 - 家庭彩色胶片冲洗的可能性和技巧

自从10几年前开始玩摄影到现在,从未想到过自己需要冲洗色彩胶片。一直为身边有很多高质量的冲洗服务而感到幸运,一直在享受着专业级别冲洗所带来的优越 感。直到有一天突然发现身边的那些冲洗店已经逐渐消失。一家1986年开张到现在经历了20年的图片社,有一天路过时发现已经变成了美容厅。我亲眼目睹了 这家图片社如何改造传统摄影服务项目,在保留胶片服务项目的同时增加各类数码服务项目。但是他们最终没能逃过数码革命的浩劫。

http://www.xitek.com/forum/showthread.php?threadid=426525&pagenumber=84

标签:

run_xiao2000:tiny解析的功能上增加了线程和缓存的功能

昨天在tiny解析的功能上增加了线程和缓存的功能,在我机器上Run了几次,基本上起两个线程耗费的时间是一个线程的两倍左右。想想自己机器是单核的,让prolj兄帮忙在他双核机器上run了一下,降到1.5倍左右。

跟当初设想的差距还是挺大,难度线程的切换和同步这么耗时间?


我把程序传上来,双核机器的兄弟可以帮我Run起来试试看

make multi:两个线程运行
make single:单线程运行

http://linux.chinaunix.net/bbs/attachment.php?aid=184614

标签: ,

Grid平台上的NGS编译技术

随 着网络技术的发展,在异构平台上使用共同的计算和信息资源将很快成为可能.Grid(网格)就是这样一种提供资源共享的新兴平台,而在其之上的下一代软件 程序(NGS)则对编译器提出了新的挑战[1].未来Grid平台上的编译系统将是能够进行动态编译和优化,根据实时系统以及网络的性能不断进行自我调整 的软件模型,同时它还能为具有自适应性的应用程序提供编译支持.

http://scholar.ilib.cn/Abstract.aspx?A=jsjgcyyy200324027

标签: ,

[Intro]Quick Build

QuickBuild is the professional version of the popular open source build server, Luntbuild. It is a cross-platform build automation and management server that unifies all levels of builds such as continuous integration, daily build, QA and release build. Build can be promoted from one level to another, triggering desired steps such as sending notification, source code re-labeling, etc. QuickBuild enables a build-centric process to drive the smooth delivery of builds between different groups of the team, for example, from developer to QA, from QA to release manager, etc.

http://www.pmease.com/app.do

标签: ,

DFA压缩论文链接

DFA压缩
http://linux.chinaunix.net/bbs/attachment.php?aid=211199

标签: ,

星期二, 八月 19, 2008

高速全文检索引擎Sphinx安装指南及下载

Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索

http://srsman.com/2008/08/sphinx/

标签: , , , ,

PostgreSQL的FTI与中文全文索引的实践

安装 postgresql

你可以像平常一样编译和安装 postgresql,使用 tsearch2 进行中文的全文索引的时候,真正的区别发生在初始化数据库的时候。

http://www.pgsqldb.org/mwiki/index.php/PostgreSQL%E7%9A%84FTI%E4%B8%8E%E4%B8%AD%E6%96%87%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95%E7%9A%84%E5%AE%9E%E8%B7%B5

标签: ,

中文关键字提取

最近整的是中文分词与关键字提取,用python写的原型,算是复杂度比较可观的应用了;
分词的资料不太好找,只有KaiFu Lee在MSRA带着Guo姓小弟做的一些列paper和中科院I3S组的分词程序。
关键字提取是无先验信息的,篇幅也很短效,但是功能还是满意了。基本流程是聚类后,算条件概率,思想来自某大学的Paper。
起初的实现的模型,大概在1000汉字每秒的处理能力;
折腾了一天,提升到12000汉子每秒。
http://entelechie.ycool.com/post.2763166.html

标签: ,

双语语料库-中文分词的方法

刚刚把语料库研究的初稿交上去,感觉还是很幼稚。但是至少我认真做了,想想工作这一年,没有好好去研究点东西,所以技术也没有什么进步。是该认真做点东西了。

http://blog.donews.com/glemir/archive/2006/09/25/1046633.aspx

标签:

ShootSearch 中文分词组件(c#开源)

ShootSearch 中文分词组件(c#开源) 技术支持:support@shootsoft.net http://www.shootsoft.net 分词算法:词库+最大匹配 词库来自www.jesoft.cn,已经过一定的修改 使用说明: 先加载词库,再进行分词.分词过程重载两次:支持回车的和不支持回车的,注意选择! 可以手动添加词语到sDict.txt,不过每次手动修改后需要调用SortDic()方法,否则无法实现最大匹配! sDict.txt的编码为UTF-8!

http://download.csdn.net/source/159089

标签: , ,

Web Spider提取编码方法总结

概要:
1,通过分析Header提取编码
2,通过分析BOM(Byte Order Mark)提取编码
3,通过分析页面的meta提取编码
4,通过字节流分析检测编码

http://www.cnblogs.com/kwklover/archive/2007/01/24/628501.html

标签: ,

基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计

http://blog.s135.com/read.php/360.htm

[文章作者:张宴 本文版本:v1.0 最后修改:2008.07.27 转载请注明原文链接:http://blog.s135.com/read.php/360.htm]

  前言:本文阐述的是一款经过生产环境检验的千万级数据全文检索(搜索引擎)架构。本文只列出前几章的内容节选,不提供全文内容。

   在DELL PowerEdge 6850服务器(四颗64 位Inter Xeon MP 7110N处理器 / 8GB内存)、RedHat AS4 Linux操作系统、MySQL 5.1.26、MyISAM存储引擎、key_buffer=1024M环境下实测,单表1000万条记录的数据量(这张MySQL表拥有int、 datetime、varchar、text等类型的10多个字段,只有主键,无其它索引),用主键(PRIMARY KEY)作为WHERE条件进行SQL查询,速度非常之快,只耗费0.01秒。

  出自俄罗斯的开源全文搜索引擎软件Sphinx, 单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为:创建100万条记录的索引只需 3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。

  基于以上 几点,我设计出了这套搜索引擎架构。在生产环境运行了一周,效果非常不错。有时间我会专为配合Sphinx搜索引擎,开发一个逻辑简单、速度快、占用内存 低、非表锁的MySQL存储引擎插件,用来代替MyISAM引擎,以解决MyISAM存储引擎在频繁更新操作时的锁表延迟问题。另外,分布式搜索技术上已 无任何问题。

全部内容请点击上面链接

标签: , , ,

有用的Python中文分词链接

python中文分词模块

http://www.zeuux.org/pipermail/zeuux-python/2007-June/039597.html


分词后续, SCWS(简体中文分词)第4版出来了 :-)

http://www.chmhome.com/knowledge/php/20070624/50559.html

中文分词
http://nzinfo.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=cat%3D%25e4%25b8%25ad%25e6%2596%2587%25e5%2588%2586%25e8%25af%258d

中文分词
http://www.162cm.com/archives/tag/%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D

标签: ,

中文分词Python相关

中文搜索/分词

http://wiki.woodpecker.org.cn/moin/PyInChinese

标签: ,

星期一, 八月 18, 2008

ANTLRWorks: The ANTLR GUI Development Environment

ANTLRWorks: The ANTLR GUI Development Environment

Jean ANTLRWorks is a novel grammar development environment for ANTLR v3 grammars written by Jean Bovet (with suggested use cases from Terence Parr). It combines an excellent grammar-aware editor with an interpreter for rapid prototyping and a language-agnostic debugger for isolating grammar errors. ANTLRWorks helps eliminate grammar nondeterminisms, one of the most difficult problems for beginners and experts alike, by highlighting nondeterministic paths in the syntax diagram associated with a grammar. ANTLRWorks' goal is to make grammars more accessible to the average programmer, improve maintainability and readability of grammars by providing excellent grammar navigation and refactoring tools, and address the most common questions and problems encountered by grammar developers:
  • Why is this grammar fragment nondeterministic?
  • Does this rule match a sample input?
  • Why is this grammar improperly matching this complete input?
  • Why is there a syntax error given this input?
  • Why is there no syntax error given this ungrammatical input?
ANTLRWorks speeds up development for experts and beginners alike.

标签:

星期四, 八月 14, 2008

Google App Engine 提供5G Python空间

Google App Engine是Google推出的免费虚拟主机空间,其实这比一般虚拟主机强悍的多,你可以利用Google App Engine工具来开发网站或制作网络应用程序,Google会在自己的庞大服务器集群上为你提供空间、带宽、资源等。目前Google App Engine为每个用户提供10个Application(简称App),每个App有500M免费空间,每个App限制1000个文件,单个文件1M以 内,每天流量20G。每个App提供免费二级域名1个,同时也可绑米。目前还仅支持Python一种语言脚本,不支持PHP、Perl、ASP等。

注意:这是Google面向程序开发人员提供的一项免费服务,如果你对Python不了解也不感兴趣建议不要申请,虽然很强悍但使用起来比任何一个免费空间都麻烦。

网址:http://appengine.google.com

如果你使用Google Apps,可以用“http://appengine.google.com/a/你的域名/”这个地址来申请,如果你要绑定域名,仅能绑定申请了 Google Apps服务的域名。另外,申请的时候需要填写手机号码,会给你发送确认码来确认申请,目前Google在中国仅支持中国联通,所以要用联通手机申请才能 收到确认码,如果你用的不是联通手机,那就无缘Google App Engine了,且一个手机只能申请一个帐户。

官方入门指南:http://code.google.com/appengine/docs/gettingstarted

入门指南中文翻译版:http://hi.baidu.com/…/772eb07e43ff613d0cd7daa6.html

目前官方仅有英文版入门指南,所以在网上找了个网友翻译的中文版给大家做参考,有兴趣仔细看看吧。

配额限制:http://code.google.com/appengine/articles/quotas.html

Google App Engine详细配额限制,很全面。你的程序上传运行后,在Google App Engine的管理面板中可以看到配额使用情况。

Python运行限制:http://code.google.com/appengine/docs/python

Google App Engine中的Python是运行在一个受限的环境中,例如:对操作系统的底层调用、网络操作以及一些文件系统操作都是不允许的,尝试这些操作时会引起错误。

演示:http://free8.appspot.com

费了好大劲才弄好了一个页面,对于Python不太了解的新手来说,建议不要申请使用。
另外给大家两个用Google App Engine做的在线代理网站演示:

http://w3w.appspot.com

http://go2.appspot.com

原文:http://www.chinaz.com/Webbiz/Free/0PS4Z02008.html

标签: ,

转2篇文章

1. 如何申请Google Apps
http://www.gythialy.net/posts/howto-apply-google-app/

2. Python写的一个crawler
http://my.huhoo.net/archives/2007/09/python.html

星期二, 八月 12, 2008

无题

心态,重要的是心态。

标签:

星期三, 八月 06, 2008

无题

2008-08-05 晚选择将IBM拒了,决定FOCUS ON SOMETHING。纪念一下。

标签:

无题

一、
明日七夕,又是七夕,年年七夕。
天上牛郎织女会,白头鸳鸯两依依,
何处是消息。

二、
等消息,盼消息,甚无趣。
醒来细择白发丝,
明日不相思。

三、
明日成今日,将来作今时。
漫步灯红酒绿处,枯坐但看人如织,
何人爱相思。

标签:

星期一, 八月 04, 2008

无题

一、
得我所幸,失我所命,日以思之,彳亍怯行,继夜忧之,中心哀恸。

二、
德我所有,唯是不朽,栽花见花,折柳成柳,既而德失,身不长久,辟如乞者,不着寸缕。

三、
善我所为,恶我所为,善恶一念,,草木葳蕤,视而不见,庙堂倾颓。

标签:

星期日, 八月 03, 2008



昨天大连的云。

标签:

无题

云卷云舒,艳霞漫天,微风轻摇树三千。
前浪后浪,退潮小蟹,浅酌低吟不羡仙。
当是时也,临波望去,想必琼宫玉栏杆。
且去纵酒,虚掷万钱,人生何处不留连。

标签:

星期五, 八月 01, 2008

无题

从今天起本仙忌酒,忌烟。。。。

标签:

辽ICP备05003652号
流风洄雪听天籁,轻云蔽日看落花

Powered by Blogger