友人C - 工作
type: channel
link: https://www.ihewro.com/tag/工作
items: 研一寒假作业--geek云会议
items: 终端与shell的区别
items: 2019北邮考研我的个人经历
items: Bose qc20 和 qc35II 降噪耳机入手体验
items: 第一次的京东售后体验——极速
items: 记录一次vivo x5max+的root经历
items: 利用upyun又拍云CDN服务配置全站HTTPS
items: 怎么学JavaScript？
items: instantclick 中文文档
items: 利用github pages快速搭建hexo博客

研一寒假作业--geek云会议
type: item
date: 2020-03-04T19:23:00+08:00
description: 研究生的第一个假期作业终于在今天结束了。寒假作业评比一共三轮，一共7个组，我们拿到了第一名，小组奖金900元虽然金额不大，也算是没有辜负我们组所有人这么长时间花费的努力。所以，简单记录一下这个寒假的工作吧~接收到任务1月10号学校放假，那时候新型冠状病毒还并不是一个新闻。我以为这又是一个枯燥的寒假。本来我们的寒假期间是1月10号~2月5号（正月十二）所以虽然我们腊月都感到截止日期的逐渐逼近，但我们还都是心照不宣的不讨论寒假作业这件事情。到了正月初四，组长终于开始意识到“问题很大”。于是组长贴心的下午两点叫我们起床，开工。那个时候虽然只是听说疫情挺严重，学校的通知也只是正月15之前禁止到校，但谁也不知道疫情竟然已经如此严重了，延迟开学居然延迟3月份还未能开学。[album type="photos"][/album]1月28号，正月初四，如果按照既定的时间截止的话，时间已经很紧急了，但是我丝毫没有开始写代码的欲望，甚至还有一种莫名的自信。但是组长的任务安排也都是有更近的截止时间，所以每天下午3点左右简直就是灵魂拷问时间啊2月4号之后，公司那边要求2月7号提供项目目前的进度报告：所以我们必须在2月6号左右就得完成一个大概的初始版本。也就是至少客户端可以直播对话。需要认真起来了然后这个时候，我对整个项目的流程都不是很清楚，拉流推流啥意思。recorder、grabber是啥。player、client、capture关系又是什么，我真的不太清楚。关于我们这次视频会议，公司之前在直播这方面有所研究，一直开发维护theia项目，这个项目的功能就是主播直播，观众观看、发弹幕、连线之类的。不管怎样，到了2月7号晚上我们基本有一个可以用的版本了。界面啥的基本都是沿用theia项目，我们为了简化流程，客户端拉流的只拉了一个多个用户的混合流。就这样有一周暂时没怎么写寒假作业，2月15号我觉得学一下javafx，重新写一下客户端这边界面，现在的界面颇有一股复古的气息。界面重构以及流程梳理本科的时候用netbeans写过java的桌面端程序，netbeans是可以直接拖控件就创建好界面的。现在使用Scala+javafx，于是学习了screnbuilder的用法还有jxml的用法，以及在网上找到了一个Scala+javafx的helloworld demo。到了19号我基本把界面重构出来，也把整个客户端的流程重新设计了一下，整个client模块我基本是重新写了一遍。到了2月25号的时候，对照寒假作业的要求，发现我们还有一些功能没有完成：这几个功能让整个会议的功能变得复杂了很多。除此之外，之前client只拉一个混合后的流的做法虽然简单，但是问题是显而易见的，延迟太高，5、6s左右，而且用户自身的画面和声音在混合流中，都有延迟，就很奇怪。所以，最后我们还是决定客户端拉多个用户的流，这样问题是增加了客户端这边的内存开销，但是效果是延迟更低，会议效果会更好。不仅如此，在最后的几天根据发言人、支持人身份对客户端的画布进行动态分配。写代码是一回事，等真正一起联调测试的时候，bug就是一个个的浮现水面了。准备最后的评选2月28号，我们开始了第一次测试，当时由于我开了全局代理，导致 new Image(url) 这个地方无法对图片进行加载，以至于我一打开会议界面就卡死了。所以第一次测试只有我们组的另外两个人。当时测试问题还比较少。到了29号晚上3个人测试，问题就变得特别多，不仅客户端这边，后台那边对ws消息的处理也有一些问题。3月1号下午我们又开始了测试，这才基本没什么影响使用的大功能了。3月2号开始了第一轮评比，7进3，我们录制一个4~5分钟视频发到视频网站上，然后研二的学长学姐们评比3月4号上午开始第二轮，3进2，同样是录制一个1~2分钟的视频发到视频网站上，然后参赛其他组评比3月4号下午开始进行第三轮，2进1，是参赛其他组直接观看web端的录像（混流后的）进行评比。由于我们客户端界面好看，第二轮我们录制的视频还特意做了一个小剧本，配上朱一旦的「完美搭档」的bgm，第三轮我们web查看的录像的混流效果很好，延迟较低，而且音画基本同步。所以最后，我们拿到了第一名。从一开始我们感觉好像来不及，到最后我们每个人都是朝着第三轮的目标开始完善自己的部分。也算是没有辜负我们的努力吧~最后的完成的界面：同时还有web端可以查看和管理录像。相关技术和工具：scalajavafxsrs 流服务器ffmepeg项目地址：https://github.com/HiddenTrackMJ/geek有兴趣欢迎star,fork~

