飞飞爱折腾 - 宋飞的个人网站

飞飞爱折腾,宋飞的个人网站,个人博客,编程,DIY,电子

mitmproxy HTTP 代理工具

<p>推荐我用过的好用的软件系列,</p> <p>在当今这个HTTPS加密通信成为标配的时代,我们如何能够一窥网络请求的“内幕”,进行安全分析、性能调试或应用开发呢?答案并非绕过加密,而是成为一个“受信任的中间人”。这正是 mitmproxy 的用武之地。</p> <h2 class="heading-element" id="mitmproxy-是什么"><span>​​mitmproxy 是什么?​​</span> <a href="#mitmproxy-%e6%98%af%e4%bb%80%e4%b9%88" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>mitmproxy,其名称源于“Man-in-the-Middle Proxy”(中间人代理),是一个基于Python、开源且免费的命令行工具套件。它的核心原理是在客户端(如你的手机或浏览器)和目标服务器之间建立一个代理通道。通过在你的设备上安装并信任它自签名的CA证书,mitmproxy能够以“受信方”的身份对HTTPS流量进行解密、拦截、检查、修改甚至重放。这使它成为网络安全专家、后端开发者和移动应用测试人员手中的一把瑞士军刀。</p> <h2 class="heading-element" id="核心套件与工作模式"><span>​​核心套件与工作模式​​</span> <a href="#%e6%a0%b8%e5%bf%83%e5%a5%97%e4%bb%b6%e4%b8%8e%e5%b7%a5%e4%bd%9c%e6%a8%a1%e5%bc%8f" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>mitmproxy 实际上包含三个核心组件:</p> <ul> <li><strong>mitmproxy</strong>​​:一个基于控制台的交互式工具,提供实时的流量监控和强大的过滤、拦截功能,是高手的最爱。</li> <li>​<strong>mitmweb</strong>​​:一个基于Web的图形化界面,为不习惯命令行的用户提供了更直观的操作方式,可以清晰地查看请求/响应的结构。</li> <li><strong>mitmdump</strong>​​:一个纯粹的命令行工具,可以无头(headless)运行,用于流量的自动化处理和脚本录制,是持续集成/测试中的关键角色。</li> </ul> <h2 class="heading-element" id="强大的应用场景"><span>​强大的应用场景​​</span> <a href="#%e5%bc%ba%e5%a4%a7%e7%9a%84%e5%ba%94%e7%94%a8%e5%9c%ba%e6%99%af" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>mitmproxy 的应用范围远超简单的“抓包”,其强大之处在于其可编程性和灵活性。</p> <ul> <li>​<strong>API调试与逆向工程​</strong>​:当你需要分析一个手机App如何与服务器通信时,只需将手机代理设置为mitmproxy,所有API请求和响应内容都将一览无余,是理解和调试接口协议的利器。特别是对于使用 ​​Protocol Buffers (protobuf)​​ 这类二进制协议的应用,mitmproxy 可以配合预定义的 proto 文件,自动将晦涩的二进制流解码为清晰可读的 JSON 格式,极大简化了调试流程。</li> <li>​​<strong>安全测试​</strong>​:安全研究人员可以用它来拦截和修改请求参数,测试Web应用的常见漏洞,如SQL注入、越权访问等,模拟中间人攻击场景。</li> <li>​​<strong>性能分析与监控</strong>​​:通过观察请求的时序、大小和依赖关系,可以精准定位应用性能瓶颈。</li> <li>​<strong>流量模拟与Mock</strong>​​:使用mitmdump录制真实流量,然后回放以模拟特定场景,或编写脚本动态地修改响应,为前端开发构建一个Mock服务器。</li> <li><strong>自动化脚本</strong>​​:mitmproxy支持强大的插件系统,你可以用Python编写脚本,实现自动修改请求头、拦截特定广告、甚至是性能测试等复杂任务。</li> </ul> <hr> <p>【类型】:开源,免费</p> <p>【平台】:All</p> <p>【官网】:<a href="https://www.mitmproxy.org/"target="_blank" rel="external nofollow noopener noreferrer">https://www.mitmproxy.org/<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>【GitHub地址】:<a href="https://github.com/mitmproxy/mitmproxy"target="_blank" rel="external nofollow noopener noreferrer">https://github.com/mitmproxy/mitmproxy<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p><img loading="lazy" src='https://songfei.org/notebooks/mitmproxy/screenshot.png' alt="软件截图" height="1626" width="2404"></p>

2025/10/17
阅读更多

客制化键盘 USB to USB 模块

<p>客制化键盘有个好处, 是可以自定义键盘按键映射,切换层,设置宏等非常强大的功能。</p> <h2 class="heading-element" id="缘起"><span>缘起</span> <a href="#%e7%bc%98%e8%b5%b7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>我已经习惯了 HHKB 键盘,家里和公司都使用的是 HHKB 键盘,一个 HHKB Pro2 一个 HHKB Pro Classic, 手感很好,但是没有自定义功能。</p> <p>HHKB 没有方向键,使用 MacOS 的时候系统的快捷键, 使用 Command + P, Command + N, Command + B,Command + F 来实现上下左右操作光标。</p> <p>现在的主要工作系统重新切换回 Windows 后,就变得不是很方便,试了几个软件的键盘映射都不好用,偶然间发现了有 U2U 的小东西,有一个 USB 插座和一个 USB 插头, 把键盘插到上面,再插到电脑上, 就能使用改键软件 vial 来修改配置了。</p> <p><img loading="lazy" src='https://songfei.org/projects/qmk_usb_usb/easylink_u2u.png' alt="EasyLink U2U" height="556" width="781"></p> <p>我买的是 EasyLink U2U, 这个牌子的,用起来整体不错,不过有个 Bug, HHKB Pro2 上面自带了 USB Hub, 导致键盘每次都识别不出来。因为是闭源的,也找不到作者,得不到修复。</p> <h2 class="heading-element" id="探索"><span>探索</span> <a href="#%e6%8e%a2%e7%b4%a2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>然后就发现了 TMK 和 QMK 固件里,都有 USB to USB 这个键盘,应该现在市面上卖的这种转换器都是基于这个固件来的。他是基于 <a href="https://docs.arduino.cc/hardware/leonardo/"target="_blank" rel="external nofollow noopener noreferrer">Arduino Leonardo<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 和 <a href="https://docs.arduino.cc/retired/shields/arduino-usb-host-shield/"target="_blank" rel="external nofollow noopener noreferrer">USB Host Shield<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 这两个开源硬件做的。</p> <p>链接地址:</p> <ul> <li> <p>TMK: <a href="https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb"target="_blank" rel="external nofollow noopener noreferrer">https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> </li> <li> <p>QMK: <a href="https://github.com/qmk/qmk_firmware/tree/master/keyboards/converter/usb_usb"target="_blank" rel="external nofollow noopener noreferrer">https://github.com/qmk/qmk_firmware/tree/master/keyboards/converter/usb_usb<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> </li> </ul> <p>并且在这个固件的说明里,明确说明了,支持 HHKB Pro2 这款键盘,并且 USB Hub 的问题是作为 Bug 修复了的。</p> <p>这里也有了把这两个独立的 Arduino 电路板整合到一起的设计, 其实主要是有2个芯片, 一个是 MCU: ATMEGA32U4, 另一个是 USB Host 芯片: MAX3421E。</p> <ul> <li>PCB 项目地址:<a href="https://github.com/tmk/USB2USB_Converter"target="_blank" rel="external nofollow noopener noreferrer">https://github.com/tmk/USB2USB_Converter<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <h2 class="heading-element" id="制作"><span>制作</span> <a href="#%e5%88%b6%e4%bd%9c" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>看了下这两个芯片的价格,这个方案已经完全没有性价比了, 不算其他电路,光这两个芯片加起来就将近 RMB 100块了,应该主要还是进口芯片现在用的人少了,又比较冷门了。</p> <p>有开源固件的支持,贵也得整啊, 把电路板导入 JLC EDA, 简单修改了下, 打板开整,提示不是 JLC EDA 设计的电路板,不免费了啊!!!</p> <h3 class="heading-element" id="原理图"><span>原理图</span> <a href="#%e5%8e%9f%e7%90%86%e5%9b%be" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><img loading="lazy" src='https://songfei.org/projects/qmk_usb_usb/sch.png' alt="原理图" height="1220" width="2173"></p> <h3 class="heading-element" id="pcb"><span>PCB</span> <a href="#pcb" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><img loading="lazy" src='https://songfei.org/projects/qmk_usb_usb/pcb.png' alt="PCB" height="733" width="1000"></p> <p><img loading="lazy" src='https://songfei.org/projects/qmk_usb_usb/pcb-3d.png' alt="PCB 3D" height="688" width="1000"></p> <h3 class="heading-element" id="实物照片"><span>实物照片</span> <a href="#%e5%ae%9e%e7%89%a9%e7%85%a7%e7%89%87" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><img loading="lazy" src='https://songfei.org/projects/qmk_usb_usb/u2u2.jpg' alt="实物照片" height="408" width="800"></p> <p><img loading="lazy" src='https://songfei.org/projects/qmk_usb_usb/u2u.jpg' alt="实物照片" height="449" width="800"></p> <h2 class="heading-element" id="固件烧录"><span>固件烧录</span> <a href="#%e5%9b%ba%e4%bb%b6%e7%83%a7%e5%bd%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>我选择使用 QMK, 他的配套软件比较好用。</p> <ul> <li>键盘配置工具:<a href="https://config.qmk.fm/#/converter/usb_usb/leonardo/LAYOUT_all"target="_blank" rel="external nofollow noopener noreferrer">https://config.qmk.fm/#/converter/usb_usb/leonardo/LAYOUT_all<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <p>在这里键盘选择 <code>converter/usb_usb/leonardo</code></p> <p>配置后,编译下载固件。</p> <p><img loading="lazy" src='https://songfei.org/projects/qmk_usb_usb/config.png' alt="配置工具" height="1830" width="1913"></p> <p>将模块插入 USB 接口,全新的 ATMEGA32U4 会自动进入 DFU 模式,如果是已经刷入过固件的,按下电路板上的按钮, 就会进入 DFU 模式,使用 <a href="https://github.com/qmk/qmk_toolbox/releases"target="_blank" rel="external nofollow noopener noreferrer">qmk toolbox<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 刷入固件。</p> <p>好了,大功告成,虽然比买的那款成本要高,不过有了开源固件的加持,可以有更多的玩法和可能。</p> <p>测试完美支持了 HHKB Pro2。</p> <h2 class="heading-element" id="额外探索"><span>额外探索</span> <a href="#%e9%a2%9d%e5%a4%96%e6%8e%a2%e7%b4%a2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="vial"><span>VIAL</span> <a href="#vial" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>本来还探索使用 VIAL 实现动态编辑配置,尝试编译,提示 EEPROM 空间过小,然后作罢, 因为修改键盘配置非常不频繁,刷写固件也比较方便了。</p> <h3 class="heading-element" id="本地编译环境"><span>本地编译环境</span> <a href="#%e6%9c%ac%e5%9c%b0%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>如果是 Windows 系统,可以下载 QMK 的本地编译环境, 叫做 <a href="https://msys.qmk.fm/"target="_blank" rel="external nofollow noopener noreferrer">QMK MSYS<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p> <p>安装后,就具备了 qmk 完整的编译环境,无需其他设置,就可以使用,并且提供了一个命令行工具 <code>qmk</code>。</p> <p><img loading="lazy" src='https://songfei.org/projects/qmk_usb_usb/terminal.png' alt="QMK MSYS" height="414" width="603"></p>

2024/11/14
阅读更多

FastCopy : Windows上最快的复制/备份软件

<p>推荐我用过的好用的软件系列,</p> <p>作者自己说是 Windows 上最快的复制、备份软件, 非常小巧。 实际测试文件拷贝速度非常快, 适合磁盘间,局域网中拷贝文件。</p> <p>我最近在用它做磁带机的文件拷贝操作,配合 LTFS 非常好用。</p> <hr> <p>【类型】:闭源,免费</p> <p>【平台】:Windows</p> <p>【官网】:<a href="https://fastcopy.jp/"target="_blank" rel="external nofollow noopener noreferrer">https://fastcopy.jp/<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p><img loading="lazy" src='https://songfei.org/notebooks/fastcopy/fastcopy.png' alt="FastCopy界面截图" height="731" width="568"></p>

2024/10/25
阅读更多

我的数据存储和备份

