SNOW-静乐志 汐海潮笙,草木成涛,鱼虫鸣籁,极乐天韵,静乐至志 2019-01-02T13:20:53.047Z http://www.jlzsnow.top/ 汐海潮笙 Hexo 2018年总结暨2019展望 http://www.jlzsnow.top/2019/01/02/2018年总结暨2019展望/ 2019-01-02T12:29:07.000Z 2019-01-02T13:20:53.047Z   去年的跨年夜,和付奥,飞龙一起在西南门外的那家成都屋头串串一起吃的串串,我和付奥全程吃,飞龙全程打电话,最后吃完,我和飞龙去喝酒,不想睡觉,各种折腾,喝的朦朦胧胧,立下了2018年的flag。

2018年总结

去年的朋友圈就是这样:
avator
立志看50本书,年底紧赶慢赶,看完了44本:

  • 佛陀传(一行禅师)
  • 我们在此相遇(约翰*伯格)
  • 百年孤独(马尔克斯)
  • 走到人生边上(杨绛)
  • 教父(马里奥*奥佐)
  • 沙丘(弗兰克*赫伯特)
  • 罗生门(芥川龙之介)
  • 追风筝的人(卡勒德*胡塞尼)
  • 岛上书店(加*泽文)
  • 偷影子的人(马克*李维)
  • 七杀简史(马龙*詹姆斯)
  • 美国众神(尼尔*盖曼)
  • 病隙碎笔(史铁生)
  • 剑桥艺术史:绘画欣赏(苏珊*伍德福德)
  • 小王子(圣埃克*苏佩里)
  • 光明王(罗杰*泽拉兹尼)
  • 无声告白(伍琦诗)
  • 风沙星辰(圣埃克*苏佩里)
  • 地海传奇
  • 必须找到阿里克斯(皮菲尔*勒迈特)
  • 我们仨(杨绛)
  • 红与黑(司汤达)
  • 一个叫欧维的男人决定去死(雷德利克*巴克曼)
  • 穷爸爸,富爸爸
  • 生活,是很好玩的(汪曾祺)
  • 雪中悍刀行(烽火戏诸侯)
  • 人间失格(太宰冶)
  • 暗黑者四部曲(周浩晖)
  • 忏悔录(让雅克*卢梭)
  • 浮士德(歌德)
  • 永恒的终结(阿西莫夫)
  • 半小时漫画世界史(陈磊)
  • 圣殿春秋(肯*福莱特)
  • 龙族(江南)
  • 哑舍(玄色)
  • 高兴死了
  • 悲惨世界(维克多*雨果)
  • 麦田里的守望者(JD塞林格)
  • 北欧众神(尼尔*盖曼)
  • 坎特伯雷故事集(乔叟)
  • 北欧神话:仙宫与诸神(W*瓦格纳)
  • FBI微反应心理学
  • 蒲公英王朝:七王之战
  • 无尽世界(肯*福莱特)
    这就是2018年来看的所有的书,一份工作,经过两个多月的寻寻觅觅,最后的纠结,最终选择华为作为最后的归宿,薪资不算是最高的,差不多是垫底的,但是我还是想去,我想去看看。

    2019年展望

    2019年,我也不知道我要干什么?对未来充满希望,却又有点害怕,想想还真有点刺激。哈哈哈,2019flag:
  • 50本书
  • 华为工作转正
  • 学吉他
  • 顺利毕业
  • 第一个月的工资给爸爸妈妈买礼物
  • 继续健身
  • 攒钱毕业出去玩一次
    暂时就想到这么多,新的一年,加油!!!
    avator
]]>
<p>&emsp;&emsp;去年的跨年夜,和付奥,飞龙一起在西南门外的那家成都屋头串串一起吃的串串,我和付奥全程吃,飞龙全程打电话,最后吃完,我和飞龙去喝酒,不想睡觉,各种折腾,喝的朦朦胧胧,立下了2018年的flag。<br>
一个叫欧维的男人决定去死 http://www.jlzsnow.top/2018/10/24/一个叫欧维的男人决定去死/ 2018-10-24T12:26:45.000Z 2018-10-24T13:37:51.211Z   这两天找完工作,也不想科研,开始看书,年前许下的愿,今年要看够五十本书,现在才看了32本,还差好多,这两天看完了《一个叫欧维的男人决定去死》一本很不错的书。有感而发
  这本书讲的是一个叫欧维的男人,一个沉默的男人,一个一辈子只开萨博车的男人,一个有责任心的男人,一个一辈子只爱一个人的男人,一个有爱的男人。因为妻子的亡故,一心想去天堂陪妻子的男人。书通过倒叙的方式叙述了这个男人的一声,从童年,到与妻子的相爱,再到妻子的流产,到妻子的亡故,到妻子逝去后与邻居们的相处发生的一系列的故事。
  欧维的少年时光跟随父亲一起度过,母亲在他出生不久就去世了,父亲教导他称为一个男人,一个有责任心得男人,用自己的实际行动去决定自己的品质,这也是欧维一生的品质。在十六岁那年,欧维的父亲因为意外去世,欧维顶替父亲的工作,称为一名列车员。欧维的吃苦耐劳的品质,受到了公司内大多数人的欢迎,除了那些品质恶劣人。一次意外,欧维被同事诬陷,而欧维坚信父亲的教导,拒绝指控同事是盗贼(实际上同事就是的)欧维被开除,开始了晚上在列车上收垃圾的生活,也因此有缘认识自己未来的妻子索雅。
  父亲的房子老化,欧维开始去工地自学建筑,然后回家自己盖了一座自己的房子,是的,欧维是个喜欢自己动手的人,就是这样。晚上上班,白天去工地,然后盖自己房子,买一辆像父亲一样的车,这就是欧维的人生,他喜欢数学,喜欢量化,非黑即白,做人也一样,这就是一个有原则的男孩。
  在一个清晨,欧维认识了自己妻子,妻子喜欢看书,喜欢玩笑,喜欢欧维,喜欢欧维的倾听,喜欢欧维的沉默,喜欢欧维的一切,包括所有的优点以及缺点。很自然的,他们约会,见父母,然后结婚,买房,认识新邻居鲁尼,怀孕。就是这样,一切按部就班,平淡无奇,但是幸福。
  怀孕期间,欧维和妻子去西班牙旅行,欧维严格按照时间制定旅行计划,但是妻子总是迟到,但是在欧维看来,一切都是值得的,一个男人对于女人的迟到都是可以容忍的。在旅行期间,妻子午睡,欧维去帮别人干活,离开的时候,欧维获得了那个小镇的一片赞誉。但是不幸也随之而来,回家途中,旅游大巴发生意外,妻子流产,瘫痪。这一切使得欧维痛不欲生。从此,欧维开始痛恨这个世界,或者只是单纯的愤怒,对于这个操蛋的世界的愤怒。欧维成为了一个孤僻的男人。
  妻子出院以后,去了一家学校教书,欧维照顾妻子,改造家里的一切以适合轮椅,还有学校的台阶等等。后来,妻子查出来癌症,欧维更加痛恨这个世界,妻子去世,欧维活着的意义已经失去,欧维一心寻死。在她之前,欧维的世界非黑即白,她之后的世界,没有世界,在她之前,没有生活,只是活着。慢慢的长大,越来越能体会那种失去的感觉。我们终将遇到那个我们终将遇到的人,那个陪伴我们终生的人。小时候,总觉得很怕死,不知道具体怕什么,就是很怕死,觉得死是一件很恐怖的事情,但是一个小孩子连死是什么都不知道,但就是很怕,可能生物对死亡的恐惧是在基因里面的吧,慢慢长大,好像也没什么恐怖,再慢慢长大,明白其实死亡并不算什么,相比它,也许眼睁睁看着自己的挚爱逝去,但是自己无可奈何更加恐怖吧。
  但是欧维的自杀总是被邻居打乱,欧维去帮助邻居,渐渐成为邻居的朋友兼职父亲,从失去妻子的痛苦中走出来。
  这是一个关于责任的故事,一个关于男人的故事,一个关于爱情的故事,一个关于理解的故事。

]]>
<p>&emsp;&emsp;这两天找完工作,也不想科研,开始看书,年前许下的愿,今年要看够五十本书,现在才看了32本,还差好多,这两天看完了《一个叫欧维的男人决定去死》一本很不错的书。有感而发
360面试总结 http://www.jlzsnow.top/2018/08/25/360面试总结/ 2018-08-25T07:03:54.000Z 2018-08-26T02:38:59.851Z 背景

