江边闲话集

09/10/2008

IT行业学习和工作的方式有感

Filed under: 一技之长 — Tags: , — 张太国 @ 14:44

该文已经在博客园那里发表了,反响不错,决定也贴在这里。后面顺便在加几篇文章的链接。


这几天对几个网友的请教方式颇感无奈。这里举2个实例:

  1. 有个网友因为项目比较急,而且之前也没有怎么接触过该项目的一些相关知识。正好我对这方面熟悉,于是找到我给出一些建议和提示。我大概知道了其要点,然后从头到尾给出了一些架构和技术上的要点。我觉得凭这些应该没有什么大问题了。没想到在未来几天里,该网友一直问我一些我已经解答过的问题。更意外的是同一问题问了至少5遍。我很郁闷,就问了一句,你工作几年了,他告诉我4-5年。我不再说什么了。如果工作4-5年,按照我的理解是不应该有这样的情况的。
  2. 另外一个网友因为一个小问题卡住了。我说了一下我的想法。他说他以前也做过,没有问题,而且特别坚持自己的意见。最后我只能说可以试一试我的建议。一个礼拜之后,他看见我,问我同样的问题,我惊诧道,“你还没有解决吗?”。他说还没有。我继续把我的建议重复了一遍。他过了一会高兴的回答我说可以了。

在上面的2个实例中,我感概太多了。

 

针对第一件事情,我觉得至少存在以下方面的问题:

  1. 做事情太着急了
  2. 应该有把握整个project的能力
  3. 应该能够控制自己的心态
  4. 问问题之前最好总结一下,或者是思考一下人家给你的提示。不要一二再再二三的去问同一个问题大于3次。

  对于工作4-5年的人,已经培养了自己解决问题,分析问题的方法。而且在把握一个项目上应该有一定的经验。冷静思考,沉着应对,都是现在浮躁的环境必须要有的。这些技能和心态和技术没有直接的关系。对中国的IT业,我一直认为是比较浮躁的。在这样的环境下,难道不能有自己的做事风格来行走着浮躁之面上吗?

 

针对第二件事情,我觉得可以这么理解:

  1. 每个做IT人骨子里或多或少都自以为是,包括我自己也是。请教别人时还是那样
  2. 既然自己没有解决,何不试一试别人的建议呢,也许会给你带来意想不到收获。
  3. 多听听人家的意见或建议,对自己是有帮助的。放下一些不必要的面子。

如果坚持自己是对的,又不肯听从人家意见,那你问人家干嘛呢?

 

对待学习,对待工作,我们确实应该保持自信,但这绝不是自以为是。虚心请教他人,听取别人意见,在整个过程中我们会学到不少东西。别总以为自己是对的,每个人的知识面和知识的掌握程度都是有限的,这样自己的理解出现偏差和错误在所难免。

 

从另外一个角度上讲,我们在处理学习和工作上,应该知道一件事情如何去做,如何以什么样的心态去做。对于一个工作4-5年的人出现上面的情况我觉得实在不应该。这样的情况在刚工作时存在。随着自己的阅历增长,在态度,方式上都会逐渐成熟,都会有自己的一套方法。这些方法在面对一些复杂事情,未熟悉事情都是有帮助的。

 

所以我的想法是:

  1. 戒浮戒躁,踏踏实实做事情
  2. 谦虚,自信,不是自以为是
  3. 有自己的做事风格,包括工作方式和心态。
  4. 沉着,冷静,从大局考虑。
  5. 做事情(例如向别人请教)前自己先做好必要的准备,想想。
  6. 态度
  7. 沟通。

上面的情况中,我是否真的让人家明白了,也许自己以为说清楚了。后来我也开始有些着急了,我心里还是告诫自己应该平和一些。尽管有些做的不好,我也一直按照上面的思路做。

 

暂时就这么些,有什么以后在补上。

 

今天教师节,Happy Teachers Day!

 

继续阅读:

05/30/2008

Joyo搜索框是如何完成中文自动填充的?

Filed under: 一技之长 — Tags: — 张太国 @ 16:37

今天跑到Joyo网去看看我需要的书到货没有,顺便搜索了一下其他书籍,我发现有自动填充,原来没有发现呢。汗颜。

案例:

如果我输入de,下面会有”德语“,”德川家康“等条目出现,伴随有多个搜索结果。

 

问题:

Joyo是怎么实现的呢?

 

分析:

当然我不可能看到其源代码和数据库schema。下面按照我自己的思路来解决这个问题。

首先看看Joyo网的效果:

  • 当你输入”de”,会出现以下结果:

         

         我们可以看到会出现以”de“发音的汉字,当然也包括英文。

  • 当输入”deyu”会是什么效果呢?看图:

         

       这是输入一整个”deyu“的拼音,所以下面都是以德语开头的,当然要是下面有“德育”的,也会显示的。

 

  • 看看输入”de yu“会是什么效果?我猜是没有结果。事实上也是:

        

        这说明是中间不能有空格的,除非“德语”是“德 语”,下面才有结果。

 

从上面你能得出什么结论?

我的结论是:

  • 拼音是按照汉语的顺序来的,如果有空格,那么拼音的相应位置也有空格。例如”德语”对应是”deyu”,”德 语”则是”de yu”。
  • 字母区分大小写的。

 

既然有上面的结论,那么怎么去做呢?对于程序不大的,很简单,直接在数据库里设置。

假设数据库里有一个表名叫item_t.之所以选择item,那是因为Joyo买书,卖CD等各种商品,所以不能以book_t来代替。

item_t应该有如下字段:

  • id    每本书的id
  • price 每本书的价格
  • name 每本书的名字,是中文就是中文,是英文就是英文
  • name_alias 用来存储上面的拼音的。

 

这里特别要介绍一下name_alias,这个field是关键。在录入的时候应该存储相应的拼音。按照一般习惯,英文书名应该存储英文。汉字的存储拼音。

 

实现

既然有了上面的分析,还有什么不能解决的呢。很明显要用到ajax技术。为了查找精确,应该到name,name_alias来2个field都查询。写一条SQL:

 SELECT id,name FROM item_t WHERE name LIKE “%keyword_you_search% OR name_alias LIKE ‘%keyword_you_search%’

你也许会问,这里输出的是整个书名啊,和输出结果有出入。的确如此。

那么Joyo到底是怎么做的?我猜想她将每个用户输入的关键字都存储起来的。这样在查询就方便一些。但是最终也不会离不开第一步。

 

引申

有人也许会问,你说的也太简单了吧,那么Google中国会怎么处理呢?我也不知道。

单从Google首页来看,其实和joyo差不多。但是有个问题是Google应该不太会用SQL Server或Oracle等数据库的做法去存储,因为这非常不利于查询等操作。

所以上面的name_alias可能行不通,不然每次都需要人工去输入,这得多大的功夫。唯一可能的就是自动去处理。

如何处理呢?最差的一种就是将每个汉字的拼音都拿出来。相信这也不是什么难事,不然Google的输入法是怎么做出来的呢。

接下来的事情怎么做,我想大家都知道。

 

更多

这里不介绍Ajax的使用方法,有人可能会提到没法输出中文,这些都是基本知识啦,这里不详述。

最后欢迎大家拍砖。

02/29/2008

eShortcuts

Filed under: 一技之长 — Tags: , — 张太国 @ 17:02

太不容易了,这么多shortcuts for e。决定每天背诵一遍。最主要是多用。

  • alt-p
  • alt-j
  • flash

Controller

  redirect_to

  • rea
  • reai
  • rec
  • reca
  • recai

render

  • ra
  • ral
  • rf
  • rfu
  • ri
  • ril
  • rit =>render :inline => "<%= ‘hello’ %>", :type => :rxml
  • rl
  • rn
  • rns
  • rp
  • rpc
  • rpl
  • rpo
  • rps
  • rt
  • rtl
  • rtlt
  • rts
  • rcea
  • rcec
  • rceca

verify

Model

  • Ctrl-alt-shift-s  Show db scheme for current model
  • bt
  • habtm
  • ho
  • hm
  • va
  • vaif
  • vc
  • vcif
  • ve
  • veif
  • vi
  • vp
  • vpif
  • vu
  • vuif

ERb

  • ft
  • lia
  • liai
  • lic
  • lica
  • licai

Migrate

  • mcol
  • mccc
  • mtab

Ruby

  • :
  • doo

02/26/2008

方法和态度

