自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (19)
  • 收藏
  • 关注

原创 OpenAI Q-Star:AGI距离自我意识越来越近

智商145是啥概念?OpenAI计划于2027年完成训练,并以GPT-7的名义发布,而一旦成功,预计Q-Star相当于一个智商145的人类,并初步具备自我意识,也就是说,GPT-7将会成为第一个真正的AGI模型。

2024-03-17 14:35:15 691

原创 【学习学习】学习金字塔

​学习金字塔(Cone of Learning),全称学习吸收率金字塔,是一种现代学习方式的理论。网上流传它是美国缅因州的国家训练实验室(National Training Laboratories)研究成果,用数字形式形象显示了采用不同的学习方式,学习者在两周以后还能记住内容(平均学习保持率)的百分比。

2024-03-17 11:26:12 353

原创 PlantUML入门教程:画时序图

使用PlantUML画图有多种方式,一种是使用PlantUML在线编辑器,另一种是使用VSCode/PyCharm/IDEA等软件支持的插件来编写。时序图用来标识某个操作的整个流程,通过时序图可以很清晰地知道某个操作的全流程,以及相关的交互方。今天推荐一款软件工程师的作图利器--PlantUML,它能让你用写代码的方式快速画出UML图。软件工程中会用到各种UML图,例如用例图、时序图等。那我们能不能像写代码一样去画图呢?

2023-09-03 15:21:23 1063

原创 【敏捷开发】测试驱动开发(TDD)

测试驱动开发(Test-Driven Development,简称TDD)是敏捷开发模式中的一项核心实践和技术,也是一种设计方法论。TDD有别于以往的“先编码,后测试”的开发模式,要求在设计与编码之前,先编写测试脚本或设计测试用例。

2023-08-05 17:31:18 1637

原创 【架构基础】架构概念

架构设计是一门分与合的艺术。关注点分离(Separation of concerns, SoC)原则主要目的就是为了解决复杂系统如何“分”的问题。将复杂系统根据不同的角度(也即关注点)分解为多个相对独立的部分,再对每个独立部分单独处理,这就是关注点分离。

2023-07-23 19:49:06 689

原创 【学习学习】NLP理解层次模型

在NLP理解层次模型中,提到六个认知层次,并且有高低之分。当以低纬度的视角考虑某个问题,觉得无法解决的时候,提高思考的维度后,往往就变得易如反掌了。

2023-06-18 18:50:32 3188

原创 【架构基础】高内聚低耦合

高内聚低耦合,是软件工程中判断软件设计好坏的标准。主要评判模块或类的内聚性是否高,耦合度是否低。目的是使模块或类的可重用性、可移植性大大增强。

2023-06-11 17:04:47 1142

原创 【架构基础】正交设计四原则

软件中的正交设计之正交四原则,最终目的是为了实现软件的高内聚低耦合架构。它是一种范式,语言无关的设计原则。为了解决软件系统向未来演进的过程中,如何让软件在尽量长的时期范围内更容易应对变化,降低项目后期的人力投入成本。

2023-06-11 10:11:17 1992 1

原创 【架构基础】SOLID原则

SOLID原则是一套坚实而有效的软件设计原则,它由Robert C. Martin(也称为 Uncle Bob)在2000年提出,旨在帮助软件开发者设计出高内聚低耦合的软件,构建易于测试、可维护和可扩展的软件系统,降低软件后期的维护成本。

2023-06-04 18:06:45 396

原创 【架构基础】简单设计原则

简单设计来源于极限编程(ExtremeProgramming,简称XP)。XP是由KentBeck在1996年提出的,是敏捷软件开发中最富有成效的几种方法学之一,而简单设计是XP的四个核心实践之一。

2023-06-04 16:41:08 892

原创 Linux文件共享设置

Linux主机通过NFS实现文件目录共享,需要在服务端与客户端同步进行配置。步骤一、NFS服务端配置1、检查NFS服务端是否已安装软件包(portmap和nfs-utils):[root@HLZ ~]# rpm -qa | grep -E "nfs-utils|portmap"如果没有,则需要下载软件安装,或直接通过yum安装。2、配置/etc/exports文件:[root@HLZ ~]# vi /etc/exports/home/share 192.168.222.0/24...

