Deskreen 是一个基于 Electron.js 的开源应用程序,用于将电脑桌面的实时流通过无线网络传输到任何设备上的 Web 浏览器中,可以使任何能打开 Web 浏览器的设备成为计算机的第二屏幕。适用于 WiFi 或 LAN、使用任何具有 Web 浏览器的设备作为计算机的第二屏幕(使用 Display Dummy Plug)使用任何设备的网络浏览器来镜像计算机的屏幕,使用任何设备的网络浏览器从计算机屏幕上查看单个应用程序窗口,支持与多个设备进行多个屏幕共享会话,支持共享屏幕时更改图片质量、支持图片质量自动更改(例如,提高观看 youtube 视频时的性能)端到端安全和暗模式用户界面支持,适用于 Win / Mac / Linux。
求爱姊妹花 发布的帖子
-
将Web浏览器变为第二屏幕Deskreen
-
机器学习图像增强imgaug
imgaug 是一个用于机器学习实验中图像增强的库。它支持广泛的增强技术,允许轻松组合这些技术并以随机顺序或在多个 CPU 内核上执行它们;具有简单而强大的随机界面,不仅可以增强图像,还可以增强关键点 / 地标、边界框、热图和分割图。 imgaug有许多增强技术,例如仿射变换、透视变换、对比度变化、高斯噪声、区域丢失、色调 / 饱和度变化、裁剪 / 填充、模糊。还有许多辅助功能绘制热图、分割图、关键点、边界框。还支持支持在多个 CPU 内核上进行扩充。
-
高度自由的视频播放器awsome-video-player
awsome-video-player是一款十分简单易用的而且是一款能够高度自定义的播放器,虽然软件界面看起来十分的简单,但是功能十分的强大并且它占用的计算机内存小,而且它支持的文件格式十分的广泛。
-
第一:awsome-video-player播放器还可以自定义所有的图标。
-
第二:awsome-video-player播放器能够自定义配置,视频开始播放的起始位置、是否自动播放、是否循环播放、视频比例、进度条是否允许拖拽、视频快进或者快退的单位秒数。
-
第三:可以无限制的进行自定义拓展元素,也可以使用内置的字幕或者可以使用内置的弹幕、也还有其他元素,比如:广告覆盖等元素;还可以自定义视频顶部返回按钮;快进或快退等操作的渐入渐出的提示等等。
-
第四:可以自定义播放器样式,还可以自定义设置播放视频暂停时视图中央的播放按钮是否显示、自定义播放视频暂停时视图中央的播放按钮,自定义app顶部控制栏自定义、显示或进行隐藏、awsome-video-player播放器还能够自定义高度、自定义边距、自定义背景颜色、自定义返回按钮、拓展中部元素标题、拓展右侧控制元素、或者对播放器进行更多的自定义操作。
-
第五:手势支持,单击可以设置菜单栏显示或隐藏、双击进行暂停或播放的操作、滑动快进或快退、滑动左侧区域块可以进行调整视频亮度 、滑动右侧区域可以调整播放器的音量大小。横竖屏切换。常亮避免锁屏。
-
-
链接检查工具gf-markdown
gf-markdown 是一个链接检查工具。一个 cicd 工具,用于验证 Markdown 文件不包含断裂的链接,从而可以将其作为检查添加为构建的一部分。如果你重命名了一个文件,却不记得更新你的readme,那么markdown会停止构建,直到所有的链接都正确为止。
- 安装
go install github.com/goblinfactory/gf-markdown - 用法
gf-markdown testdata//*.md
使用glob模式从你的解决方案的 root 运行,例如 gf-markdown testdata//*.md。
- 安装
-
公共视频网址WatchVideoByLink
WatchVideoByLink 是一个网络应用程序,可让你观看、下载和组织公共视频 URL。WatchVideoByLink 支持 MP4/WebM/HLS/MPEG-DASH 视频类型,用于消费流和视频的自定义视频播放器,自动检测来自支持网站的视频文件,下载、修剪或录制流和视频,上传视频每个文件最大 1GB,通过文件夹创建和文件重命名保持下载的视频井井有条,按名称查找文件夹和视频的搜索功能(本地到所选文件夹),使用 untrunc 和一些 luck 恢复失败的视频下载。
-
元数据管理平台DataHub
DataHub 是用于处理元数据的管理平台,它可充当数据发现工具(即数据目录),来找出公司中存在哪些数据集,以及如何使用这些数据集进行测试。支持在数据库、数据湖、BI 平台、ML特征存储、工作流协调等领域搜索数据,通过追踪平台、数据集、管道、图表和仪表盘之间的关系,轻松了解数据的端到端历程,浏览脉络图时,可快速获得相关实体的背景信息,确保数据集准确性和相关性。
-
数据传输工具WDT
WDT 是一个嵌入式函数库,全称为;embeddedable library,也是一个命令行工具,WDT存在的意义就是为了能够尽可能快速地用多个 TCP 路径在 2个系统之间传送文件。
WDT 意思是可以理解为 Warp speed Data Transfer 或者是 Wormhole Data Transfer 。WDT 数据库的目标是:用最低的总传输时间——当不使用自我强加的资源,仅限制硬件,在光盘或网络带宽不延迟的情况下,并尽可能保持高效,较低的CPU或者内存空间,或者提高资源利用率。我们正在努力保持最低限度的依赖,以最大限度地提高便携性,以及保证最小二进制。附带的好处是尽量减少编译时间。
-
数据虚拟化即服务(DVtaaS)平台解决方案Moonbox
Moonbox是一个DVtaaS(Data Virtualization as a Service)平台解决方案。Moonbox基于数据虚拟化设计思想,致力于提供批量计算服务解决方案。Moonbox负责屏蔽底层数据源的物理和使用细节,为用户带来虚拟数据库般使用体验,用户只需通过统一SQL语言,即可透明实现跨异构数据系统混算和写出。此外Moonbox还提供数据服务、数据管理、数据工具、数据开发等基础支持,可支撑更加敏捷和灵活的数据应用架构和逻辑数仓实践。
-
高性能云原生API网关Hango
Hango 是一个基于 Envoy 构建的高性能、可扩展、功能丰富的云原生 API 网关。Hango 提供请求代理、动态路由、负载均衡、限流、熔断、健康检查、安全防护等功能,可用于微服务网关、七层负载均衡、Kubernetes Ingress、Serverless 网关等应用场景。Hango 基于云原生理念构建,数据面基于 Envoy 进行扩展,增强插件链,提供 Rider 模块用于自定义插件扩展;控制面组件包括 Slime,Istio,API Plane 以及 Portal 模块。
-
资源授权管理中心Grit
Grit权限管理系统,或者资源授权管理中心,或者权限控制中台资源管理:资源空间(相当于应用系统)资源组(相当于频道、模块)资源可见(相当于菜单)可不见(相当于权限码)
主体管理组:可见(相当于企业、机构、部门)不可见(相当于角色)主体(相当于登录用户)
项目地址:
https://www.oschina.net/p/grit -
轻量级全文搜索引擎Zinc
Zinc 是 Go 编写的轻量级全文搜索引擎,可作为 Elasticsearch 的替代方案。Zinc 运行所需的内存小于 100 MB,使用 bluge 作为基础索引库。与 Elasticsearch 相比,它非常简单且容易操作。对于只使用 API 获取数据,并使用 kibana 进行搜索的开发者,Zinc 可以直接替代 Elasticsearch(Zinc 不支持 Kibana,Zinc 提供了用户界面)。
提供全文索引功能、提供用于安装和运行的单一二进制文件,以及在多个平台的发行版下可用的二进制文件、提供使用 Vue 编写的用于查询数据的 Web UI、与 Elasticsearch API 兼容以获取数据(单记录和批量 API)、开箱即用的身份验证、Schema less - 无需预先定义 schema,同一索引中的不同文档可以有不同的字段。
项目地址:
https://www.oschina.net/p/zinc -
.NET 事件总线 Jaina 
.NET 事件总线,简化项目、类库、线程、服务等之间的通信,代码更少,质量更好。
Jaina的特性在于:能够更加简化组件之间通;支持事件监视器。支持动作执行器;支持自定义消息存储组件;支持自定义策略执行;软件内部支持单消费、多消费消息;支持消息幂等性处理。
高内聚,低耦合,使代码更简单;运行速度非常的快,每秒可处理 30000 + 消息;
并且内存很小,仅 10KB;无第三方依赖;支持多方部署,其中包括可在 Windows/Linux/MacOS 守护进程部署;支持分布式、集群。高质量代码和良好单元测试。
项目地址:
https://gitee.com/dotnetchina/Jaina -
SQLite 数据库工具包 GRDB
GRDB 是一个 SQLite 数据库工具包,专注于应用程序开发;提供了对 SQL 和高级 SQLite 功能的原始访问。它有强大的并发原语,所以多线程的应用程序可以有效地使用他们的数据库。它赋予你的应用程序模型以持久性和获取方法,这样你就不必在你不想要的时候处理 SQL 和原始数据库行。
与 SQLite.swift 或 FMDB 相比,GRDB 可以让你免去大量的 glue code。与 Core Data 或 Realm 相比,它可以简化你的多线程应用。
-
Kubernetes发行版k8e
k8e(发音为 'kuber easy')是轻量级、可扩展的企业级 Kubernetes 发行版,允许用户统一管理、保护和获得适用于企业环境的开箱即用 Kubernetes 集群。
k8e 以 k3s 作为上游项目,并移除了 Edge/IoT 相关代码,并以最佳实践扩展企业功能。
-
Create React App创建react
Create React App 是一个官方支持的创建 React 单页应用程序的方法。它提供了一个零配置的现代构建设置。而且大家都知道, Create React App是创建 React项目的最快方式(开箱即用)。还有什么比 npx create-react-app 更简单的呢?
咱们还有些人可能不知道的是如何使用CRA创建TypeScript项目,这个也很简单,只需要在末尾添加--typescript 即可;代码实例:npx create-react-app <name> — typescript。这样便可以省去手动将TypeScript添加到CRA创建项目中的麻烦。
-
基于ECDHE的TLS握手流程
客户端首先发送一个ClientHello消息作为TLS握手的开始。该消息中主要包含:TLS的版本号, 客户端随机数(Client Random), 密钥套件列表以及SessionID信息。
如果报文中的SessionID不为空,则说明客户端想复用此session的密码信息。服务端如果同意则在ServerHello中使用相同的SessionID, 如果不同意则重新生成一个新的SessionID。
TLS的密钥套件不同于IPSec密钥套件。IPSec密钥套件中加密算法、哈希算法、认证算法可以互相自由组合,协商的是每一种算法,最后组合成一个密码套件。而TLS则直接协商密码套件,每一种密码套件中密码算法组合是固定的。
TLS第二次握手报文包含的内容比较多。有时候一个报文包含所有载荷,有时各个载荷单独发送。如果看到单独发送的载荷,莫要奇怪。第二次握手主要包含了四个载荷:
Server Hello:Server Hello中的内容与Client Hello中基本一致。包括:TLS版本号, 服务器端的随机数(Server Random), 服务器端想要使用的SessionID,服务器端选择的加密套件。
如果此SessionID与ClientHello中的SessionID相同,则说明服务器同意复用此session; 如果不同则说明需要进行重新协商。我这次抓的报文两者sessionID并不相同,因此需要完整的TLS协商流程。Certificate,Server Key Exchange,Server Hello Done。
TLS第三次握手:客户端收到服务端的ServerHello阶段信息后,首先会对服务端的证书进行验证,验证服务端证书可能涉及认证链的问题。如果验证通过,说明当前服务器身份没有问题。如果验证不通过,则会提示相应的错误信息(好像是Bad certificate)。对服务端的身份认证一般情况下是可以设置的,客户端可以选择验证也可以不验证。服务端验证完毕后,客户端会生成一个随机数,作为ECDHE的临时私钥,并通过服务端在ServerKeyExchange中发送的椭圆曲线参数,计算出自己的ECDHE公钥信息。然后通过ClientKeyExchange发送给服务端。
第四次握手与第三次握手非常相似。服务器端收到ClientKeyExchange后,获取到里面的客户端DH算法公钥,计算出ECDHE协商出的共享密钥。 然后在利用手中的Client Random, Server Random, ECDHE协商出的共享密钥计算出会话密钥。最后根据会话密钥依次生成其他密钥。在此过程中服务端同样会发送ChangeCipherSpec,通知客户端,麻溜采用新协商的安全参数进行通讯,以后发给你的数据全部进行加密。此外服务端同样对所有的握手报文做一个摘要,并进行加密然后给客户端发送一个Encrypted Handshake Message消息,验证客户端是否可以正常解密。
-
容器本地工作流引擎Argo
Argo 是一个开源的容器本地工作流引擎,用于在Kubernetes上完成工作。 Argo实现为Kubernetes CRD(自定义资源定义)。
Argo专为容器而设计,没有传统VM和基于服务器的环境的开销和限制。Argo是云不可知的,可以在任何kubernetes集群上运行。Argo with Kubernetes让云量级的超级计算机触手可及。
定义工作流中每个步骤都是容器的工作流。将多步骤工作流建模为一系列任务,或使用图形(DAG)捕获任务之间的依赖关系。使用Kubernetes上的Argo工作流程,可以在很短的时间内轻松运行计算密集型作业,以进行机器学习或数据处理。在Kubernetes上本地运行CI / CD管道,无需配置复杂的软件开发产品。
-
灵活的分割编辑框SplitEditText
SplitEditText for Android 是一个灵活的分割编辑框。常常应用于 验证码输入 、密码输入 、等场景。
特性说明:支持设置框数量;支持设置框的风格样式;支持根据状态区分框颜色;基于EditText实现,更优雅。
之所以造这个轮子,是因为之前有这样的需求,然后也用过其他开发者类似的库,但是需求随着需求的变动,之前使用的库就不太满足现有的需求。所以最近抽空鲁了一个轮子。这里贴出之前使用过的轮子VerificationCodeView,他是通过继承 RelativeLayout 实现的,而 SplitEditText 通过继承 AppCompatEditText 实现,在使用和实现来说:更灵活,更优雅。
-
多主体共存型Hybrid框架Kerkee
Kerkee是一个多主体共存型Hybrid框架,具有跨平台、用户体验好、性能高、扩展性好、灵活性强、易维护、规范化、集成云服务、具有Debug环境、彻底解决跨域问题。
Hybrid App兼具了Native App的所有优势,也兼具了Web App使用HTML5跨平台开发低成本的优势。以及具有使用Native扩展Web接口以弥补web无法调用平台性API等优势。Hybrid App也是未来客户端技术的发展趋势。HTML5的出现,市面上已有很多应用(如淘宝、百度搜索、高德地图)使用了Hybrid App的开发模式,但遇到了一些瓶颈(如性能不如预期,无法操作浏览器内部数据流程,无法自定义请求的需求),用户体验没有预期的好。 基于此,一种新一开发模式诞生了!Kerkee框架是市面上独一无二的多主体共存的灵活混合型开发模型
Kerkee是一个多主体共存型Hybrid框架,具有跨平台、用户体验好、性能高、扩展性好、灵活性强、易维护、规范化、集成云服务、具有Debug环境、彻底解决跨域问题。
从开发者角度来说,它支持三种的团队开发模式:针对Web开发者:这种模式其中的一个场景是:只会Web开发,却不会Native开发的开发者提供了一系列的平台型接口。这种方式具有开发周期短,跨平台等优点。
针对Native开发者:这种开发模式的其中一个场景是:Native开发者想要截获Web页面的数据或者对数据进行自己的处理,或者Web页面中的行为进行修改。在这个时候,Kerkee框架将会为他们带来便利。
针对Web开发者和Native团队共同合作的开发团队:对于这种模式的团队,kerkee框架具体更开放更透明的协作,并且严格地隔离各自职责。各得Web团队和Native团队把主要精力定位到各自的模块上,有利于各自的模块优化到极致。
项目地址: http://www.kerkee.com/
-
Redis私有云平台CacheCloud
CacheCloud 提供一个 Redis 云管理平台:实现多种类型(Redis Standalone、Redis Sentinel、Redis Cluster)自动部署、解决Redis实例碎片化现象、提供完善统计、监控、运维功能、减少开发人员的运维成本和误操作,提高机器的利用率,提供灵活的伸缩性,提供方便的接入客户端。
CacheCloud提供的功能有:监控统计:提供了机器、应用、实例下各个维度数据的监控和统计界面。一键开启:Redis Standalone、Redis Sentinel、Redis Cluster三种类型的应用,无需手动配置初始化。Failover:支持哨兵,集群的高可用模式。伸缩:提供完善的垂直和水平在线伸缩功能。完善运维:提供自动运维和简化运维操作功能,避免纯手工运维出错。
方便的客户端:方便快捷的客户端接入。元数据管理:提供机器、应用、实例、用户信息管理。流程化:提供申请,运维,伸缩,修改等完善的处理流程。
Redis多机(Redis-Sentinel, Redis-Cluster)部署和配置相对比较复杂,较容易出错。作为一个Redis管理员(可以看做redis DBA)需要帮助开发者管理上百个Redis-Cluster集群,分布在数百台机器上,人工维护成本很高,需要自动化运维工具。
一些开源的Redis监控和管理工具,例如:RedisLive(Python)、Redis Commander(Node.js),Redmon(Ruby)无论从功能的全面性(例如配置管理,支持Redis-Cluster等等)、扩展性很难 满足需求。
运维成本:Redis的使用者需要维护各自的Redis,但是用户可能更加善于使用Redis实现各种功能,但是没有足够的精力和经验维护Redis。 Redis的开发人员如同使用Mysql一样,不需要运维Mysql服务器,同样使用Redis服务,不要自己运维Redis,Redis由一些在Redis运维方面更有经验的人来维护(保证高可用,高扩展性),使得开发者更加关注于Redis使用本身。