毕业

四年的大学总算告一段落,周围的同学在说要回顾自己四年得到什么、学到了什么。趁这两天闲下来也能好好想想这四年的点点滴滴。

总感觉这几年的生活就像是一场意外,意外之外的意外,有种死神来了的感觉,周遭的一切都在预示会发生的事情我却很少在意。

高二那年的一个下午,翘课陪会长刷黑庙蛋刀,聊着聊着聊到毕业,他随口问到:

”大学想来哪里上啊,要么来东北吧,来了带你玩。”

当时想也没想的就拒绝了,也没放到心里去(内心戏:我去东北玩泥巴我在大连没有家啊啊啊啊)

“不去,太冷。”

直到后来高考填志愿,我都没有考虑过东北的学校,冬天实在太冷了,零下几十度门都不想出,看了看分数稳稳的挑了两所江南的学校,好歹离家近,气候也适应,出国的机会和交换学校也都蛮不错。然而家里一再说报个提前批吧,好歹也是个机会,本着不想争吵和尊重家长的心态便看了看提前批的学校,都是军校警校医生师范。

完了,这没一个能报的啊,又近视又宅,不想穿制服和皮鞋,军校警校首先PASS,师范的男女比例确实让人羡慕,但是想想自己上学时候把老师气得,算了算了,法医倒是有可能。不过既然是为了尊重家人意愿才报的提前批,那就报个肯定上不了的吧,不但照顾了家里的想法,到时候还不影响一本录取,小算盘打得美滋滋。拿着厚厚一本志愿参考,闭眼一指,

“XXXX学院”

手动艾特度娘,什么“5千米拉练”、“扛水管跑步”,稳了就它了,体检体侧能活下来都已经谢天谢地了,报这个能去就怪了。

果不其然,体检近视,都没到体侧就淘汰了,心里那是一个开心啊,回家开开心心等一本,Wow什么的最好玩了,鲜血与农药为了部落!塔斯丁苟。然而谁知道过了两天接到一个电话彻底改变了这一切。

“A:喂,请问是XX同学吗?”

“B:是的,您是哪位?”

“A:这里是XX省公安厅。”

听到这我心里一惊,默默遍历了一遍最近干的事,上网没被查身份证,不偷不抢没遇到警察,没做亏心事不怕鬼敲门慌什么,但还是用略哆嗦的语气答应,毕竟第一次接到这种电话。

“B:您好,请问有什么事么?”

“A:这里有个中国XX学院你想来吗?”

此时大脑一片空白,WHAT?WTF?

“B:我没报这个学校啊?”

“A:就问你想不想来,想来的话写个申请,我们给你改志愿。”

志愿还能改?WTF?再次刷新了我的认知。

“B:哦哦好的,我回去和家里商量一下。”

其实根本不想商量,这事本来不在考虑范围内,然而接这个电话的时候老妈就在身边,这就彻底瞒不住了。一五一十的说完,好歹也是国字头的学校应该不会太差吧,提前录了也算是结束一件事可以好好玩了,综上就写了个申请。当时唯一比较在意的就是这个学校在东北而且不能选专业,总害怕到时候把我分到养狗的专业那就GG了,小时候睡觉不知道为什么腿上掉了一大块皮还不疼,一直怀疑是家里的狗子还去打了狂犬疫苗,从此对这种汪汪叫的生物充满怀疑和恐惧。

拿到通知书那天一脸懵逼,这就是通知书?谁设计的?一点文化艺术气息都没有,再配上破破烂烂的联通广告文件袋,不知道以为是快递点丢的垃圾。红红火火恍恍惚惚中想起会长一年前说的话,

“来东北吧,来了带你玩。”

Emme,这就很尴尬了,居然真去了,于是乎一个电话打过去,

“那个,会长大人,那个我去东北上大学。“

满脑子都是「智取威虎山」里面杨子荣毛茸茸的帽子和大衣外加“猪又炖粉条”。然后得到了会长的热烈邀请,

“好啊来啊,来了联系我,带你出去highhighhigh”

嗯~ o(* ̄▽ ̄*)o这就是传说中的面基么,真刺激,指不定过两天贴吧里失踪见网友的小孩就是我(话说我内心戏还蛮丰富的,一个大老爷们长的还安全,一般出门自带荒芜光环,附近5码寸草不生,附近10码人畜不分),虽然不是第一次面基,但之前都是本地线下,这可是第一次跨省,Wooo……Cooooool…..

暑假很快就过去了,还记得仲夏夜那如同梦一般的夜空充满荷尔蒙的气息,咳咳…..STOP✋

开学第一个月军训发了一套训练服,从上到下黑不溜秋,屁股上还有个大大的加厚层,穿上总感觉土的掉渣渣灰,天天嚷着要脱,但直到后来看到黑人兄弟穿上等价于直接在夜幕中发动潜行,才觉得这衣服还是蛮适合的(可能是所有制服里最舒服的),真香。

军训简直丧病啊丧病,至少对我这种四肢不勤五谷不分(去乡下只认识栗子树)的人来说简直就是要了老命,不过好在对操场暴晒后的塑胶味过敏请多半个月的病假,成功逃过一劫。

军训快结束那会发了正儿八经的制服,一票人在票圈刷屏,然后我穿上看了看,Emme,五味杂陈,楼下保安的气质扑面而来(没有歧视的意思),算了算了,我还是适合卫衣polo衫,银鳞胸甲阿迪王这种注孤身的套装。

第一个学期,虽然对这种半军事化管理和强烈的官僚气息一万个不适应,但还是努力像往常的开学一样,争取好好学习天天向上,积极参与学校活动,周末出去转转泡泡图书馆。

然而开学之后,这什么鬼地方啊,天天除了跑步就是没事叫你集合点名生怕你丢了似的,高中hentai生物老师都没这么查过人。网络安全的第一堂课居然是360杀毒,还会办打字比赛和电脑拆装比赛,突然有种时光倒流到曾经用金山打字通的时候,那时班上最漂亮的女生还坐我旁边