终端与shell的区别
type: item
date: 2019-04-19T14:59:00+08:00
description: 当我从Linux转换开始使用macOS的时候，我发现macOS的终端很丑，它长这样：于是我找到这样一篇文章：Mac OS 终端 iTerm2 并配置 zsh。所以什么是终端，什么是zsh。终端很久很久以前，终端这个概念是这样的：是一种硬件，是一种输入输出设备，用于和计算机交换信息。终端的工作：用户通过终端输入命令，终端将命令传入计算机，执行后，并把结果输入到终端上显示。从这个概念不难可以看到电传打印机符合这个概念：但是现在计算机硬件一体化程度越来越高，硬件质量也越来越强，输入输出设备完全没必要单独用一个硬件和计算机进行交换信息了，取而代之使用软件终端和计算机进行交互信息。这就是终端模拟器 (Terminal Emulator)，也就是我们现在所讨论的终端。除了它不是硬件，它符合终端的概念和工作流程。举个例子，下面这些软件都是终端：1GNU/Linux：gnome-terminal、Konsole；macOS：Terminal.app、iTerm2；Windows：Win32 控制台、ConEmu 等。shell我之前很迷惑一个问题是，有终端就够了嘛，输入命令，执行并把结果输出，要shell干什么。更让人抓狂的shell还有很多种类，bash,cshell,zsh。这些到底是做什么的？所以需要明确下终端负责的工作。终端的工作范围：接收用户的输入，显示传过来的输出。（此外还提供一些优化用户体验的功能，比如支持文字复制粘贴、软件背景颜色的调整等）终端的工作其实是很少的哦，简单来说3点：GUI软件界面、接收输入、显示输出。而shell的核心工作就是操控计算机内核（如新建文件等等），即访问操作系统中的某个具有一定功能、可以处理具体事务的文件(二进制文件 ---- 此类文件经常被称作工具)、或包含一定内容的文件(文本文件)2shell分为：图形化 shell（图形化的桌面环境），如Windows Explorer （文件管理器）、 Linux的桌面环境有：KDE、GNOME、CDE、 XFCE等。命令行 shell。如bash 、sh 、csh 、ksh我们一般讨论shell都是指命令行shell。shell为什么叫做命令解释器不管是GUI shell 还是命令行 Shell，其实都是在解释命令，只不过GUI shell隐藏解释命令细节，用户通过点击鼠标的操作操作内核命令。shell为什么叫做壳如上图，shell通过解析命令调用 系统调用和相关API操作内核命令，进而读写硬件完成任务。shell是最外的一层的接收用户操作，像一层壳一样裹在整个调用过程中。为什么有这么多命令行shellshell与shell脚本语言并不完全相同的概念。shell除了包括对命令的语法规范（shell语言）和对命令解析，还包括一些额外的功能（如命令补全、主题等等）。shell语言和我们学习的任何其他高级语言c,python,java没有太大区别。不同的shell语言可以看做java语言的不同版本。不同shell的区别主要是两方面：脚本语言语法有差异功能、外观、自定义美化上有差异脚本语言早期的sh甚至不支持给长命令设置别名的语法。3zsh虽然完全兼容bash的语法，但还有一些语法差异，具体可以看Zsh和Bash，究竟有何不同 坑很深自定义功能配置除非我们需要编写shell脚本，普通用户一般很难发现不同shell脚本语言差异。对文件操作ls、pwd等等这些常用命令所有shell都一样支持。所以我们普通用户更关注是细节、外观、功能上的差距。这一点zsh做的格外的优秀。比如色彩高亮、命令提示、智能补全、快速跳转等等附加功能。4我们在讨论配置终端的时候，实际上是在讨论配置shell。为什么zsh如此受欢迎？这个较新的shell与bash兼容，但包括更多的功能。 zsh shell提供内置的拼写校正，改进的命令行完成，充当shell插件的可加载模块，允许您在命令行上别名文件名或其他任何东西的全局别名，而不仅仅是命令，以及更多主题支持。 它像bash，但有很多附加功能，附加功能和可配置选项，你可能会喜欢，如果你在命令行上花费大量的时间。3总结： 终端就是软件，是最外层的，shell = shell脚本语言解析器+编辑、外观等额外功能不同shell的切换输入cat /etc/shells，可以查看本机上的所有shell：临时切换比如切换bash，直接输入bash，即可切换到bash环境下，输入exit，复原默认shell环境。默认切换5#使用系统自带的 zsh：输入密码成功切换，重启终端即可使用 zsh。 chsh -s /bin/zsh #使用第三方的 zsh，如从 brew 安装的 zsh。 sudo chsh -s /usr/local/bin/zsh 命令行界面 (CL…

