Ruby 语言 思想驱动生活

Ruby,Rails,编程是一种乐趣。

还是病毒

还是发现了一些病毒,或者叫做木马。
又搞了半天,更有点对病毒作战的感悟
首先是两个软件很不错,一个是冰剑(IceSword),一个是SREng(System Repair Engineer)
冰剑可以删除taskmanager不能杀得进程,也能删掉explorer不能删掉的文件。
SREeng可以发现注册表的问题,今天就是它提示的,提示APPINIT_DLLS被修改了。就用冰剑把那个文件(dll)删掉了。
二是禁用VB脚本,尽量使用firefox了。
在当前用户的temp下发现了类似这样的文件
Set Shell = CreateObject(”Wscript.Shell”)
Shell.Run(”C:\DOCUME~1\a\LOCALS~1\Temp\zj.exe”)
set Shell=Nothing
i=1
下面的这条命令可以禁止文件系统对象(FileSystemObject)
regsvr32 scrrun.dll /u
总之,另外,这几次发现的都是盗用密码之类的木马,而且都是明目张胆的往某些ip地址post数据,抓出这些傻逼病毒使用者/制造者很容易吧,我们的保护神公安局在干什么呢?
以下来自网络搜索结果,我也没全尝试:
_______________________________________
  2、禁用Wscript.Shell组件:
  Wscript.Shell可以调用系统内核运行DOS基本命令。可以通过修改注册表,将此组件改名,来防止此类木马的危害。HKEY_CLASSES_ROOT\Wscript.Shell\ 及HKEY_CLASSES_ROOT\Wscript.Shell.1\改名为其它的名字。将两项clsid的值也改一下HKEY_CLASSES_ROOT\Wscript.Shell\CLSID\项目的值和HKEY_CLASSES_ROOT\Wscript.Shell.1\CLSID\项目的值,也可以将其删除。
  3、禁用Shell.Application组件
  Shell.Application也可以调用系统内核运行DOS基本命令。可以通过修改注册表,将此组件改名,来防止此类木马的危害。HKEY_CLASSES_ROOT\Shell.Application\ 及HKEY_CLASSES_ROOT\Shell.Application.1\ 改名为其它的名字。将HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值更改或删除。同时,禁止Guest用户使用shell32.dll来防止调用此组件。使用命令:cacls C:\WINNT\system32\shell32.dll /e /d guests
  4、FileSystemObject组件
  FileSystemObject可以对文件进行常规操作可以通过修改注册表,将此组件改名,来防止此类木马的危害。对应注册表项为HKEY_CLASSES_ROOT\scripting.FileSystemObject\。可以禁止guests用户使用或直接将其删除。考虑到很多的上传都会使用到这个组件,为了方便,这里不建议更改或删除。

Ruby也要搞认证考试了

