自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 收藏
  • 关注

原创 身处AI浪潮:博客价值的新思考与IT从业者的新征程

自上一篇博文发布后,岁月的齿轮不知疲倦地转动了4年,悄无声息地推动着我们每一个人的生活向前迈进。在这个宏大的时代背景下,每个人都如同沧海一粟,却又在各自的轨迹上经历着独特的变化。

2025-03-12 23:14:31 697

原创 Python 学习简册

Python是一门诞生于20世纪90年代初的计算机语言,经过多年的发展,已经从"脚本"演进为了可用于运维程序,视窗软件,网络服务,科学计算等多方面的通用型语言。在Python的发展过程中,一些新的功能被不断加入,同时一些看起来一样的功能,背后的实现机制也有了变化,此外就语言层面来说也随着时间的推移存在一些不同。这些变化从近些年从python2到python3的迁移过程中也能看到。这份文档是在查看...

2020-03-20 22:59:50 187

原创 Hive拉拉扯扯的order by,sort by,distribute by, cluster by

Hive支持两个层面的排序:全局排序部分排序全局排序用order by col [ASC | DESC]实现,效果和传统的RDMS一样,保证最后的数据全局有序。部分排序用sort by col [ASC | DESC]实现,保证同一个reducer处理的数据有序,对于结果数据则表现为局部有序。Hive对用户提供的同样是SQL,但底层实现却和传统数据库有天壤区别,底层实现默...

2020-02-18 20:10:57 458

原创 互联网设备安装Linux系统后首先需要做事情是安全加固

一般而言位于互联网的Linux设备在刚安装后如果口令复杂度足够,那么在没有做任何额外的操作,开启额外的服务前也是比较安全的。但是操作系统安装后,不可能不使用,既然使用,那么就可能引发安全问题,为此在系统安装完后我们应该做一些基本的安全加固,确保正常的系统使用不容易引发安全问题。在云计算的时代,阿里云,腾讯云等云服务提供商提供了易于获取的计算资源,分别推出了各种低廉的活动优惠,每月甚至低于10RM...

2019-12-04 15:11:47 293

原创 智慧厨房的秘密:当大模型遇见智能体

这一切背后,其实隐藏着两个关键角色——一个是拥有海量烹饪知识的“超级大脑”,另一个则是能够根据实际情况迅速行动的“巧手厨师”。当智能体走进厨房开始动手做菜时,它会根据顾客的具体要求(也就是输入),利用大模型提供的知识,精心制作出令人垂涎欲滴的佳肴(输出)。无论顾客想要一道传统的家乡菜,还是最新流行的创意料理,这位“超级大脑”都能从它的知识库中找到答案。尽管当前的大模型技术展现出的“智能”水平还有待进一步提高,智能体的能力也有待加强。但在这个充满无限可能的时代,大模型与智能体的合作正悄然改变着我们的生活。

2025-04-09 16:34:13 269

原创 大型语言模型(LLM)部署中的内存消耗计算

在部署大型语言模型(LLM)时,显存(VRAM)的合理规划是决定模型能否高效运行的核心问题。本文将通过详细的公式推导和示例计算,系统解析模型权重、键值缓存(KV Cache)、激活内存及额外开销的计算逻辑,并探讨并发场景下显存需求的变化规律。

2025-03-18 00:05:24 1090

原创 离线环境下火狐浏览器Firefox完全信息迁移

火狐浏览器Firefox是一个历史比较久的网页浏览器,当前的火狐采用顺序数字命名的版本号演进,迭代速度较快,Windows上可以自动升级,升级带来了安全更新和功能特性上的变化。火狐浏览器具书签,历史,密码管理等功能,在无法通过网络在不同火狐浏览器间自动同步资料的情况下,可通过完全复制配置信息的方法离线迁移老火狐浏览器中的所有资料到新火狐浏览器中。老火狐浏览器操作:应用程序菜单>帮助>更多排障信息(或者地址栏直接输入about:support)找到配置文件夹一行,点击右边的打开文件夹,退出

2021-10-14 14:58:37 3060

原创 Python Hash操作-MD5-SHA-HMAC

Python标准库提供了计算数据Hash的功能,支持许多不同的算法,常见的MD5, SHA1, SHA256, HMAC均在其中。MD5, SHA1, SHA256在hashlib模块中,HMAC在hmac模块中,但均有一样的接口。通用的使用模式为:构造所需算法的Hash对象通过update方法填入消息数据调用digest或hexdigest获取结果两个模块中均存在new方法用于创建Hash对象,hashlib中还存在和算法同名的构造方法如md5,sha1可直接创建Hash对象,直接通过算法

