2010/11/16

程式設計師的格言

原文:http://www2.biglobe.ne.jp/~oni_page/other/etc/pr03.html

翻譯:http://buttaiwan.wordpress.com/2008/10/12/programmers_rule/

1
每天有24小時。
所謂的「今天之內」,是指到明天早上為止。

2
程式不會照自己所想的跑。只會照所寫的跑。

3
需求規格在程式寫完後才會敲定。
基本規格要客戶看到成品後才會決定。
詳細規格要使用者用過後才會確定。

4
我對軟體設計的方式導出的結論,有兩種方式。
一是把軟體設計得單純到很明顯不會有缺陷,
不然就是把軟體設計得複雜到沒有明顯的缺陷。
- C.A.R.Hoare

5
程式碼不要在開發現場寫! 去客戶那寫!
除錯不要在期限前做! 上線後再做!

6
畫面藍了。

7
先說「沒辦法」的人贏。

8
有意見的話你寫

9
要殺一個程式設計師不需要刀,改三次規格就好

10
首先要先懷疑別人,被懷疑的人或許會把問題解決掉。
(註:通常會「先懷疑自己」)

11
開發沒有終點。只有釋出(release)。

12
無論規格多晚才能確定,結案期限永遠不會變。
這是所謂的「期限守恆定理」。

13
客戶總是覺得水跟追加需求是不用錢的。

14
付錢愈計較的客人愈囉唆。

15
在排定開發行程時,總是視而不見一些連小學生都會的算數。
業務部門總是一堆不知道1+1=2的人。

16
一個人掛了大家都掛了。

17
bug過了一晚可能就變成規格了。

18
好的規格找一個天才不如找三個凡人。
爛的規格找一百個凡人不如找一個天才。

19
客製軟體中30%的價格用在確認規格上。
30%用在修改規格上。
30%用在找bug。
結果初期規格反映在價格上占的比例只有10%。

20
對客戶來說SE是部下,程式設計師是家畜。
對SE來說客人是錢,對程式設計師來說顧客是看不見的病毒。
除了弄完程式以外,沒有其他驅除的辦法。

21
顧客想受SE喜歡,要自己了解到系統開發需要時間與金錢,早點確定規格。
SE想受顧客喜歡,則要讓程式設計師討厭自己。

22
很多SE跟程式設計師都暗自想著有錢有閒的話什麼系統都想自己動手做,
不過都沒這種機會。

23
品質的劣化程度依規格改變的次數與規模而定。

24
業務是認為空想能夠實現的夢想家。
SE則是深信任何障礙都能突破的冒險家。
程式設計師則是被夢想家和冒險家拋到漆黑海裡的漂流者。

25
有才能的程式設計師第一次看到設計細節時,要先理解程式的目的。
接下來要設法讓SE了解到以指定的方法、工時並無法完成這個工作。

26
程式是運氣與直覺堆砌而成的奇蹟。
若不具備這兩者,不可能以這樣的工時實現這樣的規格。
修改規格是對奇蹟吐槽的褻瀆行為。
而追加修改則是相信奇蹟還會重現的無謀行動。

27
程式設計師聽了「把自己當作顧客去著想!」而開始思考。
啊,像夢一樣。

28
對於因為興趣而寫程式的人來說,所謂的技術是程式語言能力。
對於因為工作而寫程式的人來說,所謂的技術是邏輯思考能力與人際溝通能力。
程式語言可以看著手冊溝通,客戶不行。

29
程式系統在交貨之前會不斷縮小。
先用元件定義取悅老闆。
再拿經費概算要部長妥協現實的方案。
在運用會議中,課長會嘗識減少自己責任範圍。
在細節會議中,負責人會把範圍縮到自己記得的部分。

30
SE需要持久力,程式設計師需要爆發力。

31
準時離開公司,工作會變多。

32
完美的程式需要完美的時間與金錢。
聽說揮霍著美國的國家預算的NASA,也覺得時間跟錢不夠。