当时还庆幸好歹有个C语言,算法什么的应该快讲了吧,对别的没兴趣对撸码还是有兴趣的,毕竟曾经最想做到的事是混进暴雪,出现在鸣谢名单里,以前还写过一两个魔兽插件本来还对大学的课程充满信心,然而讲到冒泡就没然后了,后来问老师编译器的环境变量怎么处理,老师一句“你以后用不到的。”把我怼到懵圈。至于周末那就是借学长身份证出门左转100米,一键钟情欢迎您。

这一学期积攒了后面近四年都没消化掉的怒气值,这哪里是象牙塔嘛分明就是赫尔海姆,甚至后来还挨了个处分,原因是无假离校。😔自由自在惯的人瞬间变成笼中鸟,这比天使被砍了翅膀还难受,耿耿于怀的不是笼子本身 ,而是长久以后心里的枷锁,规则也好,世俗也罢,看不见摸不着,甚至成为自己的一部分,最后变成自己曾经最讨厌的样子。

“牢笼就是牢笼,但金丝雀从不在意。”

往后的学校生活几乎天天如此往复,自己身体难以承受的训练,无聊的集合,形式主义的教条规定,多数枯燥的课程,不透气的制服,厚重的皮鞋,安全模范的食堂吃出大蠊,无论主动还是被动,所有人都只能选择接受。唯一能脱离冰冷水泥和雕像的就只有冬天的雪,本可以存在更久,厚厚地覆盖住这里的黑色地面,却要被无情的扫去露出本就压抑的死寂。人们讨厌社会潜规则的本质,只是因为自己不是受益人。

其实四年里最受不了的就是一件事没做完被迫突然中断,然后就想不起来,后续的工作很难再接上。尤其在写代码的时候,被叫去收拾卫生莫名集合晚上熄灯种种,比云雨到一半突然家长查房还难受。

写到这想想好像很丧,但每天也的确了无新意,就像一个循环,持续四年,no break….

庆幸的是,遇到了一群狐朋狗友臭味相投,物以类聚人以群分,四年最快乐的事都来自于此。

2014.09.05 操场,

“A:盖世英雄到来。”

“B:哎你也听力宏啊。”

“A:对啊,欧阳先生在哪。”

认识了全校最骚的人,苟了四年,虽然也有过矛盾,但都是一点零食就解决的事。

2014.10.21 门口网吧,

A:“你也打魔兽啊。“

B:”哎你也是部落嗳。“

A:”听你口音像XX那边的吧。“

B:”对哦。我是XX那里的。“

A:”好巧好巧,我老家是那里的。“

于是乎认识了米胖胖,毕业了还不远百公里坐动车来找我修电脑,感动的一塌糊涂,第一次手艺被人这么认可。

2014.11.07 第一次面基,请会长吃的羊肉烧卖,真人比我想象的高一些😂。PS,从小到大第一次感觉羊肉这么膻。

2015.12.10 经室友介绍认识了他师弟,重度中二晚期窝狗+暴雪青,ID中二到我念不下去,曾经去取快递的时候被拦住聊了半个点(天津人是真的能聊啊)。

2016.06.09 前脚刚从开发者大会回来,后面就赶上魔兽电影上映,虽然没赶上首映但也超满足,小学就听说魔兽要出电影,都快大学了才了却心愿。第一次去电影院会有如此强烈的情切感,看周周围等着检票的人,有油腻大叔清新小姐姐COS萌妹,还有拖家带口来看电影的。确认过眼神,都是艾泽拉斯的窝狗。5人小队看完电影就去网吧排排坐M永茂林地灭的死去活来。

2016.08.17 去西藏玩被扎西罩着,拉萨最强导游,还获得成就<在全球海拔最高的网吧玩Wow>,作为信仰不同的人去虽没感受到什么灵魂上的净化(可能是没什么觉悟的缘故),但是一次很棒的文化旅行,有机会下次要去试试拉萨的酒吧~

2017.04.16 人生第一绿,虽然如此,但如果你怀疑一件事,当它被证明是真的时候,反而感觉比较好。

2018.02.12 和焱哥来一次古徽州暴走团,真的是从白走到黑,走到晚上没车,每周承包塔下包子铺的人就是能走😂。复习的时候每周都要看一部烧脑的电影,然后很认真的分析逻辑错误吐槽编剧有脑泡,吵得不可开交。奶死黄旭东,巨像能对空。

2018.05.06 毕业前最后一次温泉旅行,下次再这么聚会不知道到什么时候了。

Continue reading “毕业”

【转载】被遗忘的图灵:计算机、神经网络、人工智能……他是这一切之父

唐旭 发自 凹非寺
量子位 出品 | 公众号 QbitAI

106年前的今天(6月23日),阿兰·麦席森·图灵在英国伦敦出生。

1968年,也就是图灵逝世14年后,一份此前从未发表过的图灵论文原稿出现在了《科学美国人》杂志上。

在这篇写于1948年、题为《智能机器》的论文里,图灵第一次为世人勾勒出了人工智能领域的轮廓。

他不仅为联结主义理论奠定了基础,还引入了多种对于日后的AI研究至关重要的概念。

而在此之前,联结主义被广泛认为起源于在1957年首次发表相关论文的弗兰克·罗森布拉特。

然而,图灵这篇跨时代的论文在当时被自己的领导、英国国家物理实验室主任查尔斯·达尔文斥之为“小学生作文”,不予发表。

一份伟大的思想,就此失去了提早照亮世界的机会。

观其一生,图灵对于宣扬自己的思想始终缺乏足够的热情。他古怪、孤僻、木讷,任凭自己和作品在偏见中被埋没,并最终如愿以偿……

如同那份被埋藏的论文手稿——阿兰·图灵,最终成为了被遗忘的那个人。

算出不可计算之物

1935年,图灵23岁。