2019北邮考研我的个人经历
type: item
date: 2019-03-31T12:46:00+08:00
description: [scode type="red" size="simple"] （网络计算研究院2020年被合入了计算机学院）关于网研1组的名额的事情我是完全不清楚，抱歉[/scode]本来这篇文章是很早之前写的，写到一半写不下去。现在上岸了，我打算完结这篇文章。可能是写的心情不一样吧。知乎上初试学习方法帖子很多，我的初试成绩也不高，所以我只打算一些我曾经迷惑的问题。报考：北京邮电大学 网络技术研究院 计算机科学与技术 {人工智能、网络智能化、人机交互}研究方向笔记集合[post cid="916" size="small" /]初试总分： 342(101)思想政治理论：58(201)英语一：66(301)数学一：100(803)计算机学科基础综合：118我希望我的一些文字能让你更轻松的面对考研。当我回过头来看，我们作为大学四年的成年人，我们不应该再和高三一样，把考研当做人生的一道坎，或者当做一个特殊而重大的任务。我们应该把考研当做生命的一种经历，一个过程，一个体验。就像我之前说的，我觉得人生不应该是工作、放假、工作、放假这样的循环。不管是很累的工作、还是放松下来的假期，我们都应该坦然的去经历。去年这个时候我还待在家里，考研我一无所知，我不知道怎么报名，我当然还幻想可能可以保研，也不知道考研只能报一首学校，以及如果学习准备我也一无所知。所以我想说的是2020年考研的小伙伴完全来的及，先不必急。我当时只是心里有点着急，但实际上什么也没做。不知道考研是自己看书还是听视频。正式备考（7月份）之前，也随大流的一样的每天拿的数学训练册做几题玩一会手机，又或是看看课本，根本都不做题。到了8月份时候，我发现我之前看的高数，线代，概率论，我彻底彻底忘了，我看到一些概念，我甚至不知道什么意思。因为我没做题。我回答一下可能疑惑的一些问题，这也是我当年困惑的问题：考研累吗累，但是别无选择。我是7月份开始备考的，当时夏天天气最炎热的时候。一开始学习效率不高，第一个月还偶尔去看电影。不是很紧张。学习过程中看手机。但是我很快调整过来的，因为时间太紧了。我觉得可以从这几个方面缓解：首先，自己为什么考研？我自己考研首先我的专业课知识学的太不扎实，考研前，我的计网一塌糊涂，数据链路层我没理解这个链路到底什么意思？一条路吗？所以我没办法找工作。其次，我希望我在研究生中能学到更深层次的理论知识，如果一旦工作，基本很少有学习时间和自己的空闲时间的，我觉得我没办法很快接受这样的环境。其次，给自己复习订一个整体时间规划：我当时规划是这样，7-8月看完数学课本，7-9两个月看完4门专业课。10-12月每个月大概完成什么任务。每天也要有每天需要完成的计划，我一开始总是每天计划内容太多，导致完成不了，所以计划一定要合理。计划需要定期根据你的进度调整，这样你心里有数，你的进度到哪了。ps：也不至于网上说的不洗头，没必要，该整理自己还是要整理的干干净净的，头要洗，不然头发都没了每天学多长时间我每天早上9点醒，10点才开始起床学习。10-11：50 上午学习13：00 - 17：50 下午19：00 - 22：00 晚上这样一天也有10个小时了，到了10月份之后，晚上学到22：30左右。对于我来说，可以了。我早上起的很晚，大家可以根据自己作息安排，保证一天任务量能够完成即可。我也尝试过早起7点或者8点。试了几天，发现上午特别困，都快睡着了，根本学不进去，就索性放弃了。学习时候带手机吗不带。我一开始带。到了10月份之后就彻底不带，因为时间彻底不够了。有人说，查单词啊，要用手机……我觉得没必要，张剑的英语黄皮书，赠送了一个词汇本，遇到单词用这个查并标记好就行了，上面查不到的单词就没必要管。当然个人有不同安排，但是我建议不带。因为真的学习过程中很枯燥的，尤其是前期，不是太紧张的话很容易松懈。跨考计算机难度大吗我今天问了室友才知道三跨是什么意思。跨专业、跨省、跨学校。其实难度最大的应该是跨专业。跨专业的同学认为自己底子差，和计算机专业同学没办法竞争。老实说，本科学校交给我们的实在是太少太少，而且本科上课不积极，不认真。计算机网络、组成原理本科学的时候我也没有学明白，只是为了应付考试，做了一些题目，获得不错的分数。这些专业课知识都是我在考研期间才学的更仔细了一些。我是学渣，我摊牌了本科上课学的语言C / C++/ Java，其实都是学的很浅。C的语言我忘了差不多了，C++ 没仔细学，主要用的最多是java。语言你学了一门，你会发现语言是很有基础语法是差不多，所以跨考的同学熟练掌握一门语言我认为可以了，在这个基础上，再了解别的语言不会花费很多时间。(我个人认为java是门很容易基本使用的语言，因为很多方法都是jdk提供的，比如动态数组、list，当然c++也有，我更喜欢java)所以跨考学生不必要担心和别的…

