搜索
Table_bottom

标签云
Table_bottom

分类
Table_bottom

声明
文章若未特別註明,皆採用 知识共享许可协议 請自覺遵守
Table_bottom

存档
Table_bottom

匆匆过客
22839
Table_bottom

功能
Table_bottom

丙申有年

(框架乃前天即大年初一所寫)

新年。

昨天一邊聽着春晚一邊在初中班級(微信)羣中聊天,聊着聊着就說到了仙劍四,然後突然意識到它已經是十年前的遊戲了,繼而引發了一波人生苦短的感嘆以及遊戲的回看。恍惚之間,忽然覺得連剛過去的那一年也不真實了起來。

仔細算算,去年一年間發生了許多遠超預期的事情。再加上前些年的事情,一些從小就在學的概念也似乎變得不再那麼確切了起來。雖然初中高中時候政治考試無論如何上不了80%,但當時學的一句話依然毫無疑義地生效:機遇與挑戰並存。

聽聞英國脫歐比美國大選鬧出的事要更令我驚訝,因爲我還記得當年課本中是如何盛讚歐共體和歐盟的,而且從那以後我們都考慮過當歐洲整合爲一個國家之後會是什麼樣子。然而英國居然進行投票脫歐,這點着實讓我深感意外——因爲只有當有大量民意(或者至少“上達天聽”的民意)表明有脫離需求的時候,全國範圍的投票纔有可能出現。更令人意外的是蘇格蘭在此以後再次以號稱獨立來表明留歐的立場、倫敦投票留歐以及許多人出來說自己當初“覺得無論如何都不可能脫,所以就投票給脫歐”。而扒一扒英國脫歐的原因,難民問題絕對佔一大頭——畢竟英國在歐盟這麼多年了,歐洲經濟年年都是那麼個樣子,今年基本上只有難民是新問題。

美國大選過後,川普當選,於是我所見到的報導全都一邊倒地在批判川普。然而我還記得,在大選前造勢的時候,希拉里被爆出來的種種醜聞無疑使得她並不應該當選總統。於是好玩的事情在川普當選之後發生了:因爲川普也有很多問題,所以媒體一邊倒地轟炸他,但是不再提希拉里的問題,進而導致一些人覺得應該讓希拉里來。就我所獲知的消息,從候選“人”的角度看,川普當總統是比希拉里更合適的。因爲希拉里的問題會導致上臺之後被之前的各種交易所制,甚至導致整個政府問題更加嚴重;而川普的問題在於他本人所秉持(或者表現出來秉持的)思維,但至少他不會污染政府機構,所以從這點看他是比希拉里合適的。當然了,我又不是搞政治的,說不定川普有什麼黑幕沒爆出來,或者希拉里的黑幕都是假的,但這些在當前的公共知識中是不成立的,所以我也就按照這些來評判。

不過雖然我覺得川普比希拉里適合當總統,但這只是瘸子裏面挑將軍。天知道美國政府以及黨派都在搞些什麼,從而最終弄了這麼兩個人來當總統候選人。不過這點也反映了美國的一個問題:當兩大黨派都不是玩意的時候,沒有行之有效的手段可以托起一個更加合理的黨派/候選人。這個也許是政治制度的缺陷,但也可能是其他方面的問題——比如如何讓更多人的發聲可以更加平等。

等到川普上臺,大新聞就沒有斷過——他本人的一些言論和做法實在是令人覺得匪夷所思。“反政治正確”我是支持的,但“逢政治正確所提倡的東西就反”就已經是另一回事了——政治正確是另一種形式的言論管制,反對管制是好的;但能成爲政治正確的言論和觀點中的多數都是良好的,反它們就不再是反管制而是開歷史倒車了。不過看他的言論,基本上就是不再講普世、不再宣稱要給全人類帶來民主與自由(“幸福”的同義詞),而是“別人死活與我何干,我只要美利堅強大就行”。對美國人來說,這顯然是好的——因爲前面那些年扯普世之類的開銷還是本國公民的稅款,卻沒用在本國人民身上。

