公告版位
我是公告
今天看到了一篇文章,標題是 「沒有競爭力的平均分配」
內容主要是在批評台灣這次奧運只拿一面銀牌,主因就是運動資源太過分散
若要以奪牌為目標,應該要把資源集中在五到十樣運動來衝刺就好了
(為了不幫該文章宣傳,我就不附連結了,有興趣想看就自己搜尋吧)

對於這篇文章的論點,我非常不贊同,本來想寫一則微網誌碎碎念一下
但是兩百字以內說不完我想說的話,所以決定還是寫一篇部落格了

該篇文章的邏輯是「台灣若要以奪牌為目標,應該放棄把資源放在比較沒機會的運動,針對有機會的項目衝刺」
這個邏輯我是同意的,我不同意的是,為什麼要「以奪牌為目標」?

我認為體育發展應該是要以全民運動為目標,以提升國人運動習慣,進而增進國民的健康
這才是一個國家發展運動的重點
為了奪牌為目標,只是為了滿足民族虛榮心,對整個國家來說我並不覺得有什麼幫助。

同樣的道理推到學校教育
請問大家「考試高分」比較重要,還是「吸收知識」比較重要?
我相信大部分人都會認為教育是吸收知識比較重要
但是台灣的教育實際上在做的事卻不是以吸收知識為目標
補習班林立、不求理解先求把題型背起來應付考試、考前狂念考古題
這些行為都是以「考試高分」為目標,卻對「吸收知識」幫助不大

再推到我們現在政府的作為,失業率高漲,民怨連連
政府為了解決失業問題,選擇的方式是降低勞工薪資,增加派遣或短期工作機會,認同無薪假,修改失業率的計算方式
如此一來,數字上的失業率減少了,政府好像達成他的目標了,但是這樣是對的嗎?
這跟考試時狂背考古題考了高分,卻沒把知識吸收進去,不是一樣的嗎?

如果因為這次台灣只拿了一面銀牌,就放棄掉較沒機會奪牌的運動
這跟為了考試拿高分,放棄去把課業讀通,選擇只念考古題有什麼兩樣?

榮尼王 發表在 痞客邦 PIXNET 留言(2) 人氣()

Navi Song  

如果有玩過薩爾達傳說的話,應該會覺得這首歌寫的很有意思(不是搞笑的那種)

 

薩爾達傳說裡面,男主角是林克(Link) ,一個穿著綠色緊身衣帶綠帽的精靈族人,女主角是海拉爾(Hyrule)的公主薩爾達(Zelda),很多人都誤以為薩爾達是男主角的名字。娜比Navi是在1998年的時之笛(Ocarina of Time)中一路飛在林克旁邊的小妖精,在遊戲中需要提示的地方,會喊出「Hey~Listen~」並且指出關鍵的物品。卡農Ganon則是反派的名字。

目前薩爾達傳說系列作已經出了十幾套,每一代劇情結構都大同小異,大致上就是卡農大魔王企圖征服世界,並且綁架走了海拉爾的公主薩爾達。林克一路過關斬將後,成功的擊敗卡農救回薩爾達公主並拯救了海拉爾國。雖然劇情都差不多,但是每一代故事都是發生在不同年代,因此每一代的林克、薩爾達、卡農其實都是不同人,這也是他們的無止盡的宿命吧(也是遊戲公司可以省下人物設計的成本 XD)

這一首歌娜比之歌很有意思的是把薩爾達傳說架空世界的人物搬到現實世界,以娜比的角度描述了她一路跟在林克身邊,結果林克選擇了薩爾達,最後娜比選擇犧牲了自己成全林克和薩爾達,並且以遊戲中娜比最常說的「Hey~Listen~」 為歌名。

 

薩爾達傳說還有另一個網友創作也是我很喜歡的,就是 Smosh 出的薩爾達傳說RAP,旋律就是經典的薩爾達傳說主題曲,這個就寫的很好笑的,而且整個 MV 拍起來可以感受到 Smosh 對薩爾達傳說滿滿的愛啊~(Smosh 的作品很常惡搞薩爾達傳說啊)

  