Bose qc20 和 qc35II 降噪耳机入手体验
type: item
date: 2018-04-17T20:55:00+08:00
description: !> 总结：QC 35 头戴式耳机个人不建议买，原因：头戴式，时间带长了，头发压得很难受。而且戴眼镜的话，降噪效果会差一点。QC20 降噪神器，十分推荐，买过这么多东西，便宜的，贵的。QC20 是我买的最值得的一件物品。（因为我特别讨厌噪声，特别讨厌）我个人是对噪声很敏感以及很讨厌的，所以自从入手了降噪耳机，可以说生活烦恼少了很多。Bose qc系列都是降噪耳机，因为很早以前入手的降噪神器qc20（入耳式），最近又入手了qc35II（头戴式），所以就我的体验写下此文，做下对比，给想要入手的小伙伴做一个参考。先上两款的实体图：（图来源见水印，我自己拍的不好看就不拍了 ::twemoji:sweat:: ）[album type="photos"][/album]降噪效果首先两款耳机都不是全频降噪的，不可能戴上后什么噪声都听不见的，对环境噪声的消除比较干净，对人声和机械键盘声有减弱的效果，但不能完全消除，对广播声音、大声说话声也是不能完全消除的qc20消除人声的效果要比qc35ii效果好，原因之一可能是qc20开启降噪后有白噪声的底噪（事实上，我个人觉得这个底噪并不会觉得烦躁，开启降噪后再听歌根本听不见底噪，而且这个底噪可以更好隔绝人声），QC35II戴上后，基本没有任何底噪，如果在安静的环境下，你会怀疑是不是开了降噪。佩戴舒适程度虽然说qc20的耳塞是鲨鱼鳍设计，而且购买时候会有大中小三款耳塞可以调换，但是我平时工作时候连续带3小时听歌的话，耳朵还是有点酸痛的（但是相比忍受噪声，这根本不算什么好嘛）。qc25II头戴式，戴起来还是很舒适的，连续带几个小时，耳朵有点压力，不过比qc20要好点。而且如果戴眼镜的用户，虽然戴起来没什么毛病，但是降噪效果会变弱（因为眼镜框会让耳套有缝隙）。续航方面qc20官方数据是连续降噪16小时，qc35II无线连接连续高降噪是20小时，我觉得qc20的续航真的很好，能用很长时间。qc35II还没有充电过价格方面京东自营还是比较贵，可以选择京东全球购，但是要确定是正品，我的qc20是1600多，qc35II是2050关于爆音qc20确实有爆音，在地铁上不会，在公交车比较颠簸的话会。因为我之前一直坐地铁才带降噪，公交时间比较短一般不戴，后来才发现这个问题。不过还能忍受吧。严重的话每隔10s大概会爆音一次。不颠簸应该没问题。其他方面如果单纯受不了噪音，而且是说话声，键盘声，强烈建议是qc20，降噪神器！！就算不能完全消除人声，你把耳塞塞的紧一点，效果都会好一点，而且戴眼镜也不会影响降噪效果。如果想买无线的，那只能选择qc35II了，事实上还有qc30（耳塞式），不过续航能力差点，而且设计俗称“狗圈”，百度下就能知道了，qc35第一代和第二代几乎没有差别，就是二代多了一个降噪等级开关（没卵用，我一直是高降噪都嫌不够用了，怎么可能开低降噪）

