作者: Hui-Hong YOU

  • Solr 4.3.1, Tomcat 7.0.26, Ubuntu 12.04

    我嘗試用一種比較不那麼髒的方法來配置,過程中有需要 chown 的地方就自己留意。

    1. 先從套件庫裝 Tomcat 7.0.26
    2. 再到 Solr 網站下載 Solr 4.3.1.tgz,在 $HOME 底下解開 (~/solr-4.3.1/*)
    3. sudo mkdir -p /opt/solr/home/solr && cd /opt/solr/home/solr
    4. sudo cp -R ~/solr-4.3.1/example/solr/* .
    5. cd /opt/solr
    6. sudo cp -R ~/solr-4.3.1/contrib .
    7. sudo cp -R ~/solr-4.3.1/dist .
    8. sudo mkdir /opt/solr/home/solr/lib
    9. sudo cp ~/solr-4.3.1/example/lib/ext/* /opt/solr/home/solr/lib
    10. sudo cp ~/solr-4.3.1/example/resources/log4j.properties /opt/solr/home/solr/lib
    11. cd /usr/share/tomcat7/lib && sudo ln -s /opt/solr/home/solr/lib/* .
    12. sudo cp ~/solr-4.3.1/dist/solr-4.3.1.war /var/lib/tomcat7/webapps

    基本安全防護(參考 [How to disable solr admin page – Stack Overflow], [SolrSecurity – Solr Wiki]):

    1. /var/lib/tomcat7/conf/tomcat-users.xml 加入一個 Solr 管理用角色 solr-admin <role rolename="solr-admin"/>
    2. 分配一個使用者 solr-manager,指定他的角色是 solr-admin <user username="solr-manager" password="youdonno" roles="solr-admin"/>
    3. /var/lib/tomcat7/webapps/solr/WEB-INF/web.xml 內設定要保護的資料異動 URI
  • EPGrab,把 DVB 數位電視的 EPG 電子節目表輸出成 XMLTV 格式

    EPGrab,是我拿 tv_grab_dvb 來改的一個小程式,算是對自己想過的〈不曉得有沒有辦法推 XMLTV 讓電視台廣為採用〉的一個起步。我修正了幾個地方,讓多位元組字元可以正常顯示。

    根據 DVB 標準規範 EN 300 468,以及《台灣數位電視相關影音技術規範》,台灣(代碼 0x14)的 DVB 資訊文字編碼,很可能一開始就被誤讀,之後便一路錯下去,很多自由軟體、開放源碼軟體的實作都用 Big5,實則應該是「採用 Unicode/UTF16-BE 編碼 (encoding),ISO10646 字集 (character set),但是至少應該能夠顯示 Big5 有收錄的字」。包括 LinuxTV dvb-apps, Me-TV, Kaffeine 等,都弄錯了,或曾經弄錯。

    tv_grab_dvb 的情況則更微妙,作者除了同樣弄錯台灣的編碼,亦沒有考慮到多位元組字元的情況,而使用 strlen() 函式去偵測節目資訊的字串長度,遇到 0x00 開頭的字元編碼,就直接掛了。我只好把這個問題修掉,否則此程式幾乎在台灣無用武之地。

    基礎設施有了,接下來是拿輸出的 XMLTV 檔案來玩…。

  • [Daily Digest] 2013-07-02

    Online resources:

    Murmurs:

    • 為什麼重新做起老掉牙的「網摘」?因為警覺到「靠山山倒,靠自己最好」(Thanks Google Reader)。
    • 跟同事聊起去打擊場練球的事,首先要找一隻合手的球棒。
  • 袂曉泅水,莫嫌卵葩太重

    這一篇是寫給兩位學妹、學弟的。

    我第一次用 Ruby on Rails (以下簡稱 Rails)是在碩士班做團體作業的時候,那是一個卜小蝶老師的 IR 課裡大概都會做到的,資料庫檢索系統的簡單作業。我因為大學、碩士班都上到了卜老師的課,所以這個作業好像就做了兩次吧。人老了,記憶力實在不好。

    碩士班這次的作業,我就想拿當時正紅的 Rails 來玩看看。我就只看 [Ruby on Rails Guides] 並上網查詢其它補充資料而已,沒有什麼奇書,沒有什麼祕籍。我認為官方文件就是最好的入門文件。

    那作業,我邊看 guides 邊依樣畫葫蘆,寫好了還有空亂套 script.aculo.us 玩 JavaScript 效果搞笑,最後再套上一個 Ferret 搜尋引擎,搞定。

    老師問我這個用多久時間做的,我好像才花了不到兩天吧,因為太快了,所以其她組員還急忙跟老師說我是開玩笑的。

    喵的,誰在跟妳們開玩笑啊!!!? ( `Д´)/

    那時候我對網站資料庫程式設計的所知,不會比妳你多多少。所以,站在同樣的起跑點上,妳你不會學得比我慢吧?不會真的因為沒有一台 Mac 就拖得經年累月學不起來吧?

    難道 Heroku 的 stack 是用 Mac 嗎?Sqale 的 stack 是用 Mac 嗎?

    真有心想學,竹篙鬬菜刀,Windows 上跑個 VirtualBox 裝 Ubuntu、甚至直接在 Windows 上用 RailsInstaller,再自己想個小型規模的網站資料庫題目,就可以起步了。

    重點是,學得 Rails 如何運作,以及從開發過程中帶出來「如何做出一個合用的網站」的那種心領神會,好嗎?

  • Twitter 帳號被鎖住

    • 前因:我在不瞭解 Twitter 新推出的驗證碼系統的情況下,糊里糊塗設定了啟用這個功能,但是中間一直平安無事。
    • 後果:
        1. 6 月 20 日:因為想要嘗試 Twitter 的 Firefox Marketplace 提供的 mobile Web 版,屢次被提示要取得 ‘temporary password’ 丈二金剛摸不著頭腦,便在電腦上想要先登出、再登入 Twitter 看看能否至少讓 cookie/session 環境單純化。悲劇從此開始。
        2. 往後,除了我已經在手機、平板上登入、取得 Android app 版 session/token? 的 Twitter 還可使用,其餘在 Web 上都要過第二關:填入 Twitter 發出的 verification code 手機簡訊。但是,台灣收不到。
        3. 6 月 20 日當天第一次透過 Twitter Help Center 發送求助訊息,沒有得到回應。
        4. 6 月 24 日白天再度發送求助訊息。
        5. 6 月 24 日夜間找到針對收不到簡訊的求助類別,再發送一則心想最恰當的分類的求助訊息。
        6. 找遍 help center 上任何可行的解法,包括發送 ‘GO’ 簡訊到 Twitter 都無法取消 login verification。
        7. 有人可能讀到這邊會覺得我很「盧」,但是請注意,在這種狀況下,我亦無從登入 help center 查看我之前發出的 ticket(s) 被處理的狀況,’Check your existing requests’ 功能一樣卡在要問我 verification code,加上我讀到前人的血淚控訴,我只能猜想我前面發的那些 tickets 可能根本就沒得到處理就被關掉,所以我只能摸黑一步一步找到最適合的管道反映問題。
        8. 6 月 25 日晚間,找到 [Mobile operator inquiries],寫客服信希望中華電信能開通與 Twitter 間的簡訊收發,不抱太大希望,但是至少我提了。
        9. 6 月 25 日晚間,感謝 @WanCW 幫忙測試,釐清了應該是 Twitter 雖然在輸入門號的表單中有列出台灣這幾家電信業者,但是尚不支援台灣電信系統商門號,而我卻不知如何地跳過了防呆程式檢查、啟用 login verification。
        10. 6 月 26 日下午,透過搜尋 Twitter 站內 tweets,發現並不是只有我收不到驗證碼。
        11. 6 月 26 日下午,嘗試在備用帳號測試問題成因,發現如果我將介面語言與原帳號一樣設為日本語,則在 Mobile -> Add your mobile phone to your account介面會因為日本行動電話的簡訊系統比較特殊(可以說是類 SMTP)而不一樣,需要發送一則空白簡訊 (email) 到 verify@twtr.jp 驗證手機門號為本人所有。猜想 Twitter 在這裡的邏輯頭一步錯,後面跟著錯,介面語言跟所在國家、地區怎麼可以混淆?今天我慣用日本語介面,但是我住在台灣,使用的是台灣的行動電話業者服務,怎麼可以用我的語言介面決定我的門號判定邏輯?
        12. 6 月 26 日晚間,送出前項的 bug report。
        13. 7 月 4 日晚間,經過八天沒消沒息的等候,按捺不住,再次發 support 訊息要求將帳號語言改回英文。
        14. 7 月 20 日早上,用手機訐譙了幾則 [1][2][3][4] 之後,出門上班,到辦公室收到 Twitter 回信通知已經幫我關掉驗證碼機制,終於取回帳號。
    • 心得:
      • 新的認證機制做了不夠防呆的防呆,所以我這個呆子中招了,我自認有錯,不怪誰。
      • 建議大家(至少是在台灣的大家)先別使用這個機制,或許還可以讀讀這篇
      • Twitter 的 help center,最好不要有機會去跟他們打交道,不然習慣了日式、台式服務效率,可能會青筋爆發、想要大聲訐譙。
      • 該是時候漸漸 de-twitter-ize、不要過於依賴 Twitter 了。只是捨不得在上面長期以來建立的 Twitterverse。