裡面也惡搞了很多的薩爾達梗,像是林克常要用劍劈草找寶物、大家以為男主角叫薩爾達、薩爾達每一代都要被魔王卡農綁架走一次、娜比沒事就在旁邊喊hey~look~, hey~listen~ 。玩過薩爾達傳說再來看這兩首改編歌真的超有意思的

[update] 感謝大毛長輩提醒,Navi 只有在時之笛出現過,不過因為我也只破過時之笛而已 XD
, , ,

榮尼王 發表在 痞客邦 PIXNET 留言(0) 人氣()

PHP 有個 is_a ,主要功用是看某個物件是否是哪一個 class

doc: http://tw.php.net/manual/en/function.is-subclass-of.php

參數
PHP 4.2 以後
bool is_a ( object $object , string $class_name )
PHP 5.3.9 以後
bool is_a ( object $object , string $class_name [, bool $allow_string = FALSE ] )

這個 function 一年來改了兩次啊
在 PHP 5.3.7 以前,第一個參數只能是 object ,因此只要丟了 string 進去, is_a() 就一定回傳 false,如果你有丟 string 的需求,必需要改用 is_subclass_of()
在 2011/8/18 出來的 PHP 5.3.7 加上了第一個參數是 string 的支援,並且會 autoload 該 class 再來做 is_a() 的判斷。如此一來遇到的問題就是如果你有 spl_autoload_register() ,可能會因為第一個字串是不存在的 class 而狂噴 Warning
在 2012/1/10 出來的 PHP 5.3.9 又增加了第三個參數,要給 true 才會 autoload 該 class ,如果給 false 並且第一個參數是字串的話,則這個 function 只會 return false

等於這三次情況預設行為被改了兩次了

如果之前用法是第一個參數是 object 的寫法的話,恭喜你,完全沒有任何改變 (不過因為他的行為跟 instanceof 一模一樣,因此在 PHP 5.0.0 曾被標為 deprecated 過)
但是如果你的需求是判斷該 class name A(string) is a class name B(string)
在 PHP 5.3.7 之前的 is_a() 做不到
PHP 5.3.7 ~ 5.3.9 突然可以做到,而且還關不掉
PHP 5.3.9 以後又預設變成做不到,第三個參數要加 true 才做的到。

所以如果你想要寫一個 PHP 5.0 以後都可以使用的 is_a() 判斷的話
比較保險是改用 is_subclass_of() ,不過 is_a('ObjectFoo', 'ObjectFoo'); 是 true , is_subclass_of('ObjectFoo', 'ObjectFoo'); 是 false
這個需要注意

(今天踩到的雷,特此記錄一下..測試環境和線上環境的 PHP 版本還是要一樣比較好啊)
, , ,

榮尼王 發表在 痞客邦 PIXNET 留言(0) 人氣()

從 6/13 到 7/1 的台北市東區水上救生協會課程就快要結束了,這段期間很累,但是也很充實。

坐在電腦前面工作的我,參加救生員班主要目的並不是要當救生員,而是想增加自己的水性,知道怎麼保護自己也保護別人。尤其是去年開始我以台灣長泳為目標,暑期的週末幾乎都泡在水中,這樣的知識更加的重要。而因為之前也常在松山運動中心五米深水池游泳,但是每次潛兩米就因水壓大到耳朵痛就不敢再潛下去,得知參加救生員課程可以練到潛到五米池底,於是我就決定報名了。 (順帶一提退伍後上班一年多我就胖了13KG,參加這課程我也希望可以運動減肥)

救生員的課程是循序漸進而且很充實的,從最基本的救生四式(抬頭捷、抬頭蛙、側剪、基本仰),水中自救(仰漂、韻律呼吸、水母飄、抽筋自解)、入水法(打樁式入水、淺跳式、跨步式)、接近法、被溺者抓住時的解脫法、抓到溺者的帶人法、如何將溺者帶上岸的起岸法、基本潛水、水中脫衣及浮具製作、跳水、繩結、CPR等。一堂一堂的課讓動作越來越熟悉。課程上完考完試可以得到救生員執照,但是這課程卻不像考駕駛執照的課程一樣,考駕照的課程感覺是為了考試量身訂作,因此考完駕照之後能不能上路還是個問題,但是救生員課程是還會教許多很實用但是執照考試並不一定會考東西,像是從五米高跳台跳水體驗、水中穿衣游泳水中脫衣等,真的是非常值得上的課程。

