RSS

迷失


我,正迷失在這人生的浪濤裡

看不見一絲絲的光透進來

伸手不見五指

原本...我以為已替人生鋪好大道

原來...那只是場純真的夢

小孩才有的遊戲

----------------------------------------------

真實的世界,真真假假

學生時代裡的勾心鬥角,只不過是冰山一角

我不感到厭惡,只覺得無聊

因為人生不過如此

活在假象的世界,過著假象的快樂

真正人生的意義...who care?

繼續跑跑跑~~

第一天跑完後,拖著肌肉痠痛的雙腿

斷斷續續又跑了幾天,沒想到肌肉痠痛還會......累積!!!!

所以前幾天都無法好好跑

不過今天......不太會痛啦!!

所以一口氣跑了7圈+7下單槓

比起第一次斷斷續續跑了7圈+斷斷續續拉了5下

還算不錯XD

唯一可惜的地方是...今天還看到平民版劉香慈

如果能像第一次看到她時情景

我肯定能多跑幾圈!!

(應該啦= =)

跑跑跑~

今天開始跑步鍛鍊體能

----------------------------------------------------------------------------------

原本是打算到附近的公園,但不能測量距離

只好跑到較遠的國小ˊˋ

熱身時,旁邊有個女生也在暖身

而跑道上有個看起來一副要當兵的男生和一個尼姑在慢跑

暖身好後~上路!!

不對~是上跑道XD

----------------------------------------------------------------------------------

在我起跑後不久...那個女生也開始跑

她很厲害~總共跑了1X圈(200m/圈)

看她跑完後的樣子~不禁令我感到汗顏

我是難過到想吐,而她是帶點疲憊的去找老爸聊天

(還好沒去搭訕= =)

明天同一時間去~應該能遇到她吧?

把她當目標!!!

----------------------------------------------------------------------------------

在我跑的時候

中途插進一個一看就知道是為了當兵才來跑步的男生

看起來有點台

邊跑還邊看那個很厲害的女生~嘖嘖

他的成績是5圈+單槓五下

(略遜我一籌)

----------------------------------------------------------------------------------

跑完雖然痛苦,卻痛苦的暢快

有些東西,早晚要跨越的

或許是有一年之計的關係

我跨的甘之如飴

希望能再接再厲!!

----------------------------------------------------------------------------------

我的成績:7圈+當槓五下

7/11 ~ 7/17

聽到了個發生在身邊的愛情故事,如下:

前幾天基測,在補習班打工的朋友A的男友,未載A去考場發傳單,

原因是要載別的女生去上班。而男方的目的,是希望A能主動提分手。

當然,這不是第一次發生類似事件,所以,是男方想劈腿嗎?

不。男方父母相當喜歡A,也早已認定A將來會是他們的媳婦。

但A的男友卻早已變心,卻苦於父母的壓力,無法主動提分手,只好出此下策。

目前A決定按兵不動,直到男方提分手。

因為A在等備胎,確保真的和他分手時,心不會太痛。

自私嗎?

I don't think so.

--------------------------------------------------------------------------------------------------------------------

今天隻身前往楊嘉麗打工的飲料店買飲料

(說好的蓬場)

路上...一如過往的緊張

到了後...看著目錄選了下想喝的...然後...點飲料...

此時...和她四眼相對...啊!!!

我剛剛決定的飲料是什麼....

隨眼瞄到"鮮奶茶"...就決定是它了!!

等待的過程中...隨便聊了點東西

給我的感覺是...她依然動人、活潑

和我過去印象中的她一樣

我想...我會常來吧~ㄎ

噢...今天聊的話...應該比國小同班四年 + 國中同班兩年還多

真高興~哈

大學教授

大學教授無須修習教育學程,只要有博士學歷即可任教。
這是行之有年的制度(?),因此大家對這奉行已久的圭臬並沒有太大的懷疑。
但這本身存在一個問題,那就是教育的責任。

大學教授,以自身的主觀想法進行授課與評分,對教育的責任,全憑個人喜好擔之.
站在教導專業領域知識而言,參雜太多個人主觀意識,會影響教學品質。
主觀意識形態,會影響學生對該科目的喜惡;主觀教學方式,會影響學生在課堂學習的成果。因此,勿將教授碩士生、博士生的方式移植至大學生上,那是不公平的。

學習之路是該有點挫折,以做為成長的代價,但那不該是自以為是地認為是替學生著想,孰不知那已造成學生的挫折感,以及產生放棄的心態。

時代不同了,教學不再是古板的代名詞,因此別再將之視為藉口。
教學,不是只要擁有某方面專業領域知識就可參透。放下自視甚高的學者心態,重新面對教育的本質吧。

參考:http://www.wretch.cc/blog/fodane/12131632

顏色

若將人生所走的道路譬喻成顏色,那麼,每個人在每個階段所選擇的顏色皆有所不同。而在轉換的過程中,會產生許多前所未見的色彩。最後,在不斷的攪和中,產生了對的顏色,而它將用來填補適合的人生缺口。

廢文。

iAudio 9之不專業開箱

目前使用的耳機:MDR-EX76LP/WQATH-SJ5

雖然iaudio是韓國的,但不可否認,他的音質真的是不錯阿,如何不錯,後面討論。以下為圖片 ~

聽說i9是走環保路線~怎麼說呢~先看他的外盒


沒錯~就只有這個紙盒!夠環保吧XD

拿出內容物

內容物(正面)



內容物(側面)



內容物(背面)


注意左上角

沒錯!...它是MIK!不是MIC。(這年頭想買到非MIC的真是難阿= =)



內容物(底部)


