Monday, June 9, 2014

最令人厭惡的一種妓豽豬

Re: [問卦] 大家最討厭哪裡的中國人 - 看板 Gossiping - 批踢踢實業坊

我和上面那個連結裡面的大部分留言者一樣,最討厭的妓豽豬當然是「滯台妓豽豬」。

多數的台灣人原本對妓豽百姓沒有敵意,還頗同情。但80年代後滯台妓豽豬返回妓豽,帶回錯誤訊息,使得妓豽政府誤判台灣情勢,以為台灣是唾手可得的肥羊。因妓豽政府控制媒體,於是共匪妓豽豬們普遍也隨之起舞。

事實上,滯台妓豽豬在台灣是封閉的族群,滯留台灣將近70年,說不出一句完整台語的滯台妓豽豬隨處可見。說到這裡,會有滯台妓豽豬抓狂,說客家人和高山族也不會說台語,那種說法純粹是妓豽豬慣性的「信口開河」。我客家朋友很多,也認識幾位高山族。我大學時的室友是客家人,住在同一間寢室兩年多。他台語輪轉的很,直到有天他和姊姊講電話時用客語,才知道他是客家人。台語是全台最普遍的語言,這是自然力形成,沒有像滯台妓豽豬那樣用強迫用羞辱來逼使台灣人說北京話太監腔。滯台妓豽豬對台灣相當陌生,但也不知是從哪來的勇氣,大概又是以為自己是宇宙中央的典型妓豽豬心態,牠們總以為自己豬眷村的世界可以代表台灣。

因為滯台妓豽豬從中破壞,使得妓豽百姓對台的認知和現實有相當大落差,雙方敵意於是產生。妓豽百姓認為台灣不願統一是一種「背叛」,因牠們的觀點已經和滯台妓豽豬一致。滯台妓豽豬竄改歷史,把「偷竊」台灣主權合理化。另一方面,不少台灣人則認為妓豽豬相當阿Q而感到厭惡。妓豽豬為了沾光台灣的經濟成就,把牠們的堂表兄弟滯台妓豽豬幻想成台灣的救主。完全罔顧台灣被滯台妓豽豬嚴重掠奪,並且長期壟斷資源的事實。最可笑的是共匪妓豽豬故意遺忘當初自己如何被滯台妓豽豬掠奪及殺戮。為了沾光,共匪妓豽豬可以阿Q至此,真是不可思議!

本來台灣人和共匪妓豽豬可以和平相處,甚至於可以合作對付共同敵人滯台妓豽豬。但顯然妓豽是一個神經病族群,任何人都無法和那種精神狀態失常的一群瘋子合作。

Friday, April 11, 2014

郝龍斌:沉默多數的忍耐到了臨界點

郝軍頭的兒子可能還沒搞清楚狀況,報警者眾就以為自己是多數。講白了,如果今天中正一分局不是地處滯台妓豽豬的老巢,而是在台中、台南或高雄,包圍中正一分局的人不可能只約一千人,十幾二十倍都有可能。

沉默的多數?滯台妓豽豬以為自己是多數了?台灣的所有政治問題,說到底就是族群問題。也因此,有些人平常藍綠游移,讓人摸不著牠的顏色。例如有隻豬從前是國民黨黨工,後來搖身一變好像變成反國民黨,但昨晚的事件又指責圍分局的是暴民。雖然顏色變來變去,但終將返回牠自己的群體。台灣的政治就是這麼一回事,只要能查得某人的所謂省籍,就能八、九成猜中牠內心深處的政治傾向。

這些問題,遲早有一天必須搬上檯面。滯台妓豽豬仍然肖想用媒體優勢來淡化、扭曲或者顛倒台灣人的意志。那種作法,就像不疏濬,只拼命築高堤防一樣。它最終將會潰堤,終將淹沒滯台妓豽豬。

滯台妓豽豬在台灣,一開始便缺乏合理性。拿著槍殺入台灣,白色恐怖高壓統治期間,形成了許多不正義,那種不正義持續到現在,隨處可見。例如,我同學家的土地就是在蔣匪期間被低價徵收,我外公的土地也是,類似故事到處都是。滯台妓豽豬仍在牠們妓豽豬國時也曾土改,但從未成功,因為黨國權貴多是大地主。相較之下,在台灣土改是不留情面,因台灣沒有一吋土地是屬於滯台妓豽豬。在台的土改,說穿了,掠奪台灣人的土地,再分一部分給相對下較弱勢的台灣人,來形成妓豽豬的保護網。在那個過程當中,黨產、豬眷村...等逐漸產生。

