2008年11月30日 星期日

cast - 轉換

reinterpret_cast
reinterpret_cast<T*>(a)
任何類型的指標均可以轉換成其它類型的指標(反正,就是無敵轉換)
表達式reinterpret_cast<T*>(a)能夠用於諸如char* 到 int*,或者One_class* 到Unrelated_class*等類似這樣的轉換,因此可能是不安全的。


class A { ... };
class B { ... };
void f()
{
  A* pa = new A;
  void* pv = reinterpret_cast<A*>(pa);// pv 現在指向了一個類型為B的對象,這可能是不安全的
  ...
}


static_cast
例:

int num = 0;
double number = 3.14;
num = static_cast<int> (number); // 由double強制轉換成int

在C中可以由以下取代

int num = 0;
double number = 3.14;
num = (int) number; // 由double強制轉換成int


const_cast
在某此情況下,我們需要改變唯讀區域的值,這時可以使用const_cast改變指標的型態
例:

#include <iostream>
using namespace std;

void foo(const int*);

int main() {
  int var = 10;
  cout << "var = " << var << endl;
  foo(&var);
  cout << "var = " << var << endl;
  return 0;
}

void foo(const int* p) {
  int* v = const_cast<int*> (p);
  *v = 20;
}


dynamic_cast
C++提供了dynamic_cast用來將一個基底類別的指標轉型至衍生類別指標,稱之為「安全向下轉型」(Safe downcasting),它在執行時期進行型態轉換動作,首先會確定轉換目標與來源是否屬同一個類別階層,接著才真正進行轉換的動作,檢驗動作在執行時期完成,如果是一個指標,則轉換成功時傳回位址,失敗的話會傳回0,如果是參考的話,轉換失敗會丟出 bad_cast例外。

由於dynamic_cast轉換失敗的話會傳回0,因而運算的結果不可使用,必須先行對轉換結果作檢查才可以。

如果使用參考的話,dynamic_cast在轉換失敗之後會丟出bad_cast例外,所以您必須使用try...catch來處理例外

#include <iostream>
#include <typeinfo>
using namespace std;

class Base {
public:
  virtual void foo() = 0;
};

class Derived1 : public Base {
public:
  void foo() {
    cout << "Derived1" << endl;
  }

  void showOne() {
    cout << "Yes! It's Derived1." << endl;
  }
};

class Derived2 : public Base {
public:
  void foo() {
    cout << "Derived2" << endl;
  }

  void showTwo() {
    cout << "Yes! It's Derived2." << endl;
  }
};

void showWho(Base &base) {
  try {
    Derived1 derived1 = dynamic_cast<Derived1&>(base);
    derived1.showOne();
  }
  catch(bad_cast) {
    cout << "bad_cast 轉型失敗" << endl;
  }
}

int main() {
  Derived1 derived1;
  Derived2 derived2;

  showWho(derived1);
  showWho(derived2);

  return 0;
}

總結C++中的所有強制轉換函數

2008年11月28日 星期五

auto_ptr自動管理配置資源

對於使用new動態配置的資源,在不使用時必須記得delete,以釋放記憶體空間,然而動態記憶體配置很容易發生忘了delete,或是對同一個記憶體位址delete兩次(例如一個物件被指定給兩個指標),或是對一個已經被delete的位址再作讀寫動作。

C++標準函式庫中提供auto_prt,可以協助您動態管理new而建立的物件,要使用auto_prt,您要含入memory表頭檔,例如:

#include <memory>


auto_ptr可以指向一個以new建立的物件,當auto_ptr的生命週期結束後,所指向的物件之資源也會被釋放,在建立auto_ptr時必須指定目標物件之型態,例如:

auto_ptr<int> iPtr (new int(100));
auto_ptr<string> sPtr (new string("caterpillar"));


操作auto_ptr就像操作沒有使用auto_ptr的指標一樣,例如:

cout << *iPtr << endl; // 顯示100
if(sPtr->empty())
  cout << "字串為空" << endl;


您也可以建立一個未指向任何物件的auto_prt,例如:

auto_ptr<int> iPtr;


未指向任何物件的auto_ptr不可以取值,否則會發生不可預期之結果,既然不可取值,如何判斷它是否有指向物件呢?您可以使用get()函式,它會傳回所指向物件的位址,如果傳回0,表示不指向任何物件,如果不指向任何物件,您可以使用reset()來讓它指向一個物件,例如:

if(iPtr.get() == 0) {
  iPtr.reset(new int(100));
}


reset()可以接受一個指標或是0表示不指向任何物件,reset()會先delete目前指向的物件,然後重新指向新的物件,您也可以使用 release()釋放auto_ptr管理所指向物件的職責。

auto_ptr可以使用另一個auto_ptr來建立,這會造成所有權的轉移,例如:
auto_ptr<SafeArray> ptr1(new SafeArray(19));
auto_ptr<SafeArray> ptr2(ptr1);

當使用ptr1來建立ptr2時,ptr1不再對所指向物件的資源釋放負責,職責交給了ptr2,在使用指定運算時,也有類似的行為,例如:
auto_ptr<SafeArray> ptr1(new SafeArray(19));
auto_ptr<SafeArray> ptr2(new SafeArray(20));
ptr2 = ptr1;

ptr2所指向的物件會先被delete,然後ptr1的屬性會複製至ptr2,也就是ptr1所指向的物件,現在由ptr2指向它了,ptr1不再負責所指向物件的資源釋放。

auto_ptr的資源維護動作是以inline的方式來完成,也就是在編譯時會被擴展開來,所以使用auto_ptr並不會犧牲效率。

最後要注意的是,auto_ptr不能用來管理動態配置而來的陣列,如果用它來管理動態配置而來的陣列,結果是不可預期的

我的想法:
使用auto_ptr有兩個角色:
第一個是本身auto_ptr的功能,此時,變數為物件,可以使用.來使用以下函數get()、reset()、release()的功能。
第二個是表示其它物件的指標,用來使用管理的指向物件的職責。

參考資料:
C++ Gossip: auto_ptr 自動管理配置資源

2008年11月27日 星期四

typedef

typedef主要有三個功能~依序如下...
簡單型態的別名

// 定義無號單字節的型態
// 則宣告BYTE x;
// 就是宣告unsigned char x;
typedef unsigned char BYTE;
typedef unsigned short WORD;// 定義無號雙字節的型態
typedef unsigned long DWORD;// 定義無號四字節的型態



結構型態的別名
typedef struct StructTag{
  int mA;
  int mB;
} STRUCTTAG, *PSTRUCTTAG;

當要建立這個結構的物件時,就可以用別名 STRUCTTAG 和 PSTRUCTTAG,例如
STRUCTTAG StructObj;
PSTRUCTTAG pStructObj;
就相當於
struct StructTag StructObj;
struct StructTag *pStructObj;

函數的別名
main.cpp
#include <iostream> 
#include "sort.h"
using namespace std; 

