2016/02/29

vim 下移除重複的行

在讓電腦列出1了一份所內含的中文字體清單之後,發現有些重複的內容,因此想要將重複的行去除,並稍微排列一下。於是上網找在 Vim 下操作的方法。

以下的內容是 google 到一份2004年在 Vim Wikia 上的文章2,實作並修正過後的內容。


先排序


:sort
這個指令會先將檔案內容進行排序。若不先排序,以下的指令都没有用。

查找相同內容的行


接下來則是要在排序過後的內容中找出內容重複的前後行。

/^\(.\+\)$\n\1

排列後的搜尋結果

這個指令,可以查到多個排序過了的、內容一模一樣的前後行,不只是兩個內容相同的行而已。但它原本的意思是查找前後相鄰兩行的內容是否相同。

移除重複內容的行


確認(按 n)過查找的東西没錯之後,就可以逕行刪除。

:g/^\(.\+\)$\n\1/d

但是,這個指令有點小問題。因為排列的時候,比較短的行會排在前面內容一樣,而後面還有多出一些內容的行的前面;使用這個命令,會使得短的那行被刪除掉。因為這個指令的結果是刪除前面重複行而保留後面的那行。

短的相同行被刪除

所以,$ 應該排在替換指令 (d) 前面,而非換行符 (\n) 前方。當然,在查找的過程中,$ 的前後位置應該没什麼差異。 

為了避免遺憾,必須要用以下的命令來操作:

:g/^\(.\+\)\n\1$/d
或是
:g/\%\(^\1\n\)\@<=\(.\+\)$/d

短的相同行没被刪除

後者不同的地方在於刪除後面比對過的重複行,而保留最前面的那一行。

Vim Wikia 還提供了一個描述中非常神奇的指令,它省略了 a@<=b 模式中部分的反斜線:

:g/\v%(^\1\n)@<=(.*)$/d

最後有個小問題,在 Vim Wikia 文章中所用的指令,實際上是

:g/\%(^\1\n\)\@<=\(.*\)$/d

在百分號之後的小括號前未加反斜線 (blackslash,\),在我的 Mac OS X 中,Vim 竟然會跳出警告訊息:

:Unmatched \%(
:Invalid command

所以,我只得讓 \%( 變成 \%\( 好讓指令運作正常。

[補充]
- 20160309:修飾語句,增加指令意思的說明。

  1. fc-list -f "%{family}\n" :lang=zh > output-file.txt 
  2. http://vim.wikia.com/wiki/Uniq_-_Removing_duplicate_lines。 

2015/12/23

Francesca 四度唱 Forza Gesù 以及 Antoniano 小合唱團將抵上海跨年演唱

==
更新
—20160626—
新增 YouTube 全程內容;中國優酷上的全程影片內容己被移除。
==

Piccolo Coro “Mariele Ventre” dell'Antoniano(安東尼亞諾兒童合唱團),今年 (2015) 12月13日於西西里島古城 Syracuse 舉辦的聖露西亞節音樂會(Festa di Santa Lucia (Siracusa))上獻唱。中國粉絲有全程影片:http://v.youku.com/v_show/id_XMTQxMjY1MTQzMg==.html。YouTube 上有全程影片可以看:https://www.youtube.com/watch?v=79S8ULwEkdw。

昔日唱了三個版本耶穌加油的 Francesca Z.,在這次音樂會上也再度上樑,呃,是擔大樑再度演繹 Forza Gesù。

Santa Lucia 節日紀念音樂會

Francesca Z. 第四度演唱 Forza Gesù

2015/06/30

我所聽過的義大利國歌——Inno d'Italia

第一次聽到義大利國歌,應該是在觀看世界盃兩隊交鋒前的相互致意,當時只覺這弦律不錯,再來就是大球場上聽到眾人齊唱的滂渤氣浪實在震撼。在注意到義大利著名的兒童合唱團 Piccolo Coro dell'Antoniano(安東尼亞諾小合唱團,於1963年成立)之後,便透過網路看到他們為了2012年倫敦奧運宣傳,和 Sky(天空)衛星電視台合作錄製的義大利國歌;2006年冬季奧運在義大利舉辦時的一個小女孩版本;2000年由小合唱團和歌手合作推出的完整版;其他還有許多大大小小的、單人的、合唱的或是純器樂的版本。最近則是義大利各區足球隊資格賽中,Bologna 和 Pescara 在2015年06月09日爭奪晉級資格賽的開場,小合團也受邀開唱義大利國歌。最後就是本文將會描述得最多的主角,2015萬國博覽會 (EXPO 2015) 在義大利米蘭開幕時的合唱版本。
2015米蘭世博會開場義大利國歌演唱
2015米蘭世博會開場義大利國歌演唱

義大利國歌簡介


根據維基百科上的說明,詞是義大利廢君主制建立共和國 (1946) 之前一百年 (1847),時年二十歲的學生 Goffredo Mameli(馬梅利)撰寫詩歌以詠讚義大利 (Inno d'Italia),曲子則是由 Michele Novaro 於兩個月後所譜,又稱馬梅利之歌 (Inno di Mameli),或者是義大利弟兄們 (Fratelli d'Italia),而義大義文的 Inno d'Italia,我比較傾向於翻譯成詠讚義大利或義大利讚誦曲。當時的義大利正處於統一(因為又分裂了)和獨立(欲脫離其他勢力的掌控)的混亂期,這個為義大利誦讚的曲子流傳了十幾年,但曾一度為另一首曲子所取代,直到二次大戰後正式成為義大利國歌。

歌曲有五段(據說是五段,但看了英文版,它似乎有六段詞),一般在演唱時都只唱前兩段,會重覆,但旋律會變化;第一段通常是獨唱,在第二段之後才是合唱。我其實還滿喜歡那個旋律的轉換,尤其是聽到足球場上由人聲和(hè/ㄏㄜˋ)出來兩段之間的旋律,比一般自已哼歌時『登登登/幫幫幫』的歡樂度還高,參考影片 Italia Scozia,完全蓋掉軍樂隊的聲音,影片 Chiara 是2015年義大利盃決賽開場,Chiara 不曉得在喘什麼(另有同一場,觀眾角度的影片);這兩部(或者其他的也是)影片的球迷都没能夠合拍,但中間的『登登登』真的很歡樂。

2015/05/31

ImageJ 測定膠體電泳距離的 Macros - MolWt

前言:

以前在實驗室跑電泳時,雖然聽過有軟體可以計算出,在膠體電泳之後目標片段的距離,但我一直没有親自了解過,一是因為用不到,二則是因為用不到,三還是因為用不到。直到 PTT 上有網友詢問使用 MolWt 巨集 (Macros) 時發生問題的解法後,才想試著使用看看。由於該巨集有附說明,因此可以按步驟一步一步來。但問題也就發生在明明按著步驟來,卻無法得到結果而卡關。後來,研究了一個晚上之後,才試出了解決方法。不過,這個解決方法可能並不適用於其他操作環境,使用時得稍稍微調一下。而經過和 PTT 網友的討論發現,他的問題和我的問題也不盡相同,但是可以相互參照調整。
以下,便試著按照說明文件的步驟一一來進行,並附上可能碰到的問題和可行的解決方案。因為整個操作步驟其實很簡單,只是說明上複雜囉唆了些。下文中是以 DNA 電泳為例,但是拿 protein 電泳的圖來分析也是可行的。

步驟:

I.準備

要準備好軟體 ImageJ、欲分析的膠體電泳圖檔案以及 ImageJ 的巨集,同時也是本文的主角,MolWt
ImageJ 目前最新版本是 1.49s,可以從 ImageJ 的官方網站 (http://imagej.nih.gov/ij/) 下載。但網站給的似乎只到 1.48 版;我是使用 ImageJ 的檢查更新並自動下載安裝功能,所以目前才會使用到 1.49s 版。ImageJ 在各平台有版本差異,安裝時需要注意;其中也有跨平台版本可用;它需要 Java 才能運行。下圖是我的使用環境:
Mac OS X (10.10.3 Yosemite)
Java 1.6.0_65 (64-bit)
ImageJ 1.49s
ImageJ 版本
PTT 網友的操作環境是 Windows 7 (64-bit),ImageJ 版本為 1.48v。後來改升到 1.49s 並按照操作說明進行之後,之前碰到的問題似乎都解決了。
MolWt 似乎是某家德國電泳和顯像儀器廠商所寫下的 ImageJ 巨集,目前並未被收錄在 ImageJ 的預設巨集中,也未收錄在 ImageJ 官網上的的巨集列表裡。可以從廠商的網站 (http://www.phase-hl.com/imagej.htm) 下載。這網站非常陽春,別被嚇到了。另外,巨集的說明文件也最好一併下載了,是PDF (http://www.phase-hl.com/ImageJ/MolWt-Macros.pdf) 檔。

2015/04/29

Forza Gesù 和 Francesca Z.

  • Francesca 是一位非常可愛的義大利小女孩,在她所屬的兒童合唱團中領唱了很多首曲子。
  • Forza Gesù 是一首在2010年參與義大利第53屆『金幣』國際兒童歌曲比賽的曲子。

前言

想寫這一篇文章已經很久了,但一直没能完成。這次是因為 YouTube 上終於有網友(MyHartsock)分享了 Francesca 第三次領唱 Forza Gesù 的影片(請看下文),才決定完成它。

第一次聽到 Francesca 領唱 Forza Gesù(耶穌加油),是在2012年。當時,似乎是正和實驗室學妹聊到音樂,然後她把在 Facebook 上聽到的這首曲子介紹給我聽。記得,當下給我的感覺是,没想到這種幾乎是純自然唱法的兒童合唱團能把歌唱到人的心裡去了,加上年方四歲 五歲 的 Francesca 那特別可愛又不做作的表情、那比一般幼兒還要好很多的音感 i、那和張大的嘴巴差不多大的左耳、那一雙萌萌的大眼睛、那一頭偏金色的頭髮,還有中譯歌詞中令人感覺驚艷的、從不同於大人角度看待耶穌的內容——總之感覺很複雜。也因此讓我一頭鑽入了挖掘有關這個兒童合唱團的不歸路上,成為 Piccolo Coro “Mariele Ventre” dell'Antoniano di Bolonga——以下簡稱『小合唱團』ii——的擁躉之一。當然,也是 Francesca Z.iii 和其他出色小領唱的眾多粉絲之一。



對 Francesca 的第一眼印象

有關這個合唱團和金幣賽,要介紹的東西很多,等以後有空會再詳述。若看得懂義大利文,可以到官網查詢(Antoniano di Bolonga http://www.antoniano.it/ 和 Zecchino d'Oro http://www.zecchinodoro.org/),不過我猜想,熟悉義大利語的人,應該多多少少都有聽說過這個不凡的兒童合唱團。而且,中國粉絲也是很多,在優酷(http://i.youku.com/lucepiccolocoro)、百度百科( http://baike.baidu.com/view/7171042.htm?fromtitle=Antoniano小合唱团&fromid=9690107&type=syn)和百度貼吧(http://tieba.baidu.com/f?kw=antoniano小合唱团&ie=utf-8)上也有相關介紹,資訊焦慮患者可以先行參考解癮。


2015/04/12

ExpressCard/34-USB 3.0 on Mac OS X Yosemite

前言


我有一臺配置了 ExpressCard/34 插槽的 MacBook Pro,這種機型似乎在2012 年之後就消失了,因為 Apple 總是想引領風潮,一邊試新東西,一邊放棄他們認為的舊東西。這個事實讓我非常頭痛,因為想要升級電腦硬體就變得代價更高了。但不管怎麼說,我對升級電腦部分硬體的興趣比整臺換新要大許多,加上還未有這臺筆電處理不了的高級要求,所以目前還是樂在其中地使用著貨齡將達九年,依然老驥伏櫪的同時也堪稱老當益壯的『舊貨』。

由於我有許多電腦週邊設備,但又不想用原來的 USB 孔衍生出更多的 USB 孔,只想要物盡其用地用掉 ExpressCard/34 插槽,也不想加裝其他電源,因此冒險購買並使用 ExpressCard 轉 USB 3.0 的擴充卡來用。貨是登昌恆的 Upteck UTE222 USB 3.0 隱形擴充卡,在光華商場紐頓電子的店鋪購買到,個人感覺有點貴,但比起我設想過的其他方案似乎又好多了。旁邊的優仕蘋果專賣店小伙對 ExpressCard-USB 擴充卡似乎非常陌生;燦坤和順發,一個一邊說没賣,一邊用欣賞恐龍時代生物的眼光看著我,另一個說没現貨;至於其他光華新天地賣鋪也都没有這種東西。爬了網路後看到一些論壇上的網友在2010年就提到一堆內建 Windows 系統的筆電,大多没有 ExpressCard 擴充槽的存在了。想來,在2015年被看做是恐龍也是能理解的一件事。但是我心理上無法接受啊。

登昌恆只提供了給 Windows 系統的 drivers,而網路上其他廠牌大多也是 Windows-only 的 drivers。幸好有人製作了 GenericUSBXHCI.kext,號稱是大多數 ExpressCard/34-USB3.0 擴充卡的通用 driver,其中還有給 Mac OS X Yosemite 的版本。雖然使用轉接卡的網友們大多使用2009年到2011年的 MacBook Pro 電腦,但我懷著僥倖的心思想著,2007年的應該也適用吧。印象中,很多程式都能向下相容以前的硬體裝置。


2015/03/25

ClustrMaps 掛了 得重新計數

ClustrMaps 在最近一直無法正常連線顯示計數資料,原來是網站備份救不回來。

ClustrMaps 官方部落格 (http://blog.clustrmaps.com/) 也在今天貼上了最新訊息,表示:「我們再也回不去了……」

ClustrMaps 官方部落格公告

從2008年開始計數到現在,大約快八年了吧,在我的部落格右側欄,一直有個全世界的地圖在提醒著我,這經營得不穩的部落落,雖然是中文內容,但其他地方誤闖進來的人也不少。起碼還部分標示著點人氣,讓我的網路虛榮心得以生存。没想到,一切,這虛胖的虛榮,在今天全部歸零……

2015/03/09

Citation on Word/Office for Mac 2016 (preview release)

==
重要訊息更新(20150617):
Papers 3.app 的最新更新版本 (ver. 3.2.10),已經開始支援 Microsoft Word 2016 Preview。詳細內容請參考 Papers 3 官網於六月八日的 Release Note
但是 Papers 2.x 依然無解。也不曉得會不會針對這個問題做出更新。
==

本篇內容主要是描述 Papers 2.7.3 以及 Zotero 4.0.26.1 在新版 Word 的使用情況。

新版 Word

這是微軟今年的大作之一。對於長期使用 Writer (LibreOffice) 兼偶爾使用 Pages (iWorks) 的我來說,Word (Office for Mac 2016) 本來不在我的考慮之內。除了它依舊不支援 ODF 格式的檔案之外,另一個反感的原因是 Office for Mac 2011 的難用和龜速,這些方面的討論和抱怨極多,我也不多說了。 

至於這一次為何會想到要試用,一方面是因為微軟號稱這新版本和 Windows 版本之間將會無縫接軌,桌面和行動應用相容性也會大為提高,不再發生格式上的差異之外,另外一點就是從每個 Preview 版本發佈後可以使用 60 天,且會自動更新,一直到下半年釋出正式版後的一個月內都可以免費使用[1],這其實挺有誠意的。加上使用 OneNote 也有一段時間,感覺還不錯,所以就給了這個算是萬眾著目的新版本一次機會——只支援 Yosemite 系統。於是在 PTT 的 Mac 版一有消息時[2],便立馬下載試用。由於系統介面是英文,所以我的 Word 操作介面也是英文,但網路上說正體中文可以正常顯示,顯然使用者的 Mac OS 得處於中文介面中。



Word 的 Icon

簡潔的啟動畫面


儲存檔案時偶爾會跳出的畫面


2015/02/28

Convert m4a to mp3

在 Mac OS X 終端機下將 m4a 音樂檔轉成 mp3 檔案

因為有一些個人需求,需要將 m4a 或 wmv 之類的音樂格式轉成 mp3,又因為要轉的音樂檔案有點多,所以才會想到要一次性解決這個問題。在網路上查找好一番後,寫下了一點自己用得到的東西。

可轉檔軟體

Mac OS X 系統下圖型介面的轉檔軟體很多,其中也不乏批次轉檔和條件式轉檔的軟體。例如 AudacityXLDAudio Converter Lite 等等,以上舉的例子都是自由或免費版本。
  • Audacity – http://audacity.sourceforge.net
  • XLD – http://tmkk.undo.jp/xld/index_e.html
  • Audio Converter Lite – https://geranium-soft.com
XLD 是專門用來轉無損音質的軟體。Audacity 則是無法批次轉檔(需要另外下載 lame 和 ffmpeg 的套件或涵式庫)——或者其實可以,但我還不曉得具體做法。而 Audio Converter Lite 只能固定 bitrate,但可以批次轉檔。

2015/02/15

『全家』代收北市圖還書

前一陣子收到臺北市立圖書館的 E-mail,說明全家便利商店也可以接受有償還書服務,一件包裹起碼 45 元起。到2015年03月31日止,還可以在還書後順便從全家拿到一包王子麵……

規則是:
  • 一包裹 45 元。包裹可自備,也可以買超商的包裹,所以費用會大於 45 元。
  • 但包裹的長、寬、高總合要小於或等於 90 公分,每一邊不得大於 45 公分,一包裹總重不能大於 5 公斤。
  • 限臺灣本島。
  • 歸還日期以全家的收據為準。 
 詳情請看:
http://www.tpml.edu.tw/ct.asp?xItem=96294046&ctNode=57685&mp=104021
這樣一來,幾乎全島都能有還書的地方了,對於喜歡在旅途上看書的人來說算是一種福利。