很好奇為什麼長這樣吧?答案跟環保有關,晚點在揭曉XD

內容物(頂部)


提示:頂部的造型跟底部有關

取出機器~


跟IPod一樣,都是以一塊透明壓克力板從上面和下面夾住機器。

拿出後 ~


(保護膜還没撕)

使用中~(已包膜)


左下角為擴音

配件



一般開箱圖都會有的超級比一比~!!
(正面)



(側面)



(疊一疊)





會想買這台,是因為原本的機器表現實在太糟糕了。音源是正版CD,用Windows Media Player擷取,擷取方式是WMA變動位元速率,位元速率選240 ~ 355 kbps,每首歌的位元速率擷取出來都有310kbps以上(無損實在太佔容量,而且我也沒這麼講究)。這種音源,原本機器播放時,音樂高頻的部分就會破音,許多樂器穿插的部分都模糊帶過,聽起來没立體感,糊在一起。換掉後,才發現原本的機器音質有多差。

同一首歌,i9的表現相當突出,層次分明,有立體感,怎麼說呢?例如:聽F.I.R.的Fly away,副歌時,可以清楚感覺右後方有阿沁的合聲,快結束時,還會出現飛的合聲。某些歌曲還能辨識出樂器的位置!它有39種EQ,大部分都能以不同的方式詮釋音樂,為什麼說大部分呢?因為我也有點木耳,真的感覺不出來有差別阿ˊˋ。

操作上,以左下到右上的方式滑動,或許是UI設計的不錯,花一天左右就可以上手了。

因為音質的表現優異,能較易聽出耳機的差別。Sony家的耳機,真如許多人所說,較偏重bass,我的MDR-EX76LP/WQ亦同,不太合我的胃口。目前較常用ATH-SJ5,整體表現很滿意,為一缺點就是攜帶有點不便,等考完試後來去找一附滿意的耳道式。

揭曉底部與頂的設計的用意!

置於底部上的說明書


右邊為起點,逆時針看

成果



細節



整體設計蠻有創意的。有機會來去買種子~挖我家花圃的土來種種XD

What I want?

前兩天大學指考放榜,在關注菜市場名大戰之於,無意間看到大考放榜台大獨強 顛覆排名,看到這篇新聞,讓我聯想到54%大專畢業生 自認選錯系。其實會有這種結果,不讓人意外,因為,我們的教育體系只教導學生如何唸書,雖然學校會有所謂的性向測驗幫助學生了解,但在我看來,幫助不大。

若想了解自己真正適合的路,必須廣泛的接觸,進而從中了解什麼適合自己,不適合什麼。但我們的教育體系和部分父母僅告訴我們念書就對了,什麼興趣根本不重要,在這種情況下,學生少了廣泛接觸,僅能以曾經接觸過的經驗來做性向測驗,這樣的結果,只能碰運氣。還記得我高一做的性向測驗,其結果是適合做心理學家,當時的我亦認為如此。一直到高二下的某天跟爸爸的朋友學習組裝電腦後,讓我對資訊方面產生興趣,之後我選擇讀資管系。我自認運氣不錯,因為我念資管念得很高興,也越念越有興趣,想更深入了解,甚至會去找課外資料增加自己知識。

現在也有越來越多的例子證明,人只有在做自己喜歡做的事時,才能發揮最大的潛力。我父母因為經濟因素,國中畢業後必須開始工作賺錢,因為當時紡織業正興起,因此他們都選擇到紡織工廠做學徒。婚後,父母合力開了一間小型代工廠,做了幾年,因紡織業開始蕭條,最後只好結束,另起爐灶。因緣際會下,父親認識了一位做薑母鴨的朋友,進而跟他學習,並與母親合力開店。隨著時間推進,店裡生意蒸蒸日上,原本我認為只是因為開在好的地段的緣故。事後我才了解,原來並不是我所想像。父母親開始做薑母鴨後,所投入的心力比過去所做的工作還要多,他們不但不會因更多的投入而感到累,反而越做越開心,因為他們發現這才是他們想要的(做吃的),因此,為了讓薑母鴨的味道能更貼近當地的消費者,會主動詢問顧客的意見,並不斷嘗試與改良口味,還會看美食節目,進而增加知識,藉此做為日後改良的基石。也因此,店裡的生意才會越來越好。雖然父母常因生意太好而疲憊,但他們依然樂在料理之中。

雖然讀書很重要,但興趣更重要。因為沒有興趣,所以念念就忘,考完就忘,這樣一點幫助都沒有。試著找出興趣,並透過興趣吸收更多的知識,使自己不斷成長,走出自己的一片天。千萬不要因為別人說沒有用,就否定該興趣的存在,有沒有用,是由自己決定,而非別人。許多成功的案例在成功以前,都不被看好,甚至嗤之以鼻,所以,相信自己。還記得前陣子看到一位女主管放棄百萬年薪,自己創業,開一間專賣香氛方面產品的店,因為他對該方面有濃厚的興趣。在做這個決定時,她的家人與朋友非常反對。雖然創業過程辛苦,但現在成功了,她不但做得比以前當主管時還開心,收入也較之前高,也有了自己的品牌。自己的人生應該由自己做最後的決定,所以找出興趣,朝自己的路前進吧!

How to use JSON to exchange data between Flex and Java from MySQL

How to use JSON to exchange data between Flex and Java from MySQL

環境:
Windows XP SP3
Flex Builder 3.2
Eclipse 3.4
MySQL 5.1
Tomcat 6.0
LCDS(LifeCycle Data Service) 2.51

所需Package:

 Java:
  commons-beanutils
  commons-lang
  commons-collections
  commons-logging
  Ezmorph
  json-lib

 Flex:
  as3corelib