作爲一個好歹有點全人類意識以及知道傳說中共產主義一定不可能只在一個國家實現的人,我只能說這都是歷史倒車,實在是看得人唏噓不已——曾經的燈塔國怎麼也破敗到這份田地了。曾經的美國雖然滿口“共產主義不是玩意”,但好歹(名義上)在做的事是在向更好的社會制度、實現全人類的福祉靠攏的,而且的確起到了一定作用,可是現在呢?

然而更可笑的不是美國自己打自己的臉,而是國內網絡輿論。十多年前網絡輿論幾乎一邊倒地在說:美利堅是燈塔、人類的希望,中國一定要效仿美國。當時我朝這邊的應對部門(包括各種官媒)真心是戰五渣,除了扯旗子還是扯旗子。後來的確是隨着中國國力的提升,有越來越多人意識到原先的說法有問題,開始能較爲理性地分析。而這兩年——尤其是剛過去的一年——網絡輿論開始有了這樣的趨勢:普世價值就是扯淡,原先美國扯着嗓子提倡的所有東西都不好,都不應該要。變成這種狀態的原因呢?我不知道,但應該和美國自己打臉有關:美國自己開始反自己以前所提倡的“一些”東西了,於是國內一些人忽然信仰崩塌,於是出於一種不明但是普遍存在的原因,他們便從一個極端(美國說什麼都是好的)走到了另一個極端(美國以前說的都是不好的)。

如果說上面這種輿論風向是可笑,那麼還有一些就是可怕了。由於前些年美國強勢輸出價值觀、我朝毫無招架之力,故而我朝無論如何沒法說美國很不好,所以對美國和美國宣揚的東西給予很高評價,比如什麼三權分立啊、普世價值啊之類的。前幾年的時候我朝國力提升帶來的自信心終於大規模提起了,於是也開始搞自己的一套價值觀(所謂中國夢),試圖驅逐美國之前輸出的價值觀(主要是針對其中的私貨,因爲這種虎皮真心沒什麼可搞的)。然而在美帝自己打臉之後,我朝有那麼一部分人開始將火力集中到了普世價值之類的東西上。平心而論,普世價值這玩意雖然其中有那麼一部分東西是有意識形態在其中的,但更多的內容的確是普世的;三權分立雖然“不適合中國”,但起碼也有一個成功的典型。然而在這一兩年中,人類作爲整體、先進拉動落後之類的觀點慢慢地在被“自己國家強大就行管別人幹嘛”、“落後/貧窮是你自己不努力所以和我沒關係”這樣的東西取代,司法獨立也被人炮轟成“錯誤觀點”而不是“不合適觀點”。再加上最近幾年領導人大規模爲自己著書立傳,隱隱有搞個人崇拜的風氣,接下來幾年會是個什麼樣的確說不來。

扯了這麼半天政治,只是因爲政治是所有人的,所以人們的其他思想、行爲都是受到政治的影響的。而接下來,就是各種政治影響以及經濟發展社會變動下人們的變化。

受美帝自己打臉、開始進行封閉以及我朝宣傳能力上升的影響,相當一些人對我朝很滿意。然而無論一個人對我朝秉持什麼看法,我朝存在的問題還是存在。從前,在美分的眼中所有問題都是政治制度的黑鍋。而現在燈塔國不好用了,但是問題依然存在(而且又不能說是政府的問題),怎麼辦呢?那就把黑鍋丟給“傳統”吧,反正人們都覺得自己所習慣性去做或者去認知的東西都是“傳統”。

說來讓傳統背黑鍋實在是有一定歷史了,最起碼我們知道新文化運動時候就已經開始了。再加上有個叫柏楊的傢伙有本叫《醜陋的中國人》的書,很符合洋奴們的心態從而廣爲流傳,在美分大戰五毛的時代人們已經開始甩鍋給傳統了。當時人們見到什麼社會問題,就長吁短嘆一番,唸唸有詞道“在外國就不會有這種事”,然後口宣什麼“中華民族的劣根性”。

