Verne in GitHub

Java collections

Java 容器是 JDK 为 Java 使用者设计好的一套基础的数据结构。 Collection 是接口,包含 List 、Set 和 Queue。List 有序,Set 无序不允许重复元素。 List 实现类有 [[LinkedList]], [[ArrayList]], Vector, Stack Set 的实现类 HashSet, [[TreeSet]]。HashSet 依赖 HashMap,TreeSet 依赖 TreeMap。 Queue 有 LinkedList,PriorityQueue, ArrayDeque 其中 Read more ...

2015-09-20 java , jdk , design-pattern , collection

GitLab 学习笔记

Here is some config file paths and some commands I used to deal with GitLab. This is a learning note, not an instruction of installing GitLab on your server. For the detail of installation, please check the official site and playlist I create on Youtube. config gitlab 主要配置目录 / Read more ...

2015-09-20 gitlab , git , notes

1980也不会存在的爱情

莫名奇妙的陪同学看了这场电影,看之前完全没有了解,只是听说这部电影是在他们那里拍摄的,其他的一无所知。而看之前也同样在豆瓣了解过,5.2的评分让我完全不抱希望,只是同学一再推荐就去了。 只是一部文艺电影,坐在电影院里我一再告诫自己,于是电影就开始了。开场部分大段大段的自白,缓慢的镜头,那个叫做公母寨的地方确实很美,其实整个故事很简单,一个下乡的青年遇到了曾经的初恋,发生了一段美好的故事,虽然结局很悲惨,但过程很美好。这是一个很美好的青春故事,夹杂着那个时代,那个地点特有的符号,特有的宁静,特有的风景,原本应该是一个既能看风景又能看颜值的美好爱情片, Read more ...

2015-09-17 影评 , 霍建起 , 野夫

Jekyll markdown syntax

GitHub 官方默认使用的 markdown 解析器是 kramdown,他的语法和 markdown 定义的内容相差无几,只有一些些扩充,下面是一些常用的 markdown 语法以及在本博客中可能会使用到的语法内容,如果想要了解 kramdown 的语法可以参考官方的 ref。 h1 Heading h2 Heading h3 Heading h4 Heading h5 Heading h6 Heading Horizontal Rules Emphasis This is bold text This is bold Read more ...

2015-09-10 intro , beginner , jekyll , tutorial

每天学习一个命令:Linux screen 使用介绍

Screen 是用另一个比较轻便的终端复用工具,[[Tmux]] 可以参考另外一篇文章。Screen 让用户可以在一个终端中开启单独不同的 “screen” 终端窗口来使用。我们都知道使用 ssh 连上服务器之后如果因为网络问题终端了当前连接,那么正在执行的任务也会因此中断,所以我们可以将长时间的任务放到 Screen 中执行,即使因为网络问题断开了 SSH 连接,再次使用 SSH 连上之后也可以轻松的恢复之前的任务。 Screen 让用户之前也可以分享 Session,只要 Screen 状态存在,其他用户也可以 detach/attach 到相关的 Read more ...

2015-09-07 screen , tmux , linux , commands

解剖朴字读音

百科解释 维基百科上面的解释,百毒百科大概的解释也类似 在现代标准汉语读音里,有两种分歧:一种读嫖(piáo)《汉语大词典》;另一种读朴(pú,注音:ㄆㄨˊ)。中国大陆一般取前者,而台湾则取后者。 按《广韵》记载,该字“普角切”,按中古音到北京音的演变规律推导,应该读如po。韩语中“普”读作보(po);“角”读作각(gak),“朴”读作박(pak),符合中古音向汉字韩音的演变规律。而一些保留入声的汉语族语言如粤语、闽南语等也读如“朴”。 在古代,所有情况下“朴”的发音都是“普角切”。唯一的例外是作为姓氏。“朴”姓非汉族姓氏,三国时代 Read more ...

2015-09-03 chinese , pronunciation

Time to say Goodbye to moments

是时候告别朋友圈了,一遍一遍的告诉自己,曾经关闭过很长一段时间的朋友圈,后来又开启了,用过这段时间之后还是选择关闭。关闭之前说过推荐 10 部不得不看的韩国电影,今天推荐完最后一期,也就是最后关闭朋友圈的时候了。 内容匮乏,互动缺失 微信固有的封闭模式导致了微信产生的内容的局限性,原创的内容匮乏,朋友圈中充斥着转载文章,剩下的就是晒吃晒喝晒自己,而对于我,微信的审查机制导致部分文章在我看到之前就已经被删除,白白浪费我加载的时间,其他内容很少找到我感兴趣的,对于各种晒的,其实我也并不是太关心今天吃了什么,喝了什么。而互动性来说,微信是所有 SNS Read more ...

2015-09-02 微信 , 思考 , wechat , social

不得不看的韩国电影

引子 最早接触韩国电影是很久之前的我的野蛮女友,当时地方电视台播放过,那是我印象当中最早看过的韩国电影了,也是为数不多重复看过几遍的电影。说到韩国电影不得不提他们的OST(电影原声),我的野蛮女友让我记住了 I believe 的旋律,而 I believe 的旋律也让我一遍一遍的回想起电影中的情节。这或许就是音乐的魔力,在关键场景播放出动听的背景乐,不仅能够让调动观众的感情,也能让观众在过后听音乐时回想起电影中的一幕幕。曾经有同学和我说过,“有些歌一遍一遍听,听到最后就没有意思了”,其实这个时候我想告诉他,他没有体会到歌声背后发生的故事,听这首 I Read more ...