这一年,他构想出了一种后来被世人称为“通用图灵机”的抽象设备。这种设备拥有无限的内存,能够同时存储程序和数据;它还包括一个在内存上以一个符号为单位前后移动的扫描器,用于读取信息及写入额外的符号。

机器的每一种基本行为都十分简单,比如“识别扫描器所处位置的符号”,“写入‘1’”或是“向左移动一个位置”。但当大量类似的基本行为联结在一起,结果就会变得复杂。

虽然结构简单,但一台通用图灵机足以执行今天最强大的计算机能够完成的任何任务——事实上,所有现代数字计算机本质上都是通用图灵机。

在1935年,图灵的目标是设计出一台尽可能简单的机器,让它能在无限的时间、功耗、纸和笔以及完美的专注度下进行任何人类数学家能够借助算法完成的计算。称其“通用”,就是因为它有能力进行所有类似的运算。

图灵本人曾写过:“电子计算机是为了执行任意特定的、依靠经验法则的处理进程,这些进程原本可以由人类以一种有规则但却笨拙的方式完成。”

理论而言,图灵成功了。不过,一个引人注目的问题依然随之产生:我们有可能设计出甚至比通用图灵机更加强大的机器吗?

有段时间,超计算(Hypercomputation)领域吸引着越来越多的科学家。一部分人猜测,已知最为复杂的信息处理器——人脑本身——就是一个超计算机(Hypercomputer)的自然实例。

而在人们真正燃起对于超计算的兴趣之前,所有已知对于通用图灵机而言过于复杂的信息处理工作都被作为“不可计算之物”而忽略。从这个意义上讲,一台超机器(Hypermachine)应该能够算出“不可计算之物”。

“不可计算之物”的实例在数学领域十分常见。比如,对于一些随机选定的算术陈述,一台通用图灵机并不能判断出哪些属于定理(如“7+5=12”)以及哪些不是定理(如“任意一个数都是两个偶数之和”)。

还有一种“不可计算的”问题来自于几何领域。一组大小不同、各条边的颜色也不同的正方形瓷砖是否能“铺满“一个欧几里得平面(没有空隙、没有重叠且接合各边的颜色相同视为“铺满”)?夏威夷大学的逻辑学家William Hanf和Dale Myers就曾发现过一组通用图灵机无法计算的瓷砖。

在计算机科学领域,一台通用图灵机无法一直预测对眼前的程序是会终止,还是会永远继续运行下去。有时这种情况被人们称为,没有通用目的语言(Pascal、BASIC、Prolog、C等等)能够拥有一个哪怕最简单的崩溃调试器,它们难以发现能够导致崩溃的故障,包括那些会引发无限处理循环的错误。

图灵本人成为了第一个对所谓“超计算机”的构想进行研究的人。1938年,在自己的博士学位论文中,图灵描绘了“一种全新的机器”——“预言机”(O-machine)。

““预言机”“即一台通用图灵机加上一个黑箱后得到的成果。黑箱又被称为“预言家”(Oracle),是一种用以执行那些“不可计算的”任务的机制。

而在其他方面,”“预言机”“都与一般的计算机十分相似。输入一个被数字化编码过的程序之后,”“预言机”“会通过重复的基本行为组合一步步地输出结果。其中一步就是向“预言家”传输数据并记录其反馈。

图灵并没有说明“预言家”是如何工作的(他也从没解释过通用图灵机的那些基本行为——识别扫描器中的符号”是如何实现的)。不过单从概念上看,一种能够满足“预言家”特性的机制并非难以想象。

原则上,如果神经元的活动被去同步化,一个合适的B型网络就能对那些“不可计算之物”进行计算(如果存在一个能让各神经元协调工作的中枢生物钟,该网络的运作就能在一台通用图灵机中被精确地模拟出来)。

在超计算理论中,像“分辨算术定理和非算术定理”这类任务都不可解;即便是能够分辨出程序是否由C语言写成的调解器,也会陷入理论上可能的无限循环。

而如果超计算机能被制造出来,那么用它破解那些看似不可解的逻辑和数学问题的潜力将会十分巨大——不过,相关的研究尝试也很可能因无法满足实现“预言家”所需的条件而告吹。

在数理逻辑之外,图灵的”“预言机”“几乎被忘得一干二净;相反,一个神话被人们供奉了起来:在一份子虚乌有的记录中,图灵在二十世纪三十年代中期成功证明了超机器是可能的——传言中,他与自己在普林斯顿大学的博士生导师阿隆佐·邱奇宣称一台通用图灵机可以精确地模拟任何其他信息处理机器的行为。

这条被广为误读的“邱奇—图灵论题”意味着,没有机器能够解决通用图灵机能力范围之外的任务。

但事实上,邱奇和图灵只说过,一台通用图灵机能够模拟任何人类数学家在使用笔和纸的情况下借助算法完成的工作——对于一个神话而言,这个命题显然过于薄弱了。

图灵对于超计算机的理论贡献无疑被忽视了——即便是对于工作于这一领域的研究者而言。专家们永远谈论的是要执行“超越图灵局限”的信息处理任务,称自己的工作是在尝试“打破图灵障碍”。

《新科学家》杂志上曾有一篇报道甚至声称,全新的机器已经“超出了图灵的概念范畴”,它们是“图灵从未构想到的计算机类型”……

就仿佛半个世纪前,那位来自英国的天才从未踏足过这片领土。忧伤的是,那只不过是图灵联结主义思想的又一次复活罢了。

图灵联结

数字计算机都是无与伦比的神算子。如果让它们预测火箭的发射轨迹,或是计算大型跨国公司的账目,它们可以在几秒内就给出答案。

然而,换成那些对于人类而言轻而易举的事情——比如认脸或是阅读手写的文字,机器会变得完全不知道从何入手。

也许是因为组成人脑的神经元网络具备专门应对这类任务的部门,而普通计算机没有。因而,科学家们开始尝试开发结构更加接近人脑的计算机。

1948年,图灵36岁。