2021-08-16 16:28:34 584

原创 Python 日志打印

核心概念Python标准库自带日志模块logging,logging中涉及到4个核心组件,这些组件构建了logging体系。Logger: 应用程序直接使用的接口对象,通过logger操作完成表达日志输出要求.Handler: 交付由Logger创建的日志记录(logRecord)到其对应的目的地,比如控制台,文件,网络。Filter:对日志记录(logRecord)进行更细粒度过滤,控制是否应该输出对应的日志记录Formatter: 控制日志输出的格式日志有重要性区分,对应不同的应用场景,

2021-08-06 17:31:05 914 1

原创 CUDA 相关错误

遇到过的 CUDA 相关错误汇总。CUDA Error: initialization error该错误产生的较大原因为CUDA驱动和CUDA工具包版本不兼容所致,每个CUDA工具包都有对应的CUDA驱动,新的CUDA驱动可以兼容老的COUA工具包,反之则可能出现该错误。升级CUDA驱动或降低CUDA版本至两者兼容。CUDA Error: out of memory显存不够,调整程序显存利用方式RuntimeError: Cannot re-initialize CUDA in for

2021-08-06 17:27:25 4116

原创 Python全局变量不被共享的原因

习惯了其它语言开发方式,可能会对Python中全局变量不被共享的感到困惑。“Python中全局变量不被共享”其实是不存在的,造成这个“感觉”的原因是没意识到多进程环境的存在。在Web领域使用较多的Java平台上,一个Web站点启动后可能就只有一个进程,程序环境很可能是一个进程+多个线程,此时全局变量的变更很自然被程序里的所有代码看到。来到CPython世界,由于GIL(全局解释器锁)的存在,无法充分利用CPU的利用效率,生产部署的时候会采用多进程的机制,也就是启动多个CPython来充分使用硬件资源,这

2021-07-26 18:09:41 390

原创 darknet开启GPU(CUDA)编译错误

darknet 支持Nvidia CUDA,CUDA安装按Nvidia提供的步骤按部就班即可。编译前修改MakefileGPU=1开启GPU支持。无法调用nvcc故障信息:/bin/sh:1:nvcc:not found原因分析:系统无法找到nvcc命令解决步骤:检查CUDA是否安装成功,确认/usr/local/cuda/bin存在并有nvcc确认PATH中是否未包含上述目录修改PATHexport PATH=$PATH:/usr/local/cuda/binGPU架构’com

2021-07-21 09:42:36 832

原创 认清Python包的安装位置是dist-packages还是site-packages避免ModuleNotFoundError

作为一个WSGI服务,gunicorn可以通过多种方式安装到系统种。gunicorn官方文档建议debain极其衍生版本系统直接利用系统的包管理能力安装,此时安装位置会在apt 安装位置:/usr/lib/pythonX/dist-packagespip 安装位置:/usr/local/lib/pythonX/dist-packages如果是自行构建的python安装的位置会在/usr/local/lib/pythonX/site-packages主要区别在“dist-packages”与“s

2021-07-20 19:30:50 1123

原创 Windows10家庭版安装Docker Desktop

Docker原本是基于GNU/Linux的系统特性开发的,与GNU/Linux更为类似的一些Unix都未必能完全兼容,何况差异更大的Windows系统。早期要在Windwos系统上安装docker,比较直接的做法就是运行一个Linux虚拟机,然后Docker运行与Linux虚拟机中。事实上早期Docker推出的Windows Docker工具Toolbox就是基于该方案实现的。Window 10/Server 2016时代,Docker推出了新的解决方案Docker Desktop, 提供了基于Windw

2021-07-13 11:35:53 301

原创 Windows的Linux子系统安装配置

Windows 10带来了Linux子系统的特性,这对需要Linux环境的开发工作带来了便利。目前Linux子系统的支持分为两个版本,WSL1和WSL2,两个版本互不冲突可以同时使用,同一个Linux也可在WSL1和WSL2中互换。WSL1早期Linux子系统的支持技术,其是近乎可以使用GNU/Linux下的大部分工具应用,WSL2是当前Linux子系统推荐使用的架构,IO性能得到了提升,同时在保证类和WSL1一样拥有快速方便的使用体验的情况下运行了完整的Linux内核,一些原来不可能的事情也变成了可能,

