Archived

「 30 」

  • 五月 2021

  • 五月 20, 2021
    分块传输就不能跨域? `chunked` 编码影响 `CORS` 跨域的问题排查

    在日常开发中我们经常遇到需要进行跨域的情况,虽然跨域的方案有非常多,但是最推荐的方法还是 CORS。服务器在Http 返回头中增加 CORS 的返回信息,就可以轻松的进行跨域。 问题现象 有一个项目,采用了 CORS 进行跨域,项目是基于 Spring 开发的,部署在 Jboss 上,Apache为 web 服务器。项目的实现方式是通过增加了一个 CorsFilter 的方式,在每一个请...

  • 二月 2021

  • 二月 25, 2021
    【翻译】基于 Favicon 的超级 Cookie

    序言 很久以前写过一篇文章 不用 Cookie 我也能追踪你, 自从得知了文章中的思路以后就感觉脑洞大开,简直黑科技,随着这么多年的发展,文中提到的帆布指纹识别技术已经应用到了很多的实际项目中了,追踪与反追踪本来就是猫鼠游戏,用的多了这种技术也渐渐的被好些个浏览器屏蔽了。最近又看到一种新的追踪思路,由于是英文的,在观摩的时候顺手翻译了出来。 翻译自 https://supercookie...

  • 二月 28, 2020
    为 Cypress 的 e2e 测试增加代码覆盖率检测

    之前写过一篇关于 如何使用 Cypress 进行端到端测试 的文章, 介绍了如何给 Vue 项目添加端到端测试。我们也体会到了 Cypress 做端到端测试的方便,作为 Vue 内置在官方脚手架中推荐的测试框架,不少项目已经引入并开始使用了。当你的项目已经添加了 Cypress 端到端测试,你的内心一定会很在意“我的测试到底充不充分?有没有浪费过多的经历在测试上?”这两个极端的问题。引用...

  • 二月 17, 2020
    如何用 docker 部署 gitea 并开启两步认证

    Gitea是 Gogs 的 fork 版本,是一个可以自行搭建的 git 服务器。两者均是开源的,托管在 github 上。有了 Gogs 为什么又会有 Gitea 呢, 是由于社区认为 Gogs 的管理模式不利于社区发展, 于是自立门户, 他们之间的恩怨情仇我们不去讨论, 有兴趣的可以看这个,传送门。我为什么选择 Gitea 呢?是因为 Gogs 已经大半年没更新过版本了,Gitea 维护...

  • 五月 2019

  • 五月 17, 2019
    如何使用 `Cypress` 进行端到端测试

    简介 cypress 是一个端到端(end to end) 测试框架。它基于 mocha 式 API ,提供一整套端到端测试的解决方案,无需再安装其他的测试库,对 webpack 友好,并提供一套强大的图形界面工具,语法简单符合直觉,上手容易。测试浏览器基于 Chrome 或者 Chrome 的变种浏览器,比如electron、Chromium 优势 自带完整解决方案, 无需安装其他测试库 ...

  • 二月 2019

  • 二月 01, 2019
    如何在 Win10 上打造一个漂亮的终端

    Win 的同学一定都会羡慕玩 Mac 的同学那一套漂亮的 Shell 吧,iTerm2 && Oh My Zsh 搭配出来的效果让人流口水。下面就是我找到的别人搭配的终端效果图。我一直质疑为什么 Win 平台上不能有这么优秀的终端出现,我之前也玩过 Cmder,虽说比起自带的 cmd 已经强大了一个数量级,但是效果比 iTerm 还是差不少。最近,无意间让我发现了一个好东西 ...

  • 九月 2018

  • 九月 13, 2018
    再次切换评论系统

    最早使用了一段时间的 Disqus,在国内 公开、平等、有序 的 网络审查 地区下 访问不了。后来切换到了多说,多说是我使用时间最长的评论系统,后来多说关停了。无奈之下切换到了替代品搜狐畅言。但是感觉畅言虽然很多地方和多说很像,但是心里总觉得有一点点山寨,有一点点乡村非主流。而且万一哪天也关停了怎么办。于是将评论系统切换到了 Valine,一个开源的评论系统,数据托管在 LeanClou...

  • 九月 03, 2018
    IHS、Apache、Ngnix 的负载均衡和 session 亲和配置探究(一)

    最近机缘巧合研究了一下各个 Web 服务器负载均衡时 Session 亲和性的配置,记录和分享一下。网上已经有一些零散的资料了,但是有很多已经年代久远,很多信息已经不适用了。另外 IHS 的配置是与 IBM 的 WebSphere 的工程师聊过的,应该算是比较准确了。 什么是 Session 亲和HTTP 协议是一种无状态的协议,但是为了满足需求,需要在 HTTP 协议上增加一些状态,比如...

  • 八月 2018

  • 八月 03, 2018
    凡是超过 90 秒的事情都要自动化,开发辅助工具介绍

    Alex 是英国一家客户支持服务初创企业的创始人,他写过一篇博客,名字叫做《 Now that’s what I call a Hacker 》(这才是我所谓的黑客)。故事的主角是他的前同事的前同事。这位老兄离开后 Alex 的前同事检查他的代码的时候惊讶的发现,原来这个家伙凡是需要超过 90 秒以上的工作全都不自己干,他会编写脚本,让程序自动执行完。这些工作包括向老婆大人汇报、自动修复客户...

  • 一月 2018

  • 一月 12, 2018
    写给后端开发者看的 Vue 前端介绍(二)-- 单元测试

    上一篇“基础篇”聊到了一些 Vue、Nodejs、Webpack 的基本概念。本篇将着重讲解 Vue前端工程如何做单元测试。学习一个新技术,必须要清楚两个 W,”What && Why”。”XX 是什么?”,”为什么要使用 XX ,或者说 XX 有什么好处”,最后才是”XX 怎么使用”。本文也将从“前端单元测试是什么”、“为什么要做单元测试”进行讨论。 前端单元测试是什么? ...

  • 七月 2017

  • 七月 31, 2017
    TiD 大会感想之浅谈前端工具化与工程化

    今年有幸参加了一天的质量竞争力大会,众多的课程当中,无法分身的我听了其中两节。分别是“终端重构之旅”以及“微服务下的持续交付”。由于“终端重构之旅”涉及硬件终端,与我们平时工作相距较远,所以本文着重谈谈对“微服务下的持续交付”的感想。 微服务下的持续交付 微服务(Micro Service)是一种将复杂的业务逻辑拆分成多个高度自制的独立系统的架构设计。微服务为构建可扩展、可维护的大规模服务...

  • 四月 2017

  • 四月 05, 2017
    写给后端开发者看的 Vue 前端介绍(一)-- 基础篇

    不懂“前端 er”说的 virtual dom、React、Angular、Vue,也不懂 ES6 为什么就这么优雅,更不知道为什么用 Bootstrap、jQuery 就得“剁手”,甚至不懂前端生态圈的重复造轮子文化。终于有一篇文章是写给后端工程师的前端介绍,后端写给后端看的。我打算从最近火热的 Vue 来介绍,一方面由于这套框架简直火的一塌糊涂;另一方面,这套框架涉及的技术栈范围全面,“...

  • 二月 2017

  • 二月 08, 2017
    迈向 PWA!利用 serviceworker 的离线访问模式

    微信小程序来了,可以利用 WEB 技术在微信打造一个有着 Native 应用体验的应用,业界非常看好这种形式。但是你们也许不知道,Google 早已有类似的规划,甚至层次更高。那就是 PWA(渐进式增强 WEB 应用)。PWA 有以下几种特性: Installablity(可安装性) App Shell Offline(离线能力) Re-engageable(推送通知能力) 所有这些特性...

  • 一月 2017

  • 一月 24, 2017
    全站 HTTPS 改造

    HTTPS 大势已来,2016 年 6 月苹果宣布要求所有 iOS Apps 在 2017 年初全部使用 HTTPS,11 月 Google 宣布,从 17 年 1 月开始,对没有使用 HTTPS 的网站竖起“不安全”的小红旗。15 年,淘宝、天猫也启动了 HTTPS 迁移。国内网络环境也不太好,经常会有运营商篡改页面的情况,为了更安全的客户体验,避免各种情况同事顺应大势所趋,本博客也进行了...

  • 十二月 2016

  • 十二月 02, 2016
    nodejs 部署方式 -pm2(一)

    目前 Nodejs 开发中有很多痛点,其中有一个是修改完代码以后需要我们重启服务才能看到效果。这样一次次的杀进程、重启,杀进程、重启很让人头大。程序员是最痛恨重复工作的物种,之前有了解过的同学可能知道 forever。forever 可以帮我们解决上面的问题,通过对资源变化的检测做到变化后自动重启。开发阶段我们使用 node file.js 来启动另外由于 Nodejs 的单线程,任何异常都...

  • 六月 2016

  • 六月 01, 2016
    使用 CNPM 搭建私有 NPM 仓库

    我们在使用 Nodejs 的时候,使用 npm 仓库来发布和管理模块,我们可以从 npm 上下载别人发布的模块使用,也可以自己发布模块,有点类似于 Maven,这是非常流行的开源社区模式。但是在企业内部,我们不希望我们的生产代码可以随意引用任何未经企业审核的代码;我们也不希望企业内部自己的模块发布给任意人员使用;还有一个重要的原因是很多企业内部无法连接互联网 cnpm 就是来解决这些问题的。...

  • 五月 2016

  • 五月 25, 2016
    使用 travis-ci 持续集成 Hexo 静态博客

    Hexo 是一个基于 Nodejs 的轻量级静态博客生成框架。静态博客生成程序会将我们所写的博客生成为一套 HTML+CSS+JavaScript 代码,我们将这个代码部署到诸如 Github Page 这样的地方就可以在世界任何一个地方访问我们的博客了。这种方案有一个非常有利的优点–免费。但是,hexo 环境不是处处都有,换个地方写作变成了一件麻烦事。而且写完文章以后需要 hexo g,h...

  • 三月 2016

  • 三月 05, 2016
    浏览器缓存知识归纳

    写在开头:这篇文章是打算分享到单位内部的材料。归纳浏览器缓存也是对一个生产问题的分析总结出来的。这片文章经过脱敏以后发表到个人博客上面吧。 浏览器缓存(Browser Catching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。 —- 摘自《百度百科》 浏览器缓存是提升网页...

  • 二月 2016

  • 二月 07, 2016
    2016 年,猴年快乐!

    2016 年新年,祝愿所有人新年快乐,猴年吉祥。这片文章是【近期想法】主题的第二篇,上一篇有部分内容已经实现了,只是没有来得及写文章。 hexo 静态博客的持续集成 其实就是年前那会结合 Travis CI 的服务给这个博客弄了个自动部署,写完博客只需要提交到 github 上就行了,不用再自己生成再部署了。算是简单的持续集成吧。弄得时候有些地方折腾了很久,写出来应该很有意思。 Cloud...

  • 一月 2016

  • 一月 13, 2016
    我遇到一个 Bug,金额大于一千万就报错

    这是一个在测试环境发现的一个 BUG,感觉很有趣,便写出来分享一下。本文的灵感以及标题都来自于《我遇到一个 BUG,每逢周三就崩溃》。我在银行做系统开发,“金额”基本上是最常见的字段,也是最不能出错的字段了。每一个错误都代表着实打实的资金损失,无论是客户的还是银行的。所以,作为开发人员,对这个字段也相对敏感一些。金额这个字段的规则也相对其他字段更复杂一些。举个例子来说,金额是一个数字,可以是...

  • 十二月 2015

  • 十二月 03, 2015
    使用 Pjax 优化你的网站

    Ajax(Asynchronous Javascript and XML)的魅力在于它的每一个成员都不是新技术,经过奇妙的结合却掀起了 WEB2.0 的革命。Pjax是 pushState 和ajax的封装,同样每一个都算不上新技术,结合起来却有着神奇的效果。 前两天在闲逛别人博客的时候,无意间发现了有个人的博客访问速度极快,于是乎好奇研究了一下。在查看代码的时候发现了一个 jquery....

  • 十一月 2015

  • 十一月 18, 2015
    javascript 前后端代码复用 -browserify

    Nodejs 将 javascript 带上了一个新的高度,让之运行于浏览器端的 javascript 可以运行在服务器端。但是 Nodejs 遵循 Commonjs 规范,不能直接运行在浏览器端。虽然是同一种语言,但是前后端有着自己的库,不能复用真是一种浪费。这时候一个神器出现了,Browserify。通过预编译,可以将 Commonjs 规范的后端 Nodejs 代码直接可以运行在浏览器...

  • 十月 2015

  • 十月 30, 2015
    Jackson 中的那些坑

    不符合驼峰规范的变量 “驼峰命名法”请自行百度。简单的来说就是变量的第一个单词以小写字母开始其他单词首字母大写,或者全部单词首字母都大写,分别称为“小驼峰”和“大驼峰” 比如一个符合驼峰规范命名的实体: public class Entity { String beFlag; public String getBeFlag() {return beFlag;} pub...

  • 九月 2015

  • 九月 15, 2015
    近期想法汇总 2015 年 9 月

    打算新开一类主题,主要用来记录近期的一些想法,有想好了要做的事情,也有要做但是还没有思路的事情。类似 LifeHacker 那样,不仅仅有编程相关。可以有技术、科技、设计、生活想法等等,如果时机成熟,这一个个的点子实践以后会形成一片单独的文章,如果我一直没有想法,看到这篇文章的人也可以在评论里帮我出出主意。这篇文字是第一次尝试。 接口接入控制,以及如何防止恶意、伪造接入 这个想法来源于工作...

  • 九月 12, 2015
    JSON 与 Java 对象的事

    很久没有写了,来清理一下杂草。这片文字是团队内其他小伙伴经常混淆的一个知识点,最初的目的是写个东西好让大家用到的时候可查,由于原文涉及公司的一个框架,不便写出来。该框架其实引用的开源框架 Jackson,所以本文直接介绍 Jackson 部分。其实说不上介绍,约等于一个学习笔记。 JSON 是什么?JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。...

  • 四月 2015

  • 四月 11, 2015
    升级 Hexo2.X 到 3.0

    我一般不想转或者写别人写过的一些东西,但是今天这篇文章算是转的,完全记录了我升级 hexo 的过程。为什么呢?实在是觊觎了很久了,一直没敢动手,3.0 版本可是个大手术,据说好多主题和插件都挂了,现在这个主题我修改了不少,怕万一出个什么问题很麻烦。仅以此文来记录这次没什么意外地升级。 Hexo3.0 新特性 新的命令行工具:hexo-cli 更轻量级的核心模块:generators,depl...

  • 三月 2015

  • 三月 24, 2015
    使用 Swiftype 为静态博客添加站内搜索

    为网站、App 提供站内搜索的 Swiftype 获 1300 万美元 B 轮融资。Swiftype 可以为网站及移动 App 提供内置搜索引擎服务,搜索服务的部署非常简单,只需要插入一行 JS 代码即可搞定。于 Google 相比,高度可定制化是它的优势。来自:36Kr 之前一直用的默认的百度搜索,由于某种问题一直效果不理想。Google 又被墙了(无法访问),也没法使用。在微博上看...

  • 三月 09, 2015
    不用 cookie 我也能追踪你!

    抱歉起了这么个“吸引人的”标题,但我不是标题党。最近由于工作上的一些事情,涉及到识别、追踪设备的项目来了几个,从一篇论文《The Web Never Forgets》无意间又发现了这个技术。查阅了一些资料。做了个小 Demo 应用到了本博客上。对!你没听错,本页面在追踪你。不过也没那么可怕。看看本站的 Visitor Info 模块,它可能在屏幕右侧也可能在最底下。这个模块会知道你是否之前访...

  • 二月 2015

  • 二月 27, 2015
    基于 Firebase 的 Hexo 博客实时访问数统计

    本来想写一个 HEXO 的搭建过程的,但是在搜索引擎上一搜一大把教程。看到有人评论:“你写这个跟 HEXO 官方的教程比好在哪?”仔细想想,说的极好。索性也就不写这个人家已经写烂了的东西了。附一个 官方教程链接 。其实在搭建过程中还参考了一个很全面很详细的博客,也附上链接吧,ibruce 不如。 对于像 HEXO 这种静态博客来讲,想要做到一些动态的功能就必须得靠第三方支持,比如评论可以使...

  • 二月 17, 2015
    第一篇 blog

    博客开张啦,这是我的第一篇博客,基于 Hexo 搭建,部署在 Github Page 上。 地址:pangjian.me

0%