about 3 years ago

螽屍媒體,慎入
頂新退出油市場 181員工絕望

在頂新集團待25年的管理組長王淑芬語帶哽咽說,這個國家病了、社會病了,這種幾近追殺式、攻擊式「滅族」、「滅頂」手段,她完全不能接受。
她和前董事長魏應充共事過,「他是這麼好的人,不懂為什麼受到這樣對待,真的很心痛,直到這一刻仍選擇相信,還要跟董事長說聲加油。」

全民發起抵制頂新運動之後,開始有一些消毒文出現
不外乎是「這些員工是無辜的」論調,甚至直指抵制是「理盲濫情」、「跟風」

這神邏輯真是不敢苟同
我都快搞不清楚這些人到底是拿錢辦事、還是真的用這種思考模式在過人生

好比說

  • 用先進技術創業會讓很多無辜的人沒飯吃

所以不要創新了嗎?

  • 取消對沒競爭力的高科技代工業補貼,順便再對環境污染重罰,也會讓很多無辜的人失業

所以繼續扶植低利潤高污染可取代工業,讓台灣產業體質差的同時人民身體也變差,一舉兩得?

同樣因為我不想讓慰癮蟲這個蓄意毒害人民的老闆賺錢(我用蓄意,因為絕不是意外)導致有人失業
那我活該自己承受爛品牌、承受吃毒的風險嗎?

同情心是應該用在這種地方嗎?

華隆紡織欠員工多久的退休金

關廠勞工領不到資遣費,反被勞動部求償,員工臥軌時被人臭罵輾過去

一堆國道收費員被遠通弄到沒工作


每天有多少勞工超時工作,沒人願意出來吭一聲
現在頂新要少賺點錢囉,員工趕快站出來替老闆打悲情牌
想想也對,這就是台灣人

有這麼多需要幫助的人都被無視了
偏偏去同情頂新的擋箭牌員工

我抵制頂新集團,是因為這個品牌形象徹底瓦解
加上政府的信用破產、任何安全審查制度都被刻意玩弄、形同虛設
更可怕的是政府在事前已經有充分證據顯示台灣的食用油料絕對有問題
ref: 20141009林淑芬質詢頂新餿水油
卻為了保全這些老闆一再掩飾
抵制,不是意識型態、不是個人喜好,更不是跟風

連最基本食安都做不到的公司,有什麼理由存活在市場上

回到新聞原文
這一百多人早在大家還沒抵制就先失業了
退一萬步說,就算因為受到抵制之後他們才失業,錯也是在公司高層,怎麼會是被毒害憤而抵制的人民?

『人們必須顧及「頂新」的十幾萬員工。這是很奇怪的邏輯,它連台灣兩千萬消費者的死活健康都不管了,人們憑甚麼要去管它的員工?它的員工是它的事,不是台灣消費者的事。』

南方朔

日本人把雪印弄倒了
現在大陸人也要抵制頂新的康師傅了
反觀台灣人,爆發之後17號味全漲停板

「味全股價已經跌到可投資的階段了,加上由尹衍樑出面穩定投資人信心。」從味全股價來看,黑心油爆發後,連四天跳空跌停創五年來新低,沒想在頂新記者會後,彷彿坐雲霄飛車,17號開盤從21.95元,漲停板到25.25元,委賣張數達30127張,民眾:「對味全股票有信心,因為有尹衍樑這麼有份量的人出來喊話。」

財經分析師黃世聰

如果你因為看到味全員工失業,就從抵制轉而繼續買他們家的產品
這不是理盲濫情,什麼才是理盲濫情

 
about 3 years ago

今天看到立蓁主播也加入大陸電競圈行業了。

一方面替他高興,可以找到新的挑戰跟屬於自己的地方

同時不免還是對台灣的環境感到氣憤

同樣身為在台灣沒有發展的軟體業,完全可以理解那種想留在臺灣卻無法的困境與掙扎

台灣沒人才?

難道大陸韓國新加坡挖角都是挖屎嗎

不是只有電視上看到的名人,也不是只有頂尖的人才才能出去

