Category Archives

147 Articles

微软大法好

13   127897 转为繁体

在被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   26906 转为繁体

不要使用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   41374 转为繁体

试试看见光了多久死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   102418 转为繁体

之前在内裤中国的源创会上摸到一块这个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   119140 转为繁体

想在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的形式