昨天面试了360公司,从一面到hr面,一天之内全部过来,这里只总结问题,技术题的答案会在我的GitHub上的项目上更新

技术一面

  • 简单做下自我介绍
  • 你介绍下项目,华为软件挑战赛吧
    • 讲下这个LSTM算法吧
  • 学C++多长时间?为什么要学C++?
  • 你了解搜索么?
  • 知道C++里面的多态么?
    • 能在代码框给我写个简单的多态的例子出来么?
      • 你在代码里面写的new,它分配的内存在哪?
        • 堆排序知道么?
        • 十亿数取出其中的最大的K个,用什么算法?
        • 内存里面的堆和栈有什么区别
        • 堆栈的存活时间相比呢?
      • 在代码框中实现下类A的构造函数、析构函数、还有复制构造函数
  • 计算机网络的七层模型知道么?
    • 那你知道的传输层协议有哪些?
    • TCP和UDP的区别?
    • TCP是怎么建立连接的?
    • TCP怎么实现精确传输的?
  • shell中查看Linux中CPU利用率的命令?
  • 查看网络状态的命令?
  • 测试网络是否通畅的命令?
    • ping实现协议是什么?
    • 网际层的协议还有哪些?
    • ARP协议是干啥的?
  • STL了解吗?
    • STL里面你常用的有哪些?
    • vector的底层实现?
    • 能不能不要多余的那部分内存?
    • map的底层实现是什么?遍历输出后有什么特性?
    • 除了红黑树实现的map,还有其他方式实现的map吗?
      • 什么叫哈希?
      • 解决冲突的方法有哪些?
  • 你说你在学习内核?给我说下内核的一部分吧?
  • 写一个遍历二叉树深度的程序吧?

    技术二面

  • 做下自我介绍吧?
  • 在研究生期间做过一些项目是吧?那这些项目给你的最大的收获是什么?
  • 进程和线程的区别?
  • 指针和引用的区别?
  • 怎么解决死锁?
  • 解释下什么叫继承和多态?
  • 你理想的工作是什么样的?

    HR面

  • 做下简短的自我介绍,三分钟
  • 经过了两轮面试,你对自己的表现满意么?如果满分5分,给自己打几分?你觉得不满意的地方在哪里?
  • 你有女朋友了么?
  • 你对360搜索了解么?
  • 你本科成绩怎么样?全专业多少人?排名第几?
  • 本科参加的侏罗纪工作室?这是什么?大概多少人?现在这些人都在读研么?
  • 你当时为什么选择现在这个研究方向?
  • 如果这边给了你offer,你可以来实习么?
  • 你什么时候毕业?现在毕业论文写的怎么样啦?
  • 你觉得自己应聘这个岗位的优势是什么?
  • 你应聘其他公司了么?其他公司的面试进展怎么样?
  • 你为什么选择北京呢?如果其他公司给了你offer,你还会选择360么?
  • 你对北京生活压力大怎么看?那些原因是你不能克服的?
  • 你的父母同意你来北京么?
  • 刚开始让你干一些小事,你会觉得无聊么?
]]>
<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>昨天面试了360公司,从一面到hr面,一天之内全部过来,这里只总结问题,技术题的答案会在<a href="https://github.com/PirateSnow/TechInterExpe" target="_blank" rel="noopener">我的GitHub上的项目</a>上更新
Linux内核设计与实现总结 http://www.jlzsnow.top/2018/08/25/Linux内核设计与实现总结/ 2018-08-25T00:48:29.000Z 2018-08-25T04:04:55.124Z 背景

这两天在看Linux内核设计与实现,看完了,以思维导图的方式总结一下,这也是我第一次尝试以思维导图来总结,先试试效果

结构划分