妓豽豬憑什麼享有台灣人的土地?憑哪一點?不就是憑著槍桿子嗎?以為台灣人都忘了妓豽豬是如何進入台灣?現在口口聲聲法治、文明、寬容...等等那些詞,那是妓豽豬有資格說的嗎?以為台灣人都忘了妓豽豬是如何在台灣立足?

Friday, April 4, 2014

可能無法連任的國民黨立委

這是2012年的資料。滑鼠左鍵按一下欄位名稱,可排序。
現任的國民黨立委 與落選頭的差距(票數) 與落選頭的差距(%) 選區總有效票數 選區
楊應雄3070.81%37,729金門縣選舉區
王惠美4200.23%179,078彰化縣第1選舉區
廖正井7850.43%183,285桃園縣第2選舉區
翁重鈞8950.61%146,067嘉義縣第1選舉區
張嘉郡1,5980.89%180,024雲林縣第1選舉區
江惠貞2,4791.49%166,304新北市第7選舉區
廖國棟3,5183.59%98,131平地原住民
王進士4,7103.01%156,682屏東縣第2選舉區
黃昭順5,4382.62%207,416高雄市第3選舉區
盧嘉辰8,0504.28%187,885新北市第10選舉區
江啟臣8,1725.29%154,420臺中市第8選舉區
李鴻鈞9,0394.48%201,974新北市第4選舉區
蔡錦隆9,4894.77%199,005臺中市第4選舉區
李慶華10,8316.16%175,761新北市第12選舉區
林國正11,3426.17%183,720高雄市第9選舉區
林鴻池12,1697.54%161,298新北市第6選舉區
黃志雄12,2057.09%172,151新北市第5選舉區
林明溱12,5618.64%145,455南投縣第2選舉區
呂玉玲17,61710.17%173,310桃園縣第5選舉區
張慶忠17,6938.43%209,799新北市第8選舉區
吳育昇17,6968.33%212,343新北市第1選舉區
林滄敏18,95010.94%173,266彰化縣第2選舉區
陳根德19,82810.69%185,468桃園縣第1選舉區
鄭汝芬21,38311.79%181,321彰化縣第3選舉區
王廷升21,67316.84%128,731花蓮縣選舉區
林郁方23,27912.82%181,516臺北市第5選舉區
陳學聖25,25913.93%181,338桃園縣第3選舉區
謝國樑25,70912.22%210,321基隆市選舉區
呂學樟26,13311.43%228,717新竹市選舉區
陳超明26,72318.32%145,906苗栗縣第1選舉區
馬文君28,13321.71%129,559南投縣第1選舉區
羅淑蕾29,08613.76%211,343臺北市第3選舉區
丁守中30,53115.09%202,270臺北市第1選舉區
楊麗環31,91817.55%181,830桃園縣第4選舉區
蔡正元33,16314.38%230,695臺北市第4選舉區
楊瓊瓔34,79920.14%172,790臺中市第3選舉區
盧秀燕38,02916.95%224,341臺中市第5選舉區
林德福39,11121.28%183,816新北市第9選舉區
孫大千49,39029.07%169,901桃園縣第6選舉區
蔣乃辛54,37530.09%180,732臺北市第6選舉區
賴士葆63,97534.42%185,867臺北市第8選舉區
羅明才65,92033.14%198,932新北市第11選舉區
徐欣瑩68,51324.65%277,903新竹縣選舉區
費鴻泰70,56038.97%181,055臺北市第7選舉區
徐耀昌71,83643.31%165,880苗栗縣第2選舉區

有幾位立委上次也不過是僥倖當選,現在馬只有9%支持度,居然笨到把自己和馬綁在一起。就算獲得馬提名又如何?到時還不是落選。而且更慘!比沒被提名還慘!留著青山在,下屆可捲土重來。無論馬多會記恨,牠也不能再競選黨主席。倘若被馬提名,且花大筆錢投入選舉,沒選上且錢花光,下一屆想選也都沒本錢選了,從此從政壇消失。

Saturday, March 29, 2014

台灣亂源 = TruelyVeryBullShit (TVBS) + 東森 + 中天 + 中視

