Gitee

bazel简介(二)——从makefile向bazel转变(使用genrule)

南笙酒味 提交于 2021-02-11 04:48:49
0x01 背景 上篇中已经介绍了bazel的基本工作原理和相关的概念。这篇将继续介绍下,现有的makefile构建工程如何切换到bazel构建系统。 bazel提供了丰富的扩展方式,当然也支持从目前的makefile过渡到bazel构建。 再次说明下其特性: 多语言支持,并且支持扩展到任何语言的构建。 扩展DSL是starlyke语言,为Python的一个子集,容易上手。这一点是cmake和其他构建系统不具备的。 支持缓存。 支持分布式构建。 支持最小化构建。 在一个大型系统中,一个人可能只需要负责其中的一个小组件,这个组件可能又依赖其他组件。当这个组件需要更新测试时,只希望去构建这个组件依赖的组件和这个组件本身,其他不相关的可以不构建,这样可以使用构建过程更快捷。bazel就支持这种方式。 0x02 makefile的问题 上文中说过makefile在处理小规模软件时还不错,当规模增大时,makefile有以下问题。 各个组件之间的依赖难以管理。 makefile只支持将所有的源码放在一个目录下,然后由顶层的。 这个依赖关系只能是有经验的人知道,新人想最小化编译时,只能试错,发现有依赖未构建时,再去手动构建。 增量式构建难以控制。 这一点和第1点是相关的,因为依赖不能自动化构建,所以增量式构建也不具备。 构建速度不足,难以做缓存。 makefile本身不支持缓存

防止再被卡脖子,中国构建代码托管平台Gitee取代GitHub