今年10月在东京和Matz在住的松江,明年2月开始开始网络版的考试,有英语和日语。
Matz和他们公司的另两个人组成了一个Ruby Association LLC (http://www.ruby-assn.org/index.html.en),当然,并没有辞职,这个公司是个LLC,主要为了帮助Ruby发展而建立的。这个认证也是由Ruby Association主办的。

与病毒斗,真累

昨天双击d盘,没反应,右键一看第一个是auto,好像又中了那个病毒了。而且是不到1年之内的第三次了。以前还算顺利,杀这个病毒。这次就惨了。
查看进程,启动选项,很正常,删掉autorun.inf和那个pagefile两个文件,当时是没事,这时候,如果再从桌面或者开始菜单启动任何程序,这两个文件都会被重建。
重启,报explorer.exe错误,金山的个人防火墙也没了(没启动),查看explorer这个文件,好像没什么问题。启动防火墙,突然报explorer要访问网络,我靠你一资源浏览器干什么新潮访问个鸟啊,一旦允许,立刻金山报了无数病毒,多是窃取密码的木马。Win32.Troj.Lyloader.a.14848
Win32.Troj.PswrobT.gl.90112
Win32.PSWTroj.WOW.sa.153088
等。
地点都是
\Local Settings\Temp
名字是1.exe,2.exe,3.exe之类的。
鸟人,查看一下网络状况,一个连到了74.222.148.2 一个222.73.15.76。一个美国,一个上海(SB那个上海人和gaj)。端口都是80,肯定有问题。
用IceSword看了一下Explorer加载的模块,发现了两个dll比较差劲
一个在ie的plugins,叫做newtemp.dll,而且是隐藏文件,一个是cnsmin.dll。
在文件系统里查找,最近几天的dll,果然就这几个文件,还有一个kulionzx.dll,好像也是病毒。从注册表里找到这些,都删掉,重启之后目前一切正常。
至此虽然告一段落,但是为什么会中毒,毒源还没找到,每天上的网站也都是固定的几个,也不怎么乱下软件。其中一个原因是可以肯定的,就是windows,至于为什么windows的病毒这么多?原因也是很多的,比如windows系统很复杂,说他复杂过linux毫不过分,普通的人很难完全精通掌握系统复杂层次的东西,当然,他们的安全防范的设计估计也挺差,不至于因为大家都用管理员账户就可以这么容易感染病毒吧,比如那个注册表,怎么那么容易被改写?难道真是因为用户都变成傻瓜了。

NSK里的DEFINE

Nsk里的Define跟c语言里的define类似,不过不是语言级别的,是执行环境级别的,或者说是session级别的。Logon之后定义的define,logoff之后就没了,下次logon还要在执行(手工或者放到logon之后自动执行的脚本里)
Define的好处就是方便,简单。比如程序读写文件,实际的文件名随时会变,大多数情况下都会把要读写的文件放到一个固定的config文件里,然后从config里来得到文件的路径。Nsk的话,在程序里只需要使用理论名(即define值)。
Define是一个key value类型的,程序使用key,至于value是什么,执行之前指定就行了。
先说define名,就是上面的那个key了,必须是=开头,长度(包括=)2-24,第二个字符必须是英字母。
Define属性。最主要的是class属性,指定define的类型,包括sql的catalog,defaults,map(key-实际文件名),spool,tape等。经常用的就是catalog和map了。
这是一个简单的map的例子
$DISK SUBVOL 4> ADD DEFINE =MYDEF , CLASS MAP , FILE $DISK.SUBVOL.FILE1
$DISK SUBVOL 5> info define =MYDEF
Define Name =MYDEF
CLASS MAP
FILE […]

这段话有问题吗?

在看Ralf Wirdemann 和Thomas Baustert的《RESTful Rails Development》,1.2节的why REST的时候说道:
Clean URLs. REST URLs represent resources and not actions. URLs always have the
same format: first comes the controller and then the id of the referenced esource.
The requested manipulation is independent of the URL and is expressed with the help of HTTP verbs.
说REST有着清楚简洁的URL风格,URL里不表示(带)action,是controller/:id这样形式的,至于对这个资源进行何种操作,是通过http header里的动词来指定的。
我是对这句话很有疑问,http header 里就4中操作,如果处理CRUD以外的action的话,怎么办?
Map.resources 的时候可以指定collection或者member的action,就是说url里还是会出现action的,比如users;top10,可以列出排名前十的用户,这个top10就是collection指定的users控制器的一个action。
这句话说的即使不错,也是不严谨的。对于刚接触REST这个词的人来说,很容易误解,误入歧途。
我觉得,不是说/projects/1就比/projects/show/1更RESTful了。
本来,URL就是RESTful的东西。

你会给你儿子起个什么名字?

今天在slashdot.jp上看到了这个新闻http://slashdot.jp/articles/07/08/19/2258202.shtml,说中国一对夫妇要给孩子起个带@的名字,中文版在http://tech.sina.com.cn/i/2007-08-17/10321682868.shtml,竟然sina的新闻如此翻译人家cnet的。
还是说slashdot.jp的吧,底下有留言,说隔壁有人叫IDE(这个就是井上的假名),和ASCII(和明日树只是发音一样,假名写法差点)。还从中找到了这个http://ja.wikipedia.org/wiki?????????
说是那个人要给孩子起个名字叫【恶魔】,被拒了,理由是父母滥用权利,损害小孩权利。结果那个人又用同样的发音但是不同的汉字去申请,还是被拒了。这件事引起了媒体的广泛关注,结果是父母离婚,小孩被送进了儿童养护设施,就是一福利机构。这个小孩今年应该是14岁了吧。
另一个就是给孩子起个名字要43个字母
http://en.wikipedia.org/wiki/????????????????
这个人被罚了钱,还认为这是自己的创造。
你会给你儿子起个什么名字?

足球又回来了

第一场是拜仁,还好,德甲还能在cctv5上看。有了托尼,克洛泽,里贝里的拜仁,今年会有什么样的成绩呢?
刚说到这克洛泽一个助攻,托尼进球了,太棒了。
比赛结束了,3:0,克洛泽一个助攻两个进球,里贝里,拉姆,卢西奥,也都很兴奋那。
英超和意甲都被天盛买了,好比赛都看不了了。
今天开始,各大联赛就要陆续开始了,又可以为生活添点乐趣了。
不光是看,从现在开始,还要尽量找到地方去踢球,才叫爽。上次踢球,还是去年10月8号,大概,快一年了,真是憋得难受。
想起来都脚痒。

用批处理(bat)文件切换ip地址

因为要连好几个server,因为各种原因,每个server都是在分离的网络中,不能互相访问,必须切换不同的hub,换ip
从网络属性用鼠标来改比较麻烦,所以写个bat文件来执行,只需要双击就行了。
@echo off
set eth="本地连接1"
 
set ip=192.168.1.3
set gw=192.168.1.1
set netmasks=255.255.255.248
echo change ip to %ip%
 
netsh interface ip set address %eth% static %ip% %netmasks% %gw% 1
 
rem netsh interface ip set address %eth% source=dhcp
pause
close
netsh interface ip 命令跟ifconfig类似。

推荐个diff工具

WinMerge,非常好用,最基本的能比较两个文件或者两个文件夹,随便选中两个文件点右键就可以比较。
界面也非常好看,diff出来不同的一行,改变的和没变的用不同的颜色表示。
当然从名字来看,它还是一个merge工具。
去看看吧http://winmerge.org/

REST有什么好的

REST(Representational State Transfer )在Rails里已经被支持了,但是始终搞不清它到底好在哪里。以下均为个人理解,如果不对的地方请指正。
REST以资源为中心,在典型的oltp系统里这个资源就是一个数据库记录,分析层上是一个业务对象。
rest把资源放到URL里,而对资源的CRUD操作则放在http的header里。(因为现在的浏览器还只支持get和post,而delete和put则需要格外处理,rails里是用了input hidden控件)
对于对象的操作,不像以往那样表现在URL上,比如/blog/delete/1表示删除id为1的blog项目,在rest里,只需要/blog/1至于是删除,还是更新,在URL里是看不出来的(这样会不会有问题?比如用户从URL看以为当前是show,F5刷新了一下,结果实际上是delete)。
REST真的把URL变得简单了?如果只是长度小了的话可以算是。也许REST的好处就是使得URL的数量变小。
当然,以上看法只是对使用浏览器来操作web应用的场合,至于web service的话,不需要用户了解多少url等内容,也许会确实变得简单。
这里有一个简单的介绍教程,REST的

  

Locations of visitors to this page