五米跳台跳水真的是很恐怖,站在搖晃的跳台上往下看約三層樓的高度,腿都軟了,真的很難得的體驗。而水中穿衣服游泳也是人生頭一遭,感受到了穿著長袖長褲在水中浮力有變大但是阻力也變大許多。參加課程之前的心願潛到五米水底的心願也已達成,現在已經可以潛到水底躺在池底欣賞五公尺深的景色。然後這幾天上課也讓我瘦了三公斤,照鏡子也覺得自己的肉好像比以前結實了一點,真的是非常值得的啊。

如果你可以連續游一百公尺自由式和一百公尺蛙式不休息,歡迎你也來參加救生員的課程,不是只為了救人,也是為了救自己(我常跟朋友說,不會游泳,台灣島沉了怎麼辦 XD)

榮尼王 發表在 痞客邦 PIXNET 留言(5) 人氣()

讓 Google 告訴你,同步衛星的高度要多高?

((1天)^2 * G * 地球質量 / ( 4 * (pi )^2)) ^ (1/3) - 地球半徑

這個公式怎麼來的呢?
當要到達同步衛星軌道時,表示該物體的離心力要等於地球對他的萬有引力

離心力公式為 mv^2/r (m: 衛星質量, v: 衛星速度, r: 衛星高度)
萬有引力公式為 GmM/r^2 (G: 萬有引力常數, m: 衛星質量, M: 地球質量, r: 衛星高度)

而因為是同步衛星,因此衛星的速度會等於1天可以繞軌道一圈。
因此速度會是 2πr / 1天
所以離心力公式 mv^2/r 可以變成 m * (2πr / 1天)^2 / r
m * (2πr / 1天)^2 / r = GmM/r^2
=> r = ((1天)^2 * G * 地球質量 / ( 4 * (pi )^2)) ^ (1/3)
這個 r 是衛星距離地心
因此只要再將 r 減去地球半徑
變成 ((1天)^2 * G * 地球質量 / ( 4 * (pi )^2)) ^ (1/3) - 地球半徑
這樣就是同步衛星需要的高度了

把上面的字丟進 Google 去,答案就出來了!
(((((1天)^2) * G *地球的質量) / (4 * (pi^2)))^(1 / 3)) -地球的赤道半徑 = 35 865.0417 公里

與 wikipedia 同步衛星 上面寫的 35860 公里差不多

不知道 Google 什麼時候會開始算微積分。

Google 可以用的還包括
"太陽的質量 = 1.98892 × 10^30 公斤”
”太陽的半徑 = 695 500 公里"
"光速 = 299 792 458 m / s"
"1光年 = 9.4605284 × 10^15 米"
"音速 = 340.29 m / s”
”火星的質量 = 6.4191 × 10^23 公斤”
”月球的質量 = 7.36 × 10^22 公斤”
”冥王星的質量 = 1.3 × 10^22 公斤"
"牛頓重力常數 = 6.67300 × 10-11 m3 kg-1 s-2"
”電子的質量 = 9.10938188 × 10^-31 公斤"
"質子的質量 = 1.67262158 × 10^-27 公斤"
”1秒差距 = 3.08568025 × 10^16 米”

不知道還能不能查出一些奇怪的東西出來。

榮尼王 發表在 痞客邦 PIXNET 留言(3) 人氣()

大概記錄一下需要什麼樣的流程,因為 yum 裡面沒有

1. 先在機器上裝需要的 library 以及 tool
> sudo yum install gcc-c++ openssl-devel make

2. 下載 node-js 最新的 source ,可以到 http://nodejs.org/ 找。
> wget 'http://nodejs.org/dist/node-v0.4.7.tar.gz'
> tar zxf node-v0.4.7.tar.gz
> cd node-v0.4.7
> ./configure
> make
> sudo make install
安裝完成!

3. 來個 hello world 測試一下吧,把 http://nodejs.org/ 首頁的範例拿來用
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
把他存入 example.js
> node example.js &
Server running at http://127.0.0.1:1337/
> GET http://127.0.0.1:1337/
Hello World
>
成功啦!