<p>生活在数码的时代,相信每个人都有自己的数据,照片也好,视频也好,都是我们美好的生活回忆。</p> <p>怎么能安全的保存这些数据?避免因为意外情况导致的数据丢失,是我最近感兴趣和研究的方向。</p> <h2 class="heading-element" id="我的文件"><span>我的文件</span> <a href="#%e6%88%91%e7%9a%84%e6%96%87%e4%bb%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>我的数据主要是下面几类,每种类型对数据安全性的要求也不同。</p> <h3 class="heading-element" id="照片和视频"><span>照片和视频</span> <a href="#%e7%85%a7%e7%89%87%e5%92%8c%e8%a7%86%e9%a2%91" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>记得 2005 年高二,买了我人生中第一台数码相机,一直到现在电脑里存放了我 20 年所有的码照片和视频。也把我和家人所有的交卷照片扫描成为电子版保存。</p> <p>有了小孩之后,给小孩拍照和视频的数量在持续增长, 现在有大概 500G 的照片,和将近 700G 的视频。</p> <p>这部分数据要保证万无一失的存储,不计成本。 毕竟是这么多年来留存的回忆,存储时间至少会大于我的寿命。</p> <h3 class="heading-element" id="收藏的高清电影和音乐"><span>收藏的高清电影和音乐</span> <a href="#%e6%94%b6%e8%97%8f%e7%9a%84%e9%ab%98%e6%b8%85%e7%94%b5%e5%bd%b1%e5%92%8c%e9%9f%b3%e4%b9%90" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>喜欢电影,收集了很多高清电影资源,大概有 7T 左右的电影和电视剧。 使用 AppleTV 在局域网播放, 使用投影仪观看。 也有 200G 左右的 CD 抓轨的音频。</p> <p>这部分数据是从网络下载的,意外丢失也没太大问题,收集整理还是花了一些功夫的,希望能以低成本的方式保证数据安全。</p> <h3 class="heading-element" id="文档和代码工程"><span>文档和代码工程</span> <a href="#%e6%96%87%e6%a1%a3%e5%92%8c%e4%bb%a3%e7%a0%81%e5%b7%a5%e7%a8%8b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>有自己写的一些文档,还有一些自己写的代码工程, 还有一些自己设计的 3D 模型等。</p> <p>这部分数据也需要万无一失的存储,并且最好能追踪版本变化。</p> <h2 class="heading-element" id="我的存储方式"><span>我的存储方式</span> <a href="#%e6%88%91%e7%9a%84%e5%ad%98%e5%82%a8%e6%96%b9%e5%bc%8f" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>现在数据主要是存在我的 NAS 系统里。 使用的是 HP Gen8 的 MicroServer。 安装了 Windows Server 2016。</p> <p><img loading="lazy" src='https://songfei.org/notebooks/data-store-backup/gen8.jpg' alt="HP Gen8 MicroServer" height="674" width="1200"></p> <p>4 盘位,加了2个 SSD, 共 6 块盘。</p> <p>分布是:</p> <ul> <li>4T + 4T 组 Raid 1 = 4T,西数红盘 CMR。 用来存储照片,视频和文档。数据同时存2份在2块硬盘,能保证不是2块硬盘同时损坏的情况下,数据不丢失。</li> <li>4T 单盘 Raid 0 = 4T,西数红盘 CRM。用来存储电影电视剧和音乐,没有备份。组 Raid 0 只是为了用阵列卡可以识别硬盘。</li> <li>3T 单盘 Raid 0 = 3T,西数红盘,当年从西数出的网络硬盘盒里拆出来的。</li> <li>256G 单盘 Raid 0 = 256G, 三星 SSD, 用来做系统盘。</li> <li>256G 单盘, 使用 PCIE 卡转 M.2 接口。 用来做 PT 盘,网传都说 PT/BT 伤硬盘,所以我都是先下载到这块盘,再复制到机械硬盘上,做种也是在这块盘上。</li> </ul> <p>这里另外说一下, 很多 HP Gen8 的配置教程,上来就是禁掉阵列卡,貌似还引起风扇狂转,顶置的这个SATA 接口的盘不能引导系统等问题。这个是不对的, 直接进配置工具配置阵列卡, 单盘也可以做 Raid 0,挂载好之后,使用和普通磁盘是一样的。拿下来的磁盘,通过硬盘盒直接插到电脑上,数据也是可以正常读写的。</p> <p>其中存储重要数据的2块磁盘,也是 2022 年才更换的新盘,之前是两块 1T 的西数红盘 从 2015 年开始使用,安全服役了 7 年。虽然没有损坏,不过为了数据安全,还是更换了新盘。</p> <p>为了防止勒索病毒,我所有的盘里的数据,通过 SMB 协议共享出来,都是只读的。其他设备可以读取文件,不能修改。</p> <p>然后在每个盘建立了一个叫 Upload 的文件夹,这个文件夹其他设备有写权限的。需要将文件存储到 NAS 服务器上, 就先把文件拷贝到 Upload 文件夹,再远程桌面登录 NAS,通过远程桌面移动文件到相应的文件夹,因为在同一个磁盘,文件移动只是修改文件分配表,速度非常快。NAS 这个系统里面,不轻易安装软件,也不执行拷贝到各个盘里的程序。</p> <p>另外,照片和视频文件,还存储到了阿里网盘中,我在阿里网盘内测的时候, 抢到了 3T 的永久存储空间。</p> <h2 class="heading-element" id="3-2-1-数据备份策略"><span>3-2-1 数据备份策略</span> <a href="#3-2-1-%e6%95%b0%e6%8d%ae%e5%a4%87%e4%bb%bd%e7%ad%96%e7%95%a5" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>要想保证你的数据安全,那只有一种办法, 就是备份,备份,备份! 重要的事情说三遍。</p> <p>只要有足够多的备份,那数据就足够的安全,但同时备份越多,花费的成本就越大,要在成本和安全之间寻求一个平衡。</p> <p>3-2-1 是一种数据备份策略,让数据可以在数据丢失事件发生后快速得到恢复和还原。</p> <p>简而言之,我们的数据需要:</p> <ul> <li>三份数据副本</li> <li>其中两份副本存储在本地的不同介质上,例如一份存储在电脑的内置硬盘上,一份存储在外置硬盘等可移动存储设备上</li> <li>一份数据副本远程存储在云备份软件等异地解决方案中</li> </ul> <p>实施 3-2-1 备份策略的目的是为了降低“单点故障”可能造成的影响。这意味着,如果一台设备崩溃并清除了一份数据副本,那并不是世界末日,我们手头还有两个选择可以挽救局面!</p> <p>现在还有更新的说法,叫 3-2-1-1-0 策略,在 3-2-1 策略的基础上,增加了一份离线副本,数据离线了,不能被访问了,就能避免误删除或者病毒等造成的数据丢失。</p> <h2 class="heading-element" id="离线存储探索"><span>离线存储探索</span> <a href="#%e7%a6%bb%e7%ba%bf%e5%ad%98%e5%82%a8%e6%8e%a2%e7%b4%a2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>按上面说的备份策略,我应该还缺一个离线存储, 所以开始研究离线存储介质:</p> <h3 class="heading-element" id="m-disc-千年盘"><span>M-DISC 千年盘</span> <a href="#m-disc-%e5%8d%83%e5%b9%b4%e7%9b%98" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>《三体》里面有关于如何让数据保存的时间更长的描述,办法是刻在石头上。</p> <p><img loading="lazy" src='https://songfei.org/notebooks/data-store-backup/mdisc.jpg' alt="M-DISC" height="851" width="894"></p> <p>M-DISC 是由 Millenniata 公司在 2009 年发明的一次性写入技术,就是用特殊的高功率激光刻录机,将数据刻录在特殊材料制成的 BD-R 光盘上。和普通的刻录光盘比,专门设计的材料能保存更长的时间,号称能保存 1000 年。</p> <p>刻录 M-DISC 需要特殊支持的蓝光刻录机,光盘和刻录机的品牌有:铼德、威宝(Verbatim)、清华紫光等。</p> <p>查了下价格, 在2024年这个时间点, 刻录机大概 RMB 800 元左右。 光盘 RMB 20 元左右一张,25GB 容量。平均 0.8元 / GB。</p> <p>优点:</p> <ul> <li>只读介质,写入后不能更改。</li> <li>保存时间长,体积小,对存储要求低。</li> </ul> <p>缺点:</p> <ul> <li>存储容量小,成本高。</li> </ul> <h3 class="heading-element" id="lto-磁带"><span>LTO 磁带</span> <a href="#lto-%e7%a3%81%e5%b8%a6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>磁带听上去是个很古老的东西,其实在专业存储领域,磁带一直在发展,经过多年的技术竞争和迭代,最终 LTO (Linear Tape Open) 标准脱颖而出,成为市场的主流。</p> <p><img loading="lazy" src='https://songfei.org/notebooks/data-store-backup/lto.jpg' alt="LTO" height="974" width="1366"></p> <p>从2000开始,经过了多个版本的迭代,已经从 LTO-1 发展到了 LTO-9,单盘磁带的容量也从 LTO-1 的 100GB 发展到 LTO-9 的 18TB。</p> <p>磁带现在主要用在数据中心,所以价格也贵的离谱,LTO-9 的磁带机价格基本是 RMB 5W 左右, 一盘 LTO-9 的磁带 要 RMB 1000 块左右。</p> <p>那为啥还要写这一部分呢,因为磁带机的更新换代,我们可以捡垃圾啊。</p> <p>LTO 迭代的规则是, 每一代磁带机,可以读写本代和上一代的磁带,可以读取上两代的磁带。 也就是说 LTO-6 的磁带机,可以读写 LTO-6 和 LTO-5 的磁带, 可以读取 LTO-4 的磁带。</p> <p>而某鱼海鲜市场,LTO-6 的二手磁带机大概 1500 元左右。 LTO-6 磁带大概 RMB 80 元左右,2.25 TB,平均 0.0355 元 / GB。而 LTO-5 的磁带大概 RMB 25元左右,1.5TB,折合 0.01667 元 / GB。</p> <p>优点:</p> <ul> <li>存储容量大,成本低。使用二手磁带成本非常低。</li> <li>可以增量备份。</li> </ul> <p>缺点:</p> <ul> <li>只能顺序读取,不能随机读取。</li> <li>备份的流程较复杂。</li> <li>存储时要避免接触有磁性的物质。</li> </ul> <h3 class="heading-element" id="机械硬盘"><span>机械硬盘</span> <a href="#%e6%9c%ba%e6%a2%b0%e7%a1%ac%e7%9b%98" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>把接卸硬盘直接拆下来,也能作为离线存储。</p> <p><img loading="lazy" src='https://songfei.org/notebooks/data-store-backup/hd.jpg' alt="WD HD" height="800" width="800"></p> <p>看了下价格, 西数红盘 4TB 的价格在 800左右, 平均 0.2元 / GB。</p> <p>再加上硬盘比较脆弱,怕磕碰。</p> <p>优点:</p> <ul> <li>可以随机读取,读写速度快。</li> </ul> <p>缺点:</p> <ul> <li>比较娇贵,怕磕碰。</li> </ul> <h3 class="heading-element" id="总结"><span>总结</span> <a href="#%e6%80%bb%e7%bb%93" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><table> <thead> <tr> <th>存储介质</th> <th>驱动器价格(元)</th> <th>存储器价格(元)</th> <th>存储器容量(GB)</th> <th>平均成本 (元/GB)</th> </tr> </thead> <tbody> <tr> <td>M-DISK BD-R</td> <td>800</td> <td>20</td> <td>25</td> <td>0.8</td> </tr> <tr> <td>磁带 LTO-6</td> <td>1500</td> <td>80</td> <td>2250</td> <td>0.0355</td> </tr> <tr> <td>磁带 LTO-5</td> <td>800</td> <td>25</td> <td>1500</td> <td>0.01667</td> </tr> <tr> <td>机械硬盘</td> <td>0</td> <td>800</td> <td>4000</td> <td>0.2</td> </tr> </tbody> </table> <p>从数据上看,使用磁带有巨大的成本优势,虽然是二手的设备,如果能买到成色比较好的,寿命还是有保证的。</p> <h2 class="heading-element" id="我的离线存储方案"><span>我的离线存储方案</span> <a href="#%e6%88%91%e7%9a%84%e7%a6%bb%e7%ba%bf%e5%ad%98%e5%82%a8%e6%96%b9%e6%a1%88" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>我最终选择了 LTO-6 的磁带驱动器进行离线存储,型号是 HP LTO Ulitium 6250 磁带机。 磁带主要选择了 LTo-5 的磁带。</p> <p>因为现在 LTO-5 的磁带相当便宜, 买 LTO-6 的磁带机是因为 LTO-6 的磁带机相较 LTO-5 的价格差距不大,毕竟电子产品买新不买旧。</p> <p>下面两篇博文详细记录了我折腾 LTO-6 磁带机的详细过程:</p>

2024/6/11
阅读更多

Lua 语言入门

