事情的起因是这样的,我想给我的极路由HC5761A刷其它固件,但是怕刷成砖,于是发现了有breed这种可以让路由器刷不死的东西,于是我去极路由的论坛找了找确实有每个极路由对应的breed,然后我下载了HC5761的breed,因为那里并没有HC5761A的。。然后按教程刷进去,变砖了。
一个灯也不亮了。。。。
然后买了一套比路由器还贵的装备来修这个路由器
好的接下来开始救砖日志。
事情的起因是这样的,我想给我的极路由HC5761A刷其它固件,但是怕刷成砖,于是发现了有breed这种可以让路由器刷不死的东西,于是我去极路由的论坛找了找确实有每个极路由对应的breed,然后我下载了HC5761的breed,因为那里并没有HC5761A的。。然后按教程刷进去,变砖了。
一个灯也不亮了。。。。
然后买了一套比路由器还贵的装备来修这个路由器
好的接下来开始救砖日志。
63图(2.87MB)
这只iPhone4由于触摸屏失灵,而且也不用了,所以我就把它拆了喵,顺便也期待着屏幕在装回去之后又能好起来。
结果是,装回去的时候不小心把电源键排线弄断了QAQ,然而触摸也并没有恢复OwO。。。。
总的来说,装回去以后比原来更废啦!
买了个飞利浦BDM3270显示器,由于用得太爽直到今天才发现忘了发图。。。。
这是一个32吋的显示器,收到货之后发现这尺寸比我想象中的大多了。。。宿管看见那箱子差点不让我搬进来
然后上一张图,为了显得它大,拍了张整个船坞的照片

这张全是麻点颜色发黄的照片是用完全没什么琴梨用的iPhone 6 Plus拍的。
由于它实在太大,想要放进最底层的格子里的话就没法装支架底座了,现在是斜着塞进去的,下面搞了一鼠标垫剪成两块卡在两边,加了个键盘稍微撑一下。鼠标是买屏幕送的,一般情况下就不用Arc Touch了。
node的require函数有一个规则,就是参数是一个模块的名字的时候,它会从当前文件的目录开始,一级级往上级目录搜索node_modules文件夹以及里面对应名字的模块。
比如当前文件的目录是`/etc/miao/papapa/doge` ,在这个文件里面有一个`require(‘jiajia’)` ,那么require就会在以下位置寻找`jiajia`模块
/etc/miao/papapa/doge/node_modules /etc/miao/papapa/node_modules /etc/miao/node_modules /etc/node_modules /node_modules
但是我要在非当前文件路径逐级向上查找模块的话,就没法直接这样用require了。
但我又不想自己写循环来实现这个功能,于是我开始打node自带模块的主意,既然require有那样的特性,那就一定有处理逐级路径的函数,于是我开始读module模块的源码。在里面各种find变量,找到了`Module._nodeModulePaths` 这个函数,它的功能就是把一个路径分析成逐级路径的数组了。
然后又各种find,找到了处理require路径数组的地方,发现它是module.paths,那么问题解决了,只要用`Module._nodeModulePaths` 先把路径拆成逐级路径,然后和module.paths合并就可以了。
var p=module.constructor._nodeModulePaths('/etc/miao/papapa/doge');
module.paths=module.paths.concat(p);
这么一来就达到了require搜索非当前文件路径的逐级路径效果。
要注意的是module是当前context的实例,所以对它的操作不影响其父模块以及子模块,在这里修改的module.paths和其它模块无关,也就是说在其它模块会失去这个效果,除非在其它地方也执行以上代码。
我已经尝试了修改process.env[‘NODE_PATH’],因为源码里初始化module.paths的代码中也用到了这个环境变量,但是直接修改并没有什么用,到了子模块里依然是原来的NODE_PATH。
不知有没有办法让这个效果作用到全局。
由于解决这个问题花了我一些时间,所以记录一下说不定可以帮到其他人。
process.stdout是一个getter,所以我们不能用普通的替换来换掉process.stdout来拦截写入它的数据。同时,process.stdout是一个Writable Stream,所以也不能简单地直接从它里面获取写入的数据。
一开始我花了不少时间来研究怎么可以从这个Writable Stream里读出数据,但是这似乎太麻烦了,然后我甚至想到了利用child process来拦截数据。最后发现其实很简单,我们只要重新定义这个Getter就可以了。
var stream=require('stream');
var rawStdout=process.stdout,//先拿到原来的stdout
newStdout=new stream.PassThrough();//创建一个passthrough流,这是一种特殊的Transform流,会直接把写入的数据吐出来
process.__defineGetter__('stdout',function(){//重新定义process.stdout的Getter
return newStdout;//返回我们的passthrough流
});
这样我们就成功拦截到标准输出了,要注意,这段代码必须放在有任何输出之前,一旦在之前有了内容输出,它就没用了。
然后我们就可以自己决定怎么处理stdout了比如:
newStdout.pipe(rawStdout);//内容输出到控制台 newStdout.pipe(文件的writable stream);//内容写入文件 newStdout.pipe(其它可写流);//随你怎么处理
同理,process.stderr也可以这样拦截
var a=[123,234,345,567]; a.length=0;//清空了
上面的清空方式虽然非常不合字面含义,不过还确实清空了。。。
var a=[123,234,345,456]; a.splice(0);//清空了
这方法倒是符合字面含义了,不过这个操作会返回整个一个新的数组,所以可能性能不如上面的一种方法。
从前天开始大红黑打不开所有的游戏了。
具体症状是
看样子是涉及到某个图形部件的程序都会爆炸,比如D3D或者OpenGL,或者两个都挂了,显驱完全删干净重装了还是这样。
问题是有很小的几率我能打开osu,这说明这不是硬性问题,应该是被某个程序影响了。
我已经试过禁用所有非系统启动项,确定了不是阿里呸保护进程的锅也不是QProtect的锅。
我一直怀疑是不是某个windows update包把我系统搞挂了。
今天打开kmplayer,他告诉我有更新啦!点我更新!
然后我点了更新,他看起来好像在更新了。
然后我发现更新界面上不断地Downloading,Installing切换着,更新要下载安装那么多次?
然后我的Opera自己跳出来了,自己跳出来?不!是KMPlayer给我下载了个Opera又安装了一遍!
然后我立刻杀了更新进程,到程序和功能里去找今天安装的程序,果然又找到了一个,叫Monkey Viking,我开始删除它,让我意想不到的是:

你想删我?你是人吗?
蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤这是哪个智障做的卸载程序
不一会儿,我的PowerShell一闪而过,那么又有东西被装上了,让我看看任务管理器。
然后找到了这个东西

这什么?不知道,管它是什么,反正要卸载掉。
我就觉得这里面又有锁又有扫把,那一定是我要删的东西,我纯洁的SurfaceBook不容你们这些垃圾软件进来侵犯。
顺带一提,安装好的Opera快速访问里第一个是hao123.
以前kmplayer只是无视频播放的时候给我来个广告页面,这也就忍了,现在竟然玩起捆绑安装了,所以怎么办?卸载之。
暂时用mpc-hc做默认播放器了,顺便求推荐好用的播放器。
虽然我以前就吃过一次这个亏,不过昨天又犯这错误了。
虽然js里万物皆对象,不过也不是啥对象都可以加属性的,比如字符串。
var qweq='asdasdasdas'; qweq.miao=123; console.log(qweq.miao)//undefined
所以字符串是没法添加属性的,同理,数字、Boolean也不能添加属性。
我发现它们都是传值型变量诶。因为本体只有一个值,所以不能添加属性吗。
这是一个USB外置声卡,淘宝上19块买的,不过用了一下感觉就是一坨辣鸡,完全没有一点低音,而且电脑上音量只开1%声音也大的要死,只是19块买来的再邮回去邮费还得自己付,实在不划算,于是我就让它进入了佳佳拆解系列。
不过吧。。。。这东西结构也非常简单,其实是没啥资格进拆解系列的,但我还是想凑个博文
前天英语,昨天军事理论,今天高数。一路过来感觉应该不会挂科的样子。(就算真挂了学校也提供一次免费补考机会哦!)
这大学没有期中考,只有期末考,于是出现了一大群人到考试前抱佛脚的情况,因为平时都没有考试,所以到期末考试前啥也不会,我也靠这几天的恶补才会做了一些题。
现在就等5天后的思修和计算机考试了,从模拟考点的情况来看应该不会死的吧,我也就不复习了喵~
这回我体验了一次一边给网站搬家一边跨年。。。
网站们全部从yardvps搬到萌萌哒的conoha了,这次网站搬家花了很大的功夫。首先,我开始使用docker容器来装每个网站,为此我自己还制作了nginx+php7和apache2+php7的两个image,折腾了好多天来调试。第一次接触docker和nginx,所以这次搬家也学了不少东西,但也多花了不少时间。。
这次我的服务器布局是一个容器里用nginx接受所有请求,然后分发到其它各个容器里。其它容器里有的是nginx,有的是php7,有的是nginx+php7,有的是apache2+php7,就是这样一个复杂的环境啦!网站的文件全部是放在容器外面然后挂载进去的。然后mysql也单独放在容器里了,数据库目录放在外面。SS也放在容器里了,用了现成的image(这似乎是最简单的部署ss的方式)。
这回,我也用cloudflare减速了我的网站(日本->美国->中国),防止再次出现访问爆炸的问题。
在2015年困扰了我数个小时的让后端apache2+php7正确识别“前端接收到的是https请求还是http请求”的问题在2016年用一个多小时就解决了,当然这也是建立在2015年的经验基础上的,好在2016没让我再花数小时来解决这个问题。
过几天就要期末考试了,然而我还在一心一意挂在电脑上,高数大部分不会,英语到现在没明白那课上了干嘛,军事理论不明所以,思修听了一学期神话,书上几乎没教什么,唯一能保证及格的只有计算机了。。。但我不想挂科吖!
复习的事还是等我把在线人数统计修好再说吧。。。
可以说网易云音乐是国内非常良心的一个云音乐了,它在某些方面非常符合中国国情,比如各种版权问题。
版权问题怎么办,官方遇到版权问题只有两条路,要么买版权,要么下架。
网易云音乐就聪明在,就算音乐下架了,音乐依然在服务器上,记录也依然在服务器上,只是不允许新用户下载了。
但是网易云音乐有个人云盘机制,由于个人已经获得的音乐(在你音乐列表里前面有个圈✓的音乐)遭遇版权问题的时候会被网易自动放进你的云盘里,所以就算音乐下架了你还是可以在自己的任何设备随意下载。
这时候你碰到了一首已经下架的音乐,只需要在网络上下载一个任意音质的同首音乐上传到你的云盘即可(有个小前提是网易云要能够把你上传的文件和乐库里已有的音乐匹配起来)。
获取版权音乐则更简单,只要在客户端里右键复制链接到浏览器里打开,然后打开浏览器开发者工具(不同浏览器打开方法不一样,在此不做介绍),转到network,过滤成只显示media的状态,然后在网页上点播放,这时候network列表里多出来的那个就是你要的音乐文件,然后把它上传到云盘即可,你就拥有它了。
5APVJZ
拿走去用我还能拿返现
刚刚我一边走一边充电200多次,终于硬是把等级升到了7级,终于成为一个标准战斗力啦~
学校这附近po少的可怜,升个级实在太难了。 继续阅读Ingress七级啦