2014年9月7日 星期日

辦護照記

到了現在仍然讓人感到「不真實」,因為過往還不曾有過那麼順利的辦理經驗,大多是坐在等候區看著遙遠的號碼慢慢接近,或是茫然面對一堆不太知道如何填寫的表格,又或著是遇上一些小狀況而多跑幾個地方,總之就是不順利,雖然到了最後還是完成了,但是中間的過程常常讓人不自覺的緊張起來。

希望順利能夠延續,能夠順利在 7 天之後拿到這輩子第一本護照。

事情發生得很快,由打算出去走走,一下子「膨脹」到出國,也不過短短幾天的事情。在辦了外幣戶頭,把護照準備好,很自然地成為了下一個要完成的項目。

在拖著同事陪我體驗了第一次的「證照相機」,花了 150 元得到六張帶有「下三白」眼神的照片(一直低頭看底下螢幕,頭忘了往上抬,結果就變成出現三下白的瞪人照片),滿足戶照需要的六月內近照基本條件之後,就接著準備其它資料,並約好星期三再拖著同事帶我去領事事務局親辦。

2014年8月1日 星期五

詐騙電話

平常的時候,偶而會接到一些響個幾聲就掛掉的電話,或是不時有投資公司、借錢公司打來推銷業務的電𧨮,讓人覺得很煩。有時候在會議途中打進來,急忙離席的接到的卻是這類電話,讓人心中有股無名火然起。

隨著時間的推移,慢慢開始有點吃驚,不是因為我的個資早就被賣到不數不清的地方,那種事情早就心裡有數,畢竟個資保護不過只是空話罷了。只不過這些公司的臉皮厚得開始超乎我的想像。起初還想說威要脅要告這此打電話來的公司,後來連回話的想法都沒有,直接掛電話。

在平常時候,接到這種電話讓人心情不悅,但是在凌晨接到詐騙電話就讓人極度不爽。話說昨天睡著一段時間,突然聽到手機響,迷迷糊糊爬起來摸來電話鈴聲就停了。開機一看是「私人號碼」打來的,起床氣加上接到詐騙電話讓我一肚子火。因為看了看時間,才一點出頭,也就是說我才睡了一個多小時,剛熟睡就被這種電話吵起來。

結果一個晚上沒有被這個電話搞到沒有睡好。雖然猜得出是想在人不清醒的時候詐騙,但是作到這種地步,還真的是讓人無言。看來要開始學學怎麼設定晚上電話的白名單了,不然要常常接到這種電話,那一天就完了。

2014年7月21日 星期一

碩士畢業

在太陽下跑了半天的時間,終於把論文繳到學校,跑完離校的流程並得到那畢業證書。拿著證書一個人走在校園裡,並沒有特別興奮的感覺,除了晒得微微中暑的熱和累之外,想的是終於完成拖了五年的學業,能夠放下一塊心中的大石,喘上一口氣。

身為學生的最後一天,過程並不是很順利,從臨時發現論文標題有誤,修改的時候發現跑版,急急忙忙完成了修改以及線上審核。到了影印店才發現改好了檔案忘在系辦沒帶出來,線上審核系統也沒地方下載,為此又多來回一趟系辦和影印店之間。

論文印好後,又發現授權書的正本被夾到其中一本論文,還好這次系助理有發現,再印了一張空白的重新親簽,這才趕到圖書館去審核紙本。排了十幾分鐘的隊,審查的時候還遇到電腦出錯,自動重開機,總算是完成紙本審查。往當時認為的最後一站—註冊組。

離校的流程中有一關叫填線上問卷,我一直以為這個以 Google Form 製作的問卷,既使是早上才填好,到了下午兩三點的時候,早就同步「填答完成」的資料。就是這樣子的想法,讓我到了註冊組,又再往返距離有幾百公尺之外另一棟大樓跑確認流程。沒喝水,又晒了一個多小時的太陽,讓人有些受不了。

當拿到證書,慢慢走在校園裡,大學時代一些的回憶一個一個冒出來,大學推甄的口試會場,入學體檢場地,曾經排隊印報告的電腦教室…等。雖然人還是會再回來,不過碩士畢業了,應該不會再以學生的身分來看四週的環境了吧!

