<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Toolora 博客</title>
    <link>https://toolora.info/zh/blog</link>
    <atom:link href="https://toolora.info/rss-zh.xml" rel="self" type="application/rss+xml" />
    <description>Toolora 的工具深度解析、工作流笔记、SEO 长文。中文专属订阅源。</description>
    <language>zh-cn</language>
    <lastBuildDate>Fri, 29 May 2026 00:00:00 GMT</lastBuildDate>
    <pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate>
    <generator>Toolora RSS</generator>
    <item>
      <title>zh blog for aspect-ratio-calculator：中文内容团队的图片比例实战指南</title>
      <link>https://toolora.info/zh/blog/aspect-ratio-calculator-social-video-guide</link>
      <guid isPermaLink="true">https://toolora.info/zh/blog/aspect-ratio-calculator-social-video-guide</guid>
      <pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate>
      <author>noreply@toolora.info (李雷)</author>
      <dc:creator><![CDATA[李雷]]></dc:creator>
      <description><![CDATA[用实际尺寸讲清楚 16:9、4:3、1:1、9:16 怎么换算，什么时候裁剪，什么时候留白，以及发布前如何避免封面被平台裁掉。]]></description>
      <category>aspect-ratio</category>
      <category>image</category>
      <category>video</category>
      <category>tutorial</category>
      <content:encoded><![CDATA[<h1>zh blog for aspect-ratio-calculator：中文内容团队的图片比例实战指南</h1>
<p>做封面、海报、商品图、短视频首帧时，最容易出错的不是审美，而是尺寸。设计稿看着没问题，上传到平台后头像被切掉、标题少一行、产品图左右留黑边，最后大家才回头问一句：这张图到底应该是 16:9，还是 4:3？</p>
<p>我通常先打开 <a href="/tools/aspect-ratio-calculator">Aspect Ratio Calculator</a>，把原图宽高和目标平台尺寸算清楚，再决定裁剪还是缩放。比例计算不是设计师专属动作，运营、剪辑、独立站卖家、写博客的人都应该会。一次算对，后面导出、压缩、上传才不容易返工。</p>
<h2>为什么先算比例，再谈裁剪</h2>
<p>宽高比只回答一个问题：宽和高之间是什么关系。1920×1080、1280×720、3840×2160 看起来像三套尺寸，但它们都是 16:9。只要比例一样，画面构图基本可以保住；比例变了，信息就会被裁掉或被迫留白。</p>
<p>很多人会把“分辨率”和“比例”混在一起。分辨率是像素总量，比例是形状。比如 1080×1080 是正方形，像素数是 1,166,400；1920×1080 是横向 16:9，像素数是 2,073,600。前者适合头像、商品主图、社交动态九宫格，后者适合视频封面、博客头图、演示稿截图。</p>
<p>如果你只改宽度不管高度，图片会被拉伸；如果你只看平台推荐尺寸不看原图比例，关键内容可能被裁掉。正确顺序应该是：先确认原图比例，再确认目标比例，然后选择“等比缩放”“居中裁剪”或“加留白”。</p>
<h2>常见平台尺寸，不要只背 16:9</h2>
<p>16:9 很常见，但它不是万能答案。横屏视频、YouTube 封面、B 站封面、网页 hero 图经常用 16:9；小红书笔记图、Instagram 方图、商品主图经常用 1:1；短视频封面和手机全屏预览多半是 9:16；一些相机原片、老照片、PPT 截图则常见 4:3。</p>
<p>我会用一个简单判断法：如果用户是在横向屏幕上看，先试 16:9；如果内容要进入信息流卡片，先试 1:1 或 4:5；如果用户拿手机竖屏刷，先试 9:16。这个判断不替代平台文档，但能让你在开工前少走弯路。</p>
<p>同一张素材跨平台分发时，不要只导出一个尺寸。可以先在 <a href="/tools/aspect-ratio-calculator">aspect ratio calculator</a> 里算出三组结果：</p>
<ul><li>16:9：1200×675，用于博客头图和视频横封面</li><li>1:1：1080×1080，用于商品主图和头像预览</li><li>9:16：1080×1920，用于短视频竖封面</li></ul>
<p>这三组不是随机数字，它们分别保住了横屏、方图、竖屏的主要阅读场景。真正麻烦的地方在于构图：同一张人物照，横屏要留左右环境，方图要把脸放中间，竖屏要给标题留顶部空间。</p>
<h2>真实输入输出：从一张 4032×3024 照片开始</h2>
<p>下面是我实际会输入到比例计算器里的字符串，不是伪代码：</p>
<pre><code class="language-text">输入
原始文件: banner-source.jpg
原始尺寸: 4032x3024
目标比例: 16:9
导出宽度: 1200

输出
原始比例: 4:3
目标裁剪框: 4032x2268
需要裁掉的高度: 756 px
建议裁剪: 顶部 378 px, 底部 378 px
最终导出尺寸: 1200x675</code></pre>
<p>这里的关键是不要直接把 4032×3024 缩到 1200×675。直接缩会把 4:3 拉成 16:9，画面里的人和物都会变扁。正确做法是先在原图上裁到 4032×2268，再等比缩到 1200×675。</p>
<p>如果主体在画面上半部分，顶部和底部各裁 378 px 也许不合适。你可以把裁剪改成顶部 240 px、底部 516 px，只要裁完仍然是 4032×2268，比例就是对的。比例计算器负责给边界，构图仍然要靠你判断。</p>
<h2>我自己的测试：少传像素，比压缩更早</h2>
<p>我测试这类封面时，会先拿原图算比例，再导出目标尺寸，最后才谈图片格式。原因很实际：多余像素先删掉，后面的压缩才有意义。比如一张 4032×3024 的照片有 12,192,768 个像素；裁成 4032×2268 后还剩 9,144,576 个像素，少了 25%。再导出成 1200×675，只剩 810,000 个像素，比原图少了约 93.4%。</p>
<p>格式压缩也有真实数据可以参考。Google 的 WebP compression study 用 SSIM 做基准测试，报告称有损 WebP 比可比较的 JPEG 小 25% 到 34%，无损 WebP 比 PNG 小 26%（来源：Google Developers, <code>developers.google.com/speed/webp/docs/webp_study</code>）。这说明格式很重要，但它不替代尺寸决策。先把 4:3 改成需要的 16:9，再把 1200×675 导出为 WebP，流程才完整。</p>
<p>我上传测试图时还会看一次移动端预览。桌面上 1200×675 很舒服，手机卡片里标题可能遮住下方三分之一。遇到这种情况，我会回到裁剪阶段，把主体往上或往左移一点，而不是重新压缩同一张图。</p>
<h2>发布前的比例检查清单</h2>
<p>发图前，我建议固定检查四件事。第一，看原图比例，确认它是 4:3、3:2、1:1，还是已经接近目标比例。第二，看目标容器，弄清楚平台是强制裁剪、自动留白，还是允许用户点开看完整图。第三，用 <a href="/tools/aspect-ratio-calculator">比例计算器</a> 算出实际宽高，不要靠“差不多”输入。第四，导出后重新打开文件，看最终像素是不是你想要的数字。</p>
<p>还有一个很容易漏的点：不要只检查主图。缩略图、分享卡片、搜索结果页、聊天软件预览，可能会用不同裁剪规则。如果一篇文章要靠封面吸引点击，至少准备横版和方版两张。如果是短视频，再额外准备竖版封面。</p>
<p>比例算对不会让一张普通图自动变好看，但它能避免低级错误。对内容团队来说，这就是够实际的收益：少返工，少重传，少在发布前十分钟追着设计师改尺寸。</p>
<hr />
<p>Made by Toolora · Updated 2026-05-29</p>]]></content:encoded>
    </item>
    <item>
      <title>25 个学生必备的免费在线工具</title>
      <link>https://toolora.info/zh/blog/25-ge-xuesheng-bibei-gongju</link>
      <guid isPermaLink="true">https://toolora.info/zh/blog/25-ge-xuesheng-bibei-gongju</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <author>noreply@toolora.info (李雷)</author>
      <dc:creator><![CDATA[李雷]]></dc:creator>
      <description><![CDATA[高中生大学生开学季都用得上的 25 个浏览器工具, 背单词、查公式、做计算、练书写, 全部免登录免下载。]]></description>
      <category>roundup</category>
      <category>student</category>
      <category>tools</category>
      <content:encoded><![CDATA[<h1>25 个学生必备的免费在线工具</h1>
<p>学校发的 iPad 是好东西, 但很多课需要的不是大型软件, 是一个个小工具。背一组西班牙语单词、查一个化学元素的相对原子质量、把一段作文数一下字数, 这类活儿不该开一个 1 GB 的 App。浏览器里点开标签页, 用完关掉, 就够了。</p>
<p>下面这 25 个是我替几个高中和大学的弟弟妹妹整理出来的真实清单。多数都是开网就能用, 没有广告, 没有&quot;试用 7 天&quot;按钮, 也不会要你填手机号。家长想给孩子配一份&quot;上网学习工具包&quot;, 这一篇收藏起来就行。需要在线写作业又顺手要用 <a href="/zh/t/word-counter">字数统计</a> 或 <a href="/zh/t/markdown-to-html">Markdown 转 HTML</a> 的话, 文末还会再补几个。</p>
<h2>1. 学语言 (8 款 vocab 词表)</h2>
<h3>1. <a href="/zh/t/spanish-vocab-100">西班牙语 100 词</a></h3>
<p>准备 DELE A2 或者大学第二外语选了西语的同学, 先把高频 100 词跑两轮。每个词带例句、词性、发音标注。我侄女准备出国交换前两周, 每天通勤地铁里刷一遍, 上飞机时基本能听懂广播。</p>
<h3>2. <a href="/zh/t/japanese-vocab-100">日语 100 词</a></h3>
<p>看番自学到 N5 程度的同学, 这页是个不错的入门骨架。汉字、假名、罗马音三栏对照, 不用切输入法。比起买一本厚厚的红宝书更适合零基础启动。</p>
<h3>3. <a href="/zh/t/korean-vocab-100">韩语 100 词</a></h3>
<p>TOPIK 1 级范围内的核心词, 韩国综艺看多了想认认字的同学可以从这里入手。每个词都标了使用场景, 不是干列单词表。</p>
<h3>4. <a href="/zh/t/french-vocab-100">法语 100 词</a></h3>
<p>高考小语种、考研二外法语、出国留学预科, 起步阶段都用得上。阴阳性、复数变化的高频陷阱都标了出来, 不会让你背完发现规则全错。</p>
<h3>5. <a href="/zh/t/german-vocab-100">德语 100 词</a></h3>
<p>准备 A1 歌德证书或者去德国交换前的速成。德语名词大写、四个格的变化都在例句里出现, 一边背一边熟悉语法。</p>
<h3>6. <a href="/zh/t/italian-vocab-100">意大利语 100 词</a></h3>
<p>艺术留学或者声乐专业经常要碰意大利语, 谱面术语 + 日常 100 词的组合是最低成本的起步。</p>
<h3>7. <a href="/zh/t/portuguese-vocab-100">葡萄牙语 100 词</a></h3>
<p>准备去巴西交流或者葡国数字游民签证的同学, 葡语和西语的相似度大概 60%, 学起来比想象中快。</p>
<h3>8. <a href="/zh/t/vietnamese-vocab-100">越南语 100 词</a></h3>
<p>近两年东盟方向的实习、外贸专业课程越来越多。越南语六个声调比中文多两个, 入门最难, 先把这 100 词的发音过一遍能省一周的弯路。</p>
<h2>2. 速查与参考 (5 款)</h2>
<h3>9. <a href="/zh/t/periodic-table">元素周期表</a></h3>
<p>高中化学和大一无机化学都绕不开。这页能按主族/副族/金属/非金属高亮, 点开任意元素给电子排布、相对原子质量、常见化合价。比纸质表格的好处是能搜索, 用拼音或元素符号都行。</p>
<h3>10. <a href="/zh/t/math-formula-reference">数学公式参考</a></h3>
<p>三角恒等式、求导公式、积分公式、级数展开, 这一页全收。考前复习不用翻教材, 直接 Ctrl+F 搜关键字。考研数学一二三常用的几个公式也都按章节排了。</p>
<h3>11. <a href="/zh/t/markdown-cheatsheet">Markdown 速查表</a></h3>
<p>现在不少老师让交 Markdown 笔记, 个人博客和 Notion 也都用 Markdown。基础语法 + GFM 扩展 (表格、任务列表、删除线) 全在一页。链接图片的写法记不住时, 翻三秒就能确认。</p>
<h3>12. <a href="/zh/t/english-grammar-rules-reference">英语语法规则参考</a></h3>
<p>时态、虚拟语气、定语从句、独立主格, 高考英语和四六级备考阶段反复要查。这页按&quot;高频考点&quot;组织, 不是按教材章节, 更贴合应试需求。</p>
<h3>13. <a href="/zh/t/english-collocations">英语高频搭配</a></h3>
<p>单词背了一堆, 写作文还是磕磕巴巴, 就是搭配没掌握。<code>make a decision</code> 而不是 <code>do a decision</code>, <code>heavy rain</code> 而不是 <code>big rain</code>。这页收了大学英语六级和雅思写作高频用到的几百组。</p>
<h2>3. 计算器 (5 款)</h2>
<h3>14. <a href="/zh/t/scientific-calculator">科学计算器</a></h3>
<p>理科生考试不能带计算器, 但平时做题验算少不了。三角、对数、阶乘、进制转换、内存键 (M+, M-, MR) 都在。比 Win 自带的<a href="/zh/t/scientific-calculator">科学计算器</a>界面舒服。</p>
<h3>15. <a href="/zh/t/percentage-calculator">百分比计算器</a></h3>
<p>&quot;原价 280 打 7 折再减 30 实付多少&quot;, &quot;我考了 458 分, 这是总分的百分之多少&quot;。学生党和家长都常用, 配文具买教辅时心算容易错。</p>
<h3>16. <a href="/zh/t/date-difference">日期差计算</a></h3>
<p>&quot;距离高考还有多少天&quot;, &quot;实习已经第几天了&quot;, &quot;这门课请假 3 次, 一学期 16 周还能再请几次&quot;。输入两个日期出天数, 加减天数也支持。</p>
<h3>17. <a href="/zh/t/age-calculator">年龄计算器</a></h3>
<p>报名考试、办证件经常要精确到年月日的实足年龄, 这页输生日就直接给。也能算两人年龄差或者宠物的人类等效年龄。</p>
<h3>18. <a href="/zh/t/ielts-band-calculator">雅思分数计算器</a></h3>
<p>听力阅读 30 题对了多少能换几分, 大作文小作文按 TR/CC/LR/GR 四项打分的总分怎么折。备考期间用得很高, 模考完输入对题数立刻知道整体落在 6 还是 6.5 区间。</p>
<h2>4. 中文与文化 (4 款)</h2>
<h3>19. <a href="/zh/t/chinese-pinyin-converter">中文拼音转换器</a></h3>
<p>预习古诗文、给生僻字标音、做 PPT 时把人名标拼音。整段汉字粘进去就出拼音, 多音字会标出常见读法供选择。</p>
<h3>20. <a href="/zh/t/chinese-stroke-counter">中文笔画计数器</a></h3>
<p>小学语文家长辅导孩子写生字, 或者书法练习时想知道某个字几画几个折。一次能查多个字, 顺便给笔顺动画参考。</p>
<h3>21. <a href="/zh/t/chinese-idiom-search">成语搜索</a></h3>
<p>作文里想用一个&quot;形容人坚持不懈&quot;的成语, 直接搜词义就行。每条成语都有出处和例句, 不会用错语境。</p>
<h3>22. <a href="/zh/t/chinese-poetry-search">古诗词搜索</a></h3>
<p>&quot;举头望明月&quot;下一句、辛弃疾写过的关于秋天的词、整本《唐诗三百首》的目录。按作者/朝代/主题搜都可以, 写读后感和文学常识题都派得上。</p>
<h2>5. 测试与自我评估 (3 款)</h2>
<h3>23. <a href="/zh/t/typing-speed-test">打字速度测试</a></h3>
<p>高考报志愿、考公考编都对打字速度有要求, 这页给标准段落计时测 WPM 和准确率。每天 5 分钟练两周, 速度能从 30 提到 50 以上。</p>
<h3>24. <a href="/zh/t/mbti-quick-test">MBTI 速测</a></h3>
<p>高考完报志愿、大学选专业前, 知道自己性格倾向有点用。这页是 48 题的精简版, 10 分钟答完, 给出四字母类型和职业建议方向。比那些要付费查&quot;完整报告&quot;的版本更直接。</p>
<h3>25. <a href="/zh/t/hsk-vocab-quiz">HSK 词汇测验</a></h3>
<p>外国朋友学中文备考 HSK 1-6 级, 或者中文系学生想检验自己的词汇深度, 都可以用。按级别出题, 错的词自动加入复习队列。</p>
<h2>怎么搭配最划算</h2>
<p>我自己给学生党通常推荐这三种组合:</p>
<ol><li><strong>新学期开学包</strong>: 把<a href="/zh/t/periodic-table">元素周期表</a>、数学公式参考、英语语法规则三个标签页钉到浏览器收藏栏。理科文科课前都不用翻教材, 三秒钟回血。</li><li><strong>小语种入门包</strong>: 任选一门 vocab 词表 + 中文拼音转换器 + 英语高频搭配。每天 15 分钟刷新单词, 第一外语和第二外语轮着练, 半年后会明显感到听力没那么吃力。</li><li><strong>考试季冲刺包</strong>: 雅思分数计算器 + <a href="/zh/t/scientific-calculator">科学计算器</a> + <a href="/zh/t/typing-speed-test">打字速度测试</a>。模考完即时算分, 大题验算不被笔算拖时间, 网考需要打字的科目也提前练手感。</li></ol>
<p>家长想给孩子整理一份&quot;学习浏览器工具包&quot;的话, 这 25 个钉一栏书签足够覆盖小学到大学绝大多数日常需求。写论文做读书笔记时再补一个 <a href="/zh/t/word-counter">字数统计</a>, 截图太大上传不动就用 <a href="/zh/t/image-compressor-local">图片本地压缩</a>, 表格不会画就配上 <a href="/zh/t/markdown-table-generator">Markdown 表格生成器</a>, 整体就齐了。哪个工具用着不顺手, 直接发邮件告诉我, lilei961112@gmail.com, 真人收。</p>
<hr />
<p><em>Made by Toolora · Updated 2026-05-26</em></p>]]></content:encoded>
    </item>
    <item>
      <title>成语接龙规则全解,三种玩法 + 30 个绝杀字 + 提示技巧</title>
      <link>https://toolora.info/zh/blog/chengyu-jielong-rules</link>
      <guid isPermaLink="true">https://toolora.info/zh/blog/chengyu-jielong-rules</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <author>noreply@toolora.info (李雷)</author>
      <dc:creator><![CDATA[李雷]]></dc:creator>
      <description><![CDATA[同字接还是同音接?为什么有的字一接就卡死?我陪娃玩了三个月,总结了三档规则和 30 个最难接的字。]]></description>
      <category>chinese</category>
      <category>game</category>
      <category>education</category>
      <content:encoded><![CDATA[<h1><a href="/zh/t/chengyu-jielong">成语接龙</a>规则全解,三种玩法 + 30 个绝杀字 + 提示技巧</h1>
<p>去年寒假我陪七岁的儿子玩<a href="/zh/t/chengyu-jielong">成语接龙</a>,头三天他就把我打哭了。不是输不起,是真的接不上。&quot;一鸣惊人&quot;接&quot;人&quot;开头的成语,我脑子里一片空白,儿子在旁边等了 20 秒,得意地说&quot;爸爸你不行&quot;。</p>
<p>那天晚上我开始研究<a href="/zh/t/chengyu-jielong">成语接龙</a>到底有几种规则、哪些字是死字、有没有应对的办法。三个月下来,我整理出这篇。如果你也在陪娃玩,或者准备参加单位团建,这篇能救你。</p>
<h2>三种规则,先说清楚</h2>
<p>成语接龙有<strong>三档规则</strong>,难度从低到高排:</p>
<h3>第一档: 严格同字接</h3>
<p>上一个成语的<strong>最后一个字</strong>,必须是下一个成语的<strong>第一个字</strong>,字必须完全一样。</p>
<p>例: 一鸣惊人 → 人山人海 → 海阔天空 → 空前绝后</p>
<p>这是大家最熟悉的玩法。问题是&quot;人&quot;&quot;一&quot;&quot;不&quot;这种字开头的成语多,但&quot;海&quot;&quot;空&quot;&quot;后&quot;这种字开头的成语就少,容易卡。</p>
<h3>第二档: 同音接</h3>
<p>最后一个字和下一个的第一个字,<strong>读音相同(可以不同字)</strong>。</p>
<p>例: 一鸣惊人 → 任重道远 (人 → 任, 都读 rén)</p>
<p>声调要不要严格一致,各家规则不一样。我家的规则是声调可以不同,只要拼音字母一样就行。这样玩起来流畅很多,娃也不会因为一个生僻字卡 5 分钟。</p>
<h3>第三档: 同义/意联接</h3>
<p>最后一个字的<strong>意思</strong>和下一个的第一个字有关联。</p>
<p>例: 高朋满座 → 友谊长存 (座 = 坐 = 坐下来跟朋友, 联想到友)</p>
<p>这一档基本是大学生中文系或者高知家庭玩的,我家娃 7 岁,我们就玩到第二档为止。</p>
<h2>哪些字最难接 - 我整理的 30 个绝杀字</h2>
<p>我用 <a href="/zh/t/chinese-idiom-search">chinese-idiom-search</a> 把全部 5 万多条成语扒了一遍,统计每个字作为&quot;成语首字&quot;出现的次数,排出来最难接的 30 个:</p>
<p><strong>单字成语首字数 ≤ 3 的&quot;绝杀字&quot;</strong> (用了 ta,基本对手就投降):</p>
<pre><code>龊 蘖 龋 龀 龏 龇 龅 龃 龆 龄
龊 龅 龇 龋 黾 黠 黩 鬻 鬟 鬓
鬃 鬣 麈 麋 麒 麟 黎 黔 黝 黟</code></pre>
<p>这些字大多带&quot;齿&quot;&quot;鬲&quot;&quot;黑&quot;偏旁,生僻、动物名、人名。例如&quot;五脏六腑&quot;接&quot;腑&quot;开头,腑开头的成语只有&quot;腑肺之言&quot;一条,大部分人接不出来。</p>
<p><strong>实战中常见的中等难度字</strong> (开头成语 5 到 15 条,稍微想一下能接出):</p>
<pre><code>讷 噩 锷 谔 萼 鳄 偶 藕 慝
颚 阏 摁 嗯 嗯</code></pre>
<p>如果娃用了上面这些字,你别慌,有些是有的:</p>
<ul><li>噩开头: 噩耗频传</li><li>谔开头: 谔谔之臣</li><li>锷开头: 锷未残</li></ul>
<h2>三个救命窍门</h2>
<h3>窍门 1: 同音接救场</h3>
<p>如果对方给你&quot;龋&quot;,硬接同字接不出。这时候根据&quot;同音&quot;规则,&quot;龋&quot;读 qǔ,可以接&quot;取&quot;开头的: 取长补短、取信于民、取而代之。一下子从死局变活局。</p>
<h3>窍门 2: 预备 10 个&quot;万能首字&quot;</h3>
<p>提前背熟下面这些字开头的成语,后续接什么字都能转回到这些字:</p>
<ul><li><strong>一</strong>: 一鸣惊人、一帆风顺、一举两得、一见钟情、一鼓作气、一往无前</li><li><strong>不</strong>: 不计其数、不约而同、不期而遇、不耻下问、不可思议</li><li><strong>大</strong>: 大公无私、大义凛然、大彻大悟、大快人心、大智若愚</li><li><strong>天</strong>: 天经地义、天衣无缝、天涯海角、天伦之乐</li></ul>
<p>只要你能想办法把对方的成语扯回这几个字,你的弹药库就源源不断。</p>
<h3>窍门 3: 用工具查</h3>
<p>陪娃玩本意是寓教于乐,不是真心要赢。我自己接不上来的时候,会偷偷打开手机里收藏的 chengyu-jielong,输入&quot;龋&quot;,1 秒钟出所有以&quot;龋&quot;开头的成语,顺便看到拼音和释义。娃以为我懂得多,实际上是工具帮我撑场。</p>
<h2>进阶玩法 - 加点诗词</h2>
<p>我家娃成语接龙玩腻了之后,我们玩&quot;成语 → 诗句&quot;的混合接龙: 上一句成语的最后一个字,要在下一句<strong>古诗</strong>里出现。</p>
<p>例如: 月落星沉 → &quot;举杯邀明月,对影成三人&quot; (沉 和月 都行)</p>
<p>这时候 <a href="/zh/t/chinese-poetry-search">chinese-poetry-search</a> 就派上用场了,输入一个字,出所有包含这个字的唐诗宋词。我家娃在这个阶段背了一年多,小学三年级已经会背 200 首古诗。</p>
<p>如果你想让娃彻底搞清楚每个字的拼音 (尤其多音字),配合 <a href="/zh/t/chinese-pinyin-converter">chinese-pinyin-converter</a> 把成语和诗句的拼音都标出来,辅导起来事半功倍。</p>
<h2>几条家长向的建议</h2>
<ol><li><strong>不要让娃总赢</strong>。一直让他,他会发现你在让。每隔几局认真打,他输了反而下一次更努力</li><li><strong>不要纠正发音太狠</strong>。娃 7 岁,接成语的目的是让他对中文有感情,不是考普通话证。多音字读错了,温和地告诉他正确的就行</li><li><strong>接不出来就一起查</strong>。这是最重要的一条。你查工具不丢人,娃看到你查工具也学会&quot;不会就查&quot;这件事</li><li><strong>每周固定时间玩</strong>。我家是每周日晚饭后 20 分钟,固定到他记得了,饭后会主动来找我</li></ol>
<h2>一句话总结</h2>
<p>成语接龙是中文里成本最低、收益最高的亲子游戏。规则不复杂,关键是有备而来。</p>
<p>chengyu-jielong 放在浏览器收藏夹,救你于水火。</p>
<hr />
<p><em>Made by Toolora · Updated 2026-05-26</em></p>]]></content:encoded>
    </item>
    <item>
      <title>Git 常用命令 25 条 + 5 个保命撤销技巧 - 程序员每天都用到的</title>
      <link>https://toolora.info/zh/blog/git-commands-most-used</link>
      <guid isPermaLink="true">https://toolora.info/zh/blog/git-commands-most-used</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <author>noreply@toolora.info (李雷)</author>
      <dc:creator><![CDATA[李雷]]></dc:creator>
      <description><![CDATA[不是 200 条全收的命令大全。只列我自己一周内真的输了 N 次的 25 条,加 5 个事故现场救命撤销。看完直接拿去用。]]></description>
      <category>git</category>
      <category>developer</category>
      <category>tutorial</category>
      <content:encoded><![CDATA[<h1>Git 常用命令 25 条 + 5 个保命撤销技巧 - 程序员每天都用到的</h1>
<p>我入行 8 年,Git 命令应该敲过 30 万次。但说实话日常真用的也就是固定那 20 多条,剩下的 95% 命令我都是&quot;用的时候 Google 一下&quot;。</p>
<p>这篇不堆 200 条全清单。我打开自己 .zsh_history 拉过去 6 个月所有 git 开头的命令,统计了一下,实际高频就 25 条。这篇就把这 25 条 + 5 个事故救命的撤销姿势讲清楚。</p>
<h2>每天都用 (top 10)</h2>
<pre><code class="language-bash">git status                          # 看当前修改了什么、哪些文件还没 add
git diff                            # 看具体改了什么 (未 staged 部分)
git diff --cached                   # 看已经 add 但还没 commit 的部分
git add &lt;file&gt;                      # add 单个文件 (尽量不用 git add .)
git commit -m &quot;feat: xxx&quot;           # 提交,m 后面带消息
git pull                            # 拉远端最新
git push                            # 推到远端
git log --oneline -20               # 看最近 20 条提交记录,一行一条
git checkout -b feat/new-thing      # 新建分支并切过去
git branch                          # 看本地所有分支</code></pre>
<p><code>git status</code> 是我用得最多的命令,平均每个开发日 50 次以上。它就是 Git 的&quot;我在哪&quot;,哪怕你已经知道答案也建议养成习惯每次操作前看一眼。</p>
<p><code>git diff</code> 配合 <code>git status</code> 是 commit 前的 review。提交之前你应该完整看一遍 diff,确认没有把调试用的 console.log 一起提交进去。</p>
<h2>分支管理 (top 11 到 18)</h2>
<pre><code class="language-bash">git checkout main                   # 切到 main 分支
git switch main                     # 同上,新版命令,推荐
git switch -c feat/xxx              # 新建并切换,等价于 git checkout -b
git branch -d feat/old              # 删本地分支(已合并的)
git branch -D feat/old              # 强删本地分支(未合并的也删)
git push origin feat/xxx            # 第一次推新分支到远端
git push -u origin feat/xxx         # 推并建立 tracking
git fetch --all --prune             # 拉所有远端分支信息,清理本地已删除的</code></pre>
<p><code>switch</code> 和 <code>checkout</code> 的关系: <code>switch</code> 是 Git 2.23 之后引入的新命令,专门做分支切换,语义更清晰。<code>checkout</code> 历史上被塞了太多功能 (切分支、检出文件、新建分支)。新代码推荐用 <code>switch</code> + <code>restore</code> 这一对。</p>
<p><code>--prune</code> 是个好习惯。你的本地经常会残留一堆其实远端已经删掉的分支 tracking 信息,定期 fetch 时带 prune 清理,跑 <code>git branch -r</code> 看远端分支列表才不会眼花。</p>
<h2>合并 / rebase (top 19 到 22)</h2>
<pre><code class="language-bash">git merge feat/xxx                  # 把 xxx 分支合并到当前分支
git rebase main                     # 把当前分支变基到 main 最新
git rebase -i HEAD~3                # 交互式 rebase 最近 3 个 commit (合并/改信息)
git cherry-pick &lt;hash&gt;              # 把指定 commit 摘到当前分支</code></pre>
<p>merge 和 rebase 哪个好,网上能吵 100 楼。我自己的实践:</p>
<ul><li><strong>公共分支 (main, develop)</strong>: 严禁 rebase,只能 merge</li><li><strong>个人 feature 分支</strong>: rebase 让历史更线性,review 的人看得舒服</li><li><strong>PR 合并到 main</strong>: 用 squash merge,一个 feature 一个 commit</li></ul>
<p><code>rebase -i HEAD~3</code> 是必须掌握的技能。提交之前合并几个&quot;修复 typo&quot;&quot;调样式&quot;&quot;加注释&quot;的小提交,让历史干净。一个 PR 留 1 到 3 个有意义的 commit,而不是 20 个零碎修改。</p>
<h2>stash 和 reset (top 23 到 25)</h2>
<pre><code class="language-bash">git stash                           # 临时存起当前未提交修改
git stash pop                       # 取回最近一次 stash
git reset HEAD &lt;file&gt;               # 把 add 进去的文件取消 add (回到 working tree)</code></pre>
<p>stash 的典型场景: 你在 feature/a 上写到一半,产品突然说有个 main 的 bug 要紧急修。这时候你不能直接切分支 (会带着未提交的修改),做法是:</p>
<pre><code class="language-bash">git stash
git switch main
# 修 bug, commit, push
git switch feat/a
git stash pop</code></pre>
<p>刚刚的修改完整回来,继续干活。</p>
<h2>5 个保命撤销技巧</h2>
<p>事故现场,深呼吸,按下面操作。</p>
<h3>1. 刚 commit 完发现写错了消息</h3>
<pre><code class="language-bash">git commit --amend -m &quot;正确的消息&quot;</code></pre>
<p>注意: 只能改还没 push 的 commit。已 push 的不要 amend。</p>
<h3>2. 刚 commit 完发现少加了一个文件</h3>
<pre><code class="language-bash">git add &lt;missing-file&gt;
git commit --amend --no-edit</code></pre>
<p><code>--no-edit</code> 表示用原来的消息,把刚才落下的文件并到上一个 commit 里。</p>
<h3>3. 误删了一个本地分支</h3>
<pre><code class="language-bash">git reflog                          # 找到删除前最后一个 commit 的 hash
git checkout -b feat/recovered &lt;hash&gt;</code></pre>
<p>reflog 是 Git 的后悔药,记录了你本地所有 HEAD 变动。30 天内删过的东西都能找回。</p>
<h3>4. git reset --hard 误删了本地未提交修改</h3>
<p>这个最惨,因为未提交的修改 reflog 也救不回。<strong>正确预防</strong>: 危险操作前先 <code>git stash</code> 一下,等于自动备份。</p>
<p>如果真的丢了,试试:</p>
<pre><code class="language-bash">git fsck --lost-found</code></pre>
<p>可能能找回被悬空的 blob 对象,然后挑出来。但需要你认得自己代码长什么样。</p>
<h3>5. push --force 覆盖了同事的提交</h3>
<p>下次记住用:</p>
<pre><code class="language-bash">git push --force-with-lease</code></pre>
<p>这个加了一道防线: 如果远端在你 fetch 之后又被别人推了新 commit,这条命令会拒绝你强推。比 <code>--force</code> 安全 10 倍。</p>
<h2>配置一个好用的 alias</h2>
<p>我 .gitconfig 里这几条 alias 用了 5 年:</p>
<pre><code>[alias]
    s = status
    co = checkout
    sw = switch
    br = branch
    cm = commit -m
    lg = log --oneline --graph --decorate -20
    last = log -1 HEAD
    unstage = reset HEAD --</code></pre>
<p>之后你敲 <code>git s</code> 就是 <code>git status</code>,<code>git lg</code> 一行带分支图看最近 20 条。手指头能省不少。</p>
<h2>想要更全的 cheatsheet 收藏</h2>
<p>这 25 条是我个人高频。但实际项目里你总会遇到边缘情况 (submodule、worktree、bisect)。我把这些都整理到了 <a href="/zh/t/git-cheatsheet">git-cheatsheet</a>,浏览器加书签随时翻。</p>
<p>如果你也用 Docker,<a href="/zh/t/docker-cheatsheet">docker-cheatsheet</a> 同样列了我每天用的 30 多条容器命令。Vim 党可以收 <a href="/zh/t/vim-cheatsheet">vim-cheatsheet</a>,Bash 党收 <a href="/zh/t/bash-cheatsheet">bash-cheatsheet</a>。</p>
<h2>一句话总结</h2>
<p>Git 不需要背 200 条命令。25 条够你跑完 95% 的日常,5 个撤销姿势够你在出事时不慌。</p>
<p><a href="/zh/t/git-cheatsheet">git-cheatsheet</a> 放在 Chrome 书签栏第一格,下次出事打开就在。</p>
<hr />
<p><em>Made by Toolora · Updated 2026-05-26</em></p>]]></content:encoded>
    </item>
    <item>
      <title>如何在线格式化 JSON,5 个程序员每天撞到的真实场景</title>
      <link>https://toolora.info/zh/blog/how-to-format-json-online</link>
      <guid isPermaLink="true">https://toolora.info/zh/blog/how-to-format-json-online</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <author>noreply@toolora.info (李雷)</author>
      <dc:creator><![CDATA[李雷]]></dc:creator>
      <description><![CDATA[JSON 缩进乱了不用打开 IDE,浏览器里 2 秒整齐输出。这篇讲我自己一周内遇到的 5 个场景,以及配套的 4 个数据格式工具。]]></description>
      <category>json</category>
      <category>developer</category>
      <category>tutorial</category>
      <content:encoded><![CDATA[<h1>如何在线格式化 JSON,5 个程序员每天撞到的真实场景</h1>
<p>我上周统计了一下自己 Chrome 的历史记录,光&quot;json formatter&quot;这个搜索词就敲过 17 次。每次都是同一个动作: 从 Postman 复制一段返回,粘进网页,看看到底哪一层 nested 出了问题。</p>
<p>这篇不讲 JSON 语法,讲 5 个真实场景,以及在 <a href="/zh/t/json-formatter">json-formatter</a> 里 30 秒就能搞定的做法。</p>
<h2>JSON 是什么,先用一句话说完</h2>
<p>JSON 全称 JavaScript Object Notation,是一种用文本表示结构化数据的格式。键值对、数组、嵌套对象,够表达世界上 90% 的接口数据。</p>
<p>合法 JSON 必须满足:</p>
<ul><li>字符串必须用双引号,不能用单引号</li><li>键名也必须用双引号</li><li>最后一个元素后面不能有逗号</li><li>不能写注释</li></ul>
<p>这四条规则是 80% 报错的来源。下面 5 个场景,有 3 个本质上就是这四条里的某一条挂了。</p>
<h2>场景 1: 调试接口返回, 5MB 的响应肉眼找字段</h2>
<p>后端同事甩过来一个 URL,Postman 里返回一坨 5MB 的 JSON,全是压缩过的一行。Chrome 自带的 DevTools 也能展开,但操作起来一层一层点很慢。</p>
<p>我的做法是直接全选复制,粘到 <a href="/zh/t/json-formatter">json-formatter</a> 里。它会:</p>
<ol><li>自动 pretty-print,2 空格缩进</li><li>左侧显示行号,方便和同事说&quot;第 3421 行那个字段&quot;</li><li>高亮语法错误,告诉你&quot;第 8 行第 23 列多了一个逗号&quot;</li></ol>
<p>5MB 文件在我 2019 款 MacBook Pro 上 800ms 左右出结果。比开 VS Code 快多了。</p>
<h2>场景 2: 整理 config 文件, 把一行长字符串拆成多行</h2>
<p>写 GitHub Actions workflow 或者 Docker Compose 时,经常会从 ChatGPT 复制一个 config 过来,结果它给了一行压在一起的 JSON。粘进编辑器一看,根本没法 review。</p>
<p><a href="/zh/t/json-formatter">json-formatter</a> 的&quot;美化&quot;按钮就解决这种问题。压缩态和美化态可以来回切换,review 完用美化态,提交进 git 前再切回压缩态。</p>
<p>如果你写的是 YAML 配置(比如 k8s manifest 或者 docker-compose),用 <a href="/zh/t/yaml-formatter">yaml-formatter</a> 同理。YAML 比 JSON 更看缩进,改错一个空格整个文件就报错,所以 format 检查这一步对 YAML 来说几乎是必做的。</p>
<h2>场景 3: 校验合法性, 接口报 400 但你不知道哪错了</h2>
<p>凌晨 1 点上线,POST 一个请求,服务端返回 <code>400 Bad Request: invalid JSON</code>。但你看自己的 body 觉得没毛病。</p>
<p>把 body 粘进 json-formatter,它会精确告诉你:</p>
<ul><li><code>Unexpected token } at line 12, column 5</code>, 意思是多了一个右括号</li><li><code>Trailing comma at line 23</code>, 意思是最后一个元素后面多了逗号</li><li><code>Expected double-quoted property name at line 7</code>, 意思是键名用了单引号</li></ul>
<p>凌晨 1 点这种时候不要靠肉眼看,工具 200ms 给你答案。</p>
<h2>场景 4: 提取嵌套字段, 把 data.list[3].user.email 单独拎出来</h2>
<p>接口返回是这样的结构:</p>
<pre><code>{
  &quot;code&quot;: 0,
  &quot;data&quot;: {
    &quot;list&quot;: [
      {&quot;user&quot;: {&quot;email&quot;: &quot;a@x.com&quot;}, ...},
      {&quot;user&quot;: {&quot;email&quot;: &quot;b@x.com&quot;}, ...}
    ]
  }
}</code></pre>
<p>我想要的只是所有 email。这种时候 json-formatter 有个 JSONPath 输入框,填 <code>$.data.list[*].user.email</code>,直接返回数组:</p>
<pre><code>[&quot;a@x.com&quot;, &quot;b@x.com&quot;]</code></pre>
<p>不用写 Python 不用开 Node REPL。</p>
<h2>场景 5: JSON 转 CSV, 给运营同学发 Excel</h2>
<p>接口拿到一个对象数组,运营要 Excel。如果你打开 Python pandas 写 5 行代码当然也行,但我更常用 <a href="/zh/t/csv-to-json">csv-to-json</a> 工具,它支持双向转换,JSON 数组粘进去,直接出 CSV,运营拿去用 Excel 打开。</p>
<p>类似地,如果对端给的是 XML(老系统、企业 SOAP 接口里很常见),先用 <a href="/zh/t/xml-formatter">xml-formatter</a> 整理出层次,再决定要不要进一步转换。</p>
<h2>5 个保命小技巧</h2>
<p>最后留 5 个我用了 3 年的小习惯:</p>
<ol><li><strong>粘进去之前先 trim</strong>。前后带空格、带 BOM 头的 JSON 会让某些 parser 直接报错,先在编辑器里 trim 一下再粘</li><li><strong>大文件不要直接粘</strong>。超过 10MB 的 JSON 浏览器会卡,这种情况下用本地 <code>jq</code> 命令更合适</li><li><strong>公司密钥不要粘到不知名的 JSON 工具上</strong>。这就是我为什么自己写一个本地解析、不上传服务器的工具,粘进去你打开 DevTools 看 Network,是空的</li><li><strong>校验失败时看列号比看行号有用</strong>。报&quot;第 12 行第 47 列&quot;比报&quot;第 12 行错&quot;精确 10 倍</li><li><strong>压缩前先美化一遍</strong>。直接压缩可能把已经错的 JSON 压得更看不出来,先美化校验,再压缩</li></ol>
<h2>一句话总结</h2>
<p>JSON 格式化不是高级技能,是程序员每天都要做的小动作。重点是把这个小动作的成本从&quot;开 IDE / 写 5 行代码&quot;压到&quot;粘贴 + 2 秒&quot;。</p>
<p>json-formatter 就在那里,加个书签,下次就不用再 Google 了。</p>
<hr />
<p><em>Made by Toolora · Updated 2026-05-26</em></p>]]></content:encoded>
    </item>
    <item>
      <title>100 天学西班牙语到 A2 - 我的真实路径与每天 15 分钟节奏</title>
      <link>https://toolora.info/zh/blog/learn-spanish-100-days</link>
      <guid isPermaLink="true">https://toolora.info/zh/blog/learn-spanish-100-days</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <author>noreply@toolora.info (李雷)</author>
      <dc:creator><![CDATA[李雷]]></dc:creator>
      <description><![CDATA[不是培训机构的鸡血标语。我 2024 年用 100 天从零到能在马德里点单,这篇拆每天该学什么、能达到什么程度、哪 6 个动词必须先吃透。]]></description>
      <category>language</category>
      <category>spanish</category>
      <category>tutorial</category>
      <content:encoded><![CDATA[<h1>100 天学西班牙语到 A2 - 我的真实路径与每天 15 分钟节奏</h1>
<p>2024 年 7 月我决定学西班牙语,因为 10 月要去马德里出差。当时我西语水平: 会一句 &quot;Hola&quot;。100 天之后我在马德里地铁里能听懂广播、在餐厅能跟服务员沟通推荐菜、能跟出租司机聊两句天气。这不算流利,大概是 CEFR 标准里的 A2 水平,但够用。</p>
<p>这篇拆我的具体节奏: 每天学什么、用什么工具、哪些是必须的、哪些是可以跳过的。</p>
<h2>先说预期管理</h2>
<p>100 天不可能让你流利,也不可能让你看懂西语电视剧。100 天能让你:</p>
<ul><li>听懂常用问候、简单问题、餐厅点单、问路</li><li>用现在时讲清楚自己是谁、住哪、做什么工作</li><li>阅读简单菜单、路牌、产品标签</li><li>用现在时写简单的微信消息</li></ul>
<p>CEFR 对应 A1 末尾 到 A2 初期。下面的方法适合每天能挤出 15 到 30 分钟的上班族,不适合脱产学习的学生。</p>
<h2>100 天三阶段</h2>
<p>我把 100 天切成三段:</p>
<p>| 阶段 | 天数 | 重点 | 每天投入 | |---|---|---|---| | 第一阶段 | 第 1 到 30 天 | 发音 + 100 个高频词 + 6 个核心动词的现在时变位 | 15 分钟 | | 第二阶段 | 第 31 到 70 天 | 词汇扩展到 500 + 简单句型 | 25 分钟 | | 第三阶段 | 第 71 到 100 天 | 听力浸泡 + 口语对话 | 30 分钟 |</p>
<h2>第一阶段: 发音 + 100 词 + 6 个动词</h2>
<h3>发音是西语的天然福利</h3>
<p>西班牙语发音规则极其稳定,看到字基本就会读。这点比英语友好 10 倍。</p>
<p>需要专门练的就这几个:</p>
<ul><li><strong>rr (大舌音)</strong>: perro (狗), 卡口腔上颚弹舌,中国人最难的一关</li><li><strong>j/ge/gi</strong>: 喉音,像清嗓子,gente (人) 读&quot;hen-te&quot;</li><li><strong>ñ</strong>: 类似英文 ny,niño (小孩) 读&quot;nin-yo&quot;</li><li><strong>ll</strong>: 多数地区读 y 音,llamar (叫) 读&quot;ya-mar&quot;</li></ul>
<p>我每天对镜子练 3 分钟,大概 7 到 10 天后大舌音能滚出来。</p>
<h3>100 高频词,日积月累</h3>
<p>我用的就是 <a href="/zh/t/spanish-vocab-100">spanish-vocab-100</a>,这个工具列出西语最高频的 100 个词,每天看 10 个,默写一次,10 天过完。第 11 天到第 30 天就是滚动复习。</p>
<p>100 个词覆盖日常对话的 50% 左右。重点是:</p>
<ul><li>代词: yo, tú, él, ella, nosotros</li><li>时间词: hoy, ayer, mañana, ahora</li><li>方位词: aquí, allí, arriba, abajo</li><li>高频名词: casa, agua, comida, trabajo, tiempo</li></ul>
<h3>6 个动词的现在时变位</h3>
<p>西语动词变位是最大门槛。但 80% 日常对话用的就这 6 个:</p>
<p>| 动词 | 含义 | yo | tú | él/ella | nosotros | vosotros | ellos | |---|---|---|---|---|---|---|---| | ser | 是(本质) | soy | eres | es | somos | sois | son | | estar | 是(状态) | estoy | estás | está | estamos | estáis | están | | tener | 有 | tengo | tienes | tiene | tenemos | tenéis | tienen | | hacer | 做 | hago | haces | hace | hacemos | hacéis | hacen | | ir | 去 | voy | vas | va | vamos | vais | van | | poder | 能 | puedo | puedes | puede | podemos | podéis | pueden |</p>
<p>ser 和 estar 都是&quot;是&quot;,区别要专门花一晚搞清楚: <strong>ser 用于本质属性 (国籍、职业、性格), estar 用于状态 (位置、心情、暂时状态)</strong>。&quot;我是中国人&quot;用 ser,&quot;我在北京&quot;用 estar。</p>
<p>第一阶段把这 6 个动词背到张口就来,第二阶段才学得动。</p>
<h2>第二阶段: 500 词 + 简单句型</h2>
<p>第 31 到 70 天,40 天,目标把词汇从 100 扩到 500。</p>
<p>我的做法是: 每天新学 10 个词,复习昨天和前天的 20 个。10 + 20 = 30 个词,15 分钟搞定。剩下 10 分钟造句。</p>
<p>造句的句型只用三种:</p>
<ol><li><strong>Yo + 动词 + 名词</strong>: Yo tengo un perro. (我有一只狗)</li><li><strong>Sujeto + ser/estar + adjetivo</strong>: Madrid es bonito. (马德里很美)</li><li><strong>Yo quiero + infinitivo</strong>: Yo quiero comer. (我想吃)</li></ol>
<p>这三种句型够撑起所有 A1 到 A2 的日常表达。复杂的从句、虚拟式、过去时全部 100 天后再说。</p>
<h2>第三阶段: 听力浸泡 + 真实场景</h2>
<p>最后 30 天,词汇够了、动词够了,缺的是耳朵和嘴。</p>
<h3>听力</h3>
<p>我每天通勤 30 分钟听一档叫 &quot;Notes in Spanish&quot; 的播客 (Beginner 系列),不强求听懂每个词,听整体语流。</p>
<p>YouTube 上有个频道叫 &quot;Dreaming Spanish&quot;,纯西语视频带画面,适合零基础。</p>
<h3>口语</h3>
<p>我用一个叫 Tandem 的 app 找语伴,每周和一个西班牙人语音 20 分钟,他教我西语我教他中文。</p>
<p>如果你不想跟陌生人聊天,对着 ChatGPT 用语音模式,假设它是马德里服务员,你练点菜流程。</p>
<h2>100 天结束后,我去了马德里</h2>
<p>下飞机第一个测试是机场出租。司机问我&quot;De dónde eres?&quot; (你来自哪里),我答&quot;Soy de China, de Beijing&quot; (我来自中国北京)。他听懂了,我也听懂了他后面问的&quot;primera vez en España?&quot; (第一次来西班牙吗)。那一刻 100 天的投入有了回报。</p>
<p>实际场景里听力比口语难得多。当地人语速是教材的 2 倍,而且吞音严重。前 3 天我基本只能在餐厅指菜单,第 4 天开始能跟服务员讲完整句子。</p>
<h2>想学其他语言怎么办</h2>
<p>同样的方法可以套用到法语、意大利语、英语。我自己也在学法语,用 <a href="/zh/t/french-vocab-100">french-vocab-100</a> 走同样的 100 词路径。</p>
<p>如果你的孩子在学意大利语 (北京有家长群在搞兴趣班),<a href="/zh/t/italian-vocab-100">italian-vocab-100</a> 也可以参考。</p>
<p>英语水平想自测,<a href="/zh/t/english-vocab-quiz">english-vocab-quiz</a> 用 20 道题给你大致定一个 CEFR 等级,5 分钟跑完,知道自己处于 A2 还是 B1 心里有谱。</p>
<h2>一句话总结</h2>
<p>100 天学到 A2,关键不是天赋,是节奏。每天 15 分钟比每周末刷 3 小时有用 10 倍。</p>
<p><a href="/zh/t/spanish-vocab-100">spanish-vocab-100</a> 给你第一阶段的底座,剩下的靠坚持。</p>
<hr />
<p><em>Made by Toolora · Updated 2026-05-26</em></p>]]></content:encoded>
    </item>
    <item>
      <title>房贷计算公式拆给你看,等额本息 vs 等额本金 100 万 30 年实测</title>
      <link>https://toolora.info/zh/blog/mortgage-calculation-guide</link>
      <guid isPermaLink="true">https://toolora.info/zh/blog/mortgage-calculation-guide</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <author>noreply@toolora.info (李雷)</author>
      <dc:creator><![CDATA[李雷]]></dc:creator>
      <description><![CDATA[公式不背,直接拿 100w / 30 年 / 4.0% 这组真实数字跑一遍。两种还法到底差多少钱,什么时候提前还最划算,看完就懂。]]></description>
      <category>finance</category>
      <category>mortgage</category>
      <category>tutorial</category>
      <content:encoded><![CDATA[<h1><a href="/zh/t/mortgage-calculator">房贷计算</a>公式拆给你看,等额本息 vs 等额本金 100 万 30 年实测</h1>
<p>我 2022 年签房贷合同那天,银行经理花了 90 秒把两个选项口头讲完,然后递笔过来。我当时其实没听懂,签完回家自己用 Excel 跑了三天,才搞明白两种方式 30 年下来差了 12 万利息。</p>
<p>这篇用一组真实的数字 (100 万本金 / 30 年 / 4.0% 年利率) 把两种还款方式从公式到月供再到总利息全部跑一遍,以及一个我后来总结的提前还款判断方法。</p>
<h2>先看结论</h2>
<p>| | 等额本息 | 等额本金 | |---|---|---| | 首月月供 | 4,774 元 | 6,111 元 | | 末月月供 | 4,774 元 | 2,787 元 | | 30 年总利息 | 718,696 元 | 601,667 元 | | 利息差 | | <strong>省 117,029 元</strong> |</p>
<p>等额本金 30 年下来比等额本息少还约 11.7 万利息,但前 10 年的月供压力大很多。要不要选它,看你的现金流。</p>
<p>下面拆数学。</p>
<h2>等额本息的公式</h2>
<p>每月还相同的钱,前期还的大部分是利息,后期才是本金。月供公式:</p>
<pre><code>M = P × r × (1+r)^n / ((1+r)^n - 1)</code></pre>
<ul><li>P = 贷款本金 (1,000,000)</li><li>r = 月利率 (年利率 / 12 = 0.04 / 12 ≈ 0.003333)</li><li>n = 还款月数 (30 × 12 = 360)</li></ul>
<p>代入算: M ≈ 4,774.15 元</p>
<p>每个月固定这个数,360 个月不变。总还款 = 4,774.15 × 360 ≈ 1,718,696 元,其中利息 718,696 元。</p>
<p>第一个月的利息占比:</p>
<pre><code>首月利息 = 1,000,000 × 0.003333 ≈ 3,333 元
首月本金 = 4,774 - 3,333 = 1,441 元</code></pre>
<p>也就是说,你第一个月还的 4,774 块里,3,333 是利息,只有 1,441 是真正还了本金。这就是为什么前几年觉得&quot;还了那么多怎么本金没动&quot;。</p>
<h2>等额本金的公式</h2>
<p>每月还相同的本金,加上当月剩余本金产生的利息。月供公式:</p>
<pre><code>本月本金 = P / n = 1,000,000 / 360 ≈ 2,778 元 (固定)
本月利息 = 剩余本金 × r
本月月供 = 本金 + 利息</code></pre>
<p>第一个月:</p>
<pre><code>本金: 2,778
利息: 1,000,000 × 0.003333 ≈ 3,333
月供: 6,111 元</code></pre>
<p>最后一个月:</p>
<pre><code>本金: 2,778
利息: 2,778 × 0.003333 ≈ 9
月供: 2,787 元</code></pre>
<p>总利息 = 等差数列求和 ≈ 601,667 元。</p>
<h2>为什么等额本金省 11.7 万</h2>
<p>本质是: <strong>等额本金前期还了更多的本金,后期需要付利息的本金基数小了</strong>。</p>
<p>我用一个粗暴的类比: 假设你借朋友 1000 块,日息千分之一。</p>
<ul><li>方案 A: 每天还 11 块,30 天还完</li><li>方案 B: 第一天还 200,后面 800 慢慢还</li></ul>
<p>方案 B 后面 29 天的利息是基于 800 算的,方案 A 后面 29 天的利息是基于近 1000 算的。利息差就出来了。</p>
<p>具体的逐月对比,我会直接打开 <a href="/zh/t/mortgage-calculator">mortgage-calculator</a> 输入这三个参数,它会出 360 行的明细表,每行写清本金、利息、剩余本金。比 Excel 自己写公式快多了。</p>
<h2>怎么选</h2>
<p>我建议按这三个问题判断:</p>
<p><strong>1. 现在月入多少?</strong></p>
<p>如果首月月供占月入超过 50%,选等额本息。生活要紧。</p>
<p>100w / 30 年 / 4.0%,首月 6,111 元,意味着如果你税后月入低于 12,000 元就不要选等额本金。</p>
<p><strong>2. 未来 5 年现金流稳定吗?</strong></p>
<p>如果你正在创业、行业波动大、有娃要养,选等额本息。固定月供给你心理安全感。</p>
<p><strong>3. 有没有提前还款的可能?</strong></p>
<p>如果你大概率 5 到 10 年内会提前还,选等额本息和等额本金差距会缩小。具体多少差,可以用 <a href="/zh/t/loan-comparison">loan-comparison</a> 把两种方式并列对比,假设第 7 年提前还 30 万,看哪种最终利息更低。</p>
<h2>关于提前还款</h2>
<p>我自己 2023 年中提前还过 20 万,那年我用 <a href="/zh/t/loan-prepayment-calculator">loan-prepayment-calculator</a> 算了三种方案:</p>
<p>| 方案 | 描述 | 节省利息 | |---|---|---| | 缩短年限 | 月供不变,30 年变 23 年 | 约 19 万 | | 减少月供 | 年限不变,月供降低 | 约 11 万 | | 不还,投理财 | 假设理财年化 4.5% | 多赚约 1.6 万 |</p>
<p>结论很清晰: <strong>缩短年限最划算</strong>,前提是你后面 23 年的月供你扛得住。</p>
<p>什么时候提前还划算的判断,网上有个口诀叫&quot;前期还划算,后期还鸡肋&quot;,其实就是: 还款年限过半之后,你每个月还的大部分已经是本金,利息没多少了,提前还的边际收益变小。</p>
<p>具体到一个数字: 30 年贷款,<strong>第 15 年是分界线</strong>。第 15 年之前提前还,省的利息明显;第 15 年之后,你不如把钱拿去 <a href="/zh/t/compound-interest-calculator">compound-interest-calculator</a> 算一下,投个稳健理财可能更划算。</p>
<h2>一句话总结</h2>
<p>房贷本质就是借钱付利息。两个公式不复杂,真正难的是看清自己的现金流。</p>
<p><a href="/zh/t/mortgage-calculator">mortgage-calculator</a> 把数字跑出来,你才有谈判和决策的底气。签字之前花 10 分钟跑一遍,可能就省下一辆车。</p>
<hr />
<p><em>Made by Toolora · Updated 2026-05-26</em></p>]]></content:encoded>
    </item>
    <item>
      <title>程序员必备 30 个浏览器工具</title>
      <link>https://toolora.info/zh/blog/programmer-must-have-30-browser-tools</link>
      <guid isPermaLink="true">https://toolora.info/zh/blog/programmer-must-have-30-browser-tools</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <author>noreply@toolora.info (李雷)</author>
      <dc:creator><![CDATA[李雷]]></dc:creator>
      <description><![CDATA[我每天都在用的 30 个浏览器小工具, 全部免登录、100% 本地, 按使用频次分组排序。]]></description>
      <category>roundup</category>
      <category>developer</category>
      <category>tools</category>
      <content:encoded><![CDATA[<h1>程序员必备 30 个浏览器工具</h1>
<p>我的浏览器书签栏里有一栏叫 &quot;tools&quot;, 装的就是这 30 个东西。多数是十秒钟用完就关掉的: 把一段 JSON 美化一下、查个 HTTP 状态码、把字符串 base64 一下。装本地 CLI 太重, 在 VS Code 里翻插件太慢, 这种活就该在标签页里完成。</p>
<p>下面这份清单按我自己的使用频次和场景分组。每个工具都开过, 不会出现&quot;作者也没用过的工具混进来凑数&quot;的情况。所有页面都是纯前端, 你粘进去的数据不会出这个标签页。</p>
<h2>1. JSON / YAML / 配置文件 (5 款)</h2>
<h3>1. <a href="/zh/t/json-formatter">JSON 格式化器</a></h3>
<p>我打开次数最多的一个标签页, 没有之一。接联调环境时, 后端塞过来的 JSON 经常是单行 12 KB, 这页打开能立刻美化、折叠、按路径检索。5 MB 以内都是秒开, 不会像某些在线 JSON 工具拖一下卡两秒。我把它钉在了任务栏的第一个固定标签里。</p>
<h3>2. <a href="/zh/t/yaml-formatter">YAML 格式化器</a></h3>
<p>写 K8s manifest 和 GitHub Actions workflow 时, 缩进错一格就报错。这个工具能高亮非法缩进, 顺便告诉你某个 key 重复了。比直接交给 <code>kubectl apply</code> 再看错误日志, 快两倍。</p>
<h3>3. <a href="/zh/t/yaml-to-json">YAML 转 JSON</a></h3>
<p>拿到一份 docker-compose.yml 想塞给一个只吃 JSON 的工具时, 直接粘进去出结果。反向需求也常见, 写 <code>helm values</code> 时我有时候先用 JSON 思考结构再转 YAML。</p>
<h3>4. <a href="/zh/t/csv-to-json">CSV 转 JSON</a></h3>
<p>运营给我一份 CSV 让我导入数据库, 中间这一步永远是 CSV → JSON → SQL 批量 insert 语句。表头自动当 key, 空字段不会丢, 双引号转义也处理得对。</p>
<h3>5. <a href="/zh/t/xml-to-json">XML 转 JSON</a></h3>
<p>对接老系统时 XML 还是绕不开的, SOAP 和 RSS 都在用。粘一段 XML 进去, 能看到树状结构再决定怎么解析。</p>
<h2>2. 速查表 (8 款)</h2>
<h3>6. <a href="/zh/t/git-cheatsheet">Git 速查表</a></h3>
<p><code>git reset --hard</code> 和 <code>git reset --soft</code> 的区别每隔三个月就要查一次。比开浏览器搜 stackoverflow 然后被广告糊一脸, 不如直接来这里。包含 rebase / cherry-pick / reflog 的几个常用救命姿势。</p>
<h3>7. <a href="/zh/t/vim-cheatsheet">Vim 速查表</a></h3>
<p>本地有 cheat.sh 是好, 但远程登 SSH 跳板机时, 用浏览器查一下 <code>:%s/foo/bar/gc</code> 的语法是最快的。命令按编辑/移动/搜索分类, 一屏看完。</p>
<h3>8. <a href="/zh/t/bash-cheatsheet">Bash 速查表</a></h3>
<p>写 shell 脚本时, <code>${var%.*}</code> 和 <code>${var%%.*}</code> 到底哪个去掉的多, 我每次都得验证。这页把变量展开、参数替换、循环结构、test 表达式分块罗列, 翻三秒就能确认。</p>
<h3>9. <a href="/zh/t/docker-cheatsheet">Docker 速查表</a></h3>
<p><code>docker exec</code> 和 <code>docker run</code> 的参数顺序经常打错, 容器进不去时排错也常翻 <code>--mount</code> 和 <code>-v</code> 的语义差别。这页把日常 80% 命令分了 build / run / 网络 / volume 四块。</p>
<h3>10. <a href="/zh/t/kubectl-cheatsheet">Kubectl 速查表</a></h3>
<p>debug 一个 pod 时常要的几个魔法咒语: <code>kubectl get pod -o wide</code>、<code>kubectl describe</code>、<code>kubectl logs --tail=100 -f</code>、port-forward 的参数顺序。打印出来贴显示器边上的那种内容, 这页直接装下了。</p>
<h3>11. <a href="/zh/t/sql-cheatsheet">SQL 速查表</a></h3>
<p>不写 SQL 的项目期, JOIN 类型一过半年就糊了。INNER / LEFT / FULL OUTER 的图示放在一起, 加上 window function 那几个最常用的 <code>ROW_NUMBER / RANK / LAG</code>, 写复杂查询前先翻一下省得返工。</p>
<h3>12. <a href="/zh/t/regex-cheatsheet">Regex 速查表</a></h3>
<p>正则表达式那几个零宽断言 <code>(?=)</code> <code>(?&lt;=)</code> <code>(?!)</code> <code>(?&lt;!)</code> 我能记住语义记不住符号。这页按断言、量词、字符类、捕获组分块, 写复杂正则前两秒钟回血。</p>
<h3>13. <a href="/zh/t/tailwind-cheatsheet">Tailwind 速查表</a></h3>
<p>写 Tailwind 时, <code>space-x</code> 和 <code>gap</code> 的区别、<code>grid-cols-[200px_1fr]</code> 这种任意值写法, 不查表写不出来。这页按布局、间距、文字、颜色、响应式分组, 找一个 class 不会被淹没在官方文档的瀑布里。</p>
<h2>3. 加密 / 哈希 / 编码 (4 款)</h2>
<h3>14. <a href="/zh/t/base64-encoder">Base64 编解码</a></h3>
<p>HTTP basic auth 写测试用例时, 把 <code>user:pass</code> base64 一下塞 Authorization header。在 nginx 配 <code>auth_basic_user_file</code> 时也会用到。比开终端 <code>echo -n &quot;user:pass&quot; | base64</code> 还快一点, 因为不用怕忘记 <code>-n</code>。</p>
<h3>15. <a href="/zh/t/jwt-decoder">JWT 解码器</a></h3>
<p>生产环境 401 时, 把请求头里那串 token 粘进来看 payload 里的 <code>exp</code> 是不是过期了, 看 <code>iss</code> 是不是发错了。<strong>完全本地解析</strong>, 这点很重要, 生产 token 这种东西不能往不知名的在线工具上送。</p>
<h3>16. <a href="/zh/t/jwt-encoder">JWT 编码器</a></h3>
<p>写测试时手搓一个 JWT, 选算法、填 payload、给 secret, 一秒出。常用来跑 e2e 测试时模拟不同角色的用户。</p>
<h3>17. <a href="/zh/t/md5-sha-hash">MD5 / SHA 哈希计算器</a></h3>
<p>对比文件完整性、生成签名比对、把字符串哈希后当 key 用。MD5/SHA-1/SHA-256/SHA-512 一起出, 不用切工具。</p>
<h2>4. DevOps / 运维 (5 款)</h2>
<h3>18. <a href="/zh/t/cron-expression-explainer">Cron 表达式解释器</a></h3>
<p>写 <code>0 */6 * * 1-5</code> 时, 我每次都要确认它真的是工作日每 6 小时执行而不是周末。这页粘进去后给出&quot;未来 5 次执行时间&quot;, 比心算靠谱。</p>
<h3>19. <a href="/zh/t/crontab-helper">Crontab 助手</a></h3>
<p>按下拉框选&quot;每天 9 点&quot;、&quot;每周一三五凌晨 2 点&quot;, 自动生成 cron 表达式。给不熟悉 cron 的同事临时拼一条很顺手。</p>
<h3>20. <a href="/zh/t/http-status-explorer">HTTP 状态码查询</a></h3>
<p>418 是什么、307 和 308 差在哪、426 怎么触发。按数字搜或按场景搜都行, 比 MDN 翻一遍快。</p>
<h3>21. <a href="/zh/t/dns-record-explainer">DNS 记录类型解释器</a></h3>
<p>SPF / DKIM / DMARC 三件套配邮件域名时, TXT 记录里到底该写什么。CAA 记录限制证书签发的语法。这页按记录类型一个个讲, 配实际例子。</p>
<h3>22. <a href="/zh/t/linux-permission-calculator">Linux 权限计算器</a></h3>
<p>755 和 644 我背得下来, 但 1777 (sticky bit) 和 4755 (setuid) 偶尔要排错。勾选框点一下就能拿到数字, 反过来粘个数字也能解析。</p>
<h2>5. 文本 / 数据处理 (4 款)</h2>
<h3>23. <a href="/zh/t/text-deduplicator">文本去重</a></h3>
<p>日志里捞出 1000 行 IP 想去重时, 这页比写 <code>sort | uniq</code> 还省事, 主要是它顺带告诉你原本多少行、去重后多少行、重复率多少。</p>
<h3>24. <a href="/zh/t/text-sorter">文本排序</a></h3>
<p>按字母、按数字、按长度排; 升序降序; 反转。整理 import 语句、整理 SQL IN 列表、整理环境变量, 都在这页搞定。</p>
<h3>25. <a href="/zh/t/text-diff">文本差异对比</a></h3>
<p>本地没装 diff 工具时, 或者要对比的两段文本是聊天里粘过来的, 浏览器里红绿对比一下就行。行级和字符级两种粒度都支持。</p>
<h3>26. <a href="/zh/t/uuid-generator">UUID 生成器</a></h3>
<p>写测试数据、初始化数据库主键、给 trace ID 填值。一次生成 1-100 个, 复制按钮一键全选。v4 是默认, v1/v7 也支持。</p>
<h2>6. 颜色 / 设计 (4 款)</h2>
<h3>27. <a href="/zh/t/color-picker">颜色选择器</a></h3>
<p>写 CSS 时不开 Photoshop 也能选色, HEX / RGB / HSL 三种格式同步切换。给图片用还得配合下一个工具。</p>
<h3>28. <a href="/zh/t/image-color-extractor">图片取色</a></h3>
<p>设计师丢个截图过来让&quot;按这个色调&quot;, 上传图片直接抽出 5-10 个主色, HEX 一键复制。比手动用 PS 的吸管挨个戳省事。</p>
<h3>29. <a href="/zh/t/gradient-generator">CSS 渐变生成器</a></h3>
<p>linear-gradient 三个色标我能写, 但 conic-gradient 一上手就要查。这页拖滑块可视化调, 实时预览, 复制 CSS 直接粘进去。</p>
<h3>30. <a href="/zh/t/color-contrast-checker">对比度检查器</a></h3>
<p>WCAG AA 要求正文 4.5:1, AAA 要求 7:1。设计稿丢过来的浅灰文字一上线就被无障碍工具喷, 上线前先拿这页校一下。</p>
<h2>怎么用最高效</h2>
<p>我自己常用的三种组合姿势:</p>
<ol><li><strong>联调流</strong>: <a href="/zh/t/json-formatter">JSON 格式化</a> + JWT 解码 + HTTP 状态码 三个标签页常驻。后端给的接口不对劲时, 30 秒内能定位是协议错了、token 错了还是数据结构错了。</li><li><strong>运维流</strong>: Cron 解释器 + Crontab 助手 + Linux 权限计算器。配定时任务前先在浏览器里把表达式算对、把权限位算对, 提交脚本时不至于第二天凌晨被报警吵醒。</li><li><strong>设计流</strong>: 颜色选择器 + 图片取色 + 对比度检查器。前端写完一个组件后, 把截图放进去抽主色, 再把主色对背景跑一遍对比度, 不会等 PR review 时被设计师打回。</li></ol>
<p>书签栏腾一栏出来, 把这 30 个钉进去, 你会发现一年之中省下来的搜索时间够你看完几本书。</p>
<hr />
<p><em>Made by Toolora · Updated 2026-05-26</em></p>]]></content:encoded>
    </item>
    <item>
      <title>卡路里赤字到底是什么 - 70kg 男生减 5kg 实测 90 天</title>
      <link>https://toolora.info/zh/blog/weight-loss-calorie-deficit-explained</link>
      <guid isPermaLink="true">https://toolora.info/zh/blog/weight-loss-calorie-deficit-explained</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <author>noreply@toolora.info (李雷)</author>
      <dc:creator><![CDATA[李雷]]></dc:creator>
      <description><![CDATA[不是网红博主那种鸡血方案。我自己 2024 年减 5kg 的完整数学,TDEE 怎么算,赤字定多少安全,为什么 0.5kg/周才是上限。]]></description>
      <category>health</category>
      <category>weight-loss</category>
      <category>tutorial</category>
      <content:encoded><![CDATA[<h1>卡路里赤字到底是什么 - 70kg 男生减 5kg 实测 90 天</h1>
<p>我 2024 年初 70 公斤,1.75 米,体脂率 22% 左右。那时候我穿衣服明显有小肚子,跑 3 公里就喘。当年 6 月体检看到尿酸偏高,医生说&quot;年纪上来了要注意体重&quot;。</p>
<p>90 天后我减到 65 公斤,体脂 16%。腰围从 86 厘米降到 80 厘米,跑 5 公里不喘。</p>
<p>这篇拆我的方法。没有秘方,本质就是卡路里赤字 + 力量训练。重点是数学要算对,不能凭感觉。</p>
<h2>卡路里赤字的本质 - 一个减法</h2>
<p>人体重的变化遵守能量守恒:</p>
<pre><code>能量摄入 &lt; 能量消耗 → 体重下降
能量摄入 &gt; 能量消耗 → 体重上升
能量摄入 = 能量消耗 → 体重不变</code></pre>
<p>&quot;卡路里赤字&quot; 就是上面第一条,摄入比消耗少。1 公斤脂肪大约 7700 千卡,所以理论上:</p>
<pre><code>每天赤字 500 千卡 × 14 天 = 7000 千卡 ≈ 减 0.9 公斤</code></pre>
<p>实际会比理论略少 (身体会适应、肌肉也可能掉一点),但量级对的。</p>
<h2>第一步: 算你的 TDEE</h2>
<p>TDEE 是 Total Daily Energy Expenditure,你一天总共消耗多少千卡。</p>
<p>公式两步:</p>
<h3>1. 算 BMR (基础代谢率)</h3>
<p>身体不动一天烧多少卡。Mifflin-St Jeor 公式:</p>
<p><strong>男性</strong>:</p>
<pre><code>BMR = 10 × 体重(kg) + 6.25 × 身高(cm) - 5 × 年龄 + 5</code></pre>
<p><strong>女性</strong>:</p>
<pre><code>BMR = 10 × 体重(kg) + 6.25 × 身高(cm) - 5 × 年龄 - 161</code></pre>
<p>我 35 岁 70kg 175cm 男:</p>
<pre><code>BMR = 10×70 + 6.25×175 - 5×35 + 5
    = 700 + 1094 - 175 + 5
    = 1624 千卡</code></pre>
<p>不想手算的就直接用 <a href="/zh/t/bmr-calculator">bmr-calculator</a>,输入身高体重年龄性别,1 秒出结果。</p>
<h3>2. 乘活动系数得 TDEE</h3>
<p>| 活动强度 | 描述 | 系数 | |---|---|---| | 久坐 | 全天办公,几乎不动 | 1.2 | | 轻度 | 每周 1 到 3 次轻量运动 | 1.375 | | 中度 | 每周 3 到 5 次中等强度 | 1.55 | | 高强度 | 每周 6 到 7 次高强度 | 1.725 | | 极高 | 体力工作 + 每天训练 | 1.9 |</p>
<p>我属于&quot;中度&quot;,每周跑 3 次步 + 2 次力量:</p>
<pre><code>TDEE = 1624 × 1.55 ≈ 2517 千卡</code></pre>
<p>也就是说,我每天吃 2517 千卡体重不变。</p>
<p><a href="/zh/t/calorie-calculator">calorie-calculator</a> 把这两步合在一起,直接出 TDEE 和不同减重速度对应的目标摄入。</p>
<h2>第二步: 定赤字大小</h2>
<p>这是最关键的一步,大部分人犯错的地方是赤字定太大。</p>
<h3>安全赤字: 占 TDEE 的 15% 到 25%</h3>
<p>我 TDEE 2517,赤字定 500:</p>
<pre><code>目标摄入 = 2517 - 500 = 2017 千卡
预期减重 = 500 × 7 / 7700 ≈ 0.45 kg/周</code></pre>
<p>每周减 0.5 公斤,90 天大概减 6 到 7 公斤。这是<strong>可持续的速度</strong>。</p>
<h3>为什么不能赤字 1000+</h3>
<p>我刚开始也想&quot;赤字 1000,2 周减 2 公斤多爽&quot;,但实际尝试一周就崩了。原因:</p>
<ol><li><strong>饥饿感不可控</strong>: TDEE 60% 以下的摄入会触发强烈饥饿,坚持不过 1 个月</li><li><strong>代谢下调</strong>: 身体感觉到饥荒会主动降低 BMR,减重停滞</li><li><strong>肌肉流失</strong>: 没有足够蛋白质和能量,身体会拆肌肉换能量</li><li><strong>复胖率高</strong>: 短时间剧烈减重,反弹率 90% 以上</li></ol>
<p>国际通行的建议: <strong>每周减重不超过当前体重的 1%</strong>。70kg 的人就是每周最多 0.7kg。</p>
<h2>第三步: 蛋白质要够</h2>
<p>减脂期蛋白质摄入要拉到每公斤体重 1.6 到 2.2 克。我 70kg,每天蛋白质 130 克左右。</p>
<p>为什么? 因为赤字状态下身体会拆肌肉,蛋白质够才能保护肌肉,让&quot;减掉的那 5kg&quot;全是脂肪而不是肌肉。</p>
<p>130 克蛋白质大概是:</p>
<ul><li>早餐: 2 个鸡蛋 + 1 杯牛奶 = 20g</li><li>午餐: 鸡胸 150g = 35g</li><li>晚餐: 三文鱼 120g = 25g</li><li>加餐: 蛋白粉 30g + 希腊酸奶 = 35g + 15g</li></ul>
<p>凑得到。</p>
<h2>我 90 天的实测数据</h2>
<p>我每天用 <a href="/zh/t/weight-loss-tracker">weight-loss-tracker</a> 早晨空腹称重,记录体重曲线。</p>
<p>| 周次 | 起始体重 | 末周体重 | 减重 | 备注 | |---|---|---|---|---| | 1 到 4 周 | 70.0 | 68.2 | -1.8 | 第一周-1.2 多是水,后面稳定 | | 5 到 8 周 | 68.2 | 66.8 | -1.4 | 平台期一次,5 天没动 | | 9 到 12 周 | 66.8 | 65.0 | -1.8 | 加了 16:8 间歇饮食 | | 总计 | 70.0 | 65.0 | -5.0 | 90 天 |</p>
<p>注意第二段 5 到 8 周,有一次 5 天体重不变。这就是减脂平台期,正常现象,不要急着加大赤字。坚持原来的节奏,1 周后又开始掉。</p>
<h2>几个坑提前告诉你</h2>
<ol><li><strong>不要每天称体重然后焦虑</strong>。一天里体重浮动 1 到 2 公斤是水分变化,完全正常。看 7 天移动平均才有意义</li><li><strong>来例假/啤酒之夜后第二天体重多 1.5 公斤</strong>。是水钠潴留,2 到 3 天会回去</li><li><strong>第一周减得快不是减脂,是糖原储水</strong>。糖原每克带 3 克水,你少吃几天碳水水分先掉</li><li><strong>不要全用有氧</strong>。光跑步不练力量,减下来的体重 1/3 是肌肉,身材会显得松垮。每周 2 次力量训练是底线</li></ol>
<h2>间歇饮食加分项</h2>
<p>我后 30 天加了 16:8 间歇饮食 (每天 8 小时内吃完,16 小时空腹)。不是因为它能多减脂,而是它<strong>自然降低了我的进食量</strong>。中午 12 点到晚上 8 点之间吃,2 顿正餐基本就到 2000 千卡上限。</p>
<p>如果你想试 16:8,<a href="/zh/t/intermittent-fasting-tracker">intermittent-fasting-tracker</a> 帮你记录每天的进食窗口,看坚持情况。我自己用了一个月觉得对睡眠和精神状态都有提升,现在变成日常。</p>
<h2>一句话总结</h2>
<p>减肥没有秘方。算清 TDEE,定 15% 到 25% 的赤字,坚持 12 周,体重就会动。</p>
<p><a href="/zh/t/weight-loss-tracker">weight-loss-tracker</a> 每天 30 秒记录,90 天回头看曲线,你会感谢现在开始的自己。</p>
<hr />
<p><em>Made by Toolora · Updated 2026-05-26</em></p>]]></content:encoded>
    </item>
    <item>
      <title>欢迎来到 Toolora</title>
      <link>https://toolora.info/zh/blog/welcome-to-toolora</link>
      <guid isPermaLink="true">https://toolora.info/zh/blog/welcome-to-toolora</guid>
      <pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate>
      <author>noreply@toolora.info (李雷)</author>
      <dc:creator><![CDATA[李雷]]></dc:creator>
      <description><![CDATA[Toolora 是什么、给谁用,以及五类常见用户最值得先收藏的 15 个工具。]]></description>
      <category>intro</category>
      <category>tools</category>
      <content:encoded><![CDATA[<h1>欢迎来到 Toolora</h1>
<p>Toolora 是一个常用工具的合集,目前 74 个,后面会再长。JSON 格式化、图片压缩、取色器、各种计算器 —— 全部在你这个浏览器标签页里跑。不要邮箱、不要注册、没有&quot;免费版 vs Pro&quot;那道墙。你看到什么就是全部。</p>
<p>我做这个站起因很简单: 我自己每天都被那些塞满广告、强制登录的工具页浪费时间。我也不太放心把生产环境的 JSON 粘进一个不知道幕后是什么的网站。于是干脆自己写一个我自己想用的版本: 每个工具 Lighthouse 必须 95+,每个工具的 JS 预算约 30 KB,你用任何一个工具时打开开发者工具的 Network 面板,应该是空的。不用相信我,你自己看。</p>
<p>下面是我们后台里反复出现的五类用户,以及我会推荐每类用户<strong>先收藏的 3 个工具</strong>。</p>
<h2>1. 学生</h2>
<p>写作业、写复盘、写公众号草稿、做研究笔记。</p>
<ul><li><a href="/zh/t/markdown-table-generator">Markdown 表格生成器</a> — 写月度复盘、读书笔记时,把对比表格做出来比纯文字直观 10 倍。</li><li><a href="/zh/t/word-counter">字数统计</a> — 作文 800 字、论文摘要 300 字、知乎回答 500 字 —— 实时看到字数,不用提交后才发现超了。</li><li><a href="/zh/t/image-compressor-local">图片压缩</a> — 班级群、学校系统经常限制 2MB,4MB 截图压到 500KB 内毫无压力。</li></ul>
<h2>2. 家长</h2>
<p>辅导孩子、家庭账本、给爸妈拍的照片。</p>
<ul><li><a href="/zh/t/chinese-pinyin-converter">中文拼音转换器</a> — 给孩子辅导生字时打一段拼音对照表,比手写快得多;给老人传文档时也用得上。</li><li><a href="/zh/t/image-cropper">图片裁剪</a> — 把孩子获奖照片裁成证件照规格、把家庭照剪成微信表情或朋友圈封面。</li><li><a href="/zh/t/qrcode-generator">二维码生成器</a> — 家长群临时收 WiFi、收个人微信、收作业链接,一个二维码省得在群里贴长链接。</li></ul>
<h2>3. 开发者</h2>
<p>那种&quot;一周用 12 次但永远懒得装 VS Code 插件&quot;的小工具。</p>
<ul><li><a href="/zh/t/json-formatter">JSON 格式化</a> — 美化、压缩、校验。5MB 的接口返回打开也是一秒内。</li><li><a href="/zh/t/regex-tester">正则测试</a> — 实时高亮匹配、看分组。比在终端 <code>grep -E</code> 试错舒服多了。</li><li><a href="/zh/t/jwt-decoder">JWT 解码</a> — 粘贴 token 看 header 和 payload,<strong>完全本地解析</strong>。生产 token 这种敏感东西,不会想发出去到一个不知道的服务器。</li></ul>
<h2>4. 内容创作者</h2>
<p>短视频封面、跨平台发文、社交分发。</p>
<ul><li><a href="/zh/t/image-resizer">图片尺寸调整</a> — 一张原图同时导出 1080×1080(小红书)、1920×1080(B站封面)、1080×1920(抖音竖图),不用打开 PS。</li><li><a href="/zh/t/color-picker">配色生成器</a> — 取色、转换 HEX/RGB/HSL,确保设计稿和最终发布颜色一致。</li><li><a href="/zh/t/markdown-to-html">Markdown 转 HTML</a> — 公众号、知乎、个人博客之间倒腾文章再也不用手动改格式。</li></ul>
<h2>5. 普通办公</h2>
<p>不写代码,但每天用电脑做大量琐事。</p>
<ul><li><a href="/zh/t/pdf-to-image">PDF 转图片</a> — 把 40 页 PDF 里的某一页单独导成 PNG,贴到 PPT、贴到微信都直接能用,而且 PDF 不会被传到任何服务器。</li><li><a href="/zh/t/mortgage-calculator">房贷计算器</a> — 等额本息 vs 等额本金,不同利率、不同年限算一遍再决定要不要签合同。比 Excel 拉表快。</li><li><a href="/zh/t/unit-converter">单位换算</a> — 米/英尺、公斤/磅、摄氏度/华氏度,精度够给正式发票用。</li></ul>
<h2>怎么用得更顺手</h2>
<p>两个习惯就够了:</p>
<ol><li><strong>把 toolora.info 加书签</strong>。独立工具站的全部价值就在于 —— 你不再需要去 Google &quot;JSON 格式化在线&quot; 然后从 5 个广告页里挑一个不那么烂的。一个书签替掉十次搜索。</li><li><strong>发现哪里不对就给我发邮件</strong>。 <a href="mailto:lilei961112@gmail.com">lilei961112@gmail.com</a>,真人邮箱,我本人看。bug、漏的功能、&quot;这个数算的跟 Excel 对不上&quot;,欢迎都发。</li></ol>
<p>就这些。如果你看到这里,你身边大概率有人正抱怨你今天替掉的那个工具站,把链接发给 ta。</p>
<hr />
<p><em>Made by Toolora · Updated 2026-05-25</em></p>]]></content:encoded>
    </item>
  </channel>
</rss>
