大鸟的学习乐园
路漫漫其修远兮,吾将上下而求索
posts - 26,comments - 27,trackbacks - 0
test
posted @ 2015-03-26 12:49 大鸟 阅读(103) | 评论 (0)编辑 收藏
OpenLdap
OpenAM
Slor
shibboleth
posted @ 2015-02-04 14:56 大鸟 阅读(220) | 评论 (0)编辑 收藏
Xfce
posted @ 2013-04-28 16:16 大鸟 阅读(245) | 评论 (0)编辑 收藏

h1. MySQL5.1.53编译,安装配置

 

Debian4下安装MySql5.1.53

 

h2. 编译

 

<pre>

./configure  '--prefix=/usr/local/mysql5.1.53' '--with-mysqld-user=mysql' '--with-extra-charsets=all' '--with-unix-socket-path=/usr/local/mysql5.1.53/var/mysql.sock' '--with-named-curses-libs=/lib/libncurses.so.5' '--enable-assembler'

</pre>

 

h2. 安装

 

<pre>

make && make install

</pre>

 

h2. 初始化数据库

 

刚刚编译安装完成的mysql中没有任何数据库,包括默认的mysql数据库,这个需要初始化安装。

命令如下

<pre>

/usr/local/mysql5.1.53/bin/mysql_install_db

</pre>

 

h2. 配置

 

h3. 创建配置文件

 

我们把/usr/local/mysql5.1.53/share/mysql这个目录下的my-medium.cnf,复制为my.cnf到mysql安装目录

做如下修改

在[mysqld] 配置块中加入

skip-name-resolve #取消DNS反向解析,提高远程访问速度

_详细内容,参考57上的my.cnf吧_

 

h3. 启动&停止

 

* 启动

<pre>

/usr/local/mysql5.1.53/bin/mysqld_safe --user=root &

</pre>

* 停止

<pre>

/usr/local/mysql5.1.53/share/mysql/mysql.server stop

</pre>

 

h3. 进入mysql命令行

 

<pre>

/usr/local/mysql5.1.53/bin/mysql -uroot

</pre>

 

h3. 开启远程访问

 

# 配置cnf文件

找到你的my.cnf文件(如果用debian提供的mysql,在/etc/mysql/my.cnf)

查找 bind-address,等号后边写server的IP地址

# 在mysql命令行执行下列命令

<pre>

GRANT ALL PRIVILEGES ON *.* TO 'depman'@'%' IDENTIFIED BY 'depman' WITH GRANT OPTION;

</pre>

说明 : 添加depman用户,密码为depman,可以在任何远程机器访问数据库且拥有全部权限

 

h3. 添加InnoDB支持

 

# 进入mysql命令行

# mysql> show plugin;

查看是否有InnoDB的支持,没有的话

# mysql> install plugin innodb soname "ha_innodb.so";

# 再次执行mysql> show plugin;发现有InnoDB,安装成功

 

h3. 数据移植

 

* 备份57上的kebin数据库(sql文件)

<pre>

/usr/local/mysql5.1.53/bin/mysqldump --skip-lock-tables -h192.168.12.57 -uroot -proot kebin > kebin.sql

</pre>

* 导入刚才生成的sql文件到kebin数据库

<pre>

/usr/local/mysql5.1.53/bin/mysql kebin < kebin.sql

</pre>

* 从ServerA到ServerB迁移数据

<pre>

/usr/local/mysql5.1.53/bin/mysqldump --skip-lock-tables -uroot -proot kebin | /usr/local/mysql5.1.53/bin/mysql -h192.168.12.58 -udepman -pdepman kebin

</pre>

posted @ 2012-01-25 19:38 大鸟 阅读(452) | 评论 (0)编辑 收藏

Linux install

 

Linux install

