The Taiwan government has launched the new Public Warning System to warn cell phone subscribers the happening emergency. There are a few integration need to be done to support PWS on Ubuntu phone.

  1. rild from Android.
  2. ofono to dbus.
  3. User interface to handle the dbus event.

ofono supports the CBS/PWS[1] long time ago. There are a few TODOs to support the PWS

  • Make sure the rild can receive and pass the Cell Broadcast Service (CBS) to ofono
  • Need a userspace program to handle the Emergency Broadcast from dbus.

References:

[1] 國家通訊傳播委員會_災防告警系統(PWS)介紹 – http://www.ncc.gov.tw/chinese/gradation.aspx?site_content_sn=3744
[2] ofono/ofono.git – Open Source Telephony – http://git.kernel.org/cgit/network/ofono/ofono.git/tree/src/cbs.c#n100
[3] PWS specs

The post is based on engineering note.

原文發表於: http://www.weibo.com/p/1001603847877410613709

这问题从 2012年2月前开始, Canonical 聘顾 Jonathan Riddell 全职进行 Kubuntu 项目。2012 后由于无商业客户采用,于是停止官方支持,Jonathan 不愿做新项目,加入新公司 Blue Systems 后继续运营 Kubuntu 社区项目。Canonical 仍将他视为 Kubuntu 项目领导,相对于其他社区版本一视同仁提供相关资源,这包含运算资源等等软件基础建设、差旅补助、活动补助、社区纪念品等。

但是自从一 两年前,Jonathan 对于各种 Canonical 的各种不满加深了沟通上的歧见。像是明文规定的补助项目,他希望可以改善先吃 Pizza 后报帐(2)的程序,Ubuntu 社区联系人明确回应了处理方式与流程。即便这个问题应该到正确的社区列表上讨论,但是他却在无关但是更多开发者关注的 ubuntu-devel 提出,企图引起注意。更别说后来再次否认 Ubuntu 社区联系人提供了餐费补助(3)。

这些重要议题的歧见演化出拒绝合作的行为。各种情绪上不满,让他开始到处找 Canonical 的可疑问题,发布了数个不同的质疑,包含了法律(5)、财务(6)、社区治理办法等等。许多质疑都是相当重要且有建设性,问题是他拒绝接受合作。

从社区委员会通知信中指出

  • 拒绝接受社区理事会研究的结果,虽然他就是当初要求调查的人。
  • 只要不顺心就公开私下讨论邮件。
  • 刻意扭曲对人的说法与立场。
  • 指控其他社区成员不诚实公正。
  • 指控社区理事会冷漠处理。无视整个团队花了许多时间与精力处理他的问题。
  • 在公开或私下沟通中,恶意的对待的社区理事会与 Canonical
  • 以他的领导角色的身份造成社区分歧,而非促成社区合作。

许 多事项都可以在公开的邮件列表看到讨论与他的行为。此处不再列举,研究了这几个月的数个讨论串、长达几百封信的争论。从个人观点看来,这完全符合笔者七年 前写的文章「来乱者去死」(1) 的各种特质。在这种处境下,他已经有建设性无法领导社区。而这个处置是请 Kubuntu 提名另外一位更善于协调沟通的领导,并保留 Jonathan Riddell 其他社区开发者的权限,他仍可提交、评论、继续提出质疑。

这 些离题的纷争困扰社区发者,而非实际的推进项目。当然,最后的处理方式十分令人不快,移除社区抬头的作法也相当伤人。但是目的是 Jonathan 可以继续纠结,但是社区可以不用分心而继续走下去。至于关于 Kubuntu 的社区委员会中的政治与利益问题,可见 Ken Vermette 的分析(7)。

欢迎讨论 Jonathan 的各种指控,包含法律、财务问题等。但是恕我不回应未先爬文的一行仇恨文。授权等问题后续再逐一回应。

利益揭露: 本人任职于 Canonical 担任 Commercial Engineering 部门 Technical Architect.

参考资料

已經連續兩年都只用 Ubuntu/Firefox 申報稅務,雖然界面醜陋,使用經驗很糟糕。但是財政部算是努力支援不同的作業系統,今年甚至開始支援 Android Tablet 版本的電子申報程式

在 Linux/MacOS 上,你可以用網頁 Java Applet 版本的綜合所得稅電子結算申報繳稅系統網站 進行結算申報,這個系統大部分都是以 Java 完成,跨平台相容性頗佳。但如果你需要使用自然人憑證登入,需要額外安裝中華電信自然人憑證用戶端元件,這個元件使用 Native extension,跟往年一樣,只有支援 x86 版本。