而看看整體社會風氣,資本的確成功了,錢成了絕對主導的度量標準。2006年的《武林外傳》中尚且是“人家會說我傍大款,傳出去多不好聽啊”,而十年後的2016年人們已經可以毫無羞恥地喊道“(王)思聰老公”、“馬雲爸爸”了。

與之相關的還有對待窮人的態度。現在網絡上一大批人的觀點已經固化成了:窮就是懶。早幾年的時候這種說法出現在一些描述非洲貧窮的文章中,是說黑人就是懶惰就是不幹活就是下等人種;後來擴展到了東南亞;而現在已經擴展到了看待國內的狀況。大批的人無視了社會的種種問題,一味地指責貧窮的人;而在看着馬雲的時候脫口而出“馬雲爸爸”。這樣的嘴臉實在是連“嫌貧愛富”都不足以描述了。

2012年的女權主義者還能做出在女廁所安裝立式便器的事(雖然是重複18世紀法國已經發生的行爲),好歹也算是真心實意認爲男女應該相同。然而到了這兩年,“女權主義者”已經開始主動爲男性爲尊添磚加瓦;甚至到了2017年春晚,“女人就是應該疼的”這樣的話也並沒有遭到任何批評。(女權主義者們卻在批別的槽點。爲什麼不同時帶上這一點呢?所以我實在無法理解他們到底是如何認知的。)

 

接下來幾年會是什麼樣,誰也說不好。全球都有封閉的趨勢,但表現方法不一樣,於是產生的影響也會不一樣。只能說走一步看一步,期望世界和平、向更好的社會制度穩步前進。

遷移到awesome 4

前兩天隨手全局刷了一下更新,結果一不留神awesome提示我的配置文件有問題。檢查之下,發現awesome已經到了4了,所以立即意識到配置文件又改了。然而由於當時較爲忙碌,就又downgrade回了3.5,直到週末纔重新更上4並折騰配置,到今天算是初有所成。

 

由於我的配置沒有魔改,所以遷移起來還是比較簡單的。遷移前毫無疑問地,首要事情就是備份自己原來的配置文件;同時可以去看看官方說明文檔。

官方文檔分爲兩個,一個是“簡明遷移文檔”(然而官方自己都說這個只能保證你的配置能用,新功能就別想了),另一個是新的特性文檔。遷移文檔我看了一下就扔下了,然後對着新特性研究了一大半(然而還是沒看完)。

