2018年5月29日 星期二

cloudflare argo 速度測試

先說結論,真的快!懶得看請按讚!



2018年5月24日 星期四

測量 ssh session 的 latency

目前是使用本機的 virtualbox 做為開發機,而常在思考是否要改用 google vm(台灣彰化機房) 或 linode (日本機房) 做為開發機。之前都是打開 vim 看看打字的體感速度慢多少,但其實沒有個數字都不太準確。今天在 serverfault 找到了答案

在這裡以 MAC 為例,windows 的朋友可能要立用 docker 或 virtualbox 來建立 linux 的環境來測量。

先設定要連線的主機
HOST=root@remote-address

再下指令進行測試

mkfifo /tmp/up /tmp/down
ssh $HOST -N -M -S /tmp/control &
ssh $HOST -S /tmp/control cat < /tmp/up > /tmp/down &
python -m timeit -s 'import os' \
    'os.write(3, "z"); z=os.read(4, 1); assert z=="z", "got %s" % z' \
    3>/tmp/up 4</tmp/down
rm -f /tmp/up /tmp/down
kill $(jobs -p)

台北 hinet 測試結果:
  • Localhost VirtualBox: 0.508ms
  • Linode Tokyo (JP): 45ms
  • Linode Fremont (US): 146ms
  • Linode Dallas (US): 200ms
  • Google VM (TW): 21ms
  • Linode Singapore (SG): 67ms

2018年5月18日 星期五

GDPR + adsense

對於網站來說,GDPR 的實際影響,幾乎只有 adsense。 這邊依 google 官方說明,歸類為三個等級:
1. 在歐盟停用個人化廣告:Google 說不用改廣告代碼,在管理介面點一點設定即可停用個人化廣告,在歐盟區只顯示非個人化廣告。[1]
2. 網站詢問使用者是否同意使用 cookie
3. 使用者沒同意前不能有 adsense:因為歐盟要求使用者同意前不能使用 cookie ,可是 google adsense 一定要使用 cookie ,結論就是同意後才能顯示 adsense 廣告。所以 google 提供了一個寫程式的方法,可以先停止廣告,讓使用者同意之後,再顯示廣告。[2]

依 1 來說,我在後台點一點就好,但真的這麼簡單嗎?
由於 adsense 一定要用 cookie ,所以依規定一定要到達 3
依 3 的條件來說,1 根本沒意義
依規定網站到要做到 3 ,使用者同意才能顯示 adsense !
3 的 google 方法蠻巧妙的:
 - 不會改程式的,一定做不到!
 - 若網站端真的有能力改程式,損失也非常大。
 - 其實真的要符合應該是 google 那邊在歐盟預設停用廣告,而會改程式的網站,再用程式的方法來啟用 adsense 才對。但絕對不可能,google 股價會跌一半吧!


不過基本上,是不用怕被歐盟的人說違反 GDPR 之類的,
怕的是將來 adsense 可能為了符合法規,會主動檢查網站否有符合規範。
其實在 2015 年 adsense 政策中心就要求要跳出「是否同意使用 cookie」[3]
而且也有人被發信警告,不遵守會被停權。[4]
所以 GDPR 之後,會不會更嚴格就不知道了,還有 Google 會要求網站要達到上述 1,2,3 哪一個程度呢?

個人建議是先做到 1 + 2 ,3 太可怕了,再觀察。
 (此等建議僅供參考,被罰恕不負責)

[1] https://support.google.com/adsense/answer/7670013
[2] https://support.google.com/adsense/answer/7670312
[3] https://adsense.googleblog.com/2015/07/introducing-new-user-consent-policy.html
[4] https://www.webmasterworld.com/google_adsense/4833628.htm

2018年4月25日 星期三

free gif loader on cdnjs

https://cdnjs.cloudflare.com/ajax/libs/jquery-mobile/1.4.5/images/ajax-loader.gif
https://cdnjs.cloudflare.com/ajax/libs/yui/2.9.0/assets/skins/sam/ajax-loader.gif

2018年2月10日 星期六

new Date().getTime()

忘記是哪邊看到的,new Date().getTime() 其實可以改用 new Date() * 1
自己也實際使用了一陣子。
寫這一則時,順便去 stackoverflow 看一下,得到更短的 +new Date
然後看 一下 Google GA 的 js ,是寫 (new Date).getTime()

2017年12月6日 星期三

查看世界各國的網路速度

由 akamai 製作的一個互動的圖表,非常的簡單易用
https://www.akamai.com/us/en/about/our-thinking/state-of-the-internet-report/state-of-the-internet-connectivity-visualization.jsp

2017年11月14日 星期二

中國大陸 cdn 前端通用庫的比較

Google ajax lib 無法在中國大陸正常的存取,cloudflare 的 cdnjs 則可以,但最好還是少用,因為很少人使用。多人使用的東西通常不會掛,或者是掛了會很少人修復。

這個連結有詳盡的比較表 https://c7sky.com/javascript-libraries-cdn.html

如果你是全球網站,可以使用 cloudflare 的 cdnjs ,速度可能還比 google 快,行有餘力,就把中國的訪客改成 bootcdn 吧!

2017年5月17日 星期三

更新 mysql sets 欄位

Database 有一種 SETS 型態的欄位,在某些時候蠻有用的,不同於 ENUM 型態欄位是多選一,SETS則是可以多選。像是 `categories`="fashion,food,travel" 。何不第三正規化就好了?但因為會多兩個 table。對於 SETS 屬性,要純以 SQL 來操作新增或移除是蠻麻煩的,在此筆記一下。

2017年3月17日 星期五

查詢隱藏在 cloudflare 後面的主機 ip 是否被流出

蠻多 service 都會紀錄曾經使用過的 ip ,除此之外,一些子網域也藏會透漏原始的 ip
http://www.crimeflare.com/cfs.html

2017年3月7日 星期二

使用 JS 讓 iOS 的 safari 跳出複製

其實就是全選功能,iOS 會跳出複製選項。
在此紀錄一下
http://stackoverflow.com/questions/10452391/is-it-possible-to-select-all-input-text-on-iphone-device-when-focus-click