<h2 class="heading-element" id="1-输出日志"><span>1. 输出日志</span> <a href="#1-%e8%be%93%e5%87%ba%e6%97%a5%e5%bf%97" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>print(&ldquo;Hello,Lua!&rdquo;)</p> <h2 class="heading-element" id="2-注释"><span>2. 注释</span> <a href="#2-%e6%b3%a8%e9%87%8a" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>单行注释:<code> -- 两个减号</code></p> <p>多行注释:</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="cm">--[[ </span></span></span><span class="line"><span class="cl"><span class="cm"> 多行注释内容1 </span></span></span><span class="line"><span class="cl"><span class="cm"> 多行注释内容2 </span></span></span><span class="line"><span class="cl"><span class="cm">--]]</span></span></span></code></pre></td></tr></table> </div> </div><h2 class="heading-element" id="3-变量"><span>3. 变量</span> <a href="#3-%e5%8f%98%e9%87%8f" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Lua中的变量全是全局变量,哪怕是语句块或是函数里,除非用local显式声明为局部变量。</p> <p>局部变量的作用域为从声明位置开始到所在语句块结束。 变量的值默认为 nil。</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span><span class="lnt">5 </span><span class="lnt">6 </span><span class="lnt">7 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="mi">5</span> <span class="c1">-- 全局变量</span> </span></span><span class="line"><span class="cl"><span class="kd">local</span> <span class="n">b</span> <span class="o">=</span> <span class="mi">5</span> <span class="c1">-- 局部变量</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="kr">function</span> <span class="nf">foo</span><span class="p">()</span> </span></span><span class="line"><span class="cl"> <span class="n">c</span> <span class="o">=</span> <span class="mi">5</span> <span class="c1">-- 全局变量</span> </span></span><span class="line"><span class="cl"> <span class="kd">local</span> <span class="n">d</span> <span class="o">=</span> <span class="mi">6</span> <span class="c1">-- 局部变量</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span></span></span></code></pre></td></tr></table> </div> </div><p>支持多值赋值:</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">a</span><span class="p">,</span> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="mi">6</span></span></span></code></pre></td></tr></table> </div> </div><h2 class="heading-element" id="4-运算符"><span>4. 运算符</span> <a href="#4-%e8%bf%90%e7%ae%97%e7%ac%a6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="算数运算"><span>算数运算:</span> <a href="#%e7%ae%97%e6%95%b0%e8%bf%90%e7%ae%97" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>+、-、*、/、%、^(乘幂,例如 2^2 值为 4)、-(负号)</p> <h3 class="heading-element" id="关系运算"><span>关系运算:</span> <a href="#%e5%85%b3%e7%b3%bb%e8%bf%90%e7%ae%97" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>==、<span style="color:red">~=(不等于)</span>、&gt;、&lt;、&gt;=、&lt;=</p> <h3 class="heading-element" id="逻辑运算"><span>逻辑运算:</span> <a href="#%e9%80%bb%e8%be%91%e8%bf%90%e7%ae%97" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>and、or、not</p> <h3 class="heading-element" id="其他运算"><span>其他运算:</span> <a href="#%e5%85%b6%e4%bb%96%e8%bf%90%e7%ae%97" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><code>..</code> 连接字符串</p> <p><code>#</code> 取长度</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span><span class="lnt">5 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="s2">&#34;Hello&#34;</span> </span></span><span class="line"><span class="cl"><span class="n">print</span><span class="p">(</span><span class="o">#</span><span class="n">a</span><span class="p">)</span> <span class="c1">---&gt; 5</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&#34;aaa&#34;</span><span class="p">,</span> <span class="s2">&#34;bbb&#34;</span><span class="p">}</span> </span></span><span class="line"><span class="cl"><span class="n">print</span><span class="p">(</span><span class="o">#</span><span class="n">b</span><span class="p">)</span> <span class="c1">---&gt; 2</span></span></span></code></pre></td></tr></table> </div> </div><h2 class="heading-element" id="5-数据类型"><span>5. 数据类型</span> <a href="#5-%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><table> <thead> <tr> <th>数据类型</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>nil</td> <td>是一个空值</td> </tr> <tr> <td>boolea</td> <td>false、true</td> </tr> <tr> <td>number</td> <td>表示双精度的浮点数</td> </tr> <tr> <td>string</td> <td>字符串,由一堆双引号或者单引号包围</td> </tr> <tr> <td>function</td> <td>由C或者Lua编写的函数</td> </tr> <tr> <td>userdate</td> <td>表示任意存储在变量中的C数据结构</td> </tr> <tr> <td>thread</td> <td>表示执行的独立线程,用于执行协同程序</td> </tr> <tr> <td>table</td> <td>Lua中的表是一个关联数组,数组的索引可以是数字或者字符串。最简单的表是{},表示是一个空表</td> </tr> </tbody> </table> <h2 class="heading-element" id="6-字符串"><span>6. 字符串</span> <a href="#6-%e5%ad%97%e7%ac%a6%e4%b8%b2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt"> 1 </span><span class="lnt"> 2 </span><span class="lnt"> 3 </span><span class="lnt"> 4 </span><span class="lnt"> 5 </span><span class="lnt"> 6 </span><span class="lnt"> 7 </span><span class="lnt"> 8 </span><span class="lnt"> 9 </span><span class="lnt">10 </span><span class="lnt">11 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">string1</span> <span class="o">=</span> <span class="s2">&#34;this is string1&#34;</span> </span></span><span class="line"><span class="cl"><span class="n">string2</span> <span class="o">=</span> <span class="s1">&#39;this is string2&#39;</span> </span></span><span class="line"><span class="cl"><span class="n">string3</span> <span class="o">=</span> <span class="s">[[ </span></span></span><span class="line"><span class="cl"><span class="s">&lt;html&gt; </span></span></span><span class="line"><span class="cl"><span class="s"> &lt;head&gt; </span></span></span><span class="line"><span class="cl"><span class="s"> &lt;/head&gt; </span></span></span><span class="line"><span class="cl"><span class="s"> &lt;body&gt; </span></span></span><span class="line"><span class="cl"><span class="s"> &lt;a href=&#34;http://www.qq.com/&#34;&gt;QQ&lt;/a&gt; </span></span></span><span class="line"><span class="cl"><span class="s"> &lt;/body&gt; </span></span></span><span class="line"><span class="cl"><span class="s">&lt;/html&gt; </span></span></span><span class="line"><span class="cl"><span class="s">]]</span></span></span></code></pre></td></tr></table> </div> </div><p>字符串拼接: 两个点 ..</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt"> 1 </span><span class="lnt"> 2 </span><span class="lnt"> 3 </span><span class="lnt"> 4 </span><span class="lnt"> 5 </span><span class="lnt"> 6 </span><span class="lnt"> 7 </span><span class="lnt"> 8 </span><span class="lnt"> 9 </span><span class="lnt">10 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">string4</span> <span class="o">=</span> <span class="n">string1</span> <span class="o">..</span> <span class="s2">&#34;abc&#34;</span> <span class="o">..</span> <span class="n">string2</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="n">print</span><span class="p">(</span><span class="s2">&#34;a&#34;</span> <span class="o">..</span> <span class="s1">&#39;b&#39;</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="c1">-- ab</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="n">print</span><span class="p">(</span><span class="s2">&#34;a&#34;</span> <span class="o">..</span> <span class="mi">456</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="c1">-- a456</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="n">print</span><span class="p">(</span><span class="s2">&#34;123.4&#34;</span> <span class="o">+</span> <span class="mi">4</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="c1">-- 127.4</span></span></span></code></pre></td></tr></table> </div> </div><h2 class="heading-element" id="7-表"><span>7. 表</span> <a href="#7-%e8%a1%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>是Array,也是Map。</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">tab1</span> <span class="o">=</span> <span class="p">{}</span> </span></span><span class="line"><span class="cl"><span class="n">tab2</span><span class="o">=</span> <span class="p">{</span><span class="err">“</span><span class="n">a</span><span class="s2">&#34;, &#34;</span><span class="n">b</span><span class="s2">&#34;,&#34;</span><span class="n">c</span><span class="s2">&#34;} </span></span></span><span class="line"><span class="cl"><span class="s2">tab2[&#34;</span><span class="n">key2</span><span class="s2">&#34;] = &#34;</span><span class="n">val2</span><span class="s2">&#34;</span></span></span></code></pre></td></tr></table> </div> </div><p>下标从1开始</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">tab2</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="c1">-----&gt; &#34;a&#34;</span></span></span></code></pre></td></tr></table> </div> </div><h2 class="heading-element" id="8-函数"><span>8. 函数</span> <a href="#8-%e5%87%bd%e6%95%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="kr">function</span> <span class="nf">foo</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> </span></span><span class="line"><span class="cl"> <span class="n">print</span><span class="p">(</span><span class="s2">&#34;hello, &#34;</span> <span class="o">..</span> <span class="n">name</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span></span></span></code></pre></td></tr></table> </div> </div><p>匿名函数, 函数也是个变量</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">abc</span> <span class="o">=</span> <span class="kr">function</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> </span></span><span class="line"><span class="cl"> <span class="n">print</span><span class="p">(</span><span class="s2">&#34;hello, &#34;</span> <span class="o">..</span> <span class="n">name</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span></span></span></code></pre></td></tr></table> </div> </div><p>可以有多返回值</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span><span class="lnt">5 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="kr">function</span> <span class="nf">multival</span><span class="p">()</span> </span></span><span class="line"><span class="cl"> <span class="kr">return</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="n">f</span><span class="p">,</span> <span class="n">g</span> <span class="o">=</span> <span class="n">multival</span><span class="p">()</span></span></span></code></pre></td></tr></table> </div> </div><h2 class="heading-element" id="9-条件判断"><span>9. 条件判断</span> <a href="#9-%e6%9d%a1%e4%bb%b6%e5%88%a4%e6%96%ad" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="kr">if</span><span class="p">(</span><span class="err">布尔表达式</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="kr">then</span> </span></span><span class="line"><span class="cl"> <span class="c1">-- 语句块</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span></span></span></code></pre></td></tr></table> </div> </div><div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span><span class="lnt">5 </span><span class="lnt">6 </span><span class="lnt">7 </span><span class="lnt">8 </span><span class="lnt">9 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="kr">if</span><span class="p">(</span><span class="err">布尔表达式</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="kr">then</span> </span></span><span class="line"><span class="cl"> <span class="c1">--语句块</span> </span></span><span class="line"><span class="cl"><span class="kr">elseif</span><span class="p">(</span><span class="err">布尔表达式</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="kr">then</span> </span></span><span class="line"><span class="cl"> <span class="c1">--语句块</span> </span></span><span class="line"><span class="cl"><span class="kr">else</span> </span></span><span class="line"><span class="cl"> <span class="c1">--语句块</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span></span></span></code></pre></td></tr></table> </div> </div><h2 class="heading-element" id="10-循环"><span>10. 循环</span> <a href="#10-%e5%be%aa%e7%8e%af" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="kr">while</span><span class="p">(</span><span class="err">布尔表达式</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="kr">do</span> </span></span><span class="line"><span class="cl"> <span class="c1">-- 语句块</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span></span></span></code></pre></td></tr></table> </div> </div><div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="kr">repeat</span> </span></span><span class="line"><span class="cl"> <span class="c1">-- 语句块</span> </span></span><span class="line"><span class="cl"><span class="kr">until</span><span class="p">(</span><span class="err">布尔表达式</span><span class="p">)</span></span></span></code></pre></td></tr></table> </div> </div><div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="kr">for</span> <span class="n">var</span><span class="o">=</span><span class="n">exp1</span><span class="p">,</span><span class="n">exp2</span><span class="p">,</span><span class="n">exp3</span> <span class="c1">-- 初值,终值,步长</span> </span></span><span class="line"><span class="cl"><span class="kr">do</span> </span></span><span class="line"><span class="cl"> <span class="c1">-- 语句块</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span></span></span></code></pre></td></tr></table> </div> </div><div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span><span class="lnt">5 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">a</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&#34;one&#34;</span><span class="p">,</span> <span class="s2">&#34;two&#34;</span><span class="p">,</span> <span class="s2">&#34;three&#34;</span><span class="p">}</span> </span></span><span class="line"><span class="cl"><span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="n">ipairs</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="kr">do</span> </span></span><span class="line"><span class="cl"> <span class="n">print</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span></span></span></code></pre></td></tr></table> </div> </div><h2 class="heading-element" id="11-面向对象"><span>11. 面向对象</span> <a href="#11-%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>使用 table + function 的方式模拟面向对象</p> <h3 class="heading-element" id="冒号语法糖"><span>冒号语法糖</span> <a href="#%e5%86%92%e5%8f%b7%e8%af%ad%e6%b3%95%e7%b3%96" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>冒号只是隐去了第一个参数,自动定义和传递 self 变量。</p> <p>原始写法:</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span><span class="lnt">5 </span><span class="lnt">6 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">girl</span> <span class="o">=</span> <span class="p">{</span><span class="n">money</span> <span class="o">=</span> <span class="mi">200</span><span class="p">}</span> </span></span><span class="line"><span class="cl"><span class="kr">function</span> <span class="nc">girl</span><span class="p">.</span><span class="nf">goToMarket</span><span class="p">(</span><span class="n">girl</span> <span class="p">,</span><span class="n">someMoney</span><span class="p">)</span> </span></span><span class="line"><span class="cl"> <span class="n">girl.money</span> <span class="o">=</span> <span class="n">girl.money</span> <span class="o">-</span> <span class="n">someMoney</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span> </span></span><span class="line"><span class="cl"><span class="n">girl.goToMarket</span><span class="p">(</span><span class="n">girl</span> <span class="p">,</span><span class="mi">100</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="n">print</span><span class="p">(</span><span class="n">girl.money</span><span class="p">)</span></span></span></code></pre></td></tr></table> </div> </div><p>函数调用时使用冒号:</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span><span class="lnt">5 </span><span class="lnt">6 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">boy</span> <span class="o">=</span> <span class="p">{</span><span class="n">money</span> <span class="o">=</span> <span class="mi">200</span><span class="p">}</span> </span></span><span class="line"><span class="cl"><span class="kr">function</span> <span class="nc">boy</span><span class="p">.</span><span class="nf">goToMarket</span><span class="p">(</span><span class="n">self</span> <span class="p">,</span><span class="n">someMoney</span><span class="p">)</span> </span></span><span class="line"><span class="cl"> <span class="n">self.money</span> <span class="o">=</span> <span class="n">self.money</span> <span class="o">-</span> <span class="n">someMoney</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span> </span></span><span class="line"><span class="cl"><span class="n">boy</span><span class="p">:</span><span class="n">goToMarket</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="n">print</span><span class="p">(</span><span class="n">boy.money</span><span class="p">)</span></span></span></code></pre></td></tr></table> </div> </div><p>函数定义时使用冒号:</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span><span class="lnt">5 </span><span class="lnt">6 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">boy</span> <span class="o">=</span> <span class="p">{</span><span class="n">money</span> <span class="o">=</span> <span class="mi">200</span><span class="p">}</span> </span></span><span class="line"><span class="cl"><span class="kr">function</span> <span class="nc">boy</span><span class="p">:</span><span class="nf">goToMarket</span><span class="p">(</span><span class="n">someMoney</span><span class="p">)</span> </span></span><span class="line"><span class="cl"> <span class="n">self.money</span> <span class="o">=</span> <span class="n">self.money</span> <span class="o">-</span> <span class="n">someMoney</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span> </span></span><span class="line"><span class="cl"><span class="n">boy</span><span class="p">:</span><span class="n">goToMarket</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="n">print</span><span class="p">(</span><span class="n">boy.money</span><span class="p">)</span></span></span></code></pre></td></tr></table> </div> </div><h2 class="heading-element" id="12-注释类型声明"><span>12. 注释类型声明</span> <a href="#12-%e6%b3%a8%e9%87%8a%e7%b1%bb%e5%9e%8b%e5%a3%b0%e6%98%8e" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>方便编辑器自动提示使用</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="c1">---@type AActor</span> </span></span><span class="line"><span class="cl"><span class="kd">local</span> <span class="n">myActor</span> <span class="o">=</span> <span class="kc">nil</span></span></span></code></pre></td></tr></table> </div> </div><div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="c1">---@class AMyActor : AActor</span> </span></span><span class="line"><span class="cl"><span class="c1">---@field public ActorName string</span> </span></span><span class="line"><span class="cl"><span class="kd">local</span> <span class="n">AMyActor</span> <span class="o">=</span> <span class="p">{}</span></span></span></code></pre></td></tr></table> </div> </div><div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="c1">---@param bEnablePreviewMode boolean</span> </span></span><span class="line"><span class="cl"><span class="c1">---@return boolean</span> </span></span><span class="line"><span class="cl"><span class="kr">function</span> <span class="nf">SwitchPreviewMode</span><span class="p">(</span><span class="n">bEnablePreviewMode</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="kr">end</span></span></span></code></pre></td></tr></table> </div> </div>

2024/5/27
阅读更多

忆高震东先生:爱自己的孩子是人,爱别人的孩子是神

