7-Zip添加Plugin支持SHA-512校验方式

7-Zip 是一款强大的解压缩程序,并自带了多种校验算法,已经用了有十余年. 从2017年 Google 宣布 SHA-1 的碰撞文件后,网上文件的校验码开始从 MD5 / SHA-1 向 SHA-256 走了.但是最近一些软件发布时,带的校验码都已经升级到了SHA-512,这时候数年一更的 7-Zip 就尴尬了,不支持 SHA-384 和 SHA-512 的校验. 今天逛7-Zip社区突然发现有人给 7-Zip 开发了一个插件, 叫做 WinCryptHashers. 安装方式很简单,在 7-Zip 的安装目录新建一个Codecs子文件夹,然后将下载过来的WinCryptHashers.64.dll或WinCryptHashers.32.dll(根据当前系统上安装的 7-Zip的版本类型,在帮助中可以查看32位或64位) 放入此目录,编辑WinCryptHashers.ini其中[Main]项下将想要校验的方法由0改为1即可.然后打开 7-Zip 选中文件右击点 CRC 中的*即可.(如果CRC有添加到右键也可直接点击)

Read More

解决flutter中Snackbar的显示问题

直接调用在SnackBar在底栏无法出现,可以给SnackBar写个扩展: class MySnackBar { static Show(final GlobalKey<ScaffoldState> scaffold, BuildContext context, String str) { final MySnackBar = new SnackBar(content: new Text(str)); scaffold.currentState.showSnackBar( MySnackBar); } } 这样在调用的时候关联GlobalKey传入,比如按钮的点击动作中加入即可: GlobalKey<ScaffoldState> scaffoldKey = new GlobalKey(); … onPressed:(){ MySnackBar.Show(scaffoldKey, context, “show … “解决flutter中Snackbar的显示问题”

Read More

使用EFK收集Kubernetes多集群日志

使用EFK收集Kubernetes多集群日志 Collecting logs for multi kubernetes clusters with EFK 在有多个集群的情况下,一个集群就搭建一套日志收集分析服务实在太浪费。因此可以尝试只跑一套Elasticsearch和Kibana实例,然后让各个集群中的日志收集器向Elasticsearch发送日志。 如图所示: Elasticsearch和Kibana可以放在Kubernetes集群中也可以独立部署。这里为了方便就选择独立部署. 部署ElasticSearch和Kibana Elastic 自建了 docker 镜像仓库,因此到https://www.docker.elastic.co/拉去最新的 Elasticsearch 和 Kibana 的镜像. 然后编写docker-compose.yaml文件. 关于详细配置,参考官方文档: Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/master/docker.html Kibana: https://www.elastic.co/guide/en/kibana/master/docker.html version: ‘2’ services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.4.0 restart: unless-stopped … “使用EFK收集Kubernetes多集群日志”

Read More

使用cgo实现高性能WebSocket服务

Go 语言的便捷,协程的高效,GC以及自身的安全性,使得它成为后端业务开发的利器. 之前看过来自 Mail.Ru 工程师分享 Go的百万连接数的WebSocket服务优化 ,*中文翻译版.描述通过使用优化 Go 协程和零拷贝Http Header 实现了对内存的高效利用. 但其中自定义的 epoll 结构中依旧用了锁,个人觉得还是有优化的空间. 可以用高效的 uWebSockets 库配合,使得接入层用高效的 C++ 语言,而后端业务处理则用 Go 语言.这样的好处就是 C++ 可以最高效精准的把控接入层的逻辑处理和内存的使用,而后端的业务开发则是以高效安全为主,使用 Go 正好合适. 这里使用的 uWebSockets 为 0.14.8 tag 的版本,配合 libuv作为事件驱动,zlib 作为压缩算法库,openssl 作为加密库,四个编译为 .a类型的静态库,方便一同编译到程序中,避免运行时动态库缺失的问题. … “使用cgo实现高性能WebSocket服务”

Read More

构建Flutter Android编译环境的Jenkins Slave

曾经给公司搞了个 Android 编译环境的 Docker 镜像,但是时间比较早,大概是17年5/6月,当时还加入 Node.JS 和 Cordova ,构建出来的镜像的 Size 非常巨大,达到了 3.7 G,于是想趁着添加 Flutter 的环境,重新搞一个,这里记录下. FROM jenkins/jnlp-slave:latest # 官方使用的jenkins用户没有太多权限,这里用root USER root # 抛弃 Android 4.4 版本之前的API SDK ARG ANDROID_APIS=”android-20,android-21,android-22,android-23,android-24,android-25,android-26,android-27,android-28″ ARG ANDROID_BUILD_TOOLS_VER=28.0.2 ARG ANDROID_SDK_TOOLS_VER=4333796 ARG FLUTTER_VER=0.7.3 … “构建Flutter Android编译环境的Jenkins Slave”

Read More