Filed under: 闲情逸致 — Tags: , , , — 张太国 @ 22:50

今天和Spring一起吃饭,Spring是我以前的Team Leader,现在在老东家那边是呼风唤雨的人物了.呵呵呵.

吃饭过程中,不可避免的聊起了IT的方方面面.总结一下,有以下方面

1. 能力

这里的能力是指一个人的工作能力,指一个人解决问题的方法,思维.一个人有没有能力,关键是在这里.作为IT民工,学习的知识当然很多,但最关键还是在这里.学习技术相对来说简单,但是随着年龄的增长,我们不可能一直这样学下去,这时候就需要有思维了.

2.管理

既然是Leader,不可避免的讲了他碰见的问题.Spring一直都很忙,以至于都无法分身做自己的事情.呵呵.这也难怪,毕竟这么多team,都让他一个人管,也怪不容易的.他谈到了管理中碰到的一些经验,听了让我十分受益.

如何带好团队,真是一门大学问.Spring正在努力着,也希望越来越好.

3.态度

这个不知道我们重复了多少遍,学习的态度,工作的态度,团队的合作精神,等等,谈到了态度的重要性,如何去保持一个积极向上的态度.工作这几年,体会到了工作就是一个态度问题.

4.Blackberry

这个是一个重点,我介绍了我对Blackberry的掌握和熟练程度,也谈及了我对blackberry的努力.后来我们又继续分析了Blackberry在中国的发展潜力,谈到了中国移动,谈到了中国的策略等.

5, IT八卦

前段时间MS收购yahoo,当然也谈到了google联合几家公司铺设一条从美国到日本冬季的光缆.谈到了思科与华为之间的关系.

6, 现在的就业状况

是呀,每年的民工都不知道增加了多少,所以要珍惜机会,也涉及到某些个人的情况,感觉有的人挺不错的.

今天谈到了比较多,而且感觉大家的观点都一致,聊得挺开心的.

01/02/2008

Ruby遍历文件夹

Filed under: 一技之长 — Tags: , — 张太国 @ 17:26

哈哈,这么简单的问题居然也敢拿出来献丑。没办法,天生愚钝吧!
实现该功能在其他语言里那就是小菜一碟,当然ruby也是。不多说,贴代码:
 def traverse_dir(file_path)
    if File.directory? file_path
      puts "Dir:"+file_path
      Dir.foreach(file_path) do |file|
        if file!="." and file!=".."
        traverse_dir(file_path+"/"+file)
        end
      end
    else
      puts "File:"+file_path
    end
  end
 
traverse_dir "d:"

太简单了

10/16/2007

又是卡巴斯基的问题

Filed under: 一技之长 — Tags: , — 张太国 @ 11:26

今天用到Intellij IDEA 6.0,令人奇怪的是没法调试。给出的错误提示是:
 Error running DEBUG,Host address localhost:8080 is already in use.
既然再用,于是我将Tomcat关了,因为tomcat使用了8080端口。try again. 依旧如故。
输入netstat,没有发现8080端口的使用。
怎么办?第一个考虑到的是防火墙的问题,因为IDEA调试调用了端口。于是快速到控制面板的安全设置里将8080端口以及所用到的debug端口加入到允许列表中。
遗憾的是这样是失败的。
没办法,看了看IDEA的help文档,总的来说该文档对我来说毫无价值。于是跑到官方网站,可惜的是教你怎么做,但是没有troubleshooting。接下来去哪里?按照经验,社区是个不错选择,遗憾的是没有类似问题。我就不明白装了卡巴斯基的人就没有碰到该问题。看来自己太背了。
最后也没有解决。
在下班的时候,看见卡巴斯基在那里扫描,眼前一亮,是不是他的问题呢?赶紧pause它,居然好了。
又是卡巴斯基的问题,上次SVN也是他的问题。看来得把它加入重点观察对象。
解决方法:

  •  打开卡巴斯基
  • 选择Protection下的Web anti-virus,右击点击settings
  • 选择Connectivity的HTTP
  • 点击Port Settings
  • uncheck 8080端口即可

其他杀毒软件可能也有类似情况。

本文关键字:
IDEA, 卡巴斯基,调试,端口,防火墙

09/04/2007

干净才是好

Filed under: 一技之长 — Tags: — 张太国 @ 22:12

