RYMCU-8051单片机系列 置顶! 有更新!

阅读全文 »

C++ Primer 手记 有更新!

1.数据类型

1.1 类型/字宽

  • 1.bool
  • 2.char 8bit
  • wchar_t 16bit
  • char16_t 16bit
  • char32_t 32bit
  • short 16bit
  • int 16bit
  • long 32bit
  • long long 64bit
  • float 6 位有效数字
  • double 10 位有效数字
  • long doubel 10 位有效数字
  • 可寻址最小内存块为 “字节” 8bit = 1byte
  • 存储的基本单元为“字” 1
阅读全文 »

Spacevim配置文件备份 有更新!

[options]
    # 主题颜色
    colorscheme = "jellybeans"
    colorscheme_bg = "dark"
    enable_guicolors = true
    # YouCompileMe
    enable_ycm = true
    # statusline
    statusline_separator = "arrow"
    statusline_iseparator = "bar"
    enable_statusline_mode = true
    buffer_index_type = 0
    # tabline
    enable_tabline_filetype_icon = true
    # 版本控制
    enable_vimfiler_gitstatus = true
    # file tree
    filemanager = "vimfiler"
    filetree_direction = "left"
    # google
    enable_googlesuggest = true
# ------------------ui--------------------
阅读全文 »

关于文章排序算法引发的思考

Question 事情的经过大概是这样子 前几天 R 社站长问作品集应该怎么排序? 作为写过几天增删改查的我就叭叭了一堆,先这样这样,在那样那样,最后这样这样,就排好了 然后站长贴了一个排序算法,不同于冒泡选择排序算法,经过一阵思考和分析后,感觉妙啊 ~~~ 同时也觉得自己太过头发短见识短,孤陋寡闻了,沉浸在各种框架里殊不知解决核心问题的还是数学。 Answer b3 的 Markdown editor 数学公式支持 Katex \frac{(log_{10}Qviews4)+\frac{QanswersQscore}{5}+sum(Ascores)}{((Qage+1)-(\frac{Qage-Qupdated}{2}))^{1.5}} Qviews = question views,通常这个数会很大,几万至几十万 Qanswers = question answers,这个数相对于浏览量来说就非常小了,5-10 等等 Qscore = question score,评分,完全是搜索问题的人觉得这个回答值多少分就点一分,可为负 sum(Ascroes)不知道,不考虑 Q....

阅读全文 »

关于微前端实现原理与ngx-planet(四)服务端渲染

1.为什么要服务端渲染 因为公司后端服务在 k8s 上,是分布式的微服务,之前端全部打包部署在了物理机器(虚拟机)nginx 上,如果通过 helm 做应用商店的话,nginx 前端这部分无法处理,包括灰度部署,CI 等,全部都只能做到接口级别的处理,并不能连带静态资源文件一起处理,所以基于分布式的前端整改迫在眉睫。 偶然发现了 ngx-planet,整篇文章基于前几篇文章,可以看之前的几篇文章。 2.如何基于 ngx-palnet 进行服务端渲染 2.0 有路由前缀的情况下服务端渲染 ngx-planet 如何改进 在 start 函数中监听路由阶段,其中的 startWith 过滤路由要把 location.pathname 修改好,要将前缀去除掉,至于如何动态去除不写死,仁者见仁智者见智。 2.1 首先,准备打包好的静态文件 将 build 命令修改,注意 --deploy-url 的意思是,打包完成后,静态资源路径是什么 "build": "ng build --prod --deploy-url=/static/star-universe/ --base-href=/st....

阅读全文 »

关于微前端实现原理与ngx-planet(三)客制化

客制化 由于公司和公司的业务不同,所以在 ngx-planet 的基础上,需要作出一些针对于业务的拓展 目前分出四个基础项目 @yunzai/stars:封装了 用户认证,元素权限,i18n 等系统初始化信息的内容,需要发包的,意为繁星. star-universe: portal 项目,所有子前端项目的入口,意为宇宙. star-dust:一些可能会通用的 components 都放到这个项目里,统一管理,意为星尘. star-uranus:模版项目,意为天王星. 开发环境 可以看到桌面共有四个编辑器,开发时需要跑起其中三个项目. star-universe,star-dust,star-uranus @yunzai/stars 因为是基础包,所以扩展了哪些功能点,先做一个介绍,因为发包,所以 planet 前缀都被我改名成为了 star 前缀,针对于 ngx-planet 加载过程请看前一篇 link start。 接下来看项目结构 首先基于 ngx-planet 加入了 auth,config,i18n,providers,stomp,token,user 这些文件夹 modu....