int main() { 
  int number1[] = {3, 5, 1, 6, 9};
  sort(number1, 5, larger);
  cout << "大的在前 ";
  for(int i = 0; i < 5; i++) {
    cout << number1[i] << " ";
  }
  cout << endl;

  int number2[] = {3, 5, 1, 6, 9};
  sort(number2, 5, smaller);
  cout << "小的在前 ";
  for(int i = 0; i < 5; i++) {
    cout << number2[i] << " ";
  }
  cout << endl;

  return 0; 
}


sort.h
typedef bool (*CMP)(int, int); // 把它想成說CMP是變數,且它取代bool (*) (int,int)這一個回傳值為bool,參數值為(int,int)的型態
void swap(int&, int&);
bool larger(int a, int b);
bool smaller(int a, int b);
void sort(int*, int, CMP);


sort.cpp
#include "sort.h"

void swap(int &a, int &b) {
  int t = a; 
  a = b; 
  b = t;
}

bool larger(int a, int b) {
  return a > b;
}

bool smaller(int a, int b) {
  return a < b;
}

void sort(int* arr, int length, CMP compare) { 
  int flag = 1; 

  for(int i = 0; i < length-1 && flag == 1; i++) { 
    flag = 0; 
    for(int j = 0; j < length-i-1; j++) { 
      if(compare(arr[j+1], arr[j])) { 
        swap(arr[j+1], arr[j]); 
        flag = 1; 
      } 
    } 
  } 
}


參考資料:
C++ Gossip: 函式指標
《教學》typedef 知多少?

延伸閱讀:
typedef 與 link list的配合使用

程式註解

/*
Name:
Copyright:
Author:
Date: 27/11/08 20:08
Description:
*/

最好在每一個程式碼一開始就加這一個,之後回來看會比較清楚~

2008年11月26日 星期三

IO - 使用string型態

要使用字串型態,必需要加入

#include <string>


empty():測試字串是否為空。
用==比較兩個字串是否相同。

且可以使用C-Style的字串指定給string。

string name("caterpillar");
char str[] = "justin";
name = str;


且可以用+運算子來串接字串。

str1 = str2 + str3;
str1 = str2 + "\n";


也可以用[]指定索引來存取相對應位置的字元,就有如字元陣列的操作一般。

assign(string,start,num):從string的第start個字元取出num個字元來指定給另一個字串物件。
append(string,start,num):從string的第start個字元取出num個字元來附加至另一個字串之後。
insert(start,string):將string插入引發insert的字串物件第start個字元之後。
length():傳回字串的長度。
find(string,0):從引發find的字串物件第0個字元尋找是否有符合string的子字串。

#include < iostream>
#include < string>
using namespace std;

int main(){
  string s;
  cout << "Please input a string include the space:";
  getline(cin,s);
  cout << "You typed:" << s << endl;
  s.find("good",0);
  string::size_type loc = s.find("good",0);
  if (loc != string::npos){
    cout << "In the sentence, there is keyword \"good\" "<< endl;
  } else {
    cout << "In the sentence, there is no keyword \"good\"" << endl;
  }
  return 0;
}

如果用cin來輸入的話,是以空白為分隔,
若要輸入中含空白,就必需使用gets。
c是用gets,但是會有問題,最好還是用getline比較好,也一樣可以得到相同的結果哩。

main.cpp

#include <iostream>
#include <string>
using namespace std;

int main(){
  string s;
  cout << "Please input a string include the space:";
  getline(cin,s);
  cout << "You typed:" << s << endl;
  s.find("good",0);
  string::size_type loc = s.find("good",0);
  if (loc != string::npos){
    cout << "In the sentence, there is keyword \"good\" "<< endl;
  } else {
    cout << "In the sentence, there is no keyword \"good\"" << endl;
  }
  return 0;
}


[2008.11.29 補充]
stringstream:可用於基本型態與string型態的轉換
main.cpp

#include <sstream>
#include <iostream>
using namespace std;

int main(){
  int index = 5;
  string str1;
  stringstream sstr;
  sstr << index;
  sstr >> str1;
  cout << "the answer is " << str1 << endl;
  return 0;
}


[2008.12.19 補充]
要用string除了要包含string之外,還要用using namespace std;

[2008.12.19 補充]
另外,在C中要把數字轉成字串,可以使用sprintf


#include <stdio.h>

int main(){
  int a=100;
  char b='x';
  char c[]="abcd";
  char buf[100];
  sprintf(buf,"%3d%c%s",a,b,c); // buf是轉換完後的儲存字串

  printf("your input is %s\n",buf);

  return 0;
}


[2009.03.16 補充]
眾所周知,sprintf不能檢查目標字符串的長度,可能造成眾多安全問題,所以都會推薦使用snprintf

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int ac, char **av)
{
char *str;
int len;
// snprintf(NULL, 0, fmtstring, /* 其它參數 */ );
// 相對於sprintf安全的多
len = snprintf(NULL, 0, "%s %d", *av, ac);
printf("this string has length %d\n", len);
if (!(str = malloc((len + 1) * sizeof(char))))
return EXIT_FAILURE;
// 把後面的變數轉換成字串設定到str指標上
// 而len+1是後面總合長度的上限
// 超過上限的部分會被刪掉,不會印出來
len = snprintf(str, len + 1, "%s %d", *av, ac);
printf("%s %d\n", str, len);
free(str);
return EXIT_SUCCESS;
}

談談snprintf

[2009.03.22 補充]
char *strerror(int errno);
strerror, strerror_r - get error message string
若上一個函數有出現錯誤,會把錯誤號碼存到erron,可以透過strerror來取得代表此錯誤數字的訊息
網址

[2009.04.03 補充]
void perror ( const char * str );
會這把這一個字串列印在stderr,且會在最後面加'\n'的換行字元

int fprintf ( FILE * stream, const char * format, ... );
這是一個非常好用的函式,可以把後面的字串寫入到檔案中
另外有一個特殊用法,就是使用stdout,stderr可以值接設定是要輸出到哪裡
例:
fprintf(stdout,"Hello World!!");
fprintf(stderr,"Hello Error!!");

int vsprintf (char * str, const char * format, va_list arg );
int vsnprintf(char *restrict s, size_t n, const char *restrict format,va_list ap);
可以參考C/C++ : 不定長度引數(Variable-length argument)

參考資料:
C++ Strings
良葛格學習筆記

2008年11月25日 星期二

機車被拖吊日記~

今天下午把明天要去高雄報告的paper先看過一遍,
好,剛好我在圖書館預約的書「Qt程式設計」今天是最後一天了,一定要去領。

進去出來,我的機車不見了,看對面,有一台拖調車正在對面拖吊,
我一看,我的車剛好在上面,
趕快去拜託員警可不可以還我的車?
若是現在正在移的車子是可以還我,但是,是對面的機車的話,是沒有辦法還我的。

