返回首页
最新 | 最热门 | 最高评价

+0  在Golang的HTTP请求中共享数据

Tag: Technical | Golang
老王 发于 2019年02月08日 11:30 | 点击: 5734 | 大发排列3注册
首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的 cookie、session 之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个 middleware 和 handler 之间共享数据。

实际上,我之所以关注这个问题源自 httprouter,众所周知,httprouter 是目前 Golang 社区最流行的 HTTP 路由库,不过它有一个问题,其 handler 参数定义如下:

func

查看全文: http://shapenut.com/item/17379.html

+0  Go Reflect 性能

Tag: Go
鸟窝 发于 2019年02月01日 16:30 | 点击: 3974 | 大发排列3注册
Go reflect包提供了运行时获取对象的类型和值的能力,它可以帮助我们实现代码的抽象和简化,实现动态的数据获取和方法调用, 提高开发效率和可读性, 也弥补Go在缺乏泛型的情况下对数据的统一处理能力。

通过reflect,我们可以实现获取对象类型、对象字段、对象方法的能力,获取struct的tag信息,动态创建对象,对象是否实现特定的接口,对象的转换、对象值的获取和设置、Select分支动态调用等功能, 看起来功能不错,但是大家也都知道一点: 使用reflect是有性能代

查看全文: http://shapenut.com/item/17370.html

+0  学习Golang的HTTP中间件机制

Tag: Technical | Golang
老王 发于 2019年01月31日 23:23 | 点击: 4666 | 大发排列3注册
因为 Golang 内置的 net/http 天生就支持 HTTP 中间件机制,所以即便不用 gin 之类的 Web 框架,我们也可以写出扩展性很好的 Web 应用。

假如你不了解 Golang 的 HTTP 中间件机制的话,那么可以把它看成是一个洋葱:

通过洋葱看中间件

每一个中间件都是一层洋葱皮,其中每一个中间件都可以改变请求和响应,我们可以很自然的把不同的逻辑放到不同的洋葱皮里,更代码更符合单一职责原则:

package main