阅读全文 »

关于微前端实现原理与ngx-planet(二)

道标 准备好源码,然后跟着文章去看代码,在每个代码块的第一行,我都把 filename 写上了,并且打开了 gitalk。 项目结构 - packages/planet |--src |--application |--planet-application-loader.spec.ts |--planet-application-loader.ts # 应用加载器 |--planet-application-ref.spec.ts |--planet-application-ref.ts # 应用的引用 |--planet-application.service.spec.ts |--planet-application.service.ts # 应用逻辑处理 Service |--portal-application.spec.ts |--portal-application.ts # Portal 应用 |--component |--planet-component-loader.spec.ts |--planet-component-loader.ts # 组件加载器 |--pla....

阅读全文 »

关于微前端实现原理与ngx-planet(一)

微前端? 简单来说 从使用角度考虑 D 应用是由 ABC 三个应用/组件组合而成,通常在 Angular/Vue/React 单项目中很容易实现,但为了复用解耦,D 应用现由 3 个独立部署并带有通信机制的应用/组件组合而成。 从部署角度考虑 A,B,C,D 为并行四个打包后的静态文件,当有 E 应用使用 A,B,C,D 应用中的组件或者事件时通过类 eureka 服务发现注册的方式去复用组件或应用。 当然,这只是众多思路中的一种 当然,这只是众多思路中的一种 当然,这只是众多思路中的一种 好处: 应用自治: 只需要遵循统一的接口规范或者框架,以便于系统集成到一起,相互之间是不存在依赖关系的。 单一职责: 每个前端应用可以只关注于自己所需要完成的功能。 技术栈无关: 你可以使用 Angular 的同时,又可以使用 React 和 Vue。 这就好像使用 k8s 集群和 grpc 调用一样 架构模式 基座模式: 通常有一个 main/portal 应用来充当基座,提供基础服务,剩下的应用可插拔在基座上。好像 dashboard 和 widget 的关系 自组....

阅读全文 »

vmalert

Vmalert vmalert executes a list of given alerting or recording rules against configured address some command line interface tool configure vmalert ./bin/vmalert -rule=alter.rules \ // PromSQL compatible datasource -datasource.url=http://localhost:8428 // Alert manager url -notifier.url=http://localhost:9093 // Alert manager replica rul -notifier.url=http://127.0.0.1:9093 // remote write compatible storage to persist rules -remoteRead.url=http://localhost:8428 // PromSQL compatible datasource ....

阅读全文 »

about prometheus alerting

1.Alerting with Prometheus is separated in to two parts 1-1Alerting rules Alerting rules is a file that formatted by yml,it's define some exp in to the YAML file. Alerting rules is in Prometheus servers send alerts to an alert manager and alert manager managed those alerts. the rule document in there: the rules doc 1-2Alerting Manager AlertingManager is a command line tool and the command line tool flags has those functions configure immutable system parameters configuration file defines in....

阅读全文 »

about prometheus rules

1.Two types of rules Prometheus supports two types of rules .whitch may be configured and then evaluated at regular intervals: Recording rules and Alerting rules. 2.Recording rules 1.Recording rules allow you to precompute frequently needed or computationally expensive expressions and save their result as a new set of time series. 2.Be mutch faster than executing the origin expression every time it's need. 3.Rules within a group run sequentially at a regular interval. the syntax of a rule file f....

阅读全文 »

星际争霸2AI环境搭建

0.what 暴雪给策略性即时战略游戏放出了一些接口以用来让开发者研究沙盘推演 AI。老早以前的了。今天想着试一试接口,但是下载好游戏玩了一天,晚上才开始搭环境。哈哈哈哈哈 1.下载 SC2 2.下载地图 https://github.com/Blizzard/s2client-proto#downloads https://github.com/deepmind/pysc2 3.加入地图 放入 /Applications/StarCraft\ II/Maps 中 4.环境变量 export SC2PATH=/Applications/StarCraft\ II 5.python 环境 pip3 install pysc2 6.测试 python3 -m pysc2.bin.agent --map Simple64 7.查看 demo

阅读全文 »

关于Prometheus Exporter