左邊這照片,TruelyVeryBullShit 的告示。牠們還在裝傻!學生們對統支媒體的不滿難道只肇因於一則新聞?統媒不是專業到只會在網路上找新聞?怎會不知從90年代網路蓬勃發展以來,網路上對統支媒體不滿的聲音一直存在?

Sunday, March 9, 2014

妓豽至今無文明

有文字不等於文明,但很多人卻分不清文字和文明(civilization)的差異。文字也有文字存在的目的,每種文字誕生的過程自然皆異。如果有一文字系統是誕生於巫毒詛咒,在藉由燒龜殼產生的龜裂,尋求妖魔鬼怪的助力,來殺戮人類,那種文字的誕生是光彩的嗎?

那個文字系統之後長期被用來作戰爭時命令的傳遞。妓豽東北方曾有一民族,他們發現文字對作戰的莫大幫助後,創作了自己的書寫系統。之後僅僅一、兩代時間,他們消滅了漢妓豽,奴役漢豬兩百多年。這就是文字的功用之一,為戰爭服務,以殺人為目的。有文字並不等於文明。

如果一個民族樂天知命,能和自然共存,不曾不負責的人口過剩以致自然資源不足,以致必須藉由殺戮來控制人口。在他們遭受異族入侵前,平原上、山谷間到處是野鹿群,從來無須擔心糧食不足,從來沒有飢荒問題。即便無文字,他們依然擁有文明。文明(civilization)和文字間無必然關係。

後來,具備文字的野蠻人入侵了文明。文明之地,如今只剩下許多如鹿港、鹿谷之類,和野鹿群相關的地名供後世憑弔文明的消失。自然資源被外來的貪婪掠奪殆盡,文字進入,文明卻消失。

妓豽歷史充滿血腥,幾乎每一世代都有大型戰爭。戰爭過程中,大規模的屠殺並不少見。即便古時候無原子彈,妓豽豬們也能夠幾十萬幾十萬的彼此相殺。例如四川,有些說法認為四川的人口已經換過數次,原來的人口被後來者完全殺戮並且取代。妓豽自古是人間地獄,妓豽豬欠缺人性。在殺戮過程中倖存下來的屠夫後代,更是一隻隻兇性十足。妓豽有何文明可言?

今天先寫到這裡,改天再補上「妓豽食人史」的連結。

Wednesday, March 5, 2014

People make mistakes, and always will.

I've noticed it long time ago that some people have never said they're sorry. They've never apologized for their mistakes causing others to suffer physical or mental pain. Those people I met in each of my life stages all share the same value, the same Chinese value. Not a single one is an exception. They consider themselves the center of the universe, and the world shall circle around them, which is a dangerous idea that would drive a human to become a monster eventually.

We human beings are born sinners. We make mistakes, and always will. There's nothing to "lose face", when we have to admit to our failure. If you can't face your mistakes, you will never learn and grow to be a better man.

Sunday, March 2, 2014

漢語是異常落後的語言

It's difficult to describe something precisely in Chinese. For example, how can I translate this sentence into Chinese "If connection is open, then close it." It's a simple sentence in English, but not as simple in Chinese. It's not easy to express its precise status in Chinese language. One would probably say "若連線中,則中斷連線。". Here is the problem. "連線中" doesn't necessarily mean "the connection is open". It can also describe the status "trying to connect". Furthermore, if we translate it into "若已連線,則中斷連線。" instead, "已連線" can also have other meanings. It maybe means "The connection has once established (but no longer exists)."

One of "many" flaws of the Chinese language is that it doesn't have a specific form to distinguish nouns from verbs. In my opinion, Chinese language is actually a curse from the ancient Chinese, tormenting their own descendents generation by generation and making them extremely retarded. Ironically, most of Chinese people are so proud of their backward language. They are stupid enough to be unaware of what makes them so incompetent.

Sunday, February 23, 2014

二二八大屠殺的死亡人數估計