沒有辦法,為了不要坐計程車過去領車,我拜託他能不能讓我一起坐去拖吊場,最後他是答應了。

跟車上的工作人員聊了一下,其實,他們沒有拖越多,領越多的事情。不過,不知道有沒有業績壓力就是了。

回來之後,一直在想如何把這一個開銷賺回來。
是要少吃幾餐?還是在其它地方省下來?
最後,有一個感想,倒不如現在好好認真唸書,
以後,若可以的話,可以早一點出去工作。這才是真正的方法啊。

感想:
1. 多走幾步路找位置比較好。
2. 若真的要被拖吊時,這個時候一定要跟警察說有困難,一定要拖個五分鐘十分鐘,其實,外面還有很多台可以拖吊,他不一定要拖你這一台,反正就講說很可憐,學生沒有錢~在資料還沒有KEY到電腦前,都有機會。離拖吊場越遠,要回來的機會越大。到拖吊場的話,有很多其它人,機會會非常小。
3. 認真唸書,以後才可以真的賺錢。
4. 快把腳踏車修好,不要靠機車通勤了
5. 大約9~17都很危險。

這樣一共花了200(拖吊)+600(罰單)。
都可以買一本我要借的書了~還有剩哩~

最後看完這一本書,竟然也不是我要的,天啊,那我幹麻去借這一本啊

2008年11月22日 星期六

清晨學習的效果是深夜學習的六倍!

熬夜讀書不只沒用還有害

書讀到深夜很了不起嗎?不,完全不是。一但變成夜貓子,把深夜當成讀書時間,那麼不只學習效果不會提升,反而會把身體搞壞,精神上也會陷入空洞的狀態。因為深夜讀書違反了人類身為生物的自然原理。

控制內臟功能或體溫調節等等的身體功能,是我們體內的自律神經。自律神經裡面有交感神經和副交感神經,交感神經在活動或是緊張、興奮的時候會工作,而放鬆的時候則是副交感神經在工作。

白天主要是交感神經在工作,到了晚上交棒給副交感神經。副交感神經負責身體的修復與再生等等維修工作。交感神經則好好休息準備應付明天的工作。

至於深夜讀書的人,可以說是用副交感神經來讀書的。這樣就是把武器搞錯了。就好像拿著豆腐去打架一樣,實在很可笑。尤其是年輕人,特別容易產生深夜讀書很帥氣的錯覺,但深夜懶散的讀書,效果其實並不値得期待。

與其這樣,還不如早起短時間讀書,效果更好

清晨的二十分鐘,相當於晚上的兩小時

夜晚比較領先的副交感神經大概是在天亮的時候,也就是清晨五點左右和副交感神經互換的。

因此盡量選擇五點左右,要是沒辦法就六點左右起床吧。好好的早起,先看看戶外的陽光。讓陽光接觸視神經,可以重新設定一整天的節奏,讓大腦跟身體認為「已經早上啦」,進而開始活躍起來。

原本人類的生理時鐘就是二十五小時。而一天只有二十四小時,所以如果放著不管,這一小時的偏差就會越來越嚴重,讓人變成夜貓子。更別說當今社會不管商店或電視,都是二十四小時的營業的。更加速了夜貓子的增加。

人類體內每秒有三億個生化反應在進行,如果交感神經和副交感神經沒有妥善運作,這些生化反應就不會順利進行。若早起的「晨間型的人」,自律神經的平衡也不會崩壞。而且在維護身心健康上,早起也非常有效。

每當建議大家在早上學習,有人會說「早上太忙了,沒辦法讀啦」,但是其實只要二十分鐘就好了。就像前面(我的前一篇文章)「分段模組學習」所提到的,二十分鐘其實是最有效率的學習時間。安排學習十五分鐘 + 複習檢查五分鐘。只要一個模組就可以了。這樣應該就辦得到了吧。

在學習方法論的世界裡面,認為在早晨,尤其是早餐之前進行學習,效果是深夜的六倍。也就是說早上一個模組二十分鐘的學習,效果可以與晚上的兩小時匹敵。

另外,每天早上學習二十分鐘,也能對自己建立一份小小的自信。
這麼做可以讓自己感覺到,自己心中的核心意識一天比一天穩固。
因為這樣就可以給自己一個小小歡呼,「我也是挺能幹的呢。」

只要二十分鐘的習慣,就可以徹底改變人生。讓我們打破「睡到快要遲到」的習慣吧。
如果不這麼做,不管是明年、後年,還是會一直賴床下去。

養成清晨學習的習慣,人生將會大幅改觀。



參考資料:
▁▂▃▄ⓟⓔⓣⓔⓡⓙⓐⓜⓔⓢ▄▃▂▁

在程式中執行shell的指令

今天發現,可以在程式中執行shell的指令,
就跟awk指令一樣,可以在程式中執行shell的指令。

但是,目前還不知道能不能把執行的結果傳回程式中?


#include <iostream>
using namespace std;

int main(int argc, **char argv)
{
  system("pwd");
  return 0;
}

這個時候就會列印你目前的所在位置。

2008年11月21日 星期五

在linux下設定程式斷點

「聽說」在windows下,要設定斷點,只要在程式中加system("PAUSE");

不然的話,就必需要用IDE所提供的工具才可以去慢慢trace程式,
而我是比較習慣用vim寫程式,今天剛好找到一個可以提供讓程式先暫體的一個方法~

定義一個巨集,PAUSE

#include <stdio.h>
#define PAUSE printf("Press any key to continue..."); fgetc(stdin);


完整程式範例

#include <stdio.h>
#define PAUSE printf("Press any key to continue..."); fgetc(stdin);

int main(void)
{
  PAUSE
  printf("system(\"pause\") for Linux!\n");
  return 0;
}

程式雖然說按任何按鍵,但是,實際上只有按Enter才有效果。
我記得有一個函式是按任何按鍵就會有動作的~
下次有找到再補上吧~

噹噹~找到啦~如何在linux下實作一個getch()

在linux下沒有conio.h這一個檔案,所以,只好實作它啦~
請參考以下檔案。

debug.h

#ifndef _DEBUG_H
#define _DEBUG_H

#include <termios.h>
#include <unistd.h>
#include <assert.h>
#include <string.h>
/*------------------------------------------------*/
int getch(void) {
  int c=0;

  struct termios org_opts, new_opts;
  int res=0;
    //----- store old settings -----------
  res=tcgetattr(STDIN_FILENO, &org_opts);
  assert(res==0);
    //---- set new terminal parms --------
  memcpy(&new_opts, &org_opts, sizeof(new_opts));
  new_opts.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL | ECHOPRT | ECHOKE | ICRNL);
  tcsetattr(STDIN_FILENO, TCSANOW, &new_opts);
  c=getchar();
    //------ restore old settings ---------
  res=tcsetattr(STDIN_FILENO, TCSANOW, &org_opts);
  assert(res==0);
  return(c);
}
#endif // _DEBUG_H


