• f930b55aa78100e80c3097a7543cf129.png
    如果要在畫面上顯示數字,特別是跟錢有關係的,通常都會希望有 千分號,這樣在閱讀上較為方便
    因為這是常用的東西,所以如果直接改掉 Number 的 phototype 在使用上就更方便囉!!
    用法很簡單,直接把下面這段 code 放在你的 js 中就可以了!
    Number.prototype.numberFormat = function(c, d, t){
    var n = this, 
        c = isNaN(c = Math.abs(c)) ? 2 : c, 
        d = d == undefined ? "." : d, 
        t = t == undefined ? "," : t, 
        s = n < 0 ? "-" : "", 
        i = String(parseInt(n = Math.abs(Number(n) || 0).toFixed(c))), 
        j = (j = i.length) > 3 ? j % 3 : 0;
       return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
     };
    
    使用方式也很簡單,參數分別如下:
    • 1st: 小數點後有幾位 (超過的部分會四捨五入)
    • 2nd: 小數點的符號
    • 3rd: 千分位的符號
    123456.789.numberFormat(2, '.', ',')
    輸出的結果會是: 123,456.79
     
    若是要改掉逗號跟千分位的符號變成這樣
    123456.789.numberFormat(2, '*', '#')
    輸出結果就是: 123#456*79
     
    方便又好用喔!
     
    JavaScript | 4321 觀看 | 2017-01-09 | 標籤: javascript, number, format, cat_programming | 洪國恩 上傳
  • e071003a5775c8f409ca049c9f042e01.jpg
    最近遇到 Linux 記憶體不足,但似乎就是真的不足了... 如果沒辦法擴增記憶體,那就只好拿 disk 來用了! 還好是 SSD,應該不會差太多!
     
    Linux | 6482 觀看 | 2017-01-07 | 標籤: linux, memory, swap, cat_operating_system | 洪國恩 上傳
  • 介紹一個不錯的網站,Dan's Tools ,裡面提供很多線上工具喔,特別方便開發者使用喔!
     
    bbee495d6071412190bf0eff4872e967.png
     
    下面介紹一些我常用的工具!
    其他 | 3177 觀看 | 2016-12-30 | 標籤: cat_networking | 洪國恩 上傳
  • 什麼是「轉型正義」?為什麼隨著時間過去,我們不該就遺忘這些傷痛和過去的錯誤,而是必須要好好重新面對每段人們最不願面對的歷史呢? 
    臺灣吧 - Taiwan Bar 動畫臺灣史 | 3325 觀看 | 2016-12-28 | 標籤: cat_culture_humanity | Kuann Hung 上傳
  • f06e1c42d20a2ca7354ca5b84222bdf1.png如果透過 PHP 的 $_SERVER['REMOTE_ADDR'] 抓取用戶 IP,經常會遇到一個狀況,就是用戶可能有透過 proxy,所以就會抓錯。
    透過 proxy 時,會多帶一個 X-Forwarded-For 的 header,表達是為哪個 IP 做 forward 的動作,所以需要看這個 header 來決定。
    但是,如果是 NAT 時,又要以他的 Public IP 作為遠端 IP,不然看到一大堆 192.168.x.x 也不太有意義。
     
    下面的 php function 可以幫忙做這件事情,判斷是否有 X-Forwarded-For,若有,還會過濾看是否為 Private IP,簡單說,呼叫這個參數就可以取得用戶的 IP 囉!!! (當然有時候這種事情不是絕對的,但是已經具有代表性囉!
     
    function getRemoteIP() {
    
        if ( function_exists( 'apache_request_headers' ) ) {
            $headers = apache_request_headers();
        } else {
            $headers = $_SERVER;
        }
        
        //Get the forwarded IP if it exists
        if ( array_key_exists( 'X-Forwarded-For', $headers ) && filter_var( $headers['X-Forwarded-For'], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) ) {
            $the_ip = $headers['X-Forwarded-For'];
        } elseif ( array_key_exists( 'HTTP_X_FORWARDED_FOR', $headers ) && filter_var( $headers['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE )) {
            $the_ip = $headers['HTTP_X_FORWARDED_FOR'];
        } else {
            $the_ip = filter_var( $_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP );
        }
        return $the_ip;
    }
    
    PHP | 4172 觀看 | 2016-12-28 | 標籤: cat_applications | Kuann Hung 上傳
  • fe131dd2b097cd9f0a49665f32d37baf.jpg這兩天電腦常常出現異常的 Disk IO,大概就是整個效能都不行了! 今天早上開機竟然花了五分鐘.... 我是用 SSD 耶.......
    而且硬碟燈恆亮.... 整個 lag 到不行!
    開好機查測一下後,發現原來是被所謂的 "連接用户體驗和遙測服務",英文是 "Connected User Experiences and Telemetry",服務名稱是 DiagTrack 給拖慢了。
    Google 一下這是甚麼東西,網路上罵聲一片,大概就是個會默默把你電腦資訊傳送回微軟的機制,總之,關掉就是了!!!
    Windows | 20720 觀看 | 2016-12-28 | 標籤: 連接用户體驗和遙測服務, DiagTrack, cat_applications | Kuann Hung 上傳
  • 30abd3808b3d42cb3b0e7c63a5cd3074.png
    由於在 Chrome, IE, Firefox, Opera 還有 Safari 都有一些 console 語法不盡相同,為了避免一執行到就掛點,建議可以在你的 js 中加上以下語法,這樣就不會遇到在程式中忘了移除 console.log,結果在 IE8 就直接死掉的問題了!!
     
    (function() {
      // Union of Chrome, Firefox, IE, Opera, and Safari console methods
      var methods = ["assert", "cd", "clear", "count", "countReset",
        "debug", "dir", "dirxml", "error", "exception", "group", "groupCollapsed",
        "groupEnd", "info", "log", "markTimeline", "profile", "profileEnd",
        "select", "table", "time", "timeEnd", "timeStamp", "timeline",
        "timelineEnd", "trace", "warn"];
      var length = methods.length;
      var console = (window.console = window.console || {});
      var method;
      var noop = function() {};
      while (length--) {
        method = methods[length];
        // define undefined methods as noops to prevent errors
        if (!console[method])
          console[method] = noop;
      }
    })();
    JavaScript | 4738 觀看 | 2016-12-27 | 標籤: javascript, console, assert, cat_applications | Kuann Hung 上傳
  • 有時候需要在 Windows 設定排程執行批次檔。但是很麻煩的是,如果你登入後,就會一直看到命令提示字元跳出來,然後執行完之後又消失,其實是很擾人的一件事情。
    還好有個方法,就是透過 WScript 裡面的 Shell 來作。
    方法很簡單,有人提供了一個 invis.vbs,用法很簡單,就是 
    wscript invis.vbs your-batch-file.cmd
    若是要排一個每小時執行一次的話,就透過 SCHTASKS 比較方便
    SCHTASKS /Create /SC HOURLY /TN Veritas-Update /TR "wscript C:\path\to\invis.vbs C:\patch\to\your-batch-file.cmd"
    這邊要注意的是,因為執行的路徑預設都在 system32 下,所以要指定 完整路徑,避免找不到檔案喔!!
    其他 | 12764 觀看 | 2016-12-27 | 標籤: SCHTASKS, wscript, invis.vbs, cmd, bat, cat_operating_system | Kuann Hung 上傳
  • 39689eeb5dc5920bf20a13ff33d43861.png製作網站常常會用到 Loading,雖然網路上一大堆,但是要做一個有自己特色的又很 搞剛。
    介紹一個方便的網站: http://loading.io/
     
    可以同時作出 SVG,CSS 以及 GIF,可以適應各種瀏覽器喔!
    其他 | 4238 觀看 | 2016-12-27 | 標籤: css, loading.io, gif, svg, cat_applications | Kuann Hung 上傳
  • Uploaded by Kuo-En Hung on 2016-12-24.
    2016 年年終數算恩典聚會 | 2482 觀看 | 2016-12-24 | Kuann Hung 上傳