從上面那個圖可看到,人口增加率在1942年至1945年是差不多。如果將游標停在上面,會看到數值。那四年的平均值約是2.6568%。請注意,那四年是正值太平洋戰爭期間,承平時期人口增加率必然較高。即便如此,若用那個平均值下去推算,台灣在二二八大屠殺中消失的人口是「至少」17萬人,絕對不是滯台妓豽豬的流亡政權謊稱的才幾千人,甚至才幾百人。妓豽流亡政權的算法是有申請補償才算受害者。關於補償,滯台妓豽豬真是笑死人的不知羞恥!阮美姝女士的書籍有提及,滯台妓豽豬居然貪婪到貪圖賠償,身為加害族群居然也跑去申請受害者身份。加之統支媒體推波助瀾,使得滯台妓豽豬彷彿也成了二二八大屠殺的受害者。妓豽豬的厚顏無恥,堪稱世界一絕。牠們當年應該要用臉皮當盾牌去打共匪,應該就不會戰輸走贏了。關於滯台妓豽豬冒充自己是受害者申請賠償的證據,阮女士的書很詳細的記載。沒記錯的話,書裡甚至有當時的申請表格的影印。有興趣的朋友請自行去書店翻閱。

這圖,可看見人口增加率基本上有它的規則存在。會突然高起或陡然落下,很可能都是外來因素。例如日本時代時,可能有大量日本人來台,隨著戰爭的進行,日本兵又被大量派往它處。藉由 graphical analysis 很容易能把那些突出的值捨棄。持平的來計算,在二二八大屠殺後,台灣當增加但未增加的人口就是至少17萬。這種算法,是用戰爭時期的人口增加率下去計算,所以實際上只會更多不會更少。

1946年降低很多,那是因為46萬日本人離開台灣。當時在台日人約48.8萬人。戰後,本約20萬日本人希望留在台灣,但因為通膨(沒多久後便「四萬換一塊」)導致的社會混亂,最後只2.8萬人留下。到了1947年,人口攀升,滯台妓豽豬湧入台灣。也就是那一年發生二二八種族大屠殺。再兩年,也就是1949年,眾所周知就是滯台妓豽豬全面潰敗,鼠竄逃來台灣,殖民寄生至今。1950年人口增加率是負的,原因不明,可能是有些妓豽豬投奔牠們米國爸爸還是怎樣,歡迎知道的朋友補充。

台灣人應當有這個認識,二二八大屠殺絕對不是過去式。因為屠殺了台籍精英,外來侵略者滯台妓豽豬壟斷台灣上層社會,使得台灣變成一個無「主體意識」的孤島。這種情況下,境遇較佳或有點能力的人往往因缺乏責任感而移民,當他們移民時,往往帶走全部家產。這還是其次,最糟的是持續在台灣幫外國賺台幣,持續的將收入寄往國外他的妻小。這種社會現象普遍,台灣如何能不持續疲軟?在台灣社會,例如醫生之類高收入的行業,打聽一下他們有多高比例家人是住在國外。缺乏主體意識,台灣不會有美好未來,等在眼前的,必然是如菲律賓、印尼甚至於孟加拉那樣貧窮的悲慘命運。

滯台妓豽豬的禍害,不只是當時入侵台灣而已。牠們至今掌控台灣水、電、油,連農民釀酒販售的權力都被牠們奪走。滯台妓豽豬是台灣的最大禍患。身為台灣人,勿和滯台妓豽豬結交,勿和滯台妓豽豬通婚,勿做台奸。交友前,應先打聽對方背景出身。日本人就是都如此,他們結婚前都會先把對方查個底朝天,區隔出在日朝鮮人或滯日妓豽豬。現在台灣人尚未有足夠能量驅離滯台妓豽豬,但在那之前,每位台灣人可以做的,至少是不要製造更多麻煩,生出一堆半山雜種豬。妓豽豬明顯有基因缺陷。東南亞如菲律賓或現在泰國那對貪腐兄妹黨,都是妓豽後裔。妓豽豬天生不知羞恥為何物,貪污、腐敗、造謠、說謊、走後門、賭博 (牠們稱麻將是國粹)、指鹿為馬、貪很多卻還自稱清廉,諸如此類,妓豽是非常非常腐敗的民族,而且腐敗的相當自然,腐敗就是妓豽豬的天性。

Friday, February 21, 2014

A BASH cd command that knows browsing histroy.

Wrote This BASH function many years ago, while I felt frustrated and sometimes upset having to input same directory names repeatedly. Among all BASH scripts I've written, this one is probably the most useful and frequently needed. Below is the code. Put it here so it might benefit others who also consider cd - and cd ~ is not capable enough for daily routines.
### functions