驚訝自己花費了五年的時間才完成,不是因為時間花得久,而是經過五年來消磨掉機乎所有的動力,最後還有完成學業的一天。因為公司主管的鼓勵,同事們的幫忙,當然還有老師不斷的協助。抱著不想再辦休學,無論成敗在今天都要有個結果的心理撑到現在,還好,結果是好的。

過了幾天,早上醒來的時候還會不自覺得去想「論文還有哪些地方沒弄好」,這幾年來養成的習慣看起來是要再多一些時間才能消除。

2014年6月13日 星期五

想整理一些對程式的心得

雖然自己學習程式的環境並不是頂好,身邊不總是有高手相助排除疑難,不過就自己累積多年「被程式玩」的經驗,多少應該還是有一些能夠拿得上枱面的心得可以分享,在一些事情將告一個段落之際,我又開始想要回到這裡繼續發表一些文章。

我常對剛入門學習程式,許多環節進入不了狀況的人說自己的例子。記得在大學時候自己去學了 Java 的書自學,整本書的範例機乎讓我打過一遍,但是「類別 Class」和「物件 Object」的觀念,卻是等到過了一年之後,才慢慢掌握,在這之前都是照著書本或是網路上的範例進行,卻不明白自己是在作什麼。

2014年6月8日 星期日

學習新技術雜感

在連續差不多半年的碩士論文主題製作、撰寫的「死亡行軍」終於到一個段落之後,終於可以把一些時間拿來學習累積許久沒動的新技術,幾天來學習過程,讓我再一次感覺到,現在的環境對於要進入一個領域的初學者來說,有越來越不「友善」驅勢,除非有人帶或是從很早的版本就開始接觸,要進入一個新技術的門檻也越來越難。

這樣子的問題,由一些「XXX 入門」或是「XXX 簡單學」的書中可以看得出來,不知道是為了節省篇幅還是單純習慣使然,一些書本的作者喜歡用某某工具,用簡短的步驟、精簡的話語帶過一開始的環境建置工作,如果照著作可以功能那還好,但偏偏就是出現一些小問題,讓學習的人面對看不懂的錯誤訊息,在嘗試幾種方式仍無法解決的狀況下,「放棄學習」的念頭會浮現。

以上,就是最近我在學習新技術的縮影,有幾年程式經驗,對電腦應用有粗淺底的我都如此,可以想見比我更「資淺」的新手,想必會感受到更大的挫折吧!

2014年3月5日 星期三

使用 GraphicsMagick 將圖片轉正

早期數位相機儲存的照片不帶有方向資訊,所以需要再手動把相機撗擺所拍出來照片轉正。而如真新一點的照像機,包含智慧型手機會在檔案裡加入像是焦距、光圈…等資訊,而方向也是其中之一。在這裡可以看到其中的定義,在 Windows 8 或是在 Mac 中看到的圖片縮圖、預覽會先抓取這個資訊預先轉正,所以平常沒有這種感覺。

不過瀏覽器是一個例外,由同事測試得到的資訊,在 iPad 上的 Safari 會自動偵測圖片方向,並作轉正的動作。而其它 PC / Mac / Android 的瀏覽器都還是用圖片原來內容呈現。

這造成一個問題,當使用者利用手持裝置拍照並直接上傳,在瀏覽器所看到的圖片方向是不能被預期的。因此才會有使用 GraphicsMagick 來替所有上傳圖片作轉正的需求。

2014年2月14日 星期五

Zinc 全螢幕功能需要注意的地方

Flash 可以輸出成為執行檔,不依靠 flash player 直接在作業系統中執行。另一種角度來說,就像是把自己寫的程式和 flash player 包在一起。成為執行檔可以打開一些限制,像是能夠同時讀取本機與網路上的資料,或是執行系統命令。不過本來就沒有的寫入檔案功能,並不會因此冒出來。

全螢幕的功能,就是變成執行檔可以使用的功能之一。

