Gitee

在Ubuntu上安装Git

北战南征 提交于 2020-08-17 11:38:03
安装步骤 首先,确认系统是否已安装git,可以通过 git 指令进行查看,如果没有,则输入 sudo apt-get install git 命令进行安装。 安全配置 安装完成后进行git配置,输入指令 git config --global user.name "xxx" 和 git config --global user.email "你的邮箱地址" 。 配置完成后,输入 ssh-keygen -C '你的邮箱地址' -t rsa 创建验证用的公钥,在用户目录 ~/.ssh/ 下建立相应的密钥文件。 使用命令 cd ~/.ssh 进入 ~/.ssh 文件夹,输入 gedit id_rsa.pub 打开 id_rsa.pub 文件,复制其中所有内容。接着访问代码托管平台,如gitee,打开 https://gitee.com/profile 网页,点击SSH公钥,标题栏可以随意输入,公钥栏把刚才复制的内容粘贴进去就OK了。 可使用 ssh -T git@gitee.net 命令来测试连接是否畅通。 输入 git remote add origin git@gitee.com:xxx/xxx.git 为项目添加SSH的URL,之后便可安全提交代码。 参考资料 Ubuntu下git的安装与使用 来源: oschina 链接: https://my.oschina.net

链表基础总结

烈酒焚心 提交于 2020-08-17 09:21:24
1. 简单介绍 链表,即 线性表的链式存储结构 ,链表使用一组 任意 的存储单元来存储数据元素。如果某两个数据元素在逻辑位置上相邻,那么他们在物理位置上 不一定 相邻。如图: 但是这样看着太乱了,为了看着舒服,表示方便,我们把这张图改成: 2. 单向链表的结构和特点 在上图中,我们可以看出一个链表包含了 存储的数据元素 (方框中的值)以及这些数据元素之间 逻辑关系 (箭头,下一个数据元素的位置)。为了表示数据元素及逻辑关系,我们需要一个能存储它们的“载体”,这个载体就是 结点 (node)。它长这样: 一个结点有两个部分:data是存储数据的 数据域 ,next是存储它的下一个数据元素(在逻辑上)的位置信息的 指针域 。 有了这两个部分,一个具体的单向链表如下: 介绍到这里,可以很容易地总结出单向链表的特点: 链表由若干结点组成 每个结点由数据域和指针域组成,数据域存储数据,指针域存储下一个结点的位置 单向链表是单向的,数据存取必须从 第一个结点 开始 链表的最后一个结点没有 后继结点 ,所以其指针域置为 Null ,表示链表结束 2.1. 头结点与头指针 头结点 :即单链表的 第1个存数据的结点之前 的那个结点,该结点的数据域可以不存储任何信息,也可以存储如链表长度等附加信息,该结点的指针域指向第1个存数据的结点。 下面是一个带头结点的链表: head.next

Java并发编程(07):Fork/Join框架机制详解