身邊例子越來越多

然而出去的人哪個不想念台灣

身在一個食用油明顯不進口也不會短缺,政府卻不做任何查緝的國家

身在一個縣長帶頭炒房弄垮台灣經濟,卻理直氣壯叫你不爽不要買的國家

身在一個行政立法都公然違憲,本應違法修成合法,本應合法修成違法的國家

這種荒謬的國家到底還可以荒謬幾年

講實話,盡本分居然被歌頌?

柯文哲在節目上問大家:「連勝文憑什麼跟我報一樣多的財產」

所有人笑而不答,這個笑是笑柯滑稽還是無奈,或許都有

沒有人可以回答他為什麼,當然也不需要回答他為什麼

我不知道有多少人看到這段

他只是講出一個小學生都能夠判斷的事實

但為什麼大家要無奈的笑?是因為只能笑了嗎?

為什麼一個講真話的白目醫生會被捧到跟神一樣

為什麼一個盡了比較多食品業本分、相對守法的公司也被捧到跟神一樣

造神運動,該檢討的是柯文哲嗎?該檢討的是義美嗎?

反了吧,是這整個國家,徹頭徹尾都該檢討

台灣人才有多行?

行動支付從領先到完全落後

奧運金牌回國找不到工作

電競元年搞到選手主播全部拆夥去香港大陸

全世界最強的代工王國做了幾十年還在代工,再幾年差不多也不用代了

還有好多好多根本數不完

一流人才、二流環境、三流愚民,配上狗屎般的掌權(錢)者

這個國家的格局實在太小,所以只容得下猴子

這還太污辱猴子了,就像大家最近一直污辱豬一樣

 
about 3 years ago

剛看到一篇
張系國:台灣人最愛的「小確幸」,根本是最自私的想法

幾千年的中華文化我實在不是很懂,或許中華文化就包含著自私,或許沒有

但至少我認同:幾十年來的台灣深受「自私」這個毒瘤所苦,並且在近年開始發病,大家才發現台灣病得不輕

而張系國所要闡述的主旨,雖然大體上我同意

但顯然他對日本文化不甚了解,才會對這個外來名詞嗤之以鼻,將它貶為純粹的哈日行為

所以文章內容對台灣人的思考方式描寫不夠細緻,只是單純地用自私帶過
(對不起我自認為比較懂台灣人的劣根性)

<!--more-->

其實他要針對的應該是台灣歧異過的「小確幸」

但這個從日本文化而來的詞並沒有錯,就像「宅」一樣

錯的是凡事不願深究,總是將自己膚淺的理解套用在未知的事物上,藉以合理化既有行為,並對此感到自我滿足的台灣人

舉例來說:

「宅」?哦我知道啦就是那種臭臭髒髒胖胖不太會講話的男生!
「小確幸」?我今天撿到一百塊超爽的,但也不是很多錢,就是小確幸啦!

你發現了什麼?

會這樣理解的台灣人,根本懶得去理解別人的文化、文字內涵的意義,那樣子思考太累了

反正看到一個「新」的詞彙、概念,就把它直接「對應」(mapping) 到「舊有」的思維上

就幾乎不用動腦,不用理解吸收,可以馬上告訴自己「我懂了」

原本理解、吸收新事物的過程應該是這樣:

對很多人來說卻變成這樣:

所以理解的事情並沒有增加

這是很可怕的速成習慣,一如我最詬病的台灣文化─短視近利

以為自己在短時間內達成了什麼,實際上卻只是在自己的小圈圈裡面志得意滿

話說回來「小確幸」的真正意義是什麼?

不想去看村上春樹的書、不想深究日本文化沒關係
隨便找就知道小確幸根本不是台灣人愛用的那樣,像是:
人間百年筆陣-- 每個日子裡的「小確幸」

就我的理解,小確幸是找到屬於自己定義的幸福

是懷著知足與感恩去體會生活,感謝每一天的平凡

村上春樹認為:「為了找出個人生活中的小確幸,還是需要或多或少有類似自我節制的東西。例如忍耐著做完激烈運動之後,喝到冰冰的啤酒之類的。」