再來用 sudo yum install httpd 裝個 httpd ,不過只是為了用裡面 ab 來測測看效能而已。
> ab -n 1000 -c 10 http://127.0.0.1:1337/
Requests per second: 4199.62 [#/sec] (mean)
Time per request: 2.381 [ms] (mean)
Time per request: 0.238 [ms] (mean, across all concurrent requests)

超級快的, 4000qps 耶~

榮尼王 發表在 痞客邦 PIXNET 留言(0) 人氣()

最近幾次去海邊玩,常常看著海平面在心中想像著這海天一線到底有多遙遠
就想起了登鸛雀樓的「欲窮千里目,更上一層樓」
心中不禁欽佩了古人的文學以及物理學,兩句話十個字,就道出了我現在看海的感受
於是我又好奇,那根據物理學計算的話,假如我要真的看到千里目,我需要多高呢?

古時一里約是 0.5公里,所以千里目是 500KM
所以說欲窮千里目更上一層樓就如下圖所示。
欲窮千里目更上一層樓.JPG

r 是地球半徑 6371KM ,千里目是 500KM
這是個直角三角形,根據畢氏定理

(x+地球半徑)^2 = 500km^2 + 地球半徑^2
=> x + 地球半徑 = (500km^2 + 地球半徑^2) ^ (1/2)
=> x = (500km^2 + 地球半徑^2) ^ (1/2) - 地球半徑
=> x = 19.5682948 公里

要千里目的話,就至少要 19.5km 高
所以說王之渙登的鸛雀樓,至少要 19500 公尺高,以一層樓 4 公尺算的話
至少要有 4875 層樓高,才能夠做到「欲窮千里目,更上一層樓」

那再計算一下,如果我們在 101 頂樓可以看到多遠?
101 頂樓高度是 509.2m ,海拔不計的話
答案應該是 ((地球半徑+509.2m)^2-(地球半徑^2))^(1/2) = 80.5960069 公里
那今天我們登了 101 後,又更上一層樓可以看到多遠呢?

假設更上一層樓高度是再加 5 公尺,那就是 514.2m
((地球半徑+514.2m)^2-(地球半徑^2))^(1/2) = 80.9907553 公里
所以說在101 頂樓更上一層樓的話,你可以多看到400公尺遠的地球喔。

榮尼王 發表在 痞客邦 PIXNET 留言(0) 人氣()

 作者  wwwee ()                                                                           看板  Stock
 標題  Re: [請益] 22K的年輕人 該如何玩股票理財?
 時間  Tue Oct 19 01:03:56 2010
───────────────────────────────────────────────────


其實22k也有很好投資

如果你在 2008/9   存了八千塊就好

這時後         無緣無故的     買進 8.24塊的昱泉一張

2009年5月   又 無緣無故的     賣了 168 塊的昱泉一張


你已經有16萬了!

榮尼王 發表在 痞客邦 PIXNET 留言(0) 人氣()

這兩天在家裡打麻將打了十六圈(100底,20元1台)
結果我輸了快三千元,都孝敬給老爸老媽了
令我在晚上深思,輸三千究竟是運氣如此還是技不如人呢?

我也懶得算機率了,身為工程師,解決此疑惑用寫一隻程式來模擬也是很合理的,於是我決定來模擬一下,如果四個人胡牌的機率都是一模一樣 25% 的話,那麼十六圈打下來,可能會出現怎樣的情況
程式如下:

榮尼王 發表在 痞客邦 PIXNET 留言(2) 人氣()

還記得大三的時候,學校跟業界合作開了一堂 「3D Game Programming」的課,請了在業界開發遊戲引擎的資深遊戲人,來跟學生講述遊戲引擎的架構和使用方式,並講了許多與遊戲相關的理論。這堂課有上過的人都覺得非常值得。比起其他純理論的課程,這堂課也讓學生非常的喜愛,學期末甚至還可以做出自己的一套遊戲出來。而下學期又更開設了「MMOG Programming」,將上學期的內容搭上網路成為網路遊戲設計課程。那堂課就像個種子一樣,在我們那屆的學生種下了一顆電玩種子,也許之後真的有人就進了電玩產業吧?

然後呢?沒有然後了,那堂課就只開了那麼一年而已。

榮尼王 發表在 痞客邦 PIXNET 留言(3) 人氣()

上次在 murmur 上看到 far 說他接到詐騙集團的電話
電話中把他當天跟 Yahoo 拍賣買的內容以及帳號後五碼都講的一清二楚。
這種情況在現在社會已經不是很稀奇的事,我自己當初就曾經遇到過,還去假裝被騙匯了一元之後報警
裁判書在這邊
那次報警把賣人頭帳號的人抓到了,不過背後的詐騙集團還是抓不到。

榮尼王 發表在 痞客邦 PIXNET 留言(2) 人氣()

幾個月前,看到新聞說台26線環評已過,到時候台東南田到屏東旭海之間的阿朗壹古道將會消失,於是決定要在十一月初來趟阿朗壹之旅。
CIMG0193.JPG

榮尼王 發表在 痞客邦 PIXNET 留言(1) 人氣()

PHP 有一系列的 Multibyte String Functions ,很適合拿來處理 CJK 這些 Mutilbyte 字元
其中在切字串的部分就有三個不同的 function 可以用
分別是 mb_strcut, mb_substr, mb_strimwidth

mb_strcut($str, $start, $length, $charset); 所切出來的字串,是 byte 數不超過 $length 的字串,所以像是
mb_strcut('我是ronnywang', 0, 8, 'UTF-8'); 出來的就是 「我是ro」
適合用在所儲存的地方空間有限時,確保所占空間不要超過某個數字,但是又不要把 multibyte 字腰斬所使用。

mb_substr($str, $start, $length, $charset); 所切出來的字串,是總字數不超過 $length 的字串,其中中文和英文都分別算是一個字元,所以像是
mb_substr('我是ronnywang', 0, 5, 'UTF-8'); 出來的就是 「我是ron」 (總共四個字)

mb_strimwidth($str, $start, $width, $trimmarker, $charset); 所切出來的字串,是總長度不超過 $width 的字串,另外如果字需要被切到的話,還會幫你補上 $trimmarker (加上 $trimmarker 之後也不會超過 $width) ,而長度的部分,是以半形字是 1 全形字是 2 來計算,因此跟實際顯示出來的寬度會差不了多少。
像是
mb_strimwidth('我是ronnywang', 0, 9, '...', 'UTF-8'); 出來的就是 「我是ro...」 (寬度為 9)
mb_strimwidth('我是', 0, 9, '...', 'UTF-8'); 出來的就是 「我是」(寬度為4,小於 $width 就不會印出 ... 了)
mb_strimwidth('我是ronny', 0, 9, '...', 'UTF-8'); 出來的就是 「我是ronny」(寬度為9,剛好等於 $width 也不會印 ...)
適合用在要顯示一些固定長度的文字使用。

另外還有幾個取得長度的方式

strlen($str); 最原始的,取得就是 byte 數,像是
strlen('我是誰'); 在 UTF-8 就是 9 ,一個字 3 bytes 。

mb_strlen($str, $charset); 出來的是字數,像是
mb_strlen('我是誰', 'UTF-8') 是 3
mb_strlen('我是ronny', 'UTF-8') 是 7

mb_strwidth($str, $charset); 出來的是寬度,一樣是半形字算 1 ,全形字算 2
mb_strwidth('我是誰', 'UTF-8') 是 6
mb_strwidth('我是ronny', 'UTF-8') 是 9

依照不同需求就使用不同函式囉。

榮尼王 發表在 痞客邦 PIXNET 留言(1) 人氣()

murmur by 榮尼王 (ronnywang)
  • 游泳用手,溜冰用腿。每個星期都用這兩種運動來練身體還真不錯...(不過很花錢就是了...)
    2010/10/12 10:57發表迴響
  • 幫綠黨拉個票,綠黨不是民進黨,而是一個世界上大部份國家都有的政黨,目標是追求人權、環保、和平的政黨。受夠了台灣的藍綠鬥爭的人也可以考慮這另一個選擇,中止兩黨惡鬥吧。
    2010/10/12 13:40發表迴響

榮尼王 發表在 痞客邦 PIXNET 留言(2) 人氣()

murmur by 榮尼王 (ronnywang)
  • 不知道為什麼現在有點心悸的感覺...明明就沒喝咖啡啊
    2010/10/11 14:33發表迴響

榮尼王 發表在 痞客邦 PIXNET 留言(0) 人氣()