响应式网页编程中 HTML 标签 meta viewport

在看 html meta 信息的时候看到了 <meta name="viewport" content="width=device-width"> 这样的内容,所以学习下 Viewport 概念。 viewport 是用户浏览网页时视觉区域的大小,浏览器的可见区域就大,而手机屏幕明显就小。在平板和手机还未流星之前,网页一般都是为计算机浏览器设计,这就通常让网页有一个固定的设计,和固定的宽高。 然后,当我们使用平板或者手机浏览网页时,固定大小的页面内容通常都无法适应 viewport,为了解决这个问题,这些小屏幕设备上的浏览器通常将整个页面 Read more ...

2018-09-24 html , viewport , html5 , css

《深入理解 Bootstrap》读书笔记

bootstrap 是 Twitter 开源出来的 CSS 框架,因为用到了就简单的了解一下。 CSS 选择器 每一条 CSS 样式的定义都由两部分组成,形式如下:选择器{样式}。在{}之前的部分就是“选择器”。“选择器”指明了应用这些“样式”的网页元素。 属性选择器 [data-toggle^=button],属性选择器有很多种用法,[attr=value] 表示该属性有确定的值。 子选择器 CSS 子元素用 > 表示,.table > thead > tr > th 表示的是 table 样式,thead 元素内 tr Read more ...

2018-09-23 bootstrap , css , twitter , web-design , html5

使用 kindlegen 命令打包资源到 mobi

KindleGen 是亚马逊提供的一个电子书格式转换工具,在提供格式转换的同时,也可以把 HTML,XHTML,或者特定 opf 格式的源文件内容打包成 Kindle 的电子书格式。关于电子书转换的部分可以参考之前的文章 Read more ...

2018-09-22 kindle , kindlegen , commmand , amazon , mobi , epub , format

每天学习一个命令:使用 modprobe 加载禁用内核模块

Linux 的 modprobe 命令用于从 Linux kernel 中装载和卸载模块。modprobe 可载入指定的个别模块,或是载入一组相依的模块。modprobe 会根据 depmod 所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在 modprobe 会卸载整组的模块。需要注意的是为了方便,模块名中的 - 和 _ 是没有区别的。 modprobe 命令会查找 /lib/modules/'uname -r' 目录中的模块和文件 (uname -r 是内核版本),但是不会查找 /etc/modprobe.conf 和 /etc/m Read more ...

2018-09-21 linux , modprobe , kernel

小米笔记本 Air 13.3 在 Linux Mint 下安装 nvidia 驱动

先来说说前因后果,因为使用之前 msi 上的系统恢复到小米笔记本 所以也不存在 wifi 驱动的问题,恢复完成之后一切都非常顺利,所有的一切设置都和之前的笔记本一致,唯一让我不满意的就是说好的续航非常给力呢,实际使用也只有短短三个小时,比我之前的 GE60 好不到哪里去。所以我就在想问题出在哪里,显卡肯定是首要原因。 另外其他的耗电可以使用 sudo apt install powertop 然后使用 sudo powertop 来查看,基本上也就是显示屏,wifi 模块耗电之外,如果看到其他不正常的耗电就需要仔细查看一下了。 Nvidia 所 Read more ...

2018-09-20 linux-mint , nvidia

epub 格式解析

epub 是一个电子书标准,最近在研究电子书解析,所以有了此文。 一个标准的未加密的 epub 电子书大致由以下三部分组成: META-INF 文件夹,其中包含 container.xml 文件 OEBPS 文件夹,包含 images,xhtml 文件,css 样式和 content.opf 文件 mimetype 文件,内容为 application/epub+zip META-INF 文件夹 META-INF 用于存放电子书信息,默认情况包含一个 container.xml 文件: <?xml version="1.0" Read more ...

2018-09-19 epub , ebook , python-lib , parse

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

最近因为写 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

最近文章

  • 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 智能体的能力边界。
  • Gemini CLI Agent Skills 功能介绍与上手指南 [[Gemini CLI]] 最近推出了一个非常强大的新功能,名为 [[Agent Skills]]。这个功能极大地扩展了命令行 AI 助手的边界,允许用户根据自己的需求定制专业的技能包。