2021年4月19日 星期一

CentOS upgrade GCC

使用 SCL 安裝方式,它不會取代原本系統的 gcc ,是透過 sch enable 進行切換,相對比較安全

以 gcc 9 為例:
yum -y install centos-release-scl-rh
yum -y install devtoolset-9-toolchain.x86_64

# which gcc
/usr/bin/gcc
# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

切換到 gcc 9 的環境

# scl enable devtoolset-9 bash
# which gcc
/opt/rh/devtoolset-9/root/usr/bin/gcc
# gcc --version
gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

2021年4月7日 星期三

data URI

data URI 可以將影像,檔案等以 base64 編碼內嵌至網頁內,可以減少瀏覽器發出 Request 的次數

data URI 的表達式如下:
data:[<mediatype>][;base64],<data>

img 使用 data URI 是最常見的模式,例如上面這張 Hello World 圖片(Blogger 預設的附圖就是 data URI)

a link 加上 download="filename" 就可以用 data URI 直接下載檔案

例:

Download PNG (上面那張 Hello Word 圖檔)

Download TXT

實測 JS、CSS 的引入檔也可以用 data URI,但似乎未曾看過有人這樣做,猜測可能是不好管理。
現今瀏覽器多執行緒的優化,使用 data URI 可能不見得比較快了

2021年3月24日 星期三

Access-Control-Allow-Origin

跨來源資源共用(CORS)

Mozilla 這邊文章寫得很詳細
簡單講當 User 去連 A 站,裡面的 AJAX 動作去 call B 站的資料,B 站就必需在 HTTP header 裡加入 Access-Control-Allow-Origin: *
使用完整 Source 路徑會更好,例如 Access-Control-Allow-Origin: https://blog.pank.org
Access-Control-Allow-Methods: 預設有 GET, HEAD, POST
所以在大部份的情況都不需要加

加入 Access-Control-Allow-Origin: * 大至上有兩個方法,從後端程式或 Web Server 端

後端程式,以 PHP 為例:
header('Access-Control-Allow-Origin: *');

Web Server 端,以 Apache 為例:
Header set Access-Control-Allow-Origin *
(也可以加在 .htaccess)

以 nginx 為例:
add_header 'Access-Control-Allow-Origin' '*'

2021年3月15日 星期一

RouterOS + HiNet IPv6 + www.cht.com.tw

RouterOS + HiNet IPv6 一段時間了,並沒有遇到什麼問題,
直到發現使用 IPv6 竟然連不到中華自己家官網 https://www.cht.com.tw

Firefox 出現 PR_CONNECT_RESET_ERROR


Chrome 出現 ERR_CONNECTION_RESET


curl 出現 errno 104


一開始以為是中華網站的問題,因為連其他 v6 網站都正常,
後來交叉測試後,直接撥接或從 AWS IPv6 連都正常,確定是透過 RouterBoard 才不正常,
查了 IPv6 Firewall 並無問題,最後查到是 ND MTU 的問題,只要設定 1480 以下就正常了



2021年2月26日 星期五

Enable Blogger mobile layout

換了 Blogger 之後,發現搜尋結果還是會出現
您的網頁不適合使用行動裝置瀏覽。
怪了,已經用 Blogger 還有這個問題,查了一下,
原來 Blogger 預設在行動裝置顯示電腦版,改一下就行了

主題 / 按下自訂旁邊的下拉

行動裝置設定

選擇行動版,儲存

RouterOS Reverse Proxy

RouterOS 從 7.22 版,新增了 Reverse Proxy 功能, SNI 填入域名 IP Address 填入 Server IP,通常是內部 IP,但也可以導到外部 Port 填入內部 Server HTTP 服務 Port Certificate 選擇對應的...