柔情痞子 提交于 2021-02-10 22:58:28
7 月 14 日,工业和信息化部技术发展司公布了 “2020 年开源托管平台项目”的招标结果,工业和信息化部选择 Gitee 来构建 “ 面向中国的独立,开放源代码托管平台 ”。 该项目将由开源中国(Open Source China)牵头开发,该联盟总部在深圳。 托管服务得到政府支持,同时得到多个大学的支持和私营企业的参与,包括华为在内的 10 个组织的组织。 作为持续投身国内开源建设的码云 Gitee ,成立七年来,为超过 500 万名开发者和 10 万家企业提供了服务。平台上托管的开源项目超过了 1000 万,其中汇聚了众多国内知名的优秀开源项目,是国内首屈一指的代码托管平台,同时也是世界范围内规模第二大的代码托管平台。 但是其相对于全球著名开源社区 GitHub 还有很大的差距 ,GitHub 去年 11 月报告称 GitHub 在全球拥有 1 亿个存储库和大约 3100 万开发人员。 Gitee表示,发展开源是中国提高信息化产业水平的唯一途径。他们指出,码云Gitee是7年努力的结果,他们不认为自己是Github的替代品,而是认为“世界应该是百花齐放,灿烂无比”、“这么多年的不懈努力得到了认可,我们整个公司都为之兴奋,同时也深感肩上的使命重大,我们也必将更加勇敢地前行。” 据了解,去年 7 月,微软拥有的 GitHub 切断了美国认可的国家(包括伊朗,叙利亚和克里米亚

PicGo+Gitee搭建个人图床

徘徊边缘 提交于 2021-02-10 08:55:08
第一步,我们需要有gitee账号,选择gitee的原因是因为它是国内平台,访问速度快捷! 码云gitee . 第二步 创建仓库,这个仓库要求要公开,要不图片放进来后无法访问 第三步 在个人主页找到个人设置然后点击 第四步 进入以后选择“私人令牌”,然后选择“生成新令牌”   第五步 创建私人令牌 PicGo软件:关于这个软件,在github上下载实在是太慢了,下了好几次都没有下载下来,在这里百度网盘分享一下! 第七步 配置PicGo 常见问题 1、没有图床设置中没有gitee 2. 上传失败! 这个原因一般是库名里有空格或者特殊的符号,一定记住库名不允许有空格,如若非要空格才能生效的话,可以通过“-”来代替空格。 来源: oschina 链接: https://my.oschina.net/u/4292771/blog/3305756

使用Github 当作自己个人博客的图床

谁说胖子不能爱 提交于 2021-02-10 08:54:56
使用Github 当作自己个人博客的图床 前提 本文前提: 我个人博客的草稿是存放在 github上的一个仓库 diarynote 截图存放的图片或者需要放在文章中图片,会固定存放在对应的文件夹中,我个人是使用日期文件夹,如: uploads/190828/test.jpg 本文中提到的 这个仓库 ,都是指我自己的 diarynote 仓库 使用GitHub作为图床 从上面的描述可以知道,我自己的一个项目仓库的一个文件夹在 GitHub的 的路径固定是 https://github.com/wakasann/diarynote/tree/master/draft/ 当我使用 Typora 工具在本地编写当前仓库的Markdown 图片路径一般都会写成 ![](uploads/190828/test.jpg) 编辑的时候,可以边预览边编辑,因为编辑时,查看的是本地的图片,访问速度快,也好替换。 一般编辑完之后,我自己会这个仓库的改动推送到 GitHub上。 当自己准备发布当前编辑的Markdown 文件中,并且该文件中图片时,可以通过喜欢的文本编辑工具,如:sublime text 查找 uploads 替换为 https://raw.githubusercontent.com/wakasann/diarynote/master/draft/uploads 废话1

围观!一套开源的,基于SpringBoot的车牌识别系统(附项目地址)

好久不见. 提交于 2021-02-09 06:02:39
gitee开源地址 https://gitee.com/admin_yu/yx-image-recognition 介绍 spring boot + maven 实现的车牌识别及训练系统 基于java语言的深度学习项目,在整个开源社区来说都相对较少;而基于java语言实现车牌识别EasyPR-Java项目,最后的更新已经是五年以前。 本人参考了EasyPR原版C++项目、以及fan-wenjie的EasyPR-Java项目;同时查阅了部分opencv官方4.0.1版本C++的源码,结合个人对java语言理解,整理出当前项目 这是一个入门级教程项目,本人目前也正在学习图片识别相关技术;大牛请绕路 当前项目在原有EasyPR项目基础上,增加了绿牌识别功能,只不过当前的训练库文件包含绿牌的样本太少,还需要重新增加绿牌样本的训练,后续会逐步上传 当前已经添加基于svm算法的车牌检测训练、以及基于ann算法的车牌号码识别训练功能 后续会逐步加入证件识别、人脸识别等功能 包含功能 黄 蓝 绿 黄蓝绿车牌检测及车牌号码识别 单张图片、多张图片并发、单图片多车牌检测及识别 图片车牌检测训练 图片文字识别训练 包含两种依赖包的实现方式:基于org.bytedeco.javacpp包的实现方式;基于org.opencv官方包的实现方式 org.opencv官方包,提供了java语言api

鸿蒙内核源码分析(事件控制篇) | 任务间一对多和多对多的同步方案 | 中文注解HarmonyOS源码 | v30.01

人盡茶涼 提交于 2021-02-08 17:42:28
百万汉字注解 >> 精读内核源码,中文注解分析, 深挖地基工程,大脑永久记忆,四大码仓每日同步更新 < Gitee | Github | CSDN | Coding > 百篇博客分析 >> 故事说内核,问答式导读,生活式比喻,表格化说明,图形化展示,多站点每日同步更新 < OSCHINA | CSDN | WeHarmony > 本篇说清楚事件(Event) 读本篇之前建议先读 鸿蒙内核源码分析(总目录) 其他篇. 官方概述 先看官方对事件的描述. 事件(Event)是一种任务间通信的机制,可用于任务间的同步。 多任务环境下,任务之间往往需要同步操作,一个等待即是一个同步。事件可以提供一对多、多对多的同步操作。 一对多同步模型:一个任务等待多个事件的触发。可以是任意一个事件发生时唤醒任务处理事件,也可以是几个事件都发生后才唤醒任务处理事件。 多对多同步模型:多个任务等待多个事件的触发。 鸿蒙提供的事件具有如下特点: 任务通过创建事件控制块来触发事件或等待事件。 事件间相互独立,内部实现为一个32位无符号整型,每一位标识一种事件类型。第25位不可用,因此最多可支持31种事件类型。 事件仅用于任务间的同步,不提供数据传输功能。 多次向事件控制块写入同一事件类型,在被清零前等效于只写入一次。 多个任务可以对同一事件进行读写操作。 支持事件读写超时机制。 再看事件图 注意图中提到了三个概念

【每日算法/刷穿 LeetCode】1423. 可获得的最大点数(中等)

半世苍凉 提交于 2021-02-06 14:36:55
点击 这里 可以查看更多算法面试相关内容~ 题目描述 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 nums 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 nums 和整数 k,请你返回可以获得的最大点数。 示例 1: 输入:nums = [1,2,3,4,5,6,1], k = 3 输出:12 解释:第一次行动,不管拿哪张牌,你的点数总是 1 。 但是,先拿最右边的卡牌将会最大化你的可获得点数。 最优策略是拿右边的三张牌,最终点数为 1 + 6 + 5 = 12 。 示例 2: 输入:nums = [2,2,2], k = 2 输出:4 解释:无论你拿起哪两张卡牌,可获得的点数总是 4 。 示例 3: 输入:nums = [9,7,7,9,7,7,9], k = 7 输出:55 解释:你必须拿起所有卡牌,可以获得的点数为所有卡牌的点数之和。 示例 4: 输入:nums = [1,1000,1], k = 1 输出:1 解释:你无法拿到中间那张卡牌,所以可以获得的最大点数为 1 。 示例 5: 输入:nums = [1,79,80,1,1,1,200,1], k = 3 输出:202 提示: 1 <= nums.length <= 10^5 1 <= nums

HarmonyOS单模块编译与源码导读

冷暖自知 提交于 2021-02-06 08:24:30
我这里以3518的开发板为例进行讲解,3516的也是通用的。 下面是之前全量编译的脚本 python build.py ipcamera_hi3518ev300 -b debug HarmonyOS最初只能支持全量编译的方式,这种方式最大的弊端就是我们在系统源码上开发一个用户态程序,每次都需要全量编译好系统之后进行镜像的烧录,每次编译加烧录少说需要15分钟时间,对于我们开发测试及其消耗时间,试想下每次就是想加入一行log调试下这么费劲会多么麻烦。 还好,后面随着HarmonyOS的源码更新,开始支持用户态程序的单模块编译了,编译的脚本如下: python build.py ipcamera_hi3518ev300 -T //applications/sample/camera/app:camera_app 这里以单独编译HarmonyOS自带的HelloWorld项目为例,这个-T参数非常重要,它就是代表单模块编译的,//applications/sample/camera/app只的要编译的模块的绝对路径,camera_app为要编译的模块名称。 这里先结合HarmonyOS源码讲下-T参数的由来,如果各位是通过下载压缩包的方式下载的官方的code1.0的源码压缩包解压的话,肯定是不支持该参数的,也就是说不支持单模块编译。下面来看下该参数是在什么时候更新到源码库的吧

Flink 系例 之 Connectors 连接 Redis

不羁岁月 提交于 2021-02-06 00:53:17
通过使用Flink DataStream Connectors 数据流连接器连接到Redis缓存数据库,并提供数据流输入与输出操作; 示例环境 java .version : 1 .8 .x flink .version : 1 .11 .1 redis :3.2 示例数据源 (项目码云下载) Flink 系例 之 搭建开发环境与数据 示例模块 (pom.xml) Flink 系例 之 DataStream Connectors 与 示例模块 数据流输入 DataStreamSource.java package com.flink.examples.redis; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.streaming.api.functions.source.RichSourceFunction; import redis.clients.jedis.Jedis; import redis

百度分布式配置中心BRCC正式开源

空扰寡人 提交于 2021-02-06 00:48:14
“ 2021年02月,百度分布式配置中心BRCC,正式开源!” 01. 什么是BRCC BRCC(better remote config center)是一个分布式配置中心,用于统一管理应用服务的配置信息,避免各类资源散落在各个项目中,简化资源配置的维护成本。作为一种轻量级的解决方案,部署简单,同时支持多环境、多版本、多角色的资源管理,可以在不改变应用源码的情况下无缝切换和实时生效配置信息。 02. 技术架构 BRCC由三部分组成:管理端、服务端、SDK,其中: 1)管理端 : 前后端分离,后端基于Spring Boot 2.0开发,支持6个维度(产品、工程、环境、版本、分组、配置项)管理key-value格式的配置;支持细粒度的权限控制层级、操作轨迹等能力。安全易用,支持插件化的扩展轻松集成任何公司/组织的账号管理系统。 2)服务端: 基于spring boot 2.0开发,打包后可以直接运行,支持配置的分发、更新推送。 3)SDK: 支持java、go等多种开发语言和开发框架集成,支持spring注解、配置变更监听和刷新,零业务侵入性,低门槛集成(提供spring boot starter方式接入)。 03. 特性 1)统一管理不同环境、不同产品线的配置 BRCC提供统一界面集中式管理不同环境、不同产品线、不同工程的配置 通过版本的复制,可以高效的完成新业务的配置 2