Prometheus time series metrics collect toolkit 提供了 UI 服务,默认端口 30313 主要作用就是监控一下我们服务的各项指标,也有许多包已经集成了这个功能,基本上查找一下配置一下就可以快速的展示出各项指标了 业务指标 但例如 java_gc,go_gc,node_request_total 这种指标对我们来说没有特别大的用处,我们的着力点应该在于提取业务指标,各个业务系统数据源不同逻辑不同导致无法使用通用型第三方包来构建我们的指标。 这个时候就出现了 prometheus-exporter 用来放出自定义的业务指标,等待 prometheus 来此处收集。 prometheus exporter 其实很简单,就是攒一些 prometheus 数据格式的数据放入 /metrics 路由中等待 scrape 就好 下面使用 Go 来举例子 这里使用了 godror 驱动 Oracle,prometheus/client_golang 客户端,logrus 日志模块 一些命令行参数 main 函数主要就是构造 exporter 对象然....

阅读全文 »

2020年终

1.alpha 致 Liandi https://ld246.com/article/1607769429589。十年磨一剑,一剑破万法,感谢@88250 D 哥和@V 姐的努力让我们相遇,感谢链滴让我们于此相遇,畅谈理想,分享生活,传递经验,感受快乐。 我们用程序发声,用爱发电,有非常优秀的编辑器作者,没错就是 Spacevim,有 Ai 专家,iot 大牛,中间件大师,网络安全专家,有网警大大,有*图哥。有即将毕业的学生,也有为人父母。 不知从何而起,习惯了每天打开网站分享你们的每一滴酸甜苦辣,一起快乐,一起难过,一起吃瓜,相互鼓励向前奔跑着。 同样,无论出于什么原因,黑客派变为链滴,或者链滴变为链链滴,链链链滴于我而言都无伤大雅,尊重 D 大的选择,遵从自己内心的选择。加油~ 2021 你们会更顺心快乐。 以上。 2.beta 十年太久,只谈如今。 还为 2019 的收获得意时,夹带着梦幻的 2020 已然摆在身前。 记得年初,等一人归来时的煎熬,母亲发烧,城际交通停运,父亲异地工作无法回家。好在她平安归来,相谈甚欢最终也无非错过,备下的阿奇霉素和莲花清瘟药到病除,第一次独自开车....

阅读全文 »

Antv_G2笔记

概念 基本元素 数据 -> Data : 可视化数据来源 图形属性 -> Attribute : 数据中变量映射到图形 几何标记 -> Geometry: 点,线,多边形等几何标记 度量 -> Scale: 数据空间到图形空间的转换接口 坐标系 -> Coordinate: 笛卡尔,极坐标,螺旋坐标 可视化组件 -> Component: Legent,Tooltip,Annotation,Slider 分面 -> Facet: 数据分面,一图拆多图 视觉通道 这是什么 数据属性 -> 标记:直观的代表数据的性质分类,通常是几何图形元素,例如:点、线、面、体。 数据值 -> 视觉通道:用于表现数据属性的定量信息,包括标记的位置、大小、形状、方向、色调、饱和度、亮度等。 tips: 数据的属性对应几何标记,比如 age 属性为一个点,那么 age=15 可能是水平方向一条由点连接成的 15 长度的直线,所以视觉通道为属性对应的几何元素和值对应的通道组合而成的图案 定性(分类)的视觉通道,如形状、颜色的色调、控件位置。 定....

阅读全文 »

Prometheus监控redis实例

1.下载 redis_exporter 2.脚本 nohup ./redis_exporter -redis.addr 0.0.0.0:6379 -redis.password "password" & link 3.promethus endpoint apiVersion: v1 kind: Endpoints metadata: name: redis-exporter subsets: - addresses: - ip: 222.30.195.42 ports: - port: 9121 name: redisex --- apiVersion: v1 kind: Service metadata: name: redis-exporter labels: app: Redis spec: ports: - port: 9121 targetPort: 9121 name: redisex --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app....

阅读全文 »

K8S服务健康检测

K8S 服务健康检测机制 1.业务探针 readinessProbe 1.1 为什么自动扩容导致请求失败? 一个新 Pod 创建后,Service 就能立即选择到它,并会把请求转发给 Pod,那问题就来了,通常一个 Pod 启动是需要时间的,如果 Pod 还没准备好(可能需要时间来加载配置或数据,或者可能需要执行 一个预热程序之类),这时把请求转给 Pod 的话,Pod 也无法处理,造成请求失败。 1.2 如何解决? 加入业务探针,可以理解为类似 ws 的心跳检测机制. Kubernetes 中解决这个问题的方法就是给 Pod 加一个业务就绪探针 Readiness Probe,当检测到 Pod 就绪后才允许 Service 请求转给 Pod。 Readiness Probe 周期性检测 Pod,然后根据响应来判断 Pod 是否就绪,Service 根据就绪状态分发流量。 1.3 配置详解 1.3.1 EXEC(shell)检测 apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: replicas: 3 ....

阅读全文 »