第一次的京东售后体验——极速
type: item
date: 2017-08-28T14:05:00+08:00
description: 昨天上午11点在京东买了一款鼠标：小米（MI）小米便携鼠标 无线蓝牙4.0 男女生家用/笔记本电脑办公/鼠标 银色（￥99 没错！小米鼠标之前使用的一直是有接收器的无线鼠标，都是在天猫上面随便买的。不仅是充电的而且还很便宜。这次想买个可以连接蓝牙的，不需要接收器的鼠标，就选择了看上去颜值还可以的[小米鼠标]晚上大概5点多的时候，就到货了！拆开鼠标，大失所望：鼠标内置两节7号电池，很重！比起我之前用的充电鼠标不是重一点点！在mac OS上，滚轮滚动的时候真的想死的心都有了，没办法用，一卡一卡的，自带卡顿特效鼠标摇动的时候，有没有闭合严密的声音，很烦鼠标点击声音超大，也许以前的PC电脑用惯了静音鼠标，现在就很不习惯鼠标的咔咔点击声。再加上这样的价格，这样的使用体验，于是决心退货，改日再挑选一个合适的鼠标。这是我第一次退货，以前在当当网买了书，质量不好，都认了， 因为退货不是上宿舍取件，我还得自己跑个挺远的地方。这次不一样了，在家里，京东可以上门取件，直接退货！昨天晚上12点左右，发起的售后服务。今天中午13点左右，就已经退款完成了。期间，客服给我打了两个电话：提醒工作人员会上门收件，请准备好物品和发票提醒财务处已经发起了退款请求了，具体金额会在1-15个工作日来原路退回整个流程下来，非常的方便流畅。不知道是不是所有退货都这样，毕竟我是第一次网上退货。。。但是需要注意的两点是：包装尽量保持完整纸质发票不要丢失上门取件的快递小哥，只看了发票，没有查看物品里面详细物品。那么问题就来了，如果里面物品损坏了，或者元件缺少，京东那边该如何处理呢？京东自营商品给我做直接的体验就是京东物流，非常迅速。当初京东自建立自己的物流体系真的是眀策。逃~

记录一次vivo x5max+的root经历
type: item
date: 2017-02-17T14:05:00+08:00
description: 本篇单纯为个人记录，仅以备用与参考，仅适用于vivo X5max+ 2015-02-25b版本 ，360 也木有任何广告费~ root手机对各位机友来说，应该是家常便饭，但对于vivo手机真的是！很麻烦！首先这款手机查遍了互联网，也找不到第三方rec,就根本没办法通过线刷[超级权限SU]来破解root，只能用360root，尽管流氓，还得破解了。但是root成功后，一旦重启，system仍然会被锁，就成为[不完全root]，只能看看wifi密码之类的，不能修改核心文件。所以，一切需要写入system的操作都得在没重启之前。之前一直用[Google相册],不得不说Google公司技术确实没话说，国产软件还没有与Google相册相平衡的。我喜欢的这个软件有几点：自动备份并且，不限量的免费上传空间额度（高清画质）自动整理与归纳相册内容但是！更新后，一进入，一会儿就自动退出，连相片都没办法备份了（在挂V P N前提下）。Google 三件套之前一直没有刷到系统内置应用，所以想通过root，直接把Google三件套刷到系统中去，提高应用的稳定性。前期工作备份手机的信息（联系人，信息，重要相册之类）恢复出厂设置，清除SD卡所有内容（SD杂乱的东西都不要了！太占空间！）通过电脑把官方签名的降级ROM包下载到SD卡中 [PD1408BL_B_1.7.18-update-full.zip],其他版本的ROM包不确定能否root成功。刷降级包关机。然后开机键+上音量键 同时按，选择[recovery mode]，进入rec 模式双清缓存和用户应用数据，双清，防止后续可能出现未知错误把降级包刷进系统，出现[正在更新系统……]的界面启动手机(reboot phone)使用360root 获取系统权限下载电脑端的360 root，按照提示，会发现root成功！这时候千万不要关机，不要重启！否则一切功亏一篑下载[酷安]与[shadowsocks-Android]，在酷安中搜索[Link2SD]、[GO谷歌安装器] 、[绿色守护]、Lux。先挂上VPN，然后打开[GO谷歌安装器]，赋予root权限，直接把Google三件套刷进系统，然后在这个软件中选择[谷歌套件更新]，不然的话就提示，Google play 服务出错，闪退。在Google Play store 中下载[Google 相册]。使用[Link2SD]把[绿色守护]、[Lux]、[Google 相册] 转换为系统应用(注2:)。这时候，重启一下手机，Google相册正常使用了，Hooray!* 注1：[酷安]软件市场强烈推荐，因为上面的APP都是正版，评论区对于付费软件还有破解版（尽管并不好，但是很方便），[Link2SD]获取root权限后，可以直接把应用变成系统应用。[绿色守护]、[Lux] 为个人爱好，可以不装。* 注2：同上，[绿色守护]、[Lux] 为个人爱好，可以不刷进系统。至此，一切看起来差不多了~vivo X5max+上似乎没办法装Xposed 模块，所以更高级的玩法也没办法实现了。

