博客园 - 赵客缦胡缨-Nicholas
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=71233
2022-02-19T10:54:38Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
feed.cnblogs.com
https://www.cnblogs.com/zhangym/p/10118366.html
Golang 获取statuscode - 赵客缦胡缨-Nicholas
最近日志打印的时候需要打印状态码,但是因为interface的原因直接获取失败,http.Request里面的response不知道怎么使用,所以就自己重写writeheader,write来截取status type doneWriter struct { http.ResponseWriter
2018-12-14T03:17:00Z
2018-12-14T03:17:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】最近日志打印的时候需要打印状态码,但是因为interface的原因直接获取失败,http.Request里面的response不知道怎么使用,所以就自己重写writeheader,write来截取status type doneWriter struct { http.ResponseWriter <a href="https://www.cnblogs.com/zhangym/p/10118366.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/9144039.html
Golang 排序 - 赵客缦胡缨-Nicholas
accounts := []users.Account{}Admin.DB.Preload("CurrencyObj").Where("member_id = ?", record.(*users.Member).ID).Find(&accounts)sort.Slice(accounts, fun
2018-06-06T03:02:00Z
2018-06-06T03:02:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】accounts := []users.Account{}Admin.DB.Preload("CurrencyObj").Where("member_id = ?", record.(*users.Member).ID).Find(&accounts)sort.Slice(accounts, fun <a href="https://www.cnblogs.com/zhangym/p/9144039.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/8041459.html
golang interface - 赵客缦胡缨-Nicholas
背景: golang的interface是一种satisfied式的。A类只要实现了IA interface定义的方法,A就satisfied了接口IA。更抽象一层,如果某些设计上需要一些更抽象的共性,比如print各类型,这时需要使用reflect机制,reflect实质上就是将interface
2017-12-15T01:47:00Z
2017-12-15T01:47:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】背景: golang的interface是一种satisfied式的。A类只要实现了IA interface定义的方法,A就satisfied了接口IA。更抽象一层,如果某些设计上需要一些更抽象的共性,比如print各类型,这时需要使用reflect机制,reflect实质上就是将interface <a href="https://www.cnblogs.com/zhangym/p/8041459.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/8003841.html
golang单点推送 - 赵客缦胡缨-Nicholas
package main import ( "encoding/json" "flag" "fmt" "log" "net/http" "time" "config" "framework/logger" "global" "models/function" "models/schema" "git
2017-12-08T01:12:00Z
2017-12-08T01:12:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】package main import ( "encoding/json" "flag" "fmt" "log" "net/http" "time" "config" "framework/logger" "global" "models/function" "models/schema" "git <a href="https://www.cnblogs.com/zhangym/p/8003841.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/7650584.html
递归调用 - 赵客缦胡缨-Nicholas
func AndLevel(resource []Resource, parentid int64, level int) []Trees { //递归调用当所有的循环没有完成的时候是没有进行child的存值操作 var len = 0 var x = 0 //这里是为了计算我存储数据的slice的长度 for _, v := range resource...
2017-10-11T06:58:00Z
2017-10-11T06:58:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】func AndLevel(resource []Resource, parentid int64, level int) []Trees { //递归调用当所有的循环没有完成的时候是没有进行child的存值操作 var len = 0 var x = 0 //这里是为了计算我存储数据的slice的长度 for _, v := range resource... <a href="https://www.cnblogs.com/zhangym/p/7650584.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/7505469.html
golang 随机数/域名校验 - 赵客缦胡缨-Nicholas
//随机数生成要用到的 const letterBytes = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" const ( letterIdxBits = 6 letterIdxMask = 1= 0; { if remain == 0 { cache, remain ...
2017-09-11T08:12:00Z
2017-09-11T08:12:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】//随机数生成要用到的 const letterBytes = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" const ( letterIdxBits = 6 letterIdxMask = 1= 0; { if remain == 0 { cache, remain ... <a href="https://www.cnblogs.com/zhangym/p/7505469.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/7088532.html
linux ssh文件输 - 赵客缦胡缨-Nicholas
在linux下一般用scp这个命令来通过ssh传输文件。 1、从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地目录) 例如scp root@192.168.0.101:/var/www/test.txt 把19
2017-06-28T02:21:00Z
2017-06-28T02:21:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】在linux下一般用scp这个命令来通过ssh传输文件。 1、从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地目录) 例如scp root@192.168.0.101:/var/www/test.txt 把19 <a href="https://www.cnblogs.com/zhangym/p/7088532.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/7060718.html
golang闭包,传统斐波那契 - 赵客缦胡缨-Nicholas
package mainimport ( "fmt")func main() { f := fibonacci() for i := 0; i < 10; i++ { fmt.Printf("%d:%d\n", i, f()) }}// func fibonaci(n int) (ret int)
2017-06-21T09:22:00Z
2017-06-21T09:22:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】package mainimport ( "fmt")func main() { f := fibonacci() for i := 0; i < 10; i++ { fmt.Printf("%d:%d\n", i, f()) }}// func fibonaci(n int) (ret int) <a href="https://www.cnblogs.com/zhangym/p/7060718.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/7026341.html
ubuntu 软件桌面图标创建 - 赵客缦胡缨-Nicholas
sublime text 的安装目录是:/usr/local/sublimetext $cd 桌面 $vim Sublime\ Text.desktop 添加如下内容: [Desktop Entry] Version=1.0 Type=Application Icon[zh_CN]=/usr/loc
2017-06-16T02:47:00Z
2017-06-16T02:47:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】sublime text 的安装目录是:/usr/local/sublimetext $cd 桌面 $vim Sublime\ Text.desktop 添加如下内容: [Desktop Entry] Version=1.0 Type=Application Icon[zh_CN]=/usr/loc <a href="https://www.cnblogs.com/zhangym/p/7026341.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/7007641.html
golang iris html/temple - 赵客缦胡缨-Nicholas
在使用golang的模板语法的过程中遇见自动转义问题(或者以我的理解下发的富文本html代码不是template.html类型,而是string类型),需要强制转型 func unescaped(x string) interfacef{}{ t:=template.New("") t=t.Func
2017-06-14T02:48:00Z
2017-06-14T02:48:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】在使用golang的模板语法的过程中遇见自动转义问题(或者以我的理解下发的富文本html代码不是template.html类型,而是string类型),需要强制转型 func unescaped(x string) interfacef{}{ t:=template.New("") t=t.Func <a href="https://www.cnblogs.com/zhangym/p/7007641.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/6951749.html
rbac - 赵客缦胡缨-Nicholas
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图) 角
2017-06-06T07:16:00Z
2017-06-06T07:16:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图) 角 <a href="https://www.cnblogs.com/zhangym/p/6951749.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/6925227.html
golang图片压缩 - 赵客缦胡缨-Nicholas
package mainimport ( //"encoding/json" "fmt" //"os" //"io/ioutil" "github.com/nfnt/resize" "image/jpeg" "io" "log" "os" "path/filepath" "strconv" // "
2017-05-31T09:32:00Z
2017-05-31T09:32:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】package mainimport ( //"encoding/json" "fmt" //"os" //"io/ioutil" "github.com/nfnt/resize" "image/jpeg" "io" "log" "os" "path/filepath" "strconv" // " <a href="https://www.cnblogs.com/zhangym/p/6925227.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/6852597.html
openssl https证书 - 赵客缦胡缨-Nicholas
今天摸索了下 HTTPS 的证书生成,以及它在 Nginx 上的部署。由于博客托管在 github 上,没办法部署证书,先记录下,后续有需要方便快捷操作。本文的阐述不一定完善,但是可以让一个初学者了解大致的原理,同时跟着操作可以为自己的博客/网站部署一个 HTTPS 证书。 网站部署 HTTPS 的
2017-05-14T07:23:00Z
2017-05-14T07:23:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】今天摸索了下 HTTPS 的证书生成,以及它在 Nginx 上的部署。由于博客托管在 github 上,没办法部署证书,先记录下,后续有需要方便快捷操作。本文的阐述不一定完善,但是可以让一个初学者了解大致的原理,同时跟着操作可以为自己的博客/网站部署一个 HTTPS 证书。 网站部署 HTTPS 的 <a href="https://www.cnblogs.com/zhangym/p/6852597.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/6850320.html
golang iris下面的websocket - 赵客缦胡缨-Nicholas
最近要做后台主动推送:(iris框架,封装的有wesocket,刚开始以为直接拿过来用,结果不是现在贴一下代码,写一下遇到的坑) func main() { app := iris.New() app.Adapt(iris.DevLogger()) app.Adapt(httprouter.New(
2017-05-13T12:47:00Z
2017-05-13T12:47:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】最近要做后台主动推送:(iris框架,封装的有wesocket,刚开始以为直接拿过来用,结果不是现在贴一下代码,写一下遇到的坑) func main() { app := iris.New() app.Adapt(iris.DevLogger()) app.Adapt(httprouter.New( <a href="https://www.cnblogs.com/zhangym/p/6850320.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/6831225.html
web 端即时通讯 - 赵客缦胡缨-Nicholas
1. 前言 Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询、Comet技术、WebSocket技术、SSE(Server-sent Events)。本文将简要介绍这4种技术的原理,并指出各自的异同点、优缺点等。 2.
2017-05-09T08:34:00Z
2017-05-09T08:34:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】1. 前言 Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询、Comet技术、WebSocket技术、SSE(Server-sent Events)。本文将简要介绍这4种技术的原理,并指出各自的异同点、优缺点等。 2. <a href="https://www.cnblogs.com/zhangym/p/6831225.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/6814508.html
golang websocket - 赵客缦胡缨-Nicholas
WebSocket协议分析 内容不断更新,目前包括协议中握手和数据帧的分析 1.1 背景 1.2 协议概览 协议包含两部分:握手,数据传输。 客户端的握手如下:GET /chat HTTP/1.1Host: server.example.comUpgrade: websocketConnection
2017-05-05T10:43:00Z
2017-05-05T10:43:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】WebSocket协议分析 内容不断更新,目前包括协议中握手和数据帧的分析 1.1 背景 1.2 协议概览 协议包含两部分:握手,数据传输。 客户端的握手如下:GET /chat HTTP/1.1Host: server.example.comUpgrade: websocketConnection <a href="https://www.cnblogs.com/zhangym/p/6814508.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/6721355.html
HTTP请求与请求头 - 赵客缦胡缨-Nicholas
HTTP 的请求报文分为三个部分 请求行、请求头和请求体,格式如图:一个典型的请求消息头域,如下所示: POST/GET http://download.microtool.de:80/somedata.exe Host: download.microtool.de Accept:*/* Pragm
2017-04-17T01:27:00Z
2017-04-17T01:27:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】HTTP 的请求报文分为三个部分 请求行、请求头和请求体,格式如图:一个典型的请求消息头域,如下所示: POST/GET http://download.microtool.de:80/somedata.exe Host: download.microtool.de Accept:*/* Pragm <a href="https://www.cnblogs.com/zhangym/p/6721355.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/6709282.html
golang互斥锁和读写锁 - 赵客缦胡缨-Nicholas
一、互斥锁 互斥锁是传统的并发程序对共享资源进行访问控制的主要手段。它由标准库代码包sync中的Mutex结构体类型代表。sync.Mutex类型(确切地说,是*sync.Mutex类型)只有两个公开方法——Lock和Unlock。顾名思义,前者被用于锁定当前的互斥量,而后者则被用来对当前的互斥量进
2017-04-14T07:56:00Z
2017-04-14T07:56:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】一、互斥锁 互斥锁是传统的并发程序对共享资源进行访问控制的主要手段。它由标准库代码包sync中的Mutex结构体类型代表。sync.Mutex类型(确切地说,是*sync.Mutex类型)只有两个公开方法——Lock和Unlock。顾名思义,前者被用于锁定当前的互斥量,而后者则被用来对当前的互斥量进 <a href="https://www.cnblogs.com/zhangym/p/6709282.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/6639788.html
golang二维码 - 赵客缦胡缨-Nicholas
package main import ( "github.com/boombuler/barcode" "github.com/boombuler/barcode/qr" "image" "image/png" "log" "os" ) func writePng(filename string,
2017-03-29T06:55:00Z
2017-03-29T06:55:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】package main import ( "github.com/boombuler/barcode" "github.com/boombuler/barcode/qr" "image" "image/png" "log" "os" ) func writePng(filename string, <a href="https://www.cnblogs.com/zhangym/p/6639788.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhangym/p/6611572.html
商城产品属性数据库设计 - 赵客缦胡缨-Nicholas
最近看到一个题目,要求提出一套商品属性相关的数据库设计思路,要求是商品属性的类别(例如品牌,尺寸,颜色...)不确定,各个属性类别的属性值(例如品牌可能是HP,IBM...)不确定,同时需要实现针对不同属性类别的商品检索,例如检索出品牌为XX,尺寸为XX,颜色为XX的商品,各条件为AND操作,另外每
2017-03-24T07:02:00Z
2017-03-24T07:02:00Z
赵客缦胡缨-Nicholas
https://www.cnblogs.com/zhangym/
【摘要】最近看到一个题目,要求提出一套商品属性相关的数据库设计思路,要求是商品属性的类别(例如品牌,尺寸,颜色...)不确定,各个属性类别的属性值(例如品牌可能是HP,IBM...)不确定,同时需要实现针对不同属性类别的商品检索,例如检索出品牌为XX,尺寸为XX,颜色为XX的商品,各条件为AND操作,另外每 <a href="https://www.cnblogs.com/zhangym/p/6611572.html" target="_blank">阅读全文</a>