「自己定義生活、從自我要求中反過來找到確切可以讓自己開心的東西」

恰好跟台灣人定義的小確幸完全相反

台灣人的小確幸是放棄思考
大老闆講話比較有可信,知名人士講的話就有參考價值
以名聲、權威來決定一個人說話的份量
最應該尊重的專業人員往往是最不被尊重的那一群

大家說公務員好就考公務員,大家說哪個科系賺錢就念哪個科系

所以有人把鐵飯碗當做小確幸,即便這個鐵飯碗是全民負擔
所以有人把跟風排隊買炒作的商品當做小確幸,即便你是用錢買了跟別人毫無差異的「幸福」
所以有人不願意站出來對抗剝削、壓榨、人吃人,反正這次不是自己就好,即便早晚都會輪到自己

小確幸本應是「小」且「確實」的幸福

放棄思考、鴕鳥心態的隨波逐流真的有「確實」嗎?

剛好相反

台灣人就是不知道哪裡有確實的幸福,才總是跟著別人走

「幸福」這個詞的重量絕對不是隨波逐流就乘載得起

對,思考真的很累
但當人停止思考的時候,就別期待幸福會自己上車
因為不思考的人腦袋根本裝不下什麼幸福
裝得下的不過是一堆虛幻的想像罷了

當然我的理解未必完全符合原意

你也可以說你的幸福就是放棄思考、得過且過

但現今的台灣,除非你已經踏入棺材一半,否則恐怕沒有人有資格得過且過了

大家口中的腦殘政府、智障政客,他們用的腦力還遠比這些濫用小確幸的人多

繼續幻想吧,台式小確幸。

(本篇作者為說話沒份量的菜鳥工程師)

Read on →
 
about 3 years ago

這幾天香港的假普選抗議運動在網路上鬧得沸沸揚揚(對,沒有電視報紙)

每次有運動就會有些不清楚現況的人,對這些「年輕人」大扣帽子
認為這些人是無所事事,毫無競爭力,不靠抗議以後可能就會失業的低階份子
趁這次機會來撕掉一些錯誤的標籤

「你們不要怕競爭,沒競爭力不管統一還是獨立都一樣」

是我從學運以來聽過長輩講最多次的一句話
看起來好像有道理
但我認為這句話 從根本上就搞錯了台灣年輕族群的擔憂與理想

首先是競爭(精確地說,是指著年輕人說你們怕競爭)
我非常肯定地說
最關心這些事情的反而是最有競爭力的一群
是就算被統一了,比台灣大多數人都還有能力不被淘汰的人
沒有競爭力的人根本不會了解事情的嚴重性

學運是競爭力不足的年輕人搞的東西

我反問一句好了:只要加強自己能力就能高枕無憂了嗎?
這世界上有太多東西,並不是用能力決定的
是關係、是地位、是階級
在台灣甚至是比誰先早出生
所有的利益分配都是政治決定的
不關心政治比死還可怕,最慘將會失去自由

學生搞什麼運動,專心念書比較實在

這裡有一個明顯不合理的假設:搞學運會荒廢學業
我不認為靜坐個幾場就會把台灣大學生的競爭力搞差
難道競爭力差的學生,不去參加學運就會在圖書館用功?
這實在太看不起台灣年輕人,也太看得起台灣年輕人了

我也不認為上班族花一點心力在關心社會運動就會讓台灣競爭力下降
我們的產值一直都在提昇,只是沒有回到基層的薪資而已,這是事實
不要看不起願意犧牲自己休閒時間的上班族

你問我為什麼如此肯定

是信念

這些人的信念遠比那些只願意安於現狀的人強太多了
他們大可以獨善其身,只專注在培養自己的競爭力就好
更甚者像一般人,回家打開電視罵一罵笑一笑就好
只是話又說回來
沒有信念,空有競爭力
難道就可以拯救破產的勞健保、退休金?
難道就可以打破台灣這個假民主真鄉愿社會?
難道就可以阻止階級複製,讓有能力的人上檯面?
我不信。

