历史文章

45 篇文章

最新

UE4.26升级UE5打包失败问题解决

之前的开发平台是UE4.26,Android、Windows平台打包正常。现升级到了UE5.3,UE5需要NDK版本是25及以上,已经升级了NDK,打包的时候遇到了些问题。 1. 编译失败,报错 > Could not resolve all files for configuration ':classpath'. > Could not resolve com.android.tools.build:gradle:7.4.1. 可能是Android Studio使用的Gradle版本依赖的jdk版本不对,干脆升级Android Studio版本,升级完问题解决了。 2. 编译成功,安装报错 打包成功,但是在给VR设备安装的时候,又报错了,安装不到设备上: [INSTALL_FAILED_OLDER_SDK: Failed parse

如何git push到Github的main分支

Github上新建的仓库只有一个main分支,也是默认分支。新创建完的仓库会有一个页面,引导用户将本地文件或仓库push到Github上。 如果是正在开发中的项目,已经有一些本地文件,需要本地初始化仓库并push到远程,按照引导页面提交会遇到一个错误,导致push失败。 $ git push -u origin main To https://github.com/xiaoheige/VRTemplateUE53.git ! [rejected] main -> main (fetch first) error: failed to push some refs to 'https://github.com/xiaoheige/VRTemplateUE53.git' hint: Updates were rejected because the remote contains work that

挽救Ender3主板,解锁ATmega1284P芯片

给Ender3S的主板刷固件,Ender3S主板版本号为V1.1.3,MCU芯片型号为ARmega128P,在网上随便找了个教程就跟着干了,一开始读出熔丝位正常,然后没看读出的数值就顺手点了个写入,结果接下来的操作一直提示 没有发现编程器,请检查编程器是否接入。没接触过AVR单片机,这就有点懵了。网上查找原因,基本判定是被锁了。本以为这个板子废了,后来发现有救。 常用的有三种解锁方法,都需要外接硬件: 1. 使用高压编程器 2. 使用51单片机。给51单片机供电,使其工作,将51单片机的ALE引脚引出,插在AVR单片机晶振的XTAL1脚,在progisp软件下点击自动,这时就会解锁AVR单片机,之后再配置正确的熔丝位就可以了。 3. 使用有源晶振。这是最方便的解锁方法,给晶振供电,将OUT连接到XTAL1,在progisp下编程,可以直接解锁。 可见,解锁方法都是给ATmega1284P的XTAL1引脚外接一个时钟信号。 我是用的51单片机解锁: 一、将51单片机的ALE引脚(单片机电路板上应该明确标识各引脚的名称)和主板芯片的XTAL1引脚连接。 二、先

Mysql转Oracle,要了解的一些基础

Mysql是当下比较流行的结构化存储数据库,稳定、安全、易用,主要是免费。用习惯了Mysql,专用Oracle,发现有些概念两者的差别还是很大的,使用起来也有很多不同的细节。 Oracle数据库概念 完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。 1. 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等); 2. Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。 在启动Oracle数据库服务器时,在服务器的内存中创建一个Oracle实例,然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件。Oracle有一个很大的内存快,称为全局区(SGA)。 1、数据库 数据库是数据集合。Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。 通常情况了我们称的“数据库”,并不仅指物理的数据集合,他包含物理数据、数据库管理系统。也即物理数据、内存、操作系统进程的组合体。 2、数据库实例 用Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内

网络测速工具iPerf3

iPerf3是一个主动测试网络最大带宽的工具,常用来测试两台网络设备之间的网速及网络设备的性能。iPerf3是全新设计的,不与iPerf共享任何代码。 安装iPerf3 官方下载链接: https://iperf.fr/iperf-download.php 目前iPerf3支持平台包括Linux、Windows、MaxOS,甚至支持Android。按照官网提供的方式一般系统都可以快速安装。 文章下边会用到OpenWrt、Windows11和CentOS系统下的Iperf3,先安装。 OpenWrt安装Iperf3 在OpenWrt的Web管理界面里,进入软件管理,搜索iperf3,直接“Install”即可。 或者通过命令安装: opkg update opkg install iperf3 Windows11安装Iperf3 打开windows版本的下载链接,找到适合系统的最新版本下载。 解压zip包,进入iperf3.exe所在的目录,空白处右单击,选择“在终端中打开”,终端中输入.\iperf3 -v,看到版本信息。

废旧硬盘二次利用,制作打磨盘

