markitdown入门指南
简介MarkItDown 是微软开源的轻量级 Python 工具,用于将各种文件格式转换为 Markdown。它专为 LLM(大语言模型)和文本分析管道设计,能够保留重要的文档结构(标题、列表、表格、链接等)。 为什么选择 Markdown?Markdown 接近纯文本,标记最少,但仍能表示重要的文档结构。主流 LLM(如 GPT-4o)原生”讲”Markdown,在响应中经常自发使用 Markdown 格式。这表明它们在大量 Markdown 格式文本上进行了训练,能够很好地理解它。作为额外好处,Markdown 约定也非常节省 token。 支持的格式 PDF - 便携式文档格式 PowerPoint - 演示文稿 Word - 文档 Excel - 电子表格 Images - 图片(EXIF 元数据和 OCR) Audio - 音频(EXIF 元数据和语音转录) HTML - 网页 Text-based formats - CSV、JSON、XML ZIP files - 遍历内容 Youtube URLs - YouTube 视频 EPubs - 电子书 以及更多! 快...
andrej-karpathy-skills入门指南
简介andrej-karpathy-skills 是一个旨在改善 Claude Code 行为的项目,其核心理念源自 AI 领域知名专家 Andrej Karpathy 对 LLM 编程陷阱的深刻观察。 解决的问题Andrej Karpathy 在其推文中指出了 LLM 编程时的常见问题: “模型会替你做出错误的假设,然后不加验证地继续执行。它们不管理困惑,不寻求澄清,不暴露不一致性,不呈现权衡取舍,不在应该的时候提出反对。” “它们喜欢过度复杂化代码和 API,膨胀抽象层,不清理死代码……用 1000 行代码实现本可以用 100 行完成的功能。” “它们有时仍会作为副作用更改/删除它们不够理解的注释和代码,即使这些与任务正交。” 核心价值通过一个简单的 CLAUDE.md 文件,该项目提供四大原则来直接解决上述问题,帮助 AI 助手生成更简洁、更准确的代码。 核心原则项目包含四个核心原则,每个原则针对特定的 LLM 编程问题: 原则 解决的问题 先思考后编码 错误假设、隐藏困惑、缺失权衡 简单优先 过度复杂化、膨胀的抽象层 精准修改 正交编辑、...
graphify入门指南
graphify 入门指南简介graphify 是一个强大的 AI 编码助手技能,它能将你的代码库、文档、论文、图片、视频等转换为知识图谱,帮助你快速理解代码库结构,发现架构决策背后的”为什么”。 核心价值 71.5x 更少的 Token 消耗:相比直接读取原始文件,查询知识图谱效率提升数十倍 多模态支持:代码、PDF、Markdown、截图、图表、白板照片、视频、音频文件 25 种编程语言:通过 tree-sitter AST 解析(Python、JS、TS、Go、Rust、Java、C、C++、Ruby、C#、Kotlin、Scala、PHP、Swift、Lua、Zig、PowerShell、Elixir、Objective-C、Julia、Verilog、SystemVerilog、Vue、Svelte、Dart) 跨会话持久化:知识图谱保存在本地,随时可查询 工作原理graphify 运行三个阶段: AST 解析:从代码文件中提取结构(类、函数、导入、调用图、文档字符串、注释),无需 LLM 音视频转录:使用 faster-whisper 本地转录视频和音频文件,转录...
Hexo博客搭建指南
本指南基于 Hexo 官方文档及多个实战教程整理,帮助你从零开始搭建属于自己的静态博客。 目录 前言:为何选择 Hexo? 环境准备 安装 Hexo 并初始化博客 基础配置 写作与发布 主题美化 部署到 GitHub Pages 常用命令速查 进阶技巧 常见问题解答 前言:为何选择 Hexo?Hexo 是一个快速、简洁且高效的博客框架。它使用 Markdown 解析文章,在几秒内即可利用靓丽的主题生成静态网页。 Hexo 的优势 特性 说明 极速生成 亿级文件也只需几秒,高效转换为静态页面 Markdown 支持 使用 Markdown 写作,简洁高效 丰富主题 拥有大量精美主题,可自由定制 一键部署 支持 GitHub Pages、Vercel、Netlify 等多种部署方式 Git 版本控制 所有内容都在本地,便于使用 Git 进行版本管理 完全免费 配合 GitHub Pages 可实现零成本托管 适用场景 个人博客 技术分享 作品展示 项目文档 环境准备在开始之前,你需要安装两个必要的工具:Node.js 和 Git。 1....
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment
IDEA编译Spring源码
IDEA编译Spring 5.2.x源码参考:Spring 5.2.x 源码编译1 Spring 5.2.x 源码编译2 spring源码下载地址:github gitee gitee下载速度更快一点 编译环境: 123JDK:1.8.0_202Gradle:5.6.4IDEA:2019.3.5 Gradle版本是5.6.4,因为spring 5.2.x版本使用的是Gradle5.6.4版本构建的 在该路径下:Spring-Framework/ gradle/wrapper/gradle-wrapper.properties,能看到spring需要的gradle版本,下载对应的版本安装gradle就行,否则会出现错误。 spring的gradle配置里面添加阿里云镜像库: 添加阿里云镜像是加快下载spring源码依赖的jar包。如果不使用阿里云镜像库,下载速度很慢,需要等两三个小时。 1.修改源码根目录的build.gradle文件,增加阿里云镜像库 123maven { url 'https://maven.aliyun.com/nexu...
TreeSet
TreeSetTreeSet 约等于 TreeMap 12public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializable TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。 TreeSet 继承于AbstractSet,所以它是一个Set集合,具有Set的属性和方法。 TreeSet 实现了NavigableSet接口,意味着它支持一系列的导航方法。比如查找与指定目标最匹配项。 TreeSet是基于TreeMap实现的。TreeSet中的元素支持2种排序方式:自然排序 或者 根据创建TreeSet 时提供的 Comparator 进行排序。这取决于使用的构造方法。 TreeSet为基本操作(add、remove 和 contains)提供受保证的 log(n) 时间开销。另外,TreeSet是非同步的。 它的iterator 方法返回的迭代器是fail-fast的。 排...
CopyOnWriteArrayList
CopyOnWriteArrayList复合操作需要程序自己控制线程安全 特性12public class CopyOnWriteArrayList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { 特性基本与arrayList一致,底层也是数组结构 基本属性12345private static final long serialVersionUID = 8673264195747942595L;//序列化版本号//全局锁final transient ReentrantLock lock = new ReentrantLock();//存储数据的数组private transient volatile Object[] array; 构造器123456789101112131415161718192021public CopyOnWriteArrayList() { setArray(new Object[0]);//创建一个...
LinkedList
LinkedList特性12public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable 1、继承于 AbstractSequentialList ,本质上面与继承 AbstractList 没有什么区别,AbstractSequentialList 完善了 AbstractList 中没有实现的方法。 2、Serializable:成员变量 Node 使用 transient 修饰,通过重写read/writeObject 方法实现序列化。 3、Cloneable:重写clone()方法,通过创建新的LinkedList 对象,遍历拷贝数据进行对象拷贝。 4、Deque:实现了Collection 大家庭中的队列接口,说明他拥有作为双端队列的功能。 LinkedList与ArrayList最大的区别就是LinkedList中实现了C...
Vector
Vector12345public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable Vector中的操作是线程安全的。 Vector加synchronized锁后真的是线程安全?不是,因为锁的是方法,锁的粒度不一定是线程安全的。 复合操作需要程序自己控制线程安全 与ArrayList不同的地方: 所有方法都加了synchronized关键字 Vector没有空数组的设计 123ArrayList:private static final Object[] EMPTY_ELEMENTDATA = {};private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; 扩容因子不一样,Vector的扩容因子是2,ArrayList的扩容因...