2011年4月30日 星期六

g++编译命令选项(转)

g++编译命令选项(转)
http://www.cnblogs.com/welkinwalker/archive/2010/03/10/1682193.html

程式設計之道 冼鏡光

程式設計之道 冼鏡光
http://blog.blueshop.com.tw/yowcheng/archive/2004/12/24/1114.aspx

C++: virtual function

C++: virtual function
http://blog.yam.com/swwuyam/article/12114648

C++中的虛函數(virtual function)
http://www.programfan.com/article/2782.html

基類聲明的虛函數,在派生類中也是虛函數,即使不再使用virtual關鍵字。

一個函數聲明為純虛後,純虛函數的意思是:我是一個抽象類!不要把我實例化!

析構=解構

當一個類打算被用作其它類的基類時,它的析構函數必須是虛的。

純虛的析構函數並沒有什麼作用,是虛的就夠了。通常只有在希望將一個類變成抽象類(不能實例化的類),而這個類又沒有合適的函數可以被純虛化的時候,可以使用純虛的析構函數來達到目的。

2.4 虛構造函數?
    構造函數不能是虛的。

3. 虛函數使用技巧 3.1 private的虛函數
    考慮下面的例子:

class A
{
public:
    void foo() { bar();}
private:
    virtual void bar() { ...}
};

class B: public A
{
private:
    virtual void bar() { ...}
};

    在這個例子中,雖然bar()在A類中是private的,但是仍然可以出現在派生類中,並仍然可以與public或者protected的虛函數一樣產生多態的效果。並不會因為它是private的,就發生A::foo()不能訪問B::bar()的情況,也不會發生B::bar()對 A::bar()的override不起作用的情況。

    這種寫法的語意是:A告訴B,你最好override我的bar()函數,但是你不要管它如何使用,也不要自己調用這個函數。


3.2 構造函數和析構函數中的虛函數調用
    一個類的虛函數在它自己的構造函數和析構函數中被調用的時候,它們就變成普通函數了,不「虛」了。也就是說不能在構造函數和析構函數中讓自己「多態」。
Why?

2011年4月29日 星期五

不要再酸教師了

不要再酸教師了

作者: gigipan () 看板: Teacher
─────────────────────────────────────

看到這個消息,我有很深的矛盾。

本人在民營企業上班,老婆為國小教師,目前擔任六年級導師,懷胎7月。

關於教師固定工時這個議題,如果真能落實,如果真能如各位所說,放學不用管事,
那我舉雙手雙腳贊成。

從前,我很看不起老師,尤其是國小教師,總覺得他們日子過的很爽,有寒暑假,又不用
像一般職場得戰戰兢兢一直進修,深怕一不小心就被淘汰,感覺似乎從師院畢業以後就可
以靠著一招半式走江湖直到退休,而且,印象中的國小教師都有一種氣息,那種氣息是一
看穿著、一談話,就可大概猜出來,不是老師就是公務人員的那種氣息,我很不喜歡。

也許是報應,後來我竟與國小教師陷入愛河並步入婚姻。(不過也是因為當年我在她身上
感覺不到我印象中的那種老師的氣息)

結婚以後的生活,才發現原來老師真的很不容易,要我這樣子做我是作不到的,於是開始
對於這個職業產生越來越多的敬意。

怎麼說呢,內人在家的時間,有很大一部份是在講電話,家長不會管妳是不是吃飯了沒、
是不是在忙、想到就打來,平常不關心小孩子,三不五時就打電話來問小孩子最近怎樣,
連夫妻吵架、心情不好,也打電話來找老師訴苦、借錢、推銷、還有憂鬱症的母親打來尋
求慰藉,丈夫外遇也打來哭等等,當然,發生令人難過的事情總是要有同理心,但是如果
沒有好好「按耐」這些家長,又擔心被罵說不負責任,我每天在家就是看著自己的老婆一
直拿著話筒,一下子應付家長,一下子跟輔導老師討論問題學生,連假日都不得閒。

最近她們班上有個小女生變壞了,都跟國高中生混在一起,逃家、或是半夜才回家,交了
年紀比她大很多歲的男友,而單親的媽媽根本不敢管她,重點是,這個小女孩很聰明,功
課不錯,在學校表現完全正常,功課都有準時寫,考試也考很好,從不違規、很低調。
她晚上不回家,媽媽也沒跟老師講,直到她的一個好朋友(別班的)逃家,事情牽扯到她
,這個小女生的行為才被爆出來。

結果我老婆事前完全不知道,她放學晚上的脫序行為有多嚴重,各位猜怎麼著?學校假藉
開會之名義(什麼碗糕委員會的,我老婆只是普通老師非行政也不是幹部,平常不參加)
,前一天去問去開什麼會、要討論什麼事情,學校居然還不告訴她,結果當天一進去,
輔導老師就把她們班這個小女生的事情拿出來討論,說很嚴重什麼什麼的,怎麼老師都

搞的每天壓力很大,我不知道該不該怪誰,只能說,這是一種氛圍,就是小孩子放學後的
事情也是老師的責任,家長不管,老師就應該管?小孩子在家行為脫序,家長管不了,也
不跟老師說,結果老師還要被校長、被家長指指點點,還有自己的同事也缺乏同理心,有
些資深同事總覺得如果換作是她,她們班上不會發生這種事。

這個案例是單親,媽媽害怕失去這個唯一的女兒,所以予取予求,造成小孩子天不怕地
不怕,我跟我老婆說,不要再管了,這種家長不管的,絕對沒救。

老婆說,這女孩子很聰明,放棄他真可惜,想再拉拉看。

我們住的地方離學區有30公里遠,為了讓小朋友感覺老師是很關心她的,假日一早我們
就開車到她家訪視,順便了解她的家庭與附近環境,去告訴她,老師來看她,叫他不要
跟國中生出去到那麼晚、媽媽把妳養這麼大,不要讓無照又不戴安全帽的男生載妳,萬一
發生車禍怎麼辦、喜歡交朋友可以多跟班上同學來往不一定要跟那些無所事事的人在一起
。。。