參考資料:
#define KNOWLEDGE FREE
在 Linux 上實作 C++ 在 VC++ 的 getch()

忘記linux的root的密碼的解決方法

如果是在redhat, fedora, centos可以用以下方法

方法一:
1.當開機出現到Grub的畫面是,先按一下"空白鍵space"去停止其運作!
2.之後按""編輯這如這個樣子的行列:kernel /boot/vmlinuz-2.4.19-16mdk root=/dev/hda1 (每台機器狀況可能不一樣)
變成:"kernel /boot/vmlinuz-2.4.19-16mdk root=/dev/hda1 1"
3.按"B"按鈕離開,Linux就可以開到Run level 1(單人模式)囉!
4.Lilo的畫面就更簡單了!直接按下"Ctrl + X "後,輸入:"linux 1"就直接開進去囉!
5.進到單人模式後,就可以直接用"passwd root"指令去改root密碼囉!

方法二:
grub boot時按a,在command後面加 1 (s/S/single)

方法三:
用live CD或是rescue CD來boot, 使用single user mode, 之後chroot回去, 再來改root passwd
chroot是把某一個目錄當成開機目錄~
過程:
先把指定的磁區掛載到某一個目錄上。
以下的指令是把/dev/sda1這一個磁區掛載到/tmp這一個目錄上
# mount -t ext3 -o remount,rw,auto /dev/sda1 /tmp
然後到/tmp/etc/shadow裡面修改root的密碼的那一個欄位,也就是第二個欄位,把它清空
# vi /tmp/etc/shadow
這樣再重新啟動電腦,要用root進入時,他就不會詢問你密碼啦!

參考資料:
開機過程的問題解決

2008年11月17日 星期一

用電腦的人必須要瞭解的常識

OFFICE裡,電腦是我們最重要的一件辦公用品,很難想像,如果沒有了電腦,我
們將如何工作。但遺憾的是,當我們享受著電腦帶給我們的一切方便的同時,也不得不
接受它在身心兩方面對我們健康的威脅。所以,瞭解電腦「病」,防治電腦「病」,已
經成為我們刻不容緩的事情。為了全面瞭解電腦對OL身心的負面影響,我們特地組織這
次策劃,全面介紹緩解OL們最難逃脫的八大電腦「病」的竅門和方法。

罪狀一:電磁輻射
症狀:失眠、內分泌紊亂
致病原因:顯示器熱度過高,在工作時就會有相當多的電磁輻射,它會使空氣發生電離作用,不斷產生正電荷(正離子),並不斷與空氣中的負離子中和,導致負離子的含量幾乎為零。負離子多有益,正離子就多有害,長期處於正離子過多的環境中,它們通過呼吸進入肺,然後隨血液循環被輸送到人體的各個組織,使人的血液、體液呈酸性,延緩身體正常的代謝功能,使毒素囤積在體內。使人失眠、免疫力下降、女性內分泌紊亂等。

緩解方法
1.仔細地打掃辦公環境。因為正離子會牢牢地吸附在灰塵顆粒上,灰塵越多,則正離子越多。

2.多喝茶。茶葉中含有的茶多酚等活性物質,有助吸收放射性物質。

3.顯示器散發出的輻射多數不是來自它的正面,而是側面和後面。因此,不要把自己顯示器的後面對著同事的後腦或者身體的側面。

4.常喝綠茶。綠茶是近幾年來最為人所津津樂道的養生飲品,因為其中含強效的抗氧化劑兒茶酚及維他命C,不但可以清除體內的自由基,還能使副腎皮質分泌出對抗緊張壓力的荷爾蒙,對於情緒暴躁有很大改善。不過,最好在白天飲用,以免影響睡眠。

5.綠豆可清熱解毒、利尿消腫,薏仁則可以健脾止瀉、輕身益氣,經常需要熬夜工作或是心煩氣躁、口乾舌燥、便秘時,對於消除煩躁情緒非常有幫助。

6.勤洗臉可以防止輻射波對皮膚的刺激。

7.在電腦桌下擺放一盆植物或水,可以吸收電腦所發出的電磁波。

8.盡量使用液晶顯示器。

9.穿著防輻射肚兜。

罪狀二:灰塵場
症狀:皮膚過敏
致病原因:處於開機狀態的顯示器周圍會形成一個靜電場,它差不多會把整個房間的空氣中懸浮的灰塵吸入自己的場中,從而使得面部皮膚受到刺激,會出現過敏起疹等現象。坐在電腦前,你的周圍便充滿了含有大量灰塵顆粒的空氣,因此,使用者的皮膚非常容易產生皮疹等過敏現象。

緩解方法
1.不要在電腦周圍擺放堆積如山的紙和文件,應該把所有必需的文件分門別類地放進櫃子,因為紙張和文件上的灰塵通常不易清潔。

2.電腦桌表面用濕布蘸著抗靜電劑擦拭。

3.經常開窗通風。

4.使用電腦之前在臉上擦些保濕霜,或者用洋甘菊浸液浸濕毛巾(更簡單的方法是用濕的洋甘菊茶袋)直接敷在額頭和臉頰上。

5.在電腦桌上擺放一盆仙人掌,因為仙人掌的針刺能夠吸收灰塵。

6.經常清潔鍵盤,使用鍵盤時及使用後應先洗手再進食,不使用時用布將鍵盤遮蓋。因為鍵盤凹凸不平,非常容易積累灰塵,更會成為皮膚病病菌、感冒病菌隱藏的場所。

罪狀三:畫面閃爍、散發熱度造成環境乾燥
症狀:乾眼症
致病原因:雖然肉眼無法看出來,但事實上顯示器上的畫面是一直在閃爍的。看顯示器時,我們往往會長時間地盯著某一個點,很少眨眼,因此眼肌容易疲勞,眼黏膜發乾,眼睛發紅、發炎、疼痛。在電腦前不間斷工作4小時後,幾乎所有人的眼睛都會出現酸痛和沙眼的感覺。電腦工作者的工作環境密閉,環境中的濕度低,計算機不斷散發熱度,在乾燥環境下,淚液層幾秒鐘就蒸發掉了,成為干眼症的重要誘因。

緩解方法
1.距顯示器需要 70厘米以上,放置位置應比雙眼視線略低,並使眼球暴露於空氣中的面積減小到最低。

2.把亮度調整到不使眼疲勞的程度。

3.在電腦前工作時,房間既不能太昏暗,也不能太明亮。理想的辦公環境是-房間的亮度和屏幕的亮度相同。

4.因為要避免屏幕上顯現出你的臉、燈光以及物體的影像(所有的光影會加倍地使眼睛疲勞),所以,要避免室內的光線直接照射在屏幕上而產生干擾光線。光源最好來自電腦使用者的左邊或右邊。如果你戴眼鏡,應該給自己配一副帶有防反光加膜的鏡片。

