2026年9月7日 星期一

結構洞

 

2026年6月20日 星期六

2025年12月21日 星期日

Theme Capsule 風格展示艙

Theme Capsule 不是一個 UI Framework,也不是一套設計系統。
  • 它比較像是一個 「風格展示艙」:每一顆 Capsule = 一種強烈、可感知的 UI 風格
  • 同一個功能頁面(Home / Admin / Dashboard / Blog),在不同主題下會呈現完全不同的氣氛
  • 所有風格都被拆解成 可理解、可複製的設計 token 與元件寫法
歡迎了解我的設計理念 - Source on GitHub


2025年12月10日 星期三

Imgduck完全在瀏覽器內運行的圖片壓縮小工具

雖說已有squoosh.app這開源的線上縮圖工具,當初第一次用覺得很驚豔,因為可以直接預覽壓縮前後的差異,很酷,但只能處理單個圖檔,現在已是vibe coding時代了,功能不符那就自己打造吧,一樣開源。

Imgduck是一款完全在瀏覽器內運行的圖片壓縮小工具。很酷的幾點是:

  • 拖拉圖檔,單檔多檔皆可
  • 貼上剪貼簿內容,用複製的貼上也行,多檔也可以
  • 甚至拖拉整個資料夾喔
然後會建立批次佇列、自動壓縮後有三種比對模式,最後可單檔下載或打包 ZIP喔。

歡迎了解我的設計理念 - Source on GitHub



2020年6月10日 星期三

Redis設定maxclients產生maximum open files錯誤的問題

12214:M 10 Jun 20:48:01.544 # You requested maxclients of 50000 requiring at least 50032 max file descriptors.
  3 12214:M 10 Jun 20:48:01.544 # Server can't set maximum open files to 50032 because of OS error: Operation not permitted.
  4 12214:M 10 Jun 20:48:01.544 # Current maximum open files is 10240. maxclients has been reduced to 10208 to compensate for low ulimit.     If you need higher maxclients increase 'ulimit -n'.

這問題真的是很瞎

因為已設定/etc/security/limits.conf無用

2020年5月24日 星期日

如何擴充Vmware虛擬機的硬碟空間

使用LVM管理很方便,但要擴充VM的步驟還是不少,特此記錄一下

原本VM是給6G,根目錄空間只有3.4G,拿來測試SQL Server on Linux不太夠



2019年9月22日 星期日

[MySQL]Unknown collation: 'utf8mb4_0900_ai_ci'

        最近測試MySQL Utilities遇到下列錯誤
mysql.connector.errors.DatabaseError: 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci'




        看到utf8mb4_0900_ai_ci這個就知道是MySQL 8.0.17以後才會出現的charsets,而我用的是MySQL 5.7的,所以出現這錯誤是正常的

2019年9月19日 星期四

用yum provides來尋找遺失的文件

      有時安裝套件時,會出現Failed dependencies之類的錯誤,或是提示遺失依賴的文件,像下面這類的

perl-DBD-MySQL-4.023-6.el7.x86_64 has missing requires of libmysqlclient.so.18()(64bit)

通常我們會去Google看看別人裝了什麼套件來解

最近看到有人用yum來解的

2018年1月14日 星期日

[MySQL][ERROR] Could not use /var/log/mysql-slow-queries.log for logging (error 13)

        因為Zabbix最近有效能的問題,監控數千台有時會整個斷圖,想搞清出到底是Server不夠力還是DB本身不夠力,但是斷圖什監控項資料都沒了,都無法釐清當時狀況,很尷尬,所以另外裝了Percona Monitoring and Management (PMM)來監控Zabbix Server跟DB,PMM安裝可用docker實現無腦安裝很簡單,但設定上有些麻煩目前還搞不定,其中有項功能就是會自動幫你rotate slow log,但我發現只會幫你mv,不會幫你touch,意思就是更名後就沒有slow log,那就不會紀錄slow query囉,這就不易debug

        當slow log不存在時,touch一下,chown後,進mysql再flush slow logs,通常slow query就會正常紀錄了
touch /var/log/slow.log
chown mysql.mysql /var/log/slow.log
flush slow logs

        但這次竟然失敗,slow log依然是空的,我反覆試了幾次都如此,Error log有告知解法是要你重啟mysql,有沒有搞錯啊?DB是能隨便重啟的嗎?


2017年10月11日 星期三

[MySQL]預設innodb_log_file_size太小,對IO影響有多大呢?

       基本上innodb_log_file_size我從沒用過預設值,一般來說都要求要能夠撐住1小時的寫入量,同事管的一台MySQL有效能上的問題,請我幫忙看,iostat看了一下還滿忙的,IOPS在1000~3000左右,IO吞吐量介於25MB~80MB,幾乎全是寫IO為主,以SAS 15000轉RAID 10來說算忙碌的,但看起來IO還不至於撐不住,看了一下MySQL內讀寫比為8:2,比對OS的顯得不太合理,寫IO怎麼會那麼重,再看一下設定,innodb_log_file_size居然用預設值,只有5MB,2個也不過10M,算了一下適當的大小應該要1.4G,10M對1.4G這也差太多了,log file豈不是一直被替換,寫IO這麼忙應該是這個問題,請同事找時間先改成1G看看,那改了之後IO差多少呢?

       下圖是PMM的監控項,時間範圍涵蓋更改innodb_log_file_size的前後時間段,看中間的兩個圖分別是IO吞吐量跟IOPS,更改innodb_log_file_size後的數據讓我嚇了一跳,同樣的QPS下,IO變得一點都不忙碌了,也差太多


       那如何計算innodb_log_file_size的大小呢?可參考Calc_innodb_log_file_size.sh

