2014/12/12

微軟買下 Minecraft ! 我的看法

  我知道 Minecraft 在國外很流行,但值得微軟花美金25億買它嗎?我這個玩遊戲外貌協會的人是不會去玩一個畫面還停留在DOS/Windwos 3.1 年代的醜遊戲. 台灣稱它為"麥塊",它有廣大的空間讓你當個創造之神. 看了國外一堆人的影片, 確實有其迷人之處, 但畫面就是太醜了, 我真的受不了. 如果它的畫面有像 Skyrim 或 Dragon Age 那種等級, 我會一頭栽進去, 否則免談 !
        微軟有這麼笨嗎 ? 它看到了什麼 ? 網路的力量結合遊戲 ?

     

2014/11/29

Design Pattern 讀書心得

  Design Pattern 方面的書讀了兩本,可能是資質太差,總覺得沒有讀的透徹,比對實際工作上設計的系統才有較清晰的領悟.也利用時間將一些心得整理出來:

  • OO(Object Oriented)基礎  : 抽象,繼承,封裝,多型這些基本觀念都不清楚那就不用再談什麼 pattern 了。
  • 有了OO基礎不代表就能自動設計出有彈性,可再利用及可維護的系統。
  • Design Pattern 告訴我們如何組織類別及物件,用來解決特定的問題,因此可以減少實務操作,直接運用可行的 pattern。
  • 將變動的部份封裝,多用合成,少用繼承。
  • Factory pattern :分為factory method 及abstract factory ,其目的是用來將物件的建立封裝起來.factory method 用的是繼承,將物件的建立委給次類別進行。abstract factory 用的是物件合成,物件的建立實作在工廠介面的方法中.factory pattern 提倡鬆綁,以利降低程式和具體類別之間的相依程度。
  • Decorator pattern : 動態地將責任加於物件上,裝飾著提供不同於繼承的另一種選擇
  • Strategy pattern : 將不同演算法個別封裝,就可互相替換。
  • Command pattern:將發出需求的物件與接受(執行)需求的物件分割開來.其它用途:佇列請求/日誌請求。
  • Adapter pattern : object adapter及 class adapter分別使用合成及繼承.這兩種方式在彈性上有其差異。
  • Facade pattern : 提供複雜系統一個簡單的使用介面。
  • Template method pattern : 將演算法骨架定義在一個method中,而演算法會用到的一些method則定義在次類別中。Ex: Arrays.sort(), JFrame.paint().
  • Composite pattern : 將物件合成樹狀結構,用來呈現"部份及整體"的階層關係。客戶端可以一視同仁地對待個別的物件及物件合成的結果。
  • Iterator pattern : 此模式讓我們取得一個Collection中的每一個元素,而不需將collection中的實作透露出來。可以使用 java.util.Iterator, 也可自行實作。

2014/11/16

Python 與 Ruby 的心得

  因為工作的關係這陣子與Python和Ruby 有了相當程度的接觸與運用,和之前自己比較熟悉的Java自然會拿出來比較一番。這兩個 Script language 本質上當然和Java不同。但它們可以做的事大方向上是相同的,只是偏好上的不同。單就語法上來看,我比較喜歡Ruby。但就應用廣度來看Python就比較吃香,例如:OpenStack , Django和Blender及Maya等一些3D建模軟體的應用。相對來看Ruby在資源上真的比較不足。只是因為Sketchup 3D 建模軟體中的plugin 使用的語言是 Ruby,讓我有機會接觸到它,也因此去了解了它在Web Application 上的framework Ruby on Rails.在台灣Ruby真的相對來說使用Ruby的人及公司真的很少,在技術人力的尋找會比較困難.但單就技術上的學習來看其實它很容易學習,只要有其它語言的基礎,真的不是什麼難事.

  Python用了一陣子下來,個人覺得其語法的縮排雖然是為了精簡程式碼,省去括號的使用。但這也是常讓我困擾的地方,其它方面倒是沒什麼意見。因為OpenStack 的關係,現在企業開始有一些Python及OpenStack 的人力陸續開出來.

Ruby 語法上真的很吸引人,短短兩三天它就讓我著迷。若不是工作的關係真的不會想主動去學它,但學了就會愛上它,只可惜它的競爭對手太多了,近年來Scala及JavaScript 的火紅多少影響它的發展。特別是JavaScript ,在Node.js 技術出來之後讓Web 前後台開發的語言統一了,這真是Web 開發工程師的一大福音.

接下來列幾個自己覺得Ruby 語法對學過其它語言轉過來的人要特別注意的地方:

語法中程式區塊省去括號的使用:

if ....
    puts 'Hello'
    puts 1+2
end

class  Car
    def run
    end
end

case ...
   ...
when ...
   ...
end

for num in (1..3)
    puts num
end


字串與數字的串接 : 

irb(main):001:0> s1 = 'Hello'
=> "Hello"
irb(main):002:0> puts s1 + 100
TypeError: can't convert Fixnum into String

irb(main):003:0> puts s1 + 100.to_s
Hello100
=> nil

就以上的程式片斷來看,和其它語言不同的是數字與字串不能直接串接, 需要先將數字轉成字串.

陣列元素型態與相加:
    Ruby陣列中的元素可以是不同資料型態
    Ruby兩個陣列可以使用加號(+) 直接串接形成一個合併後的新陣列

類別/繼承/存取控制:
      class Child < Parent
           def print
                puts 'I am Child'
           end

           def dump
           end

           private : dump

      end
     
      Ruby 的類別沒有多重繼承, class 間的繼承使用一個小於(<) 符號,夠簡單也夠簡潔. method 預設是 public ,不需像Java那樣前面加個 public 來宣告. 但 private method 就得特別宣告

