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 , 更改預設值安裝的設定

編譯 NDC(國發會) ODF 文件工具v2

*** NDC最新下載檔案 可到這裡 https://free.nchc.org.tw/ndc.odf/

NDC的 ODF 文件工具, 核心是 libreoffice 與晟鑫科技oxoffice , 經過修改後, 適合大中華使用者使用, 格式上更相容中文文件,

但是有一個嚴重問題, 就是執行程式的時候, 會跳出國發會LOGO , 還有各式各樣的說明, 會導到國發會網站,

挖哩, 這樣我怎拿到中國使用.

先講投機取巧方式, IT 安裝後, 將logo取代掉, 需要取代的據我所知至少有兩個 intro.png flat_logo.svg,

因我自己使用linux , 並沒有linux ubuntu版本, 寫信詢問, 大概就是資源不足(我猜是沒預算, 或是沒幾人用linux), 所以不提供, 但是很打臉的是, NDC有提供web版 , 而web版的作業系統是linux (centos 7).

於是自己嘗試編譯, 真的很麻煩, 失敗了很多次, 也搞不清楚問題在哪, 有時候會成功, 所以把可能的解法寫下來

https://github.com/NDCODF/NDC_ODF_Application_Tools-v2

git clone https://github.com/NDCODF/NDC_ODF_Application_Tools-v2.git
cd NDC_ODF_Application_Tools-v2
git submodule update --init dictionaries
git submodule update --init translations

Windows(win7+visualstudio 2017): 
./autogen.sh --disable-dependency-tracking --without-help --with-userdirproduct-version=6 --with-aboutbox-version=6 --with-product-name=NDCODFApplicationTools

編譯的時候一直遇到 versioninfo no such file 的問題, 可參考以下解法
https://git.libreofficechina.org/core/commit/?h=libreoffice-7-1&id=3589180bfa67bc2ef411a56c9e8bb161f6c59902

/opt/lo/bin/make build-nocheck
/opt/lo/bin/make vs2017-ide-integration 
(這部份因為我vm的vs 2017居然會當掉, 所以不測試了,反正本來就有windows版本) 

Linux(ubuntu 16.04) :
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base0.10-dev
sudo apt-get install qt4-dev-tools qtcreator qt4-qtconfig
sudo apt-get install libkde4* kde4* 
sudo apt-get install -y libavahi-client-dev

./autogen.sh --with-distro=LibreOfficeLinux --with-package-format="deb" --enable-epm --without-help --disable-gtk --with-userdirproduct-version=6.2 --with-aboutbox-version=6.2 --with-lang="en-US zh-TW" --with-product-name=NDCODFApplicationTools --without-junit
autogen設定完成之後, 請編輯 ./instsetoo_native/util/openoffice.lst , 確認所有的版本都是6.2, 若出現6.2.2.1之類的, 要改成6.2

make build-nocheck
編譯完成,會有一堆deb放到 workdir\install..... 裡面 , 可使用dpkg --force-all -i *.deb 強制安裝,
** ./instsetoo_native/util/openoffice.lst 


太開心了, 終於在ubuntu 16.04 vm 編譯成功, 也在ubuntu 20.04安裝起來使用了

下載Linux version NDC ODF Office 6.2 :

NDC ODF Application V2 (6.2)

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