cdh()
{

### eliminate non-existing directories

    if [ ${#CDHIST[@]} -ne 0 ]; then
        declare -a tmp
        for (( i = 0; i < ${#CDHIST[@]}; ++i )); do
            if [ -d "${CDHIST[i]}" ]; then
                tmp=("${tmp[@]}" "${CDHIST[i]}")
            fi
        done
        CDHIST=("${tmp[@]}")
        unset tmp
    fi

### parse arguments

    OPTIND=1; # this is necessary for any function intending to use the builtin command getopts.
    typeset opt pl destination
    while getopts PLla0123456789 opt; do
        case "$opt" in
            'l' | 'a')
                if [ ${#CDHIST[@]} -eq 0 ]; then # this CDHIST not typeset-ed is in the global scope.
                    echo 'Error: The history is empty!' >&2
                    return 1
                fi
                typeset -i i=${#CDHIST[@]}
                # print the contents of the CDHIST array
                while [ "$i" -gt 0 ]; do
                    : $(( --i ))
                    printf "%d: %s\n" $i "${CDHIST[i]}"
                done
                # fall down or not
                if [ "$opt" = 'l' ]; then
                    return 0
                fi
                # ask for a choice
                read -p "$PS2" -n 1 choice
                echo
                # when the user opts not to change directory
                if [ "$choice" = 'q' ]; then
                    return 0
                fi
                # what to do when there isn't any correct character or there's typo having been inputted.
                if echo "$choice" | 'grep' --silent '^[0-9]\{1,\}$'; then # single-quote grep to avoid aliasing
                    :
                else
                    echo 'Error: Integer value expected!' >&2
                    return 2
                fi
                # how to deal the "out of range" situation
                if [ "$choice" -ge ${#CDHIST[@]} ]; then
                    echo 'Error: Out or range!' >&2
                    return 3
                fi
                # if nothing went wrong
                destination="${CDHIST[$choice]}"
                ;;
            [0-9])
                # exception handling
                if [ ${#CDHIST[@]} -eq 0 ]; then
                    echo 'Error: The history is empty!' >&2
                    return 4
                fi
                if [ $opt -ge ${#CDHIST[@]} ]; then
                    echo 'Error: Out or range!' >&2
                    return 5
                fi
                # decide the destination where cd is about to change to
                destination="${CDHIST[$opt]}"
                ;;
            'P' | 'L')
                if [ -n "$pl" ]; then # there could be only one -P or -L, not both.
                    echo 'Error: Incorrect options!' >&2
                    return 6
                fi
                pl="$opt"
                ;;
            *)
                echo "Error: Unknown option $opt" >&2
                return 7
                ;;
        esac
    done
    unset opt
    # decide what value the variable $destination shall be, if it still has no value.
    shift $((OPTIND - 1))
    if [ -z "$destination" -a "$#" -gt 0 ]; then
        eval destination="\$$#"
    fi

### use shell builtin command cd to change current working directory

    if [ -z "$pl" ]; then
        if [ -z "$destination" ]; then
            'cd'
        else
            'cd' "$destination"
        fi
    else
        'cd' -"$pl" "$destination"
    fi # Note: The exit status of shell builtin cd should be checked immediately.
    if [ $? -ne 0 -o "$OLDPWD" = "$PWD" ]; then # for weird operations including the specified directory not existing
        unset pl destination
        return 8; # don't update array CDHIST. leave it intact.
    fi
    unset pl destination

### update array CDHIST

    # assign a appropriate value to the variable $top, which should be the index of an array element going to be deleted.
    typeset -i i=0 top
    while [ $i -lt ${#CDHIST[@]} ]; do
        if [ "${CDHIST[i]}" = "${PWD}" ]; then
            top=$i # inundate the duplicated array item
            break
        fi
        : $((++i))
    done

    # initialize iterator $i
    if [ $top ]; then # in this if-else statement, we're going to recycle variable $i to save the precious system resource.
        i=$top
    else
        if [ ${#CDHIST[@]} -lt 10 ]; then # the capacity of array CDHIST is decided by this if-else statement.
            i=${#CDHIST[@]}
        else
            i=9
        fi
    fi
    unset top

    # update array CDHIST
    until [ $i -lt 1 ]; do
        CDHIST[i]=${CDHIST[i - 1]} # overwrite array element no longer needed
        : $((--i))
    done
    CDHIST[0]="$OLDPWD"
}

### aliases

alias cd=cdh
Save this in system file /etc/bashrc or your personal ~/.bashrc, just make sure it will be source-ed. The usage is simple. cd -l lists the directories you recently visited, and cd -a asks you which directory you wanna change to.

Thursday, February 20, 2014

妓豽的阿Q式崛起

統支媒體一天到晚吹捧妓豽。滯台妓豽豬不是整天喊著要和世界接軌?何故世界看衰妓豽時,統支媒體還成天捧妓豽?尤其是黨營的狆視、狆天。這裡,就讓我們來看看妓豽是如何所謂的崛起。用衛星圖來看,它不會騙人,不像很多妓豽的御用文人。

底下所有衛星圖都採用相同比例,讓我們來比較誰的海岸線最髒。污染嚴重的特徵之一是海岸線會不自然增生許多毒藻。首先是渤海,妓豽官方也是承認渤海已經無漁場。污染太嚴重,魚早就死光了。

妓豽東部沿海,長滿毒藻,從衛星上清晰可見顏色不正常。妓豽豬不是很愛吹牛從月球可看見長城?其實長城是看不見的,就像高速公路一樣,現在很多高速公路都比長城長並且寬。從太空看不見長城,但卻是看得見妓豽豬的骯髒海岸線。

妓豽南部沿海,情況也是一樣糟。

比較一下越南的海岸線,那些螢光色的髒東西幾乎不可見。注意喔!這都是相同比例,沒有刻意改圖來突顯妓豽豬的髒亂天性。這些圖,只降低顏色數,使得頁面能載入快些。圖是從 Google Map 抓來的,自己也可以去比較比較。

接下來是比妓豽豬還髒的兩個國家。東邊那個緬甸,有朝一日翁山蘇姬若執政,或許就能改善了吧?中間那個超髒的是孟加拉,眾所周知的人多且極度貧窮的國家。
再來是印度的海岸線,很乾淨。
接著是波斯灣,見不到螢光色的毒藻。
以色列及埃及的海岸線,也是很乾淨。無論猶太人或阿拉伯人,都很愛惜自己的土地。
地中海。歐洲的工業水準是不用再強調的,已開發國家不必然就是高污染。只有妓豽豬(包括滯台妓豽豬)會認為破壞環境是提高所得的唯一方式。
米東。也是顧的不錯,雖然米國不少邪惡公司不在乎破壞環境。那方面比較有名的故事是 PG&E 的污染案,它還被拍成電影 Erin Brockovich。不過,那是發生在米西。
米西,頗乾淨。
日本及死泡菜(小妓豽)。死泡菜也是髒,不愧是小妓豽。
菲律賓,未開發的落後國家。不過至少不像妓豽,暨不是已開發國家且又受到嚴重的化學藥劑污染。
妓豽的崛起就是如此了。環境破壞了,百姓支氣管疾病一堆,並且人口也老化了。日本也人口老化,但妓豽豬的差異是人老了,但口袋裡仍沒足夠的錢養老。沒有技術,只有勞力。賺到一點錢,就拿去炒地皮,製造一個史上最大的泡沫。

Tuesday, February 18, 2014

台灣的人口比重中心

重心的計算方式是:假設 a, b 兩點分別重 a_w 及 b_w 且在 Cartesian coordinate system 內的座標分別是 (a_x, a_y) 及 (b_x, b_y),則它們的重心位置是 ((a_x, a_y) * a_w + (b_x, b_y) * b_w)/(a_w + b_w)。若三個點則是 ((a_x, a_y) * a_w + (b_x, b_y) * b_w + (c_x, c_y) * c_w)/(a_w + b_w + c_w),以此類推更多點。(To view this formula correctly, you need Firefox.)

人口作比重,依據2013年8月全台352個鄉鎮的人口數,這不包括澎湖、金門及馬祖,但涵蓋隸屬臺東的蘭嶼及綠島,整個台灣島的人口重心的座標是在424台灣台中市和平區天輪村。

日本時代,總督府在台北是因鄰近日本,便於日本人聯繫日本本土。妓竊時代(滯台妓豽豬竊台時代),土匪集團的偽都在台北,也同樣是便於滯台妓豽豬們遙望牠們的妓豽豬國。戰輸走贏逃難台灣的滯台妓豽豬的成份,主要是南京豬佔大宗。蔣匪介石是浙江豬,以台北作土匪巢穴想必也是有鄰近牠故鄉的意味存在。總之,都不是台灣作為主體。

妓竊時代結束後,應遷都至台中市。這才是以科學角度優化台灣人的生活,不再獨厚一方,不再是以外來殖民者的心態、角度來制宰台灣的一切。

目前,台北妓豽城作為豬仔的巢穴,因其特殊身份,獲得較其它四都更多統籌分配款。例如,台南獲得的統籌分配款不到台北的1/3。妓竊時代以來,台灣一直是所謂的重北輕南,其實是重妓豽豬、輕台灣人。滯台妓豽豬把高污染往中部、南部丟,很長的一段時間,直到民進黨執政高雄,愛河才終於不再是臭水溝。那個撲鼻臭味,至今仍光是想像就讓人想吐。

終結妓竊時代,遣返滯台妓豽豬(包括半山雜種),拒絕妓豽豬在台繁衍污染台灣土地,應當是這一代台灣人責無旁貸的責任。

Sunday, February 16, 2014

For the love of God, next time please document it.

It costs me 3 days to figure out that the CUPS now needs cups-filter to handle file formats. My last version of CUPS is 1.4.0. which, if my recollection serves me right, does not need anything other than the .ppd file to print documents from anywhere. I googled it and googled it, very tired, day and night, all day long, and finally found an article that mentions cups-filter. The official document of CUPS should have documented this change.

Saturday, February 15, 2014

Hide arbitrary text contents in HTML document.

Sometimes we encounter this situation where there are double-minus inside the paragraph of a HTML document that we want to temporarily make invisible. The problem mainly is that the double-minus has special meaning to HTML. We can't just use <!-- and --> to enclose it so as to hide it. We need to convert it into something that doesn't have double-minus inside, before we comment it out. In this case, the utility named openssl comes in handy. For example,

A dummy double-minus -- is here.

If we throw it into the stdin of the pipe xz -9 | openssl enc -base64 -e, it will return

/Td6WFoAAATm1rRGAgAhARwAAAAQz1jMAQAgYSBkdW1teSBkb3VibGUtbWludXMg
LS0gaXMgaGVyZS4KAAAAABTizwrgs6ttAAE5Ic8oa2IftvN9AQAAAAAEWVo=

Now, the double-minus is gone. It's safe to comment it out to make it invisible.

<!--
/Td6WFoAAATm1rRGAgAhARwAAAAQz1jMAQAgYSBkdW1teSBkb3VibGUtbWludXMg
LS0gaXMgaGVyZS4KAAAAABTizwrgs6ttAAE5Ic8oa2IftvN9AQAAAAAEWVo=
//-->

How to restore it back? openssl enc -base64 -d | xz -d will do.

In actual case, the replacement usually is smaller in size than the original contents, because of the compression.

Wednesday, February 12, 2014

fun with c++11

Recently, I'm updating my knowledge of C++ to C++11. It has become a more convenient language now, saving some input. At least, you don't have to type tedious codes such as
for (TContainer::const_iterator it = coll.begin(), end = coll.end(); it != end; ++it)
again and again. Since C++11, we have range-based loop, something that Perl, JavaScript and BASH already have years ago.

Speaking of Perl, today I found out how easy it is to implement a Perl-like join. Below is an example.

#include <cstdio>
#include <string>
#include <sstream>

class join
{
public:
    join(char ch) : m_sDelimiter(1u, ch) {}
    join(const char * sz) : m_sDelimiter(sz) {}
    template <typename T>
    std::string operator()(T && arg) {
        std::stringstream ss;
        ss << arg;
        return ss.str();
    }
    template <typename T0, typename... argTs>
    std::string operator()(T0 && arg0, argTs&&... args) {
        std::stringstream ss;
        ss << arg0 << m_sDelimiter << (*this)(args...);
        return ss.str();
    }
private:
    std::string m_sDelimiter;
};

int main(int argc, char * argv[])
{
    std::string && s = join(", ")("apple", 135, "banana", 2.46, "cherry");
    ::printf("%s\n", s.c_str());
    return 0;
}
Yes, I knew there were boost::join already, but boost::join doesn't allow us to join elements of different data types, which sometimes is not as convenient as Perl's built-in function join.