如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2017年6月30日

如何將個人電腦中的影音檔透過家庭網路播放到電視上 -- Sony Bravia電視為例

作者: Fred F.M. Wang (FW知識瑣記) 日期:20170630

1 Sony Bravia電視的網路線連到家庭網路中,例如連到家庭網路的交換器,集線器或Wifi基地台的網路埠

2 Sony Bravia電視啟用Renderer功能

3 個人電腦控制台設定
     3.1 控制台\所有控制台項目\系統管理工具 \ 服務
           啟用 "Windows Media Player Network Sharing Service "

      3.2 控制台\網路和網際網路\網路和共用中心 設定共用
           選擇家用群組和共用選項
           進階共用設定,如下圖 : 
 
4 3 Windows Media Center 右上按鈕,如下圖,可以選擇到 BRAVIA,再將影音檔移到播放輕單,就可以撥放到電視了
 

如何快速將現有的PHP網頁程式輸出為PDF -- 使用mPDF程式庫

作者: Fred F.M. Wang (FW知識瑣記) 日期:20170630

如果您已經寫好一個PHP網頁程式,現在需要提供一個功能,例如一個按鈕,將此內容直接輸出PDF。這時候,可能需要另外寫一支PHP程式將內容轉輸出PDF。

筆者比較了幾個PHP程式庫後,推薦使用mPDF 程式庫,可以用最少的程式碼完成這個功能。

程式碼範例 :

  require("mpdf60/mpdf.php");
  $mpdf=new mPDF('utf-8','A4');
  ob_start(); 

  include('您的PHP網頁程式.php');

  $html = ob_get_contents();
  ob_end_clean();  
  $mpdf->WriteHTML($html); 
  $mpdf->Output();
  exit;

直接將寫好的PHP網頁程式include進來,就完成了,簡單吧。

不過看看輸出的PDF內容,您會發現無法如預期顯示您設定的字型,表格顯示也有一些問題。就這兩部分,還需要進入mPDF官網查查看相關設定 : 字型設定, 表格設定

有關字型設定,以下是我的設定範例,如何在mPDF增加與顯示Eras ITC字型

