`
Goldice
  • 浏览: 108067 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
分享一个expect的脚本,可以用于Linux机器之间远程执行命令:     #!/usr/bin/expect -f set ipaddress [lindex $argv 0] set user [lindex $argv 1] set passwd [lindex $argv 2] set cmd [lindex $argv 3] set timeout [lindex $argv 4] spawn -noecho ssh $user@$ipaddress $cmd expect { "yes/no" { send "yes\ ...
  首先对源文件进行编译: Preparing your programCompile your program with -g to include debugging information so that Memcheck's error messages include exact line numbers.-O0 a good idea if you can tolerate the slowdown-O1 line number in error message can be inaccurate although generally speaking running Memc ...
介绍一点vim下使用Ruby的技巧。   1. vim命令行模式下输入 !ruby %  可以直接运行Ruby程序,并返回到vim编辑   2. vim Ruby关键字及自定义变量补全 拷贝附录中的ruby-macros.vim至机器某处,然后修改~/.vimrc,添加一行: source ROOT(自己定义)/ruby-macros.vim 在用vim进行Ruby编程中,就可以用ctrl+n来补全关键字及变量了。   
    一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地;      与ssh有关的两个命令可以提供很方便的操作:       sz:将选定的文件发送(send)到本地机器       rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive) 当然,还可以设置一下目录了: 设置一下上传和下载的默认目录options–>session options–>file transfer 下可以设置上传和下载的目录剩 ...
  原来发在diandian的几篇旧闻,也一并转到iteye上来吧。   1. exec exec 'echo "hello $HOSTNAME"' 用echo命令来取代当前进程,无法知道命令是否成功 2. system system('echo "hello $HOSTNAME"') 运行一个子shell来避免覆盖当前进程,运行成功返回true,运行失败返回false 3. ·· 反引号    `echo $HOSTNAME` 运行一个子shell来避免覆盖当前进程,可以接受命令执行结果 4. IO.popen def run ...
今天又机会尝试了下Ruby的Tempfile库,相比于自己创建临时文件再删除的方法简便了很多。     require 'tempfile' tmp = Tempfile.new("tmp") tmp.path # => /tmp/tmp20110928-12389-8yyc6w 不唯一 tmp.write("This is a tempfile") tmp.rewind tmp.read # => "This is a tempfile" tmp.close tmp.unlink # = ...

要多点想法

      要多点想法,想法很重要。好的想法是一个好的产品的源头,好的想法能让技术事半功倍。         虽然不能一棍子打死,但是我不认为,想法可以脱离技术而存在,或者说,完全不懂技术的情况下,你可以提出好的想法。如果新浪微博不开放平台,你对微博用户数据的任何想法都是一句空谈;而如果你知道新浪微博的开放平台,了解他们的开放API,你会多很多想法的源泉。         这个在线词典的命令行版本(http://xiechengfa.iteye.com/blog/999151),我就非常喜欢:1. 实用。在Linux下遇到不懂的英文单词,你可以不用上网就能查到;对技术人员来说,英文文档遇 ...
我的《C++ Primer》扉页记着购书的日期和地点:C++ Primer 2009.11.28购于西区求索。那时对于这本厚书一直心怀敬畏,仿佛是眼前的一座大山。那时,虽然已经大四,但是对于面向对象的理解还很肤浅(相当肤浅),只能用C++编写一些简陋的C风格的结构化的程序。一晃快两年过去了,过去的时光放佛已经尘封于历史之中了,离自己已经遥远,但我知道自己现在唯有迎难前进,方能获得希望。但愿过去的时光可以让我学的更轻松,小小的期望,在购书两周年之际学完C++。   Chapter1 iostream库——istream类(输入流)和ostream类(输出流) 标准输入 cin 标 ...
今天发现了Ruby1.8.6和 Ruby1.9.2的一个不同之处,试运行以下代码:   require 'find' puts Find.find("./data").class 在Ruby1.9.2中,最后的结果是Enumerator,而在Ruby1.8.6中,结果则是`find': no block given (LocalJumpError) 由此可见Enumerator是Ruby1.9.2中新增的类。   使用ri Enumerator得到的说明是: Enumerator是 A class which provides a method 'eac ...
《松本行弘的程序世界》对模板方法(Template method)的说明非常清晰: 在父类的一个方法中定义算法的框架,其中几个步骤的具体内容则留给子类来实现。   比如一个用于公司欢迎同事的程序:   class A def initialize @name = "jinbin" @word = "hello" end def say_word puts "Welco ...
介绍几种不常见的类定义方法:   1. Struct   Person=Struct.new(:name,:age,:sex) p=Person.new("liyuchun") puts p    Struct生成一个仅仅包含数据属性的类。但是你可以在这个类的基础上扩展:   Person=Struct.new(:name,:age,:sex) class Person def log puts "log here" end end   ...
Ruby使用者对attr_accessor一定不会陌生。   class A attr_accessor :num end 等效于: class A def num @num end def =(value) @num = value end end 在类的定义中,attr_accessor定义了num的读写方法,只用了一行代码就生成了两个实例方法,很cool,不是嘛?。这就是Metaprogramming,用程序来 ...
    系统常常会出现这种情况: 每一个部分需要知道整体的状态。比如Excel中,当你修改了一个单元格的值,可能横列的sum需要改变,纵列的sum需要改变,根据这个单元格做的图需要改变,是否被修改的按钮需要激活... 如果没有一种很好的处理方式,导致的结果将是系统 highly integrated。   仔细分析,比如Excel的单元格,我们可以抽象出单元格是a source of news ,而其他部门是 receiver,接受单元格的改动的通知,然后进行自己的处理。 比如,单元格修改之后,通知计算总和的类来做相应的处理。     class Excel ...
微博上的蔡学镛是个有趣的家伙,有条微博这样写道: “记得十多年前我的第一本书出版时,我隔几天就到书店微服出巡,看看状况。当看到有人拿起我的书时,我内心的口白:"英明英明,你可真识货呀!"  ... 当有人放回我的书,我内心的口白酸溜溜的:"显然不是个懂书的人" ” 本人很惭愧,至今没看过蔡学镛的任何书籍(可能有误打误撞的,但绝对没认真看过),难怪至今与Java无缘。为了减轻负罪感,特地搜索了下蔡学镛的著作,决定从《Java夜未眠》看起。   本人看电子书要比纸质书要快很多,一边滚动鼠标,一边用眼睛一目十行,给我一种满足感。当然,有些不感兴趣,或者关 ...
Ruby中,特定于某一对象的方法被称为Singleton method。   例如:   a = "string" def a.run puts "#{self} run" end str.run # =>#string run     run方法是特定于a这个对象的,故run方法是a的Singleton方法。   实现上, ...
Global site tag (gtag.js) - Google Analytics