隔一週,打聽到當地那群不良少年都在夜市旁的電動間做為據點鬼混,下班開30公里回家
,沒休息多久又出發,再跑30公里跑去當地的夜市,只為了解她到底跟哪些人在一起,
還有在那邊都在混什麼,一開始躲的遠遠的偷偷觀察,後來我留在入口裝路人,老婆挺
著7月大肚子隻身進去那種充滿煙味跟不良少年聚集的地方,假裝逛夜市剛好遇到,找到
那個小女孩請她早點回家。

我很感慨,為什麼自己的私生活還是脫離不了這些小鬼頭,雖然老婆很有責任心,但我想
最根本的原因還是這整個社會的觀感,常常家長不管的,就被怪罪老師也不關心,當然能
拉一個是一個,但是這需要老師跟家長的配合,從跟內人認識幾年來,我陪著她用假日去
處理學生的事情很多次,但這種家長完全不管的,我真的覺得,就算了吧,只有無力。

不好意思講古講太長,回到文初的矛盾,就是我真的很希望,如果可以就規定清楚並且宣
導整個社會周知,就老師下班了還處理你家孩子的事情是佛心來的,並非欠你的。但相對
地,也許老師晚上跟假日就多了更多空閒時間,而真正需要幫助的小孩子,就少了一些關
心或實質幫忙,到底怎樣比較好,其實也不知道,但很肯定的是,身為教師本人跟教師的
另一半,對於這個看法的分歧,就是會矛盾。

附帶一提,內人懷孕7月,預產期剛好跟暑假重疊,原本她以為放暑假時剛好坐月子,至
少可以上到畢業以後,不會有空窗期,可以帶到畢業,比較放心。但現在身體狀況不是很
穩定,看她走路跟站立都有點吃力,很害怕早產。
我希望她提前請產假,依法應該是5月初就可以請了,結果,學校一聽到她想請假的消息
,校長跑來跟她暗示,希望可以安安穩穩地帶完這兩個月,直到小孩畢業,人事一問三
不知、再加上她自己又擔心,家長們會不會怪罪這個老師怎麼這麼沒有責任感(畢竟也是
很多人撐到9個月還在上班)。

我知道我跟這些小朋友沒有感情,所以可以說請假就請假,但是內人放心不下的心情我了
解,不論是她自己本身的責任心,或是因為整個社會的氛圍加諸在老師身上的壓力,讓她
有此顧慮,我都可以體會。

但是我自己的老婆跟小孩呢?萬一母女有什麼狀況,誰替她們想?
妳放棄自己應該放的假去照顧這些小朋友,那些家長會感謝妳,還是認為那都應該的?


我真的希望,要嘛就真的落實這種理想,固定工時,超過算加班,或是不要管。

不然的話,請這個社會多給下班時間還在處理小朋友事務的國小老師一點尊敬,無論是家
長或是校長、媒體、或其他不相干人等。


--
※ 發信站: 批踢踢實業坊(ptt.cc)

亡台從五年五百億開始

亡台從五年五百億開始
http://mhperng.blogspot.com/2011/04/blog-post_28.html

Nerd Sniping

http://xkcd.com/356/



翻譯如下:

那裏有一顆容易使之腦殘的大腦。
如果你向它展示有趣的題目,它會不由自主的中斷任何事去做題目。

這件事實使我發明一種新的運動: 狙擊笨蛋。
看到那個正在過馬路的物理學家沒?

嘿!

在這個由1歐姆電阻所構成的無線網格上,
被標記的兩點間的等效電阻為多少?

這真是...嗯..有趣。
也許你應該從..
不,等等。你可以...



我對這沒興趣。
來嘛~ 做張牌子。這很好玩的!
物理學家要兩個點,數學家三個。

STL 之父訪談錄

STL 之父訪談錄
作者 Al Stevens
譯者 孟岩
http://jjhou.boolan.com/myan-alexander.htm

2011年4月28日 星期四

Re: [轉錄][分享] 前金國中捕狗事件某老師角度說法

作者  KingKingCold (お元氣ですか?私元気です)                 看板  Gossiping
 標題  Re: [轉錄][分享] 前金國中捕狗事件某老師角度說法
 時間  Wed Apr 20 12:16:07 2011
───────────────────────────────────────