有信念,才有核心價值,才有動力去做自己認為正確的事情
才不會空有能力,卻被他人所奴役,甚至去當共犯奴役他人

培養競爭力
的確是一個應該努力的方向,不過也只是其中一個面向
我不認為這跟學運、社運有什麼衝突

這種錯誤認知就像叫大學生不要去搞社團一樣
有能力的人自然可以兼顧好幾個社團跟學業(雖然要付出一些東西)
不用功的人就算不參加任何外務一樣會被二一
難道我們會說社團是危害學業的元兇嗎?

會因為學運荒廢學業的人,那是他要對自己負責,不是學運要為他負責

學運浪費時間,政府根本不鳥你

乍看之下,每次運動有達到訴求跟目的嗎?
沒有,幾乎每次都輸了!

但這些運動的本質是喚醒,不是正面對抗
透過一次又一次的喚醒,下一次將會有更多人站出來對抗
社會如果沒有凝結這樣的意識,絕對無法改變

台灣需要喚醒所有人的民主意識
從每個人的生活周遭開始
去監督、去質疑那些「沒有競爭力」的權力者
即使是你家附近的鄉鎮里長也好
他們擁有操縱所謂「民意」的權力,卻不見得有盡到職責

年輕人真的怕競爭?

現今的台灣尚且提供一個雖然很虛偽,但至少還能競爭的環境
隔壁的香港已經毫無選擇了
要普選?給你阿,大便、餿水、爛蛆三選一
要自己決定未來?抱歉,不存在這選項

自由是用多少錢也換不來的
「競爭的權力」也是一種自由,是可以被限制的自由
當自由被剝奪了,再有能力,無法競爭都是空談

我們根本不怕競爭

我們怕的是「不競爭」

真正怕競爭的是待在家裡只想每個月領退休金的那些人
真正怕競爭的是那些不敢站出來抵抗不公義,只想在共犯結構裡繼續謀取蠅頭小利的人
真正怕競爭的是握有大量政策經濟補助、破壞台灣環境資源,沒有保護傘就會倒閉的人
真正怕競爭的是握有既得利益,卻沒有能力,不想因開放競爭而失去地位的人
真正怕競爭的是已經過得很安穩,懼怕因為社會正義而犧牲掉自己利益的人

最後,支持香港佔中運動,反對香港假普選
不管在台灣、香港,還是全世界
民主社會參與公民運動,一直都應該是理所當然

 
about 3 years ago

你有沒有想過傳統宮廟在台灣到底是扮演什麼角色?
很多人都拿過宮廟的獎學金、參加活動,吃過免費的食物

其實也不少人知道
傳統宮廟、宗教,跟地方派系勢力綁樁幾乎是公開的祕密
能夠綁樁靠的就是利益輸送
虔誠的信徒提供大量資金,廟宇只要回饋其中一部分當獎學金、辦活動即可
中間的醜態就不細說了,隨便拿這些關鍵字找一下都有

星期五下班
看到某某宮在晚上九點多遊行
極大的噪音、阻礙交通就不說了,那是另一回事
台灣人似乎也很能忍受這樣的情形
「因為這是我們的傳統習俗嘛」

不過當我看到旗子上面掛著「代天巡狩」「肅靜」
同時被遊行中低俗的電子花車的喇叭,用最大音量貫耳的時候
不禁想「台灣怎麼可以容忍這種東西存在?」

講到正義應該要知道羞恥退三步的勢力,可以喊著要替天行道(就算那只是張旗子)
用毫無文化水準的電子音洗民眾耳朵卻要大家肅靜
(我絕不是否定傳統文化,南北管還是嗩吶沒什麼不妥,而是背後的動機)

一個社會的形成就是從習俗、觀念這些小地方長久潛移默化並傳承的
你可以說我想太多,不過我一點也不這樣認為

從小我們就從各種地方拿了不公不義的好處(即使很少)
卻從沒想過這些錢從哪裡來,他們為什麼要這樣做
「反正有賺就好啦,管這麼多」
不問大是大非,貪小便宜,不就是最好操縱的嗎?