5.為了防止結膜發乾,在使用電腦時滴一些與我們眼淚成分相同的眼藥水。

6.眼睛疲勞時,用以淡紅茶水煮過的濕巾敷幾分鐘眼睛,會很快消除充血和疲勞。

7.將黑豆500克,炒熟後待冷,磨成粉。核桃仁500克,炒微焦去衣,待冷後搗如泥。取以上兩種食品各1匙,衝入煮沸過的牛奶1杯後加入蜂蜜1匙,早晨或早餐後服食。能增強眼內肌力,加強調節功能,改善眼疲勞的症狀。

罪狀四:長期使用鼠標
症狀:鼠標手(即腕關節綜合征)
致病原因:長期使用電腦鍵盤和鼠標,可能與一種稱為腕關節綜合征的疾病掛上鉤,出現食指或中指疼痛、麻木和拇指肌肉無力感,發展下去可能導致神經受損,進而引起手部肌肉萎縮。問題出在每天重複在鍵盤上打字或移動鼠標,手腕關節長期、密集、反覆和過度活動,導致周圍神經損傷或受壓迫,使神經傳導被阻斷,從而造成手掌的感覺與運動發生障礙。另外,肘部經常低於手腕,而手高高地抬著,神經和肌腱經常被壓迫,手就會開始發麻,手指失去靈活性,經常關節痛。手指頻繁地用力,還會使手及相關部位的神經、肌肉因過度疲勞而受損,造成缺血缺氧而出現麻木等一系列症狀。據調查,女性發生「鼠標手」比男性多,這是因為,女性手腕通常比男性小,腕部正中神經容易受到壓迫。

緩解方法
1.盡量避免上肢長時間處於固定、機械而頻繁活動的工作狀態下,使用鼠標或打字時,每工作一小時就要起身活動活動肢體,做一些握拳、捏指等放鬆手指的動作。

2.使用電腦時,電腦桌上的鍵盤和鼠標的高度,最好低於坐著時的肘部高度,這樣有利於減少操作電腦時對手腕的腱鞘等部位的損傷。
3.使用鼠標時,手臂不要懸空,以減輕手腕的壓力,移動鼠標時不要用腕力而盡量靠臂力做,減少手腕受力。
4.不要過於用力敲打鍵盤及鼠標的按鍵,用力輕鬆適中為好。
5.鼠標最好選用弧度大、接觸面寬的,有助力的分散。
6.使用鼠標時配合使用「鼠標腕墊」墊在手腕處。

罪狀五:腦功能減弱
症狀:記憶力帥退
致病原因:隨著個人電腦的日益普及,人們正越來越多地受到記憶力減退的困擾,主要原因是他們對電腦的依賴過強,從而使得自己的腦功能反而減弱。
緩解方法

1.睡前平躺在床上,全身放鬆,將頭仰放在床沿以下,緩解大腦供血及供氧的不足。

2.保證充足的睡眠。不論工作有多緊張,每日8小時的睡眠是必不可少的,而且要盡量保證睡眠質量,使大腦皮層的血液循環得到適時的調節。

3.靜想練習。最好每天能有20-30分鐘時間靜想生活中輕鬆美好的事情,聆聽自己呼吸的節律,讓情緒盡量放鬆。姿勢不拘,或坐或臥,以舒適為準。

4.平時能用手寫的文字就盡量不要使用電腦輸入,即便一定需要電子文件,也可以盡量使用手寫板輸入文字。

5.改變不健康的飲食結構,多食用健腦食品。
罪狀六:長時間採用不正確坐姿
症狀:頸、肩、腰部疼痛
致病原因:如果使用電腦時高高地架著胳膊,低著頭,並且在桌子下艱難地蹺著二郎腿,那麼,工作一小時你就會感到腰背酸痛,脖子和肩膀麻木,手臂也不靈活。這樣的坐姿保持一年至一年半,你就可以獲得雙下巴、頸椎關節僵硬。

緩解方法

1.上半身應保持頸部直立,使頭部獲得支撐,兩肩自然下垂,上臂貼近身體,手肘彎曲呈90度,操作鍵盤或滑鼠,盡量使手腕保持水平姿勢,手掌中線與前臂中線應保持一直線。下半身腰部挺直,膝蓋自然彎曲呈90度,並維持雙腳著地的坐姿。

2.必須選擇符合人體工學設計的桌椅,使用專用的電腦椅,坐在上面遵循「三個直角」:電腦桌下膝蓋處形成第一個直角,大腿和後背是第二個直角,手臂在肘關節形成第三個直角。肩胛骨靠在椅背上,雙肩放下,下巴不要靠近脖子。兩眼平視電腦螢幕中央,座椅最好有支持性椅背及扶手,並能調整高度。

3.放風箏:放風箏時,挺胸抬頭,左顧右盼,可以保持頸椎、脊柱的肌張力,保持韌帶的彈性和脊椎關節的靈活性,有利於增強骨質代謝,增強頸椎、脊柱的代償功能,既不損傷椎體,又可預防椎骨和韌帶的退化,實在是老祖宗留給我們防治頸椎病的一個好方法。

4.游泳:因為游泳的時候頭總是向上抬,頸部肌肉和腰肌都得到鍛煉,而且人在水中沒有任何負擔,也不會對椎間盤造成任何的損傷,算得上是比較愜意的鍛煉頸椎的方式。

5.使用電腦每隔一小時應休息5至10分鐘,做柔軟操或局部按摩,同時養成規律運動習慣,針對肩頸、上肢進行拉筋及肌力訓練,以增加柔軟度及肌力。

6.電腦的擺放高度要合適。將電腦屏幕中心位置安裝在與操作者胸部同一水平線上,最好使用可調節高低的椅子。應有足夠的空間伸放雙腳,膝蓋自然彎曲呈90度,並維持雙腳著地,不要交叉雙腳,以免影響血液循環。

7.眼睛與顯示器保持恰當的距離。眼睛與電腦顯示器形成輕度向下注視螢光屏的角度,這樣可使頸部肌肉得到放鬆。

8.舒緩體操
A:基本姿勢:
每次做各項訓練動作前,先自然站立,雙目平視,雙腳略分開,與肩同寬,雙手自然下垂。全身放鬆。

B:前俯後仰:
雙手叉腰,先抬頭後仰,同時吸氣,雙眼望天,停留片刻;然後緩慢向前胸部位低頭,同時呼氣,雙眼看地。做此動作時,要閉口,使下頜盡量緊貼前胸,停留片刻後,再上下反覆做4次。動作要旨是:舒展、輕鬆、緩慢,以不感到難受為宜。

C:左右旋轉:
雙手叉腰,先將頭部緩慢轉向左側,同時吸氣於胸,讓右側頸部伸直後,停留片刻,再緩慢轉向右側,同時呼氣,讓左邊頸部伸直後,停留片刻。這樣反覆交替做4次。