拆了一块废旧硬盘,希捷的3.5寸机械硬盘,拆完发现里边的无刷电机还能正常工作,于是做成了一个打磨盘,还挺好用。 拆掉正面的6颗螺丝,注意标签下还有一颗,即可取下硬盘盖子。 盖子下边就是硬盘主要的部件,磁盘和磁头臂。 硬盘背面是一块硬盘控制板,卸掉6颗螺丝即可取下主板。 控制板上有一颗三星的内存IC芯片,一颗4833A芯片,还有几颗不认识的芯片,电路不算复杂。 拆下磁头臂根部的3颗螺丝,即可取下上边的铁块,取的时候用点力或者拿螺丝刀撬一下,底下有强磁吸着。 拆下磁头臂中间部位的1颗螺丝,和固定排线的两颗螺丝,即可把磁头臂整个拿下来了。 磁盘中间有个盖子起固定作用,有3颗螺丝固定,拆下螺丝即可拿下盖子,然后将整个硬盘拿起,一扣,盘片就下来了。 硬盘基本拆解完了,但是没看到电机,那是因为电机和整个硬盘底座设计成一体的了,可以看到电机的排线在反面。 按线序把无刷电机驱动器和电机连接,依次是U、V、W(无数电机的三相线一般用U、V、W表示)。驱动器是在某宝买的: https://item.taobao.c

从零开始制作魔方机器人(五)真机调试

安装电路板,所有线连接,整机效果如下 1.调整三个魔方爪子与魔方的距离后固定到电机轴上,测试小磁铁的极向和跟霍尔传感器的距离后将磁铁固定。 2.修改代码将三个魔方爪子调平。 // 根据实际测试结果调整电机初始角度 #define STEPPER0_OFFSET 100 #define STEPPER1_OFFSET 110 #define STEPPER2_OFFSET 375 3.按SW2键复位单片机,安装魔方,注意魔方中间色块方向,红色向上,蓝色向内。 4.短按SW3按钮是演示模式,会反复打乱魔方再还原,短按SW4是5秒还原魔方,长按SW4是慢慢还原魔方,适合拿来测试。按钮功能跟作者视频里不一样,代码里把按钮功能修改过了。 5.按源代码编译运行,2号电机旋转会有进三步退两步的抖动的问题,我是修改代码解决的,暂时没有遇到“步骤1:旋转臂接触魔方,接触之前应当减速,否则接触后受力突变,会丢步”的情况。 // 步骤1:旋转臂接触魔方,接触之前应当减速,否则接触后受力突变,

从零开始制作魔方机器人(四)编译、刷写固件

1. 安装Ubuntu系统 为了尽量接近开源作者的开发环境少踩坑,我专门装了Ubuntu系统,找了一块不用的硬盘替换到了我的ThinkPad上,用完还可以把硬盘换回来以还原win系统,这个Ubuntu系统盘还能留着备用(Thinkpad拆装硬盘还是很方便的)。 USB转TTL连接电脑后会自动安装CH340驱动,如果不能正常驱动,可能是因为驱动占用导致的,执行 sudo apt remove brltty 命令,重新插拔一次即可,问题参考: https://blog.51cto.com/u_15473553/5437058 https://blog.csdn.net/weixin_41536025/article/details/100115105 设备名称可能不一样,在我的Ubuntu系统里,debug USB接口设备名是 /dev/ttyACM0,USB转ttl串口设备名是 /dev/ttyUSB0 后边可能会用到的应用先安装了: sudo apt install vim sudo

从零开始制作魔方机器人(三)控制板焊接

贴片元件我是用中温锡浆和热风枪焊接的,PCB焊点涂抹适量锡浆,贴片元件摆到对应位置,热风枪调到400度吹PCB背面,直到锡浆全部融化,元件位置不正拿镊子摆正,虚焊的引脚拿电烙铁补锡。 焊接没问题即可通电测试,需要12V~20V电压和不小于2A电流供电。将电源接入USB1(POWER)口,三个指示灯会微亮,因为还没有烧录程序。用万用表测量霍尔传感器的对地电压应该为5V,U12的对地电压为3.3V,没有问题基本就成功了。 电路板贴片这个过程是最让人心焦的,出现问题完全没思路解决,电路图又不能完全看懂,只能一点一点去学习电路图知识,一点一点琢磨,反复焊接。还有很多时间是用来等快递,那么多元件难免会错买或漏买。控制板所用元件(不全)如下 下面总结了一些我在实操过程中遇到的一些坑: 1.注意元件U1、U5、U6、U7、U8、U9中间是接地引脚,同时起散热作用,别漏焊了。 2.U1芯片焊接应该是这个电路板焊接里最费劲的,新手可参照视频: https://www.bilibili.com/video/BV1Bj411H7EH/ 3.

