Wakatime 不升级会员也能查看历史数据了!

WakaTime 是一款优秀的编程时间管理工具,可以在各大编辑器上统计追踪你的编程时间。
下面的截图是 WakaTime 的 Dashboard,它统计了每天的编程总时长及对应的项目时长、编程时间段、跟前一天编程时间对比、所用的语言、编辑器。

阅读全文

HTTP 缓存

缓存的作用

重用已获取的资源能够有效的提升网站与应用的性能。Web 缓存能够减少延迟与网络阻塞,进而减少显示某个资源所用的时间。借助 HTTP 缓存,Web 站点变得更具有响应性。

什么是缓存

缓存是一种保存资源副本并在下次请求时直接使用该副本的技术。当 Web 缓存发现请求的资源已经被存储,它会拦截请求,并返回该资源的副本,而不会去服务器重新下载。使用缓存有下列的优点:

阅读全文

Hexo 个人博客 SEO 优化(3):改造你的博客,提升搜索引擎排名

Hexo 个人博客 SEO 优化三篇系列文章终于完成了
Hexo 个人博客 SEO 优化(1):搜索引擎原理介绍
Hexo 个人博客 SEO 优化(2):站内优化
Hexo 个人博客 SEO 优化(3):改造你的博客,提升搜索引擎排名

阅读全文

Hexo 个人博客 SEO 优化(2):站内优化

对于搜索引擎原理不清楚的可以看第一篇文章:个人博客 SEO 优化(1):搜索引擎原理介绍

阅读全文

Hexo 个人博客 SEO 优化(1):搜索引擎原理介绍

写在文章前面:
前段时间接到一个企业官网站内优化的任务。为了完成它,只能赶鸭子上架,从零开始系统地去学习 SEO 知识。经过几天的学习后,也算是入了门。才意识到 SEO 它的意义与重要性,觉得 SEO 对于做个人站点(博客也算是个人站点)的意义与重要性不言而喻。可能有人会反驳在如今自媒体、微信公众号及知乎、掘金、sf等各种垂直网站盛行的年代,再去研究 SEO,对博客做 SEO 是否有必要。我的看法是,如果你想长期坚持维护自己的博客,那么学习必要的 SEO 知识的收益是一件半衰期很长的事情,是一件坚持就会事半功倍的事情。

阅读全文

VPS 开通后的安全设置

前两天在登录 vultr vps 的时候,发现在被人暴力破解,到现在应该已经进行上万次的尝试了。因为我在 vultr vps 上就搭了一个梯子,也没有其他东西,就一直都是用 root + 密码登录到 vps。照这个破解速度,早晚有一天密码会被暴力破解的。所以还是老老实实得开启 ssh 登录 + 禁止 root 用户登录和密码登录。
vps暴力破解截图
所以一般在你拿到一个新的 vps 之后,需要做的第一件事情就是新建普通用户,开启 SSH 免密码登录。然后禁止 root 用户登录和密码登录。这样就从根本上防止别人暴力破解密码的可能性。

阅读全文

React + Webpack 构建打包优化

React 本身的优化

阅读全文

深入理解 Koa2 中间件机制

本文通过分析源码,深入学习 Koa 的中间机制。

阅读全文

koa 实现 jwt 认证

关于 Token 认证机制,这里不做更多解释。不清楚的可以看我的这篇文章:Web开发中常见的认证机制
GitHub 地址:koa-jwt-sample

阅读全文

《零秒思考》- 随时随地记下你的想法

阅读全文

理解 async/await

ES7 提出的 async 函数,终于让 JavaScript 对于异步操作有了终极解决方案。No more callback hell。
async 函数是 Generator 函数的语法糖。使用 关键字 async 来表示,在函数内部使用 await 来表示异步。
想较于 Generator,Async 函数的改进在于下面四点:

阅读全文

多个域名指向同一个 GitHub Pages

