從今天起本博客將啓用 GitHub Issue 作爲留言系統。 原本使用的 Disqus 將繼續保留一段時間,目前沒有關閉的計劃。

換用 GitHub Issue 是計劃了好久的事情了,最初重做這個主題的時候就有考慮過。 這個想法的契機是看到了這篇 GitHub hosted comments for GitHub hosted blogs ,然後立馬覺得這個想法很符合寄宿在 GitHub Pages 上的博客。 一個限制是要求評論者必須有 GitHub 賬戶,考慮到我的博客的受衆這個要求估計不算太過分。 使用 GitHub Issue 的好處麼,比如自帶的 GFMD 富文本格式,郵件通知,還有訂閱和取消訂閱通知,郵件回復, 這些方面都不比第三方留言系統遜色。

換用 GitHub Issue 另一方面原因是最近聽說 Disqus 被部分牆了,想必以後牆也會越來越高。之前曾經試過在這個博客換上多說, 然而效果我並不喜歡,多說喜歡侵入頁面加很多奇怪的東西 …

PacVis
Demo of PacVis

我爲什麼要做 PacVis

我喜歡 Arch Linux ,大概是因爲唯有 Arch Linux 能給我對整個系統「瞭如指掌」的感覺。 在 Arch Linux 裏我能清楚地知道我安裝的每一個包,能知道系統裏任何一個文件是來自哪個包, 以及我爲什麼要裝它。或許對 Debian/Fedora/openSUSE 足夠熟悉了之後也能做到這兩點, 不過他們的細緻打包的結果通常是包的數量比 Arch 要多個 3 到 10 倍,並且打包的細節也比 Arch Linux 簡單的 PKGBUILD 要複雜一個數量級。

每一個裝過 Arch Linux 的人大概都知道,裝了 Arch Linux 之後得到的系統非常樸素,按照 ArchWiki 上的流程一路走下來的話,最關鍵的一條命令就是 pacstrap /mnt …

在上篇文章 「桌面系統的混成器簡史」 中我介紹了其它桌面系統中的混成器的發展史和工作原理, 話題回到我們的正題 Linux 系統上,來說說目前 X 中混成器是如何工作的。 這篇文章將比上一篇深入更多技術細節,不想看太多細節的可以直接跳過看 結論

原始的 X 的繪圖模型

首先,沒有混成器的時候 X 是這樣畫圖的:

ditaa diagram

X 的應用程序沒有統一的繪圖 API 。GTK+ 在 3.0 之後統一用 Cairo 繪圖, 而 Cairo 則是基於 PDF 1.4 的繪圖模型構建的, GTK 的 2.0 和之前的版本中也有很大一部分的繪圖是用 Cairo 進行, 其餘則通過 xlib 或者 xcb 調用 X 核心協議提供的繪圖原語繪圖 …

(原本是想寫篇關於 Wayland 的文章,後來越寫越長感覺能形成一個系列, 於是就先把這篇背景介紹性質的部分發出來了。)

Linux 系統上要迎來 Wayland 了,或許大家能從各種渠道打聽到 Wayland 是一個混成器,替代 X 作爲顯示服務器。 那麼 混成器 是個什麼東西,桌面系統爲什麼需要它呢? 要理解爲什麼桌面系統需要 混成器 (或者它的另一個叫法, 混成窗口管理器(Compositing Window Manager) ),在這篇文章中我想回顧一下歷史, 瞭解一下混成器出現的前因後果。

首先介紹一下混成器出現前主要的一類窗口管理器,也就是 棧式窗口管理器(Stacking Window Manager) 的實現方式。

本文中所有桌面截圖來自維基百科,不具有著作權保護。

早期的棧式窗口管理器

棧式窗口管理器的例子,Windows 3.11 的桌面
棧式窗口管理器的例子,Windows 3.11 的桌面

我們知道最初圖形界面的應用程序是全屏的,獨佔整個顯示器(現在很多遊戲機和手持設備的實現仍舊如此)。 所有程序都全屏並且任何時刻只能看到一個程序的輸出,這個限制顯然不能滿足人們使用計算機的需求, 於是就有了 窗口 …

2015年2月21日更新

上次介紹過 這個博客改換了主題 , 本以爲這個話題可以告一段落了,沒想到還能繼續寫呢。

寄宿在 Github Pages 上的靜態博客通常有兩種方案,其一是使用 Jekyll 方式撰寫,這可以利用 Github Pages 原本就有的 Jekyll支持 生成靜態網站。另一種是在 本地 也就是自己的電腦上生成好,然後把生成的 HTML 網站 push 到 Github Pages ,這種情況下 Github Pages 就完全只是一個靜態頁面宿主環境。

我用 Pelican 生成博客,當然就只能選擇後一種方式了。這帶來一些不便,比如本地配置 pelican 還是有一點點複雜的,所以不能隨便找臺電腦就開始寫博客。有的時候只是想修正一兩個錯別字, 這時候必須打開某臺特定的電腦纔能編輯博客就顯得不太方便了。再比如 pelican 本身雖然是 python 寫的所以跨平臺,但是具體到博客的配置方面, Windows …