从零开始制作魔方机器人(二)机械组装部分

魔方机器人的主体架构是3D打印的,材料为Abs,我是从闲鱼平台上找人打印的,费用八十多元。机械部分所用散件如下 1.安装滚花螺母。将滚花螺母放到对应孔处,用电烙铁加热滚花螺母烫化Abs材料以压入孔中,趁热用镊子后端压平,等Abs材料硬化后用锉刀打磨平整。 2.用M3x8螺丝连接法兰联轴器和爪子模型,用水口钳剪掉多余部分(多余部分是3D打印支撑部分),用锉刀打磨四个脚到能够插入魔方并夹住,用502加固(四个脚很脆弱,一不小心就会掉)。 3.用M3x8螺丝把方形锅磁安装到电机架上(注:可先安装电机,锅磁可能会挡着装电机的螺丝)。 4.贴泡胶(起减震、静音作用),安装步进电机,用M3x8螺丝固定,注意电机线路接口与底座缺口同向。 5.将两边的电机插入大底座中,测试是否可以流畅滑动。 6.用502胶把M3垫片,贴到两个电机槽前端内侧的凹槽中。 7.用M3x6螺丝连接法兰联轴器和大爪子模型。 8.棘轮部件2(T型)安装两段0.6mm的软导线(起减震、静音作用),然后截取一段2mm粗、1.5cm长的铁丝当作连接轴,将棘轮部

从零开始制作魔方机器人(一)背景

公众号里看到一片文章 《基于树莓派RP2040的解魔方机器人,7秒还原三阶魔方》,心血来潮准备从零开始仿制一台魔方机器人,正好借这个机会学习下硬件相关的知识。 对新手来说,这个项目的电路设计还是比较复杂的,于是我先找了一个相对简单的开源项目实操了一下,《触摸无极调光雪花灯(陶瓷灯丝)》 ,这个比较顺利,用了一个晚上时间,一次性制作完成,于是信心大增,感觉自己行了。 可是在魔方机器人项目实操过程中,让我多次感受到了绝望!这个项目是业余时间做的,持续了足足两个多月,很多非常初级的问题定位好几天无果。另外准备散件也是一个费心的事,光在某宝上找这些散件就用了两整天时间,有些件还在用的时候发现是错的,还有一些工具也是临时置办的。 本文着重点在制作过程中遇到的一些问题,整个制作过程写的并不详细,详细制作过程可参照开源作者分享的资料和视频。

基于BearPi开发板的语音控制开关(七)更换ASR PRO语音识别模块

后来发现了ASR PRO语音识别模块,ASR PRO板载CH340K芯片,一根Type-C线就可以下载程序,并且开发板上有自动断电电路可以实现一键下载,支持可视化编程,功能远超LD3320。 上手体验ASR PRO 下载天问Block编程软件 官网: http://twen51.com/ 根据提示安装软件,安装过程中会自动安装CH340驱动。 通过typec连接到电脑,设备管理器的端口(COM和LPT)下会显示一个叫CH340的COM端口,设备连接成功。 运行软件,选择ASRPRO设备 然后选择开发模式,模式包含配置模式、编程模式和字符编程。配置模式一目了然,使用简单,功能有限;编程模式是图形化编程,妥妥拽拽即可完成编程,简单易学,功能丰富;字符编程就是手写代码了,c语言,非专业人员较难上手。我选的编程模式。 进入软件,右上角会显示已经连接的设备。 软件默认打开ASRPRO的示例代码,可以不用任何编辑直接烧到模块里。示例代码可以直接编译,编译前需要先生成模型。点击“生成模型”,这里需要注册用户,注册、登录后即可生成模型,生成完成会弹窗

基于BearPi开发板的语音控制开关(六)开发、调试

根据前文的电路连接,开始编程。 小熊派编程 根据前文对小熊派的介绍,先创建一个项目目录: ./applications/BearPi/BearPi-HM_Nano/sample/VoiceControl,目录下边创建两个文件 VoiceControl.c 和 BUILD.gn,内容分别为: #include #include "ohos_init.h" #include "wifiiot_gpio.h" #include "wifiiot_gpio_ex.h" // 开灯 static void LightON(char *arg) { printf("\r\n========== 开灯 ==========\r\n"); (void) arg; GpioSetOutputVal(WIFI_IOT_IO_

基于BearPi开发板的语音控制开关(五)连接电路

