2010年12月30日 星期四

回顧2010

恩...年底了
寫篇文章看看今年到底幹什麼好事好了

1.終於登出國軍online
2.第一次看到淹水淹到家門口...
3.找到第一份工作
4.為了工作到台北住...

好像沒值得提的了了...平淡的一年 XD

2010年12月21日 星期二

IE8底下submit出現網頁過期解決方式

最近弄的東西出現了莫名其妙的bug,form送出的時候會出現網頁已過期,但是在chrome、firefox底下又很正常,而且我自己電腦的IE8不會有這個問題,別人的才會,一開始以為是jQuery的問題,google了半天也沒出現過結果。被這個bug困擾好久,後來靈光一閃,發現原來是這個問題

2010年12月16日 星期四

linux上安裝東西 有感而發

最近在搞linux,要在linux上安裝一堆有的沒有的東西,我之前根本沒再碰這個,想當然爾整個過程一直很痛苦...

因為linux現在雖然號稱有了rpm這種安裝包,但是這種東西通常只支援最新版本,不過東西不是越新越好,有些東西還是有限制的,所以我只能夠一個一個慢慢裝,今天在ptt上看到一篇文章真是深得我心

在Windows下安裝東西: .msi或.exe點下去,next next next到底就裝好了
                      (只是偶爾一直next到完你會看到你的IE畫面剩下一半)
在Linux下安裝東西:make make make make make make...
                   還要先開config把設定都對本機最佳化調完才能make下去,
                   有時候東西編譯到哪裡連自己都不知道

2010年12月5日 星期日

2010台北花博一日遊心得

今天去了傳說中的花博,因為聽說很多人,所以跟朋友約早上8點到新生會場,結果我們8點到的時候,現場已經人山人海了,排隊等等等,9點就開始開放入場,硬是等到9點半才輪到我們入場,一入場後大家都用百米賽跑的去夢想館領預約券,結果才跑到一半,工作人員就說已經被領完了,殘念。

然後爬上了旁邊的青青步道看一下風景(新生園區最高點),下來之後想去未來館看看,一到未來館門口,排隊末端寫著,至少需等待2小時,一行人只好哭哭跑去旁邊的迷宮區玩,迷宮區是馬囧還在當市長的時候蓋的,馬囧有留下手印,不過他的手好小,好像女生的手@@...

逛完有點空虛的迷宮區之後,就跑去逛紀念品店,不過感覺沒什麼好買的,這時候已經11點了,然後去領了養生館的預約券,1400。然後晃到美術館區剛好看有表演,一群小朋友在跳舞,不過跳tone跳超大阿,穿著很傳統的服裝跳舞,背景音樂居然放SHERO,放到一半忽然跳回採紅菱之類的,採紅菱放大約1分鐘又跳回SHERO...

接下來跑去夢蝶館,一開始我根本不知道夢蝶館在幹嘛的XD,過去之後才知道是舞台表演,這場演的叫香草寶貝,排隊排了半個多小時之後終於進場,但是因為人太多,坐的位置超差的,在舞台最邊邊,會被旁邊裝飾擋到,看不太到舞台,囧。進場之後還要等半個小時才開演,我就在椅子上打龜,直到開演,隔壁坐的阿罵則是直接睡到散場...BTW,演員是個正妹。

演完之後,出來逛了泰國、印尼、美國、日本、不丹...等國的庭院,日本的好虛阿,真懷念在京都看到的日式庭園。最好笑的是不丹區,一堆OBS、OGS一看到不丹就說,阿,這我知道,這是回教國家,旁邊牆壁上畫的佛祖跟中間供奉的藥師佛聽到都快哭了,你拜了一輩子還不認是祂。

2010年11月10日 星期三

php上處理utf-16le檔案

最近要在php上讀取excel的檔案,因此有去找一些相關套件以及一些用法,因為要處理的檔案可能會有多國語言問題,所以一開始就規畫要用utf-8來編輯。

1. php excel reader
 這套件讀取excel很方便,但是不支援unicode,失敗。
2. php excel
這套件支援unicode,也不是很複雜,照理說應該用他,不過這東西可能裡面沒寫好,處理個2mb的excel檔,居然要吃掉256mb左右的記憶體,哪來這麼多記憶體給他吃,失敗。