实际上,整个内核是一个整体,很难具体的去划分那些属于那些模块,而且这些模块里面都是相互缠绕的,很难解释清楚,我就粗略的按照书里面的内容,再按照自己的总结,划分这样一些模块

  • 进程管理
    • 进程管理
      • 进程上下文
    • 线程管理
    • 进程调度
  • 内存管理
    • 物理内存管理
      • slab层管理
      • 页高速缓冲管理
    • 虚拟内存管理
      • 进程空间管理
  • 文件系统
    • 超级块
    • iNode节点
    • 其他一些节点
  • 时钟
    • 节拍
    • 定时器
    • jiffies
    • 时钟中断
  • 中断
    • 中断处理程序–也叫做中断上文
    • 中断下文
      • 软中断
      • tasklet
      • 工作队列
  • 内核同步
    • 信号量与二值信号量
    • 自旋锁
    • 互斥体
    • 完成信号
    • 顺序信号量
    • 顺序与屏障
  • 系统调用
    • 声明系统调用号
    • 编写系统调用函数
    • 加入系统调用表

      思维导图

      思维导图如下:

      点击下载图片
]]>
<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>这两天在看Linux内核设计与实现,看完了,以思维导图的方式总结一下,这也是我第一次尝试以思维导图来总结,先试试效果
推荐思维导图工具mindmaster http://www.jlzsnow.top/2018/08/18/推荐思维导图工具mindmaster/ 2018-08-18T14:10:58.000Z 2018-08-18T14:16:03.981Z 背景

今天在没事读读书社的群里,看到有人发了习惯的力量的思维导图,才知道原来那样的图是拿思维导图软件画出来,长知识了,赶紧自己也整一个

MindMaster

上网百度了一下,思维导图软件好多,本来想用minimanger的,结果这个软件是付费的,而且死活破解不了,没办法,只好卸载之后选择了mindmaster软件,刚试了一下,还挺好用,以后总结就靠它了

]]>
<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>今天在没事读读书社的群里,看到有人发了习惯的力量的思维导图,才知道原来那样的图是拿思维导图软件画出来,长知识了,赶紧自己也整一个
从远程仓库抓取数据并且合并 http://www.jlzsnow.top/2018/08/13/从远程仓库抓取数据并且合并/ 2018-08-13T07:33:02.000Z 2018-08-13T07:44:15.433Z 背景

前几天在另外一台电脑上更新了自己的项目,并且已经推送到远程仓库,但是,今天在另外的一台电脑上需要推送到远程仓库时,从远程抓取数据后,打开当前文件,依旧是自己之前存在本机的。

解决方法

  • 第一种方法
    是我对命令的理解不到位,有些只是看到了,实际上并没有用过,应该是这样的
    首先,用git fetch从远程仓库抓取命令,然后要合并的,我以为只是抓取就可以了,下面是命令
    1
    2
    3
    git fetch origin master
    git log -p master origin/master
    git merge origin/master

第一条命令是从远程仓库抓取数据到本地,但是默认是没有合并的
第二条命令是对比当前master分支和origin/master分支的不同,也就是对比远程仓库的数据和本地仓库的不同
第三条命令是合并远程分支到本地分支

  • 第二种方法
    直接使用git pull命令从远程抓取数据并且合并
    1
    git pull origin master

不用手动合并,所以,这个命令实际上并不安全,不建议

后记

git 刚开始学,所以好些东西只是简单的看过了,但是在实际中完全不是一回事,边用边学吧

]]>
<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>前几天在另外一台电脑上更新了自己的项目,并且已经推送到远程仓库,但是,今天在另外的一台电脑上需要推送到远程仓库时,从远程抓取数据后,打开当前文件,依旧是自己之前存在本机的。
在GitHub上添加SSH密匙 http://www.jlzsnow.top/2018/08/12/在GitHub上添加SSH密匙/ 2018-08-12T00:51:22.000Z 2018-08-12T01:22:23.528Z 背景

在本地git向远程GitHub仓库提交代码时,需要在GitHub网页上添加上本地SSH密匙,本篇博文来说明这个过程

方法步骤

第一步,打开本地的ssh文件,如果没有本地ssh文件,可以自己新建,步骤看我的两篇博文:
在Ubuntu下生成SSH文件
在Windows下生成SSH文件
按照里面的目录打开id_rsa.pub文件,这个是公匙,还有另外一个文件id_rsa存储的私匙,打开公匙文件id_rsa.pub文件,复制里面的所有内容
第二步,打开GitHub网页,登录,这些步骤不再赘述
第三步,登录之后的页面显示如下,可能有些地方不一样,点击右上角的头像,然后点击setting选项,如下:

第四步,在左边栏选择SSH和GPG选项,如图

第五步,点击添加新的SSH密匙,如下

第六步,将复制好的公匙,填到网页上,确认添加即可

完成。接下来就可以在Git上部署代码,然后提交了

后记

这些事很久之前做的,最近忙里偷闲,总结下

]]>
<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>在本地git向远程GitHub仓库提交代码时,需要在GitHub网页上添加上本地SSH密匙,本篇博文来说明这个过程
在windows下生成ssh文件 http://www.jlzsnow.top/2018/08/11/在windows下生成ssh文件/ 2018-08-11T15:02:27.000Z 2018-08-11T15:24:51.323Z 前言

刚开始学习Git的时候,我们还是习惯在Windows下玩Git,那么Git的Windows版本完全可以符合你的要求,安装不再赘述看大佬的博文,安装好之后,还需要配置ssh文件来向远程仓库提供密匙,这样才能将本地的代码提交到远程仓库,所以这里说下怎么在Windows下生成.ssh文件

方法步骤

第一步:打开git bash,在终端输入如下命令:

1
cd ~/.ssh/

如果提示 “ No such file or directory”,你可以手动的创建一个 .ssh文件夹即可,步骤如下:
首先,用如下命令配置全局的name和email,这里是的你github的user name和user email:

1
2
git config --global user.name "你的GitHub用户名"  
git config --global user.email "你的GitHub邮箱"

接下来,用如下命令生成.ssh文件

1
ssh-keygen -t rsa -C “你的GitHub邮箱”