2021-04-24 13:06:17 810

原创 Linux关闭SELinux方法

临时关闭SELinux方法(重启后恢复):[root@HLZ ~]# setenforce 0永久关闭SELinux方法:[root@HLZ ~]# vi /etc/selinux/config # 或 vi /etc/sysconfig/selinux修改 SELINUX=enforcing 为 SELINUX=disabled

2021-04-24 12:08:55 2297

原创 CentOS通过本地镜像实现yum安装

步骤一:创建挂载目录,挂载本地镜像mkdir /media/cdrommount -o loop /home/osimage/CentOS-6.2-x86_64-bin-DVD1.iso /media/cdrom步骤二:设置yum安装配置文件[root@HLZ ~]# vim /etc/yum.repos.d/CentOS-Media.repo[c6-media]name=CentOS-$releasever - Mediabaseurl=file:///media/CentOS/...

2021-04-24 11:58:32 560

原创 C语言:标准输入输出打印信息重定向

标准输入/输出的重定向包括重定向到内存,或是重定向到文件。下面分别示例说明。1、输入输出重定向到内存setbuf函数具有打开和关闭缓冲机制。为了带缓冲进行I/O,参数buf必须指向一个长度为BUFSIZ(定义在stdio.h头文件中)的缓冲区。通常在此之后该流就是全缓冲的,但是如果该流与一个终端设备相关,那么某些系统也可以将其设置为行缓冲。为了关闭缓冲,可以将buf参数设置为NULL。用 法: void setbuf(FILE *fp, char *buf);示例:#include <

2020-08-30 17:41:03 2820

原创 GDB基本调试命令

内容概要:[1]GDB基本操作; [2]调试coredump; [3]GDB远程调试; [4]使用GDB的注意点; [5]GDB看不到源码1. GDB基本操作[root@WORK /]# ps -ef | grep -E 'fos_|p_|b_' --- 获取fos进程pid[root@WORK /]# ps -a[root@WORK /]# gdb attach <pid>(gdb) help --- 万能的help!!...

2020-08-23 19:54:35 764

原创 二进制文件调试工具: readelf/nm/ldd

1、readelf readelf -s libxxx.so | grep "symbol" ---查看符号是否存在 类似于nm libxxx.so | grep "symbol" readelf -d main.exe ---查看进程/动态库所依赖的动态库信息 readelf -d main.exe | grep TEXTREL ---查看动态库是否PIC,gcc选项-fPIC readelf -h main.exe ...

2020-08-23 19:48:34 777

原创 Linux下网站平台的搭建 - MySQL+apache+PHP

搭建条件:必须有apache、php、MySQL的联合支持。静态安装:顺序:1)首先安装MySQL ;2)其次安装PHP ;3)最后安装apache。动态安装:顺序:1)首先安装MySQL ;2)其次安装apache ;3)最后安装PHP。在这里只讲一下动态安装的具体方法,注意:安装顺序不可颠倒。一、MySQL的安装 1.下载所需文件(Linux访问Windows,从Windows下载文件步骤:) a>两台计算机必须在同一网段; b>Linux...

2020-08-23 19:41:19 478

原创 Linux开机自动运行常用设置方法

1、登录自动运行,/etc/profile[root@WORK /]# vim /etc/profile### 通常环境变量在此设置!!if [ -z "$(echo $PATH | grep 'XXX')" ]; then export PATH=/home/XXX/WindRiver/wrlinux-4/sysroots/fsl_p2020-glibc_cgl/x86-linux2: /home/XXX/WindRiver/wrlinux-4/layers/wrll-toolchain-4..

2020-08-23 19:31:39 488

原创 ssh远程计算机避免重复输入密码方法

设置方法:1. 本地主机上,执行 ssh-keygen -t rsa 生成密钥。提示输入密钥保存位置以及密码时,直接回车,默认即可。 公共密钥保存在 ~/.ssh/id_rsa.pub;私有密钥保存在 ~/.ssh/id_rsa;2. 把公共密钥(id_rsa.pub)复制到需远端主机上,保存到 ~/.ssh/authorized_keys文件中。注:若生成的 ~/.ssh 文件夹缺少读写权限,执行 chmod 755 ~/.ssh,修改 .ssh 目录的权限;按照上述步骤设置之后,本地..

