Category Archives

147 Articles

微軟大法好

13   127763 轉為簡體

在被windows 10和office 2016的安裝虐的體無完膚之後,我終於看清了微軟的開發團隊是如何的王八egg。

436919cbgw1ev6nkgyb81j204b053746

舉個例子,假設微軟做了個機器人,功能是去一個房間把房間中心桌子上的筆記本第一頁上的內容記下來;如果桌子不在房間中心,那這個機器人還是會回來告訴你「沒桌子」的,但是要是房間中心有個桌子而筆記本掉在地上,或者桌子上確實有個筆記本,但是第一頁被撕掉了,那這個機器人就懵b了……

遇到此類問題時,切記不可過度依賴查詢錯誤碼,基本沒啥卵用;按照微軟的思維,只要變成它認識的狀態就行了(比如,重裝是萬能的)

436919cbgw1ev6nkgmplpg203c03b413

Read More

VIA音效卡如何才能在Win10中使用THX TruStudio音效增強-How to enable THX TruStudio for VIA card in Windows10

1   26840 轉為簡體

不要使用Win8或以上系統自帶的驅動!

我懷疑寫THX TruStudio那群坑比是硬編碼設備名稱的……裝了Win10的新驅動(6.0.11.800)之後,音效卡的名稱變成了VIA HD Audio,而在6.0.10.1900之前,是VIA HighDefination Audio

諾就是這貨↓

436919cbgw1eum67tq83nj208d07wt90

因此我們只能用這個2013年發布的6.0.10.1900版本驅動。我在這裡傳了一份備用:http://pan.baidu.com/s/1nt9XJqL

 

One Line: Do not use the driver shipped with Windows!

Maybe the guys writing THX TruStudio hardcoded device name. The newest driver from Win10(6.0.11.800) gives me the sound card name as VIA HD Audio,but before 6.0.10.1900, this was VIA HighDefination Audio.

So let’s just use the ancient driver 6.0.10.1900 (or before) released in year 2013. Here’s a mirror:http://pan.baidu.com/s/1nt9XJqL

使用非443埠轉發https流量扶牆(一)

6   41270 轉為簡體

試試看見光了多久死hhhhhh

原理

實驗表明,我國自主研發的科技火牆型絡設備(以下簡稱GFW)具有以下特徵:

  1. 對所有目標埠上的流量存在字元串過濾,如HTTP和明文的郵件消息
  2. 對443埠存在主動探測或舉報機制(具體情況不明),表現為具有包括Google、Twitter等的CN在內的證書的ip會在半個月後被牆
  3. 目前,GFW對非443埠上流經的HTTPS流量不存在第2條所述的措施

436919cbgw1etosshjvw6j209s01pweg

 註:也可以是用SNI Proxy來隱藏證書,主動探測一般情況下不會使用SNI擴展來探測443埠的證書。可以使用這篇博客中提到的項目lua_resty_sniproxy。

 

Read More

華為海思poplar單板

0   102355 轉為簡體

之前在內褲中國的源創會上摸到一塊這個poplar單板。那次還抽到一條短褲,雖然至今沒穿過www

搞完x11發現只能走HDMI,心碎……然而只有一塊彩屏是用SPI介面的。難道去淘寶一塊插usb的液晶屏www

先就當一個低功耗電腦用用好了,能帶動移動硬碟,有個SD卡插槽。還是可以玩耍的

OpenEmbedded什麼的有空再整理

給大家貼個ipk的feed(硬碟不夠,刪掉了點debug和doc),加到/etc/opkg/opkg.conf里:

src/gz cortexa9t2hf http://poplar.yooooo.us/packages/cortexa9t2hf-vfp-neon
src/gz hi3716cv200 http://poplar.yooooo.us/packages/hi3716cv200

src/gz all http://poplar.yooooo.us/packages/all

需要修改一下local.conf,加上以下配置才能使用opkg:

然後重新生成鏡像。刷進去之後就可以opkg update 然後opkg install xxx啦

另有rootfs http://poplar.yooooo.us/images/,根分區的大小調成了1G

Lua用setmetatable返回默認值為function時的暗坑

0   119078 轉為簡體

想在api伺服器里實現一個acl的功能,對某些請求(需要登錄,需要檢查appkey,需要限制頻次等)做限制,對某些起始狀態(比如登陸)或者終結狀態(比如報錯)的請求放行。

因為lua里木有switch case,因此通過一個acl_list的table去查找規則,因為需要限制的請求種類比較多,就把rule_check_token當成默認值了,一看是是這麼寫的:

然而卻會在local token= xxxx那一行報stack overflow,想了半天也發現哪裡有無限遞歸,因為query傳進來的是http請求的query string解析出的鍵值對錶。

把query列印出來一看,發現竟然是這個模塊本身……

仔細看了文檔才知道,原來__index後面的值是一個function時,lua會調用這個function去獲得不存在的鍵,並且第一個參數是模塊本身(即_M,一個table)。在這個例子里:

  1. 調用一個非默認規則的api
  2. lua調用了rule_check_token
  3. 參數query被傳入了_M本身
  4. 運行到local token= xxxx這一行
  5. 這個table里(_M)又沒有token這個鍵
  6. 回到2

所以就死循環了

 

所以要好好看文檔

 

解決方法是可以套一個function

 

貼一個列印table的工具,方便調試:

可以列印出如下形式:

使用openresty請自行改寫成local function和ngx.say的形式