2017年9月25日 星期一

[MySQL]初始化資料庫後,竟無法啟動,Error Log無錯誤訊息紀錄

      測試Percona 5.7.19-17,原本就已搭好Master了,就在Slave上安裝完Server後,準備初始化資料庫,我直接把Master的my.cnf拿來用,初始化資料庫成功,自定義的Error Log目錄下有產生對應的mysql_error.log,預設的Error Log路徑下沒有,到這裡一如往常沒有問題

      但接下來MySQL竟然啟動FAILED,怪的是mysql_error.log竟然沒有錯誤訊息,難道錯誤寫到預設Error Log下,一看還真的產生了一個,不過是空的,如下圖

2017年9月11日 星期一

[Oracle]ORA-01034: ORACLE not available

     話說把Oracle移轉到新的server之後,為了讓client可以不要調整,所以得把新的server的hostname與ip改成跟之前的一樣,就在同事調完hostname與ip重開Server後,我打算啟動Oracle,結果剛進sqlplus就遇到下圖的錯誤
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0

2017年7月4日 星期二

[SQL Server]從備份檔bak產生完整Restore命令

  之前一直在異機還原,要還原的DB往往拆成好多個data file,異機的磁碟分區又不一樣,還原就很麻煩了,要改路徑,不知為什用SSMS產生的Restore命令竟不完全,當時上網有找到一位大大寫好的SP,可從BAK產生Restore命令,可是我忘記是從哪找到的,最近剛好套用到SQL 2016時會出錯,發現是RESTORE FILELISTONLY的結果集不太一樣,於是改了一下再放上來給有需要的人


2017年5月25日 星期四

[SQL Server]SSMS 17.1出來了

下載位址在Download SQL Server Management Studio

話說之前用SSMS 16.5.3在Object Explorer要refresh Databases時,只要是Database在Restoring狀態,總是會回應緩慢,然後Errror就會出18456的錯誤呢,我還想說是我哪裡設定有問題,一查SSMS 2016 - Refresh Databases & Login Failed 18456原來是bug,要17.0才會修正


 這次出了17.1就更新看看囉,那錯誤真的沒了,回應快了很多,而且UI的圖示長得不太一樣了呢


2017年4月21日 星期五

[MySQL]MySQL 5.7 inet_aton參數不允許空字串

  話說把一個資料蒐集的DB從Percona 5.6升級到5.7,結果用LOAD DATA INFILE的入庫腳本幾乎全部失敗,顯示如下的錯誤
Incorrect string value: '''' for function inet_aton

  因為來源資料有ip,所以用inet_aton轉換成整數存入,都運作好幾個月的腳本怎麼會升級後出錯呢?而且它都是顯示第一行出錯,我怎麼看第一行都是對的@@

  後來嘗試了一下inet_aton在5.6與5.7的差異
  各位猜猜看,下面哪個會出錯?
select inet_aton(null);
select inet_aton(0);
select inet_aton('');


2017年4月20日 星期四

[CentOS]升級MySQL後,mail命令竟然出錯了

  升級mysql後,mail就寄不出去了?
send-mail: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file:
No such file or directory

2017年4月16日 星期日

[Docker]測試SQL Server Agent on Linux

  因為SQL Server vNext(CTP1.4)的docker image並沒有包含SQL Server Agent,要使用它需要手動安裝,步驟可以參考Install SQL Server on Ubuntu,因為安裝過程遇到一些錯誤,我把遭遇到的問題跟解法列出來,供大家參考

  首先啟動mssql-server-linux的container然後進入bash,查看一下process
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<Passw0rd>' -p 1433:1433 -d microsoft/mssql-server-linux
docker exec -it c1f bash
ps aux

2017年4月13日 星期四

[Docker]測試Microsoft SQL Server vNext

  以往DBA在Mac上要測試SQL Server都要用VirtualBox或是Paralles之類的虛擬機器,現在多了Docker這個選擇,那如果是Developer的話,更要用Docker,因為真的是秒裝,非常快速,本篇來介紹一下如何來測試Microsoft SQL Server vNext (CTP1.4),關於image的說明可參考microsoft/mssql-server-linux

  第一次使用可以先docker pull下載它,需要花上一段時間喔,因為image有1G多
docker pull microsoft/mssql-server-linux

  啟動就很簡單了
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<Passw0rd>' -p 1433:1433 -d microsoft/mssql-server-linux
  其中環境變數ACCEPT_EULA與SA_PASSWORD是必要的

2017年3月29日 星期三

[轉載][SQL Server][PowerShell]dbatools - best practices and instance migration module

  最近發現一個給SQL Server DBA用的Free PowerShell tools,目前有超過150個命令可用,尤其是有很多Migration Commands,真是非常方便啊

  有興趣的自己試試,網址如下
dbatools - best practices and instance migration module


2017年3月26日 星期日

來試試Docker for Mac

  在Mac及Windows下並無法直接使用Docker,必須透過Linux的VM才行,所以在Mac下通常得先安裝VM才能使用Docker,而Docker For Mac的出現,讓在Mac上使用Docker變得簡單,它內建xhyve VM,不再需要安裝額外的VM就能使用囉

  Docker For Mac的安裝檔與教學可參考Install and Run Docker for Mac,安裝很簡單就不多做說明

      安裝成功後,可以執行docker相關命令試試
  docker version