2015/01/18

PC未來軟硬體的走向

  雖然整個資訊科技上軟體還是無法跟得上硬體的進步,但硬體是不會停下腳步,它仍然持續地往前快速地走著.個人認為消費及製造商應朝向節能思考,最近 ARM CPU 也要開始搶佔Intel x86 Server CPU的市場.但某些應用仍然需要高速運算,再怎麼快的CPU 永遠滿足不了軟體上的需求。特別是近年來Script language 當道如: JavaScript , Python ...等等

   最近因工作的關係準備買台高階筆電,有感而發提出一些個人對軟硬體發展的看法。

固態硬碟的普及
  SSD 價格是影響它普及的重要因素之一,而它最明顯的影響是給整個系統提升效能。不只是開機速度,一般軟體在讀取及寫入上的速度加快會給使用者帶來不同的感受。否則處理器及記憶體的效能提升會效益遞減。


64位元軟體增加
  現在個人電腦中常常是三十二及六十四位元應用軟體併存,雖然不會有問題,但無法充分發揮硬體的優勢。今年度有些遊戲已經開始只支援六十四位元作業系統版本。相信配合去年Windows XP   停止支援及硬體的換機潮,今年開始會更明顯往六十四位元應用前進。再加上現在新的電腦安裝的記憶體8到16GB都已是很普遍了,沒有六十四位元軟體真的還無法好好運用它。

光碟機何去何從?
  網路普及加上頻寬的提升,軟體的安裝並非一定要光碟機不可。很多筆電也配光碟機了。

HTML5讓作業系統重要性降低,瀏覽器的重要性提升.





2015/01/11

MacBook Pro , MSI GS60, acer VN7-591G-70GH 筆電的比較

  最近工作上要常用筆電,因為常帶來帶去,想買台輕薄又高效能的筆電。自己知道工作上會開虛擬機器,執行JVM/Eclipse及SQL Server。記憶體至少要 8GB,CPU 要求 i7 。能有SSD 128GB 才能加快 Disk I/O。比來比去只有 Apple MacBook Pro 15吋及 MSI GS60 15吋這兩款符合。MacBook Pro 效能及螢幕畫質都滿分。只有價格太高買不下手,退而求其次MSI GS60 螢幕畫質較差,SSD 要再加一顆128GB 才能與 MacBook 平起平坐,但價格親民多了。且保固二年,有狀況也比較放心。

  唯一能讓我再考慮蘋果的原因就是可以利用BootCAMP裝Windows 雙重開機,一魚兩吃真的是很棒,再加上全鋁合金機身實在太有質感太吸引人了。第二次帶老婆去看,她竟然推我買MacBook Pro ,真的是不知民間疾苦,$$$真的是有錢真好!可是它的保固竟然只有一年,天啊!萬一一年後有問題,維修費可不得了啊!真是有錢人才得起蘋果。

自己走了一趙賣場,針對螢幕畫質這點要求問了銷售人員,他竟然說高解晰度代表畫質比較好,真是聽不下去,對我來說畫質好表示顯色能加佳且正確,絶對不是什麼3K/4K解晰度之類的。蘋果筆電的畫質當然是有目共睹沒什麼好爭的,這也是貴的因素之一啊。

  後來再看上一款acer VN7-591G-70GH 這款新筆電,規格符合所需且SSD配到256GB,顯卡GTX 860M 4GB RAM,重量:2.4KG,雖然重了點,但在15吋筆電中算得上是輕的,且價格比MSI GS60有競力。最近神腦也在促銷,加送500GB 行動硬碟,個人覺值得列入考慮,再加上它真的衝著MSI GS60來的,想在電競筆電市場分杯羮。

  產品真的沒有十全十美,等一個半月後再來看市場上還會不會有重大變化。

2015/01/30更新: MSI GS60 RAM 16GB, 128GB SDD+1T HDD 這規格的調整完全滿足我的需求。已經變成第一順位的選擇了。

因為工作需求帶著筆電到處走動,現在手上的14吋筆電雖然只有2.1公斤。但上下班坐捷運一個小時真的挺累的。宏碁那款VN7-591G-70GH 重量2.4公斤確定出局了.
 