D:提肩縮頸:
做操前,先自然站立,雙目平視,雙腳略分開,與肩平行,雙手自然下垂。
動作時雙肩慢慢提起,頸部盡量往下縮,停留片刻後,雙肩慢慢放鬆地放下,頭頸自然伸出,還原自然,然後再將雙肩用力地往下沉,頭頸部向上拔伸,停留片刻之後,雙肩放鬆,並自然呼氣。注意在縮伸頸的同時要慢慢吸氣,停留時要憋氣,鬆肩時要盡量使肩、頸部放鬆。回到自然式後,再反覆做4次。

E:左右擺動:
做操前,先自然站立,雙目平視,雙腳略分開,與肩平行,雙手叉腰。動作時頭部緩緩向左側傾斜,使左耳貼於左肩,停留片刻後,頭部返回中位;然後再向右肩傾斜,同樣右耳要貼近右肩,停留片刻後,再回到中位。這樣左右擺動反覆做個4次。在頭部擺動時需吸氣,回到中位時慢慢呼氣,做操時雙肩、頸部要盡量放鬆,動作以慢而穩為佳。

罪狀七:思維形成定式,不習慣與人相處
症狀:電腦憂鬱症
致病原因:長時間的電腦操作形成「非此即彼」的思維定式,不習慣與人達成妥協和諒解,喪失自信,身心疲憊,以致工作難以展開。
緩解方法

1.做好自我心理調整,及時糾正思維方式。

2.積極處理好人際關係,尤其與同事的關係。

罪狀八:過度依賴電腦而情緒緊張煩躁
症狀:電腦躁狂症
致病原因:由於對電腦過度依賴,所以當電腦出現故障後,會精神緊張,情緒煩躁、不安,甚至有對電腦「動武」的傾向,如通過用力敲打鍵盤、鼠標,大罵電腦,摔砸電腦等方式發洩怒火,有的還將不滿情緒發洩在家人或同事身上。
緩解方法

1.一旦電腦出現故障,立即找專業人士來維修,避免獨自坐在電腦桌前,應當盡快轉移視線和注意力,放鬆心情。

2.隨時保存工作文檔,用移動硬盤將資料備份,這樣一旦電腦出現問題,不會受到太大損失,情緒不至於驟然失控。

3.不要長時間坐在電腦前工作,每隔一段時間走開喝杯茶、咖啡或活動一下四肢。

電腦一族的健康食品
健腦元素
1.脂肪:它是健腦的首要物質。它在發揮腦的複雜、精巧的功能方面具有重要作用。代表性食物有堅果、芝麻、自然狀態下飼養的動物等。

2.蛋白質:它是智力活動的物質基礎,是控制腦細胞興奮與抑制過程的主要物質。代表性食物有瘦肉、雞蛋、魚類等。而碳水化合物是腦活動的能量來源,它在體內分解為葡萄糖後,即成為腦的重要能源。代表性食物有雜糧、糙米、紅糖、糕點等。充足的維生素C可以使大腦功能靈活、敏銳,並提高智商。代表性食物有鮮果類、黃綠色蔬菜等。

3.B族維生素:它是智力活動的助手。包括維生素B1、維生素B2、葉酸等,當B族維生素嚴重不足時,就會引起精神障礙,易煩躁,思想不集中,難以保持精神安定。代表性食物有香菇、野菜等。堅果含有大量的蛋白質、不飽和脂肪酸、卵磷脂、無機鹽和維生素,經常食用,對改善腦營養供給很有益處。香菇對高血壓、動脈硬化有較為明顯的療效,有消除疲勞、提神、穩定精神、防止貧血和癌症等功效。

4.雞蛋:它含有豐富的蛋白質、卵磷脂、維生素和鈣、磷、鐵等,是大腦新陳代謝不可缺少的物質。

天將降大任於是人也

用這一句話來鼓勵自己吧,但是,遇到困難,還是要試著找出路~

【原文】

孟子曰:「舜發於畎畝之中,傅說舉於版築之閒,膠鬲舉於魚鹽之中,管夷吾舉於士,孫叔敖舉於海,百里奚舉於市。故天將降大任於是人也,必先苦其心志,勞其筋骨,餓其體膚,空乏其身,行拂亂其所為,所以動心忍性,曾益其所不能。人恆過,然後能改;困於心,衡於慮,而後作;徵於色,發於聲,而後喻。入則無法家拂士,出則無敵國外患者,國恆亡。然後知生於憂患而死於安樂也。」

【註釋】

  [1]畎(quan)畝:田間,田地。[2]傅說(yuo):殷武丁時人,曾為刑徒,在傅險築牆,後被武丁發現,舉用為相。[3]版築:一種築牆工作, 在兩塊牆版中,填人泥土夯實。[4]膠鬲(ge):殷紂王時人,曾以販賣魚、鹽為生,周文王把他舉薦給紂,後輔佐周武王。[5]管夷吾:管仲。士:此 處指獄囚管理者。當年齊桓公和公子糾爭奪君位,公子糾失敗後,管仲隨他一起逃到魯國,齊桓公知道他賢能,所以要求魯君殺死公子糾,而把管仲押回自己處理。魯君於是派獄囚管理者押管仲回國,結果齊桓公用管仲為宰相。[6]孫叔敖:是春秋時楚國的隱士,隱居海邊,被楚王發現後任為令尹(宰相)。[7]百里奚舉於市:春秋時的賢人百里奚,流落在楚國,秦穆公 用五張羊皮的價格把他買回,任為宰相,所以說「舉於市」。[8]曾:同「增」。[9]衡:通「橫」,指橫塞。[10]征:表徵,表現。[11]法家拂士:法家,有法度的大臣;拂,假借為「弼」,輔佐;拂士即輔佐的賢士。

【譯文】  

  孟子說:「舜從田間勞動中成長起來,傅說從築牆的工作中被選拔出來,膠鬲被選拔於魚鹽的買賣之中,管仲被提拔於囚犯的位置上,孫叔敖從海邊被發現,百里奚從市場上被選拔。所以,上天將要把重大使命降落到某人身上,一定要先使他的意志受到磨練,使他的筋骨受到勞累,使他的身體忍饑挨餓,使他備受窮困之苦,做事總是不能順利。這樣來震動他的心志,堅韌他的性情,增長他的才能。人總是要經常犯錯誤,然後才能改正錯誤;。心氣鬱結,殫思極慮,然後才能奮發而起;顯露在臉色上,表達在聲音中,然後才能被人瞭解。一個國家,內沒有守法的大臣和輔佐的賢士,外沒有敵對國家的憂患,往往容易亡國。由此可以知道, 憂患使人生存,安逸享樂卻足以使人敗亡。」