<p><img loading="lazy" src='https://songfei.org/essays/mr-gao/mr-gao.jpg' alt="高震东先生" height="565" width="973"></p> <p>高震东先生,台湾著名教育家,<a href="https://www.chhs.hcc.edu.tw/"target="_blank" rel="external nofollow noopener noreferrer">台湾忠信学校<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>创办人兼董事长,“忠信教育法”创建人。 办学三十年来,以教育尽现国学精粹,传承中国传统文化精髓,结合自身多年办学的经验,总结出一套行之有效的忠信教育法,引起教育界的广泛反响。</p> <p>高老师于2021年2月25日仙逝, 享年 92岁。</p> <p>最初听到高老师,是我在初中时的物理老师,给我们讲了高老师的一篇演讲稿《天下兴亡,我的责任》,至今记忆犹新。</p> <p>时过多年, 偶然在电脑中翻出了多年前留存的高老师的演讲,现将其分享出来。</p> <h2 class="heading-element" id="天下兴亡我的责任"><span>天下兴亡,我的责任</span> <a href="#%e5%a4%a9%e4%b8%8b%e5%85%b4%e4%ba%a1%e6%88%91%e7%9a%84%e8%b4%a3%e4%bb%bb" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>  台湾有这么一所学校,学生年龄在15-18之间,每年三千多学生中,因违反校规校纪被校方开除的二、三百人。学校没有工人,没有保卫,没有大师傅,一切必要工种都由学生自己去做。学校实行学长制,三年级学生带一年级学生。全校集合只需3分钟。学生见到老师七米外要敬礼。学生没有寒署假作业,没有一个考不上大学的。这就是台湾享誉30年以道德教育为本的忠信高级工商学校。在台湾各大报纸招聘广告上,经常出现&quot;只招忠信毕业生”字样。</p> <p>  以下是校长高震东在国内的讲演:</p> <p>  同学们,你们说“天下兴亡”的下一句是什么?(台下声音:“匹夫有责”)──不,是“我的责任”。如果今年高考每个人都额外加10分,那不等于没加吗?“天下兴亡,匹夫有责”等于大家无责。“匹夫有责”要改成“我的责任”,我是这样教我的学生的。所以说,现在我们大陆教育办得不好,是我高震东的责任,只因为这样,我才回祖国专门举办道德方面演讲。(掌声)“以天下兴亡为已任”是孟子思想。</p> <p>  禹是人,舜是人,我也是人!他们能做到的,我为什么不能呢? “天下兴亡,我的责任”,唯有这个思想,我们的国家才有希望。我们每个学生如果人人都说:学校秩序不好,是我的责任;国家教育办不好,是我的责任;国家不强盛,我的责任……人人都能主动负责,天下哪有不兴盛的国家?哪有不团结的团体?所以说,每个学生都应该把责任拉到自己身上来,而不是推出去。我在台湾办学校就是这样,如果教室很脏,我问“怎么回事?”假如有个学生站起来说:“报告老师,今天是32号同学值日,他没打扫卫生”。那样,这个学生是要挨揍的。在我的学校,学生会这样说:“老师,对不起,这是我的责任”,然后马上去打扫。灯泡坏了,哪个学生看见了,自己就会掏钱去买个安上,窗户玻璃坏了,学生自己马上买一块换上它──这才是教育,不把责任推出去,而是揽过来。也许有些人说这是吃亏,我告诉你,吃亏就是占便宜,这种教育要牢牢记在心里,我们每个中国人都要记住! 学校更应该训练学生这种“天下兴亡,我的责任”的思想。校园不干净,就应该是大家的责任。</p> <p>  你想,这么大的一个校园,你不破坏,我不破坏,它会脏吗?脏了之后,人人都去弄干净,它会脏吗?你只指望几个工人做这个工作,说:“这是他们的事。我是来读书的,不是扫地的。”──这是什么观念?你读书干什么?读书不是为国家服务吗?眼前的务你都不服,你还能为未来服务?当前的责任你都不负,未来的责任你能负吗? 水龙头漏水,你不能堵住吗?有人会说:“那不是我的事,那是总务处的事。”这是错误的。一般人最坏的毛病是这样:打开水龙头后,发现没水,又去开第二个,第二个也没有,又去开第三个──这样的学生,在我学校是要被开除的!连举一反三都不懂,第一个没水,第二个会有吗?你就没想到水会来吗?人无远虑怎么能行?作为一个干部,作为一个人,都要想到后果,后果看得越远的人,越是一个成功的人。一个只管眼前,不顾将来的人,不是一个好干部,不是一个有用的人。水管不关,来了水后让它哗哗哗满池子去流,仍不去关注:“反正是国家的水,不是我的自己的!”──浪费国家的,就是“汉奸”!你为什么浪费国家的水?你为什么浪费国家的资源?我每天洗脸都为国家省一盆水,一年省多少水,你算算,你们学校六千多学生,每个每天节省一盆水,一年省多少水?省水就是省电,就是节省国家资源。爱国可有两种,一种是积极爱国,一种是消极爱国。积极爱国是为国家创造财富,消极爱国是为国家节省财富。国家用那么多百姓的民脂民膏来供你读书,你还浪费国家的财富,你良心在?你上大学都如此,怎么能期望于中学生、小学生呢?怎么能期望于一般老百姓呢?你高级知识分子都不爱国,怎么能让老百姓去爱国呢?从自己身边做起,我们国家才有希望──这就是“ 天下兴亡,我的责任”积极负责的道德观念,这就是道德教育。</p> <p>  另一点,我们要有“勿以善小而不为,勿以恶小而为之”的敬业观念。天下有大事吗?没有。但任何小事都是大事。集小恶则成大恶,集小善则为大善。培养良好的道德,是从尊敬老师开始的,是从那很小很小的事开始的。这种道德是慢慢建立起来的,而不专门找到大事才干。今天上午下课的时候,我和师大校长一块出来,礼堂里有很多废纸。我说不要捡,要等下午学生自己捡──同学们,谁丢下这些纸屑就是不爱国。天下无大事,请先把自己脚下的纸屑捡起来──这就是我的教材”。好的,同学们捡起自己脚下的废纸,这就爱国的开始。我给大家讲两个关于渍纸的故事。</p> <p>  第一个,美国有个“福特公司”,福特是一个人,他大学毕业后,去一家汽车公司应聘。和他同应聘的三四个人都比他学历高,当前面几个人面试之后,他觉得自己没有什么希望了。但既来之,则安之。他敲门走进了董事长办公室,一进办公室,他发现门口地上有一张纸,弯腰捡了起来,发现是一张渍纸,便顺手把它扔进了废纸篓里。然后才直到董事长的办公桌前,说:“我是来应聘的福特。”事长说:“很好,很好!福特先生,你已被我们录用了。”福特惊讶地说:“董事长,我觉得前几位都比我好,你怎么把我录用了?”董事长说:“福特先生,前面三位的确学历比你高,且仪表堂堂,但是他们眼睛只能“看见”大事,而看不见小事。你的眼睛能看见小事,我认为能看见小事的人,将来自然看到大事,一个只能“看见”大事的人,他会忽略很多小事。他是不会成功的。所以,我才录用你。”福特就这样进了这个公司,这个公司不久就扬名天下,福特把这个公司改为“福特公司”,也相应改变了整个美国国民经济状况,使美国汽车产业在世界占居鳌头,这就是今天“美国福特公司”的创造人福特。大家说,这张废纸重要不重要?看见小事的人能看见大事,但只能“看见”大事的人,不一定能看见小事,这是很重要的教训。</p> <p>  第二个渍纸的故事,当本届亚运会在日本广岛结束的时候,六万人的会场上竟没有一张废纸。全世界报纸都登文惊叹:“可敬,可怕的日本民族!”就是因为没有一张废纸,就使全世界为之惊讶。再看看我们十月一日天安门广场升国旗的镜头,当人们散去,满地废纸,到处乱刮!外国人一看当然会这样认为:你们中国此时要同日本比,差得远呢!大家不要总是说:我们国家地大物博,有137枚金牌──这都没用,咱们的道德水准还没上来,还差得远!大家说这些废纸重要不重要?所以说,我让大家捡起一张废纸,这就是爱国的开始。万事从小事做起。美国太空3号快到月球了,它却不能登上去而无奈地返回来,为什么?只是因为一节30块钱的小电池坏了,他们这个酝酿很久的航天计划被破坏了,几亿元报废了!天下有大事吗?大家看哪次飞机失事是翅膀和头一齐掉下来的?都是一节油管不通,一个轮胎放不下来才失事的。一个人的死,哪个是全身完全溃烂死掉的?都是肝坏了,或心脏有毛病,等等一个小器官不正常而死的!──同学们,从现在开始,你们要有敬业观念。我们中国实行九年制教育目的就是这样,就是要看你怎样同老师相处,怎样与朋友相处,这就是教育的目的。从古至今,中国的教育才是最伟大的教育,你把西方的教育看作是最先进的教育,那就大错特错了。美国的教育部长三个月前发表讲话说:“我们国家的教育是彻底失败的,我们把人教成了肉机器,我们要向东方学习人文教育!”所以说,我们祖国的教育是世界上最伟大的教育!(掌声)孔子告诉我们:学而不思则罔,思而不学则殆。一个学生要不断地学,不断地想,不断地做,这就是真正教育,这就是中国教育精髓所在。</p> <p>  再一个,我们要进行吃中国饭、说中国话、过中国节和穿中国服装的振兴民族文化的道德教育。一个中国人连中国饭都不吃了,能叫中国人吗?吃中国饭的第一代表是使用筷子。筷子原是中国的文化,是文明的行为。我去美国,偶尔吃他们的西餐,他们一上西餐我就说:“请给我拿筷子来。”他们问我:“吃西餐都用刀叉,你为什么用筷子?”我说筷子是文明的象征,而你们的刀叉是野蛮标志,所以我不用。筷子可切、可削、可夹、可戳,无所不能,而你们的刀叉笨重至极,像杀人的武器。(掌声)学生要吃烧鸡,我说可以,如果他说要吃“肯炸鸡”,我要揍他,他说吃面包夹豆腐乳,可以,他说吃“汉堡”却不可以。你可以吃碉堡,但不能吃“汉堡”。这就是中国的民族精神教育!外国只是机器、枪炮比我们强,吃的能与中国比吗?吃外国人的东西只是种怪心态,可卑啊!</p> <p>  我们学校的英文教学是全台湾最好的。我从美国请来两名老师,专门教我的学生学说外语。我有一个留美班,他们一定是要留美的。但是他们所学的教材第一页上都印着我的话:“中国人学英文是我们的国耻行为,学英文是中国最可悲的行为,但我们不能不学,因为别人超过了我们,“敌人”枪炮、科学压过了我们。今天我们必须学习他们的科学,然后才能打倒他们!超过他们!我们要以夷制夷!非把英文学好不可,所以要咬牙切齿学英文!(掌声)我们学英文目的并不是为了去美国洗盘子刷马桶,去伺侯外国人,去做丢尽祖宗八辈人的事!”(掌声)所以,我的学生英文学得都非常好。如果一个英文老师一上课就说:“同学们,今天我们要学英文了。英文是世界语言,是世界上最美的语言!一个不会英文的民族是一个低等民族,英文太美了!太棒了!”你说这个老师要不要打屁股?所以我总是告诉这些老师:要好好教我的学生,你不要替外国人宣传,变成“汉奸”!要告诉学生雪耻图强,打败列强,这是中国人的希望(掌声)!</p> <p>  你们这里不也有英文老师吗?外语系的学生以后不也去教英文吗?上课以前你们要对学生进行爱国学英文的教育,不要上来就替外国吹一场,你们不要认为:传道者只是传英文之道、授英文之业,而要传爱国之道,授英文之业。好,同学们懂得了这些道理,下一步我们就要知道,我们今天的教育是很失败的。因为,我们从小就被教错了。所以,我们要进行为国家而求学问,为社会分工而学技能利他、利群的道德教育。大家先要想想为什么读书,为谁读书?你们要反思一下。有些人也许会说,为自己找个饭碗而读书!这是多么卑鄙和渺小,多么无聊和可怜!你绝对不应该单是为找个饭碗而活着!找个饭碗吃饭太简单了! 拿个刀子,找个人随便捅一下,绝对一辈子有了饭吃,而且还有人伺侯,还有人为你做饭,睡觉时还有人为你站岗,你的东西一样少不了!那不就解决吃饭了吗?你为什么不干呢?因为我告诉了你,要学好生存的技能,要懂得生命的意义和价值,那里不是创造人类价值的地方!所以,我们要知道读书绝对不是为了自己,读书是为了国家而求学问,所以,我们要告诉孩子们读书、做事要确定一个方向:先做自己应该做的事,再做自己喜欢做的事。很多人为兴趣而读书,岂有此理!读书有什么兴趣?真正目标不应是兴趣,而是责任,在责任当中找到兴趣,但不能用兴趣代替责任。越在黑暗中越做光明的事,这就是道德教育。我们读书是为了国家。同学们,你们想想你们从小受到什么教育?尤其是农村子弟,你爹妈是怎么教你的?他们这样告诉你:你要好好念书!你不好好念书,将来就不能出人头地,你必须努力奋斗好好读书,你才有前途,读书是为了你的幸福,读书是为了你的前途!读书一切是为了你!你就是在这种教育下长大的,这就是最错误的教育,这就是最糟糕的教育!所以小孩子长大以后就知道,啊哈,读书就是为了我呀,与任何不相干,为了我的前途,为了我的未来,为了我的希望,你看这个国家还有希望吗?它与国家毫不相干!他喝着国家的奶水,用着国家纳税人的钱,拿民脂民膏培养出的却是一个自私自利的小孩,培养出一批自私自利的老师,你想:这国家会有前途吗?你读书的方向都错了,读书不是为了自己,读书是为了我们的国家,国家需要人才,国家需要干部,国家需要建国的栋梁。国家为什么培养你?国家是欠你的吗?你能白白吃国家的饭吗?白白享受这里的宿舍和餐厅、白白地享受老师对你知识的传授吗?你凭什么?你对国家有什么贡献?你对社会有什么贡献?有什么牺牲?你一切都没有,你只是个造粪的机器而已。你每天吃饭了,无所事事,你对国家有什么贡献?国家在期盼着你的贡献,期盼着你的未来,因为有一天你会长大,有一天你会学成,你要为国家做事,所以国家才在你身上投资,让你为国效命。因为道德教育必须以国家教育为前提,所以今天我们要爱我们的国家。正好你们是读师大的,你们在三、四年之后要培养跨世纪的接班人,你的责任比谁都大。如果你都没有国家观念,你都不爱国,你怎么要求你的学生爱国呢?所以说今天的老师是最重要的。这就是我跑来跑去,为师范生灌输爱国思想的原因所在!你们爱国,学生自然爱国!如果不爱国,天天发牢骚,天天想转行,天天想下海,那下一代还有什么希望?尤其是学英文的,总想好好学,将来以后到哪个公司为哪个老板、哪个董事长当翻译官,多丢脸!多没人格,多没气度!(掌声)我这里特别强调的是国家观念。</p> <p>  我常常给我的学生讲一个故事:我们有一天出去旅行,忽然间暴风雨来了。我们没地方避风躲雨,孩子们向前跑,一看前面有个草棚,大家“哗”地冲了进去,一冲进去大雨就来了。大家好高兴,“哇,今天运气不错哟,刚刚找了房子大雨就来了。太快乐了!”大家也不顾虑房子干不干净,有没有人住过,只要有避雨的地方就很满足了。但这个房子在风雨中突然间要倒塌,同学们想尽办法“扶住它,不能让房子倒塌”。在这种状况下,我很有感慨,同学们,你们说是我们需要房子呢,还是房子需要我们呢?(掌声)我看是我们需要这座房子。这座房子就是我们的国家,再破再烂是我们的家,再穷再破,是我们的家,我们要爱她!(掌声)你怎么可以羡慕外国人呢?“唉呀,你看外国人多好!我不当中国人,我想当外国人!”那是不对的。我们国家不如别人,我们承认,但是我们有决心,我们会慢慢把它搞好,但我们一定要牺牲自己,有热爱国家的观念。人人在砍国家、吃国家、拿国家,这个国家怎么会好呢?人人都贪污、腐败,这国家会好吗?外国有个加拿大!中国有个“大家拿”,再大的国家也会被你拿穷了。(掌声)我走到哪里,绝对拒绝招待。我走到哪里吃自己,用自己,坐你的汽车给车钱,住你的旅馆给你旅馆钱,吃你的饭给饭钱,绝对不沾国家一毛钱。我就是要做个示范给你看!(掌声)什么叫爱国,是我们把东西把钱把命给国家,这叫爱国,你总是把国家的东西往家拿,这叫什么爱国?有些人偷国家、拿国家,还拿得津津有味,拿得大言不惭,拿得毫不要脸,这怎么得了?(掌声) 有人说:老师,你让我爱国,我可以爱国,不过,国家在哪里?我找不着!“不识庐山真面目,只缘身在此山中。”你在国家里头,不知国家在哪。当老师的,国家就是你面前的学生。你往讲台上一站,下边的学生就是你的国家,找国家太容易了。今天我往这儿一站,下面1500人就是我的国家,我必须对你们尽心尽责,就要产生教化作用,影响作用,你就是我的国家,我爱你,就是我爱国,把我的思想传播给你,就是爱国!(掌声)那你以后往你的学生面前一站,那就是你的国家。你不能浪费他的时间,他的生命,你要好好为国家培养下一代,你给他这种爱国思想,你就是一个爱国者,不给他,你就是不爱国,你就是叛国者!(掌声)同学们,将来你也有留学的机会,你要注意到,不要让自己丢了中国人的脸。你别去了不回来,这丢中国人的脸呢!外国人是不会看得起你的。他们会说:你看,这些留学生一点国家观念都没有,这些小亡国奴!人家怎么会看得起你呢?这很丢脸,是很难为情的一件事。</p> <p>  国家对我们来说非常重要,你不到国外不知道“祖国”的重要。一个没有国家的,一个国势很弱的人,实在是太可怜了!太可悲了!所以,我们今天的中国人要自强、自爱,我们要知道爱我们的国家。国家不壮大,你个人再有钱有什么用?再有地位有什么用?你永远不受人尊敬啊!</p> <p>  我今天讲了什么是爱国主义,哪里是爱国主义,处处都是爱国主义!任何一个行为都可以爱国。大家都知道以色列与阿拉伯的战争。阿拉伯和以色列打仗打得正热闹的时候,世界正举行选美比赛,那年以色列小组正好当选“世界小组”。许多电影界的人士都围着她:“小姐签约吧,将来你可以发大财了”,“签约后你名利双收,你何必回国呢,你的国家正在打仗,那么一个小国,随时会被吃掉的!”“你回去多可怕!你现在又有钱,又有名,留在美国吧!”这姑娘却在电视上发表谈话:世界小姐不是我个人想选,我只是让你们知道,以色列是一个优秀的民族,所以我出来竞选。我想让人们知道:地球上有以色列这个国家,所以我要出来竞选。我今天被选上了,就完成我的任务,我也告诉世界:以色列是个优秀的民族,因为我是世界上最漂亮的女人,同时还告诉世界:以色列这个国家正艰苦奋战,希望全世界的人民同情我们,支持我们!支持我们国家的独立!现在我的国家正在打仗,要钱何用?我们以色列亡国两千年,因为我们文化不亡,所以我们还能建国。今天我要回去,为祖国而战,要钱何用?--她发表完这番谈话,第二天就坐飞机回国了。(掌声)这个消息发表后,全世界的人对以色列刮目相看!哇,以色列人真了不起啊!于是,以色列的军队,军心大振,他们象疯了一样,把阿拉伯的军队打得干干净净!这就是历史上最伟大的七日战争!七天打完!这就是因为一个女孩子的一句话!</p> <p>  所以,同学们,爱国常常在一个微小的地方。“一言以丧邦,一言以兴邦”。我们是受过高等教育的,我们肩负着国家的荣辱啊,人家看到我们就看到国家的希望。同学们,国家的前途是向后看的,个人的前途是往前看的。老师这样一回顾,就知道二十年以后的中国是什么样子,看看小学生就知道三十年后的中国是什么现象。如果他品德良好,道德高尚,爱国,二十年后国家就有希望。如果看见这个小朋友很爱国,很有礼貌,很有道德,那么三十年后的中国人是了不起的中国人。否则看着他怠惰、自私、傲慢、无礼、没有水准,就知道三十年后的中国就是那个样子。我们今天要雪耻图强,力争做得更好。不要丢了祖宗的脸,不要丢了我们汉唐先烈的脸。爱国是很具体的。我的学校门口有个标语:离开校门一步,肩负忠信荣辱。推而大之,离开国门一步,肩负全国荣辱。一口痰吐在中国是小事,一口痰吐在外国,你就丢了中国十二亿同胞的脸,因为你代表十二亿中国人,而不是你个人,你千万不要以为,“好汉做事好汉当”,你错了;你做不到;你不够资格当!所以每个同学的一言一举都要注意。高老师回到国内,看到不顺眼的要讲要骂,要批评要建议,但是我离开了大陆回到台湾,不会讲大陆一句坏话。他们问:大陆好吗?我说好得不得了!太大了,太棒了。到了美国就说中国人伟大得不得了,绝对不会丢中国人的脸,一句对中国的批评也没有。但是,回来一定要实实在在地讲话,诚诚恳恳建议。有的人刚好相反,在国内他屁都不敢放一个,装得那么温顺,那么可爱,一离开中国就大放獗词,把中国骂得一文不值,这就是标准的汉奸王八蛋也!(掌声)</p> <h2 class="heading-element" id="道德教育和中华文化"><span>道德教育和中华文化</span> <a href="#%e9%81%93%e5%be%b7%e6%95%99%e8%82%b2%e5%92%8c%e4%b8%ad%e5%8d%8e%e6%96%87%e5%8c%96" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><img loading="lazy" src='https://songfei.org/essays/mr-gao/mr-gao-2.jpg' alt="高震东先生" height="435" width="608"></p> <p>这是高震东先生在杭州讲学的录音,总共7个小时, 非常精彩。</p> <div class="aplayer-shortcode" data-audio="[{&#34;artist&#34;:&#34;高震东&#34;,&#34;cover&#34;:&#34;cover.png&#34;,&#34;name&#34;:&#34;道德教育和中华文化演讲 第1段&#34;,&#34;url&#34;:&#34;mr-gao-1.mp3&#34;}, {&#34;artist&#34;:&#34;高震东&#34;,&#34;cover&#34;:&#34;cover.png&#34;,&#34;name&#34;:&#34;道德教育和中华文化演讲 第2段&#34;,&#34;url&#34;:&#34;mr-gao-2.mp3&#34;}, {&#34;artist&#34;:&#34;高震东&#34;,&#34;cover&#34;:&#34;cover.png&#34;,&#34;name&#34;:&#34;道德教育和中华文化演讲 第3段&#34;,&#34;url&#34;:&#34;mr-gao-3.mp3&#34;}, {&#34;artist&#34;:&#34;高震东&#34;,&#34;cover&#34;:&#34;cover.png&#34;,&#34;name&#34;:&#34;道德教育和中华文化演讲 第4段&#34;,&#34;url&#34;:&#34;mr-gao-4.mp3&#34;}, {&#34;artist&#34;:&#34;高震东&#34;,&#34;cover&#34;:&#34;cover.png&#34;,&#34;name&#34;:&#34;道德教育和中华文化演讲 第5段&#34;,&#34;url&#34;:&#34;mr-gao-5.mp3&#34;}, {&#34;artist&#34;:&#34;高震东&#34;,&#34;cover&#34;:&#34;cover.png&#34;,&#34;name&#34;:&#34;道德教育和中华文化演讲 第6段&#34;,&#34;url&#34;:&#34;mr-gao-6.mp3&#34;}, {&#34;artist&#34;:&#34;高震东&#34;,&#34;cover&#34;:&#34;cover.png&#34;,&#34;name&#34;:&#34;道德教育和中华文化演讲 第7段&#34;,&#34;url&#34;:&#34;mr-gao-7.mp3&#34;}]" data-options="{&#34;loop&#34;:&#34;false&#34;,&#34;mutex&#34;:true,&#34;order&#34;:&#34;list&#34;,&#34;preload&#34;:&#34;auto&#34;,&#34;storageName&#34;:&#34;aplayer-setting&#34;,&#34;theme&#34;:&#34;#b7daff&#34;,&#34;volume&#34;:1}"></div> <p>以下为 AI 整理的演讲笔记,本人进行了校对:</p> <h3 class="heading-element" id="一高震东先生的个人背景与杰出品格"><span>一、高震东先生的个人背景与杰出品格</span> <a href="#%e4%b8%80%e9%ab%98%e9%9c%87%e4%b8%9c%e5%85%88%e7%94%9f%e7%9a%84%e4%b8%aa%e4%ba%ba%e8%83%8c%e6%99%af%e4%b8%8e%e6%9d%b0%e5%87%ba%e5%93%81%e6%a0%bc" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>丁教授对高震东先生的介绍集中于其卓越的教育成就和高尚的个人品德,并用五句话进行了概括。</p> <h4 class="heading-element" id="1-个人履历与办学成就"><span>1. 个人履历与办学成就</span> <a href="#1-%e4%b8%aa%e4%ba%ba%e5%b1%a5%e5%8e%86%e4%b8%8e%e5%8a%9e%e5%ad%a6%e6%88%90%e5%b0%b1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>出生与经历:高震东先生于1930年出生于山东潍坊。他于1948年旅居台湾。</li> <li>创校历程:高先生于1970年在台湾新竹创办了忠信学校。这所学校最初是普通高中,后来因应台湾经济发展,转型为职业高中,目前又恢复了普通高中教育。学校名字为“忠信学校”。</li> <li>社会职务:高先生是山东潍坊市的政协委员,山东省教委主任顾问。他还在大陆上百所院校和教育单位担任名誉院长、名誉董事长和合作教授。</li> <li>教育荣誉:忠信学校在台湾享有盛誉,被称为“台湾教育中的一股清流”。在忠信学校为高等职业学校期间,它被誉为“台湾高职教育中天空中最亮的一颗星”。</li> <li>“三个百分之百”的成就:忠信学校取得了惊人的办学成就。 <ul> <li>从事职业教育的学生,就业率达百分之百。许多公司在学生毕业前就刊登广告聘用忠信毕业生,且工资待遇高于其他学校的毕业生。</li> <li>从事普通高中教育的学生,升学率达百分之百。</li> <li>自1970年办学以来,所有在校生及毕业生中,犯罪率为百分之百的零犯率。</li> </ul> </li> </ul> <h4 class="heading-element" id="2-丁教授概括的高先生五大品格"><span>2. 丁教授概括的高先生五大品格</span> <a href="#2-%e4%b8%81%e6%95%99%e6%8e%88%e6%a6%82%e6%8b%ac%e7%9a%84%e9%ab%98%e5%85%88%e7%94%9f%e4%ba%94%e5%a4%a7%e5%93%81%e6%a0%bc" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><h5 class="heading-element" id="1爱国倾身爱国与个人牺牲"><span>(1)爱国倾身(爱国与个人牺牲)</span> <a href="#1%e7%88%b1%e5%9b%bd%e5%80%be%e8%ba%ab%e7%88%b1%e5%9b%bd%e4%b8%8e%e4%b8%aa%e4%ba%ba%e7%89%ba%e7%89%b2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h5><ul> <li>政治立场:高先生坚信国家统一,是坚定的“国统派”。他到处宣传国家能够统一。</li> <li>无私奉献:自20世纪90年代以来,高先生到大陆讲学“分文不取”。一切开支全部由他自己承担,包括差旅费,甚至住宿费都需要自付。他每年数次来大陆讲学,所有费用自理,纯粹是一种爱国行动。他甚至将落款明确写为“台湾省”。</li> <li>足迹遍布全国:高先生在大陆所有省、市、自治区(包括西藏,由丁教授陪同)都讲过学。他到过200多所院校和教育单位,演讲200多场,听众多达数十万人次。</li> <li>对自身私利的回避:高先生表示,到大陆讲学,他从不让人请他吃饭,因为他知道对方会报销,他不愿意让对方将自己写入发票中。</li> </ul> <h5 class="heading-element" id="2修世原博学识渊博"><span>(2)修世原博(学识渊博)</span> <a href="#2%e4%bf%ae%e4%b8%96%e5%8e%9f%e5%8d%9a%e5%ad%a6%e8%af%86%e6%b8%8a%e5%8d%9a" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h5><ul> <li>高先生出生于世代书香门第,从小熟读四书五经。</li> <li>他对古今中外许多问题有深刻的见解和深入的研究,特别是对中华传统文化以及历代圣贤关于教育的理论、实践和方法造诣很深。</li> </ul> <h5 class="heading-element" id="3教育有方创办忠信教育法"><span>(3)教育有方(创办忠信教育法)</span> <a href="#3%e6%95%99%e8%82%b2%e6%9c%89%e6%96%b9%e5%88%9b%e5%8a%9e%e5%bf%a0%e4%bf%a1%e6%95%99%e8%82%b2%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h5><ul> <li>高先生创立了“忠信教育法”,具有五大特点: <ul> <li>德育为本:核心理念是“德育是一切教育的根本”。</li> <li>全面发展:主张德智体美群全面发展,尤其是要求学生品德良好发展的基础上,智育也要得到最佳发展。</li> <li>文化根基:教育方法以中国历代圣贤关于教育的理论和方法而创立起来的。高老自己称其为“不外不排外,独具中国特色”的教育方法。</li> <li>深度解读概念:对学生、老师、学校、教育、爱等都有深刻独到的见解。</li> <li>高度可操作性:该教育方法不仅有理论根据,而且有很强的实际操作办法,具有很强的可操作性。</li> </ul> </li> </ul> <h5 class="heading-element" id="4品德高尚为人师表"><span>(4)品德高尚,为人师表</span> <a href="#4%e5%93%81%e5%be%b7%e9%ab%98%e5%b0%9a%e4%b8%ba%e4%ba%ba%e5%b8%88%e8%a1%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h5><ul> <li>言行一致:高先生“一言九鼎,说到做到”。</li> <li>社会角色典范:他要求自己“做做好一切社会角色的人”:在父母面前是好儿子,在儿女面前是好父亲,在老师面前是好学生,在学生面前是好老师,在长官面前是好部下,在部下(老师)面前是好长官。</li> <li>孝道实践:他以身作则,对年已114岁的继母(后娘)保持孝顺。他会陪母亲打麻将,提供本金,但要求母亲必须输,这样别人才愿意跟她玩,保持她的社交和乐趣。他曾对妻子朱老师表示,如果遇到危险,他会救母亲,因为母亲只有一个。</li> <li>对待下属的慷慨:他作为长官,坚持“部下吃饱,我挨饿”的原则。在学校调薪时,他坚持先给最基层的人调,最后再调自己,如果钱不够,他就从自己的薪水中扣除,以此服众。</li> </ul> <h5 class="heading-element" id="5海峡两岸知名的教育家"><span>(5)海峡两岸知名的教育家</span> <a href="#5%e6%b5%b7%e5%b3%a1%e4%b8%a4%e5%b2%b8%e7%9f%a5%e5%90%8d%e7%9a%84%e6%95%99%e8%82%b2%e5%ae%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h5><ul> <li>高先生认为教育家应具备五个条件:有理论、有实践、有成就、有影响、有特色,并加上“品德高尚,为人师表”。高先生完全具备这五条。</li> <li>他办学成功,理论有忠信教育法。他在海峡两岸有广泛影响,曾邀请400多位大陆教育界同行到校参观考察。</li> </ul> <h3 class="heading-element" id="二教育的核心理念教与育的辩证"><span>二、教育的核心理念:“教”与“育”的辩证</span> <a href="#%e4%ba%8c%e6%95%99%e8%82%b2%e7%9a%84%e6%a0%b8%e5%bf%83%e7%90%86%e5%bf%b5%e6%95%99%e4%b8%8e%e8%82%b2%e7%9a%84%e8%be%a9%e8%af%81" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>高先生强调,教育必须根植于爱。如果教育离开了爱,就变成了训练。</p> <h4 class="heading-element" id="1-教育的构成与侧重"><span>1. 教育的构成与侧重</span> <a href="#1-%e6%95%99%e8%82%b2%e7%9a%84%e6%9e%84%e6%88%90%e4%b8%8e%e4%be%a7%e9%87%8d" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>教(Jiao):是外在的刺激、给予、深入。就像武术的“招式”,作用只占20%。</li> <li>育(Yu):是内在的启发、感染、渴望和成就。就像武术的“内功”,占80%。</li> <li>育的精髓:老师应像母亲,博览群书(吸收各种营养),然后将其综合提炼成最好的知识(奶水精华)给予学生。</li> <li>启发教育:教育必须建立在“受教者”本身具备求生愿望和生机之上。孔子说“不愤不启,不悱不发”,这就是中国启发教育的起源,而非西方舶来品。</li> <li>教育者的身份:老师是“产婆”,只能助产,不能代替产妇生孩子。老师不能代替学生念书或懂得知识,但要帮助他们顺利生出智慧。</li> <li>“不”字的含义:在中文里,“不”是“否”的否定;但“毋(Wu)”是“情感”的否定,代表着母亲尽管不舍(孩子还想吃奶),但必须断奶的痛苦情感。</li> </ul> <h4 class="heading-element" id="2-学生与老师的深刻含义"><span>2. “学生”与“老师”的深刻含义</span> <a href="#2-%e5%ad%a6%e7%94%9f%e4%b8%8e%e8%80%81%e5%b8%88%e7%9a%84%e6%b7%b1%e5%88%bb%e5%90%ab%e4%b9%89" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>学生(来学“生”的):学生不是来学“死”,而是来学习生命的意义和价值、生活常识和生存技能。</li> <li>“学”字的结构:古代的“学”字意味着老师要用双手“拔出耳朵里面的茅塞”,让学生“茅塞顿开”。同时要掀开孩子的盖头,让他们“远看世界”。</li> <li>“聪明”的含义:人要“聪”明。聪,要听得远方的声音;明,要看到事物的正反两面,才能真正明白。如果只听一面之词,就无法得到真正的答案。</li> <li>老师(老是):老师的“老”字不是指年纪大,而是指“坚持不懈”、“不断”和“机会教育”的形容词。老师的工作是随时随地都在教育,而不仅仅在课堂上。</li> <li>老师的地位:传统上,老师与天地君亲并列(天地君亲师)。老师给予孩子“人格的培养”和“第二生命”。</li> <li>老师的威仪:教育者应做到“望之俨然,即之也温”(外表威严,内在温和),以及“默而识之,诲人不倦”(默默学习,教导别人不厌倦)。如果老师没有威严,学生无法服从。</li> </ul> <h4 class="heading-element" id="3-对读书目的的重新定义"><span>3. 对读书目的的重新定义</span> <a href="#3-%e5%af%b9%e8%af%bb%e4%b9%a6%e7%9b%ae%e7%9a%84%e7%9a%84%e9%87%8d%e6%96%b0%e5%ae%9a%e4%b9%89" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>为谁读书:读的越好,对国家社会越有利。读书不是为了自己,而是为了他人、为了社会的分工。</li> <li>教育的错误观念:普遍认为“念书是为你自己念的”是错误的,这种观念养成了自私自利的心态。例如,学医是为了病人的安全,而不是为了给自己治肚子。</li> <li>读书的方法:要“玩索而有得”,在书中反复体味,乐在其中,不只是“看过”。读书如果不背诵,就不算会(读书不背,视为不会)。</li> </ul> <h3 class="heading-element" id="三忠信学校的办学与管理实践"><span>三、忠信学校的办学与管理实践</span> <a href="#%e4%b8%89%e5%bf%a0%e4%bf%a1%e5%ad%a6%e6%a0%a1%e7%9a%84%e5%8a%9e%e5%ad%a6%e4%b8%8e%e7%ae%a1%e7%90%86%e5%ae%9e%e8%b7%b5" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>忠信学校的管理哲学旨在创造一个纯净的、无懈可击的教育环境(境教),并致力于纠正学生的微小错误。</p> <h4 class="heading-element" id="1-忠信的四大公开与四大纪律"><span>1. 忠信的“四大公开”与“四大纪律”</span> <a href="#1-%e5%bf%a0%e4%bf%a1%e7%9a%84%e5%9b%9b%e5%a4%a7%e5%85%ac%e5%bc%80%e4%b8%8e%e5%9b%9b%e5%a4%a7%e7%ba%aa%e5%be%8b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>四大公开(已在第一部分详述):经济公开、赏罚公开、意见公开、人员公开。</li> <li>赏罚原则:批评错误要公开(归过于公堂),表扬好事要私下进行(劝善于私)。</li> <li>民主台:只允许学生批评学校缺点,凡是表扬学校的都会受到批评,目的是避免培养拍马屁的个性。</li> <li>惩罚原则:惩罚学生必须是“小惩而大诫”。惩罚需有计划,并在高年级学生面前,由家长陪同下执行,确保是教育,而非发泄脾气。</li> <li>四大纪律:抽烟、作弊、打架、流气(游手好闲)。一旦发现,立即开除,学校坚持“宁为玉碎不为瓦全”。</li> <li>作弊的处理:作弊的学生立刻开除,曾在一个班级一次开除30多人。</li> <li>开除的理由:高老认为,教育工作是“宁为玉碎不为瓦全”,学校是“水源社会”,必须保护水质,不能让坏蛋(坏蛋犹如流汤的鸡蛋,会污染好蛋)把一框好蛋都搞坏了。学校绝不能说把坏学生“扔给社会”,因为学校本身就是高级社会。</li> <li>招生原则:忠信学校在招生时就进行“基地悲岸”的防御。学生须由初中导师推荐,并由父母写下保证书,担保孩子不犯四大纪律,否则随时开除,绝无怨言。</li> </ul> <h4 class="heading-element" id="2-师生关系与礼仪"><span>2. 师生关系与礼仪</span> <a href="#2-%e5%b8%88%e7%94%9f%e5%85%b3%e7%b3%bb%e4%b8%8e%e7%a4%bc%e4%bb%aa" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>拜师礼:每年9月28日(孔子诞辰)举行尊师典礼。一年级新生必须下跪给老师磕头行拜师礼。老师接受“父权之权杖”,象征性地接受家长转移的惩戒和教育权。</li> <li>师生如父子:老师和学生在校内是长辈与晚辈的关系,不可“平辈论交”。高先生认为,老师与学生平辈论交容易导致师生恋等问题。</li> <li>谈恋爱的处理:忠信学校规定,一旦发发现恋爱,开除女学生,保留男学生。理由是女生生理和心理年龄比男生早熟6岁,主动引诱者多为女生,且男生肩负国家责任(当兵)需要保护。</li> <li>老师不称“教书”:老师不能自称“教书的”,书是死的,书教人,人不能教书。老师的职责是“教人”。</li> <li>老师是找麻烦的人:高先生告诉学生,好老师就是“天天找你麻烦的人”,直到学生身上的所有毛病都被找干净,进入社会时,社会就找不到他的麻烦了。</li> </ul> <h4 class="heading-element" id="3-境教与生活教育"><span>3. 境教与生活教育</span> <a href="#3-%e5%a2%83%e6%95%99%e4%b8%8e%e7%94%9f%e6%b4%bb%e6%95%99%e8%82%b2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>环境的魔力:高先生强调“环境教育是变化气质的魔术师”。</li> <li>站立训练:要求学生站立时必须“立如松”,收下颚、挺胸,头顶天、脚踩地成一条直线,减少地心引力,才能站得久,站得舒服。</li> <li>无人商店:学校设有“气质变化所”商店,无人看管,学生自觉找零、付费。目的是让学生训练在黑暗中也能做光明的事(在无人监督下做到诚实)。</li> <li>生活细节:吃饭必须端碗(否则长大会没有饭碗)。使用筷子是高级文明的表现,不准使用刀叉等“下流工具”。加菜时不能跳过盘子(不能超座次夹菜)。</li> <li>毕旅的目的:毕业旅行不是狂欢,而是“推销”自己。学生要将旅馆厕所打扫干净,获得旅馆老板的表扬信,作为毕业条件。</li> <li>惩罚机制的教育意义:忠信的学生绝不会乱丢垃圾。第一个路过的学生必须捡起来,即使不是他扔的,也是他的历史责任。</li> </ul> <h3 class="heading-element" id="四道德教育的核心内涵与实践"><span>四、道德教育的核心内涵与实践</span> <a href="#%e5%9b%9b%e9%81%93%e5%be%b7%e6%95%99%e8%82%b2%e7%9a%84%e6%a0%b8%e5%bf%83%e5%86%85%e6%b6%b5%e4%b8%8e%e5%ae%9e%e8%b7%b5" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>高先生认为道德教育(德育)是“1”,是所有教育的根基。他主张通过“六练”培养六种精神,其中包含了孝道、爱国、责任感等核心要素。</p> <h4 class="heading-element" id="1-孝道与伦理孝顺父母尊敬长者"><span>1. 孝道与伦理(孝顺父母,尊敬长者)</span> <a href="#1-%e5%ad%9d%e9%81%93%e4%b8%8e%e4%bc%a6%e7%90%86%e5%ad%9d%e9%a1%ba%e7%88%b6%e6%af%8d%e5%b0%8a%e6%95%ac%e9%95%bf%e8%80%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>孝的定义:孝不只是供养(养),更重要的是态度(敬)和愉悦的脸色(事以色)。仅仅供养猫狗也能做到。</li> <li>态度为先:孝敬父母必须有恭敬的态度和愉快的脸色,不能把钱一扔就算完事。</li> <li>孝之大成:孝的最高境界是“扬名显亲”。像岳飞、孟子,因儿子的成功而显扬。</li> <li>大仗小仗:孔子说,对于父母小的责罚可以忍受(小杖则受),但如果父母拿着大武器要打死你,一定要逃跑(大杖则逃),否则就是不孝。因为如果不逃,父母就成了不义之人。</li> <li>媳妇教育:高先生在婚前就告诉妻子,娘只有一个,妻子有很多,妻子如果敢对他的母亲不敬,立刻离婚。</li> <li>生活中的孝道:高先生训练孙子抢着给爷爷倒尿盆,以此培养他们孝顺的观念。</li> </ul> <h4 class="heading-element" id="2-责任感天下兴亡我的责任"><span>2. 责任感(天下兴亡,我的责任)</span> <a href="#2-%e8%b4%a3%e4%bb%bb%e6%84%9f%e5%a4%a9%e4%b8%8b%e5%85%b4%e4%ba%a1%e6%88%91%e7%9a%84%e8%b4%a3%e4%bb%bb" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>核心理念:高先生将“天下兴亡,匹夫有责”改为“天下兴亡,我的责任”。</li> <li>实践:学生必须对学校内发生的一切问题(灯泡不亮、教室肮脏、玻璃破碎)承担责任,并主动修复或解决。</li> <li>“眼中有事”:培养学生有责任感和能力,能够主动发现并解决小问题。这被称为“眼中有事”。</li> <li>“勿以善小而不为”:不要等到将来做大事,因为“天下没有大事,都从小事开始”。如同福特(Ford)因在面试时捡起地上的纸片而被录取,证明其“眼中有事”。</li> <li>光明与黑暗:要训练学生“越在黑暗的地方越做光明的事”,即在无人看管的情况下保持正直。</li> </ul> <h4 class="heading-element" id="3-伦理与大同小康"><span>3. 伦理与大同小康</span> <a href="#3-%e4%bc%a6%e7%90%86%e4%b8%8e%e5%a4%a7%e5%90%8c%e5%b0%8f%e5%ba%b7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>大同社会:孔子理想中的社会状态(天下为公),选贤与能,讲信修睦,人不必只亲自己的亲人,货弃于地不必藏于己。</li> <li>小康社会:是大道衰败后,大同守不住阵地,落入“天下为家”的阶段。此时人们“各亲其亲,各子其子”,只为自己谋利(货利为己)。</li> <li>小康的维系:在小康社会,必须依靠礼法制度(以设制度)来维持秩序,并着重加强道德教育以稳定内部。这包括“以正君臣,以笃父子,以睦兄弟,以和妻子”。</li> <li>教育的最终目标:培养的观念是“为天地立心,为生民立命,为往圣继绝学,为万世开太平”。</li> </ul> <h4 class="heading-element" id="4-女子教育的特殊性"><span>4. 女子教育的特殊性</span> <a href="#4-%e5%a5%b3%e5%ad%90%e6%95%99%e8%82%b2%e7%9a%84%e7%89%b9%e6%ae%8a%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>女性的重要性:一个女人影响三代人,所以高先生尤其注重女子教育。</li> <li>清苹果:高一高二女学生必须像“清苹果”,不准打扮、不准戴首饰,以此保护她们不被引诱和骚扰,确保安全。打扮的目的是“悦己者容”,就是“招惹”别人。</li> <li>保护女性:高老比喻,未成熟的橘子不应该暴露其红润,否则会被摘掉和浪费。</li> <li>择偶观念:高先生允许高三女生谈恋爱,但绝不准找同班同学。他鼓励女生找外校,尤其是找比自己年长的大学生,因为同班同学年龄相仿,将来女生容易被丈夫看轻,没有敬重可言。</li> </ul> <h3 class="heading-element" id="五教学管理方法论"><span>五、教学管理方法论</span> <a href="#%e4%ba%94%e6%95%99%e5%ad%a6%e7%ae%a1%e7%90%86%e6%96%b9%e6%b3%95%e8%ae%ba" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><h4 class="heading-element" id="1-教与管的界限"><span>1. 教与管的界限</span> <a href="#1-%e6%95%99%e4%b8%8e%e7%ae%a1%e7%9a%84%e7%95%8c%e9%99%90" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>区别:说明理由的要求叫做“教育”,不说明理由的要求叫做“管理”。</li> <li>学校原则:学校对学生不能“管”,只能“教”。老师必须向学生解释一切规定背后的道理,让学生明白、同意并接受。例如,立正时必须解释其科学原理。</li> <li>对不合格老师的处理:学校不养闲人。老师必须教书和兼任职务。对于不合格的老师,高先生会在毕业同学录上登载其照片和罪名,并将此册分发给各大公司和学校,使其无法在教育界或公务界立足,因为他们是“沐猴而冠”(拿了薪水却不尽责的人)。</li> </ul> <h4 class="heading-element" id="2-终生学习与修养"><span>2. 终生学习与修养</span> <a href="#2-%e7%bb%88%e7%94%9f%e5%ad%a6%e4%b9%a0%e4%b8%8e%e4%bf%ae%e5%85%bb" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><ul> <li>默而识之:老师必须不断学习(默而识之),将天下各处的学问和知识收集起来,作为教育的素材(诲人不倦)。</li> <li>中国文化的独特地位:中国教育理论贯穿于经典之中,如《论语》和《道德经》,教育、政治、经济、道德是合一的。</li> <li>传统经典的比喻: <ul> <li>“骨不在五音之内,无骨五音不合”:五音(宫商角徵羽)需要骨干才能形成和谐的音乐。</li> <li>“水不在五色之内,无水五色不调”:五色(青红蓝白黑)需要水才能调出各种颜色。</li> <li>“师不在五福之内,无师五福不亲”:老师虽然不在五服(亲属)之内,但没有老师教导伦理,亲属关系就无法亲近(会像禽兽一样乱伦)。</li> </ul> </li> </ul> <h3 class="heading-element" id="六总结"><span>六、总结</span> <a href="#%e5%85%ad%e6%80%bb%e7%bb%93" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>高先生的教育哲学强调回归中华传统文化,以伦理和道德为核心,通过严苛而充满爱意的环境教育,培养学生在进入社会后成为有品德、有能力、被社会所需的人才。他认为教育不是个人成功之道,而是为国家和社会服务的分工。</p> <h2 class="heading-element" id="建业教育"><span>建业教育</span> <a href="#%e5%bb%ba%e4%b8%9a%e6%95%99%e8%82%b2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>这是另一个演讲,讲给学生和家长的</p> <div class="bilibili"> <iframe src="//player.bilibili.com/player.html?bvid=BV1eUsNzHEFt&page=1&autoplay=false&poster=true&muted=false&danmaku=true&t=0" border="0" framespacing="0" allowfullscreen="true"></iframe> </div> <p>以下是 AI 做的演讲总结,本人做了校对:</p> <p>高老师演讲的核心在于提出一套强调整合生活教育、道德教育以及逆向训练的教育哲学与实践方法,旨在培养能够承受苦难、具备责任感、懂得奉献的“大丈夫”,并明确界定家庭和学校在培养人才方面的责任与分工。高老师结合自己创办忠信教育(忠信教育法)三十年的经验,着重强调了当代社会教育中道德和生活实践的缺失,并提出了具体的、甚至在许多人看来是严苛的训练方法。</p> <h3 class="heading-element" id="第一部分教育的根本目的与挑战"><span>第一部分:教育的根本目的与挑战</span> <a href="#%e7%ac%ac%e4%b8%80%e9%83%a8%e5%88%86%e6%95%99%e8%82%b2%e7%9a%84%e6%a0%b9%e6%9c%ac%e7%9b%ae%e7%9a%84%e4%b8%8e%e6%8c%91%e6%88%98" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><h4 class="heading-element" id="一-教育的终极目标培养大丈夫与生存能力"><span>一、 教育的终极目标:培养大丈夫与生存能力</span> <a href="#%e4%b8%80-%e6%95%99%e8%82%b2%e7%9a%84%e7%bb%88%e6%9e%81%e7%9b%ae%e6%a0%87%e5%9f%b9%e5%85%bb%e5%a4%a7%e4%b8%88%e5%a4%ab%e4%b8%8e%e7%94%9f%e5%ad%98%e8%83%bd%e5%8a%9b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>教育的根本任务是把孩子培养成一个 “大丈夫”。所谓大丈夫,必须能够做到“威武不屈,贫贱不移,富贵不淫”。要达到这个目标,孩子必须经历 “劳其苦,苦其心志”的训练。教育的目的是为了让孩子能够“活下去”(求生),而不是仅仅受到保护。父母无法保护孩子一辈子,孩子必须依靠自己来保护自己,因此需要给予他们力量——即能够面对苦难的能力。没有吃过苦的人,一旦灾难来临,就容易崩溃。</p> <h4 class="heading-element" id="二-道德与生活教育的紧迫性"><span>二、 道德与生活教育的紧迫性</span> <a href="#%e4%ba%8c-%e9%81%93%e5%be%b7%e4%b8%8e%e7%94%9f%e6%b4%bb%e6%95%99%e8%82%b2%e7%9a%84%e7%b4%a7%e8%bf%ab%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>当前中国的教育在其他方面已经非常了不起,但生活教育和道德教育的落实还远远不够,还没有到位。他认为,许多社会问题的产生并非偶然,而是长期积累的结果,解决这些问题需要长时间的努力,正如“冰冻三尺非一日之寒,解三尺之冻也非一日之暖”。 过去,传统戏剧中包含了忠孝的道理,但现在孩子们通过电视所见所闻,是非标准已经模糊。</p> <h4 class="heading-element" id="三-学习的目的与反思"><span>三、 学习的目的与反思</span> <a href="#%e4%b8%89-%e5%ad%a6%e4%b9%a0%e7%9a%84%e7%9b%ae%e7%9a%84%e4%b8%8e%e5%8f%8d%e6%80%9d" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>读书不是为了自己,而是为了国家、民族和他人而立志的。如果孩子从小接受“念书是为你自己念的”的反向教育,长大后就会变得自私自利,心中只有自己。演讲者以外科医生为例:医生认真学习开刀技术,不是为了给自己开刀,而是为了未来病人的安全。因此,学生今天学习任何课程,都是为了国家、民族、为他人服务。</p> <h3 class="heading-element" id="第二部分父母作为第一任教师的责任"><span>第二部分:父母作为第一任教师的责任</span> <a href="#%e7%ac%ac%e4%ba%8c%e9%83%a8%e5%88%86%e7%88%b6%e6%af%8d%e4%bd%9c%e4%b8%ba%e7%ac%ac%e4%b8%80%e4%bb%bb%e6%95%99%e5%b8%88%e7%9a%84%e8%b4%a3%e4%bb%bb" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><h4 class="heading-element" id="一-家庭是孩子的第一个学校"><span>一、 家庭是孩子的第一个学校</span> <a href="#%e4%b8%80-%e5%ae%b6%e5%ba%ad%e6%98%af%e5%ad%a9%e5%ad%90%e7%9a%84%e7%ac%ac%e4%b8%80%e4%b8%aa%e5%ad%a6%e6%a0%a1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>家庭是孩子教育的基石。演讲者强调,“家是母亲的学校”,母亲是孩子的第一位老师。父亲则是“训导主任”。孩子是不会有问题的,他们“知心”怎么会坏?都是被大人教坏的。全世界没有一个坏孩子,但社会和父母把他们教坏了。</p> <h4 class="heading-element" id="二-父母不可推卸的责任"><span>二、 父母不可推卸的责任</span> <a href="#%e4%ba%8c-%e7%88%b6%e6%af%8d%e4%b8%8d%e5%8f%af%e6%8e%a8%e5%8d%b8%e7%9a%84%e8%b4%a3%e4%bb%bb" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>生活教育和道德教育是爹娘的责任,不能委託给学校,父母必须承担起来。有问题的家庭必然产生有问题的儿女。如果父母连一个孩子都管不好,老师面对四五十个学生就更无法照顾得过来。</p> <h4 class="heading-element" id="三-爱的方式与溺爱警告"><span>三、 爱的方式与溺爱警告</span> <a href="#%e4%b8%89-%e7%88%b1%e7%9a%84%e6%96%b9%e5%bc%8f%e4%b8%8e%e6%ba%ba%e7%88%b1%e8%ad%a6%e5%91%8a" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>父母对孩子的爱必须有所区分和平衡。</p> <ul> <li>母亲的爱被称为“爱的教育”(溺爱)。</li> <li>父亲的爱被称为“教育爱”。 教育爱意味着管教和惩罚。</li> </ul> <p>高老师引用“小惩而大诫”的原则,指出孩子犯小错时若不打,长大后就会酿成大错。他强调,疼爱孩子需要训练他,而不是溺爱他。 演讲者引用父亲的教诲,告诫家长:</p> <ul> <li>“不要用钱财杀儿女”:用金钱溺爱孩子会害了他们。</li> <li>“不要用事欲杀你自己”:指不要纵情于享乐。</li> </ul> <h4 class="heading-element" id="四-家长的示范作用与配合"><span>四、 家长的示范作用与配合</span> <a href="#%e5%9b%9b-%e5%ae%b6%e9%95%bf%e7%9a%84%e7%a4%ba%e8%8c%83%e4%bd%9c%e7%94%a8%e4%b8%8e%e9%85%8d%e5%90%88" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>家长要给孩子树立良好的榜样。例如,孩子撞到墙哭泣时,家长不应该去打墙,而是应该教育孩子向墙道歉,反思自己为什么去撞墙。这种“打墙”的行为是最坏的教育,因为它教会孩子仇恨。 家长必须支持老师的管教,家校配合至关重要。一个老师最大的责任是“找学生的麻烦”,如果一个老师不找学生的麻烦,那就是放弃了学生。</p> <h3 class="heading-element" id="第三部分忠信教育法的核心实践与逆向训练"><span>第三部分:忠信教育法的核心实践与逆向训练</span> <a href="#%e7%ac%ac%e4%b8%89%e9%83%a8%e5%88%86%e5%bf%a0%e4%bf%a1%e6%95%99%e8%82%b2%e6%b3%95%e7%9a%84%e6%a0%b8%e5%bf%83%e5%ae%9e%e8%b7%b5%e4%b8%8e%e9%80%86%e5%90%91%e8%ae%ad%e7%bb%83" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>高老师在忠信学校推行了一套严格且独特的教育方法,旨在培养学生的意志力、牺牲精神和生活技能。</p> <h4 class="heading-element" id="一-群育班群育周的训练"><span>一、 群育班(群育周)的训练</span> <a href="#%e4%b8%80-%e7%be%a4%e8%82%b2%e7%8f%ad%e7%be%a4%e8%82%b2%e5%91%a8%e7%9a%84%e8%ae%ad%e7%bb%83" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>忠信学校将一年的20周变为21周,其中有一周专门用于“群育周”,不进行任何文化课,只上综合教育课、体育教育课、美育教育课等。在这个班级里,学生接受“大丈夫”的训练,主要围绕“恶其体肤,劳其筋骨,苦其心志”展开。</p> <h5 class="heading-element" id="1-饥饿训练第一课"><span>1. 饥饿训练(第一课):</span> <a href="#1-%e9%a5%a5%e9%a5%bf%e8%ae%ad%e7%bb%83%e7%ac%ac%e4%b8%80%e8%af%be" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h5><ul> <li>在群育周的第一天,所有学生不准吃饭。如果有人偷吃饼干或家长送食物,连同家长一起开除,且其家庭的第二个孩子也永不能进入该校。</li> <li>目的是让孩子捱饿,体会食物的珍贵。如同宗教的斋戒,这对身体健康有帮助。</li> <li>第二天:吃酱油拌饭。因为饿了一天,酱油拌饭也会觉得非常好吃。</li> <li>第三天:吃肉松辣椒面盐巴饭。</li> <li>第四天:吃饼干,且不准喝水。目的是让孩子懂得节约用水,体会一滴水的难得。</li> <li>第五天:吃各种罐头,并学习如何开罐头。训练学生在遇到战争或灾害时能够生存下去。</li> </ul> <h5 class="heading-element" id="2-逆向训练救不足"><span>2. 逆向训练(救不足):</span> <a href="#2-%e9%80%86%e5%90%91%e8%ae%ad%e7%bb%83%e6%95%91%e4%b8%8d%e8%b6%b3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h5><p>教育的目的是“长善而救不足”。因此,忠信教育法设计了性别反转的“逆向训练”。</p> <ul> <li>女生训练: 女生被认为是弱者,需要通过训练变得强大。训练包括挑担、修墙、批水泥、刷油漆等传统男性的工作。女生还要被要求单独住在坟墓附近,以训练胆量。</li> <li>男生训练: 男生则去做传统女性的工作,如买菜、做饭。因为男生不常做饭,要借此机会加强这方面的能力。</li> </ul> <h5 class="heading-element" id="3-牺牲与磨难训练"><span>3. 牺牲与磨难训练:</span> <a href="#3-%e7%89%ba%e7%89%b2%e4%b8%8e%e7%a3%a8%e9%9a%be%e8%ae%ad%e7%bb%83" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h5><ul> <li>清洁最肮脏的区域: 学生被分配打扫全校最艰难、最肮脏的区域。</li> <li>手掏水沟: 女生被要求用手去抓清理水沟里的脏物,不准使用任何工具。目的是让她们从最困难、最肮脏的地方走起,这是“治国安邦的大道”。</li> <li>刷厕所: 学生必须用自己的牙刷、牙膏和肥皂清洁全校的厕所。刷完后要互相闻一闻,看谁刷得最香。高老师说,忠信学校的厕所是全世界最干净的。这个训练是为了培养孩子的成就感和为国家牺牲的精神。</li> </ul> <h5 class="heading-element" id="4-选拔机制的反常态"><span>4. 选拔机制的反常态:</span> <a href="#4-%e9%80%89%e6%8b%94%e6%9c%ba%e5%88%b6%e7%9a%84%e5%8f%8d%e5%b8%b8%e6%80%81" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h5><p>在选择学生代表参加县里的演讲比赛时,忠信学校不会挑选最优秀的,而是从全域班中选择最不善于言辞、最害羞的学生去参加。目的是利用机会让其克服不足,学会说话,而非让已经会的人锦上添花。</p> <h5 class="heading-element" id="5-生活教育的延伸"><span>5. 生活教育的延伸:</span> <a href="#5-%e7%94%9f%e6%b4%bb%e6%95%99%e8%82%b2%e7%9a%84%e5%bb%b6%e4%bc%b8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h5><p>在群育周剩下的时间,老师会带着学生参观县政府、看办公室如何办公、如何交税、邮政局如何寄信。他们还会被带去旁听法院审案、看立法机构开会(甚至包括打架)。同时,也参与观看婚丧嫁娶等仪式,进行最直接的生活教育。</p> <h3 class="heading-element" id="第四部分重要的行为准则与道德建设"><span>第四部分:重要的行为准则与道德建设</span> <a href="#%e7%ac%ac%e5%9b%9b%e9%83%a8%e5%88%86%e9%87%8d%e8%a6%81%e7%9a%84%e8%a1%8c%e4%b8%ba%e5%87%86%e5%88%99%e4%b8%8e%e9%81%93%e5%be%b7%e5%bb%ba%e8%ae%be" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>忠信教育法强调几个基本要点,是学生道德教育的基础。</p> <h4 class="heading-element" id="一-心中有仁爱人"><span>一、 心中有仁(爱人)</span> <a href="#%e4%b8%80-%e5%bf%83%e4%b8%ad%e6%9c%89%e4%bb%81%e7%88%b1%e4%ba%ba" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>心里面要有善良的人、想到别人。</p> <ul> <li>孝亲教育的实践: 学生每天上学和放学回家,必须对父母或长辈说一句问候语,如“妈/爸,我回来了”或“妈/爷,我去上学了,再见”。</li> <li>过了一个月,要在问候语上增加行动,如“妈,我回来了,有什么事我做吗?”或“我去炒菜吧”。道德教育和孝顺教育必须通过实践来培养,而不是空谈。</li> <li>大爱教育: 爱自己的孩子是“人”;爱别人的孩子是“神”。老师的“国家”就是学生,爱学生就是爱国。</li> </ul> <h4 class="heading-element" id="二-眼中有事负责"><span>二、 眼中有事(负责)</span> <a href="#%e4%ba%8c-%e7%9c%bc%e4%b8%ad%e6%9c%89%e4%ba%8b%e8%b4%9f%e8%b4%a3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>小孩子必须有学问,眼中才能有事,知道什么是需要做的。</p> <h4 class="heading-element" id="三-先做自己应该做的事再做自己喜欢做的事"><span>三、 先做自己应该做的事,再做自己喜欢做的事</span> <a href="#%e4%b8%89-%e5%85%88%e5%81%9a%e8%87%aa%e5%b7%b1%e5%ba%94%e8%af%a5%e5%81%9a%e7%9a%84%e4%ba%8b%e5%86%8d%e5%81%9a%e8%87%aa%e5%b7%b1%e5%96%9c%e6%ac%a2%e5%81%9a%e7%9a%84%e4%ba%8b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>这个原则适用于生活的方方面面。</p> <ul> <li>饮食方面: 先吃自己应该吃的饭,再吃自己喜欢吃的饭。例如,女生个人习惯不吃猪肉,但老师会强制她们吃红烧肉,因为这对身体营养有益,这是她们应该吃的。</li> <li>习惯方面: 高老师将吃麦当劳视为“卖国的行为”。他认为这是外国人通过饮食方式来淘汰我们的国家。他教导学生即使吃西式快餐,也要心怀警惕,意识到这“不太对”。</li> <li>交友与学习: 先交自己应该交的朋友,再交自己喜欢交的朋友。先读自己应该读的书,再读自己喜欢读的书。</li> </ul> <h4 class="heading-element" id="四-日行一善"><span>四、 日行一善</span> <a href="#%e5%9b%9b-%e6%97%a5%e8%a1%8c%e4%b8%80%e5%96%84" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>学生每天必须创造机会“日行一善”。例如,在公共汽车上抢到座位但必须准备让座。忠信的学生在路上遇到老人,一定要帮助老人过马路。如果找不到可以帮助的老人,也要捡起地上的垃圾或瓶子。</p> <h4 class="heading-element" id="五-珍惜食物勤俭节约"><span>五、 珍惜食物,勤俭节约</span> <a href="#%e4%ba%94-%e7%8f%8d%e6%83%9c%e9%a3%9f%e7%89%a9%e5%8b%a4%e4%bf%ad%e8%8a%82%e7%ba%a6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>学生吃饭时要吃多少打多少,盘中不能留有一粒米。忠信学校的餐厅没有泔水桶,因为所有食物都被吃得干干净净。所有餐桌都由学生自己擦干净,学校里没有清洁工。学生不能依赖别人伺候,这是教育学生的对立面。</p> <h3 class="heading-element" id="第五部分对国家与未来的展望"><span>第五部分:对国家与未来的展望</span> <a href="#%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%e5%af%b9%e5%9b%bd%e5%ae%b6%e4%b8%8e%e6%9c%aa%e6%9d%a5%e7%9a%84%e5%b1%95%e6%9c%9b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><h4 class="heading-element" id="一-爱国教育的落地"><span>一、 爱国教育的落地</span> <a href="#%e4%b8%80-%e7%88%b1%e5%9b%bd%e6%95%99%e8%82%b2%e7%9a%84%e8%90%bd%e5%9c%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>爱国不是抽象的概念,而是从身边小事做起。</p> <ul> <li>家即是国: 高老师解释说,把西瓜皮丢在马路上就是不爱国;把西瓜皮丢在妈妈的长凳上就是不爱家。</li> <li>最简单的爱国: 不随手丢垃圾、不吐痰、不丢血(纸屑),就是爱国。</li> <li>老师爱国即爱学生: 老师的“国家”就是学生,因为学生是国家未来的主人。未来二三十年后,中国的希望就在这些年轻人身上。如果他们是善良、不自私、有牺牲精神的,国家就有希望;如果他们自私、无能,则国将不国。</li> </ul> <h4 class="heading-element" id="二-圣贤的教育与分工"><span>二、 圣贤的教育与分工</span> <a href="#%e4%ba%8c-%e5%9c%a3%e8%b4%a4%e7%9a%84%e6%95%99%e8%82%b2%e4%b8%8e%e5%88%86%e5%b7%a5" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>将孩子培养成圣贤或总统是不可能的,但可以将其培养成“人”。</p> <ul> <li>将孩子变成“好人”,是家庭的责任。</li> <li>将孩子变成“有用的人”,是学校的责任。 家校必须分清责任,共同合作。他鼓励下一代要比我们更伟大、更廉洁、更懂得牺牲。</li> </ul> <h4 class="heading-element" id="三-中国文化的精髓与自省"><span>三、 中国文化的精髓与自省</span> <a href="#%e4%b8%89-%e4%b8%ad%e5%9b%bd%e6%96%87%e5%8c%96%e7%9a%84%e7%b2%be%e9%ab%93%e4%b8%8e%e8%87%aa%e7%9c%81" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><p>高老师结合中国传统生肖文化(子丑寅卯辰巳午未申酉戌亥)讲述了人无完人的道理。例如,老鼠没有胆量,牛没有牙齿,老虎没有脖子,兔子没有嘴唇,龙没有耳朵。他引用孔子的“苟日新,日日新,又日新”,强调教育需要不断地前进和奋斗。</p> <p>总而言之,忠信教育法是一套旨在通过艰苦训练和逆向思维来培养学生独立、爱国、有担当的品格教育体系。这套方法的核心理念是“越在黑暗的地方越做光明的事”。</p>

