JQuery不熟真的很麻煩,光是傳資料到後端就一堆要強記的

  • 傳單一資料
$.when(
  $.getJSON("yyyServlet", {"FlowID" : "doQuery"})
).done( function(returnData){
   alert(returnData)  // 不用加上[0]即可取得回傳資料
})
  • 傳多資料到多個後端
$.when(
  $.getJSON("xxxServlet", {"FlowID" : "getJsGridSelectOptions"}),
  $.getJSON("yyyServlet", {"FlowID" : "doQuery"})
).done( function(returnData1,returnData2){
  alert(returnData1[0])  // 第一個json回傳值,要加上[0]才能抓到資料
  alert(returnData2[0])  // 第二個json回傳值,要加上[0]才能抓到資料
})

人不能太貪心, 又是前端, 後端, 又是mobile app, 又是k8s,docker容器, 領域差太多,很容易忘東忘西

javascript 將form輸入的資料轉成json

function getFormDataAsJson(sFormId) {

    var form = $('#' + sFormId);
    if (form != null) {
        var json = {};

        var inputs = $('input', form);

        for (i = 0; i < inputs.length; ++i) {
            var next = inputs[i];
            var key = $(next).attr('id');
            var val = $(next).val();

            if (val != null && key != null)
                json[key] = val;
        }

        var selects = $('select', form);

        for (i = 0; i < selects.length; ++i) {
            var next = selects[i];
            var key = $(next).attr('id');
            var val = $(next).val();

            if (val != null && key != null)
                json[key] = val;
        }
        console.log(json);
        return json;
    }
}

apache poi 資料庫匯出excel,中文自動排版

多年前自己寫一個函式, 透過poi 讓資料庫的資料匯出excel, 但是無法搞定中文排版, 最後終於找到解法, 罩門如下:

sheet.setRandomAccessWindowSize(-1);
sheet.autoSizeColumn(iCurrentCol);
sheet.trackAllColumnsForAutoSizing();

有興趣的可以參考我的函式

https://github.com/WilliamFromTW/Jakarta/blob/master/src/inmethod/jakarta/excel/CreateXLSX.java

裡面的 buildExcel()

win10瀏覽器出現憑證錯誤

以前遇到chrome,光是輸入www.google.com 也能出現憑證錯誤問題,原以為是vm,或是被植入木馬之類造成的, 我一直不以為意.

後來遇到員工電腦出現問題,只好硬著頭皮問問google大神, 好險可以透過更新最新版的根憑證(root cert.)解決, 也一併解掉我之前的疑問.

  • 產生最新版憑證,
    執行 dos(run as administrator)
mkdir c:\kafeiou
certutil.exe -generateSSTFromWU C:\kafeiou\roots.sst
  • 匯入電腦本地憑證區
    執行 powershell (run as administrator)
$sstStore = ( Get-ChildItem -Path C:\kafeiou\roots.sst )
$sstStore | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root

重新跑瀏覽器試試看

windows 10 家用版轉成專業版(轉換後需重新購買授權)

,一些朋友跟我說筆電為家用版, 想升級成專業版,

我回覆說要先確認以下資訊

  • 升級成專業版需要重新購買專業版授權, 或是購買升級專業版授權

微軟有一組作為轉換用的序號, 只要輸入, 就會進行轉換工作, 轉換完畢, 再重新輸入購買的專業序號即可啟用成專業版, 用來進行轉換用序號如下(這不是真的授權序號哦)

VK7JG-NPHTM-C97JM-9MPGT-3V66T

CentOS安裝郵件紀錄分析軟體-SendmailAnalyzer

SendmailAnalyzer是老牌軟體了, 分析 maillog 製作成網站, 方便分析 , 軟體還在持續維護中呢

  • 安裝perl套件
yum install perl-CGI perl-CPAN perl-MIME-tools perl-GD*
  • github下載最新版後,安裝,設開機自動啟用
tar xzf sendmailanalyzer-x.x.tar.gz
cd sendmailanalyzer-x.x/
perl Makefile.PL LOGFILE=/var/log/maillog
make && make install
cp start_scripts/sendmailanalyzer.service /lib/systemd/system
  • 設定開機執行
systemctl enable sendmailanalyzer
systemctl start sendmailanalyzer
  • 網站設定
Alias /sareport /usr/local/sendmailanalyzer/www
<Directory /usr/local/sendmailanalyzer/www>
  Options ExecCGI
  AddHandler cgi-script .cgi
  DirectoryIndex sa_report.cgi
  #-- Apache 2.2
  #Order deny,allow
  #Deny from all
  #Allow from 192.168.1.0/24
  #-- Apache 2.4
  Require all denied
  Require ip 192.168.1.0/24
</Directory>
  • 設定cron 定期做快取 cache
    # SendmailAnalyzer log reporting daily cache
    0 1 * * * /usr/local/sendmailanalyzer/sa_cache > /dev/null 2>&1
    # On huge MTA you may want to have five minutes caching
    #*/5 * * * * /usr/local/sendmailanalyzer/sa_cache -a > /dev/null 2>&1
  • 因應logrotate會更換新的maillog, 加上更換maillog之後,重啟 SendmailAnalyzer
vi /etc/logrotate.d/syslog

################
systemctl restart sendmailanalyzer > /dev/null 2>&1 || true
################

這樣就可以透過瀏覽器查看狀態 http(s)://x.x.x.x/sareport/

restic 常用指令

使用情境是依不同系統 , 建立多個備份倉, 一個倉別若要備份不同目錄, 可用tag區分.

備份倉盡量用簡單的方式, 當然也可以掛載sftp ,或是 rclone.

要備份的目錄, 盡量用掛載的, 變成一個目錄, rclone是個好選擇

備份後,執行保留策略(7天或是30天), 備份可以從目錄, 也可以從stdin ,

還原就比較沒甚麼好談的

至於密碼, 我覺得用環境變數就好了, 用檔案存密碼, 我覺得指令看起來好複雜

  • 建立備份倉
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> init
  • 備份
#Linux
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> backup <想要備份的目錄>  --cleanup-cache --verbose --verbose >> restic.log 2>&1

#windows powershell
$Env:RESTIC_PASSWORD='password'
restic -r <備份倉目錄> backup <想要備份的目錄> | Out-File C:\temp\files.log -Encoding UTF8
  • 備份(mysql資料庫)
export RESTIC_PASSWORD=123456
mysqldump -u root -p<密碼>  --all-databases -h <主機ip> |  restic --repo <備份倉目錄> backup --stdin --stdin-filename all.sql
  • tag 以上備份可以加上tag區分不同目錄, tag 名稱可以一樣
restic -r <備份倉目錄> backup <想要備份的目錄> --tag:名稱  --cleanup-cache --verbose --verbose >> restic.log 2>&1
  • 查看備份
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> snapshots
  • 還原指定的snap
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> restore <snapshots id> --target <要還原的目錄>
  • 備份完畢,刪除過多的備份
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> forget --prune --keep-daily 7
restic -r <備份倉目錄> forget --prune --keep-last 7
1 ... 20 21 22 23 24 ... 77