①安装VBox

    \\192.168.12.200\install\VBox\VirtualBox-4.0.6-71416-Win.exe

 

 ②通过VBox安装Linux虚拟机

    Linux系统映像保存于下面的路径下

    \\192.168.12.200\debian4_iso

 

 ③通过VBox进入Linux操作系统

    通过下面的命令查看当前IP状态,并修改为静态IP

    vim /etc/network/interfaces

    若修改,键入字母「i」即进入可编辑状态,修正后Esc退出编辑状态,键入「:wq」保存并退出

     静态IP例:

       allow-hotplug eth1

       #iface eth1 inet dhcp

       iface eth1 inet static

       address 192.168.12.189

       netmask 255.255.255.0

       gateway 192.168.12.1

     重启网卡:

       /etc/init.d/networking stop

       /etc/init.d/networking start

 

 ④输入ifconfig查看修正后的ip状态

    查看该虚拟机是否能够ping通自己的机器

 

 ⑤配置Linux虚拟光驱路径

    通过命令:「vim /etc/init.d/donkey_service」新建文件donkey_service

    编辑文件:

            # mount window share folder to /mnt/debian4_iso

            mount -t cifs //192.168.12.200/debian4_iso -o username="remote",password="abcd@1234" /mnt/debian4_iso

            mount -t cifs //192.168.12.200/install -o username="remote",password="abcd@1234" /mnt/nas_share

 

            # mount debian4 iso

            mount -t iso9660 -o loop /mnt/debian4_iso/debian-4.0.0-i386-DVD-1.iso /mnt/debian4/dvd01

            mount -t iso9660 -o loop /mnt/debian4_iso/debian-4.0.0-i386-DVD-2.iso /mnt/debian4/dvd02

            mount -t iso9660 -o loop /mnt/debian4_iso/debian-4.0.0-i386-DVD-3.iso /mnt/debian4/dvd03

            mount -t iso9660 -o loop /mnt/debian4_iso/debian-4.0.0-i386-DVD-4.iso /mnt/debian4/dvd04

    执行文件:sh donkey_service

 

    注:新建虚拟机的网卡没有访问200的权限,可以把debian4拷贝到本机一文件夹下,共享该文件夹

 

   ⑥安装ssh-server

     安装后就可以使用putty链接,操作。

     aptitude install ssh-server

 

   ⑦安装Linux必要软件

     aptitude install make -- 编译用

 

   ⑧apache,php,mysql安装前准备

     Linux下用软件安装包保存位置:

          \\192.168.12.200\software\install\linux\httpd-2.2.9.tar.gz

          \\192.168.12.200\software\install\linux\mysql-5.1.53.tar.gz

          \\192.168.12.200\software\install\linux\php-5.2.5.tar.gz

     可通过FileZilla软件,把上面的软件包copy到Linux虚拟机上

           \\192.168.12.200\software\progrem\FileZilla-3.0.9.

     创建软件包的保存位置和安装路径文件夹

      例: mkdir /opt/soft -- 上面各个软件包copy到此

          mkdir /opt/build -- 安装软件时的安装路径

 

 

 

Apache安装

 ①解压Apache

   进入到该安装包的保存路径后,通过下面的命令进行解压(解压位置: ../bulid/)

       tar zxvf httpd-2.2.9.tar.gz -C ../bulid/

 

  ②编译

      ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --enable-mods-shared --enable-ssl

      make

 

  ③安装

       make install

 

  ④查看是否安装成功

       /usr/local/apache2/bin/httpd -k start --启动Apache

      lsof -i:80  --查看80端口状态,如果80端口有值,安装成功

 

   注:编译或安装过程中可能会因缺少某些文件而导致error

     则根据error提示的信息,先安装缺少的文件再重新编译安装

      error例;

        configure: error: ...No recognized SSL/TLS toolkit detected   

 

     通过命令 「aptitude search 查找内容」查找相应的文件

      通过命令 「aptitude install 安装文件名」进行安装

 

 

 

mysql install

