mux

[Go] 自定义一些http Server的参数 用到了interface的一些特性

十年热恋 提交于 2020-08-08 14:09:32
在一个http服务中 , 如果要定义一些参数比如读超时时间 , 写超时时间 , 那么用最简单的http.ListenAndServe 就不能实现了 需要自己实例化http.Server结构体 ,实例化完成以后 , 之前的路由怎么加进去又是一个问题 http.Server中处理请求响应是通过属性里的Handler来完成的 , 而属性里的Handler是一个interface接口类型 , 必须实现的方法是ServeHTTP(ResponseWriter, *Request) 正好ServeMux这个处理路由的结构体实现了ServeHTTP(ResponseWriter, *Request)方法 , 那么就能直接把这个结构体加进去 log.Println( " listen on 8080...\r\ngo:http://127.0.0.1:8080 " ) mux: =& http.ServeMux{} // 根路径 mux.HandleFunc( " / " , controller.ActionIndex) // 邮件夹 mux.HandleFunc( " /list " , controller.ActionFolder) // 登陆界面 mux.HandleFunc( " /login " , controller.ActionLogin) s : = & http

ESP8266 SPI 开发之软件驱动代码分析

可紊 提交于 2020-08-07 13:01:31
一 基本概述 esp8266的SPI代码流程非常的清晰,主要有三部分构成: spi_init 配置 spi_trans 配置 data_transfer 配置这三块组成。 在这里,笔者就针对spi的这些流程,做一个简单的源码分析。 一 初始化源码分析 spi 源码初始化函数中,主要是完成软硬件的接口配置和参数配置,我们看一下这里面都做了一些什么呢? 虽然代码不少,但是一个函数的核心代码也就那么多: esp_err_t spi_init(spi_host_t host, spi_config_t *config) 这个函数的核心代码如下: spi_set_event_callback(host, &config-> event_cb); spi_set_mode(host, &config-> mode); spi_set_interface(host, &config-> interface ); spi_set_clk_div(host, &config-> clk_div); spi_set_dummy(host, & dummy_bitlen); spi_set_intr_enable(host, &config-> intr_enable); spi_intr_register(spi_intr, NULL); spi_intr_enable(); 这代码逻辑很清楚了:

停止不必要的UI动效设计