工作上常做簡報,發現許多筆電都配VGA輸出接頭,要再額外買轉接線。這點不知道輕薄型電競筆電如何處理?要確認後再決定。MacBook Pro 這方便沒有問題,因為同事有這款。

2015/02/07 更新 :又找到一款符合的HP OMEN 15 ,重量只有2.13公斤,值得列入備選。可惜在PC HOME找不到這款,香港有賣啊?!

2015/02/08 MSI GS60 2PC 實機體驗心得:趁假日陪家人逛街順道去光華新天地體驗了一下,霧面螢幕符合需求,因為在辦公室光線不一定到處都可以任你調整,有時開會地點光線角度不太對就得調來調去,它可以免除這個困擾,另一點是鍵盤觸感及力道,真的是我試過的筆電中最棒的。本想請店員試一下Dynaudio 喇叭的效果,考慮現場較吵雜及用筆電喇叭放音樂的可能性太低而做罷,但耳機輸出端子有鍍金這點真的很可取,本人是音響迷,深知端子氧化對聲音輸出品質影響真的很明顯。這台如果在螢幕面板及顯色的畫質上更精進我想真的是台很完美的機子。
  我的真很想建議MSI 出一台去掉Nvidia 顯卡及風扇的15吋輕薄商務機,價格壓低到四萬以下一定會很有競爭力,因為市面上的商務機規格及輕薄度真的很差,而且價格一點都不實惠。對商務人員來說獨立顯卡根本是多餘的,又耗電又增加成本及重量。

2015/02/11 華碩發表新機 ASUS Zenbook Pro UX501,也是15吋輕薄型筆電。擺明是衝著 MSI GS60 來的。我個人認為這款對我的亮點在螢幕畫質 72%廣色域(4K解晰度),重量只有2.06公斤也是有看頭。可以選 SSD 512GB配置,看起來一定會價格不菲。持續追踪中...

2015/03/07 華碩 UX501 大陸方面已有消息出來了,配置的顯卡也確認了。如果螢幕的畫質好,可能MSI GS60 會變成第二順位的選擇了。

2015/03/08 微星 MSI GS60 又有改款了,GS60 2QD(Ghost 4K)-446TW
GTX965M-2G獨顯∥128G SSD+1TB混碟支援Super RAID技術∥頂級4K UHD面板。這樣的規格有點超過我的要求,我寧可它的螢幕是1080P的解晰度就好,但給我IPS 及廣色域的規格。看來只能找嘉義胖哥客製筆電了! 

2015/03/09 Apple 可能在3/9 發表 Apple Watch 之外也發表新款 MacBook Pro嗎 ? 個人是很希望會有這樣的結果,但可能性不高!

2015/03/15 已經確認 ASUS UX501 不會是我的菜,所以確認要買 MSI GS60 2QD 446TW,但這台官方規格中的4K螢幕是問題,決定找胖哥客製化成1920x1080的螢幕,配256GB SSD, 去掉1T HDD.這樣一來就能兼顧效能及輕簿.

 2015/03/26 終於入手 MSI GS60 2QD ,4K 螢幕換成霧面 IPS Full HD 1920x1080, 其餘不變。

DYNAUDIO 喇叭聲音確實不錯,沒有一般筆電聲音悶在裡面的感覺,steelseries 鍵盤有點軟Q, 還在適應中。IPS 螢幕個人覺得換對了, 現在才發現原來這麼多照片的顏色在別的螢幕中都看不見或是層次少掉了。接下來要好好工作才對得起它,順便把鍵盤彩色背光關掉,實在太閃光了。低調一點才好。真的不是拿來玩遊戲的。

2015/03/27 使用第一天,不敢背送的背包出門,但塞在保護包中放入單肩背包中也可帶出門上班。有了SSD 開機當然快了,一般Office 軟體當然是游刃有餘,接下來的重點是開VM 跑Linux / Windows 再加上 MS SQL Server 等才能看出它的能耐。工作中就是需要這樣的使用,才需要買此等配備。

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 還有一堆方便簡潔的語法, 等有空再整理,也當做自己的備忘錄.