2021-07-03 23:13:25 521 3

原创 Windows系统cygwin中运行darknet-yolo对象检测模型

yolo(You only look once)是一种实时对象检测算法,效果比较不错。原始的yolo作为源码的一部分基于darknet的框架实现的,darknet用C实现,本身比较小。原始版本的yolo源码编译需要GCC等工具,Windows上用cygwin也可以实现yolo的编译。编译工具安装为实现yolo编译,在cygwin中安装git和编译工具gitgcc-coregcc-g++make用cygwin的安装包直接安装即可。cygwin中也可以激活OpenCV功能后编译,这样后续测

2021-07-02 21:39:07 393

原创 Git使用-git add

新增变更 "git add"新增工作目录的变更到暂存区,新增到暂存区的变更在接下来执行"git commit"时会被提交到版本仓库。在未执行实际的提交前,"git add"不会对仓库历史有任何影响。git add <file>添加所有在<file>文件中的变更到暂存区,等待提交git add <directory>添加所有在<directory>目录中的变更到暂存区,等待提交git add -p交互式地新增...

2020-08-19 21:38:32 423

原创 Git使用-git clone

克隆仓库 git clone用于克隆一个已有的git仓库。"克隆"暗示了其结果是原始仓库的一个完全对等的镜像,其包括自己的版本历史,是一个和原始仓库完全独立的仓库,而不仅仅是一个工作目录的副本。 git clone命令执行后,一个指向原始仓库的远程链接被创建,默认被命名为“origin”,该链接可用来和原始仓库进行信息交换,比如push本地新的改动到远程仓库。git clone <repo>克隆位于<repo>位置的仓库到本地,克...

2020-08-19 21:30:53 868

原创 Git使用-git init

创建仓库“git init”命令用于创建git仓库,其可以在一个已有的非git项目的根目录下执行,把已有项目初始化成为git仓库,也可以用于初始化一个空的目录为git仓库。执行“git init”后,“.git”目录在根目录下被创建,其包括所有当前git仓库所需要的所有信息。除去".git"目录之外,其它任何目录部分都没有任何改变。git init初始化当前目录为git仓库。git init <directory>在指定的目录<directory>创建

2020-08-19 21:22:52 9534

原创 Hive修改Parquet存储的表字段类型

Hive数据表的存储支持多种方式,纯文本和Parque其中的两种。纯文本的优势在于简单,可读,缺点在于无压缩,效率;Parque的优势在于计算高效,可压缩的列存储模式,缺点在于比纯文本多了一层定义带来的复杂性。Hive数据表的字段修改,可以通过alter table name change column column_name new_column_name type;进行重命名和(或)类型修改。文本文件由于其天然的简单性,数据中不含有类型信息,完全为数据本身,类型信息完全由Hive进行维护,所

2020-08-14 10:33:44 2612

原创 Java实现删除目录

Java文件处理传统的API是java.io.File这是一个在Java早起就一直有的API。从Java7开始,Java引入了另一套新的API来处理文件。java.nio.file.Files;java.nio.file.Path;java.nio.file.Paths;但无论是File的删除方法File.delete();还是Files的删除方法Files.delete(path);都只能用于删除文件或空目录,如果目录不为空则会抛出异常。为了实现非空目录的删除,需要遍历目录

2020-08-13 15:31:04 663 2

原创 Linux临时目录/tmp与/var/tmp

Linux有两个公知的临时目录:/tmp与/var/tmp,这两个目录被用户用于存储临时性的文件,亦经常被程读写用户存储临时性数据。两个目录没有本质上的区别,最根本的区别仅仅是系统对其中文件清理的默认时间配置不一致。/tmp 目录默认清理10天未用的文件,系统重启会清空目录/var/tmp 目录默认清理30天未用的文件redhat6系,可在文件 /etc/cron.daily/tmpwatch中查看到清理的配置。#! /bin/shflags=-umc/usr/sbin/tmpwat

2020-08-05 10:30:54 17072

原创 jupyter配置密码保护

jupyter提供两种认证控制机制:密码保护和token保护,token保护在4.3版本开始会被默认开启,如需要使用密码保护,需要修改配置文件jupyter_notebook_config.py中的配置c.NotebookApp.password = u'your-pass-str'配置文件配置文件jupyter_notebook_config.py的默认位置为:Windwos : C:\Users\USERNAME.jupyter\jupyter_notebook_config.pyOS

2020-06-02 17:33:25 527

