2017年2月26日 星期日

ezgo 使用者還原改寫為 systemd 系統


因為從原本的 SysV 改成 systemd,結果以前的使用者還原 script 全部要改寫。
研究了一下 systemd 的運作,終於改寫成功。

使用者還原:

產生兩個檔案:
/lib/systemd/system/multi-user.target.wants/recover_ezgo.service

內容:
[Unit]
Description=Recover user home contents #systemd service 的描述
Before=sddm.service #因為使用者家目錄的修改要在啟動 sddm 前做好,否則會出大亂子

[Service]
Type=oneshot
ExecStart=/usr/share/ezgo/recover/restore_ezgo.sh  #restore_ezgo.sh 是依據使用者選擇的帳號而產生

[Install]
WantedBy=multi-user.target


然後把它連結到 /etc/systemd/system/multi-user.target.wants/ 裡。這樣開機時就會在 sddm 執行 /usr/share/ezgo/recover/restore_ezgo.sh。

另外一個檔就是真正執行還原的,也就是 restore_ezgo.sh。裡面就是清掉家目錄的內容,再將先前備份的檔案放回去。


還原系統初始值:將家目錄整個砍掉重建,再把 /etc/skel 裡的內容放進去。
一樣放在開機時 sddm 執行前:

systemd 的部份要建立一個檔案: /lib/systemd/system/multi-user.target.wants/skel_ezgo.service

[Unit]
Description=Recover factory default for ezgo users
Before=sddm.service

[Service]
Type=oneshot
ExecStart=/usr/share/ezgo/recover/skel_ezgo.sh 

[Install]
WantedBy=multi-user.target

一樣把它連結到 /etc/systemd/system/multi-user.target.wants/ 中。這樣就能在 sddm 前執行。


2016年11月12日 星期六

debian server login 變慢的問題


已經有好一陣子,連到自己的伺服器,不管是做 sudo su - 或是用 ssh 連過去,或是用 scp 拷東西過去,都要等上十幾秒才會回應。今天去爬了文,找到原因。d-bus 有變化時,要重新執行

systemctl restart systemd-logind

就解決了

2016年10月30日 星期日

Running gcin on ezgo13 (kubuntu 16.04, qt5 問題)


雖然裝上了 gcin-qt5-immodule 但是發現 qt5 的程式一直都還是無法叫出 gcin

後來研究之後成功了
我的做法是:

1. 移除 fcitx (我不確定是否必要,但放多個輸入法在裡面反正是不會有好處) 並安裝 gcin,記得要安裝 gcin-qt5-immodule

2. 修改 /etc/default/im-config 中 IM_CONFIG_PREFERRED_RULE 把 fcitx 通通改成 gcin (我也不確定這個步驟是否必要)

3. 執行 im-config 選擇預設 default

5. 重點:/usr/share/im-config/data/26_gcin.rc 中,在 QT4_IM_MODULE=xim 下面加上一行

QT5_IM_MODULE=xim

重新登入,搞定!

不過我發現重新開機之後 KDE 第一次會無法登入,卡在 splash ,要切到 console 去重啟 sddm 才能順利登入。後來再爬了一下文,修改 /usr/bin/startkde 中
有一個決定 $qdbus 的地方,在 else 的地方
qdbus=qdbus 改成 qdbus="qdbus -qt=5"

至少剛剛重新開機有順利登入了!

2016年10月29日 星期六

pptpd server on debian


在 debian 設定 pptpd server 時,要注意除了 port 1723 要開之外,protocol gre 也要打開。

2016年10月10日 星期一

OOXML / 微軟舊封閉格式轉成 ODF -- 為何不要用微軟的 Office 來做這件事?


雖然國發會的說明會投影片中告訴大家微軟也支援 ODF,但是就幾個手上的例子,還有我跟國際社群實際接觸觀察到的現象,在此分享給大家。

先說結論:想要將微軟格式轉成 ODF,最好還是用新一點版本的 LibreOffice (5.1.x, 5.2, 5.3...) 轉出來的結果成功率較高。不要用微軟的 Office 來另存新檔。

進入正題:

1. 大約半年多前,我請目前台灣 ODF 第一把交椅的講師幫我用微軟 Office 2010,將幾個簡單到略微複雜的微軟 docx/pptx/xlsx 另存成 ODF 檔給我測試。不過當時因為國發會想要找到的是一個可以驗證 ODF 格式合法性的工具,所以我拿到這些檔案的主要目的是要測試這個:

https://odf-validator.rhcloud.com/

我拿這兩者做對照實驗:

第一組:講師給我的微軟 Office 原檔與直接另存新檔產生的 ODF 檔

https://goo.gl/qAGYlP
第二組:2016 年宜蘭縣政府 ODF 教育訓練公開招標文件,這時經過去年我們對宜蘭縣政府一年的教育訓練與工作導入輔導後,他們直接採用 LibreOffice 產生的 ODF 檔

https://goo.gl/y3vHxL

測試方式:選擇 ODF 1.2 Extended conformance 並開起 Log verbose

結果:

第二組中,LibreOffice 直接產生的 6 個檔裡有一個未通過。我以此發了一個 bug issue:

測試結果:https://goo.gl/TH80vM

而第一組中,微軟 OffiCe 存成的 ODF 則全軍覆沒,沒有一個檔案通過。
(測試結果附在壓縮檔裡)

另外有興趣的朋友可以自己用微軟 2010 或 2013 來試試看。直接拿微軟開啟微軟自己產生的 ODF,跟拿 LibreOffice 開啟微軟產生的 ODF ,結果是否有所不同。我自己沒有微軟的 Office,所以沒做過這方面測試。但講師測過,結果相信也不需要我多說。