输入之后,连续按三个enter就可以了,实际的意义和Ubuntu下差不多,具体参考我的这篇博文
之后,就可以复制公匙到GitHub上了,具体我们下一篇博文再说

后记

最近时间紧张,就这么零零散散写一写吧。

]]>
<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>刚开始学习Git的时候,我们还是习惯在Windows下玩Git,那么Git的Windows版本完全可以符合你的要求,安装不再赘述看<a href="https://blog.csdn.net/lvkelly/article/details/54666868" target="_blank" rel="noopener">大佬的博文</a>,安装好之后,还需要配置ssh文件来向远程仓库提供密匙,这样才能将本地的代码提交到远程仓库,所以这里说下怎么在Windows下生成.ssh文件
ubuntu下添加ssh公匙 http://www.jlzsnow.top/2018/08/11/ubuntu下添加ssh公匙/ 2018-08-11T14:47:24.000Z 2018-08-11T15:00:39.945Z 背景

  在Ubuntu下使用git对GitHub上的远程仓库进行操作时,需要响应的ssh密匙验证,但是我们的电脑上,包括虚拟机上一般来说都不会提供.ssh文件,这个时候就需要我们手动去生成一个.ssh密匙文件。

方法步骤

第一步:打开终端,在终端输入如下命令:

1
ssh-keygen -t rsa -C “your email”

参数-C后面修改成你的邮箱就可以了
运行上述命令后,会产生下面的输出:

1
2
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xinu/.ssh/id_rsa):

括号里面是默认的密匙保存路径,可以修改,直接按enter的话,表示按照默认路径保存;
直接按enter之后,会产生下面的输出:

1
Enter passphrase (empty for no passphrase):

这里表示输入密码,记得密码要足够长,我的第一次输入密码太短了,所以导致失败了,也可以直接enter,表示密码为空;
之后会产生如下提示:

1
Enter same passphrase again:

这是要求你再次确认密码,保持和上次输入一致即可。
到这里,密匙已经产生,它会告诉你密匙的保存路径以及指纹

后记

密匙产生之后,就可以直接复制到GitHub上就可以了,具体看我的后面的博客吧

]]>
<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>&emsp;&emsp;在Ubuntu下使用git对GitHub上的远程仓库进行操作时,需要响应的ssh密匙验证,但是我们的电脑上,包括虚拟机上一般来说都不会提供.ssh文件,这个时候就需要我们手动去生成一个.ssh密匙文件。
Ubuntu下启用root用户 http://www.jlzsnow.top/2018/08/11/Ubuntu下启用root用户/ 2018-08-11T12:29:50.000Z 2018-08-11T12:59:20.846Z 背景

以前刚开始接触Linux,用的是发行版Ubuntu,但是Ubuntu有个很坑爹的问题,那就是没有root用户,你去设置里面添加,死活都不行,试了很多方法,包括修改/etc/passwd下的UID等方法,但是都很麻烦,无意中翻到一个帖子,才找到一个好用的方法,赶紧记录下来,不然又忘记了

方法步骤

首先,在终端输入下面命令

1
sudo passwd -u root

响应如下
avatar
接下来,在终端输入如下命令:

1
sudo passwd root

响应如下
avatar
输入你要设置的密码,不过要注意的是,Linux下你在输入密码的时候,他是不会显示出来的,所以放心大胆的往进去输入就可以了,再次确认
接下来,你确认设置root密码是否成功
首次输入如下命令,切换到root用户

1
su root

这是个切换用户命令,如果输入root密码后,你的终端输入由美元符号$变成井号#那就说明你已经切换到root用户了
效果如下
avatar

后记

完美完成,当然还有其他方法暂时拥有root权限,在这里就先不讨论了,Linux真的是个迷,小技巧太多,以后慢慢学习

]]>
<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>以前刚开始接触Linux,用的是发行版Ubuntu,但是Ubuntu有个很坑爹的问题,那就是没有root用户,你去设置里面添加,死活都不行,试了很多方法,包括修改/etc/passwd下的UID等方法,但是都很麻烦,无意中翻到一个帖子,才找到一个好用的方法,赶紧记录下来,不然又忘记了
在vmware下安装Ubuntu16.04 http://www.jlzsnow.top/2018/08/11/在vmware下安装Ubuntu16-04/ 2018-08-11T04:08:46.000Z 2018-08-11T04:16:50.411Z 背景

最近在写一台高并发服务器的程序,所以需要两台电脑都运行相应的程序,一台电脑即当客户端,又当服务器时,在用webbench进行压力测试的时候,会出现问题,所以需要在另外一台电脑上也安装虚拟机

步骤

具体的步骤不多说,网上很多博客写的都很好,我就是按照那些步骤来的,唯一可能没指出的地方就是在虚拟机上安装系统的时候,因为分辨率的问题,安装步骤的有些地方会显示不全,所以,在安装之前一定记得要把调整好分辨率,使之全屏,这样再开始。

参考

VMware Workstation上安装Ubuntu 16.04 Desktop操作系统

]]>
<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>最近在写一台高并发服务器的程序,所以需要两台电脑都运行相应的程序,一台电脑即当客户端,又当服务器时,在用webbench进行压力测试的时候,会出现问题,所以需要在另外一台电脑上也安装虚拟机
git常用命令总结 http://www.jlzsnow.top/2018/08/03/git常用命令总结/ 2018-08-03T07:27:11.000Z 2018-08-03T08:30:29.590Z 写在前面

首先推荐一篇ProGit学习指南,讲的非常明白,而且字数少,很实用,之前看了看那个什么Git权威指南,还有配套的视频,说实话,不推荐大家去学习,这个非常好。推荐给大家

常用命令

git init—-初始化git,每次新建一个项目之后,我们都必须在对应的项目文件夹内执行该命令
git add 文件名/目录—–添加修改过的文件或者目录到本地仓库静态暂存区
git status —-查看当前暂存区状态,是否有需要提交的文件
git commit -m”备注”—–将暂存区的文件提交到本地仓库
git clone —-将远程仓库的内容克隆到本地,然后就可以在本地进行开发了
git rm —-移除文件,从工作目录中删除文件,这样就不会出现在未跟踪文件清单中了
git log —–查看提交历史,会列出所有的更新
git log -p -2—-其中-p参数表示显示每次提交的内容差异,-2表示显示最近的两次更新
git log –pretty=oneline —-相当于简约的显示模式
git commit –amend —–撤销刚才最新的提交
git reset HEAD 文件名 ——将提交到暂存区的文件撤销回来
git checkout – —–撤销刚才对文件的修改

