使用 GA 做 API 的统计

本文简要介绍如何用 GA 做统计,同时对比现存的 Gem。注意姿势,要不然徒劳无功。

JS 小游戏之连连看

最近在看《编程之美》,第一章的游戏之乐就提到了《连连看》的实现原理,关键在于用到了最短路径算法,正好用 js 实现一个简陋版复习下图算法。

AWS 使用小记- Beanstalk + Rails + Passenger + PostgreSQL

技术栈还包括了 WebSocket, Sidekiq 和 Redis,使得启动变得小坑不断。而在填坑的期间,文档和论坛帮了不少忙,可是网上实战的例子很少(几乎没有)。我作为尝试螃蟹的人,吃起来真是费劲。

字符串算法之 KMP

和字符串有关的算法颇多,也是面试的重要考察点,其中 KMP 又是不可避开的知识点。本文会从介绍这个算法开始,然后给出 C 的实现方式。

配置 "Build when a change is pushed to BitBucket"

利用 webhooks 和 BitBucket Plugin 来实现代码推送后自动触发测试服务器启动测试。自动化测试必须有。

Cycle Detection

想要写好 Directed Graph Cycle Detection 可比想象中的要复杂。什么,Recursive 怎么没有停止?纳尼,为什么 Cycle 没有被监测出来?Segmentation Fault 来捣乱是几个意思!受不鸟了,上个 cgdb 看看,原来真相只有一个。

An ActionController::InvalidCrossOriginRequest occurred

本地明明没问题,怎么上线了 Bug 满天飞。原来是这些 UA 捣鬼。

微信用户访问统计及渠道推广力统计

结合使用 active admin, impressionist 和 微信的 openid,实现在微信浏览器下的访问统计模块。

括号匹配问题

给定一个只有括号的字符串,判断这个字符串是不是闭合的。

链表划分

根据给定的数值,把链表划分为小于数和大于数两部分。要求划分后的两部书链表保持原来的顺序,时间复杂度是 Θ(n),空间复杂度是 Θ(1)。

链表翻转

通过‘头插入’法实现链表的翻转。要求不能申请新的空间,时间复杂度是 Θ(n)。

Merge Sort

插入算法

Yet Another MessageVerifier Usage

某个月明星稀的夜晚,开发团队上线了引导用户注册的页面,准备大干一场。这个页面制作精良,内容生动有趣,超吴亦凡H5广告十个老罗发布会,让人爱不释手,天使用户看了不分享都对不起朋友,对不起社群。于是他把所有朋友,所有群和朋友圈都转发个遍。现在问题来了,市场团队如何知道谁的转发号召力最强呢,到底是拥有最多朋友的头号天使用户,还是对产品最感兴趣,朋友圈相关性最高的二号天使用户?

Sidekiq 的安装,配置和部署

最简最快配置 Sidekiq,不二家。

websocket-rails 的坑

websocket-rails 这个 gem 提供了异步推送的封装,可在配合 sidekiq 使用的时候,是否是 standalone 模式会产生不同的行为,引发 bugs。

用 JS 实现简单的贪吃蛇

实现贪吃蛇是一个很好的练习数据结构和增加对算法理解的途径。不过到底该从哪里开始?模仿是最好老师。文主搜索了现有的贪吃蛇实现(JS, Ruby, C# etc),找到其中最好的理解的一份实现去分析,然后合上书本,自己摸索出了实现。本文就是对这个合书思考的一个总结。

快排

一步一步配置 AngularJS 测试环境

本文记录了如何一步一步的配置 AngularJS 的 unit 和 e2e 测试环境。AngularJS 的测试会用到 protractor, Jasmine, PhantomJS, ghost driver, Selenium 等库。文中会简要的描述它们之间的关系。希望读者可以参考本文顺利搭建测试环境,少走弯路。

如何调用微信基础授权实现无登录交互

这篇文章简述了如何利用微信的 OAuth2 授权机制,帮助你的网站实现无登录交互体验。

Rails App 性能优化实战篇 - 1 (初级)

本文简述了 Rails App 开发中会用到的性能优化技巧。包括了通过编写 PostgreSQL aggregation sql 来提取时间有关的统计数据。

重新思考找回忘记密码解决方法

简述如何用 JWT 来实现不需要数据库 columns 的找回忘记密码解决方法

出发

面朝希望,春暖花开