烈酒焚心 提交于 2020-08-05 17:17:46
前言:这篇短文将会探讨UI设计中动画的过度使用,并将其与早期的视觉设计进行对比,提出一些对于有效的GUI动效设计的建议。 我们将在下文中,简单探讨如何改善下面的这个交互。 UI动效设计的反面案例( 线上Demo ) 注:这个反面案例并非假设,而是来自近期的真实客户案例。 概述 自从 70、80 年代首个光栅图像在CRT屏幕出现以来,人们对于(数字)视觉设计的态度一直在不断进化。与其他艺术领域不同,在数字设计领域显露的趋势,与使用设备的发展史紧密相关。设备能力的提升有目共睹,显示器技术使分辨率从CGA320*200,到VGA的640*480,然后到SVGA的800*600,到现在已快速提升至4k及以上。 类比视觉设计发展历程 动效设计正在经历成长的疼痛,正如在当年90年代和21世纪初的视觉设计。追溯视觉设计进化发展的过程,有助于我们去理解现阶段的动效设计。 21世纪初期的网页设计 在更精妙的设计语言出现之前,设计师们在初期阶段容易滥用新功能,这是正常的。90年代末和21世纪初的界面设计师,应该还记得以阴影、斜角、高光,无留白这特征的过度设计。当设计师们着迷于新媒体,并陶醉于像素的奇妙时,这一结果再自然不过了。 扁平化设计 扁平化设计示例 不管你喜欢与否,扁平化设计在设计圈中已成为主流思想。所有的主要系统平台(Android、iOS、OSX、Windows、Windows phone

[Go] 自定义一些http Server的参数 用到了interface的一些特性

北战南征 提交于 2020-07-28 10:10:15
在一个http服务中 , 如果要定义一些参数比如读超时时间 , 写超时时间 , 那么用最简单的http.ListenAndServe 就不能实现了 需要自己实例化http.Server结构体 ,实例化完成以后 , 之前的路由怎么加进去又是一个问题 http.Server中处理请求响应是通过属性里的Handler来完成的 , 而属性里的Handler是一个interface接口类型 , 必须实现的方法是ServeHTTP(ResponseWriter, *Request) 正好ServeMux这个处理路由的结构体实现了ServeHTTP(ResponseWriter, *Request)方法 , 那么就能直接把这个结构体加进去 log.Println( " listen on 8080...\r\ngo:http://127.0.0.1:8080 " ) mux: =& http.ServeMux{} // 根路径 mux.HandleFunc( " / " , controller.ActionIndex) // 邮件夹 mux.HandleFunc( " /list " , controller.ActionFolder) // 登陆界面 mux.HandleFunc( " /login " , controller.ActionLogin) s : = & http

使用ControlPersist特性自动登陆SSH服务器

拟墨画扇 提交于 2020-07-28 07:09:03
本文介绍一种自动登陆SSH服务器的方法,那就是使用ControlPersist特性。 背景介绍 很多公司都使用静态密码+动态密码的方式登陆跳板机,某些还会强制一个动态密码只能登陆一次,于是我们面临着等一分钟才能登陆一次跳板机,很不方便。本文介绍一种在本机的设置,免除每次输入密码的方法。 实现方法 此功能是使用SSH的ControlPersist特性,SSH版本必须是5.6或以上版本才可使用ControlPersist特性。 多条连接共享 如果你需要在多个窗口中打开到同一个服务器的连接,而不想每次都输入用户名,密码,或是等待连接建立,那么你可以配置SSH的连接共享选项,在本地打开你的SSH配置文件,通常它们位于~/.ssh/config,然后添加下面2行(ControlMaster配合ControlPath一起使用): ControlMaster auto ControlPath /tmp/ssh_mux_%h_%p_%r 现在试试断开你与服务器的连接,并建立一条新连接,然后打开一个新窗口,再创建一条连接,你会发现,第二条连接几乎是在瞬间就建立好了。 Windows用户 如果你是Windows用户,很不幸,最流行的开源SSH客户端Putty不一定支持这个特性,但是Windows上也有OpenSSH的实现,比如Copssh。 文件传输 连接共享不止可以帮助你共享多个SSH连接

How to serve React

喜夏-厌秋 提交于 2020-05-27 05:07:30
问题 I have a simple React application I would like to serve from my Go server back end. I hear the process is similar to serving a static html file, but I just can't seem to get it to work. When I try to view the app on the browser it says "This page isn't working" and that "localhost has redirected too many times" Here is the code where I am running the server locally as well as trying to handle the react application func main() { r := mux.NewRouter() // handle app buildHandler := http

[Docker] Docker整体架构图

ε祈祈猫儿з 提交于 2020-05-07 13:29:49
https://www.huweihuang.com/article/docker/docker-architecture/ 一、Docker的总架构图 docker是一个C/S模式的架构,后端是一个松耦合架构,模块各司其职。 用户是使用Docker Client与Docker Daemon建立通信,并发送请求给后者。 Docker Daemon作为Docker架构中的主体部分,首先提供Server的功能使其可以接受Docker Client的请求; Engine执行Docker内部的一系列工作,每一项工作都是以一个Job的形式的存在。 Job的运行过程中,当需要容器镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动graphdriver将下载镜像以Graph的形式存储; 当需要为Docker创建网络环境时,通过网络管理驱动networkdriver创建并配置Docker容器网络环境; 当需要限制Docker容器运行资源或执行用户指令等操作时,则通过execdriver来完成。 libcontainer是一项独立的容器管理包,networkdriver以及execdriver都是通过libcontainer来实现具体对容器进行的操作。 二、Docker各模块组件分析 (一)Docker Client[发起请求] Docker Client是和Docker

Go pprof性能调优

扶醉桌前 提交于 2020-05-03 19:43:46
Go性能调优 在计算机性能调试领域里,profiling 是指对应用程序的画像,画像就是应用程序使用 CPU 和内存的情况。 Go语言是一个对性能特别看重的语言,因此语言中自带了 profiling 的库,这篇文章就要讲解怎么在 golang 中做 profiling。 Go性能优化 Go语言项目中的性能优化主要有以下几个方面: CPU profile:报告程序的 CPU 使用情况,按照一定频率去采集应用程序在 CPU 和寄存器上面的数据 Memory Profile(Heap Profile):报告程序的内存使用情况 Block Profiling:报告 goroutines 不在运行状态的情况,可以用来分析和查找死锁等性能瓶颈 Goroutine Profiling:报告 goroutines 的使用情况,有哪些 goroutine,它们的调用关系是怎样的 采集性能数据 Go语言内置了获取程序的运行数据的工具,包括以下两个标准库: runtime/pprof :采集工具型应用运行数据进行分析 net/http/pprof :采集服务型应用运行时数据进行分析 pprof开启后,每隔一段时间(10ms)就会收集下当前的堆栈信息,获取格格函数占用的CPU以及内存资源;最后通过对这些采样数据进行分析,形成一个性能分析报告。 注意,我们只应该在性能测试的时候才在代码中引入pprof。

FPGA_VHDL 学习课堂笔记001

醉酒当歌 提交于 2020-04-29 20:42:44
FPGA_VHDL 学习课堂笔记 记录说明:本文档主要记录大学期间,老师FPGA授课课堂笔记。 代码语言:VHDL 编程软件:MAX+plus II FPGA硬件:FLE-843 03月05日 理论课 wo先唠点: FPGA硬件中有百万个逻辑门,我们可以通过编程将各种门组合连接,并将编程下载到FPGA中,以实现设计功能。编程分为文本编辑和图行编辑,图形编辑就是通过数电逻辑原理图,进行逻辑门间的线路连接。而文本编辑,是通过描述性代码,将设计者想要实现的功能转换成机器语言,使得FPGA根据机器语言,将内部的各种逻辑门进行搭建,以实现最终功能。需要注意的是,各种逻辑门的搭建方式完全由FPGA自己优化实现搭建,因而,我们控制的只是去描述下想要实现的最终功能即可。文本编辑主要由VHDL和Verilog两种,Verilog在工程上用的较多,但是由于其太灵活,有些想要实现的功能并不能由Verilog语言直接进行描述实现,还需要VHDL来解决。所以,我觉得VHDL和Verilog 的关系就像汇编语言和C语言的关系一样。不管哪个好,老师教的是VHDL,我的FPGA学习之路就由VHDL开始。但是我觉得在学习了单片机以后再来学习FPGA的最先要干的事是先把思想从单片机的顺序循环执行调到FPGA的并行运行模式,这样在学习FPGA时就不会限于原有的惯有思想了。 laoshi课堂:

【交换机的高级特性、RSTP和MSTP】交换理论测试题(已纠完错)

半城伤御伤魂 提交于 2020-04-26 18:38:38
考核内容: 一、 交换机高级特性(1、MUX-VLAN;2、端口隔离;3、端口安全) 二、RSTP (1、RSTP相对于STP的改进;2、RSTP加快收敛的机制)、 MSTP 单选题 1、 以下关于链路聚合的描述内容,错误的是( D ) A、链路聚合模式可以分为静态LACP模式和手工负载分担模式 B、手工负载分担模式加入eth-trunk的接口都进行数据转发 C、静态LACP模式可以根据设定的最大链路捆绑数量和活跃链路数量来控制参与转发的链路数量 D、静态LACP模式可以通过修改系统优先级和系统ID来指定主控端设备, 其参数越大越优 2 、关于静态 LACP 模式描述错误的是( C ) A、逐流负载分担模式是根据流量的特征来进行流量分类的,可以通过人为修改eth-trunk的源IP、目的IP、源MAC、目MAC地址等参数来影响流量分类的结果 B、如果链路不稳定且频繁抖动,可以调大静态LACP模式下的抢占时延,减少数据传输不稳定的情况 C、链路聚合只能在交换机上使用, 不能使用在路由器上 D、链路聚合时需要保证聚合设备双方的聚合模式、链路数量、带宽和双工模式的一致性 3 、 MUX VLAN 可以为二层交换机提供访问控制的功能,以下描述正确的是( C ) D A、隔离型VLAN不可以与互通型VLAN进行互访,但隔离型VLAN之间可以进行互访 B