这一年,他在一篇未能发表的论文中第一次引入了联结主义的思想。在论文中,图灵发明了一种他称之为“B型非结构化机器”的神经网络,包含人工神经元以及可以对神经元之间的联结进行调节的设备。

B型机器中的神经元可以是任意数量,也可以以任意模式相联结,但依然神经元之间的联结必须通过调节器。

所有调节器都具有两条训练光纤。向其中一条光纤上加置一个脉冲,会将调节器设定为“通过模式”:在这种模式下,一个输入(0或1)将会原封不动地从中通过并转化为输出。

而在另外一条光线上加置的脉冲将会把调节器设定为“干预模式”:在这种模式下,无论输入为何,输出结果都将为1。在这种状态下,调节器会将所有试图通过的信息全部破坏。

一旦被设定完成,调节器将会一直保持“通过”或“干预”的状态,除非其收到另一条训练光纤上的脉冲。这一独创性的设计使得B型非结构化机器能够以图灵称之为“适度干预,摹拟教育”的方式来进行训练。

事实上,正是图灵创立了“幼儿的皮层是一个非结构化机器,可以通过适度干预训练来实现结构化”的理论。

图灵设计的每个神经元模型都有两条输入光纤,而每个神经元的输出就是两个输入的逻辑函数。网络内的每个神经元都执行相同的逻辑操作——“与非”(NAND),即只要其中一个输入为0,则输出为1;如果两个输入均为1,则输出为0。

图灵选择“与非”是因为所有其他的(布尔)逻辑操作都可以通过与非神经元的组合实现。更进一步,图灵还证明了连联结调节器本身也能通过“与非”来构建。因而,图灵指定了一种只由与非神经元和它们的联结光纤所构成的网络——这也几乎是最简单的大脑皮层模型。

1958年,罗森布拉特曾经以一句话给联结主义的理论基础下了定义:“被存储的信息以新的联结——或是神经系统内传输信道的形式而存在。”

由于对已有联结的破坏在功能上等同于新的联结的产生,研究者们就能通过使用一个包含额外联结的网络,并选择性地破坏一部分联结的方式来构建针对特定任务的神经网络。

图灵的B型非结构化机器的训练过程,同时包含了毁灭和创造两种形式。

图灵还希望能够发掘其他种类的非结构化机器,他一直想用一台普通的数字计算机对一个神经网络极其训练机制进行模拟。他曾说:“要允许整个系统运行可观的一段周期,然后像(突然闯入课堂的)”督学“一般打断它并观察它的学习进展。”

他原本有机会这么做。然而,在用上第一批通用电子计算机之前,图灵就已经开始了自己在神经网络方面的工作(1954年Belmont G. Farley和Wesley A. Clark在MIT成功运行了对于小型神经网络的首次电脑模拟)。

尽管图灵单单用纸和笔就能够证明,一个足够大的B型神经网络经过如此配置之后就能变成一台通用计算机。这一发现依然解决了人类认知领域最基本的问题之一。

自上而下来看,“认知”包括复杂的顺序进程,如同在数学计算中一般,它通常会将语言或其他形式的符号表征囊括在内。然而自下而上地看,“认知”只是简单的神经元燃烧而已。认知科学家面临的问题,是如何让这些不同的角度协调起来。

图灵的发现则为这一问题指明了一个方向:自上而下来看,如通用计算机一般工作的神经网络能够执行那些连续的、富于符号表征的处理工作,因此应该把关注点放在大脑皮层上。

在1948年,这一假说十分超前——而事实上,直到现在,它仍然是对于认知科学领域几大难题最棒的猜想之一。

尾声

1950年,图灵38岁。

在自己生命的最后几年,图灵开辟了人工生命的全新领域。

当时他在试图模拟一种化学机制,通过这种化学机制,一个受精卵细胞的基因将可能决定其发育而成的动物或植物的解剖结构。

他称,这项研究与自己在神经网络方面的研究“并非毫无关联”,因为“大脑的结构必须……通过遗传上的胚胎学机制而实现,而且,我正在研究的这种理论可能会更好地说明这一过程意味着怎样的局限性。”

在那几年,图灵成为了第一个在计算机辅助下进行非线性动力系统研究的人。他的理论使用了非线性微分方程来对发育的化学过程进行表达。

不过,这项开创性的研究只进行了一半。

1954年6月8日,图灵被发现在自己的卧室中死于氰化物中毒。除了那颗被咬掉一口的苹果,图灵还留下了一大摞手写的笔记和一些计算机程序。之后的几十年里,这些材料仍然不能被人们完全理解。

又或许已经被忘却。

WordPress WP-Super Cache缓存无法开启

0x00.启用缓存功能无效

即:设置→WP-Super Cache→启用缓存功能无效无法更新。

进入控制台,wp-config.php 添加:

define('WP_CACHE',true);

0x01.无法写入缓存文件…

即提示:Could not rename temporary file to configuration file….

进入控制台:

su root
chmod 755 /www/wwwroot/async.website/wp-content

WordPress删除链接中的category

0x00.Remove Category Base插件

无需设置,安装完即可食用

0x01.代码实现

将下列代码复制至主题→编辑→functions.php