後來就想說不然從CSV格式著手,結果excel輸出CSV不支援unicode,失敗
再來就試輸出成unicode的txt檔案,有成功,沒變亂碼,但是這是utf-16le的編碼,不是utf-8。

我很天真的想說,既然檔案是utf-16le,我以後要輸出的格式也是要utf-16le才能讓excel正確讀取,所以我乾脆整個網站架構改成utf-16le吧,反正瀏覽器支援讀取各式各樣編碼,但帶計膜架甘丹。

因為我採用lamp架構,但是php 5 &mysql 5.5都不支援utf-16,雖然有找出真的能在php上使用utf-16編碼的code,不過只有firefox上能正確顯示,IE上就掛了,所以別天真的想說弄個utf-16架構的網站,這大概只有純html才能辦的到。


確定網站端還是只能用utf-8之後,表示使用者丟utf-16le的檔案上來,我們要轉成utf-8在網站上處理,處理完後再轉成utf-16le回去給他,所以就是要處理utf-8 <=> utf-16le的問題了

上網google了很久,一堆說什麼使用iconv, mb_convert_encoding,utf8_encode,utf16_decode...之類的function,全部失敗,甚至還有人寫一大串在處理0xff, 0xfe之類的東西,但是一樣全部陣亡,根本沒一樣能跑出正常的東西,後來我乾脆把檔案直接用16進位方式打開,直接去看我的程式轉出來的東西跟轉檔程式跑的到底差在哪,看完之後發現檔頭都少人家2個byte,原來是該死的BOM,後來手動在要轉成utf-16的檔案上加上BOM就沒問題了。

只有utf-8允許可以沒有bom,utf-16, utf-32都是一定要有bom的,因為牽涉到little endian跟big endian的問題。
以下是我的code

function utf8_to_utf16($utf8_filename,$utf16_filename){
    $file = fopen($utf8_filename,"r");
    $write = fopen($utf16_filename,"w+");
    if($file){
        $buffer=chr(255).chr(254); //加入BOM
        fwrite($write,$buffer);
        while(($buffer = fgets($file)) != false){
            $buffer=iconv('UTF-8','UTF-16LE',$buffer);
            fwrite($write,$buffer);
        }
    }
}

function utf16_to_utf8($utf16_filename,$utf8_filename){
    $write = fopen($utf8_filename,"w+");
    $buffer=mb_convert_encoding(  file_get_contents( $utf16_filename ), 'UTF-8', 'UTF-16LE' );
    fwrite($write,$buffer);
}
為什麼2種轉法不一樣呢?
因為utf-8轉utf-16時會佔用比較多的記憶體,一次轉的話容易造成記憶體不足,所以分行轉,utf-16就沒這個問題,此外utf-8轉utf-16花的時間也比utf-16轉utf-8多,我測試轉一個12m的檔案,8轉16要花23秒,16轉8只要1秒...

另外,用這個方式轉出來的utf-8是有bom的,要去除的話請自己來 XD

2010年11月6日 星期六

First month

上班一個月了,也領了第一個月薪水,沒想到少上一天班,差這麼多XD

上班第一個月的心得咩,其實沒什麼心得XD,最重要的心得就是公司冷氣非常強大

其他就是上班很自由,早上10點到晚上7點,午休一個半小時

上班時間不會要求要一直在坐位上,高興的話上樓喝個下午茶、看份報紙,打個PS3也行,只要工作進度有出來就好,facebook? 我看到的是一堆人就直接掛在線上XD

每天都可以上樓逼逼,用在午餐的話,最省午餐一餐只要20就搞定,我現在養成下午就會上去投籃機練一下投籃,除非當天真的很忙

工作上,公司給的目標滿明確的,主管人也都很好,不清楚的就打破砂鍋問到底,同事也都很好,互相吐槽好像是我們的樂趣XD

同事說我第一份工作就在這哩,無法深刻體會這邊環境有多好,我覺得我滿幸運的 哈

今天在會議上看見了傳說中的劉董,有人提了的問題實在深得我心,加班沒問題,但是可以辦聯誼嗎?

2010年10月27日 星期三

解決header產生的warning: Cannot add header information - headers already sent in...

很早以前我就常用header這個指令來轉頁面,不過使用這個指令有個限制,就是在前面不能輸出任何東西,就算一個空白也不行,不然會出現

 warning: Cannot add header information - headers already sent in...