利用upyun又拍云CDN服务配置全站HTTPS
type: item
date: 2017-02-10T00:27:00+08:00
description: 2017年是一个https加密时代，最新的chrome浏览器，任何没有https协议的表单页面都会被标记为不安全。https不仅能反劫持运营商的广告，并且还能让你的网址多一个s（逃）。如果你是VPS或者独立IP或者主机面板有导入SSL证书的选项，那么给博客添加SSL都会有大把的教程帮助你快速搞定。但是如果你的主机和我一样，是共享IP的渣渣虚拟主机，主机商又不提供SSL证书安装服务，那只能通过CDN在传输过程中全站HTTPS，这种方式更简单。以下介绍的就是使用又拍云的CDN服务配置全站HTTPS。注1：又拍云有一个[又拍云联盟]的站长扶持计划，只要在博客页脚加上upyun的logo，通过审核后，每个月有免费的15G流量和10G存储空间，对于我们这种个人博客基本够了。注2：除了国内的又拍云还有国外的cloudlfare同样支持免费CDN服务，我以前用过一次，效果不是很理想。首先进入又拍云首页,点击控制台，好了进入到了管理界面了。滑动到页面最底部，有一栏叫做[又拍云服务]，下面有一个栏目叫[全网加速服务],对，没有看错，就是这个栏目，点击[立即创建]。好了，进入好正题了。这个页面分为三栏目：创建服务回源配置为服务授权（操作员）第三项不用考虑，可以直接跳过！（第三项不用考虑，可以直接跳过！）创建服务又拍云和七牛的后台管理不一样，使用前，使用任何服务，都需要先创建一个服务项目。以我为例，名称为：ihewro。源站类型：当然填写自主源了。源站指的就是我们主机上的数据。加速域名：当然是自己博客的域名：www.ihewro.com。前提是要备案，回源配置回源是什么回事呢？其实也很好理解。使用了CDN服务后，用户访问你的博客是这样的一个过程：用户输入域名地址DNS服务器解析得到又拍云的CDN的CNAME记录根据用户地理位置 对CNAME记录继续解析获取距离最近的缓存服务器的IP地址，浏览器向缓存服务器发出请求缓存服务器根据浏览器提供的域名，通过Cache内部专用DNS 解析得到真正主机的IP地址。缓存服务器向真实主机IP地址发起请求缓存服务器从实际IP地址得得到内容以后，一方面在本地进行保存，以备以后使用，二方面把获取的数据返回给客户端，完成数据服务过程；看了上面对CDN过程是不是有了很明确的概念了，什么？根本没看懂？好吧，简单来说的过程是这样：输入域名——解析出 CNAME记录（CDN服务商提供的）——解析出地理位置最近的缓存服务器的IP地址——解析出真实主机的IP地址（主机商提供的）——向主机发起数据请求——得到数据并且存储到缓存服务器上——over！所以呢，CDN的关键就是通过CDN服务商提供的CNAME记录，使用户每次请求都是访问距离最近的缓存服务器，缓存服务器如果已经有数据了，直接返回数据。如果缓存服务商没有请求的数据，就继续向真实主机发起数据请求。而向真实主机请求数据的过程就是回源的过程。如果你还是很模糊，也没关系，上面那些都不重要！重要的是下面：第一项是填写[回源 Host],可以不填，那就不填！其实就是上面的第四步中的浏览器提供的域名。第二项是回源协议，一般共享IP地址的主机不能自主上传SSL证书的，如果强行以https访问，则会自动跳转到主机商设定的固定页面（我的主机就是这样），所以只能选HTTP,不影响后面配置全站HTTPS。（这项之后也可以修改的）第三项是线路配置，就是回源配置。回源地址是什么意思呢？就是CDN通过回源地址来获取你的真实主机上面的内容。回源地址分为：源站IP和源站地址两种。源站IP就是你主机的真实IP。一般主机商提供了A记录就是源站IP地址，直接填上IP地址即可！后面不需要改。如果回源地址填写的是域名地址，这个域名地址不能和加速域名相同，虽然这个域名叫做源站域名，其实可以理解为通过解析这个域名来获得源站IP的域名。这个[源站]非你想的那个[源站]。更换DNS解析记录如果上面CDN原理弄清楚了，会发现DNS解析记录必须更改为CDN服务商的提供的CNAME记录。这个记录在哪呢？点开 控制台——服务 可以看见你刚才新建的那个服务名称。点击配置，再点击解析，就可以看到CNAME记录。去你的域名解析管理那儿把你的域名CNAME记录指导这儿就行了！到这儿，全站CDN基本上大功告成了，可以用奇云测测试你的网站，可以看到有很多个节点！接下来就是配置全站HTTPS，后面就很简单了。配置全站HTTPS在该服务下，有一个HTTPS的栏目，点击管理，就可以自主申请免费HTTPS证书，流程都有说明了，不再赘述。申购是自动流程化，一般一个小时之内就能审核成功，然后在工具箱——SSL证书服务上面，点击HTTPS配置，就可以选择强制HTTPS访问了。最后一丁点文中图片如果是http资源一定要改成https地址，通过数据库的SQL语句,先进…

