Let’s Encrypt/ sslforfree :Error: DNS problem: query timed out looking up CAA

Congratulations ! the worst situation maybe your DNS service provider does not support CAA record .

你的網域 DNS 服務商不支援 CAA記錄設定 .

for example : seed.net.tw , as you can see the picture below , there is no CAA record option to configure .

遠傳(新世紀資通) 根本沒有讓你設定CAA紀錄的地方.

ok , now you can go to find another DNS service. for example , your VPS provider may provide DNS service as well . Good luck ! For me , my hosting provider Linode do provide DNS service , so it’s easy to solve this problem .

Image result for linode logo linode.com
https://www.linode.com/?r=41c1348753728642eb6e6a14a905abcffc45480d

login to your linode account and go to [Domain] section

  1. Create a Domain(that one you want to transfer to)
  2. copy old DNS record from old DNS server to linode , one by one
  3. add CAA record

4. in console of your old DNS , change ns servers to new servers , for me , it’s linode’s ns server

for me, it works just 3 mins later, don’t have to wait 24 hours .

if you can not do this way , then you can buy a ssl cert . It’s very easy to do it with namecheap .

In my personal experience , namecheap is very High CP value choice . You can get a SSL and set it up very easy here , click picture below to go .

SSL Certificate for just $8.88 with Namecheap

JavaScript 四捨五入、無條件捨去、無條件進位

Math.round() 四捨五入

Math.round(3.14) // 3
Math.round(5.49999) // 5
Math.round(5.5) // 6
Math.round("5.50001") // 6
Math.round(-5.49999) // -5
Math.round(-5.5) // -5
Math.round(-5.50001) // -6
Math.round(18.62645 * 10) / 10 // 18.6
Math.round(18.62645 * 100) / 100 // 18.63
Math.round(18.62645 * 1000) / 1000 // 18.626

Math.floor() 最大整數

取小於這個數的最大整數

Math.floor(3.14) // 3
Math.floor(5.4) // 5
Math.floor(-5.4) // -6
Math.floor("-5.5") // -6

Math.ceil() 最小整數

取大於這個數的最小整數

Math.ceil(3.14) // 4
Math.ceil(5.4) // 6
Math.ceil(-5.4) // -5
Math.ceil("-5.5") // -5

JavaScript 四捨五入線上測試

4Math.round(n)Math.floor(n)Math.ceil(n)

帶小數的四捨五入

var roundDecimal = function (val, precision) {
  return Math.round(Math.round(val * Math.pow(10, (precision || 0) + 1)) / 10) / Math.pow(10, (precision || 0));
}
roundX(18.62645, 2) // 18.63
roundX(18.62645, 3) // 18.626
roundX(18.62645, 4) // 18.6265

數字千分位

function FormatNumber(n) {
  n += "";
  var arr = n.split(".");
  var re = /(\d{1,3})(?=(\d{3})+$)/g;
  return arr[0].replace(re, "$1,") + (arr.length == 2 ? "." + arr[1] : "");
}

JavaScript 數字千分位線上測試

798,736.325Examination

數學函數

Math.abs() 絕對值

絕對值(正值)取參數的絕對值。參數可以是數值亦可以是一個「數值」的字串。

Math.round(3.14) // 3
Math.abs("-12") // 12
Math.abs("-0012") // 12
Math.abs(-12) // 12
Math.abs("00.032") // 0.032
Math.abs("24-5") // NaN
Math.abs("Hello") // NaN

Fixed : Firebase Auth in Cordova lead to a about:blank page on iOS device

Lately , was trying to integrate third party login to cordova app , let’s say twitter . After completing all steps firebase introduced , when run the app and start Oauth with firebase , we got a blank page at the end of process , and never get callback to original app .


You can find Firebase’s document here : https://firebase.google.com/docs/auth/web/cordova

Problem :
1. cordova-plugin-browsertab  : this plugin dependent on compat plugin , but compat plugin deprecated , so will lead to build android failed .


2. When firebase auth start ,will open in another webview , app go to background mode that make app never receive callback .

How to fix :

  1. replace cordova-plugin-browsertab with : cordova-plugin-safariviewcontroller

after install cordova-plugin-safariviewcontroller , we need to add some code in our javascript to replace browsertab with safariviewcontroller.

window.cordova.plugins.browsertab = {};
        
        /* Browsertab - Is Available */
        window.cordova.plugins.browsertab.isAvailable = function( success ) {
            window.SafariViewController.isAvailable( success );
        }
        
        /* Browsertab - Open Url */
        window.cordova.plugins.browsertab.openUrl = function( url ) {
            window.SafariViewController.show( { url: url } , function() {} , function() {} );
        }
        
        /* Browsertab - Close */
        window.cordova.plugins.browsertab.close = function() {
            window.SafariViewController.hide();
        }

2. we need to install background plugin to make app wake up while waiting callback . You can find the plugin here : https://github.com/katzer/cordova-plugin-background-mode

After these fixes above , finally get callback data correctly :

reference : https://github.com/firebase/firebase-js-sdk/issues/1555

macbook pro 2010 無法開機 – 結局超神奇

對2010 你沒看錯,就是那麼耐用 (其實是因為太窮了…)昨天正在測試一個app的時候,因為跑得很慢就出去玩了.回來後發現我的 macbook 老兄關機了 @@ 問了一下沒人動過 ,不祥的預感 ….. 按下電源鍵 無反應 !完了