變數:
     Ruby 變數不需要宣告型別,但變數名稱第一個字元卻可以很容易區分其範圍(scope)

$ 全域變數 (global variable)
@ 實例變數 (instance variable)
[a-z] 或 _ 區域變數 (local variable)
[A-Z] 常數

註解(comment):
     單行註解使用 # 開頭
     多行註解使用 =begin 開始, =end 結束,這點倒是不太簡潔

Ruby 還有一堆方便簡潔的語法, 等有空再整理,也當做自己的備忘錄.






2014/10/28

Chrome 中文輸入問題終於解決了 !

  Chrome 瀏覽器更新到 38.0.2125.111m(64 bit)終於解決中文輸入法無法正常輸入中文問題。這問題持續了好一陣子,至少超過一週以上。好巧,FireFox 也更新到 33.0.1 ,但不是相同的問題。

2014/10/21

Processing loadJSONArray() 問題

 在 Processing 中要載入一個 json 檔中存放的 array 資料會參考官方網站中以下列的程式碼執行:

JSONArray values;

void setup() {
  try {
    // values = new JSONArray();
    values = loadJSONArray("data.json");
  } catch(Exception e) {
    print(e.getMessage());
  }
  if (values == null) {
    println("values is null");
    exit();
  }
  for (int i = 0; i < values.size(); i++) {   
    JSONObject animal = values.getJSONObject(i);
    int id = animal.getInt("id");
    String species = animal.getString("species");
    String name = animal.getString("name");
    println(id + ", " + species + ", " + name);
  }
}

但一執行會遇到 cannot convert from JSONArray to JSONArray 的奇怪錯誤訊息,如果你在Eclipse 中開發很快就會發現問題在那裡。若是第一次接觸Processing 的人,真的是會被搞死。只要把第一行 JSONArray values;
前面加上 processing.data. 即可。

2014/10/12

Python 另人頭痛的 Singleton 問題

  最近學習使用Python 寫網路爬蟲程式,除了一些動態及需要輸入查詢條件的網頁問題外,最惱人的還是在Python 語法上,因為對Java 較熟悉,程式撰寫習慣會以OO的方式做思考,所以將一些Python 程式碼要重構時發現光一個Singleton pattern 的寫法就夠人煩的了,在Java 中是簡單的不得了,  在Python 中卻是寫法好幾種,重點是不夠簡單易懂。請參考 Stack Over Flow 網站上以下這篇討論:

 Creating a singleton in Python

以下是其中一種個人認為比較簡單的方法,缺點是無法避免被誤繼承的問題,但還不致於造成大問題。

class Singleton:
    __single = None
    
    def __init__(self):
        if Singleton.__single:
            raise Singleton.__single
        Singleton.__single = self
        self.name = None
        
    def __str__(self):
        pass
    
    def dump(self):
        if self.name == None:
            print ''
        else:
            print "Name : " + self.name
        
    def setName(self, name):
        self.name = name
        
    def getName(self):
        return self.name
        
class WorldSingleton(Singleton):
    pass

  個人是習慣使用Eclipse 搭配 PyDev 這個plugin 來開發 python 程式,以上程式碼無法在開發時就先警告,要到執行階段才能發現。

2014/09/27

Python 日期時間運用

  開始認真學起Python這個強大的script language ,因為它可以幫我運用在許多方面,像是Blender / Panda3D / Web scraping 等等。拿來運用時就想到以前在用 Java 時都用建立一套日期及時間的 utility library , 現在語言換了,應該也要先熟悉它如何處理日期及時間,以下整理自己常用的用法:

from datetime import date, time,datetime

# 取得今天日期
today = date.today()

# 日期 減一天
dt = today.replace(day=today.day-1)
print dt.year,dt.month,dt.day
# 月份 加一個月
dt = today.replace(month=today.month+1)
print dt.year,dt.month,dt.day
# 年份 加一年
dt = today.replace(year=today.year+1)
print dt.year,dt.month,dt.day
# 年/月/日 各減一
dt = today.replace(year=today.year-1, month=today.month-1, day=today.day-1)
print dt.year,dt.month,dt.day

以上這個年/月/日加減是有問題, 特別是當該日期為某月第1天時, 使用 day=today.day - 1 會出現以下 exception :

 >>> yesterday = date.today().replace(day=today.day-1)

Traceback (most recent call last):
  File "", line 1, in
    yesterday = date.today().replace(day=today.day-1)
ValueError: day is out of range for month


這時候該使用 timedelta , 請看以下示範:

>>> from datetime import date, datetime, timedelta
>>> tomorrow = datetime.now().date() + timedelta(days=1)
>>> print tomorrow
2014-10-02
>>> print datetime.now().date()
2014-10-01
>>> yesterday = datetime.now().date() + timedelta(days=-1)
>>> print yesterday
2014-09-30



# 輸出格式變化
print dt.strftime("%y%m%d")
print dt.strftime("%y/%m/%d")
# 年份為四位西元年 %Y
print dt.strftime("%Y%m%d")
print dt.strftime("%Y/%m/%d")
print dt.isoformat()

# 取得現在日期時間
now = datetime.now()
print now
# 印出現在的 時:分:秒
print now.strftime("%H:%M%S")
# 印出現在的 西元年月日 YYYYMMDD
print now.strftime("%Y%m%d")


前半部日期的加減是個人覺得很實用的一部份,可以用來一天天推移。從這些程式碼片斷可以看出來Python簡單卻很有威力的地方。換成其它語言可能要寫一堆程式碼才能達成相同的功能。