2024/5/27
阅读更多

查看 Windows 中的 dll 依赖

<p>在 Windows 系统中, dll 扮演了非常重要的角色,通过 dll 的动态调用, 可以实现代码模块化,动态加载等。算是 Windows 系统的基石。</p> <p>如何查看 exe 或者 dll 依赖了哪些其他的 dll 呢?</p> <h2 class="heading-element" id="静态查看"><span>静态查看</span> <a href="#%e9%9d%99%e6%80%81%e6%9f%a5%e7%9c%8b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>通过 Dependencies 这个工具,可以查看到 exe 或者 dll 静态依赖的 dll 文件。</p> <p>微软官方的工具,已静止开发,仅支持到 Win8, Win10 已经无法使用。</p> <p>次工具是网友制作并开源的,<a href="https://github.com/lucasg/Dependencies"target="_blank" rel="external nofollow noopener noreferrer">项目Github地址<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>启动后窗口如下, 主要分为3个部分。 分别是 dll 依赖树、dll 引用的方法、 dll 导出的方法。</p> <p><img loading="lazy" src='https://songfei.org/notebooks/windows-dll-dependencie/dependencies.png' alt="Dependencies 窗口" height="1241" width="2261"></p> <h2 class="heading-element" id="动态查看"><span>动态查看</span> <a href="#%e5%8a%a8%e6%80%81%e6%9f%a5%e7%9c%8b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>上面的工具只能查看到 静态依赖的 dll ,通过代码在运行时动态加载的 dll 是看不到的。</p> <p>想看运行时加载的, 就需要 ProcessExplorer 了。</p> <p>这个是微软官方的工具, <a href="https://learn.microsoft.com/zh-cn/sysinternals/downloads/process-explorer"target="_blank" rel="external nofollow noopener noreferrer">下载地址<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p><img loading="lazy" src='https://songfei.org/notebooks/windows-dll-dependencie/process-explorer.png' alt="ProcessExplorer 窗口" height="1225" width="2200"></p> <p>首先,【View】 -&gt; 【Show Lower Pane】</p> <p>然后,【View】 -&gt; 【Lower Pane View】 -&gt; 【DLLs】</p> <p>就可以看到下方的界面里显示出来所有加载的 dll 列表了。</p>

