电子书常见格式及格式转换

最近因为写 kindle 推书的服务,所以不得不接触到了不同的电子书格式,mobi,epub, azw3,都比较常见,kindle 只支持 mobi 格式,所以亚马逊提供 了 KendleGen 这个工具来将 epub 转换为 mobi 格式。 也正是因为这个结果,所以现在基本上也只有 python 读写 epub 的库,mobi 的读写目前做的也不是很好。如果单纯的只是想要转格式 Calibre 已经做的很好了,UI 也有。这里只是谈论编程方式读写 epub 格式。 格式 最近几年因为 Kindle 的介入,图书电子化的趋势越来越明显,虽然各大厂都 Read more ...

2018-09-18 ebook , epub , mobi , pdf , convert , kindlegen , calibre , python , python-lib , azw , azw3

如何配一副眼镜

在中国无论是购买什么东西,都需要对这一个行业进行深度的了解,不然就会被坑,眼镜同理。回想一下我当前戴的眼镜已经八年多,现在感觉是佩戴眼镜已经不舒服,所以就想要做个简单的了解。 从定下需求(寻找一副合适、舒服、能够长时间佩戴眼镜),到最后真正验光,下单购买也过去不下两个星期了。所以总结了这篇文章,如果能够帮助到其他人当然更好。 配眼镜相关的步骤无非就是验光,选镜架,选镜片,这主要的三个步骤,其中验光、镜片这两个步骤对我来说是最繁杂的部分,我上一次验光可能还是八、九年前,关于眼睛的度数散光也没怎么注意,但是验光的准确性对于配眼镜是非常重要的一步。另外就是 Read more ...

2018-09-15 眼镜 , 经验 , methodology

SQLAlchemy 中处理 relationship

本文主要关注在 SQLAlchemy 中实现基本的关系模型,一对多,多对一,多对多等等。 一对多关系 通常一对多的关系,使用外键,用最常见的用户,地址来举例,每个地址只有一个住户,但是一个住户可以拥有多个地产。所以在 Address 中有一个外键指向 user.id 的主键。而 User 表则是使用一个 relationship 来表示多个地址。 from sqlalchemy import Integer, ForeignKey, String, Column from sqlalchemy.ext.declarative import decla Read more ...

2018-09-11 sqlalchemy , sql , flask , python

邮件服务器相关概念学习

学习邮件服务器的一些笔记。 几个概念 电子邮件相关的基本概念: [[MUA]] [[MTA]] [[MDA]] MUA [[MUA]] 全称为 Mail User Agent 邮件用户代理。常见的 MUA 实例有: mutt, outlook, foxmail 等, 其主要任务是让用户能够收信,写信,发信。MUA 并非直接将 E-mail 发送到收件人手上,而是通过 MTA 代为传递。 MTA MTA 全称 Mail Transfer Agent,MTA 仅仅负责邮件的传输。常见的 MTA 有 Postfix, sendmail, Read more ...

2018-09-05 mail-server , mail , linux , smtp , mailgun , email

Appium 介绍

在接触爬虫的时候遇到了这个工具,看官网介绍应该可以归纳总结为: 开源的移动端自动化测试框架 跨平台,Linux,Mac,Windows 通吃 支持 Android,iOS,混合应用,Web 应用 设计初衷 设计哲学 不需要为了自动化而重新编译修改 App 不限定在某个语言或者框架, C/S 架构,Client 端实现语言不限制 不重造轮子,扩展 webdriver 协议 开源 Jason Huggins 在 2004 年发起了 Selenium 项目,Jason 和他所在的团队采用 Javascript 编写一 Read more ...

2018-09-03 appium , android , ios , web

Certificate pinning 介绍

在抓包 Instagram 的时候发现所有的请求都被加密,即使使用 MITM 也无法查看请求内容。Google 之后发现 Instagram,Facebook 等等应用都使用了 Certificate pinning(或者也被称为 ssl-pinning) 的技术来加强通信安全。 HTTP 在 TCP 和 IP 协议之上,HTTPS 则是在 TCP 和 HTTP 之间增加了一道 SSL or TLS 协议。 市面上的各种抓包软件的实现原理就是中间人攻击。TLS 建立时客户端生成的随机数 1 服务端生成的随机数 2 都是明文的,只有随机数据 3 使用非 Read more ...

2018-08-30 ssl , http , certificate , android , security

Centos 6/7 下安装 PHP7

下面记录下 Centos 6/ 7 下通过 yum 安装 php7 环境。 2015 年 12 月初 PHP7 正式版发布,迎来自 2004 年以来最大的版本更新。PHP7 最显著的变化就是性能的极大提升,已接近 Facebook 开发的 PHP 执行引擎 HHVM。在 WordPress 基准性能测试中,速度比 5.6 版本要快 2~3 倍,大大减少了内存占用。PHP7 在语言上也有一些变化,比如添加返回类型声明、增加了一些新的保留关键字等。在安全方面,去除了 PHP 安全模式,添加魔术引号等。不仅如此,新版还支持 64 位,而且包含最新版 Zend Read more ...