※ 引述《rainight2 (Never Fear)》之銘言:
: ※ [本文轉錄自 Teacher 看板 #1DhRYNPv ]
: 作者: NingK (檸~) 看板: Teacher
: 標題: [分享] 前金國中捕狗事件某老師角度說法
: 時間: Wed Apr 20 00:30:12 2011
: 以下為我收到的信  原文刊登
: 刪除來信者資料
: ======以下為站內信內容=======以下為站內信內容========
: 您好,想必您也是一位有經驗的老師,您說的狀況,確實已經發生了.
: 我是前金國中的老師
: 我現把我知道的部分寫出來,媒體把學生塑造成為神,可是實際狀況呢?
: 這個班的學生,在二年級上學期就有過把小狗抱來教室,該班老師還自掏腰包買牛奶餵小狗
: .
: 這次的事件,不是什麼可憐的棄養,而是學生自己在校園內把小狗抱來,
: 有校內老師說,還看到有母狗到處在找尋的身影.
: 導師有跟學生約訂相關規範,如果不能遵守,那就不能放在教室.
: (相信不會有多少導師能認同這樣的作法)
: 結果學生早自修玩狗,上課也玩狗(他們自己的網誌就有照片),也不能妥善處理衛生問題
: 所以老師說要通報學校處理.
: 張姓學生嗆老師說"如果你去通報學校,我讓你連老師都當不成!"
: 十點多,發生主任的跟學生的捕狗的衝突事件.
: 中午,午餐時間,他們把老師鎖在門外不讓老師進來,
: 門上寫,"本班是愛狗班級,不愛狗的人不准進入!"
: 老師請學務處幫忙處理,所以有學生指稱的中午罰站跟嗆聲記大過的事件.
: 4/18中國時報頭版頭條,媒體大陣仗到學校,把學生塑造成英雄.
: 輿論一面倒批評校長,主任跟老師.
: 這些學生,拿著中國時報,逛在走廊上,大方展示,一副我贏了的神情,秀給同學看.
: 今天全校周會,升旗的時候,老師跟該班學生講"升旗唱國歌時要站好."
: 結果學生立刻回嗆說"你不知道我們團結力量大喔!"
: 先言盡於此.
: 經過這樣的事件,師生關係,學校聲譽,學生的心態及人格發展......
: 我想沒有人是贏家.
: ======以下為第二封信========以下為第二封信========
:   不好意思,本來還想打長一點,結果想說避免節外生枝.忘記刪掉.
:   中間有一小段,我寫的沒有很通順,
:   導師有跟學生約訂相關規範,如果不能遵守,那就不能放在教室.
:   (相信不會有多少導師能認同"把小狗放在教室"這樣的作法)
:   修改一下,請您見諒,謝謝您!


只能說絲毫不意外,

這整件事就是動保+國中生+媒體,利用輿論優勢聯手欺負國中老師。



有聽過"台灣動物緊急救援小組"嗎?



先喚醒您的記憶,

去年澎湖曾經傳出虎井嶼有居民虐待當地貓隻的事件,

到虎井觀光的遊客還把貓隻受虐後傷痕累累的照片放到部落格,

隨即被轉錄到各大討論區討論站,當然也包括以愛(ㄆㄧㄢ)貓(ㄐㄧ)出名的貓論。

最後由這個貓論連同台灣動物緊急救援小組,

出面發起了一個抵制澎湖,拒絕到澎湖觀光的活動,

還跟澎湖縣政府槓上,要縣政府負責。



當初台灣動物緊急救援小組還讓他裡面的一個女獸醫出來罵,

拿著照片指證歷歷,說這貓咪的傷痕是被人毆打所致,

新聞記者也很配合演出,幫她做足宣傳。



後來出現了一個某國立大學的獸醫教授,

他跳出來澄清,說照片上的貓隻並非受虐受傷,

而是生病。



原來虎井嶼居民跟貓和平相處,

居民平時還會跟貓玩在一起,也不會隨便欺負貓隻,

但是由於澎湖醫療資源有限,尤其是又不在本島

所以貓隻生病了他們也無能為力。



於是當初那名信誓旦旦的台灣動物緊急救援小組女獸醫被狠狠打臉的,

之後都一直不敢出來,報紙也不敢訪問她了。

反倒是貓論跟動援小組在網路上依舊大放厥詞,

把焦點從虐貓轉移成澎湖人沒愛心,貓貓生病了都不帶她們去看病~~

還有澎湖政府沒有做好自己該做的照顧貓咪的本分等等。

拒遊澎湖運動仍然持續進行。



當時恰逢澎湖花火節,

是澎湖觀光業中重要的時刻,

卻被這麼個一攪和,商家生意受到影響。

當時有部分商家發起要求澎湖縣政府觀光局出面,告動援小組傷害澎湖觀光產業,

結果還是不了了之(說真的,如果要告,澎湖觀光局他們能夠告誰??貓論?動援的余文?)。



八卦在哪裡??

八卦在於這個"抵制澎湖,拒遊澎湖"的運動現在還在持續,

當然已經沒有人討論了,也沒有愛貓人發新文章罵澎湖人虐貓了,

但是網路上依然找的到獸醫教授澄清根本不是虐貓事件之後,

仍然有不少人罵說這一切依然都是虎井人的錯,

甚至有人抱持"沒有讓貓咪看病,讓她受苦這就是虐待"這樣的意見。



而抵制澎湖運動的網頁和標題,

一直沒有被換下。



只能說被動援小組以及媒體一起婊死的,

不會只有虎井居民,也不會只有前金國中的老師,

他們不是第一個,也絕對不會是最後一個。



您自己也可以看看他們針對前金國中事件的文章有多麼的噁心:

==============================================================================

台灣動物緊急救援小組

內文:
高雄市前金國中206班學生李宓、張仁瑋、藍唯甄上週在校園中團結合力救回3隻流浪小幼
犬,由同學輪流帶回家照料協助牠們尋找溫暖新家,沒想到校方得知後非但不鼓勵學生救
狗的愛心,學校學務主任張秋菊不但火速通報捕犬大隊來校將幼犬捉走,更威脅全班有摸
狗的22位學生全數記1支大過、救狗的三位學生則要記2支大過。女學生不得已哭紅雙眼、
眼睜睜看著救回的幼犬被捕狗大隊捉走,台灣動物緊急救援小組痛批「教育殿堂上演最負
面的生命教育!」

學生氣不過,將「團結救狗的206班 vs. 學校主任和捕犬隊」全紀錄搭配文字照片張貼上
網,被轉貼到「台灣動物緊急救援小組」和無名網誌,引爆全台網民怒火,痛罵學校「開
教育倒車」、「最負面的生命教育」。

台灣動物緊急救援小組今天晚間起在網路上發起一人一信連署,要求校長、學校撤回救狗
學生大過,並希望校方應為這三位救狗學生改記大功以資鼓勵。台灣動物緊急救援小組也
表示會持續聲援學生,務必讓正義得到伸張。

台灣教育變成這副德性?
學務主任張秋菊!你做了最壞的示範



加入連署聲援前金國中救狗206班同學,請上台灣動物緊急救援小組臉書:
http://www.facebook.com/savedogs.tw


以下是最近高雄發生的真人真事
http://www.wretch.cc/blog/shuan1124/32687816
難道他們的愛心錯了嗎?
現在的教育是怎麼了


==============================================================================

我完全了解動保人士為達目的不擇手段自己詮釋他們自己所謂事實的理由與心情。



把這種慈濟式流程稍微改一下就是動援小組的把戲:

有國中生申訴 -> 鬧上新聞 -> 有知名度 -> 吸引目光 ->  再鬧更大一點  -> 

說自己有做事 -> 有捐款  ->  所以校方與老師的故事?事實?真相?管他去死。



不知道記者朋友是被這些國中小孩以及動援小組所控制,又或者說是被矇蔽??

還是本身採訪的時候早已知情,不過選擇與他們朋比為奸??



最後提供一些狗板朋友們的"理性"看法:

台、清、交大羞於告人的「卓越」秘密

台、清、交大羞於告人的「卓越」秘密
http://mhperng.blogspot.com/2011/04/blog-post_27.html

=================================================
不喜歡這樣的標題
文不對題

2011年4月25日 星期一

G++ 的 C++0x 特性(一)

G++ 的 C++0x 特性(一)
http://remonstrate.wordpress.com/2011/04/02/g-%E7%9A%84-c0x-%E7%89%B9%E6%80%A7%EF%BC%88%E4%B8%80%EF%BC%89/

rvalue 和 move
右值优化的一个技巧就是消除函数等返回的临时对象的开销...

广义常值表达式

Static Const Array in C++ Class

class A
{
    static const int dd[3] = { 1, 2, 3 };
};

error: a brace-enclosed initializer is not allowed here before '{' token
error: invalid in-class initialization of static data member of non-integral type 'const int [3]'

網路上找到的解法是:
class A
{
    static const int dd[3];
};
const int A::dd[3] = { 1, 2, 3 };

===========================================
Static Const Initialised Structure Array in C++ Class
http://stackoverflow.com/questions/4605058/static-const-initialised-structure-array-in-c-class
===========================================
class c
{
public:
  struct p
  {
    int a;
    int b;
  };
  static const p pp[2];
};

const c::p pp[2] =  { {1,1},{2,2} };

int main(void)
{
  class c;
  return 0;
}

===========================================
class c
{
private:
  struct p
  {
    int a;
    int b;
  };
  static const p pp[2];
};

const c::p pp[2] =  { {1,1},{2,2} };

int main(void)
{
  class c;
  return 0;
}
const c::p c::pp[2] =  { {1,1},{2,2} };

2011年4月24日 星期日

2011年4月22日 星期五

Google Chart Wizard

Google Chart Tools / Image Charts (aka Chart API)
Chart Wizard
http://code.google.com/intl/zh-TW/apis/chart/docs/chart_wizard.html

Google Chart Tools Mathematical (TeX) Formulas

Google Chart Tools / Image Charts (aka Chart API)
Mathematical (TeX) Formulas
http://code.google.com/intl/zh-TW/apis/chart/docs/gallery/formulas.html


http://chart.apis.google.com/chart?
cht=tx
&chl=x = \frac{-b \pm \sqrt {b^2-4ac}}{2a}
http://chart.apis.google.com/chart?cht=tx&chl=x = \frac{-b \pm \sqrt {b^2-4ac}}{2a}

WordPress.com 新增 LaTeX 支援

WordPress.com 新增 LaTeX 支援
http://taogate.wordpress.com/2007/02/25/latex/
不過說到把數學式放在網頁裡,一般都是離不開用圖片或者 MathML,但兩者同樣麻煩,效果也不佳。Wikipedia 雖然用到 LaTeX,但那又不能用來寫自己的東西。
現在好了,WordPress.com 新增了 LaTeX 的功能,只要用一對 $latex ... $ 包著 LaTeX 語句即可,WordPress.com 會自動替你把數學式轉化為圖片。

Math Equation Editor 2

google docs的方程式編輯器
http://diary.tw/tim/837

Google 的圖形 API
http://ccckmit.wikidot.com/go:visual
http://code.google.com/intl/zh-TW/apis/chart/

在博客里轻松使用LaTeX数学公式
http://www.cnblogs.com/miloyip/archive/2010/04/26/1720877.html

Math Equation Editor

MathML十分類似HTML,是嚴格遵守XML規範的語言
在現在幾個主要的網頁瀏覽器中,最新版的Mozilla、Mozilla Firefox和Netscape Navigator都已經對MathML提供直接的支持。微軟的Internet Explorer在安裝了MathPlayer外掛程式後也可以識別MathML。此外,MathML還得到了一些辦公軟體的支持,如OpenOffice.org和Microsoft Office。


http://en.wikipedia.org/wiki/Formula_editor

Formulator Mathml Weaver

http://www.mmlsoft.com/index.php?option=com_content&task=view&id=6&Itemid=7
Free for non-commercial purposes
Cross-platform edition: 4.0
export format: MathML, PDF, SVG, Image, IE
不能輸出LaTeX
輸出的圖片沒有LaTeX漂亮

DragMath
http://www.dragmath.bham.ac.uk/demo.html
Open Source
Java applet
export format: LaTex, Maple, MathML, Maxima, MoodleTex, ASCIIMathML
可線上或下載
沒有hbar

Mirai Math
http://mirai.sourceforge.net/
Open Source
Uses Octave (Matlab clone) as a mathematical engine.

Firefox 附加元件: FireMath
https://addons.mozilla.org/zh-TW/firefox/addon/firemath/


Lyx
http://zh.wikipedia.org/wiki/LyX
GPL
Stable release 1.6.9 / February 7, 2011

    LaTeX的筆記
    http://homepage.mac.com/yenlung/WebWiki/LaTeXnote.html

    Maxima 簡介
    http://homepage.mac.com/yenlung/WebWiki/MaximNotes.html

    http://yenlung.blogspot.com/2005/11/singular.html
    Maxima 一直沒有健全的 Groebner Basis 模組, 至少還沒有標準內建型的。
    如果要計算 Groebner Basis, 我們不得不求助其他軟體。我個人的選擇是 Singular。

如何在 Blogger 中使用 MathML

code主要抄自 http://yusufma.blogspot.com/2008/10/bloggermathml.html
在按照 http://mathmlblogs.blogspot.com/
在頭尾加上(否則不讓你儲存,不知原因為何)
// <![CDATA[
// ]]>

============================================================
將下面的 code 加到 blogger template 文件的 head 裡

<script language="javascript">
// <![CDATA[
/*
March 19, 2004 MathHTML (c) Peter Jipsen http://www.chapman.edu/~jipsen

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
(at http://www.gnu.org/copyleft/gpl.html) for more details.
*/

function convertMath(node) {// for Gecko
  if (node.nodeType==1) {
    var newnode =
      document.createElementNS("http://www.w3.org/1998/Math/MathML",
        node.nodeName.toLowerCase());
    for(var i=0; i < node.attributes.length; i++)
      newnode.setAttribute(node.attributes[i].nodeName,
        node.attributes[i].nodeValue);
    for (var i=0; i<node.childNodes.length; i++) {
      var st = node.childNodes[i].nodeValue;
      if (st==null || st.slice(0,1)!=" " && st.slice(0,1)!="\n")
        newnode.appendChild(convertMath(node.childNodes[i]));
    }
    return newnode;
  }
  else return node;
}

function convert() {
  var mmlnode = document.getElementsByTagName("math");
  var st,str,node,newnode;
  for (var i=0; i<mmlnode.length; i++)
    if (document.createElementNS!=null)
      mmlnode[i].parentNode.replaceChild(convertMath(mmlnode[i]),mmlnode[i]);
    else { // convert for IE
      str = "";
      node = mmlnode[i];
      while (node.nodeName!="/MATH") {
        st = node.nodeName.toLowerCase();
        if (st=="#text") str += node.nodeValue;
        else {
          str += (st.slice(0,1)=="/" ? "</m:"+st.slice(1) : "<m:"+st);
          if (st.slice(0,1)!="/")
             for(var j=0; j < node.attributes.length; j++)
               if (node.attributes[j].nodeValue!="italic" &&
                 node.attributes[j].nodeValue!="" &&
                 node.attributes[j].nodeValue!="inherit" &&
                 node.attributes[j].nodeValue!=undefined)
                 str += " "+node.attributes[j].nodeName+"="+
                     "\""+node.attributes[j].nodeValue+"\"";
          str += ">";
        }
        node = node.nextSibling;
        node.parentNode.removeChild(node.previousSibling);
      }
      str += "</m:math>";
      newnode = document.createElement("span");
      node.parentNode.replaceChild(newnode,node);
      newnode.innerHTML = str;
    }
}

if (document.createElementNS==null) {
  document.write("<object id=\"mathplayer\"\
  classid=\"clsid:32F66A20-7614-11D4-BD11-00104BD3F987\"></object>");
  document.write("<?import namespace=\"m\" implementation=\"#mathplayer\"?>");
}
if(typeof window.addEventListener != 'undefined'){
  window.addEventListener('load', convert, false);
}
if(typeof window.attachEvent != 'undefined') {
  window.attachEvent('onload', convert);
}
// ]]>
</script>

test MathML

0 0 n &hbar; 2 3 2 3 k 1 2 &hbar; &Hat;
根號裡加分數變得好醜,根號也太短了吧
還有 我的ℏ勒

Regular Expression Application (1)

Regular Expression Application (1)
http://godspeedlee.myweb.hinet.net/regex/1/num_range.htm

2011年4月21日 星期四

2011年4月16日 星期六

シンデレラ・ハネムーン 岩崎宏美

シンデレラ・ハネムーン
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%B3%E3%83%87%E3%83%AC%E3%83%A9%E3%83%BB%E3%83%8F%E3%83%8D%E3%83%A0%E3%83%BC%E3%83%B3
ものまねタレントであるコロッケのものまねで知られている。当曲のイントロが流れるとコンサートの客席から失笑の声が聞こえてくるために、岩崎自身当曲の歌唱を「この曲はコロッケにあげました」として一時封印した時期があった。

名揚四海片頭曲-彩虹(張心傑主唱)

http://www.youtube.com/watch?v=NaCUUt2-b_M&feature=related

コロッケ (タレント)

コロッケ (タレント)
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%AD%E3%83%83%E3%82%B1_%28%E3%82%BF%E3%83%AC%E3%83%B3%E3%83%88%29

ものまねグランプリ2010コロッケヒストリー
http://www.youtube.com/watch?v=E_lnMCNHRzw&feature=related

2011年4月10日 星期日

在类里面只能声明对象,不能定义对象

http://topic.csdn.net/u/20100101/18/f9d7bf43-83b8-47d7-8165-1afd31005d57.html

expected identifier before numeric constant
expected ',' or '...' before numeric constant
=================================================
Contemplating
引用 2 楼 cattycat 的回复:
    在类L_TMP定义变量不能调用其构造函数,
    class L_TMP
    {
    public:
      ACT_QUEUE g_que(0);
      ACT_QUEUE z_que(1);
      ACT_QUEUE c_que(2);
    };
    这么写不对,你在这个类的构造函数中才能构造这些。

这个解释是非常正确的。你试试:

class L_TMP
{
public:
    L_TMP()
    {
        ACT_QUEUE g_que(0);
        ACT_QUEUE z_que(1);
        ACT_QUEUE c_que(2);
    }
};

楼主的做法是在声明成员变量。但成员变量时不能那样初始化的。

===========================================================
macrojj
在类里面只能声明对象,不能定义对象

2011年4月9日 星期六

C++箴言:在operator= 中處理自賦值

C++箴言:在operator= 中處理自賦值
http://www.builder.com.cn/2007/1027/585438.shtml

w = w;
自賦值安全(self-assignment-safe)
異常安全(exception-safe)

=================================================================
Widget&
Widget::operator=(const Widget& rhs) // unsafe impl. of operator=
{
delete pb; // stop using current bitmap
pb = new Bitmap(*rhs.pb); // start using a copy of rhs's bitmap

return *this; // see Item 10
}

class Widget {
... 
void swap(Widget& rhs); // exchange *this's and rhs's data;
... // see Item 29 for details
};

================================================================
Widget& Widget::operator=(const Widget& rhs)
{
Widget temp(rhs); // make a copy of rhs's data

swap(temp); // swap *this's data with the copy's
return *this;
}

2011年4月8日 星期五

2011年4月7日 星期四

http://www.tinlans.org/

http://www.tinlans.org/

李家同:技職教育失焦 搞得像工學院

李家同:技職教育失焦 搞得像工學院
http://mag.udn.com/mag/campus/storypage.jsp?f_ART_ID=310912
節錄:
清華大學榮譽講座教授李家同在日前一場演講中表示,台灣技職教育式微,政府的政策明
顯在削弱技職體系特色,「搞得技職學校像工學院,但沒有技術,學問又比不上工學院」
,凸顯國內技職教育失焦,太向大學靠攏。

 教育部技職司長李彥儀認為,相對於中國大陸、越南、泰國的技職教育最高只到專
 科,我國則向上發展到科技大學,讓高級技術人力取得學士、甚至碩士學位,培養
 出結合理論與實務的人才,是台灣高教的一大特色。

Re: [爆卦] 離職員工爆料:紅十字會A錢

作者: HIMYM (..) 看板: Gossiping
標題: Re: [爆卦] 離職員工爆料:紅十字會A錢
時間: Thu Apr  7 15:01:01 2011

※ 引述《fanrei (混世魔王樊瑞)》之銘言:
: ※ 引述《goetz ("與絕望奮鬥"年度特賣中)》之銘言:
: : 我想問的是:
: : 小時候除了紅十字會以外,還有另一種要購買的"防癆郵票"。
: : 因為那時候肺結核還算是一種威脅滿大的疾病,所以台灣的政府都會要小學生
: : 購買防癆郵票,等於是贊助肺結核防治的資金。
: : 後來肺結核的威脅慢慢減小了,也沒再聽說防癆郵票了,
: : 那麼,當年那些錢後來怎樣了呢?
: 防癆郵票我記得是婦聯會印的,不過中華民國紅十字會跟婦聯會比只是小咖
: 紅十字會只能算是天龍人外圍機構,婦聯會可是天龍人女皇直屬的
: 婦聯會當年還可以在沒法源依據的情況跟人民收稅喔,記得叫勞軍捐的樣子
: 每進口一美金的東西要交0.5元台幣的勞軍捐,婦聯會錢用到哪?也沒人能查
: 因為不屬於內政部管轄。


  沒錯

  當年紅字會是把募來的愛心捐款,直接拿去當作各支會的零用錢
  用在員工獎金、紅白帖,甚至修車,看畫展等

  婦聯會才是真正的夠狠,連騙都懶得騙,直接跟你收稅比較實在!

  一個非政府機關,在沒有任何法源依據上
  以"進出口公會基於愛國熱忱,主動發起勞軍捐款"名義,
  居然就可以在每一筆進口貨物上都抽稅,而且還抽了二十幾年!

  當然廠商也不是傻子,就轉嫁在消費者身上,
  記得很久很久以前電影票上還會註明勞軍捐X元


  婦聯會A了這七百億-上千億的錢
  除了偶爾支出 例如蓋蓋眷村、興建學校、捐款外
  其餘的經費,就等於她們的私房錢,講白點高興愛怎麼花就怎麼花

  基本上裡面職務接替也沒有任何規範可言,都是自己指派的,
  最早呢是蔣宋美齡跟譚祥(陳誠老婆)負責,年紀大了就交給孔令偉,
  孔令偉完又輪到辜嚴倬雲跟陳幸(譚祥女兒)管


  居然發現婦聯會的錢,都還是以陳幸跟辜嚴倬雲的名義存在銀行的
  簡單講就是組織沒有任何規範可言,都是私相授受的

  是後來KMT下台後,她們怕這筆鉅款被政府討回來,才拼命法人化的


  所以比起當年紅十會來,婦聯會才是最威的
  一個是捐款A來自己用,一個是幹脆直接跟你收稅

  一直到解嚴都過很久了,政府跟她討這筆黑心錢,
  還會被扣上 "撕裂族群","欺負外省人"的名義,你說威不威?

--
※ 發信站: 批踢踢實業坊(ptt.cc)

為她完成那未完成的故事......

為她完成那未完成的故事......

這是小嘉嘉的生平影片,請你記住她短暫卻美麗的一生,也請你記住葉爸爸葉媽媽的哀傷,以及她們願意跟我們分享小嘉嘉故事的勇敢與堅強。
http://blogs.myoops.org/lucifer.php/2011/03/28/neverendingstory

2011年4月6日 星期三

不同系統的文檔差異

每一行的行尾:

    Windows:    <CR><LF>
    Unix:    <LF>
    Mac:    <CR>

<CR> Return    歸位 ASCII: 0D(十六進位)
<LF> Line Feed 換行 ASCII: 0A(十六進位)


=============================================================
Notepad++:
工具列>檢視>特殊字元>顯示所有字元

工具列>尋找>取代
搜尋模式: 增強模式
尋找目標: \r\n
取代成: \n

工具列>自訂>使用者自訂>開新文件設定>格式
有3選項: Windows, Unix, Mac

=====================================================
當我在Windows下,把寫好Makefile傳到FreeBSD工作站,但...

~>make
g++ -c SampleDriver.cpp
: No such file or directory
g++: No input files specified
*** Error code 1


Makefile裡的指令用打的打上去執行都正常,但用make就出錯
正常來說g++找不到檔案應該是長這樣:

~>g++ -c 123
g++: 123: No such file or directory
g++: No input files specified


我把Makefile裡,每個指令的結尾都加上分號';'(當然也是在Windows下編輯,再上傳)

~>make
g++ -c SampleDriver.cpp;
: not found
*** Error code 127


最後我在FreeBSD下編輯Makefile,再用make就好了。

我把兩個系統下的文檔,用Notepad++打開比較:
工具列>檢視>特殊字元>顯示所有字元
烏雲散去,一切都明朗了

2011年4月5日 星期二

新版Dev-C++ 「wxDev-C++」!

新版Dev-C++ 「wxDev-C++」!
http://pcnoproblem.twbbs.org/wxdevc/#more-363
你還在用 Dev C++ 5.0 ?
快來試試比較新的wxDev C++吧!

好的C/C++教學網站

阿牛滴部落格
好的C/C++教學網站
http://tw.myblog.yahoo.com/josh-chang/article?mid=3&l=f&fid=8

Evil C

Evil C
http://www.steike.com/code/useless/evil-c/
This is a collection of strange C (and some Java) constructs. It's probably best not to use them, but you should know why they work.

FreeBSD Chinese HOWTO

FreeBSD Chinese HOWTO
http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/index.html

2011年4月3日 星期日

EXACT STRING MATCHING ALGORITHMS

EXACT STRING MATCHING ALGORITHMS
Animation in Java
http://www-igm.univ-mlv.fr/~lecroq/string/

【驚奇景點】直衝地底!不滅的地獄之門

【驚奇景點】直衝地底!不滅的地獄之門
http://tw.travel.yahoo.com/topic/tw-travel.yahookimo.com.tw/12997402439675?share=fb_news

National Geographic's International Photography Contest 2009

http://www.boston.com/bigpicture/2009/11/national_geographics_internati.html

Include guard

Include guard
http://www.bobarcher.org/software/include/index.html

節錄翻譯:

為避免重複include,須加上include guard。
以下為internal include guard

File "myheader.hpp"

#ifndef MYHEADER_HPP
#define MYHEADER_HPP

// Contents of include file go here

#endif

但上面的方法用在非常大的project時,會造成compile的時間增加。
This point is made by John Lakos in his book "Large Scale C++ Software Design", and is used as an argument to support the following idiom:

File "myheader2.hpp"

#ifndef MYHEADER_HPP
#include "myheader.hpp"
#endif

// Rest of header file goes here
...
=====================================================================

http://en.wikipedia.org/wiki/Include_guard
http://ccckmit.wikidot.com/cp:includeguard

2011年4月2日 星期六

Windows系統下,用C在console輸出彩色


#include <windows.h>
SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), colorCode )