2. 去年九月微軟台灣葉光釗技術長在 COSA 舉辦的開放系統論壇上親自承認微軟存成 ODF 時有加料。我人在現場,也有懂這方面的社群朋友在場。雖然他的投影片裡並沒有放這部份,而是只講到這裡:



實際上 ODF 並非 "provides no extensibility mechanism". 它們有一套流程,在你使用 extension 後必須與 OASIS 申請,經由數道程序的討論後,進入 ODF 標準中。這裡是 LibreOffice 目前所使用的所有 extension:

https://wiki.documentfoundation.org/Development/ODF_Implementer_Notes/List_of_LibreOffice_ODF_Extensions

舉一個比較新的例子,大家可以搜尋 Core commit 9c2a80,對此 issue 經過一番討論之後,最後投票決定接受為 RESOLVED 並進入 ODF 1.3。

至於微軟有沒有遵循這個規範?

我剪一小段我跟另一位 LibreOffice 核心開發者,也是這次推動英國政府以 ODF / LibreOffice (GovOffice) 為規範的推手 Michael Meeks 跟我的一小段對話。因為英國政府曾經下令要求微軟儲存 ODF 時必須遵循英國政府所使用的 ODF 規範(含 extension),而:

Me: (And I'm very curious, do Microsoft *really* obey this list and export only the extensions list here?)
Michael: Certainly not =)

3. ODF Committee 成員 Jos van den Oever,也是荷蘭政府在 ODF Committee 的代表,跟我討論今年 ODF Plugfest 時說,微軟每年都會參加 plugfest,但從未下海做過任何測試。
這封信的部份原文(前面是關於我參加今年 ODF plugfest 的事)如下:

At the plugfest we usually have a talks part and a testing part. At thelast plugfest we wrote a long report with interoperabilty issues [1]. Weappreciate if attendees contribute tests. You can send them to mebeforehand and I'll make sure the issues will be discussed.Ideally, we'll run the issues through our testing system. If you havesoftware which you want to have hooked up into that let me know.If you join, it would be great to have talk by you of about 20 minutesabout the status in Taiwan. 
Microsoft employees have attended a few times but usually do not join inthe the technical part and neither do employees from Apple or Google.This is a clear message from them that they do not care aboutinteropability. 
Microsoft does attend the weekly ODF standardization teleconference.They are usually simply observing. You are right to advise people to notuse MS Office for ODF. Google Docs is even worse.

再拿葉技術長的投影片來打臉一下:



可知他們對所謂的 "主動舉辦和參與 ODF interoperability" 是怎麼一回事情。

其實我在所有我所主講的說明會場合都說得很清楚,撇開預算問題不談,只要微軟能確實遵循 ODF 1.2 規範,儲存成的 ODF 檔不會造成其他軟體讀取與編輯的困擾,那麼大家使用微軟另存 ODF 是沒有關係的。這是最理想的狀況,只是目前微軟並未採取此一友善政策。

所以,目前為止,還是請大家如果有轉檔需求,請直接使用 LibreOffice(新版的當然表現會比舊版好一點),而不要採用微軟 Office 另存新檔成 ODF 的方式。

2016年9月27日 星期二

LibreOffice Conference 2016


This year LibreOffice Conference 2016 was held again (yes, again) in Brno.  I said "again" because that two years before I also went to Brno for Akademy 2014.  But Brno is a cute city (more like a town to me) and I like there very much, and this year we had three people going there together.

The scene in Praha and Brno kept making me recall my memory, like the train station and locked restrooms.



In the morning of the community workshop I planned to go to the city center around Brno train station with my partners Jeff Huang and Mark Hung.  However I met Italo in the hall of the hotel and he asked me if I would like to attend the certification meeting.  It was my honor and I was happy to, so I  kicked my partners out and attended the meeting.

Certification Meeting

In the meeting Italo mentioned that the ODF/LibreOffice migration in Taiwan is important because it proves that ODF/LibreOffice is not only suitable to European and American countries.  We also talked about some important issues like to make trainer's certification more localized, and to make sure that being a TDF member is NOT a need to apply for certification.

This year the venue was very beautiful.  Actually it is the most beautiful venue among all the conferences I have ever attended.

The venue of LibreOffice Conference 2016

In the welcome party we met friends from Japan, Naruhiko and Shinji.  But poor Naru spent some day in the hospital... Fortunately he is okay eventually.

Jeff, Mark, Shinji and Naruhiko

This year I gave two talks.  One is about the LibreOffice macros.  I told people how I found the documents and then realized that we need some more tutorials which are appropriate for newbie macro coders.

My first talk

My second talk was still about the progress of ODF/LibreOffice migration in Taiwan.  Since my presentation last year more and more city/county governments started their training courses and communication phases.

My second talk

ODF migration map in Taiwan

The most exciting thing in this conference for me was that Italo showed this slide:


Our hard work of promoting and migrating ODF in Taiwan was seen in the world.  I hope that in a few years the migration map can be all green, and the world can see that ODF and LibreOffice are the most appropriate choices.

So, I'll keep going my work on this, and wish I can give you more good news in Rome next year!


2016年9月17日 星期六

用 7za 解開 Windows 上 Big5 編碼的 zip 檔


關鍵是在使用 ppa:frol/zip-i18n 裡面,加入 libnatspec0 支援的 p7zip-full, zip & unzip


7za x -o{Directory} <zipfile>



7za x -o`kdialog --getexistingdirectory $HOME` <zipfile> 就可以先開一個對話框選擇存放目錄,再把它解出來。