立即google各種 macbook pro 死機的解救方法,包含各種按鍵組合全都試過了…..真的一動也不動了..嗚嗚嗚.正在絕望中 準備看是不是要去參加外送大軍行列籌錢送修的時候,想說死馬當活馬醫,自己檢查一下搞不好壞掉的地方很明顯,還能修,於是就 拆開了 macbook pro 的背板, 他老兄的裸體長得這樣:

仔細看了看,沒有什麼明顯燒毀的零件,想說這下完了,幾張小朋友是一定要花下去的了,眼淚正要掉下來的時候,看到主機板上面有些灰塵跟什麼毛之類的,就把他吹一吹, 也不知道哪裡靈感,這時候想說給他通通電看看 (背蓋打開狀態下), 挖勒 ! 神奇的事情發生了 ! 竟然啟動了 ! 哇哈哈哈哈 ! 這是演哪一齣啊? 好吧,反正活了就好,好像不小心賺到幾千塊,超爽的.

wordpress :Error 503 Backend fetch failed Varnish cache server

Today , I found my wordpress site can not display correctly .

like the picture show below


if you google this problem , u will find lots discussion there .
What if you try every possible workout but not work ?
disable plugins , disable theme …. bla bla , I evne reinstalled wordpress …. problem remained .

Especially , I DO NOT HAVE VARNISH INSTALLED !!

Guess what ? I switch to my cell phone’s wi-fi hotspot , BOOM ! error message disappear !! Can’t believe it is because ISP or router … wasted lots of time huh.

line官方帳號 & fb粉專 messenger 客服整合

最近老高幫廠商做了一個整合 ,將 line官方帳號跟 fb粉專的 messenger聊天訊息 整合到網頁同一個頁面,方便客服人員 監看 &回覆客戶訊息 ,做了就不要浪費, 跟大家分享

本社群軟體整合功能,可以整合多個line官方帳號,以及多個 fb粉絲頁 
讓老闆/客服人員 在一個app 或一個網頁頁面上 同時處理各種平台傳來的訊息 


特別適用:既有客服平台整合 line & facebook , 網拍客服等行業 
彈性方式跟原有介面整合 , 可以客製化 ,有需要可洽老高 line id :0987032910 

線上 live demo 點擊前往測試
可直接依據網站上說明 , 進行測試 , 測試完畢  記得要將你自己的 line官方帳號跟 fb粉絲頁移除再離開喔! 

線上 live demo 點擊前往測試
可直接依據網站上說明 , 進行測試 , 測試完畢  記得要將你自己的 line官方帳號跟 fb粉絲頁移除再離開喔! 

範例

非常歡迎您光臨,為了讓您能夠安心的使用本網站的各項服務與資訊,特此向您說明本網站的隱私權保護政策,以保障您的權益,請您詳閱下列內容:

一、隱私權保護政策的適用範圍
隱私權保護政策內容,包括本網站如何處理在您使用網站服務時收集到的個人識別資料。隱私權保護政策不適用於本網站以外的相關連結網站,也不適用於非本網站所委託或參與管理的人員。

二、資料的蒐集與使用方式 
為了在本網站上提供您最佳的互動性服務,可能會請您提供相關個人的資料,其範圍如下:

本網站在您使用服務信箱、問卷調查等互動性功能時,會保留您所提供的姓名、電子郵件地址、聯絡方式及使用時間等。
於一般瀏覽時,伺服器會自行記錄相關行徑,包括您使用連線設備的IP位址、使用時間、使用的瀏覽器、瀏覽及點選資料記錄等,做為我們增進網站服務的參考依據,此記錄為內部應用,決不對外公布。
為提供精確的服務,我們會將收集的問卷調查內容進行統計與分析,分析結果之統計數據或說明文字呈現,除供內部研究外,我們會視需要公佈統計數據及說明文字,但不涉及特定個人之資料。
除非取得您的同意或其他法令之特別規定,本網站絕不會將您的個人資料揭露予第三人或使用於蒐集目的以外之其他用途。

三、資料之保護

本網站主機均設有防火牆、防毒系統等相關的各項資訊安全設備及必要的安全防護措施,加以保護網站及您的個人資料採用嚴格的保護措施,只由經過授權的人員才能接觸您的個人資料,相關處理人員皆簽有保密合約,如有違反保密義務者,將會受到相關的法律處分。
如因業務需要有必要委託本網站相關單位提供服務時,本網站亦會嚴格要求其遵守保密義務,並且採取必要檢查程序以確定其將確實遵守。

四、網站對外的相關連結
本網站的網頁提供其他網站的網路連結,您也可經由本網站所提供的連結,點選進入其他網站。但該連結網站不適用本網站的隱私權保護政策,您必須參考該連結網站中的隱私權保護政策。

五、Cookie之使用
為了提供您最佳的服務,本網站會在您的電腦中放置並取用我們的Cookie,若您不願接受Cookie的寫入,您可在您使用的瀏覽器功能項中設定隱私權等級為高,即可拒絕Cookie的寫入,但可能會導至網站某些功能無法正常執行 。

六、隱私權保護政策之修正
本網站隱私權保護政策將因應需求隨時進行修正,修正後的條款將刊登於網站上。