2024/4/17
阅读更多

UE 日志配置

<p>UE 在 Developement 和 Debug 模式 会输出日志,Shipping 不会。</p> <p>输出的日志文件保存在: <code>[Platform]\[ProjectName]\Saved\Logs</code> 下。</p> <p>可以通过修改 Engine.ini 配置来修改日志输出的配置。</p> <p>配置文件的相关规则见另一篇笔记 <a href="../config-file/">《UE 引擎配置文件》</a></p> <p>配置项如下:</p> <div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-ini" data-lang="ini"><span class="line"><span class="cl"><span class="k">[LogFiles]</span> </span></span><span class="line"><span class="cl"><span class="na">PurgeLogsDays</span><span class="o">=</span><span class="s">30</span> </span></span><span class="line"><span class="cl"><span class="na">MaxLogFilesOnDisk</span><span class="o">=</span><span class="s">300</span> </span></span><span class="line"><span class="cl"><span class="na">LogTimes</span><span class="o">=</span><span class="s">Local</span></span></span></code></pre></td></tr></table> </div> </div><p>其中参数:</p> <h3 class="heading-element" id="purgelogsdays"><span>PurgeLogsDays</span> <a href="#purgelogsdays" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>保留日志的最长天数。</p> <h3 class="heading-element" id="maxlogfilesondisk"><span>MaxLogFilesOnDisk</span> <a href="#maxlogfilesondisk" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>最多文件数。</p> <h3 class="heading-element" id="logtimes"><span>LogTimes</span> <a href="#logtimes" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><code>LogTimes</code> 表示输出的时间格式: [time][frame mod 1000]</p> <p>可选值有:</p> <ul> <li><code>None</code> : 不显示时间</li> <li><code>UTC</code> : 显示 UTC 时间(默认值), 例:<code>[2015.11.25-21.28.50:803][376]</code></li> <li><code>SinceStart</code> : 从 GStartTime 开始的时间,例:<code>[0130.29][420]</code></li> <li><code>Local</code> : 显示当地时间, 例:<code>[2017.08.04-17.59.50:803][420]</code></li> <li><code>Timecode</code> : 时间码,例:<code>[17:59:50:18][420]</code></li> <li><code>True</code> : 同 UTC</li> </ul> <p>时间格式设置,也可以通过命令行启动参数来设置</p> <p>可选值有:</p> <ul> <li><code>LOGTIMES</code></li> <li><code>UTCLOGTIMES</code></li> <li><code>NOLOGTIMES</code></li> <li><code>LOGTIMESINCESTART</code></li> <li><code>LOCALLOGTIMES</code></li> <li><code>LOGTIMECODE</code></li> </ul>