我們以為鄉鎮里長的任務是辦辦活動給大家吃便當
真的只是這樣嗎?他們得到的利益跟背負的任務是什麼?
仔細想想,這些給我們的「回饋」實在是太微不足道了。
而我們卻沉浸於這樣的滿足當中,寧願被奴役,成為共犯結構的一份子
以為有投票權就是民主社會
卻沒人監督他們政績、金流來源

沒有人會說我會九九乘法表就是懂數學
但台灣有多數人卻覺得可以投票就叫做實踐民主

仔細想想吧
盜國外藝術家圖片的人臉不紅氣不喘地每天指控別人造假
靠政府政策大量補助、污染台灣環境才活得下去的產業跟你說要有競爭力
背後有財團撐腰,前面擁有修法權力的立委為了私人利益踐踏法律,然後叫你要有禮貌

最怪的是這些人也好,公司也好
下一次還是可以選上,明天仍然可以賺到錢
把怒氣都集中在檯面上這些權貴,確實是不理智的
因為最該追究的根源不是他們,而是鄉愿
是你我身邊這些得過且過,被人賣了還幫人數鈔票的、被奴役成性的家畜觀念

 
about 3 years ago

如何做台灣新聞

一、找一個會令人憤恨不平,或是道德上難以令人接受的故事,像是:

  • 擋救護車比中指
  • 破壞公物錄影PO上網
  • 外國人在公車上對司機大呼小叫
  • 大學教授挑戰警察公權力
  • 名車歐巴不服取締,開車衝撞警察
  • 高材生殺前女友

如果沒有,想辦法生,叫個混混去肇事
當然不見得是媒體生的,看誰有掩蓋議題的需求。

二、蒐集所有有關這個主角的相關資料,把他塑造成女巫

參考:wiki: 獵巫
包含但不限於:

  • 基本身家調查(親友相處鄰居評語他一定是交了壞朋友)
  • 求學、工作經歷(高材生自毀前程、科技新貴傻呆蠢)
  • 喜歡吃的食物(愛吃內臟很暴力)
  • 興趣(愛打電動很宅,愛跟朋友鬼混不意外)
  • 生前親密照(讓大家看看他的嘴臉)
  • 模擬事件流程(不夠完整就自己加)

好的就盡量寫成不勝唏噓
壞的就拼命落井下石讓觀眾覺得「難怪會xx不意外啦」

三、看題材熱度以及議題發展程度,決定要不要繼續重複第二步,若退燒了就回第一步

思考盲點

媒體播放這類新聞完全沒有問題
但當媒體「只重複播放」這類新聞的時候,那就是鬼島了

雖然AV跟台舔最常發生一個禮拜每天一小時都在殺同一個女巫的情況
但像喜歡重口味的水果新聞以及其他媒體也都有類似現象

這類新聞一直重複播放,對台灣社會的兩類重要議題有極大的危害:

與新聞本身有關的社會議題

媒體從不深究形成這類問題的根源
而是反過來用愚蠢的二分法將某些特質貼上標籤,將問題極度簡化
塑造到一個極致之後,觀眾會認為這些女巫生來就是妖魔鬼怪

殊不知孕育出這些人的就是整個台灣社會
單親家庭、教育失敗、家暴、標籤歧視、貧富差距、黑道介入校園、毒品氾濫、黑道介入
這些難解的問題,居然只要說主角「愛打暴力電玩」就結案了

「反正就算無解,把這些女巫綁起來燒掉就天下太平」
這是最危險的思考陷阱,愚民化的重要一步

我最愛講的就是
你知道自己身邊有多少潛在罪犯,甚至根本就犯過罪嗎?
你不知道可能只是因為未遂或是沒被抓到而已

身邊有一些所謂的「朋友」犯過罪
有一般的偷竊,也有一年以下跟三年以上的刑事責任
但因為各種原因,多數人並不知情,仍然覺得這些人是「好人」

如果你以為我只是特例,一定是我交的朋友比較壞,或是水準比較低,那就大錯特錯
把我的求學過程攤開,周遭都是社會所認定的「高材生」與「菁英份子」
難道犯罪者就一定要精神異常,而不是你我身邊的好同學嗎?