原创 部署django应用

django开发时只需要python就能完成,利用其自带的开发服务,可以方便在开发环境运行起应用,但部署于生产时则需要一些额外的操作。配置修改首先是配置的修改,settings.py里有些最小配置需要修改STATIC_ROOT = os.path.join(os.getcwd(), 'static')ALLOWED_HOSTS = ['127.0.0.1']DEBUG = False如果应用里有图片,样式表资源,需要设置STATIC_ROOT; DEBUG模式必须关掉,否则会暴露过多信息造成安

2020-05-31 09:45:11 300

原创 通用的可扩展数据库设计-Entitty-Atribute-Value(EAV)模式

数据库的设计一般都是面向业务的的,这样能够提供最直接的建模,一般也能提供更快的性能。关系型数据库需要在建库时就固定库的结构,有哪些表,有哪些字段,字段的类型…这种”提前确定“在刻画现实世界的时候会存在一些蹩脚的地方,引出Entitty-Atribute-Value(EAV)模式的一个经典案例就是医学临床记录的存储。临床记录多种多样,有数不尽的指标,各个指标的值也不尽相同,血压,心率,咳嗽?显然是不同的指标,有不同的值。以二维表形式组织数据逻辑结构的关系表怎么表示?不断扩充列?显然是不现实的,最主要的原因是

2020-05-14 17:18:26 1832

原创 Excel处理字符的函数

获取子字符串函数功能LEFT(text, [num_chars=1])从文本字符串的第一个字符开始返回指定个数的字符RIGHT(text,[num_chars=1])从文本字符串的最后一个字符开始返回指定个数的字符MID(text, start_num, num_chars)从文本字符串指定字符位置开始返回指定个数的字符拼接函数功能&(操作符)拼接字符CONCATENATE(text1, [text2], …)拼接字符

2020-05-09 16:05:30 286

原创 Python的C扩展源码编译不太易

Python生态的优势之一轮子多,轮子分两类,一类是完全用Python本身写的,另一类是结合或者说使用了C/C++扩展的,由于Python的跨平台,前者安装无忧,后者如果能用到包管理自动搞定也无忧,但是如果没有包管理器,也找不到预编译好的版本,只有源码,那么就可能有点忧愁了,这种情况在Windows平台上比较常见,一些小众的包只有源码,没有预编译的程序。忧愁一:32位还是64位Python本身现在也有32位和64位之分,如果操作系统是32位,那就没问题了,因为Python肯定是32位,但如果操作系统是6

2020-05-08 17:56:46 492

原创 Spring限定性依赖注入-@Primary @Qualifier

Spring自动匹配Bean注入的机制在有多个可选的Bean存在时是不可用的,需要进一步进行相关配置明确消除多个可选Bean存在的歧义性。基于Java注解的注入可通过@Primary 或@Qualify完成。@Primary注解符合@Autowired连接的候选bean有多个,如果依赖注入只需要一个bean, 在只有其中一个bean声明了@Primary的情况下,该bean将会被注入。@Co...

2020-04-30 14:45:55 511

原创 Java I/0流的概念

