Tag Archives: China

解決 WordPress 中 Google Web Font 被 GFW 屏蔽問題

自從本 blog 的 wordpress 升級並更換 theme 後,偶爾發現 page load 得很慢,用 chrome 自帶的 developer tool 查了一下才發現原來 theme 用了 google web font,因爲 google service 被牆了所以在大陸瀏覽就像卡住了一樣。由於我絕大部份時間都是科學上網,所以一開始沒有發現問題。

Google font is blocked in China

既然 google web font 不能用,最簡單就是乾脆不用,把相關代碼拿掉就行,不過這樣做的後果是網站會極其難看。上策還是把 google web font 放到 wordpress server,再將 CSS 配置好。Google 一下發現有個很棒的 shell script 能幫個大忙:https://neverpanic.de/blog/2014/03/19/downloading-google-web-fonts-for-local-hosting/,它能幫你把需要的字體下載下來並產生一個立馬能用的 CSS 文檔。

WordPress 最少有兩個地方會加載 google web font,第一是 wordpress 本身用到的 Open Sans,另外是個別 theme 可能會用到的字體。視乎你的 theme 有沒有用 google font,有可能兩個地方都要處理。

目前我用的 theme 基於 twentyfourteen(我把原來左邊的 navigation 拿掉,header 加了 facebook, twitter 等幾個 icon),best practice 是在 wordpress 的 themes 目錄開一個叫 twentyfourteen-child 的新目錄,裏面只放用來 override parent theme 的東西。

解決問題的具體步驟如下:

  1. 下載剛才介紹過的網站的 shell script,我把它命名爲 downloadgooglefont.sh
  2. 先下載 wordpress 會下載的所有 Open Sans 字體(包括不同粗幼和斜體),在 downloadgooglefont.sh 裏要指定它們:

  3. 針對你使用的 theme,需要把 theme 用到的 google 字體寫進去。你要查一下你的 theme 會用到什麼字體,例如 twentyfourteen 會用到的字體在 themes/twentyfourteen/functions.php 的 215 行有提到:

    總共有7個字體,所以 script 需要加上:

  4. 執行該 script:

    這些就是下載完的所有文檔,包括適用於 chrome/chromium, firefox, safari 會用到的字體,還有一個 CSS file:

  5. 把上面所有的字體上傳到 wordpress server 的 wp-content/themes/twentyfourteen-child/ 目錄。
  6. 把 font.css 複製到 wp-content/themes/twentyfourteen-chile/style.css。
  7. 由於 twentyfourteen 在 functions.php 通過 wp_enqueue_style 加上 fonts.googleapis.com 的 link 來加載 Lato 字體,要想辦法把它拿掉:

    不過我不喜歡直接修改 parent theme,所以我選擇在 twentyfourteen-child 把它 dequeue 掉。注意 add_action 的 priority 必須低於 10,dequeue 才會成功。 theme_enqueue_styles 的前兩行是用來禁止 Open Sans 字體從 google server 加載,第3行才是禁止 Lato。
    _twentyfourteen-child/functions.php:

Compile kernel module on Linode Debian VPS

Connection to linode hosts from within China can be poor from time to time. Choosing a suitable TCP congestion algorithm may alleviate that from insignificant to a great deal, your mileage may vary. Trying it out is always the best way to find out. Here I will show you how to do that step by step.

  1. Login to your VPS and find out the version of the running kernel

    # uname -a
    Linux jhelom 3.12.6-x86_64-linode36 #2 SMP Mon Jan 13 18:54:10 EST 2014 x86_64 GNU/Linux
    

    That is 3.12.6.

  2. Go get the 3.12.6 from kernel.org at https://www.kernel.org/pub/linux/kernel/v3.x/
  3. Extract it and copy the kernel config over from the current one.

    # tar xf linux-3.12.6.tar.xz
    # zcat /proc/config.gz > .config
    # make oldconfig
    
  4. Now, edit .config with an editor such as vi, look for the line CONFIG_TCP_CONG_ADVANCED, remove the line, and add the following lines there:

    CONFIG_TCP_CONG_ADVANCED=y
    CONFIG_TCP_CONG_BIC=m
    CONFIG_TCP_CONG_WESTWOOD=m
    CONFIG_TCP_CONG_HTCP=m
    CONFIG_TCP_CONG_HSTCP=m
    CONFIG_TCP_CONG_HYBLA=m
    CONFIG_TCP_CONG_VEGAS=m
    CONFIG_TCP_CONG_SCALABLE=m
    CONFIG_TCP_CONG_LP=m
    CONFIG_TCP_CONG_VENO=m
    CONFIG_TCP_CONG_YEAH=m
    CONFIG_TCP_CONG_ILLINOIS=m
    CONFIG_DEFAULT_CUBIC=y
    # CONFIG_DEFAULT_RENO is not set
    
  5. Now compile the kernel and the modules.

    # make -j4
    # make modules SUBDIRS=net/ipv4
    
  6. If everything goes well, you will be able to load the module.

    # sudo insmod net/ipv4/tcp_hybla.ko
    

    Check with lsmod and make sure the kernel module is loaded successfully. If not, check dmesg for any errors.

