test
posted @
2015-03-26 12:49 大鳥 閱讀(107) |
評論 (0) |
編輯 收藏
OpenLdap
OpenAM
Slor
shibboleth
posted @
2015-02-04 14:56 大鳥 閱讀(227) |
評論 (0) |
編輯 收藏
Xfce
posted @
2013-04-28 16:16 大鳥 閱讀(251) |
評論 (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 大鳥 閱讀(458) |
評論 (0) |
編輯 收藏
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
進入到該安裝包的保存路徑后,通過下面的命令進行解壓(解壓位置: ../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 大鳥 閱讀(317) |
評論 (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 大鳥 閱讀(226) |
評論 (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 大鳥 閱讀(235) |
評論 (0) |
編輯 收藏
使用forward的時候瀏覽器不知道它所請求的具體資源來源,所以地址欄不會變; 使用redirect,服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址.所以地址欄顯示的是新的URL。 forward,轉發頁面和轉發到的頁面可以共享request里面的數據. redirect,不能共享數據.
posted @
2011-06-06 18:05 大鳥 閱讀(194) |
評論 (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 大鳥 閱讀(212) |
評論 (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 大鳥 閱讀(219) |
評論 (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 大鳥 閱讀(4048) |
評論 (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
本文出自 51CTO.COM技術博客
posted @
2010-02-06 08:35 大鳥 閱讀(164) |
評論 (0) |
編輯 收藏