①解压MySql安装包

   进入到该安装包的保存路径后,通过下面的命令进行解压(解压位置: ../bulid/)

       tar zxvf mysql-5.1.53.tar.gz -C ../bulid/

 

  ②编译

   进入到解压后的文件夹下

   安装mysql前需要安装一些linux系统软件

       aptitude install lib64ncurses5-dev OR libncurses5-dev

      aptitude install g++           

      aptitude install automake           

      aptitude install autoconf2.13           

      autoreconf --force --install           

      aclocal; autoheader           

      libtoolize --automake --force           

      automake --force --add-missing; autoconf                       

   编译MySql,安装到/usr/local/mysql-5.1.53

      ./configure '--prefix=/usr/local/mysql-5.1.53' '--with-mysqld-user=mysql' '--with-extra-charsets=all' '--with-named-curses-libs=/lib/libncurses.so.5' '--enable-assembler' '--with-charset=utf8'

      make

 

  ③安装

       make install

 

  ④添加权限

       groupadd mysql

      useradd mysql -g mysql

      ./scripts/mysql_install_db --user=mysql

 

      注:

         mysql_install_db出现FATAL ERROR: Could not find mysqld错误时,

          因为/etc/mysql/下出现了个my.cnf

         解决方法:

           mv  /etc/mysql/my.cnf   /etc/mysql/my.cnf.bak

           cp  support-files/my-medium.cnf   /etc/cnf

       cd /usr/local/mysql-5.1.53/   

       chown -R root .   

       chown -R mysql var   

       chown -R mysql var/.   

       chown -R mysql var/mysql/.   

       chgrp -R mysql .   

 

  ⑤运行并查看是否安装成功

        /usr/local/mysql-5.1.39/bin/mysqld_safe --user=mysql &

       lsof -i:3306 --查看3306端口是否是mysql在运行。

       ./bin/mysql -root

       exit --退出mysql

 

  ⑥修改mysql密码

       /usr/local/mysql-5.1.53/bin/mysqladmin -uroot password root 

      ./bin/mysql -uroot -p --再次登录

       root --密码

 

  ⑦添加别人能够访问的权限

      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

      use mysql;           

      mysql> select User,host from user;           

      +------+-----------+           

      | User | host      |           

      +------+-----------+           

      | root | %         |           

      | root | 127.0.0.1 |           

      |      | camp      |           

      | root | camp      |           

      |      | localhost |           

      | root | localhost |           

      +------+-----------+           

      6 rows in set (0.00 sec)                            

 

   注:编译或安装过程中可能会因缺少某些文件而导致error

      则根据error提示的信息,先安装缺少的文件再重新编译安装

       error例;

        checking for termcap functions library... configure: error: No curses/termcap library found

      安装install lib64ncurses5-dev后则此错误就可避免

 

       通过命令 「aptitude search 查找内容」查找相应的文件

Php install

 

①解压PHP

   进入到该安装包的保存路径后,通过下面的命令进行解压(解压位置: ../bulid/)

       tar zxvf php-5.2.5 -C ../bulid/

 

  ②安装前,安装一下必要的软件

        apt-get install libmm-dev           

       aptitude install libxml2-dev           

 

  ②编译

      ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql-5.1.53

      make

      make test

 

  ③安装

       make install

 

  ④如果报错libphp5.so找不到的话,执行下面的命令

       find -name "libphp5.so" --查找

       找到后进到该目录下,把此文件copy到/usr/local/apache2/modules/下

       cp -p libphp5.so /usr/local/apache2/modules/

 

  ⑤查看是否安装成功

       如果安装成功 执行php -v  会显示php的版本信息 

 

   注:编译或安装过程中可能会因缺少某些文件而导致error

      则根据error提示的信息,先安装缺少的文件再重新编译安装    

      通过命令 「aptitude search 查找内容」查找相应的文件

      通过命令 「aptitude install 安装文件名」进行安装

Configure ssl

 

①制作证书

      1) 首先确认OpenSSL已经被正确安装,并且openssl可执行文件位于PATH环

            境变量所包含的目录中。

      2) 创建一个RSA私钥文件(这里的例子使用3DES加密并封装为PEM格式):

         $ openssl genrsa -des3 -out server.key 1024           

        请务必将你输入的密语和server.key文件备份到一个安全的地方。你可以使用下面           

         的命令查看这个RSA私钥的详细信息:           

         $ openssl rsa -noout -text -in server.key           

        如果确有必要,你也可以为这个RSA私钥创建一个已解密的PEM版本(不推荐):           

         $ openssl rsa -in server.key -out server.key.unsecure           

     3) 使用你刚才创建的RSA私钥创建一个自签名的X509证书(PEM格式):           

         $ openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt           

        这将对服务器的CSR进行签名,并将生成一个server.crt文件。           

         可以使用下面的命令查看这个证书的详细信息:           

        $ openssl x509 -noout -text -in server.crt           

 

   ② 打开apache的ssl支持           

      打开/usr/local/apache2.2.18/conf/httpd.conf下面两句的注释                       

      #Include conf/extra/httpd-ssl.conf           

      打开/usr/local/apache2.2.18/conf/extra/httpd-ssl.conf找到

      SSLMutex "file:/usr/local/apache2.2.18/logs/ssl_mutex"改成

      SSLMutex default

 