import (
"net

查看全文: http://shapenut.com/item/17374.html

+0  Prolog 语言入门教程

Tag: Algorithm
阮一峰 发于 2019年01月28日 09:17 | 点击: 1046 | 大发排列3注册
Prolog 是一种与众不同的语言,不用来开发软件,专门解决逻辑问题。比如,"苏格拉底是人,人都会死,所以苏格拉底会死"这一类的问题。

Prolog 就是"逻辑编程"(programming of Logic)的意思。只要给出事实和规则,它会自动分析其中的逻辑关系,然后允许用户通过查询,完成复杂的逻辑运算。

本文简单介绍如何使用 Prolog 语言,主要参考了 xmonader 的教程。

一、SWI-Prolog

学习之前,请安装 Prolog 的运行环境 SWI-P

查看全文: 大发排列3网址

+0  Manjero install sogou-pinyin

Tag: Linux | linux | manjero | sogou
大发排列3注册 发于 2019年01月26日 23:32 | 点击: 1267 | 大发排列3注册
sudo pacman-mirrors -i -c China -m rank

sudo vim /etc/pacman.conf

```

#add before eof

[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = http://mirrors.ustc.edu.cn/archlinuxcn/$arch

```

sudo pacman -Syy

sudo pacman -S archlinuxc

查看全文: http://shapenut.com/item/17300.html

+0  cacheline 对 Go 程序的影响

Tag: Go
鸟窝 发于 2019年01月24日 18:34 | 点击: 968 | 大发排列3注册
首先来了解一下来自维基百科上关于CPU缓存的介绍。

在计算机系统中,CPU高速缓存(英语:CPU Cache,在本文中简称缓存)是用于减少处理器访问内存所需平均时间的部件。在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器。其容量远小于内存,但速度却可以接近处理器的频率。

当处理器发出内存访问请求时,会先查看缓存内是否有请求数据。如果存在(命中),则不经访问内存直接返回该数据;如果不存在(失效),则要先把内存中的相应数据载入缓存,再将其返回处理器。
缓存之所以

查看全文: http://shapenut.com/item/17297.html

+0  使用 defer 还是不使用 defer?

Tag: Go
鸟窝 发于 2019年01月23日 17:47 | 点击: 1266 | 大发排列3注册
对于Go语言的defer语句,或许你回经历一个 赞赏 --> 怀疑 --> 肯定 --> 再怀疑的一个过程,本文带你回顾一下defer的故事,以及如何在代码中使用defer语句。

最初的故事

Go语言增加的 defer 语句在简化代码方面确实用处多多, 尤其是对资源的释放等场景,提供了简便的代码方法。其实其它语言也有类似的语法或者语法糖, 比如Java就有try-with-resource语句,可以自动释放实现java.io.Closeable的对象。

查看全文: 大发排列3网址

+0  把我的个人网站推倒重来(Part 7 - Google Analytics & Facebook Pixel)

Tag: 大发排列3官网 | google analytics | rebuild | 大发排列3
Cat Chen 发于 2019年01月18日 04:01 | 点击: 1070 | 大发排列3注册
网站上线之后,我自然关心访客的数量和来源,于是我决定加上 Google Analytics。同时纯粹出于好奇,我把 Facebook Pixel 也加上了。
Google Analytics 和 Facebook Pixel 都需要插入 JavaScript 到每一个页面上,因此把代码加到 _layout.jade 是最合适的,因为这是所有页面共享的模板。
Google Analytics
在 Google Analytics 创建好「property」后,复制 Goo

查看全文: http://shapenut.com/item/17290.html

+0  Using keras.layers.Embedding instead of python dictionary

Tag: Uncategorized | 大发排列3计划 | Word Embedding
大发排列3注册 发于 2019年01月17日 13:22 | 点击: 964 | 大发排列3注册
Firstly, I use a function to transform words into word-embedding:

def text_to_array(text, embeddings_index):
empty_embed = np.zeros(EMBEDDING_LENGTH, dtype = np.float32)
text = text[:-1].split()[:MAX_TEXT_LENGTH]
embeds = []

查看全文: http://shapenut.com/item/17289.html

+0  A few other lessons from Kaggle’s competition ‘Human Protein Atlas Image Classification’

Tag: Uncategorized | Kaggle | 大发排列3
大发排列3注册 发于 2019年01月11日 11:32 | 点击: 935 | 大发排列3注册
Practice makes progress. Therefore I continued to join Kaggle’s new competition ‘Human Protein Atlas Image Classification’ after the previous one.

I used think I could get a higher rating in image processing competition.

查看全文: http://shapenut.com/item/17281.html

+0  2018年终总结

Tag: First Category
s5s5 发于 2018年12月29日 17:18 | 点击: 876 | 大发排列3注册
2018即将结束,回首这一年,表现平平,还好寒冬已至,可以让人冷静冷静。

家里自从娃上了小学,就陷入成天逼娃写作业,娃墨迹的怪圈。希望娃能早日进入当学生的状态。

今年去了卢沟湖,其实去哪都可以,关键是看谁去。和有意思的小伙伴去卢沟湖就非常好玩。

再见2018,你好2019!

2018年终总结最先出现在[米随随] s5s5。

查看全文: http://shapenut.com/item/17256.html

+0  得到Go程序的汇编代码的方法

Tag: Go
鸟窝 发于 2018年12月29日 15:07 | 点击: 1611 | 大发排列3注册
有多种方式可以获得Go程序的汇编代码, 尽管输出的格式有些不同,但是都是方便阅读的汇编代码,可以帮助我们更好的了解程序的底层运行方式。

我们看下面一段代码, 它是sync.Once的实现,去掉了不必要的注释,复制出来用来研究的一段小代码。

once.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

type Once struct {
m sync.Mutex
done uint32
}

func (o *Once)

查看全文: http://shapenut.com/item/17255.html
|<<<1234567>>>| 一共55页, 658条记录
返回首页