自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

PrnyNing的博客

ruby on rails, web, go(rookie)

  • 博客(41)
  • 收藏
  • 关注

原创 Go语言中关于切片容量与其底层指针的思考

Go语言中的切片是常用的一种数据类型,其中切片的底层是数组,切片常用的属性有长度和容量。其中长度很容易理解,但是容量相对复杂一些。切片提供了计算容量的函数 cap() 可以测量切片最长可以达到多少:它等于切片的长度 + 数组除切片之外的长度。以下有几个实例,第一:slice := []int{10, 20, 30, 40, 50}newSlice := slice[1:3]t...

2018-08-09 23:28:23 423 3

原创 go1.13 中 errors 包的 Is 与 As 方法

虽说现在都已经 go 1.14 了,才想起来写一下 go 1.13 中引入的 error 的处理方法。先放 go blog 中的链接: go1.13-errors这篇博文主要阐述了之前关于 error 类型处理的方法,我们经常会在处理 error 的时候需要添加一些有用的上下文信息,之前常用的做法是使用 github.com/pkg/errors 这个包里的 errors.WithMessag...

2020-02-28 21:01:35 12361 2

原创 Golang go-redis 包 client 返回 EOF

先叙述一下遇到的问题,一个 web 后台验证用户登录信息,通过 Redis 取 token 来获取 user ID。结果发现页面上过不了多久就有前端请求返回 401 unauthorized 的错误,但是并不会跳回登录页面,检查 session 正常。查看日志发现是通过 Redis 取 token 这一步返回 EOF 的 error。接下来就是各种 google,看到底是为什么会有这个错误。一...

2019-12-18 10:46:24 5614

原创 Go 语言中三个点的用法

参考资料:3 dots in 4 places在 golang 中,三个点的官方名称是 “three dots”(真·直译),其中常见的三种用法是在代码中:函数的参数声明,如:func VariableParamFunc(nums ...int),在函数的方法体内,nums 作为一个切片[]int来使用。传参时列表打散,如:params = []int{1,2,3},调用某个有三个参...

2019-08-26 16:38:57 2585

原创 ubuntu上BIND9安装及设置转发遇到的坑

