上班打卡鐘資料格式轉換(java 8)

導入新系統最麻煩的就是: 新舊系統並行,

舊的考勤導出文件只有一種格式, 因此新系統必須能夠讀懂舊文件, 再導進新系統,

若無法讀取, 或是舊版打卡有缺陷, 例如2021沒有20,只有21, 那必須寫轉資料程式, 加上20, 反正就是把一份純文字, 再加工轉成另一份純文字文件.

JAVA 文件範例如下,請自行加工:

android取得藍芽裝置連線狀態

Java

public static boolean isConnected(BluetoothDevice device) {
    try {
        Method m = device.getClass().getMethod("isConnected", (Class[]) null);
        boolean connected = (boolean) m.invoke(device, (Object[]) null);
        return connected;
    } catch (Exception e) {
        throw new IllegalStateException(e);
    }
}

Kotlin

fun isConnected(device: BluetoothDevice): Boolean {
  return try {
    val m: Method = device.javaClass.getMethod("isConnected")
    m.invoke(device) as Boolean
  } catch (e: Exception) {
    throw IllegalStateException(e)
  }
}

運作中AD Server,vm操作不當被刪,還原後悲哀結局

運作中網域伺服器(AD Server), 因操作不當其vm被刪除, 剛好兩天前有snapshot, 於是還原起來, 乍看之下運作正常, 其實是失敗.

因內網有兩個AD, 被刪除AD的資料早已跟另一台同步,因此回朔兩天前AD, 其資料也是異常的, 間接造成各式各樣,依賴網域認證的系統, 跟著異常, 好慘.


原本想說來個強制重新同步,將還原的AD,強制從正常的AD同步回來, 但是怕怕的, 還是決定刪了就刪了,也不還原, 再另外安裝一台AD重新同步吧.


postfix ldap測試/查詢帳號是否存在

postfix 很常見搭配微軟的AD , AD的設定檔長這樣, 檔案名稱為 xxx.cf

server_host = <AD server IP>
search_base = ou=xx,dc=yyy,dc=com
version = 3
query_filter = (&(objectclass=*)(mail=%s))
result_attribute = samaccountname  #Account from DC
result_format = %s/Maildir/
bind = yes
bind_dn = cn=zzz,cn=Users,dc=yyy,dc=com
bind_pw = password

配合以下指令,可以用來查詢email對應的帳號是否正確

postmap -q  abc@yyy.com ldap:/directory/xxx.cf

這樣就可以測試帳號是否存在了

Linux 安裝字型

以前一直覺得字型不重要, 直到改用免費office之後, 才發現非常重要啊

因此沒事要收集必要的字型檔案(ttf, ttc) , github 上面也有一些可以收集的.

收集完畢, 在linux上建立自己的font目錄

mkdir ~/.fonts
然後複製ttf, ttc到 .font目錄
最後執行
fc-cache -fv

重開機應該就可以了

除此之外, 還要安裝相關字型套件

將msi 檔全部解開,更改裡面檔案,重新轉回msi檔

  1. 解開msi檔案
msiexec /a c:\xxx.msi /qb TARGETDIR=c:\temp\test

確認xxx.msi 也在TARGETDIR(目標目錄) 裡面, 並且取代想要取代的檔案.

2. 安裝免費版 InstEd (msi editor) ,

3. 使用InstEd編輯在TARGETDIR裡面的xxx.msi檔案 , 重新 rebuild selected CABs , 關閉時會問說是否儲存, 存起來就可以了

** actually , this isn’t work

4. 使用InstEd 編輯時, 也可以找到 Feature , 更改預設值安裝的設定

1 ... 16 17 18 19 20 ... 57