流(stream)代表了来自某个输入源,或者将要流向某个输出源的一系列数据。按流向,可以分为输入流和输出流。输入流(input stream)通过输入流,数据流入程序,程序读取输入流中的数据。输出流(output stream)通过输出流,数据流出程序,程序写输出流中的数据到数据的接收端。按对数据的处理方式,在比较抽象的层次上可以分为字节流(byte stream)和字符流(...

2020-04-28 15:02:25 286

原创 Java Servlet环境中获取完整的客户端请求地址

客户端请求服务的地址中除了基本的协议,主机,端口信息外,还可能包含查询串,若想获取完整的请求地址,则需要考虑到存在查询串的可能性。一个获取完整客户端请求地址的方法:public static String getFullURL(HttpServletRequest request) { StringBuffer requestURL = request.getRequestURL();...

2020-04-24 10:27:24 437

原创 事物并发读写的可能:幻影读-不可重复读-脏读

伴随着事务的不同隔离等级,会出现不同的读取现象。ANSI/ISO 标准 SQL 92指出两个事务并发执行,一个事务读数据,另一个事务写数据时可能出现的三种情况。幻影读(Phantom reads)事务T1进行两次相同的查询,前后2次查询的结果由于事务T2插入了新数据产生了不同的结果。T1        &nb...

2020-04-22 09:39:57 900

原创 事务的隔离

事物的隔离性决定着并发事务处理时数据状态的正确与否,低级别的隔离可以获得更大的并发事务能力,但是同时意味着并发数据错误发生的可能性较高,相反,高级别的隔离可以降低并发数据错误发生可能性,但是也意味着事务的并发能力将会减弱,事务之间更容易互相阻塞。隔离性是ACID中的一员,ANSI/ISO SQL标准定义了四种隔离等级,由高到低分别是:串行化(Serializable)最高隔离等级,事务串行...

2020-04-21 17:15:22 127

原创 事务的四大性质-ACID

事务具有四大性质,其包括可靠性,一致性,隔离性以及持久性,这四大性质一起保证了数据的可靠,一致,完整。原子性(Atomicity)原子性保证了事务的不可再分,一个事务中的操作或者全部成功,或者全部失败,不会出现部分成功,部分失败的情况。如果事务失败,则数据将会处于事务开始前的状态。一致性(Consistency)一致性保证了事务成功执行后,数据将会从一种合规的状态进入另一种合规的状态,不能...

2020-04-10 09:58:42 2000

原创 Gogs的配置与使用

基本使用gogs是自包含的程序,把包含gogs的压缩包解压后,无需安装,可直接执行。命令行中输入gogs web可以启动gogs服务,首次启动会自动引导到初始化配置页面,按需配置即可。自定义配置的存储位置为 custom/conf/app.ini,可按需配置修改。配置HTTPS在 custom/conf/app.ini 文件中修改(新增)配置选项[server]PROTOCOL...

2020-04-09 10:36:32 2427

原创 版本控制提交规范参考

无规矩不成方圆,在涉及多人协作的项目中,对版本控制系统的提交使用适合于组织的规范,有助于简化后期的管理维护。人生苦短,规范提交提交信息修改规范每次提交,请写明提交信息,并按规定书写提交信息。规范化的提交信息除了便于查阅外,还容易被自动化工具处理。一种参考的格式:修改类型[(影响范围)]: 标题<--空行-->[正文]<--空行-->[页脚]一般而言...

2020-04-08 14:01:18 311

原创 Windows服务的命令行管理

Windows服务除了可以在“服务”组件可视化的管理配置外,也可通过 net 和 sc 工具进行管理。net 控制服务的启停启动服务net start servicename停止服务net start servicenameservicename对每个服务是唯一的,类似ID的作用,而非服务的显示名称。直接输入net可获得使用提示。sc管理服务创建服务sc create se...

2020-04-07 14:53:00 312

原创 JPA中的锁

JPA 2.0开始同时提供了乐观锁(optimistic locking)和悲观锁(pessimistic locking)。乐观锁(optimistic locking)在数据的改变被提交之前,persistence provider检查自从上次读取数据后数据是否被其他事务修改,删除。实体有一个版本属性,与之对应的数据库表中也有一列字段用来表示版本,每次数据被变更,版本号将会被增加,事务在...

2020-04-03 09:31:41 334

原创 MongoDB的文件系统GridFs

MongoDB发展到3.X时代,其一份document的最大尺寸限制为16M,所以超过这个大小的文件是不能作为一个document存储的。MongoDB对于此种需求,提供过了GridFS进行应对。GridFS把文件分割成尺寸较小的块后,再把每一个小块作为一个单独的document进行存储,2.4.10之后的版本默认的块大小为255K,之前的版本为256K。当从GridFS中提取数据时,Mongo...

2020-04-02 17:03:01 498

原创 Git的配置

git可根据使用环境进行一定的配置,git所有的配置信息都是存储在普通的文本文件中的,所以可以通过直接编辑配置文件的方式来配置git。git把分配分为三个层次,分别对应三个层次的配置文件:仓库层次的配置文件 /.git/config用户层次的配置文件 ~/.gitconfig系统层次的配置文件 /etc/gitconfig从下到上,优先级逐步增高。打开任意一个配置文件,可见到类似的...

2020-04-01 09:59:08 289

原创 MongoDB的比较操作符$in

$in操作符用于选择某个域的值等于其后指定的数组中的任意值的文档。{ field: { $in: [<value1>, <value2>, ... <valueN> ] } }域本身可以是数组,此时$in将会选择域数组中有至少任意一值等于其后指定的数组中的任意一个值的文档。单值域的$in匹配db.inventory.find( { qty: { $in...

2020-04-01 09:49:46 5251

空空如也

空空如也

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

TA关注的人

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