【讀解】

   吃得苦中苦,方為人上人。
  孟子所舉的例證是舜帝、傅說、膠鬲、管仲、孫叔敖、百里 奚六人。其實,為人所熟知的,還有姜子牙的故事。
  所謂「天將降大任於是人也,必先苦其心志……」云云,成 為《孟子》最著名的篇章之一,後人常引以為座右銘,激勵無數志士仁人在逆境中奮起。其思想基礎是一種至高無上的英雄觀念 和濃厚的生命悲劇意識,一種崇高的獻身精神。是對生命痛苦的認同以及對艱苦奮鬥而獲致勝利的精神的弘揚。
  借用悲劇哲學家尼采的話來說,是要求我們「去同時面對人 類最大的痛苦和最高的希望。」(《快樂的科學》)
  因為,痛苦與希望本來就同在。
  說到生於憂患死於安樂,太史公說得好:
  周文王被拘美裡而演《周易》,孔子困陳蔡而編《春秋》,屈 原遭流放而賦《離騷》,左丘明失明而寫《國語》,孫胺腳殘而著 《兵法》,呂不韋遷蜀地而出《呂覽》,韓非子被秦國囚有《說難》、 《孤憤》,《詩經》三百篇,大多都是發憤所作。(《史記‧太史公 自序》)
  之所以如此,正是因為他們身處逆境的憂患之中,心氣鬱結, 奮發而起,置之死地而後生的緣故。
  至於死於安樂者,歷代昏庸之君,荒淫逸樂而身死國亡,其 例更是不勝枚舉。
  所以,對人的一生來說,逆境和憂患不一定是壞事。生命說 到底是一種體驗。因此,對逆境和憂患的體驗倒往往是人生的一筆寶貴財富。當你回首往事的時候,可以自豪而欣慰地說:「一切都經歷過了,一切都過來了!」這樣的人生,是不是比那些一帆風順,沒有經過什麼磨難,沒有什麼特別體驗的人生要豐富得多,因 而也有價值得多呢?

2008年11月12日 星期三

在ubuntu下看影音檔

看rm,rmvb檔
安裝real player

先到RealPlayer官方網站下載:
RealPlayer10GOLD.bin保存到自己資料夾裡面,即/home/[yourusername]下。
打開终端機:

[user@host ~]$ chmod +x RealPlayer10GOLD.bin
[user@host ~]$ sudo ./RealPlayer10GOLD.bin

顯示

Welcome to the RealPlayer (10.0.8.805) Setup for UNIX
Setup will help you get RealPlayer running on your computer.
Press [Enter] to continue...

enter進入下一步:

Enter the complete path to the directory where you want
RealPlayer to be installed. You must specify the full
pathname of the directory and have write privileges to
the chosen directory.
Directory: [/home/shixinyu/RealPlayer]:

預設安装到使用者資料夾下的RealPlayer目錄下,如果你想要安装到别處,就在此處輸入路徑

You have selected the following RealPlayer configuration:

Destination: /home/shixinyu/RealPlayer

Enter [F]inish to begin copying files, or [P]revious to go
back to the previous prompts: [F]: F

按下F即可。

Copying RealPlayer files...configure system-wide symbolic links? [Y/n]:

按下Y即可,基本上就安装好了,你可以到“應用程式,影音”下找到RealPlayer10

如果RealPlayer無反應,Ubuntu安装的是SCIM输入法,SCIM與RealPlayer的衝突,要修改:

[user@host ~]$ sudo gedit /home/[username]/RealPlayer/realplay \\[username]你的資料夾名字

在打開的文本编辑器的第一行加入下面這一行
export GTK_IM_MODULE=xim
------------------------------------------------
看avi
安裝vlc

[user@host ~]$ sudo apt-get install vlc

------------------------------------------------
看mpeg

[user@host ~]$ apt-get install libxine1-ffmpeg


參考資料:
這裡
[Ubuntu]用xine 看avi

2008年11月11日 星期二

會做事,更要會做人

T公司為了幫助主管能力往上提升,高薪挖了一位大企業的主管「空降」來當副總,人家果然是大企業出身,他的工作能力及效率之快真是沒話說,可是他有一個毛病卻是讓大家很受不了,每次一開口就說:「我以前公司的規模多大,資源有多豐富,我底下有好幾十人,我們效率有多高,你們真的要加油。」有次老闆實在是聽不下去了,就直接嗆他:「現在你的手下只有兩個人,這就是你的公司,你能做好才能活下去。」

【手無寸鐵,有本事才利害】

就是有這種人,誰管你以前是多利害,你現在的環境才是最現實的世界,好好的針對眼前的任務去想一想該如何達成?別用嘴巴吹了!動手吧!

看到卸任總統「一點權力都沒有」,很多人非常感慨吧?別老是緬懷以前自己的風光,那些你回家在床上自己慢慢想,人家沒興趣聽。你以前有多風光都過去了,
如今來到這裡「一切歸零」重新開始,我們不想聽,只想看你表演!

這位新主管的EQ真的有問題,我發現他們以前公司太注重績效了,所以把他們訓練成猶如「沒人性」的機器人,現在身處「要什麼沒什麼」的小公司,才曝露出他的「做人」有問題,其實「你會做事全靠公司資源,你要做人只得靠自己」,這一點可能那些大企業的員工都不懂。

【是誰欺負誰?等著瞧】

目前我輔導公司會把重心放在「品格修練」,至於「制度化」反而是其次,這個時代的確有許多人的人格都有偏差,包括老闆自己,何謂「偏差」?就是「思想不正」,舉例說,你只看到自己的利益,確枉顧別人利益,還有,你只看別人缺點,卻對人家優點隻字不提,這種人甚至也唸到博士,不信?你看政論節目那些名嘴,不就是這付德行?

上個月85度C連鎖店的工讀生檢舉公司給他們的時薪太低,老闆一付無辜出來解釋:「你應徵時自己還簽字同意這條件才上班的,怎可以事後反悔去抗議?你不接受就不要上班啊?我又沒拿槍押著你來!」

遇到這種員工,老闆絕對是輸的,因為大家同情弱者,據我知道,有些老闆好可憐的,因為負債累累,連房子都被拍賣了,別以為老闆多風光啊?

【別只顧賺錢,做人也要用心】

我想很多老闆都有被不肖員工「恐嚇」(檢舉、發黑函)的經驗,但有的確實是老闆自己不對,所以才讓員工忍無可忍報復,在我看來,更多是雙方的誤會所致。

做人本來就是很主觀的一種藝術,「誰負了誰」有時候很難認定,那就有各自解讀之空間,這時候一定要「往善意想」,不然就是所謂的「誤會」。

如果去「欺負」別人本來就是不對,像是我前不久發生車禍,對方公司竟然全推給自己員工(我是被車子撞的,又不是被人撞),這真的一點擔當也沒有,如果你的員工得到奧運冠軍,你是否也推說「與我無關」?如果他們公司發生車禍,別人也這樣對待時,他們如何想?(自己將心比心吧!)