33
詳細設計要在程式碼的註解裡做完。
註解是唯一的自衛手段,至少要讓自己看懂。

34
還有時間看程式碼的話就執行他。
CPU跑得比腦細胞快。至少這時候可以休息。

35
程式的異常該稱為「bug」還是「規格上的限制」是看期限還剩多久決定的。

36
所謂便服日,好像社會上把他叫做假日
(註) 日本有些公司會有所謂便服日(不用穿西裝的日子),通常是星期五,但…

37
地獄持續一段時間後,充滿殺氣的怒吼會變多。
再持續一段時間,說話會變少但牢騷會變多,壟罩在凝重的氣氛裡。
再持續下去,反而會海闊天空,四周洋溢充滿活力的聲音。
這種狀態稱為「Programmer’s High」,也是倒下來的人開始出現的時候。

38
遠處的火災一定燒到這裡。

39
禱告,然後跑吧。

40
程式不是用腦記的,要用身體記住。

41
明天能放假的話死了也罷。

42
外面有下雨耶,昨天開始下的嗎?

43
若不能心靜不移,身體會掛。
若不讓自己殘忍,自己會被殺。

44
客戶會說謊,業務會作夢,SE會做白日夢。
程式設計師則惦惦。(愈來愈自言自語)

45
(日文文字遊戲)
SE總是不負責的說「別逞強」,
業務總是無理取鬧不准說「沒辦法」。

46
規格書就像航海圖,客戶則是洋流。洋流陰晴不定,航海圖就變垃圾。
程式設計師必須在沒有航海圖的海上憑自己的力量找到大陸。

47
再嘮嘮叨叨下去也是要付錢的。

48
多想個10秒鐘,你可以不說「嗯,這個做得到」。

49
人是無法從別人失敗記取教訓的動物。
砍成本、改規格、加需求、趕上線,從來沒有人從眾多失敗中記取教訓。

50
老手用來提振精神的魔法格言:
「不過比起以前來說算是…」
新人用來提起幹勁的魔法格言:
「把這件工作做完的話…」他們還不知道工作是沒有終點的。

51
所謂交案期限,是指開發現場從公司換到客戶那裡的日子。

52
程式、SE、經理不是職務。是逃不掉的責任。

53
業務是最難搞的客戶。

54
能夠迅速想到解法的程式設計師太多了。
他們能用一分鐘想到方法,用一天去寫程式。
不需要花一小時想到解法,再用一小時去寫程式。
- Jon Bentley

55
漂亮的規格,可以從沒有bug出現看出來。
明明爛的就是設計,為什麼是這樣…

56
上線後的除錯才叫做bug。

57
追加需求確定後交貨期限就無法確定,
交貨期限確定後追加需求就無法確定。
這稱為「追加需求與交貨期限的測不準原理」。

58
除三個錯就會冒出一個錯。
這稱為bug的無窮迴圈。

59
不祥的預感總會實現。
不過程式設計師不會去煩惱不祥的預感,那是SE的工作。

60
要解決地獄的辦法,就是客戶把錢交出來。

61
不懂電腦的操作者是發現bug的天才。而且無法重現。

62
每次開會就更改規格的客戶,
他的操作手冊要等到操作寫好的程式後才能寫出來。

63
搞不懂的時候,Currency(長整數)比Interger(整數)好用。
Variant(字串、數字都能存的萬能變數)又比Currency(長整數)好用。
安全第一。
(VB程式設計師如是說)

64
啊,那是微軟的規格。

65
程式設計師所不滿的規格也一定會讓客戶不滿。
(這是說程式設計師覺得難寫的地方常常是SE溝通有落差)

66
程式設計師需要的技能,
包括交涉、時程管理、業務分析、提案、設計、程式語言、架構、維護、使用。
SE需要的技能則減掉程式語言、架構、維護與使用。
專案經理需要的能力則再減掉業務分析、提案與設計。
業務需要的能力再扣掉時程管理。

