每天学习一个命令:nl 打印行号

nl 是 number lines of files, 命令用来在 linux 系统中打印文件中行号。nl 可以将输出的文件内容自动的加上行号,其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。 命令格式 nl 命令将文件内容输出到标准输出,并添加行号。 nl [options] [file] 命令参数: -b :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n); -b t :如果有空行,空的那一行不 Read more ...

2016-07-10 linux , nl , command

Evernote 代替品

Evernote 最近一次的 Policy 更新 1 真的太人人失望啦。如果说增加功能,增加收费,我完全不反对,我反对的是将现有的免费功能加入到收费功能中。这是对自己曾经的承诺公然的放弃。 一些代替品: OneNote, Google Keep, WizNote, Simplenote, youdao, Laverna, Joplin http://alternativeto.net/software/evernote/ 我的简单需求: 多平台同步 (Mac, Windows, Linux) + web + Android online Read more ...

2016-07-01 evernote , wiznote , notebook

ssh-copy-id 复制本地公钥命令详解 免密码登录远程主机

背景 ssh-copy-id 命令可以把本地主机的公钥复制到远程主机的 authorized_keys 文件上。authorized_keys 文件用来验证 client 。使用 ssh-copy-id 命令将本地公钥复制到远程主机之后可以实现免密登录远程主机。 简介 ssh-copy-id 用来将本地公钥复制到远程主机。如果不传入 -i 参数,ssh-copy-id 使用默认 ~/.ssh/identity.pub 作为默认公钥。如果多次运行 ssh-copy-id ,该命令不会检查重复,会在远程主机中多次写入 authorized_keys 。 Read more ...

2016-06-29 ssh , password , linux , ssh-copy-id

Android lib Timber

今天查询 Android 在 release 下不显示 Log 信息,偶然间接触到 Timber 这个库。 Android 原生提供了很多调试 Log 的方法,但是如果想要在 release 情况下禁用所有调试信息,除非在原生 Log 外再嵌套实现一层自己的方法,或者使用 ProGuard 。Android 本身没有提供一种简单的方式实现,幸而有大神提供了这样的一个库。 Android 原生 Logcat 分成 v/d/i/w/e/wtf . 官方推荐的最佳实践就是定义一个 TAG 变量: private static final String TA Read more ...

2016-06-24 Android , AndroidDev , 学习

使用 Python BeautifulSoup4 快速获取网页内容

BeautifulSoup4 能够帮助我们从 HTML 或 XML 文件中提取数据 安装 pip install beautifulsoup4 解析器 使用方法 优势 劣势 Python 标准库 BeautifulSoup(markup, “html.parser”) Python 的内置标准库 执行速度适中 文档容错能力强 Python 2.7.3 or 3.2.2) 前 的版本中文档容错能力差 Read more ...

2016-06-21 python , beautifulsoup4 , crawler , html , parser

每天学习一个命令:iftop 流量监控

在类 Unix 系统中可以使用 top/htop 查看系统资源、进程、内存占用等信息。查看网络状态可以使用 netstat、nmap 等工具。若要查看实时的网络流量,监控 TCP/IP 连接等,则可以使用 iftop。 iftop 是类似于 top 的实时流量监控工具。 官方网站:http://www.ex-parrot.com/~pdw/iftop/ iftop 可以用来监控网卡的实时流量(可以指定网段)、反向解析 IP、显示端口信息等。 安装 apt-get install iftop 或者使用源码编译安装 Debian 上安装所需依 Read more ...

2016-06-06 linux , command , iftop , network , monitor

Ubuntu 下安装 Gradle 及简单使用

Gradle 的核心是基于 Groovy 的 领域特定语言 (DSL),目的是为了代替 XML 繁多的构建工具。 自动安装 可以使用这个 PPA sudo add-apt-repository ppa:cwchien/gradle sudo apt-get update sudo apt install gradle 或者根据官网的教程 手动安装。 使用 https://gradle.org/guides/#getting-started Read more ...

2016-06-05 gradle , ubuntu , linux , usage , build-system , jvm , java

Kindle 使用小技巧及常见问题

整理 Evernote 笔记的时候偶然看到这篇文章,总结自己使用 Kindle 一年来的小小经验,以及一些 Tips。 注册 Kindle 邮箱 这个功能非常实用,不然能够节省连接数据线的时间,更重要的是这个活用这个邮箱能够自动化完成很多事情,可是遗憾的事,很多人并不知道这个福利。所以建议在拿到手之后的第一件事情就是查看这个邮箱,设置中 Send-to-KindleE-mail 中查看。 Kindle 可以享受的两个最容易被忽略的功能是: 在线文档存储,亚马逊为每位用户提供至少 5G 的云存储空间 在线文档格式转换,支持格式包括 Read more ...

2016-06-04 kindle , book , 阅读 , amazon , ebook

Spring 中 ThreadPoolTaskExecutor 配置

The Spring Framework provides abstractions for asynchronous execution and scheduling of tasks with the TaskExecutor and TaskScheduler interfaces, respectively. The Spring TaskExecutor abstraction Spring’s TaskExecutor interface is identical to the java.util.concurrent.Executor i Read more ...

2016-05-26 spring , thread , thread-pool , queue

Spring BeanPostProcessor 使用

BeanPostProcessor 接口允许在 Spring Bean Factory 返回 Bean instance 时修改 Bean 的创建过程。这是影响 Bean 生命周期的一部分。 接口有两个方法: public interface BeanPostProcessor { @Nullable default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { retur Read more ...


最近文章

  • 入手 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,它刚好就是为这种场景设计的。