步驟 1 將Eras ITC字型檔複製到mpdf60\ttfonts 資料夾中。
步驟 2 設定  mpdf60\config_fonts.php
    2.1   $this->fontdata 中增加Eras ITC字型  
    $this->fontdata = array( 
    "eras-itc" => array(
        'R' => "ERASMD.TTF",
        'B' => "ERASBD.TTF",           
        ),

    2.2 $this->fonttrans 增加  'erasitc' => 'eras-itc',  
    $this->fonttrans = array(
    'times' => 'timesnewroman',
    'courier' => 'couriernew',
    'trebuchet' => 'trebuchetms',
    'comic' => 'comicsansms',
    'franklin' => 'franklingothicbook',
    'ocr-b' => 'ocrb',
    'ocr-b10bt' => 'ocrb',
    'damase' => 'mph2bdamase',
    'erasitc' => 'eras-itc',
);
注意 : CSS程式中font-family只有$this->fonttrans與$this->fontdata設定的字型才會顯示, 而且名稱要一樣

步驟 3 修改程式中的CSS
  
   body {
    color: black;
    font-family: erasitc, "Eras ITC","Eras Medium ITC", Arial;
   }


2017年6月20日

程式碼審查有助於提升程式品質嗎? 有關程式審查的十個事實

作者: Fred F.M. Wang (FW知識瑣記) 日期:20170620

英文原文:10 facts about code reviews and quality 

摘要翻譯
        以下是從 680家公司訪談有關程式品質與程式碼審查的案例,得到下面結果
  事實一:我們花大量的時間在審查程式碼 。事實是,我們每週平均花費 5 個小時來審查程式碼 ,或者每週 12.5% 的時間來查看程式碼 。
 
  事實二:作為開發人員,每週花費超過一天的時間來審查程式碼與提高程式碼品質並不相關,反而是用更多時間在發佈新功能(而不是修復bug 或償還技術債務)。  
 
  事實三:45% 的開發人員說,「缺少時間」是審查程式碼的真正障礙,34% 的開發人員則認為是迫於「發佈新功能的壓力」

  事實四:72% 的開發人員表示他們被阻止花時間審查程式碼

  事實五 66% 的開發人員表示需要 1 人批准他們的 pull requests,25% 需要 2 人,小於 5% 需要超過 2 人。(註 : Pull Requests : 開發人員可以透過Github發出Pull Requests要求請求他人將程式拉下來看,也就是由開發人員主動要求他人幫忙做Code Review的意味。)

  事實六:53% 的人表示有監控程式碼覆蓋率,但 65% 表示沒有程式碼覆蓋率的最小門檻值(標準),來批准 pull requests  (註 : 代碼覆蓋(英語:Code coverage)是軟體測試中的一種度量,描述程式中源代碼被測試的比例和程度,所得比例稱為代碼覆蓋率。有多種不同的覆蓋率準則, 如函式覆蓋率,敘述覆蓋率,判斷覆蓋率, 條件覆蓋率等 )

  事實七:29% 的開發人員表示 他們的專案中最大的問題是「工作量」,而工程副總和處長的則認為是「交付速度」。開發人員的第三大問題則是「管理」。

  事實八:關於誰來審查程式碼 ,讓團隊中的每個人都參與是最常見的做法。其他方法則是由專案負責人或模組的負責人來參與,或讓資深的開發人員來審查多數的程式碼 。
 
  事實九:較嚴格的程式碼 審查會讓我們用更少的時間修復錯誤,也就有更多的時間來提供新功能。較不嚴格的程式碼審查者會花費 31% 的時間修復錯誤,而嚴格的審查者則只花費 24% 的時間。關於專注新功能的時間:和上面對應的分別是 43% 和 54%。(嚴格的審查者有更多的時間專注於新功能)

  事實十:開發人員花費 45% 的時間修復錯誤或解決技術債務(以前留下來的問題),與建立新功能所花費的時間不相上下。
 
由上面來看,程式碼審查可以提高修復錯誤的效率,但是不見得可以提高程式碼品質。
 
 


2017年6月15日

[企業管理的省思] 資安系統能阻止所有商業機密外洩的可能嗎?

作者: Fred F.M. Wang (FW知識瑣記) 日期:2017/6/15

有些很多公司導入資安系統以防止公司機密洩漏。筆者認為這些系統僅能發揮部分防護與紀錄的效用,讓機密外洩稍微不容易一點,但無法完全阻止機密外洩,有時反而造成想做事的人工作上的不便與企業的效率不彰。

例如資安系統能完全防止透過下面方式洩漏或竊取機密 ?
1 傳真
2 假冒主管郵件要資料
3 IT系統管理員,資料庫管理員等掌有資料讀取權限的人 竊取或洩漏
4 企業報廢磁片,磁碟或光碟等電子媒體。
5 手機照相, 錄影 (部分公司禁用私人手機)
6 錄音
7 紙本攜帶出去
8 假冒主管電話要資料
9 同仁嘴巴中 有意或無意洩漏
10 高層主管嘴巴或郵件中 有意或無意洩漏
11 合作廠商或客戶 有意或無意洩漏
12 企業廢紙 (碎過的紙張仍有可以洩密)


或許前一~三項部分系統可以做到,但其他項目則需要靠建立制度與規範嚇阻與注意員工的品格操守才能防止。

可見資安系統無法防止所有商業機密外洩的可能,這就表示真的有心竊取或洩密的人,一定有方法,那麼,花大錢的投資且造成企業效率不彰產生的大量成本,值得嗎? 因此,如何找到平衡點,避免資安系統成為企業效率 的殺手應該是老闆們該思考的。
 

2017年6月7日

[職場哲學] 鏡子與透鏡

作者: Fred Wang (FW知識瑣記) 日期: 2017/6/7

小林問同樣是主管的老陳,剛才開會時XX部的老李當大家的面直接批評你,你為什麼不反擊,還感謝他的指教,要是我,就當場跟他對槓。

老陳說,年輕時的我也是跟你一樣,後來,發現問題與誤解不會因此有任何的改變。我體會到,很多人都是鏡子,放射出甚麼,就會反射回甚麼,負面的批評只會造成負面的結果。久而久之,我反省自己是否可以成為透鏡,專注做好自己該做的,無愧於這份工作,任何批評與讚譽,對我而言,如同光穿透而過,消失於無形。

Fred F.M. Wang

2017年6月6日

破解苦命MIS的迷思 - 資管(IT/MIS)工作者的辛苦面,如何面對

作者: Fred Wang (FW知識瑣記) 日期: 2017/6/6

       根據筆者二十多年IT/MIS的工作經驗,針對資管(IT/MIS)工作者的辛苦面列出幾點常見的問題,並提供面對與解決方法,供相關工作者參考

問題 1. 常需要假日加班進行設備與系統維護,平日也多需24 hr On-call,非常辛苦
面對與解決方法 : 
  • 如同醫生或設備工程師等很多工作也需要假日加班或on call一樣,這是資管工作的常態。
  • 正視自己工作的重要性,IT/MIS的工作如空氣和水一般重要,如果沒做好,企業部分運作可能停擺。
  • 如何訂定設備維護計畫,事先規劃好加班的時間,才不會影響休假的安排。
  • 學習量化工作的貢獻,並定時報告,否則老闆平常不覺得您有甚麼特別的貢獻,系統出問題就會被責備。例如 : 各類/各使用單位需求服務件數,設備使用率,SOP制定數量等。

問題 2. 除了既定的工作外,常有主管的急件要處理及使用者緊急的問題要解決
面對與解決方法 : 
  • 要與主管溝通工作的優先順序,以確保使命必達。
  • 工作優先順序通常以主管訂定的為主,緊急且重要最優先。
  • 養成作工作日誌與待辦事項管理

問題 3. 訂定的標準作業流程(SOP),常因主管要求破例處理
面對與解決方法 : 
  • 注意要用郵件回覆主管,以留下紀錄。
  • 商場如戰場,瞬息萬變,計畫與標準如果不具彈性將趕不上業務變化的需求。
  • 例外處理通常也有例外處理的程序。
  • 計畫與標準程序也要因應變化進行修正,否則淪於僵化。     

問題 4. 需求單位要求完成的時間不合理
面對與解決方法 : 
  • 溝通永遠不嫌少。
  • 跨組織溝通,有時須透過主管。
  • 以體諒的心態與善意的溝通,建立互信及合作關係。
  • 建立標準的需求處理程序。包含需求所需工時評估。
  • 如果人力或時間不足應求助於主管。

問題 5. 需求單位時常變更需求, 卻發生衝突的需求或忘記過去提的需求而責怪IT
面對與解決方法 : 
  • 將需求規格化與文件化進行確認,避免口頭溝通時認知的差距。
  • 建立標準的需求變更程序。
  • 做好需求管理,系統化紀錄每次的需求,包含內容,需求提出人,解決方法,所花工時,隨時可供查閱。

問題 6. 使用者無法清楚描述,要完成的功能規格
面對與解決方法 : 
  • 新流程或不明確的需求往往需Prototyping法設計
  • 透過許多次的需求討論 > 分析 > 設計 > 示範,才能完成
  • 與使用者溝通,先做業務流程化與制度化再做系統化

問題 7. 辛苦加班,如其完成的系統,用戶卻不測試驗收,甚至取消需求
面對與解決方法 : 
  • 需求處理程序包含需求了解與確認,IT/MIS實作,使用者測試與驗收,應事先開會溝通並留下紀錄,並應知會雙方主管。
  • IT/MIS責任在於如期如需求完成實作,其他則是使用單位的責任。
  • IT/ MIS屬於企業資源各單位應有善用企業資源的認知, 將工作成本化,讓使用單位,了解每一次需求所花企業的成本有多少。
  • 如有不合理的情況應該透過主管進行溝通。


看完後,或許你會說,工作已經忙死了,還要做那麼多事; 我認為,如果及早養成好的習慣,也許開始時每天多花10%的時間,長久以來或許可以讓你擺脫IT/MIS苦命的惡性循環。


    [企業管理議題] 阻礙企業發展的一大因素 - 錯誤的稽核制度

    作者: Fred Wang (FW知識瑣記) 日期: 2017/6/6

    企業"稽核活動"常造成員工的困擾, 甚至有企業以稽核結果來處分員工。

    這是對的嗎?

    稽核是根據訂定的制度為基準來檢視員工是否根據制度執行。

    對小公司而言制度的制定者往往就是執行單位主管,因此,在執行過程中,發現該制度窒礙難行,就可以逕行修改。因此,制度的修改比較具有彈性並可執行。

    而大型公司或一些成立很久的公司,制度可能不是執行單位制定,而是策略管理部門,或執行單位的上層主管所制定的;老公司則可能是早期建立,而施行已久的制度。這些情況,加上企業保守的文化,制度的調整修改非常困難,對於跨組織的流程,更需要冗長的過程。

    往往執行單位發現制度在執行上有問題,缺乏彈性或不合時宜時,並沒有權限修訂,甚至沒有發言權。在這種情況,執行單位面對瞬息萬變的工作問題,需要立即應變時,執行單位只能有兩種選擇,第一是違反制度,讓工作順利進行,達到工作目標;第二是遵守制度,讓錯誤發生,或工作無法進行。

    制度制定的目的是避免重複發生錯誤,當制度成為阻礙企業應變,甚至讓工作無法順利進行的因素時,反成為阻礙企業發展的因素。

    2017年6月5日

    電子商務網站架站經驗談

    作者: Fred Wang (FW知識瑣記) 日期:2017/6/5

     
           先談申請網域的部分,我曾向exabytes, 就是enom申請國際網域,但該公司DNS伺服器2016年曾經遭受駭客攻擊, 也曾向"網路中文"申請過中國網域,幫朋友架設的商務網站則向是向name.com申請。 DNS出問題通常是被攻擊或伺服器故障, 造成DNS無法轉址而引發無法使用網域與eMail掉信等問題。
            因為DNS價格都很便宜,我建議本地架站者可向"網路中文"(台商)申請,出問題時溝通比較順暢。

            其次是電子商務網站架設的部分,我採用Drupal的商務方案"Drupal Commerce"(免費),我推薦商家(朋友)購買網路上販售的Drupal commerce template包,安裝設定到上線,一個月內只用晚上與假日時間,就上線營運,完全不需寫程式,也省了美工設計的錢,現在生意很好。主機則是購買威普網站的虛擬主機。第一個月就超過購買方案的流量限制,而加購流量,威普服務快速,加購也很方便。

            第三是資安的部分,分為伺服器與應用系統兩塊,一. 伺服器部分,如果是租用主機,則廠商會負責,如果自行架設,就需要架設好一點的防火牆軟體或硬體,需要增加成本。二. 應用系統,要看商務平台軟體的安全性設計,是否可以防止SQL Injection? 是否時常更新安全性漏洞? 是否有防Spam的設定或插件? 是否提供SSL的設定?...等安全性機制, Drupal則有許多防駭的模組可以安裝,可以到Google查看看。

             另外,資安部分如果平台的底層可以自行控制(有些租用的虛擬主機不允許),如Apache, PHP與mySQL可以自行變更設定(網路上有許多Apache, PHP與mySQL安全性設定的文章),這時候您就可以提高這部分的安全性,這些設定就較為複雜,有時候設錯了,Service會開不起來,有時候也要搭配應用系統的規定,否則連應用系統都開不起來,如果,都很熟了,就是網站安全專家了!


    我看了兩本Drupal的書
    1.) 使用Drupal 7架站的12堂課, 
    2.) Drupal 技術手冊, 第二本包含Drupal Commerce的章節,
    推薦看第二本

    建議閱讀 : 筆者另一篇文章 "架設網站前要蒐集哪些需求", 可以決定您要怎麼跟客戶談架站的需求, 另外如果您使用Drupal平台架站,也可以閱讀這篇"第一次使用Drupal平台架設專業網站前要學習的五件事"







     

    2017年6月4日

    整理七家防毒軟體公司提供的免費勒索軟體解密工具

    作者: Fred Wang (FW知識瑣記) 日期: 2016/6/7 修訂: 2017/6/4

    Avast 免費的勒索軟體解密工具
    日期 : 2017/6/4
    協助解密遭以下各種勒索軟體加密的檔案 : Alcatraz Locker,Apocalypse,BadBlock,Bart,Crypt888,CryptoMix,CrySiS,Globe,HiddenTear,Jigsaw,Legion NoobCrypt,Stampado,SZFLocker,TeslaCrypt

    Bitdefender Anti-Ransomware Tool
    日期 : 2017/6/4
    針對哪種類型的勒索軟體 : CTB-Locker, Locky, Petya, and TeslaCrypt

    Emsisoft Decrypter for the file encryption ransomware
    日期 : 2017/6/4
    針對哪種類型的勒索軟體 : 777,Al-Namrood,Amnesia,Amnesia2,Apocalypse,ApocalypseVM,AutoLocky,BadBlock,Cry128,Cry9,CrypBoss,CryptON,CryptInfinite,CryptoDefense,
    Damage,DMALocker,DMALocker2,Fabiansomware,FenixLocker,Globe,Globe2,Globe3,GlobeImposter,Gomasom,HydraCrypt,Harasom,KeyBTC,LeChiffre,MRCR,Marlboro,
    Nemucod,NMoreira,OpenToYou,OzozaLocker,PClock,Philadelphia,Radamant,Stampado,Xorist

    Kaspersky Anti-Ransomware Tool for Business
    Kaspersky Free Ransomware Decryptors
    針對哪種類型的勒索軟體 :
    1 Rakhni Decryptor : Decrypts files affected by Rakhni, Agent.iih, Aura, Autoit, Pletor, Rotor, Lamer, Cryptokluchen, Lortok, Democry, Bitman
    (TeslaCrypt) version 3 and 4, Chimera, Crysis (versions 2 and 3).
    2 Rannoh Decryptor : Decrypts files affected by Rannoh, AutoIt, Fury, Cryakl, Crybola, CryptXXX (versions 1, 2 and 3), Polyglot aka Marsjoke.
    3 Shade Decryptor : Decrypts files affected by Shade version 1 and 2.
    4 CoinVault Decryptor : Decrypts files affected by CoinVault and Bitcryptor.
    5 Wildfire Decryptor : Decrypts files affected by Wildfire.
    6 Xorist Decryptor : Decrypts files affected by Xorist and Vandev.

    Malwarebytes Anti-Ransomware
    目前更新日期: 2016/9/16
    針對哪種類型的勒索軟體 : CryptoLocker, CryptoWall, CTBLocker, TeslaCrypt, ...(不確定)

    Trendmicro 趨勢科技勒索病毒檔案解密工具
    目前更新日期: 2017/6/2
    針對哪種類型的勒索軟體 :
    CryptXXX V1, V2, V3*     {original file name}.crypt, cryp1, crypz, or 5 hexadecimal characters
    CryptXXX V4, V5     {MD5 Hash}.5 hexadecimal characters
    TeslaCrypt V1**     {original file name}.ECC
    TeslaCrypt V2**     {original file name}.VVV, CCC, ZZZ, AAA, ABC, XYZ
    TeslaCrypt V3     {original file name}.XXX or TTT or MP3 or MICRO
    TeslaCrypt V4     File name and extension are unchanged
    SNSLocker     {Original file name}.RSNSLocked
    AutoLocky     {Original file name}.locky
    BadBlock     {Original file name}
    777     {Original file name}.777
    XORIST     {Original file name}.xorist or random extension
    XORBAT     {Original file name}.crypted
    CERBER V1     {10 random characters}.cerber
    Stampado     {Original file name}.locked
    Nemucod     {Original file name}.crypted
    Chimera     {Original file name}.crypt
    LECHIFFRE     {Original file name}.LeChiffre
    MirCop     Lock.{Original file name}
    Jigsaw     {Original file name}.random extension
    Globe/Purge     V1: {Original file name}.purge
    V2: {Original file name}.{email address + random characters}
    V3: Extension not fixed or file name encrypted
    DXXD     V1: {Original file name}.{Original extension}dxxd
    Teamxrat/Xpan     V2: {Original filename}.__xratteamLucked
    Crysis     .{id}.{email address}.xtbl, .{id}.{email address}.crypt, .{id}.{email addres}.dharma, .{id}.{email address}.wallet
    TeleCrypt     {Original file name}
    DemoTool     .demoadc
    WannaCry (WCRY)     {Original file name}.WNCRY, {Original file name}.WCRY

    FoolishIT CryptoPrevent
    針對哪種類型的勒索軟體 :  CryberLocker...(不確定)