67
正因為健康,才能做不健康的事。

68
規、規格、是規格啦。不過有一點跟規格不太一樣啦。

69
那是你說的規格。

70
開發室沒有窗戶,那是因為以前…

71
爛了也是因為規格。

72
SE: 真沒辦法。
PG: 也沒註解。
(碰到不知道是誰寫的程式,大家都束手無策的狀態)

73
為什麼你不能兩三下解決掉他啦。
因為之前兩三下搞定的東西也被你兩三下就否定了。

74
不會動的bug就只是普通的bug。(會動的bug則能視為規格)

75
今天好好清理bug,bug應該死光了吧。
咦?Windows也死了唷。

76
客戶不會去想最壞的情況。要他面對最壞的情況,他會認為是漫天開價。
SE則會顧慮最壞的情況,準備應付最壞的情況。
程式設計師比誰都早預料到最壞的情況,而無視最壞的情況。

77
唯一不產生bug的方法,就是不寫程式。
第二好的方法,就是在時程跟人員確定之後的每次改規格,都重新檢視過整個專案。

78
共同責任是程式設計師的責任。
管理職?那是啥?好吃嗎?我沒吃過耶。

79
如果可以改行的話,想找個準時下班不叫「逃跑」的工作。

80
對職業程式設計師來說,漂亮的程式是單純而自然的邏輯、簡單而基本的指令、豐富的註解,
也就是新手程式設計師也能馬上動手改的程式。
而要寫租這樣的程式,需要單純、簡單、美麗的規格。
但可惜客人總是喜歡搞很複雜。

81
設計者應該是不該要求製作者製作出超過設計以上內容的吧…

82
無論是做的比規格書裡的多,還是只照規格書裡的寫,SE都會找程式設計師的碴。
所以程式設計師只做規格書裡的寫的內容。

83
SE對程式設計師說的「常識」每三小時變一次。

84
自己看規格書。不能跑的是規格。

85
「沒辦法」是要看把一天當多少小時來算。
一天常常指的是3人日,一個月常常是指4.5人月喔。

86
工時要減掉一半的單體測試與一半的系統測試,
而交貨期則要另外加上上線後的兩個月。

87
能拿到錢的規格變更稱為「受理項目」,
拿不到錢的規格變更則稱為「SE的規格確認失誤」。
程式設計師是這麼看的。

88
累了。我想睡了。可以回家嗎。
(累了吧,我也累了。好累喔怎麼了。反正就是規格啦,管他的)

89
試圖降低成本的話,為了配合預算,品質會下降,不過漫天開價做出來的品質也不見得好到哪裡去。

90
REDO到底該怎麼唸一直搞不懂。是利斗嗎、李度嗎、R E D O嗎,難道是 red 零 嗎? 拜託加上注音吧。
(譯註:我比較煩惱 Linux)

91
有人在程式碼註解裡寫日記。像「今天是雨天…」,「想回家…」之類的。甚至還有「修改日: 2003/10/10 不能同意你更多」這種註解出現。說到這個,好像也看過「吃大便」這樣的註解。

92
小學生時第一次看到電腦
國中時第一次學會怎麼用
高中與大學學會程式語言
出社會後才發現自己走錯路

93
「不要讓老闆當業務比較好」

94
說來說去,要去研究根本不知道為什麼會動的東西為什麼不會動了,找拿破崙來也沒搞頭。

————————

ex 1
就算程式裡沒bug,編譯器會有bug。
就算編譯器沒bug,OS會有bug。
就算一切都沒bug,客戶會決定什麼是bug。

ex 2
規格與規格書是不同的東西。

ex 3
比期限更重要的是靈感與睡眠。

ex 4
比知識與經驗重要的是手冊與時間。

ex 5
能動就好了,能動的話…

ex 6
過了三天就是別人寫的程式碼。

ex 7 (大搜查線系列)
規格變動不是在會議室裡發生的!是在現場發生的!