2014/09/24

Web 測試及網路爬蟲的工具 Splinter

  最近在研究如何自動化到一些網站抓資料,一開始某些靜態網頁比較簡單,不管是用Java 或 PHP 都可以抓下來。但遇到一些使用 JavaScript / AJAX 及網頁會重導到其它頁的動態網頁真的是沒法子,特別是一些還要輸入日期或其它資料的表單網頁。參考了"網路機器人,網路蜘蛛與網路爬蟲 PHP/CURL 程式設計指南"這本書中介紹的工具 iMarco ,但仍無法全自動化。接下來把腦筋動到要用 C# 來控制 IE (Internet Explorer) ,可是時間上不允許,只好再找工具,最後找到了 Splinter 這工具,它其實預設是搭配Selenium 這個 web 測試自動化工具,雖然 Selenium 這個工具有 FireFox plugin , 也有 IDE ,Splinter 才能真正做到全自動化。

     根據官方網站(http://splinter.cobrateam.info/)的介紹,它是一個 open source 工具,用來測試 web 應用程式。使用的語言是 Python。可以讓你自動化瀏覽器的行為,例如:變換網址 (URL)及與網頁互動。

    這裡先介紹在 Windows 平台如何安裝,Linux / Mac OS 比較簡單:
  1. 先到 Python 官網(http://www.python.org)下載 Python 來安裝 , Python 2, Python 3皆可
  2. Google 找一下 get-pip.py ,下載到自己指定目錄
  3. 執行 python get-pip.py 將 pip 安裝起來
  4. 安裝 splinter : 執行 python -m pip install splinter
以上步驟完成後就可以參考 splinter 官網中的範例來測試一下。目前我在 Windows 7 中安裝的是 Python  2.7.8,執行以下程式片段可以執行 FireFox 連上 Yahoo 奇摩,還可以自動輸入關鍵字"CSS3"搜尋成功。


from splinter import Browser
b = Browser()
url = "tw.yahoo.com" b.visit(url); url = "http://tw.yahoo.com"
b.visit(url)
b.fill('p', 'CSS3')
btn = b.find_by_id('searchsubmit')
btn.click()



    當然,前題是要對 html 及 Python 有點了解才能發揮 splinter 的功能。能自動輸入與網站互動後找到所要的網頁資料才只是第一步,資料能取回來存放才是後續的工作重點。在尚未找到 splinter 之前,也使用過 crawler4j 及 Scrapy ,現在終於有個簡單的工具可用了,後續會再介紹一些實例。

安裝 get-pip.py 訊息:
D:\download>python get-pip.py
Downloading/unpacking pip
Downloading/unpacking setuptools
Installing collected packages: pip, setuptools
Successfully installed pip setuptools
Cleaning up...

    不建議使用 IE,預設使用FireFox , 若沒有安裝 FireFox 也請先將它裝好,官方網站說也可以使用Chrome 及 IE,但在Windows 下尚未試成功。也不建議在 Windows cmd.exe 下執行 python.exe 會有編碼問題,請使用 IDLE。或是先使用 chcp 將 code page 先改成 utf-8,在Linux 中沒有這個困擾,或是可以使用Eclipse 安裝 PyDev plugin。在Eclipse 中開發Python 程式是很愉快的。

    當然直接使用 Selenium 可以配合其它程式語言如: C#及 Java,但仍然不如使用 Python 這種script language 來得好用,為使麼呢?因為每次遇到一個新的網頁要爬資料時,都會先開啟瀏覽器檢視網頁原始碼的功能,了解到該頁的HTML DOM 結構,特別是你所要抓的資料是屬於那一個Table 或是那一個 id , name 之類的。這時候可以在Python 的IDLE 環境中一步一步慢慢試,不用每次執行前都要編譯,省事多了!

當使用 splinter 連上網站網頁資料時最好搭配 BeautifulSoup 4 。用起來會更方便,但遇到動態網頁時,使用 splinter 搭配JavaScript 才能針對一些AJAX 網頁及forward 網頁或openwindow 做更進一步的控制。特別是一些要輸入查詢條件及選擇日期等,有了JavaScript 的配合幾乎能克服一些難搞的狀況。等工作較不忙時,希望能整理一些心得及實例分享給大家。
     


2014/09/23

Processing 錯誤訊息原因

  最近在學 Processing 2,有一次因為到選單 File > Preferenece調整了記憶使用量造成以下錯誤訊息及程式掛在那裡不動,若沒真的很懂 Increase maximum available memory 這項設定,不要亂勾:
 


Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: GC overhead limit exceeded
at processing.opengl.PGraphicsOpenGL$InGeometry.allocate(PGraphicsOpenGL.java:7164)
at processing.opengl.PGraphicsOpenGL$InGeometry.(PGraphicsOpenGL.java:7136)
at processing.opengl.PGraphicsOpenGL.newInGeometry(PGraphicsOpenGL.java:6855)
at processing.opengl.PShapeOpenGL.(PShapeOpenGL.java:325)
at processing.opengl.PGraphics3D.createShapeImpl(PGraphics3D.java:258)
at processing.opengl.PGraphics3D.createShape(PGraphics3D.java:181)
at processing.core.PApplet.createShape(PApplet.java:11689)
at CubicGridRetained.setup(CubicGridRetained.java:48)
at processing.core.PApplet.handleDraw(PApplet.java:2361)
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.lang.StringBuilder.toString(Unknown Source)
at java.lang.StackTraceElement.toString(Unknown Source)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at java.lang.Throwable.printStackTrace(Throwable.java:658)
at java.lang.Throwable.printStackTrace(Throwable.java:643)
at java.lang.ThreadGroup.uncaughtException(Unknown Source)
at java.lang.ThreadGroup.uncaughtException(Unknown Source)
at java.awt.EventDispatchThread.processException(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
An OutOfMemoryError means that your code is either using up too much memory
because of a bug (e.g. creating an array that's too large, or unintentionally
loading thousands of images), or that your sketch may need more memory to run.
If your sketch uses a lot of memory (for instance if it loads a lot of data files)
you can increase the memory available to your sketch using the Preferences window.


TOEIC (多益) 845 分心得

  一年多前自已讀去考了一次多益,只考了795分。自已覺得很差,因為聽力部份考的不好,沒想到最近去時代美語上二個月的課惡補(完整課程是至少四個月)。兩個老師教的不錯,但文法閱讀的部份多半強調單字量,聽力部份似乎只能多聽,重點還是單字量。考試技巧真的有點幫助,但模擬試題要多做才能在文法閱讀上來的及寫完。這次真的有寫完,剩下約3分鐘竟然放棄做最後確認及修改,結果這部份只進步了二十分。時代美語老師說文法閱讀部分考400分以上就算很讚了,我是不覺得啦!反而是聽力部份,平時多做了官方指南最新模擬試題,分數平均都在450到470中間,反而考出來沒有那麼理想,真的很不開心。也只進步了30分,真的不想再考了,接下來要加強寫作及口說,這兩方面都到一定水平才能把英文當成有力的技能!

  考多益不是學英文的目的,自己一直不斷在學習,閱讀方面固定每週會至少讀三篇以上文章,聽力方面利用每天通車時使用手機聽預先下載好的ESL PODCAST。

  最近去聽了幾場英文演講才發現聽力方面真的進步不少。已經很少有聽不懂的地方,就算講者說的很快也幾乎都跟得上。

  

  

2014/09/21

使用硼酸滅蟑殺蟑有效方法分享

  我家是幾乎每天開伙,不管怎麼清潔還是有蟑螂問題,殺蟑螂問題頭痛了好一陣子,上網查了一堆資料發現硼酸似乎是有效的方法,但有些人做誘餌的方法太繁複,自已試了一下有個簡單又方便方法的分享給大家:
  1. 到西藥房買硼酸,一包(盒)約30元
  2. 收集塑膠飲料瓶蓋三到五個
  3. 保特瓶或塑膠瓶一個
  4.  保特瓶中加入硼酸數克,加點水,加點米酒(我是加小米酒)
  5. 瓶蓋中加入餅干屑,米粒或地瓜塊(熟的)
  6. 將硼酸水加入每個瓶蓋,不要滿過去即可
  7. 瓶蓋放到餐桌及廚房 等可能出現的地方
三天內可以看到蟑螂屍體,幾乎連續幾天都看到四腳朝天的屍體.若有效請大家分享出去,也請給我點寶貴意見。記得保特瓶中的硼酸水要每天少量加在每一個瓶蓋中保持氣味才能持續吸引小強來吃。硼酸水瓶要放到小孩不易接觸的地方,也請用奇異筆劃上有毒記號提醒家人,以免造成危險。




2014/12/07 後記補充:
  這個方法雖有效,但還是無法全面性解決小強。最近太太買了一個叫"一點絶"的產品,那效果更是可怕。三天內到處都看得到小強屍體,但多半是小隻的,因為小小強吃完一點絶還來不及回家都掛點了,大隻的可能可以撐到回家,且將藥效也順便帶回去。已經一個多月沒看到小強出現了,但三個月後要再施放一次才能持續更久。這東西是否對環境有影響我實在不知道,但滅蟑效果真的是立竿見影。實在受不了硼酸這種較慢方法的人可以參考一下。


VMWare 無法安裝 64 位元(bit) 作業系統問題

  前幾天使用 VMWare 在 Windows 7 64 位元版中要安裝 Ubuntu 14.04 64位元版竟然出現以下錯誤訊息:

     VT-x disabled in the BIOS

    本以為是 VMWare 的問題,改用 VirtualBox 一樣也無法安裝 64位元系統。只好重開機進入BIOS 看了一下,還真的是被關閉了,這真是奇怪的現象。這PC 之前是別人使用,自己家中的是好好地不用進BIOS 開啟就可以使用 64 位元虛擬機器的功能,只能說是玄案!


2014/09/14

3D Game Engine (3D 遊戲引擎)的應用評估

如果你要開發一個3D軟體,你會使用DirectX或OpenGL 從無到有開發嗎?

目前非常懂DirectX或OpenGL的人多半在遊戲業發展,這方面的人材真的很少。所以我個人會考慮使用一些open source 3D game engine 來做軟體。但問題來了,評估了幾個 game engine 之後發現有文件可參考,但有些方面似乎無法符合3D 建模的需求,因為它們多半以開發遊戲為導向。另外一方面也發現,不懂3D圖學及OpenGL 似乎也不行,OpenGL書籍雖然市面上英文書很多,但多半不深入,特別是在建模及模這方面。

這下子又回到3D engine 上,市面上的書中文少的可憐,最近出了一本 : 王者歸來:Panda3D、C++、Python商業化3D遊戲引擎大揭秘
  買回來看了,但仍然是在建模方面很少著力,這下子又把腦筋動到 FreeCAD  上了,它很符合需要,但開發人員不是挺積極的,版本進度很緩慢,再加上穩定度待加強,實在很可惜。最後也看上了 Unity3D ,它比起Panda3D 功能更強大,需要多花點時間了解。

Blender 是個很成功的 open source 3D建模軟體,其Python script API 也很完備。目前個人深入研究中...

也因為這陣子在找 open source 3D 軟體,發現許多軟體都以 Python 為 script language ,像是 Blender / FreeCAD / Panda 3D .... 等等,突然發現這個程式語言又引起我的興趣了。看來需要再深入學習它,目前只懂一點皮毛而已。


2014/08/27

Eclipse 上安裝 Python PyDev plugin

  在Windows 上使用 Python 有兩種方式,到官方網站(http://www.python.org) 下載安裝後有兩種方式可用,一種是用命令列的方式,另一種是 IDLE 圖形介面。第二種雖然較好用但還是不理想,上網找到有一個叫 PyDev 的 plugin ,搭配 Eclipse 就好用多了。以下安裝方法提供參考:
  1. 開啟 Eclipse 3.6 以上版本,功能選單 Help > Eclipse Marketplace ...
  2. 在 Find 一欄中輸入 Python 這個字
  3. 第一個找出來的就是 PyDev - Python IDE for Eclipse, 點選右邊的 Install 鈕就對了
  4. 接下來至少要勾選 PyDev for Eclipse, 另一項用不到可以不勾, 再按 Next 下一步 , 點 I accept the terms of license agreements, 再按 Finish 
  5. 信任憑證 , 按 OK
  6. 最後安裝結束,重啟 Eclipse
  7. 接下來就可以在 Eclipse 的選單 File > New > Projects ... 看到 PyDev 的選項了,它有三個 Project 類型,分別是 PyDev Django Project / PyDev Google App Engine Project / PyDev Project 三種。 這時候還不能正常 New 專案,要先到 Windows > Preferences > PyDev > Interpreters > Python Interpreter 中, 按下右上角的 New按鈕將你已安裝的 Python.exe 路徑設定進來:
  8. 現在可以開始 New PyDev Project 在 Eclipse 中寫程式及除錯了 


2014/07/06

Raspberry Pi 中文相關網站

記錄一些 Raspberry Pi 中文網站以免忘記:
  • Raspberry Pi 的奇幻漂流
  • Raspberry Pi台灣樹莓派
  • 松鼠博士的魔法眼鏡
  • 憂藍夢境‧部落格


文房四寶的筆記

簡單記錄一下自己收集的資料方便未來採買:

  毛筆: 郭文溪毛筆 (台北市)
         墨: 陳嘉德  手工墨(三重), 小書齋 日本墨 (台北市重慶南路)
         紙: 台北市和平東路各大莊
         硯: 台北市和平東路 耕硯齋, 蕙風堂, 二水螺溪硯
 

2014/06/24

Linux Mint 17 XFCE 64 bit 使用心得

  換了新電腦主機板及CPU後一直沒時間使用 Linux ,直到最近閒下來,第一次使用 Ubuntu 14.04安裝後發現實在不喜歡它的 Unity 介面,也搞不懂為什麼這麼難用的介面抱怨一堆了還是要推. 接下來換上 Linux Mint 17 XFCE 64位元版. 裝完後一路用到現在快一週了才來寫心得.


  • 中文 : 預設輸入法用不習慣,一直以來都是用gcin ,還是改裝 gcin 輸入法比較習慣
  • 開發環境 : Eclipse 自行選裝, 預設有裝 gcc 但竟然沒有裝 build-essential 套件, C 程式無法正常編譯成功. Java 也是要自行安裝
  • 網路 : ADSL 設定沒什麼變, 但我改用 DLink 無線網卡不用一下就可以用, 已內建驅動程式。愈來愈方便了!
  • FireFox : Linux 版字型大小調整實在不優,比 Windows 版差多了, 自行上 Google 下載 Chrome 64 位元版來用, 速度似乎比Windows 版更快, 自行大小設定也比 FireFox 佳
  • 效能 : XFCE 效能已經很滿意了,但選單字型大小找不到地方修改,改用 LXDE 發現快到不行,占用記憶體又小,但重點是現在大家的電腦裝的記憶體動不動就超過4GB ,早就沒有不夠用的問題了。
  • PDF 顯示 : Linux 版比 Windows 快多了。
  • 顯示卡:也沒有任何驅動程式問題。
實在寫不出太多心得, 因為這兩三年來 Linux 已經改善很多,容易安裝,中文輸入及顯示都沒有什麼問題,比起十年前常為了中文顯示問題改一堆設定差太多了,從無到裝好了不起三十分鐘。如使使用SSD那更快,簡單做以上分享。

2014/04/29

FireFox 29 新版來了

  FireFox 29 版來了,介面改了,撥放YouTube影片也正常了。它已經變成我最愛的瀏灠器了。 

2014/04/02

台股站上 8900 了

  大盤今天 4/2 站上 8900 ,但我手中持股仍維持三分之一現金投入。因為居高思危啊!至於台指8850空單認賠後暫時空手囉!等待多頭無力再來!

2014/03/31

台股強翻了 !

  開盤先漲再跌,最後再拉最後一盤,動用一百億。這是那招,一個月內三次創新高,但成交量才八百多億。今天是三月最後一個交易日,往上往下明天就要見真章。期貨成交口數也是有減少的傾向。

  個人昨天台指期就放空留倉一口在8765,今天收盤前再留一口在8789,明天收盤站穩8850才會認賠。否則開始拚波段空單了。 

2014/03/30

MadEdit 的後繼作品 wxMEdit

  Open Source 文字編輯器 MadEdit 不再維護,由接下來改名 wxMEdit 繼續開發,也支援 Mac OS 版本及其它語言。對不滿幾十年來微軟記事本都不願做改進的人來說,它是個不錯的免費又強大的替代品。除了常見的程式語言語法高亮度設定顯示功能外,區塊模式是工作上的另一項強大功能。可以不用再去違法使用UltraEdit,推薦給大家使用 。

  其它值得一提的功能如下:

  • 支援各種常用編碼
  • 使用多頁籤方式同時編輯多個文字檔
  • 十六進位編輯
  • 正規運算式搜尋/取代功能
  • 轉換檔案編碼
  • 轉換中文字元
  • 等寬字型顯示






台股超超級強嗎 ?

  3/28 台股盤中又創新高了! 盤中最高 8812 超越前一波3/7新高 8787,但一樣都是創新高後拉回。最後一盤拉跌權值股才變成小跌。成交量不足千億,短線有拉回疑慮。

  所以個人在台指8765附近放空,收盤前8735穫利一半回補,另一半拚下週一續跌。若沒下跌頂多沒有賺,會在8795附近出場。 若收盤站上8800,那就認賠出場,也就是說台股超超超級強囉 !站不上8800,台指04 個人看空,少則300點,多則500點。

  三月份這波現貨從8230一路漲上來,已接近600點。四月份個人認為就算是還漲到9000點以上,也該休息做一波修正了。畢竟台灣經濟沒有好到可以上萬點的本錢。一個月內都創新高兩次了,不然還要怎樣?電子淡季都快來了 !

  特別要注意的是3/28 是摩台指結算,這難道不是拉高結算嗎 ?因為最高點在09:45左右就出現了 !

2014/03/27

台股超超強

  昨天才說台股超強! 今早未開盤前一看美股那斯達克跌六十幾點,想不到台股開盤沒什麼跌,中盤後一路軋空上去。這不只是強,是超級強。
  但是,電子龍頭股沒什麼漲很多還跌。台灣大,遠傳都漲2%以上,這下子要小心囉!

  台指今天也是很精彩,10:30前可能很多人被多空雙巴,接下來才是從8700一路軋空到收盤。

2014/03/26

台股超強

  美國經濟看好,QE逐漸退場,這一波多頭沒什麼休息。但相對的台股看起來比亞股及美股更強。國內人民苦哈哈,公司很賺錢的也沒有很多,就怕多頭再走下去會有空頭反撲的一天。會是在四月嗎 ?

  美國那斯達克已經出現修正的趨勢,台股呢 ?難到為了個選舉年,政府為了選票不計代價做多不休息 ?

2014/03/23

Windows 8.1 使用心得及問題

  今天買了一顆 Intel SSD 530 120GB 和 Windows 8.1 ,回家安裝過程真的是很快。和傳統硬碟比起來真的快多了,時間就是金錢,花的很值得。但慘的是Windows 8.1 真的是用不習慣,覺得很怪。幾個小時過去了還是沒法完全適應。真的很想回去Windows 7 或是用 Linux Mint 算了.

     以下幾點是個人覺得操作介面以外的問題:
  • 輸入法預設沒辦法選英數
  • 下 cmd 指令第三次才會出現 DOS 視窗
  • 某些畫面及軟體字型會變模糊,參考了網路上的一些字型設定後還是會發生,最後發現是在 外觀及個人化>顯示 中的 "變更所有項目的大小"這項若是設成 大150%(L),則許多軟體的字型會變模糊
  • 市集第一次點下去會很久都沒有反應,讓人以為無法使用
  • 撥接式 ADSL 連線設定好後,沒有可以開機自動連線的選項
  • 內建 pdf 檔案檢視軟體,但操作介面是全螢幕,用起來是針對平板用戶的操作方式,實在用不慣,最後自已再下載Adobe Reader來用
  • 開機後不立即進入登入介面,還要滑鼠點一下畫面才出現輸入帳號的畫面真的是多此一舉
  • 要註冊一組 Microsoft 帳號才能使用某些功能真的是很惹人討厭
  • 視窗風格實在是平淡無趣且無立體感,比以前任何一代都醜,可以像 Linux 一樣自由選擇嗎?

 動態磚的介面功能及市集是要花點時間去適應。 已經是偏向平板及觸控的操作習慣,對桌機及筆電用滑鼠來的操作的人真的很怪。

  實在搞不懂微軟在搞什麼鬼? 硬要把桌機的操作介面搞得和平板一樣,但又弄的不倫不類的。一般人拿PC是用來工作的,有實質的用途及生產力才是重點。平板那種偏向娛樂及快速取得資訊的方式和工作混在一起實在不搭,但至少現在可以設定成登入後就進入正常桌面,也可以叫出舊的選單不會讓一堆人不習慣。

2014/03/01

男士保養心得

  四十以前都覺得男人很重視臉部保養的人有點娘,但現在改觀了。主要是看到自己及多數男人臉部暗沉且毛孔粗大,冬天還會常看到一堆人臉部乾燥脫皮實在不雅觀且一點精神也沒有。在老婆勸說下開始做最簡單的臉部保養,其實就是洗臉->化妝水->乳液這麼簡單的步驟。

  剛開始使用老婆的保養品有點女性的粉味及香味不習慣,索性自己買了一套 Dr Wu 的男士入門保養組(舒緩控油醒膚水/活性碳深層潔顏乳/高效保濕修復乳),再配合老婆教的洗臉方法,因為以前的洗臉方法太隨便且粗暴。一個月下來毛孔粗大的情形改善了,粉刺也變小且變少了,冬天乾燥脫皮的現象也沒了。

  第一套保養品用完後發現醒膚水酒精味不喜歡,所以化妝水改用DHC 玻尿酸保濕化妝水,這罐是老婆買的,大瓶沒有香味又便宜好用,就夫妻兩人一起用,不再買男士專用的。Dr Wu 男士活性碳深層潔顏乳很好用,洗完臉後沒有乾澀及緊繃感,但基於費用上的考量沒有再買,只用一般肥皂洗臉,保持一個原則:不要過度洗臉將油脂洗的太乾而有緊繃感就對了。但後來還是覺得Dr Wu 男士活性碳深層潔顏乳好用,所以在PC HOME 買了 150 ml 大瓶裝。


  乳液部份改用 Dr Wu 杏仁酸亮白煥膚乳液,這瓶是趁特價買一送一時買的。兩三個月下來,有明顯變白了點,也感覺皮膚變好了。現在每天看到男性友人及同事都開始會注意他們的臉部氣色及膚況。發現呈現兩極狀況,有些二三十歲的人皮膚比四十幾的還糟。還常發現一些女性同事膚況比我糟多了,而她們才三十出頭。這時候才真正體會有保養有差。


  皺紋可能是目前最大的問題,老婆笑我臉上細紋太多,因為她和我同年紀,也只做和我一樣的保養,細紋很少。只差在她保養已經持續十幾年了,目前我這方面真的和她差很多。

  另一個影響因素就是生活作習及飲食習慣,這方面因為自己年紀大了,知道沒有揮霍青春的本錢了,開始改掉以前的壞習慣也是一個因素。

  老實說,我很懶,所以在保養這件事上只用最簡單的方法,每天早晚各花十分鐘,且不分日夜間不同方法,也沒上精華液更沒防曬及去角質的動作,但這麼簡單的方法所產生的結果我很滿意了,且不用花大錢,所以男士們,花點小錢及小小時間讓自己看起來更有精神及氣色更好是值得的,別再說保養是女人們的專利,男性保養也可以很簡單。

  保養品的選擇個人認為不用花太多錢,先從平價的入手。用了不會過敏且沒有油膩感很重要。至於效果要自己去體會,不行再換一個品牌就好了。

2014/02/28

Opera 19 使用心得

  上週換過電腦的 CPU 及主機板後發現執行很多軟體都變快了。這下子又回頭使用 IE 及 FireFox 覺得這兩個本來很少用的瀏覽器突然變好用了。今天突然想起一個被遺忘很久的 Opera 。似乎已超過一年以上沒有用過它了,沒想到現在版本已經到了 19(早就和 Google Chrome 使用一樣的 WebKit 核心)。安裝後第一使用的感覺是"挺好的!"

  測試了一下 HTML 5 的支援能力為 494分,比 IE 11(369) 好多了。再開啟平常常上的網頁,也挺快地!

  它的操作介面很友善,快速撥號/藏寶箱/發現卡這三項讓我愛不釋手,安裝後值得你好好去體驗它。現在 Opera 已經變成我第一順便使用的網路瀏覽器了。發現卡功能預設是英語系的網站,安裝後建議點右上角的齒輪叫出語系設定,將它改成Taiwan即可看到中文網站。

  個人認為比較可惜的是沒有64位元版本。其它就沒什麼好挑剔的,這個假日都一真在使用它,完全沒有想換回 Chrome , FireFox , IE 的念頭,這真是讓人意外的版本。

  現在連家中另一台 iMac 也裝上了 Opera ,使用起來也是和Windows 版本一樣另人滿意。



學好英文沒有捷徑讀後心得

  一早起床運動完想看點書,想到今天該讀點英文書的,無意中翻到李家同的"學好英文沒有捷徑"。這一是一本很薄的書,才一百一十二頁,是一本學習觀念書,很想學好英文的人都該看看。

  以下整理一些重點:


  • 先了解自己目前的英文程式,沒有速成的方法,如同書名一樣
  • 程度不好是因為單字量不足,而且文法沒學好:透過長期閱讀才能穩定增加單字量,個人很讚同這點,所以養成長期並廣泛的閱讀,有些單字常出現多看幾次,多查幾次就自然會記起來了。一些基本文法在閱讀文章中也會自然而然內化。況且學英文是要拿來用的,不是為了考試拿分數,那會很枯燥無味,大量且廣泛的閱讀才能體會學英文的樂趣及用處。
  • 基本文法要反覆練習
  • 每週閱讀一篇至少有十個單字的文章,最好也要念出來
  • 學會自然發音
  • 多做口頭練習
  • 練習寫文章,也要有人改你的文章
  • 聽力可以利用網路取得免費教材



2014/02/22

PC 換Z87主機板及 CPU i5 4440 心得

  我的家用電腦才用了三年,主機板掛了且過了保固期,真的好樣的 ASUS 的品質也不過如此。況且我不是買那種三千元以下的平價主機板吔!沒電腦用總不能一直用筆電頂著吧,因為它的螢幕太小很傷視力,只好聽從老板的建議,把 AMD CPU 965 換下來,改成 i5 4440,主機板用 Z87-C 但還是華碩 ASUS,還好這次有三年保固,但如果三年後又壞了怎麼辦?算了吧,把它看成消耗品,花了一萬二千大洋終於有電腦可用了。

  花了一個晚上重裝 Windows 7,用起來感覺上網快多了,應該是 CPU 效能較好的關係吧?其它零件都照舊含 RAM。以前網頁在顯示時有時候有點小延遲的感覺,現在使用 FireFox , Chrome, IE 11 都是飛快,比較奇怪的是 FireFox 明顯速度上有提升,反而Chrome 最無感。


2014/02/20

對今年 Android 新機的期許

2015/03/01 回顧2014年2月份這篇對智慧型手機的期許,已經過了一年了,整個Android 平台沒有什麼驚喜,反而是Apple終於推出iPhone 6大螢幕手機,市場反應熱烈,銷售也創佳績。

   我要的還是"電力持久!"



手上 HTC New One 用了快十個月,更新了三次系統軟體。對一個重度使用者來說,實在沒什麼好抱怨的。唯一覺得煩的事電力不夠持久,因為我每天3G 一直開著,中午股票及期貨軟體一直開著。所天每天一早出門都要確定電力保持90%才能安心。

2014年第一季來臨,各家大廠開始又有新機準備上市,但Android 平台似乎沒有什麼令人驚喜的表現。

我要求以下幾項:

  • 電力持久
  • 儲存空間至少 64 GB , RAM 至少要 3 GB
  • 照相畫質提升,不是畫素提升
  • 軟體功能也要新的驚喜或應用
智慧型手機市場已經走入平價化,高價機要再更努力與平價機區隔開來,否則何必花大錢呢?

2014/02/16

HTC New One Android 4.4.2/4.4.3/5.0.2 更新有感而發

       HTC New One(M7) 又更新啦!更新到 Android 5.0,兩天前更新後使用上沒有問題來報告一下:


  • 這機子用了快兩年了,持續更新不愧是旗艦機應有的服務
  • 待機時比較省電,這點是最明顯感受得到的差異
  • 執行時較順暢
  • 其它就是Android 5.0 其它介面上的改良就不再多說了  

     對整個Andorid 平台來說,各大廠似乎新機都端不出另人驚艶的新功能之下,我覺得軟體持續這項更新真的很重要。它能提高客戶忠誠度,並不是每個人都是每年一機這樣換。再加上這平台已經變紅海了,大家競爭愈來愈激烈。硬體零件差異不大,軟體再分不出任何特色實在無法說服客戶持續購買產品。


HTC New One 這次又有更新了, Android 4.4.2 來了,更新過程一切順利,只是它所列的更新項目真的沒有幾項是有感的。畢竟 Android 4.4 不是很大的更新,重點還是安全性,作業系統為了安全性持續不斷的更新是一項必要的工作。至於效能已經很滿意了,再快一點也是無感,最有感的可能是 電量計圖示由綠色變白色。這實在是一項退步,雖然不會有實質功能上的影響,但視覺上白色真的不優。在充電時又變灰色底色,不是讓人很容易辨認。

  有網友會使用一項效能 benchmark 軟體來測試是否有改進,但我還是那句老話"有感最重要",跑分只是跑爽的。 

  記得要到"設定"中的 NFC 設定關閉,否則 NFC 一直開啟,你會覺得更新後變得更耗電了!

  雲端列印:預設是關閉的。請自行到 設定 > 列印 將它開啟。
  低電量音樂撥放:這項功能對一些常在公車或捷運上長時間聽音樂的人來說是挺實用的,因為可以明顯減少電力消耗。

  其實Android 4.4 有一堆很不明顯的小功能改進,可以到 www.android.com 去看。對大多數人來說,這些功能都不是很有實質的用處。

  HTC 的更新總是令人很放心,這支 New One 去年四月入手後到現在已經三次更新都沒有問題,可以通知家中另一位擁有者跟著更新了。他每次都要我先做白老鼠,幸好HTC 都沒讓我失望。雖然這家公司的未來很辛苦,但手上這個產品至少目前都很滿意。

  如果小米機以平價打入市場,但軟體服務又有水準,也許未來買高價旗鑑機的動力就沒有了。目前HTC這方面做的還不錯,但我手上的 SAMSUNG 平板 Note 10.1 的軟體更新就做的很差,到現在只更新過一次,Android 還在 4.1.2,真的不知道該說什機,該機當時也是旗鑑級的價格。軟體服務水準有待提升。

  Apple 這方面做的也不錯,家中的 iMac 一直有持續更新,不會讓你有孤兒的感覺。

  個人對品牌沒有任何偏好,好用且符合個人需求最重要,若有良好的服務才能吸引我持續使用該家的產品,否則憑什麼要死忠地擁護一個品牌。希望 Apple 今年的 iPhone 6 能讓我將 HTC New One 打入冷宮,否則手上這支 New One 可能會和上一支 HTC Legend 一樣用超過三年了 !

後續追蹤:

 2014/03/07 更新後超過 20 天了,使用上沒有遇到什麼問題,家中另一位成員的 New One 也更新了。會擔心的人可以放心了。

SAMSUNG Note 10.1 也有消息要更新到 4.4.2 了,總算有點良心。

2014/09/12 後續追蹤: 忘了是前兩三個月 HTC 又提供更新到 Android 4.4.3 了,當然又是很順利的更新成功,只是介面顏色及風格又有一小段時間適應。但重點是很穩定用到現在都沒問題。雖然HTC股價不振,但目前 New One 這產品在我手上真的很滿意,沒有換新機的念頭。

2014/09/10 iPhone 6 發表後的想法:
  約兩年前誇口說等到Apple 出 iPhone 6 會買一支給老婆。終於等到了,大螢幕的 iPhone 才是我要的,但我會立即將HTC New One 換下來嗎? 不會,因為 iPhone 6 暫時還沒有任一項新功能或特色讓我心動,有的話也只有5.5吋那一款。對一個老花眼的人來說大大螢幕才有吸引力,且又有光學防手震鏡頭,對焦速度加快,確實可以吸引我這種常用手機隨手拍照的族群。看樣子,到年底暫時沒有任何一支新機可以讓我服役一年半的 New One 退下來。等 2015 年吧 ! 反而 Apple Watch 真的有吸引到我,因為我需要一支手錶,但是真的是貴蔘蔘!