posted @ 2011-12-30 06:13 大鸟 阅读(309) | 评论 (0)编辑 收藏
①解压MySql安装包
   进入到该安装包的保存路径后,通过下面的命令进行解压(解压位置: ../bulid/)
       tar zxvf mysql-5.1.53.tar.gz -C ../bulid/
 
 ②编译 
   进入到解压后的文件夹下
   安装mysql前需要安装一些linux系统软件
       aptitude install lib64ncurses5-dev OR libncurses5-dev
      aptitude install g++            
      aptitude install automake            
      aptitude install autoconf2.13            
      autoreconf --force --install            
      aclocal; autoheader            
      libtoolize --automake --force            
      automake --force --add-missing; autoconf                        
   编译MySql,安装到/usr/local/mysql-5.1.53
      ./configure '--prefix=/usr/local/mysql-5.1.53' '--with-mysqld-user=mysql' '--with-extra-charsets=all' '--with-named-curses-libs=/lib/libncurses.so.5' '--enable-assembler' '--with-charset=utf8'
      make
 
  ③安装
       make install
 
  ④添加权限
       groupadd mysql
      useradd mysql -g mysql
      ./scripts/mysql_install_db --user=mysql
 
      注:
         mysql_install_db出现FATAL ERROR: Could not find mysqld错误时,
          因为/etc/mysql/下出现了个my.cnf 
         解决方法:
           mv  /etc/mysql/my.cnf   /etc/mysql/my.cnf.bak
           cp  support-files/my-medium.cnf   /etc/cnf
       cd /usr/local/mysql-5.1.53/    
       chown -R root .    
       chown -R mysql var    
       chown -R mysql var/.    
       chown -R mysql var/mysql/.    
       chgrp -R mysql .    
 
  ⑤运行并查看是否安装成功
        /usr/local/mysql-5.1.39/bin/mysqld_safe --user=mysql &
       lsof -i:3306 --查看3306端口是否是mysql在运行。
       ./bin/mysql -root 
       exit --退出mysql
 
  ⑥修改mysql密码
       /usr/local/mysql-5.1.53/bin/mysqladmin -uroot password root  
      ./bin/mysql -uroot -p --再次登录
       root --密码
 
 ⑦添加别人能够访问的权限 
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 
      use mysql;            
      mysql> select User,host from user;            
      +------+-----------+            
      | User | host      |            
      +------+-----------+            
      | root | %         |            
      | root | 127.0.0.1 |            
      |      | camp      |            
      | root | camp      |            
      |      | localhost |            
      | root | localhost |            
      +------+-----------+            
      6 rows in set (0.00 sec)                            
 
   注:编译或安装过程中可能会因缺少某些文件而导致error
      则根据error提示的信息,先安装缺少的文件再重新编译安装
       error例;
        checking for termcap functions library... configure: error: No curses/termcap library found
      安装install lib64ncurses5-dev后则此错误就可避免
 
       通过命令 「aptitude search 查找内容」查找相应的文件
       通过命令 「aptitude install 安装文件名」进行安装
posted @ 2011-12-21 20:28 大鸟 阅读(219) | 评论 (0)编辑 收藏

打开Editplus,选择 工具=》配置用户工具,就用当前的默认组好了。单击“添加工具”选择第一个子项“程序”,取个名字给它,“PhpDebug”吧。在命令中浏览到php.exe的位置,参数选择为“文件路径”,这时我的界面上两个输入框中分别为“D:\usr\php.exe”和“ '$(FilePath)' ”。然后勾选“捕捉输出”。
注意了,绿色部分.参数选择为“文件路径”时,默认是$(FilePath)没有双引号的.要手工加上把它包围了. 然后点击 “输出模式”,进行进一步的设置。在弹出的 “输出模式” 对话框中,我们要去掉 “使用默认输出模式”。在正则表达式的文本框中填入“^.+ in (.+) on line ([0-9]+)”。文件名:标记表达式1,行:标记表达式2,列:无。
这里的正则表达式和PHP 中的是一样的,目的是捕捉出错行的信息,将文件名和行数传递给Editplus,这样我们双击出错信息时,就可以定位到出错的行了。
添加函数的即时帮助功能