ex 8 (大搜查線系列)
異常不是在模擬測試時發生的!是上線後才會發生的!

ex 9
漂亮的設計三天或許就膩了
骯髒的設計三天就習慣了

ex 10
bug與規格是一體兩面

ex 11
電腦裡沒有bug,bug常在人心。

ex 12
無論怎麼檢查,不管怎麼確認,上線前一晚就是睡不著。(RFC968)

ex 13
估價需要1%的經驗與99%的直覺

ex 14
沒有什麼事情比直接讓找不到任何bug的程式直接上線還要可怕的了。

ex 15
・『程式設計師』=能將SE條理不通的說明翻譯成程式碼的高手
・『SE』=與客戶討論改寫規格書、與程式設計師討論後再改寫規格書,程式出貨後還要繼續改寫規格書的人
・『PM』=每天修改自己定下的行程表的人
・『業界老鳥』=臉色蒼白缺乏表情的人
・『外包』=幫不會寫程式的正職員工寫程式的人
・『coding』=複製貼上的工作
・『單體測試』=指開始寫程式
・『除錯』=把程式碼註解掉的工作
・『新同事』=在火燒屁股的專案火上加油的人
・『出貨日』=把只完成一半的系統上線的日子
・『末班電車』=業界平均的下班時間
・『颱風假』=一年一度可以準時下班的業界假日

ex 16
當誰寫的程式碼跑出bug時,那個人大概都不在了(墨菲定理?)

ex 17
最終手段
「重開機」
意外的常常都很有效

ex 18
最強藉口
以前「那是硬體的極限」
現在「那是Windows的規格」

ex 19
「程式碼的可信度,不會比寫的人還可信。」

2010/10/28

[C++] Forward Declaration for Circular Dependency Problem

0. Keywords

Cyclic Dependency, Circular Dependency, Cross Dependency, Forward Declaration.

1. Cyclic Dependency (Circular Dependency, Cross Dependency) Problem

Two classes depending on each other would cause Cyclic Dependency (Circular Dependency, Cross Dependency). For example, class A (in A.h) is associated with class B in (B.h) and vice versa.

main.cpp

#include "A.h"
#include "B.h"

int main() {return 0;}

 

A.h

#ifndef _A_H_
#define _A_H_

#include "B.h"

class A{
    B* b; // A depends on B
};

#endif

 

B.h

#ifndef _B_H_
#define _B_H_

#include "A.h"

class B{
    A* a;  // B depends on A

};

#endif

Let's see what would happen by tracing the code at main.cpp. 

At frist, the statement #include "A.h" is placed. Preprocessor go to A.h, finding out that _A_H_ is not yet defined (#ifndef _A_H_), so preprocessor define _A_H_ (#define _A_H_ ). After that, it encounter #include "B.h".