在 MDM Zinc 裡,猜想是因為帶入的多視窗的概念,導致既有的方法失效,需要用它所提供 Forms 的方法來達到視窗的最大化、最小化、還原。最大化和全螢幕不同,全螢幕的狀態會把系統工具列、 Dock 等也一併隱藏。

使用 Zinc 開發的專案,很早就發現一個狀況,就是全螢幕的功能正常,但是取消全螢幕的功能卻時好時壞,系統工具列在取消的同時出現,但是程式並沒有回到原來視窗的狀態,還是維持全螢幕的大小,只是上頭多出現了系統工具列。一直到最近才找到時間去研究這個問題。

2014年2月9日 星期日

使用 Joda-Time 取得各時區的時間

話說前陣子研究 Joda-time 來取得各個時區的時間後,就把它應用在專案裡面。不過幾天專案發現出問題,讓我發現它的一個小小的問題。

問題的原因發生在把資料庫的時間轉換成我希望的時區,所以我寫了下面這個函數…
public Date getLocaleTime(Date date, String TimeZoneID) {
  DateTime time;
  if (date == null)
    time = new DateTime(DateTimeZone.forID(TimeZoneID));
  else 
    time = new DateTime(date, DateTimeZone.forID(TimeZoneID));
  return time.toLocalDateTime().toDate();
}

乍看之下沒有什麼問題,不過當選擇到某些特定的時區的時候就會出狀況,說 Joda-Time 不支援這個 TimeZone ID。

2014年2月7日 星期五

使用 MDM Zinc 遇到的兩個問題

MDM Zinc 是一個能夠把 Flash 發佈檔 swf 打包成應用程式,能在 windows, mac, linux  上直接執行,除此之前,藉由呼叫它所提供的函數庫,能讓 Flash 程式具有如同一般應用程式的能力,達到像是寫入檔案、取得網卡 Mac Address…等原本 Flash 不允許作的事情。第一次和它接觸好像是在五,六年前,還是 2.0 的版本,為了作一個單機、展示用的行銷光碟。

幾個月後,因緣之下又接到類似的需求,為了要讓 Flash 能夠寫入檔案,我又再一次選擇了這個工具,只不過不同的是,這次 4.0 的版本反而讓我吃了不少苦頭,花了兩三個星期的工夫才找到問題答案。在此作一下記錄,也許哪個遇到一樣問題的人,有緣看到這篇文章能夠少繞一些路。

這次發佈程式的平台是 mac,使用的是 ActionScript 2 的語法。遇到的問題分別是「文字輸入框裡無法出現游標,退位鍵在刪除一個字後就卡住了」,另一個問題則是「當程式打包成安裝檔,順利安裝到 mac 之後,不管多少支程式,在 launchpad 裡都只有一支程式的圖示」。

2014年1月31日 星期五

新年簡訊

一直以來,自己就不太會主動和別人打交道,好友之間很少主動聯絡,而春節簡訊則是一次都沒有發過,最近為了改變自己的個性,這個農曆年突然有嘗試發個拜年簡訊想法。

不過到了桌子前,卻是一個字也生不出來。不想打些制式的文字,花了簡訊錢只為了告訴對方還沒忘了他。但是要在短短幾句話裡把祝福及心理想說的話講出來,還真是困難。對於平時文章中綴字滿滿的我,突然有抓不到的簡訊重點的感覺。

想了許久沒有頭緒之下,決定到網路找找例子來參考,沒看不打緊,一看突然有種很強烈的感觸,好像突然回到十幾二十年前,好像看到了每年都會遇到一次,寒假作業裡寫吉祥話,猜燈迷的單元。似乎在這個部分並沒有因為時代不同而有太大的改變。

不喜歡寒假作業裡的這個單元,那勾起過往那不愉快的回憶。吉祥話只是照抄既有的、制式的文字,遇到範例寫光自己所會的全部,只能很不情願的苦思新文句。心中沒有祝福,只有應付作業的想法,以及對學校總是出這種虛應故事的題目感到厭煩。

父母很不看重這種「不會考」的東西,所以往往隨口敷衍一下,講一些不怎麼通順的句子。對我來說,那些是文字是不願意,但被強迫放到作業裡面的內容。寫過了,就不會想要再看到它第二遍。