git remote -v ——-查看当前的远程库
git remote add ——添加远程库
git fetch [remote-name] —–从远程库抓取数据
git push [remote-name] [branch-name] ——-将本地仓库branch分支推送到远程库
git remote show [remote-name] ——-查看远程库的信息
git remote rm [remote-name] —–删除远程库
git remote rename [old-remote-name] [new-remote-name]——修改远程库名字

git tag—-显示目前工作目录中所有的标签
git tag -a -m”备注” —–其中-a参数表示标签名字,-m后跟备注信息
git tag —–打上轻量级标签

git checkout [branch-name]—–切换到指定分支
git checkout -b [branch-name]——新建该分支并切换到该分支
git merge [branch-name] ———合并该分支到当前分支
git branch -d [branch-name] —–删除该分支
git branch ——显示当前工作目录中的所有分支
git branch–merged——查看那些分支已经被并入当前分支
git branch –no-merged——-查看那些尚未合并的分支
git rebase [branch-name]——-衍合分支

git stash—-储藏当前工作状态
git stash list —–查看储藏列表
git stash apply stash@{2} —-切换到储藏2继续工作
git stach pop —–取消当前储藏

]]>
<h1 id="写在前面"><a href="#写在前面" class="headerlink" title="写在前面"></a>写在前面</h1><p>首先推荐一篇<a href="http://iissnan.com/progit/" target="_blank" rel="noopener">ProGit学习指南</a>,讲的非常明白,而且字数少,很实用,之前看了看那个什么Git权威指南,还有配套的视频,说实话,不推荐大家去学习,这个非常好。推荐给大家
在GitHub上发起程序员面试专业问题集锦的项目 http://www.jlzsnow.top/2018/08/03/在GitHub上发起程序员面试专业问题集锦的项目/ 2018-08-03T06:53:47.000Z 2018-08-03T07:25:32.097Z 背景

最近在学习Git,后面可能会写一篇关于Git学习的博客,这篇主要讲发起项目的过程。最近在找工作,正好也在学Git,就想着把前辈们总结下来的面试问题分享给大家,最后想到了直接在GitHub上发起项目的方法,这样时间久,而且不用担心那天总结的文档忽然不见了,所以就有了这个想法,学完Git,开始着手实践,下面是一些过程。

过程

第一步:在GitHub上新建仓库,这个很简单,不多说
第二步:在本机上新建一个文件夹,用于存储本地的代码
第三步:在git bash下进入上一步新建的文件夹
第四步:使用git clone Git@github.com/PirateSnow/TechInterExpe.git命令把远程仓库的代码克隆到本地文件夹
第五步:执行git init命令,执行之后,可以看到,在本地文件夹,多了一个.git文件夹,说明初始化成功
第六步:现在可以对项目文件进行修改了,我的项目目前还是空的,只有一个README.md文件,所以我新建专业面试问题.md文件,以后所有的专业面试问题都会在这上面更新
第七步:使用git add 专业面试问题.md命令添加到静态暂存区
第八步:使用git commit -m”备注信息” 提交到本地代码库
第九步:使用git push origin master命令提交到远程代码库
这一步如果提示你使用https://github.com/PirateSnow/TechInterExpe进行push,那么执行下面的步骤
(1)git remote add temp1 https://github.com/PirateSnow/TechInterExpe进行push
(2)git remote rm origin
(3)git remote rename temp1 origin
这样就可以了,有什么问题欢迎大家咨询

后记

现在只是把基本框架搭起来,以后按照这个步骤更新就可以了,欢迎大家参与共享

]]>
<h1 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h1><p>最近在学习Git,后面可能会写一篇关于Git学习的博客,这篇主要讲发起项目的过程。最近在找工作,正好也在学Git,就想着把前辈们总结下来的面试问题分享给大家,最后想到了直接在GitHub上发起项目的方法,这样时间久,而且不用担心那天总结的文档忽然不见了,所以就有了这个想法,学完Git,开始着手实践,下面是一些过程。
浦发银行面试经历 http://www.jlzsnow.top/2018/08/01/浦发银行面试经历/ 2018-08-01T12:45:23.000Z 2018-08-01T14:09:00.246Z 写在前面

今天去参加了浦发银行的面试,啊~累死了,从中午一点开始面试,一直到下午六点才面试完,这会儿刚回到实验室,把一些东西写下来,免得自己忘记

流程

浦发银行的流程主要是综面–>在线编程–>技术面,因为人数不同,所以有些人的面试流程不一样,不过都是三个环节都是必须要走完的。

在线编程

我先进行的是在线编程,三道题,总共五十分钟,时间特别紧,主要是浦发银行用的那个系统特别坑,光熟悉人家的答题系统就花了十分钟,支持本地IDE,但是是Dev C++,平时用的也不多
三道题,分别是:
第一道题,判断一个数是不是素数,很简单,最暴力的方法从2~N,一个一个数的就那么试就可以了。
第二道题,输出1900~2000之间所有的闰年,也很简单,暴力方法就可以,能被4整除且不能被100整除,或者能被400整除,也很简单。
第三道题,密码解密的,说白了就是字符变换,A–>Z,B–>Y,C–>X,…a–>z,b–>y,c–>x,…只有字母才变,其他字符不变化,如果是第i个字母,那么就变成第26-i+1个字母
这些题目都很简单,但就是时间不够,对人家的系统不太熟悉,前面浪费了很多时间,所以最后一题写出来,但是没时间调试了

技术面试