最近工作确实忙了一些,所以对计算机的要求就高了一点,不要动不动机器慢的没反应,否则你恨不得把它给砸了.
很不幸的是,我的机器实在太慢了,.按照道理说机器的配置也不会慢到这种程度,真tmd见鬼了.最后看看什么是吸血鬼.看了一下,一个java就让你吐出100M的内存,我倒!不管了,什么时候把你给做了.不过鉴于时间有限,还是算了.
把另外一台机器拿过来,嘿,正好,这台机器就只有一个操作系统和Office.好了,装好我工作需要的.

  • 7zip
  • ssh
  • flashget
  • office
  • firefox
  • ruby
  • ror
  • netbean ide(23M)
  • JDK
  • Mysql

就以上这些东西,我就可以工作了,再也不用安装像个蜗牛似的VS了.就连SQL server,播放器,BT等乱七八糟,毫无用处的也省了.

现在把这2台机器放到自己办公桌上来,感觉不错,原先我那台用来收发mail,联系联系,除了开发的就丢给他了.而另外这台专用来开发.本来可以换成22寸LCD的,后来想想没有必要,而且看的也不爽,因为是宽屏的.

其实,我们没有必要把所有的软件都往机器上装.仔细想想,到底有多少自己用了呢.相信有很多软件当时用了以后就不再用了,所以这些软件完全可以删除.
个人觉得符合以下条件的,可以从计算机上废除掉:

  1.  已经 一个月没有用的杀无赦.
  2. 实现同一个功能的,比如下载工具,可能有BT工具,迅雷,flashget,我觉得保留flashget就可以了.其他的杀无赦
  3. 如果实现相同功能,选取较小的,较大者杀无赦.比如实现Office,如果你有WPS,最好将MS Office干掉.

妈的,等什么有空了,就把系统给做了.建议,如果装Windows,强烈建议3-6个月做一次系统.干净的才是好!

另外,最近一段时间比较忙,很多人联系我,我也没有时间来和大家交流,再此对大家说声对不起了,望谅解.

附图:

07/21/2007

SVN不工作

Filed under: 一技之长 — Tags: , — 张太国 @ 11:13

奇怪的厉害,SVN居然在我的Linux系统上脑瘫了不工作了。
我在我的Linux上装了Subversion,没有做任何配置,其实仅仅简单作为一个SVN client而已。
输入svn,没有问题
输入svn checkout http://xxxx/svn/trunk, 什么反应也没有了,也不提示错误,
输入svn checkout http://xxxx/svnx,提示错误,说svnx找不到,好,至少证明正常工作
输入svn checkout svn://xxxx/svn,正常工作

仔细思考一下,svn协议可以,为什么http协议却不行呢?继续思考中….

各位要是有什么高招,麻烦各位费点CPU和内存高告知我一声,现谢谢了!

07/04/2007

如何获取某网站的缩略图

Filed under: 一技之长 — Tags: — 张太国 @ 17:29

呵呵,第一眼看到这个东西的时候觉得应该很简单的,其实不尽然呀.

由于工作需要,我们的网站上有很多URL,而且需要获得这些URL链接的缩略图.我们的网站运行在debian操作系统上.想了半天,也不知道如何解决,于是google一下,看起来没有我需要的结果.

其实这个功能相信对很多人来说都非常有用的,既然没有,那我自己写了.呵呵.

相信这个功能也是充满了挑战性的.越是有挑战,我就越喜欢.

本周是不行了,从今天开始,出去逛几天再回来.看来只能等回来再说了.

若是各位有现成的话,麻烦您共享一下,在此先谢过了.

07/03/2007

灵感

Filed under: 闲情逸致 — Tags: — 张太国 @ 10:30

灵感这个词已经很久没有感受到了.工作的灵感尤其这样呀.感觉这些天大脑已经瘫痪,有点麻木,更加不用提什么灵感了.

昨天下班前,一些手头上的工作实在不得要领,郁闷的很.下班后拖了半个小时,还是不行.不搞了,直接下班.

今天早上一来,一个念头突然闪过,马上就做,不然就给忘了.哈哈.

呵呵,真的解决.自己也为久违了的灵感而快乐.

工作就是这样,保持激情,保持良好的状态,生产才高.

以本文记之

Older Posts »

Powered by WordPress