簡而言之呢,在我修改的時候,涉及到的新特性有這麼幾個:

  1. 增加了快捷鍵功能顯示界面(modekey+s)
    • 這個功能實際上是爲每個快捷鍵定義增加了一個可選參數,在其中寫上說明以及分組
    • 正確使用需要手動在快捷鍵設置的函數定義後增加這個參數,比葫蘆畫瓢即可
  2. 又重新增加了declarative layout(聲明式佈局?),同時默認配置中的頂部面板(panel)佈局改爲使用declarative layout
  3. 對象的屬性可以直接賦值(想來是有了鉤子/監聽器),而不必再使用set_xxx()
  4. screen現在是動態的(以前不是?)而且是個對象,並且遍歷所有屏幕建議使用awful.screen.connect_for_each_screen(function(s)
  5. 許多舊的api列爲deprecated,並將在日後逐步刪除
  6. 默認爲每個normal(通常?)和dialog(對話框)窗口加上標題欄

由於我之前也沒用什麼奇怪的庫(僅用了awesome-freedesktop和vicious),所以整個過程其實不難:將原來的配置文件($HOME/.config/awesome/rc.lua)備份一下,將新的配置文件/etc/xdg/awesome/rc.lua複製過去,然後開始vimdiff。

  • 一部分設置的位置變了,但內容沒變,所以保留原始狀態不變
  • menu的項目改成原來的
  • tasklist右鍵的默認動作單獨提了出來,不知道具體爲了什麼,但我將它留在原地
  • widget配置方式改成declarative的
    • 糅合panel配置,都放到專門的panels.lua中(因爲我搞了倆panel,上面一個、左邊一個)
  • 爲自己的快捷鍵增加說明
  • 調整窗口默認規則
  • 把normal窗口的默認標題欄去掉

嗯,基本就是這些了吧。剩下的那些邊邊角角的情況都是比葫蘆畫瓢即可。

 

讓我感到比較奇妙的是awesome 4增加的這倆東西:

  1. 新的widget
    • 尤其是其中的piechart和arcchart,感覺可以用來更好地顯示資源佔用了(我原來是用的vicious的文本)
  2. shape api
    • 其中有圓角的支持

然而由於我功力不夠,沒能摸索出來如何更好地使用這些東西……而直接搜索也沒搜到有用的信息(因爲太新了?)。所以接下來一段時間就要摸索這個咯(當然,有時間的話)……

Arch下XPS 13 9343的触摸板多指动作

昨天偶然意識到需要經常“後退”和“前進”,而又懶得用兩隻手去按鍵盤快捷鍵,於是想到觸摸板多指動作。

我的鼠標是羅技的M345,滾輪可以向左右傾斜而觸發後退和前進動作,而且不需要額外設置就可以用,於是感覺應該是有專門的通用事件來處理它,故而試圖尋找觸摸板觸發該事件的方法。

 

由於觸摸板雙指滾動已被佔用,而且知道自己觸摸板可以識別三指(點按),於是鎖定目標在三指滑動。然而synaptics驅動中似乎並沒有該功能,故而前去尋找,終於找到mtrack

該倉庫原本由BlueDragonX維護,後來擱置,於是p2rkw接手並且在持續維護。

 

AUR中有該包(xf86-input-mtrack-git指向的是p2rkw維護的),直接裝之(和xf86-input-synaptics衝突,pacman會提示卸載)。安裝後會自己放置配置文件到/usr/share/X11/xorg.conf.d/10-mtrack.conf,理論上應該可以自動切換觸摸板所用“驅動”(InputClass配置的Driver項)到其上。

然而我之前手動設置了觸摸板的一些配置(在/etc/X11/xorg.conf.d/下),所以還需要改該文件。不過在修改配置之前,首先要確認mtrack到底啓用了沒有,所以我就把我的配置文件中Driver項從synaptics改成了mtrack。

xf86-input-mtrack-git的安裝腳本會提示“可能需要把自己加到input組中”——貌似由於X不再以root運行,所以需要讓自己在input組中以便mtrack可以正確配置觸摸板。

由於X只有在啓動時會讀取配置文件,所以只好忍痛將所有程序都關掉然後重啓X。然而啓動後發現無論用xev怎麼測,三指的動作死活無法觸發(默認配置中,三指上下左右分別對應按鍵8、9、10、11)。於是懷疑是不是mtrack根本沒有啓用。而由於xf86-input-libinput現在被xorg-server依賴,所以沒辦法從源頭上排除(刪掉所有其他和觸摸板相關的東西,如果觸摸板還能工作,說明mtrack在處理它)。故而前去查詢X的日誌(用DM來管理的話在/var/log/Xorg.0.log,startx的話在$HOME/.local/share/xorg/Xorg.0.log),發現mtrack被載入了,然而有這麼幾句:

[     4.741] (EE) mtrack: cannot configure device
[     4.741] (EE) Couldn't init device "我的觸摸板名稱"
[     4.741] (II) UnloadModule: "mtrack"
搜索了很久,然而始終沒有找到對我有用的信息(都是macbook云云)。而網上一些人說道即使有cannot configure device這句,mtrack的配置依然會生效(然而他們及其後的人也說過只要把用戶加到input組中就不會再有這個消息了,可是我這還是有)。後來偶然重新去看日誌,發現上面還有
[     4.741] (WW) Touchpad has minimal capabilities. Some features will be unavailable.
然而也沒有什麼有效信息,只是讓我確認了我的觸摸板功能不夠全……於是繼續搜索了一大圈,最後意識到好像是閾值設置得太高了(SwipeDistance默認是700)……另外,所有有效的“Option”都會打出到日誌中。
 
最後在把閾值設置低一些(我設置的220)以後,通過xev成功監聽到了三指動作的觸發……(然而四指的無論如何都無法觸發,不知是硬件問題還是什麼)
它的配置文件中Scroll*代表雙指划動動作,Swipe*代表三指划動動作,Swipe4*代表四指划動動作;另外還有似乎並沒有通用行爲只是觸發按鍵的:Scale*代表的雙指縮放、Rotate*代表的雙指旋轉。
 
再然後就是配置它以使得符合我的需求。我需要的是左右划動觸發後退和前進,而上下暫時沒有需求。於是通過xev監聽我鼠標滾輪左右的事件,發現是按鈕8和9,而mtrack默認配置和我的需求不同,於是在配置文件中修改之。爲了保留原有的並不知道有什麼用的按鍵10和11,故而選擇交換上下和左右的動作。最終這部分是這樣的:
        Option "SwipeDistance" "220"
        Option "SwipeClickTime" "120"
        Option "SwipeSensitivity" "0"
        Option "SwipeUpButton" "10"
        Option "SwipeDownButton" "11"
        Option "SwipeLeftButton" "8"
        Option "SwipeRightButton" "9"

 

然而在改完了之後,忽然發現xf86-input-mtrack倉庫中的example有(且僅有)XPS 9333的配置文件……雖然是前代,但很多地方還是很有參考借鑑意義的……於是最終將它的配置文件抄過來稍加修改……

 

不過話說回來,example中有許多我是看不懂的(畢竟對X的配置理解不深刻),尤其是那堆重複寫Swipe和Swipe4動作的部分。哪位理解的話希望可以指點一下。

 

另外還見到了兩個其他相關軟件,然而我都沒有試:一個叫touchegg的似乎是截獲觸摸板動作然後改轉發其他動作的軟件;另一個叫easystroke的似乎是手勢識別軟件。

直覺上的Hobbs算法

註:文中“(即……)”形式的內容爲輔助理解本質的內容,並非算法內容。

算法分成幾個按順序的部分,每部分如果匹配上,則直接返回,否則往下走。“匹配”的標準爲:agreement等正確,同時滿足當前部分的要求。

整體邏輯/基本想法

算法可大體分爲三個部分:

  1. 在當前句子中尋找(過程較爲複雜,後面詳細說明)
    1. 在目標節點左側進行尋找
    2. 找完還沒找到則在右側進行尋找,但不進入NP和S節點
  2. (如果找不到或沒有合適的)在前面的句子中尋找(如果找不到則繼續向前直到找到爲止)
    • 過程十分簡單:以從左向右、寬度優先爲原則遍歷子樹,尋找匹配的NP

算法過程

算法初始化:從目標代詞(記爲T)所在的NP節點(記爲“當前節點”和/或“X”)開始(即NP->Pron規則中的NP)。

算法唯一循環:

  1. 尋找X之上最近的NP或S節點作爲當前節點,替換原先的X。
  2. 以從左向右、寬度優先爲原則,尋找當前節點X的子樹中(同時在T到X路徑左側)第一個匹配的NP
  3. 若X是S,則看前一個句子的語法樹(見上面)。(只有兩種情況會滿足該要求:
    1. T是句子中(從左往右數)第一個NP(即該句子爲以目標代詞爲主語的句子,或是以目標代詞爲賓語的祈使句等),則首次進入則會遇到該規則
    2. 循環回來遇到S(即尋找完當前句子而沒有找到相匹配的NP)
  4. 尋找X之上最近的NP或S節點作爲當前節點,替換原先的X。
  5. 如果X是NP,而且從T到X的路徑中沒有經過Nominal節點(即T並非X這個NP的定語),則試圖匹配X
  6. 以從左向右、寬度優先爲原則,尋找當前節點X的子樹中(同時在T到X路徑左側)第一個匹配的NP
  7. 如果X是S(即左側已找完),則尋找T到S路徑右側的所有子樹中尋找相匹配的NP。此時如果遇到NP和S,不進入其子樹。
  8. (若如果仍未匹配上)回到3

 

(最近在爲NLP的(高速入門)課準備考試,於是也在看J&M的Speech and Language Processing。其中關於Hobbs的描述看得很頭痛,於是dump一下自己的理解。)