总共三个面试官,面对面就这么问你。
这个技术面试真的可怕,就问了一点点专业知识,其他都是真的扯淡,待我详细说来
第一个问题,为啥你这个照片看起来比你本人白很多?我说人家给我P成那个样子了,不是我故意的。。。
第二个问题,看了我的简历,你那个机器人比赛有什么意义,然后我就说了比赛的背景
第三个问题,我看你本科是那里那里,是不是保研?之类的
高潮来了,我之前参加了华为的比赛,然后拿了名次,就问我华为比赛,突然画风一转,我们昨天也面试了一个,叫什么什么,然后我说那是我队长,然后就开始问,你和队长相比,你有什么优势?你队长的开发能力怎么样?我当时的心里想的是,我靠!!!这是要干么?然后我把队长一通夸,当然,这个时候你就要说自己在一些小地方不如他,这些地方看起来是缺点,但是实际上从另一个角度讲是优点的那种。然后又问我实验室另一个小伙伴开发能力怎么样,然后又是这么回答的,然后现在开始把我们三个拉到一块开始比,你们三个成绩呢?你们三个的开发能力?我。。。
问完这个,开始问我写的简历上说是熟悉Linux操作系统,所以问我shell命令,第一个我忘记了,第二个是查看进程状态,第三个是查看CPU利用率;
下面是我们的对话:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
最左边的面试官:你还有个哥是吧?  
我:嗯
最左边的面试官:这个工作单位是上海王品牛排,这是个品牌么?全国连锁?
我:对啊,可有名了,满大街的广告
最左边的面试官:我怎么没听说过。
中间的面试官:嗯,是有这个一个牌子,还挺贵
我:。。。。
中间的面试官:你哥这个是职业么?
我:嗯
中间面试官: 你哥专业学的就是西餐?
我:嗯
中间面试官:学的就是西餐?
我:嗯,还是在咱陕西学的
中间面试官: 啥学校?
我: 陕西旅游烹饪学院

对话终于结束了,可以换个话题了,太可怕了。差不多就这些了

综合面试

这一轮也是三个面试官,然后六个人一组,也是这么面对面交流。
综合面试主要是两个场景,第一个是给你一段话,然后给你两分钟,你可以根据材料的内容,来一段演讲,限时三分钟,
我的题目是关于中国人的山寨货,模仿是一种学习,你的看法?
两分钟后,面试官说可以开始了,因为没有人立即举手,所以我就举手了,大概随便说了一些,提出自己的观点就差不多了,然后大家开始轮流发言,基本大家都会有发言的机会,但是我觉得这个环节,主要是你的发言要有调理,观点重复不重要,但是条理一定要清楚。
第二个环节是面试官根据你的演讲,进行提问,其实也没问什么,主要是中间的面试官提问,听说话语气像是个领导之类的下面是一些记得对话

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
面试官:5号同学,你为啥没有项目经历
5号同学:因为我之前是学经济的,后来跨专业考到计算机,所以没有
面试官:4号同学,我看你写了很多计算机能力,你的这些计算机能力在你的实际项目中时怎么用的?
4号同学:首先,我的比赛要求我在一分钟内程序跑完,但是我第一个版本的程序跑完需要15分钟,我的算法肯定不能变,
那么我就需要优化数据结构,让他的运行时间变短,还有如此种种
面试官:那你这些比赛的代码量?
4号同学:大概500行,其他的比赛很长
面试官:3号同学,你总结下自己的特长
3号同学:我的学习能力特别强,团结同学之类的(这不是原话,大概意思是这样)
面试官:6号同学,你总结下自己的特长
6号同学:~~~~(内容和3号差不多)
面试官:7号同学,你的经历为啥断了一层?
7号同学:我之前本科毕业工作了四年去读研,其中有段工作时间太短,所以我没写,出现了断层
面试官:你主要做过什么项目?
7号同学:我印象最深的一次是,XXXXX
面试官:主要用的是什么语言?
7号同学:Java
面试官:1号同学,你说下你的项目经历
1号同学:XXX是我的实验室的项目,XXXX是我的业余爱好,我用的XX模型,主要是Java语言写的
面试官:3号同学,你的项目经历
3号同学:我主要是学习XXXX,我到目前为止,写了XXXX专利,还有一篇文章在写

差不多就问了这么多,然后我们这组综合面试就结束了,感觉这些人不是很在乎你的技术有多厉害,第一是你的表达能力,还有就是面试官很不专业,不是科班出身,所以这个时候有项目的可以随便吹就可以了。不知道面试结果咋样,反正就这样了。加油~

]]>
<h1 id="写在前面"><a href="#写在前面" class="headerlink" title="写在前面"></a>写在前面</h1><p>今天去参加了浦发银行的面试,啊~累死了,从中午一点开始面试,一直到下午六点才面试完,这会儿刚回到实验室,把一些东西写下来,免得自己忘记
小Q的歌单 http://www.jlzsnow.top/2018/07/31/小Q的歌单/ 2018-07-31T12:29:05.000Z 2018-07-31T13:26:56.883Z 问题描述–2018年腾讯秋招笔试真题

小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成一个总长度正好为K的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌曲的先后顺序的情况下,请问有多少种组成歌单的方法。

输入描述

每个输入包含一个测试用例。
每个测试用例的第一行包含一个整数,表示歌单的总长度K(1<=K<=1000)。
接下来的一行包含四个正整数,分别表示歌的第一种长度,A(A<=10)和数量X(X<=100)以及歌的第二种长度B(B<=10)和数量Y(Y<=100)。保证A不等于B。

输出描述

输出一个整数,表示组成歌单的方法取模。因为答案可能会很大,输出对1000000007取模的结果。

输入示例

1
2
5  
2 3 3 3

输出示例

1
9

结题思路

假设a首A长度的歌曲和b首B长度的歌曲组成歌单,那么应该满足下列方程

1
2
3
a*A+b*B=K  
a<=X;
b<=Y;

那么,只需要对a和b进行排列组合就可以,输出只需要对这个结果取模即可。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include<iostream>
#include<cmath>

using namespace std;

long C(int m,int n){
long res=0;
if(0==m || 0==n){
return 1;
}
if(1==m){
return n;
}
long x=1;
long y=n;
for(int i=1,j=n;i<=m;i++,j--){
x=x*i;
y=y*j;
}
return y/x;
}