怎么学JavaScript？
type: item
date: 2017-01-17T23:49:00+08:00
description: 怎么学JavaScript？JavaScript 我也学了一段时间，可是每次写起代码来总是入门级别，很是苦恼。这篇文章中说把整本书给敲下来未尝不是一个好办法，我很有体会，有时候看不进代码，敲下来的过程中就在慢慢的吸收代码的精髓，觉得很受益处，遂转载之。转载原文：统一回复《怎么学JavaScript？》鉴于时不时，有同学私信问我(老姚，下同)怎么学前端的问题。这里统一回复一下，如下次再遇到问我此问题同学，就直接把本文链接地址发给你了。首先说句题外话。关于有人管我叫大神的事情。个人感觉这跟你买东西时，人家管你叫帅哥一样，你答应与否都无妨。正题开始，前端怎么学，应该因人而异，别人的方法未必适合自己。就说说我的学习方法吧。我把大部分时间放在学习js上了。因为这个js的学习曲线，先平后陡。项目实践和练习啥的，我不说了，主要说下工作之外的时间利用问题。我是怎么学的呢，看书，分析源码。个人这几天统计了一下，前端书籍目前看了50多本吧（点击我）。大部分都是js的。市面上的书基本，差不多都看过。第一个问题是，看书有啥好处？好处应该是不言而明的，书看多了，基础会逐渐夯实起来。看多了，自己的判断力，自然就上来了。看别人的文章，就能很快判断出，对方每块儿讲得对不对，哪块儿又是自己不清楚的，模棱两可的。当然也为看源码，分析源码提供了基础。10本书读2遍的好处，应该大于一本书读20遍。10本书的交集，那就是基础知识的核心，而并集那就是所有的知识。好书当然要多读，反复读。但是只读一本是不行的。因为每本书的侧重点都不一样。从不同的侧面，去理解一个知识点，是很有意义的。所以特别佩服印度人，他跟你讲英文，你一个词语没听懂，他会蹦出n个同一意思的单词，你听懂一个，就ok了。看书也是这样的，某一块讲得不透彻，不用担心，其他书籍可以帮助你来了解。第二个问题是，书籍推荐。个人觉得不错的，没事可以翻翻的。书籍如下：《javascript面向对象编程指南》，风格轻松易懂，比较适合初学者，原型那块儿讲得透彻，12种继承方式呢。《js权威指南》、《js高级程序设计》，这两本书经典是经典，但是太厚，适合把其中任意一章都当成一本书来读。洋洋洒洒，很难一口气看完。比较适合当做参考书。《你不知道的javascript》狙击js核心细节，闭包、原型、this讲得都还清楚。目前《中册》也出了，还在看。《js设计模式与开发实践》js设计模式也是要学的，此书把js的设计模式讲得非常清晰，一点不晦涩，看起来没多少难度。《正则指引》，分析源码时，如果正则表达式不懂，没法进行下去的。此书相对来说讲得比较清晰。《基于MVC的JavaScript Web富应用开发》，看完后，基本能写出自己的mvc框架了。是本好书。《javascript函数式编程》，js是一门函数式语言，此书是函数式编程一个入门，函数是一等公民那是非常重要的。《js忍者秘籍》，jq作者写的，没有传说中的那么难读，话说就算你看完并理解所有知识点，也不会达到世界高手级别的。因为你还没有做到随心所欲。《javascript框架设计》，如果初看此书，会觉得此书有罗列代码之嫌。在我看来，此书讲究的是框架的全局观。以上书籍是我认为是成就高手之路上必须看的，也需要反复看。css相关的书籍，说实话我看得比较少，总共有六七本吧。有两本必须推荐一下：《css权威指南》，css基础知识点那是讲得非常清楚的。什么层叠优先级、line-height啥的。不是随便一本书都敢叫“权威指南”的。《css揭秘》此书我也是不断的看，此书才不屑于全面讲css3各属性呢。css规范文档能讲的，它只会讲你最不在意的。此书解决的47问题，解决思路和解决方案同等重要，很有启发性。以上各书你都可以不买，至少买本此书吧。第三个问题，怎么看。想必很多同学，都想看书，但是很难看下去。文字部分相对来说还能看看，一遇到代码，头皮就发麻了。此问题一开始时我也遇到的。说一个学习理论。比如说学英语，有个开水理论。词汇量必须达到6000才行，如果没达到，英文水平不会上去的，这跟烧开水一样，没事烧烧，放着凉凉，从来没烧到100度，那么此水是永远不能喝的。一旦煮沸过，就可以随时喝了。20本书你看不下去，说明什么呢？任何一本书，你都没看完过。熟悉的，永远只是前三章。别笑，我原先也是这样的。那么现在的问题是，怎么把一本书看完呢？很简单，敲。《基于MVC的JavaScript Web富应用开发》这本书我看时，就是这样，终于有一天，我下定决心要把此书从头到尾敲一遍。文字加代码都敲，然后就一章一章得看完了。代码敲一遍后，你会发现，没之前看起来的那么难。如果你属于一看书就犯困那种同学。强烈建议你把《javascript面向对象编程指南》此书从头到尾敲一遍。坚持看完一本书后，信心就上来了。先保证看完一本再说。看完3本后…