2020-08-23 19:24:45 839

原创 浅谈C语言表达式中的整形提升

C语言发明人丹尼斯·里奇与肯·汤普逊关于整型提升(integral promotion)的定义为:"A character, a short integer, or an integer bit-field, all either signed or not, or an object of enumeration type, may be used in an expression wherever an integer maybe used. If an int can represent all t

2020-08-16 20:46:05 383 1

原创 二叉排序树之红黑树

红黑树的介绍先来看下算法导论对R-B Tree的介绍:红黑树,一种二叉搜索树(Binary Search Tree,BST),但在每个结点上增加一个存储位表示结点的颜色,可以是RED或BLACK。既然它是一种BST,它就具有BST的一般性质。通过对任何一条从根结点到叶子结点的路径上结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。这里,必须要注意,红黑树不像AVL,是高度平衡的BST,红黑树不是绝对平衡的,它存在某结点的左右子树高度差大于二的情况。

2020-08-16 19:32:55 707

原创 忘记root密码的解决方法

一、Ubuntu系统开机按住ESC键或Shift键进入Grub菜单。按"e"修改第一条 "Ubuntu, 2.6.xxx-generic"修改倒数第2行: "linux /boot/vmlinuz-* ro quiet splash” 改为 "linux /boot/vmlinuz-* rw single init=/bin/bash"按 Ctrl+x 重启系统输入 passwd ro...

2018-08-05 18:05:26 438

原创 Linux系统Eth口IP/MAC修改方法

一、修改以太口IP地址的临时方法,重启电脑之后失效ifconfig eth0 192.168.200.128 up 二、永久修改IP/MAC方法注:以下步骤是为了解决虚拟机克隆后,默认占用eth1,无法使用eth0问题。其他情况可参考之解决!1、先删除/etc/udev/rules.d/70-persistent-net.rules文件;2、修改/etc/sysconfig/n...

2018-08-05 17:32:23 3137

原创 git diff获取差异文件名显示中文乱码的解决办法

通过git diff命令对前后两次commit版本进行差异化的对比,中文名的文件显示为乱码。git diff HEAD^ HEAD --name-only  "pcsim/testcase/2018/01/\345\210\206\346\224\225\206\265\368\210\210\224\257\350.txt"  "pcsim/testcase/2018/01/\345\210...

2018-06-10 17:03:55 8097 2

原创 Git:获取本次commit的新旧差异文件的压缩包

目前各大通信公司都在逐渐用Git工具替换SVN来管理版本代码。通常开发人员提交代码之后,需要审核通过才能入库。为了便于审核人员review修改代码,一般需要提供本次commit的新旧差异文件的压缩包。下面将提供一种获取差异文档的方法:# 获取本次提交的commit id 和 修改(或增删)文件列表COMMIT_ID=`git rev-parse HEAD`DIFF_FILES=`git diff ...

2018-04-15 19:46:20 1670

原创 交叉编译工具链制作

交叉编译工具链制作基本概念交叉编译就是在一个平台上生成另一个平台上的可执行二进制。这两个平台可以是不同的体系结构和不同的操作系统。例如,在嵌入式系统C/C++开发过程中,常常需要在x86/x86_64主机上编译出可执行程序,给arm或powerpc体系结构的设备运行。 交叉编译的两个概念:宿主机(host):编译程序的平台,一般是基于x86的PC

2017-09-24 16:15:16 3083

原创 Linux下内存检测工具:asan

Linux下内存检测工具:asanASAN(Address-Sanitizier)早先是LLVM中的特性,后被加入GCC 4.8,在GCC 4.9后加入对ARM平台的支持。因此GCC 4.8以上版本使用时不需要安装第三方库,通过在编译时指定编译CFLAGS即可打开开关。1、编译选项1.1 Gcc编译选项# -fsanitize=address:开

2017-09-24 14:18:24 51537 2

原创 Linux下代码覆盖率工具:gcov