做~自己de王妃 提交于 2020-08-17 08:08:47
本文源码: GitHub·点这里 || GitEE·点这里 一、Fork/Join框架 Java提供Fork/Join框架用于并行执行任务,核心的思想就是将一个大任务切分成多个小任务,然后汇总每个小任务的执行结果得到这个大任务的最终结果。 这种机制策略在分布式数据库中非常常见,数据分布在不同的数据库的副本中,在执行查询时,每个服务都要跑查询任务,最后在一个服务上做数据合并,或者提供一个中间引擎层,用来汇总数据: 核心流程:切分任务,模块任务异步执行,单任务结果合并;在编程里面,通用的代码不多,但是通用的思想却随处可见。 二、核心API和方法 1、编码案例 基于1+2..+100的计算案例演示Fork/Join框架基础用法。 import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; import java.util.concurrent.RecursiveTask; public class ForkJoin01 { public static void main (String[] args) { int[] numArr = new int[100]; for (int i = 0; i < 100; i++) { numArr[i] = i + 1; }

给日志打标签,让你的日志定位再无困难

泄露秘密 提交于 2020-08-17 07:49:32
背景 不知道各位在生产日志中定位问题时有没有碰到这样的场景:由于coding的时候日志输出的比较少,出现问题时,很难通过日志去定位到问题。又或者是,你明明coding的时候有输出日志。但是在庞大的日志文件中,由于业务线程并发比较多,你输出的日志又没有加关键信息。你也很难定位到你所需要的日志信息。 之前在公司里写业务代码时,为了使每个RPC调用能被日志记录下来,我们在公司基础组件里定义了一个切面,拦截所有的RPC调用,方法开始之前,在日志里输出调用的服务和方法以及参数,方法结束时输出方法的耗时。我相信很多人也是这么做的。 这样一来 ,所有的调用都能通过参数里的关键信息被搜索到。也能定位到调用是什么结束的以及耗时。 但是在有些业务方法中,也打上了很多的业务日志。由于核心业务的tps和qps很高,日志是互相穿插的。如果你的日志没有打上关键的业务信息(比如订单号,业务ID),那就很难在日志中被定位出来。 也许有些童鞋会说,用线程号呀。通过搜索业务ID定位到调用开始的地方,再搜索这条线程的线程号,就可以定位整个请求的所有日志。其实之前我也是这么干的,但是线程一般都是由线程池进行管理的,在tps很高的业务中,同一个线程号有可能短时间会出现多次,但是却是不同的请求。而且业务方法中可能也会有异步线程,导致了线程号会变。这样对于定位日志就又增加了难度。当然最后可以通过对时间戳的分析

Spring Cloud Alibaba系列(五)sentinel实现服务限流降级

孤街醉人 提交于 2020-08-17 07:35:46
一、sentinel是什么 sentinel的官方名称叫分布式系统的流量防卫兵。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。在Spring Cloud项目中最开始我们使用的是Hystrix,目前已停止更新了。现在Spring Cloud官方推荐的是rensilience4j。当然还有我们今天学习的sentinel。 Sentinel 具有以下特征: 丰富的应用场景 :Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时监控 :Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运 行情况。 广泛的开源生态 :Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。 完善的 SPI 扩展点 :Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。 二、sentinel实现限流 2.1

抖音快手小红书爬虫必备,爬取无水印短视频

三世轮回 提交于 2020-08-17 07:26:35
www.videoparse.cn支持解析 抖音、快手、剪映、小红书、Tiktok(抖音国际版)、微博、QQ看点视频、西瓜视频、今日头条、趣头条、火锅视频、美拍、微视、火山小视频、皮皮虾、好看视频、绿洲、VUE、秒拍、梨视频、刷宝短视频、全民小视频、陌陌视频、UC浏览器、Bilibili、WIDE、开眼、全民K歌、最右、小咖秀、皮皮搞笑、小影、新片场、场库、阳光宽频网等超过30个平台的短视频去水印解析。 Videoparse接口采用RESTful API方式提供,不限制开发语言。代码事例可参考https://gitee.com/videoparse/parse 来源: oschina 链接: https://my.oschina.net/u/4327077/blog/4404391

E聊SDK-简介(8): 从源码编译微信小程序项目

丶灬走出姿态 提交于 2020-08-17 07:12:09
1.说明: 教程属于官方E聊SDK-简介(8) 进入官网 进入管理台 SDK版本:v1.02 技术交流QQ群: 471688937 2.小程序客户端简介: E聊SDK提供了一个基本的微信小程序客户端Demo源码,通过编译该客户端,可以接入E聊服务器,实现单聊/群聊等功能。移动客户端使用JavaScript 技术开发,适配了微信小程序平台。 3.操作步骤: 3.1 下载echatim-client-ts-core v1.02 源码, 编译出核心SDK E聊的微信小程序客户端依赖客户端核心SDK源码, 放置在 SDK客户端核心源码 内,故要先下载Web源码编译出适合E聊微信小程序的echatim-sdk.js git clone https://gitee.com/dzqmeiji/echatim-client-ts-core.git cd echatim-client-ts-core/ git checkout -b v1.02 v1.02 yarn wxlib # 编译出核心SDK到 dist/echatim-sdk.js 3.2 下载小程序 Release v1.02 源码, 安装相关依赖 git clone https://gitee.com/dzqmeiji/echatim-client-wx.git cd echatim-client-wx/ git checkout -b

给日志打标签,让你的日志定位再无困难

旧街凉风 提交于 2020-08-17 05:25:38
背景 不知道各位在生产日志中定位问题时有没有碰到这样的场景:由于coding的时候日志输出的比较少,出现问题时,很难通过日志去定位到问题。又或者是,你明明coding的时候有输出日志。但是在庞大的日志文件中,由于业务线程并发比较多,你输出的日志又没有加关键信息。你也很难定位到你所需要的日志信息。 之前在公司里写业务代码时,为了使每个RPC调用能被日志记录下来,我们在公司基础组件里定义了一个切面,拦截所有的RPC调用,方法开始之前,在日志里输出调用的服务和方法以及参数,方法结束时输出方法的耗时。我相信很多人也是这么做的。 这样一来 ,所有的调用都能通过参数里的关键信息被搜索到。也能定位到调用是什么结束的以及耗时。 但是在有些业务方法中,也打上了很多的业务日志。由于核心业务的tps和qps很高,日志是互相穿插的。如果你的日志没有打上关键的业务信息(比如订单号,业务ID),那就很难在日志中被定位出来。 也许有些童鞋会说,用线程号呀。通过搜索业务ID定位到调用开始的地方,再搜索这条线程的线程号,就可以定位整个请求的所有日志。其实之前我也是这么干的,但是线程一般都是由线程池进行管理的,在tps很高的业务中,同一个线程号有可能短时间会出现多次,但是却是不同的请求。而且业务方法中可能也会有异步线程,导致了线程号会变。这样对于定位日志就又增加了难度。当然最后可以通过对时间戳的分析

.NET 5 尝鲜

随声附和 提交于 2020-08-17 04:35:51
.NET 5 尝鲜 - 开源项目TerminalMACS WPF管理端支持.NET 5 一个使用 Prism 作为模块化框架、基于多个开源控件库作为UI控件选择、集成开源 UI 界面设计的 .NET 5 WPF 客户端项目。 项目名称:TerminalMACS WPF管理端 项目开源地址: Github: https://github.com/dotnet9/TerminalMACS.ManagerForWPF Gitee: https://gitee.com/dotnet9/TerminalMACS.ManagerForWPF 作者:Dotnet9 1. 特性 使用 .NET 5 开发,体验最新 .NET 平台(和 .NET Core 3.1 无缝兼容) .NET 5 是 .NET Framework 和 .NET Core 的未来,最终将成为一个统一平台,.NET5将包含ASP.NET核心、实体框架核心、WinForms、WPF、Xamarin 和 ML.NET。 基于 Prism 8 搭建模块化框架,方便程序扩展 Prism为程序设计提供指导,旨在帮助用户更加容易的设计和构建丰富、灵活、易于维护WPF桌面应用程序。Prism使用设计模式(如MVVM,复合视图,事件聚合器),帮助你创建一个松耦合的程序。遵循这些设计模式原则,将目标程序解耦成独立的模块