add_action( 'load-themes.php',  'no_category_base_refresh_rules');
add_action('created_category', 'no_category_base_refresh_rules');
add_action('edited_category', 'no_category_base_refresh_rules');
add_action('delete_category', 'no_category_base_refresh_rules');
function no_category_base_refresh_rules() {
    global $wp_rewrite;
    $wp_rewrite -> flush_rules();
}
// register_deactivation_hook(__FILE__, 'no_category_base_deactivate');
// function no_category_base_deactivate() {
//  remove_filter('category_rewrite_rules', 'no_category_base_rewrite_rules');
//  // We don't want to insert our custom rules again
//  no_category_base_refresh_rules();
// }
// Remove category base
add_action('init', 'no_category_base_permastruct');
function no_category_base_permastruct() {
    global $wp_rewrite, $wp_version;
    if (version_compare($wp_version, '3.4', '<')) {
        // For pre-3.4 support
        $wp_rewrite -> extra_permastructs['category'][0] = '%category%';
    } else {
        $wp_rewrite -> extra_permastructs['category']['struct'] = '%category%';
    }
}
// Add our custom category rewrite rules
add_filter('category_rewrite_rules', 'no_category_base_rewrite_rules');
function no_category_base_rewrite_rules($category_rewrite) {
    //var_dump($category_rewrite); // For Debugging
    $category_rewrite = array();
    $categories = get_categories(array('hide_empty' => false));
    foreach ($categories as $category) {
        $category_nicename = $category -> slug;
        if ($category -> parent == $category -> cat_ID)// recursive recursion
            $category -> parent = 0;
        elseif ($category -> parent != 0)
            $category_nicename = get_category_parents($category -> parent, false, '/', true) . $category_nicename;
        $category_rewrite['(' . $category_nicename . ')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$'] = 'index.php?category_name=$matches[1]&feed=$matches[2]';
        $category_rewrite['(' . $category_nicename . ')/page/?([0-9]{1,})/?$'] = 'index.php?category_name=$matches[1]&paged=$matches[2]';
        $category_rewrite['(' . $category_nicename . ')/?$'] = 'index.php?category_name=$matches[1]';
    }
    // Redirect support from Old Category Base
    global $wp_rewrite;
    $old_category_base = get_option('category_base') ? get_option('category_base') : 'category';
    $old_category_base = trim($old_category_base, '/');
    $category_rewrite[$old_category_base . '/(.*)$'] = 'index.php?category_redirect=$matches[1]';
    //var_dump($category_rewrite); // For Debugging
    return $category_rewrite;
}
// Add 'category_redirect' query variable
add_filter('query_vars', 'no_category_base_query_vars');
function no_category_base_query_vars($public_query_vars) {
    $public_query_vars[] = 'category_redirect';
    return $public_query_vars;
}
// Redirect if 'category_redirect' is set
add_filter('request', 'no_category_base_request');
function no_category_base_request($query_vars) {
    //print_r($query_vars); // For Debugging
    if (isset($query_vars['category_redirect'])) {
        $catlink = trailingslashit(get_option('home')) . user_trailingslashit($query_vars['category_redirect'], 'category');
        status_header(301);
        header("Location: $catlink");
        exit();
    }
    return $query_vars;
}

 

Nintendo Switch使用体验

0x00.屏幕

外屏为塑料最高720P的非贴合IPS屏,完整sRGB色域,屏幕校准和对比度也没什么问题。

毕竟是以省电为目的的屏幕,中规中矩,最大的槽点估计就是非贴合屏幕,有时候会发白反光。

塑料外屏还是建议贴钢化膜。


0x01.手柄

JoyCon手感仅从掌机的角度体验还是不错的,至少比PSV的好得多,关于手感这个要看怎么比较了。

如果没用过DS4之类的主机手柄,之体验过掌机手机的话,JoyCon的手感还是很棒的。

如果用过主机手柄,那JoyCon的手感肯定是没法比的,虽然手感差但是功能还是齐全,比PSV略丧病的背触要舒服的多,比如截图就长按就是录下来录制前30秒的视频。

按键方面右手的摇杆和B键距离有点近,比如玩塞尔达将XB按键功能调换了之后B是跳跃,这样按起来右手大拇指不是很舒服。

➕、➖两个按钮虽然小但是因为形状特殊,盲按还是很准确的,但是按键高度有点低,如果给手柄带了保护套,➕、➖容易和保护套齐平,不容易按下去。

陀螺仪等感应器估计在右边的手柄(塞尔达有些体感关卡把右手柄拆下来玩有奇效),但两个手柄的震动感还是很细腻的。

任天堂还出了精英手柄,这个就因人而异按需购买了。


0x02.机身

通体塑料外壳,磨砂材质,摸起来比较温和,但是看着比较廉价,标准的玩具手感。

机身背壳的LOGO印花据说容易在和DOCK拔插时磨损,可能是TV模式用的不多,拔插的时候也相对小心,暂时没发现有掉漆的情况。

一向感觉保护壳很影响手感,所以各种电子产品最多贴个膜就裸奔了,宿舍、家里、公车、飞机、地铁都玩过,直接在大理石桌面也放过,不过一般会垫着机器的收纳套,所以运气比较好,暂时没出现划痕。

机身背壳有一个可以扣起来的支架,扣起来下面是SD卡槽,不要使劲拽支架,虽然拽掉了可以按上去。

机身支架比较软,对支撑平面、角度什么的要求比较高,很难随时随地的想到哪就能架起来,至少要个桌子吧。


0x03.系统

系统有中文选项但是没中文界面,但是就那么几个单词,不影响使用。

系统设置成中文,支持中文的游戏就是中文,不支持中文的游戏那就没办法了。

功能很少,只有相册(用来看截图视频的,要分享还只能拷到SD卡里或者用FB分享),主题只有黑白两色,不能自定义壁纸,没有浏览器(查攻略很不方便),不支持连接蓝牙耳机,说起来简直就是功能简陋。

音效也就是听个响水平。


0x04.综合实际使用体验&各种可能的问题

使用环境:警校宿舍(80%),家(10%),交通工具(10%)

使用身份:学生

使用时间:白天零碎时间、晚上9点-11点,平均每天能玩两小时左右

使用历史:PSP、PSV、XBOX 360、PS4

已入游戏:塞尔达传说(开放RPG),逃生2(恐怖RPG),返校(剧情RPG)、星露谷物语(肝)、无夜之国2(别买)

平时白天在宿舍可以随时肝塞尔达,拿起来就能玩,续航一般般,掌机模式充满电玩塞尔达也就5小时左右,但是对我来说完全够一天一充。

机器作为掌机来说还是有点大,躺在床上要么坐直玩,要么侧身躺着玩,半坐半躺的姿势玩手拿着机器很快就会累。

