微信小程序session管理

最近微信小程序开发很火。我们的移动端项目也开始使用小程序来实现,在这之前我们已经基于Html5实现了类似于小程序的应用。了解了小程序开发后觉得有很多相似之处,还是要用到js和css这些技术。但也有许多不同,jquery等这些js库不能直接使用了、http session也不支持、页面发起http请求小程序有自己的api。对于我们项目来说就不只是简单的将H5页面翻译成小程序的页面这么简单了。首先要解决的问题就是http session。在H5项目中,使用http session来关联微信openid这样每次http请求都能确定是哪个用户发起的请求。如果熟悉http session的原理,session问题就好解决了。常见的session保持方式是,当浏览器向服务端发起http请求时,服务端检查在http 头部cookie参数里是否包含sessionid,如果有sessionid就根据sessionid去查看存储在服务器端的session,session里保存的当前会话的一些信息。如果sessionid没有服务端就会分配一个,写到cookie字段里,浏览器下次发起其它请求的时候带上。而在小程序里所有的请求都通过wx.request API来发起的。如果对wx.request API包装一下,使其每次向服务端发起请求时也添加一个名称为Cookie的http header,这样也不用对服务端作改动。服务端分配的sessionid使用wx.setStorageSync API存储在微信客户端。
项目源码地址:https://github.com/it-man-cn/smallapp-session

(更多…)

tr069-lib

tr069-lib是一个golang实现的tr069支持类库。目前开源的有tr069消息的处理库。项目地址:https://github.com/it-man-cn/tr069-lib

使用gvm安装golang开发环境

1、背景
使用golang开发可能需要在各版本的golang开发环境中切换。每次都需要修改环境变量。而通过gvm能能轻松的解决这个问题。
gvm项目地址:https://github.com/moovweb/gvm

2、安装gvm
执行

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

重启Terminal会话让gvm生效

(更多…)

golang 从mysql取datetime类型数据

通过golang从mysql中查询datetime字段,本想参考之前普通类型查询,只要将变量类型修改为time.Time就可以:

rows, err := db.Query("select login_time from user where id=1")
for rows.Next() {
 var lastLoginTime time.Time
 err = rows.Scan(&lastLoginTime)
 if err != nil {
	panic(err)
 }
 fmt.Println(lastLoginTime)
}

运行代码并没有得到预期的结果,运行出错,err信息为:

sql: Scan error on column index 1: unsupported driver -> Scan pair: []uint8 -> *time.Time

(更多…)

Centos 6.4 安装python-rrdtool

Centos用的64位系统,网上找到的安装教程大都是建议通过yum来安装。过程如下:
1、yum安装rrdtool

yum install rrdtool rrdtool-devel

2、使用pip安装python-rrdtool模块

pip install rrdtool

Centos 6.4自带的python版本是2.6.6,可以通过上面方式安装python模块。但我将python升级到python2.7后就不行了。提示如下错误:

 >>> import rrdtool
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: /usr/local/lib/python2.7/site-packages/rrdtoolmodule.so: undefined symbol: rrd_flushcached
</module></stdin>

(更多…)

DIY树莓派乐高外壳 Raspberry Pi Lego case

平时在家做分布式或hadoop的一些测试,都是在电脑上安装多个虚拟机。偶然看到有人拿树派做分布式测试,了解了下确实不错。于是就买了四片树莓派的开发板,准备组建一个自己的集群。但Raspberry Pi是不带外壳的,网上看到有用乐高积木DIY的外壳,觉得很酷,于是也想试试。参照网上的图片,去淘宝上找乐高的散件,运气不错在一家店就买齐了,当然不是正品,很难买齐,也不划算。散件的规格和数量如下:
2015-03-24 230630
(更多…)

mysql-proxy安装

用了一段时间的阿里云RDS,但是RDS要么只能使用公网IP,要么就只能使用内网IP。在生产环境中一般使用内网IP,但有时候要用到图形界面管理。为了解决这个问题,决定在一台ECS上安装一个mysql-proxy来中转。

(更多…)

Apache Traffic Server正向代理规则配置

两年前写的一篇文章,转到自己的阵地来。

文章以ATS3.3.1-dev版本为例.
作为正向代理我们要实现的是将HTTP(TCP80端口)的数据转发到ATS监听的端口(以8080为例)

ATS的部署一般分为两种方式:
1、ATS与网关(Linux router)一体
2、ATS与网关独立

网关可使用Linux机器来允当,配双网卡。
eth0为LAN口,IP:192.168.1.1 ,LAN下接交换机,将内网PC接入。
eth1为WAN口,IP:192.168.16.1
(更多…)