2015-09-01 电影 , 韩国 , 推荐

Python 参数类型和参数匹配模型

Python 方法的参数种类有很多,而不是通常语言定义的那样, Python 方法的传参能力要比想象的强大很多。很多初学者可能对一些库中带 * 带 ** 的参数类型非常奇怪,但是其实这些语法正是保证 Python 方法传参强大的重要因素。 First Thing 首先要声明 argument 和 parameter 的区别,很多时候这两个单词被直接翻译为参数更导致了很多人无法区分,argument 是调用方发起的称呼,parameter 是定义方法时使用 def foo(a, b): # <- a and b are "parameters Read more ...


Python 方法的参数传递 argument passing 引用传值

Argument passing 指的是方法传参,对象是如何被传送到方法作为输入的。 下面是传参的几个要点: Arguments are passed by automatically assigning objects to local variable names. 参数被传递后自动将赋值给局部变量名 Assigning to argument names inside a function does not affect the caller 在方法内部对参数进行赋值,不会影响调用者 Read more ...

2015-08-24 python , argument-passing , notes

最近文章

  • 入手 GL.iNet Comet Pro(RM10):支持 Wi-Fi 6 的远程 IP KVM 家里的 [[Homelab]] 一直是一台 4 盘位的小主机跑 [[Proxmox VE]],上面跑着 Ubuntu 虚拟机、一堆 Docker 服务和下载机。平时远程管理全靠 SSH 加 [[Tailscale]],只要系统还活着基本没什么问题。真正让我不放心的是系统起不来的时候:升级内核后卡在启动界面、改网卡配置时手滑导致网络没起来、BIOS 被重置后不再从正确的硬盘启动,这时候 SSH 连不上,Tailscale 也不会在线,人不在家就只能干等。最近正好赶上一波促销,我入手了 [[GL.iNet]] 的 Comet Pro(型号 GL-RM10)远程 [[IP KVM]],叠加各种限时优惠之后实际支付 590.76 元,算是把 Homelab 远程管理的最后一块短板补上了。
  • 呆呆面板 MCP 配置教程:让 Claude、Cursor 用自然语言管理定时任务 前两天写了一篇 呆呆面板 daidai-panel:轻量级青龙面板替代品介绍与 Docker 部署教程,在那篇文章里我提到呆呆面板和 [[qinglong 青龙面板]] 最明显的代差是内置了 [[MCP]] 服务,但只是简单带过。面板搭起来、脚本陆续迁移进来之后,我每天早上要做的第一件事就变成了打开面板,挨个看昨晚哪些任务失败了、报的什么错、是 Cookie 过期还是网站改版。这种重复又琐碎的巡检,恰好是 AI 最擅长替人做的事情。所以这一篇就专门聊聊呆呆面板的 MCP 怎么配置、怎么接入不同的客户端,以及在权限上应该怎么取舍。
  • 呆呆面板 daidai-panel:轻量级青龙面板替代品介绍与 Docker 部署教程 Homelab 里跑久了,总会攒下一堆零散的小脚本:每天早上抓一次汇率发到 Telegram,定时检查几个网站的证书有没有快过期,隔一段时间把某个 API 的数据拉下来存一份,再加上各种网站的自动签到。最开始我都是直接写进服务器的 crontab,时间一长就发现问题很多,脚本散落在不同的机器上,日志不知道去哪看,失败了也没人通知,Python 依赖装在系统里还经常和别的东西打架。几年前我为此折腾过 [[qinglong 青龙面板]],最近在 GitHub 上又看到一个定位几乎一样、但更轻量的新项目,叫呆呆面板([[daidai-panel]])。
  • RAGFlow:以深度文档理解为核心的开源 RAG 引擎介绍与部署使用教程 这两年我陆陆续续接触过一些 RAG 小工具,从最早自己用 [[LangChain]] 拼一个 demo,到后来用 [[AnythingLLM]]、[[Dify]] 的知识库功能,有一个体验几乎每次都会重演:拿几篇 Markdown 测试的时候效果惊艳,一旦换成真实的业务材料,比如一份带合并单元格的财报 PDF、一份双栏排版的论文、几页扫描的合同,回答马上就开始胡说八道。追查下去会发现问题根本不在大模型,而在最前面的解析和切块环节,表格被拍平成一串没有表头的数字,左右两栏的文字被交错拼接在一起,模型拿到的上下文本身就是错的。也正是因为这个痛点,我在调查 ESP32 小智 AI 后端的时候发现了 [[RAGFlow]],一个可以「深度文档理解」的开源 RAG 引擎。
  • Git 本地忽略文件:.git/info/exclude 的作用与使用技巧 由于本地 IDE、插件、Agent 的差异,所以经常打开项目之后会出现一些只属于我自己的文件,AI Agent 和一些 MCP,Skill 也喜欢在项目根目录里面添加文件。每次 git status 都能看到这一串红色的 untracked 文件,看着很烦,又不太好意思为了自己的习惯去改项目的 .gitignore。这时候我想起了 .git 目录里一个存在感极低的文件 info/exclude,它刚好就是为这种场景设计的。