知識分享

今天檢查更新的時候,出現了以下錯誤:

GPG error: https://packages.sury.org/php stretch InRelease: The following signatures were invalid...
E: The repository 'https://packages.sury.org/php stretch InRelease' is not signed.
...

 

問題發生原因在於 DPA 有新的 signing key 了,所以只要更新就可以了

  1. 先移除舊的
    sudo rm /etc/apt/trusted.gpg.d/php.gpg
  2. 接著下載新的
    sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

這時候再執行 suto apt update 就可以正常更新了

 

更多

近期因為 1909 更新週期到期,所以更新為 20H2 之後,突然就多了一個幽靈輸入法 - 「中文 (繁體) - 新自然」,且找不到移除的地方
多出來就算了,切換成該輸入法還只能輸入英文...
變成切換輸入法( win key + spapce )的時候,每次都要多按一次才能切換到正確的,很是困擾...

研究了一下,研判是早期由 自然輸入法V10 升級 V11 之後,有些遺留下來的登錄檔造成了問題

這邊記錄一下解決方式:

  1. 先把輸入法切換到 微軟新注音
  2. 移除自然輸入法V11
  3. 執行 regedit (win key + R 之後輸入 regedit)
  4. 使用搜尋功能(Ctrl + F) 搜尋 going10
    應該會在 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{機碼a}\LanguageProfile] 底下找到
  5. 複製上個步驟找到的 機碼a ,然後把 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
更多

PSR-0

  1. 完整的命名空間 fully-qualified namespace 與 類別 class 必須符合以下結構:
    \<vendor name>\(<namespace\>)*<class name>
  2. 每個命名空間 namespace 必須包含一個 頂級 top-level 的 namespace (vendor name)
  3. 每個命名空間 namecspace 可以擁有任意數量的 子命名空間 sub-namcespaces
  4. 載入檔案時,每個命名空間的分隔符號 separator 必須轉化成 目錄分隔符號
  5. 每個在類別名稱中的下畫線符號 "_" 都要轉化為 目錄分隔符號。該符號在命名空間裡沒有任何特別的用處。
  6. 載入時,完整的命名空間與類別 為
更多

使用CSS時,因為 CSS 為 "層疊" 的,也就是同一個元素可以利用利用不同的 selector 規則,把樣式疊加上去,但當不同的規則間有衝突時,例如 a.title{color:#000;} 與 a{color:#333;} 兩個規則都設定了color的樣式,這時就要考慮權重來決定最後要以哪個規則來呈現 color 這個發生衝突的樣式 。

權重如下:

規則 權重 範例
行內樣式 1000  <a style="...">
id 100  #title
attribute / class / pseudo-class  10
更多

http_variables

變數名稱 說明
$args Request 的參數
也就是網址中 問號 ? 後面的所有參數。
如: example.info?p1=1&p2=2
則 $args = "p1=1&p2=2"
$binary_remote_addr  
$body_bytes_sent  
$content_length  
$content_type Request Headers 中的 "Content-Type"
更多

步驟如下

1.  開啟 VS Code,然後按 `Ctr`l +  `,`
2.  搜尋 settings.json
3.  點擊 "在 settings.json 內編輯",會開啟settings.json 的 頁籤
4.  增加或修改以下內容,其中 CMDER_ROOT 是 windows 的 環境變數,要先設定為 cmder 的安裝目錄

    "terminal.integrated.shell.windows": "cmd.exe",
    "terminal.integrated.env.windows": {"CMDER_ROOT": "[cmder_root]"},
    "terminal.integrated.shellArgs.windows": [
        "/k", "[cmder_root]\\vendor\\init.bat"
    ]

5.  重啟VS Code 

更多
interface abstract trait
  1. 規範子類/子介面一定要具備某些東西,包含變數與function
  2. 可以被多重 繼承(extends),子介面會擁有父母們的所有規範。但父母們之間的function不能重名。
  3. interface裡只能有public function,且都是空的。
  4. 可以有 constant ,但不能被override
  5. implement 的時候,必須 override所有的fucntion
  6. 不能直接 new 出來,要先有 class
更多

步驟如下:

  1. 需要先更新 repository
    sudo add-apt-repository ppa:certbot/certbot
    sudo apt-get update
  2. 然後安裝 python-certbot-nginx
    sudo apt-get install python-certbot-nginx
  3. 取得SSL 憑證(依照指示進行)
    sudo certbot --nginx -d example.com -d www.example.com
  4. 測試auto renew
    sudo certbot renew --dry-run