Charles's profile等☆等☆等☆等PhotosBlogListsMore Tools Help

Blog


    May 31

    租房篇

    OK,先来说说租房的问题。
    领导要工作了,计划在复兴门附近租个小窝。于是我也肩负起了这个重任。
    针对现在租房的严峻形势,我制定的租房工作计划,如下:
     
    第一步,谨防上当。
          平时对于租房的复杂性也有所耳闻,因此首先要补充自我保护的知识。这些只是的来源有两方面,其一,lqqm和newsmth的有关house的版面精华区。精华区中列举和总结了大量黑中介的骗人伎俩,网友的亲身经历,以及黑中介黑房东的名单。其二,从有经验的朋友处了解租房经验。经过这两方面的知识补给,基本上完成了从小菜鸟到不是十分菜的菜鸟的转变。
     
    第二步,信息搜集。
          现在即将进入租房的高峰期,因此信息搜集的形势也格外严峻。我的信息搜集工作,主要从两个方面来着手。
          首先,亲友团。为了避免被骗,亲友团显然是最可靠的房源信息来源。因此广大亲友,也是我首选的途径。亲友团主要包括她的亲戚朋友(这当然她自己负责联系),我的朋友和同学(通过电话短信的方式取得联系),以及一些不是很熟的朋友们(比如bbs和msn上改个昵称啊之类的)。
          其次,网上信息。最主要的信息来源,当然还是网络。这主要包含了一些房屋信息的专业网站,比如soufun,以及bbs的房屋租赁版。手段当然就是大量浏览加上适当搜索了。这里要提出的是,网络的不确定性,导致了在网络上的信息也存在真伪的问题。soufun网上搜索复兴门附近的房屋。很容易搜到一些价格很便宜的信息(典型例子:中央音乐学院院内,一室一厅,800/月)。搜房网的信息一般分为三类,其一是标明了中介公司的信息,其二是个人租房精品信息,其三是“十万火急”租房信息。第一类,当然是中介,而且发布这些信息的中介也鱼龙混杂,不是很可靠。第三类,基本上全都是中介,而且估计很大一部分是黑中介。因为第三类信息常常出现前面说的很便宜的房屋信息。基本上是骗人为主。发布第三类信息不需要通过搜房网的审核,只需付费即可。第二类,据说可信性高一些(这里用“据说”是因为一个朋友就是通过这种方式联系到了房主,并成功租房。但我没有亲身经历。)。因为在搜房网发布第二类信息是免费的,但信息需要通过搜房网的审核才会发布。求租者如果想了解第二类信息中的房主联系方式,则需要用手机的方式付费(1rmb/每条)。
     
    第三步,主动出击。
          网上搜集信息还是比较被动,想要更有效的租房,主动出击是相当有效的手段。这里说的主动出击,基本上就是“贴条儿”了。这种想法的由来是基于两个假设:1,房东存在于各个年龄层次,其中年轻人的比例并不大。而年龄大的房东,未必懂得在网站上或bbs上发布信息。2,复兴门附近的房东,未见得会把信息发布在清华或北大的bbs上。
          于是我们决定去贴条。事先的准备不复杂,主要是准备“条儿”(也就是求租广告),和制定路线。具体到广告怎么写,路线怎么制定,就不说了。见仁见智。
          出发去贴条儿,是在周六的下午。到达了目的地之后,便开始在附近的各个小区中游荡。看到条件比较合乎要求的地方,便找小区的公告栏之类的醒目地方贴上广告一张。这里要提到居委会大妈们的角色。很多人说贴条儿的时候会遭到居委会大妈们的追杀。我倒是没遇到。一般到了每一处,如果有居委会或者门房之类的地方,我都会先去跟那里面的大妈打个招呼,问一下她们是否了解本小区有人想出租房子的,(一般答复都是不知道或没有),然后就问,“我想贴个求租广告,可以么?"然后,基本上就可以了。
          回来总结一下出去贴条的好处。发现有三条:1,当然有效的发布了自己的求租信息。我们贴条15张,当天下午就接到一个电话,后来又陆续接到3-4个电话。虽然并不都是我们要租的一居室,但基本上都是房主。这样看来比在网上要高效得多。2,充分的了解了目标区域内的房源情况。通过走访各个小区,我们了解了各个目标区域内房间的新旧条件,居住环境和交通条件等。这对于对当地不甚了解的我们,其实也是很重要的。后来有一些电话打来,描述了位置之后,我们就基本上知道是什么样的房子了。3,可以有一些意外的收获。在贴条的过程中,常看到一些我们的同行留下的广告。有求租的,有征合租的也有出租的。我们就曾看了出租的广告,当场打过去联系。
     
          最后,通过知识补充和信息收集,我们就可以开始看房了。不过遗憾的是看的两个房子,都不是很满意。不过其实那两个房子本身还是不错的。嗯。
     
          关于租房的事情暂时告一段落了,我也就总结到这里。领导现在决定住在家里了。

    一转眼,到了端午节

    好久没有更新了,呵呵,上一篇是5月11号灌上来的。今天已经是5月31号了。
    最近20天都做了些什么呢?突然发现做的事情其实不是很多。
    先简单总结一下,后面再一项一项的展开吧。
    年纪大了,脑子难免不好用,只能翻开outlook的日历,来帮助反省。
    5月13日的那个周六,和女朋友一起去逛街了。因此还借故请假,没有参加上一次的组织生活。
    5月15日开始的一周,基本上是在实验室里面关注租房信息。浏览了很多租房信息网站以及两全其美和水木社区的租房版。颇长了一些对于中介的知识。好黑啊。
    5月20日去贴条了,从木樨地走到长椿街。体力上面消耗不少。贴了大约15张条。
    5月22日开始的一周,周一周二看了两次房子,周二参加了一天SNW,周四进行了一次全面体检,周四和周六周末接待了远道来的老妈。周日考了IBM Blue Pathway的笔试。
    5月29日开始,沉迷于coding,没办法,项目的任务总是要完成地。还好比较顺利。
     
    嗯,流水帐完毕。
    May 11

    bash编程学习笔记(1)

    bash编程学习笔记(1)

      可以理解为用shell这种脚本语言进行编程,编写好的程序放在文件里,用bash 来解释执行这个程序。
      下面概要介绍一下shell编程。

      编写shell脚本程序的要求:

    建立脚本


      程序第一行需用#!指明解释程序
      通过bash filename来运行filename程序。chmod +x filename将程序改为可执行,则可用./filename运行此脚本。

      shell脚本语言作为一种编程语言,与其它计算机高级语言一样有一些共性:

    注释


      以#开头的至行尾的信息(当#出现在引号内、正则式内、比较式内等不为注释符的情况除外)

    变量


      变量名是字符串,赋值如下: 变量名=值
      对变量的使用或取出变量值,在变量名前加$符号,有时为了将变量名与其它字符区别开来,可以用${变量名}的方式。对变量的值的引用,叫变量替换(variable substitution)。变量只有在声明、赋值、unset、export或表示signal时,不用$作前缀。
      还有一类变量叫环境变量,与shell变量的用法一致,用export命令可以将shell变量改为环境变量,不清楚反向如何操作。
      变量声明后尚未赋值时,值为null.
      当$a为一含有空格的字符串时,echo $a与echo “$a”的结果可能不一致,前者会压缩多余的连续空格。
      bash变量不分类型,当要对其进行四则运算时,只要求变量的值只含有阿拉伯数字。

    命令


      相当于一般语言里的基本函数,常用的shell命令参看附表。
      shell脚本语言可以自定义函数。

    流程控制


      1)if语句
      if [ ... ]; then
       ...
      elif [ ... ]; then
       ...
      else
       ...
      fi
      其中用” [ ] ”表示条件测试,注意方括号周围的空格。

      2)case语句
      case表达式可以用来匹配一个给定的字符串,而不是数字。
      case ... in
      ...) do something here ;;
      ...
      *) otherwise do something here;;
      esac

      3)while语句
      while ...; do
       ....
      done
      4)for语句
      for var in ....; do
       ....
      done

    输入输出


    命令间交互
      1)管道(|)
      将一个命令的输出当作另一个命令的输入
      2)重定向(>或>>)
      >:将一个命令的输出写到一个文件并覆盖旧的内容
      >>:将一个命令的输出追加到一个文件的尾部
      3)反引号(`)
      可以将以反引号括起来的命令的输出作为另一个命令的命令行参数

    select表达式
      select var in ... ; do
       break
      done

    需要说明的是,此处用“语句”,只是为了表达语言的共性,对shell脚本来说应该叫表达式比较准确。
    附表: 常用命令表(不详细区分外部命令与built-in命令)

    命令 说明
    echo "some text" 将文字内容打印在屏幕上
    ls 文件列表
    wc –l file 计算文件行数
    wc -w file 计算文件中的单词数
    wc -c file 计算文件中的字符数
    cp sourcefile destfile 文件拷贝
    mv oldname newname 重命名文件或移动文件
    rm file 删除文件
    grep 'pattern' file 在文件内搜索字符串比如:grep 'searchstring' file.txt
    cut -b colnum file 指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出每行第5个到第9个字符cut -b5-9 file.txt千万不要和cat命令混淆,这是两个完全不同的命令
    cat file.txt 输出文件内容到标准输出设备(屏幕)上
    file somefile 得到文件类型
    read var 提示用户输入,并将输入赋值给变量
    sort file.txt 对file.txt文件中的行进行排序
    uniq 删除文本文件中出现的行列比如: sort file.txt | uniq
    expr 进行数学运算Example: add 2 and 3expr 2 "+" 3
    find 搜索文件比如:根据文件名搜索find . -name filename -print
    tee 将数据输出到标准输出设备(屏幕) 和文件比如:somecommand | tee outfile
    basename file 返回不包含路径的文件名比如: basename /bin/tux将返回 tux
    dirname file 返回文件所在路径比如:dirname /bin/tux将返回 /bin
    head file 打印文本文件开头几行
    tail file 打印文本文件末尾几行
    sed Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。该命令采用正则表达式(见参考)进行搜索。不要和shell中的通配符相混淆。比如:将linuxfocus 替换为 LinuxFocus :cat text.file | sed 's/linuxfocus/LinuxFocus/' > newtext.file
    awk awk 用来从文本文件中提取字段。缺省地,字段分割符是空格,可以使用-F指定其他分割符。cat file.txt | awk -F, '{print $1 "," $3 }'这里我们使用,作为字段分割符,同时打印第一个和第三个字段。如果该文件内容如下: Adam Bor, 34, IndiaKerry Miller, 22, USA命令输出结果为:Adam Bor, IndiaKerry Miller, USA

    bash中的一些特殊字符zz

    呵呵,一个简简单单的&>帮了我的忙,赞

     

    bash编程学习笔记

      bash中的一些特殊字符,具有特定含义或特殊功能。同一字符,在不同的上下文环境中,含义可能不一致,这点一定要注意。

    特殊字符表


    字符 说明
    # 注释符,从#至行尾都是注释。在引号、反引号及正则式、表达式中不是注释符。
    ; 命令分隔符,由此可将多个命令放在一行中。(if 语句的条件式后有;号)
    ;; Case语句中一个选项的结束符。
    . 1)相当于source命令
    2)文件名的一部分,尤其是用在开头可隐藏文件。
    3)一个.表示当前目录,一个..表示上一级目录。
    4)在正则式中,表示非回车换行的一个字符。
    " 部分引用,即有部分字符还需要解释出具体内容。
    ' 全部引用,引号内的字符不再进一步解释。
    , 逗号操作符,连接一系列算术运算,但只返回最后一个的结果
    \ 转义符,
    / 文件路径分隔符,或除号
    ` 命令执行符,将执行的输出结果放入一变量
    : 空命令,不做任何操作,返回真值。也被用来分隔PATH变量值中的路径,或etc/passwd中的项
    ! 对一个检测或返回值取反
    * 统配符,正则式中的限定符,算法操作的乘号,一个**是幂运算符。
    ? 测试符,统配符
    $ 变量值引用符,或正则式中的行结束
    ${} 变量替换符
    $*或$@ 位置参数
    $? 返回状态值变量
    $$ 进程ID变量
    () 1)命令组,启动一个子shell,由此组中定义的变量不能被组后的脚本访问。
    2)数组初始化。
    {xxx,yyy...} 选项符,选项间不能有空格,除非有引号或已转义。
    {} 代码块符,定义匿名函数,不启动子shell,变量值块后脚本可见,可把此代码作一个命令看,有输入输出并可重定向。
    {}\; 路径名,用在find命令中,对;转义以防为shell解析为命令分隔符,此;用以结束-exec参数。
    [] 检测符,表达在[]内。[是shell内建的,不是对/usr/bin/test的引用
    数组元素
    字符范围
    [[]] 检测符,
    (()) 扩展并计算整数表达式
    >或< 重定向符,字符串或整数大于或小于符
    &> 将stdout和stderr重定向到一个地方
    >&2 将stdout重定向到stderr。
    >> 结果追加到信件尾部
    << 用在here document中
    \>或\< 正则式的单词边界(\b?)
    | 管道,将前者的stdout作后者的stdin的内容,以子进程的方式运行,不可用来修改变量
    >| 强制重定向
    || 逻辑或
    && 逻辑AND
    & 后台运行
    - 1)参数前缀
    2)stdout/stdin重定向,此时不是shell的功能,而是相关程序的。
    3)前一个工作目录,等$OLDPWD
    4)减号
    = 等号,或字串比较符
    + 加号
    有些程序用+打开用-关闭某些功能
    % 模操作符,在正则式中做匹配符
    ~ 初始目录,等于$HOME
    ~+ 当前目录,等于$PWD
    ~- 前一工作目录,等于$OLDPWD
    ^ 正则式中的行开始。
    May 10

    顺便zz一个网上搜到的vim的介绍

    Vim 软件包包含一个强大的文字编辑器。

    大致编译时间: 0.4 SBU

    必需磁盘空间: 34 MB

    Vim 安装依赖于: Bash, Binutils, Coreutils,
    Diffutils, GCC, Glibc, Grep, Make, Ncurses, and Sed

     

    提示: 替代 Vim

    如果你更喜欢其它的编辑器—例如 Emacs, Joe, 或
    Nano—请查阅
    http://www.linuxfromscratch.org/blfs/view/svn/postlfs/editors.html

    安装指南。

    6.23.1. Vim的安装

    首先, 解开 vim-6.3.tar.bz2
    (可选的) vim-6.3-lang.tar.gz 档案到相同的目录。 然后, 改变 vimrcgvimrc 配制文件的默认位置到 /etc:

    echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
    echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.h
    

    准备用 Vim 编辑:

    ./configure --prefix=/usr --enable-multibyte
    

    这是可选的但是强烈推荐 --enable-multibyte 选项打开在 Vim 里编辑多字节字符编码文件的支持。 如果使用一个多字节字符集的区域,这是必需的。 这个选项对于使新建的像 Fedora Core 这样使用 UTF-8 作为默认字符集的Linux 发行系统,能够编辑文本文件也是很有用的 。

    编译软件包:

    make
    
    

    测试结果输出: make
    test
    。 这个测试套件总是会在屏幕上输出许多乱字符, 通过当前终端的设置可以终止输出。 所以, 在这里运行这个测试是可选的。

    安装软件包:

    make install
    

    许多用户使用 vi 代替 vim 建立链接,使 vim 能使用 vi 的习惯 :

    ln -s vim /usr/bin/vi
    
    

    如果LFS将安装 X Window 系统,
    安装X后重编译 vim 是必要的。 Vim 编辑器的 GNU 版本需要 X 和另外的一些库来编译。 关于这个的更多信息, 在这里,查阅 BLFS 上 Vim 的文档和安装文件
    http://www.linuxfromscratch.org/blfs/view/svn/postlfs/editors.html#postlfs-editors-vim
    .

    6.23.2. 配制 Vim

    默认的, vim 在vi-incompatible 模式下运行. 这个对于过去使用其它编辑器的人来说,可能不是太熟悉。 “不兼容” 设置 包括 高亮显示使用一个新行为。 它也可以改为运行在“兼容” 模式。
    这是设置是必要的,因为改变或覆盖其它设置,
    一定要在这个设置之后。 运行下面代码建立 vim 默认配制文件:

    cat > /etc/vimrc << "EOF"
    " Begin /etc/vimrc
    
    set nocompatible
    set backspace=2
    syntax on
    if (&term == "iterm") || (&term == "putty")
      set background=dark
    endif
    
    " End /etc/vimrc
    EOF
    

    这个设置 nocompatiblevim 在比vi-compatible风格有更多用途的情行下运行 。 移除
    no” 可保留旧的 vi 行为。 set backspace=2 允许退格键换行, 自动缩进, 和允许插入 。 syntax on 打开 vim 的语法高亮。 最后, if statement with the set background=dark 纠正 vim's 猜测的终端的背景色。 这个选项使在黑色背景的程序上使用时也有较好的效果。

    其他可用选项的文档可用下面的命令获得:

    vim -c ':options'
    

    6.23.3. Vim 的内容

    安装了的程序: efm_filter.pl, efm_perl.pl, ex (链接至 vim), less.sh, mve.awk, pltags.pl, ref, rview (链接至 vim),
    rvim (链接至 vim), shtags.pl, tcltags, vi (链接至 vim), view
    (链接至 vim), vim, vim132, vim2html.pl, vimdiff (链接至 vim),
    vimm, vimspell.sh, vimtutor, 和 xxd

    简单描述

    efm_filter.pl

    能读取vim 产生的错误的一个过滤器

    efm_perl.pl

    改变 Perl 解释程序的错误信息的格式, 以使能用在 vimquickfix”模式

    ex

    使 vim 用 ex 模式启动

    less.sh

    一个用 less.vim
    启动 vim 的脚本

    mve.awk

    处理 vim 错误

    pltags.pl

    为 Perl 代码建立一个标签文件以用在 vim

    ref

    检查参数的语法。

    rview

    view的限制版,它不能启动任何shell命令并且Vim不能被挂起

    rvim

    是vim的限制版,它不能启动任何shell命令并且Vim不能被挂起

    shtags.pl

    为 Perl 脚本产生一个标签文件。

    tcltags

    为 TCL 代码产生一个标签文件。

    view

    以只读模式启动 Vim 。

    vi

    编辑器。

    vim

    编辑器。

    vim132

    在132列模式下的终端中起动vim.

    vim2html.pl

    转换 Vim 文档为HTML格式。

    vimdiff

    同时编辑一个文档的2或者3个版本,并显示他们的区别。

    vimm

    于一个远端终端中开启DEC定位输入模式。

    vimspell.sh

    检查文件拼写,并产生一个需要在vim中强调的语法报告。 这个脚本需要旧的 Unix 语法检查命令, 它不在 LFS 和 BLFS
    中。

    vimtutor


    说明 vim 的基本键和命令。

    xxd

    为某一文件建立16进制转储; 也可以做同此相反的工作, 因此它可以用来进行二进制补丁。

    用vi在linux下查看16进制文件

    今天下午着手开始写自动测试磁带机命令的脚本。
    使用PLscsi工具中提供的-t参数可将结果输出到文件中。
    vi直接打开文件,责默认以文本形式显示。。。。因此一堆乱码。。
    网上搜了一下用vi在linux下查看16进制文件的方法。
    xxd

    Creates a hex dump of the given file; it can also do the
    reverse, so it can be used for binary patching

     

    用法很简单:

    在vi的命令状态下

    :%!xxd               ——将当前文本转换为16进制格式。

    :%!xxd -r            ——将当前文件转换回文本格式。

     

    借M$的一方宝地,把这个小技巧写下来,以备日后查阅。

     

    May 09

    长假归来抖擞精神

    时光刷的一下子就从眼前溜走了,或者说,从枕头边上溜走了。
    长长的七天假期在一篇唏嘘声中离我而去。
    好在最后的一个晚上睡得很早,于是我精神抖擞的从五一归来。
    周一的早晨又讨论了一下4月30号就该投出去的论文,终于要交工了。
    周二的早晨,战战兢兢的把拖欠了一个长假的文章寄给了老师。却没收到回音不知为何。。。。
     
    今天是战斗的一天,和各种各样的表格作战。
    终于狠了狠心,把拖欠的两个实习职位也投了。
     
    IBM,Consulting的职位很吸引我,但可惜人家说MBA prefered
    而且师兄再三建议说,几率很小。便放弃了。
    IBM的sales很诱人
    但我总觉得自己不具备成为一个优秀sales的某种素质。
    或者说不太喜欢sales那种常常要陪笑陪酒陪青春的工作类型。
    还是把自己的绣球投给了技术支持,填表填的烦了,于是职位都没看清楚。
     
    微软的职位选择相对小的多,大部分我都不能干。
    于是只投了IT和sales intern。
    对M$,我没抱多大希望,因此表格填的倒是轻松愉快。
    如果能拿到sales的intern,也是考验自己是否适合sales的一个好机会。
    毕竟我没抱什么希望自己能留在M$。
     
    求职之路,艰辛可想而知。
    要自信,要自信,要自信。