2021 12-06

分布式系统中,权限设计实践

一、权限控制 1、业务背景 在复杂的业务系统中,权限管理是最基础的模块,通过各种授权结构模型,管理用户在产品中可访问和可操作的边界,以实现系统和数据安全管理的目的: 通常在系统的任何层面都会涉及到一定程度的权限管控: 页面层:菜单、组件、操作口; 网关层:黑白名单管理、流量控制; 控制层:平台、服务、API; 数据层:数据库、业务表、字段; 不同层面的权限管理,用来应对不同场景下的需求,例如:后台系统的页面,开放平台中的白名单,常规API访问限制,核心数据的字段维度。 采用合理的策略去管理

2021 12-06

联盛德 HLK-W806 (六): I2C驱动SSD1306 128x64 OLED液晶屏

目录 联盛德HLK-W806(一):Ubuntu20.04下的开发环境配置,编译和烧录说明 联盛德HLK-W806(二):Win10下的开发环境配置,编译和烧录说明 联盛德HLK-W806(三):免按键自动下载和复位 联盛德HLK-W806(四):软件SPI和硬件SPI驱动ST7735液晶LCD 联盛德HLK-W806(五):W801开发板上手报告 联盛德HLK-W806(六):I2C驱动SSD1306128x64OLED液晶屏 SSD1306OLED SSD1306驱动的128x64OL

2021 12-06

强化学习实战 | 自定义Gym环境之井字棋

在文章强化学习实战|自定义Gym环境中,我们了解了一个简单的环境应该如何定义,并使用print简单地呈现了环境。在本文中,我们将学习自定义一个稍微复杂一点的环境——井字棋。回想一下井字棋游戏: 这是一个双人回合制博弈游戏,双方玩家使用的占位符是不一样的(圈/叉),动作编写需要区分玩家 双方玩家获得的终局奖励是不一样的,胜方+1,败方-1(除非平局+0),奖励编写需要区分玩家 终局的条件是:任意行/列/对角占满了相同的占位符or场上没有空位可以占位 从单个玩家的视角看,当前状态s下采取动作a后,

2021 12-06

利用charles映射解决夜神模拟器安装xposed-v89-sdk25-x86.zip

最近在玩xposed框架,前前后后搞了两天,浪费一个周末,总算把踩过的坑都踩了一遍。。 比如大家肯定遇到的的一个问题:夜神模拟器打开xposed安装器之后,为什么下载不了xposed-v89-sdk25-x86.zip这些框架包呢? 那是因为访问地址已经由http变成https啦,原来的地址相当于失效了。 通过charles抓包可以得知,在xposed安装器界面下拉的时候(图一),都会有一条这样的请求(图二) 图一 图二 这条请求:http://dl-xda.xposed.info/framew

2021 12-05

Bootstrap实战 - 瀑布流布局

讲Bootstrap基础的教程网上已经很多了,实际上Bootstrap中文网(bootcss.com)里的文档已经写的很详细了,但实战的案例却不多。这里用一些当前流行的网页布局为导向,使用Bootstrap中的样式来完成它。每次只讲与案例相关的知识点,边学边练,加强理解。练习本案例需有HTML/CSS基础。 一、案例介绍 瀑布流是近几年流行起来的一种网页布局,视觉表现为参差不齐的多栏布局,本案例便是使用Bootstrap实现一个瀑布流布局。 二、相关的Bootstrap知识点 2.1配置Boo

2021 12-05

Go 性能提升tips--边界检查

1.什么是边界检查? 边界检查,英文名BoundsCheckElimination,简称为BCE。它是Go语言中防止数组、切片越界而导致内存不安全的检查手段。如果检查下标已经越界了,就会产生Panic。 边界检查使得我们的代码能够安全地运行,但是另一方面,也使得我们的代码运行效率略微降低。 比如下面这段代码,会进行三次的边界检查 packagemain funcf(s[]int){ _=s[0]//检查第一次 _=s[1]//检查第二次 _=s[2]//检查第三次 } funcmain(){

2021 12-05

java的缓冲流及使用Properties集合存取数据(遍历,store,load)

缓冲流 概述 字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:BufferedReader,BufferedWriter 缓冲流原理 缓冲区是内存中的一块特定区域,与在内存中定义一个数组的区域不同 BufferedOutputStream importjava.io.BufferedOutputStream; importjava.io.FileOutputStream; importjava.io.IOException;

2021 12-05

算法基础提升学习1

一、并查集 题、 岛屿问题 【题目】一个矩阵中只有0和1两种值,每个位置都可以和自己的上、下、左、右四个位置相连,如果有一片1连在一起,这个部分叫做一个岛,求一个矩阵中有多少个岛? 【举例】 001010 111010 100100 000000这个矩阵中有三个岛 进阶 使用并发方式计算 答:采用并查集,将大的区域分块,每个cpu计算一块,然后考虑边界问题进行合并。 合并:看边界的被感染的点是由那个点导致的,记录这个点。合并开始的时候将这些导致的点看做一个单独的并查集元素。 ​然后进行判断,如果

2021 12-05

使用 Skywalking 对 Kubernetes(K8s)中的微服务进行监控

1.概述 老话说的好:任何成功都不是轻易得来的,是不断地坚持与面对的结果。   言归正传,之前我们聊了SpringCloud开发的微服务是如何部署在  Kubernetes(K8s)集群中的,今天我们来聊聊在 Kubernetes(K8s)集群中是如何监控这些微服务的。 apache的Skywalking就是一个不错的选择,SkyWalking是一个可观察性分析平台和应用程序性能管理系统,可以对微服务进行链路追踪,可以对微服务的指标进行分析,可以快速定位运

2021 12-05

Go语言核心36讲(Go语言实战与应用二十一)--学习笔记

43|bufio包中的数据类型(下) 在上一篇文章中,我提到了bufio包中的数据类型主要有Reader、Scanner、Writer和ReadWriter。并着重讲到了bufio.Reader类型与bufio.Writer类型,今天,我们继续专注bufio.Reader的内容来进行学习。 知识扩展 问题:bufio.Reader类型读取方法有哪些不同? bufio.Reader类型拥有很多用于读取数据的指针方法,这里面有4个方法可以作为不同读取流程的代表,它们是:Peek、Read、ReadS