草庐IT

彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-登录与图形验证码(captcha)EP06

书接上回,上一回我们按照“低耦合高内聚”的组织架构方针对项目的整体结构进行了优化,本回将会继续编写业务,那就是用户的登录逻辑,将之前用户管理模块中添加的用户账号进行账号和密码的校验,校验通过后留存当前登录用户的信息,过程中使用图形验证码强制进行人机交互,防止账号的密码被暴力破解。登录逻辑首先在逻辑层handler包中,创建用户模块文件user.go:packagehandlerimport( "github.com/kataras/iris/v12")//用户登录模板funcUser_signin(ctxiris.Context){ ctx.View("/signin.html")}这里通过上

彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-登录与图形验证码(captcha)EP06

书接上回,上一回我们按照“低耦合高内聚”的组织架构方针对项目的整体结构进行了优化,本回将会继续编写业务,那就是用户的登录逻辑,将之前用户管理模块中添加的用户账号进行账号和密码的校验,校验通过后留存当前登录用户的信息,过程中使用图形验证码强制进行人机交互,防止账号的密码被暴力破解。登录逻辑首先在逻辑层handler包中,创建用户模块文件user.go:packagehandlerimport( "github.com/kataras/iris/v12")//用户登录模板funcUser_signin(ctxiris.Context){ ctx.View("/signin.html")}这里通过上

DirectX11 With Windows SDK--06 使用ImGui

前言DearImGui是一个开源GUI框架。除了UI部分外,本身还支持简单的键鼠交互。目前项目内置的是V1.87版本,大概半年时间会更新一次版本,并且对源码有小幅度调整。注意:直接下载源码使用会导致19章之后的UI效果有误,修改了源码imgui_impl_dx11.cpp,需要用项目源码中的替换下载的。具体原因参考文末DirectX11WithWindowsSDK完整目录Github项目源码欢迎加入QQ群:727623616可以一起探讨DX11,以及有什么问题也可以在这里汇报。生成ImGui静态库方法一:VS建立项目在本项目的ImGui文件夹中内置了一个VS项目,你可以参考其做法,也可以直接使

DirectX11 With Windows SDK--06 使用ImGui

前言DearImGui是一个开源GUI框架。除了UI部分外,本身还支持简单的键鼠交互。目前项目内置的是V1.87版本,大概半年时间会更新一次版本,并且对源码有小幅度调整。注意:直接下载源码使用会导致19章之后的UI效果有误,修改了源码imgui_impl_dx11.cpp,需要用项目源码中的替换下载的。具体原因参考文末DirectX11WithWindowsSDK完整目录Github项目源码欢迎加入QQ群:727623616可以一起探讨DX11,以及有什么问题也可以在这里汇报。生成ImGui静态库方法一:VS建立项目在本项目的ImGui文件夹中内置了一个VS项目,你可以参考其做法,也可以直接使

Jenkins实践指南-06-Jenkins pipeline 语法02

3.2.6parameters  [作者:Surpassme]parameters又称参数化,通过参数化可以决定pipeline运行期的行为。pipeline主要支持两种形式的参数化parameters命令参数化和插件参数化,这里先介绍通过parameters的参数化形式,通过paramters命令参数化时,parameters仅允许放置在pipeline块中  Jenkinspipeline目前支持的参数化类型主要如下所示:string  [作者:Surpassme]数据类型为字符串类型,示例如下所示:parameters{string(name:"stringParaName",defau

Jenkins实践指南-06-Jenkins pipeline 语法02

3.2.6parameters  [作者:Surpassme]parameters又称参数化,通过参数化可以决定pipeline运行期的行为。pipeline主要支持两种形式的参数化parameters命令参数化和插件参数化,这里先介绍通过parameters的参数化形式,通过paramters命令参数化时,parameters仅允许放置在pipeline块中  Jenkinspipeline目前支持的参数化类型主要如下所示:string  [作者:Surpassme]数据类型为字符串类型,示例如下所示:parameters{string(name:"stringParaName",defau

06-CubeMx+Keil+Proteus仿真STM32 - GPIO(五)

本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求实现矩阵键盘扫描,当按下任意一个按钮时,数码管立即显示当前按下按钮对应键值。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示,其中我们添加了一个排阻RX8、一个1位共阳极数码管7SEG-MPX1-CA、一组由按钮BUTTON构成的矩阵键盘。判断究竟是那个按键被按下了,有很多方法:逐行扫描、逐列扫描和行列反转扫描等。我们在此处使用行扫描法。根据电路图,我们将4X4矩阵式键盘行连接至PB0-PB3,列连接

06-CubeMx+Keil+Proteus仿真STM32 - GPIO(五)

本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求实现矩阵键盘扫描,当按下任意一个按钮时,数码管立即显示当前按下按钮对应键值。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示,其中我们添加了一个排阻RX8、一个1位共阳极数码管7SEG-MPX1-CA、一组由按钮BUTTON构成的矩阵键盘。判断究竟是那个按键被按下了,有很多方法:逐行扫描、逐列扫描和行列反转扫描等。我们在此处使用行扫描法。根据电路图,我们将4X4矩阵式键盘行连接至PB0-PB3,列连接

Kubernetes监控手册06-监控APIServer

写在前面如果是用的公有云托管的Kubernetes集群,控制面的组件都交由云厂商托管的,那作为客户的我们就省事了,基本不用操心APIServer的运维。个人也推荐使用云厂商这个服务,毕竟Kubernetes还是有点复杂的,升级也不好搞,我们自己来维护整个集群,性价比有点低。当然,如果因为各种原因最后我们还是要维护控制面这些组件,那就要好好看看本系列接下来的几篇博客了。黑盒测试APIServer在Kubernetes架构中非常核心,是所有API的入口,APIServer也暴露了metrics数据,我们尝试获取一下:[root@tt-fc-dev01.njetcd]#ss-tlpn|grepapi

Kubernetes监控手册06-监控APIServer

写在前面如果是用的公有云托管的Kubernetes集群,控制面的组件都交由云厂商托管的,那作为客户的我们就省事了,基本不用操心APIServer的运维。个人也推荐使用云厂商这个服务,毕竟Kubernetes还是有点复杂的,升级也不好搞,我们自己来维护整个集群,性价比有点低。当然,如果因为各种原因最后我们还是要维护控制面这些组件,那就要好好看看本系列接下来的几篇博客了。黑盒测试APIServer在Kubernetes架构中非常核心,是所有API的入口,APIServer也暴露了metrics数据,我们尝试获取一下:[root@tt-fc-dev01.njetcd]#ss-tlpn|grepapi