instantclick 中文文档
type: item
date: 2017-01-16T20:36:00+08:00
description: 同步更新官网文档：v3.1 2017/8/17instantclick 中文文档简介instantclick.js 是一种ajax无刷新和预加载页面的技术，对于普通博客程序，有着明显的加速作用。(instantclick.js ≈ pjax + 预加载页面)而且，使用方法也十分的简单。在github截止目前，已经由4447个star了，非常可观。但是官方文档纯英文，可能阅读上有点障碍，所以，在此，翻译一下大部分的官方文档内容，方便新手快速使用。大部分采用直译方式，需要注意的地方 用小括号注释起来。（尽管如此，instantclick.js 仍然有一些bug亟待解决，如果你可以忽略缺点吧，我们一起开始吧！）目录初级阶段开始使用instantclick 工作原理预加载页面黑名单规则事件和脚本的重新加载进阶阶段跟踪页面内容的变化自定义加载条初级阶段开始使用下载instantclick.js最新的发布版本是2014/12/25发布的V3.1.0 （虽然github一直有更新，但是并没有发布新的版本~）压缩版本2.7kb开发版本21kb其他的下载方式github上面的最新开发版本通过bower（一种前端开发工具） : bower install instantclick初始化instantclick把 instantclick.js 和 初始化代码 放在你的页面的结束之前( 标签结束之前)... 现在instantclick 已经成功在你的网页上面生效。阅读下面的文章以便更熟练的使用instantclick。instantclick 工作原理：将会让你建立正确的模型以便更好的理解instantclick的机制预加载页面：将会向你展示不同的预加载页面的方法黑名单规则：因为有些链接你不想预加载事件和脚本的重新加载：将会帮助你使instantclick更好的配合你的网页中的JavaScript。instantclick不总是“即插即用”（不是通过两行代码就可以在你的网页上运行），你可能需要自定义一些设置来适应你的网站，这也是为什么阅读上述文章是强制性的。instantclick 工作原理InstantClick与传统的web应用区别不大，但是很有必要去了解这些不同的地方！instantclick使浏览器不再刷新整个页面（即无刷新页面效果）首先：你需要理解的核心内容是：instantclick在技术上使你的网站成为单页应用程序；浏览器不再刷新整个页面，而是通过instantclick技术来更改页面内容，这意味着：你不能依赖DOMContentLoaded和jQuery.ready()这两个函数来触发相关事件（这两个事件在刷新整个页面的时候才会触发，但是你可以使用[InstantClick’s events]()来替代)依赖上面两个函数的第三方脚本（比如js代码）需要调整（参阅[事件和脚本的重新加载]()）在加载页面的时候，浏览器不会在显示原本加载进度条了，instantclick有它自己的加载进度条。其次：你需要明白instantclick只会改变 和title，所以你的脚本只会被加载一次（带来的好处是速度的明显提升）。下面还有一些内容你需要了解：通过instantclick加载的每个页面的 标签里面的样式和脚本应该是相同的（因为instantclick只会加载一次 标签里的内容）如果 标签里面的某些内容依赖于网页的内容（比如在页面加载时运行的脚本或css动画），它需要调整以便正常运行。InstantClick是渐进式增强功能：如果访问者的浏览器不支持InstantClick，您的网站链接将照常工作，只是不会提升速度了。预加载页面InstantClick 关于预加载方式有多种选择。你可以根据你的服务器配置来选择合适的方式。但是不管怎样，当每个页面改变时，不会重新加载脚本和样式表，这样会使你的页面加载速度提升一倍！（与Turbolinks、pjax等等技术是类似的）默认: 在鼠标悬停预加载(on mouseover)当用户鼠标悬停在链接上开始预加载页面。如果用户网络链接不错的话，你的页面会很快的打开。初始化方法就是[开始使用]()设置的方式。不会给服务器带来额外负担：在鼠标点击的瞬间预加载(mousedown)当用户按下你的链接按钮的瞬间，页面开始预加载。这为你的服务器带来了接近零的开销，但仍然能够带来一个很“神奇”的速度提升！使用方法：将'mousedown'作为参数传递给InstantClick.initInstantClick.init('mousedown');折中的方式：鼠标悬停延迟一定时间才会预加载如果用户在您选择的延迟过后仍悬停在链接上，则该网页将开始预加载。推荐的延迟时间为：100ms和50ms。超过100ms效果比mousedo…

利用github pages快速搭建hexo博客
type: item
date: 2016-11-25T16:29:00+08:00
description: githubpage除了在国内有些地区访问速度不好，还是有很多优点的，比如无限流量，无限空间。静态博客框架有很多，hexo个人认为更简单容易上手，因为有官方中文文档。hexo原理就是通过本地一个程序扫描source目录内容，建立索引，根据你 theme 文件夹的主题生成页面到 public 文件夹。然后通过git方式把pubilc文件夹内容传到github。github pages能够解析并且展示出来。演示地址：http://ihewro.top[...]