昨天重新申请了我自己名字全拼的域名 chenhuichao.com,然后把之前的 iamsuperman.cn 的国内域名给替换了。
换完之后才发现一个问题:如何让原有散落在各大搜索引擎和社交网站上的博客地址及 GitHub 多个 demo 地址也能保持正常访问?

阅读全文

两款时间记录管理工具

时间管理的一个重要原则就是记录下你每天的时间都花在什么地方,然后通过数据来观察每天时间花费的组成,从而找出时间黑洞,并有针对性的做出改变。所以今天就来推荐两款强大的时间记录神器。

阅读全文

开放或者保守?

每个人性格都是带有偏向性的,决定了你是拥抱开放或者是趋于保守。如何才能判断你是属于哪种性格呢?很简单,你回想一下,在你平时做选择时,你是经常做出相同的决定,还是每次都是都有不同的决定。
最贴近生活的例子:每次你去一家饭馆吃饭,你总是点以前尝试过的菜?还是每次都尝试新的菜呢?
前者的你,就相对比较保守。后者的你,可能更喜欢开放。

阅读全文

基于 Jest + Enzyme 的 React 单元测试

前言

如果你想学习 React 单元测试,那就从这篇文章开始吧。Star 项目,clone 到本地,根据教程走一遍,有任何问题欢迎 issue 讨论。

阅读全文

如何利用“评估模式”来优化相亲策略

首先得声明一点,这完全是个标题党,并不是要教你如何相亲,而是通过相亲这个例子来更好的理解 评估模式中的联合评估和单独评估。
先来看看下面的例子:

如果你是个女孩子,经人介绍了一个不错的男生,要去相亲。你们素未谋面,约定今天碰面。在这个节骨眼上,第一印象很重要,尤其是女孩子的相貌。
你精心打扮,正准备出门,碰巧舍友也有空,你盘算着是不是要带室友一起去,好让她帮着参谋参谋。

阅读全文

一个知乎回答引发的思考

今日知乎上的一个 timeline 的回答引起了我对于批判性思考的回答。
知乎直达:如何看待女童店内奔跑在饭店拐角处与店员端的烤鱼锅相撞,家长索赔39万

阅读全文

Web开发中常见的认证机制

HTTP基本认证(HTTP Basic Auth)

在HTTP中,HTTP基本认证是一种允许Web浏览器或者其他客户端在请求时提供用户名口令形式的身份凭证的一种登录验证方式。

阅读全文

面对众多的前端框架,你该如何学习?

记得就在刚接触 AngularJS 的时候,那时市场上正值 React、Vue、AngularJS 三足鼎立,大量的前端新人可能都会有这样的困惑:这三个框架到底该学哪个好呢?我自己当时也是非常的迷惑,找不到一个合适的答案。
作为一个 React、Vue、AngularJS 都写过的人,现在这个已经不再是问题了。先说结论:
公司用哪个框架就先学框架;其次自己喜欢哪个框架就学哪个框架
我的经历是因公司业务而以 AngularJS 起步,再因个人兴趣学习 Vue,最后再因为新公司以 React 技术栈为主,从而拥抱 React。
知识和学习能力是可以迁移的,掌握了 Vue 技术栈,再去学习 React,其迁移成本非常的小,你所需要做的是看文档,比较二者的异同,然后就可以直接上手了,反之也成立。因为 Vue 和 React 的相似度确实蛮高的。
经过了这三个框架的学习,发现学习可以总结成3个步骤:

阅读全文

【Vue + axios】一个项目学会前端实现登录拦截

一个项目学会vue全家桶+axios实现登录、拦截、登出功能,以及利用axios的http拦截器拦截请求和响应。

前言

该项目是利用了Github 提供的personal token作为登录token,通过token访问你的Repository List。通过这个项目学习如何实现一个前端项目中所需要的
登录及拦截、登出、token失效的拦截及对应 axios 拦截器的使用。
Gihtub地址:https://github.com/superman66/vue-axios-github

阅读全文