生产工具与工作流
文章平均质量分 67
生产工具 editor IDE vim tools
AI高工
程序员,AI工程师,分享人工智能、机器学习、大模型、软件工程、游戏开发、网络、云计算
展开
-
vim常用命令
常用:vsplit 窗口垂直分割:browse打开资源管理器选择文件打开gd 转到变量的定义di{: 删除 内部 { 中的内容 delete inner {:d2w:删除 内部 { 中的内容 delete 2 word.ya(: 复制全部(括号中的内容yank all (:>> 按两下 > 缩进。2>> 两...原创 2019-01-19 22:07:57 · 925 阅读 · 0 评论 -
vscode 访问容器的方式
M1. 客户机A通过 vscode 连接服务器B,再连接容器C配置vscode的ssh配置文件:~.ssh\config(当需要多个不同的连接时,使用 IdentityFile 指定公钥位置)原创 2024-06-10 21:10:50 · 808 阅读 · 0 评论 -
Ubuntu Server 初始化配置
要登录服务器,这个需要知道服务器的公共 IP 地址、密码,或者(如果安装了用于身份验证的 SSH 密钥)root用户帐户的私钥。如果尚未连接到服务器,请使用以下命令以root用户身份登录:如果出现有关主机真实性的警告,点接受。如果使用密码身份验证,要提供root密码进行登录。如果使用受密码保护的 SSH 密钥,则每次会话首次使用该密钥时,系统可能会提示输入密码。如果第一次使用密码登录服务器,系统可能还会提示更改root密码。原创 2024-05-11 13:27:03 · 1092 阅读 · 0 评论 -
密钥变更检查导致VScode远程SSH时无法连接服务器
4. **主机密钥变更警告**:VSCode提示远程主机的RSA密钥发生了变化,这通常意味着本地的`known_hosts`文件中的密钥与远程主机当前的密钥不匹配。1. **检查SSH密钥**:如果你预期服务器的SSH密钥会发生变化,或者你更换了服务器,你需要更新本地的`known_hosts`文件。4. **检查网络连接**:确保你的网络连接可以到达远程服务器的IP地址,并且没有防火墙或路由器设置阻止了SSH连接。5. **连接失败**:由于主机密钥验证失败,SSH连接尝试失败。原创 2024-05-11 11:56:49 · 701 阅读 · 1 评论 -
安装gitea的简单方法
几种安装Gitea的方法:一种极快的无脑安装gitea的方法就是花钱,在宝塔的服务器管理软件商店中,可以找到现成的gitea服务,只需要五毛钱就可以快速部署。另外一种就是使用Docker Componse,网上有大量的相关教程都是使用Docker Compose搭建的Gitea。具体可以自己去查。最后一种就是使用Docker安装gitea,使gitea以容器的方式运行在Docker中。本文安装方式为第3种。原创 2024-05-08 17:38:56 · 503 阅读 · 0 评论 -
共享docker容器还是使用多个相同容器
综上,可以决定是共享一个数据库容器还是使用多个数据库容器。通常,对于小规模或初始阶段的项目,共享一个数据库容器可以简化部署和管理。随着项目的发展和需求的明确,可能需要逐步迁移到更复杂的架构,如使用多个数据库容器。原创 2024-05-08 17:19:03 · 287 阅读 · 0 评论 -
修改Anaconda包下载的国内镜像源
anaconda 安装完成后,国内的网络连接Anaconda的官方源,速度基本为0,大部分时间是连接不上的。国内清华大学有对应的镜像源,可以更改为对应的源,可以通过更换原解决。这是在anaconda安装 tensorflow1.4.1 的时候遇到的问题,把这个 anaconda 仓添加进去问题就解决了。若安装了 sublime 的也可在终端使用 :subl ~/.condarc。将以上配置文件写在 ~/.condarc 中。使用下面命令查看 .condarc 中的源。# 设置搜索时显示通道地址。原创 2024-05-06 12:19:22 · 2021 阅读 · 0 评论 -
Anaconda删除虚拟环境目录pkgs和envs|conda瘦身
在anaconda中,最安全的安装和升级命令是conda install XXX,而python中是pip,但在anaconda下依然可以使用pip。在conda的设计中,目录'pkgs'是下载、存放缓存,以及提取下载的conda包的地方。有的时候可以预先下载好一些包,放到pkgs里面,再运行conda install 安装包的指令,安装时间就会少了。它有一个非常关键的作用:我们在构建一些envs的时候,对一些包的依赖会通过硬盘链接链接到pkgs目录,这样虚拟环境。当然是可以清理pkgs的。原创 2024-05-06 11:42:27 · 1887 阅读 · 1 评论 -
Anaconda修改虚拟环境名称_修改python虚拟环境路径
从截图中显示我们成功了,然后有的同学可能担心/userdata/archiconda3/envs下面有没有py38这个文件夹呢,为了打消你的疑虑,也去看看,进入/userdata/archiconda3/envs。从我上面的虚拟环境目录了解到,创建的虚拟环境默认存储在/userdata/archiconda3/envs,其中/userdata/archiconda3这个目录是我的conda安装路径。conda安装好以后,默认存储虚拟环境相关信息的位置是conda的安装路径目录下面的/envs下面。原创 2024-05-06 11:03:56 · 1260 阅读 · 0 评论 -
Anaconda 常用命令
conda install -n py27 selenium 指定环境安装package,不加-n则安装在当前活跃环境。conda update -n py27 selenium 指定环境更新package,不加-n则更新在当前活跃环境。conda env list 或 conda info -e 或 conda info --env。conda remove -n py27 --all 删除已安装的Python环境。原创 2024-05-06 10:55:40 · 528 阅读 · 0 评论 -
AirtestReportResult
他这里有个状态,说明airtest是存储这个状态了,不知道是否有api能拿到这个结果原创 2021-03-02 16:36:07 · 237 阅读 · 0 评论 -
HashiCorp 产品禁止中国公司使用,引发对开源软件受限制的担忧
近日国外知名 DevOps 服务商 HashiCorp 的官网相关条款页面被发现禁止中国公司使用其 Vault 企业版产品的声明。事件一度引发国内开源界广泛关注。声明中表示:PLEASE NOTE THAT CHINESE EXPORT CONTROL REGULATIONS PROHIBIT HASHICORP FROM SELLING OR OTHERWISE MAKING THE ENTERPRISE VERSION OF VAULT AVAILABLE IN THE PEOPLE...原创 2020-06-11 12:10:10 · 964 阅读 · 0 评论 -
炒了8年的概念,到底该如何理解DevOps这个词
如何实施DevOps成为众多企业迫切面临的问题,本文作者刘相,有10多年的从业经验,他结合自身企业实施DevOps的经验,梳理出DevOps在企业的组织、技术、流程等方面的最佳实践与价值,以及如何搭建DevOps平台来支撑DevOps的落地工作。本文内容包括:1.什么是DevOps及误区2.DevOps企业实践3.DevOps架构支撑4.实施DevOps价...转载 2019-07-10 18:12:28 · 194 阅读 · 0 评论 -
性能测试 -- 内存过高, 如何定位问题?
1. 查资源内存 查纹理格式 → Android最好是ETC2格式, IOS最好是PVRTC, Windows PC最好是DXT 查纹理尺寸 → 1024x1024尺寸的纹理, 占用内存是512x512的4倍 查Mipmap → 开启Mipmap会将纹理内存提升1.33倍, 3D场景模型和角色可以开启, 但是UI纹理不建议开启 查【Read/Write Enabled】→ 开启该选项会使内存增大1倍, 建议关闭 查网格 查模型 → 删除临近顶...原创 2020-07-13 02:37:57 · 1074 阅读 · 0 评论 -
UML类图总结
UML类图的作用是描述程序中类的信息及各个类之间的关系。所有的面向对象(Object Oriented)语言都离不开类的概念,理解了程序中类的设计也就理解了程序的一半。但类的具体描述方式在各个类中都不一样,UML类图的提出是为了能够脱离语言的限制,抽象地描述各个类的信息及各个类之间的关系。这是UML类图的作用。一、类的基本表示方式在UML类图中,每一个矩形代表一个类。我们举一个简单的例子:这是一个代表车辆的类。一般的类图分为三个部分。部分类图有五个部分。第一部分为类名如果类名原创 2020-08-21 11:42:11 · 1045 阅读 · 0 评论 -
docker以外的构建、运行、管理和分发容器候选项
在容器的远古时期(大约4年前),Docker是容器游戏中仅有的参与者。但是现在情况不一样了,Docker不再是唯一的一个了,只是另一个容器引擎而已。Docker允许我们构建,运行,拉取,上传,查看容器镜像,但是对每一项任务都有其他可以比Docker做得更好的工具。因此,让我们看看现在的情况,卸载(只是可能)并且忘记Docker的全部信息。01—不过,为什么不使用Docker?如果你是一名Docker的老鸟,我想即使考虑使用不同的工具,也需要一些说服自己的理由。那么,理由就在这里:首.原创 2021-01-18 08:03:28 · 317 阅读 · 0 评论 -
设计模式:UML各种图总结
UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。一、基本概念 如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。静态图分为:用例图,类图,对象图,包图,构件图,部署图。动态图分为:状态图,活动图,协作图,序列图。 1、用例图(UseCase Diagram.原创 2020-08-21 14:31:40 · 838 阅读 · 0 评论 -
Code Review
互联网公司发版节奏快,对于兜底(背锅)的测试来说,压力真的很大,不但是考核的问题,还要面对各方指责。在这浮躁的时代,评价一个优秀的测试人员,标准不是技术有多牛,开发的工具有多炫,职位有多高,收入令人羡慕。而是,如何务实、用心的为提升效率和质量,如何交付高质量的版本而努力工作。还是刚入行那句话,不忘初心,方得始终。提升质量,先分析缺陷是如何从出生到线上的1.开发人员没有进行有效的单元测试,...原创 2019-08-20 15:54:22 · 199 阅读 · 0 评论 -
从MVC到云原生:CBU研发体系演进之路
远岩阿里巴巴中间件刘明昊,花名远岩,高级开发工程师。2019年毕业加入阿里巴巴,主要负责 CBU APP 端前台场景工程体系及服务端 Serverless 化建设。前言CBU 作为阿里集团内最早成立的几个 BU 之一,有着多年丰富的业务沉淀,而 CBU 的技术也伴随着业务一起不断地演进和成长着。从 PC 时代的 WebX 到如今的 Serverless,CBU 的研发体系经历了多次变革,在不同的阶段中有着不同的特点。笔者所在的团队近年来一直在负责前台场景研...原创 2021-02-27 10:15:26 · 429 阅读 · 0 评论 -
单元测试用例编写总结 (白盒测试)
1 背景测试是开发的一个非常重要的方面,可以在很大程度上决定一个应用程序的命运。良好的测试可以在早期捕获导致应用程序崩溃的问题,但较差的测试往往总是导致故障和停机。单元测试用于测试各个代码组件,并确保代码按照预期的方式工作。单元测试由开发人员编写和执行。大多数情况下,使用JUnit或TestNG之类的测试框架。测试用例通常是在方法级别写入并通过自动化执行。单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复、改进或重构之后的正确性。2 单元测试用例相关概念2.1正面测试(...原创 2020-07-13 01:30:56 · 3539 阅读 · 0 评论 -
TDD在Unity3D游戏项目开发中的实践
关于TDD测试驱动开发的文章已经有很多了,但是在游戏开发尤其是使用Unity3D开发游戏时,却听不 到特别多关于TDD的声音。那么本文就来简单聊一聊TDD如何在U3D项目中使用以及如何使用U3D 5.3 .X之后版本已经集成的单元测试模块Editor Test Runner。 0x01 你好,TDD TDD,测试驱动开发改变了我们常见的工作流程,不要求先写逻辑代码,反而要求先完成测试代码。 待测试代码完成之后,我们再将目光转移到逻辑代码,根据测试的要求,完成逻辑代码,使...原创 2020-07-13 02:20:35 · 434 阅读 · 0 评论 -
nohup利用systemd工具实现Linux的.sh和服务开机自启
nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。nohup 是 no hang up 的缩写,就是不挂断的意思。nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。原创 2024-04-21 23:47:18 · 1391 阅读 · 0 评论 -
Linux执行.sh命令出现-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory
出现问题:-bash: ./start.sh: /bin/bash^M: bad interpreter: No such file or directory。这是win的编码引起的,win环境下编辑是doc格式,linux下需要unix格式的文件。解决方法:修改为unix格式。原创 2024-04-21 22:49:23 · 352 阅读 · 0 评论 -
部署轻量级Gitea替代GitLab进行版本控制(二)
HTTP 监听端口、UI 上显示的克隆 URL。连接数据库、禁用注册等信息,至于还有其它参数,可以自行查询。添加了一个自定义网络。两个容器都加入这个自定义网络中,使用自定义网络进行通讯。服务中通过环境变量设置了默认的数据库、用户名称和用户密码信息。配置文件中部署了两个容器: 一个是 Postgres。属性,这个属性是控制部署顺序的。服务中通过环境变量设置了 运行容器的。使用这个配置安装成功后,会成功部署两个。访问,不过现在基本上都使用。SSH` 可以使用参数禁用。,成功后可以进行访问。原创 2024-04-20 01:22:49 · 665 阅读 · 0 评论 -
部署轻量级Gitea替代GitLab进行版本控制(一)
另一点就是功能,对于一般标准团队来说,gitlab的功能太过于丰富,这是往好的地方说,往坏的地方说就是它包含了太多不需要的东西,而这些东西还占用磁盘和运行时资源。例如有一个下面的场景:你将代码提交到自己的服务器上后,如果希望能够自动同步到其他的平台上,比如 GitHub 或者从其他平台上镜像回来,Gitlab 的社区版本是做不到的。Gitlab 是使用 ruby 编写的,好几年之前刚出来的时候,一台1G内存的虚拟主机连安装运行都做不到,着实震惊。在这个领域,名气最响的应该是 Gitlab。原创 2024-04-20 01:02:19 · 796 阅读 · 2 评论 -
Android studio调试
无法打开本地终端。原创 2024-01-08 17:38:46 · 671 阅读 · 0 评论 -
gradle --腾讯国内镜像源
使用https://mirrors.cloud.tencent.com/gradle/gradle-4.6-all.zip来代替原来的。https\://services.gradle.org/distributions/gradle-5.1-all.zip连接。具体gradle的版本根据您的需要,自行更改即可。不过首先要确保腾讯镜像里面有这个版本的文件。1.进入到自己工程目录下的wrapper文件夹。3.再次使用的时候,就可以看到速度飞起。-wrapper文件。原创 2024-01-04 14:43:38 · 8164 阅读 · 0 评论 -
问题解决和批判性思维是软件工程的重要核心
编写代码仅仅是整个过程中的一小部分,这个过程实际上充满了精确分析、抽象推理和创新解决问题的元素,而键盘上的敲击只是这个过程的可见输出。在这个阶段,工程师会应用几种问题解决策略,如分解(把问题分解成更小、更易处理的部分),模式识别(寻找当前问题与之前问题的相似之处)以及抽象(去掉不必要的细节,专注于核心问题)。此外,工程师需要预见并处理可能出现的错误和异常,批判性思维在识别潜在的问题和边缘情况时起着重要作用。这包括理解问题的细节,预测用户的需求,以及描绘出问题的界限,包括限制和要求。原创 2023-08-04 12:10:33 · 2086 阅读 · 0 评论 -
快速构建一个 GitLab + Jenkins + Harbor 的云原生 DevOps 环境
今天我们要搭建一条怎样的工具链呢?且看效果图:首先我们需要完成 GitLab、Jenkins 和 Harbor 三个工具的部署;接着我们需要在 GitLab 上创建一个代码库,并且在 Jenkins 上创建相应的流水线,这个流程最好也自动化(确实可以自动化);然后适当地配置这三个工具,实现如下 CI 流程:当用户推送代码到 GitLab,也就是 GitLab 上相应代码库产生 push 或者 merge 事件的时候,这个事件能够自动触发 Jenkins 上的流水线执行;原创 2023-07-12 09:34:32 · 1364 阅读 · 1 评论 -
自建Git服务器
(似乎能改 /var/opt/gitlab 里的东西来修改布局,但我改了这个文件夹里的一些配置后再重启后,我修改的地方都被还原了,有空再做进一步的探索。对于要稳定运行的 Git 托管服务器来说,Gitea 每次修改配置后想要生效都要离线一段时间,好在 Gitea 启动很快,我这里从启动到能正常访问大概只要 10 秒钟(数据库跑在另一个容器里,没有计算它的启动时间),而 GitLab 启动一次要一分多钟,但由于 GitLab 大部分配置都是热修改,除了最开始部署时需要修改配置,运行中基本没有重启的需求。原创 2023-02-20 15:34:16 · 1229 阅读 · 0 评论 -
编程教学语言的选择
我赞成的编程教育过程,应当是以C/C++(基本上是C)为主线,贯穿起算法、数据结构、系统原理、编译和数据处理、软件设计和组件技术等关键知识领域,让学生能够从根本上理解现代软件系统的原理和构造,并通过有效的练习建立正确的软件设计观念和良好的工程实践习惯。在这个基础上,无论将来是深入学习C++,还是进入Java的繁荣世界,或者拥抱Python、Ruby,甚至于走向Web开发,都会心领神会,势如破竹。原创 2023-02-07 14:29:24 · 698 阅读 · 0 评论 -
如何快速上手一门新语言
在现代编程环境下,这个问题是涉及开发思想的一个核心问题,几乎每种语言在这里都会用足功夫,.NET的delegate,Java的anonymous inner class,Java 7的closure,C++OX的 tr1::function/bind,五花八门。经过这么多年,我已经能够相信,三种流程控制结构加简单的类型机制,已经能将一切现实问题的解法映射给计算机,学再多的语言,再多的语言机制,不过学到了更多的映射手段,代码结构方面的东西,真正要解结的问题呢,反而被模糊了,对语言的学习应适可而止。原创 2023-02-07 10:05:57 · 346 阅读 · 0 评论 -
Apk逆向反编译
在我们安卓开发当中,我们不仅需要掌握基础的开发技能,也需要掌握软件的安全技能,这样才可以让我们的软件能够成为一款能够真正可以进行发布的软件,同时也可以让自己的核心技术不会被别人所盗取。原创 2022-11-24 14:50:00 · 2417 阅读 · 1 评论 -
关于领导力
如果我天天都能思考怎么让下属更好的工作,你觉得下属跟我一起工作会不舒服吗?奔着一个前进的目标去努力,团结一致,各司其职,相互负责,优势互补,这就是一个好领导该做的。换来了一个新领导,我们发现他很少发号施令,更多时候是关心我们的发展,我们当然听他的。我做什么会对你完成工作更有帮助?所以一个管理者,当他真正带团队的时候,如果他每天想的都是你怎么信服我,这就偏了。回想我们当员工的时候,希望跟着什么样的领导干?如果你能把这件事想明白,你的工作的第一出发点就不是你得听我的,所以当你做领导的时候,也要成为这样的领导。原创 2022-11-02 08:51:48 · 226 阅读 · 0 评论 -
NuGet包管理器
在.NET应用程序编程开发中,开发者通常使用类库来管理、维护属于同一分类的程序代码,以便代码的重用。一般情况下,处于同一类库的所有类都位于同一程序集。这些类库被编译器编译后会生成扩展名为.dll的动态链接库文件,你可以在其它项目中通过引用的方式导入这些.dll程序集并使用其中被封装的类及成员。但随着项目越来越大、越来越多,使用手动引用.dll动态链接库的方式让程序包管理和维护变得非常困难。在这种情况下,NuGet程序包管理工具便应运而生。程序包就好比前端开发中的包,Java开发中的或者。原创 2022-10-25 13:56:28 · 2100 阅读 · 0 评论 -
让你告别996的项目维护方式
一篇《程序员技术写作指南》,关于如何正确写代码注释、写PR描述等等。这些东西虽然都是小事儿,但如果大家都不规范,代码维护起来有多痛苦?原创 2022-07-17 07:27:27 · 204 阅读 · 0 评论 -
Unity版本控制工具链TortoiseGit和SourceTree
Unity 团队合作版本控制Git工具链方案原创 2022-06-12 01:00:13 · 744 阅读 · 0 评论 -
游戏中的AI和数据科学
。。。。DataEngineer + SoftEngineer收集数据、报表、数据分析、产品化AI PVE研发AI测试Auto Feature起源世界 AiBotAI生成游戏内容具体示例:1. 算法:打关卡bot, 人工测,现在自动测。 推荐,AB测的提升。2. AB测试:买量的模型的优化,经济学因果推断。不同用户群的不同效果。留存的提升。3. 数据分析师 游戏机制分析:BP 优化建议,帮助策划优化增长点。奖励的力度、定价、排名榜单机制联动。设计复杂、原创 2022-05-15 13:04:23 · 890 阅读 · 0 评论 -
梦断代码读后感
这本书的开头章节是零,在软件人的脑子里,总是以零为一段自然数的开头,因为计算机从开始计数!于是,我睁大了眼睛,又返回去从第0章再次阅读;一段话击中了我:“hellow world"程序一无所用,但足以 蛊惑人心;多少软件项目雄心勃勃,最终却未结善果。 ------------ 经历一学期的磨练之后,对此话深有感触。书以chandler项目的诞生开头,以chandler项目的落幕而结束,一代软件人的辛酸绝望,犹如撞上冰山的泰坦尼克号,缓缓...原创 2020-12-25 22:53:33 · 352 阅读 · 0 评论 -
谈谈程序员的绩效考核
转自http://blog.csdn.net/KimmKing/article/details/9946319今天一个朋友问我程序员应该怎么考核。我想了想,总结了下我理解中一般开发人员的绩效考核。考核的意义首先一个前提是,考核是手段不是目的。我一直觉得对一个团队来讲,有两个基本目标:一个是完成自己承担的工作任务,一个是提升整个团队的能力。这两个目标相互促进,进而实现螺旋式的上升发展。考核只是为了更好的了解工作情况和团队情况、更清晰更准确的认识剖析自我,为改进和提升做准备的技术手段。所以开原创 2022-01-27 10:47:17 · 4391 阅读 · 0 评论