講出來只是想告訴各位,根本沒有所謂的「好人」與「壞人」
而媒體最喜歡二分法,把那些女巫都挑出來,剩下的就是好人
你們知道忽視社會問題、忽視身邊的未爆彈,這有多嚴重多危險嗎?

與新聞本身無關的國家大事、世界新聞

即使這些女巫可以被簡單的二分法,台灣也沒有這些社會問題
有其他更重要的事情仍然因為這些新聞而被掩蓋

  • 食品安全(上游廠商又對全台灣下毒啦)
  • 環保議題(環評又鬆綁啦)
  • 居住正義(建商都準備好啦,反正泡沫不是他們在吃)
  • 經貿議題(服貿貨貿還有什麼貿到底過了沒阿?)
  • 國際形勢(你知道哪裡又暴動、哪裡要公投獨立、哪裡又宣戰了嗎?)

至於是誰願意花這麼多錢、誰能花這些錢去買媒體篇幅,請自己好好想想

你知道台灣有數不清的行銷公司就是專門負責炒作議題、製造假象的嗎?
你知道不只新聞能買,網路上所有輿論也都是秤斤論兩在賣的嗎?

現在知道還不算晚。

 
over 3 years ago

前人案例

[爆卦] 簡訊被轉接 手機門號遭小額付款盜刷
2013/10 有網友因為 emome 被盜,簡訊轉接將 839小額付費的密碼轉到對岸信箱,被盜刷了五千元
蘋果新聞版本

今年七月,還是有人被盜,這次是8591(不過主因是他在8591的帳密跟 emome 完全一樣)
http://www.ptt.cc/bbs/Gossiping/M.1406656759.A.8D6.html

自身被盜經驗

昨天我也收到「簡訊轉接服務開啟」的簡訊
今天又收到通知是轉到一個奇怪的信箱,覺得不單純,一查發現有這種事情

致電中華電信客服之後幫我取消簡訊轉接
並且確認現在 839 小額付款的功能是關閉的,今年七月後必須要本人持證件去門市申請才能使用
(哦?上面第一個新聞不是說去年就改了?)

發生這件事情之後我其實想要的是取消 emome 帳號跟手機的連結
客服基本上都會建議改密碼,然後掃毒、不要點釣魚網址
但是就個人理解,被盜原因只有兩種:

  1. 中華電信本身資料已經被有心人士取得(資料庫用明碼存...?)
  2. 我的電腦中有木馬等惡意後門,或者我經由釣魚網站自己將帳密洩漏出去 因此改密碼幾乎是沒有用的,通常被盜的人也都是有裝防毒軟體,而我自己更不會被釣到..

但是客服卻回我要自己去門市帶證件申請取消..然後重複一遍網路安全教育
(網路上有人線上取消過,我猜是不希望我這麼快取消)
emome 上面除了有我的部份個資之外,還可以申請各種付費功能

給尚未受害的人強烈建議

如果你還沒申請 emome 跟手機連結的相關服務,建議都不要去使用
如果你已經申請了,建議改一個跟「其他帳號」完全不一樣的密碼
避免 emome 受害的同時,其他帳號也跟著遭殃(像上面的8591)
或是乾脆一點直接取消跟手機門號的連結(如果你有辦法說服客服或是自己跑一趟)

假設真是的中華電信端的問題,改密碼就完全沒有意義,還會多暴露你密碼的使用習慣
怎麼說?人是很懶惰的,大部分人並不會針對每個服務用完全不一樣的帳號密碼
今天你改了 emome 的帳密,你就會記住他,下次你怕忘記,可能就用這組帳密申請別的服務
因此一個網站的資料洩漏,其他網站的密碼也全都不安全了

假設是使用者端的問題,中華電信也不應該把責任推給使用者
一個付費機制應該要能做到在事前將傷害降低到最低(不要有轉接簡訊這種超大權限的服務,或者申請門檻提高)
就算發生了,也要能有事後的對應措施,像是:
1. 所有 emome 付費服務的申請門檻提高(ex: 需要持證件到門市辦理)
2. 讓使用者有權力停用所有 emome 付費功能
3. 付費前必須增加進階驗證(ex: 手機鎖),而不是只叫你改密碼
這些機制中華電信完全沒有