2018-08-29 centos , php7 , php , apache , yum

MDX/MDD 文件格式解析

MDict 将字典定义(关键字,解释)放在 MDX(全称 Mobile Dictionary eXchange) 文件中,字典相关的其他资源样式文件,比如图片,发音,样式放在 MDD 文件中,虽然存放的内容是不一样的,但是两种文件的结构是一致的。 mdx 文件包含了词典所有的文本,HTML,索引头部以及单词解释 mdd 文件包含了除文本以外的其他资源文件,比如图片,音频,CSS 样式,或者 JavaScript 脚本等 还有一些字典会将 CSS 单独拿出来 mdx 和 mdd 文件通常是同名出现,否则可能就会丢失样式之类。 源文件格 Read more ...

2018-08-27 python , goldendict , mdx , mdd , dict

使用 Meld 对比文件及文件夹区别

在之前总结 Nemo file browser 的时候接触到了 meld,作为一个 nemo-compare 插件可以用来轻松的比较两个文件夹,两个文件,甚至多个文件。在了解之后发现 meld 其实更加强大,结合 git 使用可以非常轻松地解决 git 的合并冲突问题。 虽然大部分情况我都是用 smartGit 来解决的,smartGit 的三路合并和 meld 能够达到的效果非常相似。 安装 sudo apt install meld 使用 打开 meld 从主界面就能看到应用的分工主要分为三块 文件内容的比较 文件夹内容的比较 Read more ...

2018-08-26 meld , linux , git , merge , conflict

Linux 下使用 ClamAV 扫描病毒

ClamAV 是开源的杀毒软件 安装 sudo apt-get install clamav 使用 更新“病毒库” sudo freshclam 然后可以使用 scan 来扫描 clamscan OPTIONS file/folders 如果可以直接从 root 开始扫描:sudo clamscan 举例 扫描全盘,并显示文件名 clamscan -r / 扫描文件,只显示被感染的文件,并且声音提醒 clamscan -r --bell -i / 扫描全盘文件,只显示感染的文件,后台执行 clamscan -r -i Read more ...

2018-08-25 linux , clamav , virus

最近文章

  • 花了一个多小时认真听李录在哥大的演讲,对价值投资新的理解 昨天花了一个多小时,认真把李录在 2006 年哥伦比亚大学商学院的演讲从头听到尾。说实话,最开始点开这个视频的时候,我以为只是一节普通的投资课,听完之后发现远不止于此——李录几乎是把自己二十多年的思考框架,通过两个亲身经历的真实案例,完整地摊开在你面前。那种感觉不像是在听一堂课,更像是在听一个老朋友坦诚地聊他是怎么看待这个世界、怎么做决策的。
  • screen.garden:让 Obsidian 拥有 Google Docs 般的实时协作体验 之前我介绍过 Fast Note Sync,这是一款开源的 Obsidian 笔记同步方案,可以实现多设备之间的笔记同步和实时协作。Fast Note Sync 的优势在于完全开源、数据自主可控,但它有一个门槛——你需要自己搭建和维护服务器。对于有技术背景并且享受折腾的朋友来说这不是问题,但如果你不想操心服务器的事情,或者团队里有非技术背景的成员,那么一个开箱即用的托管服务可能是更好的选择。这就是我今天要介绍的 screen.garden,一个为 Obsidian 设计的付费实时协作服务。
  • Clawdbot 深度调研:打造完全属于自己的全平台 AI 助手 最近在折腾各种 AI 工具的时候,发现了一个有意思的现象:市面上大部分 AI 助手要么被牢牢绑定在某个特定平台上(比如只能在 Discord 里用的机器人),要么就是完全依赖某家公司的 SaaS 服务,你的对话数据都在别人的服务器上。作为一个对隐私比较在意的人,我一直在想,能不能有一个完全由自己掌控、可以在所有常用聊天软件里使用的 AI 助手呢?直到我在 GitHub 上发现了 [[Clawdbot]] 这个项目,才发现原来真的有人在认真解决这个问题。
  • 推荐我使用的 Agent Skills 随着 AI 编程助手的快速发展,[[Claude Code]]、[[Codex]]、[[Gemini CLI]] 等工具已经成为开发者日常工作中不可或缺的伙伴。然而,这些工具的默认功能往往只是冰山一角。通过安装和配置 Agent Skills,我们可以大幅扩展这些 AI 助手的能力,让它们更加智能、更加专业。
  • Antigravity Agent Skills 功能介绍与实战指南 2026 年 1 月 14 日,[[Google]] 为其 AI 驱动的开发工具 [[Antigravity]] 推出了 Agent Skills 功能。这个开放标准的技能系统让开发者可以将专业知识打包成可复用的技能包,极大地扩展了 AI 智能体的能力边界。