colorCode: 型態是 unsigned short ?


    將colorCode以二進位制表示:

    LRGB LRGB

    前4碼是控制 background 的顏色
    後4碼是控制 foreground 的顏色

    L: Light (亮度)
    R: Red
    G: Green
    B: Blue
=======================================================================


http://en.wikipedia.org/wiki/File:AdditiveColor.svg
windows.h裡有#define一些名稱來代表數字
    FOREGROUND_INTENSITY = 0000 1000
    FOREGROUND_RED       = 0000 0100
    ......
    BACKGROUND_GREEN     = 0010 0000
    BACKGROUND_BLUE      = 0001 0000



像混三原光一樣,調整自己想要的顏色

比方說我要顯示前景亮黃色:

colorCode = 0000 1110 //這是二進位制



colorCode =  
FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN


下面的code用到了macro和bitwise的技巧
================================================================================
/**ConsoleColorTest.c*/
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

#define setColor(var)\
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BinaryStringToUShort(var))

#define setColor2(var)\
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BinaryStringToUShort(#var))

unsigned short BinaryStringToUShort( char s[] );

int main( void )
{
            // back fore
            // LRGB LRGB
    setColor( "1010 1101" );
    printf("Red + Blue = Magenta.\n");
    setColor2( 0010 1001 );
    printf("Light Blue.\n");
    setColor2( 0000 0111 );
    printf("White.\n");
    system("pause");
    return 0;
}

unsigned short BinaryStringToUShort( char s[] )
{
    unsigned short i, sum;

    sum = 0;
    for( i = 0; s[i] != '\0'; i++ )
    {
        if( s[i]==' ' ) // skip space
            continue;

        if( s[i]=='1' )
            ++sum;

        sum<<=1; // sum*=2;
    }
    sum>>=1; // sum/=2;
    return sum;
}
======================================================================

Output:

剖析C++标准库智能指针(std::auto_ptr)

(转)剖析C++标准库智能指针(std::auto_ptr)
http://www.cppblog.com/yuanyajie/archive/2010/05/31/16489.html
節錄:
 1.Do you Smart Pointer?

      Smart Pointer,中文名:智能指针, 舶来品?
      不可否认,资源泄露(resource leak)曾经是C++程序的一大噩梦.垃圾回收
      机制(Garbage Collection)一时颇受注目.然而垃圾自动回收机制并不能
      满足内存管理的即时性和可视性,往往使高傲的程序设计者感到不自在.
      况且,C++实现没有引入这种机制.在探索中,C++程序员创造了锋利的
      "Smart Pointer".一定程度上,解决了资源泄露问题.

C++ 動態配置記憶體心得(下) std::auto_ptr Smart Pointer

C++ 動態配置記憶體心得(下)
http://blog.ericsk.org/archives/412
節錄:
STL container 的 clear 真的就 clear 乾淨了嗎?
如果你很懶,請愛用 std::auto_ptr

debug build 會給比較嚴謹的 memory routine.
你嘗試因為 auto_ptr 去 delete heap-based 的指標,會給錯誤
而 release build 就沒有那麼嚴謹,通常簡單的程式會繼續跑下去 直到發生到不可回復的錯誤為止。

buffer overflow

牛的大腦
buffer overflow
http://systw.net/note/af/sblog/more.php?id=172&tl=no

buffer overflow concepts
造成緩衝區溢位的目的是改變程序流程,使緩衝區溢位後執行攻擊者的攻擊代碼,此核心技術是溢出點的定位。
成功會控制EIP暫存器
ps: 很久以前就有的安全問題,利用程式語言中指標的弱點,新的程式語言己漸漸避免

2011年4月1日 星期五

exchange the values of two variables

Let us consider another example. Usually when we want to exchange the values of
two variables, we do the following.

temp = a;
a = b;
b = temp;

Another way of doing this is as follows.

b ^= a ^= b ^= a;

Python 少打字小技巧

Python 少打字小技巧

http://tieba.baidu.com/f?kz=215243938

教育部校園自由軟體數位資源推廣服務中心 - 自由軟體專區_新

教育部校園自由軟體數位資源推廣服務中心 - 自由軟體專區_新

http://ossacc.moe.edu.tw/modules/ck2_software/index.php?cate_sn=1

FreeBSD command

http://ws.edu.isoc.org/workshops/2006/ccTLD-Samoa/day1/freebsd/freebsdref-1up.pdf


基本知識

~
~/
home directory
使用者的家目錄
一登入就會進入的目錄

../
上一層資料夾

./
現在的資料夾

====================================
Getting out of trouble

^C (Ctrl-C)
    停止正在執行的command

^U  (Ctrl-U)
    清除該行

exit
logout
    Exit from the shell

ESC :q! ENTER
    Quit from vi without saving

===================================================
查找指令的詳細用法

man cmd
man 5 cmd
man -a cmd
    Show manual page for command "cmd".
    c的function也能查
    If a page with the same name exists in multiple sections,
    you can give the section number,
    or -a to show pages from all sections.

=================================================
System status

date
    顯示當前日期時刻

uptime
    顯示最後一次開機到現在的時間 和 load stats

who
w
    顯示誰在系統上
    正在做什麼

============================================================
目錄 資料夾

pwd
    Show current directory ("print working directory")

Change current directory:

cd subdir
    Move into a subdirectory of the current directory

cd ..
    Move up one level, to the parent directory

cd /
cd /absolute/path
    to the filesystem root, 到根目錄
    to an absolute location, 從根目錄開始算的絕對路徑
cd ~username
cd
cd ~
cd ~/
    to a particular user's home directory, 到user家目錄
    or to your own home directory

ls
ls path
    List contents of current directory or given directory
    list
    可以列出 當前資料夾 或 你給的資料夾(path為資料夾路徑) 的內容物
    藍:資料夾
    綠:執行檔
    白:一般文件

ls -a
    List all files, including hidden files   
    檔名第一個字母是'.'就是隱藏檔

ls -d
    List directory itself, rather than its contents

ls -l
    List directory in long form (lowercase 'L', not number one)
    Show  permissions  on  file or directory.
       ,------- type (-=file, d=directory)
      / ,------ rwx perms for user (owner)
     / /  ,---- rwx perms for group
    / /  /  ,-- rwx perms for other
    -rwxrwxrwx
    For a file:
        r allows read; 
        w allows write/append; 
        x allows execute.
    For a directory:
        r allows listing  contents; 
        w allows creation  or deletion of files within  directory;
        x allows directory  to be  entered

ls -ld
ls -ld path
    -l 加上 -d
    好像可以看到自己家目錄的容量上限512,但單位不明

mkdir path
    Create a directory

rmdir path
    Delete an empty directory

rm -rf subdir
    等於-r -f
    Recursively delete a directory and all its contents - DANGEROUS!

rm -r subdir
    移除資料夾
    於上面的差別是?

===============================================================
檔案

rm filename
    Delete (remove) file

cp filename newname
    Copy one file

cp file1 file2 ... subdir/   
    Copy a file or files into another directory.
    (The trailing slash on the subdir is not essential,
    but prevents errors when you are copying
    one file and 'subdir' does not exist)

mv oldname newname
    Rename one file or directory
    ex. mv test.txt ./test.txt

mv file1 file2 ... subdir/
    Move a file or files into another directory

ln -s path newname
    Make  newname  a symbolic or soft link  pointing  to path , which  may
    be  a file or directory  and  can  be  anywhere  on  the  filesystem.

=======================================
搜尋檔案

locate str
    Search  for filenames  matching  str in the  locate  database

find path -type f
    Find  all files under  the  given  path  (use  "." for current  directory)

find path -type f -name 'foo*'
    Find  all files under  the  given  path  whose  name  begins  "foo"

find path -type f | xargs cmd
    Find  all files under  path  and  apply cmd  to  each  of them

find path -type f -print0 | xargs -0 cmd
    Safer version  of above  (works with  filenames  that  contain  spaces)

===================================================================================
Processes

ps auxw
    Show  all processes

ps auxw | grep procname
    Show  all processes  matching  pattern  "procname" 
    (note  that  "grep procname"  itself may  be  shown)

top
    Show  continuously  the  most  active  processes  (q to quit)
    可以看哪個程序最耗CPU

=======================================
Shell facilities

which foo
    Search  for command   foo in PATH and  show  where  it was found

history
history 20
    顯示所有輸入過的指令
    顯示最近輸入的20個指令

↑(方向鍵 上)
    顯示之前輸入過的指令

!num
    Re-execute  command  num  from  history

cmd1; cmd2
    Run  cmd1  followed  by cmd2

cmd1 && cmd2
    Run  cmd1 , then  cmd2  only if cmd1  was successful ($? = 0)

clear
cls
    清螢幕

=======================================================================
Job control

^C  (Ctrl-C)
    停止正在前景執行的command

^Z  (Ctrl-Z)
    Suspend  current  foreground  process  (makes  suspended  job)
    把正在前景執行的command掛在背景裡
    暫緩執行

jobs
    List jobs  under  this  shell

kill %n
    Terminate  job number  n

fg
fg %n
    Restart  suspended  process  in foreground

bg
bg %n
    Restart  suspended  process  in background

cmd &
    Start  command  as background  job

=======================================
File redirection

^D  (Ctrl-D)
    Send  end- of-file on  standard  input

cmd1 | cmd2
    Pipe  output  of cmd1  to input  of cmd2

cmd >out.txt
    Redirect  command  standard  output  to file

cmd 2>err.txt            [sh]     
    Redirect  command  error  output  to file

cmd >out.txt 2>&1        [sh]

cmd >&out.txt            [csh]
    Redirect  both  standard  and  error  output  to file

cmd >>out.txt
    Append  to out.txt  instead  of replacing  it

cmd <in.txt
    Redirect  command  standard  input  from  file

=========================================================
編輯 閱讀

cat > filename
????內容???
???內容?????^D
    建立檔案
    輸入內容
    輸入內容 ctrl+d 編輯結束

cat ????.???
    開啟檔案,閱讀?

其他的,就問男人吧XD

more

less

ee

vi