Linux下代码覆盖率工具:gcov对于C/C++软件开发,常常需要通过代码覆盖率报告来了解测试用例的场景覆盖情况,对于测试用例未覆盖的代码分支流程,需要补充用例,以保证测试用例的全面性与完整性,不漏测任何一个分支BUG。Linux下可用gcov工具生成覆盖率统计信息,然后借助gcov的图形化工具lcov,可生成html格式的代码覆盖率报告,进一步提高覆盖率测试结果的可读性。

2017-09-17 13:34:14 5360 1

原创 Shell脚本:命令选项参数处理

Shell脚本:命令选项参数处理Shell脚本的参数处理主要分三种情况,下面我们一一演示说明。1、不带选项的参数处理首先,我们通过一个不带选项的参数处理脚本,让大家了解一下shell脚本的常用内置参数。#!/bin/bash echo$0  # 脚本名,带执行时的路径,类似于C语言中的argv[0]echo$1

2017-09-17 10:43:58 5274

原创 Linux下性能检测工具:gprof

1、简介嵌入式C/C++软件开发&测试过程中,经常遇到某个模块软件运行耗时长,导致影响用户使用,或使业务性能指标劣化情况等。这个时候,我们就需要特别关注程序的性能。如何才能更好地优化程序性能呢?首先我们必须找到性能瓶颈点。在linux系统平台上,为了找到关键路径,我们可以利用profilng技术,使用gprof或oprofile工具。gprof是GNU binutils

2017-09-10 18:07:07 2506

原创 Linux命令详解:md5sum

1、简介MD5算法一般用于检查文件完整性,尤其常用于检测在(网络)文件传输、拷贝、磁盘错误或其他无恶意涉入的情况下文件的正确性。MD5全称报文摘要算法(Message-DigestAlgorithm 5)[RFC 1321],该算法对任意长度的信息进行逐位计算,产生一个二进制长度128位(十六进制长度32位)的校验和(或称“指纹”,“报文摘要”),不同的文件内容生成相同的报文摘要的

2017-09-04 23:03:02 53854

原创 数通平台软件:编译体系实现

数通平台软件:编译体系实现数通平台是一项规模庞大的软件工程,软件代码量少则数百M,多则达到几个G甚至十几个G。同时,数通平台软件支持多种可定制化需求,如支持多产品形态,支持多操作系统,支持多种CPU类型,支持多种版本类型,支持指定组件/模块编译等等要求。因此,仅仅依靠《Linux下automake使用方法》中简绍的autoconf与automake方法,显然是无法胜任数通平台软

2017-08-27 21:01:09 1124 1

转载 Linux下automake使用方法

  作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。  在本文中,将给大家介绍如何使用 autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以像常见

2017-08-13 12:07:37 310

原创 数通平台软件的封装库:对象管理库

数通平台软件的封装库:对象管理库数通平台软件中,信息通信区分为即时消息通信和持久型数据传输。即时消息通信库有单播库,多播库;持久型数据传输有单播同步库,多播同步库。由于单播/多播同步库必须保证传输信息的可靠性、有序性,兼顾传输效率,同时支持传输数据对象的创建、删除与更新操作等,因而实现了对象管理库(OM)满足持久型数据的传输要求。对象管理库数据结构如

2017-08-05 22:05:13 514

原创 数通平台软件:软件升级兼容性考虑

数通平台软件:软件升级兼容性问题的一种解决方法数通平台软件为了提高设备可靠性和可维护性,通常会支持进程重启,甚至是组件级重启。实现进程或组件重启的目的不是为了简单规避故障,而是为了软件升级。数通平台系统的运作是依靠消息驱动的。如果需要支持进程或组件级重启升级,就必须考虑兼容性问题,通常是在该(进程中的)组件与其他组件或模块的消息收发过程。那么,通常如何解决兼容性问题呢?

2017-08-04 21:51:50 1178

原创 Lua技术总结

最近的工作中,用到Lua脚本来完成网管、CLI命令的下发或回显。系统框架C代码调用Lua完成命令参数解析,在Lua中调用C码完成数据库(DB)读写等,感觉有点意思,于是稍微花点时间琢磨了一番!Lua是一个小巧的脚本语言,由巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)的一个研究小组,由Roberto Ieru

2017-07-09 22:19:06 911

原创 C语言:动态库加载