Then preprocessor go to B.h, finding out that _B_H_ is not yet defined (#ifndef _B_H_), so preprocessor define _B_H_ (#define _B_H_ ). After that, it encounter #include "A.h". However, A.h will not be included in B.h again because _A_H_ is already defined now.

Note that class B have no idea about A. Therefore, in the the declararion of class B in B.H, declararing A* a; will cause error since A is not a class, a struct, or a primitive type in the view of class B. The error message would be something like:

error C4430: miss type - C++ does not support default-int.

 

2. solution

The Circular Dependency Problem can be solved by Forward Declaration of class A such that class B would know A is a class.

B.h

#ifndef _B_H_
#define _B_H_

#include "A.h"

class A;

class B{
    A* a;
};

#endif

 

3. Incomplete Type Problem for Forward Declaration

Before a type's  definition is seen, this type is called incomplete type. The statement

class A; in B.h in the code above tells that A is a class without  definition. In this case, A is an incomplete type.

It is not possible use an incomplete type to define a variable or class member. An incomplete type may be used to define only pointers or references to the type or to declare (but not define) functions that use the type as a paremeter or return type.[1]

In the following code, we observe that the statement a->doSomething(); in B.h causes a error because class B knows A is a class only and the definition of doSomething(); of class A has not yet been seen.

Moreover, after we delete a->doSomething(); in B.h, no error messages would show. But why b->doSomething(); in A.h works fine? It because the class A know everything about class B, including the definition of B. The class B is a complete type in the view of class A.

main.cpp

#include "A.h"
#include "B.h"

int main() {return 0;}

A.h

#ifndef _A_H_
#define _A_H_

#include "B.h"

class B;

class A{
public:   
    B* b; 
    void doSomething(){}
    A(){
        b->doSomething(); // ok
    }

};

#endif

B.h

#ifndef _B_H_
#define _B_H_

#include "A.h"

class A;

class B{
public:
    A* a;
    void doSomething(){}
    B(){
        a->doSomething(); // error
    }
};

#endif

Similarly, we know the fact that an incomplete type can not define a variable or class member. Thus ,the following code causes a error when defining an incomplete class member (The statement A a; in class B)

A.h

#ifndef _A_H_
#define _A_H_

#include "B.h"

class B;

class A{ 
    B b; // ok
};

#endif

B.h

#ifndef _B_H_
#define _B_H_

#include "A.h"

class A;

class B{
    A a; // error
};

#endif

Reference

[1] By Stanley B. Lippman, Josée Lajoie, Barbara E. Moo, "C++ Primer, Fourth Edition", Publisher: Addison Wesley Professional, Pub Date: February 14, 2005, ISBN: 0-201-72148-1.

[2] Forward declaration From Wikipedia.

[3] Circular dependency From Wikipedia.

More posts regarding [C++]:

  1. implicit constructor
  2. 使用Pointer to pointer或Reference to pointer,改變pointer的address
  3. Dynamic Memory Allocation in C and C++
  4. [C++] Call by value、Call by pointer、Call by reference
  5. (C++)virtual與pure virtual

2010/10/10

「雲端防毒軟體Cloud Antivirus」 - Panda Security

0. 摘要 Abstract

本文將介紹雲端運算Cloud Computing概念以及雲端防毒Cloud Antivirus的優點,並且介紹相關雲端防毒軟體。

關鍵字:雲端運算雲端計算雲端防毒雲端運算技術漫步在雲端雲端計算雲端運算概念、雲端技術雲端運算wiki雲端服務三義漫步雲端雲端運算應用

1. 雲端運算 Cloud Computing

雲端運算,是一種基於互聯網的計算新方式,通過互聯網的服務為個人和企業用戶提供按需即取的計算。由於資源是在互聯網上,而在電腦流程圖中,網際網路常以一個雲狀圖案來表示,因此可以形象地類比為雲端。 雲端運算的資源是動態易擴展而且虛擬化的,通過互聯網提供。終端用戶不需要了解「雲」中基礎設施的細節,不必具有相應的專業知識,也無需直接進行控制。(以上:wiki)

Cloud_computing

雲端上的伺服器為提供使用者各式各樣的服務(圖:wiki)

2. 雲端防毒 Cloud Antivirus

看完以上wiki介紹的「雲端運算」概念後,接下來版主將介紹「雲端防毒」概念以及相關產品。

至於所謂的「雲端防毒」就是透過雲端上的伺服器來幫你做掃毒、偵測、保護的功能。使用者不必再更新病毒碼,因為所有的防毒工作伺服器都幫你做好了。這樣的好處有:

1. 零時差的保護:在傳統的防毒程式中,病毒碼發布的時間往往相當的慢,從發現疑似的病毒,確認病毒,到發佈更新病毒碼至少也要1小時。但是這時候你的電腦可能已經被感染了。使用「雲端防毒」技術可以讓遠端伺服器集群體智慧幫你掃描任一個檔案,你得到的服務永遠的是最新的,分秒不差。你再也不必為了更新病毒碼跟時間賽跑。

2. 減少使用者運算量:由於「雲端防毒」將病毒偵測的計算過程移到遠端大量且快速的伺服器,使用者電腦不必再佔用處理器與記憶體資源做這些沒有工作產值的事情,你的電腦可以專心為你處理更重要的事情。

總結來說:「雲端防毒」提供了以秒計算的即時防護,並且提供集群體力量的厚實保護。

目前支援「雲端防毒」的防毒軟體有:賽門鐵克Symantec的諾頓Norton 2010、趨勢科技的PC-cillin 2011、貓熊Panda Security。

2010/10/09

退伍倒數計時器、役期倒數計時器(程式版/免上網)

Tags:退伍日期計時器,退伍日期計時器,退伍倒數計時器,退伍日期倒數計時器,退伍倒數計時,倒數計時器,當兵倒數計時器,倒數計時器下載,倒數計時器語法,桌面倒數計時器,倒數計時器軟體,msn倒數計時器,役期倒數計時器,國軍倒數計時器,海軍倒數計時器,空軍倒數計時器,陸軍倒數計時器,海陸倒數計時器,替代役倒數計時器

當兵是很多人的共同經驗,雖然現在役期大幅減少,但是退伍的日期還是感覺遙遙無期,借由退伍日期倒數計時器的幫助,可以讓你精確掌握目前的進度。你只要在退伍日期倒數計時器的程式畫面上選擇好入伍日期、役期、和折抵天數即可顯示退伍日期、入伍天數、離退伍天數、已經過了幾%等資訊。

其中,入伍日期只要選擇一次即可,退伍日期倒數計時器就會記錄下這天,以方便您下次開啟退伍日期倒數計時器後,自動讀取。

本程式為免費軟體,歡迎你自由使用與推廣。有任何建議,盡請不吝指教。

退伍倒數計時器(Military Online Counter)

退伍倒數計時器 - 程式畫面

軟體性質: 免費軟體
更新日期: 2010/10/09
最近版本: 1.0
作業系統: Windows
語言界面: 中文
原創作者: 藏經閣 http://csie-tw.blogspot.com
產品頁面: http://csie-tw.blogspot.com/2010/10/military-online-counter.html
下載點1 (訊6空間,169 KB)
下載點2 (Google空間,169 KB)


PS:使用本程式必須先安裝.NET Framework,請按此觀看更多資訊。

退伍倒數計時器(Military Online Counter)
2Ting Anonymous Mail (匿名寄信)
2Ting Screen Capture(螢幕擷取)
2Ting MouseClick 2.0(滑鼠連點程式)
2Ting 身分證字號製造機
韓國身分證字號產生器

何謂博士? (The illustrated guide to a Ph.D.)

Imagine a circle that contains all of human knowledge:

想向一下圓圈裡面包含人類已知的所有知識:

   csie-tw.blogspot.com

By the time you finish elementary school, you know a little:

當你小學畢業時,你懂了一些些:

 csie-tw.blogspot.com (1)

By the time you finish high school, you know a bit more:

當你中學畢業時,你懂更多了:

csie-tw.blogspot.com (2)

With a bachelor's degree, you gain a specialty:

當你大學畢業,你得到某個方面的專業知識:

csie-tw.blogspot.com (3)

A master's degree deepens that specialty:

當你碩士畢業,你更增強了這方面的知識:

csie-tw.blogspot.com (4)

Reading research papers takes you to the edge of human knowledge:

接著,你就由閱讀大量研究論文,使你這方面的專業已經達到人類知識的極限。

csie-tw.blogspot.com (5)

Once you're at the boundary, you focus:

你持續專注在這邊界上:

csie-tw.blogspot.com (6)

You push at the boundary for a few years:

你花了好幾年的功夫持續專研:

csie-tw.blogspot.com (7)

Until one day, the boundary gives way:

直到有一天...你突破了人類知識的極限:

csie-tw.blogspot.com (8)

And, that dent you've made is called a Ph.D.:

所謂的博士就是製造這凸痕的人:

csie-tw.blogspot.com (9)

Of course, the world looks different to you now:

當然,這世界對你來說,有了新的面貌:

csie-tw.blogspot.com (10)

So, don't forget the bigger picture:

但不要忘記原本的那張圖:csie-tw.blogspot.com (11)

Keep pushing.

持續往前邁進吧!

Why genetics research? 為何要做基因研究?

If you zoom in on the boundary of human knowledge in the direction of genetics, there's something just outside humanity's reach:

如果你放大剛剛那個圖,你可以看到圓圈的外面,出現人類知識上的新里程碑:

csie-tw.blogspot.com (12)

My wife and I chose to start funding these graduate students after we learned that our son has a rare, fatal genetic disorder.

在我跟我太太發現我們的兒子得了罕見且致命的遺傳疾病時,我們開始成立基金會,用來資助研究生做研究。

It may be too late for my son, but it's not too late for other children.

或許,對我兒子來說,為時已晚,但是對其他孩子來說,卻不太晚。

Even one child suffering is one child too many. The only way to end this kind of suffering is science.

有太多小孩承受這種痛苦,唯一的解決辦法就是科學。

And, the best way to do science is through graduate students.

研究生就是做科學研究最佳人選。

原文作者:Matt Might

原文文章:http://matt.might.net/articles/phd-school-in-pictures/

譯者:csie-tw

翻譯文章:http://csie-tw.blogspot.com/2009/10/bloggerrandom-post.html

This work is licensed under the Creative Commons Attribution-NonCommercial 2.5 License.  That means you can share, copy, modify and reproduce this work as long as you attribute the original work to me and link back to it as outlined above.

本文使用姓名標示-非商業性 2.5授權。也就是,只要你明確標示本文來源、並且使用反向連結至原文,你可以分享、複製、修改、重製本文。

 

csie-tw 牛津大學博士生畢業服

2010/09/18

The SEO of Blogger Title tag

The importance of <title> tag

The default setting of blogger for <title> HTML tag would be something like

Blogger name: Article name

However, with this kind of setting, it have lower probability for search engines to show your page at the top of the result list because what really matters is the article name instead of blogger name.

Therefore, I would like to show my page with <title> HTML tag in the following format:

Article name - Blogger name

In this case, the search engines would know the Article name is superior to Blogger name in the <title>, resulting in the PageRank of this page may have a higher value.

How to do?

1. Go to the page Design -> Edit HTML. Find the code like:

<title><data:blog.pageTitle/></title>

csie-tw.blogspot.com

2. Replace the code found in the step 1 by

<b:if cond='data:blog.pageType == "index"'>
<title><data:blog.title/></title>
<b:else/>
<title><data:blog.pageName/> - <data:blog.title/></title>
</b:if>

or replace code by the following, if you just want to show the Article name without Blogger name.

<b:if cond='data:blog.pageType == "index"'>
<title><data:blog.title/></title>
<b:else/>
<title><data:blog.pageName/></title>
</b:if>

2010/09/08

下載FlashGet 1.94

FG

原創作者:FlashGet.Inc
軟體性質:免費軟體
語言介面:繁體中文
使用限制:非商業使用

快車(FlashGet)是互聯網上最流行,使用人數最多的一款下載軟體。採用多伺服器超線程技術、全面支援多種協議,具有優秀的檔管理功能。

FlashGet 支持 HTTP 、 FTP 、 BT 、 MMSRTSP 等多種協定,協定之間無縫相容,下載切換無需手工操作。 FlashGet One Touch 技術優化BT下載,獲取種子資訊後自動下載目標檔,無須二次操作。全方位支持BT種子製作發佈。

新版的FlashGet 3.5介面變複雜了,且多了很多廣告,還是FlashGet 1.94比較好用。

下載點1 (訊6空間,4.24 MB)

Buddhism and Software Developer

In today's fast-paced society, we are often surrounded by work, goals, and external pressures. However, the wisdom found in Buddhism off...