透明計算 具體是什麼,因爲他們沒有公開技術細節所以我並不知道,只是看 公開出來的演示視頻 ,感覺似乎只要能從手機上遠程登錄系統桌面,就能算是透明計算了。 如果透明計算真是這個意思,那麼我似乎已經用着這個技術很多年了嘛。

Xorg 上常用的遠程桌面工具有很多,基於 VNC 協議的、基於NX的和基於 RDP 協議的都能找到, 直接 ssh X forwarding 效果也不錯。只是這些方案的一個 不太易用 的地方在於,需要 通過 ip 訪問到遠程的電腦,所以在跨越 NAT 之類的情況下不太容易使用。

於是今天介紹一個使用方便設置也簡單的方法: 通過 chrome-remote-desktop 在 archlinux 上使用遠程桌面。這個方案的優勢在於,藉助 Google 的雲端服務器(內部貌似是XMPP協議下的握手) 方便地實現了 NAT 穿透,無論什麼網絡環境基本都能使用。當然,要支持遠程登錄, 位於遠端的登錄的計算機必須一直開着 …

上個月就在 狗爹(godaddy) 上買了個自己的域名 farseerfc.me 準備用在這個 博客上,當時試着轉到過這個域名,發現 自定義域名(custom domain) 只支持 http 不支持 https ,想着還要買自己的證書,於是就扔在了一旁。不用自定義域名的話, 放在 github.io 上是可以用 HTTPS 的。 今天在 #archlinux-cn 上受大牛 quininerlilydjwg 點播, 發現 cloudflare 有提供 免費的支持 SSL 的 CDN 服務 趕快去申請了一個,感覺非常讚,於是就換過來了。

設置的方法按照 這篇博文 說的一步步做下來,如它所述,用 CloudFlare …

2015年2月14日更新

前言: 新天新地,將一切都更新了 [1]

不知不覺間放任這邊長草很久了,從上次 折騰主題 到現在都快三年了, 而從上次 寫了篇告白信 到現在也有快兩年了。 這期間曾經把主題配色從 Bootstrap 2 默認的 白底黑字改成了讓眼睛更舒適的黑底白字,也不過是用 drop-in 的配色方案而已,沒有本質上的改進。

洞中一日世上千載,兩年裏 Bootstrap 已經升上 v3.3 , 而 Pelican 則已經升到 3.5 了。 早就眼饞 Bootstrap 和 Pelican 中的諸多新功能新設計,不過無奈於時間有限只能飽飽眼福。

近日想寫的東西越積越多,終於下定決心花了前前後後 兩個月 的時間重新設計了一遍 Pelican 的主題,配合一些我覺得有用的插件。於是本博客就變成你們現在看到的樣子了。 (以及本篇博文也用了兩個月的時間寫完,其間還發了幾篇別的短文,算是恢復寫博客的嘗試吧 …

現在這裏的界面風格要從 Google 在 I/O 2014 大會 上公佈Android L 也即 後來的 Lollipop 說起。 他們在談論界面設計的時候公佈了他們的 設計準則: Material Design (中文非官方翻譯 )。 當然這只是一些準則,總結並描述了之前在 Web 設計和移動端 App 界面設計方面的一些規範, 並且用材料的類比來形象化的比喻這個準則。關於 Material Design 的更多中文資料可 參考這裏

看到 Material Design 之後就覺得這個設計風格非常符合直覺,於是想在這邊也用上 Material Design。 但是我在 Web 前端科技樹上沒點多少技能點,所以想找找別人實現好的模板 或者框架直接套用上。在網絡上搜索數日找到了這幾個:

Polymer Paper Elements

Polymer
Polymer logo

Google …

這篇也是源自於水源C板上板友的一個問題,涉及Linux上的控制檯的實現方式和歷史原因。因爲內容比較長,所以在這裏再排版一下發出來。 原帖在這裏

可以設置不帶緩衝的標準輸入流嗎?

WaterElement(UnChanged) 於 2014年12月09日23:29:51 星期二 問到:

請問對於標準輸入流可以設置不帶緩衝嗎?比如以下程序

#include <stdio.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
    FILE *fp = fdopen(STDIN_FILENO, "r");
    setvbuf(fp, NULL, _IONBF, 0);
    char buffer[20];
    buffer[0] = 0;
    fgets(buffer, 20, fp);
    printf("buffer …

今天嘗試 KDE5 Plasma 的活動的時候無意間發現這個現象。 只要把活動按鈕拖出桌面,它就會在桌面邊緣來回跳動。 視頻如下:

當然你可以把它再拖回來,所以這個問題還無傷大雅,只是賣萌。

比比之前 Gnome3 那個跳動的界面真是好太多了:

順便,今天還看到一個賣萌的 KDE5 Plasma 靜音圖標的翻譯:

簡介

Pyssy 是用於 上海交通大學 飲水思源站 的一系列 Python 腳本和工具。

Pyssy 被有意設計爲既可以託管寄宿在 SAE [1] 上,也可以在單機上獨立使用。

項目地址: http://pyssy.sinaapp.com/

Github上的源代碼地址: https://github.com/yssy-d3/pyssy

[1]Sina App Engine ,新浪雲平臺,類似 Google App Engine 的東西。

依賴關係

Pyssy 使用 Flask 作爲網頁服務器, 並且使用 Memcached 或者 Redis 作爲抓取 水源Web 的緩存。

SAE Python 環境下請開啓 …