That’s it!

Google Calendar SMS Alert Comes to China

google-calendar-sms.png

Now Google Calendar users in China can finally enjoy the same SMS alert service as in other countries. Although they mentions China Unicom as the only mobile provider to be supported, I have no problem in registering the service and receiving alerts even I’m a China Mobile subscriber. This alert service is very handy to everyone, as Google Calendar will send you SMS to your mobile phone whenever an event is going to begin.

An interesting tidbit is, they sent the verification code to my mobile phone via HUTCHISON_HK, where HUTCHISON is one of the mobile service providers in Hong Kong. It seems that Google choose neither China Mobile nor China Unicom, the two major mobile providers in China, as their partners.

Combining Google Maps and Google Ditu

Ditu (地圖, 地图) means map in Chinese. China has long been missing from the global Google Maps. Zooming into the China border, only patches of grey blocks are shown, occasionally with blue lines here and there indicating rivers and lakes, and worst of all, maps are just unavailable after you have drilled down deep enough.

Usually this doesn’t pose any problems as Google China serves China maps (and only China maps) at Google 地图, which provides all the functionalities of the global Google Maps website, sans satellite images. This is annoying nevertheless, it’d be the best if users can see maps of China seamlessly when they’re viewing maps.google.com, without jumping out from maps.google.com and then type in another URL just to view some data that’s still backwardly regarded by the Chinese authority as confidential and sensitive.

“Hybrid” mode for China maps is another feature that would be handy to Chinese users. Satellites images are already available but just not being shown on ditu.google.com. Since hybrid mode requires a special layer of map tiles, specially they have a transparent background so that the satellite images can show through underneath the maps, without post-processing map data provided by Mapabc this is not achievable. By Google’s terms of usage of the map data, processing the maps and then re-distribute is not legal. We can only use some freely redistributable map data such as from www.openstreetmap.org.

Hooking up maps.google.com with maps from Google China is not difficult, actually that’s much easier than I thought because Google Maps API already have the mechanism to add a new map type for showing custom map data. My proof-of-concept is shown below, press the “Ditu” button at the top right hand corner and you’ll see maps delivered from ditu.google.com.



Ideally, this “mashup” should best be implemented using the new Google Mapplets, this will give users the best user experience as they only need to add a mapplet and then Google China maps will be embedded to the map window automatically, users are not required to go to this page. But since Google Mapplets doesn’t support adding new map types due to security concerns, this currently is not an option. Frankly, I don’t see there’s any security concerns by supporting new map types.

Don’t be surprised if you notice that the satellite images do not align with the Google China maps, because Google China intentionally shifted the latter to please the Chinese authority. Did it say that the maps are regarded as national security?

因循守舊 -《死亡筆記》在大陸遭封殺

Death note is banned

曾於去年在香港風靡一時的《死亡筆記》電影,其漫畫及周邊商品(估計是盜版居多)已被大陸的“掃黃打非工作小組辦公室”以危害未成年人的心智發展為由列為違例品,一律遭到取締。以下是兩篇較有代表性的報導,我已把重點改成粗體:


湖北省“扫黄打非”工作小组办公室:全国“扫黄打非”工作小组办公室25日下午发出紧急通知,要求各地“扫黄打非”部门从5月28日至6月3日迅即开展为期一周的查缴《死亡笔记》等恐怖类印刷品专项行动,依法严厉查处制售此类有害读物的单位和个人,净化儿童出版物市场环境,为未成年人创造良好的成长环境,让广大少年儿童欢度一个健康愉快的“六一”儿童节。

这是全国“扫黄打非”办继4月份两次下发查缴通知后,第三次就查缴《死亡笔记》等恐怖类非法出版物作出的紧急通知。全国“扫黄打非”办25日的紧急通知指出,非法出版物《死亡笔记》中包含了神秘主义、死亡、报复等诸多感情因素,这些黑色感情将对孩子幼小心灵产生非常大的负面影响,严重影响孩子的人格发育。