根據 Ubuntu Popularity Contest 統計資料,amd64 (64 bit) 的使用者已經超越 i386 (32 bit)  使用者了。只支援 x86 ,代表使用者必須重新安裝一個新的作業系統才能正確執行自然人憑證用戶端元件。

去年,為了自然人憑證用戶端元件只支援 amd64 以及版次只支援舊版 Firefox,我發了信聯絡 HiPKI客服中心以及 關貿網路電子申報繳稅客服中心,收到兩封郵件

HiPKI客服中心: 關於綜合所得稅電子結算申報繳稅系統是由財政部委託關貿網路股份有限公司製作,若有使用上之建議請向財政部反應。

關貿網路電子申報繳稅客服中心: 客服中心已記錄您的建議事項,並反應給技術團隊,若造成您的困擾,敬請見諒!

 

沒有解決方案,最後是自己硬升級一包 Firefox extension 解決版次問題。至於 i386 只好建一個新的 Ubuntu 來安裝了。 希望來年可以直接支援 amd64 版本。另外今年的 irc.jar 裡面沒有不小心放進去的 .java.bak 檔案了。 (茶)

sbuild

在 amd64 環境安裝一個新的 i386 Ubuntu 有很多種方法,基本的工具是 debootstrap。 在 Ubuntu/Debian 中有不少工具可以協助你建立環境。我習慣用 sbuild / schroot ,這兩套平常當作編譯環境,但是借來快速建立 chroot 也非常方便。

最快速的方法,是用 mk-sbuild 設定一個新的環境,以下例子為建立一個 i386 的 trusty (14.04 LTS) Ubuntu chroot.

apt-get install schroot sbuild ubuntu-dev-tools pcscd
SCHROOT_PROFILE=default mk-sbuild --arch=i386 --debootstrap-include=firefox,fonts-unfonts-core,fonts-droid,openjdk-7-jre,icedtea-7-plugin --distro ubuntu trusty

完成之後,你可以用 schroot -l 來列出有哪些 chroot

$ schroot -l
chroot:trusty-i386
source:trusty-i386

接下來你需要更改預設的 profile 設定,檔案在 /etc/schroot/default/fstab 。請加入以下兩行,這是讓你在 schroot 中可以存取原系統中的檔案。其中 /var/run/pcscd 是 pcscd 的目錄,是系統用來接取自然人憑證用的。

/home        /home        none    rw,bind        0    0
/var/run/pcscd    /var/run/pcscd    none    rw,bind 0 0

注意 schroot -l 出現兩個名稱。你若使用 chroot:trusty-i386,系統會用 LVM snapshots 或 unions 建立一個暫時的環境,所有的改變都會在登出後遺失。所以你若需要更改 schroot 中安裝的的程式,請使用 source:trusty-i386.

sudo schroot -u root -c source:trusty-i386

若是一般使用者用途,則只需要

schroot -c chroot:trusty-i386

接下來即可執行 Firefox, 由於我們在兩個不同的系統間共用家目錄。我建議另外開一個專門的 Profile ,事後會比較容易清理。

DISPLAY=:0.0 firefox -no-remote -ProfileManager

接下來你就有一個在 i386 中執行的 Firefox 可以使用了。

這篇文章使用的軟體版本為


Ubuntu 14.04
debootstrap    1.0.59ubuntu0.1
firefox    29.0+build1-0ubuntu0.14.04.2
pcscd    1.8.10-1ubuntu1
sbuild    0.64.1-1ubuntu4
schroot    1.6.8-1ubuntu1
ubuntu-dev-tools    0.153

延伸閱讀

養了很多 Debian/Ubuntu 機器時,時常得利用 apt 大量更新軟體。最常見的需求是 Security updates,所有伺服器都會抓取同一份軟體,機器量一大用掉的頻寬也很可觀。為了省下這些頻寬,得在伺服器區域網路設定一組快取伺服器,讓全區域網路下載一次。

有得人會自己建一份 archive mirror.

但是 Debian/Ubuntu 套件眾多,全部映射一份實在很費空間。我個人偏好只快取曾經抓過得檔案。

Debian/Ubuntu 中已經有幾個選項可用
approx – caching proxy server for Debian archive files
apt-cacher – Caching proxy for Debian package and source files
apt-cacher-ng – caching proxy server for software repositories
apt-p2p – apt helper for peer-to-peer downloads of Debian packages
debtorrent – bittorrent proxy for downloading Debian packages
apt-transport-debtorrent – an APT transport for communicating with DebTorrent
squid-deb-proxy – Squid proxy configuration to optimize package downloads
squid-deb-proxy-client – Automatic proxy discovery for apt based on avahi

