From 354fba475b7c07cc1757a8b2441f32a29c93dbec Mon Sep 17 00:00:00 2001 From: morethan987 Date: Mon, 27 Jan 2025 03:54:10 +0000 Subject: [PATCH] auto deploy morethan987/hugo_main@4125bfe919e1bfe9a0754c47604fb300a1ca50c0 --- authors/index.html | 2 +- authors/index.xml | 4 +- authors/morethan/index.html | 196 ++ authors/morethan/index.xml | 28 +- blog/code-collaboration-scheme/index.html | 22 + blog/index.html | 196 ++ blog/index.xml | 28 +- blog/note-to-blog-report/index.html | 19 + blog/schedule-management-report/index.html | 2673 +++++++++++++++++ en/authors/index.html | 2 +- en/authors/index.xml | 4 +- en/authors/morethan/index.html | 196 ++ en/authors/morethan/index.xml | 28 +- en/blog/code-collaboration-scheme/index.html | 22 + en/blog/index.html | 196 ++ en/blog/index.xml | 28 +- en/blog/note-to-blog-report/index.html | 19 + en/blog/schedule-management-report/index.html | 2653 ++++++++++++++++ en/index.html | 884 +++--- en/index.json | 2 +- en/index.xml | 28 +- en/series/index.html | 2 +- en/series/index.xml | 22 +- en/series/project-report/index.html | 196 ++ en/series/project-report/index.xml | 28 +- en/sitemap.xml | 96 +- en/tags/index.html | 32 + en/tags/index.xml | 22 +- en/tags/report/index.html | 1130 +++++++ en/tags/report/index.xml | 41 + en/tags/report/page/1/index.html | 10 + en/tags/schedule/index.html | 1130 +++++++ en/tags/schedule/index.xml | 41 + en/tags/schedule/page/1/index.html | 10 + img/featured.svg | 10 + index.html | 840 +++--- index.json | 2 +- index.xml | 28 +- series/index.html | 2 +- series/index.xml | 22 +- .../index.html" | 196 ++ .../index.xml" | 28 +- sitemap.xml | 4 +- tags/index.html | 16 + tags/index.xml | 32 +- "tags/\346\212\245\345\221\212/index.html" | 196 ++ "tags/\346\212\245\345\221\212/index.xml" | 28 +- .../index.html" | 1130 +++++++ .../index.xml" | 39 + .../page/1/index.html" | 10 + zh-cn/sitemap.xml | 130 +- 51 files changed, 11698 insertions(+), 1005 deletions(-) create mode 100644 blog/schedule-management-report/index.html create mode 100644 en/blog/schedule-management-report/index.html create mode 100644 en/tags/report/index.html create mode 100644 en/tags/report/index.xml create mode 100644 en/tags/report/page/1/index.html create mode 100644 en/tags/schedule/index.html create mode 100644 en/tags/schedule/index.xml create mode 100644 en/tags/schedule/page/1/index.html create mode 100644 img/featured.svg create mode 100644 "tags/\346\227\245\347\250\213\347\256\241\347\220\206/index.html" create mode 100644 "tags/\346\227\245\347\250\213\347\256\241\347\220\206/index.xml" create mode 100644 "tags/\346\227\245\347\250\213\347\256\241\347\220\206/page/1/index.html" diff --git a/authors/index.html b/authors/index.html index d6fa383..70e2bbc 100644 --- a/authors/index.html +++ b/authors/index.html @@ -862,7 +862,7 @@

· - 10 + 11

diff --git a/authors/index.xml b/authors/index.xml index e174d43..1233ff5 100644 --- a/authors/index.xml +++ b/authors/index.xml @@ -7,12 +7,12 @@ Hugo -- gohugo.io zh-cn © 2025 Morethan - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 Morethan https://morethan987.github.io/authors/morethan/ - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 https://morethan987.github.io/authors/morethan/ <h1 class="relative group">欢迎来到我的信息页面 👋 diff --git a/authors/morethan/index.html b/authors/morethan/index.html index c0f6f4f..660f48d 100644 --- a/authors/morethan/index.html +++ b/authors/morethan/index.html @@ -950,6 +950,202 @@

最后 + + +
+ +
+ + + + + + 草稿 + + + + + +
+ + +
日程管理项目分析
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·5 分钟· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + 报告 + + + + + + + + 日程管理 + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + + diff --git a/blog/index.html b/blog/index.html index 9ee569e..f72841a 100644 --- a/blog/index.html +++ b/blog/index.html @@ -875,6 +875,202 @@

Blog + + +
+ +
+ + + + + + 草稿 + + + + + +
+ + +
日程管理项目分析
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·5 分钟· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + 报告 + + + + + + + + 日程管理 + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + +
diff --git a/blog/index.xml b/blog/index.xml index f15a40d..861758a 100644 --- a/blog/index.xml +++ b/blog/index.xml @@ -7,7 +7,33 @@ Hugo -- gohugo.io zh-cn © 2025 Morethan - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 + + + 日程管理项目分析 + https://morethan987.github.io/blog/schedule-management-report/ + Mon, 27 Jan 2025 00:00:00 +0000 + + https://morethan987.github.io/blog/schedule-management-report/ + <div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"> + 日程管理软件功能现状分析报告 +</div> + + + +<h2 class="relative group">前言 + <div id="%E5%89%8D%E8%A8%80" class="anchor"></div> + + <span + class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> + <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" + style="text-decoration-line: none !important;" href="#%E5%89%8D%E8%A8%80" aria-label="锚点">#</a> + </span> + +</h2> +<p>本文涉及的日程管理软件主要指代的是具有如下定位的软件:</p> + + 代码协同方案 diff --git a/blog/note-to-blog-report/index.html b/blog/note-to-blog-report/index.html index be503be..d5b0ed0 100644 --- a/blog/note-to-blog-report/index.html +++ b/blog/note-to-blog-report/index.html @@ -80,6 +80,7 @@ + @@ -1400,6 +1401,15 @@

+ +
+ + @@ -2007,6 +2017,15 @@

结论 + + + + diff --git a/blog/schedule-management-report/index.html b/blog/schedule-management-report/index.html new file mode 100644 index 0000000..7e13eaa --- /dev/null +++ b/blog/schedule-management-report/index.html @@ -0,0 +1,2673 @@ + + + + + + + + + + 日程管理项目分析 · Morethan 小站 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + + + + + +
+
+ + + +
+
+ + + +
+ + + + + + + + + + + + + + +
+ + + + +
+ + + +
+
+
+
+
+ +
+ + + + + +
+ +
    + + + + + + + + + +
  1. + Blogs/ +
  2. + + + + +
+ + + +

+ 日程管理项目分析 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·5 分钟· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + +· + + + + + + + + + + + + + + + +· + + + + + + + + + + + + + + + + + + + + + + + + 草稿 + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + 报告 + + + + + + + + 日程管理 + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + +
+ + + + + + + + + + Morethan + + +
+ +
+ 作者 +
+
+ Morethan +
+ + +
计算机、物理与AI理工男
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + + + + +
+ + + + +
+ +
+ +
+
+ + +
+ + 目录 + + +
+ + +
+
+ + +
+ + +
+ + + 项目报告 - 这篇文章属于一个选集。 + + + + + + + + +
+ § 2: 本文 +
+ + + + +
+ + + +
+
+ 日程管理软件功能现状分析报告 +
+ + + +

前言 +
+ + + # + + +

+

本文涉及的日程管理软件主要指代的是具有如下定位的软件:

+
    +
  1. 支持个体用户使用
  2. +
  3. 能够进行一天内的日程安排
  4. +
  5. 如果支持更多的功能,则需要保证软件不影响上述功能的体验
  6. +
+

期望实现的功能

+
    +
  • 任务管理:创建与编辑任务、设置任务优先级与分类
  • +
  • 拖延分析与专注监控:记录任务延误、拖延分析、专注时间记录、自动提醒
  • +
  • 智能调整引擎:任务延误或提前完成后自动调整后续日程安排
  • +
  • 智能建议:根据相关数据给用户提供日程改进建议,帮助用户掌握时间控制权
  • +
+ + +

项目现状 +
+ + + # + + +

+

项目现状主要是分析当前市场上比较成熟的日程管理软件的功能,明确哪些功能是基础必备的功能,哪些功能是特色功能。

+ + +

静态日程管理 +
+ + + # + + +

+ + +

滴答清单 +
+ + + # + + +

+

滴答清单的功能覆盖全面,设计风格简洁,用它来进行日程管理还是非常方便的。它的日程管理逻辑大概如下:

+
+ +graph LR; +id1("日程收集")-->id2("手动日程安排")-->id3("按时执行日程"); +id2("手动日程安排")-->id4("没有按时执行日程")-->id5("手动进行调整"); + +
+ + + +

分析评价 +
+ + + # + + +

+

手动安排调整日程是静态日程管理软件使用过程中必不可少的环节,也是是整个流程中最耗费精力的,滴答清单虽然能够创建时间块来安排日程,但是对于缺乏动态调整的能力。这对于一些固定的、来自外界的日程并没有什么影响,因为它们一般都具有明确的起止时间。

+

但是对于一些来自内在的、软性的、琐碎的日程,例如背 15 个单词、洗衣服、阅读杂志等。这些日程一般用于自我提升,没有明确的开始时间,只需要当天完成就行;同时也没有明确的结束时间,例如15 个单词往往 30 分钟才能背完,结果某天状态良好 20 分钟就背完了。

+

这些琐碎的日程对于静态的日程安排是一个不小的挑战。尽管单个琐碎日程的提前或者延误对于整个日程安排并无大碍,但是他们的累积效果对于静态日程安排的破坏非常明显。

+

除此之外,这些零散的日程如果没有对齐的话,还会产生时间真空,导致用户在某个时间点突然不知道该干什么。例如,用户提前背完了单词,空余了 10 分中的时间。这十分钟该如何妥善处理?如果没有明确的安排的话,用户可能会选择在这 10 分钟刷短视频,然后紧接着又是一段休息时间,又继续刷视频。这不出意外会导致下一个任务因为时间不足而再次延误,然后又产生一段时间真空,如此延续。

+

想要终止这种恶性传导,有三种对策:

+
    +
  1. +

    用户手动进行调整:这将非常非常麻烦,宝贵的时间浪费在了安排一些琐碎的事情上;并且手动调整所花费的时间也可能会导致任务的延误

    +
  2. +
  3. +

    直接不进行调整,忽略具体的时间控制:这样做日程管理将失去其本身的意义,精确安排时间使得时间价值最大化。这个时候的日程安排完全退化为了一个任务表,失去了对于时间的控制作用,倒不如一开始就使用没有时间控制能力的更加专业的清单工具

    +
  4. +
  5. +

    用户严格按照日程执行:理论很完美,实际上效果非常糟糕。生活中不可避免出现意外情况,如果出现延误,那么下一项任务的时间受到挤压,可能无法按时完成,或者匆忙完成导致效果不佳;如果提前完成,那么难以临时添加一个合适的任务填补时间真空,导致时间浪费的同时也不利于执行力和专注力的培养

    +
  6. +
+

时间真空的恶性传导是静态日程管理软件的致命伤,严重限制了日程管理软件的市场认可度。因此主流观点认为日程管理是一些极其自律的人的专属行为,日程管理软件也只是为这类人设计的小众软件。

+

+ + + + + + + +

+ + + + + + + + + + + + + + 我自己曾经使用过一些日程管理软件,但都难以坚持:要么是软件的学习曲线过于陡峭,要么是难以遵循固定的日程安排 +
+ +因此,一个真正有意义的时间管理软件不应该要求用户的生活没有任何意外,或者用户必须遵守日程安排,而应该给用户提供出现意外后的解决方案:激励用户提前完成任务;劝导用户避免拖延日程,同时在用户确实延误日程之后快速给出调整后的日程安排,避免用户放弃日程计划。

+ + +

动态日程管理 +
+ + + # + + +

+

动态日程管理传统上是利用明确的算法来操作,近些年由于 AI 的重大突破,动态日程管理几乎全部由大语言模型驱动。

+ + + + + + + + +
+ + + + + + + + + + + + + + 在调查的过程中发现一个非常奇怪的事情🤔:中国几乎没有 AI 驱动的动态日程管理;国外有一大批类似的产品,价格相当昂贵并且对于国内用户相当不友好 +
+ + + +

Motion +
+ + + # + + +

+

据说是一个非常厉害的一个 AI 日程管理工具,但是太贵了。并且国内用户没有国外的银行卡,连 7 天免费试用都没办法进行,因此也没有工作流程图😢

+

所以我也不知道具体的功能体验下来如何,但是看着官网的说明和网上流传的评价应该是很厉害的。

+ + +

Dola +
+ + + # + + +

+

Dola 非常具有未来气息的一款 AI 日程管理软件:完全没有软件界面,与 AI 的交流全部通过常见的消息平台,例如 WhatsAppApple Messages 等。但是完全不支持国内的主流软件例如 QQ,微信等。

+

由于没有国外的通信平台的账号,因此我也不知道实际体验下来如何😢但是这种极致精简的人机交互应该是未来的趋势🤔

+

根据官方说明大概绘制了一下体验流程图:

+
+ +graph LR; +id1("通过消息平台发送消息")-->id2("AI分析生成日程")-->id3("软件内部存储日程"); +id1("通过消息平台发送消息")-->id4("AI分析后修改日程"); +id1("通过消息平台发送消息")-->id5("AI分析后返回查询结果") + +
+ +

对于日程的安排仍然需要用户自己进行,仅仅是把时间安排简化为了使用自然语言描述,动态调整也并不支持。

+ + +

分析评价 +
+ + + # + + +

+

虽然从理论上来说,使用大语言模型来驱动的动态日程管理软件的效果应该更好:用户能够使用自然语言来描述自己的日程,能够通过自然语言来帮助 AI 改进日程安排。通过精细的推理,大语言模型也能够根据一些高质量知识库或者是用户的个性化信息来更好地调整日程安排。

+

但是需要注意人工智能的局限性:指令理解偏差、大模型幻觉、昂贵的使用成本、较长的相应时间、需要较多的初始化数据才能够达到一个较好的效果(从理论上来说也可以进行强化微调但成本高昂)、数据隐私保护等等问题。

+ + +

总结 +
+ + + # + + +

+

目前效果优异,操作流程极简的日程管理项目在国内非常罕见,但是良好的日程管理需求却十分旺盛。这个项目值得尝试。

+ + + + +
+ + + + +
+ + + 项目报告 - 这篇文章属于一个选集。 + + + + + + + + +
+ § 2: 本文 +
+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +

相关文章

+
+ + + + + +
+ + + + + +
+ + +
笔记转博客项目分析报告
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ··8 分钟· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + Hugo + + + + + + + + 博客 + + + + + + + + 报告 + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + + + + +
+ + + + + +
+ + +
CUMCM 2024总结
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ··6 分钟· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + CUMCM + + + + + + + + Math + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + + + + +
+ + + + + +
+ + +
代码协同方案
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ··4 分钟· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + MATLAB + + + + + + + + CUMCM + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + +
+ + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + +
+ + + + + + +
+ + + +

+ © + 2025 + Morethan +

+ + + + +

+ + + 由 Hugo & Blowfish 强力驱动 +

+ + +
+ + + + + + + + +
+ + +
+ + + diff --git a/en/authors/index.html b/en/authors/index.html index 485cf32..fb0fba8 100644 --- a/en/authors/index.html +++ b/en/authors/index.html @@ -862,7 +862,7 @@

· - 10 + 11

diff --git a/en/authors/index.xml b/en/authors/index.xml index 32309a4..bddbb63 100644 --- a/en/authors/index.xml +++ b/en/authors/index.xml @@ -9,12 +9,12 @@ morthan@qq.com (Morethan) morthan@qq.com (Morethan) © 2025 Morethan - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 Morethan https://morethan987.github.io/en/authors/morethan/ - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 morthan@qq.com (Morethan) https://morethan987.github.io/en/authors/morethan/ <h1 class="relative group">Hi, welcome to my info page. 👋 diff --git a/en/authors/morethan/index.html b/en/authors/morethan/index.html index c5152e3..966c9b3 100644 --- a/en/authors/morethan/index.html +++ b/en/authors/morethan/index.html @@ -950,6 +950,202 @@

Final + + +
+ +
+ + + + + + Draft + + + + + +
+ + +
Schedule Management Report
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·6 mins· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + Schedule + + + + + + + + Report + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + +
diff --git a/en/authors/morethan/index.xml b/en/authors/morethan/index.xml index b15dfaa..f49c72b 100644 --- a/en/authors/morethan/index.xml +++ b/en/authors/morethan/index.xml @@ -9,7 +9,33 @@ morthan@qq.com (Morethan) morthan@qq.com (Morethan) © 2025 Morethan - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 + + + Schedule Management Report + https://morethan987.github.io/en/blog/schedule-management-report/ + Mon, 27 Jan 2025 00:00:00 +0000 + morthan@qq.com (Morethan) + https://morethan987.github.io/en/blog/schedule-management-report/ + <div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"> + A Schedule Management Software Functionality Analysis Report. +</div> + + + +<h3 class="relative group">Foreword + <div id="foreword" class="anchor"></div> + + <span + class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> + <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" + style="text-decoration-line: none !important;" href="#foreword" aria-label="Anchor">#</a> + </span> + +</h3> +<p>The schedule management software discussed in this article refers to software with the following features:</p> + + Code Collaboration Scheme diff --git a/en/blog/code-collaboration-scheme/index.html b/en/blog/code-collaboration-scheme/index.html index 2f1f6b4..0d499ae 100644 --- a/en/blog/code-collaboration-scheme/index.html +++ b/en/blog/code-collaboration-scheme/index.html @@ -2797,6 +2797,28 @@

Related

+
+ + Schedule Management Report + + + + + + + + + +
diff --git a/en/blog/index.html b/en/blog/index.html index eb8343b..2bdb4fe 100644 --- a/en/blog/index.html +++ b/en/blog/index.html @@ -875,6 +875,202 @@

Blog + + +
+ +
+ + + + + + Draft + + + + + +
+ + +
Schedule Management Report
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·6 mins· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + Schedule + + + + + + + + Report + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + +
diff --git a/en/blog/index.xml b/en/blog/index.xml index 71cafe3..025a8ee 100644 --- a/en/blog/index.xml +++ b/en/blog/index.xml @@ -9,7 +9,33 @@ morthan@qq.com (Morethan) morthan@qq.com (Morethan) © 2025 Morethan - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 + + + Schedule Management Report + https://morethan987.github.io/en/blog/schedule-management-report/ + Mon, 27 Jan 2025 00:00:00 +0000 + morthan@qq.com (Morethan) + https://morethan987.github.io/en/blog/schedule-management-report/ + <div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"> + A Schedule Management Software Functionality Analysis Report. +</div> + + + +<h3 class="relative group">Foreword + <div id="foreword" class="anchor"></div> + + <span + class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> + <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" + style="text-decoration-line: none !important;" href="#foreword" aria-label="Anchor">#</a> + </span> + +</h3> +<p>The schedule management software discussed in this article refers to software with the following features:</p> + + Code Collaboration Scheme diff --git a/en/blog/note-to-blog-report/index.html b/en/blog/note-to-blog-report/index.html index 0e29bc9..959058e 100644 --- a/en/blog/note-to-blog-report/index.html +++ b/en/blog/note-to-blog-report/index.html @@ -80,6 +80,7 @@ + @@ -1400,6 +1401,15 @@

+ +
+ + @@ -2000,6 +2010,15 @@

Conclusion + + + + diff --git a/en/blog/schedule-management-report/index.html b/en/blog/schedule-management-report/index.html new file mode 100644 index 0000000..0a075be --- /dev/null +++ b/en/blog/schedule-management-report/index.html @@ -0,0 +1,2653 @@ + + + + + + + + + + Schedule Management Report · More's awesome website + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + + + + + +
+
+ + + +
+
+ + + +
+ + + + + + + + + + + + + + +
+ + + + +
+ + + +
+
+
+
+
+ +
+ + + + + +
+ +
    + + + + + + + + + +
  1. + Blogs/ +
  2. + + + + +
+ + + +

+ Schedule Management Report +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·6 mins· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + +· + + + + + + + + + + + + + + + +· + + + + + + + + + + + + + + + + + + + + + + + + Draft + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + Schedule + + + + + + + + Report + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + +
+ + + + + + + + + + Morethan + + +
+ +
+ Author +
+
+ Morethan +
+ + +
Computer, Physic & AI
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + + + + +
+ + + + +
+ +
+ +
+
+ + +
+ + Table of Contents + + +
+ + +
+
+ + +
+ + +
+ + + Project Report - This article is part of a series. + + + + + + + + +
+ Part 2: This Article +
+ + + + +
+ + + +
+
+ A Schedule Management Software Functionality Analysis Report. +
+ + + +

Foreword +
+ + + # + + +

+

The schedule management software discussed in this article refers to software with the following features:

+
    +
  1. Support for individual users
  2. +
  3. Capability for daily scheduling
  4. +
  5. If additional features are included, they must not compromise the core scheduling functionality
  6. +
+

Desired Features:

+
    +
  • Task Management: Create and edit tasks, set task priorities and categories
  • +
  • Procrastination Analysis & Focus Monitoring: Record task delays, procrastination analysis, focus time tracking, and automatic reminders
  • +
  • Smart Adjustment Engine: Automatically adjust subsequent schedules if a task is delayed or completed early
  • +
  • Smart Suggestions: Provide users with schedule improvement suggestions based on related data to help them take control of their time
  • +
+ + +

Current Project Status +
+ + + # + + +

+

The current status of the project primarily involves analyzing the features of well-established schedule management software in the market to identify essential features and distinguishing features.

+ + +

Static Schedule Management +
+ + + # + + +

+ + +
TickTick +
+ + + # + + +
+

TickTick offers a comprehensive set of features with a simple design, making it convenient for daily schedule management. Its scheduling logic can be summarized as follows:

+
+ +graph LR; +id1("Schedule Collection")-->id2("Manual Schedule Setup")-->id3("Execute Schedule On Time"); +id2("Manual Schedule Setup")-->id4("Missed Schedule")-->id5("Manual Adjustment"); + +
+ + + +

Analysis and Evaluation +
+ + + # + + +

+

Manual Schedule Adjustment is an essential part of static schedule management and is the most time-consuming process. While TickTick allows users to create time blocks for scheduling, it lacks the ability for dynamic adjustments. This is not problematic for fixed schedules with clear start and end times, typically dictated by external factors.

+

However, for softer, more flexible tasks—such as memorizing 15 words, doing laundry, or reading a magazine—these tasks don’t have specific start times and just need to be completed by the end of the day. Moreover, they lack a clear end time. For instance, memorizing 15 words may take 30 minutes, but on some days, the task might be completed in just 20 minutes when the user is in a good state.

+

These fragmented tasks pose a significant challenge to static scheduling. Although a single task’s delay or early completion may not affect the overall schedule, their cumulative effect can significantly disrupt the schedule.

+

Additionally, when these tasks aren’t aligned, they can create time gaps, where users suddenly don’t know what to do. For example, if the user finishes memorizing the words early and has 10 minutes of free time, without a clear plan, they might waste that time on short videos. This leads to a cycle of delays as subsequent tasks may not be completed on time or might be rushed, leading to more time gaps.

+

To break this negative cycle, there are three solutions:

+
    +
  1. +

    Manual Adjustment by the User: This would be very tedious, as it wastes valuable time on rearranging small tasks. Moreover, time spent on manual adjustments could lead to further delays.

    +
  2. +
  3. +

    No Adjustment, Ignoring Specific Time Control: This would render the schedule management ineffective, as it loses its primary purpose of maximizing time value through precise scheduling. At this point, using a simple task list tool without time control might be a better choice.

    +
  4. +
  5. +

    Strict Adherence to the Schedule: This is theoretically ideal but practically ineffective. Unexpected events are inevitable in daily life, and delays can compress the time for subsequent tasks, leading to either unfinished tasks or rushed work. Conversely, if a task is completed early, it’s difficult to add a suitable task to fill the time gap, resulting in wasted time.

    +
  6. +
+

Time Gaps and Their Negative Cycle are the Critical Flaws of Static Schedule Management Software, severely limiting its market acceptance. As a result, the common belief is that schedule management software is only suitable for highly self-disciplined individuals and is considered a niche product designed for them.

+

+ + + + + + + +

+ + + + + + + + + + + + + + I’ve personally used several schedule management tools, but none of them were sustainable for me: either the learning curve was too steep, or I struggled to stick to a fixed schedule. +
+ +Therefore, a truly meaningful time management software should not require users to have a perfectly organized life or strictly adhere to their schedules. Instead, it should provide solutions for unexpected situations: motivate users to complete tasks ahead of time, discourage procrastination, and quickly generate new schedules after delays, preventing users from abandoning their plans.

+ + +

Dynamic Schedule Management +
+ + + # + + +

+

Dynamic schedule management traditionally relied on specific algorithms, but in recent years, due to significant breakthroughs in AI, most dynamic scheduling is now driven by large language models.

+ + + + + + + + +
+ + + + + + + + + + + + + + During my research, I noticed something peculiar: there are almost no AI-driven dynamic scheduling tools in China; however, many similar products exist abroad, often at a very high cost and not user-friendly for Chinese users. +
+ + + +
Motion +
+ + + # + + +
+

Motion is said to be a highly advanced AI scheduling tool, but it’s expensive. Additionally, domestic users don’t have access to foreign bank cards, so even the 7-day free trial isn’t accessible. Hence, I couldn’t gather detailed workflow information 😢

+

However, based on the official website and online reviews, it seems like it offers impressive functionality.

+ + +
Dola +
+ + + # + + +
+

Dola is a futuristic AI scheduling software with a unique approach: it has no software interface, and communication happens entirely via common messaging platforms such as WhatsApp, Apple Messages, etc. However, it doesn’t support domestic platforms like QQ or WeChat.

+

Since I don’t have accounts on these international platforms, I couldn’t test it firsthand 😢 But this minimalist approach to human-computer interaction seems like the future trend 🤔

+

Based on official information, I have roughly outlined the user flow:

+
+ +graph LR; +id1("Send message through messaging platform")-->id2("AI analyzes and generates schedule")-->id3("Store schedule internally"); +id1("Send message through messaging platform")-->id4("AI analyzes and modifies schedule"); +id1("Send message through messaging platform")-->id5("AI analyzes and returns query results"); + +
+ +

While scheduling still requires the user’s input, it simplifies the process by using natural language. Dynamic adjustments, however, are not supported.

+ + +

Analysis and Evaluation +
+ + + # + + +

+

In theory, AI-driven dynamic schedule management should be more effective, as users can describe their schedules in natural language and AI can adjust the schedule accordingly. Through detailed reasoning, the AI could optimize the schedule based on a high-quality knowledge base or user-specific information.

+

However, it’s important to note the limitations of artificial intelligence: instruction misunderstanding, large model hallucinations, high usage costs, slow response times, the need for substantial initialization data for optimal performance (theoretically, reinforcement fine-tuning could solve this but is costly), and data privacy concerns.

+ + +

Summary +
+ + + # + + +

+

Currently, effective and easy-to-use schedule management tools are rare in China, even though there’s strong demand for good scheduling solutions. This project is worth exploring.

+ + + + +
+ + + + +
+ + + Project Report - This article is part of a series. + + + + + + + + +
+ Part 2: This Article +
+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +

Related

+
+ + + + + +
+ + + + + +
+ + +
Analysis Report on the Note-to-Blog Project
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ··4 mins· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + Hugo + + + + + + + + 博客 + + + + + + + + 报告 + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + + + + +
+ + + + + +
+ + +
Code Collaboration Scheme
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ··4 mins· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + MATLAB + + + + + + + + CUMCM + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + + + + +
+ + + + + +
+ + +
MySQL Basics
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·5 mins· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + MySQL + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + +
+ + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + +
+ + + + + + +
+ + + +

+ © + 2025 + Morethan +

+ + + + +

+ + + Powered by Hugo & Blowfish +

+ + +
+ + + + + + + + +
+ + +
+ + + diff --git a/en/index.html b/en/index.html index b82cada..973455f 100644 --- a/en/index.html +++ b/en/index.html @@ -897,19 +897,27 @@

Recent

- +
-
+
+ + + + Draft + + + +
Code Collaboration Scheme
+ href="/en/blog/schedule-management-report/">Schedule Management Report
@@ -929,8 +937,6 @@

Recent

- - @@ -956,7 +962,7 @@

Recent

- ··4 mins· + ·6 mins· @@ -972,7 +978,7 @@

Recent

- loading + loading @@ -997,7 +1003,7 @@

Recent

- loading @@ -1050,18 +1056,18 @@

Recent

- + - MATLAB + Schedule - + - CUMCM + Report @@ -1087,11 +1093,11 @@

Recent

-
+
-
+
@@ -1099,7 +1105,7 @@

Recent

MySQL Basics
+ href="/en/blog/code-collaboration-scheme/">Code Collaboration Scheme
@@ -1119,6 +1125,8 @@

Recent

+ + @@ -1144,7 +1152,7 @@

Recent

- ·5 mins· + ··4 mins· @@ -1160,7 +1168,7 @@

Recent

- loading + loading @@ -1185,7 +1193,7 @@

Recent

- loading @@ -1238,10 +1246,18 @@

Recent

- + - MySQL + MATLAB + + + + + + + + CUMCM @@ -1267,11 +1283,11 @@

Recent

-
+
-
+
@@ -1279,7 +1295,7 @@

Recent

Analysis Report on the Note-to-Blog Project
+ href="/en/blog/mysql-basics/">MySQL Basics
@@ -1299,8 +1315,6 @@

Recent

- - @@ -1326,7 +1340,7 @@

Recent

- ··4 mins· + ·5 mins· @@ -1342,7 +1356,7 @@

Recent

- loading + loading @@ -1367,7 +1381,7 @@

Recent

- loading @@ -1420,26 +1434,10 @@

Recent

- - - - Hugo - - - - - - - - 博客 - - - - - + - 报告 + MySQL @@ -1465,11 +1463,11 @@

Recent

-
+
-
+
@@ -1477,7 +1475,7 @@

Recent

Hugo Blog Setup
+ href="/en/blog/note-to-blog-report/">Analysis Report on the Note-to-Blog Project
@@ -1497,6 +1495,8 @@

Recent

+ + @@ -1522,7 +1522,7 @@

Recent

- ·3 mins· + ··4 mins· @@ -1538,7 +1538,7 @@

Recent

- loading + loading @@ -1563,7 +1563,7 @@

Recent

- loading @@ -1624,10 +1624,18 @@

Recent

- + - Blog + 博客 + + + + + + + + 报告 @@ -1653,11 +1661,11 @@

Recent

-
+
-
+
@@ -1665,7 +1673,7 @@

Recent

An experience of writing plugin
+ href="/en/blog/hugo-blog/">Hugo Blog Setup
@@ -1710,7 +1718,7 @@

Recent

- ·2 mins· + ·3 mins· @@ -1726,7 +1734,7 @@

Recent

- loading + loading @@ -1751,7 +1759,7 @@

Recent

- loading @@ -1804,10 +1812,18 @@

Recent

- + - Experience + Hugo + + + + + + + + Blog @@ -1833,27 +1849,19 @@

Recent

-
+
-
+
- - - - Draft - - - -
The reflection of Moravec's paradox
+ href="/en/blog/plugin-writing-experience/">An experience of writing plugin
@@ -1898,7 +1906,7 @@

Recent

- ·1 min· + ·2 mins· @@ -1914,7 +1922,7 @@

Recent

- loading + loading @@ -1939,7 +1947,7 @@

Recent

- loading @@ -1992,18 +2000,10 @@

Recent

- - - - AI - - - - - + - Imagination + Experience @@ -2157,19 +2157,27 @@

Recent

-
+
-
+
+ + + + Draft + + + +
Code Collaboration Scheme
+ href="/en/blog/schedule-management-report/">Schedule Management Report
@@ -2189,8 +2197,6 @@

Recent

- - @@ -2216,7 +2222,7 @@

Recent

- ··4 mins· + ·6 mins· @@ -2232,7 +2238,7 @@

Recent

- loading + loading @@ -2257,7 +2263,7 @@

Recent

- loading @@ -2310,18 +2316,18 @@

Recent

- + - MATLAB + Schedule - + - CUMCM + Report @@ -2347,11 +2353,11 @@

Recent

-
+
-
+
@@ -2359,7 +2365,7 @@

Recent

MySQL Basics
+ href="/en/blog/code-collaboration-scheme/">Code Collaboration Scheme
@@ -2379,6 +2385,8 @@

Recent

+ + @@ -2404,7 +2412,7 @@

Recent

- ·5 mins· + ··4 mins· @@ -2420,7 +2428,7 @@

Recent

- loading + loading @@ -2445,7 +2453,7 @@

Recent

- loading @@ -2498,10 +2506,18 @@

Recent

- + - MySQL + MATLAB + + + + + + + + CUMCM @@ -2527,11 +2543,11 @@

Recent

-
+
-
+
@@ -2539,7 +2555,7 @@

Recent

Analysis Report on the Note-to-Blog Project
+ href="/en/blog/mysql-basics/">MySQL Basics
@@ -2559,8 +2575,6 @@

Recent

- - @@ -2586,7 +2600,7 @@

Recent

@@ -2913,11 +2921,11 @@

Recent

-
+
-
+
@@ -2925,7 +2933,7 @@

Recent

An experience of writing plugin
+ href="/en/blog/hugo-blog/">Hugo Blog Setup
@@ -2970,7 +2978,7 @@

Recent

- ·2 mins· + ·3 mins· @@ -2986,7 +2994,7 @@

Recent

- loading + loading @@ -3011,7 +3019,7 @@

Recent

- loading @@ -3064,10 +3072,18 @@

Recent

- + - Experience + Hugo + + + + + + + + Blog @@ -3093,27 +3109,19 @@

Recent

-
+
-
+
- - - - Draft - - - -
The reflection of Moravec's paradox
+ href="/en/blog/plugin-writing-experience/">An experience of writing plugin
@@ -3158,7 +3166,7 @@

Recent

- ·1 min· + ·2 mins· @@ -3174,7 +3182,7 @@

Recent

- loading + loading @@ -3199,7 +3207,7 @@

Recent

- loading @@ -3252,18 +3260,10 @@

Recent

- - - - AI - - - - - + - Imagination + Experience @@ -3398,19 +3398,27 @@

Recent

-
+
-
+
+ + + + Draft + + + +
Code Collaboration Scheme
+ href="/en/blog/schedule-management-report/">Schedule Management Report
@@ -3430,8 +3438,6 @@

Recent

- - @@ -3457,7 +3463,7 @@

Recent

- ··4 mins· + ·6 mins· @@ -3473,7 +3479,7 @@

Recent

- loading + loading @@ -3498,7 +3504,7 @@

Recent

- loading @@ -3551,18 +3557,18 @@

Recent

- + - MATLAB + Schedule - + - CUMCM + Report @@ -3588,11 +3594,11 @@

Recent

-
+
-
+
@@ -3600,7 +3606,7 @@

Recent

MySQL Basics
+ href="/en/blog/code-collaboration-scheme/">Code Collaboration Scheme
@@ -3620,6 +3626,8 @@

Recent

+ + @@ -3645,7 +3653,7 @@

Recent

- ·5 mins· + ··4 mins· @@ -3661,7 +3669,7 @@

Recent

- loading + loading @@ -3686,7 +3694,7 @@

Recent

- loading @@ -3739,10 +3747,18 @@

Recent

- + - MySQL + MATLAB + + + + + + + + CUMCM @@ -3768,11 +3784,11 @@

Recent

-
+
-
+
@@ -3780,7 +3796,7 @@

Recent

Analysis Report on the Note-to-Blog Project
+ href="/en/blog/mysql-basics/">MySQL Basics
@@ -3800,8 +3816,6 @@

Recent

- - @@ -3827,7 +3841,7 @@

Recent

- ··4 mins· + ·5 mins· @@ -3843,7 +3857,7 @@

Recent

- loading + loading @@ -3868,7 +3882,7 @@

Recent

- loading @@ -3921,26 +3935,10 @@

Recent

- - - - Hugo - - - - - - - - 博客 - - - - - + - 报告 + MySQL @@ -3966,11 +3964,11 @@

Recent

-
+
-
+
@@ -3978,7 +3976,7 @@

Recent

Hugo Blog Setup
+ href="/en/blog/note-to-blog-report/">Analysis Report on the Note-to-Blog Project
@@ -3998,6 +3996,8 @@

Recent

+ + @@ -4023,7 +4023,7 @@

Recent

- ·3 mins· + ··4 mins· @@ -4039,7 +4039,7 @@

Recent

- loading + loading @@ -4064,7 +4064,7 @@

Recent

- loading @@ -4125,10 +4125,18 @@

Recent

- + - Blog + 博客 + + + + + + + + 报告 @@ -4154,11 +4162,11 @@

Recent

-
+
-
+
@@ -4166,7 +4174,7 @@

Recent

An experience of writing plugin
+ href="/en/blog/hugo-blog/">Hugo Blog Setup
@@ -4211,7 +4219,7 @@

Recent

- ·2 mins· + ·3 mins· @@ -4227,7 +4235,7 @@

Recent

- loading + loading @@ -4252,7 +4260,7 @@

Recent

- loading @@ -4305,10 +4313,18 @@

Recent

- + - Experience + Hugo + + + + + + + + Blog @@ -4334,27 +4350,19 @@

Recent

-
+
-
+
- - - - Draft - - - -
The reflection of Moravec's paradox
+ href="/en/blog/plugin-writing-experience/">An experience of writing plugin
@@ -4399,7 +4407,7 @@

Recent

- ·1 min· + ·2 mins· @@ -4415,7 +4423,7 @@

Recent

- loading + loading @@ -4440,7 +4448,7 @@

Recent

- loading @@ -4493,18 +4501,10 @@

Recent

- - - - AI - - - - - + - Imagination + Experience @@ -4601,19 +4601,27 @@

Recent

-
+
-
+
+ + + + Draft + + + +
Code Collaboration Scheme
+ href="/en/blog/schedule-management-report/">Schedule Management Report
@@ -4633,8 +4641,6 @@

Recent

- - @@ -4660,7 +4666,7 @@

Recent

@@ -4971,11 +4987,11 @@

Recent

-
+
-
+
@@ -4983,7 +4999,7 @@

Recent

Analysis Report on the Note-to-Blog Project
+ href="/en/blog/mysql-basics/">MySQL Basics
@@ -5003,8 +5019,6 @@

Recent

- - @@ -5030,7 +5044,7 @@

Recent

- ··4 mins· + ·5 mins· @@ -5046,7 +5060,7 @@

Recent

- loading + loading @@ -5071,7 +5085,7 @@

Recent

- loading @@ -5124,26 +5138,10 @@

Recent

- - - - Hugo - - - - - - - - 博客 - - - - - + - 报告 + MySQL @@ -5169,11 +5167,11 @@

Recent

-
+
-
+
@@ -5181,7 +5179,7 @@

Recent

Hugo Blog Setup
+ href="/en/blog/note-to-blog-report/">Analysis Report on the Note-to-Blog Project
@@ -5201,6 +5199,8 @@

Recent

+ + @@ -5226,7 +5226,7 @@

Recent

- ·3 mins· + ··4 mins· @@ -5242,7 +5242,7 @@

Recent

- loading + loading @@ -5267,7 +5267,7 @@

Recent

- loading @@ -5328,10 +5328,18 @@

Recent

- + - Blog + 博客 + + + + + + + + 报告 @@ -5357,11 +5365,11 @@

Recent

-
+
-
+
@@ -5369,7 +5377,7 @@

Recent

An experience of writing plugin
+ href="/en/blog/hugo-blog/">Hugo Blog Setup
@@ -5414,7 +5422,7 @@

Recent

- ·2 mins· + ·3 mins· @@ -5430,7 +5438,7 @@

Recent

- loading + loading @@ -5455,7 +5463,7 @@

Recent

- loading @@ -5508,10 +5516,18 @@

Recent

- + - Experience + Hugo + + + + + + + + Blog @@ -5537,27 +5553,19 @@

Recent

-
+
-
+
- - - - Draft - - - -
The reflection of Moravec's paradox
+ href="/en/blog/plugin-writing-experience/">An experience of writing plugin
@@ -5602,7 +5610,7 @@

Recent

- ·1 min· + ·2 mins· @@ -5618,7 +5626,7 @@

Recent

- loading + loading @@ -5643,7 +5651,7 @@

Recent

- loading @@ -5696,18 +5704,10 @@

Recent

- - - - AI - - - - - + - Imagination + Experience @@ -5780,19 +5780,27 @@

Recent

-
+
-
+
+ + + + Draft + + + +
Code Collaboration Scheme
+ href="/en/blog/schedule-management-report/">Schedule Management Report
@@ -5812,8 +5820,6 @@

Recent

- - @@ -5839,7 +5845,7 @@

Recent

- ··4 mins· + ·6 mins· @@ -5855,7 +5861,7 @@

Recent

- loading + loading @@ -5880,7 +5886,7 @@

Recent

- loading @@ -5933,18 +5939,18 @@

Recent

- + - MATLAB + Schedule - + - CUMCM + Report @@ -5970,11 +5976,11 @@

Recent

-
+
-
+
@@ -5982,7 +5988,7 @@

Recent

MySQL Basics
+ href="/en/blog/code-collaboration-scheme/">Code Collaboration Scheme
@@ -6002,6 +6008,8 @@

Recent

+ + @@ -6027,7 +6035,7 @@

Recent

- ·5 mins· + ··4 mins· @@ -6043,7 +6051,7 @@

Recent

- loading + loading @@ -6068,7 +6076,7 @@

Recent

- loading @@ -6121,10 +6129,18 @@

Recent

- + - MySQL + MATLAB + + + + + + + + CUMCM @@ -6150,11 +6166,11 @@

Recent

-
+
-
+
@@ -6162,7 +6178,7 @@

Recent

Analysis Report on the Note-to-Blog Project
+ href="/en/blog/mysql-basics/">MySQL Basics
@@ -6182,8 +6198,6 @@

Recent

- - @@ -6209,7 +6223,7 @@

Recent

- ··4 mins· + ·5 mins· @@ -6225,7 +6239,7 @@

Recent

- loading + loading @@ -6250,7 +6264,7 @@

Recent

- loading @@ -6303,26 +6317,10 @@

Recent

- - - - Hugo - - - - - - - - 博客 - - - - - + - 报告 + MySQL @@ -6348,11 +6346,11 @@

Recent

-
+
-
+
@@ -6360,7 +6358,7 @@

Recent

Hugo Blog Setup
+ href="/en/blog/note-to-blog-report/">Analysis Report on the Note-to-Blog Project
@@ -6380,6 +6378,8 @@

Recent

+ + @@ -6405,7 +6405,7 @@

Recent

- ·3 mins· + ··4 mins· @@ -6421,7 +6421,7 @@

Recent

- loading + loading @@ -6446,7 +6446,7 @@

Recent

- loading @@ -6507,10 +6507,18 @@

Recent

- + - Blog + 博客 + + + + + + + + 报告 @@ -6536,11 +6544,11 @@

Recent

-
+
-
+
@@ -6548,7 +6556,7 @@

Recent

An experience of writing plugin
+ href="/en/blog/hugo-blog/">Hugo Blog Setup
@@ -6593,7 +6601,7 @@

Recent

- ·2 mins· + ·3 mins· @@ -6609,7 +6617,7 @@

Recent

- loading + loading @@ -6634,7 +6642,7 @@

Recent

- loading @@ -6687,10 +6695,18 @@

Recent

- + - Experience + Hugo + + + + + + + + Blog @@ -6716,27 +6732,19 @@

Recent

-
+
-
+
- - - - Draft - - - -
The reflection of Moravec's paradox
+ href="/en/blog/plugin-writing-experience/">An experience of writing plugin
@@ -6781,7 +6789,7 @@

Recent

- ·1 min· + ·2 mins· @@ -6797,7 +6805,7 @@

Recent

- loading + loading @@ -6822,7 +6830,7 @@

Recent

- loading @@ -6875,18 +6883,10 @@

Recent

- - - - AI - - - - - + - Imagination + Experience diff --git a/en/index.json b/en/index.json index 77a50ca..f6de0c2 100644 --- a/en/index.json +++ b/en/index.json @@ -1,4 +1,4 @@ -[{"content":" Summary of CUMCM 2024 competition experience, focusing on the A problem and the collaborative approach with MATLAB code improvement Process Overview # graph LR; id1(\"Task Allocation\")--\u003eid2(\"VS Code Collaboration\")--\u003eid3(\"MATLAB Code Execution\"); Task Allocation # There are two key points:\nTasks are divided into two parts: a main part and a secondary part. Tasks should be independent of each other, meaning no dependencies between them. Code Collaboration # Software Tools # VS Code Editor, along with the Live Server plugin, MATLAB plugin MATLAB. Naming Conventions # Main function should be uniformly named main: The main function is the one that directly computes the final result, while others should be called auxiliary functions. Data processing code: This refers to code that does not return any value but generates data tables. It should start with data, e.g., converting solar altitude angle \\(\\phi\\) to cosine value, dataCosPhi. Internal data conversion code: This should start with to, e.g., converting coordinates from a natural coordinate system to a Cartesian coordinate system StoXY. Plotting code: Code related to plotting graphs should start with fig. Testing code: Should start with test. For other special types of functions, they should be named based on their functionality. Functions that return boolean values should start with is, such as a collision detection function isCollided; functions that return other data should start with get. File Documentation Comments # Except for the common types of files mentioned in the naming conventions (data, test, fig, main), all other files should include documentation comments.\nThe documentation should be concise yet clear. It generally includes a brief description of the function, the input parameters, and the output parameters.\nIf you\u0026rsquo;re unsure how to write documentation, you can use AI assistance.\nInternal Variable Naming # Fixed Parameters # All fixed parameters should be placed in a config.m file located in the root directory for centralized management. Each parameter should be followed by a comment explaining its purpose, for example:\nlearningRate = 0.001; % Learning rate batchSize = 32; % Batch size numEpochs = 100; % Number of epochs To use this configuration file in other code files, simply include the following line:\nrun(\u0026#39;config.m\u0026#39;); Even the parameters are transformed into another file, the VS Code can also recognizes it and provide complement suggestion. Function-Internal Parameters # All variables used within a function should be explicitly defined at the beginning of the function and should include brief Chinese comments.\nIf similar parameters are used across multiple files, make sure to use consistent naming, especially in AI-generated code. Use F2 in VS Code to rename them. Code Formatting # Code formatting is mainly handled using the official MATLAB plugin. After you activate the plugin, press Shift+Alt+F to format your code.\nGit Version Control # A GitHub repository needs to be created to store the entire project files. Although the Live Server plugin enables faster real-time code collaboration, it is still necessary to commit and save at key development milestones to maintain the ability to roll back code.\nAll Git version control operations are performed on the lead developer\u0026rsquo;s computer, while other supporting developers use the Live Server plugin for more immediate code collaboration.\nLocal commit to save small improvements push operations are done in major increments Code Execution # Thanks to the latest function of the plugin MATLAB, we can now directly run and debug in the VS Code IDE. Though there are some limitations, it deserves a standing ovation.\nOther # AI Instruction Set # Since generative AI\u0026rsquo;s code style might differ from the project\u0026rsquo;s standards, if you need to generate an entire file, please include the following code standard instructions at the beginning of your request:\nYou are a mature and standardized MATLAB programmer. While correctly implementing the user\u0026#39;s goal, you should follow these code standards: 1. Clear and concise file documentation comments: The documentation should include a brief description of the function, input parameters, and output parameters. 2. Function-internal variable names should be concise and easy to read. 3. All variables used within a function should be explicitly defined at the beginning of the function, with brief Chinese comments added next to them. User\u0026#39;s instruction: Example Project # In order to develop a project as fast and well-defined as possible, I have created an Example Project which contains all the regulations mentioned before. You can directly change the files in the example project without mnemonic cost. 😄\nCode Tips # Parallel Execution\nMATLAB supports multi-threaded computing. You can convert a typical for loop to a parfor loop for parallel execution. The execution of parfor functions is subject to strict requirements. Please refer to the official documentation for more details. Huge Table Process # The comment output of the Mathematical Model is a Huge table in .mat file, which is usually hard to abstract the target data.\nHere I directly write a simply Python program, Data extractor, to automatically operate the huge table data. With tiny modification, you can get any data you want from the .mat file.\nUtilizing the online LaTeX table editor, we can get the capacity to quickly insert the table data into your thesis.\n","date":"16 January 2025","externalUrl":null,"permalink":"/en/blog/code-collaboration-scheme/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n Summary of CUMCM 2024 competition experience, focusing on the A problem and the collaborative approach with MATLAB code improvement\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003eProcess Overview \n \u003cdiv id=\"process-overview\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#process-overview\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cdiv class=\"mermaid\" align=\"center\"\u003e\n \ngraph LR;\nid1(\"Task Allocation\")--\u003eid2(\"VS Code Collaboration\")--\u003eid3(\"MATLAB Code Execution\");\n\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003eTask Allocation \n \u003cdiv id=\"task-allocation\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#task-allocation\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eThere are two key points:\u003c/p\u003e","title":"Code Collaboration Scheme","type":"blog"},{"content":" MySQL Installation and Deployment Process + Quick Syntax CookBook + Study Notes Information Source # SQL Tutorial - Liao Xuefeng\u0026rsquo;s Official Website\nThis is an extremely user-friendly MySQL tutorial website with an embedded web-based database, making it easy for beginners to get a hands-on understanding of MySQL operations. It also provides concise yet essential explanations of the background of SQL. MySQL Installation # The simplest way to install MySQL is through Docker Desktop. It takes only two steps to complete:\nRun the following command in your terminal:\ndocker pull mysql Then initialize and run the SQL container:\ndocker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -v /Users/liaoxuefeng/mysql-data:/var/lib/mysql mysql Parameter Explanation:\nParameter Description -d Run the container in the background --name Assign a name to the container (if not specified, Docker will choose one automatically) -p 3306:3306 Map the container\u0026rsquo;s port 3306 to the local machine, allowing you to connect to MySQL through port 3306 -e MYSQL_ROOT_PASSWORD=password Set the root password for MySQL (in this case, the password is password). If not set, Docker will generate a password, which you’ll need to check the logs to retrieve. It’s recommended to set a password. -v /path:/var/lib/mysql Mount a local directory to /var/lib/mysql in the container, which will store MySQL data. Replace /path with the actual directory path on your machine mysql Specifies the name of the Docker image you want to run Note\nWhen using Docker to run MySQL, you can always delete the MySQL container and rerun it. If you delete the locally mounted directory, rerunning the container is equivalent to starting with a fresh MySQL instance.\nMySQL Basic Syntax # Querying # Comment Syntax:\n-- This is a comment Basic Query Syntax:\nSELECT * FROM \u0026lt;table_name\u0026gt;; Conditional Query:\nSELECT * FROM \u0026lt;table_name\u0026gt; WHERE \u0026lt;condition\u0026gt;; In the condition expression, you can use various logical operators such as: AND, NOT, OR.\nProjection Query:\nSELECT \u0026lt;column1\u0026gt;, \u0026lt;column2\u0026gt;, \u0026lt;column3\u0026gt; FROM \u0026lt;table_name\u0026gt;; SELECT \u0026lt;column1\u0026gt; alias1, \u0026lt;column2\u0026gt; alias2, \u0026lt;column3\u0026gt; alias3 FROM \u0026lt;table_name\u0026gt;; Sorting:\n-- Sort by score in ascending order: SELECT id, name, gender, score FROM students ORDER BY score; -- Sort by score in descending order: SELECT id, name, gender, score FROM students ORDER BY score DESC; -- Sort by score, gender: SELECT id, name, gender, score FROM students ORDER BY score DESC, gender; -- Sorting with a WHERE condition: SELECT id, name, gender, score FROM students WHERE class_id = 1 ORDER BY score DESC; Pagination Query:\n-- Query the first page: SELECT id, name, gender, score FROM students ORDER BY score DESC LIMIT 3 OFFSET 0; -- Start from the 0th record, fetch up to 3 records, which may be less than 3. Aggregation Query, using MySQL’s aggregation functions:\n-- Count the total number of records: SELECT COUNT(*) FROM students; -- Set the alias for the count result: SELECT COUNT(*) num FROM students; -- Conditional aggregation: SELECT COUNT(*) boys FROM students WHERE gender = \u0026#39;M\u0026#39;; Warning\nEven though COUNT(*) returns a scalar value, the result is still a two-dimensional table, but with only one row and one column.\nOther commonly used aggregation functions: MAX(), MIN(), AVG(), SUM(), etc., similar to COUNT().\nGrouped Aggregation Query:\n-- Group by class_id and count records, similar to a for loop: SELECT COUNT(*) num FROM students GROUP BY class_id; -- Include class_id in the result: SELECT class_id, COUNT(*) num FROM students GROUP BY class_id; -- Group by multiple fields, e.g., class_id and gender: SELECT class_id, gender, COUNT(*) num FROM students GROUP BY class_id, gender; Multi-table Query (Cartesian Product):\n-- Querying from students and classes: SELECT * FROM students, classes; -- Set aliases and distinguish columns with table names: SELECT students.id sid, students.name, students.gender, students.score, classes.id cid, classes.name cname FROM students, classes; -- Using aliases for both tables to make it cleaner: SELECT s.id sid, s.name, s.gender, s.score, c.id cid, c.name cname FROM students s, classes c; The result of a multi-table query is still a two-dimensional table, but this table is organized using a Cartesian product, which is why it’s also known as a Cartesian Query.\nJoin Queries, unlike multi-table queries where the tables are combined using Cartesian products, join queries select one table as the main table and combine it with an auxiliary table based on a relationship:\nInner Join (using INNER): -- Select all students and their corresponding class names: SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score FROM students s INNER JOIN classes c ON s.class_id = c.id; Outer Join, with three variations: RIGHT, LEFT, FULL: -- Using RIGHT OUTER JOIN: SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score FROM students s RIGHT OUTER JOIN classes c ON s.class_id = c.id; Understanding method: You can think of it as sets, where tableA is the main table (also known as the left table) and tableB is the related table (the right table).\n-- Here tableA is the main table, also known as the left table, and tableB is the related table. SELECT ... FROM tableA ??? JOIN tableB ON tableA.column1 = tableB.column2; Modifying Data # Inserting Data: -- Insert a new record: INSERT INTO students (class_id, name, gender, score) VALUES (2, \u0026#39;Daniu\u0026#39;, \u0026#39;M\u0026#39;, 80); -- Insert multiple records at once: INSERT INTO students (class_id, name, gender, score) VALUES (1, \u0026#39;Dabao\u0026#39;, \u0026#39;M\u0026#39;, 87), (2, \u0026#39;Erbao\u0026#39;, \u0026#39;M\u0026#39;, 81), (3, \u0026#39;Sanbao\u0026#39;, \u0026#39;M\u0026#39;, 83); Updating Data: -- Update the record with id=1: UPDATE students SET name=\u0026#39;Daniu\u0026#39;, score=66 WHERE id=1; -- Update records with score \u0026lt; 80: UPDATE students SET score=score+10 WHERE score\u0026lt;80; -- Update record with id=999, but no matching records will be found: UPDATE students SET score=100 WHERE id=999; -- Without a WHERE clause, the update will affect all records in the table: UPDATE students SET score=60; Deleting Data: -- Delete the record with id=1: DELETE FROM students WHERE id=1; -- Deleting without a WHERE clause will remove all records from the table: DELETE FROM students; ","date":"15 January 2025","externalUrl":null,"permalink":"/en/blog/mysql-basics/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n MySQL Installation and Deployment Process + Quick Syntax CookBook + Study Notes\n\u003c/div\u003e\n\n\n\n\u003ch3 class=\"relative group\"\u003eInformation Source \n \u003cdiv id=\"information-source\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#information-source\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://liaoxuefeng.com/books/sql/introduction/index.html\" target=\"_blank\"\u003eSQL Tutorial - Liao Xuefeng\u0026rsquo;s Official Website\u003c/a\u003e\u003cbr\u003e\nThis is an extremely user-friendly MySQL tutorial website with an embedded web-based database, making it easy for beginners to get a hands-on understanding of MySQL operations. It also provides concise yet essential explanations of the background of SQL.\u003c/li\u003e\n\u003c/ul\u003e\n\n\n\u003ch3 class=\"relative group\"\u003eMySQL Installation \n \u003cdiv id=\"mysql-installation\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#mysql-installation\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003eThe simplest way to install MySQL is through Docker Desktop. It takes only two steps to complete:\u003c/p\u003e","title":"MySQL Basics","type":"blog"},{"content":" Familiarizing oneself with the project analysis process, this is a practical analysis report. After I had completed my small plugin, I realized that there doesn\u0026rsquo;t seem to be a one-click solution in the note-to-blog field. So, I wrote this article to analyze whether it would make sense to create a new project to fill this gap.\nThere is no such thing as a \u0026ldquo;better\u0026rdquo; or \u0026ldquo;worse\u0026rdquo; project; there is only whether it is suitable or not. The evaluation criteria in this article are based on whether they meet the requirements of a blog website. Therefore, some projects may not be suitable for creating a blog site, but this does not diminish their value.\nField Definition # Before we begin the analysis, it\u0026rsquo;s important to have a clear understanding of the note-to-blog field.\nNotes: In this context, \u0026ldquo;notes\u0026rdquo; specifically refers to the notes in Obsidian, which use Obsidian Flavored Markdown. This adds certain complexities to the process of converting notes to a webpage.\nBlog: A blog, by definition, is a means to gain traffic. Creators spend time writing notes, and then using conversion software, generate beautifully formatted, feature-rich blog websites.\nEvaluation criteria are as follows:\nPrivacy:\nDoes it run locally? Is it open-source? Usability:\nHow well does it adapt to Obsidian\u0026rsquo;s syntax? How complex is the service deployment? How detailed is the documentation? How easy is it to customize settings? Web Functionality:\nDoes the default web template include all essential functions (search, day/night mode, etc.)? How visually appealing is the default webpage? Does it support SEO? How smoothly does it convert Obsidian\u0026rsquo;s native syntax (for example, are there untranslatable code blocks in internal links, or does it discard some Obsidian syntax features)? Project Overview # In my vision, this project would be an Obsidian plugin that seamlessly exports Obsidian notes into Hugo blog webpages, supporting all of Obsidian\u0026rsquo;s basic core features.\nResult: It greatly reduces the cost of creating a blog webpage, allowing anyone who can use Obsidian to have their own blog.\nMarket and User Feasibility Analysis # Market Demand Analysis # Overview # Basic Needs: The demand to build a personal website and continuously produce content, including for self-improvement, self-expression, and creating a unique and comprehensive personal skill showcase (for corporate recruitment), etc.\nTarget User Group: Heavy Obsidian users who want to share notes; knowledge creators who want to build a personal blog but have abandoned the idea due to technical difficulty.\nRelevant Data # Flowershow: As of October 2024, the plugin had been downloaded 3,355 times; by January 2025, this number had risen to 4,594, while the most downloaded plugin had reached 3,211,992 downloads. Quartz: As of January 2025, Quartz had accumulated 7.7k stars on GitHub. Existing Solutions # Quartz (Hugo) # Recommendation: ❤️‍🔥❤️‍🔥❤️‍🔥❤️‍🔥❤️‍🔥\nIntroduction # Quartz is a toolset that converts Obsidian notes into web pages. The latest version, v4, has undergone a complete rewrite compared to v3, removing its dependency on Hugo and optimizing the user customization experience. The v4 version is now primarily built with TypeScript, and the original Hugo templates have been replaced with JSX.\nAs a result, Quartz in its current form is almost entirely disconnected from Hugo. However, much of the information available in Internet still advertises Quartz as being built on top of Hugo.\nOfficial example website: Welcome to Quartz 4\nReview # Pros:\nExtremely complete functionality The only toolset that successfully handles display wiki links Detailed documentation Cons:\nVirtually no drawbacks, but one notable limitation is the lack of Chinese documentation. Summary: An excellent project, where the styles displayed in Obsidian are the same as those displayed on the webpage. It has garnered the most stars on GitHub among all available solutions.\nFlowershow # Recommendation: ❤️‍🔥❤️‍🔥❤️‍🔥❤️‍🔥🩶\nIntroduction # Flowershow is an overall publishing service based on Obsidian, which can convert your Obsidian notes into an online digital garden website with directory structure. Vercel is a cloud service for front-end deployment, enabling serverless front-end deployment via GitHub. Each content submission triggers automatic deployment. For domestic users, Netlify is an alternative.\nSubjectively, the development team behind Flowershow is very passionate and mission-driven. Their core philosophies are detailed in their About page.\nObjectively, Flowershow\u0026rsquo;s positioning as a blog webpage generation platform based on Obsidian is spot-on, and the final result is very good both from a front-end and back-end perspective.\nReview # Pros:\nClear positioning and a straightforward workflow Comprehensive feature support Professional team behind maintenance and operations Highly customizable, suitable for creators who enjoy personalizing their setup Cons (as of January 2025):\nSome Obsidian features are not handled, such as display wiki links. At least this section is omitted in the documentation. A reverse link feature is mentioned on the homepage, but it’s unclear in the site’s details. Summary: Overall, the project is well done, but some details still need improvement. This solution is suitable for creators who don\u0026rsquo;t require high support for Obsidian syntax.\nOfficial Publish # Recommendation: ❤️‍🔥❤️‍🔥❤️‍🔥🩶🩶\nIntroduction # Examples of websites using Obsidian\u0026rsquo;s official publishing service:\nObsidian Chinese Tutorial - A Chinese tutorial website, using the official Obsidian publishing service. Digital 3D Garden - Deep front-end customizations. Mister Chad - A simple, neat site with rich content. Discrete Structures for Computer Science - Official simple style. Review # Pros:\nThe official publish service offers top-notch support for Obsidian’s internal representations, ensuring all Obsidian features are correctly displayed on the webpage. Continuous maintenance ensures quick adaptation to updates from Obsidian. Highly customizable settings for users with coding experience, and a wide range of themes from other developers. Privacy settings, password protection, and access control for internal document management. SEO support and mobile platform adaptation for greater potential traffic. Cons:\nCosts $8 per month. Since personal websites typically have very little traffic initially, this can become a significant expense over time. This is the major drawback of the official service. If you stop paying, the website becomes inaccessible. Limited support in certain regions, with traffic constraints in China. Summary: The official service is suitable for users with sufficient funds and moderate customization needs.\nDigital Garden # Recommendation: ❤️‍🔥❤️‍🔥❤️‍🔥🩶🩶\nIntroduction # Digital Garden is an Obsidian plugin that exports notes as webpages and hosts them on GitHub, with deployment via Vercel or Netlify.\nExample sites:\nDigital Garden - Official example Aaron Youn - Created by an individual user John\u0026rsquo;s Digital Galaxy - Rich content showcasing Digital Garden’s features, including display links. Review # Pros:\nComprehensive feature support Supports Obsidian theme migration Cons:\nNot friendly with Chinese paths Web interface customization requires direct handling of source code (HTML, JavaScript, CSS), and the default interface is not very visually appealing. Summary: The workflow is simple, and the feature support is extensive. However, the interface requires effort to improve, and creators who care less about aesthetics can jump straight into using it.\nPerlite # Recommendation: ❤️‍🔥❤️‍🔥🩶🩶🩶\nIntroduction # Perlite is an open-source alternative to Obsidian\u0026rsquo;s official publishing service, providing a browser\n-based file reader with an interface nearly identical to Obsidian’s.\nReview # Pros:\nSupports almost all Obsidian features. Classic native interface, offering a familiar experience for users. Cons:\nIt is not a blog page but a \u0026ldquo;file reader\u0026rdquo; instead. Requires Docker, which can result in slower startup times compared to the simplicity of a plugin experience. Summary: Perlite is best suited for those who need a browser-based Obsidian experience, rather than as a public-facing blog.\nJekyll + Netlify + GitHub Pages # Recommendation: ❤️‍🔥❤️‍🔥🩶🩶🩶\nIntroduction # This method is derived from obsidian\u0026rsquo;s most perfect free publishing solution.\nExample website by the author: oldwinter’s Digital Garden\nReview # Pros:\nSimple configuration Highly customizable Cons:\nDoes not support certain Obsidian features like callout syntax No dark mode support No search functionality Summary: A good solution for converting Obsidian to a blog, but missing some core features, making it unsuitable for creators seeking a complete web experience.\nTiddlyWiki # Recommendation: ❤️‍🔥🩶🩶🩶🩶\nIntroduction # TiddlyWiki is an older note-taking framework that remains very active today, with developers continuously enhancing it.\nReview # Pros:\nExtremely simple and lightweight Widely used with a strong user base Domestic services available with no need for VPNs Cons:\nThe simplicity might result in a somewhat primitive interface. Not a full-fledged personal blog; lacks SEO and is difficult to access via search engines, limiting traffic potential. Summary: TiddlyWiki is ideal for personal note storage but not for creators seeking a blog that attracts traffic.\nConclusion # Before conducting a thorough analysis, I was unaware of the actual landscape in the note-to-blog field, which led me to consider creating a simplified plugin. 💡\nHowever, after systematic research, I must admit that Quartz stands out as the best project in this space. Whether it\u0026rsquo;s the adaptation to Obsidian\u0026rsquo;s syntax, ease of configuration, front-end aesthetics, customization options, or backend blog creation, there is very little room for improvement.\nThus, there is no need for me to initiate a project to duplicate what’s already been done. I salute all the teams involved in the note-to-blog field, whether mentioned in this article or not. 🫡\nThere are no \u0026ldquo;better\u0026rdquo; or \u0026ldquo;worse\u0026rdquo; projects, only those that are suitable or not. The evaluation criteria in this article focus on whether the solution meets the requirements for a blog webpage, and thus, some projects may not be ideal for blogging but still offer great value.\nSaluting open-source pioneers! 🫡🫡🫡\n","date":"10 January 2025","externalUrl":null,"permalink":"/en/blog/note-to-blog-report/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n Familiarizing oneself with the project analysis process, this is a practical analysis report.\n\u003c/div\u003e\n\n\u003cp\u003eAfter I had completed my \u003ca href=\"https://morethan987.github.io/en/blog/plugin-writing-experience/\"\u003esmall plugin\u003c/a\u003e, I realized that there doesn\u0026rsquo;t seem to be a one-click solution in the \u003cstrong\u003enote-to-blog\u003c/strong\u003e field. So, I wrote this article to analyze whether it would make sense to create a new project to fill this gap.\u003c/p\u003e","title":"Analysis Report on the Note-to-Blog Project","type":"blog"},{"content":" A blog website journey, from hand-coding to Hugo, a story of twists and turns. Why Hugo? # It all started with hearing that Hugo could generate webpages and that it was incredibly efficient at compiling static pages. I decided to dive into the research—Hugo is said to be the fastest static site generator in the world, as claimed on its official website.\nOf course, words are just words, so here’s the output I got when I compiled and ran Hugo locally without the public folder at the beginning:\nZH-CN EN Pages 53 51 Paginator pages 0 0 Non-page files 13 13 Static files 7 7 Processed images 3 0 Aliases 18 17 Cleaned 0 0 Built in 872 ms\nIn total, compiling 104 pages (both Chinese and English) took just 0.872 seconds, including the time to build the local server. That speed is hard to criticize. And the local server can listen for changes to the source code in real time and do incremental refactoring, depending on the size of the change, usually around 0.03 seconds.\nI haven\u0026rsquo;t used other page generators for setting up blogs, so I can\u0026rsquo;t compare Hugo\u0026rsquo;s speed with others. References # Here are all the resources I used during the blog setup process:\n莱特雷-letere This is a blogger’s site also built with Hugo. It contains a lot of tutorials on other web tools as well. The series is also available on Bilibili video tutorial. Blowfish This is the Hugo theme I used, and the documentation is excellent. I’ve never seen such a patient author. Official Hugo Website Hugo Themes Full Deployment Process # Setting Up Hugo # This part is covered in detail in the webpage and video tutorial by the blogger. If you don’t like reading text, you can follow the video tutorial. 😝\nHonestly, setting up Hugo is one of the easiest setups I\u0026rsquo;ve ever seen, no exaggeration. You simply download Hugo from the official website, place it in a folder, and unzip it. You’ll find just one file, hugo.exe—it’s that simple.\nHugo is really convenient. I tried Hexo before, but the Node.js setup turned me away. Even now, I have no idea why it failed to compile. 😢 The only slight difficulty is adding the directory containing hugo.exe to your environment variables.\nCreating a Template System # Open the terminal in the folder where hugo.exe is located and run the command hugo new site your-site-name. You’ll see a new folder appear in the current directory.\nThe template system sounds advanced, but it’s just a special folder structure created in the same directory as hugo.exe. You can’t arbitrarily modify its contents because each folder has a specific purpose.\nName Purpose asset Stores images, icons, and other assets used by the website config Website configuration folder (may not exist initially; some themes require it) hugo.toml One of the website configuration files content All content goes here public The folder containing the fully compiled website (empty initially) themes Stores your website’s themes Basic Theme Configuration # Hugo has a lot of themes, and you can browse them on Hugo Themes. You can download the theme you like and place it in the themes folder. The process might sound abstract, but you can check out the video tutorial for more guidance.\nHere’s one important tip: most themes come with a sample site located in the exampleSite folder. If you don’t want to configure everything from scratch, you can just use the sample configuration.\nAfter configuring the theme, you’ll need to customize it. I highly recommend the Blowfish theme, which is fantastic, and I truly respect the author 🫡.\nBlowfish Theme # The Blowfish official documentation is incredibly detailed, so I won’t repeat it here. Any additional words would be disrespectful to such a comprehensive guide 🫡.\nHowever, there are some issues you might encounter, and I’ll briefly mention them below. You should carefully read the official documentation to fully understand these points 🤔.\nWhy does the \u0026ldquo;Recent Articles\u0026rdquo; section still show up even if params.homepage.showRecent = false is set? If you face this issue, it’s likely because, like me, you lazily used the exampleSite configuration. This is because the homepage layout is controlled by more than one interface, and another one is located in the layouts\\partials\\home\\custom.html file.\nIf you don’t mind, just ignore it. But if you care (like I did 🤪), you can comment out the following code in the file:\n\u0026lt;section\u0026gt; {{ partial \u0026#34;recent-articles-demo.html\u0026#34; . }} \u0026lt;/section\u0026gt; Why doesn’t the logo change between day and night modes when I use an svg logo? This is a bug I discovered, and I’ve already submitted an improvement to the theme author. See code improvement or SVG support\nWhy does the small icon in the browser window still show the blowfish logo even after I change the site’s logo? This is mentioned in the official documentation, but it’s buried deep. You can find it under Partials Documentation for Blowfish.\nTo be honest, the official documentation is excellent. 👍 After going through the entire process, I only encountered a few minor issues that were not easy to understand 😋.\nPlugins I Use # I prefer using Obsidian for writing articles. However, the format used by Obsidian and the one used by Blowfish is quite different, so converting between the two can be a hassle 🤔.\nAfter searching around, I found that there weren’t any suitable plugins! So, I developed my own plugin: Hugo-Blowfish-Exporter.\nWhile the plugin is simple, it covers almost all of my needs, including:\n- Callouts (supports all official callout names, with additional icons) - Inline math formulas (Blowfish supports block-level formulas)\n- Mermaid (supports Mermaid diagrams)\n- Image embedding (automatically exports images)\n- Wiki-style links (only support the none-displayed link 😢)\nThe none-displayed link is simply exported as normal hyperlink in the HTML file;\nThe displayed link is more complex: change(override) the source code of Blowfish to support the file injection through the shortcode, mdimporter; every Obsidian file should includes a meta data slug to tag the folder that contains the target markdown file in your website repository.\nThe overriding of the theme\u0026rsquo;s source code can be found in the mdimporter and the stripFrontMatter used to remove metadata from the injected files\u0026rsquo; headers. For overriding the directory, refer to the configuration on GitHub.\nI put a lot of effort into this plugin, even though it only took a few days 🤔. But those few days were quite exhausting 😵‍💫.\nIf this plugin helps you, feel free to share it! If you’re not happy with the functionality, you can submit an issue on GitHub 🫡. If you\u0026rsquo;re familiar with the code, you can modify it directly; the code is well-commented and quite standard 🤗.\nAnd if you modify and upgrade the code, I’d be very grateful if you share your changes with me (via a pull request on GitHub)! ☺️\nFinal Thoughts # Setting up a blog site is just the first step in a long journey; the real challenge is filling it with content.\nAs I mentioned in An experience of writing plugins, many personal blogs fade into obscurity in as little as a year, from the initial burst of excitement to the eventual silence.\nIn this fast-paced world, most meaningless and inefficient things are eventually replaced by efficiency, and the original enthusiasm and dreams often compromise with reality. I too no longer have the passion I once had, and my actions have become more like those of a real adult.\nBut there\u0026rsquo;s still a bit of unwillingness in me. This website is a form of resistance, and I’ll do my best to maintain it. That’s also why I developed the plugin—to make updating the blog easier.\nI hope this tutorial helps anyone planning to set up their own blog. Let’s keep moving forward, together 🫡.\n","date":"7 January 2025","externalUrl":null,"permalink":"/en/blog/hugo-blog/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n A blog website journey, from hand-coding to Hugo, a story of twists and turns.\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003eWhy Hugo? \n \u003cdiv id=\"why-hugo\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#why-hugo\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eIt all started with hearing that Hugo could generate webpages and that it was incredibly efficient at compiling static pages. I decided to dive into the research—Hugo is said to be the \u003cstrong\u003efastest static site generator\u003c/strong\u003e in the world, as claimed on its official website.\u003c/p\u003e","title":"Hugo Blog Setup","type":"blog"},{"content":" A Reflection on Writing a Plugin and What I Learned from the Experience. The Beginning # It all started with my blog website. I stumbled upon an article on WeChat about building a blog with Hugo, and since I wanted to revamp my old, simple site, I decided to give it a try. My original site was extremely rudimentary, and the whole writing process involved jumping between HTML, JS, and CSS in a rather awkward manner. On top of that, I had always admired the blog of a great tech guru, Lilian Weng, which was also built with Hugo. This further strengthened my resolve to change my site\u0026rsquo;s underlying platform.\nSo, I quickly started diving into Hugo.\nTo my surprise, the results were extraordinary! My old webpage took me nearly a month to build, but with Hugo, I was able to finish everything in less than half a day. What shocked me even more was that Hugo, a program written in Go, didn’t require users to set up a Go environment! 😮\nAt the same time, I discovered an incredibly well-documented Hugo theme—Blowfish. This was by far the most detailed documentation I had ever seen for any project, bar none (๑•̀ㅂ•́)و✧.\nWith Hugo and Blowfish working in tandem, my small site quickly took shape. Of course, I’m not great at designing, so I just used the default layout from Blowfish, as I felt any changes would ruin the beauty of the page.\nTo be honest, after all this work, I didn’t have any strong emotional reactions, except for deep respect for the coding skills of the authors of Hugo and Blowfish.\nThat was until I wanted to upload the massive amount of notes I had in Obsidian to my new blog.\nThe Bitter Taste of Originality # I soon realized that there wasn’t a plugin available to directly convert the format of my Obsidian notes to fit the Blowfish theme. Fueled by the earlier \u0026ldquo;pleasant experience,\u0026rdquo; I decided to write a plugin myself! (😄 Although, I would soon stop laughing 😢)\nThe rest of the experience wasn’t anything particularly exciting—just endless switching between webpages, searching through API documentation, and never-ending conversations with AI bots. After countless revisions, I finally ended up with something exceedingly simple: a plugin that identifies specific patterns in documents and performs content replacement.\nIt was quite laughable. Compared to the few hours it took to set up the website, the nearly forty hours I spent writing that plugin felt almost negligible. At one point, I seriously considered just deleting my few hundred lines of code.\nYes, such a simple plugin drained me mentally and physically. I truly tasted the bitterness of originality.\nNow, looking back at Hugo and Blowfish, I feel deeply shocked by their complexity and the effort required to implement all of those features. If they were getting paid for this work, I could at least understand the level of effort involved. But they were both open-source, relying entirely on user goodwill and appreciation.\nI saw the last update of the Blowfish author’s blog, which was in March 2024, and I fell into deep thought.\nSentiments and Idealism # I imagine that the author of Blowfish must have paused the development of the theme for some reason—perhaps due to life circumstances. After all, this project didn’t bring in much real income.\nSuddenly, I remembered the changes I had noticed before—those GitHub profiles, once full of green squares, gradually becoming sparse, and eventually disappearing. Beneath this peaceful change, there might be a shift in someone\u0026rsquo;s life. Whether it\u0026rsquo;s because of busy work or the gradual fading of motivation, the original passionate drive eventually drowns in silence. I can\u0026rsquo;t stop this from happening, but I understand the reasons behind it.\nOpen-source is driven by passion, but passion doesn’t pay the bills. People need to live in the present.\nI recalled a tech YouTuber, Ma Nong Gao Tian, a core Python developer who humorously complained about the harsh realities of open-source life. His prematurely graying hair made me feel a pang of empathy—he had spent most of his life writing code and yet found himself out of work, surviving on a few extra bucks from his videos.\nIn Conclusion # Life is rarely as we wish. Once again, I looked at my forty-plus hours of work and couldn’t help but laugh and shake my head.\nAfter writing this, I’m off to bed. It’s now 1:48 AM on January 6, 2025, and I still haven’t reviewed for my English final exam tomorrow.\nLooking at this blog again, I laughed and shook my head.\nSuch is life.\n","date":"6 January 2025","externalUrl":null,"permalink":"/en/blog/plugin-writing-experience/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n A Reflection on Writing a Plugin and What I Learned from the Experience.\n\u003c/div\u003e\n\n\n\n\u003ch3 class=\"relative group\"\u003eThe Beginning \n \u003cdiv id=\"the-beginning\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#the-beginning\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003eIt all started with my blog website. I stumbled upon an article on WeChat about building a blog with \u003ccode\u003eHugo\u003c/code\u003e, and since I wanted to revamp my old, simple site, I decided to give it a try. My original site was extremely rudimentary, and the whole writing process involved jumping between \u003ccode\u003eHTML\u003c/code\u003e, \u003ccode\u003eJS\u003c/code\u003e, and \u003ccode\u003eCSS\u003c/code\u003e in a rather awkward manner. On top of that, I had always admired the \u003ca href=\"https://lilianweng.github.io/\" target=\"_blank\"\u003eblog\u003c/a\u003e of a great tech guru, \u003ccode\u003eLilian Weng\u003c/code\u003e, which was also built with \u003ccode\u003eHugo\u003c/code\u003e. This further strengthened my resolve to change my site\u0026rsquo;s underlying platform.\u003c/p\u003e","title":"An experience of writing plugin","type":"blog"},{"content":"Morethan\u0026rsquo;s dummy blog page~\n","date":"3 January 2025","externalUrl":null,"permalink":"/en/blog/moravecs-paradox/","section":"Blogs","summary":"\u003cp\u003eMorethan\u0026rsquo;s dummy blog page~\u003c/p\u003e","title":"The reflection of Moravec's paradox","type":"blog"},{"content":" Preface # This article is primarily a review and summary of the entire process of CUMCM 2024.\nOur team was formed in the winter of 2023, and CUMCM 2024 was our first participation in the \u0026ldquo;Mathematical Modeling\u0026rdquo; competition. After numerous mock contests, we finally made it to the national competition. After submitting the final paper, we won the first prize at the provincial level and were recommended for the first prize at the national level, ultimately receiving the second prize at the national level.\nThere were moments of excitement and surprise, as well as disappointment; we must have done some things right in the competition, which is why we won a national award in our first attempt; but there are definitely shortcomings, after all, there must be a reason for going from \u0026ldquo;recommended for the first prize at the national level\u0026rdquo; to \u0026ldquo;second prize at the national level\u0026rdquo;.\nIn short, this experience is truly unforgettable, and it is even more worth summarizing and learning from the experience to prepare for next year\u0026rsquo;s competition.\nCUMCM stands for Chinese Undergraduate Mathematical Contest in Modeling; it is commonly referred to as the \u0026ldquo;National Mathematical Modeling Competition\u0026rdquo;. Terminology Explanation # Term Explanation Computational System The traditional modeling process, encapsulating a large function Optimization System A system used to optimize the adjustable parameters in the computational system to generate the best parameter configuration Computational Flow The process of handling input data in the computational system Computational Flow Node A key intermediate step in the workflow Optimization Flow The main logic of the optimization system Main Body of the Paper Includes the abstract, restatement, descriptions of computational and optimization flows, results presentation and analysis, that is, all content before the conclusion of the paper Conclusion of the Paper Includes sensitivity analysis and model extension Objective Conditions # Task Division # Although there were many topics to choose from for the competition, our group chose to focus on optimization problems, which is Topic A.\nMe: Modeling + Coding + Part of Paper Writing CL: Modeling + Paper Writing + Part of Coding HWJ: Paper Beautification Workflow # The coding part of the entire Topic A can be roughly divided into two systems:\nComputational System: Function: Accept input data and parameters, return the required results Nature: Directly determined by the problem, different topics have different computational systems, which need to be constructed temporarily Optimization System: Function: Accept the computational system as the target function to be optimized, execute its own optimization logic, and finally return the computational results Nature: The method system is relatively mature and can be prepared in advance of the competition with various optimization systems The paper writing part is divided into:\nOverall Framework: Determined by the LaTeX template Main Content Filling: Clear description of the workflow and optimization flow Typesetting and Beautification: Adjust the details of each part, with illustrative images (flowcharts, schematics) Concluding Content Pre-Modeling # Objective: Under the premise of accurately understanding the problem, quickly carry out preliminary modeling, basically determine the direction of modeling and calculation methods;\nEstimated Time: 3 hours\nWork: All team members conduct a web search to see if there are any literature materials that basically hit the topic.\nHit Successful: The most ideal situation, at this time, you can directly study the papers and collect ideas; Hit Unsuccessful: Although there are no ready-made materials for reference, some ideas have been accumulated in the process of literature review. Early Modeling # Overall Objective: Construct a precise and optimization method adaptable computational system\nModeling: Clarify the operations between input data and each computational flow node Coding: Implement the computational flow with code and achieve data visualization Paper: Fill in the content of the first question and initially typeset Estimated Time: 30 hours\nWork:\nAll team members model together, first clarify the modeling ideas, and provide a complete mathematical derivation process Me and CL: Code implementation and paper content filling are carried out simultaneously HWJ: Draw more vivid schematic diagrams that cannot be generated by code Mid-Modeling # Overall Objective: Construct a suitable optimization system\nModeling: According to the particularity of the computational system, choose the most matching optimization system Coding: Make minor changes in the implementation of the optimization system to match the computational system Paper: Complete the main part of the paper and start local detail fine-tuning Estimated Time: 20 hours\nWork: Similar to the previous, but the focus of work has shifted from code writing to paper writing\nSimplify the paper, at this time, the paper is very bloated Fine-tune the logic of the paper to make the context more closely related Beautify the typesetting, reduce text, increase images Late Modeling # The basic modeling is completed, and all members check for loopholes: Conventional checks such as typos, inaccurate expressions, formula spelling errors, etc. Optimize code comments to make them more readable Focus on checking personal information Personal information must not be retained in the competition paper, including file paths in the code, such as C:\\Users\\Morethan; retaining personal information is a very serious mistake! Actual Combat Effectiveness # When we applied the above strategies to the actual combat process, that is, the formal competition of CUMCM 2024, the results were as follows:\nEffective Time: The total duration of the competition is three days, a total of 72 hours The team works from seven in the morning to eight in the evening, excluding meal times, with an effective time of 12 hours a day Time utilization rate is \\(50\\%\\) (quite low in comparison🤔) Completed Work: The main body of the paper is 28 A4 pages The code part is 35 A4 pages, excluding the reused code between each sub-question, there should be about 20 pages A total of 25 illustrations in the paper The above data is after the paper has been streamlined, with the initial draft of the paper being nearly 50 pages Uncompleted Work: The final result calculation, due to the large amount of calculation (the code efficiency is not high), the code was finished two hours in advance, but there was not enough time to calculate the results😭😭 The calculation accuracy of the model is not enough, the accuracy is 1s which does not meet the standard answer\u0026rsquo;s precision The conclusion part of the paper was not actually completed Strengths # Topic Selection # Focused on Topic A, accumulated sufficient experience in mock contests, and polished a set of efficient workflows\nThe methodology for Topic A is relatively well-constructed\nWorkflow # The workflow is relatively clear, and the efficiency is high\nGuided by the final paper, modeling, paper, and code are carried out simultaneously, ensuring sufficient content in the paper\nDivision of Labor # Adopted a blurred division of labor, each team member has a main job and a secondary job, can work independently on their main job, and can also complete some work on the secondary job, greatly improving time utilization\nThe team members are very capable, as handling two division tasks means more learning costs\nWeaknesses # Workflow # The plan is perfect, but some necessary links were not well done in practice\nEffective time ratio: finishing work at eight in the evening is too early! More time should be taken to model trial and error to ensure the correctness and accuracy of the model\nDivision of Labor # The code writing, code debugging, code visualization, result calculation, and result visualization involve too much code, which is difficult for one person to handle;\nTask overlap caused by blurred division of labor increases collaboration costs\nModeling # Topic understanding accuracy: This time, there was a significant deviation in our understanding of the topic, which led to wasting a lot of time on model correction; Code # Code efficiency: Due to no time limit before, there was insufficient preparation for \u0026ldquo;very long\u0026rdquo; code, no experience with code parallelism;\nResult precision: The initial modeling was too rough, and a bad characteristic was used: setting the time step to 1, and using it as an array index, which made it difficult to reduce the time step later, resulting in insufficient precision of the final results\nImprovement Plans # Carefully select the venue, increasing effective time✨is the most important✨ Division of Labor # Slightly change the division of labor, increase the investment of human resources in coding\nIncrease learning input in each main and secondary division to increase work efficiency\nModeling # Focus more on understanding the topic, don\u0026rsquo;t rush; correcting modeling errors is not worth the loss Code # Build a set of effective code collaboration plans to enhance code writing speed\nStart building code writing standards:\nVariable naming Documentation at the beginning of the file Code writing process standards Code parallelization: Add some parallelizable code to the code to increase running speed\nAll code improvements must be implemented in a document! Not just slogans! The final output: Code Collaboration Scheme Paper # Study excellent papers\nPay attention to its paper framework Pay attention to its language style, text readability, detail, illustration logic, and image readability Improve ourselves\nOptimize the paper\u0026rsquo;s main logic framework, refine the content of each section Improvements in language style, text readability, detail, illustration logic, and image readability, etc. The results are fixed in the form of comments in the LaTeX template! Summary # A test paper without full marks is more rewarding than one with full marks!\nAccumulating knowledge of applied mathematics, enhancing paper writing skills, and improving the ability to discover problems are more meaningful than the competition itself. 🫡\nCUMCM, every MathModeler can benefit from it. 🤗\n","date":"12 September 2024","externalUrl":null,"permalink":"/en/blog/cumcm2024/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003ePreface \n \u003cdiv id=\"preface\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#preface\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eThis article is primarily a review and summary of the entire process of CUMCM 2024.\u003c/p\u003e","title":"CUMCM 2024 Summary","type":"blog"},{"content":" Virtual Env # Creat # Some tipical code 👇\n# creat a virtual env named \u0026#34;your_env_name\u0026#34; python -m venv your_env_name # assign the version of python, make sure your python in default direction python -m venv your_env_name --python=python3.11 # simply list the absolute direction of python, simple and efficient D:/PythonPython311/python.exe -m venv your_env_name More parameters you may need for a customized virtual env. 🤔\nParams Meaning --system-site-packages Give the virtual environment access to the system site-packages dir. --clear Delete the contents of the environment directory if it already exists, before environment creation. --version print the python version of the env All the detailed expaination of the parameters can be got by the code python -m venv -h. No need to search everywhere~😆 Activate # The virtual env is defaulted not active. In the direction your_env_name/Scripts/ will be a file named activate. Run it with your cmd.\n# activate virtual env your_env_name/Scripts/activate Program Packaging # We often need to share our Python programs. However, sharing the source code alone can be frustrating for users who aren\u0026rsquo;t familiar with coding, as it requires setting up a local environment to run the code. Therefore, program packaging comes in handy.\nPyInstaller # Installation is very simple, just like any other Python package: pip install pyinstaller. To use it, open the terminal in the target directory and run the command.\nFeatures: Fast packaging speed; relatively large packaged files\nCommon command codes:\n# Package the main.py file as a standalone executable; the command window is disabled when the executable runs pyinstaller -F -w main.py # Package the main.py file into a project folder; the command window is enabled when the executable runs pyinstaller -D main.py Parameter Description -h, --help Show help information and exit -v, --version Show program version information and exit -F, --onefile Package everything into a single standalone executable -D, --onedir Package everything into a directory (default option) -w, --windowed, --noconsole Disable the command window (only works on Windows) -c, --console, --nowindowed Use the command window to run the program (default option, only on Windows) -a, --ascii Exclude Unicode character set support (included by default) -d, --debug Generate a debug version of the executable -n NAME, --name=NAME Specify the name of the generated executable or directory (default is script name) -o DIR, --out=DIR Specify the directory where the spec file will be generated (default is the current directory) -p DIR, --path=DIR Set the Python module import path (similar to setting PYTHONPATH) -i \u0026lt;FILE\u0026gt;, --icon \u0026lt;FILE\u0026gt; Set the executable file icon (supports .ico or .icns formats) --distpath DIR Specify the output directory for the executable file (default is ./dist) --workpath WORKPATH Specify the temporary working file directory (default is ./build) --add-data \u0026lt;SRC;DEST or SRC:DEST\u0026gt; Add additional data files or directories to the executable (use semicolon for Windows, colon for Linux/OSX to separate source and destination paths) --add-binary \u0026lt;SRC;DEST or SRC:DEST\u0026gt; Add additional binary files to the executable --hidden-import MODULENAME Add modules not automatically detected --exclude-module EXCLUDES Exclude specified modules --clean Clean PyInstaller cache and temporary files --log-level LEVEL Set the verbosity of console messages during the build process (possible values: TRACE, DEBUG, INFO, WARN, ERROR, FATAL) Nuitka # Nuitka packages Python code into an executable (.exe). The underlying process first converts Python code to C code, then compiles the C code.\nFeatures: Slow packaging speed; requires an additional C compiler (though automatic setup is possible, it can be strict on memory management, so may not be suitable for users with limited space); smaller packaged files (tested to be about one-tenth the size of PyInstaller\u0026rsquo;s output)\nInstallation command:\npip install -U nuitka Common usage command:\n# Package the main.py file into an exe file with link-time optimization, and remove temporary files after packaging python -m nuitka --lto=yes --remove-output --onefile main.py Parameter Description --standalone Create a standalone executable folder that includes all dependencies. --onefile Package everything into a single .exe file. --optimize=N Set optimization level (0, 1, or 2), the higher the number, the more optimized the result. --lto Enable Link-Time Optimization (possible values: no, yes, thin). --enable-plugin=\u0026lt;plugin_name\u0026gt; Enable a specific plugin, such as tk-inter, numpy, anti-bloat, etc. --output-dir=\u0026lt;dir\u0026gt; Specify the output directory for the compiled files. --remove-output Delete intermediate .c files and other temporary files after compilation. --nofollow-imports Do not recursively process any imported modules. --include-package=\u0026lt;package_name\u0026gt; Explicitly include an entire package and its submodules. --include-module=\u0026lt;module_name\u0026gt; Explicitly include a specific module. --follow-import-to=\u0026lt;module/package\u0026gt; Specify which modules or packages to recursively process. --nofollow-import-to=\u0026lt;module/package\u0026gt; Specify which modules or packages not to recursively process. --include-data-files=\u0026lt;source\u0026gt;=\u0026lt;dest\u0026gt; Include specified data files. --include-data-dir=\u0026lt;directory\u0026gt; Include all data files in the specified directory. --noinclude-data-files=\u0026lt;pattern\u0026gt; Exclude data files matching a specified pattern. --windows-icon-from-ico=\u0026lt;path\u0026gt; Set the Windows executable icon. --company-name, --product-name, --file-version, --product-version, --file-description Set Windows executable properties. ","date":"10 August 2024","externalUrl":null,"permalink":"/en/blog/pytips/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003eVirtual Env \n \u003cdiv id=\"virtual-env\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#virtual-env\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\n\n\u003ch3 class=\"relative group\"\u003eCreat \n \u003cdiv id=\"creat\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#creat\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003eSome tipical code 👇\u003c/p\u003e","title":"Python Tpis","type":"blog"},{"content":" Reference # Honestly, I\u0026rsquo;m not familiar with BayesianOPT, the opinions mentioned stem from the below. 👇\n【机器学习】一文看懂贝叶斯优化/Bayesian Optimization\n一文详解贝叶斯优化(Bayesian Optimization)原理\n贝叶斯优化(BayesianOptimization)\n超参数优\u0026mdash;贝叶斯优化及其改进(PBT优化)\n贝叶斯优化 (Bayesian Optimization)\nMATLAB Offical Document\nAdvantages \u0026amp; Algorithm Principle # Here we are going to talk about the advantages \u0026amp; algorithm principle of BayesianOPT. If you only want to konw how to use it, you can read the #Advantage section, then go to the #MATLAB Practice\nAdvantages # Algorithm Principle # MATLAB Practice # Well, we can put Bayesian Optimization into practice even though we don\u0026rsquo;t understand it, using the predefined function of MATLAB, the bayesopt. Here is the official guidance of the function: bayesopt\nFinal code display # % define the obj function function y = objectiveFcn(x) y = (1 - x.x1)^2 + 100 * (x.x2 - x.x1^2)^2; end % define the variables vars = [optimizableVariable(\u0026#39;x1\u0026#39;, [-2, 2]) optimizableVariable(\u0026#39;x2\u0026#39;, [-2, 2])]; % conduce the optimizer results = bayesopt(@objectiveFcn, vars, ... \u0026#39;AcquisitionFunctionName\u0026#39;, \u0026#39;expected-improvement-plus\u0026#39;, ... \u0026#39;MaxObjectiveEvaluations\u0026#39;, 30, ... \u0026#39;IsObjectiveDeterministic\u0026#39;, true, ... \u0026#39;Verbose\u0026#39;, 1); % get result bestPoint = results.XAtMinObjective; bestObjective = results.MinObjective; % result output fprintf(\u0026#39;最优解 x1: %.4f, x2: %.4f\\n\u0026#39;, bestPoint.x1, bestPoint.x2); fprintf(\u0026#39;最优目标值: %.4f\\n\u0026#39;, bestObjective); I\u0026rsquo;d commit that the code is generated by AI. 🥲 AI is a better coder, at least when comparing with me. 🫠 Parameters Explaination # Params Meaning AcquisitionFunctionName select a Acquisition Function, which determines the method how bayesopt choose the next acquisition point MaxObjectiveEvaluations the maximize evalu turns IsObjectiveDeterministic If the obj function contains noise, set to true ; Otherwise, set to false Verbose Determine the detailing extend of console output, the complete output includes many figures. Want more detailed information? Refer to the Offical document: bayesopt. It\u0026rsquo;s more completed and with amount of examples.\nIt\u0026rsquo;s basic for every MathModeler to read the offical document. 😝 ","date":"5 August 2024","externalUrl":null,"permalink":"/en/blog/bayesianopt/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003eReference \n \u003cdiv id=\"reference\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#reference\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eHonestly, I\u0026rsquo;m not familiar with BayesianOPT, the opinions mentioned stem from the below. 👇\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://blog.csdn.net/qq_27590277/article/details/115451660\" target=\"_blank\"\u003e【机器学习】一文看懂贝叶斯优化/Bayesian Optimization\u003c/a\u003e\u003c/p\u003e","title":"Bayesian Optimization","type":"blog"},{"content":" Background Overview # You should know how to interact with the computer via the command line, including but not limited to: how to open the command line/terminal in Windows, when a running command ends, etc.\nA little knowledge of bypassing internet censorship is helpful. OverLeaf is foreign software, and its related LaTeX projects are also hosted abroad. Therefore, directly accessing foreign traffic when downloading dependencies can save a lot of trouble. If you don’t have a VPN, you will need to specify a domestic source for each package manager, though sometimes the updates from domestic sources are not timely.\nBasic familiarity with Vim operations is useful, such as: how to enter insert mode, how to save and exit, how to exit without saving, etc.\nFull Deployment Process # Installing Linux # Search for a Linux distribution in the Windows App Store and download it. The author chose Kali. After installation, you can open it directly from the Start menu. Upon opening, a command-line window will pop up, and you will need to register with a username and password.\nAt this point, your command line should display a warning. This is because you haven’t installed WSL (Windows Subsystem for Linux).\nAlso, when entering the password, your input will not be displayed in the command line, but it has been recorded.\nWhy do you need a Linux system? Because OverLeaf\u0026rsquo;s ShareLaTeX model requires a Linux environment. It is said that OverLeaf runs more smoothly on Linux systems.\nInstalling WSL # To install WSL2, run the following in the Windows command line:\nwsl --install After installation, you can open it directly. Another warning will appear. At this point, you need to create a text file in the C:\\Users\\ASUS directory and rename it to .wslconfig.\nEnter the following content:\n[experimental] autoMemoryReclaim=gradual # gradual | dropcache | disabled networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true Installing Docker # Go to the Docker website to download Docker, which will be the container for the ShareLaTeX model. Docker is an open-source application container engine that includes images, containers, and repositories. Its purpose is to manage the lifecycle of application components, such as encapsulation, distribution, deployment, and operation, allowing users to \u0026ldquo;package once, run anywhere,\u0026rdquo; much like a container, developed and encapsulated by programmers, which users can directly move around.\nOnce Docker is installed, you can double-click to start it in the background. We will interact with Docker later via the command line.\nPulling the Image # Open Kali, and run the following command:\ngit clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit Then run:\ncd ./overleaf-toolkit bin/init vim ./config/variables.env At this point, you should be in the document interface of the Vim text editor. Vim has many shortcuts, and pressing the \u0026quot;I\u0026quot; key will enter insert mode for text editing. Press \u0026quot;esc\u0026quot; to return to normal mode. In insert mode, type: OVERLEAF_SITE_LANGUAGE=zh-CN.\nAfter typing, press \u0026quot;esc\u0026quot; to return to normal mode, then type :wq to \u0026ldquo;save and quit.\u0026rdquo; If you make a mistake, type :e! to discard all changes and start over. This step will set your OverLeaf interface to Chinese.\nAfter successfully saving and quitting, return to the familiar Kali command-line interface and run bin/up. This will pull the ShareLaTeX image and related network tools. There will be a large amount of data transfer, so ensure that your network is stable (your VPN should be reliable!).\nConfiguring the User # Once the previous command finishes, run bin/start. At this point, open Docker and enter the ShareLaTeX container. You should see code \u0026ldquo;flashing.\u0026rdquo; If there are no red messages, everything is running normally.\nNow open a browser and visit http://localhost/launchpad.\nAfter registering an Administrator Account, you will be redirected to http://localhost/project. The basic OverLeaf webpage should now be displayed. If you compile now, it will most likely report an error ᕕ( ᐛ )ᕗ.\nThis is because ShareLaTeX is missing many required packages🙃\u0026quot;\nInstalling Extension Packages # Open Kali, navigate to the appropriate directory, and run bin/shell. Then execute the following one by one:\ncd /usr/local/texlive # Download and run the upgrade script wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh sh update-tlmgr-latest.sh -- --upgrade # Change the TeX Live download source tlmgr option repository https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet/ # Upgrade tlmgr tlmgr update --self --all # Install the full TeX Live package (this will take time, so don’t let the shell disconnect) tlmgr install scheme-full # Exit the ShareLaTeX command-line interface exit # Restart the ShareLaTeX container docker restart sharelatex After restarting, enter the shell again and run:\napt update # Install fonts apt install --no-install-recommends ttf-mscorefonts-installer fonts-noto texlive-fonts-recommended tex-gyre fonts-wqy-microhei fonts-wqy-zenhei fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-color-emoji fonts-noto-extra fonts-noto-ui-core fonts-noto-ui-extra fonts-noto-unhinted fonts-texgyre # Install pygments apt install python3-pygments # Install Beamer and others apt install texlive-latex-recommended apt install texlive-latex-extra # Install English fonts echo \u0026#34;yes\u0026#34; | apt install -y --reinstall ttf-mscorefonts-installer # Install Chinese fonts apt install -y latex-cjk-all texlive-lang-chinese texlive-lang-english cp fonts/* /usr/share/fonts/zh-cn/ cd /usr/share/fonts fc-cache -fv # Update font cache fc-list :lang=zh-cn fc-match Arial Finally, in the shell directory, run:\nvim /usr/local/texlive/2023/texmf.cnf Open the configuration file and add shell_escape = t at the bottom.\nI’m not sure what this does, but it was passed down by the predecessors 🤔 Note, if the TeX Live version (the official name for extension packages) differs, the directory path may also change. You will need to adjust the path based on the actual version, for example, change 2023 to 2024.\nYou can use ls -l in the Linux command line to view all files in the current directory. Successful Deployment # Now you can happily use your local OverLeaf version without worrying about compilation timeouts~\nIf you\u0026rsquo;re lucky and happen to be a CQUer, here’s a graduation thesis template from Chongqing University, super user-friendly: CQUThesis\n","date":"12 July 2024","externalUrl":null,"permalink":"/en/blog/localoverleaf/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003eBackground Overview \n \u003cdiv id=\"background-overview\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#background-overview\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eYou should know how to interact with the computer via the command line, including but not limited to: how to open the command line/terminal in Windows, when a running command ends, etc.\u003c/p\u003e","title":"Local OverLeaf Deployment","type":"blog"},{"content":"","date":"16 January 2025","externalUrl":null,"permalink":"/en/authors/","section":"Authors List","summary":"","title":"Authors List","type":"authors"},{"content":"","date":"16 January 2025","externalUrl":null,"permalink":"/en/blog/","section":"Blogs","summary":"","title":"Blogs","type":"blog"},{"content":"The CUMCM (Chinese Undergraduate Mathematical Contest in Modeling) is a competition where participants do not directly enter the national finals.\nInstead, they must go through a selection process involving the University-level competition (校赛), Provincial-level competition (省赛), and only after that will their papers be submitted for evaluation by national experts. Thus, the competition is informally divided into three stages: University-level competition, Provincial-level competition, and National-level competition.\n","date":"16 January 2025","externalUrl":null,"permalink":"/en/tags/cumcm/","section":"Tags","summary":"\u003cp\u003eThe \u003cstrong\u003eCUMCM\u003c/strong\u003e (Chinese Undergraduate Mathematical Contest in Modeling) is a competition where participants do not directly enter the national finals.\u003c/p\u003e\n\u003cp\u003eInstead, they must go through a selection process involving the \u003cstrong\u003eUniversity-level competition\u003c/strong\u003e (校赛), \u003cstrong\u003eProvincial-level competition\u003c/strong\u003e (省赛), and only after that will their papers be submitted for evaluation by national experts. Thus, the competition is informally divided into three stages: \u003cstrong\u003eUniversity-level competition\u003c/strong\u003e, \u003cstrong\u003eProvincial-level competition\u003c/strong\u003e, and \u003cstrong\u003eNational-level competition\u003c/strong\u003e.\u003c/p\u003e","title":"CUMCM","type":"tags"},{"content":"","date":"16 January 2025","externalUrl":null,"permalink":"/en/series/mathmodel/","section":"Seires","summary":"","title":"MathModel","type":"series"},{"content":"","date":"16 January 2025","externalUrl":null,"permalink":"/en/tags/matlab/","section":"Tags","summary":"","title":"MATLAB","type":"tags"},{"content":" Hi, welcome to my info page. 👋 # Basic Info # My casual English name is Morethan because it resembles my Chinese name. 🙃\nNow I\u0026rsquo;m a university student in China. ᕕ( ᐛ )ᕗ Nothing more to say. 🫠\nBlog Focus # Personal Knowledge Base: to store frequently-used operations and valuable experience.\nMicro Paper Stack: to store inspirations for my Graduation Thesis, usually serious and logical, attempt to follow the standard thesis working stream.\nKnowledge Outlet: to put what I leant into practice.\nFinal # If you find the content is useful, click a like please at the beginning of that page. 🤗\nIf you want to share the content, cite this website please. 🫡\nIf you find some bug, push an issue on the GitHub please. 🥰\n","date":"16 January 2025","externalUrl":null,"permalink":"/en/authors/morethan/","section":"Authors List","summary":"\u003ch1 class=\"relative group\"\u003eHi, welcome to my info page. 👋 \n \u003cdiv id=\"hi-welcome-to-my-info-page-\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#hi-welcome-to-my-info-page-\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h1\u003e\n\n\n\u003ch2 class=\"relative group\"\u003eBasic Info \n \u003cdiv id=\"basic-info\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#basic-info\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eMy casual English name is Morethan because it resembles my Chinese name. 🙃\u003c/p\u003e","title":"Morethan","type":"authors"},{"content":" ","date":"16 January 2025","externalUrl":null,"permalink":"/en/series/","section":"Seires","summary":"\u003chr\u003e","title":"Seires","type":"series"},{"content":" ","date":"16 January 2025","externalUrl":null,"permalink":"/en/tags/","section":"Tags","summary":"\u003chr\u003e","title":"Tags","type":"tags"},{"content":"Here are notes and micro-thesises to reinforce knowledge through writing.\nHope my casual words can provide you something useful.🤗\n","date":"16 January 2025","externalUrl":null,"permalink":"/en/","section":"Welcome to Morethan's website","summary":"\u003cp\u003eHere are notes and micro-thesises to reinforce knowledge through writing.\u003c/p\u003e\n\u003cp\u003eHope my casual words can provide you something useful.🤗\u003c/p\u003e","title":"Welcome to Morethan's website","type":"page"},{"content":"","date":"15 January 2025","externalUrl":null,"permalink":"/en/tags/mysql/","section":"Tags","summary":"","title":"MySQL","type":"tags"},{"content":"","date":"15 January 2025","externalUrl":null,"permalink":"/en/series/operation/","section":"Seires","summary":"","title":"Operation","type":"series"},{"content":"","date":"2025-01-15","externalUrl":null,"permalink":"/series/%E6%8A%80%E6%9C%AF%E6%B5%81%E7%A8%8B/","section":"系列","summary":"","title":"技术流程","type":"series"},{"content":"","date":"10 January 2025","externalUrl":null,"permalink":"/en/tags/hugo/","section":"Tags","summary":"","title":"Hugo","type":"tags"},{"content":"","date":"10 January 2025","externalUrl":null,"permalink":"/en/series/project-report/","section":"Seires","summary":"","title":"Project Report","type":"series"},{"content":"","date":"10 January 2025","externalUrl":null,"permalink":"/en/tags/%E5%8D%9A%E5%AE%A2/","section":"Tags","summary":"","title":"博客","type":"tags"},{"content":"","date":"10 January 2025","externalUrl":null,"permalink":"/en/tags/%E6%8A%A5%E5%91%8A/","section":"Tags","summary":"","title":"报告","type":"tags"},{"content":"","date":"2025-01-10","externalUrl":null,"permalink":"/series/%E9%A1%B9%E7%9B%AE%E6%8A%A5%E5%91%8A/","section":"系列","summary":"","title":"项目报告","type":"series"},{"content":"","date":"7 January 2025","externalUrl":null,"permalink":"/en/tags/blog/","section":"Tags","summary":"","title":"Blog","type":"tags"},{"content":"","date":"6 January 2025","externalUrl":null,"permalink":"/en/series/casual-essay/","section":"Seires","summary":"","title":"Casual Essay","type":"series"},{"content":"","date":"6 January 2025","externalUrl":null,"permalink":"/en/tags/experience/","section":"Tags","summary":"","title":"Experience","type":"tags"},{"content":"","date":"2025-01-06","externalUrl":null,"permalink":"/tags/%E7%BB%8F%E5%8E%86/","section":"标签","summary":"","title":"经历","type":"tags"},{"content":"","date":"2025-01-06","externalUrl":null,"permalink":"/series/%E9%9A%8F%E7%AC%94/","section":"系列","summary":"","title":"随笔","type":"series"},{"content":"","date":"3 January 2025","externalUrl":null,"permalink":"/en/tags/ai/","section":"Tags","summary":"","title":"AI","type":"tags"},{"content":"","date":"2025-01-03","externalUrl":null,"permalink":"/series/ai%E9%81%90%E6%83%B3/","section":"系列","summary":"","title":"AI遐想","type":"series"},{"content":"","date":"3 January 2025","externalUrl":null,"permalink":"/en/tags/imagination/","section":"Tags","summary":"","title":"Imagination","type":"tags"},{"content":"","date":"3 January 2025","externalUrl":null,"permalink":"/en/series/wild-imagination-of-ai/","section":"Seires","summary":"","title":"Wild Imagination of AI","type":"series"},{"content":"","date":"2025-01-03","externalUrl":null,"permalink":"/tags/%E9%81%90%E6%83%B3/","section":"标签","summary":"","title":"遐想","type":"tags"},{"content":"","date":"12 September 2024","externalUrl":null,"permalink":"/en/tags/math/","section":"Tags","summary":"","title":"Math","type":"tags"},{"content":"","date":"10 August 2024","externalUrl":null,"permalink":"/en/tags/python/","section":"Tags","summary":"","title":"Python","type":"tags"},{"content":"","date":"12 July 2024","externalUrl":null,"permalink":"/en/tags/latex/","section":"Tags","summary":"","title":"LaTeX","type":"tags"},{"content":"","date":"12 July 2024","externalUrl":null,"permalink":"/en/tags/overleaf/","section":"Tags","summary":"","title":"Overleaf","type":"tags"},{"content":"","externalUrl":null,"permalink":"/en/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"Mathematical Modeling is the use of mathematical models to precisely and systematically describe objects in life, and it is an important combination of mathematics and practice.\n","externalUrl":null,"permalink":"/en/series/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/","section":"Seires","summary":"\u003cp\u003e\u003ccode\u003eMathematical Modeling\u003c/code\u003e is the use of mathematical models to \u003cstrong\u003eprecisely and systematically\u003c/strong\u003e describe objects in life, and it is an important combination of mathematics and practice.\u003c/p\u003e\n\u003chr\u003e","title":"Mathematical Modeling","type":"series"}] \ No newline at end of file +[{"content":" A Schedule Management Software Functionality Analysis Report. Foreword # The schedule management software discussed in this article refers to software with the following features:\nSupport for individual users Capability for daily scheduling If additional features are included, they must not compromise the core scheduling functionality Desired Features:\nTask Management: Create and edit tasks, set task priorities and categories Procrastination Analysis \u0026amp; Focus Monitoring: Record task delays, procrastination analysis, focus time tracking, and automatic reminders Smart Adjustment Engine: Automatically adjust subsequent schedules if a task is delayed or completed early Smart Suggestions: Provide users with schedule improvement suggestions based on related data to help them take control of their time Current Project Status # The current status of the project primarily involves analyzing the features of well-established schedule management software in the market to identify essential features and distinguishing features.\nStatic Schedule Management # TickTick # TickTick offers a comprehensive set of features with a simple design, making it convenient for daily schedule management. Its scheduling logic can be summarized as follows:\ngraph LR; id1(\"Schedule Collection\")--\u003eid2(\"Manual Schedule Setup\")--\u003eid3(\"Execute Schedule On Time\"); id2(\"Manual Schedule Setup\")--\u003eid4(\"Missed Schedule\")--\u003eid5(\"Manual Adjustment\"); Analysis and Evaluation # Manual Schedule Adjustment is an essential part of static schedule management and is the most time-consuming process. While TickTick allows users to create time blocks for scheduling, it lacks the ability for dynamic adjustments. This is not problematic for fixed schedules with clear start and end times, typically dictated by external factors.\nHowever, for softer, more flexible tasks—such as memorizing 15 words, doing laundry, or reading a magazine—these tasks don\u0026rsquo;t have specific start times and just need to be completed by the end of the day. Moreover, they lack a clear end time. For instance, memorizing 15 words may take 30 minutes, but on some days, the task might be completed in just 20 minutes when the user is in a good state.\nThese fragmented tasks pose a significant challenge to static scheduling. Although a single task\u0026rsquo;s delay or early completion may not affect the overall schedule, their cumulative effect can significantly disrupt the schedule.\nAdditionally, when these tasks aren\u0026rsquo;t aligned, they can create time gaps, where users suddenly don’t know what to do. For example, if the user finishes memorizing the words early and has 10 minutes of free time, without a clear plan, they might waste that time on short videos. This leads to a cycle of delays as subsequent tasks may not be completed on time or might be rushed, leading to more time gaps.\nTo break this negative cycle, there are three solutions:\nManual Adjustment by the User: This would be very tedious, as it wastes valuable time on rearranging small tasks. Moreover, time spent on manual adjustments could lead to further delays.\nNo Adjustment, Ignoring Specific Time Control: This would render the schedule management ineffective, as it loses its primary purpose of maximizing time value through precise scheduling. At this point, using a simple task list tool without time control might be a better choice.\nStrict Adherence to the Schedule: This is theoretically ideal but practically ineffective. Unexpected events are inevitable in daily life, and delays can compress the time for subsequent tasks, leading to either unfinished tasks or rushed work. Conversely, if a task is completed early, it’s difficult to add a suitable task to fill the time gap, resulting in wasted time.\nTime Gaps and Their Negative Cycle are the Critical Flaws of Static Schedule Management Software, severely limiting its market acceptance. As a result, the common belief is that schedule management software is only suitable for highly self-disciplined individuals and is considered a niche product designed for them.\nI’ve personally used several schedule management tools, but none of them were sustainable for me: either the learning curve was too steep, or I struggled to stick to a fixed schedule. Therefore, a truly meaningful time management software should not require users to have a perfectly organized life or strictly adhere to their schedules. Instead, it should provide solutions for unexpected situations: motivate users to complete tasks ahead of time, discourage procrastination, and quickly generate new schedules after delays, preventing users from abandoning their plans.\nDynamic Schedule Management # Dynamic schedule management traditionally relied on specific algorithms, but in recent years, due to significant breakthroughs in AI, most dynamic scheduling is now driven by large language models.\nDuring my research, I noticed something peculiar: there are almost no AI-driven dynamic scheduling tools in China; however, many similar products exist abroad, often at a very high cost and not user-friendly for Chinese users. Motion # Motion is said to be a highly advanced AI scheduling tool, but it’s expensive. Additionally, domestic users don’t have access to foreign bank cards, so even the 7-day free trial isn’t accessible. Hence, I couldn’t gather detailed workflow information 😢\nHowever, based on the official website and online reviews, it seems like it offers impressive functionality.\nDola # Dola is a futuristic AI scheduling software with a unique approach: it has no software interface, and communication happens entirely via common messaging platforms such as WhatsApp, Apple Messages, etc. However, it doesn’t support domestic platforms like QQ or WeChat.\nSince I don’t have accounts on these international platforms, I couldn\u0026rsquo;t test it firsthand 😢 But this minimalist approach to human-computer interaction seems like the future trend 🤔\nBased on official information, I have roughly outlined the user flow:\ngraph LR; id1(\"Send message through messaging platform\")--\u003eid2(\"AI analyzes and generates schedule\")--\u003eid3(\"Store schedule internally\"); id1(\"Send message through messaging platform\")--\u003eid4(\"AI analyzes and modifies schedule\"); id1(\"Send message through messaging platform\")--\u003eid5(\"AI analyzes and returns query results\"); While scheduling still requires the user’s input, it simplifies the process by using natural language. Dynamic adjustments, however, are not supported.\nAnalysis and Evaluation # In theory, AI-driven dynamic schedule management should be more effective, as users can describe their schedules in natural language and AI can adjust the schedule accordingly. Through detailed reasoning, the AI could optimize the schedule based on a high-quality knowledge base or user-specific information.\nHowever, it’s important to note the limitations of artificial intelligence: instruction misunderstanding, large model hallucinations, high usage costs, slow response times, the need for substantial initialization data for optimal performance (theoretically, reinforcement fine-tuning could solve this but is costly), and data privacy concerns.\nSummary # Currently, effective and easy-to-use schedule management tools are rare in China, even though there’s strong demand for good scheduling solutions. This project is worth exploring.\n","date":"27 January 2025","externalUrl":null,"permalink":"/en/blog/schedule-management-report/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n A Schedule Management Software Functionality Analysis Report.\n\u003c/div\u003e\n\n\n\n\u003ch3 class=\"relative group\"\u003eForeword \n \u003cdiv id=\"foreword\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#foreword\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003eThe schedule management software discussed in this article refers to software with the following features:\u003c/p\u003e","title":"Schedule Management Report","type":"blog"},{"content":" Summary of CUMCM 2024 competition experience, focusing on the A problem and the collaborative approach with MATLAB code improvement Process Overview # graph LR; id1(\"Task Allocation\")--\u003eid2(\"VS Code Collaboration\")--\u003eid3(\"MATLAB Code Execution\"); Task Allocation # There are two key points:\nTasks are divided into two parts: a main part and a secondary part. Tasks should be independent of each other, meaning no dependencies between them. Code Collaboration # Software Tools # VS Code Editor, along with the Live Server plugin, MATLAB plugin MATLAB. Naming Conventions # Main function should be uniformly named main: The main function is the one that directly computes the final result, while others should be called auxiliary functions. Data processing code: This refers to code that does not return any value but generates data tables. It should start with data, e.g., converting solar altitude angle \\(\\phi\\) to cosine value, dataCosPhi. Internal data conversion code: This should start with to, e.g., converting coordinates from a natural coordinate system to a Cartesian coordinate system StoXY. Plotting code: Code related to plotting graphs should start with fig. Testing code: Should start with test. For other special types of functions, they should be named based on their functionality. Functions that return boolean values should start with is, such as a collision detection function isCollided; functions that return other data should start with get. File Documentation Comments # Except for the common types of files mentioned in the naming conventions (data, test, fig, main), all other files should include documentation comments.\nThe documentation should be concise yet clear. It generally includes a brief description of the function, the input parameters, and the output parameters.\nIf you\u0026rsquo;re unsure how to write documentation, you can use AI assistance.\nInternal Variable Naming # Fixed Parameters # All fixed parameters should be placed in a config.m file located in the root directory for centralized management. Each parameter should be followed by a comment explaining its purpose, for example:\nlearningRate = 0.001; % Learning rate batchSize = 32; % Batch size numEpochs = 100; % Number of epochs To use this configuration file in other code files, simply include the following line:\nrun(\u0026#39;config.m\u0026#39;); Even the parameters are transformed into another file, the VS Code can also recognizes it and provide complement suggestion. Function-Internal Parameters # All variables used within a function should be explicitly defined at the beginning of the function and should include brief Chinese comments.\nIf similar parameters are used across multiple files, make sure to use consistent naming, especially in AI-generated code. Use F2 in VS Code to rename them. Code Formatting # Code formatting is mainly handled using the official MATLAB plugin. After you activate the plugin, press Shift+Alt+F to format your code.\nGit Version Control # A GitHub repository needs to be created to store the entire project files. Although the Live Server plugin enables faster real-time code collaboration, it is still necessary to commit and save at key development milestones to maintain the ability to roll back code.\nAll Git version control operations are performed on the lead developer\u0026rsquo;s computer, while other supporting developers use the Live Server plugin for more immediate code collaboration.\nLocal commit to save small improvements push operations are done in major increments Code Execution # Thanks to the latest function of the plugin MATLAB, we can now directly run and debug in the VS Code IDE. Though there are some limitations, it deserves a standing ovation.\nOther # AI Instruction Set # Since generative AI\u0026rsquo;s code style might differ from the project\u0026rsquo;s standards, if you need to generate an entire file, please include the following code standard instructions at the beginning of your request:\nYou are a mature and standardized MATLAB programmer. While correctly implementing the user\u0026#39;s goal, you should follow these code standards: 1. Clear and concise file documentation comments: The documentation should include a brief description of the function, input parameters, and output parameters. 2. Function-internal variable names should be concise and easy to read. 3. All variables used within a function should be explicitly defined at the beginning of the function, with brief Chinese comments added next to them. User\u0026#39;s instruction: Example Project # In order to develop a project as fast and well-defined as possible, I have created an Example Project which contains all the regulations mentioned before. You can directly change the files in the example project without mnemonic cost. 😄\nCode Tips # Parallel Execution\nMATLAB supports multi-threaded computing. You can convert a typical for loop to a parfor loop for parallel execution. The execution of parfor functions is subject to strict requirements. Please refer to the official documentation for more details. Huge Table Process # The comment output of the Mathematical Model is a Huge table in .mat file, which is usually hard to abstract the target data.\nHere I directly write a simply Python program, Data extractor, to automatically operate the huge table data. With tiny modification, you can get any data you want from the .mat file.\nUtilizing the online LaTeX table editor, we can get the capacity to quickly insert the table data into your thesis.\n","date":"16 January 2025","externalUrl":null,"permalink":"/en/blog/code-collaboration-scheme/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n Summary of CUMCM 2024 competition experience, focusing on the A problem and the collaborative approach with MATLAB code improvement\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003eProcess Overview \n \u003cdiv id=\"process-overview\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#process-overview\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cdiv class=\"mermaid\" align=\"center\"\u003e\n \ngraph LR;\nid1(\"Task Allocation\")--\u003eid2(\"VS Code Collaboration\")--\u003eid3(\"MATLAB Code Execution\");\n\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003eTask Allocation \n \u003cdiv id=\"task-allocation\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#task-allocation\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eThere are two key points:\u003c/p\u003e","title":"Code Collaboration Scheme","type":"blog"},{"content":" MySQL Installation and Deployment Process + Quick Syntax CookBook + Study Notes Information Source # SQL Tutorial - Liao Xuefeng\u0026rsquo;s Official Website\nThis is an extremely user-friendly MySQL tutorial website with an embedded web-based database, making it easy for beginners to get a hands-on understanding of MySQL operations. It also provides concise yet essential explanations of the background of SQL. MySQL Installation # The simplest way to install MySQL is through Docker Desktop. It takes only two steps to complete:\nRun the following command in your terminal:\ndocker pull mysql Then initialize and run the SQL container:\ndocker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -v /Users/liaoxuefeng/mysql-data:/var/lib/mysql mysql Parameter Explanation:\nParameter Description -d Run the container in the background --name Assign a name to the container (if not specified, Docker will choose one automatically) -p 3306:3306 Map the container\u0026rsquo;s port 3306 to the local machine, allowing you to connect to MySQL through port 3306 -e MYSQL_ROOT_PASSWORD=password Set the root password for MySQL (in this case, the password is password). If not set, Docker will generate a password, which you’ll need to check the logs to retrieve. It’s recommended to set a password. -v /path:/var/lib/mysql Mount a local directory to /var/lib/mysql in the container, which will store MySQL data. Replace /path with the actual directory path on your machine mysql Specifies the name of the Docker image you want to run Note\nWhen using Docker to run MySQL, you can always delete the MySQL container and rerun it. If you delete the locally mounted directory, rerunning the container is equivalent to starting with a fresh MySQL instance.\nMySQL Basic Syntax # Querying # Comment Syntax:\n-- This is a comment Basic Query Syntax:\nSELECT * FROM \u0026lt;table_name\u0026gt;; Conditional Query:\nSELECT * FROM \u0026lt;table_name\u0026gt; WHERE \u0026lt;condition\u0026gt;; In the condition expression, you can use various logical operators such as: AND, NOT, OR.\nProjection Query:\nSELECT \u0026lt;column1\u0026gt;, \u0026lt;column2\u0026gt;, \u0026lt;column3\u0026gt; FROM \u0026lt;table_name\u0026gt;; SELECT \u0026lt;column1\u0026gt; alias1, \u0026lt;column2\u0026gt; alias2, \u0026lt;column3\u0026gt; alias3 FROM \u0026lt;table_name\u0026gt;; Sorting:\n-- Sort by score in ascending order: SELECT id, name, gender, score FROM students ORDER BY score; -- Sort by score in descending order: SELECT id, name, gender, score FROM students ORDER BY score DESC; -- Sort by score, gender: SELECT id, name, gender, score FROM students ORDER BY score DESC, gender; -- Sorting with a WHERE condition: SELECT id, name, gender, score FROM students WHERE class_id = 1 ORDER BY score DESC; Pagination Query:\n-- Query the first page: SELECT id, name, gender, score FROM students ORDER BY score DESC LIMIT 3 OFFSET 0; -- Start from the 0th record, fetch up to 3 records, which may be less than 3. Aggregation Query, using MySQL’s aggregation functions:\n-- Count the total number of records: SELECT COUNT(*) FROM students; -- Set the alias for the count result: SELECT COUNT(*) num FROM students; -- Conditional aggregation: SELECT COUNT(*) boys FROM students WHERE gender = \u0026#39;M\u0026#39;; Warning\nEven though COUNT(*) returns a scalar value, the result is still a two-dimensional table, but with only one row and one column.\nOther commonly used aggregation functions: MAX(), MIN(), AVG(), SUM(), etc., similar to COUNT().\nGrouped Aggregation Query:\n-- Group by class_id and count records, similar to a for loop: SELECT COUNT(*) num FROM students GROUP BY class_id; -- Include class_id in the result: SELECT class_id, COUNT(*) num FROM students GROUP BY class_id; -- Group by multiple fields, e.g., class_id and gender: SELECT class_id, gender, COUNT(*) num FROM students GROUP BY class_id, gender; Multi-table Query (Cartesian Product):\n-- Querying from students and classes: SELECT * FROM students, classes; -- Set aliases and distinguish columns with table names: SELECT students.id sid, students.name, students.gender, students.score, classes.id cid, classes.name cname FROM students, classes; -- Using aliases for both tables to make it cleaner: SELECT s.id sid, s.name, s.gender, s.score, c.id cid, c.name cname FROM students s, classes c; The result of a multi-table query is still a two-dimensional table, but this table is organized using a Cartesian product, which is why it’s also known as a Cartesian Query.\nJoin Queries, unlike multi-table queries where the tables are combined using Cartesian products, join queries select one table as the main table and combine it with an auxiliary table based on a relationship:\nInner Join (using INNER): -- Select all students and their corresponding class names: SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score FROM students s INNER JOIN classes c ON s.class_id = c.id; Outer Join, with three variations: RIGHT, LEFT, FULL: -- Using RIGHT OUTER JOIN: SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score FROM students s RIGHT OUTER JOIN classes c ON s.class_id = c.id; Understanding method: You can think of it as sets, where tableA is the main table (also known as the left table) and tableB is the related table (the right table).\n-- Here tableA is the main table, also known as the left table, and tableB is the related table. SELECT ... FROM tableA ??? JOIN tableB ON tableA.column1 = tableB.column2; Modifying Data # Inserting Data: -- Insert a new record: INSERT INTO students (class_id, name, gender, score) VALUES (2, \u0026#39;Daniu\u0026#39;, \u0026#39;M\u0026#39;, 80); -- Insert multiple records at once: INSERT INTO students (class_id, name, gender, score) VALUES (1, \u0026#39;Dabao\u0026#39;, \u0026#39;M\u0026#39;, 87), (2, \u0026#39;Erbao\u0026#39;, \u0026#39;M\u0026#39;, 81), (3, \u0026#39;Sanbao\u0026#39;, \u0026#39;M\u0026#39;, 83); Updating Data: -- Update the record with id=1: UPDATE students SET name=\u0026#39;Daniu\u0026#39;, score=66 WHERE id=1; -- Update records with score \u0026lt; 80: UPDATE students SET score=score+10 WHERE score\u0026lt;80; -- Update record with id=999, but no matching records will be found: UPDATE students SET score=100 WHERE id=999; -- Without a WHERE clause, the update will affect all records in the table: UPDATE students SET score=60; Deleting Data: -- Delete the record with id=1: DELETE FROM students WHERE id=1; -- Deleting without a WHERE clause will remove all records from the table: DELETE FROM students; ","date":"15 January 2025","externalUrl":null,"permalink":"/en/blog/mysql-basics/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n MySQL Installation and Deployment Process + Quick Syntax CookBook + Study Notes\n\u003c/div\u003e\n\n\n\n\u003ch3 class=\"relative group\"\u003eInformation Source \n \u003cdiv id=\"information-source\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#information-source\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://liaoxuefeng.com/books/sql/introduction/index.html\" target=\"_blank\"\u003eSQL Tutorial - Liao Xuefeng\u0026rsquo;s Official Website\u003c/a\u003e\u003cbr\u003e\nThis is an extremely user-friendly MySQL tutorial website with an embedded web-based database, making it easy for beginners to get a hands-on understanding of MySQL operations. It also provides concise yet essential explanations of the background of SQL.\u003c/li\u003e\n\u003c/ul\u003e\n\n\n\u003ch3 class=\"relative group\"\u003eMySQL Installation \n \u003cdiv id=\"mysql-installation\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#mysql-installation\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003eThe simplest way to install MySQL is through Docker Desktop. It takes only two steps to complete:\u003c/p\u003e","title":"MySQL Basics","type":"blog"},{"content":" Familiarizing oneself with the project analysis process, this is a practical analysis report. After I had completed my small plugin, I realized that there doesn\u0026rsquo;t seem to be a one-click solution in the note-to-blog field. So, I wrote this article to analyze whether it would make sense to create a new project to fill this gap.\nThere is no such thing as a \u0026ldquo;better\u0026rdquo; or \u0026ldquo;worse\u0026rdquo; project; there is only whether it is suitable or not. The evaluation criteria in this article are based on whether they meet the requirements of a blog website. Therefore, some projects may not be suitable for creating a blog site, but this does not diminish their value.\nField Definition # Before we begin the analysis, it\u0026rsquo;s important to have a clear understanding of the note-to-blog field.\nNotes: In this context, \u0026ldquo;notes\u0026rdquo; specifically refers to the notes in Obsidian, which use Obsidian Flavored Markdown. This adds certain complexities to the process of converting notes to a webpage.\nBlog: A blog, by definition, is a means to gain traffic. Creators spend time writing notes, and then using conversion software, generate beautifully formatted, feature-rich blog websites.\nEvaluation criteria are as follows:\nPrivacy:\nDoes it run locally? Is it open-source? Usability:\nHow well does it adapt to Obsidian\u0026rsquo;s syntax? How complex is the service deployment? How detailed is the documentation? How easy is it to customize settings? Web Functionality:\nDoes the default web template include all essential functions (search, day/night mode, etc.)? How visually appealing is the default webpage? Does it support SEO? How smoothly does it convert Obsidian\u0026rsquo;s native syntax (for example, are there untranslatable code blocks in internal links, or does it discard some Obsidian syntax features)? Project Overview # In my vision, this project would be an Obsidian plugin that seamlessly exports Obsidian notes into Hugo blog webpages, supporting all of Obsidian\u0026rsquo;s basic core features.\nResult: It greatly reduces the cost of creating a blog webpage, allowing anyone who can use Obsidian to have their own blog.\nMarket and User Feasibility Analysis # Market Demand Analysis # Overview # Basic Needs: The demand to build a personal website and continuously produce content, including for self-improvement, self-expression, and creating a unique and comprehensive personal skill showcase (for corporate recruitment), etc.\nTarget User Group: Heavy Obsidian users who want to share notes; knowledge creators who want to build a personal blog but have abandoned the idea due to technical difficulty.\nRelevant Data # Flowershow: As of October 2024, the plugin had been downloaded 3,355 times; by January 2025, this number had risen to 4,594, while the most downloaded plugin had reached 3,211,992 downloads. Quartz: As of January 2025, Quartz had accumulated 7.7k stars on GitHub. Existing Solutions # Quartz (Hugo) # Recommendation: ❤️‍🔥❤️‍🔥❤️‍🔥❤️‍🔥❤️‍🔥\nIntroduction # Quartz is a toolset that converts Obsidian notes into web pages. The latest version, v4, has undergone a complete rewrite compared to v3, removing its dependency on Hugo and optimizing the user customization experience. The v4 version is now primarily built with TypeScript, and the original Hugo templates have been replaced with JSX.\nAs a result, Quartz in its current form is almost entirely disconnected from Hugo. However, much of the information available in Internet still advertises Quartz as being built on top of Hugo.\nOfficial example website: Welcome to Quartz 4\nReview # Pros:\nExtremely complete functionality The only toolset that successfully handles display wiki links Detailed documentation Cons:\nVirtually no drawbacks, but one notable limitation is the lack of Chinese documentation. Summary: An excellent project, where the styles displayed in Obsidian are the same as those displayed on the webpage. It has garnered the most stars on GitHub among all available solutions.\nFlowershow # Recommendation: ❤️‍🔥❤️‍🔥❤️‍🔥❤️‍🔥🩶\nIntroduction # Flowershow is an overall publishing service based on Obsidian, which can convert your Obsidian notes into an online digital garden website with directory structure. Vercel is a cloud service for front-end deployment, enabling serverless front-end deployment via GitHub. Each content submission triggers automatic deployment. For domestic users, Netlify is an alternative.\nSubjectively, the development team behind Flowershow is very passionate and mission-driven. Their core philosophies are detailed in their About page.\nObjectively, Flowershow\u0026rsquo;s positioning as a blog webpage generation platform based on Obsidian is spot-on, and the final result is very good both from a front-end and back-end perspective.\nReview # Pros:\nClear positioning and a straightforward workflow Comprehensive feature support Professional team behind maintenance and operations Highly customizable, suitable for creators who enjoy personalizing their setup Cons (as of January 2025):\nSome Obsidian features are not handled, such as display wiki links. At least this section is omitted in the documentation. A reverse link feature is mentioned on the homepage, but it’s unclear in the site’s details. Summary: Overall, the project is well done, but some details still need improvement. This solution is suitable for creators who don\u0026rsquo;t require high support for Obsidian syntax.\nOfficial Publish # Recommendation: ❤️‍🔥❤️‍🔥❤️‍🔥🩶🩶\nIntroduction # Examples of websites using Obsidian\u0026rsquo;s official publishing service:\nObsidian Chinese Tutorial - A Chinese tutorial website, using the official Obsidian publishing service. Digital 3D Garden - Deep front-end customizations. Mister Chad - A simple, neat site with rich content. Discrete Structures for Computer Science - Official simple style. Review # Pros:\nThe official publish service offers top-notch support for Obsidian’s internal representations, ensuring all Obsidian features are correctly displayed on the webpage. Continuous maintenance ensures quick adaptation to updates from Obsidian. Highly customizable settings for users with coding experience, and a wide range of themes from other developers. Privacy settings, password protection, and access control for internal document management. SEO support and mobile platform adaptation for greater potential traffic. Cons:\nCosts $8 per month. Since personal websites typically have very little traffic initially, this can become a significant expense over time. This is the major drawback of the official service. If you stop paying, the website becomes inaccessible. Limited support in certain regions, with traffic constraints in China. Summary: The official service is suitable for users with sufficient funds and moderate customization needs.\nDigital Garden # Recommendation: ❤️‍🔥❤️‍🔥❤️‍🔥🩶🩶\nIntroduction # Digital Garden is an Obsidian plugin that exports notes as webpages and hosts them on GitHub, with deployment via Vercel or Netlify.\nExample sites:\nDigital Garden - Official example Aaron Youn - Created by an individual user John\u0026rsquo;s Digital Galaxy - Rich content showcasing Digital Garden’s features, including display links. Review # Pros:\nComprehensive feature support Supports Obsidian theme migration Cons:\nNot friendly with Chinese paths Web interface customization requires direct handling of source code (HTML, JavaScript, CSS), and the default interface is not very visually appealing. Summary: The workflow is simple, and the feature support is extensive. However, the interface requires effort to improve, and creators who care less about aesthetics can jump straight into using it.\nPerlite # Recommendation: ❤️‍🔥❤️‍🔥🩶🩶🩶\nIntroduction # Perlite is an open-source alternative to Obsidian\u0026rsquo;s official publishing service, providing a browser\n-based file reader with an interface nearly identical to Obsidian’s.\nReview # Pros:\nSupports almost all Obsidian features. Classic native interface, offering a familiar experience for users. Cons:\nIt is not a blog page but a \u0026ldquo;file reader\u0026rdquo; instead. Requires Docker, which can result in slower startup times compared to the simplicity of a plugin experience. Summary: Perlite is best suited for those who need a browser-based Obsidian experience, rather than as a public-facing blog.\nJekyll + Netlify + GitHub Pages # Recommendation: ❤️‍🔥❤️‍🔥🩶🩶🩶\nIntroduction # This method is derived from obsidian\u0026rsquo;s most perfect free publishing solution.\nExample website by the author: oldwinter’s Digital Garden\nReview # Pros:\nSimple configuration Highly customizable Cons:\nDoes not support certain Obsidian features like callout syntax No dark mode support No search functionality Summary: A good solution for converting Obsidian to a blog, but missing some core features, making it unsuitable for creators seeking a complete web experience.\nTiddlyWiki # Recommendation: ❤️‍🔥🩶🩶🩶🩶\nIntroduction # TiddlyWiki is an older note-taking framework that remains very active today, with developers continuously enhancing it.\nReview # Pros:\nExtremely simple and lightweight Widely used with a strong user base Domestic services available with no need for VPNs Cons:\nThe simplicity might result in a somewhat primitive interface. Not a full-fledged personal blog; lacks SEO and is difficult to access via search engines, limiting traffic potential. Summary: TiddlyWiki is ideal for personal note storage but not for creators seeking a blog that attracts traffic.\nConclusion # Before conducting a thorough analysis, I was unaware of the actual landscape in the note-to-blog field, which led me to consider creating a simplified plugin. 💡\nHowever, after systematic research, I must admit that Quartz stands out as the best project in this space. Whether it\u0026rsquo;s the adaptation to Obsidian\u0026rsquo;s syntax, ease of configuration, front-end aesthetics, customization options, or backend blog creation, there is very little room for improvement.\nThus, there is no need for me to initiate a project to duplicate what’s already been done. I salute all the teams involved in the note-to-blog field, whether mentioned in this article or not. 🫡\nThere are no \u0026ldquo;better\u0026rdquo; or \u0026ldquo;worse\u0026rdquo; projects, only those that are suitable or not. The evaluation criteria in this article focus on whether the solution meets the requirements for a blog webpage, and thus, some projects may not be ideal for blogging but still offer great value.\nSaluting open-source pioneers! 🫡🫡🫡\n","date":"10 January 2025","externalUrl":null,"permalink":"/en/blog/note-to-blog-report/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n Familiarizing oneself with the project analysis process, this is a practical analysis report.\n\u003c/div\u003e\n\n\u003cp\u003eAfter I had completed my \u003ca href=\"https://morethan987.github.io/en/blog/plugin-writing-experience/\"\u003esmall plugin\u003c/a\u003e, I realized that there doesn\u0026rsquo;t seem to be a one-click solution in the \u003cstrong\u003enote-to-blog\u003c/strong\u003e field. So, I wrote this article to analyze whether it would make sense to create a new project to fill this gap.\u003c/p\u003e","title":"Analysis Report on the Note-to-Blog Project","type":"blog"},{"content":" A blog website journey, from hand-coding to Hugo, a story of twists and turns. Why Hugo? # It all started with hearing that Hugo could generate webpages and that it was incredibly efficient at compiling static pages. I decided to dive into the research—Hugo is said to be the fastest static site generator in the world, as claimed on its official website.\nOf course, words are just words, so here’s the output I got when I compiled and ran Hugo locally without the public folder at the beginning:\nZH-CN EN Pages 53 51 Paginator pages 0 0 Non-page files 13 13 Static files 7 7 Processed images 3 0 Aliases 18 17 Cleaned 0 0 Built in 872 ms\nIn total, compiling 104 pages (both Chinese and English) took just 0.872 seconds, including the time to build the local server. That speed is hard to criticize. And the local server can listen for changes to the source code in real time and do incremental refactoring, depending on the size of the change, usually around 0.03 seconds.\nI haven\u0026rsquo;t used other page generators for setting up blogs, so I can\u0026rsquo;t compare Hugo\u0026rsquo;s speed with others. References # Here are all the resources I used during the blog setup process:\n莱特雷-letere This is a blogger’s site also built with Hugo. It contains a lot of tutorials on other web tools as well. The series is also available on Bilibili video tutorial. Blowfish This is the Hugo theme I used, and the documentation is excellent. I’ve never seen such a patient author. Official Hugo Website Hugo Themes Full Deployment Process # Setting Up Hugo # This part is covered in detail in the webpage and video tutorial by the blogger. If you don’t like reading text, you can follow the video tutorial. 😝\nHonestly, setting up Hugo is one of the easiest setups I\u0026rsquo;ve ever seen, no exaggeration. You simply download Hugo from the official website, place it in a folder, and unzip it. You’ll find just one file, hugo.exe—it’s that simple.\nHugo is really convenient. I tried Hexo before, but the Node.js setup turned me away. Even now, I have no idea why it failed to compile. 😢 The only slight difficulty is adding the directory containing hugo.exe to your environment variables.\nCreating a Template System # Open the terminal in the folder where hugo.exe is located and run the command hugo new site your-site-name. You’ll see a new folder appear in the current directory.\nThe template system sounds advanced, but it’s just a special folder structure created in the same directory as hugo.exe. You can’t arbitrarily modify its contents because each folder has a specific purpose.\nName Purpose asset Stores images, icons, and other assets used by the website config Website configuration folder (may not exist initially; some themes require it) hugo.toml One of the website configuration files content All content goes here public The folder containing the fully compiled website (empty initially) themes Stores your website’s themes Basic Theme Configuration # Hugo has a lot of themes, and you can browse them on Hugo Themes. You can download the theme you like and place it in the themes folder. The process might sound abstract, but you can check out the video tutorial for more guidance.\nHere’s one important tip: most themes come with a sample site located in the exampleSite folder. If you don’t want to configure everything from scratch, you can just use the sample configuration.\nAfter configuring the theme, you’ll need to customize it. I highly recommend the Blowfish theme, which is fantastic, and I truly respect the author 🫡.\nBlowfish Theme # The Blowfish official documentation is incredibly detailed, so I won’t repeat it here. Any additional words would be disrespectful to such a comprehensive guide 🫡.\nHowever, there are some issues you might encounter, and I’ll briefly mention them below. You should carefully read the official documentation to fully understand these points 🤔.\nWhy does the \u0026ldquo;Recent Articles\u0026rdquo; section still show up even if params.homepage.showRecent = false is set? If you face this issue, it’s likely because, like me, you lazily used the exampleSite configuration. This is because the homepage layout is controlled by more than one interface, and another one is located in the layouts\\partials\\home\\custom.html file.\nIf you don’t mind, just ignore it. But if you care (like I did 🤪), you can comment out the following code in the file:\n\u0026lt;section\u0026gt; {{ partial \u0026#34;recent-articles-demo.html\u0026#34; . }} \u0026lt;/section\u0026gt; Why doesn’t the logo change between day and night modes when I use an svg logo? This is a bug I discovered, and I’ve already submitted an improvement to the theme author. See code improvement or SVG support\nWhy does the small icon in the browser window still show the blowfish logo even after I change the site’s logo? This is mentioned in the official documentation, but it’s buried deep. You can find it under Partials Documentation for Blowfish.\nTo be honest, the official documentation is excellent. 👍 After going through the entire process, I only encountered a few minor issues that were not easy to understand 😋.\nPlugins I Use # I prefer using Obsidian for writing articles. However, the format used by Obsidian and the one used by Blowfish is quite different, so converting between the two can be a hassle 🤔.\nAfter searching around, I found that there weren’t any suitable plugins! So, I developed my own plugin: Hugo-Blowfish-Exporter.\nWhile the plugin is simple, it covers almost all of my needs, including:\n- Callouts (supports all official callout names, with additional icons) - Inline math formulas (Blowfish supports block-level formulas)\n- Mermaid (supports Mermaid diagrams)\n- Image embedding (automatically exports images)\n- Wiki-style links (only support the none-displayed link 😢)\nThe none-displayed link is simply exported as normal hyperlink in the HTML file;\nThe displayed link is more complex: change(override) the source code of Blowfish to support the file injection through the shortcode, mdimporter; every Obsidian file should includes a meta data slug to tag the folder that contains the target markdown file in your website repository.\nThe overriding of the theme\u0026rsquo;s source code can be found in the mdimporter and the stripFrontMatter used to remove metadata from the injected files\u0026rsquo; headers. For overriding the directory, refer to the configuration on GitHub.\nI put a lot of effort into this plugin, even though it only took a few days 🤔. But those few days were quite exhausting 😵‍💫.\nIf this plugin helps you, feel free to share it! If you’re not happy with the functionality, you can submit an issue on GitHub 🫡. If you\u0026rsquo;re familiar with the code, you can modify it directly; the code is well-commented and quite standard 🤗.\nAnd if you modify and upgrade the code, I’d be very grateful if you share your changes with me (via a pull request on GitHub)! ☺️\nFinal Thoughts # Setting up a blog site is just the first step in a long journey; the real challenge is filling it with content.\nAs I mentioned in An experience of writing plugins, many personal blogs fade into obscurity in as little as a year, from the initial burst of excitement to the eventual silence.\nIn this fast-paced world, most meaningless and inefficient things are eventually replaced by efficiency, and the original enthusiasm and dreams often compromise with reality. I too no longer have the passion I once had, and my actions have become more like those of a real adult.\nBut there\u0026rsquo;s still a bit of unwillingness in me. This website is a form of resistance, and I’ll do my best to maintain it. That’s also why I developed the plugin—to make updating the blog easier.\nI hope this tutorial helps anyone planning to set up their own blog. Let’s keep moving forward, together 🫡.\n","date":"7 January 2025","externalUrl":null,"permalink":"/en/blog/hugo-blog/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n A blog website journey, from hand-coding to Hugo, a story of twists and turns.\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003eWhy Hugo? \n \u003cdiv id=\"why-hugo\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#why-hugo\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eIt all started with hearing that Hugo could generate webpages and that it was incredibly efficient at compiling static pages. I decided to dive into the research—Hugo is said to be the \u003cstrong\u003efastest static site generator\u003c/strong\u003e in the world, as claimed on its official website.\u003c/p\u003e","title":"Hugo Blog Setup","type":"blog"},{"content":" A Reflection on Writing a Plugin and What I Learned from the Experience. The Beginning # It all started with my blog website. I stumbled upon an article on WeChat about building a blog with Hugo, and since I wanted to revamp my old, simple site, I decided to give it a try. My original site was extremely rudimentary, and the whole writing process involved jumping between HTML, JS, and CSS in a rather awkward manner. On top of that, I had always admired the blog of a great tech guru, Lilian Weng, which was also built with Hugo. This further strengthened my resolve to change my site\u0026rsquo;s underlying platform.\nSo, I quickly started diving into Hugo.\nTo my surprise, the results were extraordinary! My old webpage took me nearly a month to build, but with Hugo, I was able to finish everything in less than half a day. What shocked me even more was that Hugo, a program written in Go, didn’t require users to set up a Go environment! 😮\nAt the same time, I discovered an incredibly well-documented Hugo theme—Blowfish. This was by far the most detailed documentation I had ever seen for any project, bar none (๑•̀ㅂ•́)و✧.\nWith Hugo and Blowfish working in tandem, my small site quickly took shape. Of course, I’m not great at designing, so I just used the default layout from Blowfish, as I felt any changes would ruin the beauty of the page.\nTo be honest, after all this work, I didn’t have any strong emotional reactions, except for deep respect for the coding skills of the authors of Hugo and Blowfish.\nThat was until I wanted to upload the massive amount of notes I had in Obsidian to my new blog.\nThe Bitter Taste of Originality # I soon realized that there wasn’t a plugin available to directly convert the format of my Obsidian notes to fit the Blowfish theme. Fueled by the earlier \u0026ldquo;pleasant experience,\u0026rdquo; I decided to write a plugin myself! (😄 Although, I would soon stop laughing 😢)\nThe rest of the experience wasn’t anything particularly exciting—just endless switching between webpages, searching through API documentation, and never-ending conversations with AI bots. After countless revisions, I finally ended up with something exceedingly simple: a plugin that identifies specific patterns in documents and performs content replacement.\nIt was quite laughable. Compared to the few hours it took to set up the website, the nearly forty hours I spent writing that plugin felt almost negligible. At one point, I seriously considered just deleting my few hundred lines of code.\nYes, such a simple plugin drained me mentally and physically. I truly tasted the bitterness of originality.\nNow, looking back at Hugo and Blowfish, I feel deeply shocked by their complexity and the effort required to implement all of those features. If they were getting paid for this work, I could at least understand the level of effort involved. But they were both open-source, relying entirely on user goodwill and appreciation.\nI saw the last update of the Blowfish author’s blog, which was in March 2024, and I fell into deep thought.\nSentiments and Idealism # I imagine that the author of Blowfish must have paused the development of the theme for some reason—perhaps due to life circumstances. After all, this project didn’t bring in much real income.\nSuddenly, I remembered the changes I had noticed before—those GitHub profiles, once full of green squares, gradually becoming sparse, and eventually disappearing. Beneath this peaceful change, there might be a shift in someone\u0026rsquo;s life. Whether it\u0026rsquo;s because of busy work or the gradual fading of motivation, the original passionate drive eventually drowns in silence. I can\u0026rsquo;t stop this from happening, but I understand the reasons behind it.\nOpen-source is driven by passion, but passion doesn’t pay the bills. People need to live in the present.\nI recalled a tech YouTuber, Ma Nong Gao Tian, a core Python developer who humorously complained about the harsh realities of open-source life. His prematurely graying hair made me feel a pang of empathy—he had spent most of his life writing code and yet found himself out of work, surviving on a few extra bucks from his videos.\nIn Conclusion # Life is rarely as we wish. Once again, I looked at my forty-plus hours of work and couldn’t help but laugh and shake my head.\nAfter writing this, I’m off to bed. It’s now 1:48 AM on January 6, 2025, and I still haven’t reviewed for my English final exam tomorrow.\nLooking at this blog again, I laughed and shook my head.\nSuch is life.\n","date":"6 January 2025","externalUrl":null,"permalink":"/en/blog/plugin-writing-experience/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n A Reflection on Writing a Plugin and What I Learned from the Experience.\n\u003c/div\u003e\n\n\n\n\u003ch3 class=\"relative group\"\u003eThe Beginning \n \u003cdiv id=\"the-beginning\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#the-beginning\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003eIt all started with my blog website. I stumbled upon an article on WeChat about building a blog with \u003ccode\u003eHugo\u003c/code\u003e, and since I wanted to revamp my old, simple site, I decided to give it a try. My original site was extremely rudimentary, and the whole writing process involved jumping between \u003ccode\u003eHTML\u003c/code\u003e, \u003ccode\u003eJS\u003c/code\u003e, and \u003ccode\u003eCSS\u003c/code\u003e in a rather awkward manner. On top of that, I had always admired the \u003ca href=\"https://lilianweng.github.io/\" target=\"_blank\"\u003eblog\u003c/a\u003e of a great tech guru, \u003ccode\u003eLilian Weng\u003c/code\u003e, which was also built with \u003ccode\u003eHugo\u003c/code\u003e. This further strengthened my resolve to change my site\u0026rsquo;s underlying platform.\u003c/p\u003e","title":"An experience of writing plugin","type":"blog"},{"content":"Morethan\u0026rsquo;s dummy blog page~\n","date":"3 January 2025","externalUrl":null,"permalink":"/en/blog/moravecs-paradox/","section":"Blogs","summary":"\u003cp\u003eMorethan\u0026rsquo;s dummy blog page~\u003c/p\u003e","title":"The reflection of Moravec's paradox","type":"blog"},{"content":" Preface # This article is primarily a review and summary of the entire process of CUMCM 2024.\nOur team was formed in the winter of 2023, and CUMCM 2024 was our first participation in the \u0026ldquo;Mathematical Modeling\u0026rdquo; competition. After numerous mock contests, we finally made it to the national competition. After submitting the final paper, we won the first prize at the provincial level and were recommended for the first prize at the national level, ultimately receiving the second prize at the national level.\nThere were moments of excitement and surprise, as well as disappointment; we must have done some things right in the competition, which is why we won a national award in our first attempt; but there are definitely shortcomings, after all, there must be a reason for going from \u0026ldquo;recommended for the first prize at the national level\u0026rdquo; to \u0026ldquo;second prize at the national level\u0026rdquo;.\nIn short, this experience is truly unforgettable, and it is even more worth summarizing and learning from the experience to prepare for next year\u0026rsquo;s competition.\nCUMCM stands for Chinese Undergraduate Mathematical Contest in Modeling; it is commonly referred to as the \u0026ldquo;National Mathematical Modeling Competition\u0026rdquo;. Terminology Explanation # Term Explanation Computational System The traditional modeling process, encapsulating a large function Optimization System A system used to optimize the adjustable parameters in the computational system to generate the best parameter configuration Computational Flow The process of handling input data in the computational system Computational Flow Node A key intermediate step in the workflow Optimization Flow The main logic of the optimization system Main Body of the Paper Includes the abstract, restatement, descriptions of computational and optimization flows, results presentation and analysis, that is, all content before the conclusion of the paper Conclusion of the Paper Includes sensitivity analysis and model extension Objective Conditions # Task Division # Although there were many topics to choose from for the competition, our group chose to focus on optimization problems, which is Topic A.\nMe: Modeling + Coding + Part of Paper Writing CL: Modeling + Paper Writing + Part of Coding HWJ: Paper Beautification Workflow # The coding part of the entire Topic A can be roughly divided into two systems:\nComputational System: Function: Accept input data and parameters, return the required results Nature: Directly determined by the problem, different topics have different computational systems, which need to be constructed temporarily Optimization System: Function: Accept the computational system as the target function to be optimized, execute its own optimization logic, and finally return the computational results Nature: The method system is relatively mature and can be prepared in advance of the competition with various optimization systems The paper writing part is divided into:\nOverall Framework: Determined by the LaTeX template Main Content Filling: Clear description of the workflow and optimization flow Typesetting and Beautification: Adjust the details of each part, with illustrative images (flowcharts, schematics) Concluding Content Pre-Modeling # Objective: Under the premise of accurately understanding the problem, quickly carry out preliminary modeling, basically determine the direction of modeling and calculation methods;\nEstimated Time: 3 hours\nWork: All team members conduct a web search to see if there are any literature materials that basically hit the topic.\nHit Successful: The most ideal situation, at this time, you can directly study the papers and collect ideas; Hit Unsuccessful: Although there are no ready-made materials for reference, some ideas have been accumulated in the process of literature review. Early Modeling # Overall Objective: Construct a precise and optimization method adaptable computational system\nModeling: Clarify the operations between input data and each computational flow node Coding: Implement the computational flow with code and achieve data visualization Paper: Fill in the content of the first question and initially typeset Estimated Time: 30 hours\nWork:\nAll team members model together, first clarify the modeling ideas, and provide a complete mathematical derivation process Me and CL: Code implementation and paper content filling are carried out simultaneously HWJ: Draw more vivid schematic diagrams that cannot be generated by code Mid-Modeling # Overall Objective: Construct a suitable optimization system\nModeling: According to the particularity of the computational system, choose the most matching optimization system Coding: Make minor changes in the implementation of the optimization system to match the computational system Paper: Complete the main part of the paper and start local detail fine-tuning Estimated Time: 20 hours\nWork: Similar to the previous, but the focus of work has shifted from code writing to paper writing\nSimplify the paper, at this time, the paper is very bloated Fine-tune the logic of the paper to make the context more closely related Beautify the typesetting, reduce text, increase images Late Modeling # The basic modeling is completed, and all members check for loopholes: Conventional checks such as typos, inaccurate expressions, formula spelling errors, etc. Optimize code comments to make them more readable Focus on checking personal information Personal information must not be retained in the competition paper, including file paths in the code, such as C:\\Users\\Morethan; retaining personal information is a very serious mistake! Actual Combat Effectiveness # When we applied the above strategies to the actual combat process, that is, the formal competition of CUMCM 2024, the results were as follows:\nEffective Time: The total duration of the competition is three days, a total of 72 hours The team works from seven in the morning to eight in the evening, excluding meal times, with an effective time of 12 hours a day Time utilization rate is \\(50\\%\\) (quite low in comparison🤔) Completed Work: The main body of the paper is 28 A4 pages The code part is 35 A4 pages, excluding the reused code between each sub-question, there should be about 20 pages A total of 25 illustrations in the paper The above data is after the paper has been streamlined, with the initial draft of the paper being nearly 50 pages Uncompleted Work: The final result calculation, due to the large amount of calculation (the code efficiency is not high), the code was finished two hours in advance, but there was not enough time to calculate the results😭😭 The calculation accuracy of the model is not enough, the accuracy is 1s which does not meet the standard answer\u0026rsquo;s precision The conclusion part of the paper was not actually completed Strengths # Topic Selection # Focused on Topic A, accumulated sufficient experience in mock contests, and polished a set of efficient workflows\nThe methodology for Topic A is relatively well-constructed\nWorkflow # The workflow is relatively clear, and the efficiency is high\nGuided by the final paper, modeling, paper, and code are carried out simultaneously, ensuring sufficient content in the paper\nDivision of Labor # Adopted a blurred division of labor, each team member has a main job and a secondary job, can work independently on their main job, and can also complete some work on the secondary job, greatly improving time utilization\nThe team members are very capable, as handling two division tasks means more learning costs\nWeaknesses # Workflow # The plan is perfect, but some necessary links were not well done in practice\nEffective time ratio: finishing work at eight in the evening is too early! More time should be taken to model trial and error to ensure the correctness and accuracy of the model\nDivision of Labor # The code writing, code debugging, code visualization, result calculation, and result visualization involve too much code, which is difficult for one person to handle;\nTask overlap caused by blurred division of labor increases collaboration costs\nModeling # Topic understanding accuracy: This time, there was a significant deviation in our understanding of the topic, which led to wasting a lot of time on model correction; Code # Code efficiency: Due to no time limit before, there was insufficient preparation for \u0026ldquo;very long\u0026rdquo; code, no experience with code parallelism;\nResult precision: The initial modeling was too rough, and a bad characteristic was used: setting the time step to 1, and using it as an array index, which made it difficult to reduce the time step later, resulting in insufficient precision of the final results\nImprovement Plans # Carefully select the venue, increasing effective time✨is the most important✨ Division of Labor # Slightly change the division of labor, increase the investment of human resources in coding\nIncrease learning input in each main and secondary division to increase work efficiency\nModeling # Focus more on understanding the topic, don\u0026rsquo;t rush; correcting modeling errors is not worth the loss Code # Build a set of effective code collaboration plans to enhance code writing speed\nStart building code writing standards:\nVariable naming Documentation at the beginning of the file Code writing process standards Code parallelization: Add some parallelizable code to the code to increase running speed\nAll code improvements must be implemented in a document! Not just slogans! The final output: Code Collaboration Scheme Paper # Study excellent papers\nPay attention to its paper framework Pay attention to its language style, text readability, detail, illustration logic, and image readability Improve ourselves\nOptimize the paper\u0026rsquo;s main logic framework, refine the content of each section Improvements in language style, text readability, detail, illustration logic, and image readability, etc. The results are fixed in the form of comments in the LaTeX template! Summary # A test paper without full marks is more rewarding than one with full marks!\nAccumulating knowledge of applied mathematics, enhancing paper writing skills, and improving the ability to discover problems are more meaningful than the competition itself. 🫡\nCUMCM, every MathModeler can benefit from it. 🤗\n","date":"12 September 2024","externalUrl":null,"permalink":"/en/blog/cumcm2024/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003ePreface \n \u003cdiv id=\"preface\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#preface\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eThis article is primarily a review and summary of the entire process of CUMCM 2024.\u003c/p\u003e","title":"CUMCM 2024 Summary","type":"blog"},{"content":" Virtual Env # Creat # Some tipical code 👇\n# creat a virtual env named \u0026#34;your_env_name\u0026#34; python -m venv your_env_name # assign the version of python, make sure your python in default direction python -m venv your_env_name --python=python3.11 # simply list the absolute direction of python, simple and efficient D:/PythonPython311/python.exe -m venv your_env_name More parameters you may need for a customized virtual env. 🤔\nParams Meaning --system-site-packages Give the virtual environment access to the system site-packages dir. --clear Delete the contents of the environment directory if it already exists, before environment creation. --version print the python version of the env All the detailed expaination of the parameters can be got by the code python -m venv -h. No need to search everywhere~😆 Activate # The virtual env is defaulted not active. In the direction your_env_name/Scripts/ will be a file named activate. Run it with your cmd.\n# activate virtual env your_env_name/Scripts/activate Program Packaging # We often need to share our Python programs. However, sharing the source code alone can be frustrating for users who aren\u0026rsquo;t familiar with coding, as it requires setting up a local environment to run the code. Therefore, program packaging comes in handy.\nPyInstaller # Installation is very simple, just like any other Python package: pip install pyinstaller. To use it, open the terminal in the target directory and run the command.\nFeatures: Fast packaging speed; relatively large packaged files\nCommon command codes:\n# Package the main.py file as a standalone executable; the command window is disabled when the executable runs pyinstaller -F -w main.py # Package the main.py file into a project folder; the command window is enabled when the executable runs pyinstaller -D main.py Parameter Description -h, --help Show help information and exit -v, --version Show program version information and exit -F, --onefile Package everything into a single standalone executable -D, --onedir Package everything into a directory (default option) -w, --windowed, --noconsole Disable the command window (only works on Windows) -c, --console, --nowindowed Use the command window to run the program (default option, only on Windows) -a, --ascii Exclude Unicode character set support (included by default) -d, --debug Generate a debug version of the executable -n NAME, --name=NAME Specify the name of the generated executable or directory (default is script name) -o DIR, --out=DIR Specify the directory where the spec file will be generated (default is the current directory) -p DIR, --path=DIR Set the Python module import path (similar to setting PYTHONPATH) -i \u0026lt;FILE\u0026gt;, --icon \u0026lt;FILE\u0026gt; Set the executable file icon (supports .ico or .icns formats) --distpath DIR Specify the output directory for the executable file (default is ./dist) --workpath WORKPATH Specify the temporary working file directory (default is ./build) --add-data \u0026lt;SRC;DEST or SRC:DEST\u0026gt; Add additional data files or directories to the executable (use semicolon for Windows, colon for Linux/OSX to separate source and destination paths) --add-binary \u0026lt;SRC;DEST or SRC:DEST\u0026gt; Add additional binary files to the executable --hidden-import MODULENAME Add modules not automatically detected --exclude-module EXCLUDES Exclude specified modules --clean Clean PyInstaller cache and temporary files --log-level LEVEL Set the verbosity of console messages during the build process (possible values: TRACE, DEBUG, INFO, WARN, ERROR, FATAL) Nuitka # Nuitka packages Python code into an executable (.exe). The underlying process first converts Python code to C code, then compiles the C code.\nFeatures: Slow packaging speed; requires an additional C compiler (though automatic setup is possible, it can be strict on memory management, so may not be suitable for users with limited space); smaller packaged files (tested to be about one-tenth the size of PyInstaller\u0026rsquo;s output)\nInstallation command:\npip install -U nuitka Common usage command:\n# Package the main.py file into an exe file with link-time optimization, and remove temporary files after packaging python -m nuitka --lto=yes --remove-output --onefile main.py Parameter Description --standalone Create a standalone executable folder that includes all dependencies. --onefile Package everything into a single .exe file. --optimize=N Set optimization level (0, 1, or 2), the higher the number, the more optimized the result. --lto Enable Link-Time Optimization (possible values: no, yes, thin). --enable-plugin=\u0026lt;plugin_name\u0026gt; Enable a specific plugin, such as tk-inter, numpy, anti-bloat, etc. --output-dir=\u0026lt;dir\u0026gt; Specify the output directory for the compiled files. --remove-output Delete intermediate .c files and other temporary files after compilation. --nofollow-imports Do not recursively process any imported modules. --include-package=\u0026lt;package_name\u0026gt; Explicitly include an entire package and its submodules. --include-module=\u0026lt;module_name\u0026gt; Explicitly include a specific module. --follow-import-to=\u0026lt;module/package\u0026gt; Specify which modules or packages to recursively process. --nofollow-import-to=\u0026lt;module/package\u0026gt; Specify which modules or packages not to recursively process. --include-data-files=\u0026lt;source\u0026gt;=\u0026lt;dest\u0026gt; Include specified data files. --include-data-dir=\u0026lt;directory\u0026gt; Include all data files in the specified directory. --noinclude-data-files=\u0026lt;pattern\u0026gt; Exclude data files matching a specified pattern. --windows-icon-from-ico=\u0026lt;path\u0026gt; Set the Windows executable icon. --company-name, --product-name, --file-version, --product-version, --file-description Set Windows executable properties. ","date":"10 August 2024","externalUrl":null,"permalink":"/en/blog/pytips/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003eVirtual Env \n \u003cdiv id=\"virtual-env\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#virtual-env\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\n\n\u003ch3 class=\"relative group\"\u003eCreat \n \u003cdiv id=\"creat\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#creat\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003eSome tipical code 👇\u003c/p\u003e","title":"Python Tpis","type":"blog"},{"content":" Reference # Honestly, I\u0026rsquo;m not familiar with BayesianOPT, the opinions mentioned stem from the below. 👇\n【机器学习】一文看懂贝叶斯优化/Bayesian Optimization\n一文详解贝叶斯优化(Bayesian Optimization)原理\n贝叶斯优化(BayesianOptimization)\n超参数优\u0026mdash;贝叶斯优化及其改进(PBT优化)\n贝叶斯优化 (Bayesian Optimization)\nMATLAB Offical Document\nAdvantages \u0026amp; Algorithm Principle # Here we are going to talk about the advantages \u0026amp; algorithm principle of BayesianOPT. If you only want to konw how to use it, you can read the #Advantage section, then go to the #MATLAB Practice\nAdvantages # Algorithm Principle # MATLAB Practice # Well, we can put Bayesian Optimization into practice even though we don\u0026rsquo;t understand it, using the predefined function of MATLAB, the bayesopt. Here is the official guidance of the function: bayesopt\nFinal code display # % define the obj function function y = objectiveFcn(x) y = (1 - x.x1)^2 + 100 * (x.x2 - x.x1^2)^2; end % define the variables vars = [optimizableVariable(\u0026#39;x1\u0026#39;, [-2, 2]) optimizableVariable(\u0026#39;x2\u0026#39;, [-2, 2])]; % conduce the optimizer results = bayesopt(@objectiveFcn, vars, ... \u0026#39;AcquisitionFunctionName\u0026#39;, \u0026#39;expected-improvement-plus\u0026#39;, ... \u0026#39;MaxObjectiveEvaluations\u0026#39;, 30, ... \u0026#39;IsObjectiveDeterministic\u0026#39;, true, ... \u0026#39;Verbose\u0026#39;, 1); % get result bestPoint = results.XAtMinObjective; bestObjective = results.MinObjective; % result output fprintf(\u0026#39;最优解 x1: %.4f, x2: %.4f\\n\u0026#39;, bestPoint.x1, bestPoint.x2); fprintf(\u0026#39;最优目标值: %.4f\\n\u0026#39;, bestObjective); I\u0026rsquo;d commit that the code is generated by AI. 🥲 AI is a better coder, at least when comparing with me. 🫠 Parameters Explaination # Params Meaning AcquisitionFunctionName select a Acquisition Function, which determines the method how bayesopt choose the next acquisition point MaxObjectiveEvaluations the maximize evalu turns IsObjectiveDeterministic If the obj function contains noise, set to true ; Otherwise, set to false Verbose Determine the detailing extend of console output, the complete output includes many figures. Want more detailed information? Refer to the Offical document: bayesopt. It\u0026rsquo;s more completed and with amount of examples.\nIt\u0026rsquo;s basic for every MathModeler to read the offical document. 😝 ","date":"5 August 2024","externalUrl":null,"permalink":"/en/blog/bayesianopt/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003eReference \n \u003cdiv id=\"reference\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#reference\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eHonestly, I\u0026rsquo;m not familiar with BayesianOPT, the opinions mentioned stem from the below. 👇\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://blog.csdn.net/qq_27590277/article/details/115451660\" target=\"_blank\"\u003e【机器学习】一文看懂贝叶斯优化/Bayesian Optimization\u003c/a\u003e\u003c/p\u003e","title":"Bayesian Optimization","type":"blog"},{"content":" Background Overview # You should know how to interact with the computer via the command line, including but not limited to: how to open the command line/terminal in Windows, when a running command ends, etc.\nA little knowledge of bypassing internet censorship is helpful. OverLeaf is foreign software, and its related LaTeX projects are also hosted abroad. Therefore, directly accessing foreign traffic when downloading dependencies can save a lot of trouble. If you don’t have a VPN, you will need to specify a domestic source for each package manager, though sometimes the updates from domestic sources are not timely.\nBasic familiarity with Vim operations is useful, such as: how to enter insert mode, how to save and exit, how to exit without saving, etc.\nFull Deployment Process # Installing Linux # Search for a Linux distribution in the Windows App Store and download it. The author chose Kali. After installation, you can open it directly from the Start menu. Upon opening, a command-line window will pop up, and you will need to register with a username and password.\nAt this point, your command line should display a warning. This is because you haven’t installed WSL (Windows Subsystem for Linux).\nAlso, when entering the password, your input will not be displayed in the command line, but it has been recorded.\nWhy do you need a Linux system? Because OverLeaf\u0026rsquo;s ShareLaTeX model requires a Linux environment. It is said that OverLeaf runs more smoothly on Linux systems.\nInstalling WSL # To install WSL2, run the following in the Windows command line:\nwsl --install After installation, you can open it directly. Another warning will appear. At this point, you need to create a text file in the C:\\Users\\ASUS directory and rename it to .wslconfig.\nEnter the following content:\n[experimental] autoMemoryReclaim=gradual # gradual | dropcache | disabled networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true Installing Docker # Go to the Docker website to download Docker, which will be the container for the ShareLaTeX model. Docker is an open-source application container engine that includes images, containers, and repositories. Its purpose is to manage the lifecycle of application components, such as encapsulation, distribution, deployment, and operation, allowing users to \u0026ldquo;package once, run anywhere,\u0026rdquo; much like a container, developed and encapsulated by programmers, which users can directly move around.\nOnce Docker is installed, you can double-click to start it in the background. We will interact with Docker later via the command line.\nPulling the Image # Open Kali, and run the following command:\ngit clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit Then run:\ncd ./overleaf-toolkit bin/init vim ./config/variables.env At this point, you should be in the document interface of the Vim text editor. Vim has many shortcuts, and pressing the \u0026quot;I\u0026quot; key will enter insert mode for text editing. Press \u0026quot;esc\u0026quot; to return to normal mode. In insert mode, type: OVERLEAF_SITE_LANGUAGE=zh-CN.\nAfter typing, press \u0026quot;esc\u0026quot; to return to normal mode, then type :wq to \u0026ldquo;save and quit.\u0026rdquo; If you make a mistake, type :e! to discard all changes and start over. This step will set your OverLeaf interface to Chinese.\nAfter successfully saving and quitting, return to the familiar Kali command-line interface and run bin/up. This will pull the ShareLaTeX image and related network tools. There will be a large amount of data transfer, so ensure that your network is stable (your VPN should be reliable!).\nConfiguring the User # Once the previous command finishes, run bin/start. At this point, open Docker and enter the ShareLaTeX container. You should see code \u0026ldquo;flashing.\u0026rdquo; If there are no red messages, everything is running normally.\nNow open a browser and visit http://localhost/launchpad.\nAfter registering an Administrator Account, you will be redirected to http://localhost/project. The basic OverLeaf webpage should now be displayed. If you compile now, it will most likely report an error ᕕ( ᐛ )ᕗ.\nThis is because ShareLaTeX is missing many required packages🙃\u0026quot;\nInstalling Extension Packages # Open Kali, navigate to the appropriate directory, and run bin/shell. Then execute the following one by one:\ncd /usr/local/texlive # Download and run the upgrade script wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh sh update-tlmgr-latest.sh -- --upgrade # Change the TeX Live download source tlmgr option repository https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet/ # Upgrade tlmgr tlmgr update --self --all # Install the full TeX Live package (this will take time, so don’t let the shell disconnect) tlmgr install scheme-full # Exit the ShareLaTeX command-line interface exit # Restart the ShareLaTeX container docker restart sharelatex After restarting, enter the shell again and run:\napt update # Install fonts apt install --no-install-recommends ttf-mscorefonts-installer fonts-noto texlive-fonts-recommended tex-gyre fonts-wqy-microhei fonts-wqy-zenhei fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-color-emoji fonts-noto-extra fonts-noto-ui-core fonts-noto-ui-extra fonts-noto-unhinted fonts-texgyre # Install pygments apt install python3-pygments # Install Beamer and others apt install texlive-latex-recommended apt install texlive-latex-extra # Install English fonts echo \u0026#34;yes\u0026#34; | apt install -y --reinstall ttf-mscorefonts-installer # Install Chinese fonts apt install -y latex-cjk-all texlive-lang-chinese texlive-lang-english cp fonts/* /usr/share/fonts/zh-cn/ cd /usr/share/fonts fc-cache -fv # Update font cache fc-list :lang=zh-cn fc-match Arial Finally, in the shell directory, run:\nvim /usr/local/texlive/2023/texmf.cnf Open the configuration file and add shell_escape = t at the bottom.\nI’m not sure what this does, but it was passed down by the predecessors 🤔 Note, if the TeX Live version (the official name for extension packages) differs, the directory path may also change. You will need to adjust the path based on the actual version, for example, change 2023 to 2024.\nYou can use ls -l in the Linux command line to view all files in the current directory. Successful Deployment # Now you can happily use your local OverLeaf version without worrying about compilation timeouts~\nIf you\u0026rsquo;re lucky and happen to be a CQUer, here’s a graduation thesis template from Chongqing University, super user-friendly: CQUThesis\n","date":"12 July 2024","externalUrl":null,"permalink":"/en/blog/localoverleaf/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003eBackground Overview \n \u003cdiv id=\"background-overview\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#background-overview\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eYou should know how to interact with the computer via the command line, including but not limited to: how to open the command line/terminal in Windows, when a running command ends, etc.\u003c/p\u003e","title":"Local OverLeaf Deployment","type":"blog"},{"content":"","date":"27 January 2025","externalUrl":null,"permalink":"/en/authors/","section":"Authors List","summary":"","title":"Authors List","type":"authors"},{"content":"","date":"27 January 2025","externalUrl":null,"permalink":"/en/blog/","section":"Blogs","summary":"","title":"Blogs","type":"blog"},{"content":" Hi, welcome to my info page. 👋 # Basic Info # My casual English name is Morethan because it resembles my Chinese name. 🙃\nNow I\u0026rsquo;m a university student in China. ᕕ( ᐛ )ᕗ Nothing more to say. 🫠\nBlog Focus # Personal Knowledge Base: to store frequently-used operations and valuable experience.\nMicro Paper Stack: to store inspirations for my Graduation Thesis, usually serious and logical, attempt to follow the standard thesis working stream.\nKnowledge Outlet: to put what I leant into practice.\nFinal # If you find the content is useful, click a like please at the beginning of that page. 🤗\nIf you want to share the content, cite this website please. 🫡\nIf you find some bug, push an issue on the GitHub please. 🥰\n","date":"27 January 2025","externalUrl":null,"permalink":"/en/authors/morethan/","section":"Authors List","summary":"\u003ch1 class=\"relative group\"\u003eHi, welcome to my info page. 👋 \n \u003cdiv id=\"hi-welcome-to-my-info-page-\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#hi-welcome-to-my-info-page-\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h1\u003e\n\n\n\u003ch2 class=\"relative group\"\u003eBasic Info \n \u003cdiv id=\"basic-info\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#basic-info\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eMy casual English name is Morethan because it resembles my Chinese name. 🙃\u003c/p\u003e","title":"Morethan","type":"authors"},{"content":"","date":"27 January 2025","externalUrl":null,"permalink":"/en/series/project-report/","section":"Seires","summary":"","title":"Project Report","type":"series"},{"content":"","date":"27 January 2025","externalUrl":null,"permalink":"/en/tags/report/","section":"Tags","summary":"","title":"Report","type":"tags"},{"content":"","date":"27 January 2025","externalUrl":null,"permalink":"/en/tags/schedule/","section":"Tags","summary":"","title":"Schedule","type":"tags"},{"content":" ","date":"27 January 2025","externalUrl":null,"permalink":"/en/series/","section":"Seires","summary":"\u003chr\u003e","title":"Seires","type":"series"},{"content":" ","date":"27 January 2025","externalUrl":null,"permalink":"/en/tags/","section":"Tags","summary":"\u003chr\u003e","title":"Tags","type":"tags"},{"content":"Here are notes and micro-thesises to reinforce knowledge through writing.\nHope my casual words can provide you something useful.🤗\n","date":"27 January 2025","externalUrl":null,"permalink":"/en/","section":"Welcome to Morethan's website","summary":"\u003cp\u003eHere are notes and micro-thesises to reinforce knowledge through writing.\u003c/p\u003e\n\u003cp\u003eHope my casual words can provide you something useful.🤗\u003c/p\u003e","title":"Welcome to Morethan's website","type":"page"},{"content":"","date":"2025-01-27","externalUrl":null,"permalink":"/tags/%E6%97%A5%E7%A8%8B%E7%AE%A1%E7%90%86/","section":"标签","summary":"","title":"日程管理","type":"tags"},{"content":"","date":"2025-01-27","externalUrl":null,"permalink":"/series/%E9%A1%B9%E7%9B%AE%E6%8A%A5%E5%91%8A/","section":"系列","summary":"","title":"项目报告","type":"series"},{"content":"The CUMCM (Chinese Undergraduate Mathematical Contest in Modeling) is a competition where participants do not directly enter the national finals.\nInstead, they must go through a selection process involving the University-level competition (校赛), Provincial-level competition (省赛), and only after that will their papers be submitted for evaluation by national experts. Thus, the competition is informally divided into three stages: University-level competition, Provincial-level competition, and National-level competition.\n","date":"16 January 2025","externalUrl":null,"permalink":"/en/tags/cumcm/","section":"Tags","summary":"\u003cp\u003eThe \u003cstrong\u003eCUMCM\u003c/strong\u003e (Chinese Undergraduate Mathematical Contest in Modeling) is a competition where participants do not directly enter the national finals.\u003c/p\u003e\n\u003cp\u003eInstead, they must go through a selection process involving the \u003cstrong\u003eUniversity-level competition\u003c/strong\u003e (校赛), \u003cstrong\u003eProvincial-level competition\u003c/strong\u003e (省赛), and only after that will their papers be submitted for evaluation by national experts. Thus, the competition is informally divided into three stages: \u003cstrong\u003eUniversity-level competition\u003c/strong\u003e, \u003cstrong\u003eProvincial-level competition\u003c/strong\u003e, and \u003cstrong\u003eNational-level competition\u003c/strong\u003e.\u003c/p\u003e","title":"CUMCM","type":"tags"},{"content":"","date":"16 January 2025","externalUrl":null,"permalink":"/en/series/mathmodel/","section":"Seires","summary":"","title":"MathModel","type":"series"},{"content":"","date":"16 January 2025","externalUrl":null,"permalink":"/en/tags/matlab/","section":"Tags","summary":"","title":"MATLAB","type":"tags"},{"content":"","date":"15 January 2025","externalUrl":null,"permalink":"/en/tags/mysql/","section":"Tags","summary":"","title":"MySQL","type":"tags"},{"content":"","date":"15 January 2025","externalUrl":null,"permalink":"/en/series/operation/","section":"Seires","summary":"","title":"Operation","type":"series"},{"content":"","date":"2025-01-15","externalUrl":null,"permalink":"/series/%E6%8A%80%E6%9C%AF%E6%B5%81%E7%A8%8B/","section":"系列","summary":"","title":"技术流程","type":"series"},{"content":"","date":"10 January 2025","externalUrl":null,"permalink":"/en/tags/hugo/","section":"Tags","summary":"","title":"Hugo","type":"tags"},{"content":"","date":"10 January 2025","externalUrl":null,"permalink":"/en/tags/%E5%8D%9A%E5%AE%A2/","section":"Tags","summary":"","title":"博客","type":"tags"},{"content":"","date":"10 January 2025","externalUrl":null,"permalink":"/en/tags/%E6%8A%A5%E5%91%8A/","section":"Tags","summary":"","title":"报告","type":"tags"},{"content":"","date":"7 January 2025","externalUrl":null,"permalink":"/en/tags/blog/","section":"Tags","summary":"","title":"Blog","type":"tags"},{"content":"","date":"6 January 2025","externalUrl":null,"permalink":"/en/series/casual-essay/","section":"Seires","summary":"","title":"Casual Essay","type":"series"},{"content":"","date":"6 January 2025","externalUrl":null,"permalink":"/en/tags/experience/","section":"Tags","summary":"","title":"Experience","type":"tags"},{"content":"","date":"2025-01-06","externalUrl":null,"permalink":"/tags/%E7%BB%8F%E5%8E%86/","section":"标签","summary":"","title":"经历","type":"tags"},{"content":"","date":"2025-01-06","externalUrl":null,"permalink":"/series/%E9%9A%8F%E7%AC%94/","section":"系列","summary":"","title":"随笔","type":"series"},{"content":"","date":"3 January 2025","externalUrl":null,"permalink":"/en/tags/ai/","section":"Tags","summary":"","title":"AI","type":"tags"},{"content":"","date":"2025-01-03","externalUrl":null,"permalink":"/series/ai%E9%81%90%E6%83%B3/","section":"系列","summary":"","title":"AI遐想","type":"series"},{"content":"","date":"3 January 2025","externalUrl":null,"permalink":"/en/tags/imagination/","section":"Tags","summary":"","title":"Imagination","type":"tags"},{"content":"","date":"3 January 2025","externalUrl":null,"permalink":"/en/series/wild-imagination-of-ai/","section":"Seires","summary":"","title":"Wild Imagination of AI","type":"series"},{"content":"","date":"2025-01-03","externalUrl":null,"permalink":"/tags/%E9%81%90%E6%83%B3/","section":"标签","summary":"","title":"遐想","type":"tags"},{"content":"","date":"12 September 2024","externalUrl":null,"permalink":"/en/tags/math/","section":"Tags","summary":"","title":"Math","type":"tags"},{"content":"","date":"10 August 2024","externalUrl":null,"permalink":"/en/tags/python/","section":"Tags","summary":"","title":"Python","type":"tags"},{"content":"","date":"12 July 2024","externalUrl":null,"permalink":"/en/tags/latex/","section":"Tags","summary":"","title":"LaTeX","type":"tags"},{"content":"","date":"12 July 2024","externalUrl":null,"permalink":"/en/tags/overleaf/","section":"Tags","summary":"","title":"Overleaf","type":"tags"},{"content":"","externalUrl":null,"permalink":"/en/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"Mathematical Modeling is the use of mathematical models to precisely and systematically describe objects in life, and it is an important combination of mathematics and practice.\n","externalUrl":null,"permalink":"/en/series/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/","section":"Seires","summary":"\u003cp\u003e\u003ccode\u003eMathematical Modeling\u003c/code\u003e is the use of mathematical models to \u003cstrong\u003eprecisely and systematically\u003c/strong\u003e describe objects in life, and it is an important combination of mathematics and practice.\u003c/p\u003e\n\u003chr\u003e","title":"Mathematical Modeling","type":"series"}] \ No newline at end of file diff --git a/en/index.xml b/en/index.xml index 6ff2556..0e4d444 100644 --- a/en/index.xml +++ b/en/index.xml @@ -9,7 +9,33 @@ morthan@qq.com (Morethan) morthan@qq.com (Morethan) © 2025 Morethan - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 + + + Schedule Management Report + https://morethan987.github.io/en/blog/schedule-management-report/ + Mon, 27 Jan 2025 00:00:00 +0000 + morthan@qq.com (Morethan) + https://morethan987.github.io/en/blog/schedule-management-report/ + <div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"> + A Schedule Management Software Functionality Analysis Report. +</div> + + + +<h3 class="relative group">Foreword + <div id="foreword" class="anchor"></div> + + <span + class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> + <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" + style="text-decoration-line: none !important;" href="#foreword" aria-label="Anchor">#</a> + </span> + +</h3> +<p>The schedule management software discussed in this article refers to software with the following features:</p> + + Code Collaboration Scheme diff --git a/en/series/index.html b/en/series/index.html index 3e77a7f..2d61934 100644 --- a/en/series/index.html +++ b/en/series/index.html @@ -922,7 +922,7 @@

· - 1 + 2

diff --git a/en/series/index.xml b/en/series/index.xml index c55c9c7..c611bd1 100644 --- a/en/series/index.xml +++ b/en/series/index.xml @@ -9,7 +9,17 @@ morthan@qq.com (Morethan) morthan@qq.com (Morethan) © 2025 Morethan - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 + + + Project Report + https://morethan987.github.io/en/series/project-report/ + Mon, 27 Jan 2025 00:00:00 +0000 + morthan@qq.com (Morethan) + https://morethan987.github.io/en/series/project-report/ + + + MathModel @@ -31,16 +41,6 @@ - - Project Report - https://morethan987.github.io/en/series/project-report/ - Fri, 10 Jan 2025 00:00:00 +0000 - morthan@qq.com (Morethan) - https://morethan987.github.io/en/series/project-report/ - - - - Casual Essay https://morethan987.github.io/en/series/casual-essay/ diff --git a/en/series/project-report/index.html b/en/series/project-report/index.html index 61cb1b6..27f07fa 100644 --- a/en/series/project-report/index.html +++ b/en/series/project-report/index.html @@ -797,6 +797,202 @@

Proj + + +
+ +
+ + + + + + Draft + + + + + +
+ + +
Schedule Management Report
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·6 mins· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + Schedule + + + + + + + + Report + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + +
diff --git a/en/series/project-report/index.xml b/en/series/project-report/index.xml index 063b5c8..2d09e54 100644 --- a/en/series/project-report/index.xml +++ b/en/series/project-report/index.xml @@ -9,7 +9,33 @@ morthan@qq.com (Morethan) morthan@qq.com (Morethan) © 2025 Morethan - Fri, 10 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 + + + Schedule Management Report + https://morethan987.github.io/en/blog/schedule-management-report/ + Mon, 27 Jan 2025 00:00:00 +0000 + morthan@qq.com (Morethan) + https://morethan987.github.io/en/blog/schedule-management-report/ + <div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"> + A Schedule Management Software Functionality Analysis Report. +</div> + + + +<h3 class="relative group">Foreword + <div id="foreword" class="anchor"></div> + + <span + class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> + <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" + style="text-decoration-line: none !important;" href="#foreword" aria-label="Anchor">#</a> + </span> + +</h3> +<p>The schedule management software discussed in this article refers to software with the following features:</p> + + Analysis Report on the Note-to-Blog Project diff --git a/en/sitemap.xml b/en/sitemap.xml index 645f9d5..55c1491 100644 --- a/en/sitemap.xml +++ b/en/sitemap.xml @@ -2,6 +2,22 @@ + + https://morethan987.github.io/en/blog/schedule-management-report/ + 2025-01-27T00:00:00+00:00 + always + 0.5 + + + https://morethan987.github.io/en/blog/code-collaboration-scheme/ 2025-01-20T00:00:00+00:00 @@ -164,7 +180,7 @@ https://morethan987.github.io/en/authors/ - 2025-01-21T00:00:00+00:00 + 2025-01-27T00:00:00+00:00 always 0.5 https://morethan987.github.io/en/blog/ - 2025-01-21T00:00:00+00:00 + 2025-01-27T00:00:00+00:00 always 0.5 - https://morethan987.github.io/en/tags/cumcm/ - 2025-01-20T00:00:00+00:00 + https://morethan987.github.io/en/authors/morethan/ + 2025-01-27T00:00:00+00:00 always 0.5 - https://morethan987.github.io/en/series/mathmodel/ - 2025-01-20T00:00:00+00:00 + https://morethan987.github.io/en/series/project-report/ + 2025-01-27T00:00:00+00:00 always 0.5 - https://morethan987.github.io/en/tags/matlab/ - 2025-01-20T00:00:00+00:00 + https://morethan987.github.io/en/tags/report/ + 2025-01-27T00:00:00+00:00 + always + 0.5 + + + https://morethan987.github.io/en/tags/schedule/ + 2025-01-27T00:00:00+00:00 + always + 0.5 + + + https://morethan987.github.io/en/series/ + 2025-01-27T00:00:00+00:00 always 0.5 - https://morethan987.github.io/en/authors/morethan/ - 2025-01-21T00:00:00+00:00 + https://morethan987.github.io/en/tags/ + 2025-01-27T00:00:00+00:00 always 0.5 - https://morethan987.github.io/en/series/ - 2025-01-21T00:00:00+00:00 + https://morethan987.github.io/en/ + 2025-01-27T00:00:00+00:00 always 0.5 - https://morethan987.github.io/en/tags/ - 2025-01-21T00:00:00+00:00 + https://morethan987.github.io/en/tags/cumcm/ + 2025-01-20T00:00:00+00:00 always 0.5 - https://morethan987.github.io/en/ - 2025-01-21T00:00:00+00:00 + https://morethan987.github.io/en/series/mathmodel/ + 2025-01-20T00:00:00+00:00 + always + 0.5 + + + https://morethan987.github.io/en/tags/matlab/ + 2025-01-20T00:00:00+00:00 always 0.5 @@ -334,12 +368,6 @@ href="https://morethan987.github.io/en/tags/hugo/" /> - - https://morethan987.github.io/en/series/project-report/ - 2025-01-21T00:00:00+00:00 - always - 0.5 - https://morethan987.github.io/en/tags/%E6%8A%A5%E5%91%8A/ 2025-01-21T00:00:00+00:00 diff --git a/en/tags/index.html b/en/tags/index.html index 0ae6a61..ac470cf 100644 --- a/en/tags/index.html +++ b/en/tags/index.html @@ -1053,6 +1053,38 @@

1 +

+ + +
+ + diff --git a/en/tags/index.xml b/en/tags/index.xml index 00f9379..662e6ad 100644 --- a/en/tags/index.xml +++ b/en/tags/index.xml @@ -9,7 +9,27 @@ morthan@qq.com (Morethan) morthan@qq.com (Morethan) © 2025 Morethan - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 + + + Report + https://morethan987.github.io/en/tags/report/ + Mon, 27 Jan 2025 00:00:00 +0000 + morthan@qq.com (Morethan) + https://morethan987.github.io/en/tags/report/ + + + + + + Schedule + https://morethan987.github.io/en/tags/schedule/ + Mon, 27 Jan 2025 00:00:00 +0000 + morthan@qq.com (Morethan) + https://morethan987.github.io/en/tags/schedule/ + + + CUMCM diff --git a/en/tags/report/index.html b/en/tags/report/index.html new file mode 100644 index 0000000..1970687 --- /dev/null +++ b/en/tags/report/index.html @@ -0,0 +1,1130 @@ + + + + + + + + + + Report · More's awesome website + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + + + + + +
+
+ + + +
+
+ + + + + + + + + + + + + + + +
+ + + + +
+ + + +
+
+
+
+
+ +
+ + +
+ +

Report

+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + +
+ + + + + + +
+ +
+ + + + + + Draft + + + + + +
+ + +
Schedule Management Report
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·6 mins· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + Schedule + + + + + + + + Report + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + +
+ + + + + + + + + + + +
+ + + + + + +
+ + + +

+ © + 2025 + Morethan +

+ + + + +

+ + + Powered by Hugo & Blowfish +

+ + +
+ + + + + + + + +
+ + +
+ + + diff --git a/en/tags/report/index.xml b/en/tags/report/index.xml new file mode 100644 index 0000000..3114d7c --- /dev/null +++ b/en/tags/report/index.xml @@ -0,0 +1,41 @@ + + + + Report on More's awesome website + https://morethan987.github.io/en/tags/report/ + Recent content in Report on More's awesome website + Hugo -- gohugo.io + en + morthan@qq.com (Morethan) + morthan@qq.com (Morethan) + © 2025 Morethan + Mon, 27 Jan 2025 00:00:00 +0000 + + + Schedule Management Report + https://morethan987.github.io/en/blog/schedule-management-report/ + Mon, 27 Jan 2025 00:00:00 +0000 + morthan@qq.com (Morethan) + https://morethan987.github.io/en/blog/schedule-management-report/ + <div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"> + A Schedule Management Software Functionality Analysis Report. +</div> + + + +<h3 class="relative group">Foreword + <div id="foreword" class="anchor"></div> + + <span + class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> + <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" + style="text-decoration-line: none !important;" href="#foreword" aria-label="Anchor">#</a> + </span> + +</h3> +<p>The schedule management software discussed in this article refers to software with the following features:</p> + + + + + diff --git a/en/tags/report/page/1/index.html b/en/tags/report/page/1/index.html new file mode 100644 index 0000000..5bdb85b --- /dev/null +++ b/en/tags/report/page/1/index.html @@ -0,0 +1,10 @@ + + + + https://morethan987.github.io/en/tags/report/ + + + + + + diff --git a/en/tags/schedule/index.html b/en/tags/schedule/index.html new file mode 100644 index 0000000..0b83c48 --- /dev/null +++ b/en/tags/schedule/index.html @@ -0,0 +1,1130 @@ + + + + + + + + + + Schedule · More's awesome website + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + + + + + +
+
+ + + +
+
+ + + + + + + + + + + + + + + +
+ + + + +
+ + + +
+
+
+
+
+ +
+ + +
+ +

Schedule

+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + +
+ + + + + + +
+ +
+ + + + + + Draft + + + + + +
+ + +
Schedule Management Report
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·6 mins· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + Schedule + + + + + + + + Report + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + +
+ + + + + + + + + + + +
+ + + + + + +
+ + + +

+ © + 2025 + Morethan +

+ + + + +

+ + + Powered by Hugo & Blowfish +

+ + +
+ + + + + + + + +
+ + +
+ + + diff --git a/en/tags/schedule/index.xml b/en/tags/schedule/index.xml new file mode 100644 index 0000000..20198b3 --- /dev/null +++ b/en/tags/schedule/index.xml @@ -0,0 +1,41 @@ + + + + Schedule on More's awesome website + https://morethan987.github.io/en/tags/schedule/ + Recent content in Schedule on More's awesome website + Hugo -- gohugo.io + en + morthan@qq.com (Morethan) + morthan@qq.com (Morethan) + © 2025 Morethan + Mon, 27 Jan 2025 00:00:00 +0000 + + + Schedule Management Report + https://morethan987.github.io/en/blog/schedule-management-report/ + Mon, 27 Jan 2025 00:00:00 +0000 + morthan@qq.com (Morethan) + https://morethan987.github.io/en/blog/schedule-management-report/ + <div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"> + A Schedule Management Software Functionality Analysis Report. +</div> + + + +<h3 class="relative group">Foreword + <div id="foreword" class="anchor"></div> + + <span + class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> + <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" + style="text-decoration-line: none !important;" href="#foreword" aria-label="Anchor">#</a> + </span> + +</h3> +<p>The schedule management software discussed in this article refers to software with the following features:</p> + + + + + diff --git a/en/tags/schedule/page/1/index.html b/en/tags/schedule/page/1/index.html new file mode 100644 index 0000000..b4861b5 --- /dev/null +++ b/en/tags/schedule/page/1/index.html @@ -0,0 +1,10 @@ + + + + https://morethan987.github.io/en/tags/schedule/ + + + + + + diff --git a/img/featured.svg b/img/featured.svg new file mode 100644 index 0000000..e4db6eb --- /dev/null +++ b/img/featured.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/index.html b/index.html index 853236c..70e4928 100644 --- a/index.html +++ b/index.html @@ -897,19 +897,27 @@

最近的文章

- +
-
+
+ + + + 草稿 + + + +
代码协同方案
+ href="/blog/schedule-management-report/">日程管理项目分析
@@ -929,8 +937,6 @@

最近的文章

- - @@ -956,7 +962,7 @@

最近的文章

- ··4 分钟· + ·5 分钟· @@ -972,7 +978,7 @@

最近的文章

- loading + loading @@ -997,7 +1003,7 @@

最近的文章

- loading @@ -1050,18 +1056,18 @@

最近的文章

- + - MATLAB + 报告 - + - CUMCM + 日程管理 @@ -1087,11 +1093,11 @@

最近的文章

-
+
-
+
@@ -1099,7 +1105,7 @@

最近的文章

MySQL基础
+ href="/blog/code-collaboration-scheme/">代码协同方案
@@ -1119,6 +1125,8 @@

最近的文章

+ + @@ -1144,7 +1152,7 @@

最近的文章

- ·4 分钟· + ··4 分钟· @@ -1160,7 +1168,7 @@

最近的文章

- loading + loading @@ -1185,7 +1193,7 @@

最近的文章

- loading @@ -1238,10 +1246,18 @@

最近的文章

- + - MySQL + MATLAB + + + + + + + + CUMCM @@ -1267,11 +1283,11 @@

最近的文章

-
+
-
+
@@ -1279,7 +1295,7 @@

最近的文章

笔记转博客项目分析报告
+ href="/blog/mysql-basics/">MySQL基础
@@ -1299,8 +1315,6 @@

最近的文章

- - @@ -1326,7 +1340,7 @@

最近的文章

- ··8 分钟· + ·4 分钟· @@ -1342,7 +1356,7 @@

最近的文章

- loading + loading @@ -1367,7 +1381,7 @@

最近的文章

- loading @@ -1420,26 +1434,10 @@

最近的文章

- - - - Hugo - - - - - - - - 博客 - - - - - + - 报告 + MySQL @@ -1465,11 +1463,11 @@

最近的文章

-
+
-
+
@@ -1477,7 +1475,7 @@

最近的文章

Hugo博客搭建
+ href="/blog/note-to-blog-report/">笔记转博客项目分析报告
@@ -1497,6 +1495,8 @@

最近的文章

+ + @@ -1522,7 +1522,7 @@

最近的文章

- ·5 分钟· + ··8 分钟· @@ -1538,7 +1538,7 @@

最近的文章

- loading + loading @@ -1563,7 +1563,7 @@

最近的文章

- loading @@ -1632,6 +1632,14 @@

最近的文章

+ + + + 报告 + + + + @@ -1653,11 +1661,11 @@

最近的文章

-
+
-
+
@@ -1665,7 +1673,7 @@

最近的文章

一次写插件经历
+ href="/blog/hugo-blog/">Hugo博客搭建
@@ -1710,7 +1718,7 @@

最近的文章

- ·3 分钟· + ·5 分钟· @@ -1726,7 +1734,7 @@

最近的文章

- loading + loading @@ -1751,7 +1759,7 @@

最近的文章

- loading @@ -1804,10 +1812,18 @@

最近的文章

- + - 经历 + Hugo + + + + + + + + 博客 @@ -1833,27 +1849,19 @@

最近的文章

-
+
-
+
- - - - 草稿 - - - -
关于莫拉维克悖论的思考
+ href="/blog/plugin-writing-experience/">一次写插件经历
@@ -1898,7 +1906,7 @@

最近的文章

- ·3 分钟· + ·3 分钟· @@ -1914,7 +1922,7 @@

最近的文章

- loading + loading @@ -1939,7 +1947,7 @@

最近的文章

- loading @@ -1992,18 +2000,10 @@

最近的文章

- - - - AI - - - - - + - 遐想 + 经历 @@ -2157,19 +2157,27 @@

最近的文章

-
+
-
+
+ + + + 草稿 + + + +
代码协同方案
+ href="/blog/schedule-management-report/">日程管理项目分析
@@ -2189,8 +2197,6 @@

最近的文章

- - @@ -2216,7 +2222,7 @@

最近的文章

- ··4 分钟· + ·5 分钟· @@ -2232,7 +2238,7 @@

最近的文章

- loading + loading @@ -2257,7 +2263,7 @@

最近的文章

- loading @@ -2310,18 +2316,18 @@

最近的文章

- + - MATLAB + 报告 - + - CUMCM + 日程管理 @@ -2347,11 +2353,11 @@

最近的文章

-
+
-
+
@@ -2359,7 +2365,7 @@

最近的文章

MySQL基础
+ href="/blog/code-collaboration-scheme/">代码协同方案
@@ -2379,6 +2385,8 @@

最近的文章

+ + @@ -2404,7 +2412,7 @@

最近的文章

- ·4 分钟· + ··4 分钟· @@ -2420,7 +2428,7 @@

最近的文章

- loading + loading @@ -2445,7 +2453,7 @@

最近的文章

- loading @@ -2498,10 +2506,18 @@

最近的文章

- + - MySQL + MATLAB + + + + + + + + CUMCM @@ -2527,11 +2543,11 @@

最近的文章

-
+
-
+
@@ -2539,7 +2555,7 @@

最近的文章

笔记转博客项目分析报告
+ href="/blog/mysql-basics/">MySQL基础
@@ -2559,8 +2575,6 @@

最近的文章

- - @@ -2586,7 +2600,7 @@

最近的文章

- ··8 分钟· + ·4 分钟· @@ -2602,7 +2616,7 @@

最近的文章

- loading + loading @@ -2627,7 +2641,7 @@

最近的文章

- loading @@ -2680,26 +2694,10 @@

最近的文章

- - - - Hugo - - - - - - - - 博客 - - - - - + - 报告 + MySQL @@ -2725,11 +2723,11 @@

最近的文章

-
+
-
+
@@ -2737,7 +2735,7 @@

最近的文章

Hugo博客搭建
+ href="/blog/note-to-blog-report/">笔记转博客项目分析报告
@@ -2757,6 +2755,8 @@

最近的文章

+ + @@ -2782,7 +2782,7 @@

最近的文章

- ·5 分钟· + ··8 分钟· @@ -2798,7 +2798,7 @@

最近的文章

- loading + loading @@ -2823,7 +2823,7 @@

最近的文章

- loading @@ -2892,6 +2892,14 @@

最近的文章

+ + + + 报告 + + + + @@ -2913,11 +2921,11 @@

最近的文章

-
+
-
+
@@ -2925,7 +2933,7 @@

最近的文章

一次写插件经历
+ href="/blog/hugo-blog/">Hugo博客搭建
@@ -2970,7 +2978,7 @@

最近的文章

- ·3 分钟· + ·5 分钟· @@ -2986,7 +2994,7 @@

最近的文章

- loading + loading @@ -3011,7 +3019,7 @@

最近的文章

- loading @@ -3064,10 +3072,18 @@

最近的文章

- + - 经历 + Hugo + + + + + + + + 博客 @@ -3093,27 +3109,19 @@

最近的文章

-
+
-
+
- - - - 草稿 - - - -
关于莫拉维克悖论的思考
+ href="/blog/plugin-writing-experience/">一次写插件经历
@@ -3158,7 +3166,7 @@

最近的文章

- ·3 分钟· + ·3 分钟· @@ -3174,7 +3182,7 @@

最近的文章

- loading + loading @@ -3199,7 +3207,7 @@

最近的文章

- loading @@ -3252,18 +3260,10 @@

最近的文章

- - - - AI - - - - - + - 遐想 + 经历 @@ -3398,19 +3398,27 @@

最近的文章

-
+
-
+
+ + + + 草稿 + + + +
代码协同方案
+ href="/blog/schedule-management-report/">日程管理项目分析
@@ -3430,8 +3438,6 @@

最近的文章

- - @@ -3457,7 +3463,7 @@

最近的文章

- ··4 分钟· + ·5 分钟· @@ -3473,7 +3479,7 @@

最近的文章

- loading + loading @@ -3498,7 +3504,7 @@

最近的文章

- loading @@ -3551,18 +3557,18 @@

最近的文章

- + - MATLAB + 报告 - + - CUMCM + 日程管理 @@ -3588,11 +3594,11 @@

最近的文章

-
+
-
+
@@ -3600,7 +3606,7 @@

最近的文章

MySQL基础
+ href="/blog/code-collaboration-scheme/">代码协同方案
@@ -3620,6 +3626,8 @@

最近的文章

+ + @@ -3645,7 +3653,7 @@

最近的文章

- ·4 分钟· + ··4 分钟· @@ -3661,7 +3669,7 @@

最近的文章

- loading + loading @@ -3686,7 +3694,7 @@

最近的文章

- loading @@ -3739,10 +3747,18 @@

最近的文章

- + - MySQL + MATLAB + + + + + + + + CUMCM @@ -3768,11 +3784,11 @@

最近的文章

-
+
-
+
@@ -3780,7 +3796,7 @@

最近的文章

笔记转博客项目分析报告
+ href="/blog/mysql-basics/">MySQL基础
@@ -3800,8 +3816,6 @@

最近的文章

- - @@ -3827,7 +3841,7 @@

最近的文章

- ··8 分钟· + ·4 分钟· @@ -3843,7 +3857,7 @@

最近的文章

- loading + loading @@ -3868,7 +3882,7 @@

最近的文章

- loading @@ -3921,26 +3935,10 @@

最近的文章

- - - - Hugo - - - - - - - - 博客 - - - - - + - 报告 + MySQL @@ -3966,11 +3964,11 @@

最近的文章

-
+
-
+
@@ -3978,7 +3976,7 @@

最近的文章

Hugo博客搭建
+ href="/blog/note-to-blog-report/">笔记转博客项目分析报告
@@ -3998,6 +3996,8 @@

最近的文章

+ + @@ -4023,7 +4023,7 @@

最近的文章

- ·5 分钟· + ··8 分钟· @@ -4039,7 +4039,7 @@

最近的文章

- loading + loading @@ -4064,7 +4064,7 @@

最近的文章

- loading @@ -4133,6 +4133,14 @@

最近的文章

+ + + + 报告 + + + + @@ -4154,11 +4162,11 @@

最近的文章

-
+
-
+
@@ -4166,7 +4174,7 @@

最近的文章

一次写插件经历
+ href="/blog/hugo-blog/">Hugo博客搭建
@@ -4211,7 +4219,7 @@

最近的文章

- ·3 分钟· + ·5 分钟· @@ -4227,7 +4235,7 @@

最近的文章

- loading + loading @@ -4252,7 +4260,7 @@

最近的文章

- loading @@ -4305,10 +4313,18 @@

最近的文章

- + - 经历 + Hugo + + + + + + + + 博客 @@ -4334,27 +4350,19 @@

最近的文章

-
+
-
+
- - - - 草稿 - - - -
关于莫拉维克悖论的思考
+ href="/blog/plugin-writing-experience/">一次写插件经历
@@ -4399,7 +4407,7 @@

最近的文章

- ·3 分钟· + ·3 分钟· @@ -4415,7 +4423,7 @@

最近的文章

- loading + loading @@ -4440,7 +4448,7 @@

最近的文章

- loading @@ -4493,18 +4501,10 @@

最近的文章

- - - - AI - - - - - + - 遐想 + 经历 @@ -4601,19 +4601,27 @@

最近的文章

-
+
-
+
+ + + + 草稿 + + + +
代码协同方案
+ href="/blog/schedule-management-report/">日程管理项目分析
@@ -4633,8 +4641,6 @@

最近的文章

- - @@ -4660,7 +4666,7 @@

最近的文章

- ··4 分钟· + ·5 分钟· @@ -4676,7 +4682,7 @@

最近的文章

- loading + loading @@ -4701,7 +4707,7 @@

最近的文章

- loading @@ -4754,18 +4760,18 @@

最近的文章

- + - MATLAB + 报告 - + - CUMCM + 日程管理 @@ -4791,11 +4797,11 @@

最近的文章

-
+
-
+
@@ -4803,7 +4809,7 @@

最近的文章

MySQL基础
+ href="/blog/code-collaboration-scheme/">代码协同方案
@@ -4823,6 +4829,8 @@

最近的文章

+ + @@ -4848,7 +4856,7 @@

最近的文章

- ·4 分钟· + ··4 分钟· @@ -4864,7 +4872,7 @@

最近的文章

- loading + loading @@ -4889,7 +4897,7 @@

最近的文章

- loading @@ -4942,10 +4950,18 @@

最近的文章

- + - MySQL + MATLAB + + + + + + + + CUMCM @@ -4971,11 +4987,11 @@

最近的文章

-
+
-
+
@@ -4983,7 +4999,7 @@

最近的文章

笔记转博客项目分析报告
+ href="/blog/mysql-basics/">MySQL基础
@@ -5003,8 +5019,6 @@

最近的文章

- - @@ -5030,7 +5044,7 @@

最近的文章

- ··8 分钟· + ·4 分钟· @@ -5046,7 +5060,7 @@

最近的文章

- loading + loading @@ -5071,7 +5085,7 @@

最近的文章

- loading @@ -5124,26 +5138,10 @@

最近的文章

- - - - Hugo - - - - - - - - 博客 - - - - - + - 报告 + MySQL @@ -5169,11 +5167,11 @@

最近的文章

-
+
-
+
@@ -5181,7 +5179,7 @@

最近的文章

Hugo博客搭建
+ href="/blog/note-to-blog-report/">笔记转博客项目分析报告
@@ -5201,6 +5199,8 @@

最近的文章

+ + @@ -5226,7 +5226,7 @@

最近的文章

- ·5 分钟· + ··8 分钟· @@ -5242,7 +5242,7 @@

最近的文章

- loading + loading @@ -5267,7 +5267,7 @@

最近的文章

- loading @@ -5336,6 +5336,14 @@

最近的文章

+ + + + 报告 + + + + @@ -5357,11 +5365,11 @@

最近的文章

-
+
-
+
@@ -5369,7 +5377,7 @@

最近的文章

一次写插件经历
+ href="/blog/hugo-blog/">Hugo博客搭建
@@ -5414,7 +5422,7 @@

最近的文章

- ·3 分钟· + ·5 分钟· @@ -5430,7 +5438,7 @@

最近的文章

- loading + loading @@ -5455,7 +5463,7 @@

最近的文章

- loading @@ -5508,10 +5516,18 @@

最近的文章

- + - 经历 + Hugo + + + + + + + + 博客 @@ -5537,27 +5553,19 @@

最近的文章

-
+
-
+
- - - - 草稿 - - - -
关于莫拉维克悖论的思考
+ href="/blog/plugin-writing-experience/">一次写插件经历
@@ -5602,7 +5610,7 @@

最近的文章

- ·3 分钟· + ·3 分钟· @@ -5618,7 +5626,7 @@

最近的文章

- loading + loading @@ -5643,7 +5651,7 @@

最近的文章

- loading @@ -5696,18 +5704,10 @@

最近的文章

- - - - AI - - - - - + - 遐想 + 经历 @@ -5780,19 +5780,27 @@

最近的文章

-
+
-
+
+ + + + 草稿 + + + +
代码协同方案
+ href="/blog/schedule-management-report/">日程管理项目分析
@@ -5812,8 +5820,6 @@

最近的文章

- - @@ -5839,7 +5845,7 @@

最近的文章

- ··4 分钟· + ·5 分钟· @@ -5855,7 +5861,7 @@

最近的文章

- loading + loading @@ -5880,7 +5886,7 @@

最近的文章

- loading @@ -5933,18 +5939,18 @@

最近的文章

- + - MATLAB + 报告 - + - CUMCM + 日程管理 @@ -5970,11 +5976,11 @@

最近的文章

-
+
-
+
@@ -5982,7 +5988,7 @@

最近的文章

MySQL基础
+ href="/blog/code-collaboration-scheme/">代码协同方案
@@ -6002,6 +6008,8 @@

最近的文章

+ + @@ -6027,7 +6035,7 @@

最近的文章

- ·4 分钟· + ··4 分钟· @@ -6043,7 +6051,7 @@

最近的文章

- loading + loading @@ -6068,7 +6076,7 @@

最近的文章

- loading @@ -6121,10 +6129,18 @@

最近的文章

- + - MySQL + MATLAB + + + + + + + + CUMCM @@ -6150,11 +6166,11 @@

最近的文章

-
+
-
+
@@ -6162,7 +6178,7 @@

最近的文章

笔记转博客项目分析报告
+ href="/blog/mysql-basics/">MySQL基础
@@ -6182,8 +6198,6 @@

最近的文章

- - @@ -6209,7 +6223,7 @@

最近的文章

- ··8 分钟· + ·4 分钟· @@ -6225,7 +6239,7 @@

最近的文章

- loading + loading @@ -6250,7 +6264,7 @@

最近的文章

- loading @@ -6303,26 +6317,10 @@

最近的文章

- - - - Hugo - - - - - - - - 博客 - - - - - + - 报告 + MySQL @@ -6348,11 +6346,11 @@

最近的文章

-
+
-
+
@@ -6360,7 +6358,7 @@

最近的文章

Hugo博客搭建
+ href="/blog/note-to-blog-report/">笔记转博客项目分析报告
@@ -6380,6 +6378,8 @@

最近的文章

+ + @@ -6405,7 +6405,7 @@

最近的文章

- ·5 分钟· + ··8 分钟· @@ -6421,7 +6421,7 @@

最近的文章

- loading + loading @@ -6446,7 +6446,7 @@

最近的文章

- loading @@ -6515,6 +6515,14 @@

最近的文章

+ + + + 报告 + + + + @@ -6536,11 +6544,11 @@

最近的文章

-
+
-
+
@@ -6548,7 +6556,7 @@

最近的文章

一次写插件经历
+ href="/blog/hugo-blog/">Hugo博客搭建
@@ -6593,7 +6601,7 @@

最近的文章

- ·3 分钟· + ·5 分钟· @@ -6609,7 +6617,7 @@

最近的文章

- loading + loading @@ -6634,7 +6642,7 @@

最近的文章

- loading @@ -6687,10 +6695,18 @@

最近的文章

- + - 经历 + Hugo + + + + + + + + 博客 @@ -6716,27 +6732,19 @@

最近的文章

-
+
-
+
- - - - 草稿 - - - -
关于莫拉维克悖论的思考
+ href="/blog/plugin-writing-experience/">一次写插件经历
@@ -6781,7 +6789,7 @@

最近的文章

- ·3 分钟· + ·3 分钟· @@ -6797,7 +6805,7 @@

最近的文章

- loading + loading @@ -6822,7 +6830,7 @@

最近的文章

- loading @@ -6875,18 +6883,10 @@

最近的文章

- - - - AI - - - - - + - 遐想 + 经历 diff --git a/index.json b/index.json index db2e2d9..33c6ed9 100644 --- a/index.json +++ b/index.json @@ -1,4 +1,4 @@ -[{"content":" 总结 CUMCM2024 比赛经验,针对数学建模国赛 A 题和MATLAB改进的代码协同方案 流程概览 # graph LR; id1(\"工作分配\")--\u003eid2(\"VS Code协同\")--\u003eid3(\"MATLAB代码执行\"); 工作分配 # 主要有两个要点:\n划分为两个部分,一个主要部分和次要部分; 划分的任务之间不要有依赖关系 代码协同 # 软件工具 # VS Code 编辑器,以及 Live Server 插件,MATLAB 插件\nMATLAB\n命名规范 # 主函数统一命名为 main:能够直接计算出最终答案的叫主函数,其他的都叫辅助函数 数据加工代码:数据加工代码指的是没有任何返回值,仅仅产生数据表格的代码,用 data 开头,例如:将太阳高度角 \\(\\phi\\) 转化为余弦值,dataCosPhi 内部数据转换代码,用 to 连接,例如将自然坐标系中点的坐标转化为直角坐标系中点的坐标 StoXY 绘图代码:绘制图形的代码,用 fig 开头 测试代码:test 开头 其余需要特殊定义的代码:根据功能,返回布尔值的用 is 开头,如判断碰撞函数 isCollided;返回其他数据的用 get 开头 文件说明注释 # 除了上面命名规范里面提及的一些常见类型的文件不用添加参数外,即 data,test,fig,main 这四个,其余的都应该在文件内添加说明性注释;\n简明而清晰的文件说明注释:文件说明一般在文件开头,包含函数功能概述、函数接受参数、函数输出参数三个主要部分\n实在不会写,用 AI 帮助就行;\n内部变量命名 # 统一的固定参数 # 所有固定的参数全部都放置到根目录下的一个 config.m 文件中,进行统一管理,每个参数后面请添加注释说明,例如:\nlearningRate = 0.001; % 学习率 batchSize = 32; % 每批输入的数据量 numEpochs = 100; % 迭代次数 在其他代码中引用这个配置文件只需要加入代码:\nrun(\u0026#39;config.m\u0026#39;); 尽管参数被转移到了其他地方但是 VS Code 仍然能够进行自动检测并给出补全提示! 函数内部使用的参数 # 函数内部所有使用的变量都应该在主程序开始之前明确定义,并在变量后添加简要的中文注释;\n如果有一些表达相同含义的参数在多个文件中使用,请使用统一的命名,尤其是 AI 生成的代码,请在 VS Code 中使用 F2 进行重命名 代码格式化 # 代码的格式化主要通过官方的 MATLAB 插件来执行。安装插件之后,按快捷键 Shift+Alt+F 即可格式化代码。\nGit 版本控制 # 这里需要新建一个 GitHub 代码仓库来存放整个项目文件。尽管使用了 Live Server 插件能够更加快速地执行代码协同,但是仍然需要在一些重要的开发结点进行提交保存,保留代码的回滚能力。\n所有的 Git 版本控制操作都在代码负责人的电脑上操作,其他辅助编程人员使用 Live Server 插件进行更实时的代码协同。\n本地 commit 保存小改进 push 操作以小题为单位进行,保存重大进展 代码执行 # 感谢官方对于 MATLAB 插件的更新支持,最新的插件能够在 VS Code 编辑器中直接运和调试行代码。尽管有些限制,但瑕不掩瑜。\n其他 # AI 指令集 # 由于生成式 AI 的代码规范可能与项目不同,因此如果有生成一整个文件的需求,请在你的指令之前添加如下的代码规范指令:\n你是一个成熟而规范的MATLAB程序员,在正确实现用户目标的前提下,遵守以下代码规范: 1. 简明而清晰的文件说明注释:文件说明一般在文件开头,包含函数功能概述、函数接受参数、函数输出参数三个主要部分 2. 函数内部的变量命名应当简明易读 3. 函数内部所有使用的变量都应该在主程序开始之前明确定义,并在变量后添加简要的中文注释 用户指令: 配套样例项目 # 为了能够快速、规范地启动工程项目,我创建了一个样例项目,里面包含了所有上文提及的代码规范,可以直接对这个项目进行修改,省去了记忆的苦恼😄\n代码技巧 # 并行运行 MATLAB 能够支持多线程计算,仅需将一般的 for 循环改写为 parfor 即可 parfor 函数的执行要求十分严格,具体参阅官方说明 大型表格处理 # 模型计算的输出往往是一个超大型数据表格,并且存储在 .mat 文件中,难以进行数据的快速提取。\n直接编写了一个简单的 Python 脚本来进行大型表格数据的提取操作:数据提取器\n同时配合 LaTeX 在线表格编辑网站,能够实现在论文中快速插入表格数据。\n","date":"2025-01-16","externalUrl":null,"permalink":"/blog/code-collaboration-scheme/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n 总结 CUMCM2024 比赛经验,针对数学建模国赛 A 题和MATLAB改进的代码协同方案\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003e流程概览 \n \u003cdiv id=\"%E6%B5%81%E7%A8%8B%E6%A6%82%E8%A7%88\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E6%B5%81%E7%A8%8B%E6%A6%82%E8%A7%88\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cdiv class=\"mermaid\" align=\"center\"\u003e\n \ngraph LR;\nid1(\"工作分配\")--\u003eid2(\"VS Code协同\")--\u003eid3(\"MATLAB代码执行\");\n\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003e工作分配 \n \u003cdiv id=\"%E5%B7%A5%E4%BD%9C%E5%88%86%E9%85%8D\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%B7%A5%E4%BD%9C%E5%88%86%E9%85%8D\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003e主要有两个要点:\u003c/p\u003e","title":"代码协同方案","type":"blog"},{"content":" MySQL 安装部署流程 + 简明语法 CookBook + 学习笔记 信息源 # SQL教程 - 廖雪峰的官方网站 非常非常亲民的 MySQL 教程网站,内置了一个网页版的数据库,方便新手同志们直观了解 MySQL数据库的操作,对于 SQL 的整个背景也有简洁但必要的表述。 安装 MySQL # 安装 MySQL 最简单的方法就是通过 Docker Desktop 来操作;只需要两步就能够完成\n命令行中运行:\ndocker pull mysql 初始化 SQL 并运行:\ndocker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -v /Users/liaoxuefeng/mysql-data:/var/lib/mysql mysql 参数解释:\n参数 含义 -d 表示后台运行 --name 表示容器的名字,不输入 Docker 会自动选择一个名字 -p 3306:3306 表示把容器的端口 3306 映射到本机,这样可以在本机通过 3306 端口连接 MySQL -e MYSQL_ROOT_PASSWORD=password 表示传入一个环境变量,作为root的口令,这里设置的口令是 password,不输入此项则会自动生成一个口令,需要查看日志才能知道口令,建议设置 -v /path:/var/lib/mysql 表示将本地目录映射到容器目录 /var/lib/mysql 作为 MySQL 数据库存放的位置,需要将 /path 改为你的电脑上的实际目录 mysql 告诉 Docker 你要运行的镜像的名称 使用 Docker 运行 MySQL 时,任何时候都可以删除 MySQL 容器并重新运行;如果删除了本地映射的目录,重新运行就相当于一个全新的 MySQL ; MySQL 基础语法 # 查询 # 注释语法:\n-- 这是一条注释 基本查询语法:\nSELECT * FROM \u0026lt;表名\u0026gt;; 条件查询:\nSELECT * FROM \u0026lt;表名\u0026gt; WHERE \u0026lt;条件表达式\u0026gt;; 其中条件表达式内部还可以使用各种逻辑运算关键词,如:AND,NOT,OR\n投影查询:\nSELECT \u0026lt;列1\u0026gt;, \u0026lt;列2\u0026gt;, \u0026lt;列3\u0026gt; FROM \u0026lt;表名\u0026gt;; SELECT \u0026lt;列1\u0026gt; 别名1, \u0026lt;列2\u0026gt; 别名2, \u0026lt;列3\u0026gt; 别名3 FROM \u0026lt;表名\u0026gt;; 排序:\n-- 按score从低到高: SELECT id, name, gender, score FROM students ORDER BY score; -- 按score从高到低: SELECT id, name, gender, score FROM students ORDER BY score DESC; -- 按score, gender排序: SELECT id, name, gender, score FROM students ORDER BY score DESC, gender; -- 带WHERE条件的ORDER BY: SELECT id, name, gender, score FROM students WHERE class_id = 1 ORDER BY score DESC; 分页查询:\n-- 查询第1页: SELECT id, name, gender, score FROM students ORDER BY score DESC LIMIT 3 OFFSET 0; -- 从第0条记录开始查,往后查最多3条,也可以不足3条 聚合查询,利用 MySQL 中的聚合函数来查询:\n-- 使用聚合查询, 查询记录的总条数: SELECT COUNT(*) FROM students; -- 使用聚合查询并设置结果集的列名为num: SELECT COUNT(*) num FROM students; -- 使用聚合查询并设置WHERE条件: SELECT COUNT(*) boys FROM students WHERE gender = \u0026#39;M\u0026#39;; 虽然 COUNT(*) 的结果是一个标量,但是返回仍然是一个二维表格,只是表格只有一行一列 另外还有一些常用的聚合函数:MAX(),MIN(),AVG(),SUM() 等,与 COUNT() 类似\n分组聚合查询:\n-- 按class_id分组进行聚合查询, 类似于for循环: SELECT COUNT(*) num FROM students GROUP BY class_id; -- 注意这里没有选中class_id因此最后的结果表格没有id -- 按class_id分组, 并显示class_id: SELECT class_id, COUNT(*) num FROM students GROUP BY class_id; -- 多个分组标准, 例如按class_id, gender分组: SELECT class_id, gender, COUNT(*) num FROM students GROUP BY class_id, gender; 多表查询(笛卡尔查询):\n-- FROM students, classes: SELECT * FROM students, classes; -- 设置别名,同名列通过.操作服进行区分: SELECT students.id sid, students.name, students.gender, students.score, classes.id cid, classes.name cname FROM students, classes; -- 设置报个别名, 更清爽一点点: SELECT s.id sid, s.name, s.gender, s.score, c.id cid, c.name cname FROM students s, classes c; 多表查询的返回依然是一个二维数据表,但是这个数据表是通过笛卡尔积的形式组织的,因此也叫笛卡尔查询\n连接查询,类似于多表查询,但是两个表之间的组织关系不是通过笛卡尔积进行,而是选取一个为主表,将附表的内容进行连接:\n内连接,只有一种,修饰语为 INNER: -- 选出所有学生,同时返回班级名称: SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score FROM students s INNER JOIN classes c ON s.class_id = c.id; 外连接,有三种,修饰语为 RIGHT,LEFT,FULL: -- 使用RIGHT OUTER JOIN: SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score FROM students s RIGHT OUTER JOIN classes c ON s.class_id = c.id; 理解方法:通过集合的方式来理解\n-- 这里面tableA是主表, 也叫左表; tableB同理 SELECT ... FROM tableA ??? JOIN tableB ON tableA.column1 = tableB.column2; 修改 # 插入语法: -- 添加一条新记录: INSERT INTO students (class_id, name, gender, score) VALUES (2, \u0026#39;大牛\u0026#39;, \u0026#39;M\u0026#39;, 80); -- 一次性添加多条新记录: INSERT INTO students (class_id, name, gender, score) VALUES (1, \u0026#39;大宝\u0026#39;, \u0026#39;M\u0026#39;, 87), (2, \u0026#39;二宝\u0026#39;, \u0026#39;M\u0026#39;, 81), (3, \u0026#39;三宝\u0026#39;, \u0026#39;M\u0026#39;, 83); 更新: -- 更新id=1的记录: UPDATE students SET name=\u0026#39;大牛\u0026#39;, score=66 WHERE id=1; -- 更新score\u0026lt;80的记录: UPDATE students SET score=score+10 WHERE score\u0026lt;80; -- 更新id=999的记录, 没有匹配的记录所以什么都不会做: UPDATE students SET score=100 WHERE id=999; -- 不带WHERE语句的更新会作用在整张表上 UPDATE students SET score=60; 删除: -- 删除id=1的记录: DELETE FROM students WHERE id=1; -- 不带WHERE的删除操作会作用于整张表 DELETE FROM students; ","date":"2025-01-15","externalUrl":null,"permalink":"/blog/mysql-basics/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n MySQL 安装部署流程 + 简明语法 CookBook + 学习笔记\n\u003c/div\u003e\n\n\n\n\u003ch3 class=\"relative group\"\u003e信息源 \n \u003cdiv id=\"%E4%BF%A1%E6%81%AF%E6%BA%90\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E4%BF%A1%E6%81%AF%E6%BA%90\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://liaoxuefeng.com/books/sql/introduction/index.html\" target=\"_blank\"\u003eSQL教程 - 廖雪峰的官方网站\u003c/a\u003e\n非常非常亲民的 MySQL 教程网站,内置了一个网页版的数据库,方便新手同志们直观了解 MySQL数据库的操作,对于 SQL 的整个背景也有简洁但必要的表述。\u003c/li\u003e\n\u003c/ul\u003e\n\n\n\u003ch3 class=\"relative group\"\u003e安装 MySQL \n \u003cdiv id=\"%E5%AE%89%E8%A3%85-mysql\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%AE%89%E8%A3%85-mysql\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003e安装 MySQL 最简单的方法就是通过 Docker Desktop 来操作;只需要两步就能够完成\u003c/p\u003e","title":"MySQL基础","type":"blog"},{"content":" 熟悉项目分析流程,是一个练手性质的分析报告 我在初步完成自己的小插件之后才发现:笔记转博客这个领域似乎没有一个一键式解决方案,为此我写了这篇文章来分析是否要创建一个新的项目来填补这个空白。\n项目没有优劣之分,只有合适与否,这篇文章中涉及的评价标准都是围绕是否符合博客网页要求进行的,因此可能有些项目并不适合做博客网页,但是这丝毫不影响项目本身的价值。\n领域定义 # 在所有分析开始之前,需要对于笔记转博客这个领域有一个清晰的界定。\n笔记:此处的笔记特指 Obsidian 中的笔记,含有 Obsidian Flavored Markdown,这对笔记向网页转换的过程提出了不小的要求。\n博客:博客,顾名思义是一种获得流量的手段,创作者花费时间创作笔记,然后经由转换软件,生成排版精美、功能丰富的博客网页\n评价细则如下:\n隐私方面\n是否本地运行 是否开源 使用舒适性\n与 Obsidian 语法的适配程度 服务部署复杂程度 帮助文档撰写详细程度 个性化调整复杂设置 网页功能完整性\n默认配套网页的核心功能是否齐全(搜索、日间/夜间模式等) 默认网页美观程度 是否支持 SEO 对 Obsidian 原生语法的转化效果是否生硬(例如:展示性链接内是否存在不能翻译的代码块、是否舍弃部分 Obsidian 语法特性等) 项目概述 # 在我的设想中,这个项目的功能就是构建一个 Obsidian 插件,实现从 Obsidian 笔记到 Hugo 博客网页的无缝导出,支持 Obsidian 的所有基本核心功能。\n成效:大大降低了创建博客网页的成本,只要能够使用 Obsidian 就能够拥有属于自己的博客网页。\n市场和用户可行性分析 # 市场需求分析 # 概述 # 基本需求:搭建个人网站并持续输出的需求,包括自我提升、自我表达、创造独特全面的个人能力展示平台(对接企业招聘)等等\n目标用户群:重度 Obsidian 用户且有分享笔记的需求;想要搭建个人博客但是因为技术难度而放弃的知识创作者\n相关数据 # Flowershow:截至 2024 年 10 月插件下载量为 3355;截至 2025 年 1 月插件下载量为 4594,同时最高下载量的插件有 3211992 的下载量; Quartz 截至 2025 年 1 月收获 GitHub start 数量为 7.7k 已有方案 # Quartz # 推荐指数:❤️‍🔥❤️‍🔥❤️‍🔥❤️‍🔥❤️‍🔥\n介绍 # Quartz 是一个将 Obsidian 笔记转化为网页的工具集。Quartz 的最新版本是 v4 版本,相较于 v3 版本, v4 版本从底层完全重构了代码,去除了对于 Hugo 的依赖,优化了用户自定义的体验。目前 v4 版本主要使用 TypeScript 构建,原本 hugo 的 template 也改用 JSX 替换。\n因此,现在的 Quartz 几乎可以说和 Hugo 没什么关系了,但是目前国内的很多信息还是宣传 Quartz 的底层是 Hugo\n官方样例网站:Welcome to Quartz 4\n评述 # 优点\n功能非常非常完整 所有相关套件中唯一成功解决了展示性 wiki 链接的一个 配套文档很详细 缺点\n几乎没有缺点,唯一一个值得提点的地方就是没有中文的文档 总结:非常优秀的项目,所有在 Obsidian 内显示的样式就是网页中显示的样式,确实也收获了所有现成方案中最多的 GitHub start 数量\nFlowershow # 推荐指数:❤️‍🔥❤️‍🔥❤️‍🔥❤️‍🔥🩶\n介绍 # Flowershow 是一个基于 Obsidian 的整体发布服务,它可以将你的 Obsidian 笔记按照目录结构,转换为一个在线的数字花园网站。而 Vercel 是一个针对前端的云服务,它实现了通过 Github 免服务器快速部署前端服务,每次提交内容都会触发一次自动部署。Flowershow 的官方部署文件中需要使用 Vercel,国内使用可以考虑 Netlify 替换\n参考教程:Flowershow:免费的 Obsidian 笔记发布服务,实现你的数字花园网站\n主观上来讲,这个项目的主创团队是一支很有激情和使命感的队伍,关于 Flowershow 的简介里面包含了很多主创团队的核心理念。\n客观上来讲,Flowershow 的项目定位非常准确,就是一个基于 Obsidian 的博客网页生成平台,因此最终效果从前端和后端两个角度来说都是非常好的。\n评述 # 优点\n定位清晰,工作流程简洁明了 功能支持较为全面 背后有专业的团队进行运维 允许高度的自定义,适合喜欢个性化的创作者 缺点(一下信息均来自 2025 年 1 月)\n部分 Obsidian 的功能并没有处理,例如展示性的 wiki 链接并没有处理,至少介绍文档中跳过了这部分内容 仔细翻找了网站并没有发现反向链接的说明,但是首页信息显示能够支持反向链接 总结:总体上项目做的还是挺好,但是项目还在进行中,部分细节并不到位,对于 Obsidian 语法支持没有那么高要求的创作者就可以采用这个方案了\n官方发布 # 推荐指数:❤️‍🔥❤️‍🔥❤️‍🔥🩶🩶\n介绍 # 下面是几个样例网站:\nObsidian中文教程一个中文教程网站,使用了 Obsidian 官方的发布服务,里面里面可以体现一些功能,例如对于展示性链接的处理 Digital 3D Garden 有深度的前端界面自定义 mister chad 非常简洁工整的小站,内容很充实 Discrete Structures for Computer Science 神似官方的朴素风格 评述 # 优势\n官方发布的网页对于 Obsidian 内部表达的适配效果是一流的,Obsidian 内部所有的功能都能够成功在网页中展示;但是不清楚插件功能如何在网页中展示 有持续的维护服务,能够第一时间适配 Obsidian 的更新 支持高度的个性化设置,如果具有充足的代码经验,可以开发出相当精美的网页;同时还有大量的其他开发者开发的主题 隐私设置,网站能够设置密码,控制访问人员,可能用于企业内部文档管理 有 SEO 加持和移动平台适配,流量可能会更大一些 劣势\n每个月需要支付 8 美元,由于个人网站的流量相当小需要长期持有才会有明显的收益,因此这笔支出不是小数目,这是官方发布服务的致命缺陷 停止付费之后网页将不能被访问 国内的服务支持不佳,流量受限 总结:官方发布适合资金充裕,并且对于网站的自定义开发没有那么高需求的用户。\nDigital Garden # 推荐指数:❤️‍🔥❤️‍🔥❤️‍🔥🩶🩶\n介绍 # Digital Garden 是一款 Obsidian 插件,可以将笔记导出为网页并托管在 GitHub 上,然后再使用 Vercel 或者 Netlify 进行网页的发布。具体操作教程见 Digital Garden教程\n这里是几个样例网站:\nDigital Garden 官方样例 Aaron Youn 民间自制 John\u0026rsquo;s Digital Galaxy 非常丰富的内容,可以详细展示所有 Digital Garden 涉及的特性,特别是展示性链接循环嵌套 评述 # 优点\n功能支持较为全面 支持 Obsidian 的主题迁移 缺点\n对于中文路径不友好 网页界面自定义需要直接处理网页源码,即 HTML JavsScript CSS,并且默认配套的界面不太好看 总结:工作流程非常的简单,功能支持相当的全面,作为插件嵌入 Obsidian 更加轻便。虽然界面美化需要花些功夫,但如果对于界面美观与否并不在意,可以直接上手。\nPerlite # 推荐指数:❤️‍🔥❤️‍🔥🩶🩶🩶\n介绍 # Perlite 是一款网页版 Obsidian 文件阅读器,是 Obsidian 官方发布服务的开源平替。Obsidian Publish的开源替代品Perlite 这是微信公众号上的一个教程文本。\n这款开源平替最大的特点就是:其网页 UI 几乎和 Obsidian 的界面完全相同,提供近乎原生的浏览服务。\n评述 # 优点\n很好地支持几乎所有的 Obsidian 的功能 原生经典界面,给用户提供熟悉感 缺点\n不算是一个博客页面,官方对于项目的定位也确实不是博客网页而是一个“文件阅读器” 需要使用 Docker,启动缓慢,不如插件的那样的轻巧简洁的体验感 总结:Perlite 的定位决定了其并不适合直接用作展示性的博客页面,其界面实在是有点单调,对于访客的视觉吸引力其实并不强。更适合于作为一款网页版的 Obsidian,在上面进行文件的编辑可以更加专注,效果也更好\njekyll+Netlify+GitHub Pages # 推荐指数:❤️‍🔥❤️‍🔥🩶🩶🩶\n介绍 # 方法流程来源于 obsidian 目前最完美的免费发布方案 渐进式教程,教程内容很详细,既有基本的对比评价,也有详细的指导教程\n这是作者构建的例子网站:oldwinterの数字花园\n评述 # 优点\n配置简单 允许高度自定义 缺点\n部分 Obsidian 特色语法不支持,比如 callout 语法 不支持暗色模式 不支持搜索 总结:整体上是一个非常好的 Obsidian 转换为博客网页的实践,但是因为部分核心功能缺失因此并不适合想要完整的网页体验的创作者\nTiddlyWiki # 推荐指数:❤️‍🔥🩶🩶🩶🩶\n介绍 # TiddlyWiki 是一个历史悠久的笔记框架,至今依然有很强的生命力,许多开发者活跃在这个领域中。国内也有相关站点可以供访问:太微舞,以及配套教程:[太微中文教程](https://tw-cn.netlify.app /);国内的开发者在近年推出的衍生版本 TidGi(太记);\n利用Tiddlywiki发布Obsidian库这是一个将 Obsidian 发布到 TiddlyWiki 的流程性教程\n此外还有一些散落在互联网上的介绍和样例:\n了不起的“活笔记”系统:TiddlyWiki(太微笔记) - 少数派非常好的一片笔记文章,真正意义上的一文秒懂 TiddlyWiki;文章作者自己的笔记网站:MRIWiki.cn — 磁共振百科知识太微笔记 [太微中文教程](https://tw-cn.netlify.app /)教程本身就是利用 TiddlyWiki 编写的,可以查看 TiddlyWiki 的使用效果 评述 # 优势\n极致的简洁性与轻量化,可以说没有任何其他的个人网页比它更简单! 经过历史的筛选,拥有广泛的用户群体 成熟的国内服务,不需要科学上网就能够访问 劣势\n由于极致的简洁,导致网页看上去可能有点原始 不算完全的个人博客,其完全不迎合主流搜索引擎,直接靠搜索根本无法访问,难以获得流量(也是我撰写这篇文章之前从未听闻的原因😢) 总结:TiddlyWiki 的确是一个非常简洁和轻量化的笔记框架,这也吸引了很多的用户;但也正是因为其定位并非博客网页,所以导致用户的内容封闭在 TiddlyWiki 社区内部,甚至是封闭在创作者自己手中,无法转化为流量,并不适合有流量需求的创作者,而更加适合作为一个简单纯粹的笔记存储库\n结论 # 在经过完整的分析之前,我并不了解笔记转博客这个领域内部的实际情况,因此萌生了想做一个简化插件项目的想法💡\n但是经过系统性的调查研究,我必须承认 Quartz 确实是这个领域内出类拔萃的项目,无论从 Obsidian 语法适配性、配置流程便捷程度、前端配套界面美观程度、前端界面自定义便捷程度、后端撰写博客便捷程度等等各种方面,几乎都没有上升空间了。\n因此也就不需要我再去启动一个项目来做重复的事情了。在这里向所有笔记转博客领域内的相关项目的开发团队致敬🫡不管是否在文章中提及。\n项目没有优劣之分,只有合适与否,这篇文章中涉及的评价标准都是围绕是否符合博客网页要求进行的,因此可能有些项目并不适合做博客网页,但是这丝毫不影响项目本身的价值。\n向开源先锋致敬🫡🫡🫡\n","date":"2025-01-10","externalUrl":null,"permalink":"/blog/note-to-blog-report/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n 熟悉项目分析流程,是一个练手性质的分析报告\n\u003c/div\u003e\n\n\u003cp\u003e我在初步完成自己的\u003ca href=\"https://morethan987.github.io/blog/plugin-writing-experience/\"\u003e小插件\u003c/a\u003e之后才发现:\u003cstrong\u003e笔记转博客\u003c/strong\u003e这个领域似乎没有一个一键式解决方案,为此我写了这篇文章来分析是否要创建一个新的项目来填补这个空白。\u003c/p\u003e","title":"笔记转博客项目分析报告","type":"blog"},{"content":" 博客网站折腾日志,从手搓到 Hugo 的曲折经历。 为什么 Hugo # 最初也只是因为偶然间听说了 Hugo 可以做网页,并且听说编译静态页面非常高效,于是才去搜集的相关资料——据说 Hugo 是世界上最快的静态页面生成器,官方网站也是这么写的。\n当然,口说无凭,下面就是我初次本地编译运行 Hugo 得到的输出,即在完全没有 public 文件夹的情况下的输出:\nZH-CN EN Pages 53 51 Paginator pages 0 0 Non-page files 13 13 Static files 7 7 Processed images 3 0 Aliases 18 17 Cleaned 0 0 Built in 872 ms\n中英文总共 104 个网页页面花费时间 0.872 秒,并且包含构建本地服务的时间,这个速度确实没什么好挑剔的了。并且本地的服务能够实时监听源代码的改动并进行增量重构,这个增量重构的时间取决于改动的多少,一般在 0.03 秒左右。\n我并没有用别的网页生成工具搭建过博客,因此无法给出其他生成器的实际生成速度 参考引用 # 下面是我在搭建博客的过程中所用到的所有资源链接:\n莱特雷-letere 这是一位博主的网页,也是用 Hugo 搭建的,里面同时也有很多其他的网页工具的教程;这是他在 B 站上发布的系列视频教程 Blowfish 这是我使用的一款 Hugo 主题,文档写的相当的好,真的没见过如此耐心的作者。 Hugo官方网页 Hugo Themes 部署全流程 # 搭建 Hugo 环境 # 这一部分在那位博主的网页和视频教程中都有非常详细的讲解,不喜欢看文字的可以去看视频😝\n说实话,Hugo 的环境搭建真的是我见过的最简单的,没有之一。你只需要到 Hugo官方网页去把 Hugo 下载下来,然后存放到合适的文件夹里面,然后解压就完成了,解压之后的文件夹内也只有一个 hugo.exe 文件,简直不要太简单。\nHugo 真的是太方便了,我曾经尝试过 Hexo 但是 Node.js 的配置就把我拒之门外了,到现在我也不知道为什么会编译报错😢 稍微需要那么一点点🤏难度的工作其实就是把 hugo.exe 所在的目录添加到环境变量里面去。\n生成模版系统 # 在 hugo.exe 的目录中打开终端,然后输入命令 hugo new site your-site-name,然后就可以看到一个新的文件夹📂出现在了当前文件夹里面。\n模板系统听着很高级,其实就是在你的 hugo.exe 的同级目录下面建一个文件夹,但是里面的所有文件夹都有特殊的含义,不能随便改动。\n名称 含义 asset 存放网站结构用到的图片,图标等资产 config 网站配置文件夹(初始时可能没有,有些主题需要) hugo.toml 网站配置文件之一 content 所有内容都在这里面 public 是编译后生成的完整网页,一开始没有 themes 存放你的网站主题 主题配置基本操作 # Hugo 的网站主题很多,具体参考 Hugo Themes 你可以选一款你喜欢的主题,然后下载之后就放在 themes 文件夹里面就行。这一部分文字描述非常抽象,见视频教程\n这里有一个重点是:基本上每一个主题都会配置一个样例网站,一般在文件夹 exampleSite 里面,如果实在不想跟着网站文档自己配置,直接用这个样例网站的配置也是可以的。\n每一个不同的主题基本配置完成之后都要进行个性化配置。这里我重点推荐重点推荐一下我使用的主题 Blowfish 相当好的一款主题,向作者致敬🫡\nBlowfish 主题 # Blowfish 官方文档上面已经有了非常非常详细的指导文档,不再过多赘述。任何一个多余的字都是对于如此详细的指导文档的不尊重🫡\n我这里简要说明一些可能出现的问题,下面的内容你可能需要仔细阅读官方文档之后才能明白其中含义🤔\n在 params.homepage.showRecent = false 的情况下,为什么还会显示\u0026quot;最近文章\u0026quot;? 如果遇到这个问题,说明你跟我一样懒惰🤪直接套用了 exampleSite 的代码。这是因为控制主页面的接口不止这一个,还有一个在 layouts\\partials\\home\\custom.html 文件中。\n如果你不介意那么直接忽略就行,如果你介意(跟我一样🤪),那就把文件中的下面的代码注释掉👇\n\u0026lt;section\u0026gt; {{ partial \u0026#34;recent-articles-demo.html\u0026#34; . }} \u0026lt;/section\u0026gt; 为什么我使用 svg 格式的 logo 无法完成(日间/夜间)模式的切换? 这是我发现的一个 bug,已经给主题作者推送我改进的代码了,详见代码改进或 SVG 支持\n为什么浏览器窗口上的小图标一直都是 blowfish,即使改换了 logo 也不行? 官方文档其实是有写的,但藏的太深了,见局部模板(Partials) · Blowfish\n说实话,官方文档写的真的好👍一套完整流程走下来竟然只有这么点不太容易理解的错误😋\n配套插件 # 我日常习惯使用 Obsidian 来写文章,由于 Obsidian 的格式与 Blowfish 的格式还是有较为明显的区别,二者的格式转换非常麻烦🤔\n在查询了一圈之后,发现根本就没有适合的插件!于是,我自己开发了一个插件:Hugo-Blowfish-Exporter\n虽然插件功能很简单,但是也已经覆盖了我自己绝大部分的使用功能,包括:\n- callout(支持所有官方的 callout 名称,需要新增图标)\n- 内联数学公式(Blowfish 支持块级公式)\n- mermaid(支持 mermaid 图表)\n- 图片插入(能够自动导出图片)\n- Wiki链接导出(并不支持展示性链接😢)\n非展示性链接简单处理为网页超链接形式\n展示性链接较为复杂:需要覆写 Blowfish 主题的源代码,通过 mdimporter 这个 shortcode 来进行文件注入;同时为了方便链接,每一个文件都需要设置 slug 属性来标记网站中存放 markdown 文件的文件夹\n对于主题源代码的覆写详见 mdimporter 以及用于去除注入文件开头元数据的 stripFrontMatter;覆写目录参考 GitHub 上的配置\n这个插件也是投入了我巨大的精力,虽然也只有几天时间🤔但是那几天还是挺累的😵‍💫\n如果这个插件帮助了你,还请转发分享;如果你对于这个插件的功能不满意,你也可以在 GitHub 上向我提交 Issue🫡或者熟悉代码的朋友可以直接把源码拿去修改,注释很完整,代码比较规范🤗\n如果你能把你亲自修改升级的代码也分享给我(在 GitHub 上提交 Pull Request)那更是万分感谢!☺️\n写在最后 # 一个博客网站的搭建只是万里长征的第一步,真正困难的还是博客内容的填充。\n正如我在一次写插件的经历中所写,很多个人博客网站从一开始的火热到最终的沉寂可能只需要短短一年的时间。\n在这个生活节奏越来越快的时代,无意义、无效率的事情大多都会向高效让步,曾经的初心与梦想往往会向生活妥协。我自己也早已经没有了当初的热情,行为方式上也更加的像一个真正的成年人。\n但是我仍然是有些不甘心,这个网站就是一种抗争吧,我会尽力维护下去,这也是我写插件方便我更新博客的目的所在。\n因此希望这篇教程所提供的内容能够帮助到正在准备搭建自己的博客网站的你,你我共勉🫡\n","date":"2025-01-07","externalUrl":null,"permalink":"/blog/hugo-blog/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n 博客网站折腾日志,从手搓到 Hugo 的曲折经历。\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003e为什么 Hugo \n \u003cdiv id=\"%E4%B8%BA%E4%BB%80%E4%B9%88-hugo\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E4%B8%BA%E4%BB%80%E4%B9%88-hugo\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003e最初也只是因为偶然间听说了 Hugo 可以做网页,并且听说编译静态页面非常高效,于是才去搜集的相关资料——据说 Hugo 是\u003cstrong\u003e世界上最快\u003c/strong\u003e的静态页面生成器,官方网站也是这么写的。\u003c/p\u003e","title":"Hugo博客搭建","type":"blog"},{"content":" 记一次写插件的经历,以及从中收获的一些感想。 缘由 # 事情起源于我这个博客网站。我在微信公众号上偶然间浏览到了关于用 Hugo 建立博客网站的信息,正好我也想翻新一下我那简陋的小网站。我原来的小网站非常非常的原始,整个写作流程都需要在 HTML JS 和 CSS 之间狼狈地切换。并且我非常崇拜的大佬 Lilian Weng 的 博客 也是用 Hugo 搭建的,这也更加坚定了我换底层的决心。\n于是我便迅速开始了对于 Hugo 的接触。\n结果真的出乎意料!我原来的网页花费了我将近一个月的时间,用 Hugo 竟然不到一上午就搞定了。更令我惊讶的是 Hugo 作为一个用 Go 编写的程序,其竟然不需要用户搭建 Go 环境!😮\n同时,我也发现了一个非常用心的 Hugo 主题 Blowfish 。这真的是我见过的文档配置最为详细的一个项目,没有之一(๑•̀ㅂ•́)و✧\n在 Hugo 和 Blowfish 的强力驱动下,我的小网站竟然变得像模像样的了。当然请原谅我并不擅长美化页面,所以我就直接套用了 Blowfish 官方网站的界面设置,因为我觉得任何的改动都会让这个精美的页面变得不协调。\n说实话,做完这一切我并没有什么特别的情绪波动,除了敬佩 Hugo 和 Blowfish 的作者们强悍的编码能力。\n直到我想将我在 Obsidian 中大量的笔记都上传到这个博客网站。\n原创的苦涩 # 我发现在 Obsidian 中并没有现成的可以直接适配 Blowfish 主题的格式转换插件。于是在前面那“愉快体验”的助推下,我决定自己写一个插件!(😄虽然过一会儿就笑不出来了😢)\n后面的经历实在是没什么好描述的,一遍又一遍地在网页之间来回切换,不停地搜索各种API文档,与AI机器人的沟通也从未停止。经过了无数次修改,我终于写出来了一个再简单不过的东西:识别文档中的固定模式然后进行内容替换。\n令人哭笑不得,相比于创建网站那短短的几个小时,我这将近四十个小时的工作几乎可以说微不足道。有那么一瞬间我真的想直接删掉我那几百行的代码。\n是的,就这么一个简单的插件就让我心力交瘁,疲惫不堪。我亲口品尝到了原创的苦涩。\n现在让我回头看 Hugo 和 Blowfish 我感受到了深深的震撼,如此复杂的功能实现不知道要消耗多少精力。如果说他们的工作都是付费的,那我还能心安理得地接受如此的工作量。然而他们都是开源的,有没有收入全凭用户喜好。\n我看着 Blowfish 作者那停滞在2024年3月的博客,我陷入了沉思。\n情怀与理想 # 我猜想 Blowfish 的作者肯定是因为别的什么事情暂时放缓了对于这个主题的维护,毕竟这个项目并没有带来多少实际的收入。\n突然之间我回想起了之前那些被我忽略的现象,一些 GitHub 达人主页上满满的绿色瓷砖慢慢变得稀疏,最后消失。在这平静如水的变化之下,或许是一个人生活的转变。或因生活工作忙碌,或因开发动力逐渐衰减,但最后原本的热血初心都淹没在了寂静之中。我无法阻止这样的现象发生,但我理解这背后的原因。\n开源是情怀,但是情怀不能当饭吃。人总是要活在当下的。\n我想起来 bilibili 上的一位博主 码农高天 ,一位 Python 的核心开发者,用幽默诙谐的段子吐槽开源人的悲惨待遇。他那年纪轻轻就已经花白的头发让人不经感慨“生活真是不容易啊”——写了大半辈子的代码,现在竟然还是待业在家,靠着发发视频赚点外快。\n写在最后 # 人生不如意,十之八九。我又一次看着那四十多小时的工作成功,笑着摇了摇头。\n写完这一句,我就睡觉去了,现在是2025年1月6日凌晨1:48,明天还有英语的期末考试,还没复习呢。\n我看着这篇博客,又一次笑着摇了摇头。\n这就是生活。\n","date":"2025-01-06","externalUrl":null,"permalink":"/blog/plugin-writing-experience/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n 记一次写插件的经历,以及从中收获的一些感想。\n\u003c/div\u003e\n\n\n\n\u003ch3 class=\"relative group\"\u003e缘由 \n \u003cdiv id=\"%E7%BC%98%E7%94%B1\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E7%BC%98%E7%94%B1\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003e事情起源于我这个博客网站。我在微信公众号上偶然间浏览到了关于用 \u003ccode\u003eHugo\u003c/code\u003e 建立博客网站的信息,正好我也想翻新一下我那简陋的小网站。我原来的小网站非常非常的原始,整个写作流程都需要在 \u003ccode\u003eHTML\u003c/code\u003e \u003ccode\u003eJS\u003c/code\u003e 和 \u003ccode\u003eCSS\u003c/code\u003e 之间狼狈地切换。并且我非常崇拜的大佬 \u003ccode\u003eLilian Weng\u003c/code\u003e 的 \u003ca href=\"https://lilianweng.github.io/\" target=\"_blank\"\u003e博客\u003c/a\u003e 也是用 \u003ccode\u003eHugo\u003c/code\u003e 搭建的,这也更加坚定了我换底层的决心。\u003c/p\u003e","title":"一次写插件经历","type":"blog"},{"content":" 某些问题机器能够非常容易解决,而对于人类而言非常复杂;反之亦然。\n这种反常悖论似乎来源于知识的可概括性,某些知识具有良好的可压缩性,但另外一些则不具有。有一个更加准确的概念叫做计算可约性\n一个很简单的例子:考试,从逻辑上来说全部都是基于最基本的知识推理而来的对吧?讲道理,考试应该能够完全通过逻辑推理来解决所有问题。但是事实上,考过试的都知道,从阅读题目到形成解题思路的过程貌似并不那么“有逻辑”,甚至可以说是没有什么技巧可言,纯粹就是一种做题的感觉。\n两类知识 # 在现有知识的基础上,能够通过有限的符号逻辑表达式得到的知识;其特点就是精确,高度概括;问题边界明确,能够清晰定义已知条件有什么、通过什么样的方法、得出什么样的结果;在明确的已知条件下能够精准预测问题结果的规律(在问题的考虑范围内没有“概率”这个概念的容身之处) 对于那些难以根据已知条件,通过精确的逻辑推理得到结果的问题,我们采用统计性的尝试,得出的有一定价值的规律;特点是基于大量尝试,难以定义问题的边界,甚至难以获取需要的已知条件,就是这种恶劣的条件下,强行匹配已知条件与结果的联系,进而得出的规律,其结果具有波动性、不确定性、局部正确性。 两类知识的占比 # 明显可概括的知识远远少于不可概括的知识;可概括的知识从某种意义上来说是不可概括知识的特殊情况;\n不可概括向可概括转化的趋势 # 不可概括知识的特点决定了其获取的难度(大量尝试消耗大量能量,这一步不可避免),运转不可概括性知识的能量消耗极高(知识难以概括就会占用大量的资源来维持运转),不可概括的知识难以跨过人类个体生命的边界(不可概括的知识往往会随着个体生命的消散而丢失,因为其难以概括从而难以以任何媒介形式流传,但机器智能似乎在这方面有本质的区别);人类个体的能量十分有限,难以完全依靠不可概括知识来应对外部世界,因此会有从不可概括知识向可概括知识转化的特点,尽管这个过程对于个体而言相当困难、极其耗费能量(本身就是一个不可概括的知识),但从整个人类的角度上来说节省了海量的能量;\n可接受功率决定了智能的上限 # 在这里似乎可以给出另外一个划分智能等级的标准:个体接受功率输入的级别,级别越高其,个体能掌握的不可概括知识越多;由于能量总是有限的(我们人类能消耗的能源级别可能是这个地球上面的资源,但是机器智能的消耗可能是恒星级别的),因此总会有一定程度上的知识概括,但是由于不可概括知识的固有性质,高等级智能的可概括知识对于低等级智能来说并不是可概括的;知识的可概括性具有相对性;\n从这里可以看出,可接受功率对于一个智能系统来说具有关键意义。从另一个角度来说,或许我们能够人为降低机器智能可消耗功率的上限来观察不可概括知识向可概括知识转化的过程\n","date":"2025-01-03","externalUrl":null,"permalink":"/blog/moravecs-paradox/","section":"Blogs","summary":"\u003cblockquote\u003e\n\u003cp\u003e某些问题机器能够非常容易解决,而对于人类而言非常复杂;反之亦然。\u003c/p\u003e","title":"关于莫拉维克悖论的思考","type":"blog"},{"content":" 前言 # 这篇文章主要是对于 CUMCM 2024 的比赛全过程进行一个梳理和总结。\n我们的队伍是在 2023 年的冬天组起来的,CUMCM 2024 也是我们第一次参与“数学建模”比赛。经过了大大小小的模拟赛,最终进入了全国的比赛。在提交最终论文之后获得省级一等奖并推荐国家级一等奖,最终获得国家级二等奖。\n整个过程有振奋惊喜,也有失落遗憾;我们在比赛中应该是做对了一部分事情,因此我们初次参赛就获得了国家级奖项;但不足肯定是有的,毕竟从“推荐国家级一等奖”变成“国家级二等奖”总是有理由的。\n总之,这次经历着实是令人难忘,更加值得梳理和总结经验,为明年的比赛作准备。\nCUMCM 全称为 Chinese Undergraduate Mathmatical Contest in Modeling;民间称呼为“数模国赛” 用词说明 # 用词 说明 计算系统 传统意义上的建模过程,即封装一个超大的函数 优化系统 用于优化计算系统中可调参数的系统,生成最优参数配置 计算流 计算系统中输入数据的处理过程 计算流结点 工作流中关键性的中间步骤 优化流 优化系统的主体逻辑 论文主体内容 包括摘要、重述、计算流和优化流的描述、结果展示与分析,也就是论文收尾之前的所有内容 论文收尾 包括灵敏度分析和模型推广 客观情况 # 任务分工 # 虽然比赛有很多个选题可供选择,但是我们小组选择专攻优化类问题,也就是 A 题。\n我:建模 + 代码 + 部分论文撰写 CL:建模 + 论文撰写 + 部分代码 HWJ:论文美化 工作流程 # 整个 A 题的代码部分大致可以分为两个系统:\n计算系统: 功能:接受输入数据与参数,返回需要的结果 性质:直接由题目决定,不同题目有不同的计算系统,需要临时构建 优化系统: 功能: 接受计算系统并将其作为可优化的目标函数,执行自身的优化逻辑,最后返回计算结果 性质:方法体系较为成熟,可以在比赛前就进行多种优化系统的准备 论文撰写部分分为:\n整体框架:由 LaTeX 模板决定 主体内容填充:对工作流和优化流的清晰描述 排版和美化:调整各个部分的详略,搭配说明性的图片(流程图,示意图) 收尾内容 预建模 # 目标:在精确理解题目的前提条件下,迅速进行初步的建模,基本确定建模方向、计算方法;\n预计用时:3h\n工作:队伍所有成员都进行全网资料查询,看看有没有基本命中题目的文献资料\n命中成功:最理想的情况,这个时候直接研读论文,收集思路即可; 命中失败:虽然没有现成的资料可供参考,但是在查阅文献的过程中或多或少也积累了一定的思路 建模初期 # 总目标:构建足够精确的、适配优化方法的计算系统\n建模:明确输入数据在各个计算流结点之间的操作 代码:用代码实现计算流,实现数据可视化 论文:填充第一个小问的内容,并初步排版 预计用时:30h\n工作:\n所有队员一起进行建模,优先明确建模思路,给出完整的数学推导过程 我和 CL:代码实现与论文内容填充同步进行 HWJ:绘制无法用代码生成的更加生动的示意图 建模中期 # 总目标:构建合适的优化系统\n建模:根据计算系统的特殊性,选择最为匹配的优化系统 代码:在实现优化系统的过程中进行微小改动,匹配计算系统 论文:完成论文的主体部分,开始进行局部细节微调 预计用时:20h\n工作:与前面类似只不过工作的中心从代码编写转到了论文撰写\n精简论文,此时的论文非常臃肿 微调论文的逻辑,使得上下文关联度更高 美化排版,减少文字,增加图片 建模后期 # 基本建模完成了,全员进行漏洞的检查: 错别字、不准确的表述、公式拼写错误等常规检查 优化代码中的注释,让其更加易读 重点检查个人信息 比赛论文中不能保留任何个人信息,包括代码中的文件路径,例如 C:\\Users\\Morethan ;保留个人信息是非常严重的错误! 实战效果 # 当我们将上述策略应用于实战过程中,也就是 CUMCM 2024 的正式比赛中,得到的效果如下:\n有效用时: 比赛总时长三天,共计 72 小时 队伍从早上七点到晚上八点,除开吃饭用时,一天的有效时间为 12 个小时 时间利用率为 \\(50\\%\\)(对比之下很低🤔) 最终完成工作: 论文主体 28 页 A4 纸 代码部分 35 页 A4 纸,除开每一个小题之间的复用代码,应该有 20 页左右 全文配图共计 25 张 以上数据是论文精简之后的,初稿论文将近 50 页 未完成工作: 最终结果的计算,由于计算量过大(代码效率并不高),最终提前两个小时写完所有代码,但并没有足够的时间运算出结果😭😭 模型的计算精度不够,精度为 1s 没有达到标准答案给出的精度 论文的收尾部分其实并没有完成 优点 # 选题 # 专注于 A 题,在模拟赛中积累了充分的经验,磨合出了一套高效的工作流程\n对于 A 题的方法论构建比较完善\n工作流程 # 工作流程相对清晰,效率较高\n以最终论文为导向,建模、论文、代码三线同时进行,保证了论文内容的充足\n分工 # 采用模糊分工,每个队员都有一个主要分工和次要分工,在各自的主要分工上能够独立工作,在其他的次要分工上面也能够完成一定的工作,大大提高了时间利用率\n队员很给力,因为同时兼顾两个分工任务意味着更多的学习成本\n不足 # 工作流程 # 计划很完美,但是在实践中还是有些必要的环节没有做好\n有效时间占比:晚上八点收工太早了!应该占用更多的时间来进行建模试错,保证模型的正确性和精确性\n分工 # 代码的编写、代码的调试、代码的可视化、结果的计算、结果的可视化所涉及的代码量太大,一人难以搞定;\n因为模糊分工所引起的任务重叠,增加了协同成本\n建模 # 题目理解准确度:这次我们对于题目的理解出现了较大的偏差,导致我们浪费了挺多时间在模型修正上面; 代码 # 代码的效率:之前由于没有时间的限制,导致对于“超长”代码的准备不足,没有代码并行的经验;\n结果精度:一开始建模过于粗糙,并且用了一个不好的特性:将时间步长设置为 1 ,并且将作为数组索引,导致后期难以将时间的步长减小,导致最后结果的精确度不够\n改进方案 # 精心挑选场地,增加有效时间✨是最重要的✨ 分工 # 略微改动人员分工,增加代码方面的人力投入\n在各自的主要分工和次要分工上增加学习投入,增加工作效率\n建模 # 更专注于题目的理解,不能太着急;建模错误再修正是得不偿失的 代码 # 构建一套行之有效的代码协同方案,增强代码编写速度\n着手构建代码编写规范:\n变量命名 文件开头的说明文档 代码编写流程规范 代码并行化:在代码中添加一些可并行的代码,提高运行速度\n所有代码方面的改进最终落实为一个文档!不能光喊口号! 落实后的方案:代码协同方案 论文 # 研究优秀论文\n关注其论文框架 关注其语言风格、文本可读性、详略、配图逻辑、图片可读性 改进自身\n优化论文主体逻辑框架,细化每一块的内容 语言风格、文本可读性、详略、配图逻辑、图片可读性等等细节的改进 成果以 LaTeX 模板中注释的形式固定! 总结 # 一份没有满分的答卷比一份满分的答卷更有收获!\n积累应用数学的知识,增强论文撰写能力,提高发现问题的能力,这是比比赛本身更有意义的东西🫡\nCUMCM,每一个数模人都能从中受益🤗\n","date":"2024-09-12","externalUrl":null,"permalink":"/blog/cumcm2024/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003e前言 \n \u003cdiv id=\"%E5%89%8D%E8%A8%80\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%89%8D%E8%A8%80\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003e这篇文章主要是对于 CUMCM 2024 的比赛全过程进行一个梳理和总结。\u003c/p\u003e","title":"CUMCM 2024总结","type":"blog"},{"content":" 创建虚拟环境 # 创建 # 一些常规的代码例子如下👇\n# 创建虚拟环境 python -m venv your_env_name # 指定python版本创建虚拟环境,如果你的python是默认安装路径 python -m venv your_env_name --python=python3.11 # python是自定义的安装路径 D:\\Python\\Python311\\python.exe -m venv your_env_name 下面有一些可选参数用于创建自定义的虚拟环境:\n参数名 含义 --system-site-packages 创建的虚拟环境将包含全局Python环境中的包,这可以避免重复安装一些常用的包 --clear 如果指定的虚拟环境目录已经存在,这会清除目录中的所有内容,然后重新创建虚拟环境 --version 用于确认虚拟环境中 Python 的版本 所有的参数说明都可以通过运行 python -m venv -h 来获得;不用到处查文档了~😆 激活 # 默认情况下,虚拟环境处于非激活状态。在“your_env_name/Scripts/”目录下将有一个名为“activate”的文件,用命令行运行即可。\n# 激活虚拟环境 your_env_name/Scripts/activate 程序打包 # 我们经常需要把自己写的 Python 程序分享出去。然而只分享源代码会使得不太懂代码的用户非常苦恼,因为源代码的运行还需要搭建本地运行环境,因此打包程序应运而生。\npyinstaller # 安装非常简单,就像别的 Python 包一样 pip install pyinstaller 即可;使用时在目标文件所在的目录启动终端,然后运行命令即可。\n特点:打包速度较快;打包后的程序较大\n常见的命令代码:\n# 将main.py文件打包为一个独立的可执行文件;可执行文件运行后禁用命令行窗口 pyinstaller -F -w main.py # 将main.py文件打包为一个工程文件夹;可执行文件运行后启用命令行窗口 pyinstaller -D main.py 参数 说明 -h, --help 显示帮助信息并退出 -v, --version 显示程序版本信息并退出 -F, --onefile 将所有内容打包为一个独立的可执行文件 -D, --onedir 将所有内容打包为一个目录(默认选项) -w, --windowed, --noconsole 禁用命令行窗口(仅对 Windows 有效) -c, --console, --nowindowed 使用命令行窗口运行程序(默认选项,仅对 Windows 有效) -a, --ascii 不包含 Unicode 字符集支持(默认包含) -d, --debug 产生 debug 版本的可执行文件 -n NAME, --name=NAME 指定生成的可执行文件或目录的名称(默认为脚本名称) -o DIR, --out=DIR 指定 spec 文件的生成目录(默认为当前目录) -p DIR, --path=DIR 设置 Python 导入模块的路径(类似设置 PYTHONPATH) -i \u0026lt;FILE\u0026gt;, --icon \u0026lt;FILE\u0026gt; 设置可执行文件的图标(支持 .ico 或 .icns 格式) --distpath DIR 指定生成的可执行文件的输出目录(默认为 ./dist) --workpath WORKPATH 指定临时工作文件的目录(默认为 ./build) --add-data \u0026lt;SRC;DEST or SRC:DEST\u0026gt; 添加额外的数据文件或目录到可执行文件中(Windows 使用分号,Linux/OSX 使用冒号分隔源路径和目标路径) --add-binary \u0026lt;SRC;DEST or SRC:DEST\u0026gt; 添加额外的二进制文件到可执行文件中 --hidden-import MODULENAME 添加未自动检测到的模块 --exclude-module EXCLUDES 排除指定的模块 --clean 清理 PyInstaller 缓存和临时文件 --log-level LEVEL 设置构建时控制台消息的详细程度(可选值:TRACE、DEBUG、INFO、WARN、ERROR、FATAL) Nuitka # 将 Python 代码打包为 exe 可执行文件,转换原理是先将 Python 代码转换为 C 代码,然后再编译 C 代码。\n特点:打包速度相当慢;需要额外安装 C 编译器,尽管可以自动完成但是对于内存空间管理非常严格的用户并不适用;打包后的程序体积很小(实测是 pyinstaller 的十分之一)\n安装命令:\npip install -U nuitka 常见使用命令:\n# 将main.py文件打包为一个exe文件,使用链式优化,完成打包后清理临时文件 python -m nuitka --lto=yes --remove-output --onefile main.py 参数 说明 --standalone 创建一个包含所有依赖的独立可执行文件夹。 --onefile 将所有内容打包为一个单独的 .exe 文件。 --optimize=N 设置优化级别(0、1 或 2),数字越大,优化越多。 --lto 启用链接时优化(Link Time Optimization),可选值为 no、yes 或 thin。 --enable-plugin=\u0026lt;plugin_name\u0026gt; 启用指定插件,如 tk-inter、numpy、anti-bloat 等。 --output-dir=\u0026lt;dir\u0026gt; 指定编译输出目录。 --remove-output 编译完成后删除中间生成的 .c 文件和其他临时文件。 --nofollow-imports 不递归处理任何导入模块。 --include-package=\u0026lt;package_name\u0026gt; 显式包含整个包及其子模块。 --include-module=\u0026lt;module_name\u0026gt; 显式包含单个模块。 --follow-import-to=\u0026lt;module/package\u0026gt; 指定递归处理的模块或包。 --nofollow-import-to=\u0026lt;module/package\u0026gt; 指定不递归处理的模块或包。 --include-data-files=\u0026lt;source\u0026gt;=\u0026lt;dest\u0026gt; 包含指定的数据文件。 --include-data-dir=\u0026lt;directory\u0026gt; 包含整个目录的数据文件。 --noinclude-data-files=\u0026lt;pattern\u0026gt; 排除匹配模式的数据文件。 --windows-icon-from-ico=\u0026lt;path\u0026gt; 设置 Windows 可执行文件的图标。 --company-name, --product-name, --file-version, --product-version, --file-description 设置 Windows 可执行文件的属性。 ","date":"2024-08-10","externalUrl":null,"permalink":"/blog/pytips/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003e创建虚拟环境 \n \u003cdiv id=\"%E5%88%9B%E5%BB%BA%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%88%9B%E5%BB%BA%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\n\n\u003ch3 class=\"relative group\"\u003e创建 \n \u003cdiv id=\"%E5%88%9B%E5%BB%BA\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%88%9B%E5%BB%BA\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003e一些常规的代码例子如下👇\u003c/p\u003e","title":"Python小技巧","type":"blog"},{"content":" 引用文献 # 我对于贝叶斯优化的理解也并不多,主要参考下面的内容👇\n【机器学习】一文看懂贝叶斯优化/Bayesian Optimization\n一文详解贝叶斯优化(Bayesian Optimization)原理\n贝叶斯优化(BayesianOptimization)\n超参数优\u0026mdash;贝叶斯优化及其改进(PBT优化)\n贝叶斯优化 (Bayesian Optimization)\nMATLAB官方文档\n优点和算法原理 # 这里重点描述贝叶斯优化的优点以及其算法原理。如果你只关注“怎么用”,可以先了解贝叶斯优化的优点,然后跳转到#MATLAB用法\n优点 # 算法原理 # MATLAB用法 # 代码一览 # % 定义目标函数 function y = objectiveFcn(x) y = (1 - x.x1)^2 + 100 * (x.x2 - x.x1^2)^2; end % 定义优化变量 vars = [optimizableVariable(\u0026#39;x1\u0026#39;, [-2, 2]) optimizableVariable(\u0026#39;x2\u0026#39;, [-2, 2])]; % 执行贝叶斯优化 results = bayesopt(@objectiveFcn, vars, ... \u0026#39;AcquisitionFunctionName\u0026#39;, \u0026#39;expected-improvement-plus\u0026#39;, ... \u0026#39;MaxObjectiveEvaluations\u0026#39;, 30, ... \u0026#39;IsObjectiveDeterministic\u0026#39;, true, ... \u0026#39;Verbose\u0026#39;, 1); % 查看结果 bestPoint = results.XAtMinObjective; bestObjective = results.MinObjective; fprintf(\u0026#39;最优解 x1: %.4f, x2: %.4f\\n\u0026#39;, bestPoint.x1, bestPoint.x2); fprintf(\u0026#39;最优目标值: %.4f\\n\u0026#39;, bestObjective); 参数说明 # Params Meaning AcquisitionFunctionName 选择采集函数,这决定了算法在每次采样之后如何选取下一个采样点 MaxObjectiveEvaluations 最大迭代轮次 IsObjectiveDeterministic 如果目标函数是确定的,不包含噪声,则设置为 true ;否则设置为 false Verbose 决定了结果输出的详细程度,所有的输出可能包含多张图表 每个参数具体的可选值见官方文档: bayesopt;官方写的相当细致,还有很多样例。\n数学建模人必会技能之一就是读文档😝 ","date":"2024-08-05","externalUrl":null,"permalink":"/blog/bayesianopt/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003e引用文献 \n \u003cdiv id=\"%E5%BC%95%E7%94%A8%E6%96%87%E7%8C%AE\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%BC%95%E7%94%A8%E6%96%87%E7%8C%AE\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003e我对于贝叶斯优化的理解也并不多,主要参考下面的内容👇\u003c/p\u003e","title":"贝叶斯优化","type":"blog"},{"content":" 背景提要 # 你应该知道如何通过命令行与电脑交互,包括但不限于:Windows如何唤出命令行/终端,正在运行中的命令什么时候结束\u0026hellip;\u0026hellip;\n懂一点点翻墙的技术,OverLeaf是个国外的软件,与之硬相关的latex项目也是国外的,因此下载相关依赖的时候能够直接接受国外流量会省掉很多麻烦。如果你没有VPN的话就需要为每一个包管理工具指定一个国内源,但有时候国内源更新并不及时。\n懂一些Vim的基本操作,比如:如何开启插入模式,如何保存退出,不保存退出等\n部署全流程 # 安装Linux # 在 Windows App Store 里面直接搜索一个Linux发行版本并下载,笔者选择的是Kali。安装完成后可以在开始菜单中直接打开,打开后会跳出命令行窗口,初次打开需要填写需要用户名与密码进行注册。\n此时你的命令行应该有一个 Warning 提示。这是因为你还没有安装 WSL(Windows Subsystem for Linux);同时,在填写密码的时候你的输入不会显示在命令行,但已经被记录了 为什么需要一个Linux系统?因为OverLeaf的sharelatex模型需要Linux环境。也正因如此,据说在Linux系统上运行的OverLeaf更加流畅。\n安装WSL # 安装WSL2,直接在Windows命令行中运行:\nwsl --install 这个程序安装后也可以直接打开,打开后也有一个Warning提示。这时候需要在 C:\\Users\\ASUS 目录下面写入一个text文件,然后重命名为 .wslconfig;\n写入内容为:\n[experimental] autoMemoryReclaim=gradual # gradual | dropcache | disabled networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true 安装Docker # 进入 Docker 官网下载Docker,这是sharelatex模型运行的容器。Docker是一个开源的应用容器引擎,其中包括,镜像、容器、仓库,目的就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的产品及其环境能够做到“一次封装,到处运行”。就像一个集装箱,由程序员开发并封装,用户使用时就直接把整个集装箱搬过去。\nDocker安装完成后就可以双击启动放后台了,我们后面通过命令行来操作Docker;\n拉取镜像 # 打开 Kali,直接运行\ngit clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit 然后连续运行:\ncd ./overleaf-toolkit bin/init vim ./config/variables.env 此时你应该已经进入了一个文档界面,这就是Vim文本编辑器的界面。Vim有很多快捷键,其中按下\u0026quot;I\u0026quot;键即可开启插入模式,进行文本编辑,按下\u0026quot;esc\u0026quot;即可返回常规模式。在插入模式下输入:OVERLEAF_SITE_LANGUAGE=zh-CN\n输入完成后按下\u0026quot;esc\u0026quot;返回常规模式,直接键入 :wq 这是“保存并退出”,如果你不小心输错了可以 :e! 放弃所有更改重头再来。这一步是让你的OverLeaf界面显示为中文。\n当你成功保存并退出,回到熟悉的Kali命令行界面后运行 bin/up 此时正在拉取sharelatex镜像以及相关的网络工具。这时会有大量的数据传输,要保证网络通畅(梯子要稳!)\n配置用户 # 当上一个命令成功结束之后,运行 bin/start ;此时你打开Docker点进sharelatex,你应该可以看到代码“爆闪”,如果没有红色的消息,那应该是正常运行了。\n这时打开浏览器访问网址 http://localhost/launchpad\n按照提示注册Administrator Account之后,就会跳转到 http://localhost/project ;这时基本的OverLeaf网页已经可以显示了。\n但现在你丢一个文件进去编译多半是会报错的 ᕕ( ᐛ )ᕗ ;因为此时 sharelatex 里面的宏包严重不足,不是红包「手动狗头」 安装扩展包 # 打开 Kali 进入对应目录运行 bin/shell 然后逐条执行:\ncd /usr/local/texlive # 下载并运行升级脚本 wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh sh update-tlmgr-latest.sh -- --upgrade # 更换texlive的下载源 tlmgr option repository https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet/ # 升级tlmgr tlmgr update --self --all # 安装完整版texlive(时间比较长,不要让shell断开) tlmgr install scheme-full # 退出sharelatex的命令行界面 exit # 重启sharelatex容器 docker restart sharelatex 重启后再次进入 shell,运行:\napt update # 安装字体 apt install --no-install-recommends ttf-mscorefonts-installe fonts-noto texlive-fonts-recommended tex-gyre fonts-wqy-microhei fonts-wqy-zenhei fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-color-emoji fonts-noto-extra fonts-noto-ui-core fonts-noto-ui-extra fonts-noto-unhinted fonts-texgyre # 安装pygments apt install python3-pygments # 安装beamer之类的 apt install texlive-latex-recommended apt install texlive-latex-extra # 安装英文字体 echo \u0026#34;yes\u0026#34; | apt install -y --reinstall ttf-mscorefonts-installer # 安装中文字体 apt install -y latex-cjk-all texlive-lang-chinese texlive-lang-english cp fonts/* /usr/share/fonts/zh-cn/ cd /usr/share/fonts fc-cache -fv # 更新字体缓存 fc-list :lang=zh-cn fc-match Arial 最后在shell目录里面运行:\nvim /usr/local/texlive/2023/texmf.cnf 进入配置文件,在最底下加入一句 shell_escape = t\n我也不知道这有什么用,属于是前辈传承了🤔 注意,如果Texlive(扩展包的官名)版本不同的话,目录地址也会有所变化,因此需要根据实际的地址来填写,例如将2023改成2024。\n在Linux命令行中可以用 ls -l 来查看当前目录下所有的文件 部署成功 # 现在你就可以愉快地使用本地版OverLeaf了,没有编译超时的困扰~\n如果非常巧合,你也是个CQUer,这里附赠一份重庆大学的毕业论文模板,炒鸡的亲民哦:CQUThesis\n","date":"2024-07-12","externalUrl":null,"permalink":"/blog/localoverleaf/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003e背景提要 \n \u003cdiv id=\"%E8%83%8C%E6%99%AF%E6%8F%90%E8%A6%81\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E8%83%8C%E6%99%AF%E6%8F%90%E8%A6%81\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e你应该知道如何通过命令行与电脑交互,包括但不限于:Windows如何唤出命令行/终端,正在运行中的命令什么时候结束\u0026hellip;\u0026hellip;\u003c/p\u003e","title":"本地 OverLeaf 部署","type":"blog"},{"content":"","date":"2025-01-16","externalUrl":null,"permalink":"/blog/","section":"Blogs","summary":"","title":"Blogs","type":"blog"},{"content":"CUMCM 英文全称为 Chinese Undergraduate Mathmatical Contest in Modeling,中文全称为“全国大学生数学建模竞赛”。\n由于这个比赛并不能直接参与国家级总决赛,而是要经过校赛省赛的选拔,然后你的论文才会被交给全国的专家进行评审。因此这个比赛民间细分为三个,即数模校赛,数模省赛和数模国赛。\n","date":"2025-01-16","externalUrl":null,"permalink":"/tags/cumcm/","section":"标签","summary":"\u003cp\u003e\u003ccode\u003eCUMCM\u003c/code\u003e 英文全称为 Chinese Undergraduate Mathmatical Contest in Modeling,中文全称为“全国大学生数学建模竞赛”。\u003c/p\u003e","title":"CUMCM","type":"tags"},{"content":"","date":"16 January 2025","externalUrl":null,"permalink":"/en/series/mathmodel/","section":"Seires","summary":"","title":"MathModel","type":"series"},{"content":"","date":"2025-01-16","externalUrl":null,"permalink":"/tags/matlab/","section":"标签","summary":"","title":"MATLAB","type":"tags"},{"content":" 欢迎来到我的信息页面 👋 # 基本信息 # Morethan 是我随手起的一个英文名字,因为这个词语的发音和我的中文名字实在是太像了🙃\n我现在还是一个本科生 ᕕ( ᐛ )ᕗ 其他的没什么好写的🫠\n博客定位 # 个人知识库:用来存放一些固定的技术流程和有意义的经历\n微型论文栈:尽可能按照标准论文流程来编写一些博客,为毕业论文做准备\n知识输出平台:将我所学尽可能清晰地表达出来\n最后 # 如果你觉得有内容帮助了你,请点击文章开头的“喜欢” 🤗\n如果你想分享某些内容,请标注援引自此网站 🫡\n如果你找到了一些错误之处,请在 GitHub 上提交一个Issue 🥰\n","date":"2025-01-16","externalUrl":null,"permalink":"/authors/morethan/","section":"作者列表","summary":"\u003ch1 class=\"relative group\"\u003e欢迎来到我的信息页面 👋 \n \u003cdiv id=\"%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0%E6%88%91%E7%9A%84%E4%BF%A1%E6%81%AF%E9%A1%B5%E9%9D%A2-\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0%E6%88%91%E7%9A%84%E4%BF%A1%E6%81%AF%E9%A1%B5%E9%9D%A2-\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h1\u003e\n\n\n\u003ch2 class=\"relative group\"\u003e基本信息 \n \u003cdiv id=\"%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eMorethan\u003c/code\u003e 是我随手起的一个英文名字,因为这个词语的发音和我的中文名字实在是太像了🙃\u003c/p\u003e","title":"Morethan","type":"authors"},{"content":" ","date":"2025-01-16","externalUrl":null,"permalink":"/tags/","section":"标签","summary":"\u003chr\u003e","title":"标签","type":"tags"},{"content":"这里存放着一些学习笔记与微型论文,通过知识输出来达到知识巩固的目的。\n透过这些文字希望你也能有所收获🤗\n","date":"2025-01-16","externalUrl":null,"permalink":"/","section":"欢迎来到Morethan的小站","summary":"\u003cp\u003e这里存放着一些学习笔记与微型论文,通过知识输出来达到知识巩固的目的。\u003c/p\u003e","title":"欢迎来到Morethan的小站","type":"page"},{"content":"数学建模 就是使用数学模型来精确地、系统地描述生活中的对象,是数学与实践的重要结合。\n","date":"2025-01-16","externalUrl":null,"permalink":"/series/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/","section":"系列","summary":"\u003cp\u003e\u003ccode\u003e数学建模\u003c/code\u003e 就是使用数学模型来\u003cstrong\u003e精确地、系统地\u003c/strong\u003e描述生活中的对象,是数学与实践的重要结合。\u003c/p\u003e","title":"数学建模","type":"series"},{"content":" ","date":"2025-01-16","externalUrl":null,"permalink":"/series/","section":"系列","summary":"\u003chr\u003e","title":"系列","type":"series"},{"content":"","date":"2025-01-16","externalUrl":null,"permalink":"/authors/","section":"作者列表","summary":"","title":"作者列表","type":"authors"},{"content":"","date":"2025-01-15","externalUrl":null,"permalink":"/tags/mysql/","section":"标签","summary":"","title":"MySQL","type":"tags"},{"content":"","date":"15 January 2025","externalUrl":null,"permalink":"/en/series/operation/","section":"Seires","summary":"","title":"Operation","type":"series"},{"content":"","date":"2025-01-15","externalUrl":null,"permalink":"/series/%E6%8A%80%E6%9C%AF%E6%B5%81%E7%A8%8B/","section":"系列","summary":"","title":"技术流程","type":"series"},{"content":"","date":"2025-01-10","externalUrl":null,"permalink":"/tags/hugo/","section":"标签","summary":"","title":"Hugo","type":"tags"},{"content":"","date":"10 January 2025","externalUrl":null,"permalink":"/en/series/project-report/","section":"Seires","summary":"","title":"Project Report","type":"series"},{"content":"","date":"2025-01-10","externalUrl":null,"permalink":"/tags/%E6%8A%A5%E5%91%8A/","section":"标签","summary":"","title":"报告","type":"tags"},{"content":"","date":"2025-01-10","externalUrl":null,"permalink":"/tags/%E5%8D%9A%E5%AE%A2/","section":"标签","summary":"","title":"博客","type":"tags"},{"content":"","date":"2025-01-10","externalUrl":null,"permalink":"/series/%E9%A1%B9%E7%9B%AE%E6%8A%A5%E5%91%8A/","section":"系列","summary":"","title":"项目报告","type":"series"},{"content":"","date":"7 January 2025","externalUrl":null,"permalink":"/en/tags/blog/","section":"Tags","summary":"","title":"Blog","type":"tags"},{"content":"","date":"6 January 2025","externalUrl":null,"permalink":"/en/series/casual-essay/","section":"Seires","summary":"","title":"Casual Essay","type":"series"},{"content":"","date":"6 January 2025","externalUrl":null,"permalink":"/en/tags/experience/","section":"Tags","summary":"","title":"Experience","type":"tags"},{"content":"","date":"2025-01-06","externalUrl":null,"permalink":"/tags/%E7%BB%8F%E5%8E%86/","section":"标签","summary":"","title":"经历","type":"tags"},{"content":"","date":"2025-01-06","externalUrl":null,"permalink":"/series/%E9%9A%8F%E7%AC%94/","section":"系列","summary":"","title":"随笔","type":"series"},{"content":"","date":"2025-01-03","externalUrl":null,"permalink":"/tags/ai/","section":"标签","summary":"","title":"AI","type":"tags"},{"content":"","date":"2025-01-03","externalUrl":null,"permalink":"/series/ai%E9%81%90%E6%83%B3/","section":"系列","summary":"","title":"AI遐想","type":"series"},{"content":"","date":"3 January 2025","externalUrl":null,"permalink":"/en/tags/imagination/","section":"Tags","summary":"","title":"Imagination","type":"tags"},{"content":"","date":"3 January 2025","externalUrl":null,"permalink":"/en/series/wild-imagination-of-ai/","section":"Seires","summary":"","title":"Wild Imagination of AI","type":"series"},{"content":"","date":"2025-01-03","externalUrl":null,"permalink":"/tags/%E9%81%90%E6%83%B3/","section":"标签","summary":"","title":"遐想","type":"tags"},{"content":"","date":"2024-09-12","externalUrl":null,"permalink":"/tags/math/","section":"标签","summary":"","title":"Math","type":"tags"},{"content":"","date":"2024-08-10","externalUrl":null,"permalink":"/tags/python/","section":"标签","summary":"","title":"Python","type":"tags"},{"content":"","date":"2024-07-12","externalUrl":null,"permalink":"/tags/latex/","section":"标签","summary":"","title":"LaTeX","type":"tags"},{"content":"","date":"2024-07-12","externalUrl":null,"permalink":"/tags/overleaf/","section":"标签","summary":"","title":"Overleaf","type":"tags"},{"content":"","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"}] \ No newline at end of file +[{"content":" 日程管理软件功能现状分析报告 前言 # 本文涉及的日程管理软件主要指代的是具有如下定位的软件:\n支持个体用户使用 能够进行一天内的日程安排 如果支持更多的功能,则需要保证软件不影响上述功能的体验 期望实现的功能:\n任务管理:创建与编辑任务、设置任务优先级与分类 拖延分析与专注监控:记录任务延误、拖延分析、专注时间记录、自动提醒 智能调整引擎:任务延误或提前完成后自动调整后续日程安排 智能建议:根据相关数据给用户提供日程改进建议,帮助用户掌握时间控制权 项目现状 # 项目现状主要是分析当前市场上比较成熟的日程管理软件的功能,明确哪些功能是基础必备的功能,哪些功能是特色功能。\n静态日程管理 # 滴答清单 # 滴答清单的功能覆盖全面,设计风格简洁,用它来进行日程管理还是非常方便的。它的日程管理逻辑大概如下:\ngraph LR; id1(\"日程收集\")--\u003eid2(\"手动日程安排\")--\u003eid3(\"按时执行日程\"); id2(\"手动日程安排\")--\u003eid4(\"没有按时执行日程\")--\u003eid5(\"手动进行调整\"); 分析评价 # 手动安排调整日程是静态日程管理软件使用过程中必不可少的环节,也是是整个流程中最耗费精力的,滴答清单虽然能够创建时间块来安排日程,但是对于缺乏动态调整的能力。这对于一些固定的、来自外界的日程并没有什么影响,因为它们一般都具有明确的起止时间。\n但是对于一些来自内在的、软性的、琐碎的日程,例如背 15 个单词、洗衣服、阅读杂志等。这些日程一般用于自我提升,没有明确的开始时间,只需要当天完成就行;同时也没有明确的结束时间,例如15 个单词往往 30 分钟才能背完,结果某天状态良好 20 分钟就背完了。\n这些琐碎的日程对于静态的日程安排是一个不小的挑战。尽管单个琐碎日程的提前或者延误对于整个日程安排并无大碍,但是他们的累积效果对于静态日程安排的破坏非常明显。\n除此之外,这些零散的日程如果没有对齐的话,还会产生时间真空,导致用户在某个时间点突然不知道该干什么。例如,用户提前背完了单词,空余了 10 分中的时间。这十分钟该如何妥善处理?如果没有明确的安排的话,用户可能会选择在这 10 分钟刷短视频,然后紧接着又是一段休息时间,又继续刷视频。这不出意外会导致下一个任务因为时间不足而再次延误,然后又产生一段时间真空,如此延续。\n想要终止这种恶性传导,有三种对策:\n用户手动进行调整:这将非常非常麻烦,宝贵的时间浪费在了安排一些琐碎的事情上;并且手动调整所花费的时间也可能会导致任务的延误\n直接不进行调整,忽略具体的时间控制:这样做日程管理将失去其本身的意义,精确安排时间使得时间价值最大化。这个时候的日程安排完全退化为了一个任务表,失去了对于时间的控制作用,倒不如一开始就使用没有时间控制能力的更加专业的清单工具\n用户严格按照日程执行:理论很完美,实际上效果非常糟糕。生活中不可避免出现意外情况,如果出现延误,那么下一项任务的时间受到挤压,可能无法按时完成,或者匆忙完成导致效果不佳;如果提前完成,那么难以临时添加一个合适的任务填补时间真空,导致时间浪费的同时也不利于执行力和专注力的培养\n时间真空的恶性传导是静态日程管理软件的致命伤,严重限制了日程管理软件的市场认可度。因此主流观点认为日程管理是一些极其自律的人的专属行为,日程管理软件也只是为这类人设计的小众软件。\n我自己曾经使用过一些日程管理软件,但都难以坚持:要么是软件的学习曲线过于陡峭,要么是难以遵循固定的日程安排 因此,一个真正有意义的时间管理软件不应该要求用户的生活没有任何意外,或者用户必须遵守日程安排,而应该给用户提供出现意外后的解决方案:激励用户提前完成任务;劝导用户避免拖延日程,同时在用户确实延误日程之后快速给出调整后的日程安排,避免用户放弃日程计划。\n动态日程管理 # 动态日程管理传统上是利用明确的算法来操作,近些年由于 AI 的重大突破,动态日程管理几乎全部由大语言模型驱动。\n在调查的过程中发现一个非常奇怪的事情🤔:中国几乎没有 AI 驱动的动态日程管理;国外有一大批类似的产品,价格相当昂贵并且对于国内用户相当不友好 Motion # 据说是一个非常厉害的一个 AI 日程管理工具,但是太贵了。并且国内用户没有国外的银行卡,连 7 天免费试用都没办法进行,因此也没有工作流程图😢\n所以我也不知道具体的功能体验下来如何,但是看着官网的说明和网上流传的评价应该是很厉害的。\nDola # Dola 非常具有未来气息的一款 AI 日程管理软件:完全没有软件界面,与 AI 的交流全部通过常见的消息平台,例如 WhatsApp,Apple Messages 等。但是完全不支持国内的主流软件例如 QQ,微信等。\n由于没有国外的通信平台的账号,因此我也不知道实际体验下来如何😢但是这种极致精简的人机交互应该是未来的趋势🤔\n根据官方说明大概绘制了一下体验流程图:\ngraph LR; id1(\"通过消息平台发送消息\")--\u003eid2(\"AI分析生成日程\")--\u003eid3(\"软件内部存储日程\"); id1(\"通过消息平台发送消息\")--\u003eid4(\"AI分析后修改日程\"); id1(\"通过消息平台发送消息\")--\u003eid5(\"AI分析后返回查询结果\") 对于日程的安排仍然需要用户自己进行,仅仅是把时间安排简化为了使用自然语言描述,动态调整也并不支持。\n分析评价 # 虽然从理论上来说,使用大语言模型来驱动的动态日程管理软件的效果应该更好:用户能够使用自然语言来描述自己的日程,能够通过自然语言来帮助 AI 改进日程安排。通过精细的推理,大语言模型也能够根据一些高质量知识库或者是用户的个性化信息来更好地调整日程安排。\n但是需要注意人工智能的局限性:指令理解偏差、大模型幻觉、昂贵的使用成本、较长的相应时间、需要较多的初始化数据才能够达到一个较好的效果(从理论上来说也可以进行强化微调但成本高昂)、数据隐私保护等等问题。\n总结 # 目前效果优异,操作流程极简的日程管理项目在国内非常罕见,但是良好的日程管理需求却十分旺盛。这个项目值得尝试。\n","date":"2025-01-27","externalUrl":null,"permalink":"/blog/schedule-management-report/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n 日程管理软件功能现状分析报告\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003e前言 \n \u003cdiv id=\"%E5%89%8D%E8%A8%80\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%89%8D%E8%A8%80\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003e本文涉及的日程管理软件主要指代的是具有如下定位的软件:\u003c/p\u003e","title":"日程管理项目分析","type":"blog"},{"content":" 总结 CUMCM2024 比赛经验,针对数学建模国赛 A 题和MATLAB改进的代码协同方案 流程概览 # graph LR; id1(\"工作分配\")--\u003eid2(\"VS Code协同\")--\u003eid3(\"MATLAB代码执行\"); 工作分配 # 主要有两个要点:\n划分为两个部分,一个主要部分和次要部分; 划分的任务之间不要有依赖关系 代码协同 # 软件工具 # VS Code 编辑器,以及 Live Server 插件,MATLAB 插件\nMATLAB\n命名规范 # 主函数统一命名为 main:能够直接计算出最终答案的叫主函数,其他的都叫辅助函数 数据加工代码:数据加工代码指的是没有任何返回值,仅仅产生数据表格的代码,用 data 开头,例如:将太阳高度角 \\(\\phi\\) 转化为余弦值,dataCosPhi 内部数据转换代码,用 to 连接,例如将自然坐标系中点的坐标转化为直角坐标系中点的坐标 StoXY 绘图代码:绘制图形的代码,用 fig 开头 测试代码:test 开头 其余需要特殊定义的代码:根据功能,返回布尔值的用 is 开头,如判断碰撞函数 isCollided;返回其他数据的用 get 开头 文件说明注释 # 除了上面命名规范里面提及的一些常见类型的文件不用添加参数外,即 data,test,fig,main 这四个,其余的都应该在文件内添加说明性注释;\n简明而清晰的文件说明注释:文件说明一般在文件开头,包含函数功能概述、函数接受参数、函数输出参数三个主要部分\n实在不会写,用 AI 帮助就行;\n内部变量命名 # 统一的固定参数 # 所有固定的参数全部都放置到根目录下的一个 config.m 文件中,进行统一管理,每个参数后面请添加注释说明,例如:\nlearningRate = 0.001; % 学习率 batchSize = 32; % 每批输入的数据量 numEpochs = 100; % 迭代次数 在其他代码中引用这个配置文件只需要加入代码:\nrun(\u0026#39;config.m\u0026#39;); 尽管参数被转移到了其他地方但是 VS Code 仍然能够进行自动检测并给出补全提示! 函数内部使用的参数 # 函数内部所有使用的变量都应该在主程序开始之前明确定义,并在变量后添加简要的中文注释;\n如果有一些表达相同含义的参数在多个文件中使用,请使用统一的命名,尤其是 AI 生成的代码,请在 VS Code 中使用 F2 进行重命名 代码格式化 # 代码的格式化主要通过官方的 MATLAB 插件来执行。安装插件之后,按快捷键 Shift+Alt+F 即可格式化代码。\nGit 版本控制 # 这里需要新建一个 GitHub 代码仓库来存放整个项目文件。尽管使用了 Live Server 插件能够更加快速地执行代码协同,但是仍然需要在一些重要的开发结点进行提交保存,保留代码的回滚能力。\n所有的 Git 版本控制操作都在代码负责人的电脑上操作,其他辅助编程人员使用 Live Server 插件进行更实时的代码协同。\n本地 commit 保存小改进 push 操作以小题为单位进行,保存重大进展 代码执行 # 感谢官方对于 MATLAB 插件的更新支持,最新的插件能够在 VS Code 编辑器中直接运和调试行代码。尽管有些限制,但瑕不掩瑜。\n其他 # AI 指令集 # 由于生成式 AI 的代码规范可能与项目不同,因此如果有生成一整个文件的需求,请在你的指令之前添加如下的代码规范指令:\n你是一个成熟而规范的MATLAB程序员,在正确实现用户目标的前提下,遵守以下代码规范: 1. 简明而清晰的文件说明注释:文件说明一般在文件开头,包含函数功能概述、函数接受参数、函数输出参数三个主要部分 2. 函数内部的变量命名应当简明易读 3. 函数内部所有使用的变量都应该在主程序开始之前明确定义,并在变量后添加简要的中文注释 用户指令: 配套样例项目 # 为了能够快速、规范地启动工程项目,我创建了一个样例项目,里面包含了所有上文提及的代码规范,可以直接对这个项目进行修改,省去了记忆的苦恼😄\n代码技巧 # 并行运行 MATLAB 能够支持多线程计算,仅需将一般的 for 循环改写为 parfor 即可 parfor 函数的执行要求十分严格,具体参阅官方说明 大型表格处理 # 模型计算的输出往往是一个超大型数据表格,并且存储在 .mat 文件中,难以进行数据的快速提取。\n直接编写了一个简单的 Python 脚本来进行大型表格数据的提取操作:数据提取器\n同时配合 LaTeX 在线表格编辑网站,能够实现在论文中快速插入表格数据。\n","date":"2025-01-16","externalUrl":null,"permalink":"/blog/code-collaboration-scheme/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n 总结 CUMCM2024 比赛经验,针对数学建模国赛 A 题和MATLAB改进的代码协同方案\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003e流程概览 \n \u003cdiv id=\"%E6%B5%81%E7%A8%8B%E6%A6%82%E8%A7%88\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E6%B5%81%E7%A8%8B%E6%A6%82%E8%A7%88\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cdiv class=\"mermaid\" align=\"center\"\u003e\n \ngraph LR;\nid1(\"工作分配\")--\u003eid2(\"VS Code协同\")--\u003eid3(\"MATLAB代码执行\");\n\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003e工作分配 \n \u003cdiv id=\"%E5%B7%A5%E4%BD%9C%E5%88%86%E9%85%8D\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%B7%A5%E4%BD%9C%E5%88%86%E9%85%8D\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003e主要有两个要点:\u003c/p\u003e","title":"代码协同方案","type":"blog"},{"content":" MySQL 安装部署流程 + 简明语法 CookBook + 学习笔记 信息源 # SQL教程 - 廖雪峰的官方网站 非常非常亲民的 MySQL 教程网站,内置了一个网页版的数据库,方便新手同志们直观了解 MySQL数据库的操作,对于 SQL 的整个背景也有简洁但必要的表述。 安装 MySQL # 安装 MySQL 最简单的方法就是通过 Docker Desktop 来操作;只需要两步就能够完成\n命令行中运行:\ndocker pull mysql 初始化 SQL 并运行:\ndocker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -v /Users/liaoxuefeng/mysql-data:/var/lib/mysql mysql 参数解释:\n参数 含义 -d 表示后台运行 --name 表示容器的名字,不输入 Docker 会自动选择一个名字 -p 3306:3306 表示把容器的端口 3306 映射到本机,这样可以在本机通过 3306 端口连接 MySQL -e MYSQL_ROOT_PASSWORD=password 表示传入一个环境变量,作为root的口令,这里设置的口令是 password,不输入此项则会自动生成一个口令,需要查看日志才能知道口令,建议设置 -v /path:/var/lib/mysql 表示将本地目录映射到容器目录 /var/lib/mysql 作为 MySQL 数据库存放的位置,需要将 /path 改为你的电脑上的实际目录 mysql 告诉 Docker 你要运行的镜像的名称 使用 Docker 运行 MySQL 时,任何时候都可以删除 MySQL 容器并重新运行;如果删除了本地映射的目录,重新运行就相当于一个全新的 MySQL ; MySQL 基础语法 # 查询 # 注释语法:\n-- 这是一条注释 基本查询语法:\nSELECT * FROM \u0026lt;表名\u0026gt;; 条件查询:\nSELECT * FROM \u0026lt;表名\u0026gt; WHERE \u0026lt;条件表达式\u0026gt;; 其中条件表达式内部还可以使用各种逻辑运算关键词,如:AND,NOT,OR\n投影查询:\nSELECT \u0026lt;列1\u0026gt;, \u0026lt;列2\u0026gt;, \u0026lt;列3\u0026gt; FROM \u0026lt;表名\u0026gt;; SELECT \u0026lt;列1\u0026gt; 别名1, \u0026lt;列2\u0026gt; 别名2, \u0026lt;列3\u0026gt; 别名3 FROM \u0026lt;表名\u0026gt;; 排序:\n-- 按score从低到高: SELECT id, name, gender, score FROM students ORDER BY score; -- 按score从高到低: SELECT id, name, gender, score FROM students ORDER BY score DESC; -- 按score, gender排序: SELECT id, name, gender, score FROM students ORDER BY score DESC, gender; -- 带WHERE条件的ORDER BY: SELECT id, name, gender, score FROM students WHERE class_id = 1 ORDER BY score DESC; 分页查询:\n-- 查询第1页: SELECT id, name, gender, score FROM students ORDER BY score DESC LIMIT 3 OFFSET 0; -- 从第0条记录开始查,往后查最多3条,也可以不足3条 聚合查询,利用 MySQL 中的聚合函数来查询:\n-- 使用聚合查询, 查询记录的总条数: SELECT COUNT(*) FROM students; -- 使用聚合查询并设置结果集的列名为num: SELECT COUNT(*) num FROM students; -- 使用聚合查询并设置WHERE条件: SELECT COUNT(*) boys FROM students WHERE gender = \u0026#39;M\u0026#39;; 虽然 COUNT(*) 的结果是一个标量,但是返回仍然是一个二维表格,只是表格只有一行一列 另外还有一些常用的聚合函数:MAX(),MIN(),AVG(),SUM() 等,与 COUNT() 类似\n分组聚合查询:\n-- 按class_id分组进行聚合查询, 类似于for循环: SELECT COUNT(*) num FROM students GROUP BY class_id; -- 注意这里没有选中class_id因此最后的结果表格没有id -- 按class_id分组, 并显示class_id: SELECT class_id, COUNT(*) num FROM students GROUP BY class_id; -- 多个分组标准, 例如按class_id, gender分组: SELECT class_id, gender, COUNT(*) num FROM students GROUP BY class_id, gender; 多表查询(笛卡尔查询):\n-- FROM students, classes: SELECT * FROM students, classes; -- 设置别名,同名列通过.操作服进行区分: SELECT students.id sid, students.name, students.gender, students.score, classes.id cid, classes.name cname FROM students, classes; -- 设置报个别名, 更清爽一点点: SELECT s.id sid, s.name, s.gender, s.score, c.id cid, c.name cname FROM students s, classes c; 多表查询的返回依然是一个二维数据表,但是这个数据表是通过笛卡尔积的形式组织的,因此也叫笛卡尔查询\n连接查询,类似于多表查询,但是两个表之间的组织关系不是通过笛卡尔积进行,而是选取一个为主表,将附表的内容进行连接:\n内连接,只有一种,修饰语为 INNER: -- 选出所有学生,同时返回班级名称: SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score FROM students s INNER JOIN classes c ON s.class_id = c.id; 外连接,有三种,修饰语为 RIGHT,LEFT,FULL: -- 使用RIGHT OUTER JOIN: SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score FROM students s RIGHT OUTER JOIN classes c ON s.class_id = c.id; 理解方法:通过集合的方式来理解\n-- 这里面tableA是主表, 也叫左表; tableB同理 SELECT ... FROM tableA ??? JOIN tableB ON tableA.column1 = tableB.column2; 修改 # 插入语法: -- 添加一条新记录: INSERT INTO students (class_id, name, gender, score) VALUES (2, \u0026#39;大牛\u0026#39;, \u0026#39;M\u0026#39;, 80); -- 一次性添加多条新记录: INSERT INTO students (class_id, name, gender, score) VALUES (1, \u0026#39;大宝\u0026#39;, \u0026#39;M\u0026#39;, 87), (2, \u0026#39;二宝\u0026#39;, \u0026#39;M\u0026#39;, 81), (3, \u0026#39;三宝\u0026#39;, \u0026#39;M\u0026#39;, 83); 更新: -- 更新id=1的记录: UPDATE students SET name=\u0026#39;大牛\u0026#39;, score=66 WHERE id=1; -- 更新score\u0026lt;80的记录: UPDATE students SET score=score+10 WHERE score\u0026lt;80; -- 更新id=999的记录, 没有匹配的记录所以什么都不会做: UPDATE students SET score=100 WHERE id=999; -- 不带WHERE语句的更新会作用在整张表上 UPDATE students SET score=60; 删除: -- 删除id=1的记录: DELETE FROM students WHERE id=1; -- 不带WHERE的删除操作会作用于整张表 DELETE FROM students; ","date":"2025-01-15","externalUrl":null,"permalink":"/blog/mysql-basics/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n MySQL 安装部署流程 + 简明语法 CookBook + 学习笔记\n\u003c/div\u003e\n\n\n\n\u003ch3 class=\"relative group\"\u003e信息源 \n \u003cdiv id=\"%E4%BF%A1%E6%81%AF%E6%BA%90\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E4%BF%A1%E6%81%AF%E6%BA%90\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://liaoxuefeng.com/books/sql/introduction/index.html\" target=\"_blank\"\u003eSQL教程 - 廖雪峰的官方网站\u003c/a\u003e\n非常非常亲民的 MySQL 教程网站,内置了一个网页版的数据库,方便新手同志们直观了解 MySQL数据库的操作,对于 SQL 的整个背景也有简洁但必要的表述。\u003c/li\u003e\n\u003c/ul\u003e\n\n\n\u003ch3 class=\"relative group\"\u003e安装 MySQL \n \u003cdiv id=\"%E5%AE%89%E8%A3%85-mysql\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%AE%89%E8%A3%85-mysql\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003e安装 MySQL 最简单的方法就是通过 Docker Desktop 来操作;只需要两步就能够完成\u003c/p\u003e","title":"MySQL基础","type":"blog"},{"content":" 熟悉项目分析流程,是一个练手性质的分析报告 我在初步完成自己的小插件之后才发现:笔记转博客这个领域似乎没有一个一键式解决方案,为此我写了这篇文章来分析是否要创建一个新的项目来填补这个空白。\n项目没有优劣之分,只有合适与否,这篇文章中涉及的评价标准都是围绕是否符合博客网页要求进行的,因此可能有些项目并不适合做博客网页,但是这丝毫不影响项目本身的价值。\n领域定义 # 在所有分析开始之前,需要对于笔记转博客这个领域有一个清晰的界定。\n笔记:此处的笔记特指 Obsidian 中的笔记,含有 Obsidian Flavored Markdown,这对笔记向网页转换的过程提出了不小的要求。\n博客:博客,顾名思义是一种获得流量的手段,创作者花费时间创作笔记,然后经由转换软件,生成排版精美、功能丰富的博客网页\n评价细则如下:\n隐私方面\n是否本地运行 是否开源 使用舒适性\n与 Obsidian 语法的适配程度 服务部署复杂程度 帮助文档撰写详细程度 个性化调整复杂设置 网页功能完整性\n默认配套网页的核心功能是否齐全(搜索、日间/夜间模式等) 默认网页美观程度 是否支持 SEO 对 Obsidian 原生语法的转化效果是否生硬(例如:展示性链接内是否存在不能翻译的代码块、是否舍弃部分 Obsidian 语法特性等) 项目概述 # 在我的设想中,这个项目的功能就是构建一个 Obsidian 插件,实现从 Obsidian 笔记到 Hugo 博客网页的无缝导出,支持 Obsidian 的所有基本核心功能。\n成效:大大降低了创建博客网页的成本,只要能够使用 Obsidian 就能够拥有属于自己的博客网页。\n市场和用户可行性分析 # 市场需求分析 # 概述 # 基本需求:搭建个人网站并持续输出的需求,包括自我提升、自我表达、创造独特全面的个人能力展示平台(对接企业招聘)等等\n目标用户群:重度 Obsidian 用户且有分享笔记的需求;想要搭建个人博客但是因为技术难度而放弃的知识创作者\n相关数据 # Flowershow:截至 2024 年 10 月插件下载量为 3355;截至 2025 年 1 月插件下载量为 4594,同时最高下载量的插件有 3211992 的下载量; Quartz 截至 2025 年 1 月收获 GitHub start 数量为 7.7k 已有方案 # Quartz # 推荐指数:❤️‍🔥❤️‍🔥❤️‍🔥❤️‍🔥❤️‍🔥\n介绍 # Quartz 是一个将 Obsidian 笔记转化为网页的工具集。Quartz 的最新版本是 v4 版本,相较于 v3 版本, v4 版本从底层完全重构了代码,去除了对于 Hugo 的依赖,优化了用户自定义的体验。目前 v4 版本主要使用 TypeScript 构建,原本 hugo 的 template 也改用 JSX 替换。\n因此,现在的 Quartz 几乎可以说和 Hugo 没什么关系了,但是目前国内的很多信息还是宣传 Quartz 的底层是 Hugo\n官方样例网站:Welcome to Quartz 4\n评述 # 优点\n功能非常非常完整 所有相关套件中唯一成功解决了展示性 wiki 链接的一个 配套文档很详细 缺点\n几乎没有缺点,唯一一个值得提点的地方就是没有中文的文档 总结:非常优秀的项目,所有在 Obsidian 内显示的样式就是网页中显示的样式,确实也收获了所有现成方案中最多的 GitHub start 数量\nFlowershow # 推荐指数:❤️‍🔥❤️‍🔥❤️‍🔥❤️‍🔥🩶\n介绍 # Flowershow 是一个基于 Obsidian 的整体发布服务,它可以将你的 Obsidian 笔记按照目录结构,转换为一个在线的数字花园网站。而 Vercel 是一个针对前端的云服务,它实现了通过 Github 免服务器快速部署前端服务,每次提交内容都会触发一次自动部署。Flowershow 的官方部署文件中需要使用 Vercel,国内使用可以考虑 Netlify 替换\n参考教程:Flowershow:免费的 Obsidian 笔记发布服务,实现你的数字花园网站\n主观上来讲,这个项目的主创团队是一支很有激情和使命感的队伍,关于 Flowershow 的简介里面包含了很多主创团队的核心理念。\n客观上来讲,Flowershow 的项目定位非常准确,就是一个基于 Obsidian 的博客网页生成平台,因此最终效果从前端和后端两个角度来说都是非常好的。\n评述 # 优点\n定位清晰,工作流程简洁明了 功能支持较为全面 背后有专业的团队进行运维 允许高度的自定义,适合喜欢个性化的创作者 缺点(一下信息均来自 2025 年 1 月)\n部分 Obsidian 的功能并没有处理,例如展示性的 wiki 链接并没有处理,至少介绍文档中跳过了这部分内容 仔细翻找了网站并没有发现反向链接的说明,但是首页信息显示能够支持反向链接 总结:总体上项目做的还是挺好,但是项目还在进行中,部分细节并不到位,对于 Obsidian 语法支持没有那么高要求的创作者就可以采用这个方案了\n官方发布 # 推荐指数:❤️‍🔥❤️‍🔥❤️‍🔥🩶🩶\n介绍 # 下面是几个样例网站:\nObsidian中文教程一个中文教程网站,使用了 Obsidian 官方的发布服务,里面里面可以体现一些功能,例如对于展示性链接的处理 Digital 3D Garden 有深度的前端界面自定义 mister chad 非常简洁工整的小站,内容很充实 Discrete Structures for Computer Science 神似官方的朴素风格 评述 # 优势\n官方发布的网页对于 Obsidian 内部表达的适配效果是一流的,Obsidian 内部所有的功能都能够成功在网页中展示;但是不清楚插件功能如何在网页中展示 有持续的维护服务,能够第一时间适配 Obsidian 的更新 支持高度的个性化设置,如果具有充足的代码经验,可以开发出相当精美的网页;同时还有大量的其他开发者开发的主题 隐私设置,网站能够设置密码,控制访问人员,可能用于企业内部文档管理 有 SEO 加持和移动平台适配,流量可能会更大一些 劣势\n每个月需要支付 8 美元,由于个人网站的流量相当小需要长期持有才会有明显的收益,因此这笔支出不是小数目,这是官方发布服务的致命缺陷 停止付费之后网页将不能被访问 国内的服务支持不佳,流量受限 总结:官方发布适合资金充裕,并且对于网站的自定义开发没有那么高需求的用户。\nDigital Garden # 推荐指数:❤️‍🔥❤️‍🔥❤️‍🔥🩶🩶\n介绍 # Digital Garden 是一款 Obsidian 插件,可以将笔记导出为网页并托管在 GitHub 上,然后再使用 Vercel 或者 Netlify 进行网页的发布。具体操作教程见 Digital Garden教程\n这里是几个样例网站:\nDigital Garden 官方样例 Aaron Youn 民间自制 John\u0026rsquo;s Digital Galaxy 非常丰富的内容,可以详细展示所有 Digital Garden 涉及的特性,特别是展示性链接循环嵌套 评述 # 优点\n功能支持较为全面 支持 Obsidian 的主题迁移 缺点\n对于中文路径不友好 网页界面自定义需要直接处理网页源码,即 HTML JavsScript CSS,并且默认配套的界面不太好看 总结:工作流程非常的简单,功能支持相当的全面,作为插件嵌入 Obsidian 更加轻便。虽然界面美化需要花些功夫,但如果对于界面美观与否并不在意,可以直接上手。\nPerlite # 推荐指数:❤️‍🔥❤️‍🔥🩶🩶🩶\n介绍 # Perlite 是一款网页版 Obsidian 文件阅读器,是 Obsidian 官方发布服务的开源平替。Obsidian Publish的开源替代品Perlite 这是微信公众号上的一个教程文本。\n这款开源平替最大的特点就是:其网页 UI 几乎和 Obsidian 的界面完全相同,提供近乎原生的浏览服务。\n评述 # 优点\n很好地支持几乎所有的 Obsidian 的功能 原生经典界面,给用户提供熟悉感 缺点\n不算是一个博客页面,官方对于项目的定位也确实不是博客网页而是一个“文件阅读器” 需要使用 Docker,启动缓慢,不如插件的那样的轻巧简洁的体验感 总结:Perlite 的定位决定了其并不适合直接用作展示性的博客页面,其界面实在是有点单调,对于访客的视觉吸引力其实并不强。更适合于作为一款网页版的 Obsidian,在上面进行文件的编辑可以更加专注,效果也更好\njekyll+Netlify+GitHub Pages # 推荐指数:❤️‍🔥❤️‍🔥🩶🩶🩶\n介绍 # 方法流程来源于 obsidian 目前最完美的免费发布方案 渐进式教程,教程内容很详细,既有基本的对比评价,也有详细的指导教程\n这是作者构建的例子网站:oldwinterの数字花园\n评述 # 优点\n配置简单 允许高度自定义 缺点\n部分 Obsidian 特色语法不支持,比如 callout 语法 不支持暗色模式 不支持搜索 总结:整体上是一个非常好的 Obsidian 转换为博客网页的实践,但是因为部分核心功能缺失因此并不适合想要完整的网页体验的创作者\nTiddlyWiki # 推荐指数:❤️‍🔥🩶🩶🩶🩶\n介绍 # TiddlyWiki 是一个历史悠久的笔记框架,至今依然有很强的生命力,许多开发者活跃在这个领域中。国内也有相关站点可以供访问:太微舞,以及配套教程:[太微中文教程](https://tw-cn.netlify.app /);国内的开发者在近年推出的衍生版本 TidGi(太记);\n利用Tiddlywiki发布Obsidian库这是一个将 Obsidian 发布到 TiddlyWiki 的流程性教程\n此外还有一些散落在互联网上的介绍和样例:\n了不起的“活笔记”系统:TiddlyWiki(太微笔记) - 少数派非常好的一片笔记文章,真正意义上的一文秒懂 TiddlyWiki;文章作者自己的笔记网站:MRIWiki.cn — 磁共振百科知识太微笔记 [太微中文教程](https://tw-cn.netlify.app /)教程本身就是利用 TiddlyWiki 编写的,可以查看 TiddlyWiki 的使用效果 评述 # 优势\n极致的简洁性与轻量化,可以说没有任何其他的个人网页比它更简单! 经过历史的筛选,拥有广泛的用户群体 成熟的国内服务,不需要科学上网就能够访问 劣势\n由于极致的简洁,导致网页看上去可能有点原始 不算完全的个人博客,其完全不迎合主流搜索引擎,直接靠搜索根本无法访问,难以获得流量(也是我撰写这篇文章之前从未听闻的原因😢) 总结:TiddlyWiki 的确是一个非常简洁和轻量化的笔记框架,这也吸引了很多的用户;但也正是因为其定位并非博客网页,所以导致用户的内容封闭在 TiddlyWiki 社区内部,甚至是封闭在创作者自己手中,无法转化为流量,并不适合有流量需求的创作者,而更加适合作为一个简单纯粹的笔记存储库\n结论 # 在经过完整的分析之前,我并不了解笔记转博客这个领域内部的实际情况,因此萌生了想做一个简化插件项目的想法💡\n但是经过系统性的调查研究,我必须承认 Quartz 确实是这个领域内出类拔萃的项目,无论从 Obsidian 语法适配性、配置流程便捷程度、前端配套界面美观程度、前端界面自定义便捷程度、后端撰写博客便捷程度等等各种方面,几乎都没有上升空间了。\n因此也就不需要我再去启动一个项目来做重复的事情了。在这里向所有笔记转博客领域内的相关项目的开发团队致敬🫡不管是否在文章中提及。\n项目没有优劣之分,只有合适与否,这篇文章中涉及的评价标准都是围绕是否符合博客网页要求进行的,因此可能有些项目并不适合做博客网页,但是这丝毫不影响项目本身的价值。\n向开源先锋致敬🫡🫡🫡\n","date":"2025-01-10","externalUrl":null,"permalink":"/blog/note-to-blog-report/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n 熟悉项目分析流程,是一个练手性质的分析报告\n\u003c/div\u003e\n\n\u003cp\u003e我在初步完成自己的\u003ca href=\"https://morethan987.github.io/blog/plugin-writing-experience/\"\u003e小插件\u003c/a\u003e之后才发现:\u003cstrong\u003e笔记转博客\u003c/strong\u003e这个领域似乎没有一个一键式解决方案,为此我写了这篇文章来分析是否要创建一个新的项目来填补这个空白。\u003c/p\u003e","title":"笔记转博客项目分析报告","type":"blog"},{"content":" 博客网站折腾日志,从手搓到 Hugo 的曲折经历。 为什么 Hugo # 最初也只是因为偶然间听说了 Hugo 可以做网页,并且听说编译静态页面非常高效,于是才去搜集的相关资料——据说 Hugo 是世界上最快的静态页面生成器,官方网站也是这么写的。\n当然,口说无凭,下面就是我初次本地编译运行 Hugo 得到的输出,即在完全没有 public 文件夹的情况下的输出:\nZH-CN EN Pages 53 51 Paginator pages 0 0 Non-page files 13 13 Static files 7 7 Processed images 3 0 Aliases 18 17 Cleaned 0 0 Built in 872 ms\n中英文总共 104 个网页页面花费时间 0.872 秒,并且包含构建本地服务的时间,这个速度确实没什么好挑剔的了。并且本地的服务能够实时监听源代码的改动并进行增量重构,这个增量重构的时间取决于改动的多少,一般在 0.03 秒左右。\n我并没有用别的网页生成工具搭建过博客,因此无法给出其他生成器的实际生成速度 参考引用 # 下面是我在搭建博客的过程中所用到的所有资源链接:\n莱特雷-letere 这是一位博主的网页,也是用 Hugo 搭建的,里面同时也有很多其他的网页工具的教程;这是他在 B 站上发布的系列视频教程 Blowfish 这是我使用的一款 Hugo 主题,文档写的相当的好,真的没见过如此耐心的作者。 Hugo官方网页 Hugo Themes 部署全流程 # 搭建 Hugo 环境 # 这一部分在那位博主的网页和视频教程中都有非常详细的讲解,不喜欢看文字的可以去看视频😝\n说实话,Hugo 的环境搭建真的是我见过的最简单的,没有之一。你只需要到 Hugo官方网页去把 Hugo 下载下来,然后存放到合适的文件夹里面,然后解压就完成了,解压之后的文件夹内也只有一个 hugo.exe 文件,简直不要太简单。\nHugo 真的是太方便了,我曾经尝试过 Hexo 但是 Node.js 的配置就把我拒之门外了,到现在我也不知道为什么会编译报错😢 稍微需要那么一点点🤏难度的工作其实就是把 hugo.exe 所在的目录添加到环境变量里面去。\n生成模版系统 # 在 hugo.exe 的目录中打开终端,然后输入命令 hugo new site your-site-name,然后就可以看到一个新的文件夹📂出现在了当前文件夹里面。\n模板系统听着很高级,其实就是在你的 hugo.exe 的同级目录下面建一个文件夹,但是里面的所有文件夹都有特殊的含义,不能随便改动。\n名称 含义 asset 存放网站结构用到的图片,图标等资产 config 网站配置文件夹(初始时可能没有,有些主题需要) hugo.toml 网站配置文件之一 content 所有内容都在这里面 public 是编译后生成的完整网页,一开始没有 themes 存放你的网站主题 主题配置基本操作 # Hugo 的网站主题很多,具体参考 Hugo Themes 你可以选一款你喜欢的主题,然后下载之后就放在 themes 文件夹里面就行。这一部分文字描述非常抽象,见视频教程\n这里有一个重点是:基本上每一个主题都会配置一个样例网站,一般在文件夹 exampleSite 里面,如果实在不想跟着网站文档自己配置,直接用这个样例网站的配置也是可以的。\n每一个不同的主题基本配置完成之后都要进行个性化配置。这里我重点推荐重点推荐一下我使用的主题 Blowfish 相当好的一款主题,向作者致敬🫡\nBlowfish 主题 # Blowfish 官方文档上面已经有了非常非常详细的指导文档,不再过多赘述。任何一个多余的字都是对于如此详细的指导文档的不尊重🫡\n我这里简要说明一些可能出现的问题,下面的内容你可能需要仔细阅读官方文档之后才能明白其中含义🤔\n在 params.homepage.showRecent = false 的情况下,为什么还会显示\u0026quot;最近文章\u0026quot;? 如果遇到这个问题,说明你跟我一样懒惰🤪直接套用了 exampleSite 的代码。这是因为控制主页面的接口不止这一个,还有一个在 layouts\\partials\\home\\custom.html 文件中。\n如果你不介意那么直接忽略就行,如果你介意(跟我一样🤪),那就把文件中的下面的代码注释掉👇\n\u0026lt;section\u0026gt; {{ partial \u0026#34;recent-articles-demo.html\u0026#34; . }} \u0026lt;/section\u0026gt; 为什么我使用 svg 格式的 logo 无法完成(日间/夜间)模式的切换? 这是我发现的一个 bug,已经给主题作者推送我改进的代码了,详见代码改进或 SVG 支持\n为什么浏览器窗口上的小图标一直都是 blowfish,即使改换了 logo 也不行? 官方文档其实是有写的,但藏的太深了,见局部模板(Partials) · Blowfish\n说实话,官方文档写的真的好👍一套完整流程走下来竟然只有这么点不太容易理解的错误😋\n配套插件 # 我日常习惯使用 Obsidian 来写文章,由于 Obsidian 的格式与 Blowfish 的格式还是有较为明显的区别,二者的格式转换非常麻烦🤔\n在查询了一圈之后,发现根本就没有适合的插件!于是,我自己开发了一个插件:Hugo-Blowfish-Exporter\n虽然插件功能很简单,但是也已经覆盖了我自己绝大部分的使用功能,包括:\n- callout(支持所有官方的 callout 名称,需要新增图标)\n- 内联数学公式(Blowfish 支持块级公式)\n- mermaid(支持 mermaid 图表)\n- 图片插入(能够自动导出图片)\n- Wiki链接导出(并不支持展示性链接😢)\n非展示性链接简单处理为网页超链接形式\n展示性链接较为复杂:需要覆写 Blowfish 主题的源代码,通过 mdimporter 这个 shortcode 来进行文件注入;同时为了方便链接,每一个文件都需要设置 slug 属性来标记网站中存放 markdown 文件的文件夹\n对于主题源代码的覆写详见 mdimporter 以及用于去除注入文件开头元数据的 stripFrontMatter;覆写目录参考 GitHub 上的配置\n这个插件也是投入了我巨大的精力,虽然也只有几天时间🤔但是那几天还是挺累的😵‍💫\n如果这个插件帮助了你,还请转发分享;如果你对于这个插件的功能不满意,你也可以在 GitHub 上向我提交 Issue🫡或者熟悉代码的朋友可以直接把源码拿去修改,注释很完整,代码比较规范🤗\n如果你能把你亲自修改升级的代码也分享给我(在 GitHub 上提交 Pull Request)那更是万分感谢!☺️\n写在最后 # 一个博客网站的搭建只是万里长征的第一步,真正困难的还是博客内容的填充。\n正如我在一次写插件的经历中所写,很多个人博客网站从一开始的火热到最终的沉寂可能只需要短短一年的时间。\n在这个生活节奏越来越快的时代,无意义、无效率的事情大多都会向高效让步,曾经的初心与梦想往往会向生活妥协。我自己也早已经没有了当初的热情,行为方式上也更加的像一个真正的成年人。\n但是我仍然是有些不甘心,这个网站就是一种抗争吧,我会尽力维护下去,这也是我写插件方便我更新博客的目的所在。\n因此希望这篇教程所提供的内容能够帮助到正在准备搭建自己的博客网站的你,你我共勉🫡\n","date":"2025-01-07","externalUrl":null,"permalink":"/blog/hugo-blog/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n 博客网站折腾日志,从手搓到 Hugo 的曲折经历。\n\u003c/div\u003e\n\n\n\n\u003ch2 class=\"relative group\"\u003e为什么 Hugo \n \u003cdiv id=\"%E4%B8%BA%E4%BB%80%E4%B9%88-hugo\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E4%B8%BA%E4%BB%80%E4%B9%88-hugo\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003e最初也只是因为偶然间听说了 Hugo 可以做网页,并且听说编译静态页面非常高效,于是才去搜集的相关资料——据说 Hugo 是\u003cstrong\u003e世界上最快\u003c/strong\u003e的静态页面生成器,官方网站也是这么写的。\u003c/p\u003e","title":"Hugo博客搭建","type":"blog"},{"content":" 记一次写插件的经历,以及从中收获的一些感想。 缘由 # 事情起源于我这个博客网站。我在微信公众号上偶然间浏览到了关于用 Hugo 建立博客网站的信息,正好我也想翻新一下我那简陋的小网站。我原来的小网站非常非常的原始,整个写作流程都需要在 HTML JS 和 CSS 之间狼狈地切换。并且我非常崇拜的大佬 Lilian Weng 的 博客 也是用 Hugo 搭建的,这也更加坚定了我换底层的决心。\n于是我便迅速开始了对于 Hugo 的接触。\n结果真的出乎意料!我原来的网页花费了我将近一个月的时间,用 Hugo 竟然不到一上午就搞定了。更令我惊讶的是 Hugo 作为一个用 Go 编写的程序,其竟然不需要用户搭建 Go 环境!😮\n同时,我也发现了一个非常用心的 Hugo 主题 Blowfish 。这真的是我见过的文档配置最为详细的一个项目,没有之一(๑•̀ㅂ•́)و✧\n在 Hugo 和 Blowfish 的强力驱动下,我的小网站竟然变得像模像样的了。当然请原谅我并不擅长美化页面,所以我就直接套用了 Blowfish 官方网站的界面设置,因为我觉得任何的改动都会让这个精美的页面变得不协调。\n说实话,做完这一切我并没有什么特别的情绪波动,除了敬佩 Hugo 和 Blowfish 的作者们强悍的编码能力。\n直到我想将我在 Obsidian 中大量的笔记都上传到这个博客网站。\n原创的苦涩 # 我发现在 Obsidian 中并没有现成的可以直接适配 Blowfish 主题的格式转换插件。于是在前面那“愉快体验”的助推下,我决定自己写一个插件!(😄虽然过一会儿就笑不出来了😢)\n后面的经历实在是没什么好描述的,一遍又一遍地在网页之间来回切换,不停地搜索各种API文档,与AI机器人的沟通也从未停止。经过了无数次修改,我终于写出来了一个再简单不过的东西:识别文档中的固定模式然后进行内容替换。\n令人哭笑不得,相比于创建网站那短短的几个小时,我这将近四十个小时的工作几乎可以说微不足道。有那么一瞬间我真的想直接删掉我那几百行的代码。\n是的,就这么一个简单的插件就让我心力交瘁,疲惫不堪。我亲口品尝到了原创的苦涩。\n现在让我回头看 Hugo 和 Blowfish 我感受到了深深的震撼,如此复杂的功能实现不知道要消耗多少精力。如果说他们的工作都是付费的,那我还能心安理得地接受如此的工作量。然而他们都是开源的,有没有收入全凭用户喜好。\n我看着 Blowfish 作者那停滞在2024年3月的博客,我陷入了沉思。\n情怀与理想 # 我猜想 Blowfish 的作者肯定是因为别的什么事情暂时放缓了对于这个主题的维护,毕竟这个项目并没有带来多少实际的收入。\n突然之间我回想起了之前那些被我忽略的现象,一些 GitHub 达人主页上满满的绿色瓷砖慢慢变得稀疏,最后消失。在这平静如水的变化之下,或许是一个人生活的转变。或因生活工作忙碌,或因开发动力逐渐衰减,但最后原本的热血初心都淹没在了寂静之中。我无法阻止这样的现象发生,但我理解这背后的原因。\n开源是情怀,但是情怀不能当饭吃。人总是要活在当下的。\n我想起来 bilibili 上的一位博主 码农高天 ,一位 Python 的核心开发者,用幽默诙谐的段子吐槽开源人的悲惨待遇。他那年纪轻轻就已经花白的头发让人不经感慨“生活真是不容易啊”——写了大半辈子的代码,现在竟然还是待业在家,靠着发发视频赚点外快。\n写在最后 # 人生不如意,十之八九。我又一次看着那四十多小时的工作成功,笑着摇了摇头。\n写完这一句,我就睡觉去了,现在是2025年1月6日凌晨1:48,明天还有英语的期末考试,还没复习呢。\n我看着这篇博客,又一次笑着摇了摇头。\n这就是生活。\n","date":"2025-01-06","externalUrl":null,"permalink":"/blog/plugin-writing-experience/","section":"Blogs","summary":"\u003cdiv class=\"lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl\"\u003e\n 记一次写插件的经历,以及从中收获的一些感想。\n\u003c/div\u003e\n\n\n\n\u003ch3 class=\"relative group\"\u003e缘由 \n \u003cdiv id=\"%E7%BC%98%E7%94%B1\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E7%BC%98%E7%94%B1\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003e事情起源于我这个博客网站。我在微信公众号上偶然间浏览到了关于用 \u003ccode\u003eHugo\u003c/code\u003e 建立博客网站的信息,正好我也想翻新一下我那简陋的小网站。我原来的小网站非常非常的原始,整个写作流程都需要在 \u003ccode\u003eHTML\u003c/code\u003e \u003ccode\u003eJS\u003c/code\u003e 和 \u003ccode\u003eCSS\u003c/code\u003e 之间狼狈地切换。并且我非常崇拜的大佬 \u003ccode\u003eLilian Weng\u003c/code\u003e 的 \u003ca href=\"https://lilianweng.github.io/\" target=\"_blank\"\u003e博客\u003c/a\u003e 也是用 \u003ccode\u003eHugo\u003c/code\u003e 搭建的,这也更加坚定了我换底层的决心。\u003c/p\u003e","title":"一次写插件经历","type":"blog"},{"content":" 某些问题机器能够非常容易解决,而对于人类而言非常复杂;反之亦然。\n这种反常悖论似乎来源于知识的可概括性,某些知识具有良好的可压缩性,但另外一些则不具有。有一个更加准确的概念叫做计算可约性\n一个很简单的例子:考试,从逻辑上来说全部都是基于最基本的知识推理而来的对吧?讲道理,考试应该能够完全通过逻辑推理来解决所有问题。但是事实上,考过试的都知道,从阅读题目到形成解题思路的过程貌似并不那么“有逻辑”,甚至可以说是没有什么技巧可言,纯粹就是一种做题的感觉。\n两类知识 # 在现有知识的基础上,能够通过有限的符号逻辑表达式得到的知识;其特点就是精确,高度概括;问题边界明确,能够清晰定义已知条件有什么、通过什么样的方法、得出什么样的结果;在明确的已知条件下能够精准预测问题结果的规律(在问题的考虑范围内没有“概率”这个概念的容身之处) 对于那些难以根据已知条件,通过精确的逻辑推理得到结果的问题,我们采用统计性的尝试,得出的有一定价值的规律;特点是基于大量尝试,难以定义问题的边界,甚至难以获取需要的已知条件,就是这种恶劣的条件下,强行匹配已知条件与结果的联系,进而得出的规律,其结果具有波动性、不确定性、局部正确性。 两类知识的占比 # 明显可概括的知识远远少于不可概括的知识;可概括的知识从某种意义上来说是不可概括知识的特殊情况;\n不可概括向可概括转化的趋势 # 不可概括知识的特点决定了其获取的难度(大量尝试消耗大量能量,这一步不可避免),运转不可概括性知识的能量消耗极高(知识难以概括就会占用大量的资源来维持运转),不可概括的知识难以跨过人类个体生命的边界(不可概括的知识往往会随着个体生命的消散而丢失,因为其难以概括从而难以以任何媒介形式流传,但机器智能似乎在这方面有本质的区别);人类个体的能量十分有限,难以完全依靠不可概括知识来应对外部世界,因此会有从不可概括知识向可概括知识转化的特点,尽管这个过程对于个体而言相当困难、极其耗费能量(本身就是一个不可概括的知识),但从整个人类的角度上来说节省了海量的能量;\n可接受功率决定了智能的上限 # 在这里似乎可以给出另外一个划分智能等级的标准:个体接受功率输入的级别,级别越高其,个体能掌握的不可概括知识越多;由于能量总是有限的(我们人类能消耗的能源级别可能是这个地球上面的资源,但是机器智能的消耗可能是恒星级别的),因此总会有一定程度上的知识概括,但是由于不可概括知识的固有性质,高等级智能的可概括知识对于低等级智能来说并不是可概括的;知识的可概括性具有相对性;\n从这里可以看出,可接受功率对于一个智能系统来说具有关键意义。从另一个角度来说,或许我们能够人为降低机器智能可消耗功率的上限来观察不可概括知识向可概括知识转化的过程\n","date":"2025-01-03","externalUrl":null,"permalink":"/blog/moravecs-paradox/","section":"Blogs","summary":"\u003cblockquote\u003e\n\u003cp\u003e某些问题机器能够非常容易解决,而对于人类而言非常复杂;反之亦然。\u003c/p\u003e","title":"关于莫拉维克悖论的思考","type":"blog"},{"content":" 前言 # 这篇文章主要是对于 CUMCM 2024 的比赛全过程进行一个梳理和总结。\n我们的队伍是在 2023 年的冬天组起来的,CUMCM 2024 也是我们第一次参与“数学建模”比赛。经过了大大小小的模拟赛,最终进入了全国的比赛。在提交最终论文之后获得省级一等奖并推荐国家级一等奖,最终获得国家级二等奖。\n整个过程有振奋惊喜,也有失落遗憾;我们在比赛中应该是做对了一部分事情,因此我们初次参赛就获得了国家级奖项;但不足肯定是有的,毕竟从“推荐国家级一等奖”变成“国家级二等奖”总是有理由的。\n总之,这次经历着实是令人难忘,更加值得梳理和总结经验,为明年的比赛作准备。\nCUMCM 全称为 Chinese Undergraduate Mathmatical Contest in Modeling;民间称呼为“数模国赛” 用词说明 # 用词 说明 计算系统 传统意义上的建模过程,即封装一个超大的函数 优化系统 用于优化计算系统中可调参数的系统,生成最优参数配置 计算流 计算系统中输入数据的处理过程 计算流结点 工作流中关键性的中间步骤 优化流 优化系统的主体逻辑 论文主体内容 包括摘要、重述、计算流和优化流的描述、结果展示与分析,也就是论文收尾之前的所有内容 论文收尾 包括灵敏度分析和模型推广 客观情况 # 任务分工 # 虽然比赛有很多个选题可供选择,但是我们小组选择专攻优化类问题,也就是 A 题。\n我:建模 + 代码 + 部分论文撰写 CL:建模 + 论文撰写 + 部分代码 HWJ:论文美化 工作流程 # 整个 A 题的代码部分大致可以分为两个系统:\n计算系统: 功能:接受输入数据与参数,返回需要的结果 性质:直接由题目决定,不同题目有不同的计算系统,需要临时构建 优化系统: 功能: 接受计算系统并将其作为可优化的目标函数,执行自身的优化逻辑,最后返回计算结果 性质:方法体系较为成熟,可以在比赛前就进行多种优化系统的准备 论文撰写部分分为:\n整体框架:由 LaTeX 模板决定 主体内容填充:对工作流和优化流的清晰描述 排版和美化:调整各个部分的详略,搭配说明性的图片(流程图,示意图) 收尾内容 预建模 # 目标:在精确理解题目的前提条件下,迅速进行初步的建模,基本确定建模方向、计算方法;\n预计用时:3h\n工作:队伍所有成员都进行全网资料查询,看看有没有基本命中题目的文献资料\n命中成功:最理想的情况,这个时候直接研读论文,收集思路即可; 命中失败:虽然没有现成的资料可供参考,但是在查阅文献的过程中或多或少也积累了一定的思路 建模初期 # 总目标:构建足够精确的、适配优化方法的计算系统\n建模:明确输入数据在各个计算流结点之间的操作 代码:用代码实现计算流,实现数据可视化 论文:填充第一个小问的内容,并初步排版 预计用时:30h\n工作:\n所有队员一起进行建模,优先明确建模思路,给出完整的数学推导过程 我和 CL:代码实现与论文内容填充同步进行 HWJ:绘制无法用代码生成的更加生动的示意图 建模中期 # 总目标:构建合适的优化系统\n建模:根据计算系统的特殊性,选择最为匹配的优化系统 代码:在实现优化系统的过程中进行微小改动,匹配计算系统 论文:完成论文的主体部分,开始进行局部细节微调 预计用时:20h\n工作:与前面类似只不过工作的中心从代码编写转到了论文撰写\n精简论文,此时的论文非常臃肿 微调论文的逻辑,使得上下文关联度更高 美化排版,减少文字,增加图片 建模后期 # 基本建模完成了,全员进行漏洞的检查: 错别字、不准确的表述、公式拼写错误等常规检查 优化代码中的注释,让其更加易读 重点检查个人信息 比赛论文中不能保留任何个人信息,包括代码中的文件路径,例如 C:\\Users\\Morethan ;保留个人信息是非常严重的错误! 实战效果 # 当我们将上述策略应用于实战过程中,也就是 CUMCM 2024 的正式比赛中,得到的效果如下:\n有效用时: 比赛总时长三天,共计 72 小时 队伍从早上七点到晚上八点,除开吃饭用时,一天的有效时间为 12 个小时 时间利用率为 \\(50\\%\\)(对比之下很低🤔) 最终完成工作: 论文主体 28 页 A4 纸 代码部分 35 页 A4 纸,除开每一个小题之间的复用代码,应该有 20 页左右 全文配图共计 25 张 以上数据是论文精简之后的,初稿论文将近 50 页 未完成工作: 最终结果的计算,由于计算量过大(代码效率并不高),最终提前两个小时写完所有代码,但并没有足够的时间运算出结果😭😭 模型的计算精度不够,精度为 1s 没有达到标准答案给出的精度 论文的收尾部分其实并没有完成 优点 # 选题 # 专注于 A 题,在模拟赛中积累了充分的经验,磨合出了一套高效的工作流程\n对于 A 题的方法论构建比较完善\n工作流程 # 工作流程相对清晰,效率较高\n以最终论文为导向,建模、论文、代码三线同时进行,保证了论文内容的充足\n分工 # 采用模糊分工,每个队员都有一个主要分工和次要分工,在各自的主要分工上能够独立工作,在其他的次要分工上面也能够完成一定的工作,大大提高了时间利用率\n队员很给力,因为同时兼顾两个分工任务意味着更多的学习成本\n不足 # 工作流程 # 计划很完美,但是在实践中还是有些必要的环节没有做好\n有效时间占比:晚上八点收工太早了!应该占用更多的时间来进行建模试错,保证模型的正确性和精确性\n分工 # 代码的编写、代码的调试、代码的可视化、结果的计算、结果的可视化所涉及的代码量太大,一人难以搞定;\n因为模糊分工所引起的任务重叠,增加了协同成本\n建模 # 题目理解准确度:这次我们对于题目的理解出现了较大的偏差,导致我们浪费了挺多时间在模型修正上面; 代码 # 代码的效率:之前由于没有时间的限制,导致对于“超长”代码的准备不足,没有代码并行的经验;\n结果精度:一开始建模过于粗糙,并且用了一个不好的特性:将时间步长设置为 1 ,并且将作为数组索引,导致后期难以将时间的步长减小,导致最后结果的精确度不够\n改进方案 # 精心挑选场地,增加有效时间✨是最重要的✨ 分工 # 略微改动人员分工,增加代码方面的人力投入\n在各自的主要分工和次要分工上增加学习投入,增加工作效率\n建模 # 更专注于题目的理解,不能太着急;建模错误再修正是得不偿失的 代码 # 构建一套行之有效的代码协同方案,增强代码编写速度\n着手构建代码编写规范:\n变量命名 文件开头的说明文档 代码编写流程规范 代码并行化:在代码中添加一些可并行的代码,提高运行速度\n所有代码方面的改进最终落实为一个文档!不能光喊口号! 落实后的方案:代码协同方案 论文 # 研究优秀论文\n关注其论文框架 关注其语言风格、文本可读性、详略、配图逻辑、图片可读性 改进自身\n优化论文主体逻辑框架,细化每一块的内容 语言风格、文本可读性、详略、配图逻辑、图片可读性等等细节的改进 成果以 LaTeX 模板中注释的形式固定! 总结 # 一份没有满分的答卷比一份满分的答卷更有收获!\n积累应用数学的知识,增强论文撰写能力,提高发现问题的能力,这是比比赛本身更有意义的东西🫡\nCUMCM,每一个数模人都能从中受益🤗\n","date":"2024-09-12","externalUrl":null,"permalink":"/blog/cumcm2024/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003e前言 \n \u003cdiv id=\"%E5%89%8D%E8%A8%80\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%89%8D%E8%A8%80\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003e这篇文章主要是对于 CUMCM 2024 的比赛全过程进行一个梳理和总结。\u003c/p\u003e","title":"CUMCM 2024总结","type":"blog"},{"content":" 创建虚拟环境 # 创建 # 一些常规的代码例子如下👇\n# 创建虚拟环境 python -m venv your_env_name # 指定python版本创建虚拟环境,如果你的python是默认安装路径 python -m venv your_env_name --python=python3.11 # python是自定义的安装路径 D:\\Python\\Python311\\python.exe -m venv your_env_name 下面有一些可选参数用于创建自定义的虚拟环境:\n参数名 含义 --system-site-packages 创建的虚拟环境将包含全局Python环境中的包,这可以避免重复安装一些常用的包 --clear 如果指定的虚拟环境目录已经存在,这会清除目录中的所有内容,然后重新创建虚拟环境 --version 用于确认虚拟环境中 Python 的版本 所有的参数说明都可以通过运行 python -m venv -h 来获得;不用到处查文档了~😆 激活 # 默认情况下,虚拟环境处于非激活状态。在“your_env_name/Scripts/”目录下将有一个名为“activate”的文件,用命令行运行即可。\n# 激活虚拟环境 your_env_name/Scripts/activate 程序打包 # 我们经常需要把自己写的 Python 程序分享出去。然而只分享源代码会使得不太懂代码的用户非常苦恼,因为源代码的运行还需要搭建本地运行环境,因此打包程序应运而生。\npyinstaller # 安装非常简单,就像别的 Python 包一样 pip install pyinstaller 即可;使用时在目标文件所在的目录启动终端,然后运行命令即可。\n特点:打包速度较快;打包后的程序较大\n常见的命令代码:\n# 将main.py文件打包为一个独立的可执行文件;可执行文件运行后禁用命令行窗口 pyinstaller -F -w main.py # 将main.py文件打包为一个工程文件夹;可执行文件运行后启用命令行窗口 pyinstaller -D main.py 参数 说明 -h, --help 显示帮助信息并退出 -v, --version 显示程序版本信息并退出 -F, --onefile 将所有内容打包为一个独立的可执行文件 -D, --onedir 将所有内容打包为一个目录(默认选项) -w, --windowed, --noconsole 禁用命令行窗口(仅对 Windows 有效) -c, --console, --nowindowed 使用命令行窗口运行程序(默认选项,仅对 Windows 有效) -a, --ascii 不包含 Unicode 字符集支持(默认包含) -d, --debug 产生 debug 版本的可执行文件 -n NAME, --name=NAME 指定生成的可执行文件或目录的名称(默认为脚本名称) -o DIR, --out=DIR 指定 spec 文件的生成目录(默认为当前目录) -p DIR, --path=DIR 设置 Python 导入模块的路径(类似设置 PYTHONPATH) -i \u0026lt;FILE\u0026gt;, --icon \u0026lt;FILE\u0026gt; 设置可执行文件的图标(支持 .ico 或 .icns 格式) --distpath DIR 指定生成的可执行文件的输出目录(默认为 ./dist) --workpath WORKPATH 指定临时工作文件的目录(默认为 ./build) --add-data \u0026lt;SRC;DEST or SRC:DEST\u0026gt; 添加额外的数据文件或目录到可执行文件中(Windows 使用分号,Linux/OSX 使用冒号分隔源路径和目标路径) --add-binary \u0026lt;SRC;DEST or SRC:DEST\u0026gt; 添加额外的二进制文件到可执行文件中 --hidden-import MODULENAME 添加未自动检测到的模块 --exclude-module EXCLUDES 排除指定的模块 --clean 清理 PyInstaller 缓存和临时文件 --log-level LEVEL 设置构建时控制台消息的详细程度(可选值:TRACE、DEBUG、INFO、WARN、ERROR、FATAL) Nuitka # 将 Python 代码打包为 exe 可执行文件,转换原理是先将 Python 代码转换为 C 代码,然后再编译 C 代码。\n特点:打包速度相当慢;需要额外安装 C 编译器,尽管可以自动完成但是对于内存空间管理非常严格的用户并不适用;打包后的程序体积很小(实测是 pyinstaller 的十分之一)\n安装命令:\npip install -U nuitka 常见使用命令:\n# 将main.py文件打包为一个exe文件,使用链式优化,完成打包后清理临时文件 python -m nuitka --lto=yes --remove-output --onefile main.py 参数 说明 --standalone 创建一个包含所有依赖的独立可执行文件夹。 --onefile 将所有内容打包为一个单独的 .exe 文件。 --optimize=N 设置优化级别(0、1 或 2),数字越大,优化越多。 --lto 启用链接时优化(Link Time Optimization),可选值为 no、yes 或 thin。 --enable-plugin=\u0026lt;plugin_name\u0026gt; 启用指定插件,如 tk-inter、numpy、anti-bloat 等。 --output-dir=\u0026lt;dir\u0026gt; 指定编译输出目录。 --remove-output 编译完成后删除中间生成的 .c 文件和其他临时文件。 --nofollow-imports 不递归处理任何导入模块。 --include-package=\u0026lt;package_name\u0026gt; 显式包含整个包及其子模块。 --include-module=\u0026lt;module_name\u0026gt; 显式包含单个模块。 --follow-import-to=\u0026lt;module/package\u0026gt; 指定递归处理的模块或包。 --nofollow-import-to=\u0026lt;module/package\u0026gt; 指定不递归处理的模块或包。 --include-data-files=\u0026lt;source\u0026gt;=\u0026lt;dest\u0026gt; 包含指定的数据文件。 --include-data-dir=\u0026lt;directory\u0026gt; 包含整个目录的数据文件。 --noinclude-data-files=\u0026lt;pattern\u0026gt; 排除匹配模式的数据文件。 --windows-icon-from-ico=\u0026lt;path\u0026gt; 设置 Windows 可执行文件的图标。 --company-name, --product-name, --file-version, --product-version, --file-description 设置 Windows 可执行文件的属性。 ","date":"2024-08-10","externalUrl":null,"permalink":"/blog/pytips/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003e创建虚拟环境 \n \u003cdiv id=\"%E5%88%9B%E5%BB%BA%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%88%9B%E5%BB%BA%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\n\n\u003ch3 class=\"relative group\"\u003e创建 \n \u003cdiv id=\"%E5%88%9B%E5%BB%BA\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%88%9B%E5%BB%BA\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h3\u003e\n\u003cp\u003e一些常规的代码例子如下👇\u003c/p\u003e","title":"Python小技巧","type":"blog"},{"content":" 引用文献 # 我对于贝叶斯优化的理解也并不多,主要参考下面的内容👇\n【机器学习】一文看懂贝叶斯优化/Bayesian Optimization\n一文详解贝叶斯优化(Bayesian Optimization)原理\n贝叶斯优化(BayesianOptimization)\n超参数优\u0026mdash;贝叶斯优化及其改进(PBT优化)\n贝叶斯优化 (Bayesian Optimization)\nMATLAB官方文档\n优点和算法原理 # 这里重点描述贝叶斯优化的优点以及其算法原理。如果你只关注“怎么用”,可以先了解贝叶斯优化的优点,然后跳转到#MATLAB用法\n优点 # 算法原理 # MATLAB用法 # 代码一览 # % 定义目标函数 function y = objectiveFcn(x) y = (1 - x.x1)^2 + 100 * (x.x2 - x.x1^2)^2; end % 定义优化变量 vars = [optimizableVariable(\u0026#39;x1\u0026#39;, [-2, 2]) optimizableVariable(\u0026#39;x2\u0026#39;, [-2, 2])]; % 执行贝叶斯优化 results = bayesopt(@objectiveFcn, vars, ... \u0026#39;AcquisitionFunctionName\u0026#39;, \u0026#39;expected-improvement-plus\u0026#39;, ... \u0026#39;MaxObjectiveEvaluations\u0026#39;, 30, ... \u0026#39;IsObjectiveDeterministic\u0026#39;, true, ... \u0026#39;Verbose\u0026#39;, 1); % 查看结果 bestPoint = results.XAtMinObjective; bestObjective = results.MinObjective; fprintf(\u0026#39;最优解 x1: %.4f, x2: %.4f\\n\u0026#39;, bestPoint.x1, bestPoint.x2); fprintf(\u0026#39;最优目标值: %.4f\\n\u0026#39;, bestObjective); 参数说明 # Params Meaning AcquisitionFunctionName 选择采集函数,这决定了算法在每次采样之后如何选取下一个采样点 MaxObjectiveEvaluations 最大迭代轮次 IsObjectiveDeterministic 如果目标函数是确定的,不包含噪声,则设置为 true ;否则设置为 false Verbose 决定了结果输出的详细程度,所有的输出可能包含多张图表 每个参数具体的可选值见官方文档: bayesopt;官方写的相当细致,还有很多样例。\n数学建模人必会技能之一就是读文档😝 ","date":"2024-08-05","externalUrl":null,"permalink":"/blog/bayesianopt/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003e引用文献 \n \u003cdiv id=\"%E5%BC%95%E7%94%A8%E6%96%87%E7%8C%AE\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%BC%95%E7%94%A8%E6%96%87%E7%8C%AE\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003e我对于贝叶斯优化的理解也并不多,主要参考下面的内容👇\u003c/p\u003e","title":"贝叶斯优化","type":"blog"},{"content":" 背景提要 # 你应该知道如何通过命令行与电脑交互,包括但不限于:Windows如何唤出命令行/终端,正在运行中的命令什么时候结束\u0026hellip;\u0026hellip;\n懂一点点翻墙的技术,OverLeaf是个国外的软件,与之硬相关的latex项目也是国外的,因此下载相关依赖的时候能够直接接受国外流量会省掉很多麻烦。如果你没有VPN的话就需要为每一个包管理工具指定一个国内源,但有时候国内源更新并不及时。\n懂一些Vim的基本操作,比如:如何开启插入模式,如何保存退出,不保存退出等\n部署全流程 # 安装Linux # 在 Windows App Store 里面直接搜索一个Linux发行版本并下载,笔者选择的是Kali。安装完成后可以在开始菜单中直接打开,打开后会跳出命令行窗口,初次打开需要填写需要用户名与密码进行注册。\n此时你的命令行应该有一个 Warning 提示。这是因为你还没有安装 WSL(Windows Subsystem for Linux);同时,在填写密码的时候你的输入不会显示在命令行,但已经被记录了 为什么需要一个Linux系统?因为OverLeaf的sharelatex模型需要Linux环境。也正因如此,据说在Linux系统上运行的OverLeaf更加流畅。\n安装WSL # 安装WSL2,直接在Windows命令行中运行:\nwsl --install 这个程序安装后也可以直接打开,打开后也有一个Warning提示。这时候需要在 C:\\Users\\ASUS 目录下面写入一个text文件,然后重命名为 .wslconfig;\n写入内容为:\n[experimental] autoMemoryReclaim=gradual # gradual | dropcache | disabled networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true 安装Docker # 进入 Docker 官网下载Docker,这是sharelatex模型运行的容器。Docker是一个开源的应用容器引擎,其中包括,镜像、容器、仓库,目的就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的产品及其环境能够做到“一次封装,到处运行”。就像一个集装箱,由程序员开发并封装,用户使用时就直接把整个集装箱搬过去。\nDocker安装完成后就可以双击启动放后台了,我们后面通过命令行来操作Docker;\n拉取镜像 # 打开 Kali,直接运行\ngit clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit 然后连续运行:\ncd ./overleaf-toolkit bin/init vim ./config/variables.env 此时你应该已经进入了一个文档界面,这就是Vim文本编辑器的界面。Vim有很多快捷键,其中按下\u0026quot;I\u0026quot;键即可开启插入模式,进行文本编辑,按下\u0026quot;esc\u0026quot;即可返回常规模式。在插入模式下输入:OVERLEAF_SITE_LANGUAGE=zh-CN\n输入完成后按下\u0026quot;esc\u0026quot;返回常规模式,直接键入 :wq 这是“保存并退出”,如果你不小心输错了可以 :e! 放弃所有更改重头再来。这一步是让你的OverLeaf界面显示为中文。\n当你成功保存并退出,回到熟悉的Kali命令行界面后运行 bin/up 此时正在拉取sharelatex镜像以及相关的网络工具。这时会有大量的数据传输,要保证网络通畅(梯子要稳!)\n配置用户 # 当上一个命令成功结束之后,运行 bin/start ;此时你打开Docker点进sharelatex,你应该可以看到代码“爆闪”,如果没有红色的消息,那应该是正常运行了。\n这时打开浏览器访问网址 http://localhost/launchpad\n按照提示注册Administrator Account之后,就会跳转到 http://localhost/project ;这时基本的OverLeaf网页已经可以显示了。\n但现在你丢一个文件进去编译多半是会报错的 ᕕ( ᐛ )ᕗ ;因为此时 sharelatex 里面的宏包严重不足,不是红包「手动狗头」 安装扩展包 # 打开 Kali 进入对应目录运行 bin/shell 然后逐条执行:\ncd /usr/local/texlive # 下载并运行升级脚本 wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh sh update-tlmgr-latest.sh -- --upgrade # 更换texlive的下载源 tlmgr option repository https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet/ # 升级tlmgr tlmgr update --self --all # 安装完整版texlive(时间比较长,不要让shell断开) tlmgr install scheme-full # 退出sharelatex的命令行界面 exit # 重启sharelatex容器 docker restart sharelatex 重启后再次进入 shell,运行:\napt update # 安装字体 apt install --no-install-recommends ttf-mscorefonts-installe fonts-noto texlive-fonts-recommended tex-gyre fonts-wqy-microhei fonts-wqy-zenhei fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-color-emoji fonts-noto-extra fonts-noto-ui-core fonts-noto-ui-extra fonts-noto-unhinted fonts-texgyre # 安装pygments apt install python3-pygments # 安装beamer之类的 apt install texlive-latex-recommended apt install texlive-latex-extra # 安装英文字体 echo \u0026#34;yes\u0026#34; | apt install -y --reinstall ttf-mscorefonts-installer # 安装中文字体 apt install -y latex-cjk-all texlive-lang-chinese texlive-lang-english cp fonts/* /usr/share/fonts/zh-cn/ cd /usr/share/fonts fc-cache -fv # 更新字体缓存 fc-list :lang=zh-cn fc-match Arial 最后在shell目录里面运行:\nvim /usr/local/texlive/2023/texmf.cnf 进入配置文件,在最底下加入一句 shell_escape = t\n我也不知道这有什么用,属于是前辈传承了🤔 注意,如果Texlive(扩展包的官名)版本不同的话,目录地址也会有所变化,因此需要根据实际的地址来填写,例如将2023改成2024。\n在Linux命令行中可以用 ls -l 来查看当前目录下所有的文件 部署成功 # 现在你就可以愉快地使用本地版OverLeaf了,没有编译超时的困扰~\n如果非常巧合,你也是个CQUer,这里附赠一份重庆大学的毕业论文模板,炒鸡的亲民哦:CQUThesis\n","date":"2024-07-12","externalUrl":null,"permalink":"/blog/localoverleaf/","section":"Blogs","summary":"\u003ch2 class=\"relative group\"\u003e背景提要 \n \u003cdiv id=\"%E8%83%8C%E6%99%AF%E6%8F%90%E8%A6%81\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E8%83%8C%E6%99%AF%E6%8F%90%E8%A6%81\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e你应该知道如何通过命令行与电脑交互,包括但不限于:Windows如何唤出命令行/终端,正在运行中的命令什么时候结束\u0026hellip;\u0026hellip;\u003c/p\u003e","title":"本地 OverLeaf 部署","type":"blog"},{"content":"","date":"2025-01-27","externalUrl":null,"permalink":"/blog/","section":"Blogs","summary":"","title":"Blogs","type":"blog"},{"content":" 欢迎来到我的信息页面 👋 # 基本信息 # Morethan 是我随手起的一个英文名字,因为这个词语的发音和我的中文名字实在是太像了🙃\n我现在还是一个本科生 ᕕ( ᐛ )ᕗ 其他的没什么好写的🫠\n博客定位 # 个人知识库:用来存放一些固定的技术流程和有意义的经历\n微型论文栈:尽可能按照标准论文流程来编写一些博客,为毕业论文做准备\n知识输出平台:将我所学尽可能清晰地表达出来\n最后 # 如果你觉得有内容帮助了你,请点击文章开头的“喜欢” 🤗\n如果你想分享某些内容,请标注援引自此网站 🫡\n如果你找到了一些错误之处,请在 GitHub 上提交一个Issue 🥰\n","date":"2025-01-27","externalUrl":null,"permalink":"/authors/morethan/","section":"作者列表","summary":"\u003ch1 class=\"relative group\"\u003e欢迎来到我的信息页面 👋 \n \u003cdiv id=\"%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0%E6%88%91%E7%9A%84%E4%BF%A1%E6%81%AF%E9%A1%B5%E9%9D%A2-\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0%E6%88%91%E7%9A%84%E4%BF%A1%E6%81%AF%E9%A1%B5%E9%9D%A2-\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h1\u003e\n\n\n\u003ch2 class=\"relative group\"\u003e基本信息 \n \u003cdiv id=\"%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF\" aria-label=\"锚点\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eMorethan\u003c/code\u003e 是我随手起的一个英文名字,因为这个词语的发音和我的中文名字实在是太像了🙃\u003c/p\u003e","title":"Morethan","type":"authors"},{"content":"","date":"27 January 2025","externalUrl":null,"permalink":"/en/series/project-report/","section":"Seires","summary":"","title":"Project Report","type":"series"},{"content":"","date":"27 January 2025","externalUrl":null,"permalink":"/en/tags/report/","section":"Tags","summary":"","title":"Report","type":"tags"},{"content":"","date":"27 January 2025","externalUrl":null,"permalink":"/en/tags/schedule/","section":"Tags","summary":"","title":"Schedule","type":"tags"},{"content":"","date":"2025-01-27","externalUrl":null,"permalink":"/tags/%E6%8A%A5%E5%91%8A/","section":"标签","summary":"","title":"报告","type":"tags"},{"content":" ","date":"2025-01-27","externalUrl":null,"permalink":"/tags/","section":"标签","summary":"\u003chr\u003e","title":"标签","type":"tags"},{"content":"这里存放着一些学习笔记与微型论文,通过知识输出来达到知识巩固的目的。\n透过这些文字希望你也能有所收获🤗\n","date":"2025-01-27","externalUrl":null,"permalink":"/","section":"欢迎来到Morethan的小站","summary":"\u003cp\u003e这里存放着一些学习笔记与微型论文,通过知识输出来达到知识巩固的目的。\u003c/p\u003e","title":"欢迎来到Morethan的小站","type":"page"},{"content":"","date":"2025-01-27","externalUrl":null,"permalink":"/tags/%E6%97%A5%E7%A8%8B%E7%AE%A1%E7%90%86/","section":"标签","summary":"","title":"日程管理","type":"tags"},{"content":" ","date":"2025-01-27","externalUrl":null,"permalink":"/series/","section":"系列","summary":"\u003chr\u003e","title":"系列","type":"series"},{"content":"","date":"2025-01-27","externalUrl":null,"permalink":"/series/%E9%A1%B9%E7%9B%AE%E6%8A%A5%E5%91%8A/","section":"系列","summary":"","title":"项目报告","type":"series"},{"content":"","date":"2025-01-27","externalUrl":null,"permalink":"/authors/","section":"作者列表","summary":"","title":"作者列表","type":"authors"},{"content":"CUMCM 英文全称为 Chinese Undergraduate Mathmatical Contest in Modeling,中文全称为“全国大学生数学建模竞赛”。\n由于这个比赛并不能直接参与国家级总决赛,而是要经过校赛省赛的选拔,然后你的论文才会被交给全国的专家进行评审。因此这个比赛民间细分为三个,即数模校赛,数模省赛和数模国赛。\n","date":"2025-01-16","externalUrl":null,"permalink":"/tags/cumcm/","section":"标签","summary":"\u003cp\u003e\u003ccode\u003eCUMCM\u003c/code\u003e 英文全称为 Chinese Undergraduate Mathmatical Contest in Modeling,中文全称为“全国大学生数学建模竞赛”。\u003c/p\u003e","title":"CUMCM","type":"tags"},{"content":"","date":"16 January 2025","externalUrl":null,"permalink":"/en/series/mathmodel/","section":"Seires","summary":"","title":"MathModel","type":"series"},{"content":"","date":"2025-01-16","externalUrl":null,"permalink":"/tags/matlab/","section":"标签","summary":"","title":"MATLAB","type":"tags"},{"content":"数学建模 就是使用数学模型来精确地、系统地描述生活中的对象,是数学与实践的重要结合。\n","date":"2025-01-16","externalUrl":null,"permalink":"/series/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/","section":"系列","summary":"\u003cp\u003e\u003ccode\u003e数学建模\u003c/code\u003e 就是使用数学模型来\u003cstrong\u003e精确地、系统地\u003c/strong\u003e描述生活中的对象,是数学与实践的重要结合。\u003c/p\u003e","title":"数学建模","type":"series"},{"content":"","date":"2025-01-15","externalUrl":null,"permalink":"/tags/mysql/","section":"标签","summary":"","title":"MySQL","type":"tags"},{"content":"","date":"15 January 2025","externalUrl":null,"permalink":"/en/series/operation/","section":"Seires","summary":"","title":"Operation","type":"series"},{"content":"","date":"2025-01-15","externalUrl":null,"permalink":"/series/%E6%8A%80%E6%9C%AF%E6%B5%81%E7%A8%8B/","section":"系列","summary":"","title":"技术流程","type":"series"},{"content":"","date":"2025-01-10","externalUrl":null,"permalink":"/tags/hugo/","section":"标签","summary":"","title":"Hugo","type":"tags"},{"content":"","date":"2025-01-10","externalUrl":null,"permalink":"/tags/%E5%8D%9A%E5%AE%A2/","section":"标签","summary":"","title":"博客","type":"tags"},{"content":"","date":"7 January 2025","externalUrl":null,"permalink":"/en/tags/blog/","section":"Tags","summary":"","title":"Blog","type":"tags"},{"content":"","date":"6 January 2025","externalUrl":null,"permalink":"/en/series/casual-essay/","section":"Seires","summary":"","title":"Casual Essay","type":"series"},{"content":"","date":"6 January 2025","externalUrl":null,"permalink":"/en/tags/experience/","section":"Tags","summary":"","title":"Experience","type":"tags"},{"content":"","date":"2025-01-06","externalUrl":null,"permalink":"/tags/%E7%BB%8F%E5%8E%86/","section":"标签","summary":"","title":"经历","type":"tags"},{"content":"","date":"2025-01-06","externalUrl":null,"permalink":"/series/%E9%9A%8F%E7%AC%94/","section":"系列","summary":"","title":"随笔","type":"series"},{"content":"","date":"2025-01-03","externalUrl":null,"permalink":"/tags/ai/","section":"标签","summary":"","title":"AI","type":"tags"},{"content":"","date":"2025-01-03","externalUrl":null,"permalink":"/series/ai%E9%81%90%E6%83%B3/","section":"系列","summary":"","title":"AI遐想","type":"series"},{"content":"","date":"3 January 2025","externalUrl":null,"permalink":"/en/tags/imagination/","section":"Tags","summary":"","title":"Imagination","type":"tags"},{"content":"","date":"3 January 2025","externalUrl":null,"permalink":"/en/series/wild-imagination-of-ai/","section":"Seires","summary":"","title":"Wild Imagination of AI","type":"series"},{"content":"","date":"2025-01-03","externalUrl":null,"permalink":"/tags/%E9%81%90%E6%83%B3/","section":"标签","summary":"","title":"遐想","type":"tags"},{"content":"","date":"2024-09-12","externalUrl":null,"permalink":"/tags/math/","section":"标签","summary":"","title":"Math","type":"tags"},{"content":"","date":"2024-08-10","externalUrl":null,"permalink":"/tags/python/","section":"标签","summary":"","title":"Python","type":"tags"},{"content":"","date":"2024-07-12","externalUrl":null,"permalink":"/tags/latex/","section":"标签","summary":"","title":"LaTeX","type":"tags"},{"content":"","date":"2024-07-12","externalUrl":null,"permalink":"/tags/overleaf/","section":"标签","summary":"","title":"Overleaf","type":"tags"},{"content":"","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"}] \ No newline at end of file diff --git a/index.xml b/index.xml index f539e0a..fdc709a 100644 --- a/index.xml +++ b/index.xml @@ -7,7 +7,33 @@ Hugo -- gohugo.io zh-cn © 2025 Morethan - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 + + + 日程管理项目分析 + https://morethan987.github.io/blog/schedule-management-report/ + Mon, 27 Jan 2025 00:00:00 +0000 + + https://morethan987.github.io/blog/schedule-management-report/ + <div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"> + 日程管理软件功能现状分析报告 +</div> + + + +<h2 class="relative group">前言 + <div id="%E5%89%8D%E8%A8%80" class="anchor"></div> + + <span + class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> + <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" + style="text-decoration-line: none !important;" href="#%E5%89%8D%E8%A8%80" aria-label="锚点">#</a> + </span> + +</h2> +<p>本文涉及的日程管理软件主要指代的是具有如下定位的软件:</p> + + 代码协同方案 diff --git a/series/index.html b/series/index.html index 6e0af8b..40e70af 100644 --- a/series/index.html +++ b/series/index.html @@ -938,7 +938,7 @@

· - 1 + 2

diff --git a/series/index.xml b/series/index.xml index fc21f4e..e7aad3c 100644 --- a/series/index.xml +++ b/series/index.xml @@ -7,7 +7,17 @@ Hugo -- gohugo.io zh-cn © 2025 Morethan - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 + + + 项目报告 + https://morethan987.github.io/series/%E9%A1%B9%E7%9B%AE%E6%8A%A5%E5%91%8A/ + Mon, 27 Jan 2025 00:00:00 +0000 + + https://morethan987.github.io/series/%E9%A1%B9%E7%9B%AE%E6%8A%A5%E5%91%8A/ + + + 数学建模 @@ -29,16 +39,6 @@ - - 项目报告 - https://morethan987.github.io/series/%E9%A1%B9%E7%9B%AE%E6%8A%A5%E5%91%8A/ - Fri, 10 Jan 2025 00:00:00 +0000 - - https://morethan987.github.io/series/%E9%A1%B9%E7%9B%AE%E6%8A%A5%E5%91%8A/ - - - - 随笔 https://morethan987.github.io/series/%E9%9A%8F%E7%AC%94/ diff --git "a/series/\351\241\271\347\233\256\346\212\245\345\221\212/index.html" "b/series/\351\241\271\347\233\256\346\212\245\345\221\212/index.html" index 12a9a32..b69105e 100644 --- "a/series/\351\241\271\347\233\256\346\212\245\345\221\212/index.html" +++ "b/series/\351\241\271\347\233\256\346\212\245\345\221\212/index.html" @@ -797,6 +797,202 @@

项 + + +
+ +
+ + + + + + 草稿 + + + + + +
+ + +
日程管理项目分析
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·5 分钟· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + 报告 + + + + + + + + 日程管理 + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + +
diff --git "a/series/\351\241\271\347\233\256\346\212\245\345\221\212/index.xml" "b/series/\351\241\271\347\233\256\346\212\245\345\221\212/index.xml" index 4de3b57..e81542c 100644 --- "a/series/\351\241\271\347\233\256\346\212\245\345\221\212/index.xml" +++ "b/series/\351\241\271\347\233\256\346\212\245\345\221\212/index.xml" @@ -7,7 +7,33 @@ Hugo -- gohugo.io zh-cn © 2025 Morethan - Fri, 10 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 + + + 日程管理项目分析 + https://morethan987.github.io/blog/schedule-management-report/ + Mon, 27 Jan 2025 00:00:00 +0000 + + https://morethan987.github.io/blog/schedule-management-report/ + <div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"> + 日程管理软件功能现状分析报告 +</div> + + + +<h2 class="relative group">前言 + <div id="%E5%89%8D%E8%A8%80" class="anchor"></div> + + <span + class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> + <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" + style="text-decoration-line: none !important;" href="#%E5%89%8D%E8%A8%80" aria-label="锚点">#</a> + </span> + +</h2> +<p>本文涉及的日程管理软件主要指代的是具有如下定位的软件:</p> + + 笔记转博客项目分析报告 diff --git a/sitemap.xml b/sitemap.xml index 9b2531b..f34afeb 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -4,14 +4,14 @@ https://morethan987.github.io/zh-cn/sitemap.xml - 2025-01-21T00:00:00+00:00 + 2025-01-27T00:00:00+00:00 https://morethan987.github.io/en/sitemap.xml - 2025-01-21T00:00:00+00:00 + 2025-01-27T00:00:00+00:00 diff --git a/tags/index.html b/tags/index.html index 89ba9c3..41d38e2 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1032,6 +1032,22 @@

>报告 + · + + 2 + + +

+ + +
+

+ 日程管理 + · 1 diff --git a/tags/index.xml b/tags/index.xml index e7492d1..30e029f 100644 --- a/tags/index.xml +++ b/tags/index.xml @@ -7,7 +7,27 @@ Hugo -- gohugo.io zh-cn © 2025 Morethan - Thu, 16 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 + + + 报告 + https://morethan987.github.io/tags/%E6%8A%A5%E5%91%8A/ + Mon, 27 Jan 2025 00:00:00 +0000 + + https://morethan987.github.io/tags/%E6%8A%A5%E5%91%8A/ + + + + + + 日程管理 + https://morethan987.github.io/tags/%E6%97%A5%E7%A8%8B%E7%AE%A1%E7%90%86/ + Mon, 27 Jan 2025 00:00:00 +0000 + + https://morethan987.github.io/tags/%E6%97%A5%E7%A8%8B%E7%AE%A1%E7%90%86/ + + + CUMCM @@ -49,16 +69,6 @@ - - 报告 - https://morethan987.github.io/tags/%E6%8A%A5%E5%91%8A/ - Fri, 10 Jan 2025 00:00:00 +0000 - - https://morethan987.github.io/tags/%E6%8A%A5%E5%91%8A/ - - - - 博客 https://morethan987.github.io/tags/%E5%8D%9A%E5%AE%A2/ diff --git "a/tags/\346\212\245\345\221\212/index.html" "b/tags/\346\212\245\345\221\212/index.html" index eadbb88..3bac375 100644 --- "a/tags/\346\212\245\345\221\212/index.html" +++ "b/tags/\346\212\245\345\221\212/index.html" @@ -867,6 +867,202 @@

报 + + +
+ +
+ + + + + + 草稿 + + + + + +
+ + +
日程管理项目分析
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·5 分钟· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + 报告 + + + + + + + + 日程管理 + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + +
diff --git "a/tags/\346\212\245\345\221\212/index.xml" "b/tags/\346\212\245\345\221\212/index.xml" index 438eef8..61301e5 100644 --- "a/tags/\346\212\245\345\221\212/index.xml" +++ "b/tags/\346\212\245\345\221\212/index.xml" @@ -7,7 +7,33 @@ Hugo -- gohugo.io zh-cn © 2025 Morethan - Fri, 10 Jan 2025 00:00:00 +0000 + Mon, 27 Jan 2025 00:00:00 +0000 + + + 日程管理项目分析 + https://morethan987.github.io/blog/schedule-management-report/ + Mon, 27 Jan 2025 00:00:00 +0000 + + https://morethan987.github.io/blog/schedule-management-report/ + <div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"> + 日程管理软件功能现状分析报告 +</div> + + + +<h2 class="relative group">前言 + <div id="%E5%89%8D%E8%A8%80" class="anchor"></div> + + <span + class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> + <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" + style="text-decoration-line: none !important;" href="#%E5%89%8D%E8%A8%80" aria-label="锚点">#</a> + </span> + +</h2> +<p>本文涉及的日程管理软件主要指代的是具有如下定位的软件:</p> + + 笔记转博客项目分析报告 diff --git "a/tags/\346\227\245\347\250\213\347\256\241\347\220\206/index.html" "b/tags/\346\227\245\347\250\213\347\256\241\347\220\206/index.html" new file mode 100644 index 0000000..204bd65 --- /dev/null +++ "b/tags/\346\227\245\347\250\213\347\256\241\347\220\206/index.html" @@ -0,0 +1,1130 @@ + + + + + + + + + + 日程管理 · Morethan 小站 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + + + + + +
+
+ + + +
+
+ + + + + + + + + + + + + + + +
+ + + + +
+ + + +
+
+
+
+
+ +
+ + +
+ +

日程管理

+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + +
+ + + + + + +
+ +
+ + + + + + 草稿 + + + + + +
+ + +
日程管理项目分析
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·5 分钟· + + + + + + + + + + + + + + + + loading + + + + + + + + +· + + + + + + + + + + + + + + + + loading + + + + + + + + + + + + + +
+ + +
+ + + + +
Morethan
+ + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + 报告 + + + + + + + + 日程管理 + + + + + + + +
+ + + + +
+ + +
+
+ +
+
+
+ + + +
+ + + + + + + + + + + +
+ + + + + + +
+ + + +

+ © + 2025 + Morethan +

+ + + + +

+ + + 由 Hugo & Blowfish 强力驱动 +

+ + +
+ + + + + + + + +
+ + +
+ + + diff --git "a/tags/\346\227\245\347\250\213\347\256\241\347\220\206/index.xml" "b/tags/\346\227\245\347\250\213\347\256\241\347\220\206/index.xml" new file mode 100644 index 0000000..f9ad690 --- /dev/null +++ "b/tags/\346\227\245\347\250\213\347\256\241\347\220\206/index.xml" @@ -0,0 +1,39 @@ + + + + 日程管理 on Morethan 小站 + https://morethan987.github.io/tags/%E6%97%A5%E7%A8%8B%E7%AE%A1%E7%90%86/ + Recent content in 日程管理 on Morethan 小站 + Hugo -- gohugo.io + zh-cn + © 2025 Morethan + Mon, 27 Jan 2025 00:00:00 +0000 + + + 日程管理项目分析 + https://morethan987.github.io/blog/schedule-management-report/ + Mon, 27 Jan 2025 00:00:00 +0000 + + https://morethan987.github.io/blog/schedule-management-report/ + <div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"> + 日程管理软件功能现状分析报告 +</div> + + + +<h2 class="relative group">前言 + <div id="%E5%89%8D%E8%A8%80" class="anchor"></div> + + <span + class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> + <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" + style="text-decoration-line: none !important;" href="#%E5%89%8D%E8%A8%80" aria-label="锚点">#</a> + </span> + +</h2> +<p>本文涉及的日程管理软件主要指代的是具有如下定位的软件:</p> + + + + + diff --git "a/tags/\346\227\245\347\250\213\347\256\241\347\220\206/page/1/index.html" "b/tags/\346\227\245\347\250\213\347\256\241\347\220\206/page/1/index.html" new file mode 100644 index 0000000..3d9808b --- /dev/null +++ "b/tags/\346\227\245\347\250\213\347\256\241\347\220\206/page/1/index.html" @@ -0,0 +1,10 @@ + + + + https://morethan987.github.io/tags/%E6%97%A5%E7%A8%8B%E7%AE%A1%E7%90%86/ + + + + + + diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml index 1f6fbc1..41b8f96 100644 --- a/zh-cn/sitemap.xml +++ b/zh-cn/sitemap.xml @@ -2,6 +2,22 @@ + + https://morethan987.github.io/blog/schedule-management-report/ + 2025-01-27T00:00:00+00:00 + always + 0.5 + + + https://morethan987.github.io/blog/code-collaboration-scheme/ 2025-01-20T00:00:00+00:00 @@ -164,7 +180,7 @@ https://morethan987.github.io/blog/ - 2025-01-21T00:00:00+00:00 + 2025-01-27T00:00:00+00:00 always 0.5 - https://morethan987.github.io/tags/cumcm/ - 2025-01-20T00:00:00+00:00 + https://morethan987.github.io/authors/morethan/ + 2025-01-27T00:00:00+00:00 always 0.5 - https://morethan987.github.io/tags/matlab/ - 2025-01-20T00:00:00+00:00 + https://morethan987.github.io/tags/%E6%8A%A5%E5%91%8A/ + 2025-01-27T00:00:00+00:00 always 0.5 - https://morethan987.github.io/authors/morethan/ - 2025-01-21T00:00:00+00:00 + https://morethan987.github.io/tags/ + 2025-01-27T00:00:00+00:00 always 0.5 - https://morethan987.github.io/tags/ - 2025-01-21T00:00:00+00:00 + https://morethan987.github.io/ + 2025-01-27T00:00:00+00:00 always 0.5 - https://morethan987.github.io/ - 2025-01-21T00:00:00+00:00 + https://morethan987.github.io/tags/%E6%97%A5%E7%A8%8B%E7%AE%A1%E7%90%86/ + 2025-01-27T00:00:00+00:00 + always + 0.5 + + + https://morethan987.github.io/series/ + 2025-01-27T00:00:00+00:00 always 0.5 - https://morethan987.github.io/series/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/ + https://morethan987.github.io/series/%E9%A1%B9%E7%9B%AE%E6%8A%A5%E5%91%8A/ + 2025-01-27T00:00:00+00:00 + always + 0.5 + + + https://morethan987.github.io/authors/ + 2025-01-27T00:00:00+00:00 + always + 0.5 + + + + + https://morethan987.github.io/tags/cumcm/ 2025-01-20T00:00:00+00:00 always 0.5 - https://morethan987.github.io/series/ - 2025-01-21T00:00:00+00:00 + https://morethan987.github.io/tags/matlab/ + 2025-01-20T00:00:00+00:00 always 0.5 - https://morethan987.github.io/authors/ - 2025-01-21T00:00:00+00:00 + https://morethan987.github.io/series/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/ + 2025-01-20T00:00:00+00:00 always 0.5 @@ -344,22 +388,6 @@ href="https://morethan987.github.io/tags/hugo/" /> - - https://morethan987.github.io/tags/%E6%8A%A5%E5%91%8A/ - 2025-01-21T00:00:00+00:00 - always - 0.5 - - - https://morethan987.github.io/tags/%E5%8D%9A%E5%AE%A2/ 2025-01-21T00:00:00+00:00 @@ -376,12 +404,6 @@ href="https://morethan987.github.io/tags/%E5%8D%9A%E5%AE%A2/" /> - - https://morethan987.github.io/series/%E9%A1%B9%E7%9B%AE%E6%8A%A5%E5%91%8A/ - 2025-01-21T00:00:00+00:00 - always - 0.5 - https://morethan987.github.io/tags/%E7%BB%8F%E5%8E%86/ 2025-01-06T00:00:00+00:00