go语言的模板,text/template包

go语言的模板,text/template包 go语言的模板,text/template包 ##定义 模板就是将一组文本嵌入另一组文本里 传入string-最简单的替换 package main import ( “os” “text/template” ) func main() { name := “waynehu” tmpl, err := template.New(“test”).Parse(“hello, {{.}}”) //建立一个模板,内容是"hello, {{.}}" if err != nil { panic(err) } err = tmpl.Execute(os.Stdout, name) //将string与模板合成,变量name的内容会替换掉{{.}} //合成结果放到os.Stdout里 if err != nil { panic(err) } } //输出 : hello, waynehu 因为"hello, {{.}}“也是一个字符串,所以可以单独拎出来,如下: //这句 tmpl, err := template.New(“test”).Parse(“hello, {{.}}”) //等于下面的两句 muban := “hello, {{.}}” tmpl, err := template.New(“test”).Parse(muban) //之后的例子都用两句的方式表达 传入struct 模板合成那句,第2个参数是interface{},所以可以传入任何类型,现在传入struct看看 要取得struct的值,只要使用成员名字即可,看代码吧: package main import ( “os” “text/template” ) type Inventory struct { ...

2019-06-14 · 3 min · 449 words · -

angular pwa

angular pwa ng new project0 ng add @angular/pwa –project project0 ng build –prod cd project0 && http-server -p 8080 -c-1 dist/project0/ curl http://127.0.0.1:8080/ngsw/state chrome://serviceworker-internals/ ng new my-app --routing

2019-06-09 · 1 min · 28 words · -

rock 5b

rock 5b yay -S rkdeveloptool # 按住板子上的 Maskrom mode 键, 把 usb type a to c 插头插到电脑上, 放开 maskrom mode 键 lsusb # result: Bus 001 Device 112: ID 2207:350b Fuzhou Rockchip Electronics Company sudo rkdeveloptool ld 默认用户名密码 rock/rock https://wiki.radxa.com/Rock5/install/usb-install-emmc

2019-06-09 · 1 min · 40 words · -

cut command

cut command echo abc | cut -c 2- # bc echo abcdef | cut -c 1-3 # abc

2019-06-09 · 1 min · 18 words · -

angular material

angular material yarn add @angular/material @angular/cdk @angular/animations app.module.ts import { MatSliderModule } from '@angular/material/slider'; import 'hammerjs'; … @NgModule ({.... imports: [..., MatSliderModule, …] }) app.component.html styles.css @import ‘@angular/material/prebuilt-themes/deeppurple-amber.css’; https://material.angular.io/ https://material.angular.cn/guides https://github.com/stbui/angular-material-app/tree/master/src/app https://material.io/ https://material.angular.io/components/categories

2019-06-08 · 1 min · 33 words · -

nginx 部署静态页面

nginx plain html 部署静态页面 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> hello </body> </html> server{ listen 80; server_name hello.wiloon.dev; root /var/www; index hello.html; }

2019-06-08 · 1 min · 25 words · -

Intel Compute Stick

Intel Compute Stick Intel® Compute Stick STCK1A32WFC Intel Atom® Processor Z3735F (2M Cache, up to 1.83 GHz) Intel® Compute Stick STK1A32SC Intel Atom® x5-Z8300 Processor (2M Cache, up to 1.84 GHz) 2GB DDR3L-1600 Intel® Compute Stick STK1AW32SC Intel Atom® x5-Z8300 Processor (2M Cache, up to 1.84 GHz) Intel® Compute Stick STK2m364CC Intel® Core™ m3-6Y30 Processor (4M Cache, up to 2.20 GHz) 安装 bios https://www.intel.cn/content/www/cn/zh/support/articles/000006039/mini-pcs/intel-compute-sticks.html

2019-06-06 · 1 min · 64 words · -

angular deploy to nginx