我一直以為這是個function的限制,就像125cc再怎麼會跑還是不能上高速公路一樣,結果那天一google之後發現,原來他是可以解決的...

只要把php.ini中的output_buffering打開,或者是隨便給個值,就算在header前有任何輸出,也不影響它的功能了,不過要注意的是,我在使用的時候通常是因為程式有錯誤,才會在header前輸出東西,把這功能打開以後,你看不到任何錯誤,因為頁面已經被轉走啦~~~

Parent: child process exited with status 255 -- Restarting

最近在碰PDO(PHP Data Object),說時在這東西實在很難用,比我愛用的ezSQL難用多了,但是為了防止SQL injection攻擊,只好用這一套,這不是重點XD,重點在於我那天再使用的時候忽然發現,在select資料的時候apache會被關掉,insert不會,只有select的時候才會,不知道是啥鬼狀況,log裡面就只出現這行

Parent: child process exited with status 255 -- Restarting

膜拜了很久的google大神之後才發現這篇,上面提到這是xampp 1.70在windows上(?)的錯誤,修正方法如下

Problem solved. Turns out this is a bug in XAMPP 1.7.0 PHP and the fix is already there.
To fix the problem:
in "xampp\apache\bin"
copy libmysql_5.0.51a.dll libmysql.dll
in "xampp\php"
copy libmysql_5.0.51a.dll libmysql.dll
in "xampp\php\ext"
copy php_mysql_5.0.51a.dll php_mysql.dll
copy php_mysqli_5.0.51a.dll php_mysqli.dll
弄好之後就正常了...

2010年10月13日 星期三

narro project

這是mozilla基金會開發的開放性協做翻譯平台,主要是放出來讓大家去翻基金會的程式,最著名的就是firefox了。不過我覺得他們把這個source code放出來只是順便而已= =

有鑑於國內關於這個project的資訊幾乎是0,有的也只是關於翻譯這塊,沒有關於架設方面的資訊,我就當當好人吧

以narro 0.9.4版的狀況來說
1.只能運作在linux環境底下
2.不支援php5.3以上的版本
3.匯入、匯出只支援.po檔->關於.po檔請自行搜尋gettext
4._PHP_CLI_PATH_ ,這該死的設定要直接指到php的位置,例如 /usr/bin/php

有了以上幾點,你起碼可以少一週的時間在搞環境架設的問題 XD

Day 10

今天是上班第10天,之前上網google到聽說會有健檢,倒是完全沒聽說。

這幾天上班都在弄之前主管丟給我的project,由於國內弄那個project的人很少(我根本沒找到),所以一切資料都要上國外網站找,甚至我還上原作者的留言版發問,但是他沒有鳥我= =",作者自己也沒講清楚程式的狀況,所以一切都是在try and error的狀況下進行。
windows底下運作,看似可以,實際上核心根本沒運作,光搞清楚這點,我已經耗掉2天了,把環境改在linux底下運作,再去設定一些資料,又花去我2天...,然後又找出他不能在某些環境下運作的原因是不相容php5.3版,又花去1天,一週就這樣過了...,最後又花了2天去了解他整個運作模式,我很想罵作者,把這東西搞成open source根本是在整人= =。

其實在前幾天我看過程式之後,我就覺得這東西不是很適合我們,我嘗試想說服主管這東西不合用,直接重新開發一套會比較快,不過他人在國外不清楚狀況,所以失敗了。不過今天在跟他通盤解釋一遍之後,他動搖了,叫我去評估一下重新開發大概需要多久時間,以及我們需要的功能XD,我很想跟他說YK的名言阿『當一個程式你要去修改的部分超過1/3,重寫會比較快』

另外,這幾天上班到是滿happy的,公司很自由,上班時間可以去逼逼,去休閒室休息一下,但是別太超過就是了 XD

常用linux指令

其實這篇是寫給自己看的,當作備忘錄

ls-列出目錄下的檔案
ll-列出目錄下的檔案含屬性 等資料
cp 來源 目標-複製檔案到目標資料夾
rm-刪除檔案
su-提升到管理員權限
sudo 指令-使用管理員權限執行指令
lsb_release -a-查OS版本

2010年10月4日 星期一

Day 1

今天是上班第一天,含我在內一共7個報到,不過都不同部門,填完資料還發了個新手包給我們,然後就被各自帶開了,上班第一天我的主管就要去美國出差一週,所以他只好簡單的跟我介紹一些東西,然後丟一個project給我,叫我看一看,他就走了XD