宿舍环境使机器容易进灰尘棉絮神恶魔的,毕竟机身上方很大的通气排扇孔,一直担心不过暂时还没发现有进灰的迹象。

晚上躲在被子里苟逃生和返校,感觉还是比较爽的,但是有一些需要按下摇杆的操作操作略僵硬。

风扇的声音掌机模式一般都很安静,凑近才能听到。

关于交通工具上玩这个因人而异吧,比如任地狱广告里有妹子在公车上和你玩,不好意思啊,我上车一般有座位、地铁有个抓的地方就哈利路亚了根本腾不出手玩游戏,更何况哪里有那种大丁丁女孩一起玩(>人<;)还晃来晃去。当然有座位玩起来还是可以的,但也要考虑NS屏幕在阳光下的可见性。总之在公共交通工具上玩体验并不是很舒服,一般除非是外出前遇到有一些停不下来的剧情才会随身把机器带上,而且NS比手机大得多,随身带机器一般还需要背个不大不小的包才行。

因为宿舍不能放显示器,所以一般都是玩掌机,回家才会插在电视上玩,暂时没有出现背壳变弯的情况,可能是不够热吧。

基于NS硬件性能,游戏的画质无法和PS/XBOX平台的画质比较,并且发热明显,像塞尔达的掉帧森林,输出在电视上真的完蛋,但是任地狱用大色块和光渲染的方法让画面看起来不难么难受。

但是无夜之国2这种就是掌机上看就一般般,插电视上差点劝退的。

一直想买乌贼暖暖来一波颜射,然而学校的网实在不敢恭维,魔兽日常延迟200+,能回家玩的时间又太少😔

买了塞尔达DLC感觉还能继续肝,塞尔达才150小时+,一天两小时这也是要每天玩两个半月才行,然而还有40个神庙没打,非硬核玩家还能继续肝下去(╯‵□′)╯︵┻━┻。

逃生2个人感觉不如逃生1,可能是很多室外旷阔的环境感觉气氛没有那么压抑。

返校墙裂安利,不剧透。

至于星露谷嘛,等我塞尔达肝的差不多再慢慢肝。

学校里还没见有人玩😭,估计是学校特殊还是什么的,打算在switch大群里组一个沈阳面基趴踢,本来想向设有安利NS,后来发现没用,再试着安利马车一起玩,先一人一半买下来一起玩,然后等他不想玩再80%的价格把另一半买下来,然而这样没人愿意😭导致现在不敢买双人游戏,全班就一个怪猎大佬我俩一起玩玩塞尔达,嗳~

NS的游戏阵容明显不如其他平台丰富,中文阵营也不是很丰富,也有戏称NS使很多第三方的4399,其实我就是为了塞尔达买的NS(●ˇ∀ˇ●),按照3A标准来说称得上大作的也就那么几个扳着指头都数过来。

不敢说以后NS的情况会是什么样,但还是希望不要暴死能出更多好玩的游戏。


0x05.关于破解

好处在于可能会向丰富生态和游戏本地化,很多不敢买没试玩的游戏也可以先行体验。

不好的在于很多人担心可能会降低厂商降低开发积极性,但是破解和游戏机的销量仿佛没有直接关系。

有的机器没有破解就已经死了,有的机器破解了依旧活着。


0x06.购买建议

  1. 游戏阵容:对比三家平台的独占和都有的游戏是否符合自己的喜好,比如XBOX家的光环,PS家的神海,NS家的红帽绿帽侠,这和买手机电脑单纯的看配置不同,手机电脑具有广泛的使用环境,而游戏机买了就是玩的嘛。
  2. 娱乐环境:在游戏阵容符合的情况下,如果有固定的娱乐时间和娱乐场所,推荐PS/XBOX,如果时间零碎场所不定那就NS。
  3. 玩伴:如果线下没人一起玩(对象、基友没有,家里人不愿意和你玩的),还是买PS/XBOX吧。NS没人一起玩那些多人游戏很没意思哒,当然也可以自己组织线下轰趴一起high。
  4. 预算:三家价格差的都不大,PS港服的会免最良心,MS和SONY在游戏机业务的策略使机器不赚钱靠游戏赚,然而任地狱机器也要赚,NS会员还没上线。如果使第一次买游戏机,不推荐NS,因为游戏少,买了发现没几个想玩的会失去对游戏机的热情,容易劝退。如果有过其他游戏机,那买NS的定位自己自然很清楚。
  5. 画质:PS/XBOX基本不用担心,NS要考虑。

壕不考虑以上所有,只要买买买就好~


0x07.写在最后

又水了一篇

希望NS越来越好~玩的人多了才有联机的乐趣嘛

期待类似奇异人生、模拟系列、文明这类游戏也能上NS

期待斯旺与巨像 抗德奇侠,贝姐3~~~

 

手机数据提取简介

0x00.SIM卡数据提取

如今,我们对SIM卡取证的方法通常用的方法有两种。第一种方法是利用专门的读卡设备对SIM卡的数据进行提取。在这种方法中,只要读卡器只要符合ETSI(欧洲电信标准协会)TS31.101和TS51.011两种标准指令集就可以对SIM卡中的数据进行提取。此外另一种方法就是通过指令对SIM种数据进行直接提取。

一般情况来说Android手机的SIM卡使用记录一般保存在data分区的data\com.android.providers.telephony\databases\telephony.db文件中,该文件类型为SQLite数据库。数据库中的表“sim_info”会记录使用过的SIM卡的ICCID、手机号码等信息。


0x01.AT指令集

AT指令集是从TE(终端设备,Terminal Equipment)或者DTE(数据终端设备,Data Terminal Equipment)向TA (终端适配器,Terminal Adapter)或者DCTE (数据电路终端设备,Data Circuit Terminal Equipment)发送的。