打开 工具 =》 配置用户工具。点击 用户工具=》添加工具 ,选择 “HTML 帮助文件”,在弹出的对话框中选择php 的chm 格式的手册。然后在 “菜单文字” 处填上 “php 手册”,点确定后帮助功能就已经添加好了。

把光标移动在一个函数上函数上,点击 工具 (或者我们可以在视图中构选用户工具栏), “php 手册”。这时Editplus 会自动打开手册,并定位到你选择的函数的页面。当然,使用快捷键是更方便的方法,快捷键会因为添加的顺序不同而不同,看下菜单就清楚了。

利用预览功能随时进行测试

点击“工具”->“参数设置”->“选择工具” ,点击添加 , 可以为你的文件进行定位。就是说,可以自动把放在web 目录下的文件路径,映射成http 开头的web 路径,并传递给Editplus 自带的浏览器。这样我们就不用总是在浏览器和编辑器之间切换了。

posted @ 2011-06-12 19:29 大鸟 阅读(223) | 评论 (0)编辑 收藏
使用forward的时候浏览器不知道它所请求的具体资源来源,所以地址栏不会变; 使用redirect,服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL。  forward,转发页面和转发到的页面可以共享request里面的数据. redirect,不能共享数据.
posted @ 2011-06-06 18:05 大鸟 阅读(184) | 评论 (0)编辑 收藏
function Parent(name){
this.name = name;
}
Parent.prototype.say = function(){
alert(this.name);
}
var parent = new Parent("wwwwww");
parent.say();
function Child(name,password){
Parent.call(this,name);
this.password = password;
}
Child.prototype = new Parent();
Child.prototype.sayword = function(){
alert(this.password);
}
var child = new Child("111111","222222222");
child.sayword();

