一個突然,我們的監控跳出了通知
2023年5月22日 星期一
2022年10月27日 星期四
更好的使用 "git checkout"
什麼是 git switch 和 git restore?
Git 版本 2.23 加入了兩個指令,他原理與 checkout 命令類似,但不完全相同。
什麼是 checkout?
checkout : 切換分支或恢復工作樹文件Git 2.23 做了另外兩個命令來區分其取代他。
- switch:切換分支
- restore:恢復工作樹文件
您現在可以專門針對更合適的情況編寫。
如果想切換分支,可以使用:
# 與 'git checkout develop' 相同
# 同 'git checkout -b new-branch'
如果想恢復文件,也可以使用:
# 與 'git checkout -- README.md' 相同
# 與 'git reset HEAD README.md' 相同
現在我們可以用更語意的方式使用 GIT 了:)
2022年8月31日 星期三
2022年8月30日 星期二
Vuejs Error: The client-side rendered virtual DOM tree is not matching server-rendered
事情是這樣的,最近在網頁上一直出現這種錯誤:
Vuejs Error: The client-side rendered virtual DOM tree is not matching server-rendered
只好來研究一下該如何解決,順帶一提,我是使用 Nuxt.js
The client-side rendered virtual DOM tree is not matching server-rendered content. This is likely caused by incorrect HTML markup, for example nesting block-level elements inside <p>, or missing <tbody>. Bailing hydration and performing full client-side render.
For me this error happened cuz get Array list in AsyncData and rendered <tr> tags by v-for, i put v-for codes in <client-only> blocks and problem solved
2022年8月25日 星期四
nginx 設定 50x 錯誤頁面
事情是這樣的,本人待的小公司因為沒有 load balance 的機制(成本考量),因此在 Server 重新 build 的時候網站會呈現掛點狀態(?不意外吧),為了解決這樣的問題,所以決定要做一個 error page 去告訴敷衍使用者 :)
# 升級頁面
proxy_intercept_errors on;
error_page 500 502 503 504 /index.html;
location = /index.html {
root /home/ubuntu/www/;
}
location ~ \.(mp3|mp4) {
root /home/ubuntu/www/media/;
}
2022年8月9日 星期二
網址列沒有 www 的 nginx 設定 (燦笑
www 不是只有拿來燦笑用的,他還是網址列的開頭。那要如何把 www 隱藏起來呢 (燦笑
if ( $host != '$YOUR_DOMAIN_COM' ) {
rewrite ^(.*)$ https://$YOUR_DOMAIN_COM$1 permanent;
}
搞定,所有 www 都會被 301 轉導到沒有 www 的網址上面。
2022年8月5日 星期五
2022 元滿平安箱
最近打球腳受傷,朋友說要帶東西來探望我,我就說那要買個爽的過來喔~
然後我就收到了這個…?
三小?把我當神來尊敬的意思嗎?好吧!我原諒你,裡面不爽的話我會拿拐杖教訓你喔。
打開以後,好啦~裡面也是有幾個我愛吃的餅乾,像是波的多、玉米脆餅跟鹽之花,其他倒是沒什麼在吃。
裡面總共有七包餅乾
- 野菜園
- 波的多 蚵仔煎
- 鹽之花洋芋片
- 鮮肉蝦餅
- 三角薯叔
- 空氣玉米脆餅
- 甜卡力
拿出來拍照以後,看起來的確是很有誠意呢,那我只好來當一下你的神,品嚐一下這些美食,也謝謝我的那個朋友突發奇想買了這一箱過來 XD~
叔叔當然就先來吃薯叔瞜,吃起來跟好市多的薯格格 87 分像,但感覺沒有那麼硬,而且還可以一口塞蠻爽的,這個配酒喝應該很棒~
結果我吃著吃著猛然發現一個特別的東西!
就是紅色圈起來的那個,我一開始還以為是我朋友撞到邊邊才變成這樣的,後來我去查了一下,那個地方居然是可以用來插香的!!
居然有這種方便的設計,太棒了吧!看來快要到的中元節也可以買個一箱來拜一下,讓神也可以嚐嚐這種爽快的感覺,但這箱我就先嘗鮮摟~
2022年7月25日 星期一
複製連結碰到的問題(Safari)
事情是這樣的,今天發現在手機上的複製連結功能沒有作用,仔細檢查一下發現是上面有個 await,只要把他隱蔽就正常了!
...?????
後來找到了這篇文章
https://juejin.cn/post/7038773190587318308
看起來是發生差不多的事情,主因是因為 window.open() 的Api 會因為使用 js 去調用的時候,如果超過某個時間就會被認定為不是使用者直接操作,而阻止程式繼續使用。
解決辦法:
所以把 await 的 api 放在最後面就可以解決這個問題。
以下為原本的 code
參考:
https://juejin.cn/post/6979763242134405128
https://zhuanlan.zhihu.com/p/122175288
2022年5月11日 星期三
[Chrome] input 輸入框自動填入時的背景顏色問題
碰到的問題:
自動填入前
自動填入後可以發現自動填入後背景變成白色。
input:-webkit-autofill {box-shadow: 0 0 0 1000px #373739 inset;-webkit-text-fill-color: #fff;}
2022年1月17日 星期一
自建論壇 - NodeBB 的安裝教學
NodeBB 是一款由 Node.js 開發的、開源的、現代化的論壇程式,使用MongDB作為資料庫(也可以選擇 Redis,但不推薦)。
本教學將一步步演示,如何在Windows和Linux平台下,搭建 NodeBB 論壇程式。
安裝Node.js 和 MongoDB
Node.js
安裝MongoDB
安裝NodeBB
2022年1月6日 星期四
設定 S3 的 CORS 規則,並使用 FileSaver 取得圖片下載
最近需要做一個功能,就是把上傳的圖片下載下來。
這簡單!我啪啪啪就寫好了,結果出現了....CORS 的問題,因為網址跟 s3 的網址是不同 Domain 的,上網搜尋一下,發現只要設定好 S3 的 CORS 就可以了。
2022年1月4日 星期二
在 M1 Mac pro 安裝 Windows 11 UTM 的虛擬機
最近朋友問我可不可以幫他在 M1 的電腦上面安裝 Windows,剛好我也很想聞看看新款的 M1,就二話不說地答應了!
搜尋了一下,發現大家都是用 Parallels Desktop 來安裝,但只有 15天試用期,想說就索性跟他申請一下經費來安裝安裝,然後我就又回去搜尋看看有沒有免費的辦法。(貪小便宜的人厚...)
後來找到一個叫 Keith 的安裝教學,也解決了我的困難,那就做個紀錄吧。
簡單步驟如下
- 下載 Windows 11 ARM Inside Preview
- 安裝 QEMU
- 轉換 Window 11 為 qcow2 格式
- MacOS 安裝 UTM
- 設定 Windows 11 配置虛擬機
- 8 核 CPU ARM64
- 4GB RAM
- 80GB 類型 NVMe 的 HDD
- 啟動 Windows 11 VM
- 將 BIOS 中的顯示更改為 1074x768
- 安裝 Windows 11
- 安裝 Spice 工具 (網路連線用)
- 切換Windows 11介面語系為中文
- 停用Windows 11更新 (看個人)
詳細步驟說明
下載 ARM
安裝 QEMU
安裝 UTM
UTM 驅動程序
建立 Windows 11 虛擬機
Information
切換Windows 11介面語系為中文
停用Windows 11更新
- 按下「Win+R」鍵開啟執行視窗。
- 透過輸入services.msc並按下Enter鍵以開啟服務視窗。
- 在「服務」列表中找到並選擇「Windows Update」選項,然後點擊「停止」按鈕。
- 在「一般」選項卡,將「啟動類型」變更為「已停用」。
2021年12月16日 星期四
2021年12月8日 星期三
[JS]注音輸入法要怎麼做自動完成呢!
- compositionstart:輸入框內開啟輸入法,且正在拼字時觸發。
- compositionend:輸入框內開啟輸入法,且正在拼字或選字時更改了內容時觸發。
- compositionupdate:輸入框內開啟輸入法,拼字或選字完成,正要送出至輸入框時觸發。
mounted() {
let isInputZh = false
const searchInput = this.$refs.Input.$el.children[0]
searchInput.addEventListener('compositionstart', function(e) {
isInputZh = true
}, false)
searchInput.addEventListener('compositionupdate', function(e) {
isInputZh = false
}, false)
searchInput.addEventListener('compositionend', function(e) {
isInputZh = false
}, false)
searchInput.addEventListener('input', function(e) {
if (isInputZh) return
remoteApiMethod(this.value)
}, false)
}用這種方式就可以在輸入法尚未結束的時候丟資料去 API 取資料嘍~
2021年12月1日 星期三
如何建立谷歌部落格(google blogger)
- 免費
- 圖庫問題:可以串連Google相片
- 數據:有自帶數據統計的功能
- 賺錢:未來流量起來可以賺錢
- 手機:我覺得手機可以讓你想到什麼就加入草稿,畢竟靈感不是說來就來
Google Blogger Theme: https://gooyaabitemplates.com/
- 選擇一個你想要的外觀,並下載 Blogger 模板。
- 解壓縮並取出 xml 檔案
- 選擇左側列表中的 主題,並且按下還原,上傳你的 xml 檔案
2017年1月9日 星期一
mongo 基本的 shell 指令
基本指令
進入 mongo
# mongo
Failed global initialization: BadValue Invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are set correctly.
# export LC_ALL=C# mongoyes 成功進入!
秀出所有db
# show dbs
秀出所有 collections
# show collections
秀出這個 user 欄位的所有資料
# db.getCollection('user').find({})
更新這個 user 欄位的 startDate 跟 endDate
# db.getCollection('user').update({}, {$set:{'startDate':new Date('2016-01-01'), 'endDate': new Date('2018-01-01')}},{multi:true})
收工!
mongo 基本的 shell 指令
sitemap 的設定問題 (截至 https://www.sitemaps.org )
sitemap 的設定問題
主要是碰到如果我有 http 跟 https 兩種版本,該怎麼做。因為大陸有些還尚未支援 https, 因此在 google 就送 https, 大陸那邊就給 http。
以下是 sitemaps.org 提供問題及解答
$ python
Python 2.2.2 (#1, Feb 24 2003, 19:13:11)
>>> import xml.sax.saxutils
>>> xml.sax.saxutils.escape("http://www.example.com/view?widget=3&count>2")
http://www.example.com/view?widget=3&count>2
$ date --iso-8601=seconds -u -r /home/foo/www/bar.html
>> 2004-10-26T08:56:39+00:00
nslookup 反查IP的好用工具
有些時候, 我們會想要手動查詢 DNS 上一些資料, 或者是要看看 DNS 是否有問題, 此時我們最常用的工具就是 nslookup 了, 基本上 nslookup 會根據 /etc/resolv.conf 的內容去找到所要使用的 local DNS server.
輸入domain name
在查詢時有時會出現 Non-authoritative answer, 代表這個答案是由 local DNS 的 cache 中直接讀出來的, 而不是 local DNS 向真正負責這個 domain 的 name server 問來的.