其中 apt-p2p 與 debtorrent / apt-transport-debtorrent 是大約 2006-2008 年 p2p 技術熱門時的嘗試。而 debtorrent 直接利用 bittorrent 協定,而 apt-p2p 使用 kademlia DHT 協定來處理分散檔案,需要安裝 Twisted. 兩個概念都很有趣,但是我並不想在每台機器上架設 p2p server,純粹只是需要供應新的安裝檔案。

個人評估之後,選了 apt-cacher-ng. 設定簡便,apt-get 安裝完即可用,不相依於其他網站伺服軟體。還有簡易的管理界面可以看快取效率唷!

由於它基本上是個 http proxy,所以你可以用 transparent proxy 來導引所有的下載,或者在 /etc/apt/apt.conf.d/90aptcacher-ng 加入以下設定即可。
Acquire::http { Proxy "http://10.11.11.254:3142"; };

除了可以透過預設網頁來看快取狀態,也可以在 console 跑 /usr/lib/apt-cacher-ng/distkill.pl 來看硬碟上佔用了多少空間。

References

AptProxyCache – Ubuntu Wiki https://wiki.ubuntu.com/AptProxyCache

apt-cacher-ng

apt-cacher

approx

DebTorrent

apt-p2p

AptProxy

利用 COSCUP 2013 的會後時間,舉辦 Key signing party[1][2]!

由於開放原碼社羣十分分散,難得有機會面對面,為了方便合作以及增強遠距聯絡的可靠性,我們可以利用實體聚會的機會交換並簽署 PGP 金鑰,以建立 Web of Trust[3]。這組金鑰除了便利確認身份,也可於通訊中加密訊息,避免各國官方政府日漸加強的網絡監視。

參加活動

產生一組 RSA 4096 bits 以上的金鑰[4],並將該金鑰送到 pgp.mit.edu.
請在 8/2 日前於表單[5]中提供你的電子郵件 (UID)、Fingerprint. 請你於 8/3 準時到達現場,並攜帶可信賴的有照證件以及一枝筆。

報名網址: http://bit.ly/16r2qJc

活動時間

請於 2013/08/03 第一日最後一場演講 17:20 結束後,於一樓東大門大廳 (鳳凰雕塑) 會面。
請跟主持人索取金鑰列表,檢查你的個人資訊,並依照對照表的次序排成隊伍。

其他注意事項

請勿簽署你未曾謀面的人的金鑰,請仔細檢查對方的身份證件以及個人簽章後才正式簽署。
請勿攜帶電腦於現場進行簽署。

此活動非 COSCUP 團隊發起,請聯絡主辦人: Rex Tsai

[1] https://en.wikipedia.org/wiki/Key_signing_party
[2] http://linuxreviews.org/howtos/gnupg/signingparty/
[3] https://en.wikipedia.org/wiki/Web_of_trust
[4] http://wiki.debian.org/Keysigning
[5] http://bit.ly/16r2qJc

你需要一個基本的 mail server 來處理一些系統上的通知信件,但是又不想裝上複雜的 postfix 或 sendmail. 這時可以用 nullmailer,它的功能十分簡單陽春,不聽 port 25, 連基本的 newaliases 都沒有。
設定檔就 10 個,每個設定檔只有一行。

control file used by
adminaddr nullmailer-queue
defaultdomain nullmailer-inject
defaulthost nullmailer-inject
helohost nullmailer-send
idhost nullmailer-inject
me nullmailer-inject
pausetime nullmailer-send
remotes nullmailer-send
sendtimeout nullmailer-send

基本上,最重要的是 remotes,讓你設定 smarthost 位址。支援的 smarthost protocols 有 smtp, qmqp。常見的 smtp 也支援 SSL,以 gmail 為例子,你可以這樣設定

cat > /etc/nullmailer/remotes
smtp.gmail.com smtp --port=587 --starttls --[email protected] --pass=password

你也可以透過 dpkg-reconfigure nullmailer 來設定。其他的 smtp 參數有

/usr/lib/nullmailer/smtp -h
usage: smtp [flags] remote-address < mail-file
Send an email message via SMTP
-p, --port=INT Set the port number on the remote host to connect to
--user=VALUE Set the user name for authentication
--pass=VALUE Set the password for authentication
-d, --daemon use syslog exclusively
-s, --syslog use syslog additionally
--auth-login Use AUTH LOGIN instead of auto-detecting in SMTP
--ssl Connect using SSL (on an alternate port by default)
--starttls Use STARTTLS command
--x509certfile=VALUE Client certificate file
--x509cafile=VALUE Certificate authority trust file
(Defaults to /etc/ssl/certs/ca-certificates.crt)
--x509crlfile=VALUE Certificate revocation list file
--x509fmtder X.509 files are in DER format
(Defaults to PEM format)
--insecure Don't abort if server certificate fails validation

-h, --help Display this help and exit

(以上指令測試於 Ubuntu 13.04, raring)