各模块都已经把玩过了,接下来把他们组合起来,完成语音开关功能。 参照的文章里接线和代码都没太看明白,用的扩展板也不一样,文章里用的是“E53-SC1智慧路灯”扩展板,我用的是“E53-IA1智慧农业”扩展板,所以我这个设计只参考了作者的思路,线路连接和代码都是我自己摸索着做的。各模块之间通信使用的是GPIO,通过高低电平切换模拟物理开关的按下和弹起,感觉这种通信方式不太正统,但是SPI、UART等通信方式还没研究明白,等研究明白了再做优化。 各模块引脚连接 GND(小熊派) ———— GND(语音播放模块)、GND(语音识别模块) V5.0(小熊派) ———— VCC(语音播放模块)、5V(语音识别模块) IO_11(小熊派) ———— P1.0(语音识别模块) IO_12(小熊派) ———— P1.1(语音识别模块) IO_1(语音播放模块) ———— P1.2(

基于BearPi开发板的语音控制开关(四)初识LD3320A语音识别模块

接下来研究下LD3320A语音识别模块,前文已经准备了该模块。 编程 先为该模块编程,这里用到Keil5作为开发环境,如果没有可参照 Keil5嵌入式开发环境(IDE)的安装和使用 进行安装。 完整代码在文末提供下载,我用的是 LDV7语音模块驱动程序.zip 文件里解压出来的 LDV7语音识别模块--口令模式+IO口控制 工程,找到工程下的 keil4 APP 目录下的 YS-V0.7.uvproj 文件,双击打开工程。 main.c 61行,PrintCom("一级口令: 小杰\r\n"); 改为 PrintCom("一级口令: 小黑\r\n"); 修改唤醒词,这里是串口调试工具里显示用的,没有业务逻辑意义 237行,PA3=1; 改为 PA3=0;

基于BearPi开发板的语音控制开关(三)初识BY8001-16P串口语音模块

前文介绍,我已经准备了LD3320A语音识别模块和BY8001-16P串口语音模块,LD3320A用来识别语音,BY8001-16P用来播放提示音。在试用语音识别模块前我先简单研究了BY8001-16P。 把mp3文件拷贝到tf卡中,文件编号是按存入的先后顺序编排的。 IO口触发播放 根据上边的电路图接线,这里可以用USB转TTL模块,先通电,可以连接电脑USB和非PD充电头。当然这里也可以用其他5V供电设备。 BY8001-16P的供电电压是3.6V~5V,推荐4.2V,我一开始按推荐电压供电,播放音频时响一声就停,折腾半天没找到原因,后来换了5V供电好了。 先将两个模块的GND连接;SPK1和SPK2连接喇叭的正负极,不区分正负;将两个模块的VCC连接。这里可以先不接RXD和TXD两个引脚。 将语音模块的IO1和GND用一个导线触连一下,即开始播放第一个mp3。 该模块有5个触发IO口,支持15段按键一对一触发播放。 这里遇到一个问题,就是当尝试按上表规则播放第二个mp3的时候没有反应,播放第三个的时候播放的是第二

基于BearPi开发板的语音控制开关(二)搭建小熊派的开发环境

前文介绍,我已经准备了一块小熊派开发板及其智慧农业模块,下边开始根据 BearPi-HM Nano 十分钟上手教程 搭建小熊派的开发环境。因为VMware的限制,这一步只能在Windows系统操作。 下载工具 下载官方提供镜像 - 镜像里提供OpenHarmony系统开发环境和工具: https://pan.baidu.com/share/init?surl=T0Tcl3y48C1p5L6y-6HJNg?pwd=eusr 下载并安装虚拟机VMwareWorkstation: https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html 下载HiBurn - 编译好的程序,烧录到开发板: https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA?pwd=1234 下载并安装开发板USB驱动 - 下载 CH341SER.EXE (USB转串口Windows一键式安装驱动程序)

基于BearPi开发板的语音控制开关(一)背景

前段时间跑了趟济南宜家,把家里已经开始掉漆的镜柜换了。 新镜柜的亮点是两条LED灯带,在安装的时候,买了个人体感应开关,把两条LED灯带改成了人体感应灯,从此夜里进卫生间再也不用摸黑找开关了。 HESUNSE红外线人体感应开关探头模块 方便了很多,但使用体验差强人意: * 感光开关已经调到“较黑”了,但傍晚天稍微一黑,进卫生间灯就会亮 * 感应距离不可控,猫溜达进卫生间也会让灯亮起 * 5分钟、45秒、15秒三档延时不能灵活适用各种用卫生间场景 * 频繁开关减少LED的使用寿命 不好用就换,打算换语音控制试试,于是在网上找到了《基于OpenHarmony开发的语音小助手》这篇文章,他这套东西完全符合我的需求,满足基本的语音控制,也为以后升级触摸开关和人体感应预留了开发空间,开整。 备注:实践过程中发现文章写的很粗,不适合小白,而且很多内容写的不是很准确,费了好大劲摸索! 先准备硬件,根据文章介绍,结合我后边的实践,需要用到的硬件器材如下: * 小熊派 BearPi-HM Nano Hi3861开发板 + 智慧农业模块 * LD3320A

记一次错误的尝试一门新语言TypeScript

作为一个不被编程语言束缚的程序员,跨语言开发是常事。不怕开始学习一门新语言,怕的是开始了一门语言后,越来越发现对项目不合适。最近的一个项目,选择TypeScript就是一个错误的选择。 该项目是一个管理后台系统的前端,功能主要是对业务数据的CRUD等,没有复杂的业务逻辑。因为TypeScript种草好久了,所以在项目开始的时候拍脑袋决定尝试TypeScript。 开始在网上翻了一些TypeScript入门和JavaScript转TypeScript的教程,研究了半天就直接开始上手了。基础框架选择的基于vue的vuetify,github上找了一套现成的模版,测试环境很快就跑起来了。运行没问题,只是vscode里一堆报错,文件差不多全是红的。简单看了下,基本都是跟数据类型有关的,但不影响运行和打包,为了赶进度就没在意。 JavaScript转TypeScript容易犯的错 后来闲下来决定把这些报错排除掉,梳理下来,基本都是变量类型没有定义引起的报错,概括为这两类: * Property 'id' does not exist on type 'never'.ts(

用好浏览器缓存,让网站访问速度起飞

Web项目访问速度优化,有些时候把浏览器缓存用好了,比费劲折腾代码或费钱加服务器,来的效果更直接。下面我们就来梳理下浏览器缓存那些事。 先上一张简单的流程图,看看缓存是怎么发挥作用的: 一个请求发起,浏览器先根据被请求资源的Expires或Cache-Control判断资源的缓存是否过期,未过期直接使用,过期了则向远端发起请求。 远端通过Last-Modified或Etag判断被请求资源是否发生更新,更新了返回新资源,未更新则返回304,不返回新资源,以节省数据传输量。 当浏览器还没有缓存,或缓存过期了,或请求头包含no-cache指令,远端返回新资源。 基本的过程就是这样的,下边是一张详细的流程图: 可以看出,当发起一次http请求,如果有缓存,浏览器会先根据Cache-Control和Expires判断缓存是否过期,如果没有过期则使用缓存而停止请求,浏览器的这个处理过程也被称为强缓存。 当浏览器判定本地缓存过期后向远端发起请求,远端先通过Pragma参数判定是否为强制刷新,如果是,直接返回新资源,不是则通过请求头里的If-None-Match和If-Modi

阿里云CDN刷新目录不生效的问题排除

先说结论,不是系统有问题,是对CDN的刷新机制不够了解,使用不当造成的。 背景 我的源文件是在阿里云oss上,一开始cdn回源的是oss上的源文件。后来设置了一个加水印的样式,然后在cdn的回源配置上加了oss样式的参数,也就是说,cdn清了缓存重新回源的图片应该是有水印的。 问题 按url刷新cdn,可以看到cdn上的图片是有水印的,说明刷新生效。而按目录刷新cdn,看到cdn上的图片没有加水印,说明刷新没起作用。尝试了很多次,证实这个问题是存在的。 寻找问题原因 考虑阿里云这么成熟的平台不应该有这问题,但这问题就在眼前,还是决定发个工单一探究竟。为了说清楚问题,我把我试错的过程做成了一个文档发给了阿里云工程师。 * 第一步,浏览器访问图片: https://cdn.xuguoyu.com/b/proteus/install7.png * 第二步,CDN刷新目录: https://cdn.xuguoyu.com/b/proteus/ * 第三步,浏览器普通刷新,状态码为304,Last-Modified没有变化

Proteus电子设计自动化软件的安装与使用

Proteus是一种电子设计自动化(EDA)软件,用于电路设计、仿真和PCB布局。它由英国Labcenter Electronics公司开发,用于创建和模拟各种电子电路,包括模拟电路、数字电路和微控制器系统。Proteus提供了一个直观的图形界面,使用户能够设计和测试电路原型,以及进行虚拟测试和验证。它还包含了一个PCB布局工具,可以将设计转化为实际的印刷电路板。Proteus在电子工程教育和工业设计中广泛应用。 安装 文末附下载链接 1. 运行"proteus8.15.SP1.exe"开始安装,点击"Next >"按钮 2. 勾选"I agree ...",点击"Next >" 3. 点选"Use locally installed license key",点击"Next >" 4. 点击"Next

Keil5嵌入式开发环境(IDE)的安装和使用

Keil5是一款嵌入式开发环境(IDE),广泛应用于嵌入式系统开发,由美国Keil Software公司开发和推出。它提供了一套完整的软硬件开发工具,用于嵌入式系统的编译、调试和仿真。Keil5支持多种嵌入式处理器架构,包括ARM、8051和C166等。它具有用户友好的界面和强大的功能,可用于开发各种嵌入式应用,如汽车电子、工业自动化、消费电子等。 下载安装包 1. 通过官网下载安装包,点击“Download”官网地址: https://www.keil.com/ 2. 以C51单片机开发为例,点击"C51" 3. 输入个人信息,随便填应该可以的,但内容格式要正确,点击"Submit" 4. 点击"C51V961.EXE"开始下载 5. 下载注册机 百度链接:https://

查看Linux发行版和系统信息的常用命令

有些时候拿到一台Linux服务器,我们首先要知道她的发行版本和系统基本信息。但是往往给你提供服务器的人不了解这些,那就只能自己动手了,系统都在你手里了,还怕拿不到这些?下面就看看这些查看Liunx基本信息的常用方法,但是需要注意的是,这些方法可能会因Linux发行版的不同而有所不同。 uname 命令 uname用于显示系统信息,可以查看操作系统的名称、版本、主机名、处理器类型等信息。 常用参数: -a, --all 显示全部信息 -s, --kernel-name 显示内核名称 -n, --nodename 显示网络节点主机名称 -r, --kernel-release 显示内核release -v, --kernel-version 显示内核版本 -m, --machine 显示机器名称 -p, --processor 显示处理器名称 -i, --hardware-platform 显示硬件平台名称 -o, -

SVN分支开发合并主干流程

分支合主干的提交原则就是保证主干代码完整无误! 分支合主干时序图: 说明: * 图中标题Branch表示分支代码库,checkout版本号为ver.m的代码至本地新建的文件夹branch.working。然后再merge主干代码Ver.A至branch.working,解决完冲突后提交至分支生成新版本ver.n(是否要将主干合分支后提交,视情况而定)。然后将分支通过sftp布署到测试环境。 * 第二步首先checkout主干代码Ver.A至本地新建文件夹trunk.working,使用merge操作将分支ver.n合入trunk.working,第二步完成。标识此时trunk.working的临时版本号为Ver.An。把Ver.An版本通过测试脚本等方式布署到仿真测试环境。 * 如果在完成前两步的过程中主干有同学提交了新代码,则需要update至最新代码并解决冲突,这样trunk.working版本为Ver.AnC,解冲突后提交至主干。至此,合入操作完成。 转载

使用Wordpress建站

WordPress是个开源博客软件,主要用来建博客网站,但是通过WordPress各种主题和插件,我们可以做企业站,内容发布CMS网站,B2C商城网站等等;当然我们也可以用WordPress建外贸网站,本文就将讲述使用WordPress搭建一个简单的外贸网站全过程。 为什么使用WordPress做外贸网站? 做外贸网站,都是为了更好地营销产品,网站外观,页面做得再好,如果没人访问都是白费力气。 WordPress做的网站符合搜索引擎优化的标准,用它可以最大限度的优化推广你的网站; 另外WordPress还有超多的优化插件,如 All in One SEO Pack(可以对网站站内内容进行优化)、Google XML Sitemaps(自动生成sitemap.xml 并提交给Google,Yahoo,Bing等国外主流搜索引擎);这样你每更新一个产品,一篇文章都可以自动通知Google,Yahoo等,这些都对你网站的优化起到很大的作用,给你网站带来流量,带来订单。WordPress丰富的主题和插件也可以让我们做出多样的,美观大方的网站。 使用WordPress做一个简单

发号器的常用解决方案及应用

什么是发号器 发号器,通常被叫做ID生成器,是为业务元素生成唯一标示的一组方法或功能。 常见使用场景 * 新浪微博用户ID:http://weibo.com/1346818450 * QQ号:422525199 * 手机充值卡密码:510 3070 5354 0939 5056 * 淘宝订单号:352614560557223645 * Twitter文章Id:https://twitter.com/ayanamist/status/878805596283084800 * 支付宝交易流水号:2017062121001004940256742896 通过发号器生成的ID特点 * ID位数可定制 * 支持多IDC部署 * 单机或多机粗略有序 * 增长步长不固定 * 可反解 * 可制造 常用发号器的实现方式 实现发号器,有几种思路 * 数据库自增id * UUID * Snowflake服务 * Flicker的发号器方案 前两种比较常见,下边着重梳理后边两种,这两种方案的实现涉及到一些二进制的存储、运算和转换,用习

Codeium 插件 downloading codeium language server 失败问题解决办法

VSCode的codeium插件有时会一直卡在"downloading codeium language server",是因为codeium插件要从GitHub上下载language_server_macos_arm,GitHub不畅通的时候就会一直卡在这里。 解决办法 修改codeium的下载地址,把GitHub改成其镜像站,加快下载速度。操作如下: 打开codeium插件的 /Users/userxxx/.vscode/extensions/codeium.codeium-[versionxxx]/dist/extension.js 文件,搜索 https://github.com/Exafunction/codeium ,有两处,修改为 https://hub.njuu.cf/Exafunction/codeium ,重启插件或vscode,即可看到 codeium language server 很快就下载就绪了。 P.S. * hub.

UE5.3打包Windows分辨率低问题解决

UE5.3打包Windows程序包,运行分辨率很低,画面很模糊,锯齿很严重。解决方法有两个。 方法一、打包后修改 打包后需要先运行一下,运行后会在打包的目录下生成 项目名称\Saved\Config\Windows\GameUserSettings.ini 配置文件,如果打的是Shipping包,应该到操作系统用户目录下去找 C:\Users\你用用户名\AppData\Local\你的项目名称\Saved\Config\Windows\GameUserSettings.ini,配置文件中找到 sg.ResolutionQuality=0 配置项,默认值为 0 ,修改 100 ,保存重新运行即可。修改后完整配置文件如下: [ScalabilityGroups] sg.ResolutionQuality=100 sg.ViewDistanceQuality=3 sg.AntiAliasingQuality=

UE4+Oculus开发环境搭建

安装UE4 下载安装Epic Games启动程序 Epic官网下载EpicGames启动程序安装包,运行并一直下一步即可完成安装。 运行Epic Games启动程序,注册并登录账号。 安装指定版本的Unreal Engine 登录后点击左侧菜单“虚幻引擎”,然后选在顶部菜单的“库”,然后点击“引擎版本”旁边的加号,选择需要下载的版本后点击“安装”,一个引擎大概20G,耐心等待下载完即可启动。引擎的环境语言最好使用英文,防止出现一些奇怪的问题。 左侧菜单“虚幻引擎”下的“示例”提供了很多不错的素材,“虚幻商城”下也有很多限免的好项目,可用来参考学习。 下载安装Oculus Rift软件 访问Oculus官网需要修改hosts或配置科学上网。 修改hosts文件添加如下内容: 157.240.11.49 www.oculus.com 157.240.11.49 developer.oculus.com 157.

FileBrowser安装

FileBrowser 是一个基于 Web 的文件管理器,采用go语言编写,它可以通过浏览器对服务器上的文件进行管理,如:创建、删除、移动、复制等。它支持多个用户的管理,而且每个用户可以拥有自己可以访问的文件和权限。它还支持文件分享,就行网盘那样,你可以通过它来向你的朋友分享文件。使用非常简单方便,功能很强大。 安装FileBrowser 项目地址: https://github.com/filebrowser/filebrowser 安装: curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash filebrowser -r /path/to/your/files 创建目录: 在 /data 目录下创建 filebrowser/ 目录,

PostgreSQL安装

基于CentOS7安装PostgreSQL 安装PostgreSQL官方安装仓库 yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm 安装PostgreSQL及客户端: yum install -y postgresql10-server postgresql10 postgresql10-contrib 安装过程中会自动创建一个Linux账号:postgres ,可通过"cat /etc/passwd"命令查看 初始化PostgreSQL /usr/pgsql-10/bin/postgresql-10-setup initdb 创建PostgreSQL数据存储路径 # 默认数据存储路径为: /var/lib/pgsql ,把路径转移到我们想要存储的路径 mkdir /data mv /var/lib/pgsql

API网关 - Kong环境搭建

创建PostgreSQL数据库及账号 PostgreSQL安装过程省略 postgres=# CREATE USER kong; postgres=# CREATE DATABASE kong OWNER kong; postgres=# ALTER USER kong PASSWORD 'Kong@2281'; 安装Kong 下载地址,选择平台 https://konghq.com/get-started/#install 下载安装包并安装 # 由于图形管理界面konga仅支持1.x版本的kong,所以我们选择安装老版本,历史版本下载地址: https://bintray.com/kong/ wget 'https://bintray.com/kong/kong-rpm/download_file?file_path=centos%2F7%2Fkong-1.5.

Rsyslog集中日志管理配置

节点服务器配置 Nginx配置: access_log syslog:server=127.0.0.1,facility=local1,severity=debug,tag=nginxaccess main; error_log syslog:server=127.0.0.1,facility=local1,severity=error,tag=nginxerror; 注意:为了防止阻塞Nginx的处理进程,Nginx选择了使用非阻塞UDP的方式实现了syslogd的支持 Web服务器rsyslog配置: #### GLOBAL DIRECTIVES #### $EscapeControlCharactersOnReceive on $MaxMessageSize 64k # 默认4K $imjournalRatelimitInterval 60 $imjournalRatelimitBurst 20000 # @表示udp @@表示tcp # udp方式有丢消息的可能,如果消息每行大小超过了4k,

Systemd使用

Systemd是Linux操作系统的系统和服务管理器,用来启动守护进程。目前多数Linux发行版都已经采用Systemd取代了initd,作为整个系统的守护进程,成为系统第一个进程(PID为1,其他进程都是他的子进程)。他的设计目的是为了让进程并发启动,按需启动进程,提高Linux系统启动速度,让使用也更简洁。 Systemd跟initd的使用对比: # initd使用 /etc/init.d/nginx start # 或 service nginx start # systemd使用 systemctl start nginx systemctl命令 systemctl命令是Systemd中最重要的一个命令,用于对进程进行启动,停止等管理操作。 命令格式 systemctl [command] [unit] 例如: systemctl start nginx.service # 或 systemctl start nginx command 说明 start 开启 stop 关闭

阿里云ecs无法连网问题解决

阿里云ECS,创建Linux实例后无法连网,一般出现在使用自定义镜像的情况下,可从如下两个方面着手解决 1.网络静态IP改为dhcp获取 vim /etc/sysconfig/network-scripts/ifcfg-eth0 将 BOOTPROTO=static 改为 BOOTPROTO=dhcp 删除如下两行 IPADDR=172.17.241.83 NETMASK=255.255.240.0 2.添加路由表 临时方法: route add -net 0.0.0.0/0 gw 172.17.177.253 永久方法: vim /etc/sysconfig/network-scripts/route-eth0

Git常用命令

名词解释 * Workspace : 工作区 * Index / Stage : 暂存区 * Repository : 仓库区(或本地仓库) * Remote : 远程仓库 一. 新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码历史 $ git clone [url] 二.配置 Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置) # 显示当前的Git配置 $ git config --list # 编辑Git配置文件 $ git config -e [--global] # 设置提交代码时的用户信息 $ git config [--global] user.name "[name]" $ git

Rsync同步文件

Rsync是一个快速的文件复制工具。其增量传输算法通过仅发送文件之间的差异部分以减少发送的数据量,加快复制速度。可以本地复制,可以通过远程Shell或远程Rsync守护进程进行复制。支持复制软硬链接、设备等特殊类型文件。 常用参数 * -a 归档模式,复制原文件的所有者、组、权限等属性 * -v 显示详细信息 * -P 显示实时复制过程 * -z 在传输过程中压缩文件数据 * -e 指定要使用的远程Shell * -r 包含所有子目录 * -t 保留修改时间 * -u 跳过目标较新的文件 * -q 静默模式,不显示过程信息 * --delete 从目标目录中删除源目录不存的文件 * --exclude=PATTERN 排除匹配的文件 使用 本地复制文件 rsync -av test.txt /tmp/ 通过ssh推送文件 rsync -avz -e 'ssh -p 22' test.

Docker常用命令

Dcoker基本概念 Docker 包括三个基本概念: * 镜像(Image):Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 * 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 * 仓库(Repository):仓库(Repository)类似Git的远程仓库,集中存放镜像文件。 三者关系可以用下图表示: 服务 # 查看Docker版本信息 $ docker version # 查看docker简要信息 $ docker -v

LNMP环境搭建

说明:该教程基于CentOS7.9版本安装! 准备 升级所有已安装包 # yum update 创建软件下载目录 # mkdir /root/soft # cd /root/soft 可以把所有下载的安装包都放在这个目录下 内存小于1G的,需要创建Swap分区 # dd if=/dev/zero of=/home/swap bs=1024 count=2048000 # mkswap /home/swap # swapon /home/swap Nginx 1. 安装依赖包 # yum install gcc-c++ make 2. 下载解压库源码备用 下载解压pcre # wget https://nchc.dl.sourceforge.net/