公司內部感覺還滿和樂的,我在快下班時才拿到門禁卡,所以一些內部網站的東西我都還沒有權限進去看,明天再來好好研究,每個員工都有2台桌上型電腦,筆電是管制用品,公司用exchange server把一些服務都整合在一起,連電腦登入的帳號密碼都是,所以2台電腦是用同一個密碼進去的,我一開始不知道,以為都是用預設密碼,結果帳號就被鎖了...OTZ

第一天上班沒甚麼,大部分都在認識新朋友,架設環境之類的,還有去傳說中的員工餐廳看了一下,不過我那時還沒拿到門禁卡,不能上去逼逼,只能自費...OTZ

1.公司遊戲嚴禁員工使用外掛 (迷之聲:非公司的遊戲呢?)
2.禁止使用USB、MSN
3.看來要好好熟悉一下outlook怎麼用了...我只過用express版阿...

2010年9月17日 星期五

按鍵精靈程式心得

1. 沒有break 只有 exit for , exit if exit do,也沒有exit while....瞧不起while就是了
2.函式回傳可以用 x=plugin.xxxx.xx
3.date指令很難用,可用Plugin.Sys.GetDateTime()代替會回傳 year-mon-day H:m:s
4.自定義變數前後都要用"框住
5.while結束指令是wend 不是{ }
6.for結束指令是next,if是end if
7.do while指令用法是 do while ... 不是 do ... while
8.網頁插件指令,會等到網頁完全載入才動作(?),載入太久該動作會被放棄(?),反正就是指令好像沒執行就跳下一行

2010年9月5日 星期日

面試經驗談

從退伍前二個多月,就開始準備找工作了 ,其實也沒有很認真,就上104開履歷而已,然後就有幾家公司主動打電話給我面談,一開始笨笨的,一聽說有面談就答應了,也沒仔細問對方公司在做什麼的,而且主要是因為還在軍中,沒辦法上網去看對方公司的網站之類的,而且跟人家約好的時間,差不多就是放假一出去就要去了,也沒多餘的時間瞭解狀況,這點給想在退伍前找工作的人參考。

還有,請把你的C++拿起來K一K,相信我,笨蛋靈氣是很恐怖的, 別以為你進去之前C++寫的跟神一樣,經過快一年的笨蛋靈氣加持,你的程式會比大一新生還菜,出來千萬要複習一下。

所以,建議想邊退伍邊找工作的
1.你假要很多,至少不能都放例休,假日誰找你面試
2.履歷做好後主動出擊,看好公司再丟履歷,這樣至少人家打來你知道人家公司與應徵職務內容
3.如果對方主動打來,先問公司地點、公司產品與職務內容,你可以跟對方說想先瞭解一下公司在做甚麼的再給對方回覆
4.在裡面也要能隨時接手機 ,不然錯過面談電話就...
5.約面談時間一天最多2場就好,早上下午各一場就很多了,千萬別趕場,因為面試時間各家長短不一,我遇過最短的不到15分,最長的超過3小時,很難掌握,所以千萬別安排的太近

下面列出我這幾個月面談過的公司與心得給大家參考 XD


2010年8月24日 星期二

研究

最近無聊在研究用按鍵精靈幫我種菜,意外發現一個指令在win7下無法使用,然後我忽然覺得,我應徵錯公司了,不該應徵遊戲公司,應該應徵外掛公司才對 XD

遊戲公司:你自己寫外掛!? GET OUT NOW!!
外掛公司:你自己寫外掛!? COME IN NOW!!

2010年8月20日 星期五

亞丁城大冒險

今天去了傳說中的亞丁城,準備去應徵警衛的工作,亞丁城不愧是天堂中最大的主城(還是嗎?),分佈範圍廣泛,冷氣爆強的阿,感覺員工都很隨性,公司還有自己的內部刊物,好酷,有一層樓一半都是會議室,我就在裡面面試

今天去主要就是考php拉,然後還有聊一堆有的沒的,主要都是問程式的能力,像他對我寫的網站平台還有管理系統都問一堆,論文也問得很仔細,不過都是在問程式,不是問內容XD,然後還有最經典的問題,你有玩遊戲嗎?

