jhead 是一个可以查看,修改照片 EXIF 信息的命令行工具,没有 GUI。
jhead 可以查看:
Time and date picture was taken
Camera make and model
Integral low-res Exif thumbnail
Shutter speed
Camera F-stop number
Flash used (yes/no)
Distance camera was focused at
Focal length and calculate 35 mm equ
Read more ...
这是 《精通正则表达式》第 3 版 的读书笔记。
技术图书的主要使命是传播专业知识,专业知识分为框架性知识和具体知识。框架性知识需要通过系统的阅读和学习掌握,而大量的具体知识,则主要通过日常生活的积累以及随用随查的学习来填充。
完整的正则表达式由两种字符构成,特殊字符,元字符,另外一种就是普通文本字符。
完整的正则表达式由小的构建模块单元 building block unit 构成,每个单元都很简单,不过他们能够以无穷多种方式组合,所以可以提供无限的可能。
字符组
匹配若干字符之一,使用中括号 [ea] 匹配 a 或者 e
gr[ae]y
Read more ...
Instagram 的 ID 生成策略是经过精心设计过的。1 每一秒 Instagram 都会收到无数用户上传的照片,在内部使用 [[PostgreSQL]] 分片存储到不同的服务器上。
这就产生了一个问题,要设计一个唯一 ID 生成方法用来标记系统中发布的每一张图片。
系统唯一 ID 需要满足如下条件:
ID 应该是时间有序的,一组照片 ID 列表不再需要外部信息就可以排序(UUID 就不合适,因为完全无序)
ID 最好是 64bit ,可以节省存储空间,索引也可以更小,也方便存储到 Redis 这样的系统中
系统应该尽可能少引入外
Read more ...
Trellis:让 AI 编码代理真正投入生产的框架
最近我一直在思考一个问题:AI 编码工具越来越多,但为什么每次切换工具或开启新会话,都感觉像是从零开始?我用 [[Claude Code]] 写了一段时间,又想试试 [[Gemini]] CLI,但每次都要重新解释项目背景、编码规范、当前任务进度。这种重复性的”上下文喂养”工作,慢慢变成了一种隐性负担。
tiptop:用图表重新定义命令行系统监控
最近在排查一台服务器的性能问题时,我习惯性地打开了 [[htop]],盯着那一列列滚动的数字,试图从里面读出 CPU 负载的变化趋势。说实话,数字本身没什么问题,但当你需要判断”过去几分钟内 CPU 是否有明显的周期性抖动”时,一屏幕的百分比实在不如一条折线来得直观。就在那个时候,我发现了 tiptop 这个工具,用了之后感觉有点相见恨晚。
Claude Code /goal:让 AI 自主持续工作直到达成目标的新命令
用 [[Claude Code]] 写代码时,一直有一个令人微妙不适的摩擦:每当 Claude 完成一轮工作,控制权就回到了我这里,我需要再次发出指令,告诉它”继续”“再检查一遍”“还有这个文件没改”。对于那种需要跑很多轮才能完成的任务——比如把一个模块从旧 API 迁移到新 API 直到所有测试通过,或者逐文件重构某个目录直到符合统一规范——这个”人类中继”的环节就显得相当机械,本质上我只是在不停地按确认键。