AT指令集最早是由”贺氏“微系统公司开发,初衷是用来操作调制解调器的,随后专门开发了一套手机专用的AT指令集。在这套专门为手机开发的版本中,开发者可以通过指令获取手机的产品型号、手机生产商、手机操作系统版本、IMEI、IMS、电话簿、电话记录短消息记录等信息数据。

Nokia、Ericsson、Motorala和HP这些被AT指令集覆盖的移动设备生产厂商共同为GSM 研发了一套AT指令,该套专门定制的AT指令集被用来控制手机的GSM模块。其中就包括对SMS(short message service,短信息服务)的控制。后来的GPRS模块,3G模块、4G模块均采用AT命令集来进行控制。

功能 AT指令 详细说明
厂商认证 AT+CGMI 获得厂商的标识
模式认证 AT+CGMM 查询支持评断
修订认证 AT+CGMR 查询软件版本
生产序号 AT+CGSN 查询IMEI序列号
TE设置 AT+CSCS 选择支持网络
查询IMSI AT+CIMI 查询国际移动电话支持认证
卡的认证 AT+CCID 查询SIM卡的序列号
功能列表 AT+GCAP 查询可供使用的功能列表
重复操作 A/ 重复最后一次操作

更多AT指令集请参阅:https://blog.csdn.net/u012686462/article/details/53199382


0x02.JTAG提取技术

JTAG主要用于高级器件的芯片(如高通高端芯片)内部测试,该类芯片均支持JTAG协议。标准协议下的JTAG接口有:TCK、 TDI、TDO、TMS,分别为时钟、数据的输入和输出线、模式选择。 针对高通芯片的测试接口且可以在主板上焊线并且通过JTAG指令,就可以直接控制CPU 强制读取 nandflash/eMMC。

绝大多数CDMA定制机器只具有充电接口而不具有数据传输接口,这些定制的机器大多采用高通的低端CPU。针对这类机器,可以通过使用JTAG技术探查主板,同时依据具体CPU型号采用专门方法进行数据提取,从而获得手机中数据的镜像。

JTAG取证技术的原理是将安卓手机背后的 JTAG触点连接到专门设备,相关人员使用手机向CPU发送指令,再通过JTAG命指令反向控制 CPU,将 FLASH所有数据发给 CPU,我们再从CPU把 FLASH芯片的数据取走。

JATG取证的优点是不论手机是否root,是否可以安装第三方recovery,USB调试模式是否打开,操作系统版本是多少都不重要,使用该方法都可以直接提取到FLASH芯片数据镜像。

微信6.6.6 EnMicroMsg.db提取

0x00.ADB 提取MicroMsg文件夹

挂载系统分区并定位至/data/data/com.tencent.mm/MicroMsg

使用ADB指令将MicroMsg以沙盒方式提取至本地:

adb pull /data/data/com.tencent.mm/MicroMsg  X:\

0x01.获取EnMicroMsg.db密码

在MicroMsg文件夹下找到EnMicroMsg.db数据库文件,该文件是加密文件,无法直接打开。

经过逆向分析得出,该数据库密码是一字符串的md5值,具体算法如下:

密码=md5(IMEI+uin),其中uin与登陆的微信账号对应。

在MicroMsg文件夹下找到system_config_prefs.xml,其中name=default_uin的整数值便是uin值。

在手机拨号盘中输入*#06#获取手机对应IMEI码,由此可得:

IMEI=354XXX77972179

Uin= -154XXX3212

密码计算公式为该字符串的32位md5码的前7位。

md5(354XXX77972179-154XXX3212,32)= 4ffcbXXXXX71a722XXXXXeb0a3fa

计算完毕后使用由SQLCipher 2.1版本编译运行查看器(经尝试,只有2.1版本的源码编译后可以实现嵌套加密功能,低于2.1版本无此功能,高于2.1版本不向下兼容)尝试解密数据库。


0x02.EnMicroMsg下常用表解释

0x001.Rcontact

列名 username Alias Conremark Nickname
解释 对应的联系人微信账户实际ID 对应联系人的微信账户显示ID 用户对联系人的备注 对应联系人的昵称

0x002.Chatroom

列名 chatroomname Memberlist Displayname Roomowner Selfdisplayname
解释 对应聊天群ID 聊天群成员微信实际ID 聊天群成员显示昵称 聊天群房主实际ID 该用户在所在聊天群中的自我备注

0x003.message

列名 issend Creattime Talker Content
解释 布尔值为0表示收到消息,布尔值为1标识发出信息 表示对话创建时间 对话发生的对象 消息内容

Android通讯信息提取

0x00. 获取通讯录数据

挂载系统分区并定位至/data/data/com.android.providers.contacts/databases/

使用ADB指令将database提取至本地:

adb pull /data/data/com.android.providers.contacts/databases/contacts2.db X:\

使用Sqlitebrowser打开contact2.db文件

主要通讯录文件在raw_contacts表和data表中

raw_contacts各列解释

列名 _id Account_id Display_name Last_time_contacted
解释 通过id关联其他等表中的联系人 标识该联系人所对应的通讯录登陆账户 对应联系人姓名 最后通话的时间

data各列解释

列名 _id hash_id data1~data15
解释 通过id关联其他等表中的联系人 该联系人信息的hash值 这几列为对应联系人的姓名、住址、固话等信息

0x01.获取通话记录

挂载系统分区并定位至/data/data/com.android.providers.contacts/databases/

使用ADB指令将对应的database提取至本地:

Adb pull /data/data/com.android.providers.contacts/databases/calllog.db X:\

使用Sqlitebrowser打开calllog.db文件

calllog.db各列解释

列名 number date duration geocode_location
解释 对应通讯记录的去电号码 通话记录发生的时间 通话记录持续时间 去电号码归属地理位置

0x02. 获取短信息数据

在安卓7.1中,mmssms.db文件位置再在/data/data/com.android.providers.telephony下,而是在/data/data/com.google.android.gms/database下。

挂载系统分区并定位至/data/data/com.google.android.gms/database/

使用ADB指令将对应的database提取至本地:

adb pull /data/data/data/data/com.google.android.gms/database/icing_mmssms.db X:\

使用Sqlitebrowser打开icing_mmssms.db文件,定位至表mmssms下

icing_mmssms.db各列解释

列名 Msg_type address date body
解释 消息类型,SMS为短信息,PDU为彩信 收到的消息的地址 收到消息的日期 消息内容

Android系统分区简介

0x00.挂载文件系统

首先将手机连接PC并开启USB调试,再使用PC端进入CMD,输入 ADB shell进入ADB界面。

输入df查看手机分区信息。

列名 filesystem 1k-blocks Used Available use% Mount on
解释 文件系统所在具体路径 文件系统空间显示方式,以1024字节为一个单位 已用空间 可用空间 已用空间百分百 挂载点

输入su启用superuser,使用命令挂载所查看分区:

Mount -o remount,rw /dev/block/mmcblk0p43 /system

0x01.System分区

System分区等价于PC端的C盘。System分区分区包含了Android除却内核kernel和ramdisk内存的其他部分,比如图形界面和所有priv-app等预装应用部分,清除这个分区意味着删除整个系统,刷机时的ROM便是刷入这个分区。

0x02.MISC分区

MISC正如其全称miscellaneous一样,但这并不代表这是一个不重要的分区,该分区挂载在/data目录下。MISC分区其中包含一些系统设置和系统功能,比如运营商区域识别ID(CID,Carrier or Region ID),USB配置和一些硬件的的设置,这些设置选项通常以布尔值表示其ON/OFF状态。

0x03.Recovery分区

Recovery分区即为恢复分区,通常来说负责手机的开机,在正常的分区损坏后,recovery分区中所包含的内核kernel和ramdisk来进行系统的自我恢复,可以理解为recovery分区保存了安卓系统的底层,进入recovery分区的系统可以对机器进行如擦除分区、挂载分区、adb slide等部分高级操作。

0x04.Boot分区

Boot分区包含内核kernel和内存ramdisk的分目录文件进行打包生成boot.img文件来进行烧录的。

Boot分区是必须分区,没有该分区手机将无法正常启动至Android系统。除非特殊情况才会使用recovery进行boot分区擦除,即format操作。

该分区一旦受损或被擦除,设备只能安装一个新的boot分区才能正常启动,通常是通过安装一个包含boot.img镜像的ROM包来实现boot分区的在安装

0x05.user data分区

User data分区挂载在/data分区下,也称为用户数据区,包含了大量用户数据:如通讯录、短信、设置等用户安装程序的数据。对该分区进行操作等价于对设备进行恢复出厂设置,或是在安装完第三方ROM后的第一次启动时的状态。通常在recovery系统中对该分区进行format操作清除该分区。

再取证中,挂载在/data目录下的userdata分区是最为重要的数据源,无论是第三方APP的用户数据还是系统自带APP的数据都保存在userdata分区下,这些数据会充分反映该机器的使用情景和使用者的详细特征,最为典型的便是即时通讯软件的聊天记录账户信息等和使用者产生最为直接现实映射的数据。

目录 解释
/data/app-installed apps 已经安装的程序
data/app-private-protected apps 受保护的程序
/data/backups-manufacturer backups(rare) 厂商备份
/data/dalvik-cache dalvik 模拟器数据数据
/data/data (application data)              应用程序数据
/data/local-apps 应用程序被安装前第一次被拷贝的位置
/data/misc -bluetooth and wifi information 蓝牙和wifi信息
data/propert-timezone.info 时区信息
/data/system-gesture.key.file 图案密码文件

/data/system-gesture.key.file作为屏幕九宫格锁定的记录信息具有极大的数据价值。在不影响手机其他数据的情况下解锁手机在取证过程是非常重要的条件,通过gesture.key文件可以反算出该设备的九格密码。

0x06.Cache分区

Cache分区用来存储系统经常访问的数据和APP的临时组件的内容,使用recovery擦除该分区不影响机器的使用但是会失去现有的数据,通常不会造成程序崩溃,这些被擦出的数据会在后续使用中再次生成。

0x07.SD Card分区

SD卡分区内包含内部存储空间和外部存储空间的映射,外部存储空间即通常所说的SD闪存卡,通常应用程序的数据均安装在内部SD卡中,包括用户的音乐、相片等数据均默认保存在内置SD卡中,而所有在外置SD卡中的数据均是由当前用户自我添加的。

擦除SD卡分区是安全的,前提是其中数据已经经过备份,擦除该分区意味着时区所有用户数据。

C#使用Xpath进行html解析

0x00.Xpath

XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。

XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。


0x01.添加引用

Nuget中下载 HtmlAgilityPack,项目中引用

using HtmlAgilityPack;

0x02.Load html页面

HtmlDocument index = web.Load("http://www.sonystyle.com.cn/mysony/acafe/index.htm");

0x03.查看所需元素的Xpath

浏览器以火狐为例

打开所需网页,F12进入控制台

定位到所需元素,右键→复制→Xpath

e.g:/html/body/div[3]/div[1]/div/div/div[1]/div[1]/div[1]


0x04.DocumentNode.SelectNodes的用法

DocumentNode.SelectNodes选择的是多个节点,需要使用集合

private List<string>list;

foreach (var sth in index.DocumentNode.SelectNodes("//ul[@class='slides']/li/a/img"))
{
  list.Add(base_url + index_img.GetAttributeValue("src", ""));//获取对应元素的src值
}

//*是固定格式,*表示匹配中的元素
/ 表示下一次
@表示对应的属性,如//ul[@class=’slides’]表示class为slides的ul元素


0x05.DocumentNode.SelectNodes的用法

DocumentNode.SelectNodes选择的是单一元素,所以需要使用该元素的绝对路径

var sth = index.DocumentNode.SelectSingleNode("//div/li/a/img");
var attribute=sth.GetAttributeValue("src", ""));

0x06.更多

Xpath参考手册