先列出参考文献,太重要了:BIND9安装指南, 可以说如果没有这篇文章就不会有我这个博文了 - -先描述下需求,之前写了个DNS服务,用作权威解析。现在想要测试DNS转发的情况下是否可以正常使用,所以需要利用BIND模拟转发的情况,思路是:1. 在A服务器部署权威DNS解析服务,并监听53端口(UDP);2. 在B服务器上修改BIND配置,将对B服务器的DNS请求都转发(for...

2019-07-08 13:24:46 4499

原创 http Host &Set Host in Golang Go语言http包Header设置Host未生效

Host是http1.1版本添加的Header, 可以用于指定具体的Host,通常该Header的值会从URL中自动解析。例如我们请求http://httpbin.org/anything?pass=111,返回的结果如下:{ "args": { "pass": "111" }, "data": "", "files": {}, "form...

2019-06-26 16:32:59 3035

原创 MacOS 10.13 gem install ffi (or fpm)失败

由于fpm安装依赖ffi$ sudo gem install --no-ri --no-rdoc fpmBuilding native extensions. This could take a while...ERROR: Error installing fpm: ERROR: Failed to build gem native extension. cu...

2019-06-10 17:52:38 4284

原创 小工具安利合集之--Dozer

Mac中使用Dozer隐藏不常用图标

2019-06-06 16:39:35 336

转载 Golang中错误处理的建议

该文章摘取自Go 语言实战: 编写可维护 Go 语言代码建议,是llitfkitfk(田浩)在github上翻译自Dave大神的Practical Go: Real world advice for writing maintainable Go programs如有侵权,请联系删除,谢谢7.2. 错误只处理一次最后,我想提一下你应该只处理错误一次。 处理错误意味着检查错误值并做出单...

2019-05-05 11:24:42 778

原创 Goland中利用HTTPClient发送请求超时返回EOF错误DEBUG

今天解决了一个疑难杂症,起因是之前代理某内部API接口,请求先是出现卡顿,超时后报EOF错误。但奇怪的是线上测试环境确是没问题的。Google了一下,有人说可能是由于重复请求次数过多导致,应该设置req.Close属性为true,这样不会反复利用一次连接。尝试该操作后依然无法解决问题,遂求助同事璟文。经过大牛的一番调查后,发现时TCP超时,连接断了。至于原因,是由于Goland设置...

2019-04-18 17:27:42 13649 7

原创 goland使用dlv调试本地"远程"项目

利用GoLand中的debug功能里的go remote一项,可以调试一个指定的host:port的项目。由此我们可以联想到,很多情况下项目并没有一个像简单的application给你debug的情况,那么我们就可以利用go remote调试启动的完整项目。需要先安装dlv,安装文档如下delve安装另外也可以去看一下阿里云社区的文档详细介绍delve的使用使用Delve进行...

2019-04-04 19:43:23 8205 6

原创 Mac上如何彻底删除Jetbrains系列的IDE

除了删除.app文件以外,还需要用命令行删除如下目录下的App名字目录即可,如Goland 2018.2版本,会存在个Goland2018.2的目录~/Library/Preferences/ ~/Library/Caches/ ~/Library/Application Support/ ~/Library/Logs/把以上四个路径下的App目录都删除后。如果不会用命令行,也可以打开...

2018-11-28 15:07:56 15886

原创 Django中model_to_dict使用

推荐一个好用的django方法,用于将model实例转换为dict,命名非常简单粗暴from django.forms.models import model_to_dictdi = model_to_dict(order, exclude=['create_time', 'update_time'])源码函数声明:def model_to_dict(instance, fields=N...

2018-11-14 10:57:08 14659

原创 Python中函数参数默认值的问题

这两天项目中遇到一个很奇怪的问题,每次取当日的访问次数(Redis有缓存),页面上第二天显示都未清零,利用shell在服务器上调用方法并未找到问题,但项目重启后调用次数获取正常。一开始还以为是nginx对页面有缓存导致的未清零,但难以解释为什么每次第二天后这个问题会重现,而且另一处获取近七日调用曲线图的地方的数据是正常的。反复对比两个方法后,发现可能是函数的参数传默认值的问题,函数声明如下...

2018-10-19 11:43:13 1481

原创 GO语言格式化输出占位符

golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。设有# 定义示例类型和变量type Human struct { Name string}var people = Human{Name:"zhangsan"}普通占位符占位符     说明                           举例             ...

2018-10-17 18:02:14 2595

转载 Python redis.ttl 返回 None

作者:疯疯癫癫 来源:CSDN 原文:https://blog.csdn.net/fengfengdiandia/article/details/78739848?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!今天在 Python 中使用 redis 遇到一个奇怪的问题。一. 问题描述>>> import redis&gt...

2018-10-17 17:58:54 1483

转载 .gitignore忽略文件

转载自https://www.cnblogs.com/ShaYeBlog/p/5359849.html 原作者:沙耶在进行协作开发代码管理的过程中,常常会遇到某些临时文件、配置文件、或者生成文件等,这些文件由于不同的开发端会不一样,如果使用git add . 将所有文件纳入git库中,那么会出现频繁的改动和push,这样会引起开发上的不便。Git可以很方便的帮助我们解决这个问题,那就是建立...

2018-08-28 15:04:08 151

转载 Golang 在 Mac、Linux、Windows 下如何交叉编译

本文转自:https://blog.csdn.net/panshiqu/article/details/53788067 原作者 磐石区Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。Mac 下编译 Linux 和 Windows 64位可执行程序CGO_ENABLED=0 GOOS=linux GOARCH=amd64 g...

2018-08-17 15:55:18 839

原创 Ruby语法糖小记--实例变量与变长参数传参

instance_variable_get("@name")foo(*[:a,:b]) #等价于 foo(:a, :b)1、在Ruby中我们可能会利用诸如单例模式之类,将共用的变量存为实例变量,以@开头,类似c++中类中的变量。那么如何访问这个实例变量呢?答案是利用instance_variable_get方法假设有class A,其中有实例变量@foo,并且a = A.new,我...

2018-08-07 16:53:28 661

原创 Web开发中Chrome打开样式或JS修改未生效解决方案

先说解决方案,是由于Chrome速度优化,默认使用缓存的JS与CSS加载页面,导致修改未生效,所以Windows和Linux操作系统: Shift+F5 或 Ctrl+Shift+RMac OS: Cmd+Shft+R  进行“硬性重新加载”(强制刷新)即可 之前用Rails开发时候没有遇到过这个问题,现在转用Django,不知道是不是与配置有关,暂时没有深究。刷新页面发现新改...

2018-08-06 19:07:08 2465

转载 对照 Ruby 学 Go (Part 8): Go, Ruby与Elixir中并发的比较

转载自: http://zonov.me/go-for-rubyists-part-8-concurrency-ruby-go-elixir/ 已获原作者授权原标题: Go for Rubyists. Part 8. Concurrency in Go, Ruby and Elixir Hey folks, hope you had a great weekend and it’s t...

2018-08-01 12:50:58 668

原创 关于GO语言中值类型与引用类型的思考

首先需要明确的是,在GO语言中,我们利用fmt.Printf("%p", ptr)来显示指针的地址。先看结论,这里引用GO语言圣经中3.1.2章节中关于值语义和引用语义的论述:可以得知切片、map、channel和接口是引用类型。package mainimport ( "fmt")func main() { a := make(map[int]string, 1)...

2018-07-20 19:32:00 1626

原创 GO接口赋值与方法接收者问题

这篇博客是受到GO语言中文网论坛中问题启发所写,原链接在此https://studygolang.com/topics/5946其中第一个回复为博主有代码如下:package mainimport "fmt"type TestStruct struct { id int name string}type AnotherTestStruct struct { id int...

2018-07-09 23:37:37 1322

转载 对照 Ruby 学 Go (Part 7): Ruby与Golang方法对比

转载自: http://zonov.me/golang-for-rubyists-part-7-ruby-and-golang-methods-comparison/ 已获原作者授权原标题: Golang for Rubyists. Part 7. Ruby and Golang, methods comparisonHello, my dear friends. We all love Ruby...

2018-07-03 13:03:00 376

转载 对照 Ruby 学 Go (Part 6): 结构体,方法与接口

转载自: http://zonov.me/golang-for-rubyists-part-6-structs-methods-and-interfaces/ 已获原作者授权原标题: Golang for Rubyists. Part 6. Structs, Methods and InterfacesLet the force be with you, my friends. Today we ...

2018-07-03 12:55:01 212

转载 对照 Ruby 学 Go (Part 5): 将Golang部署到AWS Lambda

转载自: http://zonov.me/golang-for-rubyists-part-5-how-to-start-applying-golang-to-aws-lambda/ 已获原作者授权原标题: Golang for Rubyists. Part 5. How to start applying Golang to AWS LambdaIn the company I work for...

2018-07-03 12:08:18 639

转载 对照 Ruby 学 Go (Part 4): Go的函数与Ruby中方法的不同

转载自: http://zonov.me/golang-for-rubyists-part-4-how-go-functions-are-different-from-ruby-methods/ 已获原作者授权原标题: Golang for Rubyists. Part 4. How Go functions are different from Ruby methodsGood morning,...

2018-07-03 11:44:25 239

转载 对照 Ruby 学 Go (Part 3): *与&, 指针与引用

转载自: http://zonov.me/golang-for-rubyists-part-3-ampersands-and-asterisks-pointers-and-references/  已获原作者授权原标题: Golang for Rubyists. Part 3. Ampersands and asterisks. Pointers and references.Welcome ba...

2018-07-03 11:31:43 363

转载 对照 Ruby 学 Go (Part 2): Go 类型

转载自: http://zonov.me/golang-for-rubyists-part-2-go-type-system/ 已获原作者授权原标题: Golang for Rubyists. Part 2. Go type systemHello, my dear Golang newcomers. I feel so excited when I start writing this post...

2018-07-03 11:10:13 197

转载 对照 Ruby 学 Go (Part 1): Go 1.10 OSX系统安装及新手起步

转载自: http://zonov.me/golang-osx-installation-and-getting-started/原标题: Golang for Rubyists. Part 1. Go 1.10 OSX installation and getting startedHey folks, I’m starting getting my feet wet with Golang a...

2018-07-03 10:50:57 180

原创 gin框架中自定义向log中写入调试信息

我们在项目的调试过程中,需要将一些自定义信息写入到log文件中,gin框架中提供了基础的Logger()方法,查看gin的文档,有如下信息: How to write log filefunc main() { // Disable Console Color, you don't need console color when writing the logs to fil...

2018-06-27 17:20:20 14184

转载 Go语言空白表示符_的妙用

在GO语言中,导入了包,却不在代码中使用它,是非法的。当这么做时,编译器是会报错的。其原因是为了避免导入过多未使用的包,从而导致编译时间显著增加。如下代码:package main import ( "geometry/rectangle" // 导入自定的包)func main() {}上面的程序将会抛出错误 imported and not used: "geometry/...

2018-06-26 10:10:13 2235

原创 go语言消息机制利用--实现连接池与goroutine同步

在go语言中,我们使用基于消息传递的通信方式(而不是大多数语言所使用的基于共享内存的通信方式)进行协程间通信。消息管道(channel)属于go语言基本的数据类型,使用类型关键字(chan)进行定义,并发操作时线程安全。我们可以利用消费者生产者模型,结合go语言的消息管道,实现同步。1、连接池(以Redis为例)package mainconst poolSize = 10func mai...

2018-06-20 15:27:58 877

原创 Goland debug 遇到could not launch process: EOF问题

更新macOS High Sierra(10.13)之后,Goland利用debug调试程序显示报错信息:could not launch process: EOFgoogle后发现是由于macOS版本更新以及xcode Command Line Tools引发的bug,暂时官方修复前可以通过删除系统现有Command Line Tools,并通过苹果开发者下载老版本安装即可,issue链接:ht...

2018-06-20 11:58:20 6633 2

原创 elasticsearch查询报错411状态码 The requested URL could not be retrieved

今天rails项目线上环境遇到了一个很奇怪的问题:rails利用elasticsearch的gem包执行.search方法报错, rescue捕获异常e.message结果是一个html页面,截图如下:状态码为411, 信息为The requested URL could not be retrieved, 百度显示是由于post/put请求但body为空导致的。可是gem包中的方法是用get方法...

2018-06-19 18:49:39 1616

原创 Python中request发送post请求传递json参数的问题

昨天遇到了一个奇怪的问题,在Python中需要传递dict参数,利用json.dumps将dict转为json格式用post方法发起请求:params = {"score":{"gt":"80", "lt":"90"}}RestClient.post(url, params.to_json, :content_type => :json)但是在服务端接受到的参数日志为:Parameters..

2018-06-12 10:55:21 23579

原创 vim官方教程

在装有vim的终端命令行,直接敲vimtutor命令,即可进入vim的教程根据提示全篇手敲一遍大约需要25-30分钟的时间,感兴趣的同学可以练练,适用于vim新手阶段。另付vim cheatsheet链接一个https://unmi.cc/5-best-vim-cheat-sheet/...

2018-06-06 16:27:22 1234

转载 shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such fi

转自:http://blog.csdn.net/ningguixin/article/details/7834371[root@web-server php]# /etc/init.d/httpd restartshell-init: error retrieving current directory: getcwd: cannot access parent directories: No s...

2018-05-25 15:52:33 541

翻译 cron任务未运行的六大常见原因(未完成)

本文翻译自http://2clickfix.com/6-reasons-cron-job-not-running/原标题为 6 Reasons Your cron Job is Not Running    如果你之前从来未使用过计划任务类工具,cron将会是一个彻头彻尾的混蛋。这个工具常常会使得过程十分的复杂挑剔。如果你的定时任务未能正常执行,以下是六个最常见的被挂起的问题。    1、错误的环...

2018-05-23 15:12:07 4329

原创 JS中遍历Object(hash)的方法

JQuery中可以通过.each方法实现对数组的遍历,但是对Object对象无法使用,所以利用JS的for in循环进行遍历,如下:for (key in hash) { if (hash.hasOwnProperty(key)) { dosomething(key, hash[key]); }}同时,可以利用遍历来判断Object是否为空:(直接hash == ...

2018-05-11 09:53:10 4968

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除