从一个问题开始谈秒杀业务场景

这个首先就是从一个知乎提问开始的。有一天我看到这么一个提问: 然后,排名第一的答案就是一个静态页面,一个告知用户当前访问人数过多,请稍后再试。当然,这在很多人看来都是一个笑话。不过,对于一个之前做过秒杀业务的人来说。这真的是一段非常精妙的代码,某种角度上来说,这可以解决90%的秒杀场景。不过,用户体验太差,尤其是那些看到 console 有信息就会高潮的人来说。 所以,这边就先抛砖,来讲下我对秒杀业务的理解。 对于秒杀来说,它和传统的商城系统有着本质的区别: 低廉价格 大幅推广 瞬时售空 一般是定时上架 流量时间短、瞬时并发量高 对于技术人员来说,我们其实常常会把注意力着重的放在第五点上,就是对于流量的处理。 ... [阅读全文]

Ubuntu 14.04 添加侧边栏启动图标

5月没写博客。于是,水一波吧。。。。这个月本来是在做一个安卓 APP 的开发,等结束了总结下吧。 有朋友遇到个问题,就是 Ubuntu 上下载使用火狐之后,左侧启动栏上的图标很难看。因为系统无法识别这个新启动的应用是属于什么类型的,它的启动图标是什么。 网上有其他的教程,比如这个:Ubuntu为eclipse添加快捷启动。 基本的思路确实是这样,因为 Unity 或者其他的 X-windows 都会基于 /usr/share/applications 中的启动项来进行图标的配置。 不过这样做有个弊端。就是如果将你下载的软件存放在个人目录下。比如 home,而在 applications 里面添加了启动器,那么就会有可能,其他用户无法使用这个 launcher。如果你说你的电脑上就你一个用户。那么,就不是问题。... [阅读全文]

一次 MySQL 调优经历

*:not([class*="icon"]):not([class*="fa"]):not([class*="logo"]):not([class*="mi"]):not(i){font-family:Microsoft Yahei Mono,Arial,stonefont,iknow-qb_share_icons,review-iconfont,mui-act-font,fontAwesome,tm-detail-font,office365icons,MWF-MDL2,global-iconfont,"Bowtie" !important; 最近有一个朋友遇到一个问题,就是突然之间网站的响应时间变成了秒级,而且 MySQL 占用了大量的 CPU 资源。具体如下图: CPU 资源占用: 响应时间: ... [阅读全文]

Hexo 博客加密插件简述

众所周知,Hexo 是一个很赞的静态博客系统。但是,他有一个很大的缺陷,就是无法对文章进行加密处理。比如,我想对一篇文章做权限控制,例如提问回答可见等等。所以,这就产生了一个这样的需求。 虽然我不是一个 Hexo 用户,但是,看到这样的知乎问答: 我只想说,不想一想实现就直接说不可以的,都不是程序员,一点创造性都没有。顺便吐槽下知乎这个社交平台。 说正事。这个插件的主要用途就是为博客加密,使用方法很简单,这边就不详细描述,因为还有一些没有完善的地方,先期的文档在这:GITHUB 原理 其实说穿了,也很简单。因为 Hexo 是纯静态博客系统,所以不可能采用后台密码校验的方式进行处理。所以这个校验就落到了前端上。但是,如果直接 js 进行密码校验,这就好像,我把钥匙放在钥匙孔里,然后对小偷说,你看,我... [阅读全文]

Hexo 标签云插件

现已升级至2.0.*版本,请移步 Hexo-Tag-Cloud 查看具体安装方法。 按照常理,首先要说明为什么要写这个东西。最主要的原因是,我在看同学博客的时候,被大部分的标签云恶心到了。 要么就是一个静态的列表,要么就是一个不知道怎么停下来的标签球。为表愤怒,我就写了这个插件。 求 STAR Hexo-Tag-Cloud 使用方法 在 hexo 博客的根目录找到 package.json 这个文件夹,添加如下的依赖: { "name": "hexo-site", "version": "0.0.0", "private": true, "hexo": { "version": "3.2.0" }, "dependenci... [阅读全文]

在 Dingo/Api 中实现自定义错误回复

目前在用 Laravel 做一个 APP 后台的开发。因为都是 API,所以需要定义个通用的通信协议。这个比较好解决,而且我之前的思路也都有,具体可以看这篇:设计自认为优雅的接口。这里就不再废话了。 考虑到之后的通用性和可维护性,我们决定使用 Dingo/Api 这个插件进行 API 的管理,开发。所以,理所当然的遇到了这么一个应用场景。 这是使用 Dingo/Api 之后,标准的返回值: url: http://www.ehs.com/api/test/index { "status_code": 100, "message": "成功", "timestamp": 1457267879, "data": "eyJmZmYiOiJmZmYifQ==", "sign": "d550edf4061cd60a404cd1835... [阅读全文]

Coding.net 作弊混码币

该方法已失效,就放出来了。哈哈,算是记录下。 扯淡 无意之间发现了 Coding.net 这个代码托管网站,然后又发现了码币这个东西,居然是和实体货币可以交换的。于是就有了想法。 主要看看哪些选项是可以增加码币的,官方的说明如下: 有一点要注意下,就是邀请好友是0.02码币,不是说明中的0.01码币,并且确实存在这个100个上限。 当然这个码币也是挺诱人的,和人民币1:50的汇率。所以,接下来教大家如何刷这个东西 使用方法 点击 求 star 的 cheat-coding.net 项目, 目前只支持 *uix 系统, 如 Mac, Ubuntu 等等。 在一个空旷的目录下执行: git clone https://github.com/MikeCode... [阅读全文]

Laravel Session 相关

本文内容紧接之前的那篇文章,因为个人喜欢没事找事做,所以才会对一些实现细节比较感兴趣。比如 Laravel 的 Session 实现。 既然 Laravel 的 Session 并不是采用 PHP 原生的 Session 框架,那么它的这重起炉灶的一套 Session 机制,有什么更好的地方,或者说更优雅的地方? 我们先来看 PHP 的原生 Session 实现。PHP 初学者,勿喷。。 Session 是什么 自行谷歌或者 Bing。 PHP 原生 Session 机制 这主要涉及三个方面,Session 的生成,回收,存储 Session 的生成 这部分主要见于 PHP 源码,以手头的 PHP7 的源码为例,具体位于 /ext/session/session.c 中的 *php_... [阅读全文]