近期,《死亡笔记》等恐怖类非法出版物在中小学校园有泛滥之势,严重影响了青少年的身心健康。各地有关部门要切实加强对此次专项行动的组织领导,将查缴《死亡笔记》等恐怖类印刷品作为“扫黄打非”工作的一项重要内容加以部署,务求标本兼治,措施到位,狠抓落实,取得成效。该出版物主要讲述死神掉落人间的一本笔记本被人类拾到,人类如果在这本笔记上记下某人的名字,那么被记名者就会离奇死亡的故事。未成年人阅读后,对谁不满,就采用在《DEATH NOTE》(译名:死亡笔记)上记下他人的名字诅咒其死亡的方式发泄。该出版物内容封建、迷信且充满血腥与暴力,严重危害未成年人的身心健康。

该省“扫黄打非”工作小组办公室日前已发出紧急通知,要求各地区、各有关部门加大市场检查力度,一经发现《死亡笔记》,及时予以坚决收缴、封堵,并追根溯源,严防其滋长蔓延。全省各地正集中力量开展全面清查行动,坚决铲除这类文化垃圾,确保青少年健康成长有利环境,进一步净化湖南省出版物市场,以迎接党的十七大召开。


CCTV.com消息(新闻30分):全国“扫黄打非”工作小组办公室日前两次发出查缴《死亡笔记》等恐怖类非法出版物的通知。但记者在各地文具玩具批发市场发现依然有《死亡笔记》相关产品在公开销售。

《死亡笔记》是日本一部连载漫画,后来被改编为动画片和电影,故事讲述主人公意外捡到了死神遗落在人间的“死亡笔记”,只要在上面写下想要杀死的人的名字,就会变成现实。

记者在广州文具玩具批发市场暗访时发现,《死亡笔记》等恐怖暴力漫画的玩具、饰物和贴纸等依然在售卖。很多小学生都知道《死亡笔记》这本漫画。

在辽宁沈阳市一家动漫店,与《死亡笔记》动画片中一模一样的笔记本和羽毛笔明码标价,向中小学生销售。

动漫产品店销售人员:学生有一部分,80%吧。

但也有学生对此很反感。

学生:虽然说大家不相信这种迷信的事件,但是总觉得一看到你自己的名字出现在上面或者别人的名字出现在上面,会觉得特别反感。

专家认为,这种笔记本会给孩子的人格和生命价值观带来严重的负面影响。

儿童教育心理学专家 杨军:孩子正在学习中,他们本身就不怎么会处理人与人之间的矛盾,如果通过这种方式使得孩子们不能用正常的手段处理人与人之间的关系,久而久之会产生暴力或者极端的举动。


大陸政府對於刊物所持的家長式尺度不足為奇,特別是政治敏感的審查更是嚴苛,相比之下,對於近期香港的中大學生報情色版與淫審處事件絕對能夠體現香港言論及出版自由的可貴。雖然我認為淫審處現行的審查制度不公平,有必要修改,但至少現在的情況是,如果你不服裁決還有上訴機制。而在我們的祖國連出版一本貌似死亡筆記的普通筆記本也要被拉人封艇,這是使用筆記本的兒童價值觀有問題還是掃黃打非辦的這幫成年人有問題?他們就這麼幼稚的認為只要不允許販賣這些筆記本,學生與學生之間就沒有矛盾了嗎?沖突就可以化解了嗎?這樣就可以營造一個和諧社會嗎?荒謬至極。

絕對的權力終究會使人腐化,這是《死亡筆記》裡的命題。夜月神從殺死無辜的L替身一刻開始沉淪下去,最後變得連親人朋友也得要為自己賠命,這是當軟弱的人類獲得權力之後,逐漸暴露的陰暗面。漫畫以一本虛構的死亡筆記作為主軸,展現一個本來就活生生存在著的殘酷世界,很現實,很沉重,青少年的確未必能承受得起,但是把它列為非法只是逃避和不負責任的做法。

這次《死亡筆記》無辜的成為掃黃打非辦用來繳功的犧牲品,被利用為政治工具,我覺得它們的人格心靈很扭曲,絕對存在著問題,很想知道它們是不是在成長的過程當中看過像《死亡筆記》的“不良刊物”,所以受到了嚴重創傷。