2024/4/2
阅读更多

UE 引擎配置文件

<p>UE 引擎里有很多配置项, 放到的不同的目录里的不同文件,分别对应不同的生效范围。</p> <p>范围有:</p> <ul> <li>引擎目录 <code>Engine</code> : 对应所有项目</li> <li>UE 项目目录 <code>[ProjectDirectory]</code> : 对应所在项目</li> <li>操作系统 <code>[Platform]</code> : 对应不同的操作系统平台</li> </ul> <p>引擎会依次加载这些配置文件,后面的文件的同名选项会覆盖前面的文件。</p> <p>顺序如下:</p> <ul> <li><code>Engine/Config/Base.ini</code> (通常为空)</li> <li><code>Engine/Config/BaseEngine.ini</code></li> <li><code>Engine/Config/[Platform]/base[Platform]Engine.ini</code></li> <li><code>[ProjectDirectory]/Config/DefaultEngine.ini</code></li> <li><code>Engine/Config/[Platform]/[Platform]Engine.ini</code></li> <li><code>[ProjectDirectory]/Config/[Platform]/[Platform]Engine.ini</code></li> </ul>

2024/4/2
阅读更多

UE 解析启动命令行参数

<h3 class="heading-element" id="解析不带参数的"><span>解析不带参数的</span> <a href="#%e8%a7%a3%e6%9e%90%e4%b8%8d%e5%b8%a6%e5%8f%82%e6%95%b0%e7%9a%84" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-c++" data-lang="c++"><span class="line"><span class="cl"><span class="k">const</span> <span class="n">TCHAR</span><span class="o">*</span> <span class="n">CmdLineParam</span> <span class="o">=</span> <span class="n">FCommandLine</span><span class="o">::</span><span class="n">Get</span><span class="p">();</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="kt">bool</span> <span class="n">value</span> <span class="o">=</span> <span class="n">FParse</span><span class="o">::</span><span class="n">Param</span><span class="p">(</span><span class="n">CmdLineParam</span><span class="p">,</span> <span class="n">TEXT</span><span class="p">(</span><span class="s">&#34;XXXXXXX&#34;</span><span class="p">));</span></span></span></code></pre></td></tr></table> </div> </div><h3 class="heading-element" id="带参数的"><span>带参数的</span> <a href="#%e5%b8%a6%e5%8f%82%e6%95%b0%e7%9a%84" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><div class="highlight"><div class="chroma"> <table class="lntable"><tr><td class="lntd"> <pre tabindex="0" class="chroma"><code><span class="lnt">1 </span><span class="lnt">2 </span><span class="lnt">3 </span><span class="lnt">4 </span></code></pre></td> <td class="lntd"> <pre tabindex="0" class="chroma"><code class="language-c++" data-lang="c++"><span class="line"><span class="cl"><span class="k">const</span> <span class="n">TCHAR</span><span class="o">*</span> <span class="n">CmdLineParam</span> <span class="o">=</span> <span class="n">FCommandLine</span><span class="o">::</span><span class="n">Get</span><span class="p">();</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="n">FString</span> <span class="n">XValue</span><span class="p">;</span> </span></span><span class="line"><span class="cl"><span class="n">FParse</span><span class="o">::</span><span class="n">Value</span><span class="p">(</span><span class="n">CmdLineParam</span><span class="p">,</span> <span class="n">TEXT</span><span class="p">(</span><span class="s">&#34;-XXXXXXX=&#34;</span><span class="p">),</span> <span class="n">XValue</span><span class="p">);</span></span></span></code></pre></td></tr></table> </div> </div>

2024/4/2
阅读更多