int main(){
const int mod=1000000007;
int k;
cin>>k;
int A,B,X,Y;
cin>>A;
cin>>X;
cin>>B;
cin>>Y;

long res=0;
long temp;
for(int i=0;i<X;i++){
for(int j=0;j<Y;j++){
temp=i*A+j*B;
if(temp==k){
res+=C(i,X)*C(j,Y);
}
else if(temp>k){
break;
}
}
temp=i*A;
if(temp>k){
break;
}
}

cout<< res%mod<<endl;
return 0;
}

这是我的代码,因为我是事后写的,不一定能通过所有的测试用例,欢迎大家指出错误,写完博客,放松下
avatar

]]>
<h1 id="问题描述–2018年腾讯秋招笔试真题"><a href="#问题描述–2018年腾讯秋招笔试真题" class="headerlink" title="问题描述–2018年腾讯秋招笔试真题"></a>问题描述–2018年腾讯秋招笔试真题</h1><p>小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成一个总长度正好为K的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌曲的先后顺序的情况下,请问有多少种组成歌单的方法。
雪中悍刀行 http://www.jlzsnow.top/2018/07/29/雪中悍刀行/ 2018-07-29T12:07:39.000Z 2018-08-05T14:18:07.550Z   不记得花了多长时间,终于把雪中悍刀行看完了,不得不说,这是我近几年看的,少有的武侠佳作,以前看书,各种没营养的垃圾小说,现在说实话,越看眼光越高,这部小说,不得不说,圆了作者的江湖梦,也圆了我们这些读者的少年江湖梦。这部小说给我很多感动,也羡慕书中的风流人物,觉得中国的古文是真的美,看完了,随便写点东西。
  
春秋兴亡,风雨飘摇,霸业宏图,说与山鬼听
木剑走江湖,义薄胜关公,折剑听雨落,江湖秋水阔
两袖青蛇走,一剑开天门,甲子念绿袍,白发复狂歌
白鹤下江南,三世为红颜,长誓破天门,红衣承一诺
八国春秋崩,三甲天下敌,天地覆手间,人仙如提偶
八百年如昨,丽珠含恨锁,真武两世魂,不悔三生恋
大庚角誓杀,菜圃绿意遮,故国尘归土,白头与厮磨
紫雷一夜雪,裙结解又结,峨眉多摧折,紫衣令江湖
白衣诵般若,菩萨低垂眉,金刚伏魔怒,一禅在我心
一杆梅子酒,绿紫雷光起,知报寸心间,懒与人辩说
马踏六国崩,铁甲江湖折,佳人素衣剑,铁衣裹枯骨
长衿撼青壑,指荡旧星罗,雨中高歌死,霸王落子安
扣指问长生,三千红丝绕,佛魔蒙昧忘,世上已百年
胭脂东西寻,舍利南北笑,风雨飘摇过,朱钗慰我心
腴润幽香麝,剑冷情尚灼,无处觅佳人,念凉在我心
双兔傍地走,雌雄莫需辨,正道在我心,兔死走狗烹
黄庭洗凡浊,起手撼山阿,绿蚁慢饮酌,沧海化峭壑

  哈哈哈,就写这么多。
avatar

]]>
<p>&emsp;&emsp;不记得花了多长时间,终于把雪中悍刀行看完了,不得不说,这是我近几年看的,少有的武侠佳作,以前看书,各种没营养的垃圾小说,现在说实话,越看眼光越高,这部小说,不得不说,圆了作者的江湖梦,也圆了我们这些读者的少年江湖梦。这部小说给我很多感动,也羡慕书中的风流人物,觉得中国的古文是真的美,看完了,随便写点东西。
<center>hexo-next博客中mathjax显示问题解决</center> http://www.jlzsnow.top/2018/07/23/hexo-next博客中mathjax显示问题解决/ 2018-07-23T10:58:50.000Z 2018-07-23T11:42:53.985Z 问题描述

  在markdownPad2中用mathjax插入公式时,在线显示不了

解决方法

  第一步,在markdownPad中Tools->options->markdown->markdown processor选择GitHub flavored markdown(offline)
  第二步,在hexo中安装mathjax工具,执行以下命令就可以了

1
2
npm install hexo-math --save
hexo math install

  第三步,此时,你去插入公式,还是显示不对,因为在mathjax中,‘\’默认为转义字符,所以我们需要修改文件,去掉转义字符,方法如下:
在./node_modules/marked/lib/文件下,用记事本打开mathjax.js文件,修改其中两个地方:
第一个地方:

1
escape: /^\\([\\`*{}\[\]()# +\-.!_>])/,

修改为

1
escape: /^\\([`*\[\]()# +\-.!_>])/,

第二个地方:

1
em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

修改为

1
em:/^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

第四步,在主题配置文件_config.yml设置如下代码:

1
2
3
4
mathjax:
enable: true
per_page: false
cdn: //cdn.bootcss.com/mathjax/2.7.1/latest.js?config=TeX-AMS-MML_HTMLorMML

这样,所有的步骤就都完成了,快去试试吧

参考文献

搭建一个支持LaTEX的hexo博客
在Hexo中渲染MathJax数学公式
写完了一篇博客,来张图放松一下
avatar

]]>
<h1 id="问题描述"><a href="#问题描述" class="headerlink" title="问题描述"></a>问题描述</h1><p>&emsp;&emsp;在markdownPad2中用mathjax插入公式时,在线显示不了</p>
<center>解决图片在hexo-next博客下markdownpad2本地不显示问题</center> http://www.jlzsnow.top/2018/07/23/解决图片在hexo-next博客下markdownpad2本地不显示问题/ 2018-07-23T07:28:03.000Z 2018-07-23T08:55:02.405Z 问题描述

  前段时间刚开完玩博客,但是有个很大的问题就是本地图片在网上显示不了,总是会挂掉,很难受,就搞啊搞,总算是解决了。

  解决办法就是既然本地图片在hexo-next博客上回挂掉,那么久不放在本地了,而且放在本地的话,图片多了,生成静态文件的时候会非常慢,亲测,我就放了一张图片,就明显能感觉到变慢了,所以放到本地很不靠谱,那就是放在晚上喽,晚上选择性很多,但是要考虑到稳定性,我们现在这么折腾在GitHub上搭建个博客,各种个性化主题,我可不想我的图片三个月后莫名因为图床不服务了,我的博客上的图片也挂掉,那我会想弄死那些人,所以,以稳定优先考虑的按照我的方法来,如果你不想要稳定,或者只是玩玩,那么请出门右拐,随便选个图床。
  我选的是华为云对象存储作为我的图床,其实还有七牛云和阿里云都可以做,七牛云大家都推荐,但是实名认证贼麻烦,所以最后再阿里云和华为云之间选了华为云,这两个都差不多,而且流量包价格也一样的,所以朋友们不要问我那个好,都一样的,下面我以华为云为例,说下大概的过程:

具体步骤

  第一步,肯定是注册账号如下图:avatar
  第二步,注册号之后,登录,然后实名认证,很快的,基本上照片上传之后三秒钟认证通过,相比七牛云的一天半,而且还要求我的照片清晰来说,真的超级快,这就是我选择华为云的原因。这部分比较简单,我就不上图了。
  第三步,点击下图中的控制台
avatar
  第四步,点击下图中的对象存储服务
avatar

  第五步,点击下图中的创建桶,因为我已经创建过了,所以我的那个地方有条目,你们的应该是空的avatar
  第六步,创建的详情下图所示:
avarat
  第七步,创建桶之后,点击返回桶列表,创建好的桶如下所示,演示如何上传文件avator
  第八步,如图所示,上传文件;avatar
  第九步,如图所示,查看图片详情avatar
  第十步,获得图片外链;avatar
  第十一步,获得图片下载链接
avatar
  第十二步,购买流量包
avatar
  第十二步,如下图所示,选中,付钱就是了
avatar

总结

  以上就是所有的步骤,希望对大家有帮助。

]]>
<h1 id="问题描述"><a href="#问题描述" class="headerlink" title="问题描述"></a>问题描述</h1><p>&emsp;&emsp;前段时间刚开完玩博客,但是有个很大的问题就是本地图片在网上显示不了,总是会挂掉,很难受,就搞啊搞,总算是解决了。<br>
<center>可乐复制问题</center> http://www.jlzsnow.top/2018/07/23/可乐复制问题/ 2018-07-23T00:51:07.000Z 2018-07-23T07:11:46.094Z 问题描述

  自动售货机里有N瓶复制可乐.复制可乐非常神奇,喝了它的人会复制出一个自己来!
  现在有Alice,Bob,Cathy,Dave四个人在排队买复制可乐。买完的人会马上喝掉,然后他和他的副本会重新去队伍的最后面排队买可乐。
  问:最后一个买到复制可乐的人叫什么名字?

输入描述

输入仅有一行,包含一个正整数N;

#输出描述
输出喝到最后一罐复制可乐的人的名字

示例

输入

8

输出

Bob

问题分析

  我们以1,2,3,4分别代表四个名字,那么他们的排列分别是:

序列序列长度单个数字重复次数
1 2 3 441
1 1 2 2 3 3 4 482
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4163

我们可以看出,归纳总结可以知道,第i轮之后,第i轮的序列长度为\(4*2^{i-1}\)第i轮的每个数字重复频率为\(2^{i-1}\)
思路是,我们首先要确定输入的数字N在第i轮的范围内,然后再根据在这一轮每个数字的重复频率来确定最后N输入那个数字,也就是最后哪个人处于最后

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include<iostream>
#include<cmath>
int main()
{
using namespace std;

long n;
cin >> n;
if (n <= 4)
{
if (1 == n)
cout << "Alice" << endl;
else if (2 == n)
cout << "Bob" << endl;
else if (3 == n)
cout << "Cathy" << endl;
else if (4 == n)
cout << "Dave" << endl;
return 0;
}
long num=0;
long i = 1;
for (; i < n; i++)
{
if (n > (num + 4 * pow(2, i - 1)))
num += 4 * pow(2, i - 1);
else
break;
}

if (n-num<=pow(2,i-1))
cout << "Alice" << endl;
else if (n - num<=2*pow(2, i - 1))
cout << "Bob" << endl;
else if (n - num<=3*pow(2, i - 1))
cout << "Cathy" << endl;
else if(n-num<=4*pow(2,i-1))
cout << "Dave" << endl;

return 0;
}

总结

本来这个题还有一种最笨的解法,就是直接建立一个长度为N的数组,然后把数字一个一个填进去,然后判断最后是第几个人,但是这种方法,当N很大的时候,会占用很多内存,所以放弃了。

]]>
<h1 id="问题描述"><a href="#问题描述" class="headerlink" title="问题描述"></a>问题描述</h1><p>&emsp;&emsp;自动售货机里有N瓶复制可乐.复制可乐非常神奇,喝了它的人会复制出一个自己来!<br>&emsp;&emsp;现在有Alice,Bob,Cathy,Dave四个人在排队买复制可乐。买完的人会马上喝掉,然后他和他的副本会重新去队伍的最后面排队买可乐。<br>&emsp;&emsp;问:最后一个买到复制可乐的人叫什么名字?<br>
<center>hexo-next博客添加评论功能</center> http://www.jlzsnow.top/2018/07/20/hexo-next博客添加评论功能/ 2018-07-20T05:32:34.000Z 2018-07-20T05:39:51.570Z 添加博客功能

  今天我又更新了,本来想加载gitalk博客评论的,结果加载的过程中出错,在解决问题的过程中,发现了一个更好的,这就是极简的valine,这个真的是美爆了,果断放弃gitalk,换成valine,下面是我的添加过程,希望对大家有帮助。

  我参考了下面的这篇博客,大家照着来就行了。为什么我不再写一篇呢?因为我的图片上传功能还没修好,贼难受,就先这样记录,等我下午中期答辩结束再去找问题。

]]>
<h1 id="添加博客功能"><a href="#添加博客功能" class="headerlink" title="添加博客功能"></a>添加博客功能</h1><p>&emsp;&emsp;今天我又更新了,本来想加载gitalk博客评论的,结果加载的过程中出错,在解决问题的过程中,发现了一个更好的,这就是极简的valine,这个真的是美爆了,果断放弃gitalk,换成valine,下面是我的添加过程,希望对大家有帮助。<br>