////用call实现继承
function Parent(name){
this.name = name;
this.say = function(){
alert(this.name );
}
}
function Child(name,password){
Parent.call(this,name);
this.password = password;
}
var child = new Child("123123","sssss");
child.say();
*/
//用APPLY实现继承
/*
function Parent(name){
this.name= name;
this.say= function(){
alert(this.name);
}
}
function Child(name,password){
Parent.apply(this,new Array(name));
this.password = password;
this.sayworld = function(){
alert(this.password + this.name);
}
}
var parent = new Parent("zhangsan");
var child = new Child("lisi","123456");
parent.say();
child.say();
child.sayworld();




posted @ 2011-05-28 09:58 大鸟 阅读(205) | 评论 (0)编辑 收藏
linux安装oracle 四块硬盘,大小分别8G,第一个硬盘sda,手动设置挂载点2个:1是 /boot 大小设定为400M,2是设置为根分区/,剩余的空间
第2个硬盘sdb,8个G全部设定为swap区。按理说是内存2倍就够。为了跑oracle能够顺利
第3个硬盘sdc,设置2个挂载点,一个是/home,一个是/tmp,分别可以是4个G
第4个硬盘是sdd,该硬盘完全的安装oracle,挂载点是/uo1
posted @ 2011-03-06 09:00 大鸟 阅读(211) | 评论 (0)编辑 收藏
Mysql 的rank 函数如何实现

表特征:
mysql> select * from test;
+------+------+
| a    | b    |
+------+------+
|    1 |   20 |
|    1 |   21 |
|    1 |   24 |
|    2 |   20 |
|    2 |   32 |
|    2 |   14 |
+------+------+
6 rows in set (0.00 sec)

现在,我们以a分组,查询b列最大的2个值。 这条sql要怎么写了?



1.创建表
Create Table: CREATE TABLE `sam` (
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8

2.插入模拟数据
INSERT INTO `sam` VALUES (1,10),(1,15),(1,20),(1,25),(2,20),(2,22),(2,33),(2,45);
+------+------+
| a    | b    |
+------+------+
|    1 |   10 |
|    1 |   15 |
|    1 |   20 |
|    1 |   25 |
|    2 |   20 |
|    2 |   22 |
|    2 |   33 |
|    2 |   45 |
+------+------+

3.SQL实现
select a,b,rownum,rank from
    (select ff.a,ff.b,@rownum:=@rownum+1 rownum,if(@pa=ff.a,@rank:=@rank+1,@rank:=1) as rank,@pa:=ff.a
    FROM
       (select a,b from sam group by a,b order by a asc,b desc) ff,(select @rank:=0,@rownum:=0,@pa=null) tt) result
    having rank <=2;

4.结果:
+------+------+--------+------+
| a    | b    | rownum | rank |
+------+------+--------+------+
|    1 |   25 |      1 |    1 |
|    1 |   20 |      2 |    2 |
|    2 |   45 |      5 |    1 |
|    2 |   33 |      6 |    2 |
+------+------+--------+------+
4 rows in set (0.00 sec)
posted @ 2011-01-28 13:28 大鸟 阅读(4042) | 评论 (2)编辑 收藏
记得刚参加工作时(那是97年),中国的IT刚刚兴起,那时,作为一个IT人士是一件很光荣的事,而那时的我正在做电气和电子相关的工作。99年第一次跳槽,进入了IT行业做软件开发。至今,中国的IT已经走过了十多年。但昔日的“光荣一员”却成为了现在的“IT农民工”,这究竟是怎么了?是中国的IT发展已经很好了所造成的吗?不是!在我看来中国的IT还比较的原始,还有很大的提升空间。我认为造成这一切的都是我们自己,是人!是我们的意识和方法问题。还记得刚从事软件行业时,当时有一句话很流行,这句话现在应当还能听到,那就是:做IT是吃青春饭。说实现在的,一直以来我对于这句话一点都不认同,但最近慢慢的觉得有道理。这种意识的转变不是因为自己在职业生崖上出现了什么问题,而是观察身边的人发现这句话还真有道理。由于不注意方法和不转变意识,我们当中的不少人过着“有工作没有生活”的日子,被工作压得失去了激情。接下来,让我说说我能想到或是看到的一些问题。

    1)我们从学校毕业以后,觉得学习到此结束,应当是享受人生的时候了。其实,学习和享受生活是“正交”的,我们完全可以即学好又生活好。毫无疑问我们是生活在竞争的环境中的,那竞争的依据是什么呢?就是我们的能力。大家参加工作后应当知道,我们学校所学的东西在现实工作中不足以成为我们的核心竟争力。要打造自己的核心竟争力,必须学习,而且是在自己的业余时间学习。当然,工作也是一种学习方式,只是这种学习方式不容易创造很大的能力区分度。此外,学习是保持激情的有效方法。我工作近12年了,在软件行业干了大约10年,但是至今我还保持着非常好的工作激情,这是我很多同事对于我的评价,这一点我想与我保持学习很是相关。学习是我从学校毕业开始一直没有放弃去做的事!学得多了,自然会想去改变些什么,进而使得我们有激情。我在面试别人的时候,我一定会问题的一个问题是:你平时看书吗?看些什么书?一个不看书的人,其能力不可能很高,看问题的深度也不会深到哪儿去。通过看书,能让我们更快的积累知识和经验。有些弯路我们不是需要自己去走、有些错误我们不是非得犯了才知道、有些好方法和想法也不是一定要我们自己去想,看书能让我们站得更高、看得更远。当然,学习过了的东西应当转化为我们自己的东西(参见第14、15点)。

    2)认为自己的能力与工作的年份是成正比的一条直线。在有些行业可能是,但在IT行业,这种想法是不对的。如果你了解三极管,我想我们的能力与工作年份的关系更像是一条伏安特性曲线。在开始的一段时间是线性的(因为我们刚毕业什么都不会),但之后从某一点开始永远是一个饱和区,到了饱和区后,能力的变化就非常的小了。这里要指出来的是,这条曲线的出现是因为我们从参加工作以来,都是采用同一种原始的方法去对待我们的工作的。如果我们善于改变自己的工作和学习方法,那么就不会得到一条伏安特性曲线,而有可能是一条接近直线的线。一个工作了七、八年左右的人,如果没有形成自己的一些思想(比如,设计思想),那么我认为很是有问题,自己得多去想想为什么。我们真正学习的黄金时间就是前面的七、八年左右。

    3)不明白练“内功”的重要性。这里的内功是指系统性的分析和看待问题,或是其它的一些能力(比如软件设计的能力)。有些人今天学这个、明天学那个,总喜欢学“新”技术,但忘记了将所学的东西串起来从而系统性的去掌握这些技术背后的东西。其实,一旦学精了一样,很多东西是相通的,如此一来,我们很容易快速的去掌握新的东西。再说说软件开发,其实学习编程语言是简单的,是基本功而且不是软件开发的全部,软件开发要学习的是如何设计好一个软件,这一点要掌握一定原则和方法,比如我在《一个好的设计应当具备哪些要素》中提到到的“四性”就可以作为我们设计时的一些原则。软件设计能力是本质,而编语言只是一种表达设计的工具。当我们“内功”好了以后,学什么都快、做得也好、看得也深,这与练功夫是一样的道理。

    4)害怕变化。拥抱变化往往能带给我们提高的机会。我们都有自己的舒适圈,我们害怕变化打破我们的舒适圈,但舒适圈的打破不是使得我们没有了舒适圈,相反意味着我们的舒适圈越来越大。我敢说,现在还有人在用Visual C++ 6.0做开发,而现在最新的是Visual Studio 2008(2010马上也要上市了),这不是因为Visual C++ 6.0比Visual Studio 2008好用,而是我们不想改变,还找个借口说“Visual C++太经典了”。而事实是,Visual Studio 2008能帮助我们更快的找出问题,不信试试看!我认为,一个勇于拥抱变化的人,他(她)的能力往往更容易提高。

    5)过于埋头苦干。有的人一接到任务那可就埋头苦干起来了,有时应当停下来想一想:我这样做的方法是不是很有效率?能不能通过学一点别的工具或是方法来使我的工作更高效?我能从中学到新的东西呢?还是只是一种重复性的体力劳动?还存在一种人,这种人的确很能干,因此领导什么事都让他(她)出马,这样一来再苦再累都扛下来。这个人,从上司的角度来看,很好,但从个人的发展来看不一定是一件好事。你想,这个团队没有你就不行了?我想可能性很小。那如果是这样为什么什么事都要你干呢?有的工作其实干过了一遍就没有什么可学的,只是上司因为放心你才将事情交给你,在这种情况下,花再多的时间去干对于自己来讲可能是在浪费时间。如果不干,省出来的时间我们可以去学其它的东西。可能有人会想,我如果不答应上司(参见第12点),那会不会对我的绩效不大好呢?其实,这种想法大可不必了,加上有时绩效并不是真正的公平(其实世上不存在完全的公平)。今年绩效好是一个短期利益,如果多学一点提高自己则是一种长期的利益。再说,我们不干的话还可以给别人创造一些锻炼的机会。真的是双赢!

    6)不善于思考。对于工作有时就是一个应声虫,别人怎么说,我们就怎么做。有时更为可怕的是:为什么那么做?合不合理?这种做法与我想到的做法有什么不同?这些问题全都不去想。一个没有自己思想的人,不可能在工作中比别人出色,能力自然也不会太高。

    7)不明白高效的完成工作对于我们自己意味着什么。高效意味着我们可以花节约下来的时间去学习、生活,毕竟工作不是我们人生的全部。我们时刻应当警觉自己是不是在做无效率的工作,如果是,想尽办法找出自己无效率的原因并改善它。有时我们会找借口,说现在太忙了,没有时间去改善,但真相不是这样的。我们完全可以通过一段时间的努力找到一种好的解决方法,将自己解放出来。的确,在忙的时候,如果为了解决无效率问题而花时间去学习其它的东西,那会让我们更加的忙。但这种更加的忙(短期的)是有回报的,而且往往回报很不错(长期的),不要总是想“等我有时间时再来改善”,“乱中求冶”永远是王道!

    8)见难就退,而不是迎难而上。容易意味着我们所学到的东西很少,或是根本就没有。做一百件容易的事,不如做一件难的事所学到的东西多。难的事多做一件,信心也会更强一点。

    9)不善于表达我们对问题的不同看法。有些人在工作中不敢去表达自己与别人相左的想法。我想,如果存在相左的意见,说明当中有可能会是别人有些东西没有想到,或是我们自己有些东西没有想到,而通过交流我们有可能相互提高。拥有一个开放的态度面对相左的意见!

    10)缺乏创新。一说到创新,比较容易让我们想到那种改变全世界的大举,其实不然,任何一种能改善我们生活的行为都可以认为是一种创新。创新也是一种思考和行动,是一种勇于改变现状的思考和行动。有的人在做一项工作时,其中有很多的重复(动作),即使烦,他(她)也不会想想是否可以写一个脚本去改变、或是采用什么方式解放自己。这一点或许与害怕变化(参见第4点)有关!

    11)不善于记笔记和总结。对于我们IT人士,笔记不一定要写在本子上,可以写成一个Word文档,或是其它的什么文件。在笔记中将自己碰到的问题写下来,这便于我们需要用的时候马上能找到。有了笔记我们能更高效的工作以及更高兴的工作。好处很明显,干吗不记笔记呢?通过笔记我们也能很好的总结自己,发现一些有待于提高的部分。

    12)不善于与上司沟通。通过沟通,一是可以从上司那得知他(她)对于我们的期望是什么,从而,我们可以得知自己的工作方式、方法是否与上司的期望是一致。如果不一致要想想,是不是自己可以改善,或是反过来改变上司原来的想法。第二就是要告诉上司你所期望的。比如,你想升级(职),那可以与上司说一说,当然,前提是你觉得自己的确能胜任。可能这一次上司并不会答应我们的要求,那也正常,因为他(她)有自己的考虑,此时上司可能会与你说原因。我们不能报着不同意就离职的态度来提要求。一次不同意,那我下次再提。在这种情况下,上司如果有一个名额,那很有可能就考虑到你了。沟通即简单也不简单,你所想的、做的不一定就是上司所想要的,如果这样的话结果自然也不会令自己满意。

    13)少了一点追求完美的执着。人是不完美的,所以我们要去追求完美。追求完美的人更容易出色、更具责任心,做事往往也显得更专业。

    14)不明白模仿的重要性。人天生就是模仿者,模仿多了,我们就会形成一定的思考和行事习惯,慢慢的也就转化成了自己的能力。我想很多人看过《设计模式》,可能在看时也有一种同感:其实,不少模式我们平时都在用。我做设计时,从来不去套《设计模式》中的模式,我能凭自己的直觉找到一种好的设计,当然,有时我得进行多次的反复。但是不是每一个人都有很好的直觉,这种直觉其实是一种能力,是长期的学习、思考和模仿所积累的能力。在我看来模仿是将所学东西转换为自己的能力的很好的一种方法。

    15)只求知其然,不求知其所以然。学习不能只是表面化的“学过了”,还要从深层次去想其背后的思想和原理是什么,这往往使得我们更加容易的去分析和解决问题。想得多了,自己的层次才有可能提高,如果只是停留在被动的接受,那很难有所提高。

    16)少了那么一点坚持。我们有可能在学习过程中少了那么一点坚持,本来已经做(学)到了90%,再坚持一下我们就能上一个台阶,能力也会有一个质的飞跃。但是很可惜,就是因为不多坚持那么一点,最后很有可能前功尽弃,最为可怕的是会打击我们的自信心 — 下次就不学了!人与人能力的区别或许可以说是能否坚持的区别!

    17)不热爱自己的职业。这一点可能是一些综合性的因素造成的,或是在工作中没有找到成就感、或是自己不适合这个行业,等等。有时好好的想想,问问自己是什么原因造成的这种状况。如果是因为自己的一些方式或方法不对,那么看看是否能改变。如果的确是因为自己对行业没有兴趣,那我想长痛不如短痛,还是应当转行去做自己有兴趣的工作。快乐的工作着是重要的!

    此外,除了注意个人的提高,我想我们还要注意“金字塔原理”。无论我们能力多高,但我们还是处于金字塔中的一层,也就是说能力强的人的数量总是相对的少,我们不可能人人都在顶上。即然这样的话,我们是不是就不应当去提高了呢?我想不是的,毕竟提高能改善我们的生活,而生活,是自己的。

    看了上面的这些,是不是觉得有些道理呢?千万别看过就完了,而是要有所行动!拥抱变化!

本文出自 “李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/169937

posted @ 2010-02-06 08:35 大鸟 阅读(163) | 评论 (0)编辑 收藏