「簡訊轉接服務」本身的設計就極度不安全,他的機制讓所有客戶承受了不必要的風險

  1. 只需要用 emome 帳號即可申請,不用任何身分認證
  2. 可以無限制轉到任何電子信箱,方便詐騙集團作業 不管帳號密碼是如何外洩,這種服務原本就不應該這麼輕易的被開啟 但是中華電信似乎不想更改這樣的機制 現在雖然不會將中華電信內部的認證簡訊轉出去,但其他網站的密碼對中華電信來說就只是一般簡訊 因此盜客取得了你的 emome 之後,你的手機認證就跟廢物一樣,認證簡訊照樣傳給盜客

要我說的話,單靠使用者的觀念來預防根本是癡人說夢
我身邊的族群應該都對資訊安全有一定的認知,而且幾乎是30歲以下的年輕人,過時的手法絕對沒有用
但還是三不五時傳出有人帳號被盜,甚至我自己也中標好幾次(apple id, line, emome)
更不要說對電腦網路不熟悉的一般民眾,應該要預設他們有一定的機率會被盜,將整個機制做好,就算發生了也能將傷害降到最低

改密碼、退租服務,這些都是被動的作法,下次再被盜還是一樣門戶大開,想做什麼就做什麼
為何不提供主動阻擋付費的機制?我想主要還是成本與人力考量

出包再來說。

 
over 3 years ago

source

Binary Search Trees - C Program ( Source Code and Documentation )

note

一開始我拿到這份 code 就自以為的把其中一個方向加上等號
以為作者漏掉了有相同 value 的 case
但後來去查了 BST 的定義,似乎 key 要是唯一的,所以不允許這種情形發生

但是實作上總是會有遇到這種情況的時候
Programming Interviews Exposed 的作者就回答了讀者的這個問題:Duplicate Values in Binary Trees

我把作者的回答簡短用自己的話再說一次:

你當然直接可以只幫一邊加上等號,但當相同 key 出現超過兩次的時候,就不會是一個 balanced tree
(可以想像 insert 7 個 5 的時候,會跟一個 height 7 的 linked list 等效)

另一個折衷的辦法是幫兩邊都加上等號,這樣 [5,5,5,5,5,5,5] 就可以建出一個 height 為 3 的 balanced tree
(按:但假設是 [5,4,6,5,5,5] 的話,不管你選擇走哪邊,一定會建出一個 unbalanced tree,
又回到上面的 case,所以除了兩邊等號之外,還要去做 rotation,才能解決 unblanced 的問題)

最後作者說其實在實務上他看過的都是把這些 key 當做一個 set 處理
像是 這篇文章 說的,在每一個 node 下面用一個 list 去儲存,這樣會比加上等號來得好

source code

BST.c
#include <stdio.h>
#include <stdlib.h>

typedef struct treeNode
{
    int data;
    struct treeNode *left;
    struct treeNode *right;
} treeNode;

treeNode* FindMin(treeNode *node)
{
    // There is no element in the tree
    if(node == NULL) {
        return NULL;
    }

    // Go to the left sub tree to find the min element */
    if(node->left)
        return FindMin(node->left);
    else
        return node;
}

treeNode* FindMax(treeNode *node)
{
    if(node == NULL) {
        return NULL;
    }

    if(node->right) 
        FindMax(node->right);
    else
        return node;
}

treeNode* Insert(treeNode *node, int data)
{
    if(node == NULL) // create element
    {
        treeNode *temp;
        temp = (treeNode *)malloc(sizeof(treeNode));
        temp -> data = data;
        temp -> left = temp -> right = NULL;
        return temp;
    }

    if(data > (node->data) ) {
        node->right = Insert(node->right, data);
    }
    else if(data < (node->data)) {
        node->left = Insert(node->left, data);
    }

    // Else there is nothing to do as the data is already in the tree.
    return node;
}

