程序员必须搞懂的换行符:\r、\n、\r\n 全解析
程序员必须搞懂的换行符:\r、\n、\r\n 全解析在编程、文本处理、Git、日志系统或网络协议中,经常会看到这些字符: 123\r\n\r\n 很多人知道它们和“换行”有关,但为什么会有这么多种?不同系统为什么不一样?工程中应该怎么处理? 本文会从 历史 → 系统差异 → 开发实践 → 常见坑 → 通用技巧 全面讲清楚。 一、什么是 \r 和 \n在 ASCII 控制字符中: 字符 名称 ASCII 含义 \r Carriage Return 13 回到当前行开头 \n Line Feed 10 移动到下一行 \r:将光标移动到当前行最左边 \n:将光标向下移动一行 这两个字符来自打字机时代。当时打印一行文字需要两个动作: Carriage Return:打印头回到行首 Line Feed:纸张向上滚动一行 因此两个字符组合才能真正开始新的一行。 (GeeksforGeeks) 二、为什么会有 \r\n在早期打印设备中: 12CR → 回到行首LF → 向下移动一行 如果只执行: 1LF 打印头会停在原来的列位置。 例如: 12...
哈希算法
什么是哈希算法?散列函数(英语:Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或 hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。 Hash 函数是一种将集合 S 转换成具有固定长度的、不可逆的的集合 U 的单射,它的值一般为数字合字母的组合,Hash 函数拥有无限的输入空间,却只有有限的输出空间,这意味着 Hash 函数一定会产生碰撞,一个好的 Hash 函数可以显著的降低碰撞概率。Hash 函数一般有一下特征: 一致性。Hash 函数可以接受任意大小的数据,并输出固定长度的散列值,同时输出不同值的概率应该尽可能一致。如 CityHash128,不管原始数据有多大,计算得到的 hash 值总是 128 bit。 雪崩效应。原始数据哪怕只有一个字节的修改,得到的 hash 值都会发生巨大的变化。 单向。只能从原始数据...
在Trae中使用UI UX Pro Max
前言偶然发现ui-ux-pro-max-skill这个开源项目,可以用来设计好看的UI界面,但苦于一直不知道怎么用抽空了个时间研究研究,在bilibili上发现trae中可以接入使用,并且还有免费的模型 接入步骤1.用trae打开一个文件夹2.在trae中创建一个智能体,其他什么也不用填3.添加技能(SKILL)设置->规则合技能->项目规则->创建4.添加Skill内容上一步会在当前目录下创建一个markdown文件然后把github上这个文件中的内容复制过来5.用智能体创建界面切换至自定义智能体切换模型,我这边用了GLM-4.7输入“Design a calculator”,AI就开始自己生成界面了创建完成后,本地用浏览器打开calculator-retro.html预览一下效果还是很惊艳的!
WSL保活方法
WSL保活方法如果没有任何活动的 wsl 终端, 每过一段时间 windows 会将 wsl 关闭 可以通过 vbs 脚本简单实现这个功能 1234Set shell = CreateObject("WScript.Shell") ' 这里的 Ubuntu 替换成你实际的发行版名称 ' 0 代表隐藏运行,False 代表不需要等待进程结束 shell.Run "wsl.exe -d Ubuntu-24.04 -u root -- sleep infinity", 0, False 把这个 vbs 脚本放到开机自启目录中,可以实现开启自启动 文章作者: kaxifa更多内容: https://kaxifa.eu.org
WSL,VM,安卓模拟器共存的方法
WSL,VM,安卓模拟器共存的方法WSL使用version2正常安装 VMware安装16之后的版本,然后在虚拟机设置->硬件->处理器->虚拟化引擎,所有都取消勾选 安卓模拟器使用mumu12
AI,让我们从最简单的to-do-list开始
AI,让我们从最简单的to-do-list开始产品构思工作中经常会需要用到代办事项,但好用的to-do-list工具大多是要收费的。第一次使用trae,让我们试试能不能自己做一个to-do-list. 产品名称:to-do-list 产品功能: 代办事项记录、删除 开发环节1.创建项目 我们点击运行,来创建项目 不多一会儿,我们就能看到项目已经创建 但命令行却卡在了npm install中,并且Builder也一直显示运行中 问题不大,我们停止下当前命令,再发送一次命令 这次命令成功集成了tauri,不过又卡在了命令运行中,可见trae对于运行命令行功能还有些欠缺 我们手动执行下npm install 2.启动项目接下来我们先把项目启动,初始的package.json文件中并没有tauri的启动命令,我们让trae新加一下 很快,trae做的很棒,我们只需要采纳一下 我们用npm run tauri:dev启动下项目 但命令行报错找不到tauri 来问一下trae 加上依赖并npm install一下 然后我再运行一下npm run tauri:dev,可以看到...