路由器网络操作系统,是一个多进程、多线程的系统,一般由根进程(监控或守护进程)、系统管理进程和N个业务进程组成。其中,根进程与系统管理进程必须存在,用于加载系统中的基础组件,而业务进程的加载与否比较灵活,由配置文件确定,完全可以根据实际需要新增或裁减。一个业务进程,通常是一个公共的容器进程文件,在被系统管理进程拉起(fork+execv)之后,根据不同的业务配置文件,通过dl库打开不同

2017-07-08 23:08:42 1522

原创 Shell脚本:倒数计数的屏显小程序

一个小程序献给Shell Script的初学者玩儿~,或许它能激起你学习的兴趣#!/bin/bashBOOT_DELAY_COUNT=5echo -n "APP will run in seconds:  "while [ ${BOOT_DELAY_COUNT} -ge 0 ]do echo -ne "\b${BOOT_DELAY_COUNT}" read

2017-07-02 19:20:08 1212

原创 Shell脚本:人机交互脚本-scp

前面两篇博文中,为大家演示了shell脚本中su和ssh命令的免验证输入实现:http://blog.csdn.net/hanlizhong85/article/details/74089997http://blog.csdn.net/hanlizhong85/article/details/71055940本文将进一步演示,通过expect工具实现scp命令免密输入的方法

2017-07-02 18:49:00 2013

原创 Lua脚本:C调用Lua实现方法

本文主要演示C程序调用Lua脚本的基本实现方法,并解决实践过程中遇到的问题。特别说明,由于lua-5.1.x版本与后续版本的接口函数的差异较大,为保证本文提供小程序可直接在你本地调试通过,请安装5.2以及后续版本的Lua开源软件。系统环境和Lua版本要求请参考(内含Lua开源软件下载和安装方法):http://blog.csdn.net/hanlizhong85/article

2017-07-02 10:59:10 1109

gprof2dot.py

一个Python语言工具脚本,用于gmon.out生成dot文件。该脚本可以直接下载使用。如果想要显示全部的函数调用,可以 gprof2dot -n0 -e0,默认是n0.5,即影响小于5%的函数就不显示了。当然,这样图片会很乱,因为显示内容太多,可以 gprof2dot -n0 -e0 -s #-s表示不显示诸如模板,函数入口参数等等。

2017-09-10

expect开源软件及其依赖库

压缩包中包含expect-5.44.1.15.tar.gz,以及其所依赖的tcl8.5.9-src.tar.gz和tk8.5.9-src.tar.gz

2017-07-01

Lua-5.3开源软件与中文手册

压缩包中包含lua开源软件 lua-5.3.4.tar.gz,与lua中文手册 Lua-5.3中文手册.pdf

2017-06-28

Lua开发调试工具

本资源包中包含Windows环境下的Lua编辑、调试工具,以及Lua中文用户手册。

2017-06-24

平衡二叉树-红黑树的实现

平衡二叉树-红黑树的实现

2017-05-12

平衡二叉树-AVL树的实现

平衡二叉树-AVL的实现

2017-05-12

双栈实现计算器

用双向栈实现一个计算器,可完成 2+3*(9-3)= 的计算

2017-05-12

链HASH表的实现

链Hash表的实现源码

2017-05-12

通用双向链表

通用双向链表,数据类型通用化。更高级的做法是节点话,链表节点中剥离数据,这也是软件工程中常用方法。

2017-05-12

双向链表实现

双向链表实现C源码

2017-05-12

深入理解Linux内核第3版

深入理解Linux内核第3版,经典好书!

2017-05-12

VisualC++自学21日

VisualC++自学21日,C++快速入门书籍。

2017-05-12

TCP/IP协议详解

TCP/IP协议详解,通信基础知识。

2017-05-12

集群环境下实现异步交互模式通信的系统及方法

FH151-1228 集群环境下实现异步交互模式通信的系统及方法,主要讲述了一中异步交互模式-AIM的实现原理。 注:文档已申请专利。

2017-05-12

ISO-C标准1999

ISO-C标准1999,C语言开发人员必备手册。

2017-05-12

GDB用户手册

GDB用户手册,gdb调试参考

2017-05-12

makefile中文手册

GNU_makefile中文手册.pdf

2017-05-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除