這是一家上市大企業,老闆知道嗎?我會告訴他的,連老闆都要教育一下「做人的道理」!

2008年11月10日 星期一

虛擬作業系統 - Virtual Box

VirtualBox主網址

在Windows下虛擬作業系統軟體最好用的就是VMWARE。

而在Linux下最好用的就是VirtualBox,是免費的,但是,在Windows下可能會比較不穩定

解決方法如下:

1. 加入 usbfs群組

[user@host ~]$ sudo groupadd usbfs


2. 檢查 usbfs 群組的 gid

[user@host ~]$ cat /etc/group | grep usbfs

usbfs:x:1002:

3. 把目前的使用者加入 usbfs 群組

[user@host ~]$ sudo gedit /etc/group

把usbfs:x:1002: 修改為usbfs:x:1002:youraccount / * youraccount請改成自己帳號 * /

4. 更改USB裝置權限,編輯 /etc/fstab 檔案,並增加以下兩行,這邊要注意一下gid,可能不是1002

[user@host ~]$ sudo gedit /etc/fstab

在最下方加入
# 1002 is the USB group IDI
none /proc/bus/usb usbfs devgid=1002,devmode=664 0 0

5. 接下來重新啟動就ok啦~



使用方法:插入USB後,點 VirtualBox 右下角的USB圖示,選擇已辨識的USB裝置。

注意:在 Guest使用USB前,記得先卸載Host的USB,之後重開系統。

參考資料:
Ubuntu環境使用Virtualbox安裝Windows XP過程分享
在Ubuntu 7.10中安裝VirtualBox
[Ubuntu] VirtualBox 1.5
軟體試用達人必備工具 - VirtualBox 虛擬多個作業系統完全攻略
[Ubuntu] VirtualBox
給VirtualBox的vdi文件瘦身
裝上VirtualBox
虛擬機器VirtualBox

2008年11月8日 星期六

王永慶手稿語錄

*萬事先求知,有知才有覺,即不知就不覺。

*制度好,可以使壞人無法橫行;制度不好,可以使好人無法充分做 好事,甚至會走反面。

*經營者要有改革的心;經營者要有利人利己的胸襟。

*由儉入奢易,由奢入儉難。

*從做中學習,有壓力才有效率,有競爭才有進步。

*要控制自己表現在外面和隱藏在裡面的脾氣、要有奉獻自己的身心;工作比以往更賣力,更要超過自己,這是真正的理想。

*我們不要先求勝過別人,不妨先求超過自己,要打破自己原先紀錄,今天要勝過明天,更要能禁得起考驗。

*在比賽中打倒旁人或被人打倒有一點差別,不過打倒自己的紀錄,更有意義,不管是勝是敗,我們有了進步,這是最重要的,我們在人生競賽中要有更佳的表現。

*致富思源,富而思進,中國要告別貧窮的歷史,亦要迎向一個均富的未來,即富者造均富之道。

*從每日生活所做所為感受改革。

*學而後知,不學而不知,不知以為知,即天下大亂之主因也。

*人生在世,有始有終,貧寒富貴,悲喜哀樂,猶如苦海,波浪層層相接,情長辭短,難以陳述。

*人生活一日,便盡一日本分,一旦死去則氣散,歸天地,亦無遺憾。所謂善我生,善我死,春蠶到死絲方盡,非到燈黃油乾,不應止也。

*富助貧,強讓弱,地球村願景,終能成。

*大家都想幫助別人,但不知如何做,要有工作經驗體會,才能達成。*勤勞樸實,貢獻社會,追根究柢,止於至善,要能體會勤勞樸實,就要做有用的事,做有意義的事,就能啟發。

vista的休眠功能開啟

最近覺得xp的休眠功能超棒的~
開機之後,不用等很久,馬上可以執行動作~

耶,但是在vista怎麼一直打不開哩?
研究了一下,原來我在清硬碟的時候,把休眠的檔案刪掉了~

打了一下的指令就可以使用休眠的功能了~
不過,記得要去電源管理設定休眠喔~

1.開始->程式集->附屬應用程式->命令提示字元
2.鍵入->Powercfg/hibernate on

powercfg /a

喔耶~

順便介紹一下相關的知識吧~

Windows XP中,電腦關機跟待機狀態可分為「關機」、「待命」與「休眠」三種:

關機:完整關機,完全關閉電腦電源,開(關)機速最慢。

待命:將目前狀態儲存至記憶體中,開(關)機速度最快,但主機板與記憶體需持續供電。

休眠:將目前狀態儲存至硬碟中,開(關)機速度較慢,主機板、記憶體與硬體週邊不用供電。

Windows Vista中,有「休眠」、「睡眠」跟「交互式睡眠」三種模式:

睡眠:跟XP中的「待命」類似,將目前狀態儲存至記憶體中,開(關)機速度最快,但主機板與記憶體需持續供電。

休眠:跟XP中的「休眠」一樣,將目前狀態儲存至硬碟中,開(關)機速度較慢,主機板、記憶體與硬體週邊不用供電。

交互式睡眠:又稱「混合式睡眠」,此功能混合睡眠+休眠的功能,先將目前狀態儲存於記憶體中,再將相關資訊也儲存一份到硬碟中,避免因為睡眠期間電腦不正常斷電而使得資料遺失。

參考資料:
VAIO TZ 為何沒有休眠模式?怪了~
NB的休眠和睡眠有什麼差別????

2008年11月4日 星期二

在linux下錄影畫面

寫了一個程式,本來打算用圖片照起來,
但是,圖片不會有滑鼠,
所以,打算用錄的,
找到一個好像不錯的linux下的錄影軟體XVidCap,
但是一直出現錯誤~說什麼套件相依錯誤~
沒有辦法,只好先用vmware的錄影功能,
XVidCap以後有空再處理~

因為下載deb檔沒有辦法直接安裝,所以,必需要下載程式碼重新編譯~
下載程式碼之後,要先透過configure看系統是否滿足編譯的環境…

[user@host ~]$ ./configure

會出現以下缺少的元件:
No package 'gtk+-2.0' found
No package 'libglade-2.0' found

透過ubuntu下載套件,若不是ubuntu的話,redhat不知道能不能用yum下載套件

[user@host ~]$ sudo apt-get install libgtk2.0-dev
[user@host ~]$ sudo apt-get install build-essential
[user@host ~]$ sudo apt-get install libglib2.0-dev
[user@host ~]$ sudo apt-get install libglade2-dev


重新打configure會產生Makefile檔案

[user@host ~]$ ./configure


打make install 直接執行安裝

[user@host ~]$ sudo make install


參考資料:
推薦一款屏幕錄製軟件──xvidcap!
教學錄製 Xvidcap
Linux 下的桌面操作錄影軟體 - XvidCap
Xvidcap 1.1.7發佈
7-11 用XVidCap來桌面錄影