1. 先在MySQL建一個table,就叫user好了

CREATE TABLE `test`.`user` (
  `user_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `user_name` VARCHAR(10) NOT NULL,
  `user_age` INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY (`user_id`)
);


2. 新增一些假的資料~

INSERT INTO test.user(user_name,user_age) VALUES('Flower2',22);
INSERT INTO test.user(user_name,user_age) VALUES('Ivy',23);
INSERT INTO test.user(user_name,user_age) VALUES('Mandy',18);
INSERT INTO test.user(user_name,user_age) VALUES('Peter',30);
INSERT INTO test.user(user_name,user_age) VALUES('Com',22);


3. 撰寫java程式碼

package com.lflower;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class SQLHandler {

    private Connection conn;

    private Connection connectMySQL() {
        try {
            conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/test", "root", "1233");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    public String getUsers() {

        Statement stmt;
        JSONArray users = new JSONArray();

        try {
            stmt = this.connectMySQL().createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM `test`.`user`");

            while (rs.next()) {
                JSONObject user = new JSONObject();
                user.put("UserId", rs.getString("user_id"));
                user.put("UserName", rs.getString("user_name"));
                user.put("UserAge", rs.getString("user_age"));
                users.add(user);
            }
            rs.close();
            stmt.close();
            connectMySQL().close();

        } catch (SQLException e) {
            e.printStackTrace();
        }
        return users.toString();
    }

    public static void main(String[] args) {
        new SQLHandler().getUsers();
    }
}


在這邊會用到JSONArray和JSONObject
將每一筆資料以Key and Value的方式put到JSONObject
然後在被add到JSONArray裡
最後將JSONArray以String的型態回傳給Flex

4. 設定remoting-config.xml

    <destination id="SQL">
        <properties>
            <source>com.lflower.SQLHandler</source>
        </properties>
    </destination>


5. 寫一個介面來檢視我們取得的資料(將as3corelib裡的as3corelib.swc複製到Flex專案裡的libs)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                layout="vertical">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.rpc.events.FaultEvent;
            import mx.rpc.events.ResultEvent;
            import mx.controls.Alert;
            import com.adobe.serialization.json.JSON;

            [Bindable]
            public var users:ArrayCollection;

            private function roResult(event:ResultEvent):void
            {
                var result:String=event.result.toString();
                var usersArray:Array=JSON.decode(result) as Array;
                users=new ArrayCollection(usersArray);
            }

            private function roFault(event:FaultEvent):void
            {
                Alert.show(event.message.toString(), "Error");
            }
        ]]>
    </mx:Script>
    <mx:RemoteObject id="ro"
                     destination="SQL"
                     result="roResult(event)"
                     fault="roFault(event)"/>

    <mx:DataGrid dataProvider="{users}"/>

    <mx:Button label="Get users"
               click="{ro.getUsers()}"/>
</mx:Application>
 


6. 執行結果



Google Chrome OS~~

今天看到這篇新聞:Google稱Android、Chrome OS路線不同

Google正式提出雲端運算時,就有傳言表示Google會推出一個OS來支持雲端。去年初Android推出後,有人認為Android就是該概念下的產物(因為是以linux為基礎的關係嗎??),但由這篇新聞可以得知不是,因為它無法處理太過複雜的操作,例如附載平衡。畢竟,Android是為行動裝置所開發的,以現階段技術甚至用在netbook上都有問題(畢竟當初定位就是手持行動裝置)。

雖然目前的資訊並未明確指出Google Chrome OS是為雲端所開發的OS(目前僅表示是for netbook),但也沒有足以證實不是的訊息。畢竟,雲端不可能只依賴GAE(Google App Engine)和Google的server(這樣也不符合雲端的概念)。明年下半年就有機會看到Google Chrome OS的身影,現在也只好拭目以待了~。

前幾天Google Chrome OS提出後沒多久,就有一篇文章分析Google Chrome OS會對微軟的作業系統產生多大的影響。以現階段來看,Google Chrome OS可能還無法"明顯"撼動微軟OS的地位,因為之前看過一篇研究,指出Google雖然有廣大愛用者,但對Google的忠程度卻很低。因此,若Google Chrome OS無法推出與微軟的OS有明顯且使用者接受的差異化(這也需要周邊軟硬體開發商支持),對長期使用Windows的使用者來說,肯定是興趣缺缺,況且最近Windows 7炒得正火熱呢XD

[轉貼]Windows 7不支援 混合硬碟玩完了?

出處:Windows 7不支援 混合硬碟玩完了?

第一次看到混和硬碟時,就覺得它的前景不遠。雖然它擁有非揮發性的快閃記憶體,藉此以減少硬碟讀取的次數,但該在快閃記憶體內放什麼資料,才能真正有效減少其讀取次數,應該是一門很複雜的學問。所以最好的辦法,還是從硬碟先天的缺陷著手-物理限制。

還是等SSD普及的那天來臨吧XD

超有創意的英規插頭

今天在youtube上看到的影片
沒想到插頭能有這樣的創意阿~

[轉貼]寫給JAVA就業新手的十封信

出處:寫給JAVA就業新手的十封信

作者是Javaworld裡的Javck
僅部分節錄
更多內容可到出處觀看~

To Dear Javck :

網路上很少您這樣的人,願意給一個連一面都未見到,
卻願意給他自己豐富的經驗知識的人,
我非常同意您把我的簡訊內容轉PO出來給大家看,
但就怕我的簡訊內容不是很充足^^"(汗),我會更用心的去做,
您有提到一點 也是我的缺點,只是我一直忽略了它的重要性,
就是我在投遞公司時 我只是以該公司的規模去決定我的喜好,
但卻很少先去看該公司主要提供的服務內容,相信這是我失敗的最大要素,
第二;雖然我會UML,但是也許如果把UML改成片段程式碼,
是否會比較更容易讓面試官了解我的程度?
因為上一封簡訊提到的公司(緯德) 該面試官主要是問我程式的技術,
但沒有關注到UML的內容,但我目前只會用MVC架構 JSP+SERVLET+VO+DAO
去寫出一個動態網頁,但當面試官問我關於STRUTS的技術時,我卻答不出來,
因為我的專長裡面有提到我會STRUTS,所以就問我,
為何用STRUTS 還要自己寫SERVLET? 當時我不懂,
我還是告訴他 我是用到MVC的Design Pattern,
但回家自己看了一陣子STRUTS的書之後,
才了解真正的原因---- Servlet在STRUTS中已經不存在,
在JSP之後已經由STRUTS取代Servlet的功能了,
所以我自己一方面覺得對不起該面試官,
因為我連STRUTS都不懂 為何還要寫上專長?
另一方面當然就是覺得要好好加強自己在framework這方面的技術。

Dear fxxxxx:

你過獎了,我只是多經歷了一些人生風雨,感悟較多;至於做些筆耕,用的也是公司的時間,也許你該感謝一下 我任職的公司,給我錢寫些跟工作沒關的東西,開玩笑的~~

談回正題,我剛剛看了你的來信,我覺得你並沒有掌握到趨勢! 而學會觀察趨勢,並讓自己隨著波浪前進就能事半功倍!

為什麼會提到趨勢?

因為我看到你說到你辛苦製作的UML,這東西我也花時間鑽研過;不過因為台灣的畸型工作環境,99%系統的產生是不需要UML的,所以面試你的主管99%是UML草包,你覺得他會和你談這個嗎?談多了,只會自曝其短不是?

關於UML,他最多只會問到 你畫過哪些圖??

其次現今工作職場上,人員招募的分工是很細的!一般都是由人事先將不合條件的人員篩掉,再將符合的人選交由人事主管;主管挑出比較適合的人選之後,請人事通知面談,再請用人單位去面試....

你研究一下這個流程,你覺得是哪一關把你刷掉的?? 用人單位嗎?

恐怕不是,絕大多數人,包括我,90%都死在第一關! 所以怎麼辦,自己想,這個我就不多說,看個人本事囉!

絕大多數的求職者,都會有個似是而非的想法,覺得填寫所會的東西越多,錄取的機率越高;殊不知道,往往相反!

我舉你的例子分析給你聽,你玩過MVC,所以你履歷表也許是這樣寫的!

擅長 JSP . Struts . Struts 2.0 . Hibernate . Java Script . J2SE . J2EE .Oracel..

這樣看來的話,會的東西已經不少了,應該很有機會,但是站在面試官的角度幫你看,我會覺得你在賭博,而且是賠率低風險高的爛賭!

怎麼說,當你寫的越多,就越有可能碰到主考官擅長的,那麼主考官肯定會針對他最擅長的領域對你窮追猛打,來測試你的深淺.. 要知道每一個技術,會跟熟悉差異可是很大!
入門-------------------------->大師
JSP : JSP和Servlet有啥不同?你寫過哪些東西?聊聊EL?聊聊JSTL?不用<% %>只用標籤寫程式?

Struts:這個Framework的強項與重要性?使用經驗?Struts編寫流程?可以用記事本寫出來?可以說明怎麼做出Validate效果卻不寫程式?Tile?

J2SE:何謂SE?你寫過哪些程式?IO怎麼寫?怎麼寫SOCKET等網路程式?SE怎麼連接資料庫?你可以不用Google寫程式嗎?

Hibernate:Hibernate的重要性在哪?可以節省哪些程式?架構為何?怎麼直接從既有資料庫轉換成DOJO?結合ANT來加速工作你會嗎?多對多等複雜資料架構的建置,只用設定就可以讀取永續層?

看到我寫的這些,正在看的你想必已是冷汗直落,但是請你相信我 只要面試官是任一領域的行內人,問出這種程度的問題,絕對是A Piece of Cake ,因為他每天都在玩這塊,你回答的對還是不對,他絕對很清楚,只要你寫到了他的強項...

那樣的話,你回答的表現,將會決定你所有領域的程度!
易言之,如果你Hibernate其實才剛碰,他卻專問你Hibernate,那麼即使你Struts真的是大師級的,也馬上被判定不及格!

你同意我的觀點嗎? 你還覺得把想到的都寫上去是好主意嗎?

就算你賭對了,你問到的剛好也是你的主力Struts, 你回答的超棒,那面試官會怎麼想?

這位面試人員實力真的很強,可是我只是要一個幫忙製作資料庫連線程式的工程師,薪水只有25000,他可能不會接受,我還是找下一位好了!!

這就是為什麼我說這是一場很爛的賭博,最可能你賭輸了 而且很慘,就算你賭贏了,卻還是可能變成拿石頭砸自己的腳!

我剛剛跟你聊到的現象,都是屬於台灣專有的怪現象,也是你找工作所不得輕忽的趨勢.

今天回家前,問問自己 你是否跟趨勢是同路人...

/************************分隔線************************/

會寫這一篇是看到這個版,有朋友感嘆自己非科班出身,工作不好找,有感而發所寫,整理至此!

首先回原Po , 根據我簡單的觀察, 在台灣從事資訊科技的程式工作的, 大部分都不是本科系出身的. 在工作職場, 非本科出身的程式設計師的心態往往比本科的更好,工作能力也相對較強! 副總任用我的理由之ㄧ,就是因為我非本科,沒有相關經驗!

在進入JAVA程式設計領域之前,我自動放棄了一份年薪百萬,中國南京區業務助理總監工作

接下來,我想暢所欲言,談談我看到樓上的辛酸與無奈...

程式設計師算不算是專家?
有人說,對不起要醫師或會計師才算喔! 你聽到了,喔!原來我們不是多了不起的小螺絲..

但是,他有沒有對你說,如果一位醫師的客人身體不適,那位醫師剛好休假去~ 結果可能就只是那位病人得忍受一天的疼痛,或者乾脆直接去找其他醫師...

我是一個Java程式設計師,我負責的是用免費不要錢的超炫技術,去幫公司建立系統,也因為我是一個程式設計師,所以碰到系統掛點,是很稀鬆平常的事;當我所建立的系統掛點,影響的是全球的User,你可以想像50幾個國家的User在不同的時區,卻同時的跳起腳來,不知道會產生幾級地震? ;

如果公司可以找個人接過我手邊的程式碼,那我就可以繼續安心放假,公司甚至可以隨意資遣我, 但是有人接的過手嗎? 不行,因此我得從家裡連線回公司處理,一邊暗爽 公司沒我不行!

如果系統掛了一天沒關係,User可以忍受一天的不便,讓我等到上班日再來處理,不會產生你無法想像的損失,但是你有聽過系統掛掉有人忍受的了嗎? 有聽過系統掛掉卻沒有任何損失的嘛? 不可能, 所以公司寧可讓你擁有更多休假, 也要你立即將系統恢復!

如果公司面臨財務吃緊,必須請他的兩位寶貝程式設計師之ㄧ離開,其中一位是用.NET在開發系統,另一位假設是在下我;如果.NET可以開發的又快,薪水又低,開發的技術又不要錢,客制彈性度又高,那麼我應該要早點準備履歷表了.. 但是你有聽過用Microsoft Solution不花錢的嘛? 你能確定當客制需求提出,得到的答案一定是No Problem? 那是天方夜譚! 所以公司寧可用比他高的薪水聘請我,請.NET走路,因為公司算的很清楚,用.NET來開發一套WEB MSN所要付出的背後軟硬體成本,比付我的薪水高的太多太多!

一位醫師的短暫離開,對社會的影響很小很小,你也相信她是專家.. 一個程式設計師的短暫離開,對社會的影響很大很大,你卻不認為自己是專家?

或許一位醫師的養成至少要7年,所以比較像專家,有人如是說;不過,一個程式設計師要能夠發展到成熟,所需的知識是非常廣泛而令人瞠目結舌的,7年恐怕還只能小成而已!為什麼程式設計師不能夠是專家呢?

說說我的轉業經驗,我在30歲那年離開我的高薪工作,躊躇間選擇了java程式這條路! 我透過資策會這個管道,來學習JAVA,在半年畢業後,進入跨國企業工作,開始維護全球性的系統

你問我是如何辦到? 我又不是本科學歷, 學習JAVA只有短短半年, 更沒有任何IT相關背景..

我要反問你的是,請問你是如何在經營你的學習? 請問你有沒有認真的在行銷自己?

當我在資策會上課初期,老師教給了我們WiKi技術,所有學員都把它當成了一個過場課程,我卻用這個技術將所有學習到的東西累積成了我個人的JAVA知識管理平台

上課時老師引導大家所寫的一些範例或者是專案,一般學員大多是隨便寫寫,交差了事,我卻為了做出一個專案,一週七天每日報到,因為我計畫好,我要將我創作過的程式碼收集起來,製作成我的求職CD

當別人走向面試的戰場,或許準備的武器是一張相片,一份列印好的單色履歷表,和一張碩士文憑;而我是拿一張非本科的學士文憑去面試的,一樣有相片,不一樣的彩色履歷表,還多一本彩色活頁夾,方便簡報我所製作過的系統以及採用技術, 當然還有我內含Wiki知識管理庫,和作品程式碼的求職CD

求職CD的成本很低,外殼是拆以前買的CD拿來的, 封面是我用三腳貓的Photoshop技術做出來的,送去工廠印出來,總共只要175元,但是用心無價!

看到原稿的工廠老闆很好奇的問起我,以前很少看到有人為了找工作作CD?

我說:是嗎?

老闆說:是阿,我做那麼多年了,沒見過搞這麼炫的,弄得好像要出專輯,怎麼會想到要做這個?

我說:也許因為我當過導演,對浪漫的感覺;和我當過業務,對市場的嗅覺吧

我笑笑,笑著打完最後的結論,各位親愛的朋友們,當你抱怨前景不順,當你抱怨工作不保,請問你的用心夠了嗎? 周星馳成名前,一次拍戲要扮演被梅超風一掌打死的Z咖,拍完後,他卻只因為認為一個人沒有任何反應,甚至一點抵抗都沒有,這是不合邏輯的,應該要重拍那兩秒才對,為了這個理念,他可以在導演家門口淋了一夜雨...

你呢,為了你的理想和你選擇的JAVA,淋了多少雨?

/************************分隔線************************/

有朋友寫信來提到他現在應徵遇到的一些問題,我覺得很多java新手一定也都面臨過同樣的問題,因此我回信他之後,也把信的內容收集起來,分享給大家,當然名字是我改的,而這篇也就是我想展開這篇新話題的主要原因!

javck大大 您好:
看過您的文章後,我也能體會到您當時的用心,與您相比我的用心程度還是不夠,我只是把自己的履歷加上作品的截圖與UML圖與使用案例說明,整合成一本26頁的履歷,我用一般郵遞的方式寄給我希望將來有機會能在該公司工作的地點,一共寄出了3份,其中有一份來自台北的公司收到了,願意給我一個面試的機會,與該公司約定好時間後,那天早上我就搭高鐵從高雄到台北,只為了一場面試,該公司認為我的作品與履歷都寫得很用心,但面試結果就是認為我的技術還不能被他們所用,希望我可以先在一般公司磨練個幾年後,如將來還對該公司有興趣的話,他們會願意錄用我因為我的口才不算很好,外表看起來也很木訥,投出去三家其外兩家都算是小公司,但卻沒有回音,致電過去也是草率的說: 公司還在評估中,我想除了自已的技術還須加強外,我不知道在對自己行銷上還需要在哪方面多努力? 還請大大撥空提點小弟 感激不盡!

Dear fxxxxx 您好:
看到你做的準備,雖然算不上是很充分,但已經比什麼都不帶就上來的強!

因為我對於你的技術不了解,對於你應徵公司的背景你也沒有說明,我只能從行銷的角度分享一些看法

行銷之道,大處去分不外乎以創意去吸引別人注意,或者拉大市場層,以量取勝

在創意取勝的部份,你可以改進的是,你不彷拿著你自己提供給對方公司的材料,自己好好靜下心去看看,在現在滿滿都是在談一分鐘幾十萬上下的速食年代,有多少人會被你的材料所吸引?

如果你準備很有內容的26頁專業UML,卻被一個外行的人事看到,你說他會想要把你的東西放到他主管桌上嗎?? 你可以這樣去問自己...
至少我問我自己是不會,所以我準備了一個求職CD, 封面是用Heroes去改的,就是日蝕那個,至少可以吸引到美眉吧,我猜~~

東西有材料是很好,但是有話題,能吸引第一關的把門人更重要~~~

結論是我覺得你該把你的專業包裝一層可口糖衣再放出去,這是一種對自己負責的表現,而且這也是一種專業;我喜歡用100理論來說明這種現象,如果你有很好的學經歷,幫你加一個0,如果你的技術專業很強,再加一個0;但是你如果沒經過用心的包裝和整理過的外表, 你的面試結果只會是很遺憾的00,因為包裝是最重要的1

如果你跟我一樣,作過充分的準備卻還沒得到機會,那麼你很可能遇到的是一個很混的人事,或者其實該公司有一個很嚴的學歷審核機制,又或者人選早就內定好了等等很多可能, 這時候 你就要想想行銷的第二種作法 量化

我做行銷時,常常說的一句話是,你別看1是一個很小的數字,只要乘上13億,就會是很恐怖的天文數字! 所以,你別看這東西的利潤有多低,如果你放到大陸市場,那怕你只賺到一人一塊錢,你就能賺到13億!

你或許被一家公司拒絕,請你毋須沮喪,在下我還很糗的被一家叫大猩猩科技的公司給面試後拒絕掉的,我不曉得那家公司為啥要找我去面試,因為我明明專長在 J2EE,但是他卻丟給我只問J2SE的考卷給我,而我在六個月的時間裏面都是瘋狂的在寫程式,很多理論的東西我不是很懂,但是我寫的東西就是能跑,我們導師認為SCJP等到工作後再去準備就好,所以那張考卷我幾乎一半不會寫..

那場面試完全展現不出我的實力,這只代表這家公司不適合我,不代表我實力不行,也以此勉勵你,如果我就這樣進了那家公司,我還真虧大了我!

結論是 你可以抱持以戰養戰的心態,當你面試失敗,不要對自己失望或懷疑,我知道你會,因為我也曾經徬徨,不用怕!

也許一年後,你會慶幸那家公司沒用你!不然你不會有機會進下一家更好的公司!

你應該投更多的履歷,但是你還是應該對所有投遞的公司做點功課,了解這家公司做什麼領域,跟你的專長還有興趣是否相符(興趣很重要,作不開心 你很難成功),我的更多不用到100那麼誇張,你也許多面試個10家公司,我相信你就能找到心儀的工作!

如果還是不行!???

那麼相信我,至少你已經成為面試老鳥,口才等級提升不少了,下一次面試會更好!

How to integrate Apach and Tomcat on linux(Fedora)?

原本打算以Tomcat當作專研的Http Server,上網查了些資料後,發現Tomcat在處理大量需求(request)方面的效能沒Apache高,因此有人建議以Apache處理靜態網頁,讓Tomcat專心當容器(container),有JSP or Servlet的請求時,才麻煩Tomcat。若Apache有太多需求要處理時,可讓Tomcat支援,做負載平衡(load balancing)。負責處理這些事的,是Tomcat connectors-jk。

安裝環境:
 Fedora 10

所需檔案:
 Apache:httpd-2.2.11.tar.gz
 Tomcat:apache-tomcat-6.0.20.tar.z
 Tomcat connectors:tomcat-connectors-1.2.28-src.tar.gz

第一步:安裝

安裝Apache~


解壓縮
tar -xvf httpd-2.2.11.tar.gz

安裝
cd httpd-2.2.11
./configure --prefix=/usr/local/apache --enable-so
make
make install


安裝Tomcat


解壓縮
tar -xvf apache-tomcat-6.0.20.tar.gz

搬到常用的目錄
mv apache-tomcat.6.0.20 /usr/local/tomcat


若未在linux設定Java的環境變數
請在tomcat/bin/Catalina.sh中加入JAVA_HOME=路徑


安裝jk


解壓縮
tar -xvf tomcat-connetors-1.2.28.src.tar.gz

搬到常用的目錄
mv tomcat-connectors-1.2.28-src /usr/local/jk

安裝
cd /usr/local/jk/native
./buildconf.sh
./configure --with-apxs=/usr/local/apache/bin/apxs
make

將mod_jk.so放到apache的modules
mv apache-2.0/mod_jk.so /usr/local/apache/modules

將workers.rpoperties放到apache的conf
mv /usr/local/jk/conf/workers.properties /usr/local/apache/conf


步驟2:設定

先設定apache的httpd.conf
vi /usr/local/apache/conf/httpd.conf


加入下列項目
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkShmFile logs/mod_jk.shm
JkLogLevel info
JkMount /*.jsp ajp13


設定workers.properties
vi /usr/local/apache/conf/workers.properties


以下所設定的路徑皆為我本身的環境
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr


步驟3:測試

啟動apache
/usr/local/apache/bin/apachectl start

啟動tomcat
/usr/local/tomcat/bin/startup.sh

在瀏覽器的網址列輸入http://localhost/和http://localhost/index.jsp測試看看
測試結果如下圖


開始放暑假了~the busy summer vacation

今年的暑假,應該是我在大學階段的最後一個暑假

也算是最忙的一個暑假...因為不能專心玩技術,還要準備研究所

其實,這個暑假原本只打算念研究所的書(書都準備好了@@!)

有Computer Science An Overview

Operating System Principles

Computer Networks

Data Structures & Algorithms in JAVA

Management Information System : Manage The Digital Firm

但...還是抵擋不了技術的誘惑

所以禮拜五考完英文後,跑去圖書館借了Hibernate、Ant和鳥哥的linux書籍兩本

這四本加上目前為研究所買的書,共九本,昏= =!

不過...應該是ok的,從一年級到現在,念這方面的東西時,還蠻快樂的

而且平常就有在接觸相關資訊,相信我能負荷的了!

TWJUG行~

今天是參加TWJUG(Taiwan Java User Group)的日子,內容是談zk framework核心架構剖析、開發流程與UI設計和GAE(Google App Engine),zk是由JavaWorld的站友-zanyking主講,而GAE則是林信良。地點是板橋火車站6F的資拓科技股份有限公司會議。主辦人... 應該是JavaWorld的站友-koji。

當初會想參加,是想見識一下高手都在討論、研究與玩些什麼,還有就是他們的樣子囉,看是不是真的如一般人(include me)的刻板印象-邋塌兼宅= =!。經過今天後,沒發現邋塌,而宅...也還好。其實今天會參加TWJUG還有一個目的,就是一睹想信大,因為我能有現在寫程式的能力(雖然還是很嫩),都是靠信大的書與網站引我入門,不過...可惜今天沒帶Java SE6技術手冊給信大簽名...XD。

原本以為資拓科技的會議室很難找,沒想到從電梯出來後,有位正妹告訴我就在他身旁那道門!天哪,這地方有正妹出現,真是難得阿XD,以後如果有機會正式認識koji,一定要叫他介紹給我認識XD(開玩笑的)。進入會議室後,人數還不多,但有兩個人很顯眼!他們似乎在喬投影機(後來證實是kogi和信大),所以有在對話,而其他人幾乎都是靜靜坐在位子上,等待活動開始。在我坐下後約五分鐘,進來了一對男女(女的蠻漂亮),然後女的坐在我旁邊,那個男的當然是坐旁邊的旁邊囉XD。原本以為那個女的是陪男生來,沒想到...她是zk programmer!!會寫程式,長得又不錯的女生應該非常稀有吧!?裡面感覺只有我一個人是學生,感覺有點可怕XD。

2點10分,活動開始。首先登場的是信大與GAE。

信大給人一種親和的感覺,講話的聲音不粗魯且慢條斯理,肯定是一位好爸爸!不過我老爸也不差XD。

當初得知GAE開始支援Java時,有考慮要去接觸,但因專研的事,一直無法深入。經過今天信大的介紹後,我想...就現階段來說,應該是不會去touch。因為目前沒有考慮要玩分散式架構,而且,可能真如信大所說,GAE的推出只是個行銷雲端的手法。等它的目的更明朗後再看看吧!

接下來登場的是zanyking與zk。

若程式語言的強大與否,與開發它的相關人員的體格成正相關,那zk肯定很強大!呵呵,這當然是玩笑話囉,不過zanyking真的很壯,以第一印象來看,會以為他是健身教練。聽zanyking介紹zk時,感覺他一定很好相處,不像系上有些老師,明明就沒有很厲害,還一副很行的樣子,嘖嘖。

對Java programmer來說,若要開發RIA,zk會是一個很好的選擇,因為在control的部份能用熟悉的語言處理,view的部分也能以xml的方式輕易discribe layout與component。

其實我並沒有真正接觸過zk,所以今天聽得有點心虛XD。我這陣子都是在寫FLEX,就View的部分來看,兩者寫法是差不多的,再結合之前寫Java的概念,以及zanyking細心的講解,大致上了解zk的運作以及如何coding。程式邏輯的部分,zk是用Java,而FLEX是用自家的ActionScript 3.0,不過AS3僅能負責前端(View)的部分,若要進行後端處理,必須透過一些工具,例如LCDS(LifeCycle Data Service),而後端的語言目前我知道的有Java、Servlet、JSP、PHP、ColdFusion、Asp.net...等,就後端支援性,應該是Flex勝出吧?不過經過今天,發現zk還蠻有趣的,等專研告一個段落後在來研究研究!

除了見到信大,今天還有一個很大的收穫,就是讓我真正體會到為什麼要念資料結構、演算法、計算機概論和作業系統(可惜系上不太重視這些...)。平常自己寫的小東西時,感覺不太出來有什麼差別,但zanyking在介紹zk的核心架構時,有提到樹、同步的概念(我只記得這兩個= =);介紹OnXXX事件時,有提到執行緒方面的問題,這些東西,若沒有基本上的了解,應該會聽不太懂,而且難以了解其優勢。趁準備研究所時,好好復習這些東西!

希望下次還能參加TWJUG,不知道下次會不會有膽去認識其他前輩XD!

[Flex]Tomcat結合Flex Part 2

1. 寫個簡單的Java程式測試。我以Dynamic Web Project建立為例。

(1) 建立Dynamic Web Project





(2) 建立java





(3) 寫個簡單的程式碼




package com.demo;

public class ROTester {
  public String sayHelloWorld(){
    return "~ Hello World ~";
  }
}



存檔後,至專案的資料夾裡,將build中連同package一起複製至Tomcat中的 webapps\flex\WEB-INF\classes裡。





2. 設定remoting-config.xml。在Tomcat中的webapps\flex\WEB-INF\flex裡。在檔案裡加上一段標籤。




<destination id="tester">
  <properties>
    <source>com.demo.RoTester</source>
  </properties>
</destination>


3. 寫個簡單的介面測試。





<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;

private function roResult(event:ResultEvent):void
{
text.text=event.result as String;
}

private function roFault(event:FaultEvent):void
{
mx.controls.Alert.show(event.message as String, "Error!!");
}
]]>
</mx:Script>

<mx:Text id="text"
fontSize="30"/>

<mx:RemoteObject id="ro"
destination="tester"
result="roResult(event)"
fault="roFault(event)"/>

<mx:Button label="Click"
click="{ro.sayHelloWorld()}"/>

</mx:Application>



4. 執行(Run as Flex Application)





[Flex]Tomcat結合Flex Part 1

之前開發結合JavaFlex project時,都是選擇使用WTP(Web Tools Platform)結合兩者,但這樣會造成開發的專案容量變得很大(因為會將flex.war的內容載入到專案裡)。將flex.war部署到Tomcat裡,這個問題就能迎刃而解,不過缺點是...因為無法在Flex project裡開發Java,必須另外建一個專案開發Java,例如:Dynamic Web Project,然後將其*.class檔放到tomcat裡已佈署的flex.war,下面會介紹。

TomcatLifeCycle Data Services(LCDS)的安裝過程就不介紹了,照著安裝步驟即可完成。

1. lcds資料夾裡的flex.war複製至Tomcat中,webapps的資料夾裡。




2. (重新)啟動TomcatTomcat有提供Configure Tomcat啟動/停止的功能,我個人是習慣在服務裡啟動/停止。







在啟動過程中,Tomcat會自動部署flex.war





3. 啟動完成後,測試看看有無成功。在網址列輸入:http://localhost:8080/flex/




成功!

4. 建立結合JavaFlex project







若沒有要匯入swc檔或其他外部檔案,可直接按Finish完成。

汽油幫浦換新的了~!!

這禮拜似乎不是我的日子,因為我的4期噴射新勁戰竟然在這裡拜熄火3次!其中一次還讓我差點遲到,還好我習慣提早20分鐘出門。這禮拜熄火的次數,大概等於過去一年多熄火的次數,恩...該是時候去換了,反正不用錢。原本打算今天下午天氣沒這麼熱的時候去,沒想到大概10點半接到車行打來的電話,說我的車子在健檢活動中,叫我去換汽油幫浦,老闆都打電話來了,豈有不換的道理XD,事不宜遲,馬上出發!

11點到車行,老闆說大概要1點才會好,所以我就先回家繼續研究聯合分析~。12點半接到車行電話,說幫浦換好了。騎回家的過程中,感覺沒什麼特別,希望這顆幫浦不會再因堵塞而熄火,不然我下台車就拒買山葉的!!

[Flex]如何透過RemoteObject連接Javabean

1. 建立Server type為J2EE的專案



Next



我們可以在WEB-INFO/flex下找到一個remoting-config.xml。若要連到後端,必須在remoting-config.xml裡做些設定,如何設定?等下後面會介紹。



2. 寫個簡單的java程式
 (1) 在src下建一個java檔



 (2) 寫一個簡單的方法 處理和回傳flex傳過來的字串


package com;

public class RemoteObject_Test {
  public String sayHello(String s){
    return "Hello~ "+s;
  }
}
3. 設定remoting-config.xml
在remoting-config.xml的service裡新增一段tag


<destination id="Test">
  <properties>
    <source>com.RemoteObject_Test</source>
  </properties>
</destination>
tag destination是搭配RemoteObject的屬性(destination)。屬性iddestination的目標

4. 測試的介面



<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
  <mx:Script>
    <![CDATA[
      import mx.controls.Alert;
      import mx.rpc.events.ResultEvent;
      import mx.rpc.events.FaultEvent;

      public function connectJavaBean():void{
        ro.sayHello(input.text);
      }
      public function connResult(event:ResultEvent):void{
        Alert.show(event.result as String,"Message");
      }
      public function connFault(event:FaultEvent):void{
        Alert.show(event.fault.message,"Error");
      }
    ]]>
  </mx:Script>

  <mx:RemoteObject id="ro" destination="Test"
    result="connResult(event)" fault="connFault(event)"/>
  <mx:HBox>
    <mx:Label text="Your name is :"/>
    <mx:TextInput id="input"/>
  </mx:HBox>
  <mx:Button label="Connect" click="connectJavaBean()"/>
</mx:Application>
5. 執行 (選擇Run on server)
 (1) 執行畫面



 (2) 執行結果