對每件要作的事情認真,是自我的要求,也是努力營造的個人風格。雖然新春簡訊似乎不必要那認真,不過要我把這種文字打到手機上,花錢把它們發出去卻是千百個不願意。

再看看吧!當能夠把握文字,寫出自己能認可的話語後,才會發出吧!也許是明年,又或著這一兩天。再多多磨練~~

2014年1月19日 星期日

文章寫作的一些反思

最近我常常在思考一個問題,要怎麼寫出一篇好的分享文章。 什麼樣長度比較容易接受,而一篇文章中帶有多少概念恰當。隨著一篇篇文章的發表,開始思考 寫出來的 文章,於看 的人而言是不是有幫助。

最大的轉變,在於寫文章的目的,由 單純舒發自己心情,變成希望能夠 利用的文字來改變所及的環境。目前想作的,是把自己的一些心得,分享給其它人。

分享的重點是在於看的人最後得到什麼,而不是作者隨心所欲講些自己才看得懂的東西。 所以就看教學一樣, 需要把想法的順 序作一些的轉換,需要一些鋪陳、一些舉例,找出讓其它人容易了解的寫作方式。

2014年1月6日 星期一

對於 Java Date 類別的小測試

在打完關於 Joda-Time 心得之後,突然心中產生一個疑問。Java 原生的 Date 類別,輸出時候既然包含了時區的資訊,那麼是不是可以經過某一種設定,達到轉換時區的目的?在寫了一些程式測試之後,發現某些層面上來看是可行的,只不過其可用性還是得視當時的環境而定。

測試的方式,一樣使用固定的字串作為時間的參數,並且以 System.out.println() 方便觀察結果。基於觀察原生 Java 類別的目的,所以完全不使用 Joda-Time 相關類別,下面是最開始的程式…
public static void main(String[] args) {
  try {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
    Date date = sdf.parse("2013-12-26 18:48:24 UTC");
    System.out.println(date);
  } catch (Exception ex) {
    ex.printStackTrace();
  }
}

2014年1月5日 星期日

使用 Joda-Time 轉換成不同時區的時間

Java 原生的 Date 類別,是我一直沒搞明白的東西之一。總是認為它應該是一個集取得、設定時間方法大成的類別,卻奇怪於它的設定方法又少又有一部分不建議使用。而後來發現另一個叫  Calendar 的類別反而有著比較完整的方法,不懂原來的設定者希望開發人員如何使用它們。

後來在一次的技術討論中,聽到 Joda-Time 這個函數庫,說是讓人更方便操作時間資料,接手開發相關公用函數的過程,慢慢抓到它一部分的用法,記錄在這個地方。

查了一下網路資料,發現「Joda」這個字和星際大戰的「尤逹大師」是同一個字,不過作者說,這個專案裡的 J 應該發和 Java 裡的 J 一樣,也因為唸法不同,所以只是一個作來簡化 Java 程式開發的東西,沒有能夠揮舞下光劍的本領(笑)。

2014年1月1日 星期三

最近使用 jQuery Mobile 的一些感想

會使用 jQuery Mobile 這個 javascript 框架,是在花了不少時間去尋找能夠在手機、平板,甚至是在電腦瀏覽器裡執行的程式,最終所定下來的,目標是寫出一個類似 Web App 程式。記得在一開始發現它,就好像發現新大陸,本來不知如何下手的程式介面,在通過看過幾個範例後,利用兩週片斷的時間就完成介面樣式的設計,得到其它人的好評。不過直到開始撰寫程式的時候,才知道它並不如自己想像的那麼容易駕駕馭

簡單介紹這個框架,它可以利用 CSS 套版,將網頁既有的 HTML 變成像是手機程式裡的按鈕、清單,利用 data-xxx 屬性來描述 HTML 元素,可以組合成一個具有手機程式裡「標頭」、「內容」、「頁尾」三個區域,像是 iOS 裡在標頭的返回按鈕的樣式也作得出來,乍看之下還滿有模有樣。許多顯示效果,依照 HTML 元素的位置而有所改變。按照它的想法來撰寫 HTML,真很很省力。