我跟他說我天堂7x級,他好像很高興的樣子,他還問我有什麼方式可以證明我的程式能力,我就跟他說我寫過XSS的選課程式,還有自動點廣告的程式,不知道是不是這樣他還特地跟我說公司員工不准用外掛,不然一律開除 XD

php程式感覺也沒有考很難 不知道標準怎樣,考10題吧

1.設計一個撲克牌洗牌程式 

2.說明call by value, call by reference差異,並舉例說明

3.什麼是cookie,舉例使用

4.什麼是session,舉例使用

5.切割一個字串,使用strstr指令與preg_match指令,比較差異

6.給一個資料庫語法,問他錯在哪

7.array的用法

8.post, get的用法

9.require, include, require_once, include_once 這幾個指令的差別

10.說明urlencode, urldecode指令用途與使用時機

2010年8月13日 星期五

jQuery表單驗證

最近又開始摸php了,想弄些東西,之前學的東西拜笨蛋靈氣之賜,全部忘光了,下午還在看之前寫給朋友的sql指令教學,才把一些記憶換回來,原來這東西根本是給我自己看的阿...

剛剛想改一下之前的程式,看到之前笨笨的用javascript在判斷表單的東西就覺得好蠢,膜拜一下google大神之後,就讓我找到幾個好東西啦

1.讓表單只能輸入英文或是數字 只允許數字的話 減號也不能輸入 要額外允許
http://abgne.tw/jquery/jquery-plugins/jquery-alphanumeric-0-1-1.html

2.驗證輸入內容
http://www.minwt.com/?p=1800

最近滿常更新blog的...腦袋有在動阿,看看那11個月只更新了一篇就知道了...

2010年8月12日 星期四

解決win7占用80port問題

昨天想在win7下安裝apache,結果一直發生80port被占用問題,本來以為是被其他程式占用,結果用netstat -ano指令查,居然是被system這個程式占用,結果是因為win7會預設打開IIS的服務。

把World Wide Web Publishing Service這個服務停用80port就可以開啟apache摟。

2010年7月26日 星期一

國軍online登出紀念

2010/07/26 國軍online登出紀念日

2009/08/26這天被笨蛋靈氣強制附身11個月,今天終於把笨蛋靈氣關掉了,智商逐漸回復中

軍旅生涯沒甚麼好提的,該累的有累到,該爽的也有爽到,該遇過的狗也有遇過,被學長凹過,不過我不喜歡凹別人,所以後面學弟都快爬到頭上來,只好電一下。

總之,什麼都是假的,只有退伍是真的。

不見。

退伍快樂。

2010年4月11日 星期日

世界上最小的MSN使用者??

最近我升格當舅舅了,我姊生了女兒,不過可愛歸可愛,哭起來可是驚天動地。尤其超黏她老媽,只要沒看到人就開始大哭特哭,只能趁她睡著時偷偷離開去忙,不過若是讓她提前睡醒那可不得了,如果人一時離開沒聽到她在哭,還會哭到沒聲,所以她老媽想去買個幼兒監控系統,不過凡是東西只要跟嬰幼兒沾上邊的,價格就會自動多個0出來,所以能聽到聲音的要2000大洋,能看到影像的要7000大洋起跳實在非常貴~~~

##CONTINUE##
所以摟,她老媽來找我這個舅舅商量,剛好她家有多的EPC,所以我的任務就來了,幫她用EPC搞個監控系統,所以我把EPC重灌成XP系統,去買了有夜視功能並內建麥克風的鏡頭($599)+USB 3M延長線($140),再幫妹妹申請個MSN帳號,把鏡頭架在她的床邊,EPC放在旁邊連上無線網路,再跟她老媽的放外面的電腦連線使用視訊功能,一個監控系統就出來啦,還支援遠端監控功能唷...阿嬤還說她老媽若沒空監視她還可以代勞,7000大洋的監控系統可沒這功能阿~~~

所以整個工程總共花費
鏡頭 599
延長線 140
阿舅的施工費星巴克一杯 140
阿舅的順發迴轉金 -200
總計 679

看吧 果然是跟嬰幼兒沾上邊的東西價格就會多個0出來...
幫她申請的MSN帳號讓她成了世界上最小的MSN使用者(未知啦??),她老媽說以後長大一點還可以讓她繼續沿用這個帳號阿~~~希望20年後微軟還沒倒阿...