treeNode* Delete(treeNode *node, int data)
{
    treeNode *temp;
    if(node == NULL) {
        printf("Element Not Found");
    }
    else if(data < node->data) {
        node->left = Delete(node->left, data);
    }
            
    else if(data > node->data) {
        node->right = Delete(node->right, data);
    }
    else // data == node->data
    {
        // Now We can delete this node and replace with either minimum element
        //   in the right sub tree or maximum element in the left subtree
        if(node->right && node->left)
        {
            // replace this node with minimum element in the right sub tree
            temp = FindMin(node->right);
            node -> data = temp->data;

            // As we replaced it with some other node, we have to delete that node
            node -> right = Delete(node->right, temp->data);
        }
        else
        {
            // only 1 or 0 children
            // directly remove it from the tree and connect its parent to its child
            temp = node;

            if(node->left == NULL)
                node = node->right;
            else if(node->right == NULL)
                node = node->left;
            
            free(temp); // temp is longer required
        }
    }
    return node;
}

treeNode* Find(treeNode *node, int data)
{
    if(node == NULL) // not found
        return NULL;

    if(data > node->data)
        return Find(node->right, data);
    else if(data < node->data)
        return Find(node->left, data);
    else //found
        return node;
}

void PrintInorder(treeNode *node)
{
    if(node == NULL) {
        return;
    }

    PrintInorder(node->left);
    printf("%d ", node->data);
    PrintInorder(node->right);
}

void PrintPreorder(treeNode *node)
{
    if(node == NULL) {
        return;
    }

    printf("%d ", node->data);
    PrintPreorder(node->left);
    PrintPreorder(node->right);
}

void PrintPostorder(treeNode *node)
{
    if(node == NULL) {
        return;
    }

    PrintPostorder(node->left);
    PrintPostorder(node->right);
    printf("%d ", node->data);
}

int main()
{
    treeNode *root = NULL;
    root = Insert(root, 5);
    root = Insert(root, -1);
    root = Insert(root, 3);
    root = Insert(root, -14);
    root = Insert(root, 8);
    root = Insert(root, 10);
    root = Insert(root, 9);
    root = Insert(root, 6);
    PrintInorder(root);
    printf("\n");

    root = Delete(root, 5);
    root = Delete(root, -1);
    PrintInorder(root);
    printf("\n");

    treeNode *temp;
    temp = FindMin(root);
    printf("Minimum element is %d\n", temp->data);

    temp = FindMax(root);
    printf("Maximum element is %d\n", temp->data);

    temp = Find(root, 8);
    if(temp == NULL) {
        printf("Element 8 not found\n");
    }
    else {
        printf("Element 8 Found\n");
    }

    temp = Find(root, 2);
    if(temp == NULL) {
        printf("Element 2 not found\n");
    }
    else {
        printf("Element 6 Found\n");
    }

    return 0;
}
 
almost 4 years ago

最近很紅的 Twitch Plays Pokemon


update: 2/19 人數突破 80k ,並且改成投票方式決定模式
(必須超過75%才會改,模式有兩種:原本的暴民猴子or投票)
目前我看的時候是投票制,所以不再是無限猴子了..

Read on →
 
almost 4 years ago

今天重灌一台老筆電

由於工作需要開 M$ word 並且要確保格式不能跑掉

只好把 Ubuntu 移除灌回 XP

但是安裝的時候一直跟我說硬碟損毀無法安裝?

(一開始以為是 MBR 出了問題,還花不少時間去找 fixmbr 之類的解法)

後來仔細一看,我所謂的 C:\ 根本是 USB driver 的代號,安裝過程也只有這一個選項

那硬碟去哪了?

Google 之後才知道很多廠牌的硬碟都支援 AHCI mode

但是 XP 本身並沒有內建 AHCI 的 driver,所以第一次安裝自然就看不到硬碟

到 BIOS 下找到 AHCI 相關的選項,改為 Compatible Mode (或 Standard IDE / Disable 之類)

儲存設定後重新開機就可以在 XP 安裝的時候看到原本的硬碟啦!