angular deploy to nginx ng build --aot “` server { listen 8081; server_name localhost; location / { root C:/website/angular/ng-prime/dist; // 这是angular生成的dist文件夹存放的位置 index index.html; try_files $uri $uri/ /index.html; // 注意此句,一定要加上。否则配置的子路由等无法使用 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } " https://www.cnblogs.com/kingkangstudy/p/8085642.html

2019-06-02 · 1 min · 46 words · -

markdown > PPT

‘markdown > PPT’ https://github.com/ksky521/nodeppt https://github.com/hakimel/reveal.js/

2019-05-31 · 1 min · 5 words · -

Java诊断工具 – Arthas

Java诊断工具 – Arthas Alibaba 开源的Java诊断工具 https://alibaba.github.io/arthas/

2019-05-30 · 1 min · 6 words · -

apr、apr-util, apr-iconv

apr、apr-util, apr-iconv https://my.oschina.net/shawnplaying/blog/1518144 安装Apache的时候,为什么要安装apr和apr-util呢 要测APR给tomcat带来的好处最好的方法是在慢速网络上 (模拟Internet) ,将Tomcat线程数开到300以上的水平,然后模拟一大堆并发请求。如果不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待。但是配上APR之后,并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来。 APR对于Tomcat最大的作用就是socket调度。 你在局域网环境测,就算是400个并发,也是一瞬间就处理/传输完毕,但是在真实的Internet环境下,页面处理时间只占0.1%都不到,绝大部分时间都用来页面传输。如果不用APR,一个线程同一时间只能处理一个用户,势必会造成阻塞。所以生产环境下用apr是非常必要的。 注: APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。 在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用APR而已。 一般情况下,APR开发包很容易理解为仅仅是一个开发包,不过事实上并不是。目前,完整的APR实际上包含了三个开发包: apr、apr-util以及apr-iconv,每一个开发包分别独立开发,并拥有自己的版本。

2019-05-30 · 1 min · 17 words · -

golang gin

golang gin 重定向 https://www.cnblogs.com/zisefeizhu/p/12739223.html package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { r := gin.Default() //http重定向 r.GET("/index", func(c *gin.Context) { //c.JSON(http.StatusOK, gin.H{ // "status": "ok", //}) //跳转到sogo c.Redirect(http.StatusMovedPermanently, "https://www.sogo.com") }) //路由重定向 r.GET("/luyou", func(c *gin.Context) { //跳转到/luyou2对应的路由处理函数 c.Request.URL.Path = "/luyou2" //把请求的URL修改 r.HandleContext(c) //继续后续处理 }) r.GET("/luyou2", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "message":"路由重定向", }) }) r.Run(":9090") }

2019-05-25 · 1 min · 56 words · -

gin

gin https://github.com/gin-gonic/gin#quick-start package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { router := gin.Default() router.GET("/path0", func(c *gin.Context) { firstname := c.DefaultQuery("params0", "Guest") lastname := c.Query("params1") // shortcut for c.Request.URL.Query().Get("lastname") c.String(http.StatusOK, "Hello %s %s", firstname, lastname) }) router.Run(":8080") }

2019-05-23 · 1 min · 39 words · -

css scss sass less stylus

css scss sass less stylus Sass和Less语法严谨、Stylus相对自由。因为Less长得更像 css,所以它可能学习起来更容易。 Sass 和 Compass、Stylus 和 Nib 都是好基友。 Sass 和 Stylus 都具有类语言的逻辑方式处理: 条件、循环等,而 Less 需要通过When等关键词模拟这些功能,这方面 Less 比不上 Sass 和 Stylus。 Less 在丰富性以及特色上都不及 Sass 和 Stylus Stylus,它的语法自由度很高,而且写出来的代码非常简洁. https://zhuanlan.zhihu.com/p/23382462

2019-05-19 · 1 min · 32 words · -

nginx gzip

nginx gzip https://juejin.im/post/5b518d1a6fb9a04fe548e8fc

2019-05-16 · 1 min · 3 words · -

MySQL, sql_mode

MySQL, sql_mode http://xstarcd.github.io/wiki/MySQL/MySQL-sql-mode.html MySQL的sql_mode合理设置 目录 http://dev.MySQL.com/doc/refman/5.7/en/sql-mode.html http://blog.csdn.net/wyzxg/article/details/8787878 当前sql-mode设置 查看当前sql-mode SELECT @@GLOBAL.sql_mode; SELECT @@SESSION.sql_mode; MySQL> SELECT @@GLOBAL.sql_mode; +—————+ | @@GLOBAL.sql_mode | +—————+ | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | +—————+ 1 row in set (0.00 sec) MySQL> SELECT @@SESSION.sql_mode; +—————+ | @@SESSION.sql_mode | +—————+ | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | +—————+ 1 row in set (0.00 sec) 设置当前sql-mode SET GLOBAL sql_mode = ‘modes…’; SET SESSION sql_mode = ‘modes…’; my.cnf中配置sql-mode [MySQLd] set the SQL mode to strict sql-mode=“modes…” sql-mode = “STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION” sql_mode常用值 ONLY_FULL_GROUP_BY: ...

2019-05-16 · 1 min · 111 words · -

Brotli

Brotli https://segmentfault.com/a/1190000009374437 使用Brotli提高网站访问速度 在优化网站打开速度上,我们有很多的方法,而其中一个就是减少诸如Javascript和CSS等资源文件的大小,而减少文件大小的方法除了在代码上下功夫外,最常用的方法就是使用压缩算法对文件进行压缩。 目前,网站普遍使用的是gzip压缩算法,当然你可能还知道deflate和sdch算法,但是最近两年新兴了一个新的压缩算法: Brotli,下面我将会对这个算法进行简单的介绍。 什么是Brotli Brotli最初发布于2015年,用于网络字体的离线压缩。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API已被改进,增加更多压缩质量级别。新版本还展现了跨平台的性能改进,以及减少解码所需的内存。 与常见的通用压缩算法不同,Brotli使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、短语和其他子字符串,这些来自一个文本和HTML文档的大型语料库。预定义的算法可以提升较小文件的压缩密度。 使用brotli取代deflate来对文本文件压缩通常可以增加20%的压缩密度,而压缩与解压缩速度则大致不变。 浏览器支持情况 图片描述 Chrome从版本49开始支持,但是完整的支持是在版本50 (2016年5月27日开始支持) 。 Firefox从版本52开始支持。 IE全版本不支持,但是Edge从版本15开始支持。 Safari全系不支持。 Opera从版本44开始支持。 支持Brotli压缩算法的浏览器使用的内容编码类型为br,例如以下是Chrome浏览器请求头里Accept-Encoding的值: Accept-Encoding: gzip, deflate, sdch, br 如果服务端支持Brotli算法,则会返回以下的响应头: Content-Encoding: br 需要注意的是,只有在HTTPS的情况下,浏览器才会发送br这个Accept-Encoding。 关于性能 下面是LinkedIn做的一个性能测试结果: enter image description here Algorithm Quality Compression Time (ms) Decompression Time (ms) gzip 6 169 35 gzip 9 284 27 zopfli 15 37,847 32 zopfli 100 194,460 38 zopfli 1000 1,855,480 29 brotli 4 109 24 brotli 5 193 20 ...

2019-05-15 · 1 min · 155 words · -

goland build constraints exclude all go files in syscall/js

goland build constraints exclude all go files in syscall/js go to Settings (Preferences) | Go | Vendoring & Build Tags and then select OS -> js and ARCH -> wasm. https://youtrack.jetbrains.com/issue/GO-6128

2019-05-13 · 1 min · 31 words · -

Java Builder

‘Java Builder’ https://juejin.im/entry/5b83fe1851882542e16bfcf6 Java 中的 Builder 模式和协变返回类型 阅读 735 收藏 45 2018-08-27 原文链接: www.codebelief.com 阅读这篇文章大约需要五到十分钟时间。 Builder 模式是一种创建型的设计模式,即解决对象的创建问题。 在 Java、C++ 这类语言中,如果一个类在创建时存在可选参数,那么可以通过函数重载来实现,但是如果可选参数非常多的话,构造函数的数量也会变得非常多,并且可能因为不同可选参数类型相同而没法重载,我们接下来通过例子来说明。 一、可选参数带来的问题 不可重载的情况 //学号、姓名是必须参数,身高、体重可选 public Student(int id, String name) {} public Student(int id, String name, float height, float weight) {} public Student(int id, String name, float height) {} //只填身高 public Student(int id, String name, float weight) {} //只填体重 (签名重复,无法重载) 虽然最后两个构造方法参数名不同,但是它们类型相同,方法签名也就相同,因此没办法重载,只能保留一个。 构造方法数量过多 接着考虑这么一个场景,你正在设计一个 Person 类,这个类存放了 name、age、sex 等信息,其中 name 是必要信息,而 age 和 sex 是可选信息,那么你可能会编写如下的构造方法: ...

2019-05-13 · 5 min · 869 words · -

goexec

goexec `bash goexec ‘strings.Repeat(“Go! “, 5)’ goexec ‘http.ListenAndServe(":8080”, http.FileServer(http.Dir(”.")))'` https://github.com/shurcooL/goexec#goexec

2019-05-13 · 1 min · 10 words · -