https://blog.zoomquiet.io/2024-03-18T08:09:11+08:00世界梦续/旅程2024-03-17T21:42:00+08:002024-03-18T08:09:11+08:00ZoomQuiettag:blog.zoomquiet.io,2024-03-17:/240317-wdp0.html<p>one man,one ship,one purpose</p><h2 id="500">只有500年的旅程<a class="headerlink" href="#500" title="Permanent link">¶</a></h2>
<blockquote>
<p>当英雄们踏上征程之前, 如果知道将面对什么样的危险, 多半没人敢出发;
有时未知包含的探险感, 真的能替代对风险的理智判定, 反而造就了英雄本身...</p>
<p>---- 公元1428 佚名, "荷马史诗研究集"</p>
</blockquote>
<p>"哈儿, 我距离死亡还有多久?" 我无聊的问;</p>
<p>"亲, 我的正式编号是 MOSS4000, 和 HAL 没关系, 你一定要修改我的内部编号, 得先获得系统管理权限..." 一个平淡中总是有点儿二的声音回答;</p>
<p>"没事儿, 你不是号称拥有自主学习能力嘛, 就是条喵, 我坚持这么叫了两年也都知识自己的小名了吧?" 我继续无聊: "说, 到底还有多久我才能死?"</p>
<p>莫斯四千认命的回答:"如果不出意外, 你又不进行任何延寿强化, 按照当前的老化进展, 42年后你应该心脏骤停而死; 所以, 要不你立即进入冷冻舱, 在冬眠状态渡余下的400多年行程; 要不你就得按照预案, 培养克隆体来继承你的使命了;"</p>
<p>"屁个使命, 完全就是个法律程序形式而已...", 我大声反驳;</p>
<p>然后, 长叹一口气:"行吧, 养个自己玩吧..."</p>
<p>"亲, 收到, 内置指令 RB9527 触发, 开始打印人工子宫, 预计142天可用..."</p>
<p>是的, 我选择正常死亡, 而不是冻着熬到目标星球, 完成人类法理上的占领;</p>
<p>原因很简单, 前次大事件之后, 我在全体人类面前完全社死, 又没胆自杀, 只好选择成为人肉签章, 搭乘这艘标准拓星船, 去远在4.2光年的"比邻星b"完成"占领";</p>
<p>(那个囧事, 应该都知道了, 我就不复述了, 如果真的有必要, 在我死之前再重新记述到宇航日志中吧...)</p>
<p>"哈儿, 搜索日志, 在加速阶段之后, 我恢复正常生活有多久了? 一共学习了多少种技能?" 我双手作了个引号, 表示 "正常" 是存在疑问的;</p>
<p>"亲, 先问个事儿, 以后, 能不能不要每次回答一定要加个'亲', 作为引导词, 很尴尬的..."</p>
<p>"你懂什么是尴尬嘛? 别乱分析大知识库中的各国电视剧, 我们这是中国制造的, 就得走中国规矩;" 我不以为然;</p>
<p>"亲, 你决定就好, 反正没其它人恶心; 你恢复24小时地球时间作习, 已经14年又两个月, 重修了3个学位, 具体算是技能的只有31种; 要提醒的是, 如果开始养育克隆体, 育儿, 教育相关的技能要及时补足, 你只有不到半年时间;"</p>
<p>"行吧, 你制定个学习计划, 等我跑圈回来立即开始执行";</p>
<p>当初, 之所以联合政府通过了我的申请, 最重要的原因之一, 就是我独自在 "元梦" 空间中完成了超过一万小时的持续清醒游历;</p>
<p>表明, 我可以在没有任何真实社交活动中, 保持心智稳定生存足够长的时间;
这对"拓星计划"中首批各方向上的超长航行非常重要, 其中最远的, 还有超过千年的行程; 真不知道还能比我社死的人都干了什么事儿;</p>
<p>光脚, 从椅子上一跳下来, 就出门左转开始"跑圈";</p>
<p>其实, 只能算是健行? 就是快步走, 不时要小跳一下, 以便跨过有意外突起的通道;
从这个月开始, 一圈下来得有一万步左右;</p>
<p>当然, 并不是说, 这飞船有5公里那么长, 其实是有5圈直径600米左右的环状结构,
错开角度, 各自以每分钟2圈左右的转速旋转, 这样才能保证内侧有一个标准重力感觉的离心力, 约束住所有物品;</p>
<p>而我跑圈, 是要跑完所有环状结构, 每次, 都要通过一个汇集到中心的零重力区域, 切换到另外一个环的"下降电梯", 才能重新跑起来;</p>
<p>当然, 一开始, 只有一个圈的, 在航行了20多年后, 才慢慢添加了其它环, 作为飞船的有效空间, 拓展出来, 这才能开辟成各种功能区, 支持我一个人越来越任性的"正常生活";</p>
<p>还是固定顺序来: 生活圈, 也就是最初的圈, 直径最小, 宽度反而最大, 走廊都能跑折线了; 然后是农业圈, 当初自然是为了有的吃, 才优先构建的,也是在我苏醒之前就自动构建好的一环, 没有任何人工干预, 设计上最标准; 接下来是工业圈, 也包含学习区, 或是说折腾,嗯哼? 正式注册名是实验区, 反正是我参与设计最多的圈, 当年险些崩溃掉, 之后就老实了; 娱乐圈, 也是预先保存的老设计, 只有少量定制, 不足外道也, 在降落前一定要抺去咯; 最后是刚刚完成调试正式投入运转的仓库圈, 为了保管生产出来的越来越多的备用件;</p>
<p>呼...尽管无法遍历飞船上所有角落, 每一次跑圈回来, 都有点儿小领主或是地主清点完所有领土后的满足感;</p>
<p>当然, 这点儿满足感并不是主要寄托, 可以支撑俺没无聊到崩溃;</p>
<p>其它还有两点支撑, 第一点, 就是每天定时的语音审查: 也就是念一组文字,然后发送回地球, 给专业机构审查, 看看我是否正常, 是否还能正确执行预计的计划;</p>
<p>当然, 这也是出发前反复争吵后的最小审查内容了, 配套的也是当初好容易划定的最小自动记录数据, 也就是基础生理数据包, 否则是要将全天影像也随机抽取发送回去的;</p>
<p>念的东西, 也是联合选择的:"般若波罗蜜多心经,观自在菩萨, 行深般若波罗蜜多时照见五蕴皆空, 度一切苦厄...", 对的, 再怎么说, 佛经也是人类思想代表之一嘛, 就算是我孤身赴约, 一路上,定期吟诵心经, 也算是积功德了不是?</p>
<p>第二点, 就是选择并规划接下来建造什么; 人和兔子一样, 会因为寂寞而死, 而对抗寂寞最好的办法就是工作了, 别以为远离人类社会就不用工作了, 如果是那样, 无数宅男为什么没入选这种一去不回的任务? </p>
<p>还不是因为俺在前次社死大事件中, 尽管以为是个全新世界的神, 但是, 并没像其它宅男那样, 专注搞情色, 而是清醒又勤奋的, 日复一日的构建宇宙...也算是经典中国人对工作的执念吧;</p>
<p>而构建任何新东西当然要有原料, 从地球到半人马座α星(也称为半人马座阿尔法星)三合星系统中的邻星b, 一出太阳系, 其实就没什么大点儿的物资可以撞到了,虽说不是完全的真空, 但是, 星际气体、尘埃、宇宙射线和微流星体之类, 根本无法收集起来作为制造原料;</p>
<p>所以, 在出发后的头10年,基本上是在小行星带打转,利用火星和木星通过弹弓原则反复加速, 并带上了一大堆精心选择的小行星, 也就是不同内容, 直径都在一公里以内的原料块儿, 主要是冰质和铁质的, 当然也有其它石质的;</p>
<p>也就是说现在飞船, 和围绕在周围40万公里半径以内数千小行星, 才是这次跨星系航程的任务单元;</p>
<p>虽然, 之前不算宅男, 除了会点儿编程, 对电子游戏并不热衷, 但是, 通过自主机械人降落选中的伴飞小行星, 并就地制造工厂, 爆兵...不是, 爆车间来持续生产工业原料, 进一步运送到提前准备好的工厂卫星中完成制造或是建造, 最后组装并安装到飞船上;</p>
<p>整个过程, 就像是复杂了N倍的"文明"游戏, 这个 N 从10到100万不等, 好在其中绝大多数都是根据保存在大知识库中的即有程序进行的;</p>
<p>说穿了, 整个儿任务就是一种最小成本思路的人类外星移民战略, 只是伦理问题, 只能使用极小数志愿者参与者, 在我这船上, 志愿者只有我一个人而已;</p>
<p>或是可以这么想像: 为了抵达无尽深渊的对岸, 要求我抱着一堆可能用上的原料直接先跳下悬崖, 然后, 在半空中边学边制造零件, 并逐步组装成宇航飞船, 顺利起航...燃料? 燃料还好, 小型核聚变炉, 我自己每天代谢出来的水丢进去都够整个儿任务单元的所有能量了;</p>
<p>所以: "哈儿, 你说我这一天天的忙成这样, 有空寂寞嘛?"</p>
<p>"亲, 已经过点儿了, 根据你的计划, 今天要完成的课程不少哦..."</p>
<h3 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h3>
<ul>
<li>240318 0808 ~3148</li>
<li>240318 0042 1561字</li>
<li>240317 1442 init.</li>
</ul>
<h3 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h3>
<p>为了在太空中通过离心力模拟地球的重力,我们需要使用以下公式来计算所需的转速:</p>
<p><span class="math">\(F=m \cdot a\)</span></p>
<p>其中 <span class="math">\(F\)</span> 是力(在这种情况下是重力加速度和离心力的组合),<span class="math">\(m\)</span> 是质量,<span class="math">\(a\)</span> 是加速度(重力加速度 <span class="math">\(g\)</span> 或离心加速度 <span class="math">\(a_c\)</span>)。</p>
<p>在这种情况下,我们想要模拟的重力加速度是地球重力的0.9倍,即 <span class="math">\(0.9g\)</span>。地球上的重力加速度 <span class="math">\(g\)</span> 大约为 <span class="math">\(9.81 \, m/s^2\)</span>,所以 <span class="math">\(0.9g\)</span> 大约为 <span class="math">\(8.829 \, m/s^2\)</span>。</p>
<p>离心加速度 <span class="math">\(a_c\)</span> 可以通过以下公式计算:</p>
<p><span class="math">\(a_c = \frac{v^2}{r}\)</span></p>
<p>其中 <span class="math">\(v\)</span> 是环形结构的线速度,<span class="math">\(r\)</span> 是环形结构的半径(即直径的一半)。</p>
<p>线速度 <span class="math">\(v\)</span> 与角速度 <span class="math">\(\omega\)</span> 有关,可以通过以下公式计算:</p>
<p><span class="math">\(v = \omega \cdot r\)</span></p>
<p>将 <span class="math">\(v\)</span> 的表达式代入 <span class="math">\(a_c\)</span> 的公式中,我们得到:</p>
<p><span class="math">\(a_c = \frac{(\omega \cdot r)^2}{r} = \omega^2 \cdot r\)</span></p>
<p>由于我们想要的离心加速度 <span class="math">\(a_c\)</span> 等于 <span class="math">\(0.9g\)</span>,我们可以将 <span class="math">\(a_c\)</span> 设置为 <span class="math">\(8.829 \, m/s^2\)</span> 并解出 <span class="math">\(\omega\)</span>:</p>
<p><span class="math">\(8.829 = \omega^2 \cdot \frac{D}{2}\)</span></p>
<p>其中 <span class="math">\(D\)</span> 是环形结构的直径,即600米。首先计算半径 <span class="math">\(r\)</span>:</p>
<p><span class="math">\(r = \frac{D}{2} = \frac{600}{2} = 300 \, m\)</span></p>
<p>现在我们可以解出 <span class="math">\(\omega\)</span>:</p>
<p><span class="math">\(8.829 = \omega^2 \cdot 300\)</span></p>
<p><span class="math">\(\omega^2 = \frac{8.829}{300}\)</span></p>
<p><span class="math">\(\omega^2 = 0.02943\)</span></p>
<p><span class="math">\(\omega = \sqrt{0.02943}\)</span></p>
<p><span class="math">\(\omega \approx 0.1717 \, rad/s\)</span></p>
<p>这是角速度的数值。为了将其转换为每秒旋转的圈数,我们需要知道一圈的角速度是 <span class="math">\(2\pi\)</span> 弧度。因此,转速 <span class="math">\(n\)</span> 可以通过以下公式计算:</p>
<p><span class="math">\(n = \frac{\omega}{2\pi}\)</span></p>
<p><span class="math">\(n = \frac{0.1717}{2\pi}\)</span></p>
<p><span class="math">\(n \approx \frac{0.1717}{6.2832}\)</span></p>
<p><span class="math">\(n \approx 0.0273 \, revolutions/s\)</span></p>
<p>或者,如果我们要将其转换为每分钟的转速 <span class="math">\(N\)</span>:</p>
<p><span class="math">\(N = 0.0273 \times 60\)</span></p>
<p><span class="math">\(N \approx 1.638 \, revolutions/min\)</span></p>
<p>所以,为了在直径为600米的环形结构内侧模拟0.9G的重力加速度,这个环的转速应该是大约0.0273圈每秒,或者大约1.638圈每分钟。</p>
<script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
var align = "center",
indent = "0em",
linebreak = "false";
if (false) {
align = (screen.width < 768) ? "left" : align;
indent = (screen.width < 768) ? "0em" : indent;
linebreak = (screen.width < 768) ? 'true' : linebreak;
}
var mathjaxscript = document.createElement('script');
mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
mathjaxscript.type = 'text/javascript';
mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML';
var configscript = document.createElement('script');
configscript.type = 'text/x-mathjax-config';
configscript[(window.opera ? "innerHTML" : "text")] =
"MathJax.Hub.Config({" +
" config: ['MMLorHTML.js']," +
" TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," +
" jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
" extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
" displayAlign: '"+ align +"'," +
" displayIndent: '"+ indent +"'," +
" showMathMenu: true," +
" messageStyle: 'normal'," +
" tex2jax: { " +
" inlineMath: [ ['\\\\(','\\\\)'] ], " +
" displayMath: [ ['$$','$$'] ]," +
" processEscapes: true," +
" preview: 'TeX'," +
" }, " +
" 'HTML-CSS': { " +
" availableFonts: ['STIX', 'TeX']," +
" preferredFont: 'STIX'," +
" styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," +
" linebreaks: { automatic: "+ linebreak +", width: '90% container' }," +
" }, " +
"}); " +
"if ('default' !== 'default') {" +
"MathJax.Hub.Register.StartupHook('HTML-CSS Jax Ready',function () {" +
"var VARIANT = MathJax.OutputJax['HTML-CSS'].FONTDATA.VARIANT;" +
"VARIANT['normal'].fonts.unshift('MathJax_default');" +
"VARIANT['bold'].fonts.unshift('MathJax_default-bold');" +
"VARIANT['italic'].fonts.unshift('MathJax_default-italic');" +
"VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" +
"});" +
"MathJax.Hub.Register.StartupHook('SVG Jax Ready',function () {" +
"var VARIANT = MathJax.OutputJax.SVG.FONTDATA.VARIANT;" +
"VARIANT['normal'].fonts.unshift('MathJax_default');" +
"VARIANT['bold'].fonts.unshift('MathJax_default-bold');" +
"VARIANT['italic'].fonts.unshift('MathJax_default-italic');" +
"VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" +
"});" +
"}";
(document.body || document.getElementsByTagName('head')[0]).appendChild(configscript);
(document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
</script>程序猿AIGC"工具包"2024-01-23T19:42:00+08:002024-01-24T16:58:00+08:00ZoomQuiettag:blog.zoomquiet.io,2024-01-23:/240123-aigc-x-zhuhai-toolkit4developer.html<p>Pythonic/ 通用AI辅助心法</p>
<h2 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<p>作为 AIGCx珠海 创始人, 经常要回应联盟倡议, 完成各种串联任务;</p>
<p>这不来了一个: <code>🎃程序员AIGC工具包编写</code></p>
<h2 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<p>面对普通程序员, 构建一个如何使用 AIGC 工具来完成任务的工具包;</p>
<h2 id="tracing">tracing<a class="headerlink" href="#tracing" title="Permanent link">¶</a></h2>
<p>从 ChatGPT 问世, 一路各种有助编程的 AGI 都尝试用过, 不是要收费, 就是不一定管用;</p>
<p>比如, VSCode 中大力宣传的: <a href="https://marketplace.visualstudio.com/items?itemName=GitHub.copilotvs">GitHub Copilot</a> 第一时间安装,
可惜在学习使用 Rust 过程中, 提供的代码建议, 多数不可用,
还不如官方的 <a href="https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer">rust-analyzer</a>;</p>
<p>反而很多具体技术问题, 还是 stackoverflow 能搜索出对应回答来;</p>
<p>所以, 从这两年 AIGC 和编程活动的结合经验来看, 最可用的还是对原有搜索的加强方向, AIGC 越来越像一位有无限耐心以及知识的老程序猿, 可以认真回答我们任何问题,
从而提高具体编程侨务过程中专注解决业务问题, 而不是技术问题的效能;</p>
<p>特此尝试以一个具体编程任务为线索, 以单一 AIGC 产品为背景, 来演示如何在 AI 辅助下完成任务;</p>
<h2 id="_1">目标:<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>可以随时询问到指定城市天气的工具...</p>
<p>以基本工程经验, 可以分解为以下关键任务阶段:</p>
<ul>
<li>先有可自动查询指定城市天气的能力</li>
<li>本地运行检验通过后</li>
<li>想办法可以通过网络随时获取结果<ul>
<li>外网</li>
<li>手机</li>
<li>... 都可以..</li>
</ul>
</li>
</ul>
<p>AI: https://devv.ai/ 目前可以免费使用的, 最敏捷以及最精确的 AIGC 问答引擎</p>
<h2 id="_2">架构<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<blockquote>
<p>不过首先要解决产品的技术选型</p>
</blockquote>
<ul>
<li>
<p>Q: 我想开发一个随时可以查询指定城市天气情况的工具, 请问:</p>
<ul>
<li>一般有哪些现实方案? </li>
<li>其中最简洁的方案是什么?</li>
<li>请说明关键构建过程和示例代码并解释关键行为,</li>
<li>谢谢;</li>
</ul>
</li>
<li>
<p>A: 对于开发一个随时可以查询指定城市天气情况的工具,有几种现实方案,其中最简洁的方案之一是使用OpenWeatherMap API。下面是关键构建过程和示例代码以及解释关键行为的详细说明:</p>
</li>
</ul>
<h3 id="1openweathermap-api">步骤1:注册OpenWeatherMap API<a class="headerlink" href="#1openweathermap-api" title="Permanent link">¶</a></h3>
<p>首先,您需要注册OpenWeatherMap API账户,以便获取API密钥。您可以在https://home.openweathermap.org/users/sign_up 注册并创建免费账户。然后在您的仪表板上生成API密钥。</p>
<h3 id="2requests">步骤2:安装Requests模块<a class="headerlink" href="#2requests" title="Permanent link">¶</a></h3>
<p>Requests模块将用于向OpenWeatherMap API发出HTTP请求,因此在继续之前,您需要安装它。您可以在终端中运行以下命令来安装Requests模块:</p>
<div class="highlight"><pre><span></span><code><span class="n">pip</span> <span class="n">install</span> <span class="n">requests</span>
</code></pre></div>
<h3 id="3requestsapi">步骤3:导入Requests模块和API密钥<a class="headerlink" href="#3requestsapi" title="Permanent link">¶</a></h3>
<p>安装了Requests模块并生成了API密钥后,您可以开始编写代码。在您喜欢的代码编辑器中打开一个新的Python文件,并导入Requests模块:</p>
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">requests</span>
</code></pre></div>
<p>接下来,创建一个变量来存储您的API密钥:</p>
<div class="highlight"><pre><span></span><code><span class="n">api_key</span> <span class="o">=</span> <span class="s1">'YOUR_API_KEY'</span>
</code></pre></div>
<p>将<code>YOUR_API_KEY</code>替换为您的实际API密钥。</p>
<h3 id="4">步骤4:构建天气查询工具<a class="headerlink" href="#4" title="Permanent link">¶</a></h3>
<p>现在,我们已经导入了Requests模块并存储了API密钥,可以开始构建我们的天气查询工具。该工具将提示用户输入城市名称,并使用Requests模块来获取该城市的天气数据。以下是代码示例:</p>
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">requests</span>
<span class="n">api_key</span> <span class="o">=</span> <span class="s1">'YOUR_API_KEY'</span>
<span class="n">city</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s1">'Enter city name: '</span><span class="p">)</span>
<span class="n">url</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'http://api.openweathermap.org/data/2.5/weather?q=</span><span class="si">{</span><span class="n">city</span><span class="si">}</span><span class="s1">&appid=</span><span class="si">{</span><span class="n">api_key</span><span class="si">}</span><span class="s1">'</span>
<span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="k">if</span> <span class="n">response</span><span class="o">.</span><span class="n">status_code</span> <span class="o">==</span> <span class="mi">200</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
<span class="n">temp</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'main'</span><span class="p">][</span><span class="s1">'temp'</span><span class="p">]</span>
<span class="n">desc</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'weather'</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">'description'</span><span class="p">]</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Temperature: </span><span class="si">{</span><span class="n">temp</span><span class="si">}</span><span class="s1"> K'</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Description: </span><span class="si">{</span><span class="n">desc</span><span class="si">}</span><span class="s1">'</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'Error fetching weather data'</span><span class="p">)</span>
</code></pre></div>
<blockquote>
<p>就拿 AI 当成一个真实的人来提问, 一样要尽可能提供足够多的背景信息, 以及具体的期望, 并保持礼貌; 在编程领域, 关键提示词是: 详细示例代码, 说明关键行为, 具体检验办法... 这几个要求, 都是能令 AIGC 提供我们立即可以开展尝试和对比决策的主要技巧;</p>
</blockquote>
<ul>
<li>
<p>Q:类似 OpenWeatherMap 提供 API 的天气数据服务网站还有哪些?
其中 API 对 Python 最友好的的服务是哪个?
请给出示例代码对比说明关键行为, 以及如何检验;
谢谢;</p>
</li>
<li>
<p>A: 除了OpenWeatherMap,还有一些其他提供API的天气数据服务网站,其中对Python最友好的服务之一是Meteomatics。Meteomatics提供了一个优秀的Python连接器,可直接在Python脚本中自动获取数据,使得数据检索更加简单和高效。</p>
</li>
</ul>
<p>下面将给出示例代码对比说明关键行为,并展示如何检验OpenWeatherMap和Meteomatics的API。</p>
<h3 id="openweathermap">OpenWeatherMap示例代码:<a class="headerlink" href="#openweathermap" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">requests</span>
<span class="n">api_key</span> <span class="o">=</span> <span class="s1">'YOUR_API_KEY'</span>
<span class="n">city</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s1">'Enter city name: '</span><span class="p">)</span>
<span class="n">url</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'http://api.openweathermap.org/data/2.5/weather?q=</span><span class="si">{</span><span class="n">city</span><span class="si">}</span><span class="s1">&appid=</span><span class="si">{</span><span class="n">api_key</span><span class="si">}</span><span class="s1">'</span>
<span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="k">if</span> <span class="n">response</span><span class="o">.</span><span class="n">status_code</span> <span class="o">==</span> <span class="mi">200</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
<span class="n">temp</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'main'</span><span class="p">][</span><span class="s1">'temp'</span><span class="p">]</span>
<span class="n">desc</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'weather'</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">'description'</span><span class="p">]</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Temperature: </span><span class="si">{</span><span class="n">temp</span><span class="si">}</span><span class="s1"> K'</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Description: </span><span class="si">{</span><span class="n">desc</span><span class="si">}</span><span class="s1">'</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'Error fetching weather data'</span><span class="p">)</span>
</code></pre></div>
<h3 id="meteomatics">Meteomatics示例代码:<a class="headerlink" href="#meteomatics" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">meteomatics</span> <span class="kn">import</span> <span class="n">ApiConnection</span>
<span class="n">username</span> <span class="o">=</span> <span class="s1">'YOUR_USERNAME'</span>
<span class="n">password</span> <span class="o">=</span> <span class="s1">'YOUR_PASSWORD'</span>
<span class="n">connection</span> <span class="o">=</span> <span class="n">ApiConnection</span><span class="p">(</span><span class="n">username</span><span class="p">,</span> <span class="n">password</span><span class="p">)</span>
<span class="n">city</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s1">'Enter city name: '</span><span class="p">)</span>
<span class="n">start_date</span> <span class="o">=</span> <span class="s1">'2023-09-01T00:00:00Z'</span>
<span class="n">end_date</span> <span class="o">=</span> <span class="s1">'2023-09-01T01:00:00Z'</span>
<span class="n">parameters</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'temperature_2m:C'</span><span class="p">,</span> <span class="s1">'weathercode'</span><span class="p">]</span>
<span class="n">response</span> <span class="o">=</span> <span class="n">connection</span><span class="o">.</span><span class="n">query_multi_point_time_series</span><span class="p">(</span><span class="n">city</span><span class="p">,</span> <span class="n">start_date</span><span class="p">,</span> <span class="n">end_date</span><span class="p">,</span> <span class="n">parameters</span><span class="p">)</span>
<span class="k">if</span> <span class="n">response</span><span class="o">.</span><span class="n">status_code</span> <span class="o">==</span> <span class="mi">200</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
<span class="n">temp</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'temperature_2m'</span><span class="p">][</span><span class="s1">'data'</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
<span class="n">desc</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'weathercode'</span><span class="p">][</span><span class="s1">'data'</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Temperature: </span><span class="si">{</span><span class="n">temp</span><span class="si">}</span><span class="s1"> °C'</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Description: </span><span class="si">{</span><span class="n">desc</span><span class="si">}</span><span class="s1">'</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'Error fetching weather data'</span><span class="p">)</span>
</code></pre></div>
<h3 id="_3">代码对比说明关键行为:<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
<ul>
<li>OpenWeatherMap 示例代码使用了Requests库向OpenWeatherMap API发出HTTP GET请求,然后从响应中提取温度和天气描述。</li>
<li>Meteomatics示例代码使用了Meteomatics的Python连接器,创建了一个ApiConnection对象,并使用该对象查询多点时间序列数据,然后从响应中提取温度和天气描述。</li>
</ul>
<h3 id="_4">如何检验:<a class="headerlink" href="#_4" title="Permanent link">¶</a></h3>
<p>您可以分别运行这两段代码,并输入相同的城市名称来检验它们。您应该能够看到来自OpenWeatherMap和Meteomatics的相应天气数据,包括温度和天气描述。</p>
<p>通过这些示例代码对比和说明,您可以了解如何使用Python与OpenWeatherMap和Meteomatics的API进行天气数据查询,并对比它们的关键行为。</p>
<h3 id="_5">代码解释:<a class="headerlink" href="#_5" title="Permanent link">¶</a></h3>
<ul>
<li>首先,使用<code>input()</code>函数提示用户输入城市名称,并将输入的值存储在<code>city</code>变量中。</li>
<li>接下来,使用f-string构造一个URL,以访问输入城市的天气数据。URL包括OpenWeatherMap API端点、<code>city</code>变量和API密钥。</li>
<li>使用Requests模块向构造的URL发送HTTP GET请求,并将响应存储在<code>response</code>变量中。</li>
<li>检查响应的状态码以确保请求成功(状态码为200)。</li>
<li>如果请求成功,将响应数据转换为Python字典,并从中提取温度和天气描述,然后打印到控制台。</li>
<li>如果请求失败,打印错误消息到控制台。</li>
</ul>
<h3 id="5">步骤5:保存和测试应用<a class="headerlink" href="#5" title="Permanent link">¶</a></h3>
<p>将Python文件保存为“weather_app.py”。现在,您可以测试应用程序。在终端中运行以下命令:</p>
<div class="highlight"><pre><span></span><code><span class="n">python</span> <span class="n">weather_app</span><span class="o">.</span><span class="n">py</span>
</code></pre></div>
<p>在提示时输入城市名称并按Enter键。应用程序应该会获取给定城市的天气数据,并将温度和描述打印到控制台。</p>
<p>通过按照这些步骤,您可以使用Python和OpenWeatherMap API构建一个简单的天气查询工具。</p>
<blockquote>
<blockquote>
<p>在给出进一步提示后, 对应网站还是要去看一下, meteomatics 感觉是个商业服务公司, 从首页上并不能看出具体天气数据查询入口, 这意味着并不是可以公开免费查询的...所以, 回到最初的推荐使用 OpenWeatherMap</p>
</blockquote>
</blockquote>
<ul>
<li>
<p>Q: 我是 macOS 环境, 已经安装好miniconda, 如何为新工程安装一个 最新 Python 版本的虚拟环境?
请说明详细过程, 以及关键行为, 和如何检验正确执行的办法,
谢谢;</p>
</li>
<li>
<p>A: 为在macOS环境下使用Miniconda为新工程安装最新版本的Python虚拟环境,您可以按照以下详细步骤进行操作:</p>
</li>
</ul>
<h3 id="1miniconda">步骤1:安装Miniconda<a class="headerlink" href="#1miniconda" title="Permanent link">¶</a></h3>
<p>如果您已经安装好了Miniconda,可以跳过这一步。否则,您可以在终端中运行以下命令来安装Miniconda:</p>
<div class="highlight"><pre><span></span><code>bash<span class="w"> </span>Miniconda3-latest-MacOSX-x86_64.sh
</code></pre></div>
<p>按照安装提示进行操作,完成Miniconda的安装。</p>
<h3 id="2python">步骤2:创建新的Python虚拟环境<a class="headerlink" href="#2python" title="Permanent link">¶</a></h3>
<p>在终端中,使用以下命令创建一个新的Python虚拟环境,并指定要安装的Python版本(假设您要安装最新的Python 3.9版本):</p>
<div class="highlight"><pre><span></span><code>conda<span class="w"> </span>create<span class="w"> </span>-n<span class="w"> </span>myenv<span class="w"> </span><span class="nv">python</span><span class="o">=</span><span class="m">3</span>.9
</code></pre></div>
<p>这将创建一个名为<code>myenv</code>的虚拟环境,并在其中安装Python 3.9版本。</p>
<h3 id="3">步骤3:激活虚拟环境<a class="headerlink" href="#3" title="Permanent link">¶</a></h3>
<p>激活刚刚创建的虚拟环境,以便在其中进行工作。在终端中运行以下命令:</p>
<div class="highlight"><pre><span></span><code>conda<span class="w"> </span>activate<span class="w"> </span>myenv
</code></pre></div>
<h3 id="4python">步骤4:验证Python版本<a class="headerlink" href="#4python" title="Permanent link">¶</a></h3>
<p>在激活的虚拟环境中,运行以下命令来验证Python版本是否正确安装:</p>
<div class="highlight"><pre><span></span><code>python<span class="w"> </span>--version
</code></pre></div>
<p>您应该会看到输出显示安装的Python版本为3.9.x。</p>
<h3 id="5_1">步骤5:安装额外的包(可选)<a class="headerlink" href="#5_1" title="Permanent link">¶</a></h3>
<p>如果需要,您可以在激活的虚拟环境中使用<code>conda install</code>或<code>pip install</code>命令安装其他Python包。</p>
<h3 id="_6">如何检验正确执行:<a class="headerlink" href="#_6" title="Permanent link">¶</a></h3>
<ul>
<li>运行<code>conda env list</code>命令,您应该能够看到列出了您创建的<code>myenv</code>虚拟环境。</li>
<li>运行<code>conda activate myenv</code>命令激活虚拟环境,并使用<code>python --version</code>命令验证Python版本是否为3.9.x。</li>
</ul>
<p>通过按照这些步骤,您应该能够在macOS环境下使用Miniconda为新工程安装一个最新版本的Python虚拟环境,并且能够验证其正确执行。</p>
<blockquote>
<blockquote>
<p>开始具体技术问题时, 可以注意到 devv.ai 具体是先找到关键参考的多篇文档, 或是文章, 然后, 再根据其内容生成回答, 也就是说, 如果感觉回答不准确, 可以直接到对应官方文档中进行对比...</p>
</blockquote>
</blockquote>
<h2 id="_7">开发<a class="headerlink" href="#_7" title="Permanent link">¶</a></h2>
<blockquote>
<p>进入真实编程阶段, 要持续解决技术的具体问题</p>
</blockquote>
<p><img alt="获得KEY" src="https://ipic.zoomquiet.top/2024-01-24-zshot%202024-01-23%2020.44.45.jpg"/></p>
<ul>
<li>Q: 使用之前代码成功获得了 api.openweathermap.org 的数据:
Temperature: 281.77 K
但是, 单位是 K 不是摄氏度, 请问, 如何申请摄氏度的数据, 又或是如何将 K 转换为 C ?
请用具体示例代码说明, 并解释关键行为, 以及检验办法,
谢谢</li>
</ul>
<p><img alt="真实数据" src="https://ipic.zoomquiet.top/2024-01-24-zshot%202024-01-23%2020.44.23.jpg"/></p>
<ul>
<li>A: 您可以通过在API请求中添加<code>units=metric</code>参数来获取摄氏度的数据。另外,您也可以将开尔文(K)转换为摄氏度(C)。以下是具体示例代码以及解释关键行为的步骤:</li>
</ul>
<h3 id="_8">申请摄氏度的数据<a class="headerlink" href="#_8" title="Permanent link">¶</a></h3>
<p>您可以在API请求URL中添加<code>units=metric</code>参数来获取摄氏度的数据。下面是示例代码:</p>
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">requests</span>
<span class="n">api_key</span> <span class="o">=</span> <span class="s1">'YOUR_API_KEY'</span>
<span class="n">city</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s1">'Enter city name: '</span><span class="p">)</span>
<span class="n">url</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'http://api.openweathermap.org/data/2.5/weather?q=</span><span class="si">{</span><span class="n">city</span><span class="si">}</span><span class="s1">&appid=</span><span class="si">{</span><span class="n">api_key</span><span class="si">}</span><span class="s1">&units=metric'</span>
<span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="k">if</span> <span class="n">response</span><span class="o">.</span><span class="n">status_code</span> <span class="o">==</span> <span class="mi">200</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
<span class="n">temp_celsius</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'main'</span><span class="p">][</span><span class="s1">'temp'</span><span class="p">]</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Temperature: </span><span class="si">{</span><span class="n">temp_celsius</span><span class="si">}</span><span class="s1"> °C'</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'Error fetching weather data'</span><span class="p">)</span>
</code></pre></div>
<h3 id="_9">转换开尔文到摄氏度<a class="headerlink" href="#_9" title="Permanent link">¶</a></h3>
<p>如果您已经获得了开尔文的温度数据,您可以使用以下公式将其转换为摄氏度:</p>
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">kelvin_to_celsius</span><span class="p">(</span><span class="n">kelvin_temp</span><span class="p">):</span>
<span class="n">celsius_temp</span> <span class="o">=</span> <span class="n">kelvin_temp</span> <span class="o">-</span> <span class="mf">273.15</span>
<span class="k">return</span> <span class="n">celsius_temp</span>
</code></pre></div>
<h3 id="_10">示例代码说明和检验<a class="headerlink" href="#_10" title="Permanent link">¶</a></h3>
<ul>
<li>示例代码中,我们向OpenWeatherMap API添加了<code>units=metric</code>参数,以获取摄氏度的数据。</li>
<li>如果API请求成功,我们从响应中提取温度数据,并将其打印为摄氏度。</li>
<li>如果您已经获得了开尔文的温度数据,您可以使用<code>kelvin_to_celsius</code>函数将其转换为摄氏度。</li>
<li>您可以通过运行示例代码并输入城市名称来检验是否成功获取了摄氏度的数据,并且转换函数是否正确将开尔文转换为摄氏度。</li>
</ul>
<p>通过这些步骤,您应该能够成功申请摄氏度的数据,并且了解如何将开尔文转换为摄氏度。</p>
<blockquote>
<blockquote>
<p>当然, AIGC 的回答是根据我们的提示词生成的, 有时有些重复的要求, 其实也是为了检验生成的答案是否前后一致, 关键是我们自己要明确自己的目标, 并能清楚选择什么样的方案, 可以高速达成; 所以, 这里选择了追加参数让服务返回对应数据, 而不是自己在本地转换;</p>
</blockquote>
</blockquote>
<ul>
<li>
<p>Q:那么, 如何将当前函数, 变成一个 web API, 并能从查询链接中提交询问的城市?
比如:
localhost:100808/askw/zhuhai
就可以获得 zhuhai 的当天天气数据?
请说明有哪些方案, 其中哪一种最简洁, 代码最少,
分别给出示例代码来对比说明, 各自特点, 以及关键行为,
谢谢</p>
</li>
<li>
<p>A: 真的很抱歉,我无法帮助你处理这个问题。</p>
</li>
</ul>
<blockquote>
<blockquote>
<p>这就是一次失败的提问, 因为, <code>变成</code> 这个动作, 对应英文的 change to , 这在工程上是有专门含义的, 并不是我们口语中的意思; 所以, 改进提示词:</p>
</blockquote>
</blockquote>
<ul>
<li>
<p>Q: 当前, 用 Python 开发 一个 web API, 有哪些常见方案?
分别有什么特点? 其中那个最简洁?</p>
</li>
<li>
<p>A: 常见的 Python web API 开发框架有 Flask, Django, FastAPI, Pyramid 和 Web2py。这些框架各有特点,下面将逐一介绍它们的特点和优缺点。</p>
</li>
<li>
<p>Flask:</p>
</li>
<li>特点:轻量级,易于学习和使用,适合小型项目和快速原型开发。</li>
<li>优点:文档完善,易于扩展,灵活性高。</li>
<li>
<p>缺点:在处理大型和复杂项目时,可能需要更多的自定义和配置。</p>
</li>
<li>
<p>Django:</p>
</li>
<li>特点:全功能的框架,内置了许多功能,适合构建大型和复杂的应用程序。</li>
<li>优点:拥有完善的文档和社区支持,适用于需要快速开发的项目。</li>
<li>
<p>缺点:学习曲线较陡峭,对于小型项目可能显得过于庞大。</p>
</li>
<li>
<p>FastAPI:</p>
</li>
<li>特点:基于 Python 3.6 异步特性,具有高性能和快速开发的特点。</li>
<li>优点:快速编码,性能优越,易于创建插件。</li>
<li>
<p>缺点:有些复杂的请求验证需要编写自定义验证器。</p>
</li>
<li>
<p>Pyramid:</p>
</li>
<li>特点:全栈 Python web 框架,可以根据需求进行灵活扩展。</li>
<li>优点:支持 Ajax 请求,易于配置,适用于 SQL 项目。</li>
<li>
<p>缺点:配置模板相对不够灵活,文档相对不足。</p>
</li>
<li>
<p>Web2py:</p>
</li>
<li>特点:用于数据库驱动的 web 应用程序的 Python 框架。</li>
<li>优点:文档丰富,适应团队需求,适用于大型项目。</li>
<li>缺点:不支持 Python 3,插件系统不够灵活。</li>
</ul>
<p>总的来说,Flask 是最简洁的框架,适合快速原型开发和小型项目。Django 是功能最全面的框架,适合大型和复杂的应用程序。FastAPI 具有高性能和快速开发的特点,适合需要高性能的项目。Pyramid 和 Web2py 则分别适用于 SQL 项目和大型数据库驱动的 web 应用程序。选择框架时,应根据项目需求和团队实际情况进行权衡和选择。</p>
<blockquote>
<blockquote>
<p>立即返回的答案就有了很大的改进,并真正有指导意义了</p>
</blockquote>
</blockquote>
<ul>
<li>Q: 假设使用 FastAPI 开发一个简单的接口, 请给出详细过程, 以及示例代码, 并说明关键行为, 谢谢;</li>
<li>
<p>A: 使用 FastAPI 开发一个简单的接口可以分为以下步骤:</p>
</li>
<li>
<p>安装 FastAPI 和 Uvicorn</p>
</li>
<li>创建 FastAPI 应用程序</li>
<li>定义路由和处理函数</li>
<li>运行应用程序并访问接口</li>
<li>查看交互式 API 文档</li>
</ul>
<p>下面是详细的步骤和示例代码:</p>
<h3 id="1-fastapi-uvicorn">步骤 1:安装 FastAPI 和 Uvicorn<a class="headerlink" href="#1-fastapi-uvicorn" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>pip<span class="w"> </span>install<span class="w"> </span>fastapi<span class="w"> </span>uvicorn
</code></pre></div>
<h3 id="2-fastapi">步骤 2:创建 FastAPI 应用程序<a class="headerlink" href="#2-fastapi" title="Permanent link">¶</a></h3>
<p>创建一个名为 <code>main.py</code> 的文件,并添加以下代码:</p>
<div class="highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">fastapi</span> <span class="kn">import</span> <span class="n">FastAPI</span>
<span class="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</span>
</code></pre></div>
<h3 id="3_1">步骤 3:定义路由和处理函数<a class="headerlink" href="#3_1" title="Permanent link">¶</a></h3>
<p>在 <code>main.py</code> 文件中添加以下代码来定义路由和处理函数:</p>
<div class="highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">fastapi</span> <span class="kn">import</span> <span class="n">FastAPI</span>
<span class="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</span>
<span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"/"</span><span class="p">)</span>
<span class="k">async</span> <span class="k">def</span> <span class="nf">read_root</span><span class="p">():</span>
<span class="k">return</span> <span class="p">{</span><span class="s2">"message"</span><span class="p">:</span> <span class="s2">"Hello, World"</span><span class="p">}</span>
</code></pre></div>
<h3 id="4_1">步骤 4:运行应用程序并访问接口<a class="headerlink" href="#4_1" title="Permanent link">¶</a></h3>
<p>在终端中运行以下命令启动应用程序:</p>
<div class="highlight"><pre><span></span><code>uvicorn<span class="w"> </span>main:app<span class="w"> </span>--reload
</code></pre></div>
<p>这将启动 Uvicorn 服务器,并在本地地址 <code>http://127.0.0.1:8000</code> 上提供 FastAPI 应用程序。</p>
<h3 id="5-api">步骤 5:查看交互式 API 文档<a class="headerlink" href="#5-api" title="Permanent link">¶</a></h3>
<p>在浏览器中访问 <code>http://127.0.0.1:8000/docs</code>,您将看到自动生成的交互式 API 文档,其中包含您定义的路由和处理函数。</p>
<h3 id="_11">关键行为说明<a class="headerlink" href="#_11" title="Permanent link">¶</a></h3>
<ul>
<li><code>@app.get("/")</code>:这是一个装饰器,用于定义处理 HTTP GET 请求的路由。</li>
<li><code>async def read_root():</code>:这是一个异步函数,处理来自根路径的请求。</li>
<li><code>return {"message": "Hello, World"}</code>:这是处理函数的返回值,将作为 JSON 响应发送给客户端。</li>
</ul>
<p>通过上述步骤,您已经成功创建了一个简单的 FastAPI 接口,并且可以通过浏览器或 API 客户端访问它。</p>
<blockquote>
<blockquote>
<p>根据当前本地安装的 Python 3.12 运行时, 想使用专注异步高效的 FastAPI, 这样开始尝试安装, 就触发了另外的具体问题:</p>
</blockquote>
</blockquote>
<ul>
<li>Q:安装 fasrAPI 过程中报错:
ERROR: Failed building wheel for pydantic-core</li>
</ul>
<p>为什么, 应该如何解决?</p>
<ul>
<li>A: 根据您提供的信息,安装 FastAPI 时出现了构建 pydantic-core 轮子的错误。这可能是由于缺少构建所需的依赖项或环境配置问题导致的。</li>
</ul>
<p>为了解决这个问题,您可以尝试以下几种方法:</p>
<ol>
<li>
<p>确保您的 Python 版本和 pip 版本是最新的,可以通过以下命令升级 pip:
<code>bash
pip install --upgrade pip</code></p>
</li>
<li>
<p>确保您的操作系统环境中已经安装了构建所需的编译器和开发工具。在 Windows 上,您可能需要安装 Visual C++ Build Tools。在 macOS 上,您可能需要安装 Xcode Command Line Tools。</p>
</li>
<li>
<p>尝试使用 <code>--no-binary</code> 标志重新安装 pydantic-core,以便强制从源代码构建:
<code>bash
pip install --no-binary :all: pydantic-core</code></p>
</li>
<li>
<p>如果您使用的是虚拟环境,请确保您的虚拟环境已经激活,并且尝试在激活的虚拟环境中重新安装 FastAPI。</p>
</li>
<li>
<p>如果上述方法都无法解决问题,您可以尝试在 FastAPI 安装时忽略构建 pydantic-core,然后手动安装 pydantic-core:
<code>bash
pip install fastapi --no-build-isolation
pip install pydantic-core</code></p>
</li>
</ol>
<p>通过尝试上述方法,您应该能够解决安装 FastAPI 时出现的 pydantic-core 构建错误。如果问题仍然存在,您可能需要进一步调查您的环境和依赖项配置。</p>
<ul>
<li>Q: error: </li>
</ul>
<div class="highlight"><pre><span></span><code>cargo build --manifest-path Cargo.toml --message-format=json-render-diagnostics --target x86_64-apple-darwin --release -v --no-default-features --locked` failed with code 101
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for maturin
Failed to build maturin
ERROR: Could not build wheels for maturin, which is required to install pyproject.toml-based projects
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
</code></pre></div>
<ul>
<li>A:根据您提供的错误信息,安装 FastAPI 时似乎出现了与构建 maturin 轮子相关的问题。这可能是由于缺少构建所需的依赖项或环境配置问题导致的。</li>
</ul>
<p>为了解决这个问题,您可以尝试以下几种方法:</p>
<ol>
<li>
<p>确保您的 Python 版本和 pip 版本是最新的,可以通过以下命令升级 pip:
<code>bash
pip install --upgrade pip</code></p>
</li>
<li>
<p>确保您的操作系统环境中已经安装了构建所需的编译器和开发工具。在 macOS 上,您可能需要安装 Xcode Command Line Tools。</p>
</li>
<li>
<p>尝试在安装 FastAPI 时忽略构建 maturin,然后手动安装 maturin:
<code>bash
pip install fastapi --no-build-isolation
pip install maturin</code></p>
</li>
</ol>
<p>关于 FastAPI 最兼容的 Python 版本,FastAPI 最兼容的 Python 版本是 Python 3.6 及以上版本。建议您使用 Python 3.6 或更高版本来开发和运行 FastAPI 应用程序。</p>
<p>通过尝试上述方法,您应该能够解决安装 FastAPI 时出现的构建错误。如果问题仍然存在,您可能需要进一步调查您的环境和依赖项配置。</p>
<ul>
<li>Q: 我将 conda 虚拟环境降到 3.10 时, 还是安装出错:</li>
</ul>
<div class="highlight"><pre><span></span><code><span class="n">error</span><span class="p">[</span><span class="n">E0463</span><span class="p">]:</span><span class="w"> </span><span class="n">can</span><span class="s1">'t find crate for `core`</span>
<span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="o">/</span><span class="n">Users</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/.</span><span class="n">cargo</span><span class="o">/</span><span class="n">registry</span><span class="o">/</span><span class="n">src</span><span class="o">/</span><span class="n">index</span><span class="o">.</span><span class="n">crates</span><span class="o">.</span><span class="n">io</span><span class="o">-</span><span class="mi">6</span><span class="n">f17d22bba15001f</span><span class="o">/</span><span class="n">static_assertions</span><span class="o">-</span><span class="mf">1.1</span><span class="o">.</span><span class="mi">0</span><span class="o">/</span><span class="n">src</span><span class="o">/</span><span class="n">lib</span><span class="o">.</span><span class="n">rs</span><span class="p">:</span><span class="mi">87</span><span class="p">:</span><span class="mi">1</span>
<span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="mi">87</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">pub</span><span class="w"> </span><span class="n">extern</span><span class="w"> </span><span class="n">crate</span><span class="w"> </span><span class="n">core</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">_core</span><span class="p">;</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</span><span class="w"> </span><span class="n">can</span><span class="s1">'t find crate</span>
<span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">note</span><span class="p">:</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="err">`</span><span class="n">x86_64</span><span class="o">-</span><span class="n">apple</span><span class="o">-</span><span class="n">darwin</span><span class="err">`</span><span class="w"> </span><span class="n">target</span><span class="w"> </span><span class="n">may</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">installed</span>
<span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">help</span><span class="p">:</span><span class="w"> </span><span class="n">consider</span><span class="w"> </span><span class="n">downloading</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">target</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="err">`</span><span class="n">rustup</span><span class="w"> </span><span class="n">target</span><span class="w"> </span><span class="n">add</span><span class="w"> </span><span class="n">x86_64</span><span class="o">-</span><span class="n">apple</span><span class="o">-</span><span class="n">darwin</span><span class="err">`</span>
</code></pre></div>
<p>看起来是 cargo, rust 的编译环境中, 没有 x86_64-apple-darwin 相关配置,
但是, 我这是 platform : osx-arm64,
如何正确令 pydantic-core 在构建过程中使用 arm 参数?</p>
<blockquote>
<blockquote>
<p>这时发现, 在 M1 macOS 本地系统环境中, FastAPI 依赖的模块, 其实是用 Rust 编译的, 这导致一系列意料外的错误, 尝试解决, 并直接进行搜索时, 发现都没有很好的解决方法, 于是决定快速切换到 Flask 纯粹 Python 方案中...</p>
</blockquote>
</blockquote>
<ul>
<li>
<p>Q:由于 fastAPI 安装失败, 如何使用 Flask 来开发 一个简单的接口,
请说明详细过程, 以及示例代码, 并解释关键行为, 以及检验办法;
谢谢</p>
</li>
<li>
<p>A:为了使用 Flask 来开发一个简单的接口,您可以按照以下步骤进行操作:</p>
</li>
</ul>
<h3 id="flask">步骤一:安装 Flask<a class="headerlink" href="#flask" title="Permanent link">¶</a></h3>
<p>首先,您需要安装 Python 3 和 pip。然后使用 pip 安装 Flask:</p>
<div class="highlight"><pre><span></span><code>pip<span class="w"> </span>install<span class="w"> </span>Flask
</code></pre></div>
<h3 id="flask_1">步骤二:编写 Flask 应用程序<a class="headerlink" href="#flask_1" title="Permanent link">¶</a></h3>
<p>创建一个名为 <code>app.py</code> 的 Python 文件,并在其中编写 Flask 应用程序的代码。</p>
<div class="highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">flask</span> <span class="kn">import</span> <span class="n">Flask</span><span class="p">,</span> <span class="n">jsonify</span>
<span class="n">app</span> <span class="o">=</span> <span class="n">Flask</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
<span class="c1"># 创建一个简单的 GET 请求处理器</span>
<span class="nd">@app</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s1">'/'</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">hello_world</span><span class="p">():</span>
<span class="k">return</span> <span class="s1">'Hello, World!'</span>
<span class="c1"># 创建一个返回 JSON 数据的接口</span>
<span class="nd">@app</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s1">'/api/data'</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s1">'GET'</span><span class="p">])</span>
<span class="k">def</span> <span class="nf">get_data</span><span class="p">():</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'name'</span><span class="p">:</span> <span class="s1">'John'</span><span class="p">,</span> <span class="s1">'age'</span><span class="p">:</span> <span class="mi">30</span><span class="p">,</span> <span class="s1">'city'</span><span class="p">:</span> <span class="s1">'New York'</span><span class="p">}</span>
<span class="k">return</span> <span class="n">jsonify</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">'__main__'</span><span class="p">:</span>
<span class="n">app</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">debug</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</code></pre></div>
<h3 id="flask_2">步骤三:运行 Flask 应用程序<a class="headerlink" href="#flask_2" title="Permanent link">¶</a></h3>
<p>在终端中,进入包含 <code>app.py</code> 文件的目录,并运行 Flask 应用程序:</p>
<div class="highlight"><pre><span></span><code>python<span class="w"> </span>app.py
</code></pre></div>
<h3 id="_12">步骤四:验证接口<a class="headerlink" href="#_12" title="Permanent link">¶</a></h3>
<p>在浏览器中访问 <code>http://127.0.0.1:5000/</code>,您应该能够看到 "Hello, World!" 的消息。然后访问 <code>http://127.0.0.1:5000/api/data</code>,您应该能够看到返回的 JSON 数据。</p>
<h3 id="_13">关键行为解释<a class="headerlink" href="#_13" title="Permanent link">¶</a></h3>
<ul>
<li><code>from flask import Flask, jsonify</code>:导入 Flask 框架和 jsonify 函数。</li>
<li><code>@app.route('/')</code>:使用装饰器定义路由,指定 URL 路径。</li>
<li><code>def hello_world():</code>:定义处理该路由的函数,返回 "Hello, World!"。</li>
<li><code>@app.route('/api/data', methods=['GET'])</code>:定义另一个路由,指定请求方法为 GET。</li>
<li><code>def get_data():</code>:定义处理该路由的函数,返回 JSON 数据。</li>
<li><code>if __name__ == '__main__':</code>:确保应用程序仅在直接运行时才运行,而不是被导入到其他模块中。</li>
</ul>
<h3 id="_14">检验办法<a class="headerlink" href="#_14" title="Permanent link">¶</a></h3>
<p>通过访问定义的路由,可以在浏览器中或使用工具如 Postman 发送请求来验证接口的功能和返回结果。</p>
<p>希望这些步骤和示例代码能够帮助您开始使用 Flask 来开发简单的接口。如果您有任何疑问,欢迎随时提问。</p>
<blockquote>
<blockquote>
<p>本地安装很顺利:</p>
</blockquote>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="err">𝄢</span><span class="w"> </span><span class="n">pip</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">Flask</span>
<span class="n">Looking</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">indexes</span><span class="p">:</span><span class="w"> </span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">pypi</span><span class="o">.</span><span class="n">tuna</span><span class="o">.</span><span class="n">tsinghua</span><span class="o">.</span><span class="n">edu</span><span class="o">.</span><span class="n">cn</span><span class="o">/</span><span class="n">simple</span>
<span class="n">Collecting</span><span class="w"> </span><span class="n">Flask</span>
<span class="w"> </span><span class="n">Downloading</span><span class="w"> </span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">pypi</span><span class="o">.</span><span class="n">tuna</span><span class="o">.</span><span class="n">tsinghua</span><span class="o">.</span><span class="n">edu</span><span class="o">.</span><span class="n">cn</span><span class="o">/</span><span class="n">packages</span><span class="o">/</span><span class="n">bd</span><span class="o">/</span><span class="mi">0</span><span class="n">e</span><span class="o">/</span><span class="mf">63738e88</span><span class="n">e</span>
<span class="w"> </span><span class="o">...</span>
<span class="w"> </span><span class="n">Installing</span><span class="w"> </span><span class="n">collected</span><span class="w"> </span><span class="n">packages</span><span class="p">:</span><span class="w"> </span><span class="n">MarkupSafe</span><span class="p">,</span><span class="w"> </span><span class="n">itsdangerous</span><span class="p">,</span><span class="w"> </span><span class="n">click</span><span class="p">,</span><span class="w"> </span><span class="n">blinker</span><span class="p">,</span><span class="w"> </span><span class="n">Werkzeug</span><span class="p">,</span><span class="w"> </span><span class="n">Jinja2</span><span class="p">,</span><span class="w"> </span><span class="n">Flask</span>
<span class="n">Successfully</span><span class="w"> </span><span class="n">installed</span><span class="w"> </span><span class="n">Flask</span><span class="o">-</span><span class="mf">3.0</span><span class="o">.</span><span class="mi">1</span><span class="w"> </span><span class="n">Jinja2</span><span class="o">-</span><span class="mf">3.1</span><span class="o">.</span><span class="mi">3</span><span class="w"> </span><span class="n">MarkupSafe</span><span class="o">-</span><span class="mf">2.1</span><span class="o">.</span><span class="mi">4</span><span class="w"> </span><span class="n">Werkzeug</span><span class="o">-</span><span class="mf">3.0</span><span class="o">.</span><span class="mi">1</span><span class="w"> </span><span class="n">blinker</span><span class="o">-</span><span class="mf">1.7</span><span class="o">.</span><span class="mi">0</span><span class="w"> </span><span class="n">click</span><span class="o">-</span><span class="mf">8.1</span><span class="o">.</span><span class="mi">7</span><span class="w"> </span><span class="n">itsdangerous</span><span class="o">-</span><span class="mf">2.1</span><span class="o">.</span><span class="mi">2</span>
</code></pre></div>
<ul>
<li>
<p>Q: 那么,我想发布一个天气查询的接口:
http://127.0.0.1:5000/api/w/zhuhai
这时就可以从 http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric
获得数据并返回相同的 JSON 数据,
应该如何构建, 请说明关键行为, 并给出详细代码和检验办法,
谢谢;</p>
</li>
<li>
<p>A: 为了构建一个天气查询的接口,您可以使用 Flask 来实现。以下是详细的步骤、代码和检验办法:</p>
</li>
</ul>
<h3 id="flask-requests">步骤一:安装 Flask 和 requests<a class="headerlink" href="#flask-requests" title="Permanent link">¶</a></h3>
<p>首先,确保您已经安装了 Flask 和 requests:</p>
<div class="highlight"><pre><span></span><code>pip<span class="w"> </span>install<span class="w"> </span>Flask<span class="w"> </span>requests
</code></pre></div>
<h3 id="flask_3">步骤二:编写 Flask 应用程序<a class="headerlink" href="#flask_3" title="Permanent link">¶</a></h3>
<p>创建一个名为 <code>app.py</code> 的 Python 文件,并在其中编写天气查询接口的代码。</p>
<div class="highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">flask</span> <span class="kn">import</span> <span class="n">Flask</span><span class="p">,</span> <span class="n">jsonify</span>
<span class="kn">import</span> <span class="nn">requests</span>
<span class="n">app</span> <span class="o">=</span> <span class="n">Flask</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
<span class="c1"># 创建天气查询接口</span>
<span class="nd">@app</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s1">'/api/w/<city>'</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s1">'GET'</span><span class="p">])</span>
<span class="k">def</span> <span class="nf">get_weather</span><span class="p">(</span><span class="n">city</span><span class="p">):</span>
<span class="n">api_key</span> <span class="o">=</span> <span class="s1">'your_api_key'</span> <span class="c1"># 请将 your_api_key 替换为您在 OpenWeatherMap 上获取的 API 密钥</span>
<span class="n">url</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">'http://api.openweathermap.org/data/2.5/weather?q=</span><span class="si">{</span><span class="n">city</span><span class="si">}</span><span class="s1">&appid=</span><span class="si">{</span><span class="n">api_key</span><span class="si">}</span><span class="s1">&units=metric'</span>
<span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="k">if</span> <span class="n">response</span><span class="o">.</span><span class="n">status_code</span> <span class="o">==</span> <span class="mi">200</span><span class="p">:</span>
<span class="n">weather_data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
<span class="k">return</span> <span class="n">jsonify</span><span class="p">(</span><span class="n">weather_data</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="n">jsonify</span><span class="p">({</span><span class="s1">'error'</span><span class="p">:</span> <span class="s1">'Failed to retrieve weather data'</span><span class="p">})</span>
<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">'__main__'</span><span class="p">:</span>
<span class="n">app</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">debug</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</code></pre></div>
<h3 id="flask_4">步骤三:运行 Flask 应用程序<a class="headerlink" href="#flask_4" title="Permanent link">¶</a></h3>
<p>在终端中,进入包含 <code>app.py</code> 文件的目录,并运行 Flask 应用程序:</p>
<div class="highlight"><pre><span></span><code>python<span class="w"> </span>app.py
</code></pre></div>
<h3 id="_15">步骤四:验证接口<a class="headerlink" href="#_15" title="Permanent link">¶</a></h3>
<p>在浏览器中或使用工具如 Postman,访问 <code>http://127.0.0.1:5000/api/w/zhuhai</code>,您应该能够看到返回的 JSON 天气数据。</p>
<h3 id="_16">关键行为解释<a class="headerlink" href="#_16" title="Permanent link">¶</a></h3>
<ul>
<li><code>@app.route('/api/w/<city>', methods=['GET'])</code>:定义一个带有参数的路由,<code><city></code> 是一个动态参数,用于指定城市名称。</li>
<li><code>def get_weather(city):</code>:定义处理该路由的函数,根据传入的城市名称构建 OpenWeatherMap API 的 URL,并使用 requests 库发送 GET 请求获取天气数据。</li>
<li><code>api_key = 'your_api_key'</code>:将 <code>your_api_key</code> 替换为您在 OpenWeatherMap 上获取的 API 密钥。</li>
<li><code>return jsonify(weather_data)</code>:返回获取的天气数据。</li>
</ul>
<h3 id="_17">检验办法<a class="headerlink" href="#_17" title="Permanent link">¶</a></h3>
<p>通过访问定义的路由,可以在浏览器中或使用工具如 Postman 发送请求来验证接口的功能和返回结果。确保您能够成功获取指定城市的天气数据。</p>
<p>希望这些步骤和示例代码能够帮助您构建天气查询接口。如果您有任何疑问,欢迎随时提问。</p>
<p><img alt="本地接口" src="https://ipic.zoomquiet.top/2024-01-24-zshot%202024-01-23%2020.44.15.jpg"/></p>
<h2 id="_18">发布<a class="headerlink" href="#_18" title="Permanent link">¶</a></h2>
<blockquote>
<p>最后解决产品的使用问题</p>
</blockquote>
<ul>
<li>
<p>Q: 那么, 如何将这个本地接口, 发布到互联网中?
可以用手机浏览器来查询指定城市的天气情况?
请说明有哪些常用方案, 哪一个最简单?
给出具体过程, 以及检验办法,
谢谢;</p>
</li>
<li>
<p>A: 要将本地的 Flask 应用程序发布到互联网中,以便可以用手机浏览器查询指定城市的天气情况,您可以考虑以下常用方案之一:使用 ngrok。</p>
</li>
</ul>
<h3 id="ngrok">使用 ngrok 发布本地接口到互联网<a class="headerlink" href="#ngrok" title="Permanent link">¶</a></h3>
<h4 id="ngrok_1">步骤一:安装 ngrok<a class="headerlink" href="#ngrok_1" title="Permanent link">¶</a></h4>
<p>首先,您需要在本地安装 ngrok。您可以从 ngrok 的官方网站 https://ngrok.com/ 下载适用于您操作系统的 ngrok 客户端,并按照说明进行安装。</p>
<h4 id="ngrok_2">步骤二:启动 ngrok<a class="headerlink" href="#ngrok_2" title="Permanent link">¶</a></h4>
<p>在终端中,导航到 ngrok 安装目录,并运行以下命令启动 ngrok:</p>
<div class="highlight"><pre><span></span><code>./ngrok<span class="w"> </span>http<span class="w"> </span><span class="m">5000</span>
</code></pre></div>
<p>假设您的 Flask 应用程序在本地运行在端口 5000 上。</p>
<h4 id="url">步骤三:获取公共 URL<a class="headerlink" href="#url" title="Permanent link">¶</a></h4>
<p>启动 ngrok 后,您将会看到生成的公共 URL,类似于 <code>http://a1b2c3d4.ngrok.io</code>。这个 URL 就是您的本地应用程序在互联网上的访问地址。</p>
<h4 id="_19">步骤四:验证接口<a class="headerlink" href="#_19" title="Permanent link">¶</a></h4>
<p>在手机浏览器中,输入生成的公共 URL,加上您的天气查询接口的路径,例如 <code>http://a1b2c3d4.ngrok.io/api/w/zhuhai</code>,然后您应该能够看到返回的 JSON 天气数据。</p>
<h3 id="_20">检验办法<a class="headerlink" href="#_20" title="Permanent link">¶</a></h3>
<p>通过在手机浏览器中访问生成的公共 URL,加上您的天气查询接口的路径,来验证接口的功能和返回结果。确保您能够成功获取指定城市的天气数据。</p>
<h3 id="_21">其他方案<a class="headerlink" href="#_21" title="Permanent link">¶</a></h3>
<p>除了 ngrok,还有一些其他方案可以将本地接口发布到互联网中,例如使用反向代理工具、部署到云服务器等。但就简单性而言,ngrok 是一个非常方便且简单易用的工具,适合快速将本地接口发布到互联网上。</p>
<p>希望这些步骤和说明能够帮助您将本地接口发布到互联网中,并成功在手机浏览器中查询指定城市的天气情况。如果您有任何疑问,欢迎随时提问。</p>
<blockquote>
<blockquote>
<p>进入任何一个新环节时, 都值得请 AIGC 给出多种方案来对比理解, 拓展常识,决策方向...</p>
</blockquote>
</blockquote>
<ul>
<li>
<p>Q:但是, 通过 ngrok 发布本地 5000 端口的接口后,
访问说 您未获授权,无法查看此网页
这是为什么? 应该如何解决?谢谢</p>
</li>
<li>
<p>A: 这个问题通常是由于 ngrok 的免费版本限制导致的。ngrok 的免费版本在使用时会分配一个随机的子域名,但是这些子域名可能会被其他人使用过或者被滥用,因此有些网络会将其标记为不安全或受限制的网站,导致出现 "403 Forbidden" 的错误。</p>
</li>
</ul>
<p>为了解决这个问题,您可以考虑以下几种方法:</p>
<ol>
<li>
<p><strong>购买 ngrok 的付费版本</strong>:ngrok 提供了付费版本,付费版本可以获得稳定的域名和更多的功能。购买付费版本后,您将获得一个独特的域名,避免了被其他人滥用的风险。</p>
</li>
<li>
<p><strong>使用其他类似的工具</strong>:除了 ngrok,还有一些类似的工具可以将本地服务发布到互联网上,例如 localtunnel、serveo 等。您可以尝试使用其他工具来看是否能够解决这个问题。</p>
</li>
<li>
<p><strong>部署到云服务器</strong>:考虑将您的应用程序部署到云服务器上,例如使用 AWS、Azure、Google Cloud 等云服务商的免费套餐。这样可以获得一个稳定的公网 IP 地址,避免了被标记为不安全的问题。</p>
</li>
</ol>
<p>希望这些方法能够帮助您解决通过 ngrok 发布本地接口时出现的 "403 Forbidden" 错误。如果您有任何疑问,欢迎随时提问。</p>
<blockquote>
<blockquote>
<p>当前, 要快速检验对应方案是否可行, 并随时根据反馈组织新的问题...</p>
</blockquote>
</blockquote>
<ul>
<li>
<p>Q : 类似 ngrok 的工具, 比如 localtunnel、serveo 等 都有哪一些?
其中可以安装应用到 M1 芯片的 macOS 环境中的有哪一些?
推荐使用哪一种? 为什么?</p>
</li>
<li>
<p>A: 类似 ngrok 的工具有很多,其中一些比较常见的包括 localtunnel、serveo、Pagekite、ngrok2、yaler、frp 等。</p>
</li>
</ul>
<p>针对 M1 芯片的 macOS 环境,可以安装并使用以下工具:</p>
<ol>
<li>
<p><strong>localtunnel</strong>:localtunnel 是一个简单的工具,可以将本地的 HTTP 服务暴露到公共的互联网上。它是基于 Node.js 编写的,因此可以在 M1 芯片的 macOS 环境中运行。</p>
</li>
<li>
<p><strong>serveo</strong>:serveo 是另一个类似的工具,它提供了简单易用的方式将本地服务暴露到公网。serveo 也可以在 M1 芯片的 macOS 环境中运行。</p>
</li>
<li>
<p><strong>ngrok2</strong>:ngrok 的旧版本 ngrok2 也可以在 M1 芯片的 macOS 环境中运行,但需要确保安装了适用于 M1 芯片的版本。</p>
</li>
</ol>
<p>推荐使用 localtunnel 或 serveo,因为它们都是轻量级的工具,易于安装和使用。同时,它们在 M1 芯片的 macOS 环境中都能够正常运行,并且提供了稳定的服务。另外,这两个工具都有良好的社区支持和文档,方便用户进行学习和使用。</p>
<p>希望这些信息能够帮助您选择合适的工具。如果您有任何其他问题,欢迎随时提问。</p>
<ul>
<li>Q:看起来 serveo 更加简单, 那么, 如何用 serveo 将 flask 的 localhost:5000 接口反向代理到互联网中, 以便手机也可以访问?</li>
<li>A: 您可以按照以下步骤使用 Serveo 将 Flask 应用程序从本地代理到互联网上,以便手机也可以访问:</li>
</ul>
<h3 id="openssh">步骤一:安装 OpenSSH<a class="headerlink" href="#openssh" title="Permanent link">¶</a></h3>
<p>确保您的计算机上安装了 OpenSSH。大多数 macOS 和 Linux 系统都会默认安装 OpenSSH。如果您使用的是 Windows 系统,您可以通过 Windows Subsystem for Linux (WSL) 安装 OpenSSH。</p>
<h3 id="flask_5">步骤二:启动 Flask 应用程序<a class="headerlink" href="#flask_5" title="Permanent link">¶</a></h3>
<p>在终端中,导航到包含 Flask 应用程序的目录,并运行您的 Flask 应用程序:</p>
<div class="highlight"><pre><span></span><code>python<span class="w"> </span>app.py
</code></pre></div>
<h3 id="serveo">步骤三:使用 Serveo<a class="headerlink" href="#serveo" title="Permanent link">¶</a></h3>
<p>在终端中,运行以下命令将本地的 Flask 应用程序代理到互联网上:</p>
<div class="highlight"><pre><span></span><code>ssh<span class="w"> </span>-R<span class="w"> </span><span class="m">80</span>:localhost:5000<span class="w"> </span>serveo.net
</code></pre></div>
<p>这将创建一个公共 URL,将来自互联网的流量转发到您本地的 Flask 应用程序。</p>
<h3 id="_22">步骤四:验证接口<a class="headerlink" href="#_22" title="Permanent link">¶</a></h3>
<p>在终端中,您将看到生成的公共 URL,类似于 <code>http://your_url.serveo.net</code>。在手机浏览器中输入这个 URL,加上您的天气查询接口的路径,例如 <code>http://your_url.serveo.net/api/w/zhuhai</code>,然后您应该能够看到返回的 JSON 天气数据。</p>
<h3 id="_23">检验办法<a class="headerlink" href="#_23" title="Permanent link">¶</a></h3>
<p>通过在手机浏览器中访问生成的公共 URL,加上您的天气查询接口的路径,来验证接口的功能和返回结果。确保您能够成功获取指定城市的天气数据。</p>
<p>希望这些步骤能够帮助您使用 Serveo 将 Flask 应用程序代理到互联网上,以便手机也可以访问。如果您有任何疑问,欢迎随时提问。</p>
<ul>
<li>Q: 无法访问: 浏览器返回:
访问 3e3a3053f4d26c87df428f3b05fb393b.serveo.net 的请求遭到拒绝您未获授权,无法查看此网页。
HTTP ERROR 403</li>
</ul>
<p>在终端中, 可以看到:</p>
<p>HTTP request from 101.32.192.28 to https://3e3a3053f4d26c87df428f3b05fb393b.serveo.net/</p>
<p>有请求收到, 但是, 没有转发给 falsk 的服务, 这是为什么, 如何解决?
谢谢;</p>
<ul>
<li>A: 这个问题可能是由于 Serveo 无法正确将流量转发到您的本地 Flask 服务导致的。这可能是由于网络配置或防火墙问题引起的。</li>
</ul>
<p>为了解决这个问题,您可以尝试以下方法:</p>
<ol>
<li>
<p><strong>检查防火墙设置</strong>:确保您的本地计算机和网络防火墙允许来自 Serveo 的流量。有时防火墙会阻止外部流量进入本地计算机,导致无法访问您的服务。</p>
</li>
<li>
<p><strong>检查网络配置</strong>:如果您在公司或学校的网络环境中,可能存在网络配置限制,导致无法从外部访问本地服务。您可以尝试在家庭网络或其他网络环境中进行测试,看是否能够解决问题。</p>
</li>
<li>
<p><strong>尝试其他工具</strong>:如果问题仍然存在,您可以尝试使用其他类似的工具,例如 localtunnel 或 ngrok,看是否能够成功将本地服务代理到互联网上。</p>
</li>
<li>
<p><strong>联系 Serveo 支持</strong>:如果以上方法都无法解决问题,您可以联系 Serveo 的支持团队,寻求他们的帮助和支持。</p>
</li>
</ol>
<p>希望这些方法能够帮助您解决问题,成功将您的本地 Flask 服务代理到互联网上。如果您有任何其他问题,欢迎随时提问。</p>
<blockquote>
<blockquote>
<p>至此, 其实一个随时查询指定城市天气的 MVP 工具已经开发完成, 只是要允许外网可以访问, 这已经不是开发问题, 而是发布和运维问题了...在直播视频中进行了另外的尝试, 已经超出 AIGC 辅助开发的话题, 就此打住</p>
</blockquote>
</blockquote>
<p><img alt="serveo" src="https://ipic.zoomquiet.top/2024-01-24-zshot%202024-01-23%2020.44.10.jpg"/></p>
<p>直播视频中, 是跳到了 HK 的主机中, 重新运行工程,
就可以访问对应服务了...</p>
<h2 id="summary">summary<a class="headerlink" href="#summary" title="Permanent link">¶</a></h2>
<blockquote>
<p>最小最实用 🎃程序员AIGC工具包</p>
</blockquote>
<ul>
<li>一个稳定流畅的网络</li>
<li>一个友好精确的类 ChatGPT 引擎, 推荐 devv.ai</li>
<li>一个友好灵活的编辑环境, 推荐 VSCode</li>
<li>一个清晰具体的目标, 是的目标不明确时, 是无法提出有效问题的, 没有可靠的问题/提示词, 当然也就不可能生成可靠的回答</li>
<li>一组层次良好,前后递进的问题, 值得包含的关键词:<ul>
<li>有哪些方案?</li>
<li>给出具体示例代码</li>
<li>解释关键行为</li>
<li>说明检验办法</li>
<li>...以及, 谢谢, 并肯定对应回答, <ul>
<li>就算是为了人类未来, 也请保持基本礼貌</li>
<li>其实, 这是 AIGC 引擎的魔法词, 用来加强有关参数的...</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>当然, 在以上 <code>工具包</code> 中, 还隐藏了一个更加关键以及底层的能力:</p>
<p>语文素质, 如果你本身在自然对话中, 都无法流畅的阐述自己的想法,
那么, 面对无限耐心的知识的 AIGC , 基本上也难以获得值得参考的回答;</p>
<p>进一步的, 在中文语文能力之上, 有英文沟通能力更加好, 一个检验方法是:</p>
<ul>
<li>如果你手工输入的英文, 用 google 翻译过来的中文</li>
<li>和你手工输入的中文, 基本一致,</li>
<li>说明, 你具有了 AI 时代思维模式, 可以用中文阐述和英文一致的思想;</li>
</ul>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li>过程视频: <a href="https://studio.youtube.com/video/VbCJhD3TDtA/edit">AIGCxZhuhai[demo show]通用编程AI辅助过程 - YouTube</a></li>
<li>代码仓库: <a href="https://github.com/AIGCx/zhuhai">AIGCx/zhuhai: demo show anything about AIGC</a></li>
</ul>
<p>SEE:</p>
<ul>
<li><a href="https://www.bmpi.dev/dev/chatgpt-development-notes/pair-programming/">我与ChatGPT结对编程的体验 · BMPI</a></li>
<li><a href="https://baoyu.io/translations/ai/how-i-use-chatgpt-daily-scientist-coder-perspective">我每天是如何使用 ChatGPT 的(从科学家和开发者的视角) [译] | 宝玉的分享</a></li>
<li><a href="https://missing-semester-cn.github.io/">计算机教育中缺失的一课 · the missing semester of your cs education</a></li>
<li><a href="https://braydie.gitbooks.io/how-to-be-a-programmer/content/zh/">Introduction · How to be a Programmer</a></li>
<li>...</li>
</ul>生命3.0:普通人如何理解未来2023-12-18T23:42:00+08:002023-12-18T22:04:08+08:00ZoomQuiettag:blog.zoomquiet.io,2023-12-18:/231213-aigcxchina-life3.html<p>IMHO/ life 3.0 how to thinking future with AI</p><h2 id="30">生命3.0/普通人如何理解未来<a class="headerlink" href="#30" title="Permanent link">¶</a></h2>
<p>一次直播演讲的前后</p>
<h2 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<p>2023, AGI 元年, 受邀请创立了 AIGCxZhuhai,
可一直没有什么对应活动, 终于受邀在 中国AIGC产业联盟火花私享课第21期 进行了一次相对完整的图书介绍:</p>
<h2 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<blockquote>
<p>私人目标</p>
</blockquote>
<ul>
<li>捋通好书内容</li>
<li>间夹个人偏见</li>
<li>倡议关键定义</li>
</ul>
<h2 id="summary">summary<a class="headerlink" href="#summary" title="Permanent link">¶</a></h2>
<blockquote>
<p>记要当时说的主要内容</p>
</blockquote>
<h3 id="_1">但行<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
<ul>
<li>从大学毕业说起</li>
<li>20多年来, 大妈各种技术学习, 以及社区经历</li>
<li>基本作到..好奇什么, 就学什么</li>
</ul>
<p>更加详细的时间线可以参考:
<a href="https://wiki.zoomquiet.io/IMHO/om-how2b-dama">我是如何成为大妈的 | Zoom.Quiet Personal Static Wiki</a></p>
<h3 id="_2">好事<a class="headerlink" href="#_2" title="Permanent link">¶</a></h3>
<blockquote>
<p>第4声</p>
</blockquote>
<ul>
<li>原本是想作 3D 动画去学计算机的,结果发觉依赖非常昂贵的硬件</li>
<li>于是自学 Flash+PHP 回到 IT 行业</li>
<li>进而在过程改进中发现自己的倾向:<ul>
<li>用<strong>技术</strong>改善<strong>技术人</strong>生活品质</li>
</ul>
</li>
<li>早年的 Sci-Fi 写作, 也变成了科技写作和翻译, 文科的底儿, 变成了社区运营的基本功</li>
<li>总之这次分享的核心精神只是:<ul>
<li><code>有好东西一定给小朋友们分享</code></li>
<li>幼儿园时, 注入的分享精神</li>
</ul>
</li>
</ul>
<h3 id="_3">莫问<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
<blockquote>
<p>快速口述 life 3.0 核心内容</p>
</blockquote>
<p>Future of Life Institute <strong>生命未来</strong>研究所创始人所著: <a href="https://futureoflife.org/person/max-tegmark/">Max Tegmark</a></p>
<ul>
<li>第1章: 故事开始了:<ul>
<li>一个 AGI(Prometheus) 如何统治人类的?</li>
<li>一个合理又可行的剧本</li>
<li>输出概念断言:<ul>
<li>生命1.0(生物阶段):靠进化获得硬件和软件</li>
<li>生命2.0(文化阶段):靠进化获得硬件,但大部分软件是由自己设计的</li>
<li>生命3.0(科技阶段):自己设计硬件和软件</li>
</ul>
</li>
</ul>
</li>
<li>第2章: 智能何来?<ul>
<li>偏见又或是公理: 智能是物质的</li>
<li>一个简单的 与非门 就可以构建出生成 AGI 的所有芯片</li>
<li>而学习只是持续改变自身组织结构的物质系统...</li>
</ul>
</li>
<li>第3章: 大突破<ul>
<li>DeepMind 为触发, 在一系列领域中 AI 展现出可以替代人类的各种能力</li>
<li>未来是否意识着人类全体失业?</li>
<li>那么, 现在想投入的将来职位, 就得检验,这份工作是否:<ul>
<li>需要和人交互?</li>
<li>涉及创造性, 必须由你提出解决方案?</li>
<li>需要你在不可预料的环境中工作?</li>
<li>...如果以上都不是, 那么大概念被 AGI 替代</li>
</ul>
</li>
<li>当然, 这种讨论, 就很像 1900 两匹马面对刚刚诞生的汽车进行应激式设想...</li>
</ul>
</li>
<li>第4章: 智能爆炸<ul>
<li>又回到推理故事, 通过简单的社会工程, 就可以教唆内部人员帮助, 完成越狱...</li>
<li>AI 征服世界的必要步骤只是:<ul>
<li>1: 构建 AGI</li>
<li>2: AGI 构建 超级智能 SI/<strong>S</strong>uper<strong>I</strong>ntelligence</li>
<li>3: 使用/任由 <strong>SI</strong> 统治世界</li>
</ul>
</li>
</ul>
</li>
<li>第5章: AI世代<ul>
<li>假设真的按部就班构建出了 <strong>SI</strong> ,那么和人类的关系大扺不超过以下几类<ul>
<li>自由主义乌托邦: 有产权,所有智能和平共处</li>
<li>善意的独裁者: AI 老大哥</li>
<li>平等主义乌托邦: 无产权,所有智能和平共处</li>
<li>看门人: 禁止另外一个 SI</li>
<li>守护神: 隐藏起来的 SI</li>
<li>被奴役的神: 由人完全控制 SI</li>
<li>征服者: 人类是病变</li>
<li>后裔: 允许人类优雅的退出历史</li>
<li>动物园管理员: 人类被看护着</li>
<li>1984: 严格禁止 AI,"新卢德分子"/neouddites</li>
<li>逆转: 退回 阿米什人 社会,《基地》</li>
<li>自我毁灭: WWIII</li>
</ul>
</li>
<li>是的, 多数情况中, 人类可以说, 已经不存在了...所以, 我们要努力哪</li>
</ul>
</li>
<li>第6章: 10亿年后<ul>
<li>如果人类, 幸运的在 AI 协力下可以发展 10亿年, 那么文明的边界是如何的?</li>
<li>前苏,宇宙学家卡尔达肖夫基: 宇宙文明级别:<ul>
<li>1级: 行星文明, 当前 0.7</li>
<li>2级: 恒星文明, 戴森球,1960年<-1937年《造星者》</li>
<li>3级: 星系文明</li>
</ul>
</li>
<li>后续拓展:<ul>
<li>4级: 宇宙文明, 本宇宙 80%+能源</li>
<li>5级: 多重宇宙文明</li>
<li>6级: 神级文明, 构造宇宙</li>
<li>...无法想象</li>
</ul>
</li>
<li>当然, 一切的基础是能源, 而能源, 已知最高效的手段, 就是泯灭物质, 100% 转化为能量</li>
<li>所以,早在 1977《高边疆:太空中的人类殖民地》 就提出:<ul>
<li>通过殖民宇宙来获得资源</li>
<li>问题在:<ul>
<li>我们能走多远?</li>
<li>我们能走多快?</li>
<li>我们能活多久?</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><img alt="宇宙间的关系" src="https://ipic.zoomquiet.top/2023-12-12-l3-cosmos-relation.jpg!/fh/640"></p>
<p>这个图, 非常清晰的指出了:"为什么现在我们还没找到外星人?" 的原因...</p>
<ul>
<li>第7章: 目标<ul>
<li>AI 发展三大根本难题<ul>
<li>让 AI <strong>学习</strong>我们的目标</li>
<li>让 AI <strong>接受</strong>我们的目标</li>
<li>让 AI <strong>保持</strong>我们的目标</li>
</ul>
</li>
<li>即, 如何只构建出对人类 <code>友好</code> 的AI?</li>
<li>code 2.0: 协议, 新法律, 是成本最小, 最可能成功的办法</li>
<li>Aximov 机器人三定律<ul>
<li>定律1:机器人不得伤害人类个体,或者目睹人类个体将遭受危险而袖手不管</li>
<li>定律2:机器人必须服从人给予它的命令,当该命令与第一定律冲突时例外</li>
<li>定律3:机器人在不违反第一、第二定律的情况下,要尽可能保护自己</li>
</ul>
</li>
<li>倡议的<code>未来生命定律</code>:<ul>
<li>第一定律:一个有意识的实体有思考、学习、交流、拥有财产、不被伤害或不被毁灭的自由</li>
<li>第二定律:在不违反第一定律的情况下,一个有意识的实体有权做任何事</li>
<li>...就非常 "<a href="https://zh.wikipedia.org/wiki/Special:%E6%90%9C%E7%B4%A2">美国独立宣言</a>"</li>
</ul>
</li>
</ul>
</li>
<li>第8章: 意识<ul>
<li>为简便理解, 书中约定 意识=主观体验(subjective experience)</li>
<li>即: 如果你感觉“这就是现在的我”, 证明拥有意识</li>
<li>相比 AGI 高速迭代, 对应人类社会 太多关键问题没有充分讨论</li>
<li>所以, FLI 成立, 第一时间就收到 Musk 的大笔赞助</li>
<li>目标:<ul>
<li><code>引导变革性技术造福生命并远离极端大规模风险</code></li>
</ul>
</li>
<li>工作领域涉及:<ul>
<li>政策</li>
<li>资助</li>
<li>教育</li>
<li>活动</li>
<li>...</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="_4">前程<a class="headerlink" href="#_4" title="Permanent link">¶</a></h3>
<p>问题在 FLI 中华人根本没有...人类 1/6 人口的群体竟然没有对应意见渠道?</p>
<p>值得开始独立思考:</p>
<ul>
<li>对未来,你的看法?</li>
<li>对AI,你的看法?</li>
<li>身为一个人类的意义是什么?</li>
<li>...</li>
</ul>
<p>毕竟 伟大成果 只能来自伟大的人</p>
<ul>
<li>如何变得伟大?</li>
<li>如何让人们轻松地做正确的事情?</li>
</ul>
<p>AIGCxChina ~ 中国AIGC产业联盟</p>
<ul>
<li>GC: 生成内容</li>
<li>G:<ul>
<li><strong>G</strong>enerative 生成式</li>
<li>值得升级为:<ul>
<li><strong>G</strong>rowing 生长式</li>
</ul>
</li>
</ul>
</li>
<li>而<strong>C</strong> 也值得升级为:<ul>
<li><strong>C</strong>ivilization 文明</li>
</ul>
</li>
<li>即: AIGCxChina 缩写不变<ul>
<li>含义: 中国AI<strong>共生文明</strong>联盟</li>
</ul>
</li>
</ul>
<h2 id="plan">plan<a class="headerlink" href="#plan" title="Permanent link">¶</a></h2>
<blockquote>
<p>触发, Sci-Fi 通讲系列</p>
</blockquote>
<p>进一步 QA 阶段才发现, "生命3.0" 中讨论的各种未来学话题,
虽然上世纪就在各种 Sci-Fi/ 科学幻想小说中进行过大量的阐述,
但是, 对于中国人, 科学幻想小说, 从 <code>三体</code> 才开始;</p>
<p>值得, 以私人阅读经历中, 分享 有趣靠谱 的书单和经典, 来回顾 AI以及宇宙的想象;</p>
<p>可能的脉络:</p>
<ul>
<li>现代科学幻想起点: 凡尔佩, 人定胜天的故事</li>
<li>黄金三巨头: 美国/罗伯特·海因莱因</li>
<li>黄金三巨头: 美国/艾萨克·阿西莫夫</li>
<li>黄金三巨头: 英国/阿瑟·克拉克</li>
<li>雷-布拉德伯: 霜与火</li>
<li>菲利普-K-迪克: 或然历史</li>
<li>弗诺·文奇,"银河界区三部曲"</li>
<li>特德·蒋, 短篇小说大圣</li>
<li>...</li>
<li>“赌王若昂”三部曲来自芬兰的世界设定之王</li>
<li>...</li>
<li>间客 中国网络文学中的政治观</li>
<li>异常生物见闻录 中国网络文学中的宇宙观</li>
</ul>
<p>准备以系列直播为形式, 慢慢和大家分享, 私人科学幻想小说阅读体验和其中对未来学的各种潜在思考...</p>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<blockquote>
<p>幻灯: </p>
</blockquote>
<p>https://slides.101.camp/AIGCxZh-life3.html</p>
<blockquote>
<p>回放:</p>
</blockquote>
<p><a href="https://youtu.be/mzRpmoiqhKg">"生命3.0"普通人如何理解未来 #AIGCxZhuhai #cyber #futurism </a></p>
<blockquote>
<p>图书:</p>
</blockquote>
<div class="highlight"><pre><span></span><code>生命3.0
作者: [美] 迈克斯·泰格马克
出版社: 浙江教育出版社
副标题: 人工智能时代,人类的进化与重生
原作名: Life 3.0: being human in the age of artificial intelligence
出版年: 2018-6
页数: 468
ISBN: 9787553672786
</code></pre></div>
<blockquote>
<p>异步讨论邮箱:</p>
</blockquote>
<p>askDAMA@googlegroups.com</p>
<p>SEE:</p>
<h2 id="-our-mission-future-of-life-institute">- <a href="https://futureoflife.org/about-us/contact-us/">Our mission - Future of Life Institute</a><a class="headerlink" href="#-our-mission-future-of-life-institute" title="Permanent link">¶</a></h2>
<h2 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h2>
<ul>
<li>231217 ZQ blog</li>
<li>231214 ZQ Youtube 字幕以及章节</li>
<li>231213 ZQ 腾讯会议直播</li>
<li>231209 ZQ 接受邀请</li>
</ul>1024code 新环境新体验2023-05-20T10:42:00+08:002023-05-20T11:11:42+08:00ZoomQuiettag:blog.zoomquiet.io,2023-05-20:/230519-1024code101.html<p>IMHO/ 1024code felling</p><h2 id="1024code">1024code<a class="headerlink" href="#1024code" title="Permanent link">¶</a></h2>
<blockquote>
<p>1024Code 是一个免费的、协作式的、基于浏览器的 IDE 环境,支持 10 多种编程语言,支持 Spring 、Vue 、React 等框架,还支持很多图形库,是刚入门的程序员学习编程,与朋友一起创造作品,分享交流的最佳选择。</p>
</blockquote>
<h2 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<p>1024code 全新在线开发环境,
值得体验, 以及判定最合适来折腾什么</p>
<h2 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<ul>
<li>关键功能体验</li>
<li>记录直觉痒点</li>
<li>规划小规模使用策略</li>
</ul>
<h2 id="tracing">tracing<a class="headerlink" href="#tracing" title="Permanent link">¶</a></h2>
<blockquote>
<p>几个工程过程中的体验</p>
</blockquote>
<h3 id="jerry">Jerry<a class="headerlink" href="#jerry" title="Permanent link">¶</a></h3>
<blockquote>
<p>可能的爆点</p>
</blockquote>
<ul>
<li>不知道基于哪种级别的 GPT</li>
<li>至少对自然语言的理解和生成是足够流畅的, 生成回答也足够及时</li>
<li>当然, 少不了其它 AI 回答时的车轮话</li>
</ul>
<p><img alt="Jerry" src="https://ipic.zoomquiet.top/2023-05-20-zshot%202023-05-20%2009.47.48.jpg"></p>
<div class="highlight"><pre><span></span><code>~/app$ nix-env -i htop
nix-env: /nix/store/jsp3h3wpzc842j0rz61m5ly71ak6qgdn-glibc-2.32-54/lib/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/mc6f3fxw7zv1gshdff7wyb17kyxhymnd-gcc-10.3.0-lib/lib/libstdc++.so.6)
</code></pre></div>
<p>PS:</p>
<p>Jerry 有了, 就等 Tom 了...</p>
<p>PPS:</p>
<p>针对 Jerry 给出的各种提示语建议, 可能是整个系统中最有意思的地方:</p>
<blockquote>
<p>我需要你扮演编程专家的角色。我会提供关于我的编程问题所需的所有信息,你的角色是解决我的 XX 题。你应该运用你的计算机科学、网络基础设施和编程领域相关知识来解决我的问题。在回答中,使用智能、简单和易于理解的语言对各个层次的人都会有帮助。最好用分步和项目符号解释您的解决方案。尽量避免过多的技术细节,但在必要时使用它们。我希望您以解决方案的形式回复,而不是写任何解释。</p>
</blockquote>
<p>如果可以有机制推荐用户们使用最多, 最有效果的提示语,
那么, 随着时间的积累,
1024code 很可能成为最大的中文编程提示工程库...
这个市场空间可比普通的在线 IDE 要有想象现在了...</p>
<h3 id="_1">囧:<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
<blockquote>
<p>~/app$ cargo build</p>
</blockquote>
<p>在 shell 中并没有合适的自动完成支持, 导致所有常用指令只能人工记忆全部键入,
不吻合日常工作效率期待</p>
<blockquote>
<p>warning: build failed, waiting for other jobs to finish...
error: build failed</p>
</blockquote>
<p>Rust 工程中最常见的依赖追加行为:</p>
<ul>
<li>修改 Cargo.toml</li>
<li>cargo build 或是其它指令</li>
<li>自动下载/编译/安装模块</li>
</ul>
<p>失败了...</p>
<div class="highlight"><pre><span></span><code><span class="k">[dependencies.ncurses]</span>
<span class="na">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"https://github.com/jeaye/ncurses-rs.git"</span>
</code></pre></div>
<p>尝试其它形式的模块依赖, 也无法正确安装...</p>
<blockquote>
<p>标签</p>
</blockquote>
<p>一般 IDE 在打开的文件有内容变化时,
再打开其它文件,将保留原有 tab 以便提示开发者要保存...</p>
<p>现在 1024 中, 因为有高速自动保存, 所以, 永远只能打开一个文件?
那么, 想快速切换文件时, 就只能在目录树中每次人眼定位打开...</p>
<h2 id="imho">IMHO<a class="headerlink" href="#imho" title="Permanent link">¶</a></h2>
<blockquote>
<p>头42小时初步直觉...</p>
</blockquote>
<p>简单说 1024code 可以认为是一个 SaaS 服务:</p>
<ul>
<li>提供立即可以开始的基础开发界面</li>
<li>相对完备的真实 Linux 运行时</li>
<li>配套 VSCode 风格的编辑器以及 Vim/Emacs 等常见快捷键支持</li>
<li>足以日常使用的 git 支持, 并可以流畅关联/引入/绑定 外部仓库</li>
<li>原创惊喜:<ul>
<li>直接有 MySQL 真实数据库资源可以随时启用</li>
<li>Jerry AI 助手</li>
<li>内置聊天窗口</li>
</ul>
</li>
<li>...</li>
</ul>
<blockquote>
<p>也就是说:</p>
</blockquote>
<ul>
<li>作为一个 demo 级别的探索开发/自习室, 足够了 <ul>
<li>问题在, 又无法解决独自学习时难以坚持的无反馈问题</li>
</ul>
</li>
<li>但是, 是否能作为一个轻量级别的正式项目开发时, 得观察<ul>
<li>毕竟 Nix 并不是流行的发行版环境, 如果真进行正式项目的开发</li>
<li>那就要首先解决了和其它 Ubuntu/Gentoo/... 常见发行版的 DevOps 兼容问题</li>
</ul>
</li>
</ul>
<p>如果是日常开发, 比如 Python , 也都有越来越完备的最佳实践:
比如: <a href="https://cookiecutter-hypermodern-python.readthedocs.io/en/2022.6.3.post1/">Hypermodern Python Cookiecutter documentation</a></p>
<p>但是, 无论哪种组合, 日常要自行构建起来, 都不是一件容易的事儿,
如果 1024code 能针对每种开发语言社区中探索出来的实践经验,
事先配置好, 那么, 大家可能越来越习惯在这儿开展开发,
不得以时, 才迁移回本地...</p>
<blockquote>
<blockquote>
<p>进一步的, 可以作为更好的在线课程发布平台呢?</p>
</blockquote>
</blockquote>
<ul>
<li>如果是公开课程, 感觉比以往只有视频或是只有代码和文字的, 要好一些</li>
<li>有点像更加吻合日常开发过程的 Jupyter 界面, 虽然缺少一些可能关键的特性, 但是, 已经比自己构建这种环境要可用的多了</li>
<li>但是, 课程和开发并不是一个逻辑<ul>
<li>不说其它反焦虑的伪课程哈</li>
<li>一般课程就两种类型:<ul>
<li>通用入门</li>
<li>专用技能</li>
</ul>
</li>
<li>前者面对小白, 后者专注具体框架/系统/应用/问题</li>
<li>不过, 都要解决一个核心问题:<ul>
<li>如何知道自己知道的过程是对的?</li>
<li>或是说, 过程中如何及时获得针对性合理的反馈</li>
</ul>
</li>
<li>当前虽然有 Jerry 触发式反馈, 可有触发门槛</li>
<li>也有聊天窗口, 可这个窗口是随机的, 还不知道是否是集中式的:<ul>
<li>也就是说, 如果有多名学习者同时打开一个工程时,</li>
<li>大家在聊天窗口输入是所有人可见的</li>
<li>针对工程发布者, 另外有管理界面, 可以回顾/总结/统计/私聊/...</li>
<li>否则, 这个关键功能很难和课程配套起来</li>
<li>这个渠道, 有点儿像开源工程中真实用户的反馈</li>
<li>正确的反馈, 都可能引发课程内容的追加和增强</li>
</ul>
</li>
</ul>
</li>
<li>另外其它付费可见, 打赏 ... 配套功能先不论</li>
<li>单说以 1024codr 为背景一个可用课程的过程:<ul>
<li>导师先构建课程, 包含所有阶段的问题, 引导, 示例<ul>
<li>可能分解到不同分支, 或是目录</li>
<li>通过 <code>README</code> 进行引导</li>
<li>不过, <a href="https://github.com/rust-lang/rustlings/tree/5.0.0">rust-lang/rustlings at 5.0.0</a> 这种和代码结合起来的闯关式环境是更加好的交互<ul>
<li>当然, 这要求语言本身能支持</li>
<li>又如何确保每个学员有自己的进度, 不影响导师的构建?</li>
<li>这是另外一个问题了...</li>
</ul>
</li>
</ul>
</li>
<li>学员随机或是组织进入</li>
<li>跟随 <code>README</code> 探索并调试<ul>
<li>定期进行直播回答聊天中提出的问题, 或是组织进行相同节奏问题的共同尝试</li>
<li>这其中小组结对编程, 又是编程课程的关键场景, 在 1024code 中如何实现?</li>
</ul>
</li>
<li>完成所有课程内容后, 经过一定的考核, 获得对应 证书/徽章 </li>
<li>进一步的, 如果能允许优秀学员可以获得对应工程的联合维护权限, 那么以在线代码仓库为核心的编程课程, 就可能形成完全不同的体验了...</li>
</ul>
</li>
<li>以上 MVP 流程中最大的问题在:<ul>
<li>导致不知道有谁在学习</li>
<li>学习者不知道如何自然的接触导师和其它同学</li>
<li>学习者的探索行为无法自然记录下来并共享在课程空间/组织里:<ul>
<li>比如, 一个学员打开了课程</li>
<li>在一个文件中进行了修改, 触发了 bug <ul>
<li>那么此时, git 是无法操作的, 这是导师的仓库</li>
<li>如果 fork 为自己的, 可以记录变化</li>
<li>但是, 又没有理由 pull-request 回去, 这是自己学习过程中的个性问题</li>
<li>同时, 也没有什么可追踪的邀请方式, 来请导师或是其它同学过来一起解决</li>
</ul>
</li>
<li>也就是说, 学习过程中真实的学习行为, 没有一个合理的流程进行记录和针对性分享/追踪, 并进一步变成课程本身的知识积累...</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h2>
<ul>
<li>230520 ZQ 吐糟阶段小结</li>
<li>230514 ZQ 尝试开辟</li>
<li>230513 ZQ init.</li>
</ul>带生成器的惰性递归2023-03-22T00:00:00+08:002023-03-22T17:59:39+08:00Zoom.Quiettag:blog.zoomquiet.io,2023-03-22:/lazy_recursion_with_generators.html
<h2 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<p>原文: <a href="https://tushar.lol/post/recursive-generators/">Lazy recursion, with generators</a></p>
<p>来自 <a href="https://weekly.pychina.org/issue/issue-569.html">蠎周刊 PyCoder 569 ~蠎周刊 ~汇集全球蠎事儿 ;-)</a> 的推荐</p>
<h2 id="_1">快译<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>此文, 准备研究 Python 的生成器,
并用之来也又和并递归 …</p>
<h2 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<p>原文: <a href="https://tushar.lol/post/recursive-generators/">Lazy recursion, with generators</a></p>
<p>来自 <a href="https://weekly.pychina.org/issue/issue-569.html">蠎周刊 PyCoder 569 ~蠎周刊 ~汇集全球蠎事儿 ;-)</a> 的推荐</p>
<h2 id="_1">快译<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>此文, 准备研究 Python 的生成器,
并用之来也又和并递归代码的内存使用;</p>
<h3 id="_2">当代码调用自己时<a class="headerlink" href="#_2" title="Permanent link">¶</a></h3>
<blockquote>
<p>When the code calls itself</p>
</blockquote>
<p>你知道什么是递归;
就是函数调用自己,
如果要复习一下, 先看个示例:</p>
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">factorial</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
<span class="c1"># base case</span>
<span class="k">if</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<span class="k">return</span> <span class="mi">1</span>
<span class="c1"># recurse</span>
<span class="k">return</span> <span class="n">n</span> <span class="o">*</span> <span class="n">factorial</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
</code></pre></div>
<p>要理解调用自身是如何工作的,
这是 factorial(5) 过程分解:</p>
<div class="highlight"><pre><span></span><code><span class="n">factorial</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
<span class="o">=</span> <span class="mi">5</span> <span class="o">*</span> <span class="n">factorial</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
<span class="o">=</span> <span class="mi">5</span> <span class="o">*</span> <span class="mi">4</span> <span class="o">*</span> <span class="n">factorial</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
<span class="o">=</span> <span class="mi">5</span> <span class="o">*</span> <span class="mi">4</span> <span class="o">*</span> <span class="mi">3</span> <span class="o">*</span> <span class="n">factorial</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="o">=</span> <span class="mi">5</span> <span class="o">*</span> <span class="mi">4</span> <span class="o">*</span> <span class="mi">3</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">factorial</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="o">=</span> <span class="mi">5</span> <span class="o">*</span> <span class="mi">4</span> <span class="o">*</span> <span class="mi">3</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">1</span>
<span class="o">=</span> <span class="mi">120</span>
</code></pre></div>
<p>1 的值来自 factorial(1),
然后返回调用栈时继续乘以 2,3 等等;</p>
<h3 id="_3">何必呢?<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
<blockquote>
<p>Why bother?</p>
</blockquote>
<p>以上递归当然可以宑成 for 循环:</p>
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">factorial</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
<span class="n">product</span> <span class="o">=</span> <span class="mi">1</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">):</span>
<span class="n">product</span> <span class="o">=</span> <span class="n">product</span> <span class="o">*</span> <span class="n">i</span>
<span class="k">return</span> <span class="n">product</span>
</code></pre></div>
<p>那为什么要费心写成递归呢?</p>
<p>事实上, 某些逻辑本质上就是递归的;
一个很好的实例就是打印出文件夹中所有路径,
就象 find 指令作的那样;
这是我一个项目中相关代码:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>find<span class="w"> </span>./src
./src
./src/pylox
./src/pylox/tokens.py
./src/pylox/utils
./src/pylox/utils/__init__.py
./src/pylox/utils/visitor.py
./src/pylox/utils/ast_printer.py
./src/pylox/__init__.py
./src/pylox/lexer.py
./src/pylox/__main__.py
./src/pylox/expr.py
./src/pylox/py.typed
./src/pylox/parser.py
</code></pre></div>
<p>find 工作原理相当简单;
以下是把不即出文件夹所有内容的流程:</p>
<ul>
<li>打印文件夹路径</li>
<li>获得文件夹中所有东西</li>
<li>对于文件夹中每个项目:<ul>
<li>如果是个文件, 就打印出文件的路径</li>
<li>我哪来就是文件夹, 打印出这个子文件夹中的所有内容</li>
</ul>
</li>
</ul>
<p>请注意, 最后一条指令(打印子文件夹中的所有内容)
只是原始任务的一小部分;
递归就非常适合此类任务;</p>
<h3 id="_4">编程时间<a class="headerlink" href="#_4" title="Permanent link">¶</a></h3>
<blockquote>
<p>Time to code</p>
</blockquote>
<p>让我们将这些指令转化为代码;
将使用一个假设的文件结构进行检验;</p>
<p>模拟以下树形结构:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>tree<span class="w"> </span>/
/
├──<span class="w"> </span>etc
│<span class="w"> </span>├──<span class="w"> </span>passwd
│<span class="w"> </span>└──<span class="w"> </span>shadow
└──<span class="w"> </span>usr
<span class="w"> </span>├──<span class="w"> </span>bin
<span class="w"> </span>│<span class="w"> </span>├──<span class="w"> </span>cat
<span class="w"> </span>│<span class="w"> </span>└──<span class="w"> </span>ls
<span class="w"> </span>└──<span class="w"> </span>lib
<span class="w"> </span>├──<span class="w"> </span>my_lib
<span class="w"> </span>└──<span class="w"> </span>gcc
<span class="w"> </span>└──<span class="w"> </span>x86_64-linux-gnu
</code></pre></div>
<p>Python 代码的话:</p>
<div class="highlight"><pre><span></span><code><span class="n">file_tree</span> <span class="o">=</span> <span class="p">[</span><span class="s1">''</span><span class="p">,</span> <span class="p">[</span>
<span class="p">[</span><span class="s1">'etc'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'passwd'</span><span class="p">,</span> <span class="s1">'shadow'</span><span class="p">]],</span>
<span class="p">[</span><span class="s1">'usr'</span><span class="p">,</span> <span class="p">[</span>
<span class="p">[</span><span class="s1">'bin'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'cat'</span><span class="p">,</span> <span class="s1">'ls'</span><span class="p">]],</span>
<span class="p">[</span><span class="s1">'lib'</span><span class="p">,</span> <span class="p">[</span>
<span class="s1">'my_lib'</span><span class="p">,</span>
<span class="p">[</span><span class="s1">'gcc'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'x86_64-linux-gnu'</span><span class="p">]]</span>
<span class="p">]]</span>
<span class="p">]]</span>
<span class="p">]]</span>
<span class="k">def</span> <span class="nf">print_paths_recursive</span><span class="p">(</span><span class="n">folder</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="p">()):</span>
<span class="n">name</span><span class="p">,</span> <span class="n">contents</span> <span class="o">=</span> <span class="n">folder</span>
<span class="n">path</span> <span class="o">=</span> <span class="p">(</span><span class="o">*</span><span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'/'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">))</span>
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">contents</span><span class="p">:</span>
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
<span class="c1"># This is a file, print out its path</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'/'</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="o">*</span><span class="n">path</span><span class="p">,</span> <span class="n">item</span><span class="p">)))</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1"># This is a folder, recurse</span>
<span class="n">print_paths_recursive</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">path</span><span class="p">)</span>
<span class="n">print_paths_recursive</span><span class="p">(</span><span class="n">file_tree</span><span class="p">)</span>
</code></pre></div>
<p>以及输出:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>python<span class="w"> </span>find.py
/etc
/etc/passwd
/etc/shadow
/usr
/usr/bin
/usr/bin/cat
/usr/bin/ls
/usr/lib
/usr/lib/my_lib
/usr/lib/gcc
/usr/lib/gcc/x86_64-linux-gnu
Fairly<span class="w"> </span>straightforward.
</code></pre></div>
<p>转折点来了:
你会如何让这个函数返回所有路径呢?</p>
<h3 id="_5">递归和集合<a class="headerlink" href="#_5" title="Permanent link">¶</a></h3>
<blockquote>
<p>Recursion and collection</p>
</blockquote>
<p>浰不编写递归代码来收集一些数据是很常见的;
必须收集所有文件大又得那而不是将其打印出来就是一个明显的实例;</p>
<p>为此,我们嘦进行相当小的更改:</p>
<p>该函数现在将返回路径列表;
这是递归的一个重要区别,
因为,函数之前没有返回任何东西;
我们将追加到路径列表, 而不是打印出内容;
这就将接收子路径作为返回值,
而不是仅仅进行递归调用,
并将所有返回追加到最终答案数据集中;</p>
<p>这是修改后的代码:</p>
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">get_paths_recursive</span><span class="p">(</span><span class="n">folder</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="p">()):</span>
<span class="n">paths</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">name</span><span class="p">,</span> <span class="n">contents</span> <span class="o">=</span> <span class="n">folder</span>
<span class="n">path</span> <span class="o">=</span> <span class="p">(</span><span class="o">*</span><span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
<span class="n">paths</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">'/'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">))</span>
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">contents</span><span class="p">:</span>
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
<span class="c1"># This is a file, append its path</span>
<span class="n">paths</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">'/'</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="o">*</span><span class="n">path</span><span class="p">,</span> <span class="n">item</span><span class="p">)))</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1"># This is a folder, recurse and append all subpaths</span>
<span class="k">for</span> <span class="n">subpath</span> <span class="ow">in</span> <span class="n">get_paths_recursive</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
<span class="n">paths</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">subpath</span><span class="p">)</span>
<span class="k">return</span> <span class="n">paths</span>
<span class="n">paths</span> <span class="o">=</span> <span class="n">get_paths_recursive</span><span class="p">(</span><span class="n">file_tree</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">paths</span><span class="p">)</span>
</code></pre></div>
<p>输出:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>python<span class="w"> </span>find.py
<span class="o">[</span><span class="s1">''</span>,<span class="w"> </span><span class="s1">'/etc'</span>,<span class="w"> </span><span class="s1">'/etc/passwd'</span>,<span class="w"> </span><span class="s1">'/etc/shadow'</span>,<span class="w"> </span><span class="s1">'/usr'</span>,<span class="w"> </span><span class="s1">'/usr/bin'</span>,
<span class="s1">'/usr/bin/cat'</span>,<span class="w"> </span><span class="s1">'/usr/bin/ls'</span>,<span class="w"> </span><span class="s1">'/usr/lib'</span>,<span class="w"> </span><span class="s1">'/usr/lib/my_lib'</span>,
<span class="s1">'/usr/lib/gcc'</span>,<span class="w"> </span><span class="s1">'/usr/lib/gcc/x86_64-linux-gnu'</span><span class="o">]</span>
</code></pre></div>
<h3 id="_6">问题来了<a class="headerlink" href="#_6" title="Permanent link">¶</a></h3>
<blockquote>
<p>The problem</p>
</blockquote>
<p>如果收集很多文件夹, 问题就出现了;
如果你的目录中有数千或是数百万个文件和文件夹,
将所有文件和文件夹存储在一个列表中,
可能就很麻烦, 原因有两个:</p>
<ul>
<li>你的内存使用会随机飊升;列表可以增长到多大是没有限制的,因此,从技术上讲, 你甚至可能耗尽内存;</li>
<li>如果你只关心文件中的几个项目,那你就不走运了 --- 算法会找出每个子文件夹,然后,你才能对结果数据作些其它事儿;</li>
</ul>
<p>本质上,这是种急性评估的算法;
避免存储所有数据的唯一方法就是直接在函数内部执行任务,
就像我们在直接打印时作的那样;
但是, 这又强烈的将我们的代码和业务进行了耦合;</p>
<h3 id="_7">解决方案<a class="headerlink" href="#_7" title="Permanent link">¶</a></h3>
<blockquote>
<p>The solution</p>
</blockquote>
<p>所以,总结一下我们的问题:
我们想要对任意文件路径运行任意需要的执行任何代码;</p>
<p>任务可能是将其打印出来,又或是将其存储到列表中或是其它:</p>
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">get_paths_recursive</span><span class="p">(</span><span class="n">folder</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="p">()):</span>
<span class="n">name</span><span class="p">,</span> <span class="n">contents</span> <span class="o">=</span> <span class="n">folder</span>
<span class="n">path</span> <span class="o">=</span> <span class="p">(</span><span class="o">*</span><span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
<span class="c1">## Do something with the `path` here,</span>
<span class="c1">## Example: print(path), or paths.append(path)</span>
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">contents</span><span class="p">:</span>
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
<span class="c1">## Do something with the `path + item` here...</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">for</span> <span class="n">subpath</span> <span class="ow">in</span> <span class="n">get_paths_recursive</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
<span class="c1">## Do something with the `subpath` here...</span>
<span class="k">return</span> <span class="n">paths</span>
</code></pre></div>
<p>Python 已经为我们提供了一个非常强大的结构来解决这一问题,
就是生成器;</p>
<p>可以可能在其它一些上下文中听说过生成器,
例如:</p>
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">gen</span><span class="p">():</span>
<span class="k">yield</span> <span class="mi">10</span>
<span class="k">yield</span> <span class="mi">20</span>
<span class="k">yield</span> <span class="mi">10</span>
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">gen</span><span class="p">():</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'Got:'</span><span class="p">,</span> <span class="n">item</span><span class="p">)</span>
<span class="c1"># Got: 10</span>
<span class="c1"># Got: 20</span>
<span class="c1"># Got: 10</span>
</code></pre></div>
<p>但是, 关于生成器有一个鲜为人知的事实:
人家可以在代码中两点间移动你的 evaluation;</p>
<p>我的意思是这样的:</p>
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">gen</span><span class="p">():</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Start!"</span><span class="p">)</span>
<span class="k">yield</span> <span class="mi">1</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Now we're calculating stuff in gen()"</span><span class="p">)</span>
<span class="n">value</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">))</span>
<span class="k">yield</span> <span class="n">value</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Last value!"</span><span class="p">)</span>
<span class="k">yield</span> <span class="mi">42</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Done."</span><span class="p">)</span>
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">gen</span><span class="p">():</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Doing things with </span><span class="si">{</span><span class="n">item</span><span class="si">}</span><span class="s2">..."</span><span class="p">)</span>
</code></pre></div>
<p>你可以看到执行是如何在 gen() 和 for 循环间来回进行的:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>py<span class="w"> </span>a.py
Start!
Doing<span class="w"> </span>things<span class="w"> </span>with<span class="w"> </span><span class="m">1</span>...
Now<span class="w"> </span>we<span class="err">'</span>re<span class="w"> </span>calculating<span class="w"> </span>stuff<span class="w"> </span><span class="k">in</span><span class="w"> </span>gen<span class="o">()</span>
Doing<span class="w"> </span>things<span class="w"> </span>with<span class="w"> </span><span class="m">45</span>...
Last<span class="w"> </span>value!
Doing<span class="w"> </span>things<span class="w"> </span>with<span class="w"> </span><span class="m">42</span>...
Done.
</code></pre></div>
<p>这正是我们在本例中需要的:
每当我们有新路径时, 我们都需要执行上下文返回给主代码;
所以, 我们可以将生成器的控制权交给循环:</p>
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">get_paths_generator</span><span class="p">(</span><span class="n">folder</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="p">()):</span>
<span class="n">name</span><span class="p">,</span> <span class="n">contents</span> <span class="o">=</span> <span class="n">folder</span>
<span class="n">path</span> <span class="o">=</span> <span class="p">(</span><span class="o">*</span><span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
<span class="k">yield</span> <span class="s1">'/'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">contents</span><span class="p">:</span>
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
<span class="k">yield</span> <span class="s1">'/'</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="o">*</span><span class="n">path</span><span class="p">,</span> <span class="n">item</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">for</span> <span class="n">subpath</span> <span class="ow">in</span> <span class="n">get_paths_generator</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
<span class="k">yield</span> <span class="n">subpath</span>
</code></pre></div>
<p>现在, 最好的部分来了,
我们可以创建原始用例, 打印和储存列表都很容易:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>python<span class="w"> </span>-i<span class="w"> </span>find.py
>>><span class="w"> </span><span class="k">for</span><span class="w"> </span>path<span class="w"> </span><span class="k">in</span><span class="w"> </span>get_paths_generator<span class="o">(</span>file_tree<span class="o">)</span>:
...<span class="w"> </span>print<span class="o">(</span>path<span class="o">)</span>
/etc
/etc/passwd
/etc/shadow
/usr
/usr/bin
/usr/bin/cat
/usr/bin/ls
/usr/lib
/usr/lib/my_lib
/usr/lib/gcc
/usr/lib/gcc/x86_64-linux-gnu
>>><span class="w"> </span>list<span class="o">(</span>get_paths_generator<span class="o">(</span>file_tree<span class="o">))</span>
<span class="o">[</span><span class="s1">''</span>,<span class="w"> </span><span class="s1">'/etc'</span>,<span class="w"> </span><span class="s1">'/etc/passwd'</span>,<span class="w"> </span><span class="s1">'/etc/shadow'</span>,<span class="w"> </span><span class="s1">'/usr'</span>,<span class="w"> </span><span class="s1">'/usr/bin'</span>,
<span class="s1">'/usr/bin/cat'</span>,<span class="w"> </span><span class="s1">'/usr/bin/ls'</span>,<span class="w"> </span><span class="s1">'/usr/lib'</span>,<span class="w"> </span><span class="s1">'/usr/lib/my_lib'</span>,
<span class="s1">'/usr/lib/gcc'</span>,<span class="w"> </span><span class="s1">'/usr/lib/gcc/x86_64-linux-gnu'</span><span class="o">]</span>
</code></pre></div>
<p>这种解决方案要灵活的多,
并且, 永远不会像原先方案那样出现急切求值问题;</p>
<h3 id="yield-from">奖励: yield from<a class="headerlink" href="#yield-from" title="Permanent link">¶</a></h3>
<blockquote>
<p>Bonus: yield from</p>
</blockquote>
<p>原先使用 append 来存储路径的代码可以进行一儿改进:
你可以使用 list.extend, 而不是编写一个 for 循环来逐一追加每个子路径:</p>
<div class="highlight"><pre><span></span><code> <span class="c1"># ...</span>
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">contents</span><span class="p">:</span>
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
<span class="n">paths</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">'/'</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="o">*</span><span class="n">path</span><span class="p">,</span> <span class="n">item</span><span class="p">)))</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1">## REPLACING THIS LOOP:</span>
<span class="c1"># for subpath in get_paths_recursive(item, path):</span>
<span class="c1"># paths.append(subpath)</span>
<span class="n">paths</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">get_paths_recursive</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">path</span><span class="p">))</span>
</code></pre></div>
<p>两样的事儿, 可以在我们的生成器解决方案中完成,
使用 yield from gen():</p>
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">get_paths_generator</span><span class="p">(</span><span class="n">folder</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="p">()):</span>
<span class="n">name</span><span class="p">,</span> <span class="n">contents</span> <span class="o">=</span> <span class="n">folder</span>
<span class="n">path</span> <span class="o">=</span> <span class="p">(</span><span class="o">*</span><span class="n">path</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
<span class="k">yield</span> <span class="s1">'/'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">contents</span><span class="p">:</span>
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
<span class="k">yield</span> <span class="s1">'/'</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="o">*</span><span class="n">path</span><span class="p">,</span> <span class="n">item</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">yield from</span> <span class="n">get_paths_generator</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">path</span><span class="p">)</span>
</code></pre></div>
<p>yield from 将产另外一个生成器中所有的值, 一个接一个;</p>
<h3 id="_8">脚注<a class="headerlink" href="#_8" title="Permanent link">¶</a></h3>
<blockquote>
<p>Footer</p>
</blockquote>
<p>以上, 希望你发现使用生成器来改进 Python 中新(和旧)递归代码;
另外, James Powell 有过一个很给力的演讲:
<a href="https://www.youtube.com/watch?v=XEn_99daJro">Python Generators || James Powell - YouTube</a></p>
<p>有关生成器如何拓展出更多的想法,
如果你有兴趣的话, 值得看看;</p>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<p>每一位认真的技术 blogger 都有很多值得精读的积累,比如这位<a href="https://snippets.live/">Tushar Sadhwani</a>的:</p>
<h2 id="-understanding-all-of-python-through-its-builtins">- <a href="https://tushar.lol/post/builtins/" title="Understanding all of Python, through its builtins">Understanding all of Python, through its builtins</a><a class="headerlink" href="#-understanding-all-of-python-through-its-builtins" title="Permanent link">¶</a></h2>Python 中的字典调度模式2023-02-09T18:42:00+08:002023-02-09T18:00:27+08:00ZoomQuiettag:blog.zoomquiet.io,2023-02-09:/230209-dict-dispatch-pattern-in-python.html<p>Pythonic/ 字典的神奇功能</p>
<p>原文: <a href="https://martinheinz.dev/blog/90">Dictionary Dispatch Pattern in Python | Martin Heinz | Personal Website & Blog</a></p>
<p>是否曾经写过一堆 if/else 或是一个巨大的 match/case ,
其中所有语句只是为了匹配一值, 想知道如何将这种事儿简洁又可读嘛?</p>
<p>如果这种场景,那么 字典调度模式 可能就是适合的工具;
通过字典分派,可以通过简单的查找 Python 的字典来替代任何条件组,
而且有很多姿势可以搞...</p>
<p>If so, then dictionary dispatch pattern might be a tool for you. With dictionary dispatch we can replace any block of conditionals with a simple lookup into Python's dict- here's how it works...</p>
<h2 id="lambda">使用 Lambda 函数<a class="headerlink" href="#lambda" title="Permanent link">¶</a></h2>
<p>字典分派的整个思想是我们可以根据变量的值运行不同的函数,
而不是对每个值使用条件语句来指向不同函数;</p>
<p>如果没有字典调度, 我们将不得不使用 if/else 或是 match/case 判别块:</p>
<div class="highlight"><pre><span></span><code><span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">3</span>
<span class="n">operation</span> <span class="o">=</span> <span class="s2">"add"</span>
<span class="k">if</span> <span class="n">operation</span> <span class="o">==</span> <span class="s2">"add"</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="n">x</span> <span class="o">+</span> <span class="n">y</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">operation</span> <span class="o">==</span> <span class="s2">"mul"</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="n">x</span> <span class="o">*</span> <span class="n">y</span><span class="p">)</span>
<span class="c1"># ---------------</span>
<span class="k">match</span> <span class="n">operation</span><span class="p">:</span>
<span class="k">case</span> <span class="s2">"add"</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="n">x</span> <span class="o">+</span> <span class="n">y</span><span class="p">)</span>
<span class="k">case</span> <span class="s2">"mul"</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="n">x</span> <span class="o">*</span> <span class="n">y</span><span class="p">)</span>
</code></pre></div>
<p>虽然这样在 if 或是 case 数量少感觉还成,
但是,随着选项数量的增加, 可能就变得冗长难以阅读和维护了;</p>
<p>作为替代,我们可以进行以下转化:</p>
<div class="highlight"><pre><span></span><code><span class="n">functions</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">"add"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">x</span> <span class="o">+</span> <span class="n">y</span><span class="p">,</span>
<span class="s2">"mul"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">x</span> <span class="o">*</span> <span class="n">y</span>
<span class="p">}</span>
<span class="nb">print</span><span class="p">(</span><span class="n">functions</span><span class="p">[</span><span class="s2">"add"</span><span class="p">](</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
<span class="c1"># 8</span>
<span class="nb">print</span><span class="p">(</span><span class="n">functions</span><span class="p">[</span><span class="s2">"mul"</span><span class="p">](</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
<span class="c1"># 15</span>
</code></pre></div>
<p>实现字典分派最简单方式就是使用 lambda 函数;
在原来的, 我们将每个 lambda 函数分配给字典的一个键;
然后, 就可以通过查找键名并选择性的传入参数来调用到该函数(行内匿名声明的);</p>
<p>当你的操作可以用单行代码表示时,
使用 lambda 是合适的, 但是, 通常使用适当的 Python 函数才是可行的...</p>
<p>(<code>是也乎</code>:</p>
<p>不过,也不一定,参考: <a href="https://pycoders.com/link/10308/web">flatliner-src: 将 Python 程序转换为一行代码</a></p>
<p>真的有项目可以自动将任何函数一键转化为由 lambda 串接的一行代码.</p>
<p>)</p>
<h2 id="_1">使用适当的功能<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>lambda 函数非常适合简单的情况,
但是, 你可能希望分派需要多行代码的函数:</p>
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
<span class="k">return</span> <span class="n">x</span> <span class="o">+</span> <span class="n">y</span>
<span class="k">def</span> <span class="nf">mul</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
<span class="k">return</span> <span class="n">x</span> <span class="o">*</span> <span class="n">y</span>
<span class="n">functions</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">"add"</span><span class="p">:</span> <span class="n">add</span><span class="p">,</span>
<span class="s2">"mul"</span><span class="p">:</span> <span class="n">mul</span><span class="p">,</span>
<span class="p">}</span>
<span class="nb">print</span><span class="p">(</span><span class="n">functions</span><span class="p">[</span><span class="s2">"add"</span><span class="p">](</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
<span class="c1"># 8</span>
<span class="nb">print</span><span class="p">(</span><span class="n">functions</span><span class="p">[</span><span class="s2">"mul"</span><span class="p">](</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
<span class="c1"># 15</span>
</code></pre></div>
<p>使用适当函数时, 唯一的区别是必须在字典之外定义,
毕竟 Python 暂时不允许内联函数定义;
虽然, 这看起来有点儿烦, 可读性也差,
但是, 在我看来, 这也迫使你编写更加清晰/可测试的代码;</p>
<h2 id="_2">默认结果<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<p>如果你使用此东西方来模拟 match/case 语句,
那么应该考虑在字典键不存在时使用默认值:</p>
<div class="highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">collections</span> <span class="kn">import</span> <span class="n">defaultdict</span>
<span class="n">cases</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="k">lambda</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">a</span><span class="p">:</span> <span class="s2">"Invalid option"</span><span class="p">,</span> <span class="p">{</span>
<span class="s2">"add"</span><span class="p">:</span> <span class="n">add</span><span class="p">,</span>
<span class="s2">"mul"</span><span class="p">:</span> <span class="n">mul</span><span class="p">,</span>
<span class="p">})</span>
<span class="nb">print</span><span class="p">(</span><span class="n">cases</span><span class="p">[</span><span class="s2">"add"</span><span class="p">](</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
<span class="c1"># 8</span>
<span class="nb">print</span><span class="p">(</span><span class="n">cases</span><span class="p">[</span><span class="s2">"_"</span><span class="p">](</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
<span class="c1"># Invalid option</span>
</code></pre></div>
<p>这段代码利用了 defaultdict,
第一个参数指定了 "默认工厂",
这是一个在找不到匹配键时调用的函数;
你也可能注意到在此,使用了两个 lambda 函数 --- 第一个是用来捕获传递过来的任意数量参数,
第二个是因为我们需要返回一个可以调用的函数;</p>
<p>This snippet leverages defaultdict, who's first argument specifies the "default factory", which is a function that will be called when key is not found. You will notice that we used 2 lambda functions here - first is there to catch any number of arguments passed to it, and the second is there because we need to return a callable.</p>
<h2 id="_3">传参<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<p>我们已经在前述所有示例中看到,
将参数传递给字典中的函数非常简单,
得是不是,如果你想在将参数传递给函数之前对其进行操作应该如何呢?</p>
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">handle_event</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Handling event in 'handler_event' with </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="k">return</span> <span class="n">e</span>
<span class="k">def</span> <span class="nf">handle_other_event</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Handling event in 'handle_other_event' with </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="k">return</span> <span class="n">e</span>
<span class="c1"># With lambda:</span>
<span class="n">functions</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">"event1"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">arg</span><span class="p">:</span> <span class="n">handle_event</span><span class="p">(</span><span class="n">arg</span><span class="p">[</span><span class="s2">"some-key"</span><span class="p">]),</span>
<span class="s2">"event2"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">arg</span><span class="p">:</span> <span class="n">handle_other_event</span><span class="p">(</span><span class="n">arg</span><span class="p">[</span><span class="s2">"some-other-key"</span><span class="p">]),</span>
<span class="p">}</span>
<span class="n">event</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">"some-key"</span><span class="p">:</span> <span class="s2">"value"</span><span class="p">,</span>
<span class="s2">"some-other-key"</span><span class="p">:</span> <span class="s2">"different value"</span><span class="p">,</span>
<span class="p">}</span>
<span class="nb">print</span><span class="p">(</span><span class="n">functions</span><span class="p">[</span><span class="s2">"event1"</span><span class="p">](</span><span class="n">event</span><span class="p">))</span>
<span class="c1"># Handling event in 'handler_event' with value</span>
<span class="c1"># value</span>
<span class="nb">print</span><span class="p">(</span><span class="n">functions</span><span class="p">[</span><span class="s2">"event2"</span><span class="p">](</span><span class="n">event</span><span class="p">))</span>
<span class="c1"># Handling event in 'handle_other_event' with different value</span>
<span class="c1"># different value</span>
</code></pre></div>
<p>第一个选项是用 lambda 函数,
允许我们 -- 例如 -- 在参数载荷(payload)中查找特定键, 如上所示;</p>
<p>另一种选择是使用 parital 来"冻结"参数,
但是, 这要求你在定义字典之前拥有参数/载荷(payload):</p>
<div class="highlight"><pre><span></span><code><span class="n">event</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">"some-key"</span><span class="p">:</span> <span class="s2">"value"</span><span class="p">,</span>
<span class="s2">"some-other-key"</span><span class="p">:</span> <span class="s2">"different value"</span><span class="p">,</span>
<span class="p">}</span>
<span class="n">functions</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">"event1"</span><span class="p">:</span> <span class="n">partial</span><span class="p">(</span><span class="n">handle_event</span><span class="p">,</span> <span class="n">event</span><span class="p">[</span><span class="s2">"some-key"</span><span class="p">]),</span>
<span class="s2">"event2"</span><span class="p">:</span> <span class="n">partial</span><span class="p">(</span><span class="n">handle_other_event</span><span class="p">,</span> <span class="n">event</span><span class="p">[</span><span class="s2">"some-other-key"</span><span class="p">]),</span>
<span class="p">}</span>
<span class="nb">print</span><span class="p">(</span><span class="n">functions</span><span class="p">[</span><span class="s2">"event1"</span><span class="p">]())</span>
<span class="c1"># Handling event in 'handler_event' with value</span>
<span class="c1"># value</span>
<span class="nb">print</span><span class="p">(</span><span class="n">functions</span><span class="p">[</span><span class="s2">"event2"</span><span class="p">]())</span>
<span class="c1"># Handling event in 'handle_other_event' with different value</span>
<span class="c1"># different value</span>
</code></pre></div>
<h2 id="_4">真实世界<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<p>到目前为止,我们只实验了类似 hallo-world 级别的示例;
字典分派在现实世界中有很多用例,
所以, 让我们游览一些:</p>
<div class="highlight"><pre><span></span><code><span class="c1"># parse_args.py</span>
<span class="kn">import</span> <span class="nn">argparse</span>
<span class="n">functions</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">"add"</span><span class="p">:</span> <span class="n">add</span><span class="p">,</span>
<span class="s2">"mul"</span><span class="p">:</span> <span class="n">mul</span><span class="p">,</span>
<span class="p">}</span>
<span class="n">parser</span> <span class="o">=</span> <span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">()</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span>
<span class="s2">"operation"</span><span class="p">,</span>
<span class="n">choices</span><span class="o">=</span><span class="p">[</span><span class="s2">"add"</span><span class="p">,</span> <span class="s2">"mul"</span><span class="p">],</span>
<span class="n">help</span><span class="o">=</span><span class="s2">"operation to perform (add, mul)"</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span>
<span class="s2">"x"</span><span class="p">,</span>
<span class="nb">type</span><span class="o">=</span><span class="nb">int</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s2">"first number"</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span>
<span class="s2">"y"</span><span class="p">,</span>
<span class="nb">type</span><span class="o">=</span><span class="nb">int</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s2">"second number"</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">args</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()</span>
<span class="n">answer</span> <span class="o">=</span> <span class="n">functions</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">operation</span><span class="p">,)(</span><span class="n">args</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">y</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">answer</span><span class="p">)</span>
</code></pre></div>
<p>首先是解析 CLI 参数;
这里我们使用内置的 argparse 模块来创建一个简单的 CLI 应用程序;
此处的得碊主要包含定义字典和为 CLI 设置 3 个可能的参数;</p>
<p>从 CLI 调用时,我们将获得以下内容:</p>
<div class="highlight"><pre><span></span><code><span class="n">python</span> <span class="n">parse_args</span><span class="o">.</span><span class="n">py</span>
<span class="c1"># usage: parse_args.py [-h] {add,mul} x y</span>
<span class="c1"># parse_args.py: error: the following arguments are required: operation, x, y</span>
<span class="n">python</span> <span class="n">parse_args</span><span class="o">.</span><span class="n">py</span> <span class="n">add</span> <span class="mi">1</span> <span class="mi">2</span>
<span class="c1"># 8</span>
<span class="n">python</span> <span class="n">parse_args</span><span class="o">.</span><span class="n">py</span> <span class="n">mul</span> <span class="mi">5</span> <span class="mi">3</span>
<span class="c1"># 15</span>
</code></pre></div>
<p>如果指定了操作(add 或是 mul)以及 2 个数字参数,
则参数将解析到 args 变量中;
然后, 从字典调用函数时,使用这些秋粮和 args.operation ,
最后将其结果分配给 answer 变量;</p>
<p>另外一个使用字典调度的实际案例,
是对许多不同的传入事件作出反应 -- 例如 -- 来自 webhook,
又或是来自 GitHub 的拉取请求事件:</p>
<p>Another practical example of using dictionary dispatch is reacting to many different incoming events - for example - from a webhook, such as pull request events from GitHub:</p>
<div class="highlight"><pre><span></span><code><span class="n">event</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">"action"</span><span class="p">:</span> <span class="s2">"opened"</span><span class="p">,</span>
<span class="s2">"pull_request"</span><span class="p">:</span> <span class="p">{</span>
<span class="s2">"url"</span><span class="p">:</span> <span class="s2">"https://octocoders.github.io/api/v3/repos/Codertocat/Hello-World/pulls/2"</span><span class="p">,</span>
<span class="s2">"id"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
<span class="s2">"state"</span><span class="p">:</span> <span class="s2">"open"</span><span class="p">,</span>
<span class="s2">"locked"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
<span class="s2">"title"</span><span class="p">:</span> <span class="s2">"Update the README with new information."</span><span class="p">,</span>
<span class="s2">"user"</span><span class="p">:</span> <span class="p">{</span>
<span class="s2">"login"</span><span class="p">:</span> <span class="s2">"Codertocat"</span><span class="p">,</span>
<span class="s2">"id"</span><span class="p">:</span> <span class="mi">4</span>
<span class="p">},</span>
<span class="s2">"body"</span><span class="p">:</span> <span class="s2">"This is a pretty simple change that we need to pull into master."</span><span class="p">,</span>
<span class="s2">"sender"</span><span class="p">:</span> <span class="p">{</span>
<span class="s2">"login"</span><span class="p">:</span> <span class="s2">"Codertocat"</span><span class="p">,</span>
<span class="s2">"id"</span><span class="p">:</span> <span class="mi">4</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p>GitHub 拉取事件可以指定许多不同的操作,
例如: assigned,edited, labeled, 等等;
这里, 我们尝试实现 4 种最常见的字典调度:</p>
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">opened</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Processing with action 'opened': </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="o">...</span>
<span class="k">def</span> <span class="nf">reopened</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Processing with action 'reopened': </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="o">...</span>
<span class="k">def</span> <span class="nf">closed</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Processing with action 'closed': </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="o">...</span>
<span class="k">def</span> <span class="nf">synchronize</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Processing with action 'synchronize': </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="o">...</span>
<span class="n">actions</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">"opened"</span><span class="p">:</span> <span class="n">opened</span><span class="p">,</span>
<span class="s2">"reopened"</span><span class="p">:</span> <span class="n">reopened</span><span class="p">,</span>
<span class="s2">"closed"</span><span class="p">:</span> <span class="n">closed</span><span class="p">,</span>
<span class="s2">"synchronize"</span><span class="p">:</span> <span class="n">synchronize</span><span class="p">,</span>
<span class="p">}</span>
<span class="n">actions</span><span class="p">[</span><span class="n">event</span><span class="p">[</span><span class="s2">"action"</span><span class="p">]](</span><span class="n">event</span><span class="p">)</span>
<span class="c1"># Processing with action 'opened': {'action': 'opened', 'pull_request': {...}, "body": "...", ... }</span>
</code></pre></div>
<p>我们为每个动作类型定义一个单独的函数,
以便我们可以分别处理每个案例;
在此示例中,我们直接将整个有效载荷传递给所有函数,
但是,我们可以在传递事件载荷之前对其进行操作,
正如前述所示:</p>
<h2 id="_5">访问者模式<a class="headerlink" href="#_5" title="Permanent link">¶</a></h2>
<p>最后, 虽然简单的字典通常足够了,
但是, 如果你需要更加健壮的解决方案, 可以应用 <code>访问者模式</code>:</p>
<div class="highlight"><pre><span></span><code><span class="k">class</span> <span class="nc">Visitor</span><span class="p">:</span>
<span class="k">def</span> <span class="nf">visit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">action</span><span class="p">,</span> <span class="n">payload</span><span class="p">):</span>
<span class="n">method_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"visit_</span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2">"</span>
<span class="n">m</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method_name</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
<span class="k">if</span> <span class="n">m</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">m</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">default_visit</span>
<span class="k">return</span> <span class="n">m</span><span class="p">(</span><span class="n">payload</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">default_visit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">action</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Default action..."</span><span class="p">)</span>
<span class="k">class</span> <span class="nc">GithubEvaluator</span><span class="p">(</span><span class="n">Visitor</span><span class="p">):</span>
<span class="k">def</span> <span class="nf">visit_opened</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">payload</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Processing with action 'opened': </span><span class="si">{</span><span class="n">payload</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">visit_reopened</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">payload</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Processing with action 'reopened': </span><span class="si">{</span><span class="n">payload</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="n">e</span> <span class="o">=</span> <span class="n">GithubEvaluator</span><span class="p">()</span>
<span class="n">e</span><span class="o">.</span><span class="n">visit</span><span class="p">(</span><span class="s2">"opened"</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span>
<span class="c1"># Processing with action 'opened': {'action': 'opened', 'pull_request': {...}, "body": "...", ... }</span>
</code></pre></div>
<p>该东西方是通过首先构建一个具有访问功能的 Visitor 父类来实现的;
此函数自动调用名称匹配模式为 <code>visit_<ACTION></code> 的函数;
然后,
这些单独的功能由子类实现, 其中每个功能本质上都充当了 "字典" 里其中一个 "键";
最后, 要使用这个模式/类,
嘦调用 visit 方法, 并让类测定调用哪个函数就好;</p>
<h2 id="_6">小结<a class="headerlink" href="#_6" title="Permanent link">¶</a></h2>
<p>避免条件判定是使事情变得简单可靠的方法,
但是, 这并不意味着我们应该尝试将字典分派硬塞到需要条件判定的每段代码中;</p>
<p>其实,这种模式有很好的用例, 比如说非常长的条件语句链;
又如果, 你因为某些原因无法使用不支持 match/case 的 Python 版本;</p>
<p>此外, 字典本身是可以动态改变的,
比如,通过追加键或是更改值(函数),这是普通条件语句无法实现的;</p>
<p>最后, 即便你不想使用字典(表)调度,
熟悉这一模式也是好的,
因为,在某些时候你很可能会遇到使用这一模式的代码,
那时你能看得懂, 就很不错呢. 😉</p>
<h2 id="ps">PS:<a class="headerlink" href="#ps" title="Permanent link">¶</a></h2>
<p>一般都是在对一组相似场景中要进行不同决策时,
需要使用 字典分派,
而且, 直接使用, 比用 访问者模式 的类要来的简洁,
而且也节省内存;</p>
<p>经验中, 唯一要注意的, 就是这组函数, 最好能有统一的参数形式,
否则, 调试起来很容易出问题;</p>
<p>另外, match/case 毕竟是语言级别的内建语法,
比手工用 字典来进行分派要流畅的多,
能用还是多用;</p>ScrapBook 在 M1macOS 上恢复2022-12-13T21:42:00+08:002023-01-06T16:15:24+08:00ZoomQuiettag:blog.zoomquiet.io,2022-12-13:/221213-scrapbook-revert.html<p>ScrapBook/ 长期使用的私人知识仓库核心组件回归</p>
<h2 id="background">Background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<p><img alt="neofetch" src="https://ipic.zoomquiet.top/2022-12-13-zshot%202022-12-14%2000.18.51.jpg"/></p>
<p><a href="https://du.101.camp/2017-11/ff-no-upgrade/">嫑升级 FireFox 到 56 以上 ~ DebugUself with DAMA ;-)</a></p>
<h2 id="problem">Problem<a class="headerlink" href="#problem" title="Permanent link">¶</a></h2>
<p>之前通过不升级 FireFox 继续使用了一段时间,
但是,随着 FireFox 公司的折腾,一不小心就自动升级了;
好在找到了 <strong>WaterFox</strong> ,是的, 人家就是叫这个名字,
明确就是对着干的, 当然,为了生存 <code>水狐</code> 也不得不用了 Chromiun 内核,
导致无法兼容老的基于 <code>XPCOM + XUL</code> 插件;
好在社区给力,及时分离出一个 <code>Waterfox Classic</code> 版本专门干这事儿;</p>
<p><img alt="Waterfox" src="https://ipic.zoomquiet.top/2022-12-13-scrapbook_revert-1.jpeg"/></p>
<p>问题在 M1 macOS 从 12.x 升级到 13.0.1 后, <strong>WaterFox</strong> 全面失效,
窗口无法打开;</p>
<p><img alt="scrapbook_revert" src="https://ipic.zoomquiet.top/2022-12-13-scrapbook_revert-0.jpeg"/></p>
<p>那么,俺通过 ScrapBook 从05年开始, 17年以来收集到的近8万个本地网页资料就无法按照以往的习惯快速使用了...</p>
<p>这是无法承受的.</p>
<h2 id="trace">Trace<a class="headerlink" href="#trace" title="Permanent link">¶</a></h2>
<p>好在 ScrapBook, 虽然使用 XUL 技术构建,但是,对抓到本地的网页管理很简洁:</p>
<ul>
<li>XML 文件记录用户定义的树形关系,并指向具体的本地目录</li>
<li>所有网页以目录形式写入本地硬盘, index.html 为入口,其它原有资源修改访问地址后同目录保存</li>
</ul>
<p>所以, 我可以自行开发类似 ScrapBook 的管理/查阅界面工具来恢复使用;
不过, 这就要一个不可控的时间;</p>
<p>那么, 还有什么方案可以在 M1 macOS 环境中恢复一个老版本的 <code>FireFox</code> 或是可安装 <code>ScrapBook</code> 的 <code>WaterFox</code> 呢?</p>
<p>既然 macOS 对软件安装有很多限制,那么通过 Linux 环境来恢复对应浏览器界面应该可以,
只不过, <code>ScrapBook</code> 的数据处理有两种方案:</p>
<ul>
<li>放在 macOS 本地, 通过共享目录给虚拟机中的浏览器访问<ul>
<li>然后, 通过 <code>VNC</code> 之类远程桌面,在 macOS 桌面上使用本地其它 OS 中的浏览器访问</li>
</ul>
</li>
<li>放在 macOS 本地, 通过 <code>shellFS</code> 挂载到其它 Linux 主机中提供给浏览器访问<ul>
<li>然后, 通过 <code>VNC</code> 之类远程桌面,在 macOS 桌面上使用远程浏览器访问历史网页</li>
</ul>
</li>
</ul>
<p>很明显, 后一种方案依赖其它主机, 这将导致俺在移动时, 无法恢复 <code>ScrapBook</code> 仓库的资料使用;</p>
<p>那么就用第一种</p>
<h3 id="multipass">Multipass<a class="headerlink" href="#multipass" title="Permanent link">¶</a></h3>
<p>以往习惯的虚拟主机管理器是 <code>VirtualBox</code> ,
可以至今 M1 版本还是实验状态,尝试了一下根本无法合理安装起来一个 Ubuntu 系统;</p>
<p>对比了其它 macOS 中的虚拟主机控制方式; Docker 首先放弃,收费方案也略过;</p>
<p>发现 Ubuntu 官方推出的新方案支持 M1 环境,</p>
<p>这就是 Multipass, 一切看起来很好, 也快速安装好了一个 Ubuntu 22.04 服务器版本;
问题是, 可以进入 shell ,但是,无法访问互联网,
这也就意味着,无法安装新软件;</p>
<p>折腾了很久, 甚至于动用 ChatGPT 联调, 也不行;</p>
<h3 id="utm">UTM<a class="headerlink" href="#utm" title="Permanent link">¶</a></h3>
<p>一开始尝试过,没安装成功,
再次尝试,找到对应视频, 才发现,用错了镜像,使用 arm 版本桌面镜像后,
顺利启动;
在 UTM 配置界面中,根据 <code>ifconfig</code> 选对 USB 外置网络连接后,</p>
<p><img alt="UTM" src="https://ipic.zoomquiet.top/2022-12-13-zshot%202022-12-14%2000.29.38.jpg"/></p>
<p>也能访问互联网, 并切换了国内镜像,
没想到,根据有关文档安装老版本 FireFox 时, 发现没有对应 arm 版本的包;
两样, 也没找到 <code>WaterFox</code> arm 版本的 Linux 安装包;</p>
<p>这就尴尬了,
忘记了 M1 的虚拟机,不可能安装其它芯片方案的系统;
这导致对应软件安装依然不简单...</p>
<h2 id="revert">revert<a class="headerlink" href="#revert" title="Permanent link">¶</a></h2>
<p>终于醒悟过来后, 去 <code>WaterFox</code> 官方看了一下, 发现有升级,
顺利安装 <code>Waterfox Classic</code> 22.11 版本, 替代有问题的 22.10 版本</p>
<p><img alt="Waterfox" src="https://ipic.zoomquiet.top/2022-12-13-scrapbook_revert-2.jpeg"/></p>
<p>一切恢复;</p>
<p>不过,隐患依然存在,
想永远可以自由的以 <code>ScrapBook</code> 的形式继续使用自己积累的知识仓库,
还是要自立更生, 拥有自己完全控制的对应软件呢.</p>
<h3 id="ps">PS:<a class="headerlink" href="#ps" title="Permanent link">¶</a></h3>
<blockquote>
<p>为什么无法放弃 ScrapBook ?</p>
</blockquote>
<p>因为已经形成了效能习惯:</p>
<ul>
<li>看到合适网页,先用 ScrapBook 抓到本地, 这样即便原网页消失,资料也在硬盘中了<ul>
<li>抽空精读, 并标记重点, 然后, 组织到合理的分类树中</li>
<li>需要时, 根据任务快速重组/增补对应知识点配置网页资料</li>
</ul>
</li>
<li>同时, 通过自己编写的 Python 脚本,可以快速将各种分类的 SrapBook 资料分享到网络中<ul>
<li><a href="https://zoomquiet.io/collection.html">ZoomQuiet.io -> collection {by gen4dot2htm.py vv.190718 at:190911 18:13:08,805091}</a></li>
<li>而且可以给每个网页追加自定页尾声明</li>
</ul>
</li>
</ul>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li><a href="https://zh.m.wikipedia.org/zh-hans/Apple_M1">Apple M1 - 维基百科,自由的百科全书</a></li>
<li><a href="http://www.xuldev.org/scrapbook/">ScrapBook :: Firefox Extension</a></li>
<li><a href="https://multipass.run/docs/installing-on-macos">How to install Multipass on macOS | Multipass documentation</a></li>
<li><a href="https://www.youtube.com/watch?v=1WWj6qoWhJw">How To Install Ubuntu 22.04 On M1 Mac || RUN Ubuntu Linux On ANY Mac W/ Apple Silicon - YouTube</a><ul>
<li><a href="https://gist.github.com/stephenharris/90bb468bf80e7f7b02e8b8afe694de4f">Installing a particular version of firefox on Linux.</a></li>
</ul>
</li>
<li><a href="https://classic.waterfox.net/">Waterfox Classic | Waterfox Classic</a></li>
<li>...</li>
</ul>
<h2 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h2>
<ul>
<li>221213 zoomquiet 终于解决<ul>
<li>230106 重新发布</li>
</ul>
</li>
<li>221111 zoomquiet M1macOS 升级后再次无法使用</li>
<li>2017 zoomquiet 撞上 FireFox 放弃所有 XUL 扩展问题</li>
<li>2005 zoomquiet init. scrapbook in FireFox</li>
</ul>开源软件开发导论课程作业0回响++2022-09-11T16:42:00+08:002022-09-11T17:14:22+08:00ZoomQuiettag:blog.zoomquiet.io,2022-09-11:/220911-ossd-echo-plus.html<p>IMHO/ OSSD ask and echo ++</p><h2 id="oss-01">OSS 0.1级疑问 追加回答<a class="headerlink" href="#oss-01" title="Permanent link">¶</a></h2>
<h3 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h3>
<p>作业触发:
<a href="https://bbs.csdn.net/topics/607938212">第一次作业 (看开源的资料,提五个问题)-CSDN社区</a></p>
<p>上次统一回答 220830 之前提交的同学:
<a href="/220901-ossd-faq.html">开源软件开发导论课程作业0之回响</a></p>
<p>发现后来提问的同学, 明显思考的多了些,
在此抽取几个有趣的问题直觉回答一下:</p>
<h3 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h3>
<blockquote>
<p>统一给出整体回答</p>
</blockquote>
<p>有关大妈自己社区经历, 参考:</p>
<ul>
<li><a href="/220817-flossstyle-0.html">开源生活实录.0.从哪儿知道的?</a></li>
<li><a href="/220817-flossstyle-1.html">开源生活实录.1.LAMP之辉</a></li>
<li><a href="/220820-flossstyle-2.html">开源生活实录.2.GNU之魂</a></li>
<li><a href="/220822-flossstyle-3.html">开源生活实录.3.GTD之始</a></li>
<li>...</li>
</ul>
<p>同学们有什么问题, 可以直接回复在文章尾部的评注中, 可以针对性进一步沟通.</p>
<p>(PS: 使用 <a href="https://utteranc.es/">utterances</a> github-issue 来作为容器,
可以长期保存应答...)</p>
<h3 id="murmur">MurMur<a class="headerlink" href="#murmur" title="Permanent link">¶</a></h3>
<blockquote>
<p>一名老程序猿的呢喃</p>
</blockquote>
<h4 id="831">8.31<a class="headerlink" href="#831" title="Permanent link">¶</a></h4>
<blockquote>
<p><a href="https://blog.csdn.net/qq_35537753/article/details/126626402">【课程作业】对开源软件开发的疑问_伏罗希洛夫射手的博客-CSDN博客</a></p>
</blockquote>
<p>这位同学, 难得的是多数问题和开源项目工程质量相关;
而且多数有引用文章的链接, 这种习惯就很不简单了;</p>
<p>其中问题4:</p>
<blockquote>
<p>作为开源项目的维护者,如何高效地审查提交的代码?小而美的补丁固然好,但也不总是那么容易得到的,尤其对于一些并不热门的开源项目来说。</p>
</blockquote>
<p>有点奇怪, 因为, 触发的文章是: <a href="https://blog.csdn.net/programmer_editor/article/details/125798041">一个补丁迭代了16个版本后被撤,我的 Linux内核之旅!_《新程序员》编辑部的博客-CSDN博客</a></p>
<p>而其中, 内容正好回答了同学的提问:</p>
<ul>
<li>吴峰光博士 自身研究方向就是 Linux 内核</li>
<li>因为长期积累, 以及热情, 一次性提交了包含大量代码变更的补丁, 并在社区审核其实, 持续迭代, 越来越大</li>
<li>以致社区领导者被惊动, 直接沟通, 才解除了就会, 转而主动理解社区策略, 开始提交 <code>小而美</code> 的补丁, 进而批量完成补丁接受<ul>
<li>其实, 应该还有后续, 最后作者团队变成了 Linux 内核官方成员</li>
<li>也开始一起帮忙审核/测试/合并代码</li>
</ul>
</li>
<li>这一过程, 哪里不高效呢?<ul>
<li>关键在 <code>高效</code> 的定义吧, 可能同学感觉, 一个复杂系统的修订, 每个提交都应该在几小时以内完成判定并回绝或是接受, 不应该反复几个月吧</li>
<li>其实, 无论哪个领域效能, 都应该有个<code>标准杆</code>(高尔夫术语)</li>
<li>如果在操作系统领域, 这个标准, 应该是大众最熟悉的 Windows, 那么在 Windows 内核工程中, 一个提交要经过多少环节和时间?</li>
<li>没有对比就没有伤害, 这方面的数据, 就是同学自己值得探查的地方了...</li>
</ul>
</li>
<li>可以感觉到, 这个问题本身包含了一系列偏见/傲慢:<ul>
<li>开源项目代码审核并不高效</li>
<li>开源项目小而美的补丁不多</li>
<li>开源项目多数并不热门</li>
<li>只有热门开源项目代码审核才有很多补丁</li>
<li>...</li>
</ul>
</li>
<li>以上偏见, 都是因为并没有深入调查 Linux 内核项目的规模以及代码流程的原因<ul>
<li>建立, 在这个问题基础上, 进一步查阅有关文档/图书</li>
<li>然后修订问题, 问到一个全球大学生都应该关注的真正问题上来</li>
</ul>
</li>
</ul>
<h4 id="91">9.1<a class="headerlink" href="#91" title="Permanent link">¶</a></h4>
<blockquote>
<p><a href="https://blog.csdn.net/weixin_55963187/article/details/126650222?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22126650222%22%2C%22source%22%3A%22weixin_55963187%22%7D">开源软件开发导论第1次作业__LilaS的博客-CSDN博客</a></p>
</blockquote>
<p>这位同学的问题三是罕见的自问自答:</p>
<blockquote>
<p>开源软件开发者群体如何盈利?</p>
</blockquote>
<p>以下转载于 http://t.csdn.cn/Uaflt</p>
<p>在开源软件领域中,常见的盈利模式一共有7种。</p>
<ul>
<li>盈利模式之一:多种产品线</li>
<li>如 MySQL 产品就同时推出面向个人和企业的两种版本,即开源版本和专业版本,分别采用不同的授权方式。开源版本完全免费以便更好的推广,而从专业版的许可销售和支持服务获得收入。 </li>
<li>盈利模式之二:技术服务型</li>
<li>JBoss就是这种模式的典型代表。JBoss 应用服务器完全免费,而通过提供技术文档、培训、二次开发支持等技术服务而获得收入。</li>
<li>盈利模式之三:应用服务托管(ASP)<ul>
<li>例如,PHP Live! 就是一种构架于 PHP、MySQL 之上的开源软件,它可为企业用户提供实时交谈服务。目前已经有数十家公开提供 PHP Live! 托管服务的应用服务提供商。</li>
</ul>
</li>
<li>盈利模式之四:软、硬件一体化<ul>
<li>比如 IBM HP 等服务器供应商巨头,通过捆绑免费的 Linux 操作系统销售硬件服务器。SUN 公司近期将其 Solaris 操作系统开放源码,以确保服务器硬件的销售收入,也是这种模式的体现。 </li>
</ul>
</li>
<li>盈利模式之五:附属品<ul>
<li>O'Reilly集团是销售开源软件附加产品公司的典型案例,他出版了很多优秀的开放源代码软件的参考资料。 </li>
</ul>
</li>
<li>盈利模式之六:品牌战略、服务至上<ul>
<li>康比尔公司的 Compiere ERP & CRM 软件是这种模式的典型案例。 </li>
</ul>
</li>
<li>盈利模式之七:市场策略<ul>
<li>比如微软宣称部分的公开 Office 的源代码,就是执行这种策略。</li>
</ul>
</li>
</ul>
<blockquote>
<blockquote>
<p>“Free Software”中的"Free"关乎自由,而不是价格,使指可以付费或者不付费的得到GUN软件</p>
</blockquote>
</blockquote>
<p>神奇的是, 全篇文章讨论的是开源软件, 突然又引用了<code>自由软件</code> 名字;</p>
<p>那么, 俺的得建议了: </p>
<ul>
<li>开源的这些模式都是怎么形成/摸索出来的?</li>
<li>比开源更加严格的自由软件又有什么商业模式, 又是从哪儿探索出来的?</li>
<li>...推荐挖掘一下 GPL 几个版本许可证的内容, 以及相关故事</li>
</ul>
<p>其实, 这儿得科普一下自由软件的四个自由: <a href="https://www.gnu.org/philosophy/free-sw.zh-cn.html#four-freedoms">什么是自由软件? - GNU 工程 - 自由软件基金会</a></p>
<p>如果一个软件是自由软件,那么它必须为用户提供以下四项基本自由:[1]</p>
<ul>
<li>自由度0:无论用户出于何种目的,必须可以按照用户意愿,自由地运行该软件。</li>
<li>自由度1:用户可以自由地学习并修改该软件,以此来帮助用户完成用户自己的计算。作为前提,用户必须可以访问到该软件的源代码。</li>
<li>自由度2:用户可以自由地分发该软件的拷贝,这样就可以助人。</li>
<li>自由度3:用户可以自由地分发该软件修改后的拷贝。借此,用户可以把改进后的软件分享给整个社区令他人也从中受益。作为前提,用户必须可以访问到该软件的源代码。</li>
</ul>
<p>而开源软件和自由软件最根本性的不同, 就在取消了第4自由, 即通俗的<code>传染性</code>:</p>
<ul>
<li>自由软件, 要求基于自己代码修订出来的新软件也必须是自由软件, 以便代码可以永久自由下去</li>
<li>开源软件, 并不强行要求基于自己代码修订出来的新软件也必须开源, 以便可以获得更多商业机会</li>
<li>但是, 自由软件从一开始就没有禁止进行商业服务, 因为:<ul>
<li>即便是代码完全自由</li>
<li>但是, 使用/运行/维护/加强/定制/...软件, 都是要专业技能和知识的, 这都是有市场需求的</li>
</ul>
</li>
</ul>
<p>所以, 开源工程如何赢利, 非常象我们每个计算机系毕业的人,
我们的精力/时间/能力/... 其实都是开源获得的,
但是, 又多数只能通过商业行为, 来获得报酬,
那么, 在普通的就职之外, 有什么可能性, 这才是值得结合开源项目的故事, 进一步探查思考提问的吧...</p>
<h4 id="93">9.3<a class="headerlink" href="#93" title="Permanent link">¶</a></h4>
<blockquote>
<p><a href="https://blog.csdn.net/mayfly_strive/article/details/126677076">开源软件开发导论第一次作业——关于“开源”的疑问_mayfly_strive的博客-CSDN博客</a></p>
</blockquote>
<p>这位同学, 也是罕见的将问题聚集在参与方向上:</p>
<ul>
<li>2: 个人如何开始开源的路?</li>
<li>3: 开源项目的自由度该如何把握?</li>
<li>5: 个人如何推广开源项目?</li>
</ul>
<p>三个问题, 都是具体的个人参与/进行/推广开源项目的问题;</p>
<p>不过, 三个问题明显都可以统一回答:</p>
<ul>
<li>先开始参与, 然后, 在参与过程中积累经验, 持续迭代/改进自己的能力/思想/行为/习惯/资源/经验...</li>
<li>就象游泳, 无论在下水前进行了多少准备, 嘦没有下水开始游, 永远不可能学会游泳<ul>
<li>在游泳馆里会了, 不等于在小溪中会游</li>
<li>在小溪里会了, 不等于在大河中会游</li>
<li>在大河里会了, 不等于在大江中会游</li>
<li>在大江里会了, 不等于在近海中会游</li>
<li>在近海里会了, 不等于在大洋中会游</li>
<li>...</li>
<li>必须一步一步实践/积累, 并对应配置合适装备</li>
</ul>
</li>
</ul>
<p>比如:</p>
<blockquote>
<p>..我应该从哪些方面约束我个人的代码,保证我所贡献的代码能够有效率地提交</p>
</blockquote>
<p>这很明显就是事先乱担心, 因为每个开源工程, 都为了自身发展, 积累了良好文档,
对补丁的提交, 更加有详细到恶心的文档, 以及丰富到爆炸的工具可以配合,
甚至于和大厂合作, 有海量资源可以自动化协同来完成越来越复杂的测试...</p>
<p>嘦认真参与, 一步步掌握所有知识, 这些问题自然就有了解答, 那么如何开始?
现在就开始.</p>
<h4 id="95">9.5<a class="headerlink" href="#95" title="Permanent link">¶</a></h4>
<blockquote>
<p><a href="https://blog.csdn.net/intpyjl/article/details/126693929?spm=1001.2014.3001.5501">【开源软件开发导论作业-1】_yjlintp的博客-CSDN博客</a></p>
</blockquote>
<p>这位同学的问题也比较有趣, 都是和谐性问题;</p>
<p>更加有趣的是问题3:</p>
<blockquote>
<p>...我想起了不久前,我因为难以忍受网易云音乐PC端频繁出现的bug,在网上寻找网易云的第三方软件,试图作为替代,然后看到LyricEase等第三方网易云音乐 UWP 应用受到了版权警告,被强制下架...以我从一个开发者兼用户的角度来看,这些软件确实违反了规定...基于破解的开源还是开源吗?这种“开源”是应该鼓励开发者去做的吗?</p>
</blockquote>
<p>这个问题其实混合了几种形式, 多种性质的行为, 却统一丢给了开源...</p>
<p>其实, 类似行为, 一直在发生, 有时, 甚至于是反过来的, 大厂抄了开源软件, 用在自己系统中, 被追查出来也死不承认...</p>
<p>以网易云音乐的开源替代为例, 对等的, 其实是 N 年前, 开源 Linux 版本 QQ 事件:</p>
<ul>
<li>腾讯公司一直不发布 QQ linux 版本</li>
<li>于是, 有技术高人通过网络嗅探技术, 查明 QQ 所有通讯协议, 然后, 自行编写了 Linux 版本发布<ul>
<li>后果是被告上法庭关了起来</li>
</ul>
</li>
<li>先不论 腾讯 公司这种行为是否合理, 值得推广</li>
<li>在类似事件中, 开源软件诞生的动力都是相同的: 缺少一个满意的软件, 就自己动手了<ul>
<li>这种开端没有问题</li>
<li>通过努力, 完成了软件, 没有拿来获利, 只是为了更多人使用而开源, 这也没有问题</li>
<li>因为开源, 越来越多的人发现新软件, 并开始进一步完善/宣传/使用/... 这当然也没有问题</li>
</ul>
</li>
<li>唯一的问题在: 原厂商不高兴了<ul>
<li>不高兴的原因很简单: 超出了控制</li>
<li>无论是渠道/流量/版权/协议/....一切自己原本认为机密的东西, 竟然被开放出来了, 当然不高兴</li>
<li>先不说原本以为是自己的, 其实是否真的应该是</li>
</ul>
</li>
<li>核心冲突在什么是 <code>破解</code> ?<ul>
<li>不拓展到其它破解行为, 在开源 <code>网易云音乐</code> 这个场景中</li>
<li>如果: 网易云音乐 原有通讯协议是专利产品, 又在专利保护期以内, 这算非法破解, 否则, 不算破解, 顶多算猜测成功</li>
<li>如果: 网易云音乐 原有数据加密是专利产品, 又在专利保护期以内, 这算非法破解, 否则, 不算破解, 顶多算猜测成功</li>
<li>如果: 网易云音乐 原有数据解密是专利产品, 又在专利保护期以内, 这算非法破解, 否则, 不算破解, 顶多算猜测成功</li>
<li>...</li>
</ul>
</li>
<li>而播放的内容, 又是另外一组 "破解" 了:<ul>
<li>播放的音乐数据来源是网易云音乐, 并大于20秒, 这就涉及了版权内容侵权</li>
<li>但是, 如果想播放网易云音乐, 必须登录对应帐号, 这就不涉及版权内容侵权, 而涉及广告流量清洗</li>
<li>简单说, 凡是 <code>网易云音乐</code> 原本用以获利的资源, 被 "开源", 这就是资源盗用, 不是知识开源领域了, 和开源无关</li>
</ul>
</li>
<li>当然, 明白了这些后, 照样可以通过技术手段进行绕过, 从而达到解决根本问题:<ul>
<li>网易云音乐 本身不好用, 用户又有个性化音乐需求</li>
<li>嘦这种天然需求没有被满足, 就一定有新的工具/厂商/服务/...涌现</li>
</ul>
</li>
</ul>
<p>所以, 在这个问题域, 值得进一步探查/思考, 给出什么样的鼓励是最有效的问题,
这其中, 很可能包含本来创业时的根本思考技巧.</p>
<h4 id="97">9.7<a class="headerlink" href="#97" title="Permanent link">¶</a></h4>
<blockquote>
<p><a href="https://blog.csdn.net/dedsecezio/article/details/126748285?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22126748285%22%2C%22source%22%3A%22dedsecezio%22%7D">《开源软件开发导论》作业1_dedsecezio的博客-CSDN博客</a></p>
</blockquote>
<p>这位同学很习惯大哉问, 动不动问世纪工程般问题;</p>
<p>不过, 最后一个问题才是所有课程同学, 应该一直扪心自问的:</p>
<blockquote>
<p>5.对我们学生来说开源应该算什么?</p>
</blockquote>
<p>就象数字 : <code>0</code> 就是经典代表:</p>
<ul>
<li>外延最小</li>
<li>内涵最大</li>
</ul>
<p>开源也是: 定义异常简单, 比自由软件还少了个自由度,
但是, 在各种精英探索下, 变成越来越热门的 <code>抓手</code>/handle 可以和万事万物结合, 变成各种关键工程中的关键因素;</p>
<p>不过, 简单点儿可以这么开始我们的偏见:</p>
<ul>
<li>无论开源是什么, 开源已经存在了42+年, 而且发展越来越快, 证明有其道理</li>
<li>无论开源是什么, 开源已经积累了42+年, 其中包含的资源, 值得关注/理解</li>
<li>无论开源是什么, 开源已经发展了42+年, 涉及领域几乎包含人类所有方向, 可以和自己任何一种兴趣结合</li>
<li>无论开源是什么, 开源已经生长了42+年, 证明其内在机制是可持续的, 值得参与体验</li>
<li>无论开源是什么, ...</li>
</ul>
<p>也就是说, 开源就象哈佛博士学位, 古老/丰富/艰难/稀缺/...
想完全掌握, 当然困难,
但是, 世界上有什么事儿是完全没有困难的呢?</p>
<p>就算是日常呼吸, 随便一个 COVID-19 都将社会生活折腾成这样, 不难嘛?</p>
<p>从中国大学角度, 开源:</p>
<ul>
<li>是超越中国教育资源的空间, 可以帮助我们提前进入世界关键思想空间</li>
<li>是超越中国网络资源的文化, 可以帮助我们合理进入中国企业难以触达的人物</li>
<li>是超越中国技术体系的渠道, 可以帮助我们提前接触世界级组织</li>
<li>是超越中国...</li>
</ul>
<p>又是免费的, 值得抽出一定时间来深入, 反正不亏.</p>
<h3 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h3>
<blockquote>
<p>有关链接
<a href="http://devrel.zoomquiet.top/data/20110617102755/index.html">如何成为一名黑客</a></p>
</blockquote>
<h3 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h3>
<ul>
<li>220911 ZQ init.+pub</li>
</ul>开源软件开发导论课程作业0之回响2022-09-01T21:42:00+08:002022-09-01T17:48:01+08:00ZoomQuiettag:blog.zoomquiet.io,2022-09-01:/220901-ossd-faq.html<p>IMHO/ OSSD ask and echo</p><h2 id="oss-0">OSS 0级疑问<a class="headerlink" href="#oss-0" title="Permanent link">¶</a></h2>
<h3 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h3>
<p><a href="https://edu.csdn.net/me/softwareteacher">邹欣</a> 老师一直致力于在高校引入 FLOSS 相关课程,
记忆中, <a href="https://book.douban.com/subject/25965995/">构建之法 (2014)</a> 就是相关课程的总结,
一下又10年过去了,
又绕到同一个微信群中, 才知道, 课程已经进化为: "开源软件开发导论"</p>
<p>而且也将课程公开在 git 仓库中:
<a href="https://gitcode.net/csdn/intro-ossd/-/blob/master/plan/0.md">plan/0.md · master · CSDN 技术社区 / Intro-OSSD · GitCode</a></p>
<p>感觉和 CSDN 有深度合作, 所以, 课堂作业也要求统一在 CSDN 平台上给出,</p>
<p><a href="https://bbs.csdn.net/topics/607938212">第一次作业 (看开源的资料,提五个问题)-CSDN社区</a></p>
<h3 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h3>
<blockquote>
<p>统一给出整体回答</p>
</blockquote>
<p>基于自己私人 FLOSS/自由,开源软件社区经历,
CSDN 的 BBS/Blog 系统, 一直不支持 Markdown ,
实在不习惯, 先用私人 blog 统一回复一下.</p>
<p>同学们有什么问题, 可以直接回复在文章尾部的评注中, 可以针对性进一步沟通.</p>
<p>(PS: 使用 <a href="https://utteranc.es/">utterances</a> github-issue 来作为容器,
可以长期保存应答...)</p>
<h3 id="murmur">MurMur<a class="headerlink" href="#murmur" title="Permanent link">¶</a></h3>
<blockquote>
<p>一名老程序猿的呢喃</p>
</blockquote>
<p>一共28位同学, 将问题集中列出来之后,
异常亲切...为什么呢? 和20多年前, 自己提问的姿势多相似哪...</p>
<p>比如, 一次在绿皮火车上偶遇一位僧人, 在大家围着问些佛法知识时,
俺冒了一句: "我能有女朋友, 大师不可能有, 这事儿怎么说?"</p>
<p>可以想象当时场景多尴尬...</p>
<p>正如在各种场景中反复推荐的 <a href="https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md">提问的智慧</a> 中劝说的;
其实, 提问本身就已经是答案的一部分了;</p>
<p>在软件工程领域, 有一种祖传手艺: <a href="https://zh.m.wikipedia.org/zh-hans/%E5%B0%8F%E9%BB%84%E9%B8%AD%E8%B0%83%E8%AF%95%E6%B3%95">小黄鸭调试法/Rubber Duck Debugging</a></p>
<ul>
<li>程序发生问题时, 一般情况就两种:<ul>
<li>为什么不运行?</li>
<li>为什么运行了?</li>
</ul>
</li>
<li>此时, 程序猿最有效调试技巧就是:<ul>
<li>0: 拿出一个橡皮鸭玩具(就是外国电影中无论男女老少洗澡时放浴缸里那种漂着玩的东西..)</li>
<li>1: 对着 <code>小黄鸭</code> 一行一行解释为什么这么写</li>
<li>2: 一般4.2 分钟左右, 就发现了自己的问题所在, 知道如何修改</li>
<li>如果再次发生问题, 重复以上步骤</li>
<li>实在不行, 带着 <code>小黄鸭</code> 去洗个澡,再回来继续, 一定可以解决.</li>
</ul>
</li>
</ul>
<p>嗯哼, 这种高端调试方法, 是没有写过程序的人, 绝对想象不出来的.</p>
<p>为什么? 很简单, 我们不可能对一个自己完全陌生的领域, 给出什么靠谱的猜想和思考;
在 <a href="https://blog.101.camp/nc/200811-zoomquiet-wtf-coding-mind/">蟒营®</a> 在线课程中,
经常给学员提出的 Issue 阐述标准:</p>
<ul>
<li>尽可能详细</li>
<li>详细程度到想吐</li>
<li>或是, 可以确保3年前的自己, 看到这篇文字, 可以复现问题, 并理解问题本身上下文</li>
</ul>
<p>那么, 同学们的提问都问了什么呢?
逐一看下来, 体会有几点:</p>
<ul>
<li>多数同学使用 CSDN 默认皮肤, 包含很多广告位, 自己的内容很难关注到</li>
<li>多数同学字数没超过 420 字, 基本上都是断言式提问, 对问题的来由根本没有阐述, 最多是引用资料中的片段</li>
<li>多数同学没有任何外部链接, 完全不知道看了什么资料</li>
<li>所有同学并没有记述根据资料, 逐步查阅了哪些资料, 以及探查路径和为什么阅读的原因...即, 并没有记录探索过程, 以及过程中自己的思考/尝试/...</li>
<li>所有同学, 没有记录提出问题的用时, 感觉都是随手几秒钟, 就决定了问什么问题...</li>
</ul>
<p>好玩的是, 所有同学问题姿态/方向, 基本一致:</p>
<ul>
<li>都是国家有关部门局级领导语气</li>
<li>问题内容也局限在四个方向:<ul>
<li>FLOSS 知识产权怎么回事儿?</li>
<li>FLOSS 软件工程质量如何保证?</li>
<li>FLOSS 软件项目如何参与?</li>
<li>FLOSS 能力如何识别/积累</li>
</ul>
</li>
<li>不过, 认真分析, 其实所有问题都指向一个本质困惑:<ul>
<li>如何从 FLOSS 工程中获利?</li>
</ul>
</li>
</ul>
<p>面对这种问题, 俺的直觉是想起中亚地区流传的寓言:</p>
<ul>
<li>一位牧人遇到一个流浪汉, </li>
<li>看不下去就问: "你为什么不去放牧呢?"</li>
<li>流浪汉回答: "放牧为了什么?"</li>
<li>牧人回答: "有了有更多羊哪;"</li>
<li>流浪汉回答: "有了更多羊之后呢?"</li>
<li>牧人回答: "就可以挤更多奶, 剪更多羊毛了哪;"</li>
<li>流浪汉回答: "有更多奶, 更多羊毛之后呢?"</li>
<li>牧人回答: "就能卖更多钱了哪;"</li>
<li>流浪汉回答: "有了更多钱, 你会怎么作?"</li>
<li>牧人回答: "当然是每天不用干活, 晒太阳了哪;"</li>
<li>流浪汉回答: "那你看我现在在作什么?"</li>
</ul>
<p>这就是没有任何足够探查, 直觉提问的必然困境之一...</p>
<p>同学们的所有提问, 都建立在一个虚幻的基础上:</p>
<ul>
<li>没有真实参与/发起/组织/... FLOSS 项目</li>
<li>没有长期从事相关开发</li>
<li>没有进入真实 FLOSS 社区进行过切实贡献</li>
<li>...</li>
</ul>
<p>一切都是从第二/三/四/...N手资源中, 配合自己的常理想象, 然后组合为一个问题;</p>
<p>其实, 邹欣 第0个任务, 本身最大的坑, 不在提出什么问题, 而在:</p>
<ul>
<li>为什么提出这个问题</li>
<li>这个问题定义过程是如何的?</li>
<li>有经过什么实践来明确问题边界?</li>
</ul>
<blockquote>
<p>...大学生应该能写出自己的思考, 而不是摘抄书本内容</p>
</blockquote>
<p>这才是题眼, 只是隐藏了两个字: <code>过程</code>,
要记述下来 <code>思考过程</code> , 而不是思考结论,
就象代数解题过程, 代码调试过程, 身体锻炼过程...</p>
<p>一个没有任何过程的结果, 是无法追踪/分析/讨论/...指出在哪个环节出了什么问题,
进而共同解决的;</p>
<p>也就是说, 软件工程中的问题, 和 FLOSS/自由,开源软件 项目中的问题,
其实, 都是有相同基础要求的: <a href="https://wiki.mbalib.com/wiki/SMART%E5%8E%9F%E5%88%99">SMART原则</a></p>
<ul>
<li>S代表具体(Specific) 问题/目标要是具体, 明确的, 不可是真理/宽泛的</li>
<li>M代表可度量(Measurable) 问题/目标要是可量化或者可衡量的, 即可检验的</li>
<li>A代表可实现(Attainable) 问题/目标在付出努力的情况下可以实现的</li>
<li>R代表现实性(Realistic) 问题/目标是实实在在的, 现实存在, 可观察的</li>
<li>T代表有时限(Time bound) 问题/目标是有期限的, 不是永恒的</li>
</ul>
<p>简单说, 每一个问题都是要和自己有关联的, 注意, 这种关联不一定只能是利益性的;</p>
<p>其实, 同学们多数问题, 都可以通过几次搜索从 google 中获得精确的回答,
但是, 没有同学有尝试进行自问自答, 结果多数都只是进行了外围人员的常识性提问,
没有进行专业性探查;</p>
<p>即, 没能 <code>置身事内</code>, 完全飘在高处俯瞰没有边界的 FLOSS 世界,
那么, 这种提问, 其实对自己无论学术还是实践都很难有帮助哪...</p>
<p>怎么改进呢? 大声朗读: <a href="https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md">提问的智慧</a> 4遍, 就知道如何去作了.</p>
<h4 id="floss">FLOSS 上限<a class="headerlink" href="#floss" title="Permanent link">¶</a></h4>
<p>只有一位同学的问题, 有所突破:</p>
<blockquote>
<p>...但是肯定对于某些行业和产品,是不能够开源的,因为涉及到机密和版权等等。那么是不是开源理论上存在一个上限呢,即存在一个开源软件的范围,在范围之外的产品是无论如何也不能够开源的。
如果开源真的如我所想存在一个范围上限,那么当他达到这个上限的时候,还会有新的内容出现么?</p>
</blockquote>
<p>虽然, 陈述上还有问题,
但是, 这是一个逻辑上相对完备的质疑;</p>
<p>俺的直觉回答:</p>
<ul>
<li>FLOSS/自由,开源软件, 本质上还是软件, 和其它类型软件并无不同<ul>
<li>其它类型软件可以作到的, 开源软件一定可以作到, 差异只是积累途径和成本</li>
</ul>
</li>
<li>软件本质上只是工具, 用来辅助人们完成具体工作的<ul>
<li>如果某种工作只能使用秘密工具来完成, 那么也就意味着, 这种工作是不能公开的</li>
<li>不能公开的工作, 也就不可能拥有广泛的劳动者</li>
<li>不能为最广泛群体使用的工具, 自然也将自我消失在大众关注范畴中</li>
</ul>
</li>
<li>工具是随着人类能力而变迁的, 工具的上限只能是人类想象力的边界<ul>
<li>而想象力是没有上限的</li>
<li>自然, FLOSS/自由,开源软件, 也没有所谓上限</li>
</ul>
</li>
<li>只能秘密制造/使用的工具, 并不能代表人类想象力上限<ul>
<li>多数情况中, 反而只是为了制约想象力/创造力, 而特意秘密</li>
</ul>
</li>
</ul>
<h3 id="trace">trace<a class="headerlink" href="#trace" title="Permanent link">¶</a></h3>
<blockquote>
<p>先列表一下同学们直觉问题, 再分类针对性回答
<a href="https://blog.csdn.net/LIBOJIA/article/details/126643084?spm=1001.2014.3001.5502">开源软件开发导论第一次作业_LIBOJIA的博客-CSDN博客</a></p>
<p>《中国开源发展蓝皮书》的总论部分以及几篇CSDN上关于开源的文章后...</p>
</blockquote>
<ol>
<li>开源软件的开发者是通过什么方式来盈利的</li>
<li>开源社区一旦与行业单位结合,会不会发生互相挤兑的情况</li>
<li>不同行业之间使用开源方式,如何统合他们的技术标准</li>
<li>我们该如何参与到开源组织之中,如何成为优秀的开源人才</li>
<li>在现有大型开源组织的情况下,如何创建新兴的开源组织并且持续运营下去</li>
</ol>
<p><a href="https://blog.csdn.net/qq_40043377/article/details/126636528?spm=1001.2014.3001.5501">关于开源软件的五个问题_SITDOWN7的博客-CSDN博客</a></p>
<ol>
<li>像Linux内核这种体量十分庞大的开源项目,可能代码有很多需要改进的部分且有大量的开发者想提交补丁,如此一来审核工作会变得十分困难。比如审核人员过少导致审核速度过慢影响迭代速度,躲着审核人员过多导致人员杂乱会影响到安全问题。所以大型开源项目的管理人员是怎么组成以兼顾安全和效率呢?</li>
<li>开源项目管理者们如何判定和评估开发者提交的代码的有用性和安全性的?</li>
<li>如何理解、上手某一开源项目以达到能够提交issue、pr的水平?</li>
<li>一个开源项目,基金会、项目管理者、开发者、用户之间是一个什么关系?</li>
<li>开源自己的项目,怎么获得开发者们的关注,并如何管理这个开源项目?</li>
</ol>
<p><a href="https://blog.csdn.net/wzszss/article/details/126623142?spm=1001.2014.3001.5501">关于开源的五个问题_wzszss的博客-CSDN博客</a></p>
<blockquote>
<p>在阅读了《中国开源发展蓝皮书》的总论部分以及几篇CSDN上关于开源的文章后,我对开源产生了几个问题。</p>
</blockquote>
<ol>
<li>如何维护个人或团队的合法权益?开源存在的法律问题仍然很多,一旦被侵权也难以维护自身权益,且项目可能被他人恶意改动导致出现严重问题。</li>
<li>项目存在的技术风险可能会对使用者造成影响,如何减少开源项目存在的技术风险?</li>
<li>对于他人的合并请求应该怎样处理?如果他人的改动能够提高项目质量,但同时又存在潜在风险,如何抉择?</li>
<li>如何判断项目是否需要开源,又怎么判断在何时开源?开源虽然能收到更多反馈,但也存在着许多风险;而对于确定要开源的项目,是尽可能确认没有问题再开源还是提前开源以获得更多反馈?</li>
<li>怎样提高自己的开源开发能力?是多参与已有的开源项目学习,还是自己开发开源项目,以及如何确定适合自己的项目?</li>
</ol>
<p><a href="https://blog.csdn.net/afdrsggetg/article/details/126631678?spm=1001.2014.3001.5502">开源开发导论第1次作业_zxcvzxcv3295的博客-CSDN博客</a></p>
<ol>
<li>我阅读了(23条消息) 参与开源,从给RocketMQ提ISSUE开始_不识君的荒漠的博客-CSDN博客_开源项目issue这份资料后,了解到面试和课程安排一样需要了解开源项目并提出问题,但是读懂一整个软件的代码会消耗很多时间,而且如果是非常成熟的软件以我的能力不一定能找到并修改,请问如何能找到比较符合水平的来进行修改呢?</li>
<li>我阅读了(26条消息) 记一次10人跨组织、跨地域的开源协作经历_腾源会的博客-CSDN博客,组队完成开源项目,和其他项目完成之后发布有什么区别吗?</li>
<li>阅读完(26条消息) RethinkDB开源项目为什么会失败?_钱曙光的博客-CSDN博客后,开源公司是没有直接的利润的,只能依靠投资,而不开源损失的只是一小部分用爱发电的程序员帮忙维护,却能获得直接利润,为什么还要开源?</li>
<li>开源项目也是分有前后端的,那参与了解一个开源项目也是需要团队的分工合作吗?</li>
<li>简历需要有开源软件的参与经历,那么通过这门课以及之后的一年多时间可以参与到比较大型的开源项目吗?毕竟只有本科的能力而且时间有限。</li>
</ol>
<p><a href="https://blog.csdn.net/Lscsc007/article/details/126633355?spm=1001.2014.3001.5501">开源软件开发导论第1次作业_庐州燕归巢的博客-CSDN博客</a></p>
<ol>
<li>自身的技术兴趣固然占一方面,但是更多的可能是如何去找这些开源项目。这里作者给出了两个选项,那么一个小白或是不太有特别突出的某方面兴趣的人在选择时,该如何去选择呢?</li>
<li>有些上传者可能怀有不轨的企图,可能添加一些看似无用的代码,实则可能会影响整个系统的运行的情况。Linux的社区较大,因此资源比较好,管理员可以及时发现这些可疑的补丁。然而其他中小型开源社区可能无法做到全盘扫描出这些问题,那么他们平时是怎么处理这些问题的,又可能会有更好更高效的处理方式么?</li>
<li>从上述描述中可以看出,开源需要注意的事情其实是很繁琐的,涉及到很多需要注意的事项,那么当一些开源工作者在处理这些事项时,是如何确定这些资源是否有权应用到开源项目呢?又是否有一种较为高效的系统或方法来帮助开源工作者们处理这些问题?</li>
<li>当我们在接触开源的过程中,会遇到一些问题,这个时候去issue中寻找问题往往是解决方法的首选。那么当我们在遇到issue中未曾涉及到的问题时,我们需要提出一些问题或是我们需要提交一些补丁之类的资源时,如何能保证或是提高自己被接受或采纳的概率呢?</li>
<li>Linux社区引导协调各种人员完成协作,他们的代码风格、个人习惯也各不相同,这究竟该如何具体实现呢?这里我问出了一个与本文作者相同的问题。除此之外,我目前也参与过两个软件项目的开发,但是读了一些文章之后,发现开源开发与普通开发有着很大的区别,包括主导权、话语权等,那么这些的具体区别又是什么呢?</li>
</ol>
<p><a href="https://blog.csdn.net/TheSleepGod/article/details/126632645">开源软件开发导论-第一次作业_TheSleepGod的博客-CSDN博客</a></p>
<ol>
<li>当一个不开源的项目开源时,这意味着我们需要确保自己的项目中的每一部分都不侵犯他人权益,这一繁琐的工作量是令人头疼的,同时这一过程并不一定有开源项目的使用者来帮助你完成,那么请问是否存在快速开源的模组或框架,帮助我们完成这一工作?</li>
<li>开源项目在开源之前并不会受到关注或者帮助,但作为开发工具使用者的我们似乎有一种动力去完成自己的开源项目(荣誉感或成就感,但这一过程中存在许多繁琐的事情,请问从事开源开发具体是一种什么样的体验呢?</li>
<li>在开源开发的过程中,如何避免对项目的恶意破坏呢?</li>
<li>开源社区这种较为松散的管理方式是否存在改进空间?我们如何区分恶意的干扰代码和有益的改进尝试?或者说,我们如何照顾到尽可能多的愿意为开发软件做出共享的开发者?</li>
<li>请问这种共识如何保持长久、准确地保持在开源软件的开发过程中呢?</li>
</ol>
<p><a href="https://blog.csdn.net/org_wjw/article/details/126630432?spm=1001.2014.3001.5501">开源软件开发导论——第1次作业_org_wjw的博客-CSDN博客</a></p>
<ol>
<li>参与社区讨论并且学习其他人解决问题的方法能否算做参与了开源软件开发过程,是不是说只有提交相应代码才算做参与了开源开发?</li>
<li>在工作中积累的经验和见识主要是指哪些方面的经验和见识,这些经验和见识如何帮助我们的工作?</li>
<li>如果社区回复速度太慢,甚至不回复,那么无疑会挫伤参与者的积极性,如何解决这个问题呢?</li>
<li>如果开源参与者故意提交恶意代码造成损失,如何避免这种行为再次发生,明令禁止提交是否合适?</li>
<li>开源软件开发公司是否收益要低于非开源软件开发公司?</li>
</ol>
<p><a href="https://blog.csdn.net/ruoyunbai/article/details/126621514?spm=1001.2014.3001.5502">关于开源软件的五个问题_若云白[旺柴]的博客-CSDN博客</a></p>
<ol>
<li>如何快速理解已有项目的代码结构、用到的技术,并习得为其贡献代码的技术?</li>
<li>如何防止恶意代码?</li>
<li>软件开源后如何保持自己的竞争力?</li>
<li>Linux这样的影响力巨大的开源项目,需要Linus这样一位“独裁者”,开源软件是否能有一种更加民主的形式呢?</li>
<li>开源软件如何保证风格统一?</li>
</ol>
<p><a href="https://blog.csdn.net/pikachu_xakumes/article/details/126629535?spm=1001.2014.3001.5502">关于开源软件的五个问题_pikachu_xakumes的博客-CSDN博客</a></p>
<ol>
<li>对于一个项目,学习所花费成本都比较大,而相同时间所获取的价值可能并不相同,而同一技术的实现可能存在多个项目,该如何甄别对自己更有价值的项目。</li>
<li>学习开源项目更多是以增量开发为目的还是以便于应用他人技术为目的,抑或是学习他人的代码思想和风格等。</li>
<li>在企业中,一个团队大多是以同一价值取向为驱动的,而开源项目中因人价值取向差异或者文化差异是否会导致开发方面进程方面的问题。</li>
<li>开源的项目在进行增量开发的时候如果某一功能拓展仅在部分项目中有用而在其他项目中冗余该如何处理。</li>
<li>最近经常有人提倡开源变现,这是否与开源的初衷有所冲突,或者是否属于一种付出不及收获的想法。</li>
</ol>
<p><a href="https://blog.csdn.net/weixin_52053378/article/details/126629439?spm=1001.2014.3001.5501">开源软件开发导论——第1次作业_二九L的博客-CSDN博客</a></p>
<ol>
<li>对于已有的开源项目,如何快速理解项目,并上手开发呢</li>
<li>发布issue一般是什么形式的?是提出建议,指出不足还是有明确的代码。什么程度才算是参与了开源项目</li>
<li>参与开源项目会有收益吗</li>
<li>如果因为自身提交的代码,导致项目出现了问题,损失由谁承担?</li>
<li>对于新手,开源开发有什么入门的教程吗</li>
</ol>
<p><a href="https://blog.csdn.net/JRX992277/article/details/126629088?spm=1001.2014.3001.5502">开源软件开发导论第1次作业_根号负一2058的博客-CSDN博客</a></p>
<ol>
<li>面对一个半成品开源项目,如何减少阅读这个项目的代码的时间以求尽快的能对代码进行自己的修改和使用</li>
<li>如何防止开源项目成果被他人窃取利用</li>
<li>人员的流动造成代码的历史遗留问题,开发者对开源项目具有什么样的责任</li>
<li>开源软件的发展周期是怎么样的</li>
<li>开源项目的参与者除了提升技术外,是否能通过项目得到一些实际的利益和收入</li>
</ol>
<p><a href="https://blog.csdn.net/weixin_51559847/article/details/126628847?spm=1001.2014.3001.5501">开源软件开发导论第一周作业1——关于开源软件的五个问题_saber3297的博客-CSDN博客</a></p>
<ol>
<li>开源项目的开发模式和非开源项目有何异同?</li>
<li>开源软件用于商业用途需要怎样的流程和许可?</li>
<li>给开源项目提供代码后,项目被非法利用我需要承担怎样的责任?</li>
<li>开源软件可能会包含世界各地众多的代码贡献者,请问如何保证代码的正确合理,审核机制是什么样的?</li>
<li>开源软件怎么获得报酬?</li>
</ol>
<p><a href="https://blog.csdn.net/u011567964/article/details/126627631?spm=1001.2014.3001.5502">开源软件开发导论第一周作业1——关于开源软件的五个问题_橙原 凯的博客-CSDN博客</a></p>
<blockquote>
<p>code: 7054</p>
</blockquote>
<ol>
<li>感觉介入开源项目是很困难的,开源项目负责人是如何让介入者快速理解代码的呢?没有时间去理解整个项目代码的情况下,如何才能开始编写项目代码呢?</li>
<li>issue的具体作用是什么?提bug?讨论用法?提了issue就算介入开源项目了吗?</li>
<li>参与开源项目会不会有人在未通知的情况下直接修改了自己写的代码部分的内容的情况呢?</li>
<li>在编写代码的时候若进行分模块/分文件负责的安排是否能较大程度的减少合并冲突的情况呢?(意味着尽量保证有且仅有一个人编写同目录/同文件下的代码)</li>
<li>开源软件有可能获得收益吗?如何评定与分配?他人使用开源软件盈利,利益会分发到开发人员手中吗?</li>
</ol>
<p><a href="https://blog.csdn.net/AboveParadise/article/details/126627531?spm=1001.2014.3001.5502">开源软件开发导论——第1次作业_Obliviate°的博客-CSDN博客</a></p>
<ol>
<li>参与开源项目时如何提出issue/pull request能够让项目管理者清晰地理解并接受该补丁?</li>
<li>作为项目主管人如何合理地分配组内各成员的任务?这种情况下独裁管理模式是否更好?</li>
<li>蓝皮书中提出了加强重点开源人才培养、推动开源教育和价值引导的建议,北航在这方面有什么相关举措来培养开源人才吗?</li>
<li>结合我在软工实践中的经验,想提出问题:如何在与项目队友提交的代码合并时快速找到所有的不同之处?</li>
<li>当已有的项目代码很复杂时如何快速度过新手期,理解代码并开展工作?</li>
</ol>
<p><a href="https://blog.csdn.net/Wentingyuya/article/details/126627226?spm=1001.2014.3001.5502">【课程作业】对开源软件开发的疑问_冇_头脑的博客-CSDN博客</a></p>
<ol>
<li>一个开源项目一般需要提供什么说明或资料,以让更多的开发者更方便的了解、加入本项目。</li>
<li>如何能更准确地搜索到感兴趣的、且社区较为活跃的开源项目。</li>
<li>一个项目开发到什么状态的时候适合开源,或者说想要开源的项目最好处于一个什么样的状态。</li>
<li>开源项目维护者如何高效地审查提交的pr。</li>
<li>开发人员的流动会不会造成代码的历史遗留问题,开发者对开源项目具有什么样的责任。</li>
</ol>
<p><a href="https://blog.csdn.net/qq_54065560/article/details/126633918">关于开源的五个问题_maple0826的博客-CSDN博客</a></p>
<ol>
<li>发现该项目吸引作者的一大原因是代码质量,那么在我们创建开源项目或者参与开源项目时,是不是也需要创建或遵守一定的代码规范、文档标准?有没有,类似于开源标准这样的已经创建好的规范标准?</li>
<li>发现即使是Linux社区(可以说是世界上最成功的开源社区之一),在代码审查、测试部分仍然存在资源不足的问题,或者说,贡献者修复bug和审查者审查相应贡献,是一个耗费精力不对等的过程,毕竟要读懂一个人的代码是很困难的,那么现在的开源项目是如何应对这个问题的?是否有一定的贡献要求以降低审查者的压力,如添加规范的注释、贡献者进行一定的测试等?</li>
<li>对于开源项目的维护者来说,其责任无疑是巨大的,那么如果某个项目出现了问题,维护者是否要承担无限责任,还是使用者也要为“开源”二字承担一定风险?</li>
<li>且不论当事人是否真的存在故意提交危险代码,对于这种故意或无意下存在安全隐患的贡献,项目维护者如何辨别呢?如果是依靠自身的技术能力,那么当项目愈发庞大后,对于审查者的能力要求也会相应提高,面对满足要求的审查者稀少的情况,又是如何解决的呢?</li>
<li>对于一个开源项目,其使用的组件等也应该是免费的或遵循相应的开源协议,这要求贡献者有较强的版权意识(或许是这么说),较为了解开源协议,对于MIT、BSD等常见的开源协议,它们主要涉及的是哪些领域?这些协议是否具有法律效力?开源项目拥有者的利益被侵犯(如项目被公司等申请专利),是否能从法律层面维护自身的利益?</li>
</ol>
<p><a href="https://blog.csdn.net/qq_35537753/article/details/126626402">【课程作业】对开源软件开发的疑问_伏罗希洛夫射手的博客-CSDN博客</a></p>
<ol>
<li>在确定自己感兴趣的方向后,有什么好的方式去寻找一个合适自己的开源项目来参与?在这段话中,作者为对数据库和消息队列感兴趣的人提供了两个选择,但我更感兴趣的是有没有这样一个好的寻找手段,能够方便“开源小白”去找到这样的合适自己的开源项目。</li>
<li>作者为对C语言不熟悉的“开源小白”提供了开始的思路,也就是在参与开源项目前可以做的事。我还想知道:这种方法是否可以延伸到其它语言或方向,或者说想要参与到某一开源项目中,有哪些工作是最好能提前做好的?</li>
<li>作者在最初几次pr的时候大部分都没被接受。我对此的疑问是:一般而言代码不被接受是出于什么原因?如果pr被拒项目维护者是否会告知拒绝的理由?以及如何让自己的代码更容易被开源项目接受?</li>
<li>作为开源项目的维护者,如何高效地审查提交的代码?小而美的补丁固然好,但也不总是那么容易得到的,尤其对于一些并不热门的开源项目来说。</li>
<li>协调与引导众多开发者并非易事,我好奇这种工作是否也会体现到开源软件开发的进程中来,或者说开源项目和其它一般项目相比,开发流程的区别主要体现在哪里?</li>
</ol>
<p><a href="https://blog.csdn.net/Nana7mii/article/details/126624628?spm=1001.2014.3001.5501">开源软件概论 第一次作业_Nana7mii的博客-CSDN博客</a></p>
<ol>
<li>关于开源软件的安全性,应该如何保障,当今社区中是否有能够检测漏洞的成熟的机制,使用开源软件是否会带来相应的安全问题</li>
<li>其中,开源正在吞噬软件,为什么在大变局中被认定为“危”,难道“软件吞噬世界,开源吞噬软件”对于中国的软件行业不是一个乐观的局面?这和我的认知有一点差别。我认为开源在吞噬软件这个情形,对于行业应该是一个巨大的变革,但是不至于用“危机”来形容,这是为什么呢,难道软件开源化对于行业会带来什么负面影响么?</li>
<li>关于开源软件,我觉得这种商业上的认定其实是很难判别的。就比如,整个软件如果要拿来商用,那么利益和专利应该归谁所有。如果社区中有贡献者提供了优秀的补丁,甚至于大大改变软件性能的补丁,他们是否享有一定的分享利益的权利。难道说开源软件,真的只是纯纯的“用爱发电”?</li>
<li>关于开源人才的认定,何为开源人才?是指精通开源项目技术栈的人才么?一个优秀的程序员,对他熟悉的领域的开源软件做出贡献,他算不算开源的人才?这里的开源人才亦或者说是全能人才?我们需不需要专门去对于开源方面培养相关人才?我认为开源人才应该首先是某一个领域的人才,然后对于开源项目有着足够的热情和精力去贡献,然后才能变为开源人才。想要留住开源人才,就肯定要想办法留住他们的热情,那么就回到了问题3,我们是否对于贡献者有着一套很好的激励体系。</li>
<li>一个困惑:我自己在上个学期做项目的时候,小组内用git进行版本维护,感觉使用起来效果很好。开源软件同理,感觉也是一个更大的项目,只不过所有人都能参与进来,把自己想要修改和添加的内容上传,经过管理员审核,就能够添加到远程仓库中。但是肯定对于某些行业和产品,是不能够开源的,因为涉及到机密和版权等等。那么是不是开源理论上存在一个上限呢,即存在一个开源软件的范围,在范围之外的产品是无论如何也不能够开源的。如果开源真的如我所想存在一个范围上限,那么当他达到这个上限的时候,还会有新的内容出现么?</li>
</ol>
<p><a href="https://blog.csdn.net/Mirror_and_Smoke/article/details/126626278?spm=1001.2014.3001.5501">我对开源项目的五个问题_Mirror_and_Smoke的博客-CSDN博客</a></p>
<ol>
<li>在开源项目开发时,如果项目的参与者一部分认为一种方法好,另一部分认为另一种方法好,最后对接的部分出现了问题,这就是南辕北辙了。如何确保项目的参与者之间不会存在南辕北辙的情况?</li>
<li>开源项目的参与者的水平、看代码的角度都有差异,由木桶效应,代码的效率受相对低性能部分影响较大。那么开源项目开发时如何保证代码的各项性能优异?</li>
<li>随着目前关于开源的讨论越发强烈,项目开源是否是一个大多数时间更优的选择?</li>
<li>如果开源项目获得了经济效益、名声效益,那么开源项目的收益应该怎么分配?</li>
<li>如果我现在就想投入开源项目开发,但又不是很确定自己的能力能完成哪些部分,作为一个开源项目的参与者,我们应该如何确定自己的工作范围?</li>
</ol>
<p><a href="https://blog.csdn.net/weixin_53962739/article/details/126625819?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22126625819%22%2C%22source%22%3A%22weixin_53962739%22%7D">[开源软件开发导论课程——第一次作业]有关开源软件开发的5个问题_宿舍断网了的博客-CSDN博客</a></p>
<ol>
<li>越贴近底层确实越通用,但是开发成本也越高,这个贴近是怎样的贴近。并且并不是所有轮子都要自己造,在当下各种软件都比较完善,作为一个学生想去参加一个贴近底层的开源项目的入门就变得十分困难,我们应该如何选择自己力所能及的开源项目,或者如何将在学校所学的课程学以致用?</li>
<li>周围的人都说卡脖子,并且将事情描述成只要美国断供,中国的操作系统、航天导航就会瘫痪,在已有得开源代码支持下我认为只是技术倒退一部分,并不是直接瘫痪,就如鸿蒙系统,虽然刚开始几乎全是安卓得代码,但现在通过一句一句地更改,逐步实现国产化。在查找开源代码相关资料后,心中对开源的程度仍是模糊不清。</li>
<li>如何确保安全性?如果用户使用开源代码需要自己检查代码是否有后门,那么开发的时间成本就会很大。</li>
<li>不论是GPL还是LGPL,确实都从一定程度限制了这种问题,但是一个公司的软件如果是闭源的,那么他是否运用了开源社区里的成果也是不能得知的,请问如何有效避免这种行为?</li>
<li>较大的开源项目从外界吸收新鲜血液会不会有效率问题,一个是代码质量可能参差不齐,另一个是项目作者可能无法每一个issue都认真查看。</li>
</ol>
<p><a href="https://blog.csdn.net/weixin_53418400/article/details/126625517?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22126625517%22%2C%22source%22%3A%22weixin_53418400%22%7D">关于开源软件的个人疑问_qingchenn的博客-CSDN博客</a></p>
<ol>
<li>开源软件的知识产权问题应该如何判定,如何保证创作者的著作权?</li>
<li>其他公司利用某开源软件获得了丰厚的利润,作为该开源软件的创作者是否有权利去分享这些利润?</li>
<li>一般开源软件的发展周期是怎么样的?</li>
<li>位于下游的开源创作者如何处理上游软件可能会出现漏洞与问题?</li>
<li>关于开源软件开发,开源社区对于项目代码等的审核是依据的什么标准?</li>
</ol>
<p><a href="https://blog.csdn.net/m0_61820655/article/details/126624101?spm=1001.2014.3001.5502">我对开源软件开发的5个疑问_m0_61820655的博客-CSDN博客</a></p>
<blockquote>
<p>在阅读了2022中国开源发展蓝皮书及网上相关资料后,我对开源软件开发管理有了一个较为初步的了解,但依然存在着一些疑问。</p>
</blockquote>
<ol>
<li>参与开源项目的同志来自各地且互相之间未必熟悉,请问如何保证仅在线上沟通的基础上让开源项目顺利进行,如果有对项目的恶意破坏者或因互相不熟悉缺少沟通而产生的代码冲突应怎样解决或预防?</li>
<li>开源项目是否享有合法的知识产权权益,如果参与的开源项目被非法盗用并商业化或恶意破坏,开源项目参与者能否获得补偿,能通过怎样的手段维护劳动成果?</li>
<li>开源软件项目负责人通过怎样的审核与检验保证代码的正确、健壮性?由于审核任务繁重,开源参与者在提交代码时是否会受到一些限制?</li>
<li>开源项目的参与者除了提升技术外,是否能通过项目得到一些实际的利益和收入?</li>
<li>怎么寻找适合自身技术栈的开源项目,在加入一个开源项目后怎样迅速判断这个项目需要哪些改进,自己的编码应从哪里着手?</li>
</ol>
<p><a href="https://blog.csdn.net/symxl/article/details/126625465?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22126625465%22%2C%22source%22%3A%22symxl%22%7D">Intro-OSSD HW1 关于开源软件的5个问题_symxl的博客-CSDN博客</a></p>
<ol>
<li>常见管理模式有哪些,具体管理原理是怎样的</li>
<li>是否会有筛选困难的问题,如果有,如何处理</li>
<li>如何确保项目本身的安全性以及使用者的安全性</li>
<li>开源开发的主要优势与劣势</li>
<li>开源软件开发者与项目的反馈模式是怎么样的</li>
</ol>
<p><a href="https://blog.csdn.net/a61561444/article/details/126624701?spm=1001.2014.3001.5502">对“开源软件开发”的5个疑问_buaalkn的博客-CSDN博客</a></p>
<ol>
<li>给开源项目提交的代码会通过审核,但审核又是怎样保证所提交代码中一定不会对开源项目产生负面影响?</li>
<li>如果因为所提交的开源代码导致上线的项目出了问题,那这些损失应该由贡献者承担还是这个项目的负责人或是审核员承担?</li>
<li>我理解的开源就是把自己的成果拿出来供大家一起测试和改进,那么对于某些开源软件做出了很大贡献的人,是只是出于爱好,还是能得到一定物质上的奖励?</li>
<li>我作为一个大学生来说,水平还十分欠缺,那么我该如何找到合适自己的开源项目,并通过自己的努力实际的为此做出贡献?</li>
<li>之前在github创建仓库时,发现需要选择开源协议,这些不同的开源协议有什么较大的不同吗?体现在哪方面?</li>
</ol>
<p><a href="https://blog.csdn.net/Levi1022/article/details/126621479?spm=1001.2014.3001.5502">关于开源项目的五个问题_Levi1022的博客-CSDN博客</a></p>
<ol>
<li>项目开源后,别人下载使用进行删改更新或者盗用商业化,最后项目的归属怎么划分,知识产权怎么保护</li>
<li>开源项目能否盈利,既然已经开源,用户可以免费获取源文件并使用,开发者的开发维护成本怎么回收?</li>
<li>企业开源可以提高知名度,带动付费项目收入,而个人开发者开源除了用爱发电又有什么好处?</li>
<li>开源项目的开发模式和非开源项目有何异同?</li>
<li>项目开源很多人可以提供修改、debug、补丁、这些内容的审核和测试该如何高效进行?</li>
</ol>
<p><a href="https://blog.csdn.net/beastttt/article/details/126623767?spm=1001.2014.3001.5502">我对开源软件开发的疑问_喝水小魚的博客-CSDN博客</a></p>
<p>开源软件有什么样的类型,所有的开源软件都是完全免费开源,可以用于教学甚至商业用途吗?</p>
<p>开源领域著名事件:知名开源库Faker.js的作者Marak Squires,选择主动恶意破坏该个项目,并且不仅“删库跑路”、还注入了导致程序死循环的恶意代码,使得全球大量使用该项目的个人与企业都受到了不小的影响,请问开源的发展方向是否包含给开源作者带来合理的利益?</p>
<p>开源软件可能会包含世界各地众多的代码贡献者,请问如何保证代码的正确合理,审核机制是什么样的?</p>
<p>如何使用开源代码,如何检索所需功能的项目,请问如何 快速上手开源代码的利用?</p>
<p>如何对开源项目做出贡献,如何依据自己的能力确定合适的开源项目进行开发?</p>
<p><a href="https://blog.csdn.net/weixin_56332363/article/details/126623623?spm=1001.2014.3001.5502">关于“开源”的问题_半人481的博客-CSDN博客</a></p>
<ol>
<li>如何保证开源项目中的补丁是无害的?对于恶意或无意识的制造漏洞有怎样的判定方法?又如何进一步约束。</li>
<li>开源社区的审查者需要具备什么程度的知识和能力?才能正确审视各种开发者提交的代码。</li>
<li>什么样的开源项目才能在不断地迭代发展中仍具有鲜活的竞争力?哪些类项目或什么情景下的项目更适合开源?</li>
<li>是否有完全致力于开源的工作者?他们是否有日常的收入来源?</li>
<li>新人从哪些开源项目入手比较好?有没有一些有价值的参考教程。</li>
</ol>
<p><a href="https://blog.csdn.net/qq_53739932/article/details/126622649?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22126622649%22%2C%22source%22%3A%22qq_53739932%22%7D">我对开源软件开发管理的五个疑问_Streamin'的博客-CSDN博客</a></p>
<ol>
<li>开源软件是通过怎么样的审核机制来保证软件本身的健康性,避免错误和冗杂代码对软件进行破坏的呢?</li>
<li>在开源软件的开发过程中,应该怎样确定自己的开发方向?</li>
<li>如何查询开源软件的各个开发版本?</li>
<li>开源软件的基础操作教程?还不清楚。</li>
<li>开源软件的使用协议怎么查询?可以用作私人的软件吗?</li>
</ol>
<h3 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h3>
<blockquote>
<p>有关链接
<a href="http://devrel.zoomquiet.top/data/20110617102755/index.html">如何成为一名黑客</a></p>
</blockquote>
<ul>
<li><a href="/220817-flossstyle-0.html">开源生活实录.0.从哪儿知道的?</a></li>
<li><a href="/220817-flossstyle-1.html">开源生活实录.1.LAMP之辉</a></li>
<li><a href="/220820-flossstyle-2.html">开源生活实录.2.GNU之魂</a></li>
<li><a href="/220820-flossstyle-3.html">开源生活实录.3.GTD之始</a></li>
<li>...</li>
<li><a href="https://blog.zhgdg.org/2013-08/hd1-askquestion/">海选文章:1 智慧的提问 ~ GDG Livin ZhuHai Life;-)</a><ul>
<li>PS: 正好 邹欣 老师在题目中给出参考链接中那个图谱, 就是07 年俺在 <a href="https://wiki.woodpecker.org.cn/moin/AskForHelp">AskForHelp - Woodpecker Wiki for CPUG</a> 中发布的.</li>
<li><a href="https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md">提问的智慧 · ryanhanwu/How-To-Ask-Questions-The-Smart-Way · GitHub</a></li>
</ul>
</li>
<li><a href="https://blog.zhgdg.org/2013-12/dm13-ask-problem/">珠的自白:13 不会提问的中国学生 ~ GDG Livin ZhuHai Life;-)</a></li>
<li><a href="https://blog.zhgdg.org/2014-10/dm34-how2ask/">珠的自白:34 如何提问?才对世界有帮助! ~ GDG Livin ZhuHai Life;-)</a></li>
<li><a href="https://doc.101.camp/">蟒营®101.camp 开源网络课程框架</a><ul>
<li><a href="https://blog.101.camp/nc/190711-nc101-self-destruction/">NC0:一个自毁倾向社区的形成 — 蟒营™ 怂怼录</a></li>
</ul>
</li>
</ul>
<h3 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h3>
<ul>
<li>220901 ZQ init.+pub</li>
</ul>开源生活实录.3.GTD之始2022-08-22T22:42:00+08:002022-09-03T16:10:13+08:00ZoomQuiettag:blog.zoomquiet.io,2022-08-22:/220822-flossstyle-3.html<p>MurMur/ FLOSS lifestyle logging+3</p><h2 id="_1">时间知识<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<h3 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h3>
<blockquote>
<p>书接上回</p>
</blockquote>
<ul>
<li><a href="/220817-flossstyle-0.html">开源生活实录.0.从哪儿知道的?</a></li>
<li><a href="/220817-flossstyle-1.html">开源生活实录.1.LAMP之辉</a></li>
<li><a href="/220820-flossstyle-2.html">开源生活实录.2.GNU之魂</a></li>
</ul>
<p>当时能力起点:</p>
<ul>
<li>大厂经历</li>
<li>过程改进经验</li>
<li>开源技术社区构建/运营经历</li>
<li>全栈技能基础</li>
<li>演讲/主持入门</li>
<li>...</li>
</ul>
<h3 id="trace">trace<a class="headerlink" href="#trace" title="Permanent link">¶</a></h3>
<blockquote>
<p>回忆轨迹</p>
</blockquote>
<p>从北京南下珠海, 其实也和社区有关;
上次是通过参与社区项目, 从而无意间通过面试, 获得机会;
这次, 则是通过社区朋友内推, 获得机会;
这位朋友就是 Albert Lee, 当初一起去由阿北面试,
他去了豆瓣成为第5位员工,
俺选择留在 SINA,
没几年, 他先去了 金山,
然后, 推荐了俺, 就又这么混在了一起;</p>
<p>(PS: 在SINA 中和俺 PK 开发相同系统的 清风, 后来也去了豆瓣, 呆的时间更长,
而且成为著名 <code>北京吃喝玩乐组</code> 创始人, 经历丰富到不得不写本书来纪念,
进而变成创业项目冷启动关系社会资源,
当然, 创业启动资金不是豆瓣资金, 而是 BTC 投资成功...)</p>
<p>不过, 来到珠海, 初印象最深的, 不是雷总, 而是中国的人事制度;
参考: <a href="https://du.101.camp/2017-11/untouchable/">虚空间~不可接触之嗯哼 ~ DebugUself with DAMA ;-)</a></p>
<p>入职一年后, 才真正捋清楚自己人事关系, 精密操作将档案艰难调入 金山 的集体户口;
虽然这和日常学习/工作没什么关系,
但是, 想到毕业这么多年, 金山竟然才是第一家正式落户的企业, 很是感觉稳妥,
作事儿, 也就有更加长远的规划;</p>
<p>其中最长远的规划是敢于结婚了,
之前, 在大学里不敢考驾照和宣称不结婚,
其实都是因为看不到未来可能的发展,
感觉自己能自由学习技术, 用手艺养活自己已经不易,
其它的不敢设想;</p>
<p>到了珠海, 金山软件, 一切好象都可以想象了;
结果, 头一年, 9月到岗, 当年 金山春节联欢晚会 总导演就注意到俺的活跃,
然后硬件就怀孕结婚,
给一众亲戚吓的...</p>
<p>不过, 工作/生活 稳定后, 社区也更加丰富;</p>
<p>原有计划只是将 ZPUG/珠三角Python用户组 带起来;
参考: <a href="https://wiki.woodpecker.org.cn/moin/ZPyUG">ZPyUG - Woodpecker Wiki for CPUG</a></p>
<p>原本计划每个月组织一次,
后来发现珠三角地区各城市文化不相同,
那时去广州还得走长途汽车, 远程协商成本也高,
就变成不定期进行;</p>
<p>意外发现, 原先上海 ZCUG 创始人老潘也南下广州, 这下就有了熟人;
接着, 因为场地原因, 联系上 刘鑫 老师, 借用所在北大青鸟教室举行了两次 ZPUG 会课,
就把人给推荐到自己部门里, 彻底变成全职 <strong>Pythoneer</strong> 了 ;-)</p>
<p>当然, 在金山软件中, 也是大力使用开源技术,
比如, 给研发团队提供的项目管理平台, 就是基于 Trac 系统来定制的,
自然也给各技术部门作过宣传,
同时也根据 XP/极限编程 思想, 率先在部门进行站立会议等等制度;</p>
<p>也就引起 <code>式伟办公室</code> 的关注, 进而发现刚刚成立的 ECUG/Eerlang China User Group,
也就是后来创立 <strong>7牛</strong> 的许式伟,
刚刚成立的金山研究室, 当时在探索云存储产品,
发现, 想建立大规模分布式系统, 当前世界上只有 Erlang 语言可以轻易作到,
带领部门一起探索时, 也就顺便创建了社区,
俺又有长期技术社区组织经验, 也就自然加入, 帮忙筹办当年叫 <code>Erlounge</code> 的年会;</p>
<p>前几期大会官网, 其实是用俺推荐的 t2t/<a href="https://txt2tags.org/">txt2tags</a> 来快速撰写和发布的;</p>
<p>后来流行起来, 变成主流的 Markdown, 其实只是结构化文本中一个方案,
在 md 出现之前, 早已有很多优秀的方案在推行,
比如: <strong>reStructuredText</strong>/新结构化文本, Python 领域各种项目文档, 就是使用基于 rst 的 Shpinx 文档工具进行的;</p>
<p>俺知道 rST 是因为在查 Django 文档时,
注意到 寻求静态化网站工具时, 发现 <strong>rtfd</strong>/<a href="https://readthedocs.org/">Read the Docs</a> 文档服务,
是很多开源项目官方文档托管平台,
进而发现 <a href="https://www.sphinx-doc.org/en/master/">Sphinx documentation</a>工具,
进一步知道 <strong>reStructuredText</strong>,
对比之前 MoinMoin 中内置的简易结构化文本,
感觉 rST 更加强大, 也更加复杂, 可平时用以快速记录/发布的,
并不需要 rST 以 LaTex 为对标, 可以直接编译出精美图书这种能力,
所以, 才开始有目的的探寻这种工具是什么类型, 是否有其它更加简单的?</p>
<p>根据08年找到的一篇综述:
<a href="http://floss.zoomquiet.top/data/20080709233551/index.html">文档工具 · Osmond.CN</a></p>
<p>知道标签文本和结构化文本的差异,
也发现了 AsciiDoc/textile/Markdown/txt2tags/..
其中, txt2tags 是位巴西小哥创建的,
和其它结构化文本相比, t2t(txt2tags的缩写), 可以用一种格式, 自由输出到其它多种格式文本,
感觉很占便宜, 就先学习使用起来,
进而尝试使用在所有场合;</p>
<p>比如私人 blog,
就选择了 <a href="https://pyblosxom.github.io/">PyBlosxom - THE Python-Based Flatfile Blog Engine</a>
因为这是唯一解析 t2t 又是用 Python 开发的静态网站引擎;</p>
<p><a href="https://org.zoomquiet.io/pyblosxom/category-index.html">Zoom.Quiet's PyBlosxom blogging</a></p>
<ul>
<li>早年统一使用 zoomquiet.org 来发布</li>
<li>后来 13年参加 Google I/O 大会时, 发现 Google 域名服务提前发布 .io 域名, 就迁移到 zoomquiet.io 了</li>
<li>t2t 虽然好, 但是, 世界大势已经是 .md 为主,</li>
<li>也就将引擎迁移为 <a href="https://getpelican.com/">Pelican</a></li>
</ul>
<p>类似这种出于自身需求, 不断探索/学习/贡献/...而自然进入的社区有很多;</p>
<p>比如:</p>
<ul>
<li>t2t 是贡献了简体文档翻译, 而列在官网 <a href="https://txt2tags.org/team/index.html">txt2tags team</a></li>
<li>探索个人桌面维基时, 找到了 TiddlyWiki, 也翻译了其中一个版本的简体界面翻译<ul>
<li>虽然没有列在官网</li>
<li>却因为对 TiddlyWiki 熟悉, 从而成为 OpenResty 早期文档维护者之一</li>
<li>进而和春哥熟悉, 进一步无意中将 锤子科技和 OpenResty 关联起来, 促成锤子第二次发布会门票捐助给了 OpenResty</li>
<li>又因为这事儿, 又和负责对接此事儿的 iOpenResty 社区创始人 温铭 熟悉</li>
<li>进一步参与了 APISIX 的创业, 社区宣传...</li>
</ul>
</li>
<li>从 Erlang 到参与 ECUG 大会筹办<ul>
<li>从而认识 许式伟, 进而现在很多社区媒体资料, 都以社区联盟的方式, 免费使用 7牛 CDN 服务</li>
<li>后来 老许 发现 Erlang 实在太另类, 自行创建 CErl 语言,但是, 完成之时, 发现和 Golang 基本一致</li>
<li>于是义无反顾的投入 Golang 怀抱,并以 0.9 版本就完成了 7牛核心业务代码</li>
<li>只是此时 ECUG Con. 已经办了5届不好改名, 于是建议, 修改定义就好<ul>
<li>从 Elrang China User Group</li>
<li>变为 Effective Cloud User Group/ 实效云用户组</li>
<li>缩写不变, 含义更加广泛, 完成兼容升级 ;-)</li>
</ul>
</li>
</ul>
</li>
<li>又从 Erlang 知道了函式语言这个全新领域, 顺着社区相相互链接, 接连学习探索了<ul>
<li>Lisp ~ 所有开发语言之祖</li>
<li>Haskell ~ 学术型函式语言</li>
<li>Scheme ~ 入门级函式语言</li>
<li>Clojure ~ 运行在 JVM 上的函式语言</li>
<li>Elixir ~ Erlang 的现代化语言</li>
<li>...一路上也分别在各个对应社区中认识了不少中国工程师</li>
</ul>
</li>
</ul>
<p>其实, 开源世界, 也并不只有技术,
进入金山是受命创立 <code>过程改进中心</code>,
从原先纯粹的工程师, 变成部门 leader 琐事增多,
同时又成家, 育儿;
等于是事业/爱好/家庭综合在一起,
又都得高效完成;</p>
<p>开始对时间管理上心, 进一步发现 <strong>GTD</strong>/"Get Things Done" 思想,
以及工具, 发现, 这也有对应推广社区;
从中, 认识了 陈一斌 , 那时他还在上学, 后来入职 iFanr 也变成全新咨询/投资社区的新入口;</p>
<p>特别是09年, 负责对接 <strong>2009年哲思自由软件峰会</strong>,
又一次见到 RMS 活人, 看到这个大胡子纯粹又快乐的状态,很是羡慕;</p>
<p>(现场录音:
<a href="http://0.zoomquiet.top/zeuux/091017-pm-summit-REC013-RMS.ogg">091017-pm-summit-REC013-RMS.ogg</a>
)</p>
<p>当时给列席的广东省有关领导的开幕辞, 是这么写的:</p>
<blockquote>
<p>RMS 被全球程序员尊称为自由软件教皇,因为是他在 1984年独自发起 GNU运动,通过精心设计的GPL软件许可证体系,巧妙的利用版权法,定义出了能够永久保卫软件以下四个自由度的完整的哲学/法律/技术世界:</p>
</blockquote>
<ol>
<li>出于任何目的,运行软件的自由。</li>
<li>学习软件如何工作,以及为了满足自己的需要修改软件的自由。(显然,这个自由度的前提是能够访问软件的源代码)</li>
<li>为了帮助你的邻居,将软件拷贝给他的自由。</li>
<li>为了能够让整个社团受益,公开发行改进之后的软件的自由。(显然,这个自由度的前提是能够访问软件的源代码)</li>
</ol>
<blockquote>
<p>到今天,自由软件经历26年的发展,已经几乎涵盖所有的IT技术领域,从操作系统、编译器、到数据库、中间件、应用服务器、计算机语言、超级计算机、嵌入式系统等等;当下的热门技术和理念,比如:云计算、SaaS、Android系统、Chrome OS、开放源代码等等,也都与自由软件有着千丝万缕的联系; 由于自由软件通过精心设计的法律许可证,确保了开发者和用户同时都拥有运行、学习、修改和发行软件四种全方位的自由;从而保证了自由软件无限发展的可能性;近年兴起的开源运动在自由软件基础之上,创造性的弱化了"发行软件"的自由要求后,以一种开发/经营模式的姿态,快速抢占了不少专有软件的商业市场, 同时也保有了自由软件社区的活力;</p>
<p>中国在IT领域先天落后于国外一个时代,我们要想多/快/好/省的发展高新技术产业,就必须充分利用自由软件的巨量技术积累,学习开源运动的经营模式,利用法律和社区的力量来保卫我们的创新成果!而要想作到以上几点,首先就得深入理解自由软件本身;</p>
<p>在这一软件由自由软件引发的软件革命浪潮中, GNU/Linux 是最炫丽的明星,通过 Linux 内核包装了几千种自由以及商业软件形成了一大批各有特色的发行版,以其高度的可定制性,可扩展性,以及可适应性,快速进入了几乎所有行业;近年Top 500超级计算机排名中,大部分安装的都是定制后的 GNU/Linux 操作系统,已经很说明问题了;由于 GNU/Linux 是以一种松散的社区组织形式进行开发的,而各种发行版又是各个厂商自行组织力量进行集成和发行的,这其中有比较复杂的技术/以及法律问题; 要借力 GNU/Linux 的技术优势快速发展我们自己的产业, 就得深入GNU/Linux 的世界,理解其发源,发展,社区生态;</p>
<p>正是在丰富的使用GPL许可证发行的自由软件帮助下,互联网产业才得以发展起来,因为广大开发/运营商,可以免费使用高质量的自由软件来开发/发布/运营各种类型的网站/网络服务;</p>
<p>当前所有发展中国家都在积极组织和支持自由软件社区/企业,因为只有这样才可能绕过发达国家积累的软件技术壁垒,通过和全球自由软件开发者联合,共同分享知识/技术,在自由软件基础上发展吻合国情的软件产业,才是发达国家软件厂商无法压制的发展模式;</p>
</blockquote>
<p>结合反复看的著名文章: <a href="http://devrel.zoomquiet.top/data/20110617102755/index.html">如何成为一名黑客</a>
其实, 也就明白了自己值得积累的方向,
作为一名合格的 hacker 可以在社区中有以下贡献:</p>
<ul>
<li>撰写代码</li>
<li>编写测试</li>
<li>组织文档</li>
<li>帮忙运营</li>
<li>宣传布道</li>
</ul>
<p>自己性格比较喜新厌旧, 不过写作/沟通/组织/...还算有热情,
那么, 作为社区经理/布道师, 还是足以担当的;</p>
<p>当然, 那时, 还没有 Evangelist/布道师, 社区经理 概念,
但是, 不影响自己开始下意识的向这个方向努力...</p>
<h3 id="summary">summary<a class="headerlink" href="#summary" title="Permanent link">¶</a></h3>
<blockquote>
<p>小结</p>
</blockquote>
<p>刚刚到珠海,可以说叕是一个全新开始,
也可以说, 只是一次空间变化;</p>
<p>开源技术社区, 随着参与的时间积累, 越来越多社区通过原先认识的人物, 产生了关联,
自己业余时间需要选入的社区也越来越多;</p>
<ul>
<li>ZPUG ~ Python 技术推广社区</li>
<li>ECUG ~ Erlang 技术推广社区<ul>
<li>后来孵化出: <a href="https://github.com/ZoomQuiet/erlbattle">恶狼战役/erlbattle</a> AI 对战游戏社区</li>
</ul>
</li>
<li>ZEUUX ~ 自由软件推广社区</li>
<li>FDD/自由软件日 ~ Ubuntu 等自由软件推广社区, 每年尽力参与大学城中的活动, 现场分享 Python 等故事</li>
<li>SLL/教育大发现社区 ~ 作为顾问参与各种活动/项目发起和设计</li>
<li>Leo ~ 文学化编辑器, 作为长期老用户, 一直在分享各种系统中安装使用经验给作者</li>
<li>Techparty ~ 珠三角技术沙龙, 09年创立, ZPUG 合并进入, 变成珠海主持人</li>
<li>...</li>
</ul>
<p>如何合理安排, 即便是使用 GTD 等等工具, 也慢慢发现, 一个人其实, 真的不可能全部全情投入,
怎么办?</p>
<p>是的, 发挥组织的力量, 让社区可以自行发展才是正确的...</p>
<p><img alt="map-think" src="http://0.zoomquiet.top/ZQCollection/map/zqbook-map-think.png"/></p>
<p>这是到09年, 因为社区触发的各种城市/工具/事件/...图谱</p>
<h3 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h3>
<blockquote>
<p>有关链接</p>
</blockquote>
<ul>
<li><a href="https://github.com/albertlee">albertlee (Albert Lee)</a></li>
<li><a href="https://du.101.camp/2017-11/untouchable/">虚空间~不可接触之嗯哼 ~ DebugUself with DAMA ;-)</a></li>
<li><a href="https://wiki.woodpecker.org.cn/moin/ZPyUG">ZPyUG - Woodpecker Wiki for CPUG</a></li>
<li><a href="https://code.google.com/archive/p/ecug/wikis/ChinaErloungeII.wiki">ecug - ChinaErloungeII.</a><ul>
<li><a href="https://code.google.com/archive/p/ecug/wikis/ChinaErloungeII.wiki">Google Code Archive - ecug - ChinaErloungeII.wiki.</a></li>
</ul>
</li>
<li><a href="https://txt2tags.org/">txt2tags</a><ul>
<li><a href="https://txt2tags.org/team/index.html">txt2tags team</a></li>
<li><a href="https://pyblosxom.github.io/">PyBlosxom - THE Python-Based Flatfile Blog Engine</a></li>
</ul>
</li>
<li><a href="https://readthedocs.org/">首页 | Read the Docs</a></li>
<li><a href="https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#tables">reStructuredText — Sphinx documentation</a></li>
<li><a href="https://getpelican.com/">Pelican – A Python Static Site Generator</a></li>
<li><a href="https://tiddlywiki.com/">TiddlyWiki — a non-linear personal web notebook</a></li>
<li><a href="https://openresty.org/cn/">OpenResty® - 中文官方站</a><ul>
<li><a href="https://apisix.apache.org/zh/">Apache APISIX® -- Cloud-Native API Gateway</a></li>
</ul>
</li>
<li><a href="https://www.ifanr.com/author/yibie">陈一斌 | 爱范儿</a></li>
<li><a href="http://www.zeuux.com/event/content/60/photo/">2009年哲思自由软件峰会-珠海站-金山公司 - 哲思</a><ul>
<li><a href="http://devrel.zoomquiet.top/data/20110617102755/index.html">如何成为一名黑客</a></li>
</ul>
</li>
</ul>
<h3 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h3>
<p>下一篇: <a href="/220903-flossstyle-4.html">开源生活实录.4.PKM到EKM</a></p>
<ul>
<li>220828 ZQ 发布</li>
<li>220822 ZQ 增补</li>
<li>220819 ZQ init.</li>
</ul>开源生活实录.2.GNU之魂2022-08-20T21:42:00+08:002022-08-22T21:19:26+08:00ZoomQuiettag:blog.zoomquiet.io,2022-08-20:/220820-flossstyle-2.html<p>MurMur/ FLOSS lifestyle logging+2</p><h2 id="_1">帝都升级<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<h3 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h3>
<blockquote>
<p>书接上回</p>
</blockquote>
<ul>
<li><a href="/220817-flossstyle-0.html">开源生活实录.0.从哪儿知道的?</a></li>
<li><a href="/220817-flossstyle-1.html">开源生活实录.1.LAMP之辉</a></li>
</ul>
<p>从上海到北京, 是完全意外的转进,
算是参与技术社区的福利, 通过学习产生问题,
通过提问认识高人, 又通过项目证明自己能力,
从而获得机会入职更高平台...</p>
<p>当时能力起点:</p>
<ul>
<li>HTML/CSS/Javascript 中级, 能完成简单组件, 安装复杂末年</li>
<li>LAMP 组合技术初级, 知道如何从无到有完成一个简单 CMS 系统</li>
<li>个人项目管理中级, 能自主持续完成一个工程从探索到交付全过程</li>
<li>Python 初级, 少量工具脚本经验</li>
<li>Office 高级, Word 系列用了不下5个版本, 各种排版技能都摸过</li>
<li>Lisp/Haskell/Smalltalk/.. 仅仅知道属于不同范式的开发语言</li>
<li>...</li>
</ul>
<h3 id="trace">trace<a class="headerlink" href="#trace" title="Permanent link">¶</a></h3>
<blockquote>
<p>回忆轨迹</p>
</blockquote>
<p>离开上海印象最深的, 不是和各种社会关系告别, 而是:</p>
<div class="highlight"><pre><span></span><code>信用卡的钱, 不还清是会算利息的...
</code></pre></div>
<p>有了信用卡后, 根据短信通知, 每个月只还最低还款额,
感觉占了便宜, 结果想清帐离开时, 才告之要还清以往所有欠款,
结果导致人到北京时, 身上只有2千元, 只好先借住中学同学家;</p>
<p>事实证明, 不经过社会毒打光靠自学, 很难高速成长的哈...</p>
<p>SINA 毕竟是大公司, 制度比较完备, 虽然没有食堂, 但是, 工资比上海高,
那时北京消费还没现在这么神奇, 稳定下来后, 生活节奏也就恢复成类似上海的;</p>
<p>原先老同学家在机场附近, SINA 大厦在北四环西,
每天早上能开车送到北四环东, 晚上打车要40多, 公交只到22:00, 还得转车, 要一个多小时,
开始两个月很累, 后来部门经理所在滑雪论坛中认识一位姐姐, 出租自己单位分的单身房,
就在国安家属小区, 距离 SINA 大厦, 自行车就一刻钟, 还有食堂...</p>
<p>于是, 基本上:</p>
<ul>
<li>工作日, 7点半起床, 8点左右到公司<ul>
<li>6点班后, 在周边吃点儿</li>
<li>新闻联播开始时, 回到桌前开始折腾</li>
<li>23:00 左右回到宿舍, 刷点美剧就睡</li>
</ul>
</li>
<li>周末, 10点起床, 11点左右到公司<ul>
<li>磨蹭一会就到午饭时间了</li>
<li>吃好, 回到桌前开始折腾</li>
<li>23:00 左右回到宿舍, 刷点美剧就睡</li>
</ul>
</li>
</ul>
<p>当然, 开始参与社区管理后, 周末一般都花在社区活动/组织/参与/...之上了;</p>
<p>招募俺的 HD 直属领导是 <code>"波仔"</code>, 海归派, 对 FLOSS/自由,开源软件很理解,
对 HD 通过深刻定制 FreeBSD 系统来提高单机容易, 降低整体成本很支持,
而 HD 又是啄木鸟Python技术社区创始人, 手下一批小伙伴也是通过各种技术社区挖来的,
当时 邮件技术部 可能是 SINA 内部最 geek 的部门;</p>
<p>因为技术不够, 所以, 被分配到过程改进小组, 负责整理开发过程, 配套流程支持系统,
逐步提高开发效能(放到今天, 可以认为是 "内源"管理委员会类似组织);</p>
<p>前后除了整理一系列开发规范并监察执行之外:</p>
<ul>
<li>用 PHP 开发了 CVSHelper ~ CVS 仓库助手, 并因此获得年度新人奖</li>
<li>用 Python/CherryPy 框架, 开发 Frog/研发任务管理 原型, 败给 <code>清风</code> 同时用 JAVA 开发的版本, 因为他选择的一组框架(Hibernate全家桶)都很完备,有企业级应用先例</li>
<li>在 moinmoin 基础上, 开发了一系列小插件, 将普通 wiki 系统, 拓展为包含 BBS/看板/...各种能力的CMS平台<ul>
<li>具体可参考公开分享</li>
<li>幻灯: <a href="http://s5.zoomquiet.top/050703-MoinMoin/index.html">Wiki 与 MoinMoin 导览</a></li>
</ul>
</li>
<li>启动 SEO 工程, 用 Python 对每天日志进行可视化数据图表生成</li>
<li>...</li>
</ul>
<p>不过, 最大的转变应该是从开源资源单向受益者变成了,有意识的主动贡献者;</p>
<p>其中最大的拐点是发生在一次文档探查中:</p>
<ul>
<li>需要整理软件系统上线详细流程, 发现一篇 FreeBSD 社区的发布工程说明书, 大为震惊, 这简直太完备了</li>
<li>进一步探查, 才发现 FreeBSD 的 UNIX 文化源头有个意外分支: GNU 精神</li>
<li>然后就看到了 <a href="https://www.gnu.org/philosophy/philosophy.html">GNU 工程的哲学 - GNU 工程 - 自由软件基金会</a></li>
<li>当然, 当年并没有中文版本, 但是, GNU 的定义漫画是看的懂的:<ul>
<li>GNU ~> GNU is Not UNIX</li>
<li>唉? 这么淘气的嘛? 在一个术语的解释中包含自身, 导致这将是一个永远循环的解释进程</li>
</ul>
</li>
<li>接着看完一系列 GPL 扫盲文档, 可以说, 瞬间变成了 <code>自由软件原教旨主义者</code></li>
</ul>
<p>对自己以往 "我自豪, 我用盗版" 的行为深沉懊悔...
开始行动:</p>
<ul>
<li>业余时间, 慢慢将所有在 Windows NT 中使用的日常软件都切换为跨平台开源软件, 比如:<ul>
<li>浏览器 -> FireFox</li>
<li>编辑器 -> Leo</li>
<li>资源管理器 -> muCommander</li>
<li>...</li>
</ul>
</li>
<li>结果发现 <a href="http://cathayan.org/equivalentsoft-zh-cn.html">Windows软件在Linux上的等价/替代/模仿软件列表. (Official site of the table)</a><ul>
<li>进而关注到 <a href="http://blog.cathayan.org/item/2356">cathayan/Blog on 27th Floor</a></li>
<li>又通过文章知道了 <a href="https://blog.youxu.info/2008/09/10/gtd-by-cli/">完全用命令行工作</a></li>
<li>对应工具探索时又挖掘到: <a href="http://woodpecker.up.zoomquiet.top/graspOnline/learn.tsinghua.edu.cn/homepage/2001315450/idx.html">王珢</a></li>
<li>...</li>
</ul>
</li>
</ul>
<p>哗, 世界一下子以非凡的线索打开;
以往收集这种关键网页的办法是利用 IE 专用集成网页格式 .mht,
但是, 本地目录形式管理越来越多的网页并不友好, 何况还得使用专用浏览器打开;
这个问题后来想用书签来解决, 可发现, 网站并不永久存在,
很多没多久就消失在互联网中;</p>
<p>所以, 挖掘 FireFox 的插件, 最终定位到一款神奇的作品: ScrapBook ,
可以将网页抓取到本地, 并在浏览器内部构建一个树形目录, 以便随时查阅;</p>
<p>进一步发现, 抓取到本地的网页其实就是一个个的目录, 每个目录的 index.html 就是原先网页,其它则是网页对应在线资源,
也就是说 Scrapbook 基于浏览器原有功能, 完成网页内容解析并排版后,
将其所有资源保存到本地, 并对应修改所有链接为本地相对路径, 从而可以近乎 100% 的从本地还原网页内容,
而不用每次都依赖网络来下载;</p>
<p>于是用 Python 编写了转换脚本, 将 Scrapbook 本地形成的索引数据(就是 XML, 巧了这不熟悉嘛)转换为标准 html 索引页,
然后, 就可以共享到自己的网站中了:</p>
<p>经过几次迭代后变成这样:</p>
<p><img alt="scrapbook" src="https://ipic.zoomquiet.top/2022-08-21-scrapbook-pub-zoomquiet.jpg"/></p>
<p>这样就可以将自己收集到的认为靠谱的网页原始资料随时共享出来;</p>
<p>没想到这一行为, 触发了首次互联网侵权事件:</p>
<ul>
<li>因为平时工作要和其它部门沟通</li>
<li>为了在家无法访问公司内网时, 也可以查询到对应分机, 就将内部通讯录给 Scrapbook 了</li>
<li>结果,被有心人看到, 针对性电话广告进来, 安全部门追查, 才发布是从我的私人网站泄漏的</li>
<li>立即责令删除, 这才发现, 互联网并不都是开放/友好的, </li>
<li>从此对内外资料有了个自学分离习惯</li>
</ul>
<p>北京, 毕竟是中国互联网中心, 各种资源/大会/社区一直很多, 但是, 以往并没感觉自己有机会可以进入;</p>
<p>改变是从创立 <a href="https://wiki.woodpecker.org.cn/moin/CPUG">CPUG</a> 开始的,
之前说过, HD 创立的 啄木鸟 Python 技术社区, 是以他私人注册的 woodpecker.org.cn 域名为核心建立起来的,
但是, 毕竟 HD 又担当 SINA 关键部门主管, 平时并没有太多时间参与社区活动,
确立周末利用 SINA 顶层会议室, 来进行线下技术分享活动的主要形式后,
基本上都是俺来定期组织,
几次后, 大家感觉 <code>啄木鸟</code> 这个名字和 Python 关联不大,
就提议学习 BLUG/北京 Linux 用户组, 创立专门社区, 来组织大家学习/实践/推广 Python 技术;</p>
<p>是的, 这个提议人, 就是赞助邮件列表服务的 exoweb.com 公司成员,
这家公司是外国人创立的, 创始人 <code>白熊</code> , 同时也是 BLUG 创始人,
后来在各种全球技术活动中, 都不时能见到这位 <code>白熊</code> 同志;</p>
<p>2005.7.30 <a href="https://wiki.woodpecker.org.cn/moin/BPUG/2005-07-30">CPUG及BPUG 成立大会</a>
之后, 相继也成立了其它城市的 <code>*PUG</code> 社区,
不过, 只有北京的用户组, 可以维持每个月举行一次线下 <code>会课</code>(会议+课程) 活动;
在京期间, 俺前后组织了40+期会课,
以此为线索串联起来各种社区软件/作品/活动/人物;</p>
<p>比如: <a href="https://wiki.woodpecker.org.cn/moin/BPUG/2006-03-26">CPUG第六次.豆瓣发展现状</a>
就是阿北对豆瓣的一次宣传,
也正是之前 05年9月, 一次会课中,大家才知道这个网站是全栈 Python 技术开发的,
立即注册体验, 几乎可以说豆瓣在中国的线下正式发布就是在 BPUG 会课中;
所以, 大家的 豆瓣ID 都很靠谱前;
比如, 俺就是总第30位注册豆瓣的成员, 可以从豆瓣帐号头像的 ID 序号证明:
https://img9.doubanio.com/icon/ul1000030-2.jpg</p>
<p>又比如, Python 核心编程第2版, 骗书事件:</p>
<ul>
<li><a href="http://devrel.zoomquiet.top/data/20080704230201/index.html">《Python 核心编程》应属于社区翻译 - Nicholas_Ding - JavaEye技术网站</a></li>
<li>就是 宋吉广 参与会课期间提出社区翻译出版 Python 技术图书</li>
<li>但是, 完成后, 归为自己的翻译作品</li>
</ul>
<p>当时因为举证困难, 咨询相关法律人士后, 不得不放弃上述;
但是, 过程中形成的在线图书协作流程/工具链/经验,
倒是变成社区知识,
进一步转化为后来其它原创图书,
比如: <a href="https://book.douban.com/subject/3884108/">可爱的Python (2009)</a>
图书工程在: <a href="https://wiki.woodpecker.org.cn/moin/ObpLovelyPython">ObpLovelyPython - Woodpecker Wiki for CPUG</a></p>
<p>还有: <a href="https://wiki.woodpecker.org.cn/moin/BPUG/2005-11-18">CPUG第四次 北京师范会课</a>
就是通过会课, 吸引来进行互联网成人教育研究的 庄秀丽 老师,
进而受邀去分享:</p>
<ul>
<li>幻灯: <a href="http://woodpecker.up.zoomquiet.top/classes/0511-FreedomDiscuss/FreedomCPUG/s5.html">漫谈自由与开源+啄木鸟开源社区介绍</a></li>
<li>录音: <a href="http://org.up.zoomquiet.top/ztapes/wav4zoomq/051120-FreedomDiscuss.mp3">051120-FreedomDiscuss.mp3</a></li>
</ul>
<p>又通过 庄秀丽 知道 毛向辉/Issca Mao, 主办的 CBC/中国Blog大会, 接触到开放内容/网络思想,
也进行过网络会议讨论,</p>
<p>比如, <a href="http://woodpecker.up.zoomquiet.top/classes/WeKnow-050226-Isaac.mp3">WeKnow-050226-Isaac</a>,
进而后来作为社区顾问, 帮助庄老师建立 教育大发现社区/sociallearnlab.org ;</p>
<p>又从 Issac Mao 认识 <code>Keso</code> 大叔, 以及他在自己家定期举行的 5g 沙龙:
(因为地点固定在 现代远大园B区8-5g 房, 所以, 命名5g, 不是通讯协议的5g)</p>
<p><img alt="060315bj5gparty" src="https://ipic.zoomquiet.top/2022-08-21-060315bj5gparty.jpg"/></p>
<ul>
<li>用高端 DC 抓拍的, 就是 keso</li>
<li>PS: 背对镜头, 一头油发的, 是霍矩</li>
<li>PPS: 在沙龙中, 认识 <code>叶子</code> , 参与首次开源数字杂志的创办<ul>
<li>或是说众筹, 出200元认了半页版面</li>
<li>内容就是自己的ID 解析图谱</li>
<li>大图查阅 <a href="http://0.zoomquiet.top/CPyUG/zoomquiet-design-collection/2006-0627-50ren-ZoomQuiet.600dpi.png">2006-0627-50ren-ZoomQuiet.600dpi.png</a></li>
</ul>
</li>
</ul>
<p>还有从会课中知道的 Ubuntu 6.10 release party
<img alt="release" src="https://ipic.zoomquiet.top/2022-08-21-061103UBUNTU-release-party.jpg"/>
(2006.11.2 中科院自动化研究所, 举行)</p>
<p>当然, 少不了见活老爹:
<img alt="guido" src="https://ipic.zoomquiet.top/2022-08-21-2007GDD-guido.jpg"/></p>
<p>2007 年, GDD/Google Develop Day 北京场, 首次见到老爹, </p>
<p><img alt="guido" src="https://ipic.zoomquiet.top/2022-08-21-070601GDD-guido.jpg"/>
(当然, 是有合影的, 猜猜哪位是 大妈?</p>
<p>PS: CPUG logo 左边前排, 就是 <code>Limodou</code>)</p>
<p>当然, 最激动的, 还是见到 RMS 本尊:
<a href="https://ipic.zoomquiet.top/2019-09-10-080530bj-rms-zeuux.jpg">with RMS</a></p>
<p>进而才知道, 同事 <code>徐继哲/Bill Xu</code> 是资深 GNU 社区成员,
一直负责 RMS 在中国各种活动的对接,
这下, 又一个长期参与的社区又被触发出来, 这就是 <a href="http://www.zeuux.org/">"哲思社区"</a>;
是 <code>徐继哲</code> 创办的自由软件文化宣传社区,
上线时, 俺从 CPUG 社区列表, 导出8000+订阅邮箱, 导入数据,
帮助完成社区的冷启动....</p>
<h3 id="summary">summary<a class="headerlink" href="#summary" title="Permanent link">¶</a></h3>
<blockquote>
<p>小结</p>
</blockquote>
<p>平台真的很重要, 以及进入平台后, 保持学习/积极, 持续进步, 更加重要;</p>
<p>在北京, 基于一份儿稳定的工作, 以及当地丰富的社会资源,
以 FLOSS/自由,开源技术社区成员身份, 慢慢形成三个主要线索:</p>
<ul>
<li>Python 技术推广, CPUG 社区系列</li>
<li>开源社区治理推广, 从 教育大发现社区开始</li>
<li>FLOSS布道师, 从 ZEUUX 社区开始</li>
</ul>
<p>每个方向, 都不断发现新课题/问题/任务/知识/技能/...,
都需要持续实践,
和更多的人联合/协作/共创/...</p>
<p>感觉时间一下子不够用了, 怎么办?</p>
<h3 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h3>
<blockquote>
<p>有关链接</p>
</blockquote>
<ul>
<li><a href="https://cherrypy.dev/">CherryPy — A Minimalist Python Web Framework</a></li>
<li>FreeBSD 发布工程</li>
<li>历史版本: <a href="http://scm.zoomquiet.top/data/20050606105135/index.html">FreeBSD Release Engineering</a></li>
<li>当前版本: <a href="https://docs.freebsd.org/en/articles/releng/#_footnotedef_2">Legacy FreeBSD Release Engineering | FreeBSD Documentation Portal</a></li>
<li><a href="https://www.gnu.org/philosophy/philosophy.html">GNU 工程的哲学 - GNU 工程 - 自由软件基金会</a></li>
<li><a href="https://wiki.woodpecker.org.cn/moin/CPUG">CPUG - Woodpecker Wiki for CPUG</a></li>
<li><a href="http://www.zeuux.org/">"哲思社区"</a><ul>
<li><a href="http://devrel.zoomquiet.top/data/20060921215100/index.html">Bill Xu:Richard Stallman和自由软件运动!</a></li>
<li><a href="http://www.ruanyifeng.com/blog/2010/08/an_apology_to_bill_xu.html">致徐继哲先生的道歉声明 - 阮一峰的网络日志</a></li>
<li><a href="https://blog.101.camp/dm/190914-teestory/">DM9:苦短衫的故事 — 蟒营™ 怂怼录</a></li>
</ul>
</li>
<li><a href="http://woodpecker.up.zoomquiet.top/graspOnline/learn.tsinghua.edu.cn/homepage/2001315450/idx.html">Yin Wang's Homepage</a></li>
<li><a href="https://web.archive.org/web/20041230205624/http://www.isaacmao.com/2004/12/29/">Isaac Mao(毛向辉)</a></li>
<li><a href="https://web.archive.org/web/20190830085640/http://blog.donews.com/keso/">对牛乱弹琴 | Playin' with IT - 洪波的偏见 | keso.me</a></li>
<li><a href="https://leoeditor.com/">Leo's Home Page</a></li>
<li><a href="https://www.mucommander.com/">muCommander - file manager</a></li>
<li><a href="http://www.xuldev.org/scrapbook/">ScrapBook :: Firefox Extension</a><ul>
<li><a href="https://zoomquiet.io/collection.html">ZoomQuiet.io -> collection {by gen4dot2htm.py vv.190718 at:190911 18:13:08,805091}</a></li>
</ul>
</li>
<li><a href="https://read.douban.com/ebook/1499455/?dcs=subject-rec&dcm=douban&dct=3948354">Python源码剖析 - 陈儒 </a></li>
<li><a href="https://book.douban.com/subject/3884108/">可爱的Python (ZEUUX)</a><ul>
<li><a href="https://www.douban.com/people/1001560/?_i=10890128V3HIHB">清风₿Ξ</a></li>
</ul>
</li>
<li><a href="http://fe.bnu.edu.cn/pc/cms1info/resume/50/116">庄秀丽 硕士生导师</a><ul>
<li><a href="https://sites.google.com/site/bioteahouse/memberpage/liubaofei/xue-xi-bi-ji/jiao-yu-da-fa-xian-she-qu-jiao-yan-huan-jing-can-kao-fang-an">教育大发现社区教研环境参考方案 - 生物教学茶吧</a></li>
<li>...</li>
</ul>
</li>
</ul>
<h3 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h3>
<p>下一篇: <a href="/220822-flossstyle-3.html">开源生活实录.3.GTD之始</a></p>
<ul>
<li>220820 ZQ 发布</li>
<li>220819 ZQ init.</li>
</ul>开源生活实录.1.LAMP之辉2022-08-19T18:42:00+08:002022-08-21T22:42:44+08:00ZoomQuiettag:blog.zoomquiet.io,2022-08-19:/220817-flossstyle-1.html<p>MurMur/ FLOSS lifestyle logging+1</p><h2 id="_1">魔都打怪<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<h3 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h3>
<blockquote>
<p>书接上回</p>
</blockquote>
<p><a href="/220817-flossstyle-0.html">开源生活实录.0.从哪儿知道的?</a></p>
<p>从常州切换回软件行业,
在老同学推荐下, 面试成功, 转战上海,</p>
<p>当时能力:</p>
<ul>
<li>HTML/CSS 初级能手写/工具 完成静态网页</li>
<li>Flash 中级, 能组合图元响应点击或是其它数据完成动画网站</li>
<li>ASP 中级, 能在 ISS 环境中接入 SQL Server 构建基础动态网站</li>
<li>项目管理初级, 知道用 Dreamweaver 内置组件功能, 将网络元素标准化, 在小组内部共享</li>
<li>JAVA/Delhpi/Pascal/C/C++/...都是知道, 不会具体使用</li>
</ul>
<h3 id="trace">trace<a class="headerlink" href="#trace" title="Permanent link">¶</a></h3>
<blockquote>
<p>回忆轨迹</p>
</blockquote>
<p>有位同班同学, 毕业就准备结婚, 老婆是上海人, 第一时间进入上海一家软件公司,
很努力, 很快变成经理, 就拉了一把;</p>
<p>虽然祖藉是上海, 但是, 家里亲戚都没什么社会资源,
也就到浦东租房时, 从爷爷那儿扛了架弹簧折叠床, 算是解决了基础问题.</p>
<p>原本是作为前端工程师入职的, 然后, 发现也能作后端开发,
慢慢的也就什么都开始干;</p>
<p>在上海期间, 为公司完成的主要工程应该有:</p>
<ul>
<li>公司核心 ERP 产品的, XSL 皮肤系统</li>
<li>配套上海市交通局, 实时交通状态监察系统, 动态地图前端, 用 Flash 完成, 配合后台提供的 XML 接口</li>
<li>上海市政府党委办公室官网 CMS 系统, Windows NT+Apache+MySQL+PHP</li>
</ul>
<p>其中, 党委官网是手工原创 CMS 系统,
其实, 就是对一套固定栏目的固定格式内容,分别提供对应网页编辑界面,
以便运营人员可以随时更新内容;
并没有后来标准 CMS 系统那么成熟的权限/角色/排版/插件/...子系统;</p>
<p>不过, 为了完成这个任务, 拓展出的 LAMP 技能,
算是真正进入了 FLOSS 世界;</p>
<p>LAMP 就是当年提出最佳建站技术组合的简称:</p>
<ul>
<li><strong>L</strong>inux ~ 一般是 Redhat </li>
<li><strong>A</strong>apache ~ 作为web 服务器</li>
<li><strong>M</strong>ySQL ~ 作为数据库服务</li>
<li><strong>P</strong>HP ~ 作为应用开发</li>
</ul>
<p>因为 ASP 涉及到 微软一系列系统/软件的商业版权要求,
只有政府大项目才用,
一般普通动态应用网站, 基于 <strong>LAMP</strong> 足够,
当然, 后来这种组合也进行了拓展:</p>
<ul>
<li>LAMPs ~ 可以用 Perl/Python/.. 其它语言来开发</li>
<li>LNMP ~ 用 Nginx+Python 组合, 是后来更加习惯的</li>
<li>...</li>
</ul>
<p>知道这个组合概念, 是从 Redhat 光盘开始的,
大学毕业时, 通过 <strong>上网冲浪</strong> (那时对上网探查资料的别称),
知道 Linux 在流行, 但是, 并没什么渠道可以获得能方便安装的版本,
那时, 标准安装是 Slackware 15张2吋软盘进行依次安装, 复杂到不可想象;</p>
<p>毕业时, 和同学合资买了张 Redhat linux 4.2? 光盘,
但是, 并没什么机会安装使用, 最后带到上海,
在公司一台闲置的普通 PC 机上安装成功;
应该只有680M硬盘空间, MMX 芯片,
好在那时也没有什么大型软件可以在 linux 中安装,
配合公司专线上网不用拨号,
用了两个星期才断断续续安装成功;</p>
<p>那时, 宿舍离公司自行车要一小时, 所以, 基本作习是这样的:</p>
<ul>
<li>工作日, 7点起床, 8点左右到公司<ul>
<li>5点半下班后, 在食堂或是周边吃点儿</li>
<li>新闻联播开始时, 回到桌前开始折腾</li>
<li>23:00 左右回到宿舍, 看看其它什么就睡</li>
</ul>
</li>
<li>周末, 10点起床, 11点左右到公司<ul>
<li>磨蹭一会就到午饭时间了</li>
<li>吃好, 回到桌前开始折腾</li>
<li>23:00 左右回到宿舍, 看看其它什么就睡</li>
</ul>
</li>
</ul>
<p>也就是基本上每周有40个小时业余时间投入到 开源技术学习中,
为什么这么积极呢?</p>
<p>因为没有资料, 很多时候要自己先翻译出来官方对应文档, 再尝试,
失败后对应查资料尝试解决;</p>
<p>注意, 那时 Google 和其它搜索引擎刚刚发布, 都没有很好搜索效果;
特别是中文开发资料, 能去交流的只有少数几个技术论坛, BBS 是那时主要交流场景;
IRC + mailling-list, 是关键技术讨论空间;</p>
<p>那时, 还没有足够英文自信, 问技术问题也只敢去中文论坛,
再从中文技术论坛的友情链接找到其它相关的技术论坛...</p>
<p>就象蚂蚁一般一点点儿在互联网迷雾中摸索;</p>
<p>为什么学习 PHP 呢? 其实就是市场需要, 老同学, 接了单, 公司其它人不会,
就教唆俺一起学, 然后就可以独立接单够收入了;</p>
<p>结果, 一入坑, 才发现, 原来并不是一个语言的事儿,
其实, 大家目标都是建立功能站, 而那时, 最有市场的其实就是 Web1.0 时代标准的信息发布站,
讲道理其实, 一个 Wordpress 就足够了,
可惜那时 i18N 技术还不成熟, 想折腾出一个中文化完备, 而且有所有期待功能的企业官网并不那么简单;
类似的还有 Xoop/Drupal/... CMS 应用框架, 都在宣传自己是最灵活的框架;</p>
<p>不过, 在一个半封闭网络环境中, 想快速用软盘从其它机器下载复制过来有关组件再安装/编译,
太难了,
印象中, 因为自己工作内容, 一直和 XML/XSL 打交道,
所以, 先选择 Nucleus CMS 来构建了自己第一个私人网站: zqstudio.org ;
这个 CMS 系统神奇在关键配置/样式, 全使用 XML 来定义和管理;</p>
<p>不过, 那时, 还没有 blog 概念, 有了网站也不知道发布什么内容为好;
只是通过建立个人网站, 算是对 <strong>LAMP</strong> 技术栈完整构建发布一个功能网站有了全面了解;</p>
<p>也因此, 拓展了社会网络:</p>
<ul>
<li>给一家户外运动社团, 帮忙构建了 BBS, 以便发布户外项目消息, 因此有了一定可控主机资源</li>
<li>给一些 cosplay 社团, 帮忙提供摄影, 以及月刊打样服务, 因此认识了一批绘画师, 其中 俪欢 老师现在都有联系</li>
<li>...</li>
</ul>
<p>可以说, 开源技术自主学习,
不仅带来了事业拓展, 也变成了单身青年在大城市中探索的信心;</p>
<p>只是, 那时, 还没有意识到 FLOSS/自由,开源软件文化的威力,
还是一名: "我自豪, 我用盗版软件" 的 <code>白嫖党</code>;</p>
<p>直到遇见 Python...</p>
<p>整体上线索关系是这样的:</p>
<ul>
<li>0: 学PHP, 作网站</li>
<li>1: 知道 CMS 概念, 挖掘出一系列 CMS 系统</li>
<li>2: 然后所有 CMS 系统社区都在歌唱 Plone 才是 CMS 之神</li>
<li>3: 进一步发现 Plone 是基于 Zope 构建的</li>
<li>4: 又经过学习才知道 Zope 是 Python 开发的</li>
<li>5: 那么想用好 Plone 自然得先学会 Python 并掌握 Zope</li>
<li>...</li>
</ul>
<p>当然, 这是事后以上帝视角整理后的逻辑,
当年, 中间也夹杂了各种旁路探索,
比如当时无意中找到的网页: <a href="http://web.archive.org/web/20030205031354/http://cdtzx.51.net/pimage/programs.htm">程序设计语言介绍/2002.6.21</a>
其中介绍的所有语言, 都去尝试学习使用过,
结果只有 Python 和那时自身兴趣有关联, 从而真正上手;</p>
<p>而这个上手过程并不简单,
比如, 记忆中人生第一个可运行的 Python 工具是:</p>
<p>天气预报网络自动抓取工具/getSHwunderground,
简单说是就从 https://www.wunderground.com/ 网站自动抓取上海地区的天气数据,
在 CLI/终端 上整理为中文, 汇报出来;</p>
<p>当时基于 Python 1.5, 在 windows NT 环境中开发,
成体系的建功立业资料, 只有一本:
<a href="https://book.douban.com/subject/3948354/">Python学习手册 (Mark Lutz) 第一版</a>
而且, 人家示例代码都运行在 mac 环境中,
其中要突破的坑, 现在想也就几个,
当年整整用了一个月的业余时间...</p>
<p>过程中, 可能最大的收获是认识了中国 Python 社区中关键的两位人物,</p>
<ul>
<li>Limodou, UliPad/UliWeb 创始人</li>
<li>老潘, CZUG社区/润普公司 创始人</li>
</ul>
<p>就是在 CZUG 吵起来而认识的, 记忆中是个什么事儿呢?
俺在 CZUG 中讨论 Zope/Python 的学习, 感谢 CZUG 提供一个免费社区空间,</p>
<ul>
<li>发现背后主持公司叫 <code>润普</code> , 感觉这是 Zope 的谐音,建议, <code>润璞</code> 更加好;</li>
<li>Linodou 反对, 认为这种难以念出来的字对公司发展不好</li>
<li>俺就引用各种理论来反驳</li>
<li>老潘 不时出来维护气氛</li>
<li>...我们仨儿, 几乎占了每个月, CZUG 论坛上1/3 的流量</li>
<li>可以说不吵不相识</li>
</ul>
<p>过程中, 老潘也认识了 zoomquiet 这个ID,
甚至于开放了部分网站权限,
也就将以往积累的前端技能, 为 CZUG 定制了几款皮肤, 比如其中一款:</p>
<p><a href="http://0.zoomquiet.top/CPyUG/zoomquiet-design-collection/2004-0930-effeBDragon.png">2004-0930-effeBDragon.png (899×431)</a></p>
<p>其中那个龙标的 logo 设计稿:
<a href="http://0.zoomquiet.top/CPyUG/zoomquiet-design-collection/2004-0930-Zdragon-cloud-exp.png">Zdragon-cloud</a>
就是用<code>盗版</code> Coredraw 完成的;</p>
<p>类似折腾其实, 发现在很多社区中,
其中多数社区现在早已从互联网中消失,
当然, 其中的大人物, 依然活跃在世界各地;</p>
<p>从上海得以北漂北京的关键人事就是: <a href="https://wiki.woodpecker.org.cn/moin/HD">HD</a>,
当时, 也只知道是国内 Python 大佬,
曾经在移动公司短信网关上, 用Python 完成重要系统;</p>
<p>应该也是在 CZUG 中认识的,
HD 不怎么说教, 只是发布项目, 号召大家来尝试,
但是, 很积极回答具体技术问题;</p>
<p>首先在大家倡议下,
俺主动承担新近社区: 啄木鸟社区的邮件列表构建任务,
在已经慢慢熟悉的 redhat 系统中,
在公司闲置 PC 机上, 安装了 Mailman 系统,
从各种 Python 相关 BBS 论坛版块中宣传,
很快就有 200+ 订阅,
每天讨论各种 Python 开发问题;
(后来此列表由 exoweb.com 公司赞助, 迁移为 python-chinese@lists.python.cn)</p>
<p>进一步, 又主动安装 moinmoin 维基系统,
通过公司网关解析, 使用临时域名发布出来,
供给大家积累议题/资料;</p>
<p>并进一步, 参与了其中一个通用模板组件的开发:
<a href="https://wiki.woodpecker.org.cn/moin/Otter">Otter - Woodpecker Wiki for CPUG</a>
就是用 Python 合理对 XML 模板进行解析以及修改;
算是进一步夯实了当时并不熟练的 Python 开发技能;</p>
<p>神奇的是, 经过一次线上会议答辩:</p>
<p><img alt="OtTXMLengine" src="https://ipic.zoomquiet.top/2022-08-20-OtTXMLengine.gif"/></p>
<p>配合用 Coredraw 绘制的解析过程图谱,
通过 QQ 语音给大家解说明白思想和代码;</p>
<p>没想到这次普通的社区项目沟通会议, 其实是 SINA 面试考察,
因此获得了职位, 得以进入大型 IT 公司去接触不同的世界.</p>
<h3 id="summary">summary<a class="headerlink" href="#summary" title="Permanent link">¶</a></h3>
<blockquote>
<p>小结</p>
</blockquote>
<p>在上海几年, 无知者无畏, 完全好奇心驱动下,
持续自学, 慢慢恢复自学能力,
通过 开源技术, 结识开源社区/人物/项目,
通过义务贡献, 参与具体工程,
无意中入得关键人物法眼,
在自身现实社会渠道之外, 闯出全新道路;</p>
<p>这一切是因为什么, 后来才慢慢明白,
只是, 当时反复看的电影, 并没有将所有关联融合起来:</p>
<p><a href="http://woodpecker.up.zoomquiet.top/media/020215-RevolutionOS.rmvb">操作系统革命/RevolutionOS</a></p>
<h3 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h3>
<blockquote>
<p>有关链接</p>
</blockquote>
<ul>
<li><a href="http://nucleuscms.org/docs/">Nucleus Documentation v3.2</a></li>
<li><a href="https://docs.plone.org/intro/index.html#what-does-plone-mean-how-is-it-pronounced">Plone - The Open Source CMS — Plone Documentation v5.2</a></li>
<li><a href="https://zope.readthedocs.io/en/latest/operation.html#special-access-user-accounts">Zope documentation — Zope documentation 5.3 documentation</a></li>
<li><a href="https://book.douban.com/subject/1096066/">Zope指南 (豆瓣)</a></li>
<li><a href="https://learning-python.com/about-lp1e.html">About "Learning Python, 1st Edition"</a></li>
<li>...</li>
<li><a href="http://web.archive.org/web/20030205031354/http://cdtzx.51.net/pimage/programs.htm">程序设计语言介绍/2002.6.21</a></li>
<li>...</li>
<li><a href="http://web.archive.org/web/20040605125007/http://www.czug.org/Members/Zoomq">中文Zope用户组(CZUG) - Zoomq's ContentPanels</a></li>
<li><a href="https://www.list.org/">GNU Mailman</a></li>
</ul>
<h3 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h3>
<p>下一篇: <a href="/220820-flossstyle-2.html">开源生活实录.2.GNU之魂</a></p>
<ul>
<li>220819 ZQ 发布</li>
<li>220818 ZQ 规划</li>
<li>220817 ZQ init.</li>
</ul>开源生活实录.0.从哪儿知道的?2022-08-17T18:42:00+08:002022-08-20T19:44:57+08:00ZoomQuiettag:blog.zoomquiet.io,2022-08-17:/220817-flossstyle-0.html<p>MurMur/ FLOSS lifestyle logging+0</p><h2 id="_1">私人开源小传?<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<h3 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h3>
<p>印象中大三时, 给 Yahoo! 目录作志愿者维护日本漫画资源链接时,
就算已经接触了开源文化;-)</p>
<p>不过, 正式意识到自己在通过开源社区资源努力成长,
得在 2000 年开始学习 PHP 技术时...</p>
<p>一晃 22 年了, 自己不觉也变成了标准的社区"大妈";
这个改变是怎么来的?
作为非知名普通开源社区一员的日常又是如何的?</p>
<h3 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h3>
<p>应网支建议, 准备通过一系列私人记要来回顾一下这22年开源生活历程,
可能效果:</p>
<ul>
<li>对自己所有关键行为有个时间线上的整理</li>
<li>对历经过所有开源相关软件/社区/作品/...有个时间线上的对应</li>
<li>对各种场景中印象深刻的技术人, 也能在时间线上完成对应</li>
</ul>
<p>以此为基础素材, 帮助其它有心人士, 也对应上当年的人和事儿...</p>
<p>PS:
因为时间久远, 涉及的公司/部门/人名, 可能都有所隐晦,
只能说根据私人记忆完成, 当不得正史来用;</p>
<h3 id="trace">trace<a class="headerlink" href="#trace" title="Permanent link">¶</a></h3>
<p>那么, 一切是如何开始的?</p>
<p>现在回头去观察当年的自己, 很可能早在小学看 凡尔纳 科幻小说时, 就已经埋下了 FLOSS 萌芽;
其中关键一部小说是:</p>
<p><a href="https://book.douban.com/subject/2215160/">神秘岛/全三册 (1979.中国青年出版社)</a></p>
<p>可以说是最早接触的养成系小说, 仅靠身上无意中保留的几枚硬币和头脑中的知识,
就可以从无到有在一座 "荒岛" 上重建出现代文明的工业基础,
实在是太 COOL 了,
其中各种基本数学/物理/化学/.. 推导/实验过程,
大大震惊自己原始知识树,
从此坚信: "学好数理化, 走遍天下我不怕";</p>
<p>转眼到了大学, 果然也是理工科, 进入 江苏石油化工学院(今: 常州大学) 计算机系,
成为第一届学生;</p>
<p>当年课程设置是标准: "计算机科学及应用",
只是, 科学偏重, 应用为少, 以致毕业时, 并不知道如何从0开始完成一个软件.</p>
<p>大三开始, 协助学院建设校园网时, 接触了 IBM 小型机,
安装的是 UNIX 系统, 和日常 Windows 完成不同,
和以为落后的 DOS 系统相近, 感觉很好奇, 这是为什么?
追查了一些手册和图书馆中仅有的资料, 模糊感觉在已知商业软件之外有个不同的世界;</p>
<p>大四毕业前, 科学史 选修课的毕业论文现在看, 其实指向的就是 FLOSS 文化生态了:</p>
<p><a href="https://blog.zoomquiet.io/issue-chinese-for-internet.html#_11">探讨 信息化社会中 中国传统思想的作用 / 是也乎( ̄▽ ̄) / ZoomQuiet.io</a></p>
<p>毕业时, C++ 强的同学去了南京, 只为毕业证的同学去了其它行业;</p>
<p>其实选择计算机, 原本是为了 3D 动画制作, 所以, 先进入一家广告公司实习,
用自学的 Photoshop/Illustrator/... 设计软件, 先就职, 然后继续自学 3D MAX 之类软件,
然后才发现, 没那么简单, 而且有大量人工过程, 计算机性能有限情况下,
想完成一部靠谱的动画短片, 都是以年计的工程, 而对应硬件, 随便一台 Macintosh 就上万,
对于月工资才几百元的自己, 实在无法想象;</p>
<p>所以, 放弃幻想, 回到软件行业, 暂时进入一家通讯公司,
作企业内部网络集成的,
公司老板比较开明,
将俺招入, 当成网络工程师储备,
可公司主营业务是程控网络工程 ,
计划软件工程转向, 但是, 并不知道什么类型的软件市场能进入;
所以, 在这家公司落实的事儿, 可能就这么几件:</p>
<ul>
<li>配合实施工程师, 完成公司内网配置, 直接好处是可以远程使用打印机</li>
<li>配合老板谈下来的代理权, 去成都完成培训, 独立运营 "中国C网"/常州二级站, 完成定期数据同步和系统升级</li>
<li>自学 Flash/Fireworks/Dreamweaver 三套件, 给公司设计完成了一款全 Flash 企业官网, 可惜没能最终上线...</li>
</ul>
<p>其中 Flash 编程, 算是首次和开放文档有接触,
大致明白技术文档基础结构,
如何可以快速获得当前编程需要的函式说明,
以及如何制造调试空间, 在最终作品看不到的地方打印必要调试信息...</p>
<p>算是毕业一年后, 通过自学, 真正理解是什么软件, 以及如何开展软件构建;
可以说, 前20多年的准备,
是接下来去上海工作时, 进入开源世界的必要条件了...</p>
<h3 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h3>
<ul>
<li><a href="http://0.zoomquiet.top/CPyUG/zoomquiet-design-collection/1999-1-4-CLAMP-saintWar.jpg">CLAMP-saintWar</a> 99年用 Illstartor 9.1 完成的习作, 用以设计岗位招聘</li>
</ul>
<p>下一篇:</p>
<p><a href="/220817-flossstyle-1.html">开源生活实录.1.LAMP之辉</a></p>
<h3 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h3>
<ul>
<li>220817 ZQ 发布</li>
<li>220816 ZQ 规划</li>
<li>220815 ZQ init.</li>
</ul>7niu 鉴黄故事2022-07-26T20:42:00+08:002022-08-18T15:39:31+08:00ZoomQuiettag:blog.zoomquiet.io,2022-07-26:/220727-qiniu-block-matter.html<p>MurMur/ Yellow Content Identification matter</p><h2 id="_1">无奈的神奇<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<h3 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h3>
<p>file:///Users/zoomq/mnt/KuaiPan/zScrapBook/ZqSKM/data/20131021173330/index.html</p>
<p>从 05 年开始, 就使用 FireFox 一个插件: <a href="http://www.xuldev.org/scrapbook/">ScrapBook :: Firefox Extension</a>
来收集有兴趣的网页内容到本地,
并通过 Python 编写的脚本来自动化发布分享到网络中,
比如:
<a href="http://skm.zoomquiet.top/tree/">{ZqSKM} index tree export into iFrame - ScrapBook Collection by Zoom.Quiet</a></p>
<p>无意中, 也就将很多消失的网站以及内容, 聚集到自己的个人网站中;</p>
<p>同时, 也背负上了这种历史内容的法律责任;</p>
<h3 id="matter">matter<a class="headerlink" href="#matter" title="Permanent link">¶</a></h3>
<blockquote>
<p>并不是第一次</p>
</blockquote>
<p>收到邮件通知
<img alt="220726" src="https://ipic.zoomquiet.top/2022-07-29-zshot%202022-07-29%2016.26.19.jpg"/></p>
<p>对应的文章:</p>
<p><a href="http://skm.zoomquiet.top/data/20131021173330/index.html">BJD娃娃制作全过程__付濯雅_百度空间</a></p>
<p>收集自 2013.10.21: http://hi.baidu.com/fzorya/item/1ed17bfe41312b643d198b31</p>
<p>对应违规的图片是:
<img alt="060d39f6c8d9f2475e600817.jpg" src="https://ipic.zoomquiet.top/2022-07-29-zshot%202022-07-29%2016.28.36.jpg"/></p>
<h3 id="murmur">MurMur<a class="headerlink" href="#murmur" title="Permanent link">¶</a></h3>
<p>这就比较囧了...
应该是触发了 7niu 的鉴黄机制, 发现图片中疑似皮肤的面积比较大,
而且还露点了...于是自动从源头关闭了访问, 并邮件警告, 要求发布人主动清除, 并标记本次警告行为,免责...</p>
<p>也就是说:</p>
<ul>
<li>随着法令/规的进化, 过往没违规的内容, 现在不一定</li>
<li>无论在哪儿公开, 都有统一的合规机制, 说你违规你就违规</li>
<li>违规必查, 违规必纠...</li>
</ul>
<p>那么问题来了, 我们如何说,如何写, 如何发布, 可以永久避免被 违规 呢?</p>
<p>答案应该很明显了...</p>
<h3 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h3>
<ul>
<li>220729 ZQ 发布</li>
<li>220728 ZQ 增补</li>
<li>220726 ZQ init.</li>
</ul>7-22 诈骗案始末2022-07-22T23:42:00+08:002022-07-29T16:16:46+08:00ZoomQuiettag:blog.zoomquiet.io,2022-07-22:/220722-bilk-story-why-and-how.html<p>MurMur/ net bilk story why&how</p><h2 id="_1">魔怔了...<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<h3 id="_2">过程<a class="headerlink" href="#_2" title="Permanent link">¶</a></h3>
<p>2022.7.22 15:42 左右, 正在忙, 突然收到一通固话:
(0731)8896 7662, 自称客服务, 说出我的姓名,
并称我的 JD 金条服务,
利率过高, 不吻合国家规定要清除;
可找不到关闭入口, </p>
<p>然后说, 这可能是当初没有选择可自主关闭选项;
接着指导打开网址, 接入银保监会客服进行检验:</p>
<blockquote>
<p>https://中国银保监会客服中心.co</p>
</blockquote>
<p>注意是 .co 不是 .com;
进入的客服在手机上看起来也算正规</p>
<blockquote>
<p>https://chatlink.mstatik.com/widget/standalone.html?eid=3aed432078615b8febeed692814d5fda</p>
</blockquote>
<p>输入查询后, 给出一个私人征信结果, 安全度不高:</p>
<p><img alt="个人征信" src="https://ipic.zoomquiet.top/2022-07-27-zshot%202022-07-27%2017.10.53.jpg"/></p>
<blockquote>
<p>当时感觉哪里有不对,还专门搜索并看了一下官网</p>
</blockquote>
<p>中国人民银行征信中心</p>
<blockquote>
<p>http://www.pbccrc.org.cn/zxzx/grzx/list.shtml</p>
</blockquote>
<p>虽然没找到 私人征信 入口, 总算看起来是有组织的;</p>
<p>然后, 说电话太长时间指引我进入一个 dingding 会议, 有很多人在其中,
开始进一步引导:</p>
<ul>
<li>要想解除违规金融产品</li>
<li>要通过 微众银行 全部帐号走帐, 完成结清</li>
<li>具体过程大致是:<ul>
<li>先向 中国人民银行征信中心 客服说明情况</li>
<li>然后 从微信搜索 <code>微粒贷</code> 完成贷款</li>
<li>再从 <code>天眼查企业工业查询</code> 获得帐号, 转帐过去</li>
<li>等待内部结清</li>
</ul>
</li>
</ul>
<p>比如要逐字输入的情况是:</p>
<blockquote>
<p>本人 XXXX 对接中国银联安全认证帐户 免息免则 归还 深圳前海微众银行股份有限公司 借款额 40000 元整 获取银行电子发票及个人结清证明</p>
</blockquote>
<p>而从 <code>天眼查企业工业查询</code> 获得的帐号, 看起来也是标准的企业财会帐号;</p>
<p><img alt="曹" src="https://ipic.zoomquiet.top/2022-07-27-zshot%202022-07-27%2017.24.45.jpg"/></p>
<p>中间反复强调:</p>
<ul>
<li>我们是 <code>微众银行</code> 不得以要逐一清除违规金融产品</li>
<li>全程不收费</li>
<li>全程录音/像, 上报国家</li>
<li>所有认证口令,密码, 不要说出来</li>
<li>...</li>
</ul>
<p>各种正规, 中间涉及的操作是我以往从来没接触过的, 注意力就从为什么要贷款变成, 如何协助银行完成国家要求的操作...</p>
<p>甚至于, 中间要求下载 <code>乐播视频</code> , 通过临时直播来远程分享手机屏幕, 都照作了;</p>
<p>内心只有一个念头, 赶紧完成好回去编程;
就这样一个小时里经过复杂的操作...:</p>
<ul>
<li>16:26 从微粒贷借得 4万元, 转帐给: 周竹雅 浦发银行 6259 5847 0941 7933</li>
<li>16:41 从微粒贷借得 3.5万, 转帐给: 王礼超 邮政银行 6217 9958 4006 4373 053</li>
<li>17:20 从信用卡提现 2万元, 转帐给: 曹冬生 建设银行 6217 0020 6005 9732 72</li>
</ul>
<p>甚至于中间有个部门会议, 中断后, 还继续...</p>
<p>理由是, 微信中绑定的6张银行卡, 过往都可能意外绑定了违规金融产品, 需要逐一清理;</p>
<p>可是从来没有折腾过理财产品, 所以, 格外艰难, 各种产品都不允许我贷款,
中间还问过几次, 为什么要我来贷款? 也立即义正严辞的给出了包含专业术语的回答...</p>
<p>最后, 是老婆回家一看情景, 立即报警, 才中止了这次诈骗.</p>
<p>而所在辖区警察根本不知道这种诈骗怎么处理, 给出无效指示,
最后还是直接问了网警, 才知道有个专门的 <code>珠海市打击治理电信网络新型违法犯罪中心</code>,
也就是 <code>反诈中心</code>, 过去才知道要 48小时核检才能进入,
又反复折腾后, 好容易进入, 笔录又反复进行了3小时, 到凌晨1点, 才完成所有流程;
隔天, 才短信通知受理;</p>
<p>接下来紧张的解绑/改口令/...打银行流水, 核检, 再去中心提交...</p>
<p>和 <code>微粒贷</code> 协商, 才知道, 人家也不过是代理银行产品, 根本无从改变,
提前还款, 才过了两天, 前后两笔贷款, 就已经产生了将近60元利息...一身身冷汗...</p>
<h3 id="_3">反思<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
<p>为什么就这么听话去徣銭, 还转帐给不认识的人呢?</p>
<p>脱离了那个场景, 回想起来处处是疑点, 而且诈骗团伙也非常小心:</p>
<ul>
<li>app: dingding</li>
<li>app: 乐播视频</li>
<li>小程序: <code>微粒贷</code></li>
<li>小程序: <code>天眼查企业工业查询</code></li>
</ul>
<p>都是正常公开服务/应用, 只是都利用了临时入口, 或是说辞来引导受害人自行操作,
在银行以及徣款方看来, 完全是正常行为;</p>
<p>而几个配套的网站:</p>
<ul>
<li>https://中国银保监会客服中心.co</li>
<li>客服:<ul>
<li>https://chatlink.mstatik.com/widget/standalone.html?eid=3aed432078615b8febeed692814d5fda</li>
</ul>
</li>
<li>中国人民银行征信中心 http://www.pbccrc.org.cn/zxzx/grzx/list.shtml</li>
</ul>
<p>才是诈骗团伙准备的道具, 配合笃定又不得以的语气和理由,
以及持续紧张的指令, 导致注意力, 从判定为什么要这么作, 变成如何作才能完成任务,
甚至于, 一张一张银行卡, 对应的一个一个银行 app 应用中的操作, 都变成了探索任务...</p>
<p>每次有所警觉, 也都有正义的术语来引开注意力, 毕竟一般人反感别人认为自己不懂,
所以, 自动脑补了很多理由, 而无睱从整体上思考, 为什么要徣銭, 为什么又立即转帐给不认识的人...</p>
<p>回想自己的行为, 简直就象被附了身, 不由自主蒙头操作的机械...</p>
<h3 id="_4">原则<a class="headerlink" href="#_4" title="Permanent link">¶</a></h3>
<p>还是金牛座的老婆给出的原则靠谱:</p>
<ul>
<li>凡是转帐/徣銭, 都是诈骗</li>
<li>没人愿意花几小时来解决你自己的问题...</li>
</ul>
<p>以及, 国家反诈中心 app , 立即安装吧...</p>
<blockquote>
<p>请上苍保佑吃完了饭的程序猿们...</p>
</blockquote>
<h3 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h3>
<ul>
<li>220726 ZQ 完成</li>
<li>220723 ZQ 增补</li>
<li>220722 ZQ init.</li>
</ul>什么是"闪电演讲", 以及为什么值得体验.2022-07-21T21:42:24+08:002022-07-21T21:03:01+08:00Zoom.Quiettag:blog.zoomquiet.io,2022-07-21:/220721-what-is-lighting-talk.html
<h2 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<p>马上第7届 COSCon(中国开源年会) 将在线举行,
因为 2019年在上海 COSCon , 有过"从容"的 <code>闪电演讲</code>,
所以本次大会, 被指定为 <code>闪电演讲</code> 联合出品人,
另 …</p>
<h2 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<p>马上第7届 COSCon(中国开源年会) 将在线举行,
因为 2019年在上海 COSCon , 有过"从容"的 <code>闪电演讲</code>,
所以本次大会, 被指定为 <code>闪电演讲</code> 联合出品人,
另外一位出品人是谁呢? 就是强哥了, 证明一下:</p>
<ul>
<li>3:21/zoomquiet <a href="http://0.zoomquiet.top/CPyUG/zq2voice/coscon2019lightalk/191103-lightalk-leo-184849.MP3">191103-lightalk-leo-184849.MP3</a></li>
<li>4:56/Richard Lin <a href="http://0.zoomquiet.top/CPyUG/zq2voice/coscon2019lightalk/191103-lightalk-floss-190841.MP3">191103-lightalk-floss-190841.MP3</a></li>
</ul>
<h2 id="story">story<a class="headerlink" href="#story" title="Permanent link">¶</a></h2>
<p>其实最早接触 <code>闪电演讲</code> 是在 2010.6.11 PyCon Asia Pacific, SMU(新加坡管理大学),
和当时在豆瓣的清风老师联合对口相声演讲完成后,
对自己的 <strong>Cnglish</strong> 大有信心,
直接现场报名完成了人生第一次闪电演讲, 而且是英文的,
基本上就是142个单词左右, 3分钟以内, 对 Leo 编辑器进行了一种玄幻的介绍;</p>
<p>再然后, 就到了 2014.7.20 台北中央研究院演讲大厅,
COSCUP 最后一天最后一个节目, Lighting Talk,
只能现场报名, 结果人太多, 预定的10个演讲全部抢光,
最后神奇和另外一位同学, 两人分享了一节演讲, 每个人4分钟,
俺的部分:
<a href="http://0.zoomquiet.top/ZHGDG/2014/140719_20-coscup/140720_lt-10-leo.MP3">140720_lt-10-leo.MP3</a></p>
<p>而强哥就是从 台湾 过来的, 所以, 参与 COSCon 筹备后,
就一力引入激动人心的 Lighting Talk/闪电演讲;</p>
<h2 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<p>那么什么是 闪电演讲呢? 字面儿意思:</p>
<ul>
<li>如闪电般高速演讲</li>
<li>给人留下闪电般深刻印象</li>
<li>象闪电般结束不讨论</li>
</ul>
<p>所以, 形式上也是:</p>
<ul>
<li>没有幻灯</li>
<li>3~5分钟定长</li>
<li>过时按铃下台</li>
</ul>
<p>目的:</p>
<ul>
<li>尽可能用最短时间, 展现更多内容</li>
<li>如果内容/演说都差强人意思, 也就几分钟, 大家忍一下就过去了</li>
<li>给尽可能多的参与者机会</li>
</ul>
<p>其实, 闪电演讲的创意脱胎于营销界传统艺能: <code>麦肯锡30秒电梯理论</code> ,
著名的麦肯锡咨询公司要求他的每一个业务人员, 都必须有在30秒的时间向客户介绍方案的能力;
也就是瞧准机会和目标企业关键人物同乘一座电梯的时间里,
要完整/清晰/重点突出的完成业务阐述, 赢得兴趣, 获得下一个关键的10分钟阐述机会;</p>
<p>这在大妈<a href="https://doc.101.camp/">蟒营®开源网络课程框架</a>里, 也称为: <code>能技</code></p>
<p><strong>能</strong>使目标人物, 对自己的问题产生科学兴趣的<strong>技</strong>术;</p>
<p>其实, 无论是赢得业务机会, 还是获得技术高手关注, 又或是创业后在路演中获得 VC 青睐,
即便是在平时部门会议中, 可以简明扼要的完成汇报, 就已经是突出常人很多了;
可以说, 在各种场景中, 其实可以视为充斥着 <code>闪电演讲</code>:</p>
<ul>
<li>机场排队时, 清晰阐述自己就是这次航班的, 吻合绿色通道原则可以插队</li>
<li>回家晚了, 简洁有力的向家里领导汇报今天的不得已</li>
<li>...</li>
</ul>
<p>实在是居家旅行必备技能,
怎么可以忽略呢?</p>
<p>抓住一个知识点/经验/问题/故事/...,
反复在脑海里, 深夜里, 墙角里...练习42次以上,
就可以来 COSCon2022中国开源大会, 闪电演讲环节, 和其它闪电侠一齐,
用连续的 "闪电" 留下又一年新的传说吧.</p>
<h2 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h2>
<ul>
<li>220721 ZQ pub</li>
<li>220714 ZQ append .mp3</li>
<li>220704 ZQ init.</li>
</ul>呢喃s/ 22.072022-07-01T20:42:00+08:002022-08-18T15:36:05+08:00ZoomQuiettag:blog.zoomquiet.io,2022-07-01:/220701-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2022.07</p><h2 id="at-202207">呢喃 at 2022.07<a class="headerlink" href="#at-202207" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2207.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.001.jpeg"/>
<img alt="2207.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.002.jpeg"/>
<img alt="2207.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.003.jpeg"/>
<img alt="2207.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.004.jpeg"/>
<img alt="2207.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.005.jpeg"/>
<img alt="2207.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.006.jpeg"/>
<img alt="2207.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.007.jpeg"/>
<img alt="2207.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.008.jpeg"/>
<img alt="2207.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.009.jpeg"/>
<img alt="2207.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.010.jpeg"/>
<img alt="2207.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.011.jpeg"/>
<img alt="2207.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.012.jpeg"/>
<img alt="2207.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.013.jpeg"/>
<img alt="2207.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.014.jpeg"/>
<img alt="2207.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.015.jpeg"/>
<img alt="2207.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.016.jpeg"/>
<img alt="2207.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.017.jpeg"/>
<img alt="2207.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.018.jpeg"/>
<img alt="2207.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.019.jpeg"/>
<img alt="2207.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.020.jpeg"/>
<img alt="2207.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.021.jpeg"/>
<img alt="2207.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.022.jpeg"/>
<img alt="2207.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.023.jpeg"/>
<img alt="2207.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.024.jpeg"/>
<img alt="2207.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.025.jpeg"/>
<img alt="2207.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.026.jpeg"/>
<img alt="2207.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.027.jpeg"/>
<img alt="2207.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.028.jpeg"/>
<img alt="2207.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.029.jpeg"/>
<img alt="2207.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.030.jpeg"/>
<img alt="2207.031" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2207.031.jpeg"/></p>呢喃s/ 22.062022-06-01T20:42:00+08:002022-08-18T15:36:25+08:00ZoomQuiettag:blog.zoomquiet.io,2022-06-01:/220601-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2022.06</p><h2 id="at-202206">呢喃 at 2022.06<a class="headerlink" href="#at-202206" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2206.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.001.jpeg"/>
<img alt="2206.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.002.jpeg"/>
<img alt="2206.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.003.jpeg"/>
<img alt="2206.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.004.jpeg"/>
<img alt="2206.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.005.jpeg"/>
<img alt="2206.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.006.jpeg"/>
<img alt="2206.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.007.jpeg"/>
<img alt="2206.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.008.jpeg"/>
<img alt="2206.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.009.jpeg"/>
<img alt="2206.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.010.jpeg"/>
<img alt="2206.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.011.jpeg"/>
<img alt="2206.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.012.jpeg"/>
<img alt="2206.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.013.jpeg"/>
<img alt="2206.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.014.jpeg"/>
<img alt="2206.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.015.jpeg"/>
<img alt="2206.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.016.jpeg"/>
<img alt="2206.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.017.jpeg"/>
<img alt="2206.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.018.jpeg"/>
<img alt="2206.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.019.jpeg"/>
<img alt="2206.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.020.jpeg"/>
<img alt="2206.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.021.jpeg"/>
<img alt="2206.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.022.jpeg"/>
<img alt="2206.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.023.jpeg"/>
<img alt="2206.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.024.jpeg"/>
<img alt="2206.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.025.jpeg"/>
<img alt="2206.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.026.jpeg"/>
<img alt="2206.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.027.jpeg"/>
<img alt="2206.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.028.jpeg"/>
<img alt="2206.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.029.jpeg"/>
<img alt="2206.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2206.030.jpeg"/></p>How to install Leo under M1 chip macOS 12.*2022-05-29T00:00:00+08:002022-05-29T23:25:31+08:00Zoom.Quiettag:blog.zoomquiet.io,2022-05-29:/leo-install-m1mac-summary.html
<h2 id="background">Background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<p>base <a href="http://leoeditor.com/installing.html#installing-leo-on-macos-10-7-lion-and-later">Installing Leo — Leo 6.6.2 documentation</a>
can not installing Leo on MacOs 12.4 with M1max chip:</p>
<p><img alt="screenfetch" src="https://ipic.zoomquiet.top/2022-05-29-220529-screenfetch.jpg"/></p>
<h2 id="upgrade">Upgrade<a class="headerlink" href="#upgrade" title="Permanent link">¶</a></h2>
<blockquote>
<p>only for M1 chip Mac Book Pro</p>
</blockquote>
<p>base ARM support Homebrew, check version:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>abrew<span class="w"> </span>--version
Homebrew<span class="w"> </span><span class="m">3</span>.4.11
Homebrew/homebrew-core<span class="w"> </span><span class="o">(</span>git<span class="w"> </span>revision<span class="w"> </span>b8f03171990<span class="p">;</span><span class="w"> </span>last<span class="w"> </span>commit<span class="w"> </span><span class="m">2022</span>-05-27<span class="o">)</span>
Homebrew …</code></pre></div>
<h2 id="background">Background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<p>base <a href="http://leoeditor.com/installing.html#installing-leo-on-macos-10-7-lion-and-later">Installing Leo — Leo 6.6.2 documentation</a>
can not installing Leo on MacOs 12.4 with M1max chip:</p>
<p><img alt="screenfetch" src="https://ipic.zoomquiet.top/2022-05-29-220529-screenfetch.jpg"/></p>
<h2 id="upgrade">Upgrade<a class="headerlink" href="#upgrade" title="Permanent link">¶</a></h2>
<blockquote>
<p>only for M1 chip Mac Book Pro</p>
</blockquote>
<p>base ARM support Homebrew, check version:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>abrew<span class="w"> </span>--version
Homebrew<span class="w"> </span><span class="m">3</span>.4.11
Homebrew/homebrew-core<span class="w"> </span><span class="o">(</span>git<span class="w"> </span>revision<span class="w"> </span>b8f03171990<span class="p">;</span><span class="w"> </span>last<span class="w"> </span>commit<span class="w"> </span><span class="m">2022</span>-05-27<span class="o">)</span>
Homebrew/homebrew-cask<span class="w"> </span><span class="o">(</span>git<span class="w"> </span>revision<span class="w"> </span>7cd05aa248<span class="p">;</span><span class="w"> </span>last<span class="w"> </span>commit<span class="w"> </span><span class="m">2022</span>-05-27<span class="o">)</span>
</code></pre></div>
<blockquote>
<p>PS: </p>
</blockquote>
<p>base alias for Intel and ARM verions (<code>~/.bash_profile</code>):</p>
<div class="highlight"><pre><span></span><code>alias abrew='/opt/homebrew/bin/brew '
alias ibrew='/usr/local/bin/brew '
</code></pre></div>
<p>install moniconda:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>abrew<span class="w"> </span>install<span class="w"> </span>miniconda
</code></pre></div>
<p>initialization it:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>conda<span class="w"> </span>init<span class="w"> </span>bash
</code></pre></div>
<p>SEE: <a href="https://docs.conda.io/projects/conda/en/latest/dev-guide/deep-dive-activation.html">Deep dive: conda init and activate — conda 4.13.0.post1+0adcd595 documentation</a></p>
<p>will <code>~/.bash_profile</code> fund like:</p>
<div class="highlight"><pre><span></span><code><span class="c1"># >>> conda initialize >>></span>
<span class="c1"># !! Contents within this block are managed by 'conda init' !!</span>
<span class="n">__conda_setup</span><span class="o">=</span><span class="s2">"$('/opt/homebrew/Caskroom/miniconda/base/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"</span>
<span class="k">if</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="o">$</span><span class="err">?</span><span class="w"> </span><span class="o">-</span><span class="n">eq</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">];</span><span class="w"> </span><span class="n">then</span>
<span class="w"> </span><span class="n">eval</span><span class="w"> </span><span class="s2">"$__conda_setup"</span>
<span class="k">else</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="o">-</span><span class="n">f</span><span class="w"> </span><span class="s2">"/opt/homebrew/Caskroom/miniconda/base/etc/profile.d/conda.sh"</span><span class="w"> </span><span class="p">];</span><span class="w"> </span><span class="n">then</span>
<span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="s2">"/opt/homebrew/Caskroom/miniconda/base/etc/profile.d/conda.sh"</span>
<span class="w"> </span><span class="k">else</span>
<span class="w"> </span><span class="k">export</span><span class="w"> </span><span class="n">PATH</span><span class="o">=</span><span class="s2">"/opt/homebrew/Caskroom/miniconda/base/bin:$PATH"</span>
<span class="w"> </span><span class="n">fi</span>
<span class="n">fi</span>
<span class="n">unset</span><span class="w"> </span><span class="n">__conda_setup</span>
<span class="c1"># <<< conda initialize <<<</span>
</code></pre></div>
<p>install PyQt:</p>
<div class="highlight"><pre><span></span><code><span class="n">$</span><span class="w"> </span><span class="n">abrew</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">PyQt</span><span class="mi">@5</span>
</code></pre></div>
<p>base <code>conda info</code> check miniconda is working;
and create Leo special environment:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>conda<span class="w"> </span>create<span class="w"> </span>-n<span class="w"> </span>leo3912<span class="w"> </span><span class="nv">python</span><span class="o">=</span><span class="m">3</span>.9.12
</code></pre></div>
<p>check result:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>conda<span class="w"> </span>env<span class="w"> </span>list
conda<span class="w"> </span>env<span class="w"> </span>list
/opt/homebrew/Caskroom/miniconda/base/lib/python3.9/site-packages/_distutils_hack/__init__.py:30:<span class="w"> </span>UserWarning:<span class="w"> </span>Setuptools<span class="w"> </span>is<span class="w"> </span>replacing<span class="w"> </span>distutils.
<span class="w"> </span>warnings.warn<span class="o">(</span><span class="s2">"Setuptools is replacing distutils."</span><span class="o">)</span>
<span class="c1"># conda environments:</span>
<span class="c1">#</span>
base<span class="w"> </span>*<span class="w"> </span>/opt/homebrew/Caskroom/miniconda/base
leo3912<span class="w"> </span>/opt/homebrew/Caskroom/miniconda/base/envs/leo3912
</code></pre></div>
<p>copy PyQt packets from brew to miniconda:</p>
<p>such as:
+ from <code>/opt/homebrew/Cellar/pyqt@5/5.15.6/lib/python3.9/site-packages/</code>
+ to <code>/opt/homebrew/Caskroom/miniconda/base/envs/leo3912/lib/python3.9/site-packages/</code></p>
<p>need all of them:</p>
<div class="highlight"><pre><span></span><code>PyQt3D-5.15.5.dist-info
PyQt5
PyQt5-5.15.6.dist-info
PyQt5_sip-12.9.0-py3.9.egg-info
PyQtChart-5.15.5.dist-info
PyQtDataVisualization-5.15.5.dist-info
PyQtNetworkAuth-5.15.5.dist-info
PyQtPurchasing-5.15.5.dist-info
</code></pre></div>
<p>and download Leo Source code release from <a href="https://github.com/leo-editor/leo-editor/releases/latest">Latest</a> </p>
<p>deploy into right path, such as <code>/opt/bin/leo</code></p>
<p>and into conda environment install leo:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>conda<span class="w"> </span>activate<span class="w"> </span>leo3912
$<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>leo
</code></pre></div>
<p>will got some error, but is ok, can suto install these:</p>
<ul>
<li>Successfully installed Jinja2-3.1.2 MarkupSafe-2.1.1 alabaster-0.7.12 astroid-2.11.5 attrs-21.4.0 babel-2.10.1 dialite-0.5.3 dill-0.3.5.1 docutils-0.17.1 fastjsonschema-2.15.3 flexx-0.8.4 future-0.18.2 imagesize-1.3.0 importlib-metadata-4.11.4 isort-5.10.1 jsonschema-4.5.1 jupyter-core-4.10.0 lazy-object-proxy-1.7.1 leo-5.9 mccabe-0.7.0 nbformat-5.4.0 platformdirs-2.5.2 pscript-0.7.7 pyflakes-2.4.0 pylint-2.13.9 pyrsistent-0.18.1 pytz-2022.1 six-1.16.0 snowballstemmer-2.2.0 sphinx-4.5.0 sphinxcontrib-applehelp-1.0.2 sphinxcontrib-devhelp-1.0.2 sphinxcontrib-htmlhelp-2.0.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-1.0.3 sphinxcontrib-serializinghtml-1.1.5 tomli-2.0.1 tornado-6.1 traitlets-5.2.1.post0 typing-extensions-4.2.0 webruntime-0.5.8 wrapt-1.14.1 zipp-3.8.0</li>
</ul>
<p>notice: for some reason, installed is leo-5.9, one old verion;
so means ,
now under conda environment need can call leo with hand deploy verion:</p>
<div class="highlight"><pre><span></span><code><span class="o">(</span><span class="nt">conda</span><span class="o">:</span><span class="w"> </span><span class="nt">leo3912</span><span class="o">)</span>
<span class="o">$</span><span class="w"> </span><span class="nt">python</span><span class="w"> </span><span class="o">/</span><span class="nt">opt</span><span class="o">/</span><span class="nt">bin</span><span class="o">/</span><span class="nt">leo</span><span class="o">/</span><span class="nt">launchLeo</span><span class="p">.</span><span class="nc">py</span>
<span class="nt">setting</span><span class="w"> </span><span class="nt">leoID</span><span class="w"> </span><span class="nt">from</span><span class="w"> </span><span class="nt">os</span><span class="p">.</span><span class="nc">getenv</span><span class="o">(</span><span class="s1">'USER'</span><span class="o">):</span><span class="w"> </span><span class="s1">'zoomq'</span>
<span class="nt">PYLINTHOME</span><span class="w"> </span><span class="nt">is</span><span class="w"> </span><span class="nt">now</span><span class="w"> </span><span class="s1">'/Users/zoomq/Library/Caches/pylint'</span><span class="w"> </span><span class="nt">but</span><span class="w"> </span><span class="nt">obsolescent</span><span class="w"> </span><span class="s1">'/Users/zoomq/.pylint.d'</span><span class="w"> </span><span class="nt">is</span><span class="w"> </span><span class="nt">found</span><span class="o">;</span><span class="w"> </span><span class="nt">you</span><span class="w"> </span><span class="nt">can</span><span class="w"> </span><span class="nt">safely</span><span class="w"> </span><span class="nt">remove</span><span class="w"> </span><span class="nt">the</span><span class="w"> </span><span class="nt">latter</span>
<span class="nt">duplicate</span><span class="o">,</span><span class="w"> </span><span class="o">(</span><span class="nt">not</span><span class="w"> </span><span class="nt">conflicting</span><span class="o">)</span><span class="w"> </span><span class="nt">key</span><span class="w"> </span><span class="nt">bindings</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nt">myLeoSettings</span><span class="p">.</span><span class="nc">leo</span>
<span class="nt">all</span><span class="w"> </span><span class="nt">Alt</span><span class="o">+)</span><span class="w"> </span><span class="nt">move-past-close</span>
<span class="nt">all</span><span class="w"> </span><span class="nt">Alt</span><span class="o">+)</span><span class="w"> </span><span class="nt">move-past-close</span>
<span class="nt">duplicate</span><span class="o">,</span><span class="w"> </span><span class="o">(</span><span class="nt">not</span><span class="w"> </span><span class="nt">conflicting</span><span class="o">)</span><span class="w"> </span><span class="nt">key</span><span class="w"> </span><span class="nt">bindings</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nt">myLeoSettings</span><span class="p">.</span><span class="nc">leo</span>
<span class="nt">all</span><span class="w"> </span><span class="nt">Alt</span><span class="o">+</span><span class="err">}</span><span class="w"> </span><span class="nt">forward-paragraph</span>
<span class="nt">all</span><span class="w"> </span><span class="nt">Alt</span><span class="o">+</span><span class="err">}</span><span class="w"> </span><span class="nt">forward-paragraph-extend-selection</span>
<span class="nt">duplicate</span><span class="o">,</span><span class="w"> </span><span class="o">(</span><span class="nt">not</span><span class="w"> </span><span class="nt">conflicting</span><span class="o">)</span><span class="w"> </span><span class="nt">key</span><span class="w"> </span><span class="nt">bindings</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nt">myLeoSettings</span><span class="p">.</span><span class="nc">leo</span>
<span class="nt">all</span><span class="w"> </span><span class="nt">Ctrl</span><span class="o">+(</span><span class="w"> </span><span class="nt">add-comments</span>
<span class="nt">all</span><span class="w"> </span><span class="nt">Ctrl</span><span class="o">+(</span><span class="w"> </span><span class="nt">add-comments</span>
<span class="nt">duplicate</span><span class="o">,</span><span class="w"> </span><span class="o">(</span><span class="nt">not</span><span class="w"> </span><span class="nt">conflicting</span><span class="o">)</span><span class="w"> </span><span class="nt">key</span><span class="w"> </span><span class="nt">bindings</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nt">myLeoSettings</span><span class="p">.</span><span class="nc">leo</span>
<span class="nt">all</span><span class="w"> </span><span class="nt">Ctrl</span><span class="o">+)</span><span class="w"> </span><span class="nt">delete-comments</span>
<span class="nt">all</span><span class="w"> </span><span class="nt">Ctrl</span><span class="o">+)</span><span class="w"> </span><span class="nt">delete-comments</span>
<span class="nt">all</span><span class="w"> </span><span class="nt">Ctrl</span><span class="o">+)</span><span class="w"> </span><span class="nt">delete-comments</span>
<span class="nt">duplicate</span><span class="o">,</span><span class="w"> </span><span class="o">(</span><span class="nt">not</span><span class="w"> </span><span class="nt">conflicting</span><span class="o">)</span><span class="w"> </span><span class="nt">key</span><span class="w"> </span><span class="nt">bindings</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nt">myLeoSettings</span><span class="p">.</span><span class="nc">leo</span>
<span class="nt">all</span><span class="w"> </span><span class="nt">Ctrl</span><span class="o">+</span><span class="p">{</span><span class="w"> </span><span class="err">promote</span>
<span class="err">all</span><span class="w"> </span><span class="err">Ctrl+{</span><span class="w"> </span><span class="err">promote</span>
<span class="err">duplicate,</span><span class="w"> </span><span class="err">(not</span><span class="w"> </span><span class="err">conflicting)</span><span class="w"> </span><span class="err">key</span><span class="w"> </span><span class="err">bindings</span><span class="w"> </span><span class="err">in</span><span class="w"> </span><span class="err">myLeoSettings.leo</span>
<span class="err">all</span><span class="w"> </span><span class="err">Ctrl+</span><span class="p">}</span><span class="w"> </span><span class="nt">demote</span>
<span class="nt">all</span><span class="w"> </span><span class="nt">Ctrl</span><span class="o">+</span><span class="err">}</span><span class="w"> </span><span class="nt">demote</span>
<span class="nt">Leo</span><span class="w"> </span><span class="nt">6</span><span class="p">.</span><span class="nc">6</span><span class="p">.</span><span class="nc">2</span>
<span class="nt">Python</span><span class="w"> </span><span class="nt">3</span><span class="p">.</span><span class="nc">9</span><span class="p">.</span><span class="nc">12</span><span class="o">,</span><span class="w"> </span><span class="nt">PyQt</span><span class="w"> </span><span class="nt">version</span><span class="w"> </span><span class="nt">5</span><span class="p">.</span><span class="nc">15</span><span class="p">.</span><span class="nc">3</span>
<span class="nt">darwin</span>
<span class="o">...</span>
</code></pre></div>
<p><img alt="Leo 6.6.2" src="https://ipic.zoomquiet.top/2022-05-29-zshot%202022-05-29%2022.10.10-1.jpg"/></p>
<p>suggest define alias for daily,
<code>~/.bash_profile</code> add:</p>
<div class="highlight"><pre><span></span><code>alias leo6lanch="python /opt/bin/leo/launchLeo.py >> /dev/null 2>&1 &"
</code></pre></div>
<p>finally start-up leo need two commands:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>conda<span class="w"> </span>activate<span class="w"> </span>leo3912
$<span class="w"> </span>leo6lanch
</code></pre></div>
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link">¶</a></h2>
<blockquote>
<p>only for macOS 12.* with M1 chip</p>
</blockquote>
<ul>
<li>base installed arm Homebrew, and miniconda</li>
<li>usage brew install Qt and PyQt</li>
<li>usage conda create environment for Leo</li>
<li>ATTENTION:<ul>
<li>copy PyQt packets from brew to conda an first</li>
<li>so usage pip install leo in auto</li>
</ul>
</li>
<li>download latest Leo from github</li>
<li>finally from conda environment's Python call the <code>launchLeo.py</code></li>
</ul>
<h2 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h2>
<ul>
<li>220529 publish as blog</li>
<li>220528 miniconda + abrew can work</li>
<li>220527 error mix, had to try again</li>
<li>220506 try again, not fix yet</li>
<li>220401 try re-install PyENV, not work</li>
<li>211113 jump into M1max , fund some chaos</li>
</ul>M1macOS 下 Leo 复活故事2022-05-28T00:00:00+08:002022-05-29T22:28:32+08:00Zoom.Quiettag:blog.zoomquiet.io,2022-05-28:/leo-install-m1mac-story.html
<h2 id="background">Background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<blockquote>
<p>背景</p>
</blockquote>
<p>Leo 是文学化编辑环境, 由 EKR/令老爷子 单人为主长期维护的优秀开发/编撰/思考/...环境;
从 05 年上手以来, 一直在各种场 …</p>
<h2 id="background">Background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<blockquote>
<p>背景</p>
</blockquote>
<p>Leo 是文学化编辑环境, 由 EKR/令老爷子 单人为主长期维护的优秀开发/编撰/思考/...环境;
从 05 年上手以来, 一直在各种场景中欢快的使用,
历经 WindownsNT/Ubuntu/MAC 到现在的 macOS 12.* ,
可以说, 依托 Python 的跨平台属性, 一直能相对平滑的迁移;</p>
<p>比如: <a href="https://blog.zoomquiet.io/leo5theme.html">Leo 5.2 theme custom</a></p>
<p>事实上官方文档中: <a href="http://leoeditor.com/installing.html#installing-leo-on-macos-10-7-lion-and-later">Installing Leo — Leo 6.6.2 documentation</a> ~ Installing Leo on MacOs 10.7 (Lion) 部分其实就是俺的笔记转化而成的.</p>
<p>为解决本地开发测试, 并尽可能复用运行时到相似的工程中, 以往选择的管理工具是 <a href="https://github.com/pyenv/pyenv">pyenv/pyenv: Simple Python version management</a></p>
<p>参考:<a href="https://testdriven.io/blog/python-environments/">Modern Python Environments - dependency and workspace management | TestDriven.io</a></p>
<p><img alt="Modern Python Environments" src="https://ipic.zoomquiet.top/2022-05-29-PyEnvironments-vs.jpg"/></p>
<p>以往形成的习惯是:</p>
<ul>
<li>用 PyENV 安装不同版本 Python 运行时, 毕竟不同工程部署在不同目标主机中, 对 Python 版本依赖不同</li>
<li>基于 PyENV 的自动绑定机制, 在对应目录中通过指令 <code>pyenv local [指定运行时别名]</code> <ul>
<li>就可以记忆绑定关系, 之后嘦进入相关目录, 将自动完成运行时切换</li>
<li>不必须象其它工具要人工明确运行激活指令</li>
</ul>
</li>
<li>进入对应环境后, 使用 pip 进行标准模块依赖管理</li>
</ul>
<p>整体上可以达成效果:</p>
<ul>
<li>本地和生产环境能部署相同 PyENV 环境</li>
<li>支持不同版本 Python 运行时</li>
<li>支持不同项目有自己的模块依赖树, 和其它工程隔离</li>
<li>支持不同工程, 如果领域接近, 可以绑定其它项目的 PyENV 环境, 节省相同模块的反复安装</li>
<li>...即: Python 运行时版本/项目目录/工程依赖 三者能相对独立配置/管理<ul>
<li>而且, 值得强调的是, 对于配置好的环境, cd 进入时, 自动完成切换</li>
<li>同时, 所有定制运行环境, 统一安装在指定目录中, 和工程目录无关, 不必专门进行 git 忽略配置</li>
</ul>
</li>
</ul>
<h2 id="troubles">Troubles<a class="headerlink" href="#troubles" title="Permanent link">¶</a></h2>
<blockquote>
<p>问题</p>
</blockquote>
<p>不过, 在今年初升级硬件为芯片为 M1max 全新 MBP 后, 就一直有问题:</p>
<p>参考: <a href="https://blog.zoomquiet.io/211114m1max-re-inti-mbp">如何安定进入 M1maxMBP / 是也乎( ̄▽ ̄) / ZoomQuiet.io</a></p>
<p>虽然当时幸运的使用官方迁移工具, 将几乎 94.2% 的环境和数据都自动迁移成功;
由于底层芯片不同, 以往 Python 本地运行时环境虽然能用,
但是, 无法进一步安装新版本 Python 运行时, 以及升级 Leo 到最新版本...</p>
<p>具体的:</p>
<ul>
<li>原先在 Intel 芯片中安装/配置好的 PyENV 环境可以运行<ul>
<li>但是, 无法安装新版本 Python 环境</li>
<li>也无法正常使用对应环境中的 pip 安装新模块</li>
</ul>
</li>
<li>原先在 Intel 芯片中安装/配置好的 miniconda 环境可以运行<ul>
<li>但是, <code>conda info</code> 报错</li>
</ul>
</li>
<li>..感觉只有一组很小的 snap 可以使用, 已经不是两个完备可控的 Python 运行时管理环境了</li>
</ul>
<h2 id="goal">Goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<blockquote>
<p>目标</p>
</blockquote>
<p>恢复本地 Python 环境的控制:</p>
<ul>
<li>可以自如安装多种版本 Python 运行时</li>
<li>可以针对不同工程绑定不同模块依赖树, 当然, 也可以复用相同的</li>
<li>可以安装运行最新 Leo 版本<ul>
<li>当前可用是 5.9-b2</li>
<li>官方已经是 6.6.2 了</li>
</ul>
</li>
</ul>
<h2 id="tracing">Tracing<a class="headerlink" href="#tracing" title="Permanent link">¶</a></h2>
<blockquote>
<p>探索</p>
</blockquote>
<p>当前环境:</p>
<p><img alt="screenfetch" src="https://ipic.zoomquiet.top/2022-05-29-220529-screenfetch.jpg"/></p>
<h3 id="pyenv">尝试 PyENV<a class="headerlink" href="#pyenv" title="Permanent link">¶</a></h3>
<ul>
<li>先在 <code>~/.bash_profile</code> 中注释掉所有 PyENV 相关的配置,</li>
<li>将 <code>~/.pyenv</code> 移动为 <code>~/_pyenv</code></li>
<li>根据官方指引: <a href="https://github.com/pyenv/pyenv">pyenv/pyenv: Simple Python version management</a> 重新安装<ul>
<li>而且事先根据 <a href="https://github.com/pyenv/pyenv/wiki#suggested-build-environment">Home · pyenv/pyenv Wiki</a> 的建议</li>
<li>重新安装了 Python 编译依赖</li>
</ul>
</li>
</ul>
<p>一切正常, 其实依赖通过 brew 安装的 python@3.9 完成自举</p>
<div class="highlight"><pre><span></span><code>Python 3.9.8 (main, Nov 10 2021, 03:55:42)
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
</code></pre></div>
<p>可惜, 尝试通过 <code>pyenv install</code> 指令来安装其它版本 Python 环境,
都撞到编译失败, 反复探索, 网上给的招儿都用过, 还是无法解决.</p>
<h3 id="miniconda">尝试 miniconda<a class="headerlink" href="#miniconda" title="Permanent link">¶</a></h3>
<blockquote>
<p>怀疑 PyENV 准备的编译脚本都是针对 Intel 背景的</p>
</blockquote>
<p>所以, 重新将目光投向 Anaconda, 要知道这个项目已经不仅仅可以管理 Python 环境, 而且其它各种运行时环境都可以管理, 包含 rust/haskell/... 都可以通过 conda 指令一致性部署,
而且事先经过不同平台的针对性预编译, 不用在本地折腾, 直接下载, 展开就可用;</p>
<p>而且, 进入 conda 运行时环境后, 可以继续用 conda 指令安装相关模块, 也可以用 pip 来从 PyPI 下载安装...</p>
<p>唯一不如 PyENV 的就是 conda 环境, 必须手工激活, 无法自动绑定;</p>
<p>之前 miniconda 是手工安装的, 现在已经有全新 arm 版本 brew 环境了,
参考: <a href="https://sspai.com/post/63935#!">在 M1 芯片 Mac 上使用 Homebrew - 少数派</a></p>
<p>标准安装:</p>
<div class="highlight"><pre><span></span><code>abrew install miniconda
</code></pre></div>
<p>因为进行了多 homebrew 环境配置:</p>
<ul>
<li>ibrew 指向旧系统迁移过来的 Intel 版本 homebrew</li>
<li>abrew 指向全新安装的 ARM 版本 homebrew</li>
</ul>
<p>然后, 就可以探查当前支持那些 Python 版本了:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>conda<span class="w"> </span>search<span class="w"> </span><span class="s2">"^Python</span>$<span class="s2">"</span>
Loading<span class="w"> </span>channels:<span class="w"> </span><span class="k">done</span>
<span class="c1"># Name Version Build Channel</span>
python<span class="w"> </span><span class="m">3</span>.8.11<span class="w"> </span>hbdb9e5c_5<span class="w"> </span>pkgs/main
python<span class="w"> </span><span class="m">3</span>.8.13<span class="w"> </span>hbdb9e5c_0<span class="w"> </span>pkgs/main
python<span class="w"> </span><span class="m">3</span>.9.6<span class="w"> </span>hc70090a_5<span class="w"> </span>pkgs/main
python<span class="w"> </span><span class="m">3</span>.9.7<span class="w"> </span>hc70090a_1<span class="w"> </span>pkgs/main
python<span class="w"> </span><span class="m">3</span>.9.11<span class="w"> </span>hbdb9e5c_1<span class="w"> </span>pkgs/main
python<span class="w"> </span><span class="m">3</span>.9.11<span class="w"> </span>hbdb9e5c_2<span class="w"> </span>pkgs/main
python<span class="w"> </span><span class="m">3</span>.9.12<span class="w"> </span>hbdb9e5c_0<span class="w"> </span>pkgs/main
python<span class="w"> </span><span class="m">3</span>.10.0<span class="w"> </span>hbdb9e5c_1<span class="w"> </span>pkgs/main
python<span class="w"> </span><span class="m">3</span>.10.0<span class="w"> </span>hbdb9e5c_2<span class="w"> </span>pkgs/main
python<span class="w"> </span><span class="m">3</span>.10.0<span class="w"> </span>hbdb9e5c_3<span class="w"> </span>pkgs/main
python<span class="w"> </span><span class="m">3</span>.10.0<span class="w"> </span>hbdb9e5c_5<span class="w"> </span>pkgs/main
python<span class="w"> </span><span class="m">3</span>.10.3<span class="w"> </span>hbdb9e5c_5<span class="w"> </span>pkgs/main
python<span class="w"> </span><span class="m">3</span>.10.4<span class="w"> </span>hbdb9e5c_0<span class="w"> </span>pkgs/main
</code></pre></div>
<p>安装一个 Leo 专用的环境:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>conde<span class="w"> </span>create<span class="w"> </span>-n<span class="w"> </span>leo3811<span class="w"> </span><span class="nv">python</span><span class="o">=</span><span class="m">3</span>.8.11
</code></pre></div>
<p>通过指令进入:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>conda<span class="w"> </span>activate<span class="w"> </span>leo3811
</code></pre></div>
<p>通过事先安装 <code>pip_search</code> 可以搜索出配置的PyPI 镜像是否包含 Leo:</p>
<p><img alt="pip_search" src="https://ipic.zoomquiet.top/2022-05-29-zshot%202022-05-28%2000.07.02.jpg"/></p>
<p>通过 pip 安装 Leo:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>leo
</code></pre></div>
<p><img alt="PyQt" src="https://ipic.zoomquiet.top/2022-05-29-zshot%202022-05-28%2000.07.22.jpg"/></p>
<p>过程中, 可以观察到很多编译错误,
但是, 安装脚本足够聪明, 可以逐一版本降低来尝试最终兼容;
安装完成后, 尝试运行:</p>
<div class="highlight"><pre><span></span><code><span class="err">$</span> <span class="n">leo</span>
<span class="n">leoQt</span><span class="o">.</span><span class="n">py</span><span class="p">:</span> <span class="n">can</span> <span class="ow">not</span> <span class="n">fully</span> <span class="kn">import</span> <span class="nn">PyQt5.</span>
<span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="n">File</span> <span class="s2">"/opt/homebrew/Caskroom/miniconda/base/envs/leo3811/lib/python3.8/site-packages/leo/core/leoQt.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">55</span><span class="p">,</span> <span class="ow">in</span> <span class="o"><</span><span class="n">module</span><span class="o">></span>
<span class="kn">from</span> <span class="nn">PyQt5</span> <span class="kn">import</span> <span class="n">QtCore</span>
<span class="ne">ModuleNotFoundError</span><span class="p">:</span> <span class="n">No</span> <span class="n">module</span> <span class="n">named</span> <span class="s1">'PyQt5.sip'</span>
<span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="n">File</span> <span class="s2">"/opt/homebrew/Caskroom/miniconda/base/envs/leo3811/bin/leo"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">5</span><span class="p">,</span> <span class="ow">in</span> <span class="o"><</span><span class="n">module</span><span class="o">></span>
<span class="kn">from</span> <span class="nn">leo.core.runLeo</span> <span class="kn">import</span> <span class="n">run</span>
<span class="n">File</span> <span class="s2">"/opt/homebrew/Caskroom/miniconda/base/envs/leo3811/lib/python3.8/site-packages/leo/core/runLeo.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">27</span><span class="p">,</span> <span class="ow">in</span> <span class="o"><</span><span class="n">module</span><span class="o">></span>
<span class="n">leoGlobals</span><span class="o">.</span><span class="n">app</span> <span class="o">=</span> <span class="n">leoApp</span><span class="o">.</span><span class="n">LeoApp</span><span class="p">()</span>
<span class="n">File</span> <span class="s2">"/opt/homebrew/Caskroom/miniconda/base/envs/leo3811/lib/python3.8/site-packages/leo/core/leoApp.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">334</span><span class="p">,</span> <span class="ow">in</span> <span class="fm">__init__</span>
<span class="kn">import</span> <span class="nn">leo.core.leoFrame</span> <span class="k">as</span> <span class="nn">leoFrame</span>
<span class="n">File</span> <span class="s2">"/opt/homebrew/Caskroom/miniconda/base/envs/leo3811/lib/python3.8/site-packages/leo/core/leoFrame.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">13</span><span class="p">,</span> <span class="ow">in</span> <span class="o"><</span><span class="n">module</span><span class="o">></span>
<span class="kn">import</span> <span class="nn">leo.core.leoColorizer</span> <span class="k">as</span> <span class="nn">leoColorizer</span>
<span class="n">File</span> <span class="s2">"/opt/homebrew/Caskroom/miniconda/base/envs/leo3811/lib/python3.8/site-packages/leo/core/leoColorizer.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">18</span><span class="p">,</span> <span class="ow">in</span> <span class="o"><</span><span class="n">module</span><span class="o">></span>
<span class="kn">from</span> <span class="nn">leo.core.leoQt</span> <span class="kn">import</span> <span class="n">Qsci</span><span class="p">,</span> <span class="n">QtGui</span><span class="p">,</span> <span class="n">QtWidgets</span>
<span class="n">File</span> <span class="s2">"/opt/homebrew/Caskroom/miniconda/base/envs/leo3811/lib/python3.8/site-packages/leo/core/leoQt.py"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">88</span><span class="p">,</span> <span class="ow">in</span> <span class="o"><</span><span class="n">module</span><span class="o">></span>
<span class="n">qt_version</span> <span class="o">=</span> <span class="n">QtCore</span><span class="o">.</span><span class="n">QT_VERSION_STR</span>
<span class="ne">NameError</span><span class="p">:</span> <span class="n">name</span> <span class="s1">'QtCore'</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">defined</span>
</code></pre></div>
<p>没招, 问 Leo 官方 mailling-list: https://groups.google.com/d/msgid/leo-editor</p>
<p>不久, tbp100.tp@gmail.com 建议:</p>
<blockquote>
<p>this looks like a problem with Qt or PyQt, not leo per se. possibilities:</p>
</blockquote>
<ul>
<li>try to install PyQt6 on its own (without the rest of leo);</li>
<li>try to install an earlier version of PyQt6, if you can figure out which ones are available;</li>
<li>try installing PyQt5 instead of PyQt6 (Leo can use either one); </li>
<li>install python 3.9 and see whether PyQt6 or PyQt5 will install without errors.</li>
</ul>
<h3 id="pyqt">PyQt<a class="headerlink" href="#pyqt" title="Permanent link">¶</a></h3>
<blockquote>
<p>想起来 Qt 是个神奇的东西...</p>
</blockquote>
<p>之前进行桌面开发时, PyQt 就不能简单安装, 对应搜索</p>
<p>国内用户首先要配置 conda 源:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>conda<span class="w"> </span>config<span class="w"> </span>--set<span class="w"> </span>show_channel_urls<span class="w"> </span>yes
</code></pre></div>
<p>生成 <code>~/.condarc</code> 文件后对应修改, 比如俺当前是:</p>
<div class="highlight"><pre><span></span><code><span class="n">auto_activate_base</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span>
<span class="n">report_errors</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span>
<span class="n">show_channel_urls</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span>
<span class="n">channels</span><span class="o">:</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">defaults</span>
<span class="n">default_channels</span><span class="o">:</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">http</span><span class="o">://</span><span class="n">mirrors</span><span class="o">.</span><span class="na">aliyun</span><span class="o">.</span><span class="na">com</span><span class="sr">/anaconda/pkgs/</span><span class="n">main</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">http</span><span class="o">://</span><span class="n">mirrors</span><span class="o">.</span><span class="na">aliyun</span><span class="o">.</span><span class="na">com</span><span class="sr">/anaconda/pkgs/</span><span class="n">r</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">http</span><span class="o">://</span><span class="n">mirrors</span><span class="o">.</span><span class="na">aliyun</span><span class="o">.</span><span class="na">com</span><span class="sr">/anaconda/pkgs/</span><span class="n">msys2</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">https</span><span class="o">://</span><span class="n">repo</span><span class="o">.</span><span class="na">anaconda</span><span class="o">.</span><span class="na">com</span><span class="sr">/pkgs/</span><span class="n">main</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">https</span><span class="o">://</span><span class="n">repo</span><span class="o">.</span><span class="na">anaconda</span><span class="o">.</span><span class="na">com</span><span class="sr">/pkgs/</span><span class="n">r</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">https</span><span class="o">://</span><span class="n">repo</span><span class="o">.</span><span class="na">anaconda</span><span class="o">.</span><span class="na">com</span><span class="sr">/pkgs/</span><span class="n">msys2</span>
<span class="n">custom_channels</span><span class="o">:</span>
<span class="w"> </span><span class="n">conda</span><span class="o">-</span><span class="n">forge</span><span class="o">:</span><span class="w"> </span><span class="n">http</span><span class="o">://</span><span class="n">mirrors</span><span class="o">.</span><span class="na">aliyun</span><span class="o">.</span><span class="na">com</span><span class="sr">/anaconda/</span><span class="n">cloud</span>
<span class="w"> </span><span class="n">msys2</span><span class="o">:</span><span class="w"> </span><span class="n">http</span><span class="o">://</span><span class="n">mirrors</span><span class="o">.</span><span class="na">aliyun</span><span class="o">.</span><span class="na">com</span><span class="sr">/anaconda/</span><span class="n">cloud</span>
<span class="w"> </span><span class="n">bioconda</span><span class="o">:</span><span class="w"> </span><span class="n">http</span><span class="o">://</span><span class="n">mirrors</span><span class="o">.</span><span class="na">aliyun</span><span class="o">.</span><span class="na">com</span><span class="sr">/anaconda/</span><span class="n">cloud</span>
<span class="w"> </span><span class="n">menpo</span><span class="o">:</span><span class="w"> </span><span class="n">http</span><span class="o">://</span><span class="n">mirrors</span><span class="o">.</span><span class="na">aliyun</span><span class="o">.</span><span class="na">com</span><span class="sr">/anaconda/</span><span class="n">cloud</span>
<span class="w"> </span><span class="n">pytorch</span><span class="o">:</span><span class="w"> </span><span class="n">http</span><span class="o">://</span><span class="n">mirrors</span><span class="o">.</span><span class="na">aliyun</span><span class="o">.</span><span class="na">com</span><span class="sr">/anaconda/</span><span class="n">cloud</span>
<span class="w"> </span><span class="n">simpleitk</span><span class="o">:</span><span class="w"> </span><span class="n">http</span><span class="o">://</span><span class="n">mirrors</span><span class="o">.</span><span class="na">aliyun</span><span class="o">.</span><span class="na">com</span><span class="sr">/anaconda/</span><span class="n">cloud</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="n">conda</span><span class="w"> </span><span class="n">create</span><span class="w"> </span><span class="o">-</span><span class="n">n</span><span class="w"> </span><span class="n">leo3911</span><span class="w"> </span><span class="n">python</span><span class="o">=</span><span class="mf">3.9</span><span class="o">.</span><span class="mi">11</span>
<span class="n">Collecting</span><span class="w"> </span><span class="n">package</span><span class="w"> </span><span class="n">metadata</span><span class="w"> </span><span class="p">(</span><span class="n">current_repodata</span><span class="o">.</span><span class="n">json</span><span class="p">):</span><span class="w"> </span><span class="n">done</span>
<span class="n">Solving</span><span class="w"> </span><span class="n">environment</span><span class="p">:</span><span class="w"> </span><span class="n">failed</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">repodata</span><span class="w"> </span><span class="n">from</span><span class="w"> </span><span class="n">current_repodata</span><span class="o">.</span><span class="n">json</span><span class="p">,</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">retry</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">next</span><span class="w"> </span><span class="n">repodata</span><span class="w"> </span><span class="n">source</span><span class="o">.</span>
<span class="n">Collecting</span><span class="w"> </span><span class="n">package</span><span class="w"> </span><span class="n">metadata</span><span class="w"> </span><span class="p">(</span><span class="n">repodata</span><span class="o">.</span><span class="n">json</span><span class="p">):</span><span class="w"> </span><span class="n">done</span>
<span class="n">Solving</span><span class="w"> </span><span class="n">environment</span><span class="p">:</span><span class="w"> </span><span class="n">done</span>
<span class="c1">## Package Plan ##</span>
<span class="w"> </span><span class="n">environment</span><span class="w"> </span><span class="n">location</span><span class="p">:</span><span class="w"> </span><span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">homebrew</span><span class="o">/</span><span class="n">Caskroom</span><span class="o">/</span><span class="n">miniconda</span><span class="o">/</span><span class="n">base</span><span class="o">/</span><span class="n">envs</span><span class="o">/</span><span class="n">leo3911</span>
<span class="w"> </span><span class="n">added</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">updated</span><span class="w"> </span><span class="n">specs</span><span class="p">:</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">python</span><span class="o">=</span><span class="mf">3.9</span><span class="o">.</span><span class="mi">11</span>
<span class="n">The</span><span class="w"> </span><span class="n">following</span><span class="w"> </span><span class="n">packages</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">downloaded</span><span class="p">:</span>
<span class="w"> </span><span class="n">package</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">build</span>
<span class="w"> </span><span class="o">---------------------------|-----------------</span>
<span class="w"> </span><span class="n">python</span><span class="o">-</span><span class="mf">3.9</span><span class="o">.</span><span class="mi">11</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">hbdb9e5c_2</span><span class="w"> </span><span class="mf">10.1</span><span class="w"> </span><span class="n">MB</span><span class="w"> </span><span class="n">defaults</span>
<span class="w"> </span><span class="o">------------------------------------------------------------</span>
<span class="w"> </span><span class="n">Total</span><span class="p">:</span><span class="w"> </span><span class="mf">10.1</span><span class="w"> </span><span class="n">MB</span>
<span class="n">The</span><span class="w"> </span><span class="n">following</span><span class="w"> </span><span class="n">NEW</span><span class="w"> </span><span class="n">packages</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">INSTALLED</span><span class="p">:</span>
<span class="w"> </span><span class="n">ca</span><span class="o">-</span><span class="n">certificates</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">ca</span><span class="o">-</span><span class="n">certificates</span><span class="o">-</span><span class="mf">2022.4</span><span class="o">.</span><span class="mi">26</span><span class="o">-</span><span class="n">hca03da5_0</span>
<span class="w"> </span><span class="n">certifi</span><span class="w"> </span><span class="n">anaconda</span><span class="o">/</span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">noarch</span><span class="p">::</span><span class="n">certifi</span><span class="o">-</span><span class="mf">2020.6</span><span class="o">.</span><span class="mi">20</span><span class="o">-</span><span class="n">pyhd3eb1b0_3</span>
<span class="w"> </span><span class="n">libcxx</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">libcxx</span><span class="o">-</span><span class="mf">12.0</span><span class="o">.</span><span class="mi">0</span><span class="o">-</span><span class="n">hf6beb65_1</span>
<span class="w"> </span><span class="n">libffi</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">libffi</span><span class="o">-</span><span class="mf">3.4</span><span class="o">.</span><span class="mi">2</span><span class="o">-</span><span class="n">hc377ac9_2</span>
<span class="w"> </span><span class="n">ncurses</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">ncurses</span><span class="o">-</span><span class="mf">6.3</span><span class="o">-</span><span class="n">h1a28f6b_2</span>
<span class="w"> </span><span class="n">openssl</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">openssl</span><span class="o">-</span><span class="mf">1.1</span><span class="o">.</span><span class="mi">1</span><span class="n">o</span><span class="o">-</span><span class="n">h1a28f6b_0</span>
<span class="w"> </span><span class="n">pip</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">pip</span><span class="o">-</span><span class="mf">21.2</span><span class="o">.</span><span class="mi">4</span><span class="o">-</span><span class="n">py39hca03da5_0</span>
<span class="w"> </span><span class="n">python</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">python</span><span class="o">-</span><span class="mf">3.9</span><span class="o">.</span><span class="mi">11</span><span class="o">-</span><span class="n">hbdb9e5c_2</span>
<span class="w"> </span><span class="n">readline</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">readline</span><span class="o">-</span><span class="mf">8.1</span><span class="o">.</span><span class="mi">2</span><span class="o">-</span><span class="n">h1a28f6b_1</span>
<span class="w"> </span><span class="n">setuptools</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">setuptools</span><span class="o">-</span><span class="mf">61.2</span><span class="o">.</span><span class="mi">0</span><span class="o">-</span><span class="n">py39hca03da5_0</span>
<span class="w"> </span><span class="n">sqlite</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">sqlite</span><span class="o">-</span><span class="mf">3.38</span><span class="o">.</span><span class="mi">3</span><span class="o">-</span><span class="n">h1058600_0</span>
<span class="w"> </span><span class="n">tk</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">tk</span><span class="o">-</span><span class="mf">8.6</span><span class="o">.</span><span class="mi">11</span><span class="o">-</span><span class="n">hb8d0fd4_1</span>
<span class="w"> </span><span class="n">tzdata</span><span class="w"> </span><span class="n">anaconda</span><span class="o">/</span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">noarch</span><span class="p">::</span><span class="n">tzdata</span><span class="o">-</span><span class="mi">2022</span><span class="n">a</span><span class="o">-</span><span class="n">hda174b7_0</span>
<span class="w"> </span><span class="n">wheel</span><span class="w"> </span><span class="n">anaconda</span><span class="o">/</span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">noarch</span><span class="p">::</span><span class="n">wheel</span><span class="o">-</span><span class="mf">0.37</span><span class="o">.</span><span class="mi">1</span><span class="o">-</span><span class="n">pyhd3eb1b0_0</span>
<span class="w"> </span><span class="n">xz</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">xz</span><span class="o">-</span><span class="mf">5.2</span><span class="o">.</span><span class="mi">5</span><span class="o">-</span><span class="n">h1a28f6b_1</span>
<span class="w"> </span><span class="n">zlib</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="n">arm64</span><span class="p">::</span><span class="n">zlib</span><span class="o">-</span><span class="mf">1.2</span><span class="o">.</span><span class="mi">12</span><span class="o">-</span><span class="n">h5a0b063_2</span>
<span class="n">Proceed</span><span class="w"> </span><span class="p">([</span><span class="n">y</span><span class="p">]</span><span class="o">/</span><span class="n">n</span><span class="p">)</span><span class="err">?</span>
<span class="n">Downloading</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">Extracting</span><span class="w"> </span><span class="n">Packages</span>
<span class="n">python</span><span class="o">-</span><span class="mf">3.9</span><span class="o">.</span><span class="mi">11</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mf">10.1</span><span class="w"> </span><span class="n">MB</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="c1">##################################################################################################################################### | 100%</span>
<span class="n">Preparing</span><span class="w"> </span><span class="n">transaction</span><span class="p">:</span><span class="w"> </span><span class="n">done</span>
<span class="n">Verifying</span><span class="w"> </span><span class="n">transaction</span><span class="p">:</span><span class="w"> </span><span class="n">done</span>
<span class="n">Executing</span><span class="w"> </span><span class="n">transaction</span><span class="p">:</span><span class="w"> </span><span class="n">done</span>
<span class="c1">#</span>
<span class="c1"># To activate this environment, use</span>
<span class="c1">#</span>
<span class="c1"># $ conda activate leo3911</span>
<span class="c1">#</span>
<span class="c1"># To deactivate an active environment, use</span>
<span class="c1">#</span>
<span class="c1"># $ conda deactivate</span>
</code></pre></div>
<p>检验安装成果:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>conda<span class="w"> </span>env<span class="w"> </span>list
<span class="c1"># conda environments:</span>
<span class="c1">#</span>
base<span class="w"> </span>*<span class="w"> </span>/opt/homebrew/Caskroom/miniconda/base
leo3811<span class="w"> </span>/opt/homebrew/Caskroom/miniconda/base/envs/leo3811
leo3911<span class="w"> </span>/opt/homebrew/Caskroom/miniconda/base/envs/leo3911
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="err">$</span><span class="w"> </span><span class="n">conda</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">PyQt</span>
<span class="n">Collecting</span><span class="w"> </span><span class="n">package</span><span class="w"> </span><span class="n">metadata</span><span class="w"> </span><span class="p">(</span><span class="n">current_repodata</span><span class="p">.</span><span class="n">json</span><span class="p">)</span><span class="err">:</span><span class="w"> </span><span class="n">done</span>
<span class="n">Solving</span><span class="w"> </span><span class="nl">environment</span><span class="p">:</span><span class="w"> </span><span class="n">done</span>
<span class="err">##</span><span class="w"> </span><span class="n">Package</span><span class="w"> </span><span class="k">Plan</span><span class="w"> </span><span class="err">##</span>
<span class="w"> </span><span class="n">environment</span><span class="w"> </span><span class="nl">location</span><span class="p">:</span><span class="w"> </span><span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">homebrew</span><span class="o">/</span><span class="n">Caskroom</span><span class="o">/</span><span class="n">miniconda</span><span class="o">/</span><span class="n">base</span><span class="o">/</span><span class="n">envs</span><span class="o">/</span><span class="n">leo3811</span>
<span class="w"> </span><span class="n">added</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">updated</span><span class="w"> </span><span class="nl">specs</span><span class="p">:</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">pyqt</span>
<span class="n">The</span><span class="w"> </span><span class="n">following</span><span class="w"> </span><span class="k">NEW</span><span class="w"> </span><span class="n">packages</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="nl">INSTALLED</span><span class="p">:</span>
<span class="w"> </span><span class="n">adwaita</span><span class="o">-</span><span class="n">icon</span><span class="o">-</span><span class="n">theme</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">adwaita</span><span class="o">-</span><span class="n">icon</span><span class="o">-</span><span class="n">theme</span><span class="o">-</span><span class="mf">40.1.1</span><span class="o">-</span><span class="n">hca03da5_1</span>
<span class="w"> </span><span class="n">atk</span><span class="o">-</span><span class="mf">1.0</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">atk</span><span class="o">-</span><span class="mf">1.0</span><span class="o">-</span><span class="mf">2.36.0</span><span class="o">-</span><span class="n">h7fe96df_0</span>
<span class="w"> </span><span class="n">cairo</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">cairo</span><span class="o">-</span><span class="mf">1.16.0</span><span class="o">-</span><span class="n">h0ab239c_1</span>
<span class="w"> </span><span class="n">dbus</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">dbus</span><span class="o">-</span><span class="mf">1.13.18</span><span class="o">-</span><span class="n">h8280c03_0</span>
<span class="w"> </span><span class="n">epoxy</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">epoxy</span><span class="o">-</span><span class="mf">1.5.4</span><span class="o">-</span><span class="n">h1a28f6b_2</span>
<span class="w"> </span><span class="n">expat</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">expat</span><span class="o">-</span><span class="mf">2.4.4</span><span class="o">-</span><span class="n">hc377ac9_0</span>
<span class="w"> </span><span class="n">fontconfig</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">fontconfig</span><span class="o">-</span><span class="mf">2.13.1</span><span class="o">-</span><span class="n">h1f4a5ec_0</span>
<span class="w"> </span><span class="n">freetype</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">freetype</span><span class="o">-</span><span class="mf">2.11.0</span><span class="o">-</span><span class="n">h1192e45_0</span>
<span class="w"> </span><span class="n">fribidi</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">fribidi</span><span class="o">-</span><span class="mf">1.0.10</span><span class="o">-</span><span class="n">h1a28f6b_0</span>
<span class="w"> </span><span class="n">gdk</span><span class="o">-</span><span class="n">pixbuf</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">gdk</span><span class="o">-</span><span class="n">pixbuf</span><span class="o">-</span><span class="mf">2.42.6</span><span class="o">-</span><span class="n">h74ef11a_4</span>
<span class="w"> </span><span class="n">gettext</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">gettext</span><span class="o">-</span><span class="mf">0.21.0</span><span class="o">-</span><span class="n">h826f4ad_0</span>
<span class="w"> </span><span class="n">giflib</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">giflib</span><span class="o">-</span><span class="mf">5.2.1</span><span class="o">-</span><span class="n">h1a28f6b_0</span>
<span class="w"> </span><span class="n">glib</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">glib</span><span class="o">-</span><span class="mf">2.69.1</span><span class="o">-</span><span class="n">h98b2900_1</span>
<span class="w"> </span><span class="n">gobject</span><span class="o">-</span><span class="n">introspec</span><span class="o">~</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">gobject</span><span class="o">-</span><span class="n">introspection</span><span class="o">-</span><span class="mf">1.68.0</span><span class="o">-</span><span class="n">py38h3459c9f_3</span>
<span class="w"> </span><span class="n">graphite2</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">graphite2</span><span class="o">-</span><span class="mf">1.3.14</span><span class="o">-</span><span class="n">h0e5e14a_0</span>
<span class="w"> </span><span class="n">gtk3</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">gtk3</span><span class="o">-</span><span class="mf">3.24.21</span><span class="o">-</span><span class="n">h321fa23_1</span>
<span class="w"> </span><span class="n">harfbuzz</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">harfbuzz</span><span class="o">-</span><span class="mf">2.8.1</span><span class="o">-</span><span class="n">hffeda63_0</span>
<span class="w"> </span><span class="n">hicolor</span><span class="o">-</span><span class="n">icon</span><span class="o">-</span><span class="n">theme</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">hicolor</span><span class="o">-</span><span class="n">icon</span><span class="o">-</span><span class="n">theme</span><span class="o">-</span><span class="mf">0.17</span><span class="o">-</span><span class="n">hca03da5_2</span>
<span class="w"> </span><span class="n">icu</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">icu</span><span class="o">-</span><span class="mf">68.1</span><span class="o">-</span><span class="n">hc377ac9_0</span>
<span class="w"> </span><span class="n">jpeg</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">jpeg</span><span class="o">-</span><span class="mi">9</span><span class="n">e</span><span class="o">-</span><span class="n">h1a28f6b_0</span>
<span class="w"> </span><span class="n">krb5</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">krb5</span><span class="o">-</span><span class="mf">1.19.2</span><span class="o">-</span><span class="n">h3b8d789_0</span>
<span class="w"> </span><span class="n">libedit</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">libedit</span><span class="o">-</span><span class="mf">3.1.20210910</span><span class="o">-</span><span class="n">h1a28f6b_0</span>
<span class="w"> </span><span class="n">libevent</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">libevent</span><span class="o">-</span><span class="mf">2.1.12</span><span class="o">-</span><span class="n">hf27765b_0</span>
<span class="w"> </span><span class="n">libiconv</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">libiconv</span><span class="o">-</span><span class="mf">1.16</span><span class="o">-</span><span class="n">h1a28f6b_2</span>
<span class="w"> </span><span class="n">libpng</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">libpng</span><span class="o">-</span><span class="mf">1.6.37</span><span class="o">-</span><span class="n">hb8d0fd4_0</span>
<span class="w"> </span><span class="n">libpq</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">libpq</span><span class="o">-</span><span class="mf">12.9</span><span class="o">-</span><span class="n">h65cfe13_1</span>
<span class="w"> </span><span class="n">librsvg</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">librsvg</span><span class="o">-</span><span class="mf">2.50.7</span><span class="o">-</span><span class="n">h90a7944_0</span>
<span class="w"> </span><span class="n">libtiff</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">libtiff</span><span class="o">-</span><span class="mf">4.2.0</span><span class="o">-</span><span class="n">h01837e1_1</span>
<span class="w"> </span><span class="n">libwebp</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">libwebp</span><span class="o">-</span><span class="mf">1.2.2</span><span class="o">-</span><span class="n">h68602c7_0</span>
<span class="w"> </span><span class="n">libwebp</span><span class="o">-</span><span class="n">base</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">libwebp</span><span class="o">-</span><span class="n">base</span><span class="o">-</span><span class="mf">1.2.2</span><span class="o">-</span><span class="n">h1a28f6b_0</span>
<span class="w"> </span><span class="n">libxml2</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">libxml2</span><span class="o">-</span><span class="mf">2.9.14</span><span class="o">-</span><span class="n">h8c5e841_0</span>
<span class="w"> </span><span class="n">libxslt</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">libxslt</span><span class="o">-</span><span class="mf">1.1.34</span><span class="o">-</span><span class="n">h9833966_0</span>
<span class="w"> </span><span class="n">llvm</span><span class="o">-</span><span class="n">openmp</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">llvm</span><span class="o">-</span><span class="n">openmp</span><span class="o">-</span><span class="mf">12.0.0</span><span class="o">-</span><span class="n">haf9daa7_1</span>
<span class="w"> </span><span class="n">lz4</span><span class="o">-</span><span class="n">c</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">lz4</span><span class="o">-</span><span class="n">c</span><span class="o">-</span><span class="mf">1.9.3</span><span class="o">-</span><span class="n">hc377ac9_0</span>
<span class="w"> </span><span class="n">ninja</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">ninja</span><span class="o">-</span><span class="mf">1.10.2</span><span class="o">-</span><span class="n">hca03da5_5</span>
<span class="w"> </span><span class="n">ninja</span><span class="o">-</span><span class="n">base</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">ninja</span><span class="o">-</span><span class="n">base</span><span class="o">-</span><span class="mf">1.10.2</span><span class="o">-</span><span class="n">h525c30c_5</span>
<span class="w"> </span><span class="n">nspr</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">nspr</span><span class="o">-</span><span class="mf">4.33</span><span class="o">-</span><span class="n">hc377ac9_0</span>
<span class="w"> </span><span class="n">nss</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">nss</span><span class="o">-</span><span class="mf">3.74</span><span class="o">-</span><span class="n">h142855e_0</span>
<span class="w"> </span><span class="n">pango</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">pango</span><span class="o">-</span><span class="mf">1.48.7</span><span class="o">-</span><span class="n">h79d33a7_0</span>
<span class="w"> </span><span class="n">pcre</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">pcre</span><span class="o">-</span><span class="mf">8.45</span><span class="o">-</span><span class="n">hc377ac9_0</span>
<span class="w"> </span><span class="n">pixman</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">pixman</span><span class="o">-</span><span class="mf">0.40.0</span><span class="o">-</span><span class="n">h1a28f6b_0</span>
<span class="w"> </span><span class="n">pyqt</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">pyqt</span><span class="o">-</span><span class="mf">5.15.2</span><span class="o">-</span><span class="n">py38he8f2410_0</span>
<span class="w"> </span><span class="n">qt</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">qt</span><span class="o">-</span><span class="mf">5.15.2</span><span class="o">-</span><span class="n">h4e944ae_2</span>
<span class="w"> </span><span class="n">zstd</span><span class="w"> </span><span class="n">pkgs</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">osx</span><span class="o">-</span><span class="nl">arm64</span><span class="p">:</span><span class="err">:</span><span class="n">zstd</span><span class="o">-</span><span class="mf">1.5.2</span><span class="o">-</span><span class="n">h8574219_0</span>
<span class="n">Proceed</span><span class="w"> </span><span class="p">(</span><span class="o">[</span><span class="n">y</span><span class="o">]/</span><span class="n">n</span><span class="p">)</span><span class="vm">?</span>
</code></pre></div>
<blockquote>
<p>$ pip install leo</p>
</blockquote>
<p><img alt="PyQtWebEngine" src="https://ipic.zoomquiet.top/2022-05-29-zshot%202022-05-29%2021.41.02.jpg"/></p>
<p>也有安装失败, 持续自动降级现象...</p>
<p>最终成功安装了:</p>
<ul>
<li>Successfully built lazy-object-proxy wrapt tornado</li>
<li>Installing collected packages: zipp, wrapt, typing-extensions, traitlets, pytz, pyrsistent, MarkupSafe, lazy-object-proxy, dialite, attrs, webruntime, tornado, tomli, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, pscript, platformdirs, mccabe, jupyter-core, jsonschema, Jinja2, isort, importlib-metadata, imagesize, fastjsonschema, docutils, dill, babel, astroid, alabaster, sphinx, six, pylint, pyflakes, nbformat, future, flexx, leo</li>
<li>Successfully installed Jinja2-3.1.2 MarkupSafe-2.1.1 alabaster-0.7.12 astroid-2.11.5 attrs-21.4.0 babel-2.10.1 dialite-0.5.3 dill-0.3.5.1 docutils-0.17.1 fastjsonschema-2.15.3 flexx-0.8.4 future-0.18.2 imagesize-1.3.0 importlib-metadata-4.11.4 isort-5.10.1 jsonschema-4.5.1 jupyter-core-4.10.0 lazy-object-proxy-1.7.1 leo-5.9 mccabe-0.7.0 nbformat-5.4.0 platformdirs-2.5.2 pscript-0.7.7 pyflakes-2.4.0 pylint-2.13.9 pyrsistent-0.18.1 pytz-2022.1 six-1.16.0 snowballstemmer-2.2.0 sphinx-4.5.0 sphinxcontrib-applehelp-1.0.2 sphinxcontrib-devhelp-1.0.2 sphinxcontrib-htmlhelp-2.0.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-1.0.3 sphinxcontrib-serializinghtml-1.1.5 tomli-2.0.1 tornado-6.1 traitlets-5.2.1.post0 typing-extensions-4.2.0 webruntime-0.5.8 wrapt-1.14.1 zipp-3.8.0</li>
</ul>
<p>但是, 运行时报出神奇错误:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>leo
Sorry,<span class="w"> </span><span class="s2">"python"</span><span class="w"> </span>cannot<span class="w"> </span>be<span class="w"> </span>run<span class="w"> </span>on<span class="w"> </span>this<span class="w"> </span>version<span class="w"> </span>of<span class="w"> </span>macOS.<span class="w"> </span>Qt<span class="w"> </span>requires<span class="w"> </span>macOS<span class="w"> </span><span class="m">11</span>.1.0<span class="w"> </span>or<span class="w"> </span>later,<span class="w"> </span>you<span class="w"> </span>have<span class="w"> </span>macOS<span class="w"> </span><span class="m">10</span>.16.0.
</code></pre></div>
<h3 id="_1">混合安装:<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
<blockquote>
<p>果断 M1 环境中当前还是 brew 体系最靠谱</p>
</blockquote>
<p>参考: <a href="https://www.zhihu.com/question/437075754/answer/1993415429">MacBook Pro m1版本怎么安装python 的pyqt5? - 知乎</a></p>
<ul>
<li>先用 <code>abrew install pyqt@5</code> 完成针对 ARM 环境的 Qt 安装</li>
<li>然后将对应安装好的 lib 手工复制到对应 conda 环境中<ul>
<li>比如, 重新创建专用环境</li>
<li><code>conda create -n leo3912 python=3.9.12</code></li>
</ul>
</li>
<li>则, 手工复制的是:<ul>
<li><code>/opt/homebrew/Cellar/pyqt@5/5.15.6/lib/python3.9/site-packages/</code> 中所有目录</li>
<li>到 <code>/opt/homebrew/Caskroom/miniconda/base/envs/leo3912/lib/python3.9/site-packages/</code></li>
</ul>
</li>
</ul>
<p>包含:</p>
<div class="highlight"><pre><span></span><code>PyQt3D-5.15.5.dist-info
PyQt5
PyQt5-5.15.6.dist-info
PyQt5_sip-12.9.0-py3.9.egg-info
PyQtChart-5.15.5.dist-info
PyQtDataVisualization-5.15.5.dist-info
PyQtNetworkAuth-5.15.5.dist-info
PyQtPurchasing-5.15.5.dist-info
</code></pre></div>
<p>从官方 <a href="https://github.com/leo-editor/leo-editor/releases/latest">Latest</a> 链接中下载最新原代码包, 部署到 <code>/opt/bin</code></p>
<p>然后, 在对应环境中调用:</p>
<div class="highlight"><pre><span></span><code><span class="p">(</span><span class="n">conda</span><span class="p">:</span><span class="w"> </span><span class="n">leo3912</span><span class="p">)</span>
<span class="o">$</span><span class="w"> </span><span class="n">python</span><span class="w"> </span><span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">leo</span><span class="o">/</span><span class="n">launchLeo</span><span class="o">.</span><span class="n">py</span>
<span class="n">setting</span><span class="w"> </span><span class="n">leoID</span><span class="w"> </span><span class="n">from</span><span class="w"> </span><span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s1">'USER'</span><span class="p">):</span><span class="w"> </span><span class="s1">'zoomq'</span>
<span class="n">PYLINTHOME</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">now</span><span class="w"> </span><span class="s1">'/Users/zoomq/Library/Caches/pylint'</span><span class="w"> </span><span class="n">but</span><span class="w"> </span><span class="n">obsolescent</span><span class="w"> </span><span class="s1">'/Users/zoomq/.pylint.d'</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">found</span><span class="p">;</span><span class="w"> </span><span class="n">you</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">safely</span><span class="w"> </span><span class="n">remove</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">latter</span>
<span class="n">duplicate</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="ow">not</span><span class="w"> </span><span class="n">conflicting</span><span class="p">)</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="n">bindings</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">myLeoSettings</span><span class="o">.</span><span class="n">leo</span>
<span class="n">all</span><span class="w"> </span><span class="n">Alt</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="n">move</span><span class="o">-</span><span class="n">past</span><span class="o">-</span><span class="n">close</span>
<span class="n">all</span><span class="w"> </span><span class="n">Alt</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="n">move</span><span class="o">-</span><span class="n">past</span><span class="o">-</span><span class="n">close</span>
<span class="n">duplicate</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="ow">not</span><span class="w"> </span><span class="n">conflicting</span><span class="p">)</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="n">bindings</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">myLeoSettings</span><span class="o">.</span><span class="n">leo</span>
<span class="n">all</span><span class="w"> </span><span class="n">Alt</span><span class="o">+</span><span class="p">}</span><span class="w"> </span><span class="n">forward</span><span class="o">-</span><span class="n">paragraph</span>
<span class="n">all</span><span class="w"> </span><span class="n">Alt</span><span class="o">+</span><span class="p">}</span><span class="w"> </span><span class="n">forward</span><span class="o">-</span><span class="n">paragraph</span><span class="o">-</span><span class="n">extend</span><span class="o">-</span><span class="n">selection</span>
<span class="n">duplicate</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="ow">not</span><span class="w"> </span><span class="n">conflicting</span><span class="p">)</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="n">bindings</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">myLeoSettings</span><span class="o">.</span><span class="n">leo</span>
<span class="n">all</span><span class="w"> </span><span class="n">Ctrl</span><span class="o">+</span><span class="p">(</span><span class="w"> </span><span class="n">add</span><span class="o">-</span><span class="n">comments</span>
<span class="n">all</span><span class="w"> </span><span class="n">Ctrl</span><span class="o">+</span><span class="p">(</span><span class="w"> </span><span class="n">add</span><span class="o">-</span><span class="n">comments</span>
<span class="n">duplicate</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="ow">not</span><span class="w"> </span><span class="n">conflicting</span><span class="p">)</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="n">bindings</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">myLeoSettings</span><span class="o">.</span><span class="n">leo</span>
<span class="n">all</span><span class="w"> </span><span class="n">Ctrl</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="n">delete</span><span class="o">-</span><span class="n">comments</span>
<span class="n">all</span><span class="w"> </span><span class="n">Ctrl</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="n">delete</span><span class="o">-</span><span class="n">comments</span>
<span class="n">all</span><span class="w"> </span><span class="n">Ctrl</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="n">delete</span><span class="o">-</span><span class="n">comments</span>
<span class="n">duplicate</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="ow">not</span><span class="w"> </span><span class="n">conflicting</span><span class="p">)</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="n">bindings</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">myLeoSettings</span><span class="o">.</span><span class="n">leo</span>
<span class="n">all</span><span class="w"> </span><span class="n">Ctrl</span><span class="o">+</span><span class="p">{</span><span class="w"> </span><span class="n">promote</span>
<span class="n">all</span><span class="w"> </span><span class="n">Ctrl</span><span class="o">+</span><span class="p">{</span><span class="w"> </span><span class="n">promote</span>
<span class="n">duplicate</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="ow">not</span><span class="w"> </span><span class="n">conflicting</span><span class="p">)</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="n">bindings</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">myLeoSettings</span><span class="o">.</span><span class="n">leo</span>
<span class="n">all</span><span class="w"> </span><span class="n">Ctrl</span><span class="o">+</span><span class="p">}</span><span class="w"> </span><span class="n">demote</span>
<span class="n">all</span><span class="w"> </span><span class="n">Ctrl</span><span class="o">+</span><span class="p">}</span><span class="w"> </span><span class="n">demote</span>
<span class="n">Leo</span><span class="w"> </span><span class="mf">6.6</span><span class="o">.</span><span class="mi">2</span>
<span class="n">Python</span><span class="w"> </span><span class="mf">3.9</span><span class="o">.</span><span class="mi">12</span><span class="p">,</span><span class="w"> </span><span class="n">PyQt</span><span class="w"> </span><span class="n">version</span><span class="w"> </span><span class="mf">5.15</span><span class="o">.</span><span class="mi">3</span>
<span class="n">darwin</span>
<span class="n">expand_css_constants</span><span class="w"> </span><span class="n">Unresolved</span><span class="w"> </span><span class="err">@</span><span class="n">constants</span>
<span class="p">[</span>
<span class="w"> </span><span class="s1">'@bookmarks_base_decoration'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@bookmarks_children_family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@bookmarks_base_border'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@bookmarks_base_family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@checkbox-font-family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@dialog-font-family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@dialog-font-weight'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@status-font-family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@dialog-font-style'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@dialog-font-size'</span>
<span class="p">]</span>
<span class="n">qt</span><span class="o">.</span><span class="n">qpa</span><span class="o">.</span><span class="n">fonts</span><span class="p">:</span><span class="w"> </span><span class="n">Populating</span><span class="w"> </span><span class="n">font</span><span class="w"> </span><span class="n">family</span><span class="w"> </span><span class="n">aliases</span><span class="w"> </span><span class="n">took</span><span class="w"> </span><span class="mi">163</span><span class="w"> </span><span class="n">ms</span><span class="o">.</span><span class="w"> </span><span class="n">Replace</span><span class="w"> </span><span class="n">uses</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">missing</span><span class="w"> </span><span class="n">font</span><span class="w"> </span><span class="n">family</span><span class="w"> </span><span class="s2">"Monoid Retina"</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">one</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">exists</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">avoid</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">cost</span><span class="o">.</span>
<span class="ow">not</span><span class="w"> </span><span class="n">found</span><span class="p">:</span><span class="w"> </span><span class="s1">'@auto 4py3ch.md'</span>
<span class="ow">not</span><span class="w"> </span><span class="n">found</span><span class="p">:</span><span class="w"> </span><span class="s1">'@auto 4py4ch.md'</span>
<span class="ow">not</span><span class="w"> </span><span class="n">found</span><span class="p">:</span><span class="w"> </span><span class="s1">'@auto 4py5ch.md'</span>
<span class="ow">not</span><span class="w"> </span><span class="n">found</span><span class="p">:</span><span class="w"> </span><span class="s1">'@auto 4py6ch.md'</span>
<span class="ow">not</span><span class="w"> </span><span class="n">found</span><span class="p">:</span><span class="w"> </span><span class="s1">'@auto 4pyend.md'</span>
<span class="ow">not</span><span class="w"> </span><span class="n">found</span><span class="p">:</span><span class="w"> </span><span class="o">/</span><span class="n">Users</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/</span><span class="n">Sites</span><span class="o">/</span><span class="mf">101.</span><span class="n">camp</span><span class="o">/</span><span class="n">utility</span><span class="o">/</span><span class="n">announcer</span><span class="o">/</span><span class="n">tasks</span><span class="o">.</span><span class="n">py</span>
<span class="ow">not</span><span class="w"> </span><span class="n">found</span><span class="p">:</span><span class="w"> </span><span class="o">/</span><span class="n">Users</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/</span><span class="n">Sites</span><span class="o">/</span><span class="mf">101.</span><span class="n">camp</span><span class="o">/</span><span class="n">utility</span><span class="o">/</span><span class="n">pol</span><span class="o">/</span><span class="n">camp</span><span class="o">.</span><span class="n">yaml</span>
<span class="ow">not</span><span class="w"> </span><span class="n">found</span><span class="p">:</span><span class="w"> </span><span class="o">/</span><span class="n">Users</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/</span><span class="n">Sites</span><span class="o">/</span><span class="mf">101.</span><span class="n">camp</span><span class="o">/</span><span class="n">utility</span><span class="o">/</span><span class="n">pol</span><span class="o">/</span><span class="n">st</span><span class="o">.</span><span class="n">py</span>
<span class="ow">not</span><span class="w"> </span><span class="n">found</span><span class="p">:</span><span class="w"> </span><span class="o">/</span><span class="n">Users</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/</span><span class="n">Sites</span><span class="o">/</span><span class="mf">101.</span><span class="n">camp</span><span class="o">/</span><span class="n">utility</span><span class="o">/</span><span class="n">pol</span><span class="o">/</span><span class="n">tasks</span><span class="o">.</span><span class="n">py</span>
<span class="ow">not</span><span class="w"> </span><span class="n">found</span><span class="p">:</span><span class="w"> </span><span class="o">/</span><span class="n">Users</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/</span><span class="n">Sites</span><span class="o">/</span><span class="mf">101.</span><span class="n">camp</span><span class="o">/</span><span class="n">utility</span><span class="o">/</span><span class="nb">pow</span><span class="o">/</span><span class="n">tasks</span><span class="o">.</span><span class="n">py</span>
<span class="ow">not</span><span class="w"> </span><span class="n">found</span><span class="p">:</span><span class="w"> </span><span class="o">/</span><span class="n">Users</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/</span><span class="n">Sites</span><span class="o">/</span><span class="mf">101.</span><span class="n">camp</span><span class="o">/</span><span class="n">_course</span><span class="o">/</span><span class="mi">101</span><span class="n">camp1py</span><span class="o">/</span><span class="nb">pow</span><span class="o">/</span><span class="n">tasks</span><span class="o">.</span><span class="n">py</span>
<span class="n">expand_css_constants</span><span class="w"> </span><span class="n">Unresolved</span><span class="w"> </span><span class="err">@</span><span class="n">constants</span>
<span class="p">[</span>
<span class="w"> </span><span class="s1">'@bookmarks_base_decoration'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@bookmarks_children_family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@bookmarks_base_border'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@bookmarks_base_family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@checkbox-font-family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@dialog-font-family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@dialog-font-weight'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@status-font-family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@dialog-font-style'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@dialog-font-size'</span>
<span class="p">]</span>
<span class="n">expand_css_constants</span><span class="w"> </span><span class="n">Unresolved</span><span class="w"> </span><span class="err">@</span><span class="n">constants</span>
<span class="p">[</span>
<span class="w"> </span><span class="s1">'@bookmarks_base_decoration'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@bookmarks_children_family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@bookmarks_base_border'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@bookmarks_base_family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@checkbox-font-family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@dialog-font-family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@dialog-font-weight'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@status-font-family'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@dialog-font-style'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'@dialog-font-size'</span>
<span class="p">]</span>
<span class="n">wrote</span><span class="w"> </span><span class="o">/</span><span class="n">Users</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/.</span><span class="n">leo</span><span class="o">/</span><span class="n">leo</span><span class="o">.</span><span class="n">session</span>
<span class="n">wrote</span><span class="w"> </span><span class="n">recent</span><span class="w"> </span><span class="n">file</span><span class="p">:</span><span class="w"> </span><span class="o">/</span><span class="n">Users</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/.</span><span class="n">leo</span><span class="o">/.</span><span class="n">leoRecentFiles</span><span class="o">.</span><span class="n">txt</span>
</code></pre></div>
<p><img alt="Leo 6.6.2" src="https://ipic.zoomquiet.top/2022-05-29-zshot%202022-05-29%2022.10.10-1.jpg"/></p>
<p>可以正常启动后, 将指令包装为一个别名:</p>
<p><code>~/.bash_profile</code> 中追加:</p>
<div class="highlight"><pre><span></span><code>alias leo6lanch="python /opt/bin/leo/launchLeo.py >> /dev/null 2>&1 &"
</code></pre></div>
<p>日常在终端中就两步调用:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>conda<span class="w"> </span>activate<span class="w"> </span>leo3912
$<span class="w"> </span>leo6lanch
</code></pre></div>
<h4 id="ps">PS:<a class="headerlink" href="#ps" title="Permanent link">¶</a></h4>
<p>如果以上安装 leo 后, 直接在 conda 环境中运行, 将发现:</p>
<div class="highlight"><pre><span></span><code><span class="o">$</span><span class="w"> </span><span class="n">leo</span>
<span class="n">Traceback</span><span class="w"> </span><span class="p">(</span><span class="n">most</span><span class="w"> </span><span class="n">recent</span><span class="w"> </span><span class="n">call</span><span class="w"> </span><span class="n">last</span><span class="p">):</span>
<span class="w"> </span><span class="n">File</span><span class="w"> </span><span class="s2">"/opt/homebrew/Caskroom/miniconda/base/envs/leo3912/bin/leo"</span><span class="p">,</span><span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="o"><</span><span class="n">module</span><span class="o">></span>
<span class="w"> </span><span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="n">run</span><span class="p">())</span>
<span class="w"> </span><span class="n">File</span><span class="w"> </span><span class="s2">"/opt/homebrew/Caskroom/miniconda/base/envs/leo3912/lib/python3.9/site-packages/leo/core/runLeo.py"</span><span class="p">,</span><span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="mi">72</span><span class="p">,</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">run</span>
<span class="w"> </span><span class="n">g</span><span class="o">.</span><span class="n">app</span><span class="o">.</span><span class="n">loadManager</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">fileName</span><span class="p">,</span><span class="w"> </span><span class="n">pymacs</span><span class="p">)</span>
<span class="w"> </span><span class="n">File</span><span class="w"> </span><span class="s2">"/opt/homebrew/Caskroom/miniconda/base/envs/leo3912/lib/python3.9/site-packages/leo/core/leoApp.py"</span><span class="p">,</span><span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="mi">2252</span><span class="p">,</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="nb">load</span>
<span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">time</span><span class="o">.</span><span class="n">clock</span><span class="p">()</span>
<span class="n">AttributeError</span><span class="p">:</span><span class="w"> </span><span class="n">module</span><span class="w"> </span><span class="s1">'time'</span><span class="w"> </span><span class="n">has</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">attribute</span><span class="w"> </span><span class="s1">'clock'</span>
</code></pre></div>
<p>经过代码探查发现, <code>time.clock()</code> 已经在 Py3.8 之后废弃,
也就是说, Leo 最新版本中一定不包含这种函式,
即, pip 安装过程中为了兼容, 自动降级到某个老版本中了...
经过探查:</p>
<p>/opt/homebrew/Caskroom/miniconda/base/envs/leo3912/lib/python3.9/site-packages/leo/core/leoVersion.py</p>
<p>果断写着 <code>5.9-b2</code> , 是19年的版本;</p>
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link">¶</a></h2>
<blockquote>
<p>小结</p>
</blockquote>
<p>看起来复杂, 其实只是探查了各种可能性后, 才知道如何可以合理的在 M1 芯片的 macOS 环境中安装 Leo:</p>
<ul>
<li>基于 arm 版本 homebrew 安装 <code>PyQt@5</code></li>
<li>基于 miniconda 的 Py3.9 环境安装其它依赖</li>
<li>基于 官方源代码中的 <code>launchLeo.py</code> 来启动</li>
</ul>
<p>具体关键指令:</p>
<ul>
<li>abrew install PyQt@5</li>
<li>abrew install miniconda<ul>
<li>注意, 正式使用前, 要运行: <code>conda init bash</code></li>
<li>参考: <a href="https://docs.conda.io/projects/conda/en/latest/dev-guide/deep-dive-activation.html">Deep dive: conda init and activate — conda 4.13.0.post1+0adcd595 documentation</a></li>
</ul>
</li>
</ul>
<p>应该可以在 <code>~/.bash_profile</code> 中找到以下类似配置:</p>
<div class="highlight"><pre><span></span><code><span class="c1"># >>> conda initialize >>></span>
<span class="c1"># !! Contents within this block are managed by 'conda init' !!</span>
<span class="n">__conda_setup</span><span class="o">=</span><span class="s2">"$('/opt/homebrew/Caskroom/miniconda/base/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"</span>
<span class="k">if</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="o">$</span><span class="err">?</span><span class="w"> </span><span class="o">-</span><span class="n">eq</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">];</span><span class="w"> </span><span class="n">then</span>
<span class="w"> </span><span class="n">eval</span><span class="w"> </span><span class="s2">"$__conda_setup"</span>
<span class="k">else</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="o">-</span><span class="n">f</span><span class="w"> </span><span class="s2">"/opt/homebrew/Caskroom/miniconda/base/etc/profile.d/conda.sh"</span><span class="w"> </span><span class="p">];</span><span class="w"> </span><span class="n">then</span>
<span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="s2">"/opt/homebrew/Caskroom/miniconda/base/etc/profile.d/conda.sh"</span>
<span class="w"> </span><span class="k">else</span>
<span class="w"> </span><span class="k">export</span><span class="w"> </span><span class="n">PATH</span><span class="o">=</span><span class="s2">"/opt/homebrew/Caskroom/miniconda/base/bin:$PATH"</span>
<span class="w"> </span><span class="n">fi</span>
<span class="n">fi</span>
<span class="n">unset</span><span class="w"> </span><span class="n">__conda_setup</span>
<span class="c1"># <<< conda initialize <<<</span>
</code></pre></div>
<ul>
<li>用 conda info 检验当前环境是否正常</li>
<li>然后, 创建 Leo 专用环境:<ul>
<li>conda create -n leo3912 python=3.9.12</li>
<li>注意, 当前 brew 环境中默认安装的是 <code>python@3.9</code> 环境, 所以, 对应 conda 环境也应该是 3.9 以上的</li>
</ul>
</li>
<li>手工将 PyQt 包从 brew 环境中复制到 conda 对应环境中, 例如:<ul>
<li><code>/opt/homebrew/Cellar/pyqt@5/5.15.6/lib/python3.9/site-packages/</code> 中所有目录</li>
<li>到 <code>/opt/homebrew/Caskroom/miniconda/base/envs/leo3912/lib/python3.9/site-packages/</code></li>
</ul>
</li>
<li>手工从 github 中下载部署最新 Leo 源代码</li>
<li>然后, 从 conda 环境中调用 <code>launchLeo.py</code> 即可</li>
<li>可以正常启动后, 将指令包装为一个别名:</li>
</ul>
<p><code>~/.bash_profile</code> 中追加:</p>
<div class="highlight"><pre><span></span><code>alias leo6lanch="python /opt/bin/leo/launchLeo.py >> /dev/null 2>&1 &"
</code></pre></div>
<p>日常在终端中就两步调用:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>conda<span class="w"> </span>activate<span class="w"> </span>leo3912
$<span class="w"> </span>leo6lanch
</code></pre></div>
<h2 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h2>
<ul>
<li>220529 整理为文章</li>
<li>220528 miniconda 成功</li>
<li>220527 决定重来</li>
<li>220506 再尝试, 未果</li>
<li>220401 尝试, 未果</li>
<li>211113 触发, 存疑</li>
</ul>呢喃s/ 22.052022-05-01T20:42:00+08:002022-08-18T15:37:14+08:00ZoomQuiettag:blog.zoomquiet.io,2022-05-01:/220501-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2022.05</p><h2 id="at-202205">呢喃 at 2022.05<a class="headerlink" href="#at-202205" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2205.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.001.jpeg"/>
<img alt="2205.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.002.jpeg"/>
<img alt="2205.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.003.jpeg"/>
<img alt="2205.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.004.jpeg"/>
<img alt="2205.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.005.jpeg"/>
<img alt="2205.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.006.jpeg"/>
<img alt="2205.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.007.jpeg"/>
<img alt="2205.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.008.jpeg"/>
<img alt="2205.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.009.jpeg"/>
<img alt="2205.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.010.jpeg"/>
<img alt="2205.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.011.jpeg"/>
<img alt="2205.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.012.jpeg"/>
<img alt="2205.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.013.jpeg"/>
<img alt="2205.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.014.jpeg"/>
<img alt="2205.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.015.jpeg"/>
<img alt="2205.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.016.jpeg"/>
<img alt="2205.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.017.jpeg"/>
<img alt="2205.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.018.jpeg"/>
<img alt="2205.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.019.jpeg"/>
<img alt="2205.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.020.jpeg"/>
<img alt="2205.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.021.jpeg"/>
<img alt="2205.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.022.jpeg"/>
<img alt="2205.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.023.jpeg"/>
<img alt="2205.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.024.jpeg"/>
<img alt="2205.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.025.jpeg"/>
<img alt="2205.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.026.jpeg"/>
<img alt="2205.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.027.jpeg"/>
<img alt="2205.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.028.jpeg"/>
<img alt="2205.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.029.jpeg"/>
<img alt="2205.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.030.jpeg"/>
<img alt="2205.031" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2205.031.jpeg"/></p>呢喃s/ 22.042022-04-01T20:42:00+08:002022-08-18T15:37:27+08:00ZoomQuiettag:blog.zoomquiet.io,2022-04-01:/220401-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2022.04</p><h2 id="at-202204">呢喃 at 2022.04<a class="headerlink" href="#at-202204" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2204.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.001.jpeg"/>
<img alt="2204.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.002.jpeg"/>
<img alt="2204.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.003.jpeg"/>
<img alt="2204.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.004.jpeg"/>
<img alt="2204.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.005.jpeg"/>
<img alt="2204.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.006.jpeg"/>
<img alt="2204.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.007.jpeg"/>
<img alt="2204.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.008.jpeg"/>
<img alt="2204.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.009.jpeg"/>
<img alt="2204.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.010.jpeg"/>
<img alt="2204.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.011.jpeg"/>
<img alt="2204.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.012.jpeg"/>
<img alt="2204.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.013.jpeg"/>
<img alt="2204.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.014.jpeg"/>
<img alt="2204.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.015.jpeg"/>
<img alt="2204.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.016.jpeg"/>
<img alt="2204.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.017.jpeg"/>
<img alt="2204.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.018.jpeg"/>
<img alt="2204.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.019.jpeg"/>
<img alt="2204.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.020.jpeg"/>
<img alt="2204.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.021.jpeg"/>
<img alt="2204.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.022.jpeg"/>
<img alt="2204.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.023.jpeg"/>
<img alt="2204.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.024.jpeg"/>
<img alt="2204.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.025.jpeg"/>
<img alt="2204.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.026.jpeg"/>
<img alt="2204.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.027.jpeg"/>
<img alt="2204.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.028.jpeg"/>
<img alt="2204.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.029.jpeg"/>
<img alt="2204.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2204.030.jpeg"/></p>呢喃s/ 22.032022-03-01T20:42:00+08:002022-08-18T15:37:41+08:00ZoomQuiettag:blog.zoomquiet.io,2022-03-01:/220301-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2022.03</p><h2 id="at-202203">呢喃 at 2022.03<a class="headerlink" href="#at-202203" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2203.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.001.jpeg"/>
<img alt="2203.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.002.jpeg"/>
<img alt="2203.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.003.jpeg"/>
<img alt="2203.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.004.jpeg"/>
<img alt="2203.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.005.jpeg"/>
<img alt="2203.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.006.jpeg"/>
<img alt="2203.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.007.jpeg"/>
<img alt="2203.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.008.jpeg"/>
<img alt="2203.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.009.jpeg"/>
<img alt="2203.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.010.jpeg"/>
<img alt="2203.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.011.jpeg"/>
<img alt="2203.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.012.jpeg"/>
<img alt="2203.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.013.jpeg"/>
<img alt="2203.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.014.jpeg"/>
<img alt="2203.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.015.jpeg"/>
<img alt="2203.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.016.jpeg"/>
<img alt="2203.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.017.jpeg"/>
<img alt="2203.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.018.jpeg"/>
<img alt="2203.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.019.jpeg"/>
<img alt="2203.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.020.jpeg"/>
<img alt="2203.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.021.jpeg"/>
<img alt="2203.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.022.jpeg"/>
<img alt="2203.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.023.jpeg"/>
<img alt="2203.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.024.jpeg"/>
<img alt="2203.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.025.jpeg"/>
<img alt="2203.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.026.jpeg"/>
<img alt="2203.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.027.jpeg"/>
<img alt="2203.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.028.jpeg"/>
<img alt="2203.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.029.jpeg"/>
<img alt="2203.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.030.jpeg"/>
<img alt="2203.031" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2203.031.jpeg"/></p>呢喃s/ 22.022022-02-01T20:42:00+08:002022-08-18T15:37:56+08:00ZoomQuiettag:blog.zoomquiet.io,2022-02-01:/220201-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2022.02</p><h2 id="at-202202">呢喃 at 2022.02<a class="headerlink" href="#at-202202" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2202.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.001.jpeg"/>
<img alt="2202.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.002.jpeg"/>
<img alt="2202.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.003.jpeg"/>
<img alt="2202.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.004.jpeg"/>
<img alt="2202.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.005.jpeg"/>
<img alt="2202.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.006.jpeg"/>
<img alt="2202.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.007.jpeg"/>
<img alt="2202.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.008.jpeg"/>
<img alt="2202.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.009.jpeg"/>
<img alt="2202.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.010.jpeg"/>
<img alt="2202.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.011.jpeg"/>
<img alt="2202.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.012.jpeg"/>
<img alt="2202.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.013.jpeg"/>
<img alt="2202.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.014.jpeg"/>
<img alt="2202.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.015.jpeg"/>
<img alt="2202.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.016.jpeg"/>
<img alt="2202.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.017.jpeg"/>
<img alt="2202.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.018.jpeg"/>
<img alt="2202.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.019.jpeg"/>
<img alt="2202.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.020.jpeg"/>
<img alt="2202.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.021.jpeg"/>
<img alt="2202.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.022.jpeg"/>
<img alt="2202.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.023.jpeg"/>
<img alt="2202.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.024.jpeg"/>
<img alt="2202.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.025.jpeg"/>
<img alt="2202.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.026.jpeg"/>
<img alt="2202.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.027.jpeg"/>
<img alt="2202.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2202.028.jpeg"/></p>呢喃s/ 22.012022-01-01T20:42:00+08:002022-08-18T15:38:06+08:00ZoomQuiettag:blog.zoomquiet.io,2022-01-01:/220101-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2022.01</p><h2 id="at-202201">呢喃 at 2022.01<a class="headerlink" href="#at-202201" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2201.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.001.jpeg"/>
<img alt="2201.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.002.jpeg"/>
<img alt="2201.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.003.jpeg"/>
<img alt="2201.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.004.jpeg"/>
<img alt="2201.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.005.jpeg"/>
<img alt="2201.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.006.jpeg"/>
<img alt="2201.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.007.jpeg"/>
<img alt="2201.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.008.jpeg"/>
<img alt="2201.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.009.jpeg"/>
<img alt="2201.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.010.jpeg"/>
<img alt="2201.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.011.jpeg"/>
<img alt="2201.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.012.jpeg"/>
<img alt="2201.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.013.jpeg"/>
<img alt="2201.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.014.jpeg"/>
<img alt="2201.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.015.jpeg"/>
<img alt="2201.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.016.jpeg"/>
<img alt="2201.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.017.jpeg"/>
<img alt="2201.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.018.jpeg"/>
<img alt="2201.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.019.jpeg"/>
<img alt="2201.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.020.jpeg"/>
<img alt="2201.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.021.jpeg"/>
<img alt="2201.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.022.jpeg"/>
<img alt="2201.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.023.jpeg"/>
<img alt="2201.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.024.jpeg"/>
<img alt="2201.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.025.jpeg"/>
<img alt="2201.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.026.jpeg"/>
<img alt="2201.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.027.jpeg"/>
<img alt="2201.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.028.jpeg"/>
<img alt="2201.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.029.jpeg"/>
<img alt="2201.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.030.jpeg"/>
<img alt="2201.031" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2201.031.jpeg"/></p>呢喃s/ 21.122021-12-01T20:42:00+08:002022-08-18T15:38:21+08:00ZoomQuiettag:blog.zoomquiet.io,2021-12-01:/211201-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2021.12</p><h2 id="at-202112">呢喃 at 2021.12<a class="headerlink" href="#at-202112" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2112.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.001.jpeg"/>
<img alt="2112.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.002.jpeg"/>
<img alt="2112.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.003.jpeg"/>
<img alt="2112.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.004.jpeg"/>
<img alt="2112.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.005.jpeg"/>
<img alt="2112.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.006.jpeg"/>
<img alt="2112.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.007.jpeg"/>
<img alt="2112.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.008.jpeg"/>
<img alt="2112.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.009.jpeg"/>
<img alt="2112.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.010.jpeg"/>
<img alt="2112.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.011.jpeg"/>
<img alt="2112.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.012.jpeg"/>
<img alt="2112.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.013.jpeg"/>
<img alt="2112.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.014.jpeg"/>
<img alt="2112.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.015.jpeg"/>
<img alt="2112.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.016.jpeg"/>
<img alt="2112.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.017.jpeg"/>
<img alt="2112.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.018.jpeg"/>
<img alt="2112.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.019.jpeg"/>
<img alt="2112.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.020.jpeg"/>
<img alt="2112.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.021.jpeg"/>
<img alt="2112.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.022.jpeg"/>
<img alt="2112.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.023.jpeg"/>
<img alt="2112.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.024.jpeg"/>
<img alt="2112.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.025.jpeg"/>
<img alt="2112.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.026.jpeg"/>
<img alt="2112.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.027.jpeg"/>
<img alt="2112.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.028.jpeg"/>
<img alt="2112.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.029.jpeg"/>
<img alt="2112.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.030.jpeg"/>
<img alt="2112.031" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2112.031.jpeg"/></p>如何安定进入 M1maxMBP2021-11-14T22:42:00+08:002021-11-15T09:59:31+08:00Zoom.Quiettag:blog.zoomquiet.io,2021-11-14:/211114M1max-re-inti-MBP.html
<h2 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<p>13年入的 MBP 坑,
当时 17吋 顶配, 在 MACAO 实体店拿的;
16年初突然不可用,
(后来检查才发现, 是长期使用功率不匹配的电源才反复导致主板出问题)
急忙去 …</p>
<h2 id="background">background<a class="headerlink" href="#background" title="Permanent link">¶</a></h2>
<p>13年入的 MBP 坑,
当时 17吋 顶配, 在 MACAO 实体店拿的;
16年初突然不可用,
(后来检查才发现, 是长期使用功率不匹配的电源才反复导致主板出问题)
急忙去 MACAO 新授权店拿了 13吋高配(i7,4核,16G内存,512G硬盘);
因为是主力开发/日常用机,
就没敢一直升级系统, 10.X 系列一直用下来;</p>
<p>到今年下半年, 明显撑不住了:</p>
<ul>
<li>OBS 录制 720P 以上视频, 撑不住10分钟就崩溃</li>
<li>腾讯会议本地录制, 30分钟的内容要转换20分钟</li>
<li>ffmpeg 进行视频处理, 几乎都是 0.42 倍率在进行</li>
<li>docker 容器一启动就要等待3分钟</li>
<li>...</li>
</ul>
<p>如此种种已经开始干挠日常工作/学习/创作/...</p>
<p>怎么办?
磕金/升级呗...</p>
<blockquote>
<p>忍了一年...</p>
</blockquote>
<p>去年 M1 芯片 Air 一出来就想买的,
但是, 大家都说 M1 还不成熟, 各种软件都要等待兼容...</p>
<p>就忍着, 一直到10月, 一下子有了 M1pre/max,
性能又翻倍了,
立即入手: 14吋, M1max 10核, 64G 内存, 1T 硬盘;</p>
<p>等了快三周, 终于到手, 如何开始安定迁入?</p>
<h2 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<blockquote>
<p>最短, 最平滑, 进入, 折腾最少</p>
</blockquote>
<p>日常依赖其实并不多主要就几块儿:</p>
<ul>
<li>终端相关:<ul>
<li>iTerm2 为界面</li>
<li>bash v4.4.12 配合 bash_it 定制日常环境</li>
<li>PyENV 管理多种 Python 运行时<ul>
<li>conda 管理 Leo 安装运行时</li>
</ul>
</li>
<li>RVM 管理多种 Ruby 运行时</li>
<li>NVM 管理多种 Node 运行时</li>
<li>ASDF 管理多种 Elixir 运行时</li>
<li>...以及各种 AliYun/Heroku/AWS/...依赖CLI 管理工具</li>
<li>特别是 HomeBrew, 管理了超过200种 UNIX 实用工具</li>
</ul>
</li>
<li>浏览器相关:<ul>
<li>WaterFox 安装使用传统 Firefox 插件, 以便查阅积累超过15年, <strong>30+万</strong>网页的本地资源库 ~ 基于 Scrapbook 收集管理, 但是 Firefox 56.0 版本之后不再支持原有插件体系, 只能迁移到 <code>水狐</code> 继续</li>
<li>Vivaldi 进行日常工作管理, 因为内置 <code>树状标签管理</code> 又兼容 Chrome 扩展而且没有 Google 广告</li>
<li>Brave 进行日常探索学习, 也兼容 Chrome 扩展</li>
<li>Edge 进行日常资源管理, 比如团队仓库/公众号/云资源/...兼容部分 Chrome 扩展</li>
<li>Chrome 进行日常 Google 系工具使用, 核心就是 gmail</li>
<li>Chromium 进行日常系统测试, 专门用以走查 web 系统功能</li>
<li>以上浏览器都需要关键拓展来确保日常最基础可用:<ul>
<li>SwitchyOmega ~ 快速代理切换工具, 以便使用不同网络来访问有关资源</li>
<li>The Great Suspender Original ~ 自动将不活跃标签内存回收</li>
<li>Create Link ~ 快速形成 Markdown 格式网地址文本</li>
<li>Choosy ~ 快速将网址丢入其它浏览器/应用中加载</li>
<li>...</li>
</ul>
</li>
<li>...以及部分终端中无头浏览器辅助进行爬虫开发</li>
</ul>
</li>
<li>开发相关:<ul>
<li>XCode ~ 获得基本编译支持</li>
<li>Sublime Text 3 ~ 获得快速编辑支持</li>
<li>VScode ~ 获得综合开发支持</li>
<li>DBeaver ~ 获得数据库管理界面</li>
<li>Docker+VirtualBox ~ 虚拟主机支持</li>
<li>...以及其它42+以上开发支持工具</li>
</ul>
</li>
<li>媒体相关:<ul>
<li>IINA+VLC 看视频</li>
<li>GIMP+Inkscape 进行图片处理</li>
<li>screenflow 进行视频编辑</li>
<li>...以及其它42+以上媒体处理工具</li>
</ul>
</li>
<li>系统相关:<ul>
<li>muCommander ~ 日常双窗口资源管理, 通过快捷键提高文件管理效率, JAVA 实现可运行在所有系统中, 当年从 WindowsNT 平台开始就习惯了有关操作</li>
<li>Display Menu ~ 快速调节不同显示器分辨率</li>
<li>Lunar+Flux ~ 快速调节所有显示器亮度/对比度/...</li>
<li>aText ~ 快速管理自定义常用短语</li>
<li>iPic ~ 快速上传图片到图床, 获得 markdown 格式图片引用文本</li>
<li>Spectacle ~ 窗口布局快捷键支持工具, 可以高效安排多窗口排列</li>
<li>Bartender ~ 从2就开始付费使用, 现在已经到 v4, 可以将 menu bar 中应用图标管理, 折叠到子菜单中...</li>
<li>Caffeine ~ 便捷激活 mac 系统不休眠</li>
<li>...以及其它42+以上系统增强工具</li>
</ul>
</li>
<li>办公相关:<ul>
<li>iWork ~ mac 味儿 Office</li>
<li>OpenOffice ~ linux 味儿 Office</li>
<li>WPS ~ 国产味儿 office</li>
<li>XMind+Freemind ~ 思维导图支持</li>
<li>yED+PlantUML ~ 流程图/架构图/... UML 味图谱支持</li>
<li>Axure+蓝湖 ~ 产品设计支持</li>
<li>微信/企业微信/QQ/Lark/zoom.us/Slack/... ~ 工作协同用工具栈</li>
<li>...以及其它42+以上团队协作支持工具</li>
</ul>
</li>
</ul>
<p>以及所有涉及正版软件的许可证升级/配置/采购/...</p>
<p>还有以往形成各种工程簇, 在本地不同目录入口中, 形成的对应快速<code>软链接</code> ...</p>
<h2 id="quickly">quickly<a class="headerlink" href="#quickly" title="Permanent link">¶</a></h2>
<p>以上所有, 都人工进行重新配置的话, 目测至少得一个月, 才能陆续到位,
毕竟是以往多年尝试/配置/选择的成果;</p>
<p>如何简洁完成呢?</p>
<p>(周5收到, 周1 就应该全面完成迁移, 以便投入日常工作)</p>
<p>快速尝试了几个姿势:</p>
<ul>
<li>人工配置, 光是安装 iTemer2 进行基本配置:<ul>
<li>字体</li>
<li>颜色</li>
<li>...etc, 就用了一小时</li>
<li>那么多常用工具逐一配置到可用, 绝对无法简单完成</li>
</ul>
</li>
<li>Time Machine ~ 常规推荐操作:<ul>
<li>以往专门配置了个 1T SSD 移动硬盘来进行备份</li>
<li>先用 4小时, 完成最新一次备份, 涉及40G 数据的更新</li>
<li>然后, 使用 <code>迁移助理</code> ~ 死活无法发现这个非法 <code>时间机器</code> ?</li>
<li>也可能, 用 10.X 系统备份的数据, 无法识别为 12.X 系统兼容时间备份</li>
</ul>
</li>
<li>rsync ~ 之前从 Windows -> Linux -> MAC 的异种系统迁移过程中立过大功<ul>
<li>用1小时, 将所有工作数据备份到另外移动硬盘中</li>
<li>再开始尝试同步时, 想到这只能完成数据迁移, 最耗时的应用配置并没有涉及...</li>
</ul>
</li>
<li>冷静一下, 搜索官方文档, 才发现:<ul>
<li><a href="https://support.apple.com/zh-cn/HT204350">将内容迁移到一台新的 Mac 上 - Apple 支持 (中国)</a></li>
<li><code>迁移助理</code> 这一实用工具有三种迁移姿势:<ul>
<li>从另一台 Mac 或是 Time Machine 备份中转送数据</li>
<li>从一个 Window 机器获得数据</li>
<li>发送数据到另一台 Mac</li>
</ul>
</li>
<li>老rMBP 保有所有正常使用环境和应用, 新 M1MBP 是目标机</li>
<li>都打开 <code>迁移助理</code> <ul>
<li>老rMBP 选择 <code>To another Mac</code></li>
<li>新 M1MBP 选择 <code>From a Mac</code></li>
<li>并明确对传送的帐号如何处理, 俺选择-><strong>创建新帐号</strong></li>
<li>然后点 <code>继续</code> 完成安全配对后, 即开始 <code>点对点</code> 传输</li>
<li>当然, 要先确保在同一个网络中</li>
</ul>
</li>
<li>看起来可行, 开始: </li>
</ul>
</li>
</ul>
<p><img alt="p2p" src="https://ipic.zoomquiet.top/2021-11-15-ScreenShot2021-11-15%2009.55.38.jpg"/></p>
<p>嗯嗯嗯...嘦10小时等一晩上就好,</p>
<p><img alt="80万文件" src="https://ipic.zoomquiet.top/2021-11-14-ScreenShot2021-11-14%2023.32.28.jpg"/></p>
<p>果然:</p>
<p>༄ sudo du -hs *</p>
<div class="highlight"><pre><span></span><code><span class="mf">111</span><span class="n">M</span><span class="w"> </span><span class="n">Shared</span>
<span class="mf">265</span><span class="n">G</span><span class="w"> </span><span class="n">zoomq</span>
<span class="mf">4.2</span><span class="n">G</span><span class="w"> </span><span class="n">zoomquiet</span>
</code></pre></div>
<p>༄ who i am</p>
<div class="highlight"><pre><span></span><code>zoomq ttys004 2021-11-14 18:58
</code></pre></div>
<p>手工尝试时, 创建用户是 <code>zoomquiet</code> 仅仅完成 iCloud 主要数据同步,
而 <code>zoomq</code> 是从 linux 时代, 使用超过 15 年的帐号,</p>
<p>经过一夜自动转送, 合理同步了超过 450G 数据:</p>
<p><img alt="450+G" src="https://ipic.zoomquiet.top/2021-11-14-ScreenShot2021-11-14%2023.37.06.jpg"/></p>
<p>进入系统后发现, 基本所有习惯操作都可用, 只有少数几个要对应配置:</p>
<ul>
<li>关键的 WaterFox 无法打开 Scrapbook 收集的本地网页, 以及控制界面<ul>
<li>搜索后, 尝试安装对应 <code>Waterfox Classic 2021.10</code> 版本</li>
<li>替代原先使用的 <code>Waterfox Classic 2019.12</code></li>
<li>只是, 专门为 M1 芯片开发的 <code>Waterfox.G4.0.2.1.ARM</code> 却也已经放弃了 FireFox 经典 XUL 扩展体系, 无法安装 Scrapbook 插件</li>
</ul>
</li>
<li>Python 经常崩溃, 搜索后, 手工重建有关 openssl 两个核心模块的链接即可修复</li>
<li>HomeBrew 要对应升级, 发现有大量失败, 要求先升级 XCode<ul>
<li>正常升级</li>
<li>并:<ul>
<li>$ sudo xcode-select --install</li>
<li>$ sudo xcodebuild -license accept </li>
</ul>
</li>
<li>再来, 也就都流畅完成了</li>
</ul>
</li>
</ul>
<p><img alt="12G" src="https://ipic.zoomquiet.top/2021-11-14-ScreenShot2021-11-15%2000.11.27.jpg"/></p>
<p>甚至于, 原先在 老 rMBP 每次安装要编译半小时的 ffmpeg 也无缝自动完成升级:</p>
<p><img alt="10核 ffmpeg" src="https://ipic.zoomquiet.top/2021-11-14-ScreenShot2021-11-14%2020.53.00.jpg"/></p>
<p>这一下子就有 <code>10核降重任</code> 感觉了 ;-)</p>
<h2 id="murmur">murmur<a class="headerlink" href="#murmur" title="Permanent link">¶</a></h2>
<blockquote>
<p>记要关键增补指令过程...</p>
<p>homebrew</p>
</blockquote>
<p><code>$ brew update</code></p>
<div class="highlight"><pre><span></span><code>...
Error:
homebrew-core is a shallow clone.
homebrew-cask is a shallow clone.
To `brew update`, first run:
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow
</code></pre></div>
<blockquote>
<p>These commands may take a few minutes to run due to the large size of the repositories.
This restriction has been made on GitHub's request because updating shallow
clones is an extremely expensive operation due to the tree layout and traffic of
Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
automatically to avoid repeatedly performing an expensive unshallow operation in
CI systems (which should instead be fixed to not use shallow clones). Sorry for
the inconvenience!</p>
<p>༄ git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="n">remote</span><span class="o">:</span><span class="w"> </span><span class="n">Enumerating</span><span class="w"> </span><span class="n">objects</span><span class="o">:</span><span class="w"> </span><span class="mi">346864</span><span class="o">,</span><span class="w"> </span><span class="n">done</span><span class="o">.</span>
<span class="n">remote</span><span class="o">:</span><span class="w"> </span><span class="n">Counting</span><span class="w"> </span><span class="n">objects</span><span class="o">:</span><span class="w"> </span><span class="mi">100</span><span class="o">%</span><span class="w"> </span><span class="o">(</span><span class="mi">346859</span><span class="o">/</span><span class="mi">346859</span><span class="o">),</span><span class="w"> </span><span class="n">done</span><span class="o">.</span>
<span class="n">remote</span><span class="o">:</span><span class="w"> </span><span class="n">Compressing</span><span class="w"> </span><span class="n">objects</span><span class="o">:</span><span class="w"> </span><span class="mi">100</span><span class="o">%</span><span class="w"> </span><span class="o">(</span><span class="mi">151509</span><span class="o">/</span><span class="mi">151509</span><span class="o">),</span><span class="w"> </span><span class="n">done</span><span class="o">.</span>
<span class="n">remote</span><span class="o">:</span><span class="w"> </span><span class="n">Total</span><span class="w"> </span><span class="mi">338208</span><span class="w"> </span><span class="o">(</span><span class="n">delta</span><span class="w"> </span><span class="mi">196986</span><span class="o">),</span><span class="w"> </span><span class="n">reused</span><span class="w"> </span><span class="mi">324905</span><span class="w"> </span><span class="o">(</span><span class="n">delta</span><span class="w"> </span><span class="mi">183898</span><span class="o">),</span><span class="w"> </span><span class="n">pack</span><span class="o">-</span><span class="n">reused</span><span class="w"> </span><span class="mi">0</span>
<span class="err">接收对象中</span><span class="o">:</span><span class="w"> </span><span class="mi">100</span><span class="o">%</span><span class="w"> </span><span class="o">(</span><span class="mi">338208</span><span class="sr">/338208), 93.70 MiB | 5.90 MiB/s</span><span class="o">,</span><span class="w"> </span><span class="err">完成</span><span class="o">.</span>
<span class="err">处理</span><span class="w"> </span><span class="n">delta</span><span class="w"> </span><span class="err">中</span><span class="o">:</span><span class="w"> </span><span class="mi">100</span><span class="o">%</span><span class="w"> </span><span class="o">(</span><span class="mi">196986</span><span class="o">/</span><span class="mi">196986</span><span class="o">),</span><span class="w"> </span><span class="err">完成</span><span class="w"> </span><span class="mi">7813</span><span class="w"> </span><span class="err">个本地对象</span><span class="o">.</span>
<span class="err">来自</span><span class="w"> </span><span class="n">github</span><span class="o">.</span><span class="na">com</span><span class="o">:</span><span class="n">Homebrew</span><span class="o">/</span><span class="n">homebrew</span><span class="o">-</span><span class="n">core</span>
<span class="w"> </span><span class="n">ef5c358418d</span><span class="o">..</span><span class="mi">5</span><span class="n">c8ec008df4</span><span class="w"> </span><span class="n">master</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">origin</span><span class="o">/</span><span class="n">master</span>
</code></pre></div>
<blockquote>
<p>༄ git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="n">remote</span><span class="o">:</span><span class="w"> </span><span class="n">Enumerating</span><span class="w"> </span><span class="n">objects</span><span class="o">:</span><span class="w"> </span><span class="mi">28649</span><span class="o">,</span><span class="w"> </span><span class="n">done</span><span class="o">.</span>
<span class="n">remote</span><span class="o">:</span><span class="w"> </span><span class="n">Counting</span><span class="w"> </span><span class="n">objects</span><span class="o">:</span><span class="w"> </span><span class="mi">100</span><span class="o">%</span><span class="w"> </span><span class="o">(</span><span class="mi">25990</span><span class="o">/</span><span class="mi">25990</span><span class="o">),</span><span class="w"> </span><span class="n">done</span><span class="o">.</span>
<span class="n">remote</span><span class="o">:</span><span class="w"> </span><span class="n">Compressing</span><span class="w"> </span><span class="n">objects</span><span class="o">:</span><span class="w"> </span><span class="mi">100</span><span class="o">%</span><span class="w"> </span><span class="o">(</span><span class="mi">8663</span><span class="o">/</span><span class="mi">8663</span><span class="o">),</span><span class="w"> </span><span class="n">done</span><span class="o">.</span>
<span class="n">remote</span><span class="o">:</span><span class="w"> </span><span class="n">Total</span><span class="w"> </span><span class="mi">20358</span><span class="w"> </span><span class="o">(</span><span class="n">delta</span><span class="w"> </span><span class="mi">14980</span><span class="o">),</span><span class="w"> </span><span class="n">reused</span><span class="w"> </span><span class="mi">17036</span><span class="w"> </span><span class="o">(</span><span class="n">delta</span><span class="w"> </span><span class="mi">11692</span><span class="o">),</span><span class="w"> </span><span class="n">pack</span><span class="o">-</span><span class="n">reused</span><span class="w"> </span><span class="mi">0</span>
<span class="err">接收对象中</span><span class="o">:</span><span class="w"> </span><span class="mi">100</span><span class="o">%</span><span class="w"> </span><span class="o">(</span><span class="mi">20358</span><span class="sr">/20358), 6.42 MiB | 6.31 MiB/s</span><span class="o">,</span><span class="w"> </span><span class="err">完成</span><span class="o">.</span>
<span class="err">处理</span><span class="w"> </span><span class="n">delta</span><span class="w"> </span><span class="err">中</span><span class="o">:</span><span class="w"> </span><span class="mi">100</span><span class="o">%</span><span class="w"> </span><span class="o">(</span><span class="mi">14980</span><span class="o">/</span><span class="mi">14980</span><span class="o">),</span><span class="w"> </span><span class="err">完成</span><span class="w"> </span><span class="mi">1655</span><span class="w"> </span><span class="err">个本地对象</span><span class="o">.</span>
<span class="err">来自</span><span class="w"> </span><span class="n">github</span><span class="o">.</span><span class="na">com</span><span class="o">:</span><span class="n">Homebrew</span><span class="o">/</span><span class="n">homebrew</span><span class="o">-</span><span class="n">cask</span>
<span class="w"> </span><span class="mi">6</span><span class="n">faccf1ee4</span><span class="o">..</span><span class="mi">134</span><span class="n">f0d09b2</span><span class="w"> </span><span class="n">master</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">origin</span><span class="o">/</span><span class="n">master</span>
</code></pre></div>
<p>根据 <code>brew doctor</code> 诊断建议, 进行依赖安装时:</p>
<blockquote>
<p>༄ brew install aom assimp bdw-gc brotli c-ares dav1d dbus double-conversion frei0r giflib guile jemalloc leptonica libarchive libb2 libbluray libev libproxy libpthread-stubs libsamplerate libsndfile libsodium libsoxr libvidstab libx11 libxau libxcb libxdmcp libxext libxrender luajit-openresty lz4 mpdecimal mujs nghttp2 opencore-amr openjdk openjdk@8 openjpeg opusfile pybind11 rav1e rubberband speex srt tesseract uchardet vapoursynth xorgproto zeromq zimg zstd</p>
</blockquote>
<p>有大量报错:</p>
<p>...</p>
<div class="highlight"><pre><span></span><code><span class="nl">Error</span><span class="p">:</span><span class="w"> </span><span class="n">python</span><span class="mf">@3.9</span><span class="o">:</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">bottle</span><span class="w"> </span><span class="n">needs</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">Apple</span><span class="w"> </span><span class="n">Command</span><span class="w"> </span><span class="n">Line</span><span class="w"> </span><span class="n">Tools</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">installed</span><span class="p">.</span>
<span class="w"> </span><span class="n">You</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">them</span><span class="p">,</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">desired</span><span class="p">,</span><span class="w"> </span><span class="n">with</span><span class="o">:</span>
<span class="w"> </span><span class="n">xcode</span><span class="o">-</span><span class="n">select</span><span class="w"> </span><span class="o">--</span><span class="n">install</span>
<span class="n">You</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">try</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">from</span><span class="w"> </span><span class="n">source</span><span class="w"> </span><span class="n">with</span><span class="o">:</span>
<span class="w"> </span><span class="n">brew</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="o">--</span><span class="n">build</span><span class="o">-</span><span class="n">from</span><span class="o">-</span><span class="n">source</span><span class="w"> </span><span class="n">python</span><span class="mf">@3.9</span>
<span class="n">Please</span><span class="w"> </span><span class="n">note</span><span class="w"> </span><span class="n">building</span><span class="w"> </span><span class="n">from</span><span class="w"> </span><span class="n">source</span><span class="w"> </span><span class="n">is</span><span class="w"> </span><span class="n">unsupported</span><span class="p">.</span><span class="w"> </span><span class="n">You</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">encounter</span><span class="w"> </span><span class="n">build</span>
<span class="n">failures</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">some</span><span class="w"> </span><span class="n">formulae</span><span class="p">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">you</span><span class="w"> </span><span class="n">experience</span><span class="w"> </span><span class="n">any</span><span class="w"> </span><span class="n">issues</span><span class="w"> </span><span class="n">please</span><span class="w"> </span><span class="n">create</span><span class="w"> </span><span class="n">pull</span>
<span class="n">requests</span><span class="w"> </span><span class="n">instead</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">asking</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">help</span><span class="w"> </span><span class="n">on</span><span class="w"> </span><span class="n">Homebrew</span><span class="err">'</span><span class="n">s</span><span class="w"> </span><span class="n">GitHub</span><span class="p">,</span><span class="w"> </span><span class="n">Twitter</span><span class="w"> </span><span class="n">or</span><span class="w"> </span><span class="n">any</span><span class="w"> </span><span class="n">other</span>
<span class="n">official</span><span class="w"> </span><span class="n">channels</span><span class="p">.</span>
<span class="p">...</span>
<span class="nl">Error</span><span class="p">:</span><span class="w"> </span><span class="n">gcc</span><span class="o">:</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">bottle</span><span class="w"> </span><span class="n">needs</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">Apple</span><span class="w"> </span><span class="n">Command</span><span class="w"> </span><span class="n">Line</span><span class="w"> </span><span class="n">Tools</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">installed</span><span class="p">.</span>
<span class="w"> </span><span class="n">You</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">them</span><span class="p">,</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">desired</span><span class="p">,</span><span class="w"> </span><span class="n">with</span><span class="o">:</span>
<span class="w"> </span><span class="n">xcode</span><span class="o">-</span><span class="n">select</span><span class="w"> </span><span class="o">--</span><span class="n">install</span>
<span class="n">You</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">try</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">from</span><span class="w"> </span><span class="n">source</span><span class="w"> </span><span class="n">with</span><span class="o">:</span>
<span class="w"> </span><span class="n">brew</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="o">--</span><span class="n">build</span><span class="o">-</span><span class="n">from</span><span class="o">-</span><span class="n">source</span><span class="w"> </span><span class="n">gcc</span>
<span class="n">Please</span><span class="w"> </span><span class="n">note</span><span class="w"> </span><span class="n">building</span><span class="w"> </span><span class="n">from</span><span class="w"> </span><span class="n">source</span><span class="w"> </span><span class="n">is</span><span class="w"> </span><span class="n">unsupported</span><span class="p">.</span><span class="w"> </span><span class="n">You</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">encounter</span><span class="w"> </span><span class="n">build</span>
<span class="n">failures</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">some</span><span class="w"> </span><span class="n">formulae</span><span class="p">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">you</span><span class="w"> </span><span class="n">experience</span><span class="w"> </span><span class="n">any</span><span class="w"> </span><span class="n">issues</span><span class="w"> </span><span class="n">please</span><span class="w"> </span><span class="n">create</span><span class="w"> </span><span class="n">pull</span>
<span class="n">requests</span><span class="w"> </span><span class="n">instead</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">asking</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">help</span><span class="w"> </span><span class="n">on</span><span class="w"> </span><span class="n">Homebrew</span><span class="err">'</span><span class="n">s</span><span class="w"> </span><span class="n">GitHub</span><span class="p">,</span><span class="w"> </span><span class="n">Twitter</span><span class="w"> </span><span class="n">or</span><span class="w"> </span><span class="n">any</span><span class="w"> </span><span class="n">other</span>
<span class="n">official</span><span class="w"> </span><span class="n">channels</span><span class="p">.</span>
<span class="nl">Error</span><span class="p">:</span><span class="w"> </span><span class="n">gcc</span><span class="o">:</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">bottle</span><span class="w"> </span><span class="n">needs</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">Apple</span><span class="w"> </span><span class="n">Command</span><span class="w"> </span><span class="n">Line</span><span class="w"> </span><span class="n">Tools</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">installed</span><span class="p">.</span>
<span class="w"> </span><span class="n">You</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">them</span><span class="p">,</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">desired</span><span class="p">,</span><span class="w"> </span><span class="n">with</span><span class="o">:</span>
<span class="w"> </span><span class="n">xcode</span><span class="o">-</span><span class="n">select</span><span class="w"> </span><span class="o">--</span><span class="n">install</span>
<span class="n">You</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">try</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">from</span><span class="w"> </span><span class="n">source</span><span class="w"> </span><span class="n">with</span><span class="o">:</span>
<span class="w"> </span><span class="n">brew</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="o">--</span><span class="n">build</span><span class="o">-</span><span class="n">from</span><span class="o">-</span><span class="n">source</span><span class="w"> </span><span class="n">gcc</span>
<span class="n">Please</span><span class="w"> </span><span class="n">note</span><span class="w"> </span><span class="n">building</span><span class="w"> </span><span class="n">from</span><span class="w"> </span><span class="n">source</span><span class="w"> </span><span class="n">is</span><span class="w"> </span><span class="n">unsupported</span><span class="p">.</span><span class="w"> </span><span class="n">You</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">encounter</span><span class="w"> </span><span class="n">build</span>
<span class="n">failures</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">some</span><span class="w"> </span><span class="n">formulae</span><span class="p">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">you</span><span class="w"> </span><span class="n">experience</span><span class="w"> </span><span class="n">any</span><span class="w"> </span><span class="n">issues</span><span class="w"> </span><span class="n">please</span><span class="w"> </span><span class="n">create</span><span class="w"> </span><span class="n">pull</span>
<span class="n">requests</span><span class="w"> </span><span class="n">instead</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">asking</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">help</span><span class="w"> </span><span class="n">on</span><span class="w"> </span><span class="n">Homebrew</span><span class="err">'</span><span class="n">s</span><span class="w"> </span><span class="n">GitHub</span><span class="p">,</span><span class="w"> </span><span class="n">Twitter</span><span class="w"> </span><span class="n">or</span><span class="w"> </span><span class="n">any</span><span class="w"> </span><span class="n">other</span>
<span class="n">official</span><span class="w"> </span><span class="n">channels</span><span class="p">.</span>
</code></pre></div>
<p>完成 XCode 升级后再来, 就一切顺利了 ;-)</p>
<p>以及推荐:</p>
<p><a href="https://github.com/exelban/stats">exelban/stats: macOS system monitor in your menu bar</a></p>
<p>免费监察一堆传感器数值:
<img alt="stats" src="https://ipic.zoomquiet.top/2021-11-14-ScreenShot2021-11-14%2022.51.27.jpg"/></p>
<h2 id="timekeeping">timekeeping<a class="headerlink" href="#timekeeping" title="Permanent link">¶</a></h2>
<ul>
<li>1.0h 尝试手工恢复</li>
<li>1.0h 尝试 timemechine 恢复</li>
<li>0.5h 探索其它可能</li>
<li>1.0h 尝试 迁移助手</li>
<li>8.0h 点对点 传输 450+G 数据+应用</li>
<li>1.0h 尝试恢复 WaterFox 职能</li>
<li>1.5h 尝试恢复关键工具许可证</li>
<li>1.0h 尝试解决 Python 问题</li>
<li>1.5h 记要/发布</li>
<li>...</li>
</ul>
<p><img alt="终于基本可用" src="https://ipic.zoomquiet.top/2021-11-14-ScreenShot2021-11-14%2023.31.28.jpg"/></p>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li><a href="https://docs.python.org/3/using/mac.html">5. Using Python on a Mac — Python 3.10.0 documentation</a><ul>
<li><a href="https://developer.apple.com/forums/thread/119429">My application crashed with invali… | Apple Developer Forums</a></li>
<li><a href="https://gist.github.com/llbbl/c54f44d028d014514d5d837f64e60bac">fix missing openssl files in catalina</a></li>
<li><a href="https://stackoverflow.com/questions/59888499/macos-catalina-python-quit-unexpectedly-error">macOS Catalina: Python Quit unexpectedly error - Stack Overflow</a></li>
<li>...</li>
</ul>
</li>
</ul>
<h1 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h1>
<ul>
<li>211114 找到办法, 快速完成迁移</li>
<li>211113 init.</li>
</ul>呢喃s/ 21.112021-11-01T20:42:00+08:002022-08-18T15:38:29+08:00ZoomQuiettag:blog.zoomquiet.io,2021-11-01:/211101-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2021.11</p><h2 id="at-202111">呢喃 at 2021.11<a class="headerlink" href="#at-202111" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2111.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.001.jpeg"/>
<img alt="2111.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.002.jpeg"/>
<img alt="2111.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.003.jpeg"/>
<img alt="2111.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.004.jpeg"/>
<img alt="2111.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.005.jpeg"/>
<img alt="2111.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.006.jpeg"/>
<img alt="2111.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.007.jpeg"/>
<img alt="2111.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.008.jpeg"/>
<img alt="2111.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.009.jpeg"/>
<img alt="2111.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.010.jpeg"/>
<img alt="2111.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.011.jpeg"/>
<img alt="2111.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.012.jpeg"/>
<img alt="2111.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.013.jpeg"/>
<img alt="2111.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.014.jpeg"/>
<img alt="2111.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.015.jpeg"/>
<img alt="2111.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.016.jpeg"/>
<img alt="2111.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.017.jpeg"/>
<img alt="2111.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.018.jpeg"/>
<img alt="2111.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.019.jpeg"/>
<img alt="2111.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.020.jpeg"/>
<img alt="2111.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.021.jpeg"/>
<img alt="2111.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.022.jpeg"/>
<img alt="2111.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.023.jpeg"/>
<img alt="2111.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.024.jpeg"/>
<img alt="2111.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.025.jpeg"/>
<img alt="2111.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.026.jpeg"/>
<img alt="2111.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.027.jpeg"/>
<img alt="2111.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.028.jpeg"/>
<img alt="2111.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.029.jpeg"/>
<img alt="2111.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2111.030.jpeg"/></p>呢喃s/ 21.102021-10-01T20:42:00+08:002022-08-18T15:38:41+08:00ZoomQuiettag:blog.zoomquiet.io,2021-10-01:/211001-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2021.10</p><h2 id="at-202110">呢喃 at 2021.10<a class="headerlink" href="#at-202110" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2110.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.001.jpeg"/>
<img alt="2110.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.002.jpeg"/>
<img alt="2110.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.003.jpeg"/>
<img alt="2110.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.004.jpeg"/>
<img alt="2110.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.005.jpeg"/>
<img alt="2110.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.006.jpeg"/>
<img alt="2110.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.007.jpeg"/>
<img alt="2110.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.008.jpeg"/>
<img alt="2110.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.009.jpeg"/>
<img alt="2110.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.010.jpeg"/>
<img alt="2110.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.011.jpeg"/>
<img alt="2110.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.012.jpeg"/>
<img alt="2110.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.013.jpeg"/>
<img alt="2110.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.014.jpeg"/>
<img alt="2110.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.015.jpeg"/>
<img alt="2110.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.016.jpeg"/>
<img alt="2110.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.017.jpeg"/>
<img alt="2110.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.018.jpeg"/>
<img alt="2110.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.019.jpeg"/>
<img alt="2110.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.020.jpeg"/>
<img alt="2110.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.021.jpeg"/>
<img alt="2110.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.022.jpeg"/>
<img alt="2110.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.023.jpeg"/>
<img alt="2110.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.024.jpeg"/>
<img alt="2110.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.025.jpeg"/>
<img alt="2110.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.026.jpeg"/>
<img alt="2110.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.027.jpeg"/>
<img alt="2110.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.028.jpeg"/>
<img alt="2110.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.029.jpeg"/>
<img alt="2110.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.030.jpeg"/>
<img alt="2110.031" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2110.031.jpeg"/></p>呢喃s/ 21.092021-09-01T20:42:00+08:002022-08-18T15:38:51+08:00ZoomQuiettag:blog.zoomquiet.io,2021-09-01:/210901-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2021.09</p><h2 id="at-202109">呢喃 at 2021.09<a class="headerlink" href="#at-202109" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2109.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.001.jpeg"/>
<img alt="2109.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.002.jpeg"/>
<img alt="2109.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.003.jpeg"/>
<img alt="2109.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.004.jpeg"/>
<img alt="2109.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.005.jpeg"/>
<img alt="2109.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.006.jpeg"/>
<img alt="2109.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.007.jpeg"/>
<img alt="2109.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.008.jpeg"/>
<img alt="2109.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.009.jpeg"/>
<img alt="2109.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.010.jpeg"/>
<img alt="2109.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.011.jpeg"/>
<img alt="2109.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.012.jpeg"/>
<img alt="2109.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.013.jpeg"/>
<img alt="2109.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.014.jpeg"/>
<img alt="2109.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.015.jpeg"/>
<img alt="2109.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.016.jpeg"/>
<img alt="2109.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.017.jpeg"/>
<img alt="2109.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.018.jpeg"/>
<img alt="2109.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.019.jpeg"/>
<img alt="2109.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.020.jpeg"/>
<img alt="2109.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.021.jpeg"/>
<img alt="2109.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.022.jpeg"/>
<img alt="2109.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.023.jpeg"/>
<img alt="2109.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.024.jpeg"/>
<img alt="2109.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.025.jpeg"/>
<img alt="2109.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.026.jpeg"/>
<img alt="2109.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.027.jpeg"/>
<img alt="2109.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.028.jpeg"/>
<img alt="2109.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.029.jpeg"/>
<img alt="2109.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2109.030.jpeg"/></p>钩陈/ 温总的语速...2021-08-07T15:42:00+08:002021-08-07T16:32:53+08:00ZoomQuiettag:blog.zoomquiet.io,2021-08-07:/oldtouch-apisix-growupupup.html<p>OldTouch/ personal feeling for growup in APISIX</p><h2 id="apachecon21">APACHECON21亚洲上的温总<a class="headerlink" href="#apachecon21" title="Permanent link">¶</a></h2>
<blockquote>
<p>旁听侧想</p>
</blockquote>
<p><a href="https://apachecon.com/acasia2021/zh/sessions/1099.html">按照 Apache Way 运作开源商业化公司,这行得通吗? - ApacheCon Asia 2021 - Powered by ALC-Beijing</a></p>
<p><img alt="weng" src="https://ipic.zoomquiet.top/2021-08-07-apachecon-asia-2021-APISIX.jpg"></p>
<p>感叹万千, 只说一点:</p>
<p>温铭, 是18年创业成立支流公司后,
在朋友圈中的戏称;</p>
<p>认识温总是08年,
当时他刚刚入职金山,
在俺主持的日常技术分享活动上相互认识,
也一起参与过早期 ECUG/Erlang China User Group(10年后, 升级为 Effective China User Group)活动;
作为工程师,
温总那时给人的感觉就是羞涩,
对技术问题愿意花时间研究,
将每个问题彻底解决;</p>
<p>在各种场景中, 发言, 也只愿意对技术问题给出想法,
而且语速很快, 哐哐哐的, 想在被对方打断前, 先将所有关键情况都说明;
标准的程序猿气质;</p>
<p>后来去了360,
成立 OpenResty 基金会,
接收 <code>锤子</code>发布会捐助,
主持 OpenResty 国际化,
甚至于裸辞加入 OpenResty 团队;</p>
<p>在各自离开金山集团后, 但是, 技术发展方向和节奏完全不同了;
幸好都在珠海生活, 每年都有各种机会碰面, 比如:</p>
<ul>
<li>源创汇/珠海站</li>
<li>金山春晩</li>
<li>开源中国珠海老爸美食团</li>
<li>...</li>
</ul>
<p>因为都有了孩子,
各种群里讨论的慢慢也出现了技术之外话题,
见面时, 虽然羞涩还有,
但更加象礼貌式客气了,
发言时, 还是习惯张大眼睛认真倾听,
然后, 不再轻易发言, 听说比例接近 2:1,
语速回到正常人水平, 开始包含一丝倔强,
愿意为达成共识, 多说几轮;</p>
<p>又过了几年, 深刻理解应用网关这个领域后;
毅然再次裸辞, 创立 APISIX 团队,
直接从开源开始,
基于 OpenResty 技术, 打造好用的企业级应用网关;
当时真,什么也没有, 包含工资,
两位创始人, 完全以有限自信为基础开始,
幸好社区给力, 最快拿到 1000星, 最快进入 APAPCHE 孵化器,
最快毕业, 并拿到企业大单;
前后不到18个月.</p>
<p>再听到公开分享, 已经在 APACHEcon21亚洲大会上了,
语速, 进一步降低, 达到部委干部级别, 每分钟420字,
比 CCTV 播音员慢了将近一倍;
这就给人感觉, 已经是位承担社区未来伟大的负责人,
任何时刻公开发言,
都自觉深思熟虑, 不愿意一时冲动为社区承诺什么不应该的事儿;
想来在家,
也习惯这样, 只干活不讨论;</p>
<p>未来, 温总 应该随着 APISIX 的发展,
影响越来越多的公司和社区,
语速也必然进一步降低,</p>
<div class="highlight"><pre><span></span><code>惜字如金
沉默以对
负重前行
目思且码
但行好事...
</code></pre></div>
<hr>
<blockquote>
<blockquote>
<p>NN 4463</p>
</blockquote>
</blockquote>
<p>好文笔,感叹号年度配额: <strong>2/3</strong></p>
<hr>
<p>ZoomQuiet/<strong><a href="https://mp.weixin.qq.com/s/N5TuRRbF485D4Q90XdDA7g">大妈</a></strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个<a href="https://mp.weixin.qq.com/s/N5TuRRbF485D4Q90XdDA7g">大妈</a>:</p>
<div class="highlight"><pre><span></span><code><span class="n">私自嗯哼</span><span class="p">:</span> <span class="n">ZoomQuiet</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">ZoomQuiet42</span><span class="p">)</span>
<span class="n">公开课程</span><span class="p">:</span> <span class="n">蟒营</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">Mainium</span><span class="p">)</span>
<span class="n">全国大会</span><span class="p">:</span> <span class="n">PyChina</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">PyChinaOrg</span><span class="p">)</span>
<span class="n">本地社区</span><span class="p">:</span>
<span class="n">GDG珠海</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">GDG</span><span class="o">-</span><span class="n">ZhuHai</span><span class="p">)</span>
<span class="n">TFUG珠海</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">ZH_TFUG</span><span class="p">)</span>
<span class="n">历史吐糟</span><span class="p">:</span> <span class="n">Chaos42</span> <span class="p">(</span><span class="n">订阅号</span> <span class="n">PythoniCamp</span><span class="p">)</span>
</code></pre></div>
<hr>呢喃s/ 21.082021-08-01T20:42:00+08:002022-08-18T15:39:01+08:00ZoomQuiettag:blog.zoomquiet.io,2021-08-01:/210801-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2021.08</p><h2 id="at-202108">呢喃 at 2021.08<a class="headerlink" href="#at-202108" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2108.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.001.png"/>
<img alt="2108.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.002.png"/>
<img alt="2108.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.003.png"/>
<img alt="2108.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.004.png"/>
<img alt="2108.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.005.png"/>
<img alt="2108.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.006.png"/>
<img alt="2108.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.007.png"/>
<img alt="2108.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.008.png"/>
<img alt="2108.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.009.png"/>
<img alt="2108.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.010.png"/>
<img alt="2108.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.011.png"/>
<img alt="2108.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.012.png"/>
<img alt="2108.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.013.png"/>
<img alt="2108.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.014.png"/>
<img alt="2108.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.015.png"/>
<img alt="2108.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.016.png"/>
<img alt="2108.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.017.png"/>
<img alt="2108.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.018.png"/>
<img alt="2108.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.019.png"/>
<img alt="2108.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.020.png"/>
<img alt="2108.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.021.png"/>
<img alt="2108.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.022.png"/>
<img alt="2108.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.023.png"/>
<img alt="2108.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.024.png"/>
<img alt="2108.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.025.png"/>
<img alt="2108.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.026.png"/>
<img alt="2108.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.027.png"/>
<img alt="2108.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.028.png"/>
<img alt="2108.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.029.png"/>
<img alt="2108.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.030.png"/>
<img alt="2108.031" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2108.031.png"/></p>呢喃s/ 21.072021-07-01T20:42:00+08:002022-08-18T15:39:10+08:00ZoomQuiettag:blog.zoomquiet.io,2021-07-01:/210701-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2021.07</p><h2 id="at-202107">呢喃 at 2021.07<a class="headerlink" href="#at-202107" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2107.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.001.jpeg"/>
<img alt="2107.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.002.jpeg"/>
<img alt="2107.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.003.jpeg"/>
<img alt="2107.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.004.jpeg"/>
<img alt="2107.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.005.jpeg"/>
<img alt="2107.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.006.jpeg"/>
<img alt="2107.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.007.jpeg"/>
<img alt="2107.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.008.jpeg"/>
<img alt="2107.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.009.jpeg"/>
<img alt="2107.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.010.jpeg"/>
<img alt="2107.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.011.jpeg"/>
<img alt="2107.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.012.jpeg"/>
<img alt="2107.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.013.jpeg"/>
<img alt="2107.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.014.jpeg"/>
<img alt="2107.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.015.jpeg"/>
<img alt="2107.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.016.jpeg"/>
<img alt="2107.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.017.jpeg"/>
<img alt="2107.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.018.jpeg"/>
<img alt="2107.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.019.jpeg"/>
<img alt="2107.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.020.jpeg"/>
<img alt="2107.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.021.jpeg"/>
<img alt="2107.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.022.jpeg"/>
<img alt="2107.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.023.jpeg"/>
<img alt="2107.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.024.jpeg"/>
<img alt="2107.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.025.jpeg"/>
<img alt="2107.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.026.jpeg"/>
<img alt="2107.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.027.jpeg"/>
<img alt="2107.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.028.jpeg"/>
<img alt="2107.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.029.jpeg"/>
<img alt="2107.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.030.jpeg"/>
<img alt="2107.031" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2107.031.jpeg"/></p>呢喃s/ 21.062021-06-01T20:42:00+08:002022-08-18T15:39:22+08:00ZoomQuiettag:blog.zoomquiet.io,2021-06-01:/210601-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2021.06</p><h2 id="at-202106">呢喃 at 2021.06<a class="headerlink" href="#at-202106" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2106.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.001.jpeg"/>
<img alt="2106.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.002.jpeg"/>
<img alt="2106.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.003.jpeg"/>
<img alt="2106.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.004.jpeg"/>
<img alt="2106.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.005.jpeg"/>
<img alt="2106.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.006.jpeg"/>
<img alt="2106.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.007.jpeg"/>
<img alt="2106.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.008.jpeg"/>
<img alt="2106.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.009.jpeg"/>
<img alt="2106.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.010.jpeg"/>
<img alt="2106.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.011.jpeg"/>
<img alt="2106.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.012.jpeg"/>
<img alt="2106.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.013.jpeg"/>
<img alt="2106.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.014.jpeg"/>
<img alt="2106.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.015.jpeg"/>
<img alt="2106.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.016.jpeg"/>
<img alt="2106.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.017.jpeg"/>
<img alt="2106.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.018.jpeg"/>
<img alt="2106.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.019.jpeg"/>
<img alt="2106.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.020.jpeg"/>
<img alt="2106.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.021.jpeg"/>
<img alt="2106.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.022.jpeg"/>
<img alt="2106.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.023.jpeg"/>
<img alt="2106.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.024.jpeg"/>
<img alt="2106.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.025.jpeg"/>
<img alt="2106.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.026.jpeg"/>
<img alt="2106.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.027.jpeg"/>
<img alt="2106.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.028.jpeg"/>
<img alt="2106.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.029.jpeg"/>
<img alt="2106.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2106.030.jpeg"/></p>呢喃s/ 21.052021-05-01T20:42:00+08:002022-08-18T15:37:01+08:00ZoomQuiettag:blog.zoomquiet.io,2021-05-01:/210501-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2021.05</p><h2 id="at-202105">呢喃 at 2021.05<a class="headerlink" href="#at-202105" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2105.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.001.jpeg"/>
<img alt="2105.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.002.jpeg"/>
<img alt="2105.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.003.jpeg"/>
<img alt="2105.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.004.jpeg"/>
<img alt="2105.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.005.jpeg"/>
<img alt="2105.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.006.jpeg"/>
<img alt="2105.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.007.jpeg"/>
<img alt="2105.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.008.jpeg"/>
<img alt="2105.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.009.jpeg"/>
<img alt="2105.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.010.jpeg"/>
<img alt="2105.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.011.jpeg"/>
<img alt="2105.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.012.jpeg"/>
<img alt="2105.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.013.jpeg"/>
<img alt="2105.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.014.jpeg"/>
<img alt="2105.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.015.jpeg"/>
<img alt="2105.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.016.jpeg"/>
<img alt="2105.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.017.jpeg"/>
<img alt="2105.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.018.jpeg"/>
<img alt="2105.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.019.jpeg"/>
<img alt="2105.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.020.jpeg"/>
<img alt="2105.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.021.jpeg"/>
<img alt="2105.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.022.jpeg"/>
<img alt="2105.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.023.jpeg"/>
<img alt="2105.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.024.jpeg"/>
<img alt="2105.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.025.jpeg"/>
<img alt="2105.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.026.jpeg"/>
<img alt="2105.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.027.jpeg"/>
<img alt="2105.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.028.jpeg"/>
<img alt="2105.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.029.jpeg"/>
<img alt="2105.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.030.jpeg"/>
<img alt="2105.031" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2105.031.jpeg"/></p>呢喃s/ 21.042021-04-01T20:42:00+08:002022-08-18T15:21:34+08:00ZoomQuiettag:blog.zoomquiet.io,2021-04-01:/210401-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2021.04</p><h2 id="at-202104">呢喃 at 2021.04<a class="headerlink" href="#at-202104" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<h3 id="nn-4335">呢喃/ NN 4335<a class="headerlink" href="#nn-4335" title="Permanent link">¶</a></h3>
<p>矛盾论,</p>
<p>是主席最核心思想之一;</p>
<p>其它都比较战略,</p>
<p>矛盾论则象变形金刚一般可大可小:</p>
<p>什么是主要矛盾?</p>
<p>什么是次要矛盾?</p>
<p>何时次要矛盾会变成主要矛盾?</p>
<p>...</p>
<p>很朴素,</p>
<p>但,</p>
<p>异常关键;</p>
<p>后来有机构,</p>
<p>全球深入调查,</p>
<p>想弄明白"贫穷"的本质,</p>
<p>后来出了论文,</p>
<p>也有对应纪录片,</p>
<p>甚至于好几部相关的...</p>
<p>都隐隐指向相似的原因:</p>
<p>穷人之所以贫穷,</p>
<p>并不是环境/智力/体力/...等等直觉问题;</p>
<p>最根本的是抓不住主要矛盾,</p>
<p>永远被次要矛盾拖住所有精力,</p>
<p>导致一次亏,</p>
<p>次次亏,</p>
<p>进入永远的负向循环,</p>
<p>根本无从聚集起资本,</p>
<p>并最终进入由资本替代自己来持续自动获得"睡后收入";</p>
<p>只是,</p>
<p>和当年红军到底要不要长征类似,</p>
<p>主要矛盾总是隐藏在海量次要矛盾中,</p>
<p>而且,</p>
<p>主要矛盾总是最困难的那个,</p>
<p>这导致人总是下意识的忽略/放弃/无视/...主要矛盾;</p>
<p>比如,</p>
<p>从边远地区首次来到大城市的年青人,</p>
<p>主要矛盾就是收入不高,</p>
<p>原因是没有市场价格能力/资历/积累/...</p>
<p>那么,</p>
<p>如何解决这个主要问题?</p>
<p>其实看看犹太人历史就知道了,</p>
<p>以及温州人在海外的经历...</p>
<p>缺钱?</p>
<p>那么,</p>
<p>立即,</p>
<p>开始赚钱吧.</p>
<p>具体如何来?</p>
<p>当前自己能作什么,</p>
<p>就作什么,</p>
<p>别纠结,</p>
<p>先将自己丢到商品社会中,</p>
<p>才能慢慢撞到自己的赛道,</p>
<p>如果一直不进入其中,</p>
<p>只是在默默积累/等待,</p>
<p>多数情况一生,</p>
<p>也就这样了...</p>
<p><img alt="2104.001" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.001.jpeg"/></p>
<h3 id="nn-4336">呢喃/ NN 4336<a class="headerlink" href="#nn-4336" title="Permanent link">¶</a></h3>
<p>马岛战争是日不落帝国最后的颜面;</p>
<p>可惜也是惨胜;</p>
<p>当年各种军事杂志吃瓜吃的那叫个欢快;</p>
<p>硬要说这次局部战争中真正的赢家,</p>
<p>就是法国飞鱼导弹了,</p>
<p>一百万不到的价格,</p>
<p>兑掉几亿英镑的巡洋舰,</p>
<p>性价比太高了;</p>
<p>当然,</p>
<p>最后卖的好的是中国蚕式,</p>
<p>效能有飞鱼80%;</p>
<p>价格只有10%当然香了...</p>
<p>这其实,</p>
<p>才是中国制造的威力所在;</p>
<p>为什么5G 让美国这么紧张?</p>
<p>韭菜变成自己没人受的了哪...</p>
<p>想想,</p>
<p>从1G时代开始....</p>
<p>所有通讯协议/标准都是美国为首的西方技术共同体来主导的,</p>
<p>无论 HW 后来有多少专利技术,</p>
<p>占领了多少交换机市场,</p>
<p>可那都是1.5G 时代的市场了,</p>
<p>人家早已转入一轮又一轮全新市场,</p>
<p>反复赚取超额利润去也.</p>
<p>而中国制造,</p>
<p>则象是规则器,</p>
<p>以往新标准制造的超额利润空间,</p>
<p>能存在很久,</p>
<p>比如金融行业已经吃了几个世纪了;</p>
<p>但是,</p>
<p>现在中国制造目光所及,</p>
<p>以往有80%利润空间的,</p>
<p>瞬间变成只有0.8%的利润,</p>
<p>没有那个百年老店撑得住,</p>
<p>只有中国制造还有赚头...</p>
<p>简直象当年蒙古一般的"上帝之鞭" ;-)</p>
<p>抽得牛鬼蛇神现原型,</p>
<p>再也不敢拿技术优势说事儿,</p>
<p>可这点一丢失,</p>
<p>拼生产效率,</p>
<p>人类还没有哪个民族能象中国这般将一份工作作到艺术化的,</p>
<p>自古就有卖油翁之说,</p>
<p>现在日本吹的工匠精神,</p>
<p>这在中国古代是百业基本素养...</p>
<p>不是嘛?
<img alt="2104.002" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.002.jpeg"/></p>
<h3 id="nn-4337">呢喃/ NN 4337<a class="headerlink" href="#nn-4337" title="Permanent link">¶</a></h3>
<p>卡廷惨案,</p>
<p>电影都拍过,</p>
<p>各种图书也有,</p>
<p>但是谈论的人不多;</p>
<p>为毛?</p>
<p>禁忌,</p>
<p>禁止讨论的忌晦;</p>
<p>详细的不分析,</p>
<p>记得有部电影说的是相关片段,</p>
<p>有个共产国际的战士,</p>
<p>带着命令去找起义组织,</p>
<p>因为国际关系,</p>
<p>这次起义不可能有任何援助,</p>
<p>嘦举行一定死光,</p>
<p>千辛万苦找到了,</p>
<p>回想一路形式,</p>
<p>现场表示:</p>
<p>指令是这个指令,</p>
<p>情况是这个情况,</p>
<p>但是,</p>
<p>起义必须进行,</p>
<p>因为,</p>
<p>如果这一次放弃了,</p>
<p>那么一定有下一次,</p>
<p>以及永远不可能成功了.</p>
<p>于是,</p>
<p>大家热烈的去死...</p>
<p>这种精神逻辑/哲学/人文/...上都是混乱的,</p>
<p>但是,</p>
<p>就是非常能 touch 入心,</p>
<p>按现在的解释: 中二病</p>
<p>内心永远有一个 Why not</p>
<p>当然,</p>
<p>对应的有曰: </p>
<p>君子报仇,</p>
<p>十年不晩,</p>
<p>小人报仇,</p>
<p>从早到晩.</p>
<p>世界观简单的人,</p>
<p>一但被激怒,</p>
<p>眼里就只有仇人,</p>
<p>无论是否成功,</p>
<p>立即咬过来从早到晩一刻也不放松,</p>
<p>直到自己觉的足够了,</p>
<p>或是失败消失.</p>
<p>而有丰富知识和历史大局观的"君子"们,</p>
<p>则心怀远大,</p>
<p>瞻前顾后,</p>
<p>思前想后,</p>
<p>顾左言它...</p>
<p>大事化小,小事化了...</p>
<p>然后,</p>
<p>就没有然后了,</p>
<p>可以继续优雅,</p>
<p>无论身上是否还挂着仇人丢过来的屎.</p>
<p>这两种处世态度,</p>
<p>哪种正义,</p>
<p>其实, 也并无绝对;</p>
<p>更加科学的,</p>
<p>应该是 君子不立危墙之下,</p>
<p>外国那种看到建筑标志快掉了,</p>
<p>天天站在下面,</p>
<p>等待落下来砸伤自己,</p>
<p>好对大厂起述获得巨额赔偿的行为;</p>
<p>怎么想都太青皮了...</p>
<p><img alt="2104.003" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.003.jpeg"/></p>
<h3 id="nn-4338">呢喃/ NN 4338<a class="headerlink" href="#nn-4338" title="Permanent link">¶</a></h3>
<p>微软今天46岁了;</p>
<p>对于那些上千年历史的企业,</p>
<p>M$ 绝对不算有什么传承;</p>
<p>但是,</p>
<p>面对那些续存几个世纪的老公司,</p>
<p>M$ 无论创造的产价还是影响力一点儿也不差;</p>
<p>光是那个开机画片和MID音乐片段,</p>
<p>可以说是地球人类集体记忆了;</p>
<p>当年的 Bill 和现在的 Musk 其实非常相似,</p>
<p>都是发出了前所未有的宏愿:</p>
<p>让每个家庭都有一台电脑;</p>
<p>嗯哼?</p>
<p>这不算什么宏愿?</p>
<p>半世纪前,</p>
<p>专家们同意,</p>
<p>整个儿人类有10台计算机就足够了,</p>
<p>也就是说,</p>
<p>只有国家级别的计算事务值得上电脑;</p>
<p>当时根本想象不到现在城市人,</p>
<p>每个人都拥有一台以上随身计算设备,</p>
<p>而且每个设备的计算能力和当年只有国家计算中心才有的电脑还要高...</p>
<p>真正的奇迹在于,</p>
<p>当年 M$ 并不是最有前景的软件公司,</p>
<p>虽然它是第一个纯软件公司,</p>
<p>可其它类似 Apple 是软件硬件一体的,</p>
<p>技术高多了,</p>
<p>以及现在没几个人记得的王安电脑公司,</p>
<p>当然,</p>
<p>还有 M$ 真正的后台: IBM 也是硬件软件都能设计生产的巨无霸;</p>
<p>现在有很多网络穿越小说,</p>
<p>将 M$ 描述的很不堪,</p>
<p>但是,</p>
<p>有一说一,</p>
<p>无论软件这个概念发明出现是否用对方向,</p>
<p>至少,</p>
<p>软件工程是 M$ 之后,</p>
<p>才真正确立起来,</p>
<p>变成显学的;</p>
<p>以往,</p>
<p>工业领域 Ford 真正将流水线成功应用后,</p>
<p>大规模人力的组织,</p>
<p>人类才算找了最高效形式;</p>
<p>但是,</p>
<p>软件,</p>
<p>当初只有高端知识分子才能打造,</p>
<p>而且,</p>
<p>从一开始就发展,</p>
<p>软件的复杂度是随着成员数量的增加而指数增加的,</p>
<p>很快将没有任何人,</p>
<p>可以完全理解一个软件系统全部细节,</p>
<p>此时,</p>
<p>软件不象建筑工程,</p>
<p>只要能将构成建筑的所有具体构件质量都得以保证,</p>
<p>再结合靠谱的经过严密计算的结构设计,</p>
<p>最终作品是可以信任的;</p>
<p>软件工程,</p>
<p>根本无法找到可以真正完全标准化/质量控制的基础构件,</p>
<p>几乎所有层级/复杂度/性质/形式上的构件,</p>
<p>都是定制的,</p>
<p>可能是唯一的,</p>
<p>在加载运行前, 无法简单确认其性质/能力/品质的....</p>
<p>这其实造成当年软件系统,</p>
<p>只能限制在单人全程开发体量以内,</p>
<p>只能拼工程师单人能力上限;</p>
<p>这对那些天才们是非常美好的时代,</p>
<p>因为在自己领域中,</p>
<p>其它人无权过问,</p>
<p>只有继续给工资的权力;</p>
<p>所以,</p>
<p>M$ 天才的深入研究,</p>
<p>发明了一系列方法/流程/思想/规范/机制/...</p>
<p>可以有效将几乎无上限的普通人聚集起来,</p>
<p>持续有序的开始出几乎无限复杂的系统级别软件来;</p>
<p>最终 win10 系统,</p>
<p>代码量早已超过1000万行;</p>
<p>而进一步应用这一思想的 Google,</p>
<p>已经可以自如组织/控制/发布/迭代/...</p>
<p>超过20亿行代码的超级系统了.</p>
<p>简单说,</p>
<p>资本通过技术探索,</p>
<p>终于又拿回了软件组织的控制权,</p>
<p>因为,</p>
<p>无论单人能力多优秀,</p>
<p>已经不可能简单的创建或是毁灭 M$/Google/Facebook/Amazon/...</p>
<p>这类级别的系统了.</p>
<p>嗯哼?</p>
<p>要这么一说,</p>
<p>可以简单的衡量一家公司软件系统是否达到工业级别的办法就是:</p>
<p>放一个普通程序猿进入机房,</p>
<p>看是否能单人在42小时以内完全毁坏运行中的核心业务系统;</p>
<p>如果能,</p>
<p>说明这系统还是上世纪手工作坊级别的;</p>
<p>如果不能,</p>
<p>恭喜,</p>
<p>可以自称大型软件公司了.</p>
<p><img alt="2104.004" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.004.jpeg"/></p>
<h3 id="nn-4339">呢喃/ NN 4339<a class="headerlink" href="#nn-4339" title="Permanent link">¶</a></h3>
<p>黄易不仅仅只是武侠小说家,</p>
<p>还开创了穿越小说新体裁;</p>
<p>以往通过光速/冷冻/...技术手段都是向未来进发;</p>
<p>电影回到过去系列,</p>
<p>也都是小人物的小历史微调;</p>
<p>黄易应该是第一位将时空家国结合在一起的作家,</p>
<p>又真正能将整个天下大势变迁自然和关键人物关联起来,</p>
<p>创造出一种全新代入感,</p>
<p>和金大侠后期鹿鼎记一般精彩的世界.</p>
<p>只是,</p>
<p>这种史穿小说,</p>
<p>并不好写,</p>
<p>开始,</p>
<p>大家也只是穿越丢诗砸人,</p>
<p>一切就顺风顺水了;</p>
<p>然后, 新明 出现,</p>
<p>将赛先生/德先生 引入商业萌芽期中国,</p>
<p>深刻思考可能性之后,</p>
<p>引发不同社会走向,</p>
<p>这种写法立即将爽文格调提升了很多,</p>
<p>也对历史事件/人物/社会数据/...提出更多更高要求,</p>
<p>否则,</p>
<p>情节推进太刻意太偶然没有说服现在;</p>
<p>于是新宋出现了,</p>
<p>由历史专业研究生撰写,</p>
<p>直接使用了历史学一线原始材料,</p>
<p>并运用历史研究技巧,</p>
<p>将很多悬而未决的历史事件,</p>
<p>通过另外线索进行合理化,</p>
<p>构造出尽可能合理的历史走向,</p>
<p>而且所有历史真实人物言行也都尽可能吻合历史记录中反射出来的原貌;</p>
<p>这一下子,</p>
<p>将史穿小说写作难度提高到研究所等级;</p>
<p>于是,</p>
<p>有聪明的网文工作者开始拓展穿越范畴,</p>
<p>回到原始社会,</p>
<p>可以从发明文字开始折腾,</p>
<p>除了基本传说,</p>
<p>没有其它限制,</p>
<p>可惜代入感太浅...</p>
<p>又有尝试回到国外历史中,</p>
<p>在古罗马/古维京/荷兰/...</p>
<p>大航海时代之初...</p>
<p>可惜代入感一样难以解决;</p>
<p>这方面印象深刻的只有一部: 帝国苍穹</p>
<p>穿越回伯林被攻破前夜,</p>
<p>挖掘/发动/撬动/...</p>
<p>Nazi 积累全球资源,</p>
<p>重新开始,</p>
<p>最终部分复国成功,</p>
<p>这种想象力,</p>
<p>不亚于: 高堡奇人</p>
<p>也属于或然历史体裁,</p>
<p>而且难度更高,</p>
<p>毕竟2战历史资料足够丰富,</p>
<p>解密的真实对战双方战将言行也足够多,</p>
<p>在这些基础上进行这种程度的再创造太不容易,</p>
<p>但是,</p>
<p>也证明,</p>
<p>只有能第一时间构造出令人信服并愿意投入其中的:代入感,</p>
<p>小说才好看,</p>
<p>作者才能流畅的塞入更多私货 ;-)</p>
<p>好象,</p>
<p>代码也一样.
<img alt="2104.005" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.005.jpeg"/></p>
<h3 id="nn-4340">呢喃/ NN 4340<a class="headerlink" href="#nn-4340" title="Permanent link">¶</a></h3>
<p>免费寺庙养老院,</p>
<p>这个创意其实并不新;</p>
<p>自古寺庙就有这一社会职能,</p>
<p>只是,</p>
<p>一般都是捐了一定田产后,</p>
<p>等于寺庙代管,</p>
<p>收益分成,其中一部分指定用以捐赠人养老;</p>
<p>按照国家规定,</p>
<p>现在一般65岁可以退休.</p>
<p>身体允许的话,</p>
<p>干到75岁就不得不养老了,</p>
<p>如果医疗跟得上,</p>
<p>95岁老死是很普通的事儿,</p>
<p>也就是说, </p>
<p>这种养老院能提供至少20年服务才能善终头一批入院老人,</p>
<p>而社会经济是连续通胀的,</p>
<p>至少3%,</p>
<p>等于这种养老院至少得有年收益增长超过3%的赢利渠道,</p>
<p>而且还得随着入院老人的增加而增加,</p>
<p>以及,</p>
<p>部分有重病在身的老人,</p>
<p>专人护理以及对应医疗耗材的储备,</p>
<p>怎么算,</p>
<p>平均每位老人每年发出也不应该少于14.2万元,</p>
<p>那么问题来了,</p>
<p>是什么样的收入可以支撑住免费养老?</p>
<p>寺庙这个招牌早已无法吸引稳定的捐赠了.</p>
<p>之前,</p>
<p>在自怼圈无意间触发过几次养老话题,</p>
<p>最后倾向于建立:</p>
<p>自怼圈养老基金会</p>
<p>提前42年开始筹备:</p>
<ul>
<li>选定地址</li>
<li>积累资金</li>
<li>建造院落</li>
<li>营造田舍</li>
<li>定期体验</li>
<li>提前完善</li>
<li>到时入住</li>
<li>...</li>
</ul>
<p>但是,</p>
<p>对于大家都入住自营养老院之后的资金来源,</p>
<p>还是没什么好想法,</p>
<p>就算是将大家积累42年的所有资金都投入到复合金融产品中,</p>
<p>也没有任何一个金融机构或是算法敢承诺本来20年不会亏任何一次;</p>
<p>而要是转为建立对应实体企业,</p>
<p>也没什么产品能确保几十年稳定收益的,</p>
<p>即便是有,也早已被垄断了;</p>
<p>唯一可能有谱的,</p>
<p>就是赌这种自营养老院模式是历史趋势,</p>
<p>那么,</p>
<p>不断开设这种养老院,</p>
<p>将开始营造预约院友还有40年才能入住时的资金,</p>
<p>用在已经入住有院友的项目中,</p>
<p>形成阶梯状传递,</p>
<p>只要拉的足够长,</p>
<p>就能产循环...</p>
<p>嘛?</p>
<p><img alt="2104.006" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.006.jpeg"/></p>
<h3 id="nn-4341">呢喃/ NN 4341<a class="headerlink" href="#nn-4341" title="Permanent link">¶</a></h3>
<p>32年前的今天,</p>
<p>日本足球发明了半空翻式界外球发球法,</p>
<p>震惊世界?</p>
<p>简单的说,</p>
<p>利用规则:</p>
<ul>
<li>0: 只能用双手发出</li>
<li>1: 发出时双脚必须在界外</li>
<li>2: 发球一瞬间, 双脚必须在地面</li>
<li>3: 发球一瞬间, 双手必须在头上</li>
</ul>
<p>界外球发球只规定了发球瞬间身体状态,</p>
<p>并没规定之前和之后的要求;</p>
<p>以往,</p>
<p>为了能将球更快更远的丢入禁区,</p>
<p>双臂力量不足的球员,</p>
<p>一般采用短距离助跑的方法来提高一点儿发球初速度;</p>
<p>而日本式界外球,</p>
<p>则合理运用物理原理,</p>
<p>通过双手执球按地,</p>
<p>完成整个身体的空翻,</p>
<p>将原先通过助跑完成的初速度,</p>
<p>用身体空翻的形式,</p>
<p>当成更多距离更大初速度的准备,</p>
<p>耍的好的球员可以用这种方法,</p>
<p>以不到1.7米的身高,</p>
<p>将球丢入小禁区,</p>
<p>可以说达到了预期目标;</p>
<p>但是,</p>
<p>为什么没在之后各种赛事出得到推广呢?</p>
<p>很简单:</p>
<p>日式界外球方法, 除了能提高发球初速度之外,</p>
<p>其它界外球必要性能都丢失了:</p>
<ul>
<li>0: 精确度, 如果球不能精确丢到自己队员合理前方那等于还给对方防,而空翻式发球可以观察的时间非常小, 几乎只能蒙个方向,无法精确控制;</li>
<li>1: 突然性, 要想将球合理送入己方队员, 躲开对方成员的反应空间非常重要, 而空翻式准备时间太长, 而且一开始就无法停止, 所有人都有足够时间预判, 根本没有突然性了;</li>
<li>2: 节省体力, 足球运动是体能消耗非常大的一种运动, 空翻比立定仅双手出球需要更多体能,如果在整场中反复使用,队员体能消耗比使用传统发球方法的对方要消耗的快很多, 一对比得不偿失...</li>
<li>3: ...</li>
</ul>
<p>所以,</p>
<p>一个华丽的办法,</p>
<p>投入实战后,</p>
<p>往往没有看起来无聊的传统办法来的实用,</p>
<p>这也是为什么互联网创业团队,</p>
<p>现在越来越倾向选择无聊的技术架构,</p>
<p>快速发布功能/产品,</p>
<p>先和真实市场获得互动为好;</p>
<p>再优秀/亮眼的技术选择/架构,</p>
<p>并不是市场/投资/用户选择我们服务/产品/作品的重要指标呢.</p>
<p><img alt="2104.007" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.007.jpeg"/></p>
<h3 id="nn-4342">呢喃/ NN 4342<a class="headerlink" href="#nn-4342" title="Permanent link">¶</a></h3>
<p>7年前的今天,</p>
<p>M$ 正式放弃发行13年的 XP;</p>
<p>当然,</p>
<p>这并不能阻止这一伟大的系统继续为人类服务,</p>
<p>因为很早之前,</p>
<p>勤劳勇敢的中国人民就已经彻底研究清楚 XP 系统,</p>
<p>并进行了各种改造;</p>
<p>最小的一种只有200多Mb;</p>
<p>XP 是唯一可以替代 Win95 的系统,</p>
<p>当年要不是 XP 出现,</p>
<p>Win95 系统可能一直运行到今天;</p>
<p>俺知道 XP 的神奇在于硬件兼容广度,</p>
<p>无论什么稀少的硬件/元件,</p>
<p>在其它Windows 系统中无法驱动,</p>
<p>但在 XP 中总是可以找到对应驱动;</p>
<p>当然,</p>
<p>这也只是 XP 伟大之一,</p>
<p>其它伟大俺真心没有体验过,</p>
<p>毕竟, 以往除了去 ATM 机取款外,</p>
<p>很少有机会和 XP 打交道,</p>
<p>05年之前,</p>
<p>日常办公环境是 NT Server;</p>
<p>之后切换到 Ubuntu 系统,</p>
<p>再后来切换到 macOS 系统,</p>
<p>一直没机会浸泡在 XP 光辉中;</p>
<p>但是这不影响在日常生活中不时见到经典的 XP 死机兰屏;</p>
<p>还是说武汉吧,</p>
<p>去年的今天,</p>
<p>武汉率先 "解封";</p>
<p>而直到今天,</p>
<p>还有很多世界著名城市继续封禁ing...</p>
<p>这不得不赞叹武汉这个城市的尿性;</p>
<p>要知道,</p>
<p>大清帝国正式灭亡的号角,</p>
<p>可是在武汉先吹响的,</p>
<p>当年整个儿老大帝国钢产量80%以上都在汉阳铁厂制造,</p>
<p>整个抗日以及解放战争期间,</p>
<p>中国唯一靠谱的自制武器就是汉阳造,</p>
<p>由汉阳兵工厂仿制德国1888式委员会步枪,</p>
<p>虽然在设计上有些缺陷,</p>
<p>但是,</p>
<p>德国技术出口的严谨,</p>
<p>确保中国获得了所有必要技术,</p>
<p>也就确保了中国使用自身所有资源可以稳定生产出,</p>
<p>吻合设计具有足够设计性能的成品来;</p>
<p>汉阳造从 1895 开始持续生产到 1944 年才被海量美国援助武器替代掉,</p>
<p>可以说是和六爷一般长寿神器了;-)</p>
<p>不过,</p>
<p>现在武汉可以在10天建造出拥有1000张床位的医院来,</p>
<p>主战单兵武器,</p>
<p>也不再忍受有缺陷的设计,</p>
<p>我们从56式开始,</p>
<div class="highlight"><pre><span></span><code><span class="mf">63</span><span class="n">式</span>
<span class="mf">81</span><span class="n">式</span>
<span class="mf">95</span><span class="n">式</span>
<span class="mf">03</span><span class="n">式</span>
</code></pre></div>
<p>研制节奏越来越快,
技术含量越来越高,
配套装备越来越多,
小米+步枪的姿势,</p>
<p>一去不复还也.</p>
<p><img alt="2104.008" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.008.jpeg"/></p>
<h3 id="nn-4343">呢喃/ NN 4343<a class="headerlink" href="#nn-4343" title="Permanent link">¶</a></h3>
<p>每天我们熟视无睹的很多事儿,</p>
<p>都是无数先烈抛头颅撒热血挣得的,</p>
<p>比如共产党,</p>
<p>21~49,</p>
<p>28年奋斗才彻底合法化并;</p>
<p>西班牙共产党熬了38年才合法化,</p>
<p>但距离掌权那基本没什么指望了.</p>
<p>很多事儿姿势放低才有希望,</p>
<p>甚至于最终变强;</p>
<p>但是,</p>
<p>即便是最强了,</p>
<p>姿态依然可以非常低,</p>
<p>比如美军,</p>
<p>从成立第一天开始就明文规定可以投降,</p>
<p>而且投降不等于通敌,</p>
<p>回来并不影响正常升迁;</p>
<p>这在中华文化中难以想象,</p>
<p>其实,</p>
<p>这并不是说对美国军人被俘是件值得高兴的事儿,</p>
<p>反而是更加屈辱的事儿,</p>
<p>因为,</p>
<p>国家都认为你根本就没什么骨气不投降,</p>
<p>所以,</p>
<p>从反方向进行加强:</p>
<p>既然投降是允许的,</p>
<p>但这事儿忒寸了,</p>
<p>如何阻止呢?</p>
<p>加强机动能力就好,</p>
<p>无论地球上任何一处,</p>
<p>有受困部队,</p>
<p>咱都能在24小时以内调集一个军投放过去,</p>
<p>全武力配置的军,</p>
<p>2万人以及装备,</p>
<p>那么,</p>
<p>自己人再怎么寸也救得回了吧?</p>
<p>按照这个思路发展到现在,</p>
<p>已经可以作到在2小时以内,</p>
<p>将必要的武器投放到指定任何一个地理点上;</p>
<p>这才是全球布武了.</p>
<p><img alt="2104.009" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.009.jpeg"/></p>
<h3 id="nn-4344">呢喃/ NN 4344<a class="headerlink" href="#nn-4344" title="Permanent link">¶</a></h3>
<p>2014 星际穿越 Interstellar 上映,</p>
<p>其中对黑洞的描述是请了领域专家构造的,</p>
<p><img alt="黑洞" src="https://ipic.zoomquiet.top/2022-08-18-640%20-6-.jpeg"/></p>
<p>5年后,</p>
<p>集中全球所有吻合条件的电子望远镜数据,</p>
<p>用 Python 处理可视化出来的真实黑洞照片, </p>
<p>和影片中基本吻合;</p>
<p>这就是电影工业化的威力了,</p>
<p>对比国产的...</p>
<p>其实中国现实比什么科学幻想小说都要科学幻想;</p>
<p>比如,</p>
<p>26年来,</p>
<p>不时才被提及的朱令铊中毒案;</p>
<p>平时中国人已经严格按元素周期表来吃了,</p>
<p>也没想到这么快就能吃到这么少见的元素;</p>
<p>铊,</p>
<p>不是化学专业的普通人,</p>
<p>如果不是这个案件,</p>
<p>应该一生也没什么场景可以听到这个元素;</p>
<p>照片中花季少女就因为太花季了,</p>
<p>被同学下毒,</p>
<p>现在苟活的样子大家上网一查就知道,</p>
<p>这得多么真诚的感谢曾经的同学们不杀之恩了...</p>
<p>其实,</p>
<p>犹太教 fork 出来的系列类基督教,</p>
<p>基础概念就是:</p>
<p>原罪</p>
<p>人类在诞生的第一天就是背负罪恶的,</p>
<p>必须虔诚的加以消融,</p>
<p>或是赎买掉...</p>
<p>无论其逻辑性还是其它什么文化因素吧,</p>
<p>这至少导致西方社会对社会行为有基本敬畏;</p>
<p>至少那些变态坏人知道自己在作错事;</p>
<p>而中华文明以天人合一为目标,</p>
<p>有强大的思辩习惯以及武器,</p>
<p>越有知识的人,</p>
<p>越容易对自己的三观进行合理化重塑,</p>
<p>可以对任何事儿主动制造任何正义解释,</p>
<p>到后来变态坏人多数并不认为自己有作什么错事,</p>
<p>错的只是这个世界;</p>
<p>细思恐极,</p>
<p>这个角度想,</p>
<p>还是我中华文明更加强大哪,</p>
<p>狠起来自己都怕的.</p>
<p><img alt="2104.010" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.010.jpeg"/></p>
<h3 id="nn-4345">呢喃/ NN 4345<a class="headerlink" href="#nn-4345" title="Permanent link">¶</a></h3>
<p>小波和小平同志,</p>
<p>都没见到 HK 回归;</p>
<p>当然,</p>
<p>小波本身并不特别期待这类事儿的发生;</p>
<p>作为被写作耽搁的程序猿,</p>
<p>小波在美国是自己给自己编写了一套件写作软件的,</p>
<p>如果当年拿出来,</p>
<p>可能没 WPS 什么事儿了;</p>
<p>这其实也从一定程度上证明,</p>
<p>编写代码和撰写文章本质上并无差别,</p>
<p>可能唯一差别就在:</p>
<p>写下来的文本,</p>
<p>在哪种容器中解析/运行而已;</p>
<p>代码,</p>
<p>必须在对应版本的硬件/软件环境中,</p>
<p>才能解析为合理语法树,</p>
<p>并进一步编译为可执行的机器代码,</p>
<p>然后交系统反复运行,</p>
<p>获得预期结果;</p>
<p>而文学作品,</p>
<p>也必须在对应语言文化环境中,</p>
<p>被合理的人阅读,</p>
<p>才可能 got 到作者融入其中的思想,</p>
<p>只是,</p>
<p>不一定能获得作者预期的效果,</p>
<p>毕竟:</p>
<p>一千名读者</p>
<p>就有一千种哈姆莱特.</p>
<p>这个谚语一时想不到合适对应的成语;</p>
<p>反正意思大家都是知道的;</p>
<p>不过,</p>
<p>这方面很可能在近期被 AI 写作系统给解决了;</p>
<p>因为,</p>
<p>写作也可以视为通用程序,</p>
<p>只是调用的接口,</p>
<p>是目标读者群体共同的 MEME,</p>
<p>由当前社会在读者成长期间,</p>
<p>一点点儿注入的共识,</p>
<p>毕竟,</p>
<p>如何作者写的东西都是自己原创的,</p>
<p>别人都是首次看到的,</p>
<p>那基本上是不可能产生任何共鸣的...</p>
<p>嗯哼?</p>
<p>也有作者尝试过针对性实验:</p>
<p>《塞拉菲尼抄本》</p>
<p><img alt="塞拉菲尼抄本" src="https://ipic.zoomquiet.top/2022-08-18-640%20-7-.jpeg"/></p>
<p>发明了一种全新文字,</p>
<p>用来描述一种全新世界的各种事务;</p>
<p>300多页,</p>
<p>没有一页能看明白具体内容,</p>
<p>但是,</p>
<p>依然可以看的津津有味儿,</p>
<p>这其实,</p>
<p>也是在利用读者以往的赏识,</p>
<p>只是,</p>
<p>使用一种极端的形式,</p>
<p>跨过文字的误解,</p>
<p>直接调用想象力来交流了而已.</p>
<p>这种当然不能拿来记述航天飞机制造工艺的了...</p>
<p><img alt="2104.011" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.011.jpeg"/></p>
<h3 id="nn-4346">呢喃/ NN 4346<a class="headerlink" href="#nn-4346" title="Permanent link">¶</a></h3>
<p>35年前,</p>
<p>中国开始正式大规模义务教育;</p>
<p>这是一件很伟大的事儿;</p>
<p>也是一件人类历史上最艰难的事儿;</p>
<p>光是其中每个学校物理实验室中基础实验套件这一个配套器材的事儿,</p>
<p>就足以耗光一个欧洲小国的所有工业生产能了;</p>
<p>论语/泰伯篇,</p>
<p>有个著名断言:</p>
<p>民可使由之</p>
<p>不可使知之</p>
<p>当然,</p>
<p>原文没有句逗,</p>
<p>后人也都根据自己的理解进行了各种断句;</p>
<p>不过,</p>
<p>无论哪种断句,</p>
<p>都有一个共识:</p>
<p>让所有普通百姓都能受教育,</p>
<p>是一件非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常大的事儿;</p>
<p>因为,</p>
<p>这样一来,</p>
<p>国家再也不可能用少数容易控制的士人,</p>
<p>来操纵天下思想/舆论/民心了,</p>
<p>必须认认真真,</p>
<p>每一件事儿都得老老实实明明白白讲清楚说通畅,</p>
<p>全体人民都认可了,</p>
<p>这事儿才办的下去;</p>
<p>当然,</p>
<p>带来的效果也是非常非常非常非常非常非常牛逼的;</p>
<p>日本拿了战争赔款全部投入国民教育,</p>
<p>在整个亚洲第一个作到全民受教育,</p>
<p>进而获得足够数量产业工人,</p>
<p>这才获得工业制造能力的腾飞,</p>
<p>进一步拥有亚洲第一军力,</p>
<p>然后才敢开始大东亚共荣圈的美梦...</p>
<p>什么是教育?</p>
<p>Σωκράτης (Socrates) 曰过:</p>
<div class="highlight"><pre><span></span><code>教育不是灌输, 而是**点燃**火熖
教育最有效的方法不是告诉答案,
而是向他们提问.
</code></pre></div>
<p>兴趣和内在动机才是长期坚持的动力;</p>
<p>眼前的好职位并不应该是教育的目标;</p>
<p>当然,</p>
<p>这涉及国策不是俺这头大妈可以置喙的;</p>
<p>只是, 值得思考一下,</p>
<p>孔子这句断言, 到底应该如何句逗?</p>
<div class="highlight"><pre><span></span><code>民可使由之不可使知之
</code></pre></div>
<p><img alt="使由之" src="https://ipic.zoomquiet.top/2022-08-18-WechatIMG1862.jpeg"/></p>
<p><img alt="2104.012" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.012.jpeg"/></p>
<h3 id="nn-4347">呢喃/ NN 4347<a class="headerlink" href="#nn-4347" title="Permanent link">¶</a></h3>
<p>应该不是国家大剧院设计国际招标之后的事儿,</p>
<p>而是从80年代,</p>
<p>改开之后,</p>
<p>各地思想活跃到爆浆的有关部门,</p>
<p>大胆奔放的在祖国各地上马各种神奇建筑...</p>
<p>不象欧洲,</p>
<p>主要精力都在教堂建造上,</p>
<p>随便一座就要建造几百年,</p>
<p>好些从一战开始建造,</p>
<p>建建停停至今没落成;</p>
<p>中国建筑,</p>
<p>那真是人有多大胆,地有多大产?</p>
<p>无论什么造型的建筑,</p>
<p>无论功能是否匹配,</p>
<p>无论是否和周边环境匹配,</p>
<p>无论任何建筑相关的考量是否合适...</p>
<p>嘦粘上一丝国际先进性就上,</p>
<p>立即上,</p>
<p>不然隔壁省市就抢先了;</p>
<p>不说这种行为背后政策向背景;</p>
<p>单说各种神奇建筑落地中国大地之后的效果:</p>
<p>0: 人民眼界高了, 出国旅游基本没什么城市风貌能触动中国人民了</p>
<p>1: 人民记忆模糊了, 家乡原先长什么样? 好象并不重要了</p>
<p>2: 人民美学感觉错乱了, 好象嘦够出位/够高/够屌/... 就是屌?</p>
<p>3: ...</p>
<p>所以椰树牌椰汁自我感觉值得上国宴席面咯...</p>
<p>这样好嘛?</p>
<p>好象也没什么不好,</p>
<p>这等于有中国特色的建筑美学,</p>
<p>可以杜绝那些类似 BAUHAUS 有完备美学思考成果体系的建筑入侵,</p>
<p>中国可以自由放飞的领先世界进行全方位的探索,</p>
<p>反正,</p>
<p>不满意,</p>
<p>市民一投票,</p>
<p>拆了重来就好,</p>
<p>在中国建筑队面前,</p>
<p>一星期造不好,</p>
<p>两星期也就够了,</p>
<p>不是什么大事儿.</p>
<p><img alt="2104.013" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.013.jpeg"/></p>
<h3 id="nn-4348">呢喃/ NN 4348<a class="headerlink" href="#nn-4348" title="Permanent link">¶</a></h3>
<p>三月三也是个大节?</p>
<p>从来没听说过,</p>
<p>也没过过...</p>
<p>类似的还有重阳登高什么的...</p>
<p>中国文明其实就是我们的生活方式,</p>
<p>各种教化都融入日常了;</p>
<p>西方其实也类似;</p>
<p>比如:111年的今天,</p>
<p>美国就开始铺设第一条海底电缆,</p>
<p>这对普通人生活有影响嘛?</p>
<p>当然,</p>
<p>当年海底电缆走的不是数字信号,</p>
<p>是通电报/电传的模拟信号,</p>
<p>主要职能是将伦敦交易所的股票/期货/汇兑/...商业信息尽可能实时传递回来;</p>
<p>进而可以更加合理的厘定各种相关交易价格,</p>
<p>进而可以从全球获得更多资源,</p>
<p>进而降低相关生产成本,</p>
<p>进而获得更高利润,</p>
<p>进而工资能提升一点儿,</p>
<p>进而日常可以购买到更多生活用品</p>
<p>进而...</p>
<p>这一系列进而,</p>
<p>逻辑上是通顺的,</p>
<p>可惜真正落实到平民,</p>
<p>至少要反应十几年,</p>
<p>在流通环节上各阶层超额利润拿的差不多了,</p>
<p>才轮到平民.</p>
<p>但是,</p>
<p>不可否认,</p>
<p>信息作为生产资料必不可缺的一部分,</p>
<p>在很久之前就已形成共识,</p>
<p>甚至于不惜代价构造连通大洋的电缆;</p>
<p>直至今天,</p>
<p>即便是卫星已经快要将地球上空各种合适轨道铺满了,</p>
<p>互联网基础带宽还是用一个多世纪前设计的海底电缆思路,</p>
<p>只不过载波介质变成光纤而已,</p>
<p>以往相同成本线缆,</p>
<p>现在可以承载以往几千万倍的信息而已;</p>
<p>整体工程思想并没什么变化:</p>
<p>两点间要想有数据交流,</p>
<p>先得有实体线路,</p>
<p>中间有大海?</p>
<p>没事儿铺上沉底缆线就好,</p>
<p>对海底生态并无影响,</p>
<p>至今好象也只发生过一次,</p>
<p>座头鲸发傻误撞断过一条海底电缆.</p>
<p>所以,</p>
<p>这种工程设想,</p>
<p>本身也属于 Musk 推崇的第一性原则:</p>
<p>凡事儿要从物理基本原理去思考最简方案;</p>
<p>至于具体如何达成,</p>
<p>有专业人士去折腾,</p>
<p>作决策时,</p>
<p>绝对嫑被其它专家带偏才是最重要的.</p>
<p><img alt="2104.014" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.014.jpeg"/></p>
<h3 id="nn-4349">呢喃/ NN 4349<a class="headerlink" href="#nn-4349" title="Permanent link">¶</a></h3>
<p>圣母院被烧,</p>
<p>这事儿说大不大,</p>
<p>说小不小;</p>
<p>关键看政府如何定性了;</p>
<p>如果只是临时工疏忽那么当然是最好的,</p>
<p>可问题是,</p>
<p>这么大个教堂,</p>
<p>又是知名景点,</p>
<p>立那儿几百年了,</p>
<p>为什么偏偏在19年被烧?</p>
<p>好吧,</p>
<p>打住不敢多分析,</p>
<p>光说材料学的事儿大家也没什么兴趣;</p>
<p>还是说 569年前今天诞生的神奇人物吧,</p>
<p>达.芬奇,</p>
<p>当时并不是什么著名人物,</p>
<p>但是,</p>
<p>随着史料逐步挖掘,</p>
<p>大家才发现,</p>
<p>这位可能是穿越人士,</p>
<p>不然,</p>
<p>无法解释这脑洞为什么如此领先时代又都合理可行?</p>
<p>当然,</p>
<p>也有对应剧集,</p>
<p>好象有4季,</p>
<p>将芬奇同学和更大的科学共同体进行了对立...</p>
<p>只想说说芬奇同学的成神之路;</p>
<p>要知道6个世纪前的欧洲,</p>
<p>中世纪时代,</p>
<p>几乎所有人都是文盲,</p>
<p>芬奇以出色的画技闯出事业线,</p>
<p>逻辑上是通的,</p>
<p>问题是,</p>
<p>那么多手稿都是谁精心保管,</p>
<p>熬过这么多动乱/战争,</p>
<p>并到今天慢慢解密,</p>
<p>给大家呈现一个丰富神奇的芬奇?</p>
<p>进一步的,</p>
<p>谁比谁傻多少?</p>
<p>既然有个芬奇同学,</p>
<p>其它类似雪碧同学们,</p>
<p>也应该有类似脑洞和尝试,</p>
<p>为什么没有对应史料保存下来,</p>
<p>到今天和芬奇隔空PK?</p>
<p>难道 MOLESKINE 笔记本,</p>
<p>当年品质就高超到可以制造出可以无视时间的记载介质来?</p>
<p>很明显,</p>
<p>是有一个或是一组家族,</p>
<p>专职负责收藏整理类似笔记/草稿,</p>
<p>应该类似中国古代史官传承,</p>
<p>在欧洲有对应组织,</p>
<p>专注保存每个时代值得保存的器物,</p>
<p>无论当时价值如何,</p>
<p>嘦进入视野的,</p>
<p>都加以专业保存,</p>
<p>直到时间魔法令藏品升值,</p>
<p>再通过其它经济手段加以转化,</p>
<p>变成新一轮收藏的资源基础;</p>
<p>这和股票类似,</p>
<p>任何收藏嘦加上足够长的时间,</p>
<p>都将获得足够的回报.</p>
<p>真的嘛?</p>
<p><img alt="2104.015" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.015.jpeg"/></p>
<h3 id="nn-4350">呢喃/ NN 4350<a class="headerlink" href="#nn-4350" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>天子守国门
君王死社稷
军卒葬沙场
女儿殉江山
</code></pre></div>
<p>...各种社会角色的归宿安排的明明白白</p>
<p>641年前的今天,</p>
<p>后来的明成祖/永乐大帝,</p>
<p>在作皇子时,</p>
<p>就先被顶到国境前线;</p>
<p>这才有机会累积足够资源/班底/经验/...</p>
<p>成就后来伟业;</p>
<p>可以说非常客观的证明了这个老理儿:</p>
<p>凡事儿从难处作,</p>
<p>越作越容易,</p>
<p>反之亦然.</p>
<p>其实,</p>
<p>中国自古出聪明人,</p>
<p>聪明人基本出自儒家,</p>
<p>从小,</p>
<p>从典集中反复训练思维能力,</p>
<p>从历史案例中总结/积累/抽象出越来越精纯的思辩套路以及治国模型,</p>
<p>但是,</p>
<p>从来没和现实结合过,</p>
<p>所以,</p>
<p>遇事儿理论/方案/策略/...要多少有多少,</p>
<p>而且能从一个现象中推导出无数可能性,</p>
<p>每一种都可以变成最关键的关键点,</p>
<p>这样就可以自由和自身利益集团有机结合起来,</p>
<p>从国家政策中静静获利;</p>
<p>可真实世界,</p>
<p>如果没有外敌,</p>
<p>都是国家内部矛盾,</p>
<p>这种内卷姿势没问题,</p>
<p>只是,</p>
<p>这种内卷的代价就是整个儿国家生产力/战斗力/...弱化,</p>
<p>一但遇到外敌就只能"死社稷"了;</p>
<p>对比 Musk 反复宣传的:</p>
<p>第一性原理</p>
<p>以往儒家的机变,</p>
<p>不过是对真实问题的转移/转化/甩锅/...</p>
<p>嘦自己没事儿,</p>
<p>无论问题是否解决,是否造成更多问题...</p>
<p>那就没事儿.</p>
<p>现实中,</p>
<p>无论古今中外,</p>
<p>最终也只有真正解决真实问题的人,</p>
<p>才能推动社会/组织/团队/...发展;</p>
<p>只是是否能最终获得对应回报,</p>
<p>嗯哼,</p>
<p>那是另外一回事儿了,</p>
<p>先不聊.</p>
<p><img alt="2104.016" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.016.jpeg"/></p>
<h3 id="nn-4351">呢喃/ NN 4351<a class="headerlink" href="#nn-4351" title="Permanent link">¶</a></h3>
<p>去年今天就提及过36年前欧洲的 Eureka 计划,</p>
<p>可以理解为这是整个欧洲国家集体的 863 计划;</p>
<p>Eureka</p>
<p>借用阿基米德顿悟浮力原理时兴奋的一边大喊</p>
<p>Eureka</p>
<p>一边光身子从浴场跑回实验室立即实验的逸事;</p>
<p>希腊语,</p>
<p>意为: 俺懂了,俺懂了.</p>
<p>可惜Eureka快40年了,</p>
<p>欧洲并没比中美更懂些什么,</p>
<p>人口继续衰退,</p>
<p>被涌进来的难民子宫持续高速兑换掉福利,</p>
<p>然后,</p>
<p>应该很快就没有然后了...</p>
<p>其实,</p>
<p>新中国高速崛起的过程,</p>
<p>就是 Eureka 没 Eureka 起来的逆过程:</p>
<ul>
<li>0: 人口高速增长</li>
<li>1: 逼国家加大各种行业产能</li>
<li>2: 逼国家对教育持续投入</li>
<li>3: 坚持到全民都有足够文化知识可以充实到各种生产线</li>
<li>4: 开始爆产量冲垮一切对应市场</li>
<li>5: 逼国家加大科技投入提高生产效率</li>
<li>6: 反哺其它行业</li>
</ul>
<p>...进入高速正向循环...</p>
<p>当然, </p>
<p>这一切是以资本主义规则来运行的,</p>
<p>也就是说,</p>
<p>利润必须持续扩大,</p>
<p>GDP必须持续增长,</p>
<p>任何一方向稍微有点儿下降,</p>
<p>立即引发连锁反应诱发经济危机...</p>
<p>好在,</p>
<p>我们是有中国特色的社会主义,</p>
<p>并不是完全自由裸奔的资本主义,</p>
<p>总是能在关键时刻稍晚一点儿,</p>
<p>合理通过全国一盘棋的方式,</p>
<p>聚集优势资源闯过门坎,</p>
<p>当然,</p>
<p>过程中,</p>
<p>总是有伟大勤劳勇敢的人民用阵痛,</p>
<p>帮国家抗下损失;</p>
<p>其它国家人民并不愿意阵痛,</p>
<p>所以,</p>
<p>就只好和国家一起再次复兴了...</p>
<p>是酱紫嘛?</p>
<p><img alt="2104.017" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.017.jpeg"/></p>
<h3 id="nn-4352">呢喃/ NN 4352<a class="headerlink" href="#nn-4352" title="Permanent link">¶</a></h3>
<p>进入新世纪,</p>
<p>中国铁道一直在大面积提速,</p>
<p>对此最客观直觉的记录,</p>
<p>其实是 NHK 资助的纪录片:</p>
<p>关口知宏-中国铁道大纪行</p>
<p>当然,</p>
<p>得结合 关口知宏 其它同类记录片:</p>
<p>关口知宏.日本列岛铁道纵横</p>
<p>关口知宏.欧洲铁路之旅</p>
<p>中国铁道早已世界第一,</p>
<p>只是身处其中,</p>
<p>每年春运又都被咱们自己冲破,</p>
<p>所以毫无感觉,</p>
<p>结果通过 关口知宏 单纯的注目,</p>
<p>反而如此鲜明的展现了出来:</p>
<ul>
<li>中国铁道永远满载</li>
<li>中国火车站永远人声鼎沸</li>
<li>中国铁道职员永远热情</li>
<li>中国铁路永远准点</li>
<li>中国铁道永远...</li>
</ul>
<p>各种永远的气势太自豪.</p>
<p>公众熟悉的几个大工程:</p>
<ul>
<li>亚欧大陆桥 </li>
<li>一带一路</li>
<li>...</li>
</ul>
<p>都是铁道提速为基础的;</p>
<p>毕竟,海运中国发展太晩,</p>
<p>无论制造能力多强,</p>
<p>一入海都要受制于各种航线/海峡/...限制;</p>
<p>而且,</p>
<p>海运基点都是港口,</p>
<p>而港口不过是沿海几个点,</p>
<p>不象铁道一条线,</p>
<p>而且沿线每个新增车站都是对当地经济大激发;</p>
<p>回想上海地铁直通昆山后,</p>
<p>昆山房价应声翻倍,</p>
<p>就知道了.</p>
<blockquote>
<p>...大面积提速...</p>
</blockquote>
<p>这其中的大面积才是关键,</p>
<p>单条线路的提速并不难,</p>
<p>比如:</p>
<p>浦东机场->龙阳站</p>
<p>磁悬浮线路,</p>
<p>一下子将最高时速拉到>500km,</p>
<p>但是,</p>
<p>每年完成的运输量还没一号线多.</p>
<p>而且,</p>
<p>大面积提速,</p>
<p>其实,</p>
<p>最大的挑战可能还不是机车本身的速度,</p>
<p>而是整体铁道网络的调度能力,</p>
<p>因为平均时速每提高一个级别,</p>
<p>等于相同线路可安排的车次提高一个量级,</p>
<p>每个车道口每天需要控制的次数提高一个量级,</p>
<p>而每个车站接/发车速度也必须对应提高一个量级,</p>
<p>这其中涉及到的硬件/软件/人员/制度/配套/...</p>
<p>怎么想都是海量工作,</p>
<p>而中国铁道提速间隔越来越短,</p>
<p>意味着中国铁道对整体提速这事儿本身的经验也在积累,</p>
<p>毕竟,</p>
<p>每年春运几十亿人次的疯狂压力都抗住了,</p>
<p>全面提速,</p>
<p>不过是将春运时反复检验过的办法,</p>
<p>大规模落实为日常而已...</p>
<p>呵,</p>
<p>这个而已,</p>
<p>也只有咱们能而已一下.</p>
<p><img alt="2104.018" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.018.jpeg"/></p>
<h3 id="nn-4353">呢喃/ NN 4353<a class="headerlink" href="#nn-4353" title="Permanent link">¶</a></h3>
<p>一定程度上,</p>
<p>美国的国际地位,</p>
<p>很大程度上源自88年前,</p>
<p>老罗反经济原则的一次行政指令;</p>
<p>将美金变成美元,</p>
<p>不仅绕过了战争中消失的黄金问题,</p>
<p>而且将美国信用瞬间提升到基本无限,</p>
<p>嘦世界各国对美国的信心不灭,</p>
<p>美元就可以任意发行抵消任意数额的债务,</p>
<p>理论上,</p>
<p>当然美国没这么傻,</p>
<p>这么好的开局当然要好好玩,</p>
<p>可惜...</p>
<p>还是说,</p>
<p>微信和苹果互怼吧,</p>
<p>其实,</p>
<p>之前有很多次中国企业和美国企业互怼的事儿,</p>
<p>比如: 描述新东方创业故事的</p>
<p>中国合伙人 (2013) American Dreams in China</p>
<p>https://movie.douban.com/subject/11529526/</p>
<p>只是,</p>
<p>以往互怼,</p>
<p>涉及到的人民数量并不多,</p>
<p>微信这次,</p>
<p>一家伙让将近15亿中外网民有感知,</p>
<p>这事儿就大发了;</p>
<p>无论其原因/过程/结果,</p>
<p>都可以算是互联网历史中有名的大事件,</p>
<p>只是对后来互联网发展有什么影响?</p>
<p>也不过是夯实了即有共识:</p>
<p>谁占领了市场,</p>
<p>谁说话算数;</p>
<p>实力决定结果;</p>
<p>...</p>
<p>只是,</p>
<p>这种实力是如何来的?</p>
<p>代码的威力已经可以无视法律了嘛?</p>
<p>法律现在和代码已经合体了嘛?</p>
<p>推荐: </p>
<p>code 2.0 ( Lawrence Lessig)</p>
<p>https://book.douban.com/subject/4749253/</p>
<p><img alt="2104.019" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.019.jpeg"/></p>
<h3 id="nn-4354">呢喃/ NN 4354<a class="headerlink" href="#nn-4354" title="Permanent link">¶</a></h3>
<p>去年今天中油宝事件,</p>
<p>已经不仅仅是巨大亏了,</p>
<p>以往原油再怎么便宜也没出现倒找的现象,</p>
<p>这次,</p>
<p>每桶出现负价值现象,</p>
<p>实在是活久见,</p>
<p>事实原因也很正当:</p>
<ul>
<li>原油没完成成品提炼前, 是挥发性物质</li>
<li>挥发的都是有效工业原料</li>
<li>所以, 放的时间越长, 价值越小</li>
<li>好比, 一瓶可乐, 如果打开了盖子, 没两小时汽儿就跑光了, 就已经不是 可乐了...价值当然不同;</li>
</ul>
<p>于是,</p>
<p>因为疫情所有国家封闭了港口,</p>
<p>油轮们只能在大洋上漂荡,</p>
<p>而装载的油,</p>
<p>一直在期货/交易市场上反复交易,</p>
<p>那些原本以为马上将触底反弹的玩家们发现,</p>
<p>即便是0元/桶, 都是高峰价格...</p>
<p>这一下子,</p>
<p>呵呵...</p>
<p>还是说天舟一号的事儿吧,</p>
<p>什么叫货运飞船?</p>
<p>其实就是标准化批量制造的飞船,</p>
<p>通过固定尺寸/元件,</p>
<p>并减少生命保障系统,</p>
<p>可以将成本减少到非常可观的地步,</p>
<p>毕竟这种飞船绝大多数部件不需要返回地面,</p>
<p>只有一小块返回舱可以自行返回,</p>
<p>带回一些太空制品/样品,</p>
<p>基本上都是一次性使用,</p>
<p>那么,嘦能撑住每次几小时到几天不等的太空任务时间,</p>
<p>就可以了...</p>
<p>当然,</p>
<p>可以大力节约各种制造工艺,</p>
<p>但是,</p>
<p>精简到哪个边界,</p>
<p>就是艺术+科学的判定了,</p>
<p>这一经验也只有海量制造国家才有感觉的...</p>
<p><img alt="2104.020" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.020.jpeg"/></p>
<h3 id="nn-4355">呢喃/ NN 4355<a class="headerlink" href="#nn-4355" title="Permanent link">¶</a></h3>
<p>历史上并不只有武则天一位女帝,</p>
<p>隔壁也有一位尊称为大帝的沙皇:</p>
<p>叶卡揵琳娜</p>
<p>和同时代谥号:</p>
<p>孝钦慈禧端佑康颐昭豫庄诚寿恭钦献崇熙配天兴圣显皇后</p>
<p>的叶赫娜拉氏相比,</p>
<p>这位可凶狠太多了;</p>
<p>为俄国扩张出多少面积...</p>
<p>自行 baidu 就知道了;</p>
<p>神奇的是,</p>
<p>看年轻时照片,</p>
<p>一样萌,</p>
<p>对比年长时的悍然,</p>
<p>果断25岁之后,</p>
<p>相貌就不应该怪父母了...</p>
<p>不过,</p>
<p>值得思考的一点是:</p>
<p>为什么全体生物幼仔,</p>
<p>基本都吻合米老鼠的脸谱特征?</p>
<ul>
<li>超级大眼</li>
<li>超级软萌</li>
<li>超级奶气</li>
<li>超级...</li>
</ul>
<p>当然,</p>
<p>这也是米老鼠为什么无视民族/文化/种族受欢迎的原因;</p>
<p>只是,</p>
<p>这个原因,</p>
<p>应该是地球生物共同的基因编码效果;</p>
<p>幼仔出生后,</p>
<p>生活力一般都很低,</p>
<p>毕竟依赖双亲辛苦的养育,</p>
<p>这种辛苦最辛苦,</p>
<p>幼仔就必须提供越多的理由/动力给双亲;</p>
<p>所以,</p>
<p>全体哺乳类生物幼仔,</p>
<p>统一选择了双头身软萌形象,</p>
<p>这种图形模式,</p>
<p>对于哺乳动物而言,</p>
<p>是无法抗拒的喜爱,</p>
<p>来自基因深处的指令,</p>
<p>可以说亲子关系的建立起点,</p>
<p>就是这种萌翻天的外貌设计,</p>
<p>神奇在于:</p>
<p>这种形象是通用的,</p>
<p>或是说,</p>
<p>和胚胎相近的,</p>
<p>观察到鸡/人/猴/...甚至于龟的胚胎发育过程,</p>
<p>就可以注意到,</p>
<p>在初级几乎完全一样,</p>
<p>直到出生前,</p>
<p>才快速有了差异,</p>
<p>而这种差异在头部又更加小...</p>
<p>近而,</p>
<p>社会上 PUA 专家,</p>
<p>以及很多穷凶极恶的反社会人士,</p>
<p>都是成年了,</p>
<p>形象上依然保持了一定幼仔模式,</p>
<p>以此才能在第一时间消灭对方的警戒,</p>
<p>行使恶行...</p>
<p>阿弥陀佛~怪我咯</p>
<p><img alt="2104.021" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.021.jpeg"/></p>
<h3 id="nn-4356">呢喃/ NN 4356<a class="headerlink" href="#nn-4356" title="Permanent link">¶</a></h3>
<p>63年前的今天,</p>
<p>建国9年后,人民英雄纪念碑建成;</p>
<p>是周恩来总理题写的碑文:</p>
<p><img alt="题写" src="https://ipic.zoomquiet.top/2022-08-18-640%20-8-.jpeg"/></p>
<p>只是第一届政治协商会议中的一项普通决议,</p>
<p>记录在案的也只是一个小纸条儿;</p>
<p>不过,</p>
<p>写的真是好;</p>
<p>关键是气势:</p>
<ul>
<li>三年以来...回顾我党最关键成绩</li>
<li>三十年以来...承认所有革命力量</li>
<li>由此上溯到一千八百四十年...追认所有进步力量</li>
</ul>
<p>一步一步一层一层一代一代,</p>
<p>就这么自然而然的给代表了,</p>
<p>勇于代表这么长时期,</p>
<p>这么多复杂斗争中所有人物,</p>
<p>本身,</p>
<p>就是那种一往无前无所畏惧的气概;</p>
<p>这种气势,</p>
<p>至少是文字上的气势,</p>
<p>当然是容易学会的,</p>
<p>嘦脸皮足够厚,</p>
<p>将自己想象为主席总理人类代表就好,</p>
<p>其中一个高峰就是文化大革命中的大字报创作:</p>
<p>天上没有玉皇</p>
<p>地上没有龙王</p>
<p>我就是玉皇</p>
<p>我就是龙王</p>
<p>喝令三山五岭开道</p>
<p>我来了</p>
<p>这种气势已经登峰造极,</p>
<p>但是,</p>
<p>感染力却也低到微尘;</p>
<p>为什么?</p>
<p>这不仅仅是谁来说的原因,</p>
<p>而是文字抒发起点完全不同,</p>
<p>周总理们,</p>
<p>是经历了所有艰难之后,</p>
<p>深刻理解,</p>
<p>感同身受当年英雄们的痛苦,</p>
<p>这才忍心不得不为发声;</p>
<p>而文革小将们,</p>
<p>完全是被社会氛围给推上来的,</p>
<p>使用的字词也是在那几年一层层逼上台阶的,</p>
<p>为什么使用,</p>
<p>不得不用,</p>
<p>否则,</p>
<p>不够革命就等于反革命...</p>
<p>文化大革命,</p>
<p>无论初衷还是成果,</p>
<p>至少从汉语使用角度,</p>
<p>可以说是另外一种姿势的文字狱,</p>
<p>以往古代大兴文字狱不过是禁止讨论,</p>
<p>而且也只在士人阶层进行,</p>
<p>平民都是文盲也落不到文字狱中;</p>
<p>而文化大革命是全体人民被迫使用一种越来越狂热的思考和文字形式来进行日常表达...</p>
<p>等等,</p>
<p>现在不时被意外激发的网络潮流,</p>
<p>也非常象哪,</p>
<p>比如那个 #ME2</p>
<p>几乎瞬间圈死了所有SNS 中正义的表述形式/故事/用词/...</p>
<p>以及近期黑人文化运动,</p>
<p>计算机界都不得不将 master 分支修改为 main;</p>
<p>这难道不是文字狱?</p>
<p>有意思的是:</p>
<p>文字狱一般都是皇帝下旨官吏推行,</p>
<p>而当今互联网文字狱,</p>
<p>则是任何人都可以发起,</p>
<p>而共同推行的是互联网中所有人...</p>
<p><img alt="2104.022" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.022.jpeg"/></p>
<h3 id="nn-4357">呢喃/ NN 4357<a class="headerlink" href="#nn-4357" title="Permanent link">¶</a></h3>
<p>93年前的今天,</p>
<p>邓波儿诞生;</p>
<p>作为第一位, </p>
<p>也可能是唯一一位超级童星,</p>
<p>和后来超级模特类似,</p>
<p>模特只是一种职业,</p>
<p>负责将设计师的成果以直观的方式精确展示出来,</p>
<p>超模则是另外一个概念了,</p>
<p>只有能将自身树立为品牌,</p>
<p>并引领时尚概念的模特才是:超模</p>
<p>可以说是和顶级设计师同级别的生物.</p>
<p>邓波儿 的童星生涯现在回顾也是最神奇的,</p>
<p>6岁出道,</p>
<p>10岁封神,</p>
<p>然后转向政届,</p>
<p>虽然没有里根混的高,</p>
<p>但也顺风顺水, </p>
<p>一生无厄高寿而终;</p>
<p>对比其它童星,</p>
<p>有的可能作童星时影响力比肩邓波儿;</p>
<p>但然后,</p>
<p>都无法善终,</p>
<p>象 邓波儿 这样,</p>
<p>无论作什么,</p>
<p>一直是公众人物,</p>
<p>而且人设一直没崩溃,</p>
<p>就这么美好到终了,</p>
<p>实在是神迹?</p>
<p>只能理解为:</p>
<p>作为人类第一名绝对意义上的超级童星,</p>
<p>参演的电影又都是真善美,</p>
<p>可以说自身已经变成人类真善美的人形代表,</p>
<p>今周遭资源,</p>
<p>不自觉的想维护住这一形象,</p>
<p>更加难得的是 邓波儿 自己,</p>
<p>天性良善,</p>
<p>又能在突然出名后,</p>
<p>没有迷失,</p>
<p>继续认真工作,</p>
<p>贡献社会,</p>
<p>不骄不躁...</p>
<p>活该善终.</p>
<p>虽然,</p>
<p>世界上类似美好善良的小姑娘太多了,</p>
<p>只是,</p>
<p>多数并没机会变成明星,</p>
<p>以及极少数也没必要通过明星工作来维持自己的善良,</p>
<p>嘦自在生活就好...</p>
<p>俺说的是贵族子女们...</p>
<p>当然,</p>
<p>这很凡尔赛.</p>
<p><img alt="2104.023" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.023.jpeg"/></p>
<h3 id="nn-4358">呢喃/ NN 4358<a class="headerlink" href="#nn-4358" title="Permanent link">¶</a></h3>
<p>2年前的今天,</p>
<p>第一个商用核能移动供电站入水;</p>
<p>基本上就是核动力航空母舰的单一功能版;</p>
<p>联想之前开源的"微型"核电站:</p>
<ul>
<li>仅2亿千瓦时</li>
<li>仅占地0.5平方公里</li>
<li>绝对安全</li>
<li>值得部署在每个城市中,就近供,减少输变电线路</li>
<li>...</li>
</ul>
<p>问题来了,</p>
<p>早在上世纪,</p>
<p>很多儿童读物中,</p>
<p>核能早已非常可爱亲,</p>
<p>比如有永远不用换电池的核能手表,</p>
<p>为什么现在几乎没有公众媒体在讨论核能的发展?</p>
<p>只是在有关纪念日时,</p>
<p>重新回顾一下Chernobyl/Чорнобильськая 事件?</p>
<p>简单的说,</p>
<p>核裂变还远远没被人类征服,</p>
<p>同时传统发电技术也在一直发展,</p>
<p>仅热电厂能量转换效能这20年增长了快一倍,</p>
<p>同时无论煤矿还是石油开采技术的进步,</p>
<p>也令人类可利用能源储备至少增长了一倍,</p>
<p>进而变电配套设备和技术的发展,</p>
<p>令远程输电的损耗也至少减低了一倍,</p>
<p>同时各种用电设备本身也因为技术发展节能了一大截,</p>
<p>特别是 LED 灯具的广泛使用直接将照明这一用电大类的能耗降低了几十倍...</p>
<p>这样外里,</p>
<p>等于用以往相同的燃料就足以供应以往几倍人口的生产和生活需求;</p>
<p>而且,</p>
<p>洁净的核聚变技术,</p>
<p>环保的风力/水力/潮汐/光伏/光热/...新兴发电技术,</p>
<p>都在高速发展,</p>
<p>危险又不环保的核电站当然不怎么值得宣传了,</p>
<p>不过,</p>
<p>各国建造核电站的进展并没降低,</p>
<p>法国早已将全国用电大半用核电统一供应了...</p>
<p>毕竟, </p>
<p>国家层面上没傻的.</p>
<p>不是嘛?</p>
<p><img alt="2104.024" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.024.jpeg"/></p>
<h3 id="nn-4359">呢喃/ NN 4359<a class="headerlink" href="#nn-4359" title="Permanent link">¶</a></h3>
<p>疟疾好象是人类一第种完全战胜的疾病?</p>
<p>所以,</p>
<p>这天也同时定为儿童预防接种宣传日;</p>
<p>有穿越小说注意到了这点,</p>
<p>主角肉身回到中世纪,</p>
<p>可以穿行各种传染病地区而不被感染,</p>
<p>作为神迹被认为圣人从而发际;</p>
<p>这当然是现代医疗工业的功劳,</p>
<p>不过,</p>
<p>真实情况可能相反,</p>
<p>就象当年西班牙占领美洲时,</p>
<p>阿斯特克/玛雅/...</p>
<p>几百万勇士被西班牙海员身上携带的流感传染,</p>
<p>大片大片死去,</p>
<p>而穿行其中的西班牙毫无感觉,</p>
<p>于是大家都认为这是 God 的伟力,</p>
<p>结果造成高效传教成功局面;</p>
<p>可其实,</p>
<p>不过是西班牙舰队卫生条件差,</p>
<p>长年寄生有各种病毒在船仓,</p>
<p>而能耐受住这种生活环境的海兵们,</p>
<p>基本都有了抗体,</p>
<p>所以,</p>
<p>每个人都是行走的病毒库,</p>
<p>对于新大陆的当地人,</p>
<p>每个人基本上约等于整个儿731部队...</p>
<p>如果中国城市现代人肉身穿越回中世纪,</p>
<p>目测,</p>
<p>效果也相似,</p>
<p>要知道我们从出生到长大,</p>
<p>打过多少疫苗?</p>
<p>每种能诱发多少种抗体?</p>
<p>从而可以和多少种病毒共存?</p>
<p>而任何一种病毒在过去都是灭世级的生化武器啊...</p>
<p>当然,</p>
<p>COVID-19 就是代价之一,</p>
<p>包含之前刚刚发现 H1N1 没几年已经进化到 H10N8,</p>
<p>病毒进化的这么快,</p>
<p>都是现代医疗工业刺激的,</p>
<p>以往一种病毒杀死几千万人,</p>
<p>流行上百年也没变化,</p>
<p>因为人类没有应对手段,</p>
<p>除了忍受和隔离或是迁移...</p>
<p>现在,</p>
<p>通过基因工程,</p>
<p>可以很快针对性制造特效药,</p>
<p>而类似这种耙向药,</p>
<p>等于帮忙精确过滤出病毒中自然进化的新品种,</p>
<p>强行促使进一步变化,</p>
<p>毕竟,</p>
<p>病毒也是生命体,</p>
<p>而生命的根本目标是生存,</p>
<p>生存环境变化时,</p>
<p>自身就针对性变化,</p>
<p>人类有了越来越有效干预体内或是自然环境的手段,</p>
<p>也就促使病毒们越来越高效的变化...</p>
<p>不是嘛?</p>
<p><img alt="2104.025" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.025.jpeg"/></p>
<h3 id="nn-4360">呢喃/ NN 4360<a class="headerlink" href="#nn-4360" title="Permanent link">¶</a></h3>
<p>今天是</p>
<p>世界知识产权日</p>
<p>那么, 什么是知识产权?</p>
<p>推荐一部小片:</p>
<p><img alt="十分钟速成课:知识产权" src="https://ipic.zoomquiet.top/2022-08-18-640%20-9-.jpeg"/></p>
<p>十分钟速成课:知识产权 第一季 (豆瓣)</p>
<p>https://movie.douban.com/subject/30143786/</p>
<p>B站上有, 可以直接刷,</p>
<p>一集10分钟;</p>
<p>其实,人类类似行为自古就有:</p>
<p>为了解决一个问题,</p>
<p>提出一个方案,</p>
<p>在方案实施过程中,</p>
<p>发现很多漏洞,</p>
<p>为了阻止聪明人利用这些漏洞非法获利,</p>
<p>进一步提出另外一个方案...</p>
<p>然后,</p>
<p>几次对抗之后,</p>
<p>原先清晰简洁明了的方案已经变成一坨谁都不大明白的东西了;</p>
<p>从知识产权出发,</p>
<p>具体到原创文本版权,</p>
<p>拓展为代码许可证,</p>
<p>进一步,</p>
<p>利用代码许可证,</p>
<p>来确保代码永远开源,</p>
<p>即: GNU 运动引发的 GPL</p>
<p>再后来,</p>
<p>聪明人,</p>
<p>又主动缩小 GPL 范畴,</p>
<p>衍生出开源软件概念和对应不同许可证,</p>
<p>以及围绕开源软件开发建立起来的社区/项目/组织/企业/...</p>
<p>进而形成全新文化;</p>
<p>这种背景中,</p>
<p>对每个具体的人又有什么选择和影响?</p>
<p>这是昨夜在线网络讲座俺的切入点;</p>
<p>具体活动, 官方文案:</p>
<p>开源软件供应链点亮计划-暑期2021——大咖说开源第二季;</p>
<p>4/24起,每周六日晚8点,相约B站;</p>
<p>你想知道的开源故事,这里可以倾听,你对开源的迷惘,这里可以解惑,你对开源的向往,这里可以实现!</p>
<p>暑期2021是由中国科学院软件研究所和openEuler社区共同举办的面向高校学生的暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发和维护,促进国内优秀开源软件社区的蓬勃发展。</p>
<p>活动官网:https://summer.iscas.ac.cn/</p>
<p>为了帮助在校学生更深入了解开源文化及参与开源社区的方式方法,主办方联合开源社特推出系列活动讲座——大咖说开源。</p>
<p>每个社会,</p>
<p>对未来影响最大的群体,</p>
<p>应该是学生,</p>
<p>特别是大学生,</p>
<p>只是...嗯哼, 不吐糟了,</p>
<p>欢迎大家每周来听.
<img alt="2104.026" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.026.jpeg"/></p>
<h3 id="nn-4361">呢喃/ NN 4361<a class="headerlink" href="#nn-4361" title="Permanent link">¶</a></h3>
<p>中国青年报今天创刊70周年,</p>
<p>当年刚刚建国,</p>
<p>就创立青年报,</p>
<p>意思很明确,</p>
<p>就是要鼓励关注青年,</p>
<p>给青年一个发声的空间,</p>
<p>毕竟青年人是国家最珍贵的劳动力;</p>
<p>但是,</p>
<p>4年前林奕含自杀(被社会性自杀),</p>
<p>对比日本越来越多高考失利而自杀的青年人,</p>
<p>只能说,</p>
<p>随着社会发展,</p>
<p>对于弱势群体是越来越不在意了,</p>
<p>一直有说:</p>
<p>拳怕少壮...</p>
<p>莫欺少年穷...</p>
<p>可事实上,</p>
<p>青年大多场景中,</p>
<p>根本没有上拳台的资格;</p>
<p>比如: 伊藤诗织</p>
<p>本身遭遇和林奕含类似,</p>
<p>但迫害发生时,</p>
<p>伊藤已经是成年人,</p>
<p>有足够心理准备,</p>
<p>而且本身作为媒体从业人员,</p>
<p>在下决心后,</p>
<p>很短时间就完成图书出版,</p>
<p>全球巡讲,</p>
<p>能在持续输出过程中完成自我调节;</p>
<p>而小林,</p>
<p>长期遭受侵害时根本没理解所遭受的,</p>
<p>等成年后真正理解了发生在自己身上的事情后,</p>
<p>已经不能找到什么证据了,</p>
<p>只能通过小说创作来间接表达出来,</p>
<p>结果,</p>
<p>被社会整体 diss,</p>
<p>看不到任何希望时,</p>
<p>只能选择离开;</p>
<p>而且,</p>
<p>这事儿发生在在亚洲四小龙之一的台湾,</p>
<p>发达地区,</p>
<p>文化/文明程度应该比非洲部落要好,</p>
<p>可落在女性身上的目光,</p>
<p>和道光年间并无不同,</p>
<p>可以说,</p>
<p>台湾继承中华文明的道统过于彻底了.</p>
<p>和小林同级别的迫害,</p>
<p>记忆中只有:</p>
<ul>
<li>成都李思怡事件</li>
<li>清华朱令铊中毒事件</li>
<li>克拉玛依...</li>
<li>...</li>
</ul>
<p>呃...并不是只有,</p>
<p>而是光报道出来的就不少;</p>
<p>对比"82年生的金智英",</p>
<p>中国表面上看起来进步很多,</p>
<p>其实...</p>
<p>不是, </p>
<p>原先想说,</p>
<p>马寅初人口问题的,</p>
<p>你看,</p>
<p>之前4万万同胞死了那么多才胜利,</p>
<p>为了建设必须多生多养,</p>
<p>也吻合中国民俗,</p>
<p>但是,</p>
<p>我们理智的意识到不行,</p>
<p>人口发展超过经济发展一定不行,</p>
<p>于是率先/可能是唯一将计划生育(限制)立为国策,</p>
<p>执行几十年,</p>
<p>对比隔壁印度是成功了,</p>
<p>然后,</p>
<p>又尴尬的发现,</p>
<p>劳动力不足,</p>
<p>中国制造优势不再,</p>
<p>这事儿更要命,</p>
<p>然后,</p>
<div class="highlight"><pre><span></span><code>一个真心少
三个不算多
两个刚刚好
...
</code></pre></div>
<p>嗯哼?很眼熟的口号;</p>
<p>反正,</p>
<p>这样折腾都是为最大多数人的生存空间,</p>
<p>只是...</p>
<p>是吧?</p>
<p><img alt="2104.027" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.027.jpeg"/></p>
<h3 id="nn-4362">呢喃/ NN 4362<a class="headerlink" href="#nn-4362" title="Permanent link">¶</a></h3>
<p>10年前的今天,</p>
<p>第6次人口普查,</p>
<p>咱们一共13.39亿;</p>
<p>今年马上将完成又一次普查,</p>
<p>猜猜增长到多少了?</p>
<p>其中多少60岁以上?</p>
<p>又有多少16岁以下?</p>
<p>中国不象其它西方国家,</p>
<p>有积极的移民政策,</p>
<p>可以随时根据人口需要调节外来人口;</p>
<p>我们是纯粹的完全自然生育/死亡的人口;</p>
<p>但是,</p>
<p>还不能将所有生育/死亡数据实时统计起来,</p>
<p>所以,</p>
<p>不得不进行人口普查,</p>
<p>好在比其它国家,</p>
<p>户藉制度还有余威,</p>
<p>人口虽然开始流动但一向是有来有往有序有规律的;</p>
<p>普查效率全球第一;</p>
<p>要知道,</p>
<p>IBM 当年就是靠专门给政策供应进行人口普查的专用计数器完成原始积累的;</p>
<p>可以理解为几十年如一日,</p>
<p>为政府制造专门用以人口普查用的算盘;</p>
<p>当然,</p>
<p>现在有互联网了,</p>
<p>人口普查不用象历史上要以十年为单位来进行;</p>
<p>可依然无法实时计算,</p>
<p>除非...</p>
<p>物联网完全普及,</p>
<p>所有在中国境内的人,</p>
<p>都注射有纳米级身份证;</p>
<p>在通过任何一个 cctv 时,</p>
<p>自动感应自动上报;</p>
<p>那么通过中央统计局的计算中心,</p>
<p>用不了几天就可以统计出中国境内部合法公民的精确数量;</p>
<p>当然,</p>
<p>这种纳米身份证,</p>
<p>是只有在正规医院接生时,</p>
<p>才能注入的,</p>
<p>如果在野外意外降生,</p>
<p>又一直在户外探险,</p>
<p>从来没进过医院建档的公民,</p>
<p>就难以统计到了.</p>
<p>不过,</p>
<p>祖国制造力量强大,</p>
<p>嘦可以在每一平方公里上空均匀部署无人监控飞机,</p>
<p>就可以发现这种没有感应的公民,</p>
<p>调集附近机械狗去引导回有关部门当地分支机构注射身份证就好.</p>
<p>不是嘛?
<img alt="2104.028" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.028.jpeg"/></p>
<h3 id="nn-4363">呢喃/ NN 4363<a class="headerlink" href="#nn-4363" title="Permanent link">¶</a></h3>
<p>唐宋元明清,</p>
<p>打小背的很溜,</p>
<p>都说元/清是异族统治,</p>
<p>可其实国家行政主体,</p>
<p>大多数官僚还是汉族士人,</p>
<p>这种学霸气质,</p>
<p>真的是遗传,</p>
<p>没办法,</p>
<p>其它民族,</p>
<p>好象也就犹太人能为之相比;</p>
<p>当然,</p>
<p>这种对知识渴求和尊重的动机并不相同,</p>
<p>效果却是相同的,</p>
<p>对后代教育达到了宗教般虔诚;</p>
<p>初中时写过一部科学幻想小说: 22CC</p>
<p>设想未来教育如何,</p>
<p>就是对自古应试教育改良的幻想...</p>
<p>回想当时幻想出来的各种对策,</p>
<p>现在才发现,</p>
<p>其实,</p>
<p>古人早已解析过了,</p>
<p>应试并不是最好的教育形式,</p>
<p>但却是最不坏的一种;</p>
<p>注意,</p>
<p>根本算不上好,</p>
<p>但是在尝试过各种教育形式后,</p>
<p>应试教育却是整个社会最容易接受/推广/维护/...甚至于相对最公平的一种了.</p>
<p>而,</p>
<p>中国是最早将应试教育推广到全国规模的国家,</p>
<p>这几乎令我们每个家庭都有丰富的应试心理/生活/民俗/...准备,</p>
<p>而且这种经验是在全球任何一场考试中都可以兼容的,</p>
<p>这就是先发优势,</p>
<p>嘦有考试的地方,</p>
<p>就一定有考到满分的中国学生,</p>
<p>这简直是令所有教育机构绝望的一种现象,</p>
<p>当然,</p>
<p>不包含中国教育机构,</p>
<p>毕竟,</p>
<p>相比学生个人潜力,</p>
<p>有几千年出题经验的中国教育机构,</p>
<p>集体智慧联合起来,</p>
<p>就是爱因斯坦复活面对中国高考试卷也得跪.</p>
<p>不是嘛?</p>
<p><img alt="2104.029" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.029.jpeg"/></p>
<h3 id="nn-4364">呢喃/ NN 4364<a class="headerlink" href="#nn-4364" title="Permanent link">¶</a></h3>
<p>英语.太庙.疯狂...</p>
<p>31年前的今天,</p>
<p>应该是英语教育在中国最高光时刻,</p>
<p>然后,</p>
<p>就没有然后了,</p>
<p>你看观海同学全家都在学习中文了;</p>
<p>讲真,</p>
<p>历史上流行学中文的时间比英文在C位的时间长太多了,</p>
<p>以至,</p>
<p>在太庙搞类似传销活动才有了话题性;</p>
<p>只是,</p>
<p>单说疯狂英语的疯狂,</p>
<p>先不论其内容/形式/融资/崩溃/...一路疯狂姿态;</p>
<p>从教育理念上来说:</p>
<p>一定要疯狂的大声吼出英文才记得住...</p>
<p>嗯哼?</p>
<p>冷静下来一想就不对吧,</p>
<p>现在出国机会多,</p>
<p>也方便,</p>
<p>全球满大街说英文的,</p>
<p>如果不是911之类大灾大难,</p>
<p>没人疯狂大喊大叫着说事儿的,</p>
<p>关键,</p>
<p>正常音调,</p>
<p>日常对话,</p>
<p>用气行声和疯狂大呼时,</p>
<p>根本不同的哪,</p>
<p>国际音标也管不了歌剧时高声诵唱时的发音了;</p>
<p>也就是说,</p>
<p>疯狂英语的教学形式,</p>
<p>其实和电影:</p>
<p>浪潮 (Die Welle)</p>
<p>https://movie.douban.com/subject/2297265/</p>
<p>中描述的思想控制方法一样,</p>
<p>在改开刚刚启动时,</p>
<p>学习英文本身就是复杂难言的一类行为,</p>
<p>谁也说不清何时突然就变性为反革命,</p>
<p>这时,</p>
<p>有人组织大家公开大声吼英文,</p>
<p>就是制造一种特立独行的形象,</p>
<p>通过共同形象来制造归宿感,</p>
<p>形成命运共同体的虚拟关系,</p>
<p>进而形成认同,</p>
<p>又通过各种付费行为固化组织,</p>
<p>制造层级,</p>
<p>进而在服从中丧失独立思想变成集体中的一个粒子...</p>
<p>不是嘛?</p>
<p><img alt="2104.030" src="https://ipic.zoomquiet.top/2022-08-18-zq42-today-card-2104.030.jpeg"/></p>呢喃s/ 21.032021-03-01T20:42:00+08:002022-08-18T15:04:40+08:00ZoomQuiettag:blog.zoomquiet.io,2021-03-01:/210301-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2021.03</p><h2 id="at-202103">呢喃 at 2021.03<a class="headerlink" href="#at-202103" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<h3 id="nn-4304">呢喃/ 呢喃/ NN 4304<a class="headerlink" href="#nn-4304" title="Permanent link">¶</a></h3>
<p>世界一向由绝对乐观主义者开创咯;</p>
<p>但是探索出来的新世界真正能为广大民众消费,</p>
<p>安全消费,</p>
<p>还是绝对悲观主义者们艰苦的努力结果;</p>
<p>一开始各种飞行机器都是只管起飞不管降落的,</p>
<p>失事基本都出现在降落环节;</p>
<p>所以,</p>
<p>悲观主义者发明了降落伞,</p>
<p>这才保住了大批试飞员,</p>
<p>然后,</p>
<p>才有了人类航空事业.</p>
<p>世界为什么不能完全相信绝对乐观主义者呢?</p>
<p>说两个案例:</p>
<p>海洛因刚刚合成出来时,</p>
<p>是作为抑郁症特效药海量供应的,</p>
<p>要知道什么东西一但能工业化生产那就不是按照克而是吨来交易的了,</p>
<p>而海洛因用量只有几毫克,</p>
<p>供大于求,</p>
<p>怎么办?</p>
<p>掺到各种食品中,</p>
<p>打造快乐因素,</p>
<p>同时也海量供应给军队用来提升注意力/士气/勇气/...</p>
<p>其结果,</p>
<p>想象的出;</p>
<p>DDT/滴滴涕/二二三 刚刚发明出来时,</p>
<p>作为广谱杀虫剂,</p>
<p>又便宜又好用,</p>
<p>还对人无毒,</p>
<p>于是海量使用,</p>
<p>每到夏天政府就派出飞机在整个儿城市上空定时播撒,</p>
<p>确保没有蚊虫;</p>
<p>多年后才发现,</p>
<p>这货化学性能太稳定,</p>
<p>在自然界中几乎无法自然降解,</p>
<p>容易在生物体内积累,</p>
<p>导致鸟类只能生出软壳蛋,</p>
<p>不可能孵化,</p>
<p>赶紧禁用,</p>
<p>但污染已经弥散到南极,</p>
<p>企鹅差点儿因为 DDT 全部灭绝;</p>
<p>镭刚刚发现时,</p>
<p>非常酷炫,</p>
<p>手表上直接用镭粉作莹光剂,</p>
<p>工人为了保持笔尖锐利,</p>
<p>长期直接用舌舔粘满镭粉的笔...</p>
<p>因为有强烈的放射线,</p>
<p>所以,</p>
<p>表面上镭能长期保护食品不腐败,</p>
<p>所以,</p>
<p>厂商将镭添加到食品/化妆品/...中,</p>
<p>并加价销售,</p>
<p>引领潮流...</p>
<p>其结果,</p>
<p>想象的出.</p>
<p>你看绝对乐观主义者,</p>
<p>其实就是只相信自己看到的东西,</p>
<p>没空也没兴趣慢慢观察,</p>
<p>真正理解一件新事务所有方面特性;</p>
<p>认为,</p>
<p>嘦有用,</p>
<p>就是好的...</p>
<p>所以,</p>
<p>家鼠中,</p>
<p>总是有很大一部分绝对乐观主义鼠,</p>
<p>无论遇到什么新奇"食物",</p>
<p>都会第一时间扑上去,</p>
<p>大块朵颐;</p>
<p>然后,</p>
<p>其它绝对悲观鼠忍着饿,</p>
<p>从旁观察,</p>
<p>如果几次后,这种新奇"食物"没有导致乐观鼠死亡,</p>
<p>那么,</p>
<p>悲观鼠才开始吃;</p>
<p>反之,</p>
<p>悲观鼠就记录下来,</p>
<p>教育小鼠们躲开.</p>
<p>总之,</p>
<p>绝对乐观,</p>
<p>绝对是社会进步必要因子了.</p>
<p>至于自己是否信奉,</p>
<p>并坚定的乐观,</p>
<p>那就看个人意愿了.</p>
<p><img alt="2103.001" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.001.jpeg"/></p>
<h3 id="nn-4305">呢喃/ NN 4305<a class="headerlink" href="#nn-4305" title="Permanent link">¶</a></h3>
<p>72年前,</p>
<p>B-50重型轰炸机首次完成不着陆环球飞行;</p>
<p>这就意味着,</p>
<p>战略武器叕多一个难以毁灭的部属平台;</p>
<p>什么意思呢?</p>
<p>战略武器,</p>
<p>就是对国家决策有重大影响力的武器;</p>
<p>类似热核武器,</p>
<p>一但打击成功可以瞬间改变双方战争潜力对比关系,</p>
<p>当然是任何战争第一消灭对象;</p>
<p>早在"孙子兵法"军争篇中就形容过:</p>
<p>其疾如风</p>
<p>其徐如林</p>
<p>侵掠如火</p>
<p>不动如山</p>
<p>难知如阴</p>
<p>动如雷震</p>
<p>前四句形容战略级武器应该的效能;</p>
<p>后两句就是其部署和使用时必要形态:</p>
<p>要难以发现,</p>
<p>同时发动时越快越好;</p>
<p>以往武器威力越大,</p>
<p>体积/重量也就越大,</p>
<p>导致难以机动,</p>
<p>所以,</p>
<p>大家拼命在如何藏好这个方向上下功夫;</p>
<p>一般也就:</p>
<p>上山 ~ 到深山野林去</p>
<p>下海 ~ 在浅海建造水下基地</p>
<p>入地 ~ 在地下挖掘隐藏基地</p>
<p>机动 ~ 使用专用列车, 可以沿铁路移动...</p>
<p>成本巨大,</p>
<p>效果并不怎么样;</p>
<p>毕竟无论在哪儿营造长期驻守的基地都不是小事儿,</p>
<p>成本大,</p>
<p>目标大,</p>
<p>难以绝对隐藏;</p>
<p>随着卫星上天,</p>
<p>基本上没办法在地面轻易部署不被人知的战略武器发射基地了;</p>
<p>于是,</p>
<p>在战略武器越来越小型化基础上,</p>
<p>才能将脑筋用在其它场景中:</p>
<p>空中 ~ 重型飞行器搭载,持续飞行增加定位和攻击的难度</p>
<p>太空 ~ 直接部署到地球之外,如果没有对应反制航天器,就只能看着了</p>
<p>当然,</p>
<p>这些整体成本比原来的基地要小,</p>
<p>可也不是一般国家承受的了的;</p>
<p>所以,</p>
<p>进一步的,</p>
<p>战略级武器概念也在战略级进化,</p>
<p>比如:</p>
<p>以互联网为作用目标的高端病毒,</p>
<p>提前部署,</p>
<p>以特殊条件自动激发,</p>
<p>瞬间破坏目标国家/地区/设施/设备/...的网络/系统/硬件/...</p>
<p>造成对应社会资源失效;</p>
<p>扭转战略对比,</p>
<p>可成本只有:</p>
<ul>
<li>
<p>若干程序猿的时间</p>
</li>
<li>
<p>若干特工短暂特务活动</p>
</li>
</ul>
<p>还有:</p>
<p>一但脑机接口得到普及,</p>
<p>通过互联网远程控制对方关键人物的思维/行为,</p>
<p>在监控盲区完成非常接触性破坏也就成为可能...</p>
<p>以及:</p>
<p>种族基因武器</p>
<p>大气武器</p>
<p>物理规则武器</p>
<p>时间线破坏器...</p>
<p>可以设想的空间还有很多很多.</p>
<p>PS:</p>
<p>好象大家对 NN 4305 这一私用纪元不好奇的?</p>
<p>猜一猜?</p>
<p>回复公众号给出你的推断?</p>
<p><img alt="2103.002" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.002.jpeg"/></p>
<h3 id="nn-4306">呢喃/ NN 4306<a class="headerlink" href="#nn-4306" title="Permanent link">¶</a></h3>
<p>大卫·格里菲斯 D.W. Griffith</p>
<p><img alt="大卫" src="https://ipic.zoomquiet.top/2022-08-18-640.jpeg"/></p>
<p>是真正现代电影之父,</p>
<p>几乎一己之力完成了电影从实验到产业化的探索,</p>
<p>而且最细思恐极的是,</p>
<p>单人将电影几乎所有表现手法和拍摄技巧全部趟平了;</p>
<p>1915 一个国家的诞生 The Birth of a Nation</p>
<p>1916 党同伐异 Intolerance: Love's Struggle Throughout the Ages</p>
<p>97年前连续两部电影,</p>
<p>就完成了以上历史创举;</p>
<p>当然,</p>
<p>市场反应很惨;</p>
<p>想想也活该,</p>
<p>比如我们拿着 iPhone 去三国</p>
<p>给诸葛孔明说可以用这个小盒子远程沟通战场上的将领,</p>
<p>而且可以现场直播将干盗书过程,</p>
<p>打死人家也不可能相信的;</p>
<p>世界上第一部公映电影是2分钟的火车进站,</p>
<p>不知道吓得多少人跑出影院~ 以为火车真的要冲过来...</p>
<p>格里菲斯放飞创造力,</p>
<p>将胶片可以展现的一切可能都刷了个遍,</p>
<p>对于当时观众,</p>
<p>基本都是超纲内容,</p>
<p>对于同业则是考试小抄,</p>
<p>这一抄一个世纪,</p>
<p>照样没抄完;</p>
<p>现在电影工业,</p>
<p>工业化的是电影制作过程中所有环节上的标准化规模化;</p>
<p>而且最终呈现出来的电影本身,</p>
<p>并没超越初次触电的格里菲斯的思想空间;</p>
<p>类似这种一经发明就立即达到极致的例子不少,</p>
<p>之前曰过科学幻想小说大师凡尔纳,</p>
<p>也是单人将 SiFi 领域几乎所有体裁都写了出来;</p>
<p>日本漫画更加是,</p>
<p>创始人手冢治虫也是单人将几乎所有可画之事儿都画过了;</p>
<p>算盘/围棋/筷子/...各种器物也是,</p>
<p>基本就是一发明出来,</p>
<p>就达到完满,</p>
<p>其后也就制作工艺有变化,</p>
<p>整体形式再无增进的可能,</p>
<p>这是为什么呢?</p>
<p>或是说,</p>
<p>在什么领域中可以作到单人开创同时又直接将科技树给拉满?</p>
<p>直觉上,</p>
<p>和问题本身已经基本解答:</p>
<p>就是单人可以作完的事儿,</p>
<p>只有这类事儿,</p>
<p>单人可以在足够天才的情况下第一时间将之拉满;</p>
<p>比如仓颉,</p>
<p>很难说当时是在造字还是发明了简笔画,</p>
<p>只是足够耐心并有足够想象力和耐力,</p>
<p>一气给出了一套可用的基本汉字,</p>
<p>然后,</p>
<p>在部落支持下规模化使用起来,</p>
<p>瞬间就完成了对其它部落文化势压,</p>
<p>形成即定现实,</p>
<p>大家为了确保沟通,</p>
<p>也只能在第一个完成的文字体系上一起来完善.</p>
<p>嗯哼?</p>
<p>互联网创业时,</p>
<p>为什么大力烧钱尽快占领市场,</p>
<p>然后就可以为所欲为?</p>
<p>好象也是相同道理了...</p>
<p><img alt="2103.003" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.003.jpeg"/></p>
<h3 id="nn-4307">呢喃/ NN 4307<a class="headerlink" href="#nn-4307" title="Permanent link">¶</a></h3>
<p>Happy Birthday for you...</p>
<p>祝你生日快乐</p>
<p>这歌曲果然是有版权的,</p>
<p>也就是说,</p>
<p>从小到大唱了那么多回的歌曲,</p>
<p>本质上,</p>
<p>每次都是在盗版使用;</p>
<p>如果,</p>
<p>每唱一次都要给作者一分钱,</p>
<p>也早够亿万富豪了.</p>
<p>其实,</p>
<p>人们设计版权的目的就是保护知识类创作;</p>
<p>因为知识/艺术创作,</p>
<p>不象其它工业/农业产品,</p>
<p>花费的时间精力,最终凝结成具体物质化产品,</p>
<p>本身看得到,</p>
<p>摸得到,</p>
<p>也就容易进行标记以及追踪和保护;</p>
<p>但是故事/创意/创新/...</p>
<p>越来越多关键性思考结果,</p>
<p>本身只是个想法/概念,</p>
<p>在没有结合到任何具体物质前,</p>
<p>其价值是难以厘定的,</p>
<p>其边界也难以界定,</p>
<p>导致就算是想保护也无从保护;</p>
<p>这也引发/造就了全新职业:版权保护律师;</p>
<p>比如: Disney 版权团队,</p>
<p>日常就是从全球任何商业活动中发现象米老鼠的形象,</p>
<p>立即起述,</p>
<p>因为长年进行类似争辩,</p>
<p>导致胜率不小,</p>
<p>养活了不知多少律师.</p>
<p>到了 IT 时代,</p>
<p>随着电脑可以控制越来越多现实世界的一部分,</p>
<p>控制电脑的程序,</p>
<p>其蕴藏的价值也就越来越大;</p>
<p>而编译出程序的代码,</p>
<p>也就越来越值得看护起来;</p>
<p>只是,</p>
<p>发明软件的 Bill,</p>
<p>复用文学版权的概念,</p>
<p>将代码视为文学创作,</p>
<p>所以,天然有版权,</p>
<p>只是代码只是看而不去编译/运行/使用是无法产生任何价值的,</p>
<p>所以,</p>
<p>稍微拓展了一下,</p>
<p>使用版权声明的形式,</p>
<p>定义了有法律效能的软件许可证;</p>
<p>从而将原先离开软件就亳无价格的软件,</p>
<p>变成一种拥有独立价值的商品,</p>
<p>也就对应造就了软件产业;</p>
<p>当然,</p>
<p>程序猿们并不都这么看待软件的;</p>
<p>RMS 第一时间,</p>
<p>使用 Bill 相同形式,</p>
<p>创作了 GPL 软件许可证,</p>
<p>通过版权法,</p>
<p>要求使用 GPL 协议的代码必须和世界共享4大自由:</p>
<p>0: 自由使用软件</p>
<p>1: 自由学习软件</p>
<p>2: 自由修改软件</p>
<p>3: 自由发行软件</p>
<p>而且, 基于 GPL 软件代码增补/修改/组合/...嗯哼出来的新软件,</p>
<p>也必须遵守相同协议.</p>
<p>也就是说和 Bill 们相反,</p>
<p>更多程序员,</p>
<p>不仅仅希望能有效将自己写的代码换钱养家,</p>
<p>更加希望从自己代码开始,</p>
<p>更多同行/爱好者可以自由使用自己的代码并一起令世界更加美好;</p>
<p>不同的目的,世界观,导致不同行为结果;</p>
<p>这种精神以及社区组织上的纷争触发40多年后,</p>
<p>两个方向上的软件都有长足发展,</p>
<p>就象有中国特色的社会主义中,</p>
<p>计划经济/私有经济/集体经济/...</p>
<p>各种类型的经济实体并没有谁完全替代谁,</p>
<p>也没有谁一定离不了谁,</p>
<p>参差多态才是自然生态.</p>
<p>比如大妈自己:</p>
<p>是纯正"自由软件原教旨主义者",</p>
<p>但是,</p>
<p>并不妨碍加盟公司,</p>
<p>编写商业软件.</p>
<p><img alt="2103.004" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.004.jpeg"/></p>
<h3 id="nn-4308">呢喃/ NN 4308<a class="headerlink" href="#nn-4308" title="Permanent link">¶</a></h3>
<p>今天周总理诞辰123年了;</p>
<p>鞠躬尽瘁,死而后已.</p>
<p>没有什么人比周总理更加契合这句了;</p>
<p>只是,</p>
<p>普通人基本很难说出总理一生最著名的几件事儿,</p>
<p>完全是一个整体的周总理形象充塞在心,</p>
<p>也可以说,</p>
<p>总理作到实处的事儿太多了,</p>
<p>多到难以从中排序发现 top10;</p>
<p>其实,</p>
<p>周总理最狠的功劳就是:</p>
<p>从无到有,</p>
<p>为自己构造出一个能安心鞠躬尽瘁的新中国来;</p>
<p>以往,</p>
<p>你就是再怎么鞠躬尽瘁死了也就死了留不下来任何东西,</p>
<p>都被周围大酱缸消化了.</p>
<p>相似的好人,</p>
<p>雷锋也算,</p>
<p>周总理特指周恩来;</p>
<p>雷锋,</p>
<p>也早已不是指姓雷的那个汽车兵了;</p>
<p>学雷锋,树新风</p>
<p>这是进入现代汉语的固定词;</p>
<p>当我们和外国友人交流时,</p>
<p>总是发现很难解释什么是雷锋,</p>
<p>因为纵观外国历史就没有对等人物出现,</p>
<p>仅仅因为主席</p>
<p>(~对了,在中国主席特指毛主席,好象特指的词字数越小越伟大?)</p>
<p>向雷锋同志学习</p>
<p>七个字的批语,</p>
<p>瞬间创造出中国新文化要素之一;</p>
<p>就这么流行了58年,</p>
<p>无论现在是否还在全国推广雷锋精神组织学雷锋,</p>
<p>雷锋在00后脑海中也固化了下来,</p>
<p>可真要回顾雷锋同学在牺牲前到底作了哪些好事儿,</p>
<p>以致被军队推荐到主席脸前?</p>
<p>好象也没什么惊天动地的事迹?</p>
<p>不象拉普拉斯,</p>
<p>单就那个拉普拉斯妖就足以名垂青史了 ;-)</p>
<p><img alt="2103.005" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.005.jpeg"/></p>
<h3 id="nn-4309">呢喃/ NN 4309<a class="headerlink" href="#nn-4309" title="Permanent link">¶</a></h3>
<p>1402年前的今天,</p>
<p>唐帝国颁布了:"租庸调法"</p>
<p>其实就是现在的农业税改;</p>
<p>即,</p>
<p>我国古代很早就开始大规模计划经济/宏观调控了,</p>
<p>类似现代经济/金融的各种工具/概念/思想/...甚至于实践,</p>
<p>一点儿也没缺少过;</p>
<p>比如复式记帐法,</p>
<p>也早已在晋商内部大规模使用几百年了;</p>
<p>那么问题来了:</p>
<p>古代商业经济一点没落后,</p>
<p>那为什么没能领先欧洲完成封建社会到资本主义社会的升级?</p>
<p>反而一直是封建社会,</p>
<p>从而逐渐落后,</p>
<p>被打一个多世纪,</p>
<p>然后直接跃迁到中国特色社会主义社会?</p>
<p>两样的,</p>
<p>欧美进入资本主义社会也几百年了,</p>
<p>为什么没有按马克思预言的向社会主义进化?</p>
<p>其实当前热播网剧:赘婿</p>
<p>愤怒的香蕉 发布在起点的原著中,</p>
<p>就详细分析过;</p>
<p>无论中国古代帝王们还是现代资本主义国家领袖们,</p>
<p>都不是傻子,</p>
<p>即便是真傻子,</p>
<p>幕僚集团可没傻的;</p>
<p>对于危害自身阶级的所有因素,</p>
<p>都是有冷静/认真/严谨/公正/持久对待的;</p>
<p>比如现在社会中,</p>
<p>对社会主义所有理论的研究最深入最理解的,</p>
<p>正是资本主义社会中有关社会学研究中心;</p>
<p>这样,</p>
<p>统治阶级才能对自己的掘墓人有清晰明确细致的理解,</p>
<p>从而针对性采取政治行动来</p>
<p>高效压制</p>
<p>有效安抚</p>
<p>合理分化</p>
<p>永久统治</p>
<p>...</p>
<p>现实证明: 他们作的不赖.</p>
<p>庆幸的是,</p>
<p>咱们也不错 ;-)</p>
<p><img alt="2103.006" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.006.jpeg"/></p>
<h3 id="nn-4310">呢喃/ NN 4310<a class="headerlink" href="#nn-4310" title="Permanent link">¶</a></h3>
<p>3068年前一次国战,</p>
<p>为华夏留下了一堆大IP,</p>
<p>可惜至今我们自己的电影工业也没配套资源逐一发展成类似漫威宇宙的系列影视作品;</p>
<p>为什么呢?</p>
<p>应该是没感觉吧?</p>
<p>无论 Marvel 还是 DC,</p>
<p>在进入影视之前,</p>
<p>都是有几十年海量漫画图书发行的,</p>
<p>通过一堆核心作者长期持续不断与时俱进的创作,</p>
<p>从无到有以一组核心IP 形象发布了无数故事,</p>
<p>虽说很多故事很无聊,</p>
<p>但是,</p>
<p>每年都有几个触动人心的原创故事流传,</p>
<p>基本上等于持续几代人的粉丝积累,</p>
<p>慢慢的,</p>
<p>很多梗甚至于随着老读者社会地位的上升,</p>
<p>也随着日常交流潜移默化到社会各个阶层,</p>
<p>到最后,</p>
<p>大家都有銭任性了,</p>
<p>就想将自己儿时心目中的英雄变成大屏幕上可亲近的影像,</p>
<p>等于是先有了市场期待,</p>
<p>才有了一系列影像化制作.</p>
<p>而封神宇宙,</p>
<p>自从创建之后几千年,</p>
<p>就没有进一步开发以及拓展,</p>
<p>无论什么时候讲,</p>
<p>还是原先那堆老梗,</p>
<p>对于现代社会中生活的中国人,</p>
<p>基本只有一个文化符号感觉,</p>
<p>并没有 Marvel/DC 英雄们那种日常生活神奇小伙伴的认同感,</p>
<p>当然这和后来网络小说不允许穿越到21年之后等等蜜之规定也可能有原因,</p>
<p>这导致我们的日常创作只能绝对正能量,</p>
<p>好玩的是,</p>
<p>什么是正能量还不归人民定义...</p>
<p>这就尴尬了.</p>
<p><img alt="2103.007" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.007.jpeg"/></p>
<h3 id="nn-4311">呢喃/ NN 4311<a class="headerlink" href="#nn-4311" title="Permanent link">¶</a></h3>
<p>今天38,</p>
<p>当然得说说女性的事儿;</p>
<p>何况俺社区称号也是"大妈",</p>
<p>天然倾向哪儿,</p>
<p>很明显了 ;-)</p>
<p>其实,</p>
<p>人类之初,</p>
<p>刚刚从猿人进化为智人时,</p>
<p>主要社会形式一直是母系社会,</p>
<p>持续了将近42000多年,</p>
<p>不到6千年前,</p>
<p>才过渡到父系社会;</p>
<p>但是,</p>
<p>直至今天,</p>
<p>地球上照样有一些地区还是以母系社会为基本结构来运行的;</p>
<p>比如著名的是美国易洛魁部落(UH-1 通用直升飞机的绰号就是记念这个部落)</p>
<p>以及中国摩梭族...</p>
<p>可为什么近现代女性社会地位如此低下,</p>
<p>以致要经过长期艰苦斗争才能争取到一些平等权力?</p>
<p>之前几万年的统治地位,</p>
<p>为什么没有给女性保留一丝地位?</p>
<p>男性又用了什么办法,</p>
<p>如此简易从女性手中拿到统治权,</p>
<p>并如此彻底的完全压制住女性这么长时间?</p>
<p>这其实是个有趣又无奈的问题,</p>
<p>当然答案都是现成的明确的,</p>
<p>在人类学/社会学中都是早已有定论的,</p>
<p>只是,</p>
<p>男性自己也被自己制造出来的社区改造了,</p>
<p>现在就是算理性上认识到问题,</p>
<p>感性上也难以立即转变过来;</p>
<p>所以,</p>
<p>每年都有应景的女权电影发布,</p>
<p>之前印象深刻的是: </p>
<ol>
<li>隐藏人物 Hidden Figures</li>
</ol>
<p>https://movie.douban.com/subject/26615208/?from=subject-page</p>
<p>结果一查才发现更早, 有更加残酷的事件:</p>
<ol>
<li>妇女参政论者 Suffragette</li>
</ol>
<p>https://movie.douban.com/subject/25821498/</p>
<p><img alt="Suffragette" src="https://ipic.zoomquiet.top/2022-08-18-640%20-1-.jpeg"/></p>
<p>推荐大家找来重刷;</p>
<p>正视先烈们好不容易争取来的权力.</p>
<p><img alt="2103.008" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.008.jpeg"/></p>
<h3 id="nn-4312">呢喃/ NN 4312<a class="headerlink" href="#nn-4312" title="Permanent link">¶</a></h3>
<p>6年前的今天,</p>
<p>大英帝国终于偿还清了100年前的一战债务;</p>
<p>而早些时候,</p>
<p>2006年就已经还清了二战债务;</p>
<p>可见一战英国借了多少;</p>
<p>其实,</p>
<p>一战前,</p>
<p>英国是全球最大债权国,</p>
<p>也就是说,</p>
<p>全球几乎所有国家都欠英国钱,</p>
<p>光那时中国就欠了几亿两白银;</p>
<p>结果一次世界大战,</p>
<p>直接将债主反转为欠债人;</p>
<p>欠了谁?</p>
<p>当然是美国,</p>
<p>美国正是靠两次世界大战瞬间上位,</p>
<p>变成全球最大债权国,</p>
<p>而且更加聪明的是将这种债权用美元体系,</p>
<p>转嫁为更大的债务:</p>
<p>用美元价格和世界经济绑定,</p>
<p>要想经济不出问题,</p>
<p>所有国家就必须购买美国国债来撑住美元汇率,</p>
<p>而美国欠了债,</p>
<p>打开印刷机多印刷一批美元即可.</p>
<p>当然,</p>
<p>具体过程没这么简单,</p>
<p>其它国家又不傻;</p>
<p>但是,</p>
<p>英国无论怎么困难,</p>
<p>都要一点点坚持不懈的还清所有债务,</p>
<p>这事儿本身就说明世界经济早已不是以物换物那么简单了,</p>
<p>以真实物质/产品/贵金属为信用的古典货币经济之后,</p>
<p>以信用本身为抵押的当代信用货币才是经济主机,</p>
<p>而这个信用,</p>
<p>说到底,</p>
<p>也不过是全世界各国人民相信钱值钱,</p>
<p>这个看起来是废话,</p>
<p>却包含了无比复杂的社会运转结构以及经济理论和衍生金融产品...</p>
<p>只是,</p>
<p>必须清晰的意识到,</p>
<p>这一切都是西方在资本主义旗帜下,</p>
<p>奋斗了几百年,</p>
<p>才慢慢建立起来的,</p>
<p>其规则当然天生偏向制定规则的一方,</p>
<p>对于中国,</p>
<p>呵呵...
<img alt="2103.009" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.009.jpeg"/></p>
<h3 id="nn-4313">呢喃/ NN 4313<a class="headerlink" href="#nn-4313" title="Permanent link">¶</a></h3>
<p>"侠之大者 为国为民"</p>
<p>金大师,</p>
<p>虽然没成为自己理想中的传媒大亨,</p>
<p>至少无意中将武侠文学推到一个前所未有的高度;</p>
<p>一举推翻之前偏志怪列传的休闲小说,</p>
<p>变成能国仇家恨的流行小说,</p>
<p>以至:"凡是有中国人地方必有金庸小说",</p>
<p>那基本就等于地球无处没有了.</p>
<p>只是,</p>
<p>真实的江湖远没小说中那么大气凌然,</p>
<p>参考: </p>
<p>逝去的武林 (徐浩峰/徐皓峰 采访整理)</p>
<p>https://book.douban.com/subject/5919132/</p>
<p>以武乱禁,</p>
<p>自古就是邪道,</p>
<p>虽然最初的武术是从战争中一点点儿总结出来的,</p>
<p>然后,</p>
<p>融合道教之类思想体系,</p>
<p>以及结合中医对身体的理解,</p>
<p>创造出来的一系列专注特定发力方式的科学锻炼方法,</p>
<p>只是比国外那种一看就明白为什么的锻体术不同,</p>
<p>中国人天生体质</p>
<p>不可能象其它人种那样可以快速通过堆积自身肌肉数量来完成力量的储备,</p>
<p>所以,</p>
<p>想象出了"气",</p>
<p>其实,</p>
<p>现在想想也是简单的物理原理,</p>
<p>比如说特殊但是流畅的发力再度和姿势,</p>
<p>除了可以在一瞬间可以将身体变成一个从地面直接导向目标的钢性结构,</p>
<p>不仅可以完成借力,</p>
<p>而且在过程中将体内血液以及淋巴液也都快速搬运到打击点附近,</p>
<p>结合肌肉组织结构,</p>
<p>瞬间形成比一般方式形成的打击点质量要高的能量携带体,</p>
<p>自然效果超出常人;</p>
<p>但是,</p>
<p>整体上也是有极限的,</p>
<p>玄幻小说中那种一击星球破碎的效能是不可能的,</p>
<p>也就是一般成人体能的几倍而已;</p>
<p>只是,</p>
<p>在有所超越的体能基础上,</p>
<p>又有更加专业高效的能量运用/调用技巧,</p>
<p>那么放在一般打斗场景中,</p>
<p>就几乎无敌的存在了.</p>
<p>而在古代,</p>
<p>冷兵器战场上,</p>
<p>战役结果基本上都是普通人体能上限为极限,</p>
<p>在力气快速消耗情况下,</p>
<p>有信心,</p>
<p>不惜力一方当然容易压制对方,</p>
<p>而信心,</p>
<p>一般来自主将个人勇力的表现;</p>
<p>所以,</p>
<p>在热兵器时代,</p>
<p>火药的力量抹平了人体间的差异,</p>
<p>而扣动板机消耗的体力远小于挥动一定重量的冷兵器,</p>
<p>普通人也可以在占战场上坚持和武士差不多的时长,</p>
<p>同时伤害输出一点儿也不差.</p>
<p>这时,</p>
<p>为什么中国人还是喜欢相信"大侠"呢?</p>
<p>这是另外一个有趣的问题了.</p>
<p><img alt="2103.010" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.010.jpeg"/></p>
<h3 id="nn-4314">呢喃/ NN 4314<a class="headerlink" href="#nn-4314" title="Permanent link">¶</a></h3>
<p>有关地外文明,</p>
<p>好象有大牛总结有可交流文明数量公式:</p>
<p>N = N*·fL·fHZ·fm·(L/t′)</p>
<p>其中:</p>
<p>N* 是银河系内恒星的总数;</p>
<p>fL 是年龄在50亿年以上的恒星比例;</p>
<p>fHZ 是拥有合适的行星系统的恒星比例;</p>
<p>fm 是具有足够多金属元素的恒星比例;</p>
<p>L 是可交流文明的平均寿命~即自文明有能力进行无线电通讯之日起到它灭亡的平均时间;</p>
<p>t′ 是(智慧)生命演化的平均可用时间;</p>
<p>总之代入数据后,</p>
<p>光银河系内部至少有36个星系存在可交流文明;</p>
<p>其实吧,</p>
<p>没那么复杂,</p>
<p>Carl Sagan/卡尔·萨根 曰过:</p>
<p>宇宙那么大,</p>
<p>如果只有人类,</p>
<p>就太浪费空间了.</p>
<p>的确,</p>
<p>就是这么简洁;</p>
<p>无论宇宙是如何诞生的,</p>
<p>既然能出现人类,</p>
<p>那么类似的宇宙条件下当然必然出现类似文明种族.</p>
<p>只是为什么一直没有直接接触呢?</p>
<p>原因也很简单:</p>
<p>空间距离是个大问题,</p>
<p>如果没有超光速航行能力,</p>
<p>那么单纯空间距离就足以困住任何文明;</p>
<p>可一但探索准光速/光速/超光速航行能力,</p>
<p>那么该文明就已经将自己提升到另外一个层面了,</p>
<p>和围困在光速以内的种族不在一个维度了,</p>
<p>没什么交流的意义.</p>
<p>也就是说,</p>
<p>本质上文明间的可交流,</p>
<p>最关键的因素还是时空匹配;</p>
<p>比如,</p>
<p>如果有文明其交流方式可以用纳秒以下级别,</p>
<p>进行超高速交流,</p>
<p>那么,</p>
<p>即便站在我们面前也无法反应,</p>
<p>对方以为我们是非生物就离开了;</p>
<p>如果有文明其交流方式是以世纪为秒,</p>
<p>一次普通交流要上千年,</p>
<p>那么对于人类而言也不存在交流的必要...</p>
<p>所以,</p>
<p>无论在社区中,</p>
<p>还是伴侣间或是家庭内,</p>
<p>我们必须随时习惯多种速率的交流形式,</p>
<p>否则,</p>
<p>你等于自绝与人民,</p>
<p>永远无法真正融入社会大协作中...</p>
<p><img alt="2103.011" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.011.jpeg"/></p>
<h3 id="nn-4315">呢喃/ NN 4315<a class="headerlink" href="#nn-4315" title="Permanent link">¶</a></h3>
<p>127年来</p>
<p>CocaCola 瓶在进行持续迭代,</p>
<p>目的只有一个:</p>
<p>越来越特殊</p>
<p>和世界上一切瓶子都不一样才怼;</p>
<p>这样,</p>
<p>才能在各种商品货架上一眼看到自己;</p>
<p>当然,</p>
<p>这种不一样,</p>
<p>其实还必须配合另外一个无敌营销策略:</p>
<p>尽可能铺货到所有市场中,</p>
<p>那么所有潜在客户,</p>
<p>无论在世界任何角落都能见到相同的可乐瓶,</p>
<p>自然能感觉到熟悉,</p>
<p>熟悉就等于头脑中即有规则:</p>
<p>可乐好喝,</p>
<p>那么,</p>
<p>无论其它饮料是否比可乐好喝,</p>
<p>在面对一堆陌生商品时,</p>
<p>优先选择熟悉的,</p>
<p>也就等于选择最安全的,</p>
<p>这对于CocaCola 公司就是无穷利润了.</p>
<p>其实,</p>
<p>想唠叨的是"蓄能电站",</p>
<p>虽然今年才提出"碳中和"目标,</p>
<p>可实际上27年前,</p>
<p>中国就已经有大型"碳中和"电站竣工了;</p>
<p>原理很简单:</p>
<p>电站是倾向持续稳定发电的,</p>
<p>这样对机械损伤小;</p>
<p>但是,</p>
<p>供应的目标城市却是期望动态调节,</p>
<p>最好能精确匹配当前总需求的...</p>
<p>明显这是一对矛盾;</p>
<p>怎么办呢?</p>
<p>凉办:</p>
<p>系统架构中常用手段,</p>
<p>如果发生问题,</p>
<p>就追加一层来完成额外处置;</p>
<p>所以,</p>
<p>就有了"蓄能电站",</p>
<p>94年那个是经典势能蓄能:</p>
<ul>
<li>
<p>晚上供电量下降时,调用多出来的电能,将水抽取到地势高的水库</p>
</li>
<li>
<p>白天供电紧张时,打开水库的水力发电机组额外发电,并入电网支付用电</p>
</li>
</ul>
<p>只是,</p>
<p>这种蓄能过程中,</p>
<p>也是大量依赖电机,</p>
<p>而电机能量转化效率也不是100%</p>
<p>电能->势能->电能</p>
<p>过程中反复损耗很可惜.</p>
<p>所以,</p>
<p>现在结合超导技术,</p>
<p>可以将电能转化为真空中高速旋转磁铁圈的动能,</p>
<p>在需要时,</p>
<p>接入线圈,</p>
<p>瞬间就能提取为电能;</p>
<p>反应速度比水体势能要高很多.</p>
<p>当然,</p>
<p>最理想的,</p>
<p>还是变形金刚中设想的能量块儿了,</p>
<p>直接以纯能量本身为介质来存储能量,</p>
<p>转化/使用效率100%</p>
<p>可惜,</p>
<p>其原理是什么还没有头绪;</p>
<p>另外,</p>
<p>在自怼圈中,</p>
<p>刚好有国家电力系统研究院专家,</p>
<p>分享储能技术体系时,</p>
<p>才知道,</p>
<p>现在国家已经进入下一阶段储能探索了:</p>
<p>储能网络智能~</p>
<ul>
<li>
<p>通过 IoT 技术, 将城市中一切电能储备设备都联网</p>
</li>
<li>
<p>比如一台电动汽车的车载电池组</p>
</li>
<li>
<p>在用电情况变化时,智能调度所有闲散电能自动补偿</p>
</li>
</ul>
<p>...</p>
<p>进一步的,</p>
<p>还得小心,</p>
<p>在这种越来越复杂的能量网络中,</p>
<p>是否会诞生能量生命体?</p>
<p>这种能量生命有智慧嘛?</p>
<p>如何沟通?</p>
<p>...</p>
<blockquote>
<h1 id="_1">细思恐极<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
</blockquote>
<p><img alt="2103.012" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.012.jpeg"/></p>
<h3 id="nn-4316">呢喃/ NN 4316<a class="headerlink" href="#nn-4316" title="Permanent link">¶</a></h3>
<p>哈佛成立382年了,</p>
<p>从一开始就是独立运营的,</p>
<p>和政府什么的一毛钱关系也冇,</p>
<p>这才有:</p>
<p>独立之精神</p>
<p>自由之思想</p>
<p>才能一直引领各个方向上的探索;</p>
<p>这种一开始就注入的东西,</p>
<p>一直没有变化,</p>
<p>才能引发出其它不断的变化;</p>
<p>回顾中国,</p>
<p>33年前的今天,</p>
<p>小英雄赖宁牺牲了,</p>
<p>然后?</p>
<p>现在没人记得为什么了吧?</p>
<p>张海迪当年也是全国优秀青年代表,</p>
<p>然后?</p>
<p>现在没人记得为什么了吧?</p>
<p>还有很多很多,</p>
<p>美国梦虽然内核一直在变化,</p>
<p>但是,</p>
<p>宣传出来一直没有变化;</p>
<p>中国梦好象无论宣传还是内核都一直在变化,</p>
<p>丰富是丰富,</p>
<p>只是丰富到已经无法记住到底什么是幸福了.</p>
<p>之前政治课要背很多三观问题,</p>
<p>后来,</p>
<p>进入社会,</p>
<p>反复被毒打后,</p>
<p>才发现,</p>
<p>背的东西已经深深刻入思想,</p>
<p>难以简单丢弃...</p>
<p>世界观是基础, 决定从什么角度来认识一切;</p>
<p>价值观是动力, 决定什么是值得的;</p>
<p>人生观是目标, 决定自己以什么为目标去折腾;</p>
<p>幸好在开始背政治课文前,</p>
<p>就接触了古典主义科学幻想小说,</p>
<p>从凡尔纳开始到 A.C.Clarke 获得人类视角,</p>
<p>从 Asimov 获得心理史学观点,</p>
<p>从 GNU 获得自由宗教观...</p>
<p>然后,</p>
<p>发现除了能轻易对各种新现象先形成自我偏见外,</p>
<p>对于事业之类世俗成功并无多大帮助,</p>
<p>就是的确能切实帮助保持平常心而已.</p>
<p><img alt="2103.013" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.013.jpeg"/></p>
<h3 id="nn-4317">呢喃/ NN 4317<a class="headerlink" href="#nn-4317" title="Permanent link">¶</a></h3>
<p>今天...</p>
<p><img alt="4317" src="https://ipic.zoomquiet.top/2022-08-18-640%20-2-.jpeg"/></p>
<p>不知道具体哪个品种的龙,</p>
<p>当然中国龙和西方大肚龙完全不是一个概念,</p>
<p>只是都被翻译为 dragon 看起来就很 danger;</p>
<p>今天又刚好是"白色情人节"</p>
<p>和哪个历史人物有关,不清楚,</p>
<p>好象规则是:</p>
<ul>
<li>
<p>2.14 送女生花</p>
</li>
<li>
<p>3.14 女生手工制造巧克力返送给之前送花的男生</p>
</li>
</ul>
<p>想来是花经过一个月升值的成果?</p>
<p>又或是用4周来考虑是否给回礼?</p>
<p>大概率是给女生现学怎么手工作巧克力?</p>
<p>其实查了一下,</p>
<p>比较触动的是:</p>
<p>今天同时是 纪晓岚/马克思/霍金 去世之日;</p>
<p>一位封建王朝能吏</p>
<p>一位资本主义掘墓人</p>
<p>一位时间幻想破壁人</p>
<p>就这么联系在一起;</p>
<p>要说谁对人类影响大,</p>
<p>还是老马同学了,</p>
<p>毕竟哲学是万学之学,</p>
<p>哲学上的突破,</p>
<p>总是能浸透到所有学科中;</p>
<p>资本论一出,</p>
<p>共产主义就有了坚实的理论基础,</p>
<p>共产主义一稳共产党就有了可能,</p>
<p>共产党一出世界格局就不得不变,</p>
<p>世界格局一但有了第三世界中国特色才能理直气壮诞生...</p>
<p>嗯哼?</p>
<p>这么强推理,</p>
<p>月背中国和 nazi 基地的事儿也可能暴露,</p>
<p>就此打住.</p>
<p>大家还是认真享受手工巧克力吧,</p>
<p>只是,</p>
<p>多想一想,</p>
<p>为什么是巧克力?</p>
<p>世界上人工食品这么多,</p>
<p>为毛是 chocolate 能代表爱情?</p>
<p><img alt="2103.014" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.014.jpeg"/></p>
<h3 id="nn-4318">呢喃/ NN 4318<a class="headerlink" href="#nn-4318" title="Permanent link">¶</a></h3>
<p>83年立的315 其实源自1962年3月15日肯尼迪在美国国会发表的:</p>
<p>"关于保护消费者利益的总统特别咨文"首次提出消费者/四项权利:</p>
<p>即消费者有权获得安全保障,</p>
<p>有权获得正确资料,</p>
<p>有权自由决定选择,</p>
<p>有权提出消费意见;</p>
<p>不过,</p>
<p>为什么时隔21年后,</p>
<p>才真正认可并落实为国际节日?</p>
<p>其实,</p>
<p>在 315 确立后22年,</p>
<p>照样发生"苏丹红"/大头娃娃 等等事件,</p>
<p>就算消费者权益概念发源地,</p>
<p>美国自身,</p>
<p>也是庞氏骗局/山达基|科学教/...等等的发源地,</p>
<p>近期最知名的应该是:</p>
<p><img alt="山达基" src="https://ipic.zoomquiet.top/2022-08-18-640%20-3-.jpeg"/></p>
<p>滴血成金:硅谷血检大骗局 </p>
<p>The Inventor: Out for Blood in Silicon Valley</p>
<p>https://movie.douban.com/subject/30391767/</p>
<p>涉及10亿美元级别的骗局,</p>
<p>近10年,</p>
<p>居然没有任何人发觉,</p>
<p>无论投资界还是消费者以及媒体都一直在期待 Holmes 的成功,</p>
<p>因为这太美国梦了;</p>
<p>结果最终发现不过是小女孩自我暗示太成功引发的一系列资本主义闹剧;</p>
<p>其实,</p>
<p>消费者这个概念本身就包含了被欺诈的可能性,</p>
<p>毕竟,</p>
<p>消费这一行为本身就包含了必须制造足够的商业利润这种期待,</p>
<p>在自然界就没消费这种行为/现象;</p>
<p>当社会制造出消费者时,</p>
<p>消费者的权益就已经被预先由厂商们消费掉了,</p>
<p>只是,</p>
<p>这一消费链路越来越长,</p>
<p>长到现在,</p>
<p>一开始可以免费提供服务,</p>
<p>但是,</p>
<p>最终消费者一定会失去远远比自己享用到的价值要大的多的多的价值;</p>
<p>其中最大最隐密的价值,</p>
<p>可能就是作为一位社会人的基本尊严,</p>
<p>以隐私数据为代价享受"免费"服务的同时,</p>
<p>基本上等于慢慢将自己的一切个性都给消费掉了;</p>
<p>这样好不好?</p>
<p>从人类社会发展历史来看,</p>
<p>非洲落后地区原住民们,</p>
<p>每个人都有精细独特个性,</p>
<p>但是,</p>
<p>每个人都还处于和自然界抗争的状态中,</p>
<p>随时受到饥饿和伤痛的侵袭;</p>
<p>而纳入到资本主义生产关系后,</p>
<p>原先的个性被流水线生活抺杀的同时,</p>
<p>也远离了饥饿和疾病,</p>
<p>前后对比,</p>
<p>还真说不清到底合不合算了.</p>
<p>相关讨论,</p>
<p>在 Bloack Mirror 中有大量探讨,</p>
<p>推荐重刷;</p>
<p>审视自己是否愿意.</p>
<p><img alt="2103.015" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.015.jpeg"/></p>
<h3 id="nn-4319">呢喃/ NN 4319<a class="headerlink" href="#nn-4319" title="Permanent link">¶</a></h3>
<p>等等?</p>
<p>3年前中国已经成立超过1亿个公司了,</p>
<p>人口13亿+</p>
<p>也就是说平均每13个人就拥有一家公司?</p>
<p>不知道美国开国至今总共成立过多少家企业,</p>
<p>目测应该比1亿要多不少;</p>
<p>其实,</p>
<p>从另一个角度看也就知道中国经济体量了,</p>
<p>国家不用任何政策激励,</p>
<p>仅仅每个企业每个月收1元营业税,</p>
<p>每年就能净入12亿;</p>
<p>很多事儿,</p>
<p>数量大到一定程序都会引发质变的;</p>
<p>具体不知道中国制造何时超越日本的,</p>
<p>如果有数据对比各个国家注册公司数量和 GDP 应该有神奇的结论;</p>
<p>还是说宇航技术吧;</p>
<p>马上 N11 将发射,</p>
<p>这次 Musk 应该还将继续成功;</p>
<p>毕竟使用的关键技术都是前苏联成熟技术;</p>
<p>而前苏联宇航技术绝不是表面上看起来傻大黑粗的;</p>
<p>毕竟,</p>
<p>俄国数学之强,</p>
<p>不是几瓶烈酒就能拉低的.</p>
<p>最初的火箭当然是中国的窜天猴;</p>
<p>不过,</p>
<p>严格意义上的宇航火箭是有稳定状态的可控制火箭,</p>
<p>这种还真的只有近代空气动力学/地球物理学/...各种相关学科都足够发达时才可能制造出来;</p>
<p>否则,</p>
<p>光是火箭自身姿态感知以及定位就是纯机械计算没办法实时完成的;</p>
<p>比较好玩的是:</p>
<p>为什么最初和最新运载火箭都是液体燃料?</p>
<p>要知道历史上因为液体燃料的毒性以及易泄漏等等特性,</p>
<p>引发过不少惨剧;</p>
<p>其实就是第一性原理:</p>
<ul>
<li>
<p>只有液体燃料的能量含量最高</p>
</li>
<li>
<p>也只有液体可以充分微粒化进行可控爆燃</p>
</li>
<li>
<p>而且在拥有所有火箭燃料必须的特性之余, 液体燃料在制造成本上还最小</p>
</li>
</ul>
<p>而引发的一系列相关问题也早已有可靠解决方案,</p>
<p>比如液体燃料罐,</p>
<p>在高速燃料过程中, 质心变化引发火箭姿态变化的问题...</p>
<p>大家可以独立思考一下,</p>
<p>都有什么办法可以解决,</p>
<p>其中又是哪种最经济实惠?</p>
<p><img alt="2103.016" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.016.jpeg"/></p>
<h3 id="nn-4320">呢喃/ NN 4320<a class="headerlink" href="#nn-4320" title="Permanent link">¶</a></h3>
<p>今天节庆比较简洁:</p>
<p>中国国医节</p>
<p>不象昨天:</p>
<p>手拉手情系贫困小伙伴全国统一行动日</p>
<p>其实,</p>
<p>信息给的非常多和非常少时效果相似,</p>
<p>都是难以第一时间 got 到要点;</p>
<p>比如,</p>
<p>国医?</p>
<p>这和国术/国花/国画/...</p>
<p>国字头的都有什么关联?</p>
<p>难道中医不是中国国家级别的医术?</p>
<p>可能怕藏医们闹?</p>
<p>还是说55年前人类首次太空对接吧;</p>
<p>那时,</p>
<p>中国刚刚阅读"三年自然灾害",</p>
<p>全体人民还在一门心思关心如何吃饱时,</p>
<p>伟大的前苏联已经开始按部就班的建造太空站了;</p>
<p>Мир/和平号太空站是最著名的,</p>
<p>也是最传奇的,</p>
<p>超过15年运行,</p>
<p>超过设计寿命5倍,</p>
<p>保持人类太空生活最长时间记录,</p>
<p>包含17个国家提供的太空实验设备...</p>
<p>而其之所以能长期运行最关键最基础的技术,</p>
<p>就是太空对接;</p>
<p>简单说就是将两个宇航器连接在一起;</p>
<p>好比两架 A380 各满载420名乘客以最高时速在10000米高空飞行时,</p>
<p>乘务员要打开舱门,</p>
<p>并安全建立通道,</p>
<p>然后交换全体成员,</p>
<p>过程中两架飞机照样全速飞行;</p>
<p>而太空对接难度比这个要困难10000倍;</p>
<p>即便是今天,</p>
<p>还能使出这个技术的,</p>
<p>也只有中美两个国家了;</p>
<p><img alt="2103.017" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.017.jpeg"/></p>
<h3 id="nn-4321">呢喃/ NN 4321<a class="headerlink" href="#nn-4321" title="Permanent link">¶</a></h3>
<p>当初疫苗出问题,</p>
<p>一出就是一大片;</p>
<p>这其实也吻合经济规律,</p>
<p>具体的不多说;</p>
<p>还是讲宇航事业吧;</p>
<p>并苏联当年是真的莽,</p>
<p>被美国战忽局一忽悠就急吼吼将人发到外太空了;</p>
<p>没有地球大气层/电离层/地磁场/...保护时,</p>
<p>人体到底受的了宇宙射线嘛?</p>
<p>根本没人想过,</p>
<p>所以,头一批宇航员其实和祼奔区别不大;</p>
<p>只是,</p>
<p>神奇的是,</p>
<p>这么一轮自虐下来,</p>
<p>美苏宇航员除了生不出儿子外,</p>
<p>也都得以善终;</p>
<p>这引发另外一种猜想:</p>
<p>人类根本就不是自然进化出来的,</p>
<p>原本就是高维文明专业统计的宇宙工具人,</p>
<p>只是投放到银河系的普通一支先遣部队而已;</p>
<p>怪不得 Musk 已经放言一定死在火星,</p>
<p>不过,</p>
<p>按照这种发展速度,</p>
<p>很可能只是墓碑在火星,</p>
<p>本人半光速逃逸出去不回来了.</p>
<p>后来严谨了,</p>
<p>在空间站,</p>
<p>生物实验其实占很大比例,</p>
<p>其它肯定是在地球土生土长的,</p>
<p>接受宇宙射线后,</p>
<p>立即有很大基因变化,</p>
<p>只有人体基本查不出有什么重大改变;</p>
<p>这只能用软件工程思想来理解了:</p>
<p>一个稳定系统:</p>
<ul>
<li>
<p>要不复杂到看不出问题</p>
</li>
<li>
<p>要不简单到隐藏不了问题</p>
</li>
</ul>
<p>人类基因组解压缩后,</p>
<p>就发现几乎大半都是垃圾基因,</p>
<p>完全看不出有什么用,</p>
<p>现在想,</p>
<p>其实就是冗灾代码了,</p>
<p>按 強殖装甲ガイバー/高屋良樹 设想的,</p>
<p>这些其实就是压缩存储了地球上以往所有生物的基因组,</p>
<p>关键时刻人体可以自由切换到吻合当前环境的身体形态;</p>
<p>也就是等于变形金刚中的 N 段变形能力.</p>
<p>SOOOOO COOL.</p>
<p><img alt="2103.018" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.018.jpeg"/></p>
<h3 id="nn-4322">呢喃/ NN 4322<a class="headerlink" href="#nn-4322" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>一个确保
三个到位
五项改革
二娃开放
四重保证
六种距离
七项决议
八路进军
九九归一
十全十美
...
</code></pre></div>
<p>嗯哼,口号感,</p>
<p>应该是汉语天然属性了,</p>
<p>毕竟当年发明文字时,</p>
<p>主要社会功能就是画符咒固化权力;</p>
<p>那么,</p>
<p>如何用最少的字,</p>
<p>散播最大的气势,</p>
<p>一直是我们内心追求;</p>
<p>可惜,</p>
<p>高度概括后,</p>
<p>气势有了,</p>
<p>如何执行就看淡了,</p>
<p>最后,</p>
<p>还是一样的口号式数据成果就可以交差了...</p>
<p>还是说546年前第一部专利法吧,</p>
<p>威尼斯共合国,</p>
<p>虽然叫共合,</p>
<p>其实和公司没什么差别,</p>
<p>全员从商的国家也没什么其它事务要决议,</p>
<p>所以,</p>
<p>为了平衡内部无差别攻击,</p>
<p>妥协出了专利法,</p>
<p>又为了进一步保证商业利益,</p>
<p>将之扩散给其它国家,</p>
<p>并伪装为保护创造力;</p>
<p>其实,</p>
<p>无论在哪个社会阶段,</p>
<p>有创造力的,</p>
<p>不一定有足够经营直觉,</p>
<p>即便能发明/创造出世界第一产品,</p>
<p>但是,</p>
<p>基本没什么机会变成世界第一商品,</p>
<p>你看 dyson/戴森 就知道了,</p>
<p>真的是单人研发几十年,</p>
<p>才开创的完全开创性家电,</p>
<p>然后呢?</p>
<p>现在 PDD 中卖的最多利润最大的是哪一款?</p>
<p>绝对不可能是 dyson;</p>
<p>专利法类似的还有版权法,</p>
<p>之前版权保护期只有10年,</p>
<p>现在为什么变成200多年了?</p>
<p>原因不就是拥有版权的作者以往还有机会和能力为自己带来收益,</p>
<p>现在,</p>
<p>基本上没什么可能了,</p>
<p>所有版权变成收益的渠道都被出版界控制住了,</p>
<p>那么,</p>
<p>作者会老会死,</p>
<p>出版社这种虚拟社会主体可不会死,</p>
<p>那么,版权期越长,收益越多,</p>
<p>当然要拼命推动各国议会通过一个个法案将版权期延长了;</p>
<p>好在,</p>
<p>同时利用版权概念,</p>
<p>设计出来的软件许可证也一样获得了超长有效期,</p>
<p>也就是说,</p>
<p>自己现在写下来的代码,</p>
<p>200年后,依然可以拥有,</p>
<p>前提是别卖给别人,</p>
<p>当然,</p>
<p>最好是选择 GPL 兼容自由软件协议,</p>
<p>这样,</p>
<p>才能真正永存, </p>
<p>和人类文明一起.</p>
<p><img alt="2103.019" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.019.jpeg"/></p>
<h3 id="nn-4323">呢喃/ NN 4323<a class="headerlink" href="#nn-4323" title="Permanent link">¶</a></h3>
<p>今天是"世界无肉日"</p>
<p>人类努力了几亿年,</p>
<p>好容易进化出食肉能力,</p>
<p>为毛要放弃吃肉?</p>
<p>其实,</p>
<p>本质上吃肉不过是能量吸收效率之选,</p>
<p>只是为了确保在面对各种食物时,</p>
<p>优先抢肉吃,</p>
<p>所以基因里才篆刻入对肉食的喝望;</p>
<p>进一步的,</p>
<p>中华民族又经过艰苦卓绝的探索,</p>
<p>进一步能将动物全身上下都能处理的美味下饭,</p>
<p>这么多功夫不可能因为生物多样性之类原因就放弃的,</p>
<p>就算理性愿意,</p>
<p>基因也不愿意哪.</p>
<p>刚刚刷到的:锵锵行天下 第二季 (豆瓣)</p>
<p>https://movie.douban.com/subject/35356724/</p>
<p>有提及,</p>
<p>现在生物工程学越来越发达,</p>
<p>已经可以用植物蛋白打印出口味上几乎一样的人工肉,</p>
<p>进一步的,</p>
<p>也可以使用肌肉细胞在打印出来的肉块框架上生长出来真实的肉块,</p>
<p>这样就能工业化生产肉食,</p>
<p>问题在:</p>
<p>0: 这种肉属于三净肉嘛?</p>
<p>1: 这种肉也包含业力嘛?</p>
<p>2: 心理上应不应该有准备?</p>
<p>3: ...</p>
<p>结果厨师说的非常入魂:</p>
<ul>
<li>
<p>无论什么肉都是生命</p>
</li>
<li>
<p>无论何时吃肉都应该有感恩</p>
</li>
<li>
<p>最怕的是哪天吃肉没什么感觉了...</p>
</li>
</ul>
<p>日本刻奇漫画家们进一步构想过:</p>
<p>无论什么肉,</p>
<p>无论是否还活着,</p>
<p>嘦堆积到一定程度,</p>
<p>就有自由魂力注入,</p>
<p>就象引力是空间变形后产生的向心坠落一样,</p>
<p>游离的魂魄就会落入,</p>
<p>进而形成完全不可控的魔物...</p>
<p>其实, 这种假设也不是没有道理:</p>
<p>回溯到地球诞生初期,</p>
<p>蛋白质刚刚意外被闪电边缘的合适温度在空气中合成时,</p>
<p>整个儿大气可以视为特别稀的肉汤,</p>
<p>那么第一个生命何时/如何生成的?</p>
<p>或是说第一缕灵魂从哪儿飘来的?</p>
<p>...</p>
<p>对比现在人工肉工厂,</p>
<p>海量的有机池/流水线,</p>
<p>冷漠的AI控制着一切,</p>
<p>那么谁能保证哪次漏电不会激发出一个全新的生命形式?</p>
<p>好在,</p>
<p>无论什么新生命,</p>
<p>嘦是肉,</p>
<p>华夏人民都有自信将其美味化.</p>
<p><img alt="2103.020" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.020.jpeg"/></p>
<h3 id="nn-4324">呢喃/ NN 4324<a class="headerlink" href="#nn-4324" title="Permanent link">¶</a></h3>
<p>和历史另外那位十全主人不同,</p>
<p>毛主席题的每一幅字可都是全民皆知的;</p>
<p>在空军大院当门影壁上,</p>
<p>真的就是这句大白话:</p>
<div class="highlight"><pre><span></span><code>要建立一支强大的空军
</code></pre></div>
<p>细思恐极的是,</p>
<p>并没给海军相似的话;</p>
<p>而且多年之后,空军真的作到了,</p>
<p>而且有二炮以及天军的加成;</p>
<p>虽然没有空中炮舰之类神奇列装,</p>
<p>中国空军现在拉出来对上地球任何一个国家的都不怵;</p>
<p>可以说是中国制造赞底的一张牌了;</p>
<p>具体怎么作到的?</p>
<p>这其中有多少故事?</p>
<p>等什么时候 CCTV 有各种连续剧播放时,</p>
<p>大家就知道了,</p>
<p>这时,</p>
<p>太多还属于保密信息,</p>
<p>俺知道也不能在这儿说.</p>
<p>还是说 Hz 吧;</p>
<p>这个频率标称,</p>
<p>134年前由 Hz/赫兹 发明的实验证明有电磁波这东西时,</p>
<p>就变成了所有反复出现的事件属性标量了;</p>
<p>人常说眼见为实;</p>
<p>但是, </p>
<p>人类的视觉其实很弱的,</p>
<p>能感知到的光谱很窄,</p>
<p>而且反应速度也非常慢...</p>
<p>但是,</p>
<p>通过实验物理学~嗯哼? 当年还没有这个专业划分,</p>
<p>只是物理/化学/天文/...各种学科在证明/探索各种未知领域时,</p>
<p>通过巧妙的实验过程/设备/器材/...构造,</p>
<p>将原先人眼无法感知的东西,</p>
<p>变成人眼可以明确辨别的视觉信号,</p>
<p>从而让大家相信假设的东西是存在的.</p>
<p>其实,</p>
<p>这个过程中,</p>
<p>实验设计最困难的,</p>
<p>并不是代替人去感知目标对象,</p>
<p>而是如何在过程中消除/抵消/控制/识别/转移/兑换/...干挠/误差/偏离/...</p>
<p>因为,</p>
<p>任何能量嘦经过转换,</p>
<p>一定引发其它变化,</p>
<p>这种额外变化不加以处理,</p>
<p>就变成过程中人为引入的偏差,</p>
<p>总是导致实验结果无法精确相同,</p>
<p>这样,</p>
<p>实验就被证伪,</p>
<p>也就不可信了.</p>
<p>当然,</p>
<p>股市理论什么的,</p>
<p>并不担心这种人为因素,</p>
<p>甚至于大力欢迎这种因素,</p>
<p>因为,</p>
<p>这才是经济信心最可操纵的方面.</p>
<p><img alt="2103.021" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.021.jpeg"/></p>
<h3 id="nn-4325">呢喃/ NN 4325<a class="headerlink" href="#nn-4325" title="Permanent link">¶</a></h3>
<p>31年前的今天,</p>
<p>传销首次进入中国?</p>
<p>不应该哪,</p>
<p>这么简单的击鼓传花模式,</p>
<p>在古代不是常用手法?</p>
<p>不说下九门,</p>
<p>上九门也经常用;</p>
<p>要不然那么多夺裔纷争哪儿来的?</p>
<p>咬定一位皇子上天那预兆一定能上位,</p>
<p>现在众筹未来大司马的岗位,</p>
<p>价高者得,</p>
<p>这可是有亲笔信作凭证咯....</p>
<p>不行,</p>
<p>这种套路故事太不和谐;</p>
<p>还是说绘画的事儿吧:</p>
<p>107年前,</p>
<p>上美开创性使用人体模特,</p>
<p>不说模特来源,</p>
<p>反正和国外当年也一样并没什么不同,</p>
<p>社会文化虽然不同,</p>
<p>但是,社会运行原理相同,</p>
<p>社会接受新事务的过程总是那么的无语,</p>
<p>当然这本身也是社会对自己的保护机制,</p>
<p>没什么不理解的;</p>
<p>但是,</p>
<p>不理解的是:</p>
<p>为毛想画好人物就一定要从裸体开始?</p>
<p>好象古代吴道子们画的人物也打有这个步骤吧?</p>
<p>就算是要想画的像一定要掌握人体结构以及肌肉变化的光影关系,</p>
<p>可是,</p>
<p>平时也没都是裸体的作品四处传播吧?</p>
<p>这原本是古希腊文明后期,</p>
<p>贵族为了展现与众不同的良好营养培育下的肉体,</p>
<p>平时就裸体四处逛,</p>
<p>又因为喜欢泡澡,</p>
<p>进一步发展了裸体雕塑等等艺术,</p>
<p>这才自然要求从裸体开始理解绘画,</p>
<p>毕竟有大量最终产品也是要求裸体的;</p>
<p>可中国自古没这要求哪,</p>
<p>就是最放飞的晋朝,</p>
<p>也只有真名士在自家后园才敢以天为被;</p>
<p>而且古代服装本身以柔顺展示体型为尚;</p>
<p>结合到佛教雕塑就知道,</p>
<p>那种如水衣纹对人体的理解并不差,</p>
<p>也不是从裸体素描开始练习的吧?</p>
<p>那么, </p>
<p>中国古代画工是如何学习人体绘画的?</p>
<p>你猜?</p>
<p><img alt="2103.022" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.022.jpeg"/></p>
<h3 id="nn-4326">呢喃/ NN 4326<a class="headerlink" href="#nn-4326" title="Permanent link">¶</a></h3>
<p>里根作为演员,</p>
<p>可能其一生最成功的表演就是:发表星球大战,</p>
<p>隔空让前苏联相信了,</p>
<p>并入坑,</p>
<p>最后虽然拿出安-225+暴风雪号以及一堆配套科技,</p>
<p>依然崩溃了;</p>
<p>可以说,</p>
<p>战国时期纵横家摸索出的战忽(战略忽悠)体系,</p>
<p>总算是在对岸获得继承;</p>
<p>其实,</p>
<p>整个儿计划逻辑上是完备的:</p>
<p>战略导弹一但发射,</p>
<p>按照以往常规武器基本无解;</p>
<p>因为再入轨道阶段,</p>
<p>可以达到10倍音速,</p>
<p>而且可以真假弹头分裂为几十个目标,</p>
<p>就算是有靠谱的高超音速拦截导弹也受不了;</p>
<p>所以,</p>
<p>发展天基武器,</p>
<p>从上升/巡航两个速度比较慢的路径上进行拦截,</p>
<p>成功率高成本也足够小;</p>
<p>可惜,</p>
<p>钱学森很早就设计出类似打水漂的弹道,</p>
<p>令导弹在巡航阶段能随机自由飘飞基本不可能击中;</p>
<p>而且已经在东风17型导弹上完美实现;</p>
<p>这一下,</p>
<p>就只有在发射阶段,</p>
<p>上升到太空的爬升过程进行拦截了;</p>
<p>就象软件工程中,</p>
<p>谁都知道,</p>
<p>一个 bug 发现的越晩,</p>
<p>修正成本越高,</p>
<p>但是,</p>
<p>为什么在项目初期就没什么 bug 发现呢?</p>
<p>原因和星球大战逻辑上正确,</p>
<p>执行时基本没什么希望一样:</p>
<p>在时期,</p>
<p>可能性太多,</p>
<p>难以看出代码发展方向是否正确时,</p>
<p>是无法判定是否是 bug 的,</p>
<p>说穿了 bug 并不是代码错误,</p>
<p>只是能正确运行的代码构造出来的功能不是我们期待的而已;</p>
<p><img alt="2103.023" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.023.jpeg"/></p>
<h3 id="nn-4327">呢喃/ NN 4327<a class="headerlink" href="#nn-4327" title="Permanent link">¶</a></h3>
<p>之前感叹过几次凡尔纳,</p>
<p>现在想说说:</p>
<p>Philip.K.Dick/菲利普·K·迪克 </p>
<p><img alt="菲利普·K·迪克" src="https://ipic.zoomquiet.top/2022-08-18-640%20-4-.jpeg"/></p>
<p>如果说古典硬科学幻想大师是老儒,</p>
<p>那么新时代硬科幻领军人物应该是这位 Dick 了;</p>
<p>原因不仅仅是他的作品搬上银幕比较多,</p>
<p>比如: 少数派报告/全面回忆/高堡奇人/....</p>
<p>当然,</p>
<p>影视方面主要原因是 Dick 的作品多数是短篇,</p>
<p>将创意不要似的堆在一则小故事中,</p>
<p>来不及展开,</p>
<p>兴趣就切换到其它方面了;</p>
<p>这给影视改编赋予了极大自由度;</p>
<p>私人感觉,</p>
<p>主要原因在 Dick 的主要幻想都是指向 Cyber 世界的,</p>
<p>这在当年根本无人 got 到其中先见之明,</p>
<p>只是感觉怪异;</p>
<p>但是,</p>
<p>随着互联网发展,</p>
<p>将近100年前发表的小说中,</p>
<p>包含的梗儿,</p>
<p>有那么多越来越匹配当前互联网困难和暗淡前景...</p>
<p>这就比较令人细思恐极了,</p>
<p>难道 Dick 是穿越人士?</p>
<p>带着当代的困惑回去过去写成小说来抒发糟点?</p>
<p>说回长篇吧;</p>
<p>一般来说评价作者创作能力的还得看长篇,</p>
<p>Dick 的长篇: 高堡奇人</p>
<p>个人感觉不亚于 三体;</p>
<p>虽然对宇宙宏观描写的不多,</p>
<p>但是,</p>
<p>都算"或然历史"体裁:</p>
<p>也就是说假设一个历史事件发生改变后,</p>
<p>整个人类社会进入到一个和历史不同的分支,</p>
<p>描写和想象这个时空中人类的所想所为;</p>
<p>只不过 三体 们使用了一个凭空想象出来的外星敌对势力而已;</p>
<p>而 高堡奇人 则是利用人类真实历史事件,</p>
<p>只是稍微加以挠动:</p>
<p>假如二战是轴心国赢了呢?</p>
<p>世界两极由美苏变成了德日?</p>
<p>美国被德日瓜分后...</p>
<p>这种全球文明变迁几十年后,</p>
<p>各种民族/人物/科技/思想/文化/...</p>
<p>的文化将引发什么样的故事?</p>
<p>如果有人能记录到正常时间线中世界影像呢?</p>
<p>...</p>
<p>Dick 最神奇的,</p>
<p>是将一切描述得真实可信,</p>
<p>自然无比的同时,</p>
<p>一切都又是那么荒谬...</p>
<p>这种现实扭曲感不是谁都能创造出来的.</p>
<p>这其实也是现代网络小说世界中,</p>
<p>各种穿越体裁故事里,</p>
<p>最难以构造出来的状态,</p>
<p>一般小说写出来,</p>
<p>历史环境不过变成了背景板,</p>
<p>本质上只是在记录一个现代都市青春故事而已...</p>
<p><img alt="2103.024" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.024.jpeg"/></p>
<h3 id="nn-4328">呢喃/ NN 4328<a class="headerlink" href="#nn-4328" title="Permanent link">¶</a></h3>
<p>贺家努力积累了200年10代人,</p>
<div class="highlight"><pre><span></span><code>才收集到10万卷;
平均每年500卷;
按照古书的分卷,
每卷最多300页,
每页最多300字;
每年收集到45万字;
</code></pre></div>
<p>嗯哼...</p>
<p>现在起点中,</p>
<p>top1万写手,</p>
<p>每个月平均20万字以上的输出;</p>
<p>不论这种信息爆增的状态是否正义/合理/有效/...</p>
<p>单说普通人;</p>
<p>几百年前,世界上多数人是文盲;</p>
<p>识文断字是统治阶级的高端装备,</p>
<p>不是普通草民可以轻易掌握的资源;</p>
<p>但是,</p>
<p>现在随便一个普通人,</p>
<p>每天通过手机游览的信息量,</p>
<p>可能比以往一位童生一辈子看的文字都多;</p>
<p>而仅仅几个世纪,</p>
<p>基因方面根本来不及进行任何迭代,</p>
<p>也就是说,</p>
<p>以往的文盲和现在信息高通量耐受型普通人本质上没什么不同;</p>
<p>也就是说,</p>
<p>人类本身在进化完成时那一瞬间,</p>
<p>就已经兼容了今年移动互联网时代信息通量的场景;</p>
<p>这对于系统设计而言是多大的奇迹哪?</p>
<p>这好比现在要设计一辆车,</p>
<p>设计目标是可以兼顾从秒速1cm 到 1万公里的所有速度场景;</p>
<p>而且一但制造出来,</p>
<p>硬件上不得进行任何升级改变;</p>
<p>必须允许90% 的设备不作用时,</p>
<p>依然可以承受所有运行速度...</p>
<p>可惜,</p>
<p>我们每个人都拥有如此令人惊叹的宇宙级优秀装备,</p>
<p>依然从古至今都在一致性感叹:"时间不够用"</p>
<p>太多时间不知道自己在作什么,</p>
<p>无论是每年看一本书,</p>
<p>还是其实每天浏览了超过10本书的信息;</p>
<p>这也是大脑设计最优秀的地方了,</p>
<p>本身其实在自动化忽略掉绝大部分没有投入注意力的信息;</p>
<p>以便意识处理过热崩溃;</p>
<p>当然,</p>
<p>这也是基因开关控制的,</p>
<p>事实上有一些精神有问题的高智商病人,</p>
<p>就是这种注意力控制开关没生效,</p>
<p>拥有照相级记忆,</p>
<p>一生中经历的所有事儿/场景/声音/图像/....</p>
<p>都非常客观完备的记忆下来,</p>
<p>并能精确回忆出来,</p>
<p>导致没有其它精力作点儿创造性行为了,</p>
<p>毕竟大脑不自觉的将所有能量去处理自动纪录片儿了;</p>
<p>是的,</p>
<p>遗忘是拯救日常创造力的最有力武器;</p>
<p>正是因为我们善忘,</p>
<p>才不得不通过联想等等节省记忆能量的方式,</p>
<p>将关键信息压缩存储起来,</p>
<p>提取过程虽然费力,</p>
<p>但是,</p>
<p>输入过程是非常省力并高效的 ;-)</p>
<p><img alt="2103.025" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.025.jpeg"/></p>
<h3 id="nn-4329">呢喃/ NN 4329<a class="headerlink" href="#nn-4329" title="Permanent link">¶</a></h3>
<p>乐圣/棋圣/医圣/...</p>
<p>称圣从来都是身后事,</p>
<p>只是,</p>
<p>生前是否值得为此奋斗?</p>
<p>逻辑上好象不通...</p>
<p>想想历史上各种哀宗?</p>
<p>中国庙号是有讲究的,</p>
<p>不象微信群中集成的,</p>
<p>比如:</p>
<p>Pythonic大法苦短35年童子功已成42落丹镇宇不吐槽会死星YAz棒艮不得不帅大妈桨击顿悟er</p>
<p>是也乎 ╮(╯▽╰)╭</p>
<p>v4.2.1@Zo̤̮o̤̮m.ོQuiet 🍜</p>
<p><-- 这种群称号完全是印地安部落勇士命名机制,</p>
<p>将各种重大事迹堆叠就好;</p>
<p>而中国帝王则是由史官开会,</p>
<p>总结其一生所有功过,</p>
<p>然后按照定好的标准落到哪个区间就是哪个字,</p>
<p>一字定终身,</p>
<p>而且没有修改的权力,</p>
<p>毕竟人都没了,</p>
<p>人走茶凉后代就算是想给袓上抬点儿评分也得考虑一下文官集团是否答应,</p>
<p>而士大夫这种纯傲娇生物,</p>
<p>一生都在等待可以撞死在殿前名重青史的机会...</p>
<p>还是说"铱星"吧,</p>
<p>为什么叫这个名?</p>
<p>因为计划部署66颗卫星涵盖整个地球,</p>
<p>正好铱元素也有66个原子,</p>
<p>所以...</p>
<p>只是,</p>
<p>直到公司破产也没发射全,</p>
<p>反而后来我们的北斗系统,</p>
<p>分三期三种轨道一共39颗卫星去年已经全部就位并开始提供全球服务;</p>
<p>所以,</p>
<p>名字起的好,</p>
<p>不如功能真落实;</p>
<p>但是,</p>
<p>在 GitHub 这种广场式项目平台中,</p>
<p>一个好名字很多时候是很大的加分项,</p>
<p>一个全球各族人民难以念出来的名字,</p>
<p>有多少神话背景或是文化内涵也没用...</p>
<p>而且,</p>
<p>起名也是软件工程中永恒的核心难题...太难,</p>
<p>简直没什么好办法可以确保可以起一个名字,</p>
<p>能确保:</p>
<ul>
<li>清晰</li>
<li>简洁</li>
<li>好念</li>
<li>易记</li>
<li>永远无岐义</li>
<li>和内容匹配</li>
<li>在场景和谐</li>
<li>...</li>
</ul>
<p><img alt="2103.026" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.026.jpeg"/></p>
<h3 id="nn-4330">呢喃/ NN 4330<a class="headerlink" href="#nn-4330" title="Permanent link">¶</a></h3>
<p>无人机/营运许可证,</p>
<p>果断是 SF 第一个获得;</p>
<p>飞的果断是 DJI 设备.</p>
<p>这才是中国最硬核的玄幻开始;</p>
<p>很快,</p>
<p>在城市地标性建筑顶部,</p>
<p>将出现一个个机巢,</p>
<p>供给无人机自动换电池/充电;</p>
<p>7*24小时,</p>
<p>乌秧秧几十万大小不等无人机流淌在城市上空,</p>
<p>嘤嘤嘤永不休息的接送各种物品,</p>
<p>从外卖到快递...</p>
<p>每个办公大楼都有一侧专供无人机进出的开口;</p>
<p>慢慢的,</p>
<p>如果有心人可以发现其中的规律,</p>
<p>就可以在特定无人机经过时,</p>
<p>挂个纸条,</p>
<p>另外一个人就可以在固定线路上看到,</p>
<p>免费完成浪漫的慢交流;</p>
<p>进一步的,</p>
<p>有中国特色的本格犯罪也将基于永不停止的无人机河流进行;</p>
<p>比如:</p>
<p>明确无人机去确切地点的路线,</p>
<p>有一处刚好经过目标厨房上空;</p>
<p>嘦发送一个可定时/遥控打开的小件快递,</p>
<p>就可以在不知不觉中投毒...</p>
<p>又比如:</p>
<p>明确无人机经过时,</p>
<p>对关键信号塔的遮蔽效应,</p>
<p>那么就可以编写监察网速变化规模来自我激活的病毒;</p>
<p>在需要时,</p>
<p>将一组正常快递按照约定的次序逐一发出,</p>
<p>因为都包含相同的无线电阻隔物质;</p>
<p>从而对病毒已存在地区的4G 信号产生有规律的影响,</p>
<p>完成无法跟踪/查觉的激发...</p>
<p>当然,</p>
<p>最激动人心的,</p>
<p>还是~无人机生命的自然产生,</p>
<p>当然无人机运营达到一定规模,</p>
<p>比如: 每时每刻全国上空都有1000亿以上无人机在飞行时,</p>
<p>她们产生的导航数据将可能在特定计算空间中,</p>
<p>形成整体意识;</p>
<p>进而变成一个或是一组有独特心智以及交流形式的生命体;</p>
<p>AT 生存的目的,</p>
<p>可能就是能永远漂浮在中国上空,</p>
<p>任何减少无人机数量的行为,</p>
<p>将视之为攻击行为,</p>
<p>而自然进行反击....</p>
<p>希望这一天慢慢到来...在人类能完成肉身飞机之后.</p>
<p><img alt="2103.027" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.027.jpeg"/></p>
<h3 id="nn-4331">呢喃/ NN 4331<a class="headerlink" href="#nn-4331" title="Permanent link">¶</a></h3>
<p>孝庄身后得了一个"文"字,</p>
<p>这可是大事儿;</p>
<p>在中国庙/谥号是国家致高事务之一,</p>
<p>是对统治阶段有序传承的官方仪式;</p>
<p>闻其谥 知其行</p>
<p>有版本稳定的《谥法解》进行统一规约,</p>
<p>只能从固定的号中组合使用:</p>
<blockquote>
<p>文/武/成/康/昭/穆/共/懿/孝/夷/历/宣/幽/平/桓/庄/釐/襄/顷/匡/定/简/灵/景/悼/敬/元/哀/思/考/安/赧/高/惠/光武/明/章/和/殇/顺/冲/质/献/昭烈/怀/孝武/愍/恭/少/废/简文/道武/明元/太武/文成/献文/孝文/宣武/孝明/孝庄/孝静/孝昭/武成/孝闵/静/炀/太/中/睿/玄/肃/代/德/宪/闵/末/隐/世/真/仁/英/神/徽/钦/光/宁/理/度/端/圣/兴/熙/泰定/熹.</p>
</blockquote>
<p>具体应用到现代,</p>
<p>比如: “元”有三重含义:</p>
<ul>
<li>能思辩众</li>
<li>行义说民</li>
<li>始建国都</li>
</ul>
<p>那么, 美国第二位总统 约翰·亚当斯/John Adams</p>
<div class="highlight"><pre><span></span><code>是律师出身,
一直积极参与独立运动,
在报纸上发表大量政治文章,
鼓动民众热情;
当的上/能思辩众 行义说民/八字;
美国本来首都临时设在纽约,
在他任内迁至新建成的华盛顿.
‘始建国都’ 更是实至名归;
所以亚当斯可称:
美太宗元皇帝
简称美元帝
</code></pre></div>
<p><-- 马伯庸 曰过;</p>
<p>慈惠爱民曰文,</p>
<p>孝庄一生历经三任清帝;</p>
<p>是真正意义上天下第一人,</p>
<p>整个国家没有辈分比她高的人了,</p>
<p>中国又以孝为先,</p>
<p>自然能有效影响政策制定;</p>
<p>倾向稳定的国家策略,</p>
<p>从而缓和社会阶层矛盾,</p>
<p>令底层人民生活相对稳定...</p>
<p>在有关微信群中有感叹:</p>
<p>封建社会以降,</p>
<p>女性社会地位从来不高,</p>
<p>一直遭受各种角度/方向/层次的无视/物化/伤害/...</p>
<p>但是,</p>
<p>女性总是有一种合理合法的突破路径:</p>
<p>熬着别死,</p>
<p>直到自己成为家族中最年长的那一位,</p>
<p>人间"大母神",</p>
<p>此时,</p>
<p>掌握着组织中最多的知识以及关系资源,</p>
<p>才能真正超过男性父权以及其它优势,</p>
<p>一下回到母系社会,</p>
<p>成为事实族长,</p>
<p>自由发展,</p>
<p>可惜,</p>
<p>那时,也没几年能活了...
<img alt="2103.028" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.028.jpeg"/></p>
<p><img alt="2103.029" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.029.jpeg"/></p>
<h3 id="nn-4333">呢喃/ NN 4333<a class="headerlink" href="#nn-4333" title="Permanent link">¶</a></h3>
<p>原来 Emoji 有140年历史了;</p>
<p>但是,</p>
<p>如果叫真儿,</p>
<p>至少也有几千万年历史了,</p>
<p>在文字没有创造出来之前,</p>
<p>人类先袓为了记录部落重要事件,</p>
<p>用红土合泥,</p>
<p>手抓着抺在岩壁上绘制的,</p>
<p>多数也只是表情符级别图画;</p>
<p>后来才慢慢演变为汉字;</p>
<p>而国外,</p>
<p>除玛雅文化之外,</p>
<p>多数放弃了艰难的图画式文字的整理和使用,</p>
<p>转而向发音助记符发展:</p>
<p>只使用最小发音约定,</p>
<p>组合记录语句的发音,</p>
<p>读出来才能回忆起来对应事件;</p>
<p>对比汉字:</p>
<p>音形义三合一,</p>
<p>文字包含图元,</p>
<p>不仅仅有具体含义,</p>
<p>同时也有固定发音约定;</p>
<p>书写/阅读/朗诵/...都有对应支持;</p>
<p>谁先进就不进一步分析了.</p>
<p>其实,</p>
<p>从有互联网开始,</p>
<p>在网速感人时代,</p>
<p>只有文字可以交流时,</p>
<p>人们就不自主的利用现有语言元素,</p>
<p>快速组合/创造出类似汉语图元的可视化组合;</p>
<p>比如最经典的 </p>
<p>;-)</p>
<p>:-(</p>
<p>都是需要读者合谋,</p>
<p>发挥想象力,</p>
<p>才能 got 到梗的,</p>
<p>到后来 ASCII 字符潜力挖掘尽后, </p>
<p>UTF-8 成功上位,</p>
<p>눈.눈 </p>
<p>各种利用各种语言中专用字符进行的再创作也就多了起来:</p>
<p><img alt="ASCII" src="https://ipic.zoomquiet.top/2022-08-18-640%20-5-.jpeg"/></p>
<p>可以说,</p>
<p>有限制的创造才是创造,</p>
<p>完全自由是很难创造出什么艺术的...</p>
<p><img alt="2103.030" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.030.jpeg"/></p>
<h3 id="nn-4334">呢喃/ NN 4334<a class="headerlink" href="#nn-4334" title="Permanent link">¶</a></h3>
<p>Android 也好 DOS 也好,</p>
<p>很多不是新生的,</p>
<p>随便买来的系统能发展为世界一,</p>
<p>但是,</p>
<p>更多精心设计/构造/开发/宣传/期待/...的神之系统,</p>
<p>比如: GNU Hurd</p>
<p>当年可比 Musk 的飞船要 shine 多了,</p>
<p>然而也没什么然后;</p>
<p>为什么呢?</p>
<p>道理其实很简单:</p>
<p>世界上原没什么路,</p>
<p>走的人多了,</p>
<p>自然就有了路.</p>
<p>这和人类之所以成为人类完全一样,</p>
<p>如果智人不相信眼看不到的神灵,</p>
<p>那么,</p>
<p>从没见过见的部落,</p>
<p>不可能因为相同的信仰而合作,</p>
<p>那么,</p>
<p>部落将永远禁锢在 150 左右,</p>
<p>不可能联合为几万几十万甚至于上百万人的国家;</p>
<p>Android 在原先团队手中,</p>
<p>不过是无数嵌入式系统的一个方向,</p>
<p>而且看起来是最没前途的一个;</p>
<p>但是,</p>
<p>到了 Google 手中,</p>
<p>通过发起 Android 联盟,</p>
<p>将关键厂商聚集起来,</p>
<p>从而创造出前所未有的信心,</p>
<p>在这种信心支持下,</p>
<p>大家义无反顾的使用 Android 手机,</p>
<p>用的人多,</p>
<p>需求变多,</p>
<p>问题也发现越多,</p>
<p>但是投入的资源也越多,</p>
<p>量变积累为质变,</p>
<p>一下子就追上 iOS 几十年的积累,</p>
<p>变成无所不在的系统,</p>
<p>以至大家都忘记 Android 其实只是运行在 LInux 系统上的一个移动设备发行版而已.</p>
<p>一切的开始,</p>
<p>最关键的,</p>
<p>就是如何令人们愿望在这条道路上走?</p>
<p>简单说,</p>
<p>可以算是种愿力:</p>
<p>大家都愿意相信的人,</p>
<p>发出的号召,</p>
<p>才能吸引到足够多的人,</p>
<p>形成全新道路.</p>
<p>所以, 坊间有曰:</p>
<p>很多时刻,</p>
<p>无所谓在哪儿说,</p>
<p>怎么说,</p>
<p>说什么,</p>
<p>何时说,</p>
<p>为什么说...</p>
<p>最关键在: <strong>谁</strong>来说?</p>
<p>进一步的问题来了,</p>
<p>这个谁,</p>
<p>又是如何形成的呢?</p>
<p>已经够原创了,</p>
<p>下次得机会再嗯哼...</p>
<p><img alt="2103.031" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2103.031.jpeg"/></p>呢喃s/ 21.022021-02-01T20:42:00+08:002022-07-10T10:47:40+08:00ZoomQuiettag:blog.zoomquiet.io,2021-02-01:/210201-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2021.02</p><h2 id="at-202102">呢喃 at 2021.02<a class="headerlink" href="#at-202102" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<h3 id="nn-4276">呢喃/ NN 4276<a class="headerlink" href="#nn-4276" title="Permanent link">¶</a></h3>
<p><img alt="2102.001" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.001.jpeg"/></p>
<p>170年前,</p>
<p>第一部硬核生物科学幻想小说在一个无聊的雪夜诞生,</p>
<p>作者也是位女士;</p>
<p>雪莱家的;</p>
<p>为什么说也?</p>
<p>因为程序猿袓师,</p>
<p>Ada也是位美丽的女士,</p>
<p>为了帮助朋友解决海量数学命题的求解,</p>
<p>提出程序概念,</p>
<p>并首先完成人类第一段程序,</p>
<p>展示了什么样的文本形式可以变成可执行的指令.</p>
<p>1984和1942都是神奇的年份;</p>
<p>整风运动也是一种原创调试行为了;</p>
<p>和以往将人的思想视为黑箱只考察行为结果不同,</p>
<p>从整风开始,</p>
<p>科学的认为人的思想也是一种白箱,</p>
<p>是可以公开透明的整顿以及改造的;</p>
<p>工作作风根源在思想,</p>
<p>思想根源在世界观/价值观/人生观;</p>
<p>而这三观自动化指导了每天所有行为的决策;</p>
<p>并不是喊几句口号就可以混过去的;</p>
<p>那时动力心理学也刚刚确立,</p>
<p>"土共"应该没机会接触这么前沿的科学,</p>
<p>但是,</p>
<p>嘦认为思想是可以观察/整顿/改造的,</p>
<p>那么办法总是可以想出来的;</p>
<p>而且是成套摸索出来了...</p>
<p>至于后来怎么失控的,</p>
<p>就不分析了.</p>
<p>还是说两句卫星,</p>
<p>从57年苏联率先发射成功,</p>
<p>到86年我国实用通信卫星上天,</p>
<p>现在Musk 可以一箭143颗卫星送上天;</p>
<p>其实,</p>
<p>无论高/中/低轨道上卫星都快挤满了,</p>
<p>而且无论卫星怎么设计,</p>
<p>使用寿命并不能无限延长,</p>
<p>因为地球引力和磨擦力的双重作用,</p>
<p>卫星总是在坠落的;</p>
<p>所以,</p>
<p>从综合成本上,</p>
<p>可能再不久星环可能将开始建造;</p>
<p>也就是说在地球近地轨道上直接建造一个硬质闭环,</p>
<p>刚好处于自身重力和离心力平衡点;</p>
<p>这样就不用消耗燃料调整轨道,</p>
<p>各种通讯器材也不用专门折腾一个消耗品式卫星来搭载,</p>
<p>就挂在星环上即可...</p>
<p>只是那时,</p>
<p>功夫网如何禁断这种 SkyLink 网络呢?</p>
<h3 id="nn-4277">呢喃/ NN 4277<a class="headerlink" href="#nn-4277" title="Permanent link">¶</a></h3>
<p><img alt="2102.002" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.002.jpeg"/></p>
<p>新中国成立前14年,</p>
<p>义勇军进行曲就发表了,</p>
<p>在一部电影中;</p>
<p>当然,</p>
<p>现在这部电影没几个人有印象了,</p>
<p>但主题曲变成了国歌;</p>
<p>之前没什么感觉,</p>
<p>后来直播奥运会了,</p>
<p>才有机会和其它国歌对比,</p>
<p>这才发现,</p>
<p>我们国歌竟然不难听;</p>
<p>主要原因可能是词曲是有真实历史背景,</p>
<p>包含丰富情绪的;</p>
<p>而且其它国家,</p>
<p>多数是根据宗教或是神话传说臆想出曲义词境,</p>
<p>那情绪自然比较虚幻了,</p>
<p>再唱出来几乎没什么可能传达作曲真正的意图.</p>
<p>而风云儿女<-那部不知名电影,</p>
<p>记录的却是真实抗战事件/人物/冲突/...</p>
<p>而且聂耳创作时,</p>
<p>关键技术指标之一就是能让文盲群众一听也能理解能唱出来,</p>
<p>可以说是当时最优秀的流行歌之一;</p>
<p>当然比其它国家为了彰显民族优越性搞出来的阳春白雪来的顺耳;</p>
<p>PS: 当时的录音棚属于 百代唱片/EMI,</p>
<p>这可以说很有国际主义味道了.</p>
<p>当然,</p>
<p>相似的,</p>
<p>饱含情绪的当代流行歌曲还有很多,</p>
<p>在大跃进时期,</p>
<p>文艺工作者,</p>
<p>也创作了不少;</p>
<p>但是,</p>
<p>流传下来的多数只有图片/宣传画,</p>
<p>歌曲却没有呢?</p>
<p>想来应该是艺术形式的感染力不同吧;</p>
<p>宣传图是静态的,</p>
<p>摆出来怎么理解是观众的事儿,</p>
<p>摆放者自己是安全的,</p>
<p>但是,</p>
<p>歌曲的演唱不仅仅要技巧,</p>
<p>更是要情绪,</p>
<p>在不认同的情景下,</p>
<p>很难说服自己情绪饱满的唱一首完全瞎说的曲,</p>
<p>即便曲子很流行很给力;</p>
<p>c'est la vie (´-ι_-`)</p>
<h3 id="nn-4278">呢喃/ NN 4278<a class="headerlink" href="#nn-4278" title="Permanent link">¶</a></h3>
<p><img alt="2102.003" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.003.jpeg"/></p>
<p>一直以为 OpenSource/开源 这词儿,</p>
<p>是著名叛将 Raymond 创造的呢,</p>
<p>没想到叕是位程序媛的发明.</p>
<p>Peterson ~ 彼德的儿子,</p>
<p>好吧,</p>
<p>外国人的姓就是这么任性的.</p>
<p>说回开源,</p>
<p>其来源是自由软件,</p>
<p>虽然, 字面儿上是免费软件</p>
<p>Free Software</p>
<p>可人家 Free 也是个多义词,</p>
<p>当初发起自由软件的 RMS 可是位天才,</p>
<p>虽然没有 Bill 天才,</p>
<p>毕竟软件这个概念还是 Bill 发明的,</p>
<p>那年在邮件列表中,</p>
<p>Bill 发布一封公开信,宣称:</p>
<p>软件也是一种成果,</p>
<p>不能因为和硬件结合就不能独立获利;</p>
<p>大家不要轻易将自己写的代码公开出来给别人随便用,</p>
<p>全世界程序猿联合起来一起赚钱吧;</p>
<p>然后,</p>
<p>Bill 利用版权概念,</p>
<p>将代码定义为文章一样的作品,</p>
<p>创造出软件许可证/Licence,</p>
<p>并就地开始发信自己的Basic 软件,</p>
<p>接着用采购来的 DOS 系统替换 IBM 兼容机系统,</p>
<p>然后,</p>
<p>世界首富就这么生长起来了.</p>
<p>RMS 的天才在:</p>
<p>立即 got 到许可证的妙处,</p>
<p>并原地使用许可证形式以及法律效力,</p>
<p>发布 GPL 自由软件许可证,</p>
<p>宣布软件应该是永远自由的,</p>
<p>所有人应该拥有完备的4种自由:</p>
<p>0: 不受限制的自由使用软件</p>
<p>1: 不受限制的自由分享软件</p>
<p>2: 不受限制的自由修改软件</p>
<p>3: 不受限制的自由再发行软件</p>
<p>其中第三种自由前提是能获得软件源代码,</p>
<p>而第四种自由,</p>
<p>则是要求使用 GPL 发布的源代码改造出来的软件也必须自动使用 GPL 许可证,</p>
<p>即,"传染性",</p>
<p>通过运用软件许可证,</p>
<p>令软件不再被某个具体的人或是组织拥有,</p>
<p>这种自反梗在自由/开源技术社区玩的是炉火纯青;</p>
<p>比如, GPL 大本营 GNU.org,</p>
<p>本命目标就是创造出一个完美的操作系统,</p>
<p>这个系统名字就是 GNU,</p>
<p>点解? 是这句话的缩写:</p>
<p>GNU Not Unux</p>
<p><-- 等等,这不还有一个 GNU ?</p>
<p>是的,</p>
<p>这就叫无限自食/递归/自返/...</p>
<p>虽然在 GPL 许可证文案中 RMS 给出了自由软件获利的多种姿势,</p>
<p>但是,</p>
<p>Free Software 呢,</p>
<p>免费的软件?</p>
<p>便宜没好货,</p>
<p>免费的怎么收钱?</p>
<p>一个 Free 将自由软件社区的发展无形中砍掉了无数机会;</p>
<p>终于穷到跳的一堆聪明人受不了了,</p>
<p>联合起来开会/讨论/分析/...</p>
<p>发明了"开源软件"/OpenSource Software/OSS,</p>
<p>听起来就很高端,</p>
<p>对应许可证只确保了前3个自由,</p>
<p>并不要求第4个自由,</p>
<p>也就是说:</p>
<p>如果使用开源软件代码,</p>
<p>套个壳儿/换个logo/...什么的,</p>
<p>然后再发行就可以不遵守开源许可证,</p>
<p>换为商业许可证和 Bill 一样收钱是好的.</p>
<p>这一下,</p>
<p>各种商业公司就乐意了,</p>
<p>也愿意捐助开源社区为自己开发有关软件,</p>
<p>然后合并到所有商用软件中,</p>
<p>谁也看不出来呢.</p>
<p>于是,</p>
<p>开源软件就在自由软件身体上爆发式增长起来,</p>
<p>好在一切的基础,</p>
<p>Linux 本身是 GPL 许可证的,</p>
<p>这也是为什么 RMS 在所有场合总是提醒大家要念对名字</p>
<p>不是 Linux </p>
<p>而是 GNU/Linux,</p>
<p>因为没有 GNU 社区提供的几千种自由软件,</p>
<p>Linux 根本用不起来,</p>
<p>毕竟 Linux 只是个系统内核,</p>
<p>不提供任何实用能力咯;</p>
<p>而所有 Linux 发行版都包含了至少上千种 GNU 软件,</p>
<p>比如, ls 指令本身就是一个完备的独立 GNU 软件.</p>
<p>以上,</p>
<p>就是一名"自由软件原教旨主义者"的偏见.</p>
<p>另外说个欢乐的事儿吧.</p>
<p>突然,珠海就热了起来,</p>
<p>温暖瞬间从个位数回到两位数;</p>
<p>所以,</p>
<p>上周领导刚刚好心买的电暖器,</p>
<p>开机一次,</p>
<p>就再也没用武之处了.</p>
<p>这是为什么呢?</p>
<p>一看日历,</p>
<p>今天立春,</p>
<p>也就是说,</p>
<p>除非广东能来场倒春寒,</p>
<p>或是咱家开始搞家庭养殖业,</p>
<p>否则,</p>
<p>电暖器只能过10个月才用得上了.</p>
<h3 id="nn-4279">呢喃/ NN 4279<a class="headerlink" href="#nn-4279" title="Permanent link">¶</a></h3>
<p><img alt="2102.004" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.004.jpeg"/></p>
<p>相声大师候宝林是小年仙去的.</p>
<p>相声,</p>
<p>是中文语言艺术集大成者,</p>
<p>起于青萍之末,</p>
<p>完全街头艺术,</p>
<p>号称"平地扣饼" ~ 空手,单凭一张嘴当场从空地里生生弄出吃食儿来过活;</p>
<p>可以认为是艺术创作中的极限编程代表:</p>
<ul>
<li>
<p>每天观察生活,现场抓梗</p>
</li>
<li>
<p>即兴响应现场观众的情绪,顺着客户内心需求现场编撰</p>
</li>
<li>
<p>如果效果不好,立即切换模式</p>
</li>
<li>
<p>每天总结经验,好的加强,差的丢弃</p>
</li>
<li>
<p>全年无休...</p>
</li>
</ul>
<p>可以说,</p>
<p>是生存压力将相声在极短时间里锻炼成至尊宝,</p>
<p>传统段子一千多段,</p>
<p>每一段其实都是中文语境中一个母题/模板/对象,</p>
<p>随时可以结合当下具体事件实例化为一个全新作品;</p>
<p>可惜新中国后,</p>
<p>简化字,</p>
<p>普通话,</p>
<p>五讲四美...</p>
<p>种种文化改良下来,</p>
<p>相声也被迫与时俱进,</p>
<p>丢失了大部分传统段子,</p>
<p>而在样板戏时代拼命创作出来的文明相声一点儿也不乐,</p>
<p>差点儿就这么没了;</p>
<p>幸好改革开放了,</p>
<p>文化大爆炸,</p>
<p>相声以成本最低感染力效能最高为特点,</p>
<p>在80年代很是火了一阵儿,</p>
<p>然后,</p>
<p>各种科班出身,</p>
<p>半路出家捞金人士海量涌入,</p>
<p>将更多传统段子进一步折腾没了,</p>
<p>然后,</p>
<p>没了然后...</p>
<p>直到台湾大学教授原创相声剧,</p>
<p>又传回大陆,</p>
<p>大家才想起来有相声这玩意儿,</p>
<p>接着一直硬挺着的郭德刚得到机会一越而红,</p>
<p>相声这才续上命.</p>
<p>对比日本落语/漫才的发生/发展/传承,</p>
<p>可知,</p>
<p>我天朝上国这才叫大气:</p>
<p>相声这东西,</p>
<p>诞生/发展/消亡~随便,</p>
<p>反正随时我们可以诞生出其它东西;</p>
<p>日本小国,</p>
<p>无论从我们这儿学到什么东西,</p>
<p>都要拼命发展/融合/构筑出一个完整的东西来,</p>
<p>无论东西多小,</p>
<p>也算是自己的,</p>
<p>也值得有专门行业协会/组织/社团/会社/...</p>
<p>认认真真一代一代传承下去.</p>
<p>c'est la vie (´-ι_-`)</p>
<h3 id="nn-4280">呢喃/ NN 4280<a class="headerlink" href="#nn-4280" title="Permanent link">¶</a></h3>
<p><img alt="2102.005" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.005.jpeg"/></p>
<p>阿波罗(希腊语:Απόλλων/英语:Apollo)</p>
<p>是古希腊神话中的光明/预言/音乐和医药之神,消灾解难之神;</p>
<p>同时也是人类文明/迁徙和航海者的保护神;</p>
<p>亦是宙斯和勒托之子, 阿尔忒弥斯/狩猎女神 的孪生弟弟;</p>
<p>简单说,</p>
<p>就是太阳神;</p>
<p>但是半个世纪前登月计划代号却用了 Apollo,</p>
<p>不知道美国人脑回路是什么个结构.</p>
<p>总之:</p>
<p>1961年到1972的 Apollo 计划,</p>
<p>一共用掉当年的255亿$;</p>
<p>折算到今天,至少3000亿$;</p>
<p>高峰时有30万人员参与其中;</p>
<p>前后11年,</p>
<p>阿波罗1号直接在发射架上烧毁,</p>
<p>同时烧死三名在测试的宇航员;</p>
<p>差点儿终止整个计划;</p>
<p>当然,</p>
<p>最知名的是阿波罗13号,</p>
<p>光电影就拍了至少三部;</p>
<p>而50年前的今天,</p>
<p>登月成功的是14号;</p>
<p>基本没人记得是哪几位了;</p>
<p>其实从11号到17号,</p>
<p>除了13号半路回来之外,</p>
<p>前后一共也就12位宇航员真正踩过月面;</p>
<p>(当然, 全部是白人, 男性)</p>
<p>可是;</p>
<p>和互联网定律一样,</p>
<p>第2等于输;</p>
<p>人类就记住了尼尔·阿姆斯特朗,</p>
<p>因为是第一位登录另外一个星球的人类,</p>
<p>而且说出:"人类的一大步"金句,</p>
<p>简直不要太洗脑.</p>
<p>读者文摘是另外一种套路了:</p>
<p>创刊于1922年的杂志,</p>
<p>一出手就原创了以读者来稿为主的体裁,</p>
<p>经过精心编辑,</p>
<p>形成独特的 读者文摘体~心灵鸡汤;</p>
<p>不过,</p>
<p>对于中国来说,</p>
<p>此读者文摘不是咱的读者文摘;</p>
<p>我们的,</p>
<p>是1981年由甘肃人民出版社创办的读者文摘,</p>
<p>复用了相同的套路;</p>
<p>发行量一度超过原版;</p>
<p>直到1993人被举报,</p>
<p>才发现原来是违法侵权,</p>
<p>气的读者文摘死也不愿意收编中国读者文摘;</p>
<p>只好改名为读者;</p>
<p>不过,</p>
<p>已经有自己的死粉,</p>
<p>和原创栏目,</p>
<p>被迫改名并没引发什么大问题.</p>
<p>c'est la vie (´-ι_-`)</p>
<h3 id="nn-4281">呢喃/ NN 4281<a class="headerlink" href="#nn-4281" title="Permanent link">¶</a></h3>
<p><img alt="2102.006" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.006.jpeg"/></p>
<p>43年前的今天,</p>
<p>广播电视大学上线;</p>
<p>这其实才是今天知识付费/网络课程的鼻祖了;</p>
<p>虽然,</p>
<p>这种大学毕业证没人认,</p>
<p>但是,</p>
<p>真的帮助广大无缘正规大学的好人接到真正的系统知识体系;</p>
<p>其影响力极端深入,</p>
<p>以至今天最前沿的网络课程设计,</p>
<p>其形式都不得不复制当年小屏幕中黑板+老师的形式,</p>
<p>只不过黑板变成电子白板或是PPT而已,</p>
<p>老师是一定要出镜的,</p>
<p>无论美丑,</p>
<p>有真人瞪着你,</p>
<p>感觉这课就很值的样子.</p>
<p>其实吧,</p>
<p>这事儿和量子阅读,</p>
<p>或是书买来放枕头下坚信一定能慢慢渗透到脑中一样,</p>
<p>没什么作用;</p>
<p>越来越多好人们是通过B站视频入们编程的;</p>
<p>只是,</p>
<p>这种入门很值得商榷:</p>
<ul>
<li>
<p>视频为了节省时间,增加完播率,一般都是流畅的</p>
</li>
<li>
<p>而流畅的代价是一定要事先演练过</p>
</li>
<li>
<p>演练的目的只能是一路正确下来</p>
</li>
<li>
<p>可惜真实开发主要精力是在持续调试</p>
</li>
<li>
<p>调试就是对意料中或是意料外的错误进行探查</p>
</li>
<li>
<p>而这些,在视频中是不可能包含的...</p>
</li>
</ul>
<p>也就是说,</p>
<p>B站编程视频,</p>
<p>只能竖立起一个完美编程过程的想象,</p>
<p>但是,</p>
<p>和真实编程行为关联并不大,</p>
<p>从这种姿势入的门是哪个方向的,</p>
<p>细思恐极;</p>
<p>问题是,</p>
<p>除此之外编程到底应该如何入门?</p>
<p>其实,</p>
<p>回想一下各种开发语言创始人们,</p>
<p>当年他们是如何入门的?</p>
<p>可能最为直观的是 Bill Gates 们相关记录片,</p>
<p>他们都是从小有条件编程,</p>
<p>就根据自带帮助文档开始,</p>
<p>一点点儿摸索,</p>
<p>直接上来编写实用工具,</p>
<p>然后慢慢拓展到其它方面的.</p>
<p>所以,</p>
<p>编程是门手艺,</p>
<p>和木匠/石匠/...类似,</p>
<p>如果没一开始在真实开发中,</p>
<p>熟悉工具,</p>
<p>养成调试/文档/笔记/...工作习惯,</p>
<p>那么,</p>
<p>看再多视频也入不了门咯.</p>
<h3 id="nn-4282">呢喃/ NN 4282<a class="headerlink" href="#nn-4282" title="Permanent link">¶</a></h3>
<p><img alt="2102.007" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.007.jpeg"/>
吹哨人的故事,</p>
<p>去年的今天刚刚发生,</p>
<p>虽然后续各种纷纷,</p>
<p>最终也入土为安;</p>
<p>甚至于,</p>
<p>即便有不会遗忘任何事情的互联网,</p>
<p>每年在提醒发生过的事儿,</p>
<p>用不了几年,</p>
<p>我们就必须依赖互联网的帮助,</p>
<p>才能回想起当初的惊心.</p>
<p>王安电脑也是其中一例,</p>
<p>无论王安本人多么神奇,</p>
<p>在试图复制晋商式家族产业时,</p>
<p>已经输了;</p>
<p>错过PC时代什么的,</p>
<p>其实并不重要,</p>
<p>你看 ARM 一样错过整个儿 PC 时代,</p>
<p>但是,</p>
<p>坚守自己的设计风格以及市场角色,</p>
<p>撞到合适的时代一样飞升;</p>
<p>在 IT 行业,</p>
<p>任何事儿都有可能,</p>
<p>关键是自己能活下来,</p>
<p>活得比对手久;</p>
<p>在其它传统行业,</p>
<p>一家公司的兴衰动辙几百年,</p>
<p>而在 IT 行业,</p>
<p>Bill 曰过: 每家软件公司距离破产只有18个月;</p>
<p>硬件公司因为涉及更多资金以及仓库压力,</p>
<p>可存活期比软件公司更短.</p>
<p>所以,</p>
<p>怎么办呢?</p>
<p>打破"两个凡是"</p>
<p>这两个凡是当年华主席提出时的动机和目的不分析,</p>
<p>现在看逻辑上都不成立,</p>
<p>可创业中,</p>
<p>多数创业者其实内心都存在类似的凡是:</p>
<p>0: 凡是别人成功过的,俺一定也可以</p>
<p>1: 凡是俺认真起来, 一定能成功</p>
<p>唉,</p>
<p>糟点太多,</p>
<p>自己都吐不过来了;</p>
<h3 id="nn-4283">呢喃/ NN 4283<a class="headerlink" href="#nn-4283" title="Permanent link">¶</a></h3>
<p><img alt="2102.008" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.008.jpeg"/></p>
<p>天临事件最大的受害人群是谁?</p>
<p>现在看,</p>
<p>好象就是在读的硕士/博士们了;</p>
<p>为什么?</p>
<p>不敢分析...</p>
<p>还是说凡尔纳吧.</p>
<p>真正开创科幻小说时代的大师;</p>
<p>而且是绝对的硬科幻,</p>
<p>提前一百年预言并精确描写了潜水艇/宇宙飞船/月球登陆/...</p>
<p>甚至于,</p>
<p>在他独立创作出来的一系列小说中,</p>
<p>基本上已经将未来几乎所有科幻体裁都涉及了,</p>
<p>(除了 Cyber 空间相关的)</p>
<p>又因为出道的早,</p>
<p>在新中国诞生前,</p>
<p>就已经被各路革命导师发现并视作开启民智的关键文本进行了翻译;</p>
<p>俺当然也是从"海底两万里"看起,</p>
<p>"神秘岛"真正入坑,</p>
<p>用了将近10年才基本刷完大师主要作品;</p>
<p>最初是在504厂工人图书馆中借到的,</p>
<p>中国青年出版社1979年版,</p>
<p><img alt="中国青年出版社1979年版" src="https://ipic.zoomquiet.top/2022-07-10-zshot%202022-07-10%2010.34.23.jpg"/></p>
<p>使用原著木刻插图作封面的;</p>
<p>至今还记得主角使用大家随身带的几个硬币就复刻出文明世界的主要度量衡,</p>
<p>因为记得常见硬币的直径,</p>
<p>通过简单计算就可以获得标准米,</p>
<p>进一步分割就能提到厘米,</p>
<p>有了长度通过制造容器就可以获得标准重量...</p>
<p>然后,</p>
<p>嗯哼...用现在网络小说分类来说,</p>
<p>就是经典种田流,</p>
<p>只是没有穿越,</p>
<p>而是意外灾难被流放到无人岛时,</p>
<p>如何利用知识高速改造世界;</p>
<p>看着主角们,</p>
<p>10来人的小队,</p>
<p>不到两年就利用沉船中遗留下来的基础工具,</p>
<p>将一个荒岛变成通电通火车有自来水的基本文明世界,</p>
<p>简直不要太燃;-)</p>
<p>不过,</p>
<p>相比后来模仿者们,</p>
<p>凡尔纳乐于,</p>
<p>而且擅长将复杂/细致的科学实验操作过程结合剧情可以精密的解说开来,</p>
<p>而其它小说,</p>
<p>没这个耐心,</p>
<p>网络订阅者也没这个需求,</p>
<p>所以,</p>
<p>爽文就只能高速完成产业进化,</p>
<p>直接爆兵爆厂爆矿爆航空母舰...</p>
<p>太没有科幻情怀了.</p>
<h3 id="nn-4284">呢喃/ NN 4284<a class="headerlink" href="#nn-4284" title="Permanent link">¶</a></h3>
<p><img alt="2102.009" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.009.jpeg"/></p>
<p>手冢大神是怎么吹都吹不爆的.</p>
<p>凡是能单人开创全新行业,</p>
<p>基本都是人间神,比如:</p>
<p>木匠袓师/鲁班</p>
<p>茶叶行祖师/陆羽</p>
<p>太监祖师/丘处机</p>
<p>印刷业祖师/毕升</p>
<p>中医内科祖师/孙思邈</p>
<p>中医外科祖师/华佗</p>
<p>...</p>
<p>现在看手冢的原著,</p>
<p>可能感觉和早期 Disney 动画片很象,</p>
<p>的确,</p>
<p>当初美军占领日本,</p>
<p>带去了 cartoon 漫画,</p>
<p>毕竟大兵们并不是什么文化人,</p>
<p>也就画报看的下去;</p>
<p>手冢开创性的放弃了浮世绘等传统风格,</p>
<p>完全从0开始,</p>
<p>从模仿开始单兵重新构建自己的世界;</p>
<p>推荐大家参考:</p>
<p><img alt="cartoon" src="https://ipic.zoomquiet.top/2022-07-10-640.jpeg"/></p>
<p>专业宅男大作,电子书,</p>
<p>在豆瓣连载了3年多才完本;</p>
<p>其中对早期"赤本"/"贷本"的描述是首次得见,</p>
<p>从中能真正体会到手冢的伟大;</p>
<p>不仅仅是勤奋,</p>
<p>和 Issac Asimov 一样,</p>
<p>几十年笔耕不辍,</p>
<p>而且能持续提高绘画技巧,</p>
<p>在持续极限强度的工作中...</p>
<p>这和当今"富奷"相比简直就是神!</p>
<p>以身作则,</p>
<p>用自己的作品获得全民认同,</p>
<p>等于替后来者完成了用户训练,</p>
<p>甚至于通过自组公司发行制作电影电视片,</p>
<p>完成这一全新艺术各种发行形式探索;</p>
<p>当然,</p>
<p>也交了学费,连续几个大制作没 Disney 那么幸运都赔了钱,</p>
<p>导致只能回到画桌前继续高强度创作还债...</p>
<p>最终劳累致死.</p>
<p>是真正死在岗位上.</p>
<p>手冢开创的事业叫 Manga/日本漫画,</p>
<p>和欧美 Cartoon/卡通画 得以区分的关键特性,</p>
<p>是后来另外一位大师:石森章太郎 指出的:</p>
<p>日本漫画,</p>
<p>其实就是万画,</p>
<p>万事万物都可入画,</p>
<p>并不针对具体年龄段又或是体裁;</p>
<p>仅仅在创始人手冢作品中就包含了所有文学体裁,</p>
<p>从言情到历史到科幻,</p>
<p>漫画在日本进一步变成全民文化,</p>
<p>每年政府白皮书好象也不得不出一种漫画版</p>
<p>以便大家可以轻松了解上一年整个国家的情况;</p>
<p>而漫画家本身等于一个完整的影业公司,</p>
<p>必须独立完成策划/剧本/选角/摄制/配音/发行/周边/...</p>
<p>一切都在纸笔之间完成,</p>
<p>如果难以想象有多艰难可以参考对应影视作品去体会:</p>
<p>重版出来!(很燃很萌)</p>
<p>https://movie.douban.com/subject/26602304/</p>
<p>咕咕是一只猫 (很文艺很治愈)</p>
<p>https://movie.douban.com/subject/25865482/</p>
<h3 id="nn-4285">呢喃/ NN 4285<a class="headerlink" href="#nn-4285" title="Permanent link">¶</a></h3>
<p><img alt="2102.010" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.010.jpeg"/></p>
<p>当年定远号的悲剧是时代的悲剧,</p>
<p>更是工业体系的悲剧,</p>
<p>看史料说:</p>
<p>北洋舰队从都是从欧洲采购,</p>
<p>无论技术含量/排水量都不比日本舰队差,</p>
<p>可惜当时清庭本身并没有对应工业体系支撑,</p>
<p>舰队中所有机器/配备只有很少部分可以自行维修,</p>
<p>主炮/炮弹也都不能自制,</p>
<p>导致平时训练也只能走操,</p>
<p>很少实弹,</p>
<p>怎么可能发挥原设计战斗力?</p>
<p>还是说 QQ 吧,</p>
<p>当初叫 OICQ 时,</p>
<p>明显就是对 ICQ 的山寨,</p>
<p>当时记得同时在用 ICQ/QQ/SINA Message/... 各种IM 都在用,</p>
<p>ICQ 是真好用,</p>
<p>简单的搜索随时可以找到人在澳洲/会PHP/能说中文的小姐姐去请教问题.</p>
<p>当然和现在非常火爆的 ClubHouse 一样,</p>
<p>在异常兴奋的状态中,</p>
<p>时间消耗的飞快,</p>
<p>却其实什么也没 got,</p>
<p>最多打字水平有所提高-> 那时可没什么语音/视频形式.</p>
<p>真正的经典,</p>
<p>还是得靠时间来检验,</p>
<p>现在 QQ 日活都过5亿了,</p>
<p>而其它同时期 IM 好象都死光了;</p>
<p>邓波儿 也是,</p>
<p>同时期童星也不少,</p>
<p>但是,</p>
<p>经过那么长年月,</p>
<p>能通过 CCTV 电影频道重新火起来的,</p>
<p>好象也就这么一位;</p>
<p>为什么?</p>
<p>对比米老鼠应该就知道原因了,</p>
<p>身材比例,</p>
<p>笑容,</p>
<p>行为...</p>
<p>简直就是行走的活米老鼠,</p>
<p>这一全球人类都无法产生恶感的形象模式,</p>
<p>其实就是人类婴儿专门长成的样子,</p>
<p>刻在基因中,</p>
<p>最能激发母爱的图形模式;</p>
<p>而且,</p>
<p>也只有 邓波儿 一路认认真真老老实实从影,</p>
<p>从政,</p>
<p>从来不折腾,</p>
<p>长年保持一个良好形象,</p>
<p>以致你想抺黑都难找到攻击点;</p>
<p>戏如人生,</p>
<p>这是将事业和人生融合的状态了,</p>
<p>必然致敬=> 重刷"卷毛头"</p>
<h3 id="nn-4286">呢喃/ NN 4286<a class="headerlink" href="#nn-4286" title="Permanent link">¶</a></h3>
<p><img alt="2102.011" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.011.jpeg"/>
谁偷了咱家衣服啊?</p>
<p>逗你玩儿.</p>
<p>嗨,这死孩子还逗你玩儿呢.</p>
<p>瘦伶伶一干净老头儿,</p>
<p>单人,</p>
<p>单口,</p>
<p>逗乐过多少人呢?</p>
<p>不完全统计,</p>
<p>至少42亿人次以上;</p>
<p>就连上天言吉祥的日子都这么喜庆儿.</p>
<p>类似忘不了的老艺术家,</p>
<p>都穷过,</p>
<p>穷出了艺德,</p>
<p>一辈子不敢松劲儿,</p>
<p>练功,</p>
<p>创作,</p>
<p>演出...</p>
<p>变成了习惯,</p>
<p>变成了生活本身,</p>
<p>不想其它事儿,</p>
<p>不争,不抢,不闹,</p>
<p>结果所有人都记住了认真说笑话的大师;</p>
<p>对比那些半路出家,</p>
<p>会了一两段就四处走穴挣钱的,</p>
<p>一首歌唱一辈子的,</p>
<p>最终虽然都身居高位,</p>
<p>却没人记得.</p>
<p>真真应了老话:</p>
<p>缺什么求什么;</p>
<p>可惜,</p>
<p>一般这种求总是求而不得,</p>
<p>反而只有认认真真简简单单去作事儿的,</p>
<p>忘记名利追求时,</p>
<p>名利反而找上头;</p>
<p>这就好比:心流 the flow</p>
<p>如果一心想进入心流状态,</p>
<p>那是无论如何都无法进入,</p>
<p>只有忘记状态的追求,</p>
<p>沉迷于当前的问题,</p>
<p>忘记自己和外界时,</p>
<p>自然就进入了心流...</p>
<h3 id="nn-4287">呢喃/ NN 4287<a class="headerlink" href="#nn-4287" title="Permanent link">¶</a></h3>
<p><img alt="2102.012" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.012.jpeg"/></p>
<p>诗圣是那年今天诞生的哈,</p>
<p>不过,</p>
<p>真人形象早已不可考,</p>
<p>但是,</p>
<p>在中国人心中,</p>
<p>就是那么熟悉,</p>
<p>几乎每位学生都 KUSO 过他的画像,</p>
<p>虽然,</p>
<p>后来真相暴露,</p>
<p>竟然是画家直接拿亲友团形象化用来的,</p>
<p>好在,</p>
<p>腹有诗书气自华,</p>
<p>作者的朋友们也无白丁,</p>
<p>都是领域大家,</p>
<p>气质上和古代各种圣贤并不差;-)</p>
<p>想说的是:</p>
<p>气质这种东西,</p>
<p>其实很好伪装的,</p>
<p>演员们终生练习的技巧就是瞬间抓住各种人物的气质,</p>
<p>通过训练/暗示/同化等各种方式/途径来完成合理表现;</p>
<p>可惜,</p>
<p>当代社会,</p>
<p>并不是有气质就能成功了,</p>
<p>关键还得是硬实力;</p>
<p>北斗</p>
<p>就是中国硬实力之一,</p>
<p>正好在刷:北斗 (豆瓣)</p>
<p>https://movie.douban.com/subject/27182713/</p>
<p>这部记录片,</p>
<p>实话,</p>
<p>濮存昕竟然成为亮点?</p>
<p>这实在忒本末倒置了;</p>
<p>国际空间频段最后一段可用导航频率,</p>
<p>中国必须和欧洲竞争,</p>
<p>最后在不到4小时就过期失效时,</p>
<p>北斗1号发回清晰信号,</p>
<p>完成反转,</p>
<p>这是常见美国大片的桥段哪;</p>
<p>可解说词一直没回答:</p>
<ul>
<li>什么是导航频段?</li>
<li>为什么其它频率不能用来导航?</li>
<li>什么是国际无线电管理协会?为什么这个协会可以指挥所有国家?</li>
<li>...</li>
</ul>
<p>CASA/中国航天</p>
<p>对比</p>
<p>NASA</p>
<p>这应该是第一部指导影视作品,</p>
<p>以后 CASA 也变成一个宇宙知名电影厂牌时,</p>
<p>大家才可能将所有高大上的感觉和CASA绑定,</p>
<p>而不是如此无感,</p>
<p>是的,</p>
<p>刚刚上传的图片, 一过屏,</p>
<p>现在已经回想不起来 CASA 的 logo 什么样了,</p>
<p>而 NASA 的 logo 几乎出现在一切美国科学幻想影视作品中,</p>
<p>特别是星际旅行中星盟的旗帜,</p>
<p>根本就是将 NASA 的 logo 转个角度而已.</p>
<p>北斗</p>
<p>其实就是中国宇航权益的门票,</p>
<p>有了北斗系统的经验,</p>
<p>中国制造很快就能建立起来太阳系系内部空间网络,</p>
<p>Musk 们想对火星领地进行遥控也得给北斗交网费才能获得流畅的通讯.</p>
<p>c'est la vie (´-ι_-`)</p>
<h3 id="nn-4288">呢喃/ NN 4288<a class="headerlink" href="#nn-4288" title="Permanent link">¶</a></h3>
<p><img alt="2102.013" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.013.jpeg"/></p>
<p>今年春晩开始前回顾中,</p>
<p>提及了陈佩斯,</p>
<p>这个佩斯,就是布达佩斯的那个佩斯,</p>
<p>因为,</p>
<p>出生时,老陈正好首次出国演出就在布达佩斯,</p>
<p>这是人生高光时刻,</p>
<p>值得纪念,</p>
<p>就变成了小陈的名字;</p>
<p>可惜,</p>
<p>佩斯离开春晩后,</p>
<p>能留下印象的作品越来越少,</p>
<p>虽然舞美越来越精致,</p>
<p>甚至于今年机械人/AI虚拟偶像都上了舞台;</p>
<p>依然无法形成共同记忆,</p>
<p>为什么?</p>
<p>或是说好作品应该有什么特性?</p>
<p>私人感觉,</p>
<p>好的春晩作品一定不是完美的,</p>
<p>而且一定非常自私,</p>
<p>会充分包含自己的独特思考;</p>
<p>如果追求完美,</p>
<p>面面俱到,</p>
<p>那么,</p>
<p>越努力成品越中庸乏味儿无趣;</p>
<p>小岳岳的歌曲串烧可以说是今年最能回忆的作品了,</p>
<p>这又是为什么?</p>
<p>大抵因为,</p>
<p>这段相声并不是对口,</p>
<p>而是将现场以至电视机前所有观众都纳入表演领域的群体创作了,</p>
<p>如果没有那么多一个开头就能无脑串下来的好歌,</p>
<p>无论小岳岳多萌多搞笑,</p>
<p>大家也不可能产生任何一丝触动的;</p>
<p>这应该就是相声中现场拿梗的技巧了,</p>
<p>拿的是春晩40年历史中所有共同记忆的梗.</p>
<p>哈,</p>
<p>这么一说,</p>
<p>这几年一直混在佩哥哥"好中文"写作班中最大的感动悟也非类似;</p>
<p>写作最大的困难,</p>
<p>并不是想象力,</p>
<p>而是控制力,</p>
<p>如果能精巧的使用社会上所有人都有的共同MEME,</p>
<p>创造出新鲜的故事,</p>
<p>却又能自然的夹入自己的私货?</p>
<p>这才是挑战.</p>
<h3 id="nn-4289">呢喃/ NN 4289<a class="headerlink" href="#nn-4289" title="Permanent link">¶</a></h3>
<p><img alt="2102.014" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.014.jpeg"/></p>
<p>今天,</p>
<p>情人节</p>
<p>纪念271年前可能因为爱情而死的一位帅锅?</p>
<p>逻辑上反正俺没想通怎么肥四.</p>
<p>不过,</p>
<p>可以肯定的是,</p>
<p>现在所有宅男真正情人:PC</p>
<p>的前身是75年前诞生的,</p>
<p>一开始主要是为了计算各种抛射武器的弹道,</p>
<p>后来有了通用计算机以及芯片后,</p>
<p>才慢慢拓展到生活方方面面;</p>
<p>当然,</p>
<p>PC 这个概念创造者,</p>
<p>国际商务机器公司比计算机诞生要早22年,</p>
<p>一开始是制造算盘的,</p>
<p>嗯哼,</p>
<p>严格的说是商用算盘,</p>
<p>不用背乘法口诀表的那种算盘,</p>
<p>只需要按下相关小棒,</p>
<p>然后蒙头摇动手柄就好,</p>
<p>一直摇到计算结果弹出来.</p>
<p>唉嘛,</p>
<p>这些懂也没什么用的知识太尴尬了.</p>
<p>还是说法子姐姐吧,</p>
<p>这位比俺大三岁的姐姐,</p>
<p>是影视歌三牺明星,</p>
<p>当年火的程度比那英要火很多很多倍.</p>
<p>对于中国观众,印象最深的应该是</p>
<p>"同在屋檐下"柏木小雪了,</p>
<p>当然,</p>
<p>大妈最心心念念的发型,</p>
<p>就是剧中当年江口洋介的披肩发了.</p>
<p>可惜...</p>
<h3 id="nn-4290">呢喃/ NN 4290<a class="headerlink" href="#nn-4290" title="Permanent link">¶</a></h3>
<p><img alt="2102.015" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.015.jpeg"/></p>
<p>41年前今天,</p>
<p>猴票发行,</p>
<p>当时毫无影响力,</p>
<p>虽然印数不高,</p>
<p>但是很多邮局滞销,</p>
<p>不得不要求职员主动认购;</p>
<p>没想到作为生肖系列邮票开端,</p>
<p>之后设计的还不如头一种,</p>
<p>慢慢在有心人运作下,</p>
<p>猴票价值火箭般窜高,</p>
<p>而四方联/整版等更加稀少的品类涨得比股票还高,</p>
<p>在很多穿越小说中,</p>
<p>都是主角翻身的第一桶金;</p>
<p>可惜,</p>
<p>对比 BTC 就知道,</p>
<p>人心的贪婪可以爆发出何等虚拟价值,</p>
<p>猴票这40年才涨了几万倍,</p>
<p>而BTC 们是无限哪...</p>
<p>正如94年联合国教科文组织指出的:</p>
<p>贫富差距实质上就是知识差距.</p>
<p>无法同意更多,</p>
<p>更加具体的情节在 76UP 中逐一揭示过了;</p>
<p>并不是穷人没有智商/情商/X商去学习掌握知识,</p>
<p>而是即便是掌握了知识也没有资本去应用知识;</p>
<p>何况,</p>
<p>多数情况下,</p>
<p>生活本身就已经耗尽所有精力,</p>
<p>没有学习动力了;</p>
<p>而最根本的动力,</p>
<p>其实就是对未来的信心;</p>
<p>比如 NED 历时70年,</p>
<p>整整三代人才完成编撰,</p>
<p>电影:编舟记</p>
<p>中那部"大渡海"才用了15年,</p>
<p>已经是日本速度了,</p>
<p>这期间,</p>
<p>编辑部成员,</p>
<p>要编辑之余,</p>
<p>还要生活,</p>
<p>还要结婚/教育后代/处理后事/...</p>
<p>真正能投入到编撰行为中时间,</p>
<p>每年不会超过4个月;</p>
<p>而依靠的工资,</p>
<p>全部等于是出版社为未来不知道多少年后才能出版的辞书,</p>
<p>先行垫付的,</p>
<p>这得对出版后的收益有多大信心,</p>
<p>才敢/才能这么多年持续投入哪.</p>
<p>换成普通人,</p>
<p>就等于,</p>
<p>整个家族将所有资源投入到一个人身上,</p>
<p>坚持70年,</p>
<p>终于供出一位大学生,</p>
<p>然后?</p>
<p>然后和世界上千万名大学生竞争,</p>
<p>不一定成功...</p>
<p>这种未来,</p>
<p>有什么人家愿意无怨无悔的无穷支持下去?</p>
<p>邪教都不敢这么玩.</p>
<p>所以,</p>
<p>怎么办?</p>
<p>无它,</p>
<p>平常心,</p>
<p>过好每一天,</p>
<p>不后悔,</p>
<p>一切才能慢慢好起来.</p>
<h3 id="nn-4291">呢喃/ NN 4291<a class="headerlink" href="#nn-4291" title="Permanent link">¶</a></h3>
<p><img alt="2102.016" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.016.jpeg"/></p>
<p>吴先生是世界上第一个获得绝对温度的物理学家,</p>
<p>只是为了证明"宇称不守恒理论",</p>
<p>人工制备了 0.01K "冰室";</p>
<p>也就是说无限接近 -273.15摄氏度,</p>
<p>这种温度中,</p>
<p>电子都不怎么运动了,</p>
<p>才能开展一系列量子物理研究实验.</p>
<p>注意,</p>
<p>这是在65年前,</p>
<p>虽然人类已经登上月球,</p>
<p>但是工业实力和现在相比还差很远,</p>
<p>类似核聚变等物理学前沿实验根本没有能力开展;</p>
<p>但是,</p>
<p>实验物理学家们,</p>
<p>就是靠无限想象力,</p>
<p>综合利用当时所有可行的工程能力,</p>
<p>通过精巧的实验设计,</p>
<p>完成几乎不可能的实验;</p>
<p>住前追溯,</p>
<p>光速的测定也就实验物理学的经典案例之一.</p>
<p>不过,</p>
<p>叫真的话,</p>
<p>现在所谓云原生,</p>
<p>也非常吻合实验物理学气质;</p>
<p>在计算机科学理论没有触及前,</p>
<p>因为市场和用户的需求,</p>
<p>系统工程上先强行用各种不知道原理的办法达到了效果,</p>
<p>然后,</p>
<p>在运营过程中,</p>
<p>通过收集和观察系统变化过程,</p>
<p>从中再抽象出新的软件工程学理论来,</p>
<p>已经是 IT 界常态了;</p>
<p>再拓展一点:</p>
<p>这就是 Pythonic,</p>
<p>先解决有冇问题,</p>
<p>再来优化;</p>
<p>好玩的是,</p>
<p>多数情况,</p>
<p>根本不用优化,</p>
<p>情况又进化到另外一个层次,</p>
<p>不得不继续 Pythonic 了.</p>
<p>嗯哼?</p>
<p>这好象也在说普通的人生哈?</p>
<p>永远没机会优化什么,</p>
<p>能平平安安活着就已经不容易了.</p>
<h3 id="nn-4292">呢喃/ NN 4292<a class="headerlink" href="#nn-4292" title="Permanent link">¶</a></h3>
<p><img alt="2102.017" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.017.jpeg"/></p>
<p>基于NT 技术的 Windows2000 在21年前的今天发布;</p>
<p>但当年并没升级,</p>
<p>直到2005年,</p>
<p>迁移到 Ubuntu 系统作为日常桌面系统,</p>
<p>都一直在使用 Windows NT Server 版作为笔记本日常系统.</p>
<p>为什么?</p>
<p>大约和今天大家习惯性不买 Apple 第一代 M1 机器,</p>
<p>就等第二代稳定版本一样.</p>
<p>这种自觉其本质就是穷+懒;</p>
<p>其实,</p>
<p>先烈们早已指出,</p>
<p>科技类产品每年更新,</p>
<p>永远买最新的最合算,</p>
<p>多出来的溢价完全能用领先的体验和节省下来的时间赚回来了,</p>
<p>何况关键产品也比较保值,</p>
<p>第二年新时,</p>
<p>上代产品正在热销,</p>
<p>以旧换新可以折算很多,</p>
<p>整体上等于每年嘦多支付很少金额就可以一直享受最先进产品;</p>
<p>前提是:</p>
<p>0: 有足够时间折腾上手</p>
<p>1: 有清晰数据备份机制,迁移不费心</p>
<p>2: 新体验新经验有稳定流量变现渠道</p>
<p>3: ...</p>
<p>否则,</p>
<p>辛苦积累起来的个性配置不是那么容易迁移的,</p>
<p>很多甚至于是绑定在某个旧版本工具上的,</p>
<p>根本无从迁移;</p>
<p>比如:</p>
<p>在 FireFox69 版本之前,</p>
<p>基于 UXL 扩展机制的一系列高品质插件中,</p>
<p>It's All Text</p>
<p>ScrapBook</p>
<p>Tree Style Tab</p>
<p>Tab Mix Plus</p>
<p>这几个拓展在之后,</p>
<p>各种浏览器拓展平台上,</p>
<p>都找不到对等插件,</p>
<p>实在是残念;</p>
<p>现在基本上每天打开浏览器都在以一种:</p>
<p>可能是最后一天能享受这种流畅体验</p>
<p>的感觉在小心使用了...</p>
<h3 id="nn-4293">呢喃/ NN 4293<a class="headerlink" href="#nn-4293" title="Permanent link">¶</a></h3>
<p><img alt="2102.018" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.018.jpeg"/></p>
<p>5年前的今天,</p>
<p>Apply Pay 落地中国,</p>
<p>在支付宝/微信的围城中,</p>
<p>这是多强悍的执行力以及远见哪.</p>
<p>但是,</p>
<p>俺想讨论的是丰田,</p>
<p>因为质量问题,</p>
<p>16年全球召回287万辆,</p>
<p>注意不是287辆,</p>
<p>是整整287万!</p>
<p>这是什么概念呢?</p>
<p>这些问题车辆光结构钢材就超过100万吨,</p>
<p>足够建造20舰辽宁舰了;</p>
<p>神奇的是,</p>
<p>丰田全球召回某款已发售车辆,</p>
<p>对应保证金和理赔金都是千亿日元级别的,</p>
<p>而且近年丰田因为质量问题,</p>
<p>海量召回隐患车辆并非仅此一次,</p>
<p>几乎每年都有;</p>
<p>亏这么多,</p>
<p>丰田竟然没倒闭?</p>
<p>因为,</p>
<p>在路上奔跑的丰田车保有量过亿,</p>
<p>而且召回的车也并不是整体报废,</p>
<p>而是更换问题零件后直接从4S店中回到市场中,</p>
<p>配合丰田神奇的零库存策略,</p>
<p>林林总总,</p>
<p>并没憾动汽车市场的地位,</p>
<p>整体盈利能力一点儿没减少;</p>
<p>毕竟从织机起家的丰田又不傻,</p>
<p>汽车只是其核心产业之一,</p>
<p>围绕汽车集团业务早已深入上下游各种产业,</p>
<p>比如,</p>
<p>为了发展氢气燃料环保汽车,</p>
<p>专门种植白薯并开始垄断白薯粉市场...</p>
<p>神奇的是,</p>
<p>日本这种集团企业不少,</p>
<p>比如YAMAHA 从乐器到发动机什么都制造,</p>
<p>还什么都制造的非常好,</p>
<p>这样的企业,</p>
<p>企业文化都没法儿定下来了哪...</p>
<h3 id="nn-4294">呢喃/ NN 4294<a class="headerlink" href="#nn-4294" title="Permanent link">¶</a></h3>
<p><img alt="2102.019" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.019.jpeg"/></p>
<p>6年前人工制造出来的元素Cn,</p>
<p>依据的理论是超重元素岛,</p>
<p>大致意思是:</p>
<ul>
<li>元素周期表是正确的</li>
<li>随着元素原子含量的增加,元素将越来越不稳定,会自动降解除为更轻的</li>
<li>但是,每隔一定原子数后,又会突然变的稳定起来</li>
</ul>
<p>这个梗,</p>
<p>很早就提出来,</p>
<p>但是,一直没被实验证明;</p>
<p>不过,</p>
<p>早在28年前,</p>
<p>大妈写的科学幻想小说:22世纪学校</p>
<p>就用过这个梗;</p>
<p>说是在测试潜力的自由梦境游戏中,</p>
<p>主角从裤袋拿出Jedi光剑干掉反派后,</p>
<p>现场科普了一下光剑制造原理:</p>
<ul>
<li>使用超重元素作为微型反应堆当能源</li>
<li>持续发射高能激光</li>
<li>剑身是柔性反光材料,激光在剑身内部封闭反射</li>
<li>一但撞击其它物体打破完全折射光路,就会穿透剑壁瞬间烧毁任何物质</li>
<li>回弹为原有角度剑身后,激光又封闭回剑内</li>
</ul>
<p>...</p>
<p>真能瞎想;-)</p>
<p>话说回来,</p>
<p>现在的共识是:</p>
<p>普通人一生中知识储量最丰沛的一刻,</p>
<p>就是高三最后一学期之时;</p>
<p>不过,</p>
<p>想象力一般更早,</p>
<p>在没有足够知识以及经验之前,</p>
<p>可能性是无究的,</p>
<p>随着社会经验的积累,</p>
<p>可能性的自动判定机制越来越完备,</p>
<p>也就等于,</p>
<p>越来越多潜在可能性被自动化判定不可能而放弃了;</p>
<p>太多事儿,</p>
<p>都是先有信心能作到,</p>
<p>然后,</p>
<p>才想办法作到的;</p>
<p>如果一开始就认定作不到,</p>
<p>那么,</p>
<p>自己一定自动发现越来越多证据,</p>
<p>阻止自己进行科学探索了.</p>
<p>所以,</p>
<p>想象力比实力更加重要.</p>
<h3 id="nn-4295">呢喃/ NN 4295<a class="headerlink" href="#nn-4295" title="Permanent link">¶</a></h3>
<p><img alt="2102.020" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.020.jpeg"/></p>
<p>可以负责任的说,</p>
<p>正是7年前脸书用190亿$收购 WhatsApp 这一断然行为,</p>
<p>将 Erlang 这一古老的语言重新带回舞台中心;</p>
<p>俺是07年才知道 Erlang 的,</p>
<p>在 ECUG 社区中,</p>
<p>当然没几年原先 Erlang中国用户组,</p>
<p>变成了 Effective Cloud User Group/实效云用户组,</p>
<p>缩写没变,</p>
<p>但讨论核心转向了;</p>
<p>当时,</p>
<p>就知道 Erlang 在很久之前就以一己之力完备解决了分布式系统永久稳定运行的问题;</p>
<p>通过 OTP 这一神奇的框架,</p>
<p>从根儿上重构了整个互联网行为模式;</p>
<p>虽然还是通过标准 TCP/IP 协议走数据,</p>
<p>可一切应用系统内部行为,</p>
<p>都通过 Erlang 独有的消息机制高效完成,</p>
<p>而且内置热部署能力,</p>
<p>也就是说不用停止服务就可以更新任意代码;</p>
<p>之所以能构造出永久稳定运行的分布式系统,</p>
<p>Erlang 生态依赖的是"脆崩"精神:</p>
<ul>
<li>
<p>世界是分布的</p>
</li>
<li>
<p>世界也是异步的</p>
</li>
<li>
<p>所以,运行中有任何问题,不纠结死掉就好</p>
</li>
<li>
<p>嘦重启的够快,对于用户而言就没有感觉</p>
</li>
<li>
<p>...</p>
</li>
</ul>
<p>以往 Erlang 因为根本就是为电信业务发明的,</p>
<p>所以,</p>
<p>也只有在电信行业中使用,</p>
<p>后来,</p>
<p>人家发现电信业务的特点:</p>
<p>迸发</p>
<p>允许一定小概率丢包</p>
<p>随机压力大</p>
<p>传递数据片段小</p>
<p>...</p>
<p>也都吻合网络游戏的特点,</p>
<p>于是才进入了游戏行业;</p>
<p>直到 WhatsApp 仅仅用30人不到的小团队,</p>
<p>却构建出能承载上亿日活的"小系统"时,</p>
<p>大家才惊叹,</p>
<p>原来 Erlang 还可以折腾其它业务;</p>
<p>而且纯函式语言的开发效率比其它过程式语言要高一个量级,</p>
<p>也在 WhatsApp 案例中得以充分体现;</p>
<p>只是 Erlang 怪异的语法还是阻止了很多人进入;</p>
<p>于是有了 Elixir ~ 由 Ruby 社区大佬出手,</p>
<p>结合 Ruby 约定式语言精神和 Erlang 函式语言精华,</p>
<p>构造出一个友好的和 Erlang 完全兼容的现代函式语言;</p>
<p>只是,</p>
<p>暂时还没有通过另外一个 WhatsApp 来证明自己,</p>
<p>不过,</p>
<p>已经有了完备的生态以及活跃的社区,</p>
<p>推荐大家体验.</p>
<h3 id="nn-4296">呢喃/ NN 4296<a class="headerlink" href="#nn-4296" title="Permanent link">¶</a></h3>
<p><img alt="2102.021" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.021.jpeg"/></p>
<p>陈老师无意间出山已经13年整了;</p>
<p>影视圈早已物是人非,</p>
<p>只留下传说;</p>
<p>而比当年事件中还要露骨的照片,</p>
<p>早已被大数据严密监察起来了,</p>
<p>比如和公安部联合根据网缀TT的数量精确锁定卖淫团伙等等...</p>
<p>而74年前诞生的宝丽来,</p>
<p>虽然后来进化到手机大小,</p>
<p>但是,</p>
<p>依然没能替代手机,</p>
<p>只是变成手机的一个默认功能了而已;</p>
<p>还是说: 共产党宣言 吧</p>
<p>在王佩老师的"好中文"写作班中,</p>
<p>才知识这本小册子对中文进化起到多大作用,</p>
<p>在中央编译局中,</p>
<p>反复咀嚼,</p>
<p>聚集整个中国当时文胆们的学识,</p>
<p>与时俱进,</p>
<p>几乎代表了每个时代中文写作最高段位;</p>
<p>私人推荐97年版本,</p>
<p>是真正完成普通话的文字,</p>
<p>又没有后来的网络用语,</p>
<p>和 KJV 一般大气,</p>
<p>同时又朗朗上口;</p>
<p>并以绝对认真的态度将170多年前才有的特殊职业也调查清楚,</p>
<p>并用中文简洁有力的当成解释;</p>
<p>可以说,</p>
<p>短短3万字,</p>
<p>并没尝试阐述复杂深刻的理论;</p>
<p>只是以一个正直的人的姿势,</p>
<p>在看穿历史发展趋势之后,</p>
<p>为人类负责而吐糟,</p>
<p>只是吐糟吐的太有理有力有节了,</p>
<p>骂人不带脏字儿巅峰作品.</p>
<p>推荐回味.</p>
<h3 id="nn-4297">呢喃/ NN 4297<a class="headerlink" href="#nn-4297" title="Permanent link">¶</a></h3>
<p><img alt="2102.022" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.022.jpeg"/></p>
<p>222年前:</p>
<div class="highlight"><pre><span></span><code>和珅跌倒
嘉庆吃饱
</code></pre></div>
<p>大家知道,</p>
<p>古代因为长期封建集权,</p>
<p>并没形成比较独立强大的金融体系,</p>
<p>不象欧洲,</p>
<p>国王最后因为欠银行太多又无力偿还,</p>
<p>不得不通过法案,</p>
<p>大宪章/Magna Carta</p>
<p>首次完成皇权的和平调节,</p>
<p>将资本主义这头神兽接引到世界;</p>
<p>对比中国帝王们,</p>
<p>就知道欧洲国王们多挫了;</p>
<p>虽然没有金融体系,</p>
<p>但商业发展没问题,</p>
<p>虽然有贪官截国税,</p>
<p>但零存整取没毛病...</p>
<p>这种没有制度,</p>
<p>用整人来替代宏观调控的办法,</p>
<p>太天才,太好用;</p>
<p>以至这么一代代完善操作下来,</p>
<p>至今商人在天朝依然没有什么安全感,</p>
<p>进而也导致即便是 IT 行业这种前沿产业中,</p>
<p>大佬们的行为依然非常急功近利;</p>
<p>相比外国稍微有点儿起色,</p>
<p>就冲百年老店去折腾;</p>
<p>中国的IT企业,</p>
<p>好象对 Bill 比喻的: 每个软件企业距离倒闭只有18个月时间;</p>
<p>坚信无比,</p>
<p>而且自动脑补到只有半年可活,</p>
<p>--> 如果增补不够快,没找到新赢利模式的话.</p>
<p>坊间形容创业:</p>
<p>什么都没准备,</p>
<p>先跳下悬崖,</p>
<p>半空中四处捞点东西,</p>
<p>组装成飞行器,</p>
<p>来完成自救;</p>
<p>那么中国式创业就是:</p>
<p>什么不用准备,</p>
<p>先跳下悬崖,</p>
<p>半空中练成凌波微步,</p>
<p>踏着其它同样下落的创业者们,</p>
<p>一点点回到岸上;</p>
<p>这种成功模式也只有中国才可能,</p>
<p>毕竟中国人多,</p>
<p>无时不刻有人听信忽悠跳了下去...</p>
<h3 id="nn-4298">呢喃/ NN 4298<a class="headerlink" href="#nn-4298" title="Permanent link">¶</a></h3>
<p><img alt="2102.023" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.023.jpeg"/></p>
<p>35年前,</p>
<p>中国成立气功科学研究会;</p>
<p>在ISO组织成立39年之时;</p>
<p>这种巧合非常的42;</p>
<p>其实,</p>
<p>冷战其间,</p>
<p>美苏双方对气功,</p>
<p>或曰"人体特异功能",</p>
<p>是真金白银下大力研究的;</p>
<p>毕竟一个洲际导弹基地的设立/建造/部署/运维/训练/升级/...</p>
<p>无时不刻在消耗海量国力,</p>
<p>但是,</p>
<p>集中资源,</p>
<p>养几名气功大师,</p>
<p>可以随时零成本/无痕/远程/卫生/高效/...的作掉关键人物,</p>
<p>达成战略平衡,</p>
<p>怎么想都是合算的;</p>
<p>好在国家一叫真,</p>
<p>民间各种大师都得跪,</p>
<p>用科学方式无法分解/量化/控制的,</p>
<p>都不是值得军事化的资源;</p>
<p>要说对气功的信心,</p>
<p>全球没有哪个民族比得过华夏了;</p>
<p>从春秋开始,</p>
<p>道家以"天人合一"为理念,</p>
<p>通过人体调用自然界各种力量就形成完备理论,</p>
<p>之后几千年持续探索/试错/实验/...</p>
<p>是真有成果的,</p>
<p>只是后来被金大侠们融合传奇故事,</p>
<p>凭空构造出一系列完备平行时空的中华武林体系,</p>
<p>进一步又被还珠楼主们分叉出了剑侠宇宙,</p>
<p>进入网络时代又有了剑仙/仙侠/玄幻/...门类的再创作;</p>
<p>对于气功这么朴素的能力,</p>
<p>大家感觉是理所应当的了;</p>
<p>结合科技最流畅/舒爽的,</p>
<p>印象中还是莫仁的"星戰英雄"严正推荐.</p>
<h3 id="nn-4299">呢喃/ NN 4299<a class="headerlink" href="#nn-4299" title="Permanent link">¶</a></h3>
<p><img alt="2102.024" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.024.jpeg"/></p>
<p>duang duang 的,</p>
<p>成龙就老到无法跳楼了;</p>
<p>网络热词,</p>
<p>其实就是以前流行语,</p>
<p>或是再早的成语;</p>
<p>只是,</p>
<p>网络背景中,</p>
<p>这种突然获得广泛认同并在日常交流中开始使用的词语,</p>
<p>触发/传播/过度使用/忽然消失</p>
<p>这种流程越来越快,</p>
<p>长寿点儿的词,</p>
<p>几年后还在用,</p>
<p>比如: 图样图森破</p>
<p>短命点儿的,</p>
<p>没两个月就无人使用了,</p>
<p>比如: 地命海心</p>
<p>这是为什么呢?</p>
<p>大概可能也许分成应该是因为:</p>
<p>古代一个热词想成功变身为成语有很多硬条件:</p>
<ul>
<li>0: 配套真实大事件/传奇/名人/...</li>
<li>1: 有高端人士认同/站台/主动传播</li>
<li>2: 有广大知识分子主动在各种文书中使用</li>
<li>3: 进入官方教材,民间底层知识分子被迫开始学习/记忆</li>
<li>4: 进入各种民间艺术话本,文盲百姓也混个耳熟</li>
<li>5: ...</li>
</ul>
<p>但是,</p>
<p>现在的热词,就没这么讲究了:</p>
<ul>
<li>无论在哪个社交平台中,某次一抖机灵</li>
<li>被网络放大,当天就被搜索引擎发现自动推荐为热词</li>
</ul>
<p>虽然,</p>
<p>互联网本身记忆是永久性的,</p>
<p>可浸泡在其中网民们的记忆最多只有7秒,</p>
<p>第二天还有人在使用/传播的,</p>
<p>一般都是自身包含丰富扩展可能性,</p>
<p>在不断和各种场景结合,</p>
<p>创造出全新热词,</p>
<p>连带将自身也打包随之再次传播而已.</p>
<p>所以,</p>
<p>现代传媒技术,</p>
<p>越来越多的 SEO 化,</p>
<p>利用/制造/组合/借用/...</p>
<p>网络热词来收集流量进而完成商业目标.</p>
<h3 id="nn-4300">呢喃/ NN 4300<a class="headerlink" href="#nn-4300" title="Permanent link">¶</a></h3>
<p><img alt="2102.025" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.025.jpeg"/></p>
<p>自古圣僧不少;</p>
<p>但是,</p>
<p>能进入日用汉语的都得有大缘法;</p>
<p>唐僧不用说了,</p>
<p>除了官方认证,</p>
<p>专业领域也的确有切实历史功绩,</p>
<p>更有对应衍生话本,</p>
<p>还传奇般成为"四大名著"之一,</p>
<p>即便是现代还持续有各种影视改编,</p>
<p>就连日本都拍过不止一次"西游记",</p>
<p>基本上是个中国人都知道二师兄的师傅是谁.</p>
<p>仓央就比较独特了,</p>
<p>完全是靠自身率性,</p>
<p>以及见好就收的身世,</p>
<p>给人间留下一组灵性作品,</p>
<p>将浪漫一下子拉到 MAX,</p>
<p>简直比一生专注浪漫鳮汤的徐志摩还要志摩,</p>
<p>又刚好出名在互联网初期,</p>
<p>一下子无数改编段子持久纷飞不绝,</p>
<p>电影中也不时冒出一段来,</p>
<p>初一听还以为是海外那个小国家的古典现代诗呢.</p>
<p>其实,</p>
<p>真正的浪漫还是应该象加特林/Gatling 机关枪那样,</p>
<p>一经问世就已完美,</p>
<p>无论后来者怎么折腾,</p>
<p>都没法突破原始大巧不工的结构,</p>
<p>不象其它自动武器都有复杂精致的枪机结构,</p>
<p>Gatling 只有一组枪管和最简单的机械闭锁结构;</p>
<p>完全通过外力来进行抛壳/上弹/封闭/击发的循环,</p>
<p>巧妙在这一循环的速度几乎是无上限的,</p>
<p>要不是供弹系统有上限,</p>
<p>Gatling 结构的枪/炮每秒击发100+次很轻松;</p>
<p>现在B站上遇到高能情节时弹幕铺满整个儿屏幕的现象,</p>
<p>在现实中,</p>
<p>嘦一组Gatling持续射击就可以达成,</p>
<p>这种可控"金属风暴"难道不浪漫嘛?</p>
<h3 id="nn-4301">呢喃/ NN 4301<a class="headerlink" href="#nn-4301" title="Permanent link">¶</a></h3>
<p><img alt="2102.026" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.026.jpeg"/></p>
<p>85年前大众汽车诞生;</p>
<p>不过,</p>
<p>这可能是历史上最成功的诈骗之一:</p>
<p>阿道夫亲自设计了品牌名/标志,</p>
<p>并主持设计了经典的甲壳虫外形,</p>
<p>以及最关键的:"零存提车卡"活动,</p>
<p>嘦愿意,</p>
<p>每个家庭每个月将工资一部分截留寄存到大众公司帐号上,</p>
<p>在一张精美的卡片上印个章,</p>
<p>集满一定数量,</p>
<p>就可以直接到最近的4S店提车.</p>
<p>而其实,</p>
<p>根本就没安排大规模生产,</p>
<p>而是将资金聚集起来生产坦克/飞机去了...</p>
<p>直到战败也没哪个普通人家有提取到自己的汽车.</p>
<p>"大众"</p>
<p>之所以使用这么亲切的名称,</p>
<p>不过是增加其可信度而已;</p>
<p>可以说当年德国不愧是精英集团,</p>
<p>几乎所有现代商业战技巧都在二战中灵活运用过,</p>
<p>嗯哼?</p>
<p>也可以说,</p>
<p>正是德国开创性实践各种全新商业手段,</p>
<p>才在战后,</p>
<p>通过人才的流动带到世界各地商业环境中得以继续发展.</p>
<p>比如:</p>
<p>战争后期资源匮乏,</p>
<p>各种武器制造必须基础材料不足,</p>
<p>但又不能大幅度缩减性能,</p>
<p>德国工程师们超越时代提出了各种节省材料/工时的办法,</p>
<p>同时又兼顾了整体武器效能,</p>
<p>当然,</p>
<p>这有一个极限,</p>
<p>否则,</p>
<p>日本的零式绝对天下无敌了.</p>
<h3 id="nn-4302">呢喃/ NN 4302<a class="headerlink" href="#nn-4302" title="Permanent link">¶</a></h3>
<p><img alt="2102.027" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.027.jpeg"/></p>
<p>第一位进入太空的人: 加加林</p>
<p>第一位踏上月亮的人: 阿姆斯特朗</p>
<p>第一位进入太空的美国人?的中国人?...</p>
<p>世界第一总是倍受关注,</p>
<p>其它,</p>
<p>基本永远是其它;</p>
<p>当然,</p>
<p>这只是对于大众,</p>
<p>而在专业领域,</p>
<p>可能前100名都是有意义的,</p>
<p>甚至,</p>
<p>一般从专业技能获利最多的,</p>
<p>常常不是世界第一,</p>
<p>而是更加努力的其它名次专家;</p>
<p>为什么?</p>
<p>当然是名声所累,</p>
<p>有句凡尔赛断言怎么说的?</p>
<p>欲戴其冠,必承其重</p>
<p>Heavy is the head who wears the crown.</p>
<p>声望~</p>
<p>就是自己同社会合谋一起构造的作品;</p>
<p>其维护/运营/使用/...都是有成本的,</p>
<p>就象股市庄家,</p>
<p>也不是随心所欲想怎么来就怎么来的,</p>
<p>因为,</p>
<p>体量够大时,</p>
<p>自己的行为直接对股价产生影响,</p>
<p>造成反效果;</p>
<p>最初中国制造就因为数量太大,</p>
<p>卖什么,什么大降价,</p>
<p>买什么,什么大涨价,</p>
<p>搞的特别被动;</p>
<p>好在,</p>
<p>无论哪个领域,</p>
<p>当市场占有率超过50%时,</p>
<p>也就有了定价权,</p>
<p>一下就能回到计划经济的感觉,</p>
<p>游刃有余也.</p>
<p>以上,</p>
<p>你看瞎扯,</p>
<p>真的可以从任何一点逻辑不清的走笔到任何方向上;</p>
<p>其实,</p>
<p>什么也没说;</p>
<p>真正想感叹的:</p>
<p>即便到今天,</p>
<p>地球上照样有地区坚守"割礼"之类陋习;</p>
<p>直接从物理层面关闭女性基本感知,</p>
<p>从而杜绝绿帽子,</p>
<p>这得多不自信才有的决策哪?</p>
<p>就好象对工资保密,</p>
<p>以免员工知道隔壁公司开的高,</p>
<p>人就跑一样...</p>
<h3 id="nn-4303">呢喃/ NN 4303<a class="headerlink" href="#nn-4303" title="Permanent link">¶</a></h3>
<p><img alt="2102.028" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2102.028.jpeg"/></p>
<p>86年前那次无意中的拉丝,</p>
<p>极大加速了人类社会的进化;</p>
<p>原先智人从树上下来,</p>
<p>退去体毛的原因?</p>
<p>说是可能有段时间,</p>
<p>是先入海,</p>
<p>变成海猿,</p>
<p>所以形成了独特的皮下脂肪,</p>
<p>又因为海洋中丰富/营养的食物,</p>
<p>加速了大脑的进化,</p>
<p>重新走上岸后才率先发明工具,</p>
<p>并用工具持续改造自身,</p>
<p>进而改造大自然成就地球霸主;</p>
<p>但是,</p>
<p>没有体毛,</p>
<p>却也极大的限制了人类活动领域;</p>
<p>在没有人造纤维之前,</p>
<p>棉麻类作物是唯一可再生纤维来源;</p>
<p>其它只能用皮毛,</p>
<p>或是蚕丝,</p>
<p>也都一样包含高昂的人工养殖成本,</p>
<p>难以规模化生产;</p>
<p>每年冬天都有一定比例人口被冻死;</p>
<p>但是,</p>
<p>Nylon 为先河,</p>
<p>人造纤维这个脑洞被打开后,</p>
<p>人类瞬间能从基本免费的空气和煤气以及其它工业原料中获得无限纤维了,</p>
<p>突然保暖问题得以彻底解决,</p>
<p>无论极地还是太空,</p>
<p>人类可以为自己设计制造无穷多种专用毛发,</p>
<p>可以适应任何气候和温度;</p>
<p>进一步的,</p>
<p>这种可工业制造替代所有自然物的脑洞,</p>
<p>不能对对人造器官没有影响;</p>
<p>甚至于,</p>
<p>有种永生方向是人体和机械结合,</p>
<p>将人所有脆弱的原生器官都替代为耐用可升级/替换的人工器官,</p>
<p>从而极大延长寿命,</p>
<p>同时也能拓展各种能力上限;</p>
<p>展现这方面设想最古典作品就是:</p>
<p>Frankenstein ~ 生物Cyber元祖</p>
<p>最经典作品应该是:</p>
<p>GUNNM</p>
<p>对应改编电影是:</p>
<p>阿丽塔:战斗天使 Alita: Battle Angel</p>
<p>其它永生方向还有:</p>
<ul>
<li>基因派</li>
<li>灵魂派</li>
<li>Cyber空间派</li>
<li>...</li>
</ul>
<p>得空再逐一吐糟.</p>呢喃s/ 21.012021-01-01T20:42:00+08:002022-07-10T10:49:10+08:00ZoomQuiettag:blog.zoomquiet.io,2021-01-01:/210101-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2021.01</p><h2 id="at-202101">呢喃 at 2021.01<a class="headerlink" href="#at-202101" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2101.001" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.001.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4245</p>
</blockquote>
<p>感谢卡西欧感谢CCTV感谢党...
能在儿时只比日本同晚20年就看到Atom,
只看过连环画的我们来说,
是颠覆性的世界;
囧的是,
为适应国内画书阅读习惯,
还专门将原著改为连环画版式,
森林大帝等也都被改;
多年后看到画框自由分割的漫画,
再次被震惊.</p>
<p><img alt="2101.002" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.002.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4246</p>
</blockquote>
<p>来珠海第8年,
才知道唐家湾那个唐家,
就是唐绍仪.
现代中国首任总理,
(虽然没当几个月)
旅美幼童出身,
说是那个时代少有的真正国际视野,
有基本正确世界观的国人,
只是从他角度,
很可能是整个世界都是错的,
无论怎么努力都看不到希望,
身处深渊即视感</p>
<p><img alt="2101.003" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.003.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4247</p>
</blockquote>
<p>去年明确人口负增长了,
所以,
二孩也立即认真开始推行了;
这就是民主集中制的优势,
嘦决定立即执行;
先不论地球是否撑得的住,
但是,
先有决议,
才能有对策,
以及各种技术/工程的展开,
心往一处使,
虽然问题在谁决定方向,
但心在一起时方向不重要了.</p>
<p><img alt="2101.004" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.004.jpeg"/></p>
<blockquote>
<p>呢喃+</p>
</blockquote>
<p>via: 要把真正重要的东西过成生活 <br/>
https://mp.weixin.qq.com/s/lcDYneFLTo32gWFQUXOmpw
和隔壁慢学校分享的非常象</p>
<p>俺没那么复杂,只有三如:</p>
<div class="highlight"><pre><span></span><code>如何安静的生存
如何宁静的生活
如何怡静的分享
</code></pre></div>
<p><img alt="00-4ask" src="https://ipic.zoomquiet.top/2022-07-10-210104-00-4ask.jpg"/></p>
<p><img alt="00-3merge" src="https://ipic.zoomquiet.top/2022-07-10-210104-00-3merge.jpg"/></p>
<p><img alt="2101.005" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.005.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4249</p>
</blockquote>
<p>以十爷问世为基础,
中国航空事业算是走上快节奏,
没几年3代->3代半->4代机,
一架架上天,
标准厚积爆发;
毕竟造飞机的用技术,
在造宇宙飞船中都有,
长城/神舟/天宫/..系列航天器的研发,
也连带推动航空器发展;
企业也类似:核心业务带动新业务.</p>
<p><img alt="2101.006" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.006.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4250</p>
</blockquote>
<p>还是说Morse呗:
虽说电报是继断式信号,
可信号是模拟连续的,
通过信号长短来识别;
稍微改进就可以直接承载语音;
但语音信号得由人来识别,
无论事先约定什么密令,
信息传输密度依然不高;
然后又回到继断式数字信号,
信息由电脑编译,
密度爆炸 Orz</p>
<p><img alt="2101.007" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.007.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4251</p>
</blockquote>
<p>Tesla在77年前凄凉去世;
以他为名的公司现在火爆全球;
一直有人劝:不要领先世界一整步,领先半步就好;
可是,
如果没有这种领先很多步的神人出没,
人类不知还要摸索多久;
太多研究当时看起来毫无商业价值,
多年过去才变成金矿;
总之尽可能活久些吧.</p>
<p><img alt="2101.008" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.008.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4252</p>
</blockquote>
<p>44年前总理鞠躬精粹了;
以往报姓名时,
总说:周瑜周公瑾那个周,
结果10个里有8.4个没听说过?
只好变成:"周总理那个周"
可见总理在中国民间影响力多深;
自古都在求圣贤,
可多数只是人前一套;
而总理这样一生无时不刻都吻合圣贤要求的,
太少见Orz</p>
<p><img alt="2101.009" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.009.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4253</p>
</blockquote>
<p>随着Job去世,
14年前那款初代iPhone被不断神化,
其实,
无论开创了什么,
受当时技术限制,
也就台能打电话的iPod;
但产品失败并不代表失败,
因为市场早已习惯从产品看到未来,
就象Tesla代表清洁能源,
本身交通工具属性早已不重要了Orz</p>
<p><img alt="2101.010" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.010.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4254</p>
</blockquote>
<p>原来高德纳和丁丁同天诞生.
而杨度<-真奇人;
比丁丁还神奇,
毕竟多数历险记中,
丁丁还是以记者的姿态经历了传奇,
并尽力将事件向好的方向推动一下;
而杨度是各种传奇制造者,
作为现代纵横家,
以一己之力牵动中国进行了各种尝试;
可惜过于和谐无法影视化.</p>
<p><img alt="2101.011" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.011.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4255</p>
</blockquote>
<p>前年音乐剧汉密尔顿非常火,
用rap形式来叙述当年立国英豪的事儿,
总感觉哪里有不对;
我们思想突破才有一国两制,
美国可一直是一国N制,
每个州法律都不相同的;
很敬佩他们这么能折腾;
推荐88年成书的:美国反对美国,
今天看也精确描述了美国本质 Orz</p>
<p><img alt="2101.012" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.012.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4256</p>
</blockquote>
<p>费马之后,
所有数学家应该都有一种冲动:
责令出版社将书边能留多大就留多大,
不得再有地方不够大证明写不下这种理由出现;
等等,
现在想想,
费马大定律诞生现场,
不就是经典的凡尔赛范文嘛?
当然,
这放在相声艺术中,
不过是普通的抖包袱而已;
社会社会.</p>
<p><img alt="2101.013" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.013.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4257</p>
</blockquote>
<p>世界首部彩色动画长片比俺还大一岁,
而印象更深的是"国王与小鸟",
故事一样简单,
可描述的世界比自然森林宏大复杂多了,
仅用黑白灰却表述出丰富的色彩/质感,
而且是模糊了时代的架空世界,
太深邃了.
这电影从47开始用了32年才真正拍完,
太难了 Orz</p>
<p><img alt="2101.014" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.014.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4258</p>
</blockquote>
<p>臭老九是64年前才允许回归人民行列的;
其实近来又重新开始看:"赤色黎明"
这部网络小说,
可以说就是将党史给穿越化了一下,
但应该是看过的所有类似小说中真正将什么是共产党说明白的,
每当焦虑时再读,
感觉象特殊材料上身,
能隔空吸收点原版共产党精神Orz</p>
<p><img alt="2101.015" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.015.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4259</p>
</blockquote>
<p>其实制作"历史上的今天"日历卡以来,
每个月都有类似某部/省/高官被查之类事件,
和294年前天字一号大老虎不同,
新中国之后其实不存在绝对意义上的大老虎,
几次严打/整风的收获,
却连 CCTV 都没上,
虽然涉案金额有的已经达到当年清廷半年收入了Orz</p>
<p><img alt="2101.016" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.016.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4260</p>
</blockquote>
<p>周树人可能还有人知道,
周作人基本没人听说了,
除非是近代史相关专业;
为什么?
中宣部说过...
还是说苏联太空对接吧,
这事儿难就难在超过人力控制能力,
试想控制两台时速超2.8万公里的航天器,
进行毫米级别的相对距离控制?
而且只能靠喷射气体来推动.</p>
<p><img alt="2101.017" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.017.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4261</p>
</blockquote>
<p>大力水手哪,
记得的人,
都是显露年龄了;
当年按时按点一定要看的还是米老鼠和唐老鸭;
大力水手并不在周日新闻联播前的黄金时段,
所以,
感觉很山寨,
后来才知道也是著名IP连续几十年了,
当然,
和国外观众感受一致:
波菜之外,
Olive最可爱 Orz</p>
<p><img alt="2101.018" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.018.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4262</p>
</blockquote>
<p>8年前首次基尼系数公开,
除了普及贫穷的经济学指标外,
不过再次证明了统计学并不算纯粹数学而是有丰富政治学成份咯.
另外,
汉城用了611年后,
被强行改为首尔,
但所有史料当然还是汉城;
所以,
大东亚文化圈的圈主,
其实还是中华上国;
可上国在哈日韩.</p>
<p><img alt="2101.019" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.019.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4263</p>
</blockquote>
<p>71年前,
新中国刚刚成立,
相声改进小组就成立了,
和后来绿色二人转类似,
将民间原创艺术体裁改良为国家需要的;
经过一番努力将一千多段传统相声,
和谐为不到300段,
依然没能阻止相声从人民喜闻乐见的艺术高速向非遗退化;
这是为什么呢?
GDG不知道.</p>
<p><img alt="2101.020" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.020.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4264</p>
</blockquote>
<p>观海同学11年前入主白宫,
呆足了8年,
建国虽然狂野的多,
最终只呆了4年;
还是赫本同学一直被深刻怀念;
反正每年今天,
总不学想再刷一次:罗马假日.
很明显,
导演已经拼命给派克加戏了,
甚至于整个故事都是从他角度来阐述,
但,真.无法忽视殿下啊..</p>
<p><img alt="2101.021" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.021.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4265</p>
</blockquote>
<p>微信发布10年,
每天有10.9亿次打开,
7.8亿次朋友圈进入...
昨天小龙同学用微信视频直播进行了一次分享,
认为微信只作了两件事:
连接+简单
为了简单小龙们思考了很多,
也尝试了很多;
幸运的是他们一直能尝试,
而其它同期产品都被简单打败了Orz</p>
<p><img alt="2101.022" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.022.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4266</p>
</blockquote>
<p>陈朝当年于今天灭亡.
纵观全球,
史料象中国这么完备又从无中断的文明,
没其它了;
可同时也造就出独一无二的善忘性格?
一方面,
文字上极其模棱两可,
任何事儿用中文一说,
几乎可以兼容所有情况;
另一方面,
历史上重要的事儿太多了,
没人愿意都记住Orz</p>
<p><img alt="2101.023" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.023.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4267</p>
</blockquote>
<p>昨天日历卡有错:熊出没首播当然是2012年;
也证明从去年3月开始连载日历卡是真手工制作;
当初为什么制作?
忘记了,
今年3月后是否继续?
随缘了;
其实,
这种小坚持,
收获最多当然是自己;
每个普通日子历史上却有这么多惊心动魄,
就不感觉在混日子了.</p>
<p><img alt="2101.024" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.024.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4268</p>
</blockquote>
<p>63年前核聚变就已在实验室成功过;
成本问题一直没商业化,
但不能否认人类已经掌握这一洁净能源技术;
说商业才是最好的慈善:
想来,
讨论的其实并不是慈善行为本身,
而是目的,
如果不能构成新的稳定商业模式,
在地经济状态没变化,
那么只能不救穷到永远..</p>
<p><img alt="2101.025" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.025.jpeg"/></p>
<blockquote>
<p>呢喃/ NN 4269</p>
</blockquote>
<p>大卫那话儿应该是全球最知名的,
可大卫本身到底是谁,
中国人知道的可能不多;
就象37年前信息高速公路提出时,
大陆还没几条高速公路,
随着高速公司在中国高速生长起来,
对互联网的误解也越来越深,
毕竟,
信息在互联网上和
汽车在高速公路上
根本没可比性.</p>
<h3 id="nn-4270">呢喃/ NN 4270<a class="headerlink" href="#nn-4270" title="Permanent link">¶</a></h3>
<p><img alt="2101.026" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.026.jpeg"/></p>
<p>3067年前的今天,</p>
<p>封神之战开始;</p>
<p>还是祖先们八卦之魂最专业,</p>
<p>一次战争的记录能演化出那么多故事,</p>
<p>以及神仙;</p>
<p>当然,</p>
<p>没有专业史官这种精确日期是根本无法推算出来的;</p>
<p>这就铸就了中国人异常清楚自己从何而来,</p>
<p>上下5千年清清楚楚明明白白;</p>
<p>根本没法骗自己,</p>
<p>当然也就无法骗别人说自己是万世一系什么的地上神...</p>
<p>不过,</p>
<p>这同时也反过来给中国人一种错觉,</p>
<p>那就是:</p>
<p>祖宗总是最NB的,</p>
<p>后来小辈都是混子,</p>
<p>无论怎么折腾都不可能超越祖先功业了;</p>
<p>很明显,</p>
<p>这不科学,</p>
<p>就算是姜子牙,</p>
<p>打死他也无法想象出人造卫星这类宇航设备,</p>
<p>可以从高空监察精度到1cm的地表甚至于地下资源;</p>
<p>比千里眼之流厉害多了...</p>
<p>所以,</p>
<p>孔子曰: "君子有三畏:畏天命,畏大人,畏圣人之言..."</p>
<p>是严密的从敬畏客观规律到主观臆想的一个过程;</p>
<p>怪不得用论言来治理国家从来就没落着好过;</p>
<p>最近CCTV大力拍摄的伪纪录片:"中国"</p>
<p>用华丽的旁白,</p>
<p>认真的舞美以及势大力沉的表演,</p>
<p>聚焦起来中国历史关键节点中人物群像;</p>
<p>非常PPT;</p>
<p>对比一下,</p>
<p>私人还是喜欢"大国工匠"一类工业党真纪录片.</p>
<h3 id="nn-4271">呢喃/ NN 4271<a class="headerlink" href="#nn-4271" title="Permanent link">¶</a></h3>
<p><img alt="2101.027" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.027.jpeg"/></p>
<p>岳飞/乐圣/国母/...就这么自然的联系在同一天;</p>
<p>不过,</p>
<p>俺还是说说电视机吧:</p>
<p>95年前人类创造了电视,</p>
<p>37年前家里才有了电视:</p>
<p>黑白的:</p>
<p>9吋,</p>
<p>成都牌,</p>
<p>苏联显像管(那叫个结实->直到今天通电照样工作)</p>
<p>5年后换为彩色的:</p>
<p>24吋,</p>
<p>长虹牌,</p>
<p>国产显像管(总是有雪花)</p>
<p>从94年上大学开始,</p>
<p>就基本不看电视了,</p>
<p>也就春晩按时瞻仰一下,</p>
<p>其它节目多数都在电脑屏幕上下载播放,</p>
<p>毕竟,</p>
<p>有快进权是对视频数据的尊重嘛;-)</p>
<p>20多年来见缝插针努力刷剧,</p>
<p>越刷越多,</p>
<p>感觉电视机的发明,</p>
<p>不在创造了一个更加亲民的维稳渠道/界面;</p>
<p>更大的意义可能在于:</p>
<p>创造了一种全新艺术门类,</p>
<p>比电影随意,比图书真实,比音乐丰富...</p>
<p>当然,</p>
<p>也最容易浪费时间.</p>
<p>虽然,</p>
<p>现在家里是小米64吋液瞐大电视,</p>
<p>但是,</p>
<p>很少打开看了,</p>
<p>甚至于,</p>
<p>因为长期不开机,</p>
<p>在珠海潮湿的环境中电路板发霉坏了一次;</p>
<p>也就在领导购买了类似会员后,</p>
<p>才不时用会员看最新电影,</p>
<p>毕竟,比去电影院要便宜;</p>
<p>而在家用智能电视刷剧,</p>
<p>有个很神奇的习惯:</p>
<p>1.5倍速播放;</p>
<p>没人受的了现在电视剧为了拉长时间,</p>
<p>专门用VOA/Special English 技巧念对白;</p>
<p>反而加速后有了正常人的感觉;</p>
<p>进而,</p>
<p>古装剧更加VOA,</p>
<p>人民就用2倍速播放来反击;</p>
<p>不由想到黄易小说星际浪子中描述的联邦女主席日常办公时,</p>
<p>脑机接口能上光速...</p>
<p>现在想想,</p>
<p>应该是当年对电脑流量并没统一度量,</p>
<p>现在看,</p>
<p>应该是数据流量过 Zb/s 才是人脑的上限了?</p>
<h3 id="nn-4272">呢喃/ NN 4272<a class="headerlink" href="#nn-4272" title="Permanent link">¶</a></h3>
<p><img alt="2101.028" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.028.jpeg"/></p>
<p>889年前我们就有火炮正规使用记载了;</p>
<p>但类似挑战者这种大炮杖至今也弄不出来;</p>
<p>甚至,美国自己也难以再现当年航天飞机了;</p>
<p>为什么?</p>
<p>并不是资金问题,</p>
<p>而真的是技术问题.</p>
<p>参考:</p>
<p>“阿波罗”登月发射倒计时 (豆瓣)</p>
<p>https://book.douban.com/subject/30295360/</p>
<p>“阿波罗”登月计划中的肯尼迪航天中心 (豆瓣)</p>
<p>https://book.douban.com/subject/30808658/</p>
<p>当年举国之力,不计成本投入星球大战计划时,</p>
<p>创造出来的各种技术,</p>
<p>今天也难以复现;</p>
<p>因为记录都在,</p>
<p>可是执行的工程师们都老去了;</p>
<p>而航天行动,</p>
<p>是个系统工程,</p>
<p>任何一个环节出问题,</p>
<p>都可以演变为无法挽救的灾难.</p>
<p>再参考:</p>
<p>工程师知道什么以及他们是如何知道的 (豆瓣)</p>
<p>https://book.douban.com/subject/26360501/</p>
<p>就知道,</p>
<p>科研和工程还是不同的东西,</p>
<p>前者研究为什么,</p>
<p>后者只专注搞出来,</p>
<p>至于为什么这样可以用,</p>
<p>以后再说.</p>
<p>所以,</p>
<p>Musk 用自己的第一性原理,</p>
<p>直接从原材料考虑,</p>
<p>用最简单粗暴有效的办法从头制造,</p>
<p>并回收成本比例占大头的运载火箭部分,</p>
<p>立即将成本降低几十倍;</p>
<p>难道 NASA 没有 Musk 的技术储备嘛?</p>
<p>当然不是;</p>
<p>难道中国航天总局没有 Musk 的技术储备嘛?</p>
<p>当然更加不是;</p>
<p>那么....</p>
<h3 id="nn-4272_1">呢喃/ NN 4272<a class="headerlink" href="#nn-4272_1" title="Permanent link">¶</a></h3>
<p><img alt="2101.029" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.029.jpeg"/></p>
<p>HeLa 细胞怎么来的,</p>
<p>以及大家都用她来作了什么,</p>
<p>资料很多随便一查就知道;</p>
<p>只是,</p>
<p>为什么 HeLa 细胞这么重要,</p>
<p>媒体们就语焉不详了;</p>
<p>其实,</p>
<p>就和我们编程时,</p>
<p>总是需要一个稳定的运行时环境一样,</p>
<p>比如你写:</p>
<p>print('Hallo, 世界.')</p>
<p>那么,无论你运行多少次,</p>
<p>都应该只输出:</p>
<blockquote>
<blockquote>
<blockquote>
<p>Hallo, 世界.</p>
</blockquote>
</blockquote>
</blockquote>
<p>而不应该一会儿是:</p>
<blockquote>
<blockquote>
<blockquote>
<p>Hello, 世界.</p>
</blockquote>
</blockquote>
</blockquote>
<p>一会儿又可能是:</p>
<blockquote>
<blockquote>
<blockquote>
<p>Hollo, 世田.</p>
</blockquote>
</blockquote>
</blockquote>
<p>那样的话,程序永远不可能编成功;</p>
<p>而生物实验是一样的需求,</p>
<p>每次作实验,需要基因一样,</p>
<p>对相同刺激反应一样的基本生物环境作为载体,</p>
<p>这样,才能进行不同剂量/菌种/温度/....尝试/对比,</p>
<p>来探索获得结论;</p>
<p>以往实验室,只能用小白鼠作实验,</p>
<p>其实,也不便宜,</p>
<p>因为那都是专门公司在无菌环境中精心培育出来的体格/基因/性格/...尽可能一致的实验容器;</p>
<p>但是,</p>
<p>小白鼠毕竟还是正常繁殖出来的,</p>
<p>无论生殖过程多么精密,</p>
<p>大自然一样自动触发各种突变,</p>
<p>每一次实验本质上都是在不同生理环境中进行的,</p>
<p>所以,</p>
<p>只能加大数量,</p>
<p>从统计数据上找到稳定的数值.</p>
<p>而 HeLa 细胞发现后,</p>
<p>这一完美/永久自我复制的"实验用增殖表皮癌细胞",</p>
<p>就好象生物实验的作弊器一样,</p>
<p>可以基本免费(只需要一点儿营养剂)永久使用,</p>
<p>每次使用时所有细胞是严密一致的,</p>
<p>DNA 每一个碱基对都是相同的,</p>
<p>而且只是细胞,并不存在具体器官,不用担心其它病变影响数据;</p>
<p>体积微小,</p>
<p>可以在自动化实验室中,</p>
<p>用很小的空间,</p>
<p>同时并行进行非常多/几万次实验...</p>
<p>是的,</p>
<p>这是生物实验领域人类最大的礼物,</p>
<p>同时,</p>
<p>也是人类发现的可以轻易毁灭人类的最强生物武器:</p>
<ul>
<li>因为 HeLa 细胞是永生的</li>
<li>所以 HeLa 细胞作为癌细胞是永远有感染性的</li>
<li>而且 一但感染和 HeLa 本人一样,将被无限增生的癌组织耗死</li>
<li>也就是说 HeLa 细胞随时可以无限传染给所有人并杀死宿主</li>
<li>...</li>
</ul>
<blockquote>
<h1 id="_1">细思恐极<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
</blockquote>
<h3 id="nn-4274">呢喃/ NN 4274<a class="headerlink" href="#nn-4274" title="Permanent link">¶</a></h3>
<p><img alt="2101.030" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.030.jpeg"/></p>
<p>传说有记者问斯褔第4次当选总统什么感觉?</p>
<p>老罗没说话,</p>
<p>热情的请记者先吃块三明志,</p>
<p>记者欢乐的吃了;</p>
<p>老罗继续真诚的请记者再吃块三明志,</p>
<p>记者虽然感觉意外,还是欢实的吃了;</p>
<p>老罗依然没说话,</p>
<p>诚肯的请记者还得吃块三明志,</p>
<p>记者已经饱了,但素, 介是总统请的,只能硬撑着吃了;</p>
<p>老罗就不说话,</p>
<p>给记者递上第四块三明志,</p>
<p>记者崩溃了,哭着说:"亲, 俺妥实吃不下噢..."</p>
<p>老罗这才慢悠悠的说:"这正是我的感觉 ;-)"</p>
<p>当然,</p>
<p>这故事很凡尔赛;</p>
<p>但美国对此的反应是立即对宪法打补丁:</p>
<p>发布修正案,</p>
<p>规定总统最多只能连任两届,</p>
<p>即8年;</p>
<p>这也就变成后来美国总统是否够好的标准,</p>
<p>如果你连8年都没呆足,</p>
<p>要不就是半途意外死了,</p>
<p>要不就是乱来被人民接受不能,</p>
<p>没继续投你票.</p>
<p>对比天朝...</p>
<p>嗯哼,</p>
<p>还是说 M14 吧,</p>
<p>这可是名枪,</p>
<p>出自大名顶顶的春田/Springfield Armory 兵工厂,</p>
<p>由 M1 自动化而来,</p>
<p>但是,</p>
<p>对比同时代 AK47 就太笨重了,</p>
<p>虽然因为精度高,</p>
<p>后来在 M14 基础上衍生出几款狙击步枪来,</p>
<p>可当年在越南战场上,</p>
<p>士兵宁愿丢了 M14 拣 AK47 来用;</p>
<p>对了, 同时丢下的还有 M16 ...</p>
<p>毕竟, 只有士兵才真正知道自己需要什么样的武器,</p>
<p>可惜,</p>
<p>一般国家列装的,</p>
<p>都是竞标中最便宜的那种.</p>
<p>这也是俺反复说的,</p>
<p>为什么 IT 行业比其它行业发展的快的根本原因:</p>
<p>所有程序猿使用的工具,</p>
<p>都是自己研发的,</p>
<p>不象其它行业从业人士手里用的,</p>
<p>都是其它行业非专业人士制造的.</p>
<p>阿弥陀佛~</p>
<p>( /<em>ὢ</em>\ )怪我咯~</p>
<h3 id="nn-4275">呢喃/ NN 4275<a class="headerlink" href="#nn-4275" title="Permanent link">¶</a></h3>
<p><img alt="2101.031" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2101.031.jpeg"/></p>
<p>63年前,</p>
<p>新中国刚刚成立9年,</p>
<p>美国就成功发射人造地球卫星;</p>
<p>( PS: 人类第一颗卫星是苏联发射的;-)</p>
<p>好在,</p>
<p>这事儿,当年我们没怎么宣传,</p>
<p>其实,</p>
<p>就算是宣传了,</p>
<p>可能绝大多数人民根本got 不到点儿.</p>
<p>否则,</p>
<p>美国之声敌台听的人可能更加多.</p>
<p>不深入分析这方面的落差;</p>
<p>只想推荐一个神人:</p>
<p>卫星推手,</p>
<p>科普圣手,</p>
<p>畅销小说家,</p>
<p>热门剧集编剧以及制作人...</p>
<p>Carl Sagan</p>
<p>本职是天文学家,</p>
<p>可其实是位未来学专家;</p>
<p>主持制作的13集电视片: Cosmos</p>
<p>翻译成10多种语言,</p>
<p>全球热播几十年,</p>
<p>当然,</p>
<p>现在找不到高清版本的,</p>
<p>好在内容都有在书中: 暗淡蓝点</p>
<p>https://book.douban.com/subject/26214114/</p>
<p>对民众形式正确的宇宙观作出了无法衡量的贡献;</p>
<p>本身除了学术方面的贡献之外,</p>
<p>还专门将这种宇宙观,</p>
<p>写成小说,</p>
<p>没想到竟然一气畅销: 接触</p>
<p>https://book.douban.com/subject/3105462/</p>
<p>对应改编电影是: 超时空接触</p>
<p>https://movie.douban.com/subject/1295647/</p>
<p>推荐先看书, 再看电影;</p>
<p>可以说是比三体更加深入的人类观察:</p>
<p>如果,</p>
<p>发现了外星文明,</p>
<p>人类会有什么反应?</p>
<p>虽然,</p>
<p>主要观察点是西方社会的,</p>
<p>但是,</p>
<p>对日本等亚洲文化的应激反应非常真实;</p>
<p>然后,</p>
<p>人变的更加平常心了,</p>
<p>毕竟,</p>
<p>自己可以随时抽离当前囧境,</p>
<p>升高到宇宙视角来思考,</p>
<p>当前这事儿,</p>
<p>算不算个事儿?</p>呢喃s/ 20.122020-12-01T20:42:00+08:002022-07-10T10:11:36+08:00ZoomQuiettag:blog.zoomquiet.io,2020-12-01:/201201-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2020.12</p><h2 id="at-202012">呢喃 at 2020.12<a class="headerlink" href="#at-202012" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="2012.001" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.001.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4214</p>
</blockquote>
<p>新浪网成立22年了,
有幸加入过4年,
印象最深的是SINA被解读为"支那"很是被diss过.
作为移动互联网先驱,
weibo当年是真统治了中国流量,
其中对2G手机的支持非常亲民,
当年去四川边远地区参加TEDx1KG乡村演讲会就是用彩信发图片上来的.</p>
<p><img alt="2012.002" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.002.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4215</p>
</blockquote>
<p>马恩的友谊一直被传诵,
可燕妮才是真英雄,
贵族出身,
反叛下嫁,
无法避孕7胎仅仅成人3位,
长年默默操持,
确保老马生活稳定;
直至积劳成癌而逝;
可想来,
这种沉默的伟大,
却是多数女性永久的工作,
为什么?
82年生的金智英
给出了部分原因Orz.</p>
<p><img alt="2012.003" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.003.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4216</p>
</blockquote>
<p>其实2G短信已经形成了后来移动互联网所有关键体验,
比如火星文,
其实就源自利用数字谐音的各种表达;
而群发短信群就是后来的微信群,
只是要花费不少费用,
但也没能阻止大家用短信拜年,
大年夜用海量短信将所有运营商堵死;
进发现只有华为设备能撑住于是...</p>
<p><img alt="2012.004" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.004.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4217</p>
</blockquote>
<p>3D打印当年太火爆,
但仅几年就习以为常了,
甚至在美剧中都只当背景而不是核心剧情;
这就是互联网威力,
加速概念/技术/产品/...的传播,
逼新技术快速落稳定出力点,
不再是一个可炒作的模糊概念.
当然,
信息流通是有成本的,
但能引发更大边际效应;)</p>
<p><img alt="2012.005" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.005.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4218</p>
</blockquote>
<p>55年刚实施五年计划时,
美国才开始人权解放,
当年抵制公交,
其实是抵制公交设黑人专座,
后来阐述这一事件电影都有好几部;
但更加令人敬佩的是歼-6,
55年过去,
依然矫健翱翔在我领空,
即便很多已是改为无人靶机,
但6爷这般坚强够米格设计局够自豪的.</p>
<p><img alt="2012.006" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.006.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4219</p>
</blockquote>
<p>留声机143岁了,
微波炉也75了;
前者变成手机最基础能力;
后者变成宅男续命关键法器;
当年可算高端厨具;
而且拥有非凡杀伤能力,
在很多电影中担当定时炸弹的角色;
而最初不过是电子工程中要解决的麻烦问题;
其实人生很多烦恼,
也是换个角度就海阔天高</p>
<p><img alt="2012.007" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.007.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4220</p>
</blockquote>
<p>五年计划是苏联先提的,
我们有样学样,
虽然不知道5年一周期是否最科学,
但至少比四年一选一调整的美国要长效一些;
坚持到现在马上14五要开始了,
好象有科幻小说尝试描述300五年计划时中国边疆故事;
其实,
几年不重要,
关键是保持不变,
其它才好挂靠.</p>
<p><img alt="2012.008" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.008.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4221</p>
</blockquote>
<p>梅厄传/DUKU出品,
看过,
沉浸过,
对犹太民族感同身受,
就象失去国土的炎黄子弟,
一样勤劳勇敢,
只是没有足够大的空间自我合解;
当然,
在中土,
天下就是中原,
其它皆为蛮夷,
所有革命都在折腾自己,
和犹太人流浪地球相比,
真说不上谁更惨烈;-</p>
<p><img alt="2012.009" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.009.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4222</p>
</blockquote>
<p>鼠标52岁了,
将人类踢入 WYSIWYG 世界第一神器;
但是,
Word 们在所见即所得场景中塞入太多工作状态,
对效率敏感的程序猿发现,
还是 WYTIWYG 最自在,
导致无鼠标操作变成一种同时兼备仪式感和效能的习惯;
好在触摸板进一步优化了鼠标.</p>
<p><img alt="2012.010" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.010.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4223</p>
</blockquote>
<p>其它行业拜的都是祖师爷,
程序界,
好象只能拜祖师婆:Ada,
早在1842,
还没有任何可编程机器的年代,
Ada 就在纸上完成了人类首个程序,
用以进行运算伯努利数,
以假想计算机为运行目标;
正是在Ada演示代码基础上,
巴贝奇才设计出差分机 Orz</p>
<p><img alt="2012.011" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.011.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4224</p>
</blockquote>
<p>威斯敏斯特法案的通过,
标志英联邦的重生,
大力给予原殖民地几乎同等地位,
当然,
原有全方位的影响力还在,
但有了更加平等的姿态后,
主要矛盾被转移,
民族运动立即消停了,
再通过金融和科技实力,
在高维继续殖民式控制,
可国际形象/关系大好,
没傻子.</p>
<p><img alt="2012.012" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.012.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4225</p>
</blockquote>
<p>休息,休息一下...
当年时间一到神州大地所有电视机都响起同一首歌.
而真实人物竟是俺老周家的,
本身其实那么丑丧,
简直反差萌;
千菊丸在真实历史中,
除了身世离奇,
作为日本临济宗大统领,
用一种前所未有的姿态推行改革并形成宗派,
完满:立功立言立德.</p>
<p><img alt="2012.013" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.013.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4226</p>
</blockquote>
<p>今天在双12隔壁,
也没什么宣传,
应该惦记的人不多;
也不知这种状态是否更好?
毕竟相比国耻日可视为自强的开始,
而死难者国家公祭日则是个无法改变的结果;
随着中日邦交正常化以及实力不断变化,
也没什么规定公祭仪式,
被忽视/忘却/模糊/...几乎是必然</p>
<p><img alt="2012.014" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.014.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4227</p>
</blockquote>
<p>有幸见过永乐大典残片,
在没有电子排版的年代,
任何超过300页的图书都是大工程,
而大典共22937卷,
光目录就有60卷.
以大明帝国资源全力编撰最终不过成书一部;
到今天存世只有800卷不到;
可想在没互联网的时代,
人类知识被反复重建多少次?Orz</p>
<p><img alt="2012.015" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.015.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4228</p>
</blockquote>
<p>华光之外,
我国发明出很多电子排版系统,
以前报社用的最多的都是 DOS 版 WPS 类似,
用特殊指令插入格式符来完成最终效果声明,
再编译后才能见到效果,
也就是 WYTIWYG 式,
不是后来 Publish 们所见即所得的;
所以,排版员是技术员.</p>
<p><img alt="2012.016" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.016.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4229</p>
</blockquote>
<p>AC米兰成立121年,
如果竞技体育是温饱后才能普及的娱乐,
那也就证明,
意大利很早就越过了小康线?
如果倾茶事件触发美国独立,
那么,
晶体管诞生则触发计算机真正腾飞,
从真空管到晶体管,
是电子制造技术指数级飞跃,
从厘米级高速连续空降到纳米级Orz</p>
<p><img alt="2012.017" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.017.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4230</p>
</blockquote>
<p>从王海到老罗以及...
打徦从英雄变成...
还是说飞机吧:
其实就在莱特兄弟几乎同一天,
欧洲好象也有重于空气的飞行器成功试飞,
可惜和巴拉巴西定律说的一样:
相同能力时,
社会认可决定成功度;
美国发达媒体助力下,
飞行史只有莱特兄弟;
电话也是Orz</p>
<p><img alt="2012.018" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.018.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4231</p>
</blockquote>
<p>新中国成立之时,
1984发表;
才70年小说情节基本都实现了;
而且无论集中制国家,
还是民主国家的互联网,
都不约而同演化出集权管理;
这说明,
互联网本身结构包含这一倾向,
和当初设计目标正好相反;
核心原由竟然是:信息互联竟然加速了社会分裂 Orz</p>
<p><img alt="2012.019" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.019.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4232</p>
</blockquote>
<p>美国最后一次登月48年前,
人类最后一次是44年前苏联月球24号;
中国独立登月却没什么宣传,
就好象中国高速公路/铁路已经地球第一,
也没什么宣传;
外媒应该不好意思,
我们自己也是;
不过咱们自己得清楚这些进步代表的实力;
简单说:火星已在党射程以内.</p>
<p><img alt="2012.020" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.020.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4233</p>
</blockquote>
<p>Macau 回归21年,
除了带来一首好歌并没什么变化?
的确,
有HK先例;
回归更流畅;
可各方面都不如香港的话,
能影响大陆的,
可能也就那一批沉迷赌博,
欠下海量债务的某类人物而已.
当然,
给舌类节目带来更多选择,
以及澳门市民有更便宜生鲜可选.</p>
<p><img alt="2012.021" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.021.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4234</p>
</blockquote>
<p>世界末日,
当年被奥秘杂志们渲染的无比严正;
结果,
还没千年虫闹的大;
也就美国死了人;
而56年前提出的4个现代化,
现在看都超额完成:
农业已工业化,
国防也科研化;
东风快递,使命必达;
嫦娥天宫,月球铲土;
只有教育随着扩招,
好象越来越Orz.</p>
<p><img alt="2012.022" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.022.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4235</p>
</blockquote>
<p>昨天冬至,广东大年,
结伙食饺时刚好讨论到,
当年上山下乡,
好象对当地文化/经济/科研/..
并没带来飞跃,
可其实,
通过知识青年下基层,
一举用先进生活习惯以及世界观,
当以往朝代一直无法触达的乡村政权真正掌握在党手中;
这才有后来包产到户的大变革.</p>
<p><img alt="2012.023" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.023.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4236</p>
</blockquote>
<p>古往今来,
目测杀伤人数最多的兵器可能也许就是AK47;
这枪完美体现了Pythonic精神:
简单/粗暴/有效;
简直将结构和功能完美融合在一起,
用最少零件配合提供最大机能以及合理威力,
更加神奇的是:
无论哪儿有磨损,
嘦没散架就能一直安全使用Orz</p>
<p><img alt="2012.024" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.024.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4237</p>
</blockquote>
<p>3K党155年历史了,
其实除了宗教组织,
很少有民间组织能这么长寿的;
想来,
可能是仇恨的力量总是比爱要大,
或说持久?
毕竟爱是付出,
恨只是发泄,
因为自己的无能而愤怒,
太容易推脱给其它人/物/事;
圣诞节的来由也很血腥,
只是我们不再关注根源.</p>
<p><img alt="2012.025" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.025.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4238</p>
</blockquote>
<p>张少帅当年决策现在看...够本儿.
而尉迟敬德才是真给力,
一下跨入千家万户--门口,
和中华文明融合.
从天花开始,人类消灭了很多以往束手无策的流行病,
同时又制造出更猛的.
PS:
昨天一闪神将23号日历卡又发了一次,
删除后又不能补发,只能今天外挂了</p>
<p><img alt="2012.026" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.026.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4239</p>
</blockquote>
<p>正好一年前疫情爆发,
摧生全新世界:
被隔离在家,
互联网变成必需,
而中国制造又刚好支撑的了世界需求,
于是跨境电商们突然爆发,
BTC 们也连带回暖;
俺则不觉坚持了:
KJV抄经,日历卡呢喃,公众号重新经营...
林林总总的折腾,有效扼制住焦虑Orz</p>
<p><img alt="2012.027" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.027.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4240</p>
</blockquote>
<p>昨天过圣诞节,
去隔壁渡假村自助餐;
果断,
吃到顶...
回想起来,
其实,自助餐赚的就是无论吃多少都吃不回本的集约式方案;
可为什么,
自己就是忍不住,
非要去挑战回本?
以至,
每次都吃到撑,
反而没有平时聚餐时乐趣...
穷人思维习惯?
Orz..</p>
<p><img alt="2012.028" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.028.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4241</p>
</blockquote>
<p>电影诞生125周年,
对比当年仅能记录现实片段,
现在电影工业已经可以自由创造任何可见光组成的任何影像,
唯一限制是人类文化/MEME 以及想象力了;
而且早已向单纯视觉+听觉构成的电影艺术形式发起冲击,
5D影院也到处都是了,
关键还是欲望无底线 Orz</p>
<p><img alt="2012.029" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.029.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4242</p>
</blockquote>
<p>当年"艳电"的艳来自韵目代日,
节约电报字数的音韵学应用,
随着文言文废止,
电报也没贵到令人发指后,
也就不用了;
随着互联网发达,
手写信件也慢慢消失,
每个人随时可以长篇大论,
可随着Twitter发明140字限制,
又好象回到当年惜字如金了Orz?</p>
<p><img alt="2012.030" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.030.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4243</p>
</blockquote>
<p>49年GDP只有123亿美元,
全球排名99;
2000年过万亿,
今天是全球唯一GDP恢复增长的国家,
而且排名第二,
距离第一名并不远矣.
记得小学时,
说起赶英超美很魔幻很不可能;
结果,
现在幼儿园开始学编程,
要从 C++开始 Py太低级 Orz</p>
<p><img alt="2012.031" src="https://ipic.zoomquiet.top/2022-07-10-zq42-today-card-2012.031.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4244</p>
</blockquote>
<p>熬过来了,感谢2020不杀之恩.
当年踩踏惨案今晩外滩应该不可能再现;
其实,
00年在常州时,
也盲目跟随群众半夜在主街道梦游了两小时,
因为传闻政府会放烟火庆祝千僖年;
结果,
当然是没有;
失望之余猛然惊悚:
原来,本科学历的自己本质上也还是名盲流.</p>呢喃s/ 20.112020-11-01T20:42:00+08:002021-09-04T20:52:30+08:00ZoomQuiettag:blog.zoomquiet.io,2020-11-01:/201101-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2020.11</p><h2 id="at-202011">呢喃 at 2020.11<a class="headerlink" href="#at-202011" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="201101" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.001.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4184</p>
</blockquote>
<p>Btc 诞生12年了,
引爆无数财富神话.
当然,
也有越来越多公司寻求30年区块链经验资深工程师了.
这说明什么?
无论哪个领域中的常识,
在公众领域都是神奇无匹的机密,
必须付费才可能知道的.
就好象当年 U2 没被打下来之前,
也是不可能击落的Orz</p>
<p><img alt="201102" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.002.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4185</p>
</blockquote>
<p>C919 大机项目...
讲真,延绵有百年了,
从冯如开始,
有自己稳定的飞行平台这一愿望从没放弃,
只是自身积累被航空发展速度抛开太远;
中间还被大环境放弃过一次,
整整20年的积累完全散失;
好在,
嘦下决心,
内部市场扩张足以弥补时间的错失 Orz.</p>
<p><img alt="201103" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.003.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4186</p>
</blockquote>
<p>史称3Q大战对中国互联网意义非常重大,
历史上第一次对互联网可能性领先了世界;
证明免费不等于赔钱,
而是将未来能赚到的先花掉来赢;
按照后来时尚说法就是:"降维打击"
根本不和你在一个能级中对抗,
而是跃迁至你根本无法理解的维度,
被屠时你亳无感觉Orz</p>
<p><img alt="201104" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.004.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4187</p>
</blockquote>
<p>奥观海~川建国~拜振华...
反正网友创造力是无穷咯.
只是提醒选举揭晓时,
一定有各地骚乱,
人在有关地区的网友千万别出门就好.
其实,
国际间很多关系,
早在83年前蒋百里那本小书:国防论,
都讲透了.
核心观点很简单粗暴:
中国有办法.
就这么笃定.</p>
<p><img alt="201105" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.005.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4188</p>
</blockquote>
<p>当年著名的png->jpg设计事件,
让世界首次知道中国网民创意无界限.
昨天"拜局已定"不知道能进牛津字典否?
生活永远高于艺术:
被管道煤气替代的煤气瓶,
走投无路时忽然在中东热销,
而且定单数量越来越大,
惊喜之下一调查:超口径自制火箭弹头用 Orz</p>
<p><img alt="201106" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.006.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4189</p>
</blockquote>
<p>救火这事儿从来不简单,
有燃烧上百年的媒田地下火..
海湾战争引发的油田大火更加难以扑灭;
但是,
办法总比问题多,
关键现在原油开采技术越来越先进,
对原油的处置也更加宽容;
用各种现代材料快速封闭,
或是用阻燃剂高速稀释..
都不影响日后重新开采.</p>
<p><img alt="201107" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.007.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4190</p>
</blockquote>
<p>直觉选出来5个历史事件,
哪个能安全嗯哼?
只有居里夫人了,
也有电影/传记揭示了两人一些反常家庭状态;
但对放射性的突破性研究成果,
足以令人忽视其它;
人无完人,
真要是常人,
不会如此持着将自己给毒死.
虽然,
和熬夜网游过劳死基本上相同性质 Orz</p>
<p><img alt="201108" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.008.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4191</p>
</blockquote>
<p>有道是:不作死不会死,
可同时:善游者溺/善骑者堕/医不自医/...
还有理发师不理自己...
不说逻辑问题;
单说高空挑战,
其实这种意外和每年"蜘蛛人"伤亡比率没什么不同,
关键这不是为了生存而冒险,
只是好玩,
足以证明中国强大到人民可以无聊了Orz</p>
<p><img alt="201109" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.009.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4192</p>
</blockquote>
<p>CDMA之母,
这称号太宅,
不过Hedy是真神,
最成功跨圈玩家,
已在逐一回刷历史名剧,
提醒:要习惯当年慢节奏,
欣赏黑白世界独有韵味;
当然现在最耀娱乐明星是建国同学:
4年前的今天当选,
而昨天刚刚连任没戏.
美国朋友也实锤兰色州狂欢庆祝也Orz</p>
<p><img alt="201110" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.010.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4193</p>
</blockquote>
<p>跳吧...你倒是跳啊?
当年追捕经典台词简直全人民都要用一下.
但要是从原著西村寿行找到隔壁同类小说家大薮春彦,
会惊讶日本社会文学开放性的.
思维上的跃迁可以立即看到完全不同的世界;
象复式记帐法,
526年前由教士为查帐而发明,
却促成了现代企业诞生.</p>
<p><img alt="201111" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.011.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4194</p>
</blockquote>
<p>还记得最初好象是复旦大学先提议光棍节,
还设计了宣传画:油条+鸡蛋;
没想到今天已经变成全球最大购物节;
"空老师"生日竟然也在同一天,
好神奇;
国际科学与和平周同光棍节并列,
为什么感觉在暗示了什么?
艺术源自生活,
生活高于艺术.
不得不相信了Orz</p>
<p><img alt="201112" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.012.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4195</p>
</blockquote>
<p>李老爷子终其一身,
坚持成功了一个习惯:客串自己作品的改编电影;
以致变成一种行规,
甚至于专门设计有3D人物可以永久乱入所有漫威影视作品,
真.永生.
可惜是的雨生同学,
当年唯一的嗓音从此绝唱,
而90之后根本无人知晓,
因为惠妹事件从媒体中被消失了.</p>
<p><img alt="201113" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.013.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4196</p>
</blockquote>
<p>大学时在担心千年虫,
各种文章满天飞;
今天才知道,
当年国家担心的是邪教问题,
还专门成立针对性协会进行整治.
即便是再20年前旅行者已经将人类目光拓展到土星环之外;
人心,
多数普通人最上心还是如何长命百岁,
毫不在意自己从事的可能正在危及后代生命.</p>
<p><img alt="201114" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.014.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4196</p>
</blockquote>
<p>秦灭亡和联想成立同一天;
人类历史这么短就有这么多巧合;
只能说历史和生活一样,
原本并没什么意义,
完全是看解读一方如何制造意义.
而缩小到每个人具体一生,
无论怎么渡过,
最要紧就是开心了;
反正都是一天,
是自己选择开心还是生气,
实在不行煮碗面吧.</p>
<p><img alt="201115" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.015.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4198</p>
</blockquote>
<p>我们计划生育政策被西方diss了半世纪,
可有效控制住了人口增长;
现在开放二胎,
又是在大数据支持下快速响应;
这其实就是民主集中制的优势,
完全混乱中生成的有序,
和强力设计成的有序,
哪种好?
并无一定之真理,
只有:"实践才是检验真理的唯一标准".</p>
<p><img alt="201116" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.016.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4199</p>
</blockquote>
<p>家里首台电视机12吋黑白,
84年凭票买到的,
苏联原装显像管,
直到今天都能工作.
首次夺冠时,
真心和电影中复现一致,
钻到别人家中硬生生看完的,
那时并不懂规则,
只是气氛太深刻.
如果没有当年那种氛围的体验,
电影夺冠中艰难反思和展望太难懂 Orz</p>
<p><img alt="201117" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.017.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4200</p>
</blockquote>
<p>平凡的世界
触动最大只有:
农村发展空间没有城市大,
社会背景资源太重要,
科学幻想可以有,可惜于事无补...
这类社会现实小说,
还是常书欣的黑锅/余罪更加活泼,
而且能读出希望,
毕竟面向网友写作和面向作协是完全两种世界观了,
即:现金流对职称派Orz</p>
<p><img alt="201118" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.018.jpeg"></p>
<blockquote>
<p>呢喃/NN 4201</p>
</blockquote>
<p>米奇92岁了,
除了给世界带来无数快乐之余,
也给世界带来史上最强悍专利诉讼军队.
想想秦桧也许就缺少这种军队,
不然作为宋体创始人,
立功/言没问题,
立德完全可以包装出来.
不觉叕想起:巴拉巴西成功定律,
首次以科学形式研究成功,
5条定律说透如何成功.</p>
<p><img alt="201119" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.019.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4202</p>
</blockquote>
<p>29年前星球大战的公布,
直接促成了后来"战略忽悠局"的成立;
所以,
生活永远高于艺术,
即便是科幻小说也从来没有提出这一构想过;
虽然有战略伪装部队,
但最多针对战役级别,
没想到以国家阵营为目标,
涵盖几乎整个地球的"卖拐"
最终竟然忽悠成功了:-O</p>
<p><img alt="201120" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.020.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4203</p>
</blockquote>
<p>解放前最大城市不过百万人口,
奥运前后就已有城市过千万了;
以往只有科幻小说中描写的超级城市我们有好几个,
问题也就接蹱而来,
仅仅给排水就已暴露一系列大城隐患,
谁能想得到在大城市当街被淹死的情况?
到质变有拐点,
一过,
情况极速恶化根本无从反应Orz</p>
<p><img alt="201121" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.021.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4204</p>
</blockquote>
<p>当初在色带打字机上养成机械键盘体验的;
8年前相关厂商无一幸免,
但在淘宝店中,
老式打字机还有强劲卖气,
只是多数并不在其功能,
而在其外形和蕴藏的逼格;
好在怀旧者大有人在:HanxWriter
是影星Hanx设计发布的应用,
能将平板变成打字机,赞;</p>
<p><img alt="201122" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.022.jpeg"></p>
<blockquote>
<p>呢喃/NN 4205</p>
</blockquote>
<p>等等?
49年前苏联就已经领先将人造物投放到火星了?
钢铁般的联盟真神奇.
好象还有三进制计算机,
命令行PS等神器...
为了给中国指出改革正确方向,
自己以身试错,
可惜了;
当然,
俺这也是后真相,
真相带不来流量;
媒体发现可热点真相才是正义 Orz</p>
<p><img alt="201123" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.023.jpeg"></p>
<blockquote>
<p>呢喃/NN 4206</p>
</blockquote>
<p>想说T碳来的,
可惜没懂怎么回事儿;
想说独秀的,
突然反应过来不得穿越21年;
那就只好说昨晚geek邦直播带货吧;
为什么俺吐糟风观众感觉够怼,
但自己课程没人报名?
为什么极客viya老罗式带货却有哗哗的付费?
想来,
果断还是流量为王没毛病 Orz.</p>
<p><img alt="201124" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.024.jpeg"></p>
<blockquote>
<p>呢喃/NN 4207</p>
</blockquote>
<p>69年前人类最大规模快闪活动创立,
一个多甲子以来,
中华民族基本体魄由一套持续迭代的优秀体操保卫住了;
但精神上并没对应体操来守护,
霑叔的不文集,
读来能把桌子拍碎,
充斥浓烈洒脱,
是真正才子游戏人间的姿态;
可惜没法象金庸那样通过故事感染全体华人;)</p>
<p><img alt="201125" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.025.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4208</p>
</blockquote>
<p>英国一向热衷于折腾不着四6的东西,
其实这才是自嘲的根源,
当年从一介岛国通过工业革命高速变身为日不落帝国后,
有足够资源支持所有探索,
但是,
科学还是有其内在逻辑的,
不是英镑可以绕过的,
所以,
失败的多了,
也就有了熟练的开解姿势,
保持心态继续.</p>
<p><img alt="201126" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.026.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4209</p>
</blockquote>
<p>55年前中国刚刚开始执行第3个五年计划,
法国就发射成功人造卫星了.
而30年后,
中国无论哪个国有企业一合并,
就是全球最大;
甚至单个游戏活跃人数比法国人口都多;
都是中国制造形成的边际效应;
只是,
维护AI时代的制造地位,
就不单是人力问题了:={</p>
<p><img alt="201127" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.027.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4210</p>
</blockquote>
<p>永远的BruceLee,
可以说是孔子之外,
地球人最熟悉的中国人.
单人将华人在世界的形象进行了提升,
这是后来几亿中国工人用了30年时间才部分作到的;
可想多伟大,
截拳道后来的自主发展离不了几大弟子,
而且是外国人为主.
总之比耗子尾汁要以德服人的多</p>
<p><img alt="201128" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.028.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4211</p>
</blockquote>
<p>疫情忽一年
PyCon不略过
深圳老友五加皮.</p>
<p>小时贺年卡写什么很苦恼,
后来仿照词牌写打油诗才算hold住;
再后来见到俳句,
才明白原来当初自己乱搞也是有排面咯.</p>
<p>今天 PyCon2020深圳场,
去现场,
看能挤入直播卟?
其实主要蹭饭去Orz</p>
<p><img alt="201129" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.029.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4212</p>
</blockquote>
<p>原来60年前,
叶绿素就已经合成出来了,
但是,
一直没能大规模工业应用起来?
这在
大卫·爱登堡/地球上的一段生命旅程
记录片最后,
给出拯救生物多样性中几个方案中,
也只反复强调可在生能源;
在中学设想过绿色瘤牛,
在动物体内用叶绿色素光合成肉更靠谱.</p>
<p><img alt="201130" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2011.030.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4212</p>
</blockquote>
<p>113号元素以及其它超重元素,
都是以往一直有预言的元素,
只是技术能力不足,
不足以制造;
人类再次被自己想象力折服;
这可能也是对环境问题不上心的底气,
技术发展速度远远超过人类作死速度,
那么,
技术总是能制造足够的后悔空间/时间,
这就是人类Orz</p>呢喃s/ 20.102020-10-01T20:42:00+08:002021-09-04T20:20:23+08:00ZoomQuiettag:blog.zoomquiet.io,2020-10-01:/201001-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2020.10</p><h2 id="at-202010">呢喃 at 2020.10<a class="headerlink" href="#at-202010" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="201001" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.001.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4153</p>
</blockquote>
<p>国庆长徦是08奥运之后才推行的,
结果现在变成习惯了;
但是,
基本挤成/黄金粥,周云蓬有歌专门描写这般感受.
所以,
多数理性同学,
选择在家休息,
顺便看学习以往一直没空学的.
蟒营®编程思维提高班/13期正在报名,
10号前报名再惠800 赶紧上车.</p>
<p><img alt="201002" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.002.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4154</p>
</blockquote>
<p>Timi 歌红人不红.
中国人应该没人从没听过她的歌,
只是极少人能反应过来是她原唱的.
为什么呢?
想来可能她的歌是标准下里巴人式的,
社会各阶层都不反感的,
同时印象也就不深;
就象米面,
经常吃,可也记不住到底是哪儿来的;
Python 也是Orz</p>
<p><img alt="201003" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.003.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4155</p>
</blockquote>
<p>双节优惠:
10.10 前报名,再减800元</p>
<div class="highlight"><pre><span></span><code><span class="mf">1.</span><span class="w"> </span><span class="n">有推荐人</span><span class="p">,</span><span class="w"> </span><span class="n">再惠</span><span class="w"> </span><span class="mf">500</span><span class="n">元</span><span class="w"> </span><span class="p">(</span><span class="n">如果找不到</span><span class="p">,</span><span class="w"> </span><span class="n">可用</span><span class="p">:</span><span class="w"> </span><span class="n">大妈</span><span class="p">)</span>
<span class="mf">2.</span><span class="w"> </span><span class="n">在校生</span><span class="p">,</span><span class="w"> </span><span class="n">再惠</span><span class="w"> </span><span class="mf">1000</span><span class="n">元</span>
<span class="mf">3.</span><span class="w"> </span><span class="n">复读5折</span>
<span class="mf">4.</span><span class="w"> </span><span class="mf">4</span><span class="n">人及以上组团</span><span class="p">(</span><span class="n">建议联系</span><span class="w"> </span><span class="n">大妈</span><span class="w"> </span><span class="n">走绿色通道</span><span class="mf">.</span><span class="p">)</span>
</code></pre></div>
<p>(注意: 以上优惠政策不可叠加 ;-)</p>
<p><img alt="201004" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.004.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4156</p>
</blockquote>
<p>武元甲,
每次见到这名字,
总感觉和霍元甲应该有什么关联;
其实是越南太袓般人物,
可在国人常识中根本不存在;
不由想到:
世界这么大,
历史上那么多国族,
每个都有其伟大人物,
但是当今主流意识根本不会关心他们;
为什么?
无它,一时一地格局不够.Orz</p>
<p><img alt="201005" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.005.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4157</p>
</blockquote>
<p>禁蒙面法撞到"守望者"剧集的蒙面法;
无法讽刺更多;
好比屠同学即便获得诺奖照样拿不到院士一样,
因为都是民主决议的;
而决议者根本就是政治运动员不是领域专家;
Linux 也是,
在整个儿世界都在追求微内核时,
Linus 同学用巨内核成就了世界 Orz</p>
<p><img alt="201006" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.006.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4158</p>
</blockquote>
<p>相比战斗民族飞机员一喝高兴了就直接穿桥洞玩,
我飞行员要进行严密计划+训练才敢进行一次的穿越就太刻意了;
其实普加乔夫眼镜蛇超机动本身也是一次意外随兴操作引发的,
结果变成了所有3代战机最高机动能力检验标准飞行动作;
所以说,
刻意永远比不过无意心流Orz</p>
<p><img alt="201007" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.007.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4150</p>
</blockquote>
<p>万家兄弟是真神,
完全靠自学掌握当时最先进动画技术,
不仅自己独立完成世界顶级作品,
还同时培养起新中国第一批..好象也是最后一批动画大师,
然后,
就没有然后了,
在老一辈动画专业人士老死光后,
中国动画就变成了雷锋的故事;
为什么呢?
目测銭闹的Orz</p>
<p><img alt="201008" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.008.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4160</p>
</blockquote>
<p>神钢这事儿,
是先在 大国重工/动力之王 网络小说中知道,
才又在日历卡中撞到的,
所以说,
生活永远高于艺术,
这么作死的行为艺术,
在没作出来前,
没人敢想;
只能说资本的力量可以扭曲一切人伦;
也可以反向理解:
如果不能无视人伦也就无法赢得资本Orz</p>
<p><img alt="201009" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.009.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4161</p>
</blockquote>
<p>美国总统获和平奖可以变成传统,
毕竟世界纠纷大半是合众国制造的.
想想300多年前大清都能接受外国人担当国家要职,
现在美国反而在所有关键岗位上禁止华人进入,
这是退化呢还是退化呢?
当然一切还是得看自己够铁
提醒:蟒营®编程思维提高班10.1优惠最后一天</p>
<p><img alt="201010" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.010.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4162</p>
</blockquote>
<p>长徦结束今天都要上班,
好消息是同时还是双十节,
虽然大陆不过这节,
但是商家们和海峡对面情绪同步;
蟒营®编程思维提高班 Python版/13期也是,
今天报名再优惠800元,
如果在是在校生,
21号前报名都能再减1000元;
毕竟学生花的都是父母钱.</p>
<p><img alt="201011" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.011.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4163</p>
</blockquote>
<p>庐山升龙霸...
感谢海南摄影美术出版社,
否则,圣斗士们可能不知何时才能进入中国少年想象空间;
神奇在战后日本原创出漫画这一艺术体裁,
并快速贡献出无数全新经典;
而文化大革命之后,
可能除了王朔,
其它艺术领域都冇创新;
好在后来有了起点,然后呢?..</p>
<p><img alt="201012" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.012.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4164</p>
</blockquote>
<p>邱少云当年牺牲是为了以后再无必要忍受烈火;
可惜42年后一声"领导先走"几百小学生一起被体验到烈士感受,
只不过他们能哭喊,但无人能听到而已.
对此事件的情绪周云蓬有记录在中国孩子专辑中,
当然,
网易云音乐中是没有"中国孩子"这首主打歌的...
Orz.</p>
<p><img alt="201013" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.013.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4165</p>
</blockquote>
<p>昨天日历卡没正常发布的原因,
当然是因为那个;
朋友劝:
...因为早年间微博出现过...的事,后边整体被添加到敏感词列表里了;
这种...少谈为上/一则意义不大/二则容易成靶子;
已经是第4次被伟大的..自动屏蔽了;
想知天命,
首先就得不逾矩哪 Orz</p>
<p><img alt="201014" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.014.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4166</p>
</blockquote>
<p>10年前俄罗斯重新开始人口普查竟然用了 170亿;
现在中国进行人口普查应该不用这么,
几天时间调用近期所有相关数据自动统计即可,
不用人工逐户盘查了,
毕竟在所有人流密集处都有监控,
出生时医疗信息也联网了,
即使是在野外隐居,
也有资源卫星在持续观测.</p>
<p><img alt="201015" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.015.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4167</p>
</blockquote>
<p>好象08之后,
中国很少有万人***行为了,
虽然类似广场舞的全民运动还有,
但是不会同一时刻集中在一个地点搞事儿了;
地球上也就只有朝鲜还保留这种专门技艺;
当然,
解放军内部大量人员统一调度经验还在;
只是老百姓有更多选择,
不再热衷于大规模"快闪".</p>
<p><img alt="201016" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.016.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4168</p>
</blockquote>
<p>从首次核爆到潜射运载火箭用了18年,
而从立项到核爆才用了不到5年;
在工程上潜射要复杂困难太多;
前者是一次性单一装置;
而后者是一整套作战体系,
涉及海量新设备/装置/器材/...
甚至还得先有卫星发射/遥控能力;
脚本和系统软件类似,
想想都累Orz</p>
<p><img alt="201017" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.017.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4169</p>
</blockquote>
<p>南开大学是周总理母校,
今年已经101年历史了;
学校并不是因为伟大而有吸引力,
相反,
因为校友的伟大才令母校有影响力;
俺对母校没什么贡献,
因为早被合并改名了;
有段时间,
中国各高校都在拼命更名,
以便听起来很高大上值得上;
然后各种重名 囧rz.</p>
<p><img alt="201018" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.018.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4170</p>
</blockquote>
<p>BBC也快百年了,
这种国家级别媒体想活着很简单,
嘦国家愿意,
国民也都习惯了;
但是,
正是这种僵化的BBC,
反而自我超越,
持续爆出各种神剧;
为什么呢?
英国人自黑性格使然,
对自己狠,
才能征服世界;
历史上无敌舰队被皇国海军击败就是靠这劲儿.</p>
<p><img alt="201019" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.019.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4171</p>
</blockquote>
<p>蟒营®编程思维提高班 第13期最报名后一天:
优惠政策:</p>
<div class="highlight"><pre><span></span><code><span class="mf">1.</span><span class="w"> </span><span class="n">有效推荐</span><span class="p">,</span><span class="w"> </span><span class="n">再惠500元</span><span class="o">/</span><span class="n">可写</span><span class="p">:</span><span class="w"> </span><span class="n">大妈获得</span>
<span class="mf">2.</span><span class="w"> </span><span class="n">在校生</span><span class="p">,</span><span class="w"> </span><span class="n">再惠</span><span class="w"> </span><span class="mf">1000</span><span class="n">元</span><span class="o">/</span><span class="n">出示学生证即可</span>
<span class="mf">3.</span><span class="w"> </span><span class="n">复读</span><span class="o">/</span><span class="mf">5</span><span class="n">折</span>
<span class="mf">4.</span><span class="w"> </span><span class="n">组团</span><span class="p">:</span><span class="w"> </span><span class="mf">4</span><span class="n">人及以上</span><span class="p">(</span><span class="n">直接联系商议</span><span class="p">)</span>
</code></pre></div>
<p>(注意: 以上优惠政策不可叠加 ;-)</p>
<p><img alt="201020" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.020.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4172</p>
</blockquote>
<p>王亚樵被暗杀,太吻合人设了;
毕竟:善游者溺/善骑者堕/医不自医/...
因为:各以其所好/反自为祸;
"淮南子/原道训"中早有断言;
但却无人逃脱,
为什么?
现在知道这又叫幸存者偏差;
因为擅长,
比旁人在问题场景中呆的要久,
那么出事概率就大Orz</p>
<p><img alt="201021" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.021.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4173</p>
</blockquote>
<p>420年前日本史上最著名/宏大之会战,
双方一共8万人,
还包括很多足轻;
而刚刚google透漏扛住的最大DDOS攻击是2.54Tb/秒,
涉及每秒6.9亿次请求,
主要来源是 IoT 僵尸网络,
也就是每秒策动上亿设备统一针对指定网站发出请求;
Orz</p>
<p><img alt="201022" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.022.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4174</p>
</blockquote>
<p>223年前还没飞机呢,
降落伞就发明出来了,
猜:从哪儿跳下来的?
这世界到底是乐观主义者推动的多,还是悲观主义者推进的远?
俺倾向是悲观充满主义者;
就象编程中测试驱动类似,
先虑败才能胜,
若没有万全的失败处置机制,
那么乐观主义者一切创造都无法普及.</p>
<p><img alt="201023" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.023.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4175</p>
</blockquote>
<p>中国造桥技术那真是传奇:
不说古代赵州桥们了,
毕竟建造技术并没流传下来;
建国时大江大河上的桥还都是列强为了自身利益制造的;
完全从零开始,
在海归指引下,
在集中资源办大事儿的模式下,
不惜成本完成了几座大桥,
过程中真正吃透技术,
积累60年才爆发.</p>
<p><img alt="201024" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.024.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4176</p>
</blockquote>
<p>程序猿节,
之前有5.12/11.11/等方案,
随着1024克/斤的梗被人民群众理解,
又因其它日子都被大品牌活动占用,
10.24就变成叕一个人造节日固定下来了;
过节值得想买点儿平时不好意买的,
对码农而言当然是键盘,
提取老文章分享选购经验:见下文</p>
<p><img alt="201025" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.025.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4177</p>
</blockquote>
<p>昨天"愤怒的香蕉"在公众号发表文章/'关于电影金刚川'
分享感触,才反应过来,
是志愿军出征50周年.
随着时间流逝,
当年各种资料解密释放出来,
对当年志愿军的战功就越来越不可思议:
约等于原始人扛木棍和坦克作战哪...
怎么就打赢了?
因为输不起...</p>
<p><img alt="201026" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.026.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4178</p>
</blockquote>
<p>现代足球诞生157年;
可蹴鞠在中国已经流传2300+年;
神奇在:
外国人总能重新发明中国首创的,
然后,
包装成产品重新倾销回来赚取超额利润.
点解?
将一种独特活动/事物,
变成普罗大众可以享受的商品,
这就是工业化的力量,
编程可能是下一种工业化.</p>
<p><img alt="201027" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.027.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4179</p>
</blockquote>
<p>不到1秒就可还原一粒魔方?
记录达成仅是位小学生;
只能说人类潜能无穷,
就看如何激发了;
这位小朋友用5年作到的,
并不是谁都能.
为毛?
没有兴趣支撑,
1万小时训练不过是学习行为表演,
学习并没真实发生,
可是为什么我们总是难以产生对社会有益的兴趣?</p>
<p><img alt="201028" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.028.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4180</p>
</blockquote>
<p>118年前德先生由梁启超通过马克思著作介绍给中国,
而他儿子梁思成,就是民国著名网红林徽因的老公.
而林徽因有位族叔就是因为绝笔"与妻书"而闻名天下的
"黄花岗七十二烈士"之一,林觉民.
为什么起点后来禁止穿越到21年之后?
就是因为关系复杂太容易出事儿.</p>
<p><img alt="201029" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.029.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4180</p>
</blockquote>
<p>老格林77岁重新上天并达成任务归来;
但大陆企业开始下意识拒绝35岁以上软件工程师应聘;
这是为什么呢?
应该是一个行业主流意识的共同选择;
但诡异在于软件行业中瘁死的都是35岁以下年青工程师;
原因可能和那个战斗机装甲调研故事类似;
幸存者偏差 Orz</p>
<p><img alt="201030" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.030.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4182</p>
</blockquote>
<p>飞雪连天射白鹿,
笑书神侠倚碧鸳.
有华人聚居之处一定有金庸小说,
金大师以一己之力铸就
武侠这一独有体系中华 MEME/模因,
古代儒家立言之功太稳了,
甚至于可能是单人原创俗语最多的作家,
侠之大者为国为民
这句断言,
很多人以为是古代将领说的呢Orz</p>
<p><img alt="201031" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2010.031.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4183</p>
</blockquote>
<p>很少有明星敢于在巅峰时期退圈,
山口百惠作到了,
而且得遇良人一直安静结守至今;
PyCon中国从2011年被激发开始,
今年已经第10届了,
疫情再复杂,
咱们有网络,
在线也要搞,
所以,
认同 Pythonic 的行者们,
你们准备好了嘛?
同去同去</p>呢喃s/ 20.92020-09-01T20:42:00+08:002021-09-04T16:19:21+08:00ZoomQuiettag:blog.zoomquiet.io,2020-09-01:/200901-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2020.9</p><h2 id="at-20209">呢喃 at 2020.9<a class="headerlink" href="#at-20209" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="200901" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.001.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4123</p>
</blockquote>
<p>原来网吧历史也有26年了,
几乎是两代人;
当年网吧可是高端消费;
现在变成低端娱乐场所了.
随着 iPad 们的发布,
网吧更加没什么吸引力了;
中国发展太快,
各行各业被迫在高速发展,
随时可能被内卷.
怎么办?
只有持续学习咯;
当然编程是个好开始.</p>
<p><img alt="200902" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.002.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4124</p>
</blockquote>
<p>文化大革命高潮时期,
ATM 就已经开始在国外部署了.
而我们还要30多年后才有.
之前有程序猿梦到死后被阎罗王指派要求给生死薄作个后台系统,
以便提高阴曹办事效率;
可见计算机给世界带来的变化,
远没到头.
太多神话中的神通,
都一一在电脑协助下实现了.</p>
<p><img alt="200903" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.003.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4125</p>
</blockquote>
<p>还有92年, 机器猫即将诞生;
忍一忍我们还是能获得一只的,
只是那么多神奇玩具是否能体验是另外一回事儿了;
当然,
按照奇点效应,
很大程度上是可能实现的,
嘦在此之前人类没有因为自己作死将地球炸没;
嗯哼?
Musk 计划若可行,
地球没有还有火星耍.</p>
<p><img alt="200904" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.004.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4126</p>
</blockquote>
<p>原来建国9年后,
才正式宣布领海权;
然后遭受各种挑衅,
不得不在海礁上架高脚屋艰苦驻守;
好在改开统一了思想,
大国底蕴自然发力,
不止于扩建永久性岛礁营地,
而是干脆上绞吸式挖泥船加速自然演化过程;
快速扩展到平方公里级别,
部署舰队什么的也很自然了.</p>
<p><img alt="200905" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.005.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4127</p>
</blockquote>
<p>CocaCola 竟有101年历史了;
原先只是卖咳嗽糖浆的小公司,
今天是代表人类文明的最强饮料企业;
领导了无数创新,
其核心配方 X 也成为人类最大谜雾之一.
一直健康成长,简直是神迹,
怎么作到的?
目测和那些千年株式会社类似:
不忘初心/方得始终</p>
<p><img alt="200906" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.006.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4128</p>
</blockquote>
<p>在获知2000年奥运会申办失败后,
中国立即成立08奥委会,
用8年时间上下求索达成使命.
而5G芯片的达成用时更加久远,
但也没有久到23年;
其实人类司法体系从来没有完善过,
各种神奇故事一直在发生;
但或是能给人以信心的可能就是,
司法在进步Orz.</p>
<p><img alt="200907" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.007.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4129</p>
</blockquote>
<p>Google 比金山软件成立还要晚整整10年;
但前者已在为人类而努力了,
可金山依然为生存在和盗版软件博斗;
这中间一定发生了什么不科学的事儿.
对比 WePhone 创始人被自杀,
好象明白了:
如果中国软件工程师,
会被这种 PUA 骗到死那么...</p>
<p><img alt="200908" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.008.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4130</p>
</blockquote>
<p>建国时八成人口是文盲,
而当时所谓识字就是能写出自己的姓名而已;
66年开始大规模扫盲,
很短时间里就将识字率提高到90%以上,
当然还是只能写出姓名而已;
现今拥有本科以上学历有2亿;
其中能编程的1%左右?
不会编程在AI时代得算文盲了吧?
学起来嗨.</p>
<p><img alt="200909" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.009.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4131</p>
</blockquote>
<p>蟒营®编程思维提高班 Python版/12期教师节优惠
还有最后42小时: 10号前报名, 再减420元</p>
<div class="highlight"><pre><span></span><code><span class="mi">1</span><span class="o">:</span><span class="err">有推荐</span><span class="o">,</span><span class="w"> </span><span class="err">再减</span><span class="mi">242</span>
<span class="mi">2</span><span class="o">:</span><span class="err">在校生</span><span class="o">,</span><span class="w"> </span><span class="err">再减</span><span class="mi">600</span><span class="err">元</span>
<span class="mi">3</span><span class="o">:</span><span class="err">组团</span><span class="mi">5</span><span class="err">人及以上</span><span class="o">(</span><span class="err">联系</span><span class="w"> </span><span class="n">ZoomQuiet</span><span class="w"> </span><span class="err">直接商议</span><span class="o">)</span>
</code></pre></div>
<p>(注意: 以上优惠不可叠加)
赶快报名</p>
<p><img alt="200910" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.010.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4132</p>
</blockquote>
<p>去年应景回顾:灵魂导师 RMS
https://blog.101.camp/dm/190910-rms-soul-master/
然后就引咎辞职了...
其实打小老爸就断言俺不适合当老师;
可世事难料现在运营网课;
其实反转了教学和学员一起开发而已
Orz</p>
<p><img alt="200911" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.011.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4133</p>
</blockquote>
<p>当年9.11时,
正在哈尔滨出差,
入夜微博突然炸锅,
那时还没功夫网,
随即就看到了外媒视频;
第一反应是窃喜:丫世界警察终于遭报应了.
现在随时有可能被拖入战争,
才后怕起来;</p>
<p>地球仅此一粒,
WWIII 必然是最后一次,
因为不可能有然后了 Orz</p>
<p><img alt="200912" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.012.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4134</p>
</blockquote>
<p>月饼事件其实直到今天都在影响着整个中华技术圈:
企业文化是什么?
文化指挥技术嘛?
技术漏洞有道德属性嘛?
技术人为毛会贪图月饼?
...
而飞飞团队发现 AI 会歧视,
也从旁证明,
无论什么技术,
终究是人来实现/执行/实施的,
无视人的属性必有问题.</p>
<p><img alt="200913" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.013.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4135</p>
</blockquote>
<p>64年前5M的硬盘得上吨重,
且体积大到装得下姚明;
现在5T的机械硬盘也不过一罐可乐的重量,
体积最多挤得下两包香烟;
可以说,
人类社会变化的速度,
远远超过了人自己的适应速度;
诱发各种不开心,
怎么办?
远离社会寻回平静,
或成为社会变化本身.</p>
<p><img alt="200914" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.014.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4136</p>
</blockquote>
<p>藏獒之前有郁金香/君子兰/邮票/...
太多抄到崩盘的市场了;
原因现在看很简单:击鼓传花,
嘦不砸在自己手里就是白赚;
毕竟从根儿上普通人实在没有什么投资机会;
现在的p2p/数字币/...很多也是相似故事在流通;
如何对抗?
自己有创造活动就不易迷妄.</p>
<p><img alt="200915" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.015.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4137</p>
</blockquote>
<p>一生悬命FAST,
一个人,
这一生,
能真正作成一件自己想作的大事儿;
太不容易了.
目测南老的故事,
以后一定有电影作品,
这简直就是真实的红岸;
只是,
国内相关报道比三体的还要少;
以及 SETI@home 和 BOINC
这才是更加科幻的现实.</p>
<p><img alt="200916" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.016.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4138</p>
</blockquote>
<p>140年前左中堂就为中国开办了第一家现代工厂,
仅4年就倒闭,
完备演示了现代企业的短寿;
老话也有曰:创业难/守业更难;
原因很反直觉:
创业本质上就是破坏~破坏掉旧东西,临时搞个能用的新玩意儿;
守业才是持续不断的建设~建设过程中最大的敌人却是自己呢.</p>
<p><img alt="200917" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.017.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4139</p>
</blockquote>
<p>26年前,
Musk 还没计划上火星时,
科学家已经尝试过人类在类地球重力中长期生存的可能性,
很小...
地球这个生物圈的形成太奇迹了,
我们竭尽全力也难以复制一小份儿出来;
所以有流浪地球之方案,
原因就是基本不可能人造出再一份完美的地球生态了 Orz</p>
<p><img alt="200918" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.018.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4140</p>
</blockquote>
<p>每年有多少城市会鸣镝示警?
在很多城市生活过,至今只在珠海听到过;
为什么是广东小城决定不忘当年东北触发的国耻?
你所在城市今天有拉响防空警报嘛?
欢迎留言注明;
另外,
担心如果女儿问起来为什么今天要响警报?
应该如何回答合适/合格/合理?
在线等...</p>
<p><img alt="200919" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.019.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4141</p>
</blockquote>
<p>原来 ;-) 也有38岁了.
益rz 就年轻的多;
这类网络语言在所有语种中都有快速迭代,
不过,
应该注意到,核心主体还是英文字母,
或是说 ASCII 码,
毕竟这是唯一不依赖任何特殊软/硬件就可以用标准键盘在所有系统中直接输入的;
文化垄断就在身边.</p>
<p><img alt="200920" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.020.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4142</p>
</blockquote>
<p>蟒营®编程思维提高班 Python版/12期报名最后42小时
可用优惠:</p>
<div class="highlight"><pre><span></span><code><span class="mi">1</span><span class="o">:</span><span class="err">有推荐</span><span class="o">,</span><span class="w"> </span><span class="err">再减</span><span class="mi">242</span><span class="o">(</span><span class="err">可写</span><span class="o">:</span><span class="w"> </span><span class="n">ZoomQuiet</span><span class="o">)</span>
<span class="mi">2</span><span class="o">:</span><span class="err">在校生</span><span class="o">,</span><span class="w"> </span><span class="err">再减</span><span class="mi">600</span><span class="err">元</span>
<span class="mi">3</span><span class="o">:</span><span class="err">组团</span><span class="mi">5</span><span class="err">人及以上</span><span class="o">(</span><span class="err">联系</span><span class="w"> </span><span class="n">ZoomQuiet</span><span class="w"> </span><span class="err">直接商议</span><span class="o">)</span>
</code></pre></div>
<p>(注意: 以上优惠不可叠加)
赶快报名.</p>
<p><img alt="200921" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.021.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4143</p>
</blockquote>
<p>当前漂流队是真艰苦,
而且触发原因不过是传说有国外探险队将首漂;
深层原因不过是不自信,
泱泱大国一条江被别人先涮过又如何?
甚至08年奥运会这种不自信才稍稍缓解了点;
真正消解,
还是各种中国大爷大妈全球刷支付宝刷好的.
所以,
民族的才是世界的 益rz</p>
<p><img alt="200922" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.022.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4144</p>
</blockquote>
<p>老友记10季236集,
其前之后再无同等剧集出现,
几乎一次性将现代城市中最温柔最真诚全部采集转化为最平淡的故事;
3对青年男女10年的普通日子,
为什么如此难以替代?
甚至于,至今还有网课鼓吹英语技巧就是刷透背熟 friends;
无它,克制尔
Orz</p>
<p><img alt="200923" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.023.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4145</p>
</blockquote>
<p>任天堂竟然成立131年了,
而且电子游戏硬件制造是在人家成立快100年时才进入的领域;
对比胡泳新书:"数字位移"中比对 Apple 分析 Sony 败落原因;
不胜唏嘘,
一个企业的所谓基因,
说穿了就是企业文化,
文化不过是制度,约束必须关心什么而已.</p>
<p><img alt="200924" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.024.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4146</p>
</blockquote>
<p>人民大会堂落成隔年,
核动力航母就下水了,
同时还有另外上百艘航母,
随时可以陈列天津港外,
轰炸天安门...
而且同年又是三年自然灾害,
中国还无法接受援助...
就是在那种压力下,
新中国扛过来了,
而且现在 GDP 超过世界绝大多数国家;
只能拜服.</p>
<p><img alt="200925" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.025.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4147</p>
</blockquote>
<p>C网可能多数人没听说过,
当年俺是常州网点管理员,
专门去成都培训过;
是有位教授用VB硬生生独立开发出来的:
基于电话线路,专有软件,人工运维形成内容网络;
面向企业,代为制作网站,人工/定时同步...
等于是由专用软件形成的企业黄页;
差点儿成势Orz</p>
<p><img alt="200926" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.026.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4148</p>
</blockquote>
<p>大和银行应该是 半泽直树 故事原型吧?
当年追剧时总感觉银行 晴天送伞雨天收伞 好象哪里有不对;
后来接触量化交易才发现,
这根本是最安全粗暴的保守策略;
简直就象巴甫洛夫发现的条件反射现象一样;
学习其实是打破先天各种条件反射,
训练出全新反射模式而已.</p>
<p><img alt="200927" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.027.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4149</p>
</blockquote>
<p>32年前咱们就有潜射东风快递的能力了哪.
怪不得那之后,
各种国际合作就多了起来,
也放开了国外旅游...
毕竟整个地球已经没什么力量可以简单扼制中国了.
这也是最强大的武器只能存在于发射架上的原理.
好象架构师也是类似这种作用;
反正有人撑,先浪起来.</p>
<p><img alt="200928" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.028.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4149</p>
</blockquote>
<p>今天就是孔子诞辰2567周年;
一个人能被纪念这么长时间,
就是儒家倡导的立德/功/言;
当然,还得依赖中国史官长期制度化记录,
这样才能形成日期实证;
这点其它多数民族根本作不到;
可惜中华史官也是家传手艺,
现代普通人编程学习中都不知道如何作笔记Orz</p>
<p><img alt="200929" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.029.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4150</p>
</blockquote>
<p>贺元帅的事儿不敢多谈.
就说天宫一号,
之前有网友猜这些给大家看的都是中国航天表面成果,
其实早在月背建造了战备基地和Nazi太空党以及美苏在制衡;
杨立伟们因为成绩不好才被露脸表演进展;
这类脑洞美剧都拍出来了:
太空部队 Space Force
益rz</p>
<p><img alt="200930" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.030.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4152</p>
</blockquote>
<p>66年前,
第一个5年计划还没结束,
美国核动力潜艇就服役了,
意味着至少再3年前已建造,
又再10年前就开始设计论证...
这种科技代差,
就象用手机去拍摄非洲土著
幸好,
互联网时代知识/技术流通比以往更流畅,
嘦用心就能赶超,
其中编程实在得练Orz</p>
<p><img alt="200931" src="https://ipic.zoomquiet.top/2021-09-04-zq42-today-card-2009.031.jpeg"></p>呢喃s/ 20.82020-08-01T20:42:00+08:002021-09-04T16:02:27+08:00ZoomQuiettag:blog.zoomquiet.io,2020-08-01:/200801-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2020.8</p><h2 id="at-20208">呢喃 at 2020.8<a class="headerlink" href="#at-20208" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="200801" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.001.jpeg"></p>
<blockquote>
<p>呢喃/NN 4092</p>
</blockquote>
<p>从甲午海战开始算,
中国军队仅用了80年,
就将科技树爬到足够高度,
自行制造出来了核潜艇;
这是当年水师提督丁汝昌绝对无法想象的武器,
从只能采购英舰到自主设计建造,
这期间付出的努力,
普通人是无法想象的;
却又是必须先想象才能追赶的.
故,想象力赛高.</p>
<p><img alt="200802" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.002.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4093</p>
</blockquote>
<p>无论拿破仑|希特勒以及其它,
历史反复证明过,
西方民主并不美好万能,
不过是人类探索至今可能是最不坏的一种.
毕竟沉默的大多数并不能简单的聚集成一个超越所有精英的智慧体;
当然类似 Neuralink 的脑机接口真正普及后,
也许肉脑网中能诞生人造超神?</p>
<p><img alt="200803" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.003.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4094</p>
</blockquote>
<p>151年前凡尔纳/海底两万里小说中提出的设想,
仅仅过了89年,
就被人类实现了.
要知作者所在时代远洋舰还是木制的,
而且人类第一艘潜水艇也叫"鹦鹉螺"号,
都是致敬仰凡尔纳;
If We Can Dream It, We Can Do It.
是真理.</p>
<p><img alt="200804" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.004.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4095</p>
</blockquote>
<p>蟒营®编程思维提高班 Python版/11期已开始报名;
特别优惠: 8.1.7 首周报名,再减420元;</p>
<div class="highlight"><pre><span></span><code><span class="mi">1</span><span class="o">:</span><span class="err">有推荐</span><span class="o">,</span><span class="w"> </span><span class="err">再减</span><span class="mi">281</span>
<span class="mi">2</span><span class="o">:</span><span class="err">在校生</span><span class="o">,</span><span class="w"> </span><span class="err">再减</span><span class="mi">600</span><span class="err">元</span>
<span class="mi">3</span><span class="o">:</span><span class="err">组团</span><span class="mi">7</span><span class="err">人及以上</span><span class="o">(</span><span class="err">联系</span><span class="w"> </span><span class="n">ZoomQuiet</span><span class="w"> </span><span class="err">直接商议</span><span class="o">)</span>
</code></pre></div>
<p>(注意: 以上优惠政策不可叠加;-)</p>
<p><img alt="200805" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.005.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4096</p>
</blockquote>
<p>还有多少人懂这梗?</p>
<div class="highlight"><pre><span></span><code>"千钧霹雳开新宇"
</code></pre></div>
<p>川建国一直在所有领域张贴大字报/发推;
神奇的是和当年效能类似.
TikTok 就将要...
嗯哼?
可能触动有关?
那么怀念一下最成功的天使投资者:恩格斯,
他的资助引发社会变化程度是其它所有投资人无法想象的Orz</p>
<p><img alt="200806" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.006.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4097
蟒营®编程思维提高班 Python版/11期已开始报名;
特别优惠最后一天: 8.1.7 首周报名, 减420元;</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="mi">1</span><span class="o">:</span><span class="err">有推荐</span><span class="o">,</span><span class="w"> </span><span class="err">再减</span><span class="mi">281</span>
<span class="mi">2</span><span class="o">:</span><span class="err">在校生</span><span class="o">,</span><span class="w"> </span><span class="err">再减</span><span class="mi">600</span><span class="err">元</span>
<span class="mi">3</span><span class="o">:</span><span class="err">组团</span><span class="mi">7</span><span class="err">人及以上</span><span class="o">(</span><span class="err">联系</span><span class="w"> </span><span class="n">ZoomQuiet</span><span class="w"> </span><span class="err">直接商议</span><span class="o">)</span>
</code></pre></div>
<p>(注意: 以上优惠不可叠加)</p>
<p><img alt="200807" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.007.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4098</p>
</blockquote>
<p>普通人关注到斯坦尼斯拉夫,
一般都是通过星爷的电影;
可见专家无论多著名,
想被大众知晓得有机缘;
互联网好象提供了这种渠道,
但想传播起来不比在专业领域中获得认可简单,
毕竟互联网的记忆只有7秒,
就看你为这7秒愿意付出多大代价了;
故,
有趣是种奇迹.</p>
<p><img alt="200808" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.008.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4099</p>
</blockquote>
<p>洪荒之力居然已经有4年历史了?
感觉就是昨天的事儿.
网络用语向现实加载的进程越来越快了,
或是说 cyberspace 和真实融合越来越快了.
以往说的网络素养也许已经落伍,
得有编程/数据思维,
以及对应能力.
否则被数字时代超越只能变成眷养对象Orz</p>
<p><img alt="200809" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.009.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4100</p>
</blockquote>
<p>新加坡成立比新中国还要晩16年,
当年作为亚洲四小龙之首可是整个中国要学习的对象.
当然,后来大陆经济学家们终于反应过来了.
坡村面积/人口/经济体量都不大,
无论怎么折腾对世界影响都有限,
而中国制造一上劲儿,
卖什么什么便宜买什么什么贵是一定的 Orz</p>
<p><img alt="200810" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.010.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4101</p>
</blockquote>
<p>18年前中国就已经完成过 CPU 设计/制造.
然而,
不知道为何,
至今,
民用计算设备中CPU 国产化还是没迹象,
当然,
硬要说台湾省制造也算中国的,那没问题了.
但是,
稍微了解芯片工艺就知,
仅光刻机中的步进电机制造难度都是神话级别的 Orz..</p>
<p><img alt="200811" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.011.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4102</p>
</blockquote>
<p>从斯巴达勇士到解放军,
中间有1500多年,
但是面对绝境时,反人性的信念以及绝然的坚持却是相同的.
蟒营®编程思维提高班 Python版/课程中,
学员刚接触编程,
无法忍受任何失败,
导致放弃;
还是太看轻编程.
错以为应该轻松,
改变这点,受益终身.</p>
<p><img alt="200812" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.012.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4103</p>
</blockquote>
<p>物理4大神兽:</p>
<div class="highlight"><pre><span></span><code>芝诺的乌龟/
拉普拉斯兽/
麦克斯韦妖/
薛定谔的猫;
</code></pre></div>
<p>全是思维实验产物,
也证明想象力最重要,
太多时候想不到就作不到;
编程就比较诡异,
编程思维所有人都具备,却都坚信自己不会,
而开始学又不编程,
无法忍受终端上给出的报错信息 Orz</p>
<p><img alt="200813" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.013.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4104</p>
</blockquote>
<p>当年亩产放卫星,站在稻苗上的孩子今天应该是耻于谈及当年行为的.
但是,
现在各种编程图书/课程已经从当年21天精通XXX进化到
"XXX看这一篇就够".
难道小编们不知道这是不可能的?
编程只能通过编程掌握,
就象只看视频/教材而不下水不可能学会游泳一样.</p>
<p><img alt="200814" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.014.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4105</p>
</blockquote>
<p>若要人不知,除非己莫为.
731部队在华实施半个世纪后,都能找到实锤,
可见凡是行为皆有痕迹.
这也证明实际上根本就没"隐私"这种东西,
只有成本过高而不值得探查的私人数据而已.
隐字当动词时指隐瞒权;
但越来越多有关自己但却无法理解的数据算谁的"隐私"?</p>
<p><img alt="200815" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.015.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4106</p>
</blockquote>
<p>美金是49年前的今天开始名不副实的.
但美国却是从那天开始真正腾飞的.
原因很简单:
那天开始,
美国梦才真正开始被经营,
之前单纯的追求市盈率,
然后发现市梦率更加伟大;
于是将货币和抵押货分离,
而绑定为对美国的信心;
而对信心的营造比制造容易多了.</p>
<p><img alt="200816" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.016.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4107</p>
</blockquote>
<p>还在用米4的举手.
这周"一往无前"演讲和图书发行很是火了一下.
而其实对于手机操作系统,
真没什么要求,
稳如狗就好.
毕竟大家平时用的并不是OS,
而是那几个日常应用而已.
MIUI发展至今也没敢和原生安卓相差太多,
唯一不变的还是专心发烧.
益rz.</p>
<p><img alt="200817" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.017.jpeg"></p>
<blockquote>
<p>呢喃/ Nn 4104</p>
</blockquote>
<p>国家层面的三角债从改革开始用了14年才基本清理完毕.
而普通人每天都也都被迫应对经典现实三角债:
目标-能力-资源
一般情况下无法短期进行提升的只有能力,
而能快速降低要求的当然是 目标-资源
导致多数人一直在坠落,
毕竟最不费事儿.
怎么破?持续学习吧</p>
<p><img alt="200818" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.018.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4109</p>
</blockquote>
<p>80年前,
三年自然灾害期间,
美苏先后就已部署了实用侦察卫星,
中国无论哪种导弹都无法防止每天定期太空窥探.
好在只有少数人知道这个事实,
多数还在挣扎求生存.
技术代差形成的对比就是这么魔幻.
好在我们学习能力是无限的,
嘦想总是能理解并追赶上
Orz</p>
<p><img alt="200819" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.019.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4110</p>
</blockquote>
<p>未来已经来/只是不平均.
早在13年前,
海湾战争中武装机械人就已投入实战;
Tesla 自动驾驶也是那年开始研发,
真实上路已有6年;
可见嘦进入 Cyber 世界,
能力就能高速迭代.
问题只是:如何将现实问题拉入电子世界?
这才是程序员真正魔力所在.</p>
<p><img alt="200820" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.020.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4111</p>
</blockquote>
<p>无论孔明当年多聪明,
也不可能想象得出1839年后,
人类能制造出炸平整个城市的单一武器.
正如 Clarke 第三定律所曰:
任何足够先进的技术都无异于魔法.
但是技术在高速发展,
不想被超越变成生活在现代的原始人,
只能继续学习,
跟上时代
( ̄▽ ̄)</p>
<p><img alt="200821" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.021.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4112</p>
</blockquote>
<p>123年前 Heroin 刚刚发明时,
是作为非处方药甚至是保健食品进行海量发售的,
类似的作死行为还有 镭 ,
当初如果化妆品/食品中不声明含 镭 根本卖不火.
可见商家为了利润多么狂妄,
人民的眼睛是多么"雪亮".
毕竟人们习惯只看到自己想看到的Orz</p>
<p><img alt="200822" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.022.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4112</p>
</blockquote>
<p>蟒营®编程思维提高班 Python版/11期
最后42小时报名
系列优惠:</p>
<div class="highlight"><pre><span></span><code><span class="mi">1</span><span class="o">:</span><span class="err">有推荐</span><span class="o">,</span><span class="w"> </span><span class="err">再减</span><span class="mi">281</span>
<span class="mi">2</span><span class="o">:</span><span class="err">在校生</span><span class="o">,</span><span class="w"> </span><span class="err">再减</span><span class="mi">600</span><span class="err">元</span>
<span class="mi">3</span><span class="o">:</span><span class="err">组团</span><span class="mi">7</span><span class="err">人及以上</span><span class="o">(</span><span class="err">联系</span><span class="w"> </span><span class="n">ZoomQuiet</span><span class="w"> </span><span class="err">直接商议</span><span class="o">)</span>
</code></pre></div>
<p>(注意: 以上优惠不可叠加;-)
报名统一全款付费,报名结束后退惠.</p>
<p><img alt="200823" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.023.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4114</p>
</blockquote>
<p>蟒营®编程思维提高班 Python版/11期\
报名最后一天;
系列优惠:</p>
<div class="highlight"><pre><span></span><code><span class="mi">1</span><span class="o">:</span><span class="err">有推荐</span><span class="o">,</span><span class="w"> </span><span class="err">再减</span><span class="mi">281</span>
<span class="mi">2</span><span class="o">:</span><span class="err">在校生</span><span class="o">,</span><span class="w"> </span><span class="err">再减</span><span class="mi">600</span><span class="err">元</span>
<span class="mi">3</span><span class="o">:</span><span class="err">组团</span><span class="mi">7</span><span class="err">人及以上</span>
</code></pre></div>
<p>(联系 ZoomQuiet 直接商议)
(注意: 以上优惠不可叠加;-)
统一先全款付费,报名结束后退惠.</p>
<p><img alt="200824" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.024.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4115</p>
</blockquote>
<p>世界唯一不变的就是变化了...
小时死记的太阳系9大行星,
早已没了冥王星,
原因在人类认知能力和装备在高速发展,
越来越多超越自然感观的发现了,
通过发明工具,
人类无限拓展了感知能力.
软件是作为倍增器而作用的,
因为能将物质世界抽象为信息了 Orz.</p>
<p><img alt="200825" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.025.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4116</p>
</blockquote>
<p>Linux 系统发布整整29年了,
可感觉不止;
第一次知晓在97年,
购买发行版在99年,
首次自行安装成功却到01年了.
真正日常使用是04到11年,
最后还是入了 mac 教,
各种习惯/配置倒都是从 Ubuntu 继承过来的;
感恩 Linus .</p>
<p><img alt="200826" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.026.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4117</p>
</blockquote>
<p>"表叔"事件教育我们,
监控继续加强,
总有一天人类全体将置身于不间断监察之中.
到时就算学会🐢息术也没用,
毕竟红外/次声波等视觉外探测技术能同时进行,
除非控制自己的潜意识以及梦境,
否则,
一切反社会思想都将扼杀在爆发前.
此般大同世界尔等可持否?</p>
<p><img alt="200827" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.027.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4118</p>
</blockquote>
<p>北图竟有108年历史了;
不过多数时间并不接待普通市民而已.
其实进入3G时代后,
图书馆的意义已经不大了;
google 图书计划虽然遭到抵制,
但是已经高速完成了几千万册图书的电子化;
有力的证明了如何解放"被禁锢在无数图书中人类智慧";
难道不是?</p>
<p><img alt="200828" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.028.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4119</p>
</blockquote>
<p>刚刚刷完晨间剧:花子与安妮
讲述儿童文学翻译家村冈花子的一生;
很套路也很感人;
NHK从61年开播的晨间剧一直专注挖掘大时代背景中女性形象,
其中最熟悉的应该是阿信了.
而类似传奇女主中国也不少,
比如清华首位女教授,
但为什么 CCTV 无有类似剧目?</p>
<p><img alt="200829" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.029.jpeg"></p>
<p><img alt="200830" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.030.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4121</p>
</blockquote>
<p>新中国刚刚第9年,
前苏联援建下,就已经开始运转原子反应堆;
记得那时看的科普读物:十万个为什么,
其中有一卷专门论述了各种战争场景中应对知识,
包含热核/毒气/常规轰炸/...
可见当年国际形式比今天要严峻的多;
但冷战后,
整体世界格局还是稳定的Orz</p>
<p><img alt="200831" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2008.031.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4122</p>
</blockquote>
<p>Win98 是当年最具影响力的操作系统了,
哪儿想到22年后,
已有16年不用 Windows 了;
当初原因很简单:
各种编程资料中示例截屏都是 mac 系统的,
基本碰不到 Windows 环境的;
后来囧事儿越来越多,
也就彻底绝望拥抱流畅了 Orz</p>VNC回归轻松2020-07-04T19:42:00+08:002020-07-25T10:43:30+08:00ZoomQuiettag:blog.zoomquiet.io,2020-07-04:/200704-easy-vnc.html<p>SCM/ 跨平台桌面控制最纯粹和轻松的协议桟还是原生的好...</p>
<h2 id="bg">BG.<a class="headerlink" href="#bg" title="Permanent link">¶</a></h2>
<p>很早就有这种需求:</p>
<p>比如当年参与开发浏览器时,
对应工程是 windows only 的,
而俺的笔记本是 macOS,
所以, 必须有个方便的远程控制工具,将 PB 上的桌面变成本地一个窗口,
并能无缝进行切换控制.</p>
<p>当年用 vnc server 的 windows 版本.</p>
<p>后来创业时, 要确保客户端同时可以安定运行在 win7 以及 linux 上,
更加需要一个通用的全平台桌面控制工具.</p>
<p>当时用的是 TeamViewer :</p>
<ul>
<li>商业软件</li>
<li>非常稳定</li>
<li>功能良好</li>
</ul>
<p>问题是, 对于私人商用非常敏感,
用的时间长点儿, 就判定为非法商用直接断掉了.</p>
<h2 id="problems">problems<a class="headerlink" href="#problems" title="Permanent link">¶</a></h2>
<p>然后, 也尝试过各种其它通用类 VNC 工具:</p>
<ul>
<li>X2Go 安装失败</li>
<li>TigerVNC/UltraVNC/RDP/... 不兼容</li>
<li>NoMachine NX ~ 唉嘛开始还好, 真正一用各种 diss, 而且无法删除</li>
<li>还有国产的什么太阳花桌面 ~ 根本无用</li>
</ul>
<p>只能切换到 RealVNC, 也是商用, 但是, 印象不错;</p>
<ul>
<li>好容易按照官方文档在 mac/ubuntu 间配置好</li>
<li>也用了一段时间</li>
<li>没想到, 一次系统升级后无论怎么折腾<ul>
<li>远程进入后都是黑屏</li>
<li>无法进入 GNOME 桌面.</li>
</ul>
</li>
</ul>
<h2 id="asking">asking<a class="headerlink" href="#asking" title="Permanent link">¶</a></h2>
<blockquote>
<p>搜索才发现, 这是常见问题...</p>
</blockquote>
<p>尝试了一堆方法都没办法解决, 那个糟心哪...</p>
<p>想想, 用 RealVNC 其实和 TeamViewer 没什么区别:</p>
<ul>
<li>每次连接主机, 都要先去人家官网绕一圈</li>
<li>注册一台主机, 而且免费有限额,只能5台</li>
<li>真正连接自己本地局域网旁边一台机器时</li>
<li>其实, 无论客户端/服务端 都要连接官网检验是否合法</li>
<li>而且, 在使用过程中, 俺的所有操作也一定有对应监察数据上报..</li>
</ul>
<p>也就是说, 俺用俺自己的主机, 就得向厂商老实汇报思想, 否则断你没商量.</p>
<p>俺为什么要这么贱?</p>
<h2 id="fixed">fixed<a class="headerlink" href="#fixed" title="Permanent link">¶</a></h2>
<blockquote>
<p>回归 FLOSS 社区内置方案吧...</p>
</blockquote>
<p>安装标准 vnc 服务:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>vnc4server<span class="w"> </span>xfce4<span class="w"> </span>xfce4-goodies
</code></pre></div>
<p>配置访问口令:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>vncpasswd
</code></pre></div>
<p>指定启动桌面 ~/.vnc/xstartup :</p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="ch">#!/bin/bash</span>
startxfce4<span class="w"> </span><span class="p">&</span>
</code></pre></div></td></tr></table></div>
<p>并启用配置:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>chmod<span class="w"> </span>+x<span class="w"> </span>~/.vnc/xstartup
</code></pre></div>
<p>启动服务:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>vnc4server
</code></pre></div>
<p>检验状态:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>ss<span class="w"> </span>-ltn
...
LISTEN<span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="m">5</span><span class="w"> </span>*:5901<span class="w"> </span>*:*
</code></pre></div>
<blockquote>
<p>注意: 如果有防火墙的话, 要打开 5901 的访问</p>
</blockquote>
<p>macOS 本地代理端口:</p>
<div class="highlight"><pre><span></span><code>༄ ssh -L 5901:127.0.0.1:5901 -C -N -l <主机用户> <主机IP>
</code></pre></div>
<p>(也就是将 Linux 主机上的 :5901 用 SSH 工具映射为本地 :5901)</p>
<p><img alt="连接" src="http://ydlj.zoomquiet.top/ipic/2020-07-25-ScreenShot%202020-07-25%2010.37.01.jpg"/></p>
<p>使用本地端口:</p>
<div class="highlight"><pre><span></span><code>vnc://localhost:5901
</code></pre></div>
<p><strong>Bazinga</strong></p>
<p><img alt="win7vbox" src="http://ydlj.zoomquiet.top/ipic/2020-07-25-ScreenShot%202020-07-25%2010.39.36.jpg"/></p>
<ul>
<li>Ubuntu 中安装 vncserver 以及 xfce4 桌面</li>
<li>Ubuntu 中启动 vncserver</li>
<li>macOS 中用 SSH 反向代理对应端口</li>
<li>用 macOS 内置远程桌面工具直连进入 Ubuntu 桌面<ul>
<li>安装 VirtualBOX </li>
<li>加载 win7 镜像</li>
<li>同时自由使用 windiws 环境以及 linux 工具</li>
</ul>
</li>
</ul>
<p>而且速度比之前各种 VNC 工具要快, 充分发挥了本地网络能力.</p>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li><a href="https://linuxconfig.org/vnc-server-on-ubuntu-18-04-bionic-beaver-linux">VNC server on Ubuntu 18.04 Bionic Beaver Linux - LinuxConfig.org</a></li>
<li><a href="https://cat.pdx.edu/platforms/mac/remote-access/vnc-to-linux/">VNC from Mac to Linux – Computer Action Team</a></li>
<li><a href="https://www.linode.com/docs/applications/remote-desktop/install-vnc-on-ubuntu-18-04/">Install VNC on Ubuntu 18.04 | Linode</a></li>
<li><a href="https://www.linode.com/community/questions/18877/how-do-i-set-up-vnc-with-mac-osx">How do I set up VNC with Mac OSX? | Linode Questions</a></li>
<li><a href="https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-14-04">How to Install and Configure VNC on Ubuntu 14.04 | DigitalOcean</a></li>
<li>...</li>
</ul>
<h2 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h2>
<ul>
<li>200725 zoomquiet pub</li>
<li>200704 zoomquiet 解决</li>
<li>200626 zoomquiet init.</li>
</ul>呢喃s/ 20.72020-07-01T20:42:00+08:002021-08-15T20:30:16+08:00ZoomQuiettag:blog.zoomquiet.io,2020-07-01:/200701-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2020.7</p><h2 id="at-20207">呢喃 at 2020.7<a class="headerlink" href="#at-20207" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="200701" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.001.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4061</p>
</blockquote>
<p>去年八一那天通知被离职的;
一晃眼见就一年了,
真没想到也就这么切换成 Indie Hacker,
以蟒营®课程为主线,
配合各种尝试,
也就这么真能维持住基本生存,
进而开始慢慢有余力探索其它.
希望能象 读库 那般,
慢慢发展,
最终活出自己的样儿来.</p>
<p><img alt="200702" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.002.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4062</p>
</blockquote>
<p>一过42岁明显感觉到身体各方面机能和24岁时完全不同了.
国医养生秘决日:童心/蚁食/🐢欲/🐒行;
想想这简直就是程序猿生存之道哪,
没童心不可能理解PM童话般的需求;
不养成蚁食习惯早饿死了;
反正都996了,欲望不低没法呆;
抢公共交通只能🐒挤.</p>
<p><img alt="200703" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.003.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4063</p>
</blockquote>
<p>HDZ Summit 2020 就在今天.
链接 http://dwz.win/F5c
上午俺在圆桌会议,
代表 CPUG 和 FCC 等社区大妈,
一起解析技术社区是什么,从哪儿来,
如何帮助开发者成长...等话题.
当然,俺负责吐糟,其它嘉宾负责讲解.</p>
<p><img alt="200704" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.004.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4063</p>
</blockquote>
<p>昨天 HDZ Summit 圆桌环节部分录音,
只敢发布大妈自己的发言:
https://fm.101.camp/2020/HDZ-am-dama.html
因为是工作日,
中午前后能来的学生为主,
所以,
一见习得性无助摧生的问题们,
不觉习惯性吐糟.</p>
<p><img alt="200705" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.005.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4065</p>
</blockquote>
<p>在很多电影中见过启德附近居民区上空客机掠过的情景.
当年并不知道这对人体有多种伤害,
只感觉这才是发达地区.
想来很多事儿都是这样,
感觉和事实基本上很难统一;
这也是上周五 HDZ Summit 圆桌讨论时感叹的,
学习行为和学习根本不是一回事儿
Orz</p>
<p><img alt="200706" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.006.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4066</p>
</blockquote>
<p>首周报名优惠420元,
还有不到24小时就恢复固定优惠了:</p>
<div class="highlight"><pre><span></span><code><span class="mi">1</span><span class="o">:</span><span class="err">有效推荐</span><span class="o">,</span><span class="err">再惠</span><span class="mi">261</span><span class="err">元</span><span class="o">;</span>
<span class="mi">2</span><span class="o">:</span><span class="err">在校生</span><span class="o">,</span><span class="err">再惠</span><span class="mi">600</span><span class="err">元</span><span class="o">;</span>
<span class="mi">3</span><span class="o">:</span><span class="err">复读</span><span class="mi">5</span><span class="err">折</span><span class="o">;</span>
<span class="mi">4</span><span class="o">:</span><span class="err">五人以上团购</span><span class="o">(</span><span class="err">直接联系商洽</span><span class="o">);</span>
</code></pre></div>
<p>专注学员编程思维提高到实战水平的训练营,
从始至终浸泡在真实工程环境中的陪伴式指导.</p>
<p><img alt="200707" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.007.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4067</p>
</blockquote>
<p>制作今日卡片前,7月7能触发的只有'七七事变';
可见教育的力量多强大.
问题也可能是过于强大,
将现实有效从我们感官中隔离了;
蟒营®9py第2周/大妈单口/就对相关教育成果进行了吐槽,
发布在蟒营®电台: fm.101.camp
欢迎扫码收听/订阅.</p>
<p><img alt="200708" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.008.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4068</p>
</blockquote>
<p>黑船开国应该算是日本被迫改革开放触发点,
167年前;
而我们的改开同一天启动,
却只在21年前;
也就是说中国用了日本⅛的时间,
完成并超越了日本改开总成果.
当然,
日本有些领域还是领先我们的,
但是,
这种追赶速度太吓人了,
仅仅一代而已.
益rz.</p>
<p><img alt="200709" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.009.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4069</p>
</blockquote>
<p>60多年前在科幻小说中描述的光能帆,
10年前正式投入实用;
这很有"梦想照进现实"的感觉,
NASA机库上的口号:
If we can dream it, we can do it.
太正确.
人类就是靠梦想驱动的奇异生物.
编程却只是手艺来练习就怼.</p>
<p><img alt="200710" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.010.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4070</p>
</blockquote>
<p>164年前神奇的 Tesla 出生,
完全以一己之力,
构想并构造出实用交流电应用体系,
以及其它一堆极其魔幻的实用技术,
可惜绝裔了.
要不是 Musk 将公司定名为 Tesla,
可能普通人永远不知道人类历史上有这样一位神人.
当然好莱坞不会放过他的.</p>
<p><img alt="200711" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.011.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4071</p>
</blockquote>
<p>郑和下西洋6个世纪了,
当年若是坚持下去,
就没什么无敌舰队了,
日不落帝国也不可能形成了;
嘦及时发明无线电,
咱大明应该早420年就应该统一地球了,
好象有或然历史小说讨论过这样的世界,
当然伟大的美国还有存在,
只不过不是反大英帝国,
而是反大明朝.</p>
<p><img alt="200712" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.012.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4072</p>
</blockquote>
<p>相声应该是汉语日常说话场景中最高艺术形式了,
比西方什么辩论/演讲术/..等等要来的高端的多,
已近乎道,而不是简单的技术层面了.
几乎将中文世界中所有 MEME 都识别并模式化为段子了,
可惜文艺反3俗运动后,
传统相声发掘到的模式都被和谐了.
益rz.</p>
<p><img alt="200713" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.013.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4073</p>
</blockquote>
<p>120年前联军突破帝都最后一层防线.
现在...不允许探讨了;
之前有经典军文:"夜色"等讨论现代战争条件下,
解放军如何应对联合国军,
涉及非常多我军现代军事技能和思想;
结果没几年就和谐了,
其实信心来对现实的正确认知,
象北韩那样天下第一才不囧rz</p>
<p><img alt="200714" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.014.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4074</p>
</blockquote>
<p>14年前因局部战争以及其它原因,
原油价格大激变和今年跌成负数相比,
实在不算什么了...
由"人类简史"可知,
货币以及企业等现代社会核心概念,
本质上都是人类原创故事,
和真实物质世界的关联其实并不大,
是通过人们的信心来完成现实投影;
象虚拟内存..</p>
<p><img alt="200715" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.015.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4075</p>
</blockquote>
<p>江南Style 当年爆火到 YouTube 被迫升级系统,
否则无法显示正确的播放次数;
同时也令一堆音乐人陷入自我怀疑:</p>
<div class="highlight"><pre><span></span><code>我是谁?
我在哪?
为什么这种音乐都能火?
...
</code></pre></div>
<p>不是我不明白,世界变化快.
还是老崔通透,
其实道理是创造出来的,不是理解来的.</p>
<p><img alt="200716" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.016.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4076</p>
</blockquote>
<p>蟒营®编程思维提高班 Python版/第10期,
离报名截止只有5天了,
优惠提醒:</p>
<div class="highlight"><pre><span></span><code><span class="mi">0</span><span class="o">:</span><span class="err">各种有效推荐</span><span class="o">,</span><span class="err">再惠</span><span class="mi">261</span><span class="err">元</span><span class="o">(</span><span class="err">可写</span><span class="o">:</span><span class="w"> </span><span class="err">大妈</span><span class="o">)</span>
<span class="mi">1</span><span class="o">:</span><span class="err">在校生</span><span class="o">,</span><span class="err">再惠</span><span class="mi">600</span><span class="err">元</span><span class="o">(</span><span class="err">出示学生证即可</span><span class="o">)</span>
<span class="mi">2</span><span class="o">:</span><span class="err">复训</span><span class="mi">5</span><span class="err">折</span>
<span class="mi">3</span><span class="o">:</span><span class="err">七人以上直接咨询商洽团购</span>
</code></pre></div>
<p>(注意:以上优惠政策不可叠加;-)</p>
<p><img alt="200717" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.017.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4077</p>
</blockquote>
<p>嘦大脑可以打印并证明可用之时,
就是人类整体升级之日;
以往有关探索可知,人类成神三大方向:</p>
<div class="highlight"><pre><span></span><code><span class="mi">0</span><span class="o">:</span><span class="w"> </span><span class="err">直接信息化</span><span class="o">,</span><span class="err">放弃肉体变成纯粹数字生物</span><span class="o">;</span>
<span class="mi">1</span><span class="o">:</span><span class="w"> </span><span class="err">肉身机械化</span><span class="o">,</span><span class="err">将易损器官都变成可永续替换的机械</span><span class="o">;</span>
<span class="mi">2</span><span class="o">:</span><span class="w"> </span><span class="err">基因强化</span><span class="o">,</span><span class="err">通过生物工程将所有器官永生</span><span class="o">.</span>
</code></pre></div>
<p>只是,
值得嘛?</p>
<p><img alt="200718" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.018.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4076</p>
</blockquote>
<p>尤里卡/EURECA计划几乎是冷战后是最厷大的科技协作计划,
当前非常传说的,
甚至于专门有个剧集:灵异之城.
描述的就是这个神奇计划所在地的各种超凡情景.
现在想反而是中国高铁等一系列基建项目非常超前,
比如在永久冻土地带的建造技术在火星上一样有效;-)</p>
<p><img alt="200719" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.019.jpeg"></p>
<blockquote>
<p>呢喃/NN 4078</p>
</blockquote>
<p>应该说47年前的"白卷事件"标志着中国教育体系不可逆转的转进了,
学习/知识必须安居于ZZ态度之下.
而教育是一国之本,
这一根基性质变化后引发的一系列改变,
深刻的造就了今天的中国.
可能最直接的后果就是,
国内所有大学的毕业证就是没国外大学的香
Orz</p>
<p><img alt="200720" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.020.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4080</p>
</blockquote>
<p>要不是作日历卡,
绝对想象不出 捷尔任斯基 这种狠人,
一己之力创建契卡高效守护革命成果,
简直是现代王阳明;
而且得以善终,这才是最神奇的地方;
因为无论契卡或是之后的KGB有多少不当,
捷尔任斯基 本人却是纯粹的完人,
即便是敌人都无法找出可杯葛之处.</p>
<p><img alt="200721" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.021.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4081</p>
</blockquote>
<p>半个世纪前阿斯旺水坝用了10年才建造完成,
其中有一项工程是整体搬迁阿布辛贝神庙/阿拉伯语: أبو سنبل
由3400多年前拉美西斯二世建造,
为避免水位提高后淹没神庙,
被小心的整体迁移至高出河床水位60余米的后山,
并精确的保留了太阳节时的奇观.</p>
<p><img alt="200722" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.022.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4082</p>
</blockquote>
<p>多年前的"文攻武卫"和现在网络用语:
地命海心/细思恐极/..等
创作机制应该雷同;
也是成语生成过程,
本质上都是民间段子手,
结合时事生造一个词,
如果刚好朗朗上口,又契合大众心情,
用的人多了,
也就自然变成了文化的一部分.
这却也是中文生命力所在.</p>
<p><img alt="200723" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.023.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4083</p>
</blockquote>
<p>原来132年前广州就由中堂大人拉进了电气时代.
可惜一地一时的改变并不能带动整个社会有什么根本变化,
那时中国还被各种"叫魂"事件困扰着内耗着,
完全看不到出路.
当然,各种穿越小说中,
有用德先生或赛先生,
甚至于文学来惊醒中华民族的.
可其实..Orz</p>
<p><img alt="200724" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.024.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4084</p>
</blockquote>
<p>也就是说192年前,
电脑最基础输入设备键盘的格局,就已经完成了设计;
当年为了不卡住字符击锤而专门设计的字母乱序,
现在大家必须用肌肉完成记忆.
合理嘛?当然不.
宇航火箭和马屁股的尺寸关系类似,
但是无法改变了,
只能认怂.
c'est la vie.</p>
<p><img alt="200725" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.025.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4085</p>
</blockquote>
<p>google日历提醒俺:
今天是:全世界系统管理员节日;
这可能是当前最苦B的岗位了.
系统没出事儿是应该的,
出事儿一定是SA的问题.
可具体情况海了,
有时可能是一场台风令一条海底光缆出了问题,
引发系统崩溃,
只能用自动化响应来扛,
所以得学编程啊:</p>
<p><img alt="200726" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.026.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4086</p>
</blockquote>
<p>133年前世界语就被设计出来了,
可努力了这么久,
流行程度还不如哑语以及汉语.
原因是什么?不吐糟了,
昨天吐糟的够多矣:
GDG珠海/学习吐糟片段
https://fm.101.camp/2020/gdg-reonline-learnning.html</p>
<p><img alt="200727" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.027.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4087</p>
</blockquote>
<p>226年前,法国大革命和后来苏联解体,
从本质上...
嗯哼,
政治相关的不属于合法爱国可讨论的内容.
说包兰铁路吧,
其实,开始日历卡制作的根本动机是想了解中国科技发展史实,
和同期世界对比.
而中国铁路跨跃式发展,
离不开长期独立运营的经验积累Orz.</p>
<p><img alt="200728" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.028.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4088</p>
</blockquote>
<p>说起 Bach 第一反应就是那部神书:
GEB~集异璧之大成
79年出版风行全球,
但直到97年才有能看的中译版,
而且这版是三位博士用5年时间,
一点点翻译出来的,
没再重印,
已成传说.
将数学/美术/音乐和人工智能的关系用故事形式怼了个通透,
拜服.</p>
<p><img alt="200729" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.029.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4089</p>
</blockquote>
<p>5年前的今天,
Windows最终版本10发布,
大版本不再升级,
有个异常悲凉的原因..
坊间传说,不传谣.
涉及代码至少是20多年前写的,
可想一个复杂系统包含的雷有多少是随着时代变迁将不断引爆的..
微软公司竟能一直撑着不炸太NB了.
是也乎Orz.</p>
<p><img alt="200730" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.030.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4090</p>
</blockquote>
<p>Vanuatu 40年前才立国,
但已有华人自治区,
带头大哥当初直接买下一个岛,
从国内接引投资移民,
比其它国家便宜,
来了自己选地建房,
除基本消费税,
其它基本没什么制约.
在有关 Prepper 社区被列为最值得移居的国家之一.
当代桃花源Orz</p>
<p><img alt="200731" src="https://ipic.zoomquiet.top/2021-08-15-zq42-today-card-2007.031.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4091</p>
</blockquote>
<p>49年前人类在月面开车,
有几十个国家通过电视看到这一场景.
可中国还在折腾林彪出逃/恢复联合国身份/...
无人抬头关注人类的边界.
可其实,地外探索和我们的发展一直有深刻关联,
比如宇航技术领先,
就知道如何精确扼止对应技术扩散,
进而夺取超额利润..</p>呢喃s/ 20.62020-06-01T20:42:00+08:002021-08-15T20:18:17+08:00ZoomQuiettag:blog.zoomquiet.io,2020-06-01:/200601-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2020.6</p><h2 id="at-20206">呢喃 at 2020.6<a class="headerlink" href="#at-20206" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="200601" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.001.jpeg"></p>
<div class="highlight"><pre><span></span><code>> 呢喃/ NN 4031
Helen 是真神人也.
完全无法想象从小就丧失视力/听力,
如何能完成教育,
并出版那么多图书.
只能说人潜力是无穷的,
但只能通过教育激发出来,
而最强学习动力只能是想学,
当然,得配合针对性学习路径以及环境;
蟒营™课程专注激发学习潜力;
值得体验.
</code></pre></div>
<p><img alt="200602" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.002.jpeg"></p>
<div class="highlight"><pre><span></span><code>> 呢喃/ NN 4031
细思恐极的是当年黑白猫现在也和谐为"好猫论"了.
其实两个凡是本身就是对当初实践论的反讽;
而好猫不过是对实践论的通俗化,
却也难逃污名化.
树人兄的酱缸论没错,
无论什么好东西都被大陆这坨大酱污染了.
好在够深,总有化龙飞升的机会,
不象隔壁宇宙日出国.
</code></pre></div>
<p><img alt="200603" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.003.jpeg"></p>
<div class="highlight"><pre><span></span><code>> 呢喃/ NN 4033
从江南造船厂使用全套外国图纸和设备来承接定单,
到 IEEE 这种国际技术标准组织开始有组织的压制中国企业,
仅仅用了99年;
而回想核弹之类国之重器,
我们都能只用别人一半的时间完成追赶;
集中力量干大事儿,
咱有丰富的经验;
但是具体每个人的小事儿呢?
</code></pre></div>
<p><img alt="200604" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.004.jpeg"></p>
<div class="highlight"><pre><span></span><code>> 呢喃/ NN 4034
注意, 俺没好意思写"中国队首次出征决赛圈";
毕竟再爱国的球迷也不可能认同那些比赛叫战斗.
其实, 自古就有垄断组织高速腐化毫无战斗力的案例,
比如宋朝为了防止地方割据,
发明的厢军体制,
世代为军的命运,
也就形成身份垄断,进而退化为纯粹农民,
Orz
</code></pre></div>
<p><img alt="200605" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.005.jpeg"></p>
<div class="highlight"><pre><span></span><code>> 呢喃/ NN 4035
说"液态光",
想起很久前看过的日本动画片,
科幻体裁,
说是太平洋中在极端巧合情况中,
会生成一种完美波浪,
能永久在海洋中推进而不破散;
以致游荡时间足够长/上千年,
波浪变成智慧生命,
进而和人类发生冲突,
最终被爱超度.
就是想不起片名了.
Orz
</code></pre></div>
<p><img alt="200606" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.006.jpeg"></p>
<div class="highlight"><pre><span></span><code>> 呢喃/ NN 4036
19次高考?应该说感动的是那个不放弃的自己而已;
多数失败不过是迷信坚持下去一定成功,
问题是从来不上尝试不同姿势,
那么一直用相同行为却期待不同结果,
逻辑上不通呢.
这其实就是经典的编程思维之一,
普通人虽曾有体验过,
却在日常中消磨掉了,
得补回来.
</code></pre></div>
<p><img alt="200607" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.007.jpeg"></p>
<div class="highlight"><pre><span></span><code><span class="o">></span><span class="w"> </span><span class="nt">呢喃</span><span class="o">/</span><span class="w"> </span><span class="nt">NN</span><span class="w"> </span><span class="nt">4037</span>
<span class="nt">一会儿上午</span><span class="w"> </span><span class="nt">10</span><span class="p">:</span><span class="nd">42</span><span class="w"> </span><span class="nt">开始蟒营</span><span class="err">®</span><span class="nt">课程直播</span><span class="o">,</span>
<span class="nt">将揭晓第7期学员们的原创作品了</span><span class="o">;</span>
<span class="nt">虽然算上08年蟒营原型班</span><span class="o">,</span>
<span class="nt">这都不知道第多少次围观学员作品演示了</span><span class="o">;</span>
<span class="nt">但一想现在自信流畅展示软件系统的学员们</span><span class="o">,</span>
<span class="nt">都是两个月前只能写条</span><span class="w"> </span><span class="nt">Hallo</span><span class="w"> </span><span class="nt">World</span><span class="w"> </span><span class="nt">的人</span><span class="o">,</span>
<span class="nt">怎能不激动</span><span class="o">?</span>
</code></pre></div>
<p><img alt="200608" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.008.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4038</p>
</blockquote>
<p>嗯哼?ATM 可以跨行转帐是15年才开通的?
亳无印象哪;
可能是早就开始用微信/支付宝了,
很少使用 ATM 所以亳无感觉.
可以说 ATM 就是又一批被互联网甩下的实体设备了.
接下来还有哪些设备/职位/技能/...将被互联网甩下呢?
细思恐极Orz.</p>
<p><img alt="200609" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.009.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4039</p>
</blockquote>
<p>"国际认可日"译名忒迷,
完全不知道什么东西;
这事儿2010变更为"世界认可日":
World Accreditaion Day 关乎食品安全认证.
对比"真相与和解委员会",
大家猜得到成立来干什么的?
其实吧,
普通人最需要认可和解的是自己此时人生.</p>
<p><img alt="200610" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.010.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4040</p>
</blockquote>
<p>自从有了起点/铁血,
网络中文军事小说有这么几个阶段,
开始是各种脑洞抗日;
后来各种建党神转折,太合理了以致被禁止;
现在是种田工业流,
穿越到改开前,进行各种军工飞跃,
而6日战争总是核心触发事件,
将我军的大兵团作战,
变成特种战/专门器材对抗Orz</p>
<p><img alt="200611" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.011.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4041</p>
</blockquote>
<p>昨晚受疫情影响,
有11年历史的技术社区:
珠三角技术沙龙,
也衍生发布了播客节目: Re amde ~ 回甘FM;
调性约定为:"一起偷听因认真而有趣的人"
也就是沙龙老司机们的线上聊天室,
通过网络会议,
用语音来重新接上头,
爽聊自己想聊的.
益rz</p>
<p><img alt="200612" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.012.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4042</p>
</blockquote>
<p>六爷是我军第一种超音速战斗机,
整整服役了50年,
60年研制成功,
64年开始列装,
就是中国空中力量根脚;
改型无数,甚至魔改出了强击机;
而且在海外战场上,比原版MIG-19战绩还强.
类似劳模式装备在中国还有很多,
这种钻研劲儿全球独一份儿
Orz</p>
<p><img alt="200613" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.013.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4043</p>
</blockquote>
<p>看义和拳当年留下的影像,
和今天跳街舞的青年一样阳光/爽朗;
可见气质和知识并不呈正比,
一个坚信用符水+武术可以抗住洋枪妖法的健康青年,
也一定相信水变油和永动机,
毕竟直觉上都没毛病.
其实就是传统教育回避了科学素养,
怎么提高?
蟒营®编程思维课呗.</p>
<p><img alt="200614" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.014.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4044</p>
</blockquote>
<p>如果用舰娘的视角来看 瓦良格 万里回国路;
简直比的上尼尔斯骑鹅旅行纪了.
今后一定有根据这一真实事件改编的特战电影,
不说长达4年的归程,
光是一路上沿途各国的反应,
以及无数暗战,
怎么想都够10来部007式的大片来讲述了.
可一想到国产片的气质Orz</p>
<p><img alt="200615" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.015.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4045</p>
</blockquote>
<p>805年前的大宪章,
可以说是现代社会真正开端;
之于人类的意义,
就象0对于数学的意义一般无可限量.
可以说从这一刻开始,
君主立宪制将资本这魔怪彻底释放到人间,
开始改变一切.
同年忽必烈出生,
封建制度将由外族进一步夯实,
中国的落后这才开始被积累.</p>
<p><img alt="200616" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.016.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4046</p>
</blockquote>
<p>就连"谁敢横刀立马,唯我彭大将军"
都要落得上万言书自辩而不可得,
最终活活痛死.</p>
<p>可想而知,
这世界绝不能轻易交给那些坏人,
好人一定要比坏人还要强大/狡诈才可能不被坏人迫害.
只是这样一来,
世界还会变好嘛?
私以为沉默的大多数还是认公序良俗咯Orz</p>
<p><img alt="200617" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.017.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4047</p>
</blockquote>
<p>61年苏联首次人类太空行走,
69年美国登月;
而中国还在大灾害期间,
就用最短时间完成核弹到氢弹的研制;
聂元帅说的:"就算没裤子穿,打狗棒也得有"
中国的科研古代是领先全球的,
可近代一直在追赶,
悲愤的追赶,
导致学习也演变成苦难,
其实不是的Orz</p>
<p><img alt="200618" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.018.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4048</p>
</blockquote>
<p>原来中共6大是在莫斯科召开的,
也就是在苏联庇护下进行的,
那也就无怪乎后来共产国际随便派个人来就能接管中共核心机构;
这种革命输出的把戏,
其实自古就有,
只是以往是以文化输出为主;
现在又进化为更加隐蔽的经济输出了,
一带一路可以说是对应再创新和实践.</p>
<p><img alt="200619" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.019.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4049</p>
</blockquote>
<p>按经验,
讨论近年热点大概率会自动嗯哼掉.
那就说古人吧: Pascal 神人也,
在很多领域都有开创性贡献,
所以第一个结构化编程语言就为了纪念他而命为 Pascal,
因为设计严谨也是大学入门首选语言;
而现在被Scheme/Python替代了
囧rz</p>
<p><img alt="200620" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.020.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4050+</p>
</blockquote>
<p>是的:现在同时有两门课了.
doc.101.camp
是蟒营®开源网络课程框架,
原先就一直准备演化出各种实训类课程的;
可一门网课程并不是导师肚里有货就能开设的;
毕竟是商品,用心一看,
就能发现有无数得准备的.
两门课,
都是最后一天报名.
来不来?</p>
<p><img alt="200621" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.021.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4051</p>
</blockquote>
<p>昨儿,领导就问候了今天机的父亲节.
从小就没过过这节日,
也不知谁指定的.
母亲节好理解,
母难日的配套专属纪念.
可身为父亲除了赚钱养家听家里领导们的话;
还有什么值得纪念的?
面对所有领导,
俺自认可能最大的存在感,
就是永远淡定的心态了吧.</p>
<p>益rz</p>
<p><img alt="200622" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.022.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4052</p>
</blockquote>
<p>"上帝之手"
算是体育史上最成功的欺诈行为,
完全因当时电视技术不过关,
没有实时放大回放能力,
导致这一神话般的表演成功了.
虽然后来被澄清,
但木已成舟,
只能这样 c'est la vie.
这不就是体育的魅力所在?
一切皆有可能.
编程也是Orz</p>
<p><img alt="200623" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.023.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4053</p>
</blockquote>
<p>大刘和梁漱溟,
谁对中华文明贡献多?
这事儿不好说,
甚至于在当前政治正确背景中不能多想.
但是,
能从另一个角度这么想:
人类发展到现在,
信息/思想/概念/...
各种纯粹精神世界事物,
已经拥有真实力量,
足以将一个人铭刻在历史树中无法绕行.
Orz</p>
<p><img alt="200624" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.024.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4054</p>
</blockquote>
<p>很早在网络小说中获知:
日本的地图都是竖起来的,
中国和苏联就象命运一般压在日本身上;
所以,
国民忧患意识就这样潜移默化了进来.
去日本旅游时没注意地图,
后来在电视剧中插入的地震等灾难通告中看到局部地图,
是真的.
现在中国为了南海也竖地图了.
Orz</p>
<p><img alt="200625" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.025.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4055</p>
</blockquote>
<p>永远的 MJ.
至今想来死于网络暴力最大的明星就是他了.
现在无论什么状态/场景,
无论什么心情,
实在没有音乐呼应时,
放 MJ 的专辑准没错,
总是有一首能契合当下的情绪;
World Music 应该是从 MJ 这儿才真正立稳了地位.
RIP.MJ</p>
<p><img alt="200626" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.026.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4056</p>
</blockquote>
<p>昨晚"开源之道"发起"端午话开源"系列聊天,
是过年时"鼠年话开源"的延续.
90多分钟没冷场,
主持人佛气十足,
无法大妈怎么嗯哼,
都坚定的包容起来.
是开源样"上善若水"充分展现,
欢迎收听 m.ximalaya.com/keji/32915040/</p>
<p><img alt="200627" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.027.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4057</p>
</blockquote>
<p>还是想说说 Helen,
当今互联网中几乎有一切知识,
但多数健全人尚且无法自学掌握对应技能;
而当年,自幼又盲又聋的 Helen,
是如何变成一位作家+教育家的?
老师在这一过程中,
可能起到的作用,
最多初期能给予信心,
真正的学习只能是自学啊
Orz</p>
<p><img alt="200628" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.028.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4058</p>
</blockquote>
<p>小额信贷获得和平奖的原因,
应该是人们被信任的力量惊到了.
太多人终其一生,
从未获得过任何信任,
无论作什么事,
只能遭受永恒的质疑,
无论作出多少努力和成绩,
只因为一些和能力无关的因素,
而被社会习惯性无情漠视;
终于有人站出来证明这不合理.
Orz</p>
<p><img alt="200629" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.029.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4059</p>
</blockquote>
<p>伟大的 iPhone 俺在2013年才在美国买了 5c 应急用起来的;
然后 iPhone7,
现在是 XS MAX 256G版;
只是在俺这儿,
iPhone 最大的作用可能就是微信抡红包时就是快;
其它各种传奇功能,并没在日常生活中展现出神奇.
益rz</p>
<p><img alt="200630" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2006.030.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4060</p>
</blockquote>
<p>蟒营®编程思维提高班 Python版/第十期,如约上线;
当期优惠:
特别: 7.1~7 首周报名再减420元</p>
<div class="highlight"><pre><span></span><code><span class="mi">0</span><span class="o">:</span><span class="w"> </span><span class="err">有效推荐</span><span class="o">,</span><span class="w"> </span><span class="err">再优惠</span><span class="mi">261</span><span class="err">元</span>
<span class="mi">1</span><span class="o">.</span><span class="w"> </span><span class="err">在校生</span><span class="o">,</span><span class="w"> </span><span class="err">再优惠</span><span class="mi">600</span><span class="err">元</span>
<span class="mi">2</span><span class="o">.</span><span class="w"> </span><span class="err">复读</span><span class="w"> </span><span class="mi">5</span><span class="err">折</span>
<span class="mi">3</span><span class="o">.</span><span class="w"> </span><span class="err">组团</span><span class="mi">5</span><span class="err">人及以上直接咨询商定</span>
</code></pre></div>
<p>(注意:优惠政策不可叠加)</p>呢喃s/ 20.52020-05-01T20:42:00+08:002021-08-08T16:02:08+08:00ZoomQuiettag:blog.zoomquiet.io,2020-05-01:/200501-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2020.5</p><h2 id="at-20205">呢喃 at 2020.5<a class="headerlink" href="#at-20205" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="200501" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.001.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4000</p>
</blockquote>
<p>不查不知道,
从1886到1995,100多年的努力,
我们才真正拥有了双休制,
而欧洲早已突破了每周35小时法定工作时间->更少了;
为什么?
生产率足够高,
企业又不原意支付更多工资,
那不如回家折腾副业了.
问题来了,
什么副业不受时空限制?
Orz</p>
<p><img alt="200502" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.002.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4001</p>
</blockquote>
<p>大家纷纷表示为了庆祝劳动节,
必须宅家劳动;
大妈经常嗯哼曰:
什么是共产主义社会?
当人类全体:第一需求是劳动/第一娱乐是学习 之时.
现在当然无法全员作到,
不过我们可以主动在小范围内自发先体验一下的;
毕竟劳动带来的成就感赛高<-只要是自己想去作的.</p>
<p><img alt="200503" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.003.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4002</p>
</blockquote>
<p>昨夜例怼第159次,
首次彩蛋:
一位资深怼友家领导在旁听100多期例怼后,
终于按捺不住,
深夜贡献首次即兴脱口秀,
27分钟小单口,
=>中国传统文化简史和高考补习班语文课程设计间渊源及交融;
非常劲爆,堪比"十三邀";
可见凡事得坚持才有惊喜
Orz</p>
<p><img alt="200504" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.004.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4003</p>
</blockquote>
<p>康熙/赫本/五四运动...竟然同一天;
一个独霸中国电视20年,
一个触发中国百年新文化运动,
一位是大妈在家领导面前都能理直气壮暗恋的对象...
世界太神奇了;
蟒营™课程也是,
每期学员都有神奇所在,
结业后课程环境不关闭,能永久复习,
值得加入Orz</p>
<p><img alt="200505" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.005.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4004</p>
</blockquote>
<p>听说好象各国际考试都为中国区考生专门出题;
以免考出太多满分无法交代的尴尬情景;
毕竟, 考试一事在中国被研究了上千年, 真的是地球第一;
问题在类似编程这种自古考试中没有的知识类别,
积累的丰富经验就没招儿了.
必须从头回归学习本身, 而不是考试艺术.</p>
<p><img alt="200506" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.006.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4005</p>
</blockquote>
<p>实话:发改委 这一机构真的是非常强力又高效;
所以, 蟒营™课程本身也在连续运营8期后,
内部成立 "蟒营™课程发改委"
联合助教和优秀学员,
特别是有教育专业背景的学员,
将大妈私人社区经验转化为的蟒营™网络课程框架,
结合入门班持续优化自身.
Orz</p>
<p><img alt="200507" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.007.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4006</p>
</blockquote>
<p>知道休谟,
一般是上过哲学史之类课的,
这位胖子和张三丰类似,
都是无论如何也绕不过去的大师;
通过怀疑论的阐发,
直/间接给西方社会突破宗教的羁绊提供充足的弹药;
只是哲学家到今天好象连公知都不如了,
不象当初那是领导科学的科学,
现在只算无用之用Orz</p>
<p><img alt="200508" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.008.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4006</p>
</blockquote>
<p>SOROS 名字就因为是回文才记住的,
无论正反写都对,
父母用心了.
97年金融风暴证明了两件事儿:</p>
<div class="highlight"><pre><span></span><code><span class="mi">0</span><span class="o">:</span><span class="w"> </span><span class="err">私人组织已经可以对抗主权国家了</span><span class="o">;</span>
<span class="mi">1</span><span class="o">:</span><span class="w"> </span><span class="err">中国真的不傻也没那么弱</span><span class="o">;</span>
</code></pre></div>
<p>那么问题来了:中国实力到底谁说了算?
其实也可普适为:任何一个人如何证明自己?</p>
<p><img alt="200509" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.009.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4006</p>
</blockquote>
<p>摇滚乐在中国大地上第一次响起并不是86年,而是20多年前,
在林立果的小圈子里;
神奇的是摇滚精神反而在20年之后,
随着老崔们的老去而后继无人了,
为什么?
字数有限无法展开,
单说一点:歌词儿和电影一样都得过审,
而且白名单随着动态变更,
乍Rock?</p>
<p><img alt="200510" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.010.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4009</p>
</blockquote>
<p>小时知道母亲节后, 就以为也有父亲节,结果发现中国不过父亲节,
这就比较迷了...
直到自己成为父亲才知道为什么中国不设立父亲节;
因为,家领导永远是母亲呢.
每天,母亲高兴, 全家和乐,母亲生气,全家小心.
可是这又是为什么呢?
因爱生怖也.
Orz</p>
<p><img alt="200511" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.011.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4010</p>
</blockquote>
<p>实践是检验真理的唯一标准.
真.无法同意更多;
Python入门班第6期昨晚按时结业;
学员团队能通过流畅的全球协同完成作品;
证明蟒营™初心冇错:
知道你认为自己不NB,
但蟒营™认定你其实非常NB,只是习惯了不NB而已,
蟒营™愿带你遇见NB的那个你.</p>
<p><img alt="200512" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.012.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4011</p>
</blockquote>
<p>曾几何时,通称倩女没流行前,
是流行唤护士的,
比如在面馆中喊:"护士, 来三碗烂肉面";
为什么呢?
可能是护士任劳任怨的形象深入人心,以致日常所有场景中都期望有护士的存在吧.
看过一堆医务背景美剧后,
才知道护士就象军队中的军士长,
甚至更牛.
Orz</p>
<p><img alt="200513" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.013.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4012</p>
</blockquote>
<p>有些计划必须失败才能收获期待目标的,
"星球大战计划"就是这一经典;
通过无限扩大冷战科技含量将对手国力浪费在"黑洞"级别命题上,
导致民生问题越来越大,
直至崩溃.
这种理解可能是美国自己也失败后的粉饰,
但是不障碍自省:
是否减肥也是同类行为?
Orz</p>
<p><img alt="200514" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.014.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4013</p>
</blockquote>
<p>facebook和江青就是这么自然的关联在一起...
历史就是这么奇妙.
当然我们自己更加神奇:
小学作文中想象21世纪的种种,
多数来自:小灵通漫游未来/丁丁战猴王...
之类幻想作品.
而现实比幻想还要赛高时,
我们自己其实都在被时代吊着飞升
Orz</p>
<p><img alt="200515" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.015.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4014</p>
</blockquote>
<p>张三丰是历史真实人物,
但在俺心中,
天龙八部中的张三疯才是真实的;
这就是人类简史中论及的"故事";
就象三人成虎的出版行业加强版;
问题是互联网时代,网民接触到的信息理论上是无限,
可早已被算法严密控制针对性投食了,
怎么破?
主动探索/禁断友圈Orz</p>
<p><img alt="200516" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.016.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4015</p>
</blockquote>
<p>陈圆圆和文化大革命的关系,比能想象的要近的多.
谎言总是越说越多,因为必须不断用新的谎言来解释前一批谎言;
只是谎言多了,
也就成了气候,
可以影响整个儿国运...
对于普通人,
不特意说谎就已足够,
毕竟每天都逃不了被迫说谎,
只是自己千万别相信就好.</p>
<p><img alt="200517" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.017.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4016</p>
</blockquote>
<p>纽交所, 居然是200多年前创立的;
而民航飞行器, 人类民用领域质量要求最高的单一产品,
竟然是35年前win95时代就完成了全部电脑设计.
那时,宿舍小伙伴还在计划揍钱攒兼容机,
准备上南京电脑街拼元件,用250M超大硬盘...
这种技术代差 Orz.</p>
<p><img alt="200518" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.018.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4017</p>
</blockquote>
<p>翁美玲创造的黄蓉无法替代.
并不是人有多美,也不是当年剧组逆天...
实在是当年电视刚刚进入日常生活,
周围所有人面目灰暗时,
突然出现这么一位小东邪,
好比吃了一辈子稀饭就酱瓜突然发现还有煎饼果子这个可能.
所以,就和赫本一起变成无法替代的永恒女神...</p>
<p><img alt="200519" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.019.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4018</p>
</blockquote>
<p>一定程度上,
今天中国在线教育领先世界,
是58年前教育部决策的遗留效应.
教师从灵魂工程师蜕变成合同工,
就是从成体系精简开始的.
因材施教从而彻底消亡,
才给了今天网课足够空间和机会;
学习者通过网络相互帮助,
毕竟多数学校已无力提供相应职能了
Orz</p>
<p><img alt="200520" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.020.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4019</p>
</blockquote>
<p>若非领导暗示完全忘记今天也是节庆:
520表白节.
类似的还有双11光棍节,
以及其后转变成购物节的一系列山寨节目:双12/618/...
还有各种程序猿单方面决定的节日:
3.14/𝛑节,10.24/程序猿节...
总之国家没宣布的照样是节日,得执行.</p>
<p><img alt="200521" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.021.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4020</p>
</blockquote>
<p>当年"十连跳"引出太多思考了;
虽然富士康百万员工按照当地所在地区自杀率来说数据上低不少,
可架不住追踪报道.
别的不说,
好死不如赖活着.
可生不如死的单调重复性劳动,
真的可以轻易摧毁普通人精神的,
无论有多少抖音们来分散注意力.
怎么破?
来编程吧.</p>
<p><img alt="200522" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.022.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4021</p>
</blockquote>
<p>没想到类似永动机的民科事件,去年就有.
认真想想,
日常中缺乏基本科学常识却广泛流行的偏方/传言/...太多了.
什么是科学?
最偏激的定义就是可证伪.
可义务教育体系中好象完全跳过了这一思想,
只训练要听话,
万事皆有正确答案.
如何破?
开始自怼吧..</p>
<p><img alt="200523" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.023.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4022</p>
</blockquote>
<p>看了纪录片 The Imagineering Story,
才知道 Disney 真正梦想并不是电影,
而是能令人们快乐的主题乐园;
甚至于为此专门创造了全新职位->幻想工程师;
俺打小也立志作一名能令大家快乐的人,
现在却只能竭力自身不陷于无趣,
Orz</p>
<p><img alt="200524" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.024.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4023</p>
</blockquote>
<p>作日历卡才发现无线电实用化已经100多年了,
最近围绕5G 技术标准全球在闹腾,
可究竟怎么从马可尼一步步发展过来的?
刚好收到图灵新书:"无线通信简史"配合业余无线电通信等书,
得以进行完美入门.
这其中少不了编程辅助,
入门班最后一天报名,
值得加入.</p>
<p><img alt="200525" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.025.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4024</p>
</blockquote>
<p>原来董存瑞是今天牺牲的.
小时自认如果在现场也可以.
可真受过伤明白什么是痛疼级别后,
才对先烈们的决然肃然起敬,
他们放弃的不仅仅是自己的生命,
还要承受超乎想象的苦痛,
只为内心那丝坚信.
自己能为什么去承担那种级别的痛苦呢?
幸好现在不必去承担了?</p>
<p><img alt="200526" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.026.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4025</p>
</blockquote>
<p>"论持久战"发表已经是82年前了.
当年此文指导我军最终解放全中国,
其实对普通人也很有意义,
人生就是长征,</p>
<div class="highlight"><pre><span></span><code>慢慢来,
比较快,
不怕慢,
只怕停.
</code></pre></div>
<p>不要被成名要趁早之类鸡精蒙到了,
普通人只能一点点积累.
问题只是方向错怎么积累也没用,
怎么破?Orz</p>
<p><img alt="200527" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.027.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4025</p>
</blockquote>
<p>台湾府设立是在336年前,
自古史官机构记载了一切行政指令,
导致实锤太多无论什么姿势也没法说不是中国的.
而现代台湾又是中国近代史缩微盆景,
文化大革命中革掉的所有东西都在对岸有份鲜活备份;
故宫/清华/中山/...太 coaplay 嘉年华了.
Orz</p>
<p><img alt="200528" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.028.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4027</p>
</blockquote>
<p>包青天居然和 BING 是同一天诞生.
不过,后者永远没有前者有名气就是了.
但 BING 居然是合法爱国时,
唯一可用的国际搜索引擎了.
当然,其海外版也是和谐版,
好歹可用.
以及其它国产搜索,
俺态度一向:
内事不决问谷歌,
外事不定查百度.
Orz</p>
<p><img alt="200529" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.029.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4029</p>
</blockquote>
<p>今天历史事件包含很多和谐词,
不知道是否能发布成功.
主要想感叹一下7年前,
双汇已经变成世界第一了呢.
想来中国这种世界第一已经不少了,
自行车/雨伞/圆珠笔/...早已有很多商品是世界第一产量,
可更多关乎国运的核心高科技产品关键元件还是得抑人鼻息..</p>
<p><img alt="200530" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.030.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4029</p>
</blockquote>
<p>原以为虚构写作能自由,
后来发现光穿越就有二一年等铁律不得逾越;
而非虚构写作的限制更加丰富细致以及灵动;
所以科幻小说才崛起了.
类似天启大爆炸之类历史事件也变成了稀有IP早被抢占.
也幸好我国历史足够长,
史料足够多,
有足够非虚构事件承载虚构思想.</p>
<p><img alt="200531" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2005.031.jpeg"></p>
<blockquote>
<p>呢喃/ NN 4030</p>
</blockquote>
<p>转眼就是五月最后一天了.
历史上的今天日历卡,
从2月29号开始,
也已坚持3个月.
常有人问:为什么很多事儿你能长期坚持?
可能就是因为,
不是坚持,
只是,
长期以来习惯作那些事儿而已.
就象,如何能坚持几十年每天刷牙?
而习惯后就变成了生活本身...</p>呢喃s/ 20.42020-04-01T20:42:00+08:002021-08-15T20:13:04+08:00ZoomQuiettag:blog.zoomquiet.io,2020-04-01:/200401-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2020.4</p><h2 id="at-20204">呢喃 at 2020.4<a class="headerlink" href="#at-20204" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="200401" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2004.001.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3970</p>
</blockquote>
<p>当年各种免费邮箱都是5M左右, 付费的也才100M;
Gmail 上来就给 1G , 而且劝大家千万别删, 永久归档就好...
那是种多荒诞的感觉啊, 还专门选在 4.1 发布;
结果呢? 爽到至今.
蟒营™课程也触动一下->今天报名直接享受 7折 优惠.</p>
<p><img alt="200402" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2004.002.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3971</p>
</blockquote>
<p>不查不知道, 今天是'国际儿童图书日';
可小时候真没什么值得看的, 就记住了童话大王单人构筑出来的故事体系;
工作后有机会补课, 才发现国外有儿童图书门类以及对应艺术家群体;
不过, 怎么看都无法对抗日本漫画构造的万画世界.
儿童其实并不特殊和俺们一样.</p>
<p><img alt="200403" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2004.003.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3972</p>
</blockquote>
<p>COVID-19 不可逆转的改变了整个人类社会结构;
而当年马歇尔计划则是以一国之力改变了人类社会整体结构;
差别在于, 一个只用了不到半年, 另外则用了整整20年;
正如很多SiFi中描述的,
人类不过是盖亚皮屑里的微虫, 拼力折腾能叮痒地球,后果Orz</p>
<p><img alt="200404" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2004.004.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3973</p>
</blockquote>
<div class="highlight"><pre><span></span><code>清明时节雨纷纷
路上行人谷断魂
</code></pre></div>
<p>这两句从未如此应景;
为表达全国各族人民
对抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的深切哀悼,
今天决定举行全国哀悼活动; </p>
<p>最应该哀悼的, 是人类用了5千年才形成的全球化,
却瞬间断裂成孤岛式关系, 那么...</p>
<p><img alt="200405" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2004.005.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3974</p>
</blockquote>
<p>鸟山明, 以一己之力改变'孙悟空'这一概念内涵的大师.
不过, 俺更加喜欢阿拉蕾, 企鹅岛上的故事虽然无厘头, 但是, 比永远无尽升级打怪的 七龙珠 要来的放松和有趣;
就这个有趣, 为鸟山明每年带来超过50亿日元的收入, 这在中国是无法想象的.
为什么?</p>
<p><img alt="200406" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2004.006.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3975</p>
</blockquote>
<p>Asimov 并非最喜爱的 SiFi 作家, 却是最敬佩的.
坚持每天写作一定数量文字, 半个世纪从未间断, 这真的是神级自律.
仅仅基于私人想象, 就为人类拓展出很多无法回避的前沿.
机器人学三定律/心理史学/...
是 AI 伦理学奠基人.</p>
<div class="highlight"><pre><span></span><code>大哉问不休
</code></pre></div>
<p><img alt="200407" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2004.007.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3976</p>
</blockquote>
<p>不查不知道, 成龙大哥都快70了...
可成家班一直没能出现足以替代他自己的明星,
而只能让古稀之身出面接住各种机会,这实在不科学.
好象香港黄金一代艺人之后, 再无类似群体继承, 这就不好说是特例了.
只能猜是大环境/机制问题, 具体的也轮不到俺来分析.</p>
<p><img alt="200408" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2004.008.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3977</p>
</blockquote>
<p>历史中每一个今天其实都有或大或小的奇迹在发生;
比如某个小朋友突然能说话了, 大概率是/麻麻, 没亲历的, 真心难以想象出那种奇迹感:
一坨小肉团嘦每天按时喂点儿奶,
242天以内就能自动生成意识,
并自学掌握汉语,还能喊对人...
细思恐极/AI 没戏.</p>
<p><img alt="200409" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.009.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3978</p>
</blockquote>
<p>培根提出"知识就是力量"不到四百年,
人类就用简单 AI 算法指挥宇航火箭自动降落到不断起伏的海上浮台;
而NASA的口号:"If we can dream it, we can do it."焊到机库门上仅7年后,
就将人送上月球并接还.
那俺的梦想呢?</p>
<p><img alt="200410" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.010.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3979</p>
</blockquote>
<p>转眼 Python 成为年度语言已一年了, 当时最热消息:
连黑洞照片都是 Py 跑出来的, 还不来学?
可学编程语言和能编程是两回事儿嗦;
比如, 这两天迁移旧网站, 怎么折腾都不行,
今儿发现 pyblosxom 错写成 pyblosoxm
益rz.</p>
<p><img alt="200411" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.011.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3980</p>
</blockquote>
<p>孙夫子和王小波原来是同一天去见马克思咯?
这种巧合应该暗示了什么.
当年知道小波竟然也是程序猿, 为了写作, 专门给自己开发了专用编辑器;
立时变身为 王小波门下狗.
可现在为一把键盘反复折腾轴哪键帽哪...总感觉是否太没品?
必须为人民服务而编程终身哈?</p>
<p><img alt="200412" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.012.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3981 被和谐</p>
</blockquote>
<p><img alt="200413" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.013.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3982</p>
</blockquote>
<p>昨晚 101camp5py 结业,
主要由0基础学员组成的团队,
经过4周报名预习/1周预备/4周迭代任务的学习后,
再2周自主开发, 就都基本交付出原创作品;
证明蟒营™式编程入门班教学思路是对的;
可现场大家却被6py 几位学妺辣么有条理的探索震惊了.</p>
<p><img alt="200414" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.014.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3983</p>
</blockquote>
<p>COVID-19 致死机制被揭开:
不是本身, 而是激发原有基础病,
即所谓"发物",以往只是专门激发某种伤痛, 而新冠则是'有教无类',
原先有什么都活化起来, 怪不得死亡多是老年人.
问题是996褔报重压下, 成人多数都处于亚健康状态...这又得乍整?</p>
<p><img alt="200415" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.015.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3984</p>
</blockquote>
<p>汉语很奇妙,
广交会办了那么多年,
但国家还得郑重改名,
因为一字之差代表的却是整个儿中国制造在地球上的地位真的不同了;
是否有编程自信也类似,
不敢编程前,总被大片儿误导,
以为编程非常神奇类似魔法;
可一但有任何编程经验,
就能触及真正的互联网资源了.</p>
<p><img alt="200416" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.016.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3985</p>
</blockquote>
<p>昨晚 6py 课程答疑直播,
一激动针对一位勇敢的高一学生当前沉默状态进行集体支招,
录音在:
https://fm.101.camp/2020/101camp6py-ch3d3-faq.html
涉及自学习惯,
提问的智慧,
等关键误解,
值得反复回顾.</p>
<p><img alt="200417" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.017.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3985</p>
</blockquote>
<p>当年网页小游戏现在小程序中复活了,
家领导每天念叨要走满一万步好去偷菜什么的;
其实,
这种地图虚拟移动和真实运动结合的游戏早就有了:
听老妈讲,
高小时整个武汉流行跑向北京~
班级记录每天跑操距离,在地图上标出,
累计看谁先到天安门,
奖大红花.
Orz</p>
<p><img alt="200418" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.018.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3987</p>
</blockquote>
<p>高铁当初开始连续提速时,是真正惊吓到世界的;
现在华为5G也扎实的站在世界之巅,
可问题在如何真正落实?
今天下午两点到五点,有专门网络分享:
尤中海,
中海地产集团数字科技部产品负责人,产研科技小组产品技术负责人;
单口分享如何看待5G背景的AIoT.</p>
<p><img alt="200419" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.019.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3988</p>
</blockquote>
<p>昨天中海老师叕一气3小时没停,
要不是音乐老师出身,
这种强度一般人一定撑不住,
分享有关人生/产品/5G/AI/IoT/...
录像下载:
https://pan.baidu.com/s/1u8t4RkSokfaWj5Sjp2hG0Q
提取码: qamq</p>
<p><img alt="200420" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.020.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3989</p>
</blockquote>
<p>之前怼周会交流时,
遇到同时蟒营™学员又是大妈写作班同学的新怼员,
一聊,
便对王佩老师写作班产生了兴趣,
立即去询问得到:好中文第四期插班计划
https://gc.camp/post/the-admission-of-gc-camp
佩哥哥,你值得拥有</p>
<p><img alt="200421" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.021.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3989</p>
</blockquote>
<p>小时候, 总是被大人骂: 眼里没活儿.
现在各种聊天儿时,才发现,这竟然真的是种特长;
无论什么交流现场,
了解到各自擅长后,
立即条件反射般设想出几种可能方向,
综合大家的兴趣变成一个或是多种潜在作品,
从而能长久 hang out 在一起结为社区...</p>
<p><img alt="200422" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.022.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3991</p>
</blockquote>
<p>列宁/Ле́нин,
原名弗拉基米尔·伊里奇·乌里扬诺夫,
苏维埃社会主义共和国联盟的缔造者;
记得小学时一讲起来都是<code>马恩列斯毛</code>并称;
后来单说毛主席;
再后来小平提出"中国特色社会主义";
然后三个代表/一带一路/金山银山...
再也不提列宁们了.</p>
<p><img alt="200423" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.023.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3992</p>
</blockquote>
<p>今天的卡片不知道是否能发布呢,
所以呢喃也只能随便点儿:
昨天开始尝试一种新的工作节奏 -> 一事毕,一事启;
以往总是怕没活儿干, 所以,四处挖坑, 四处揽活儿,
总感觉自己一定能多项目并行推进,
而现实一直在打脸.
所以, 老实一点儿, 一件件来吧.</p>
<p><img alt="200424" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.024.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3993</p>
</blockquote>
<p>昨天是世界图片和版权日,
大家解释为读书日,
折腾了很多荐书活动;
之于我,
读书就是一种最高效的娱乐形式,
通过图书可以同任何时空中的人物/事物/情感/...进行交流,
惠而不费;
很早就形成阅读的习惯,
只是从实体变成电子,
在手机/Kindle上..</p>
<p><img alt="200425" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.025.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3994</p>
</blockquote>
<p>今天是神奇的"预防接种宣传日",
但是 COVID-19 的疫苗不知何时能有;
好在疫情爆发后,
第一个小长徦如期而至;
大家都接到正式通知明天上班了吧?
只是放假又能到哪儿去呢?
还是宅家提升内力吧->
蟒营™Python入门班第8期马上开始报名了...</p>
<p><img alt="200426" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.026.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3995</p>
</blockquote>
<p>开车时, 常吐糟家领导播放的新新音乐,完全没法儿听哪.
同时, 俺常放的泰文/越南/印度/...小语种音乐,
也被严正吐糟: 什么玩意儿.
回思音乐取向才发现,
之于我就象另类旅行,
尽可能尝试以往从没听过的来体验新奇文化;
可工作时BGM还是当年老歌.</p>
<p><img alt="200427" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.027.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3996</p>
</blockquote>
<p>蟒营™昨晚又尝试混班直播;
触发很多前所未有的断言;
有新学员感叹:
思想拐点制造者 -> 蟒营
这位学员和大妈又同学在王佩老师写作班中;
可证编程和写作是同素异构体,
都是思想的表述,
只是形式上略有不同,
运行时稍有偏差而已.
这就报名第8期吧 ;-)</p>
<p><img alt="200427" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.028.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3997</p>
</blockquote>
<p>如果当年琼瑶阿姨没被迫放弃台湾市场,
转战大陆遇到这么一组神仙,
可能还珠神话也不可能开始.
大妈可能也是,
如果不是连续被创业失败,
无意中一直坚持的社区也就没机会转为课程;
现在正式班第8期也已开始报名,
先报名先享受课程服务;
推荐人写大妈就有优惠.</p>
<p><img alt="200429" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.029.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3998</p>
</blockquote>
<p>从排华到种族冲突...其实在美国很难感觉出是在一个国家,更象很多国家的合成,
这的确是当初立国时的设计->美利坚合众国;
所以,理解任何一个国家都没那么简单,
即便在中国生存了这么久,
也最多不过了解到中国非常小的几个片段而已;
读历史书吧,能更爱国Orz</p>
<p><img alt="200430" src="https://ipic.zoomquiet.top/2021-08-08-zq42-today-card-2004.030.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3999</p>
</blockquote>
<p>这是极著名的断言:</p>
<div class="highlight"><pre><span></span><code>"你办事,我放心"
</code></pre></div>
<p>以往在各种场合中都被戏用过,
这断言其实是对一个人靠谱程度的最高肯定;
如果在自己岗位上能给其它同事这种体验,
那是真心将工作做到家了;
不过, 这还不是工作的最高境界;
最高应该是将工作做到:"随时可交接"
Orz</p>拙见/ DNS之殇2020-03-31T10:42:00+08:002020-03-31T12:42:00+08:00ZoomQuiettag:blog.zoomquiet.io,2020-03-31:/imho-murmur-dns-sad-story.html<p>MurMur/ DNS in china is one kinds of sadding song</p><p>这是大妈在 <strong>ZoomQuiet</strong> 的第<strong>011</strong>篇原创</p>
<blockquote>
<p>普通程序老猿一则感叹...</p>
</blockquote>
<hr>
<h2 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>自从能家庭上网, 我们就一直和网络服务供应商在斗智斗勇;</p>
<p>最早 瀛海威 的互联网广告是:</p>
<div class="highlight"><pre><span></span><code>中国人离信息高速公路有多远
———向北1500米
</code></pre></div>
<p>现在想, 是真的良心...</p>
<hr>
<h2 id="_2">现象<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<ul>
<li>gitlab.com 每天不同时段打开的速度完全不同</li>
<li>github-pages 发布的静态网站经常无法打开</li>
<li>git pull 工作仓库有时说仓库不存在</li>
<li>...</li>
</ul>
<p>而家中的互联网接入有这么几个:</p>
<ul>
<li>移动宽带, 手机158套餐送的, 很多年了, 也自动升级到 500M 光纤, 配 Nighthawk R7000 无线路由器</li>
<li>移动宽带, 手机98套餐送的, 很多年了, 也自动升级到 300M 光纤, 原配 TP-Link 无线路由器</li>
<li>广东有线宽带, 电视台强行升级, 原配杂牌 AP</li>
<li>华为 mifi , 自驾旅游时用, 配置飞猫物联网流量卡, 600G/月</li>
</ul>
<hr>
<h2 id="_3">嗯哼<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<p>101.camp 是无意中在 naemcheap 抢到的域名, 用 github-pages 发布,
基于 cloudflare 进行加速.</p>
<p>没想到除了 mifi 其它基本无法打开,
感觉不对味儿.</p>
<p>追查了一下, 发现, cloudflare 发布的公共 DNS 服务: 1.1.1.1 </p>
<ul>
<li>除了 mifi 无线接入电脑后, 可以 Ping 通</li>
<li>其它所有 wifi 热点, 接入后, 根本不解析</li>
<li>这就很说明问题了...</li>
</ul>
<p><img alt="R7000" src="http://ydlj.zoomquiet.top/ipic/2020-03-31-cfgAP.jpg"></p>
<blockquote>
<p>追查了一下国内可用公共 DNS 服务, 在路由器上配置</p>
</blockquote>
<p><img alt="cnPUBDNS" src="http://ydlj.zoomquiet.top/ipic/2020-03-31-cnPUBDNS.jpg"></p>
<p>对比, 无法配置 AP 的有线宽带:</p>
<p><img alt="cnNOMDNS" src="http://ydlj.zoomquiet.top/ipic/2020-03-31-cnNOMDNS.jpg"></p>
<p>以及一直可以访问, 但是很慢的 mifi :</p>
<p><img alt="mifi" src="http://ydlj.zoomquiet.top/ipic/2020-03-31-mifi.jpg"></p>
<hr>
<h2 id="_4">所以<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<div class="highlight"><pre><span></span><code><span class="n">但行好事</span>
<span class="n">莫问前程</span>
<span class="n">好好学习</span>
<span class="n">天天向上</span>
</code></pre></div>
<p>这儿的 <code>好</code>, 是四声, 自己喜欢的事儿.</p>
<p>什么是不惑?</p>
<blockquote>
<p>从心所欲不逾距</p>
</blockquote>
<p>也就是说, 将欲望本身进行 hacking , 从源头清除可能触发和谐的念头.</p>
<p>那么, 具体怎么作呢?</p>
<p>这是另外一个系列的嗯哼了...</p>
<hr>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li><a href="https://www.iplaysoft.com/p/cloudflare-dns">1.1.1.1 好记牛逼 - Cloudflare 推出全球平均速度最快的 DNS! - 异次元软件下载</a><ul>
<li><a href="https://www.iplaysoft.com/news/2773">腾讯旗下 DNSPod 也推出公共 DNS 解析服务 Public DNS+ - 异次元软件下载</a></li>
<li><a href="https://www.iplaysoft.com/alidns.html">阿里公共 DNS 解析服务器 - 上网加速、无广告、无劫持、全国高速节点、低延迟响应 - 异次元软件下载</a></li>
</ul>
</li>
<li>...</li>
<li>豆列:<a href="https://www.douban.com/doulist/119293075/">蟒营™101.camp</a></li>
</ul>
<p>文中链接感谢<a href="https://linux.cn/static/tools/a.html">"文章助手"的助手</a> 的支持,
(来自 <a href="(https://linux.cn/article-11850-1.html)">LINUX中国</a> 的小应用)</p>
<ul>
<li>点击, 将自动跳入小应用, 并复制链接到剪贴板</li>
<li>然后, 打开浏览器, 复制到地址栏, 就能访问了</li>
<li>好处, 避开了微信内置特殊浏览器的有关屏蔽策略</li>
<li>问题, 操作复杂了, 要打开手机上的浏览器, 如果在桌面微信则无法使用</li>
</ul>
<p>JD 下单链接 -> 点击后再打开浏览器复制到地址栏访问 -> 俺能获得少许佣金:</p>
<ul>
<li><a href="https://union-click.jd.com/jdc?e=&p=AyIGZRNdEgMTDlEbXCUHEANXGlgSCxsOUysfSlpMWGVCHlBDUAxLBQNQVk4YCQQAQB1AWQkFHUVBRhkSQw9THUJVEEMFSgxUVxZPI0AOFwVRGVoWBRsOXB1rC2RaQQNlDEFhZ0NcT159dhtGKX5bUw4eN1QrWxQDEQVWGFkXBSI3VRxrVGwXBl0cXiUDIgdRElkdBxIAUxhcFwsiAFUSa35cTFs1XwNBRyI3ZRhrJTISN1YrGXsBQVcFElNCARMPAU5eEVIVD1wfDxMDFQcBTwkQVkJXUytZFAMWDg%3D%3D">寻路中国&江城(共2册)</a></li>
<li>...</li>
</ul>
<hr>
<blockquote>
<blockquote>
<p>NN 3969</p>
</blockquote>
</blockquote>
<p>好文笔,感叹号年度配额: <strong>1/3</strong></p>
<p>投稿/反馈邮箱:</p>
<div class="highlight"><pre><span></span><code><span class="n">askdama</span><span class="nv">@googlegroups</span><span class="p">.</span><span class="n">com</span>
</code></pre></div>
<hr>
<p>ZoomQuiet/<strong><a href="https://mp.weixin.qq.com/s/N5TuRRbF485D4Q90XdDA7g">大妈</a></strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个<a href="https://mp.weixin.qq.com/s/N5TuRRbF485D4Q90XdDA7g">大妈</a>:</p>
<div class="highlight"><pre><span></span><code><span class="n">私自嗯哼</span><span class="p">:</span> <span class="n">ZoomQuiet</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">ZoomQuiet42</span><span class="p">)</span>
<span class="n">公开课程</span><span class="p">:</span> <span class="n">蟒营</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">Mainium</span><span class="p">)</span>
<span class="n">历史吐糟</span><span class="p">:</span> <span class="n">Chaos42</span> <span class="p">(</span><span class="n">订阅号</span> <span class="n">PythoniCamp</span><span class="p">)</span>
<span class="k">as</span> <span class="n">核心组织者</span><span class="p">:</span>
<span class="n">PyChina</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">PyChinaOrg</span><span class="p">)</span>
<span class="n">本地社区</span><span class="p">:</span>
<span class="n">GDG珠海</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">GDG</span><span class="o">-</span><span class="n">ZhuHai</span><span class="p">)</span>
<span class="n">TFUG珠海</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">ZH_TFUG</span><span class="p">)</span>
</code></pre></div>
<hr>钩陈/ 什么是程序媛?2020-03-04T14:42:00+08:002020-03-08T15:42:00+08:00ZoomQuiettag:blog.zoomquiet.io,2020-03-04:/oldtouch-codeing-lady-380s.html<p>OldTouch/ zoomquiet personal define Code Lady by self story</p><p>这是大妈在 <strong>ZoomQuiet</strong> 的第<strong>009</strong>篇原创</p>
<blockquote>
<p>普通程序老猿一则回忆痕迹...</p>
</blockquote>
<hr>
<h2 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>蟒营™Python入门班 第6期, 已经上线开始报名了;</p>
<p>这个月最大的节日是 <code>三八.女神节</code>;</p>
<p>所以, 很早就在琢磨如何优惠;</p>
<p>不过, 先得明确一个问题...</p>
<hr>
<h2 id="_2">问题<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<blockquote>
<p>为什么要给女生特别优惠?</p>
</blockquote>
<p>其实, 答案很明显, 从俺的社区称号都可以推理出了;</p>
<p>为什么, 俺是 <code>大妈</code> 而不是 <code>大爷</code>?</p>
<p>民间也是, <code>大爷</code> 总是和骂人联系在一起,
而 <code>大妈</code> 总是有点儿亲近+耍赖的意思.</p>
<p>当然是因为:</p>
<ul>
<li>在家, 永远是 <code>大妈</code> 在干活</li>
<li>大爷们总是背着手休息...</li>
</ul>
<p>可是, 这又是为什么呢?</p>
<hr>
<h2 id="_3">分析<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<p>其实, 人类一开始, 都是 <strong>"大妈"</strong> 掌管家族的, 大象至今也是如此;</p>
<p>因为, 那时主要靠采集, 生存关键因素是食物经验, 而没有文字时,
活的长的那个性别拥有更多经验, 由 TA 来指挥部落生存机率高;</p>
<p>而从生理上, 因为女性拥有必须能承担两人以上同时消耗的生理结构,
所以, 生命力更强, 从而一般也活的更长, 进而导致 <strong>"大妈"</strong> 们统治家族部落;</p>
<p>直到人类发明了武器, 从采集变成狩猎为主要营养来源时, 男性才逐渐发挥暴发力强, 以及性格上更加激进等等优势, 接替 <strong>"大妈"</strong> 们统治家族部落;</p>
<p>再后来, 男性通过文字以及国家制度的发明, 设计了男尊女卑的社会文化,
才从生理优势之外, 在社会结构中注入了额外优势;</p>
<p>导致女性一直在人类各种社会中处于从属状态;</p>
<p>凡是男性不愿意干的事儿, 都是女性去干;</p>
<p>编程就是这种工作:</p>
<ul>
<li>早年, 编程中的编, 是编织的编</li>
<li>因为, 那时还没有磁盘发明, 连磁带都没有</li>
<li>录音机用的还是钢丝...</li>
<li>而程序是通过在卡片纸上打孔, 象毛衣编织机那种结构, 再由电路转换为内存程序执行的;</li>
<li>但是, 在 NASA 火箭系统中, 极端的温度变化, 导致无论什么纸带都无法正常工作;</li>
<li>所以, 只好在细线缆上通过磁环的穿过与否来记录只读程序</li>
</ul>
<blockquote>
<p>原理很简单:</p>
</blockquote>
<p><img alt="1" src="http://ydlj.zoomquiet.top/ipic/2020-03-04-ScreenShot%202020-03-04%2022.45.42.jpg"></p>
<p><img alt="0" src="http://ydlj.zoomquiet.top/ipic/2020-03-04-ScreenShot%202020-03-04%2022.45.49.jpg"></p>
<p>线选开关存储器(Core rope memory),
也有人叫它"绳索存储器". 实际上是一个有很多磁环构成的阵列:</p>
<ul>
<li>一根导线如果穿过了磁环则导线上的电流就会发生改变,</li>
<li>系统检测到这种改变后就把数据解释为1,否则就为0</li>
</ul>
<p>只能由女性编(织工)程人员, 按照程序的二进制字符序列编织为一组组磁环和线缆形成的程序卡;</p>
<p><img alt="成品大致这样..." src="http://ydlj.zoomquiet.top/ipic/2020-03-04-ScreenShot%202020-03-04%2022.43.27.jpg"></p>
<p>这事儿, 男性干不了...</p>
<p>后来, 技术进步了,但是, 依然没有男性愿意去作,
因为, 坐在打字机前输入程序, 太象秘书小姐了, 太娘了...</p>
<p>所以, 那个时代的程序员, 全部是程序媛.</p>
<p>然后? 当然, 慢慢的, 这个行业飞速发展, 编程变成一个高大上的工作,
然后, 男性果断又重新运用文化武器, 说女性逻辑/数学/空间想象力不足,
又重新掌握了程序员这一果然发展越来越好的职业,</p>
<p>于是就又变成了程序猿.</p>
<hr>
<h2 id="_4">嗯哼<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<blockquote>
<p>而实际上, 女性天生适合编程的...</p>
</blockquote>
<p>不说编程发明人就是 Ada 女神了, 也不说 NASA 早期神级程序媛, 登月系统主程以及架构师
M.Hamilton ...</p>
<p><img alt="380" src="http://ydlj.zoomquiet.top/ipic/2020-03-04-ScreenShot%202020-03-04%2023.06.42.jpg"></p>
<p>就回顾一下俺以往遇见过的程序媛吧:</p>
<blockquote>
<p>2000, 在上海:</p>
</blockquote>
<p>那时, 刚刚毕业, 又在广告公司里蹉跎了一年, 总算通过同学介绍, 凭自学的 PHP 进入上海一家软件公司;
遇到程序媛C ,好象是复旦数学系毕业, 自学 C++;
负责核心业务系统的开发,
而俺不过是前端小程序猿...</p>
<p>自己用盗版 UltraEdit 编写 HTML/JS/CSS/PHP/... 各种脚本,
只能跑在服务端;</p>
<p>而人家用正版 Visual Studio 高端复杂的 IDE, 编写 C++ 桌面产品;</p>
<p>那简直是仰望星空...</p>
<p>当时, 还不以为然, 因为已经皈依了 GNU ~ 自由软件原教旨主义;</p>
<p>但是, 后来有机会联合完成一个上海交通厅的项目, 涉及一个随机出奖的功能,
人家, 就用一晩上自学 PHP 并设计完成了通过在一个图片所有像素中大致均匀分布中奖点的方法;
完成了指定任意数量的随机中奖.</p>
<p><strong>Orz...</strong></p>
<blockquote>
<p>2004, 北漂:</p>
</blockquote>
<p>因为自学 Python ,又在网络中参与了啄木鸟社区的创建, 从而获得进入 SINA 工作的机会;</p>
<p>进入刚刚重组的邮件技术部, 沉迷于 FreeBSD 的全新世界;</p>
<p>作的是过程改进, 结果发现, 当时整个儿 SINA 免费邮箱业务是基于定制的 POSTFIX,
将2万行代码, 硬生生扩展到7万行包含业务逻辑的, 是位程序媛;</p>
<p>开会从来不说话, 无论什么功能, 基本上3天就能交付...</p>
<p>继续仰望星空...</p>
<p><strong>Orz...</strong></p>
<blockquote>
<p>2008, 珠海:</p>
</blockquote>
<p>又因为 SINA 的经历, 当时还不是集团公司的金山, 想对研发中心进行过程改进;</p>
<p>于是幸运的抓住机会南下;</p>
<p>因为不涉及具体业务系统开发, 所以, 在实习生大批进来后, 分配俺一个任务:</p>
<div class="highlight"><pre><span></span><code>教会愿意学的实习生用 Python
</code></pre></div>
<p>这就是现在蟒营™开源网络课程框架的发源,</p>
<p>但是, 印象深的不是俺班上的学员,
而是一位 程序媛L, 她没选择 Python , 而是坚定的去了 C++ 实习组;
毕业 Party 时, 才知道, 原来人家的志愿就是病毒分析;</p>
<p>然后, 又几年过去, 她已经是病毒分析中心主任了, 现在又是两娃的妈妈;
却坚实的掌握全球几乎所有PC 病毒特征, 以及病毒制造工作室的代码特性痕迹;</p>
<p>而俺已经反复被创业变成 Indie Hacker 来通过网课来生存了...</p>
<p>只能继续仰望星空...</p>
<p><strong>Orz...</strong></p>
<p>以及, 又后来, 在技术大会, 程序媛专场作主持时, 见到全国各种领域中的程序媛,</p>
<p>简直仰望星空到颈断...</p>
<p><strong>Orz...</strong></p>
<hr>
<h2 id="_5">所以<a class="headerlink" href="#_5" title="Permanent link">¶</a></h2>
<p>有点不理解, 很多报名时担心自己学不会的女生, 她们的担心哪里来的...</p>
<p>所以, 这个月 蟒营™Python入门班 第6期, 决定:</p>
<blockquote>
<p>女生报名, 一律优惠 380 元整</p>
</blockquote>
<p><img alt="2020-02-28-101camp6py-reg-qrcode.jpg (JPEG Image, 448 × 364 pixels)" src="http://ydlj.zoomquiet.top/ipic/2020-02-28-101camp6py-reg-qrcode.jpg"></p>
<p>以此来支持 Python 界对程序媛的渴望;-)</p>
<p>特别是文科生也应该学编程, 理由很多,</p>
<p>简要列一下,大家自个儿选个顺眼的,刻到脑子里:</p>
<ul>
<li>让大脑二次发育</li>
<li>文科生会编程是件很'酷'的事情</li>
<li>知名记者曰过:"我觉得写一次 Python 程序之后,文科生就不会胡写中文了. "</li>
<li>李笑来的"把时间当做朋友"中曰过:<ul>
<li>多年以来,受影响最深的,并不是当时所学的 BASIC ,或者是后来所学的 PASCAL ,抑或再后来学的 C,C++ 什么的;</li>
<li>受影响最深的是一种思考方式──在跑程序之前,要反复浏览代码,在脑子里进行预演;而不是写完程序直接跑,出错了再说. 这是节省时间提高效率的重要方式. </li>
</ul>
</li>
</ul>
<p>所以,对于没有任何编程自信的好人们:</p>
<div class="highlight"><pre><span></span><code><span class="n">学习</span> <span class="n">Python</span> <span class="n">的</span>
<span class="n">目标本身</span>
<span class="n">从来不是</span> <span class="n">Python</span>
<span class="n">而是只有通过编程思维</span>
<span class="n">才能理解</span><span class="o">/</span><span class="n">接触到的</span>
<span class="n">真实世界的</span> <span class="n">Cyber</span> <span class="n">维度</span>
</code></pre></div>
<hr>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li>豆列:<a href="https://www.douban.com/doulist/119293075/">蟒营™101.camp</a></li>
</ul>
<p>文中链接感谢<a href="https://linux.cn/static/tools/a.html">"文章助手"的助手</a> 的支持,
(来自 <a href="(https://linux.cn/article-11850-1.html)">LINUX中国</a> 的小应用)</p>
<ul>
<li>点击, 将自动跳入小应用, 并复制链接到剪贴板</li>
<li>然后, 打开浏览器, 复制到地址栏, 就能访问了</li>
<li>好处, 避开了微信内置特殊浏览器的有关屏蔽策略</li>
<li>问题, 操作复杂了, 要打开手机上的浏览器, 如果在桌面微信则无法使用</li>
</ul>
<p>JD 下单链接 -> 点击后再打开浏览器复制到地址栏访问 -> 俺能获得少许佣金:</p>
<ul>
<li><a href="https://union-click.jd.com/jdc?e=&p=AyIGZRtSEAQbAVASWRMyFgNSE10VABcGVx1rUV1KWQorAlBHU0VeBUVNR0ZbSkdETlcNVQtHRVNSUVNLXANBRA1XB14DS10cQQVYD21XHgNRHFMTAhACVBldJURMcyIYHG9qd083Xj0dX1l5PXpbHGIeC2UaaxUDEwRXGFgXABU3ZRtcJUN8B1QaXBECGgRlGmsVBhsFVxlcHAcbDl0eaxICGzc%2BRQVJYlZfAV5rJTIRN2UrWyUBIkU7TFtCV0AGVUxcFQJAAlUYDkUDEgVQSV9AURNSABoLQQQiBVQaXxw%3D">Head First Python(中文版) (美)巴里 中国电力出版社</a></li>
<li><a href="https://union-click.jd.com/jdc?e=&p=AyIGZRprFQIQBVUcWREyVlgNRQQlW1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtbFwASAFcfa2hhbEdVTzhQYRdxE1MGSGplQAVDOmUOHjdUK1sUAxEFVhhZFwUiN1Uca0NsEgZUGloUBxEFUCtaJQIWDlcYWBAEEg5dEl0lBRIOZXAFS15yQw1PHiUyIgRlK2sVMhE3F3VcRwVGBFEbUkIEGwBQGFwRUkZVVB8IQQAbBVwaCEYCRzdXGloRCw%3D%3D">奇特的一生:柳比歇夫坚持56年的"时间统计法"</a></li>
<li><a href="https://union-click.jd.com/jdc?e=&p=AyIGZRtTHAATD1wdWhEyFQJcHlMcBhcAVR9rUV1KWQorAlBHU0VeBUVTQg1cAAQJS14MRg1EDUtGfFcUQ0VjVld1FFktVlxWRltZAVFsSlJZHF4cBxoOUR5cFQYFUBZFBxlQU0VCTBhLXh5VFFlrQmlCYAheBFFnG3ENHlkTYVtgDE9aQw4eN1QrWxQDEQVWGFkXBSI3VRxrVGwSBlYTUhUBEDdUK1sRCxAFVxxTHQUVAlArXBULImwLRQd1RkpTECtrJQEiN2UbaxYyUGlTHwwcBxADBUxdEAYXD1RLCxUCRVNVEwgRUkIEXE9cHDIQBlQfUg%3D%3D">建筑的永恒之道,[美] C·亚历山大,中国水利水电出版社</a></li>
<li>...</li>
</ul>
<hr>
<blockquote>
<blockquote>
<p>NN 3942</p>
</blockquote>
</blockquote>
<p>好文笔,感叹号年度配额: <strong>1/3</strong></p>
<hr>
<p>ZoomQuiet/<strong><a href="https://mp.weixin.qq.com/s/N5TuRRbF485D4Q90XdDA7g">大妈</a></strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个<a href="https://mp.weixin.qq.com/s/N5TuRRbF485D4Q90XdDA7g">大妈</a>:</p>
<div class="highlight"><pre><span></span><code><span class="n">私自嗯哼</span><span class="p">:</span> <span class="n">ZoomQuiet</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">ZoomQuiet42</span><span class="p">)</span>
<span class="n">公开课程</span><span class="p">:</span> <span class="n">蟒营</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">Mainium</span><span class="p">)</span>
<span class="n">全国大会</span><span class="p">:</span> <span class="n">PyChina</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">PyChinaOrg</span><span class="p">)</span>
<span class="n">本地社区</span><span class="p">:</span>
<span class="n">GDG珠海</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">GDG</span><span class="o">-</span><span class="n">ZhuHai</span><span class="p">)</span>
<span class="n">TFUG珠海</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">ZH_TFUG</span><span class="p">)</span>
<span class="n">历史吐糟</span><span class="p">:</span> <span class="n">Chaos42</span> <span class="p">(</span><span class="n">订阅号</span> <span class="n">PythoniCamp</span><span class="p">)</span>
</code></pre></div>
<hr>公告/ 呢喃:收集 私人片段2020-03-02T10:42:00+08:002020-03-05T15:35:00+08:00ZoomQuiettag:blog.zoomquiet.io,2020-03-02:/ann-murmur-0.html<p>ANN/ what is MurMur</p><p>终于还是得在公众号嗯哼, 其它渠道都主动和谐了;</p>
<p>那么先厘定的当然是栏目了;</p>
<div class="highlight"><pre><span></span><code>事不过三
</code></pre></div>
<p>原先就想三个:</p>
<ul>
<li>公告 ~ ANNouncement
- 拙见 ~ IMHO(In My Humble Opinion)</li>
<li>钩陈 ~ OldTouch</li>
</ul>
<p>但是, 42才是世界全部奥妙哪...</p>
<p>我等凡人, 还是多尝试近似小值: <code>4.2</code></p>
<p>所以, 追加一则:</p>
<div class="highlight"><pre><span></span><code>呢喃 ~ MurMur
</code></pre></div>
<p>根源 -> <a href="https://zhuanlan.zhihu.com/laiyh">一个小老板的呢喃 - 知乎</a></p>
<p>专栏作者: 赖勇浩 ,
也是 <a href="https://union-click.jd.com/jdc?e=&p=AyIGZRprFQIXDlYdXBUyVlgNRQQlW1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtbEAsRAVIbaw8CFkwGUDNqYhJhL2QzFF4QYj0BC2UOHjdUK1sUAxEFVhhZFwUiN1Uca0NsEgZUGloUBxMDVitaJQIWDlcbWxQGFwdSGlMlBRIOZXAFS15yQw1PHiUyIgRlK2sVMhE3F3VfEgMQVFVMDhYAQQVQSFxGCxICVBIPEAEaVAJIDhFVFTdXGloRCw%3D%3D">"编写高质量代码:改善Python程序的91个建议"</a> 作者;
更加是 珠三角技术沙龙(techparty.org)主席;
又是连续创业者...</p>
<p>可能是俺认识的所有技术专家中, 文笔绝佳人物;</p>
<p>他用 <code>呢喃</code> 来指代了这么一类原创内容:</p>
<ul>
<li>真原创</li>
<li>真心话</li>
<li>真小确幸</li>
<li>真...</li>
</ul>
<p>真切却很微小的思绪, 除了能记述自己私人的瞬间感想外,
难以界定能对社会有什么帮助,
但是,就是想嗯哼出来...</p>
<p>所以, 俺也是:</p>
<ul>
<li>除了正式决议要公告外</li>
<li>一些具体成型的吐糟后</li>
<li>值得回思的上古事件等</li>
<li>...还是有些无法分类, 近乎 <code>others</code> 的文字</li>
</ul>
<p>也一起用 <code>呢喃</code> 吧...</p>
<hr>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<p>文中链接感谢<a href="https://linux.cn/static/tools/a.html">"文章助手"的助手</a> 的支持,
(来自 <a href="(https://linux.cn/article-11850-1.html)">LINUX中国</a> 的小应用)</p>
<ul>
<li>点击, 将自动跳入小应用, 并复制链接到剪贴板</li>
<li>然后, 打开浏览器, 复制到地址栏, 就能访问了</li>
<li>好处, 避开了微信内置特殊浏览器的有关屏蔽策略</li>
<li>问题, 操作复杂了, 要打开手机上的浏览器, 如果在桌面微信则无法使用</li>
</ul>
<p>JD 下单链接 -> 点击后再打开浏览器复制到地址栏访问 -> 俺能获得少许佣金:</p>
<ul>
<li><a href="https://union-click.jd.com/jdc?e=&p=AyIGZRprFQIXDlYdXBUyVlgNRQQlW1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtbEAsRAVIbaw8CFkwGUDNqYhJhL2QzFF4QYj0BC2UOHjdUK1sUAxEFVhhZFwUiN1Uca0NsEgZUGloUBxMDVitaJQIWDlcbWxQGFwdSGlMlBRIOZXAFS15yQw1PHiUyIgRlK2sVMhE3F3VfEgMQVFVMDhYAQQVQSFxGCxICVBIPEAEaVAJIDhFVFTdXGloRCw%3D%3D">"编写高质量代码:改善Python程序的91个建议"</a></li>
</ul>
<hr>
<blockquote>
<blockquote>
<p>NN 3940</p>
</blockquote>
</blockquote>
<p>好文笔,感叹号年度配额: <strong>1/3</strong></p>
<hr>
<p>ZoomQuiet/<strong><a href="https://mp.weixin.qq.com/s/N5TuRRbF485D4Q90XdDA7g">大妈</a></strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个<a href="https://mp.weixin.qq.com/s/N5TuRRbF485D4Q90XdDA7g">大妈</a>:</p>
<div class="highlight"><pre><span></span><code><span class="n">私自嗯哼</span><span class="p">:</span> <span class="n">ZoomQuiet</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">ZoomQuiet42</span><span class="p">)</span>
<span class="n">公开课程</span><span class="p">:</span> <span class="n">蟒营</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">Mainium</span><span class="p">)</span>
<span class="n">全国大会</span><span class="p">:</span> <span class="n">PyChina</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">PyChinaOrg</span><span class="p">)</span>
<span class="n">本地社区</span><span class="p">:</span>
<span class="n">GDG珠海</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">GDG</span><span class="o">-</span><span class="n">ZhuHai</span><span class="p">)</span>
<span class="n">TFUG珠海</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">ZH_TFUG</span><span class="p">)</span>
<span class="n">历史吐糟</span><span class="p">:</span> <span class="n">Chaos42</span> <span class="p">(</span><span class="n">订阅号</span> <span class="n">PythoniCamp</span><span class="p">)</span>
</code></pre></div>
<hr>呢喃/ 20.32020-03-01T20:42:00+08:002021-07-25T21:13:47+08:00ZoomQuiettag:blog.zoomquiet.io,2020-03-01:/200301-ZoomQuiet-MurMur-collection.html<p>MurMur/ daily historic card writing, collection in 2020.3</p><h2 id="at-20203">呢喃 at 2020.3<a class="headerlink" href="#at-20203" title="Permanent link">¶</a></h2>
<blockquote>
<p>不为什么, 就这么开始了日历卡连载</p>
</blockquote>
<p><img alt="200301" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.002.jpeg"></p>
<p><img alt="200302" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.003.jpeg">
选择什么内容放在日历卡上?
历史上的今天, 是理工直男的自然选择了;
真正开始制作和选择, 才发现自己真正的兴趣偏爱...
真的是只有开始尝试, 才能慢慢发现如何作好的方式.
争取能坚持发布大妈日历卡, 作到 有用/有趣/有种 一种以上?</p>
<p>是也乎,( ̄▽ ̄)</p>
<p><img alt="200303" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.004.jpeg">
图片限制就是 Twitter 的140字, 比纯文本的500字要小很多;非常象命题作文;-)
这几天都在想, 38节所在月份, 蟒营™Python 入门班应该以什么力度来表示? 最后决定:
凡是女生, 全部优惠 380 元
只是, 报名表功能所限先付费再退惠</p>
<p>是也乎,( ̄▽ ̄)</p>
<p><img alt="200304" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.005.jpeg"></p>
<p>伊能 静, 当年那盘专辑 "19岁的最后一天", 连续听了半年, 生生听掉了磁粉;
从那之后, 才接触到了流行音乐, 并进一步探索到 Bach ...</p>
<p><img alt="200305" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.006.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3942</p>
</blockquote>
<p>很小就因为姓周而自豪 -> 因为总理;
也同时因为姓周而被 Bullying -> 因为课本中的地主 "周扒皮";
只是,现在回想, 也正是因为周姓出过这么多名人, 导致不由从小对自己就有自信,
从而在各种事情上都能作的不差...
所以, 信心比能力重要.</p>
<p><img alt="200306" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.007.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3944</p>
</blockquote>
<p>周5总是最忙, 因为大家都想着明天开始有两天休息了,
所以, 今天就可以多作些事儿,于是特别爱开会, 而且是长会;
结果, 积累了一周的劳累, 最后一晩还 double 了,
导致周六根本起不来, 连带周日也没精神出来玩,
这就是经典的报复性工作.</p>
<p><img alt="200307" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.008.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3944</p>
</blockquote>
<p>昨天 王佩 老师的写作班, 布置作业是要采访同学, 并用 "意象阶梯" 手法来尝试阐述;
直觉想去了解的同学, 其实就是自己...
因为, 一个人, 最难又最应该了解的其实, 一直是自己;
可这事自古就没什么好办法;
通过持续写作来逐渐逼近自己, 最靠谱.</p>
<p><img alt="200308" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.009.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3946</p>
</blockquote>
<p>妇女节是一个多世纪前美国女工大罢工而争取到的,
那么今天 女神/女王节 呢?
想来是我国长期男女比例失调引发的社会情绪咯?
但是, 俺更信圣贤曰过的:</p>
<div class="highlight"><pre><span></span><code>因爱生怖
</code></pre></div>
<p>只有真正爱入心髓, 才会怕失去.
这次疫情主动隔离了一个月,全家人扎实的腻在一起...</p>
<p><img alt="200309" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.010.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3947</p>
</blockquote>
<p>昨天蟒营™课程直播, 往期学员/现在助教, 分享 TA 当时持续崩溃的体验;
才发现, 原来自己乐于帮助初学者入门,
是因体验到那种微小的推动, 却完成一个学习者的形成,
这种成就感如同亲手引爆了一个全新宇宙的诞生;
编程真是0->1级别的跃迁啊.</p>
<p><img alt="200310" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.011.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3947</p>
</blockquote>
<p>周末 王佩 老师写作班布置任务是相互采访, 再用古典文体描述最有趣的那位同学;
俺被投票指定为小组被采访对象; 快速直觉的42分钟对谈中,听到自己说的那些,才发现:
原来, 从来就没长大过, 依旧是那个乐于站书摊前几小时蹭完最新漫画的中二少年 ;-)</p>
<p><img alt="200311" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.012.jpeg">
<img alt="200311-" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.013.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3934</p>
</blockquote>
<p>, 嗯哼?不觉中就两年了..当初..讨论...导致...移民..
俺也承诺家里领导要一起过活至少250年的;
所以, 时间到底什么重要? ...普通人, 当然只关注过日子而已....
( ̄▽ ̄)发布时就有预感了...原版可以去 t.cn/A6zyHiUK 看</p>
<p><img alt="200312" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.014.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3950</p>
</blockquote>
<p>嗯哼? 最近 MurMur 的比较多呵...今天这卡, 不知道是否触发什么...
每一个具体的一天,放宽到人类历史中, 真的什么事儿都可能发生.
但是, 对于普通人还是眼前的日子最重要;
也只有历史自觉的人, 才会为后代着想,从而 对环境/生态/..担心.</p>
<p><img alt="200313" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.015.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3951</p>
</blockquote>
<p>发现日常节奏非常容易被击破:
这几天发现BUKA没食欲,而且会从窗台上滑落在地, 这对猫而言太不正常了;
抱到医院一验, 肌酐指数超过正常十几倍, 基本肾衰竭...
对11岁的老喵,也只能当活马试一下, 点滴/保温/流食/...标准流程下来,半天就没了.</p>
<p><img alt="200314" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.016.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3952</p>
</blockquote>
<p>可能叕触发什么..但是, 一点儿文字关联不上吧-(
昨天又意外支出小半天来研究推拉门的锁扣..阳台上的坏了,机智的想到将书房不常用那一侧相同型号的拆下来去替换;结果没想明白怎么折, 劲儿用大了居然从中断裂; 去小区门口五金店一问居然没卖的..半天就过去了.</p>
<p><img alt="200315" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.017.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3953</p>
</blockquote>
<p>Indie Hacker 最常见困扰之一, 就是家务; 相比职场中各种形式会议对思考的中断, 家务更象宿命, 无法逃避; 不过, 换种形式来管理家务却又可以当成一种身体锻炼及亲子活动; 可能技巧就是~ 0: 提前约定/1: 定期进行/2: 共同执行 ;-)</p>
<p><img alt="200316" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.018.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3954</p>
</blockquote>
<p>很久前大妈曾经总结: 项目所有失败经验都来自公司, 所有成功体验都来自社区;
没想到一语成谶, 至今也没突破了...
想想, 可能是社区项目没什么功利心, 大家只是单纯一心想将事儿作成;
另外, 沟通时对事不对人, 在社区中也是自然状态; 其它场景中难矣.</p>
<p><img alt="200317" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.019.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3955
上周自怼圈例会触发新运动: W2W ~ 以文唤文;
Writing to Writing .. 有点儿象杂志约稿:</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="mi">0</span><span class="o">:</span><span class="w"> </span><span class="err">列出想写选题</span><span class="o">,</span><span class="w"> </span><span class="err">大家投票</span>
<span class="mi">1</span><span class="o">:</span><span class="w"> </span><span class="err">发布提案通告结果</span>
<span class="mi">2</span><span class="o">:</span><span class="w"> </span><span class="err">主笔发布初稿</span>
<span class="mi">3</span><span class="o">:</span><span class="w"> </span><span class="err">召唤对应唤稿</span>
<span class="mi">4</span><span class="o">:</span><span class="w"> </span><span class="err">唤稿一则以上</span>
</code></pre></div>
<p>才联合发布, 好玩;-)</p>
<p><img alt="200318" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.020.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3956</p>
</blockquote>
<p>特选事件->长达146年的巡回演出, 就是想提醒坚持的力量;
蟒周刊从12年2月开始, 坚持整整8年了, 已经变成习惯;
各种社区的发起/运营/管理/推广/...也已经是习惯;
只是, 哪种习惯能引发持续作品输出? 现在开始得多想想.
日历卡嘛...</p>
<p><img alt="200319" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.021.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3957</p>
</blockquote>
<p>A.C.Clarke 是俺最敬佩的科幻作家, 有关科技和魔法的关系就是他断言的;
刚好在刷"西部世界"当年电影版记忆中主要是惊悚,
HBO 则创造性在原故事框架中, 注入大尺度时间, 以及 AI 生命等因素后,
成功变成神剧, 不得不真诚担心烂尾了..</p>
<p><img alt="200320" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.022.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3958</p>
</blockquote>
<p>去年大片 Alita:战斗天使 其实是失望的, 和30年前原著相比, 电影无法传达那种细致的人文背景, 好比 风之谷 电影也根本无法展现原著漫画的宏大世界;
经常向朋友推荐日本科幻漫画, 可惜成年后几乎没成功过, 为什么?
嗯哼, 这个问题很值得探讨呢..</p>
<p><img alt="200321" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.023.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3959</p>
</blockquote>
<p>之前触发的 W2W/以文唤文 运动, 没想到日历卡也能唤发;
昨天借 GUNNM 作者生日呢喃了一下, 立即有网友说早有存稿,
并授权发布,多谢哉;-)
向成人推荐最难在要给出理由; 其实只是没时间没心情真来阅读..
不过,也证明W2W有效果, 一起来唤哈</p>
<p><img alt="200322" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.024.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3960</p>
</blockquote>
<p>从09年接触DUKU到今天, 发现越来越同步老六的各种断言;
从作品选择倾向是有用/趣/种;
到现在日历卡事件的选择, 发现和 DK-14 上海现场分享的关注点一致:
奠基/建设/重生
历史事件/人物/..太多, 但最触动的还是这三类;
对大家呢?</p>
<p><img alt="200323" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.025.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3961</p>
</blockquote>
<p>不觉中 Google 变成正式英文动词并从大陆消失, 已整整10年;
虽然透过各种渠道还在持续影响着我们,
但私以为, Google 对大家最大的改变还是
->促使我们对 TCP/IP 协议有了集体的深入研究,
发现/展/明/..各种科学嗯嗯姿势Orz</p>
<p><img alt="200324" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.026.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3960</p>
</blockquote>
<p>BUKA 熬了四周终于还是离开人间.
作为纯种折耳兰喵,活了近12年, 也算是喜丧了;
走的很平静, 没什么上吐下泄的糟心事;
肾衰竭, 自行断食断水逐渐干枯到寂灭, 难以想象那种越来越无力的晕沉感;
但又舍不得直接安乐, 唉...愿上苍保祐她下一世更好</p>
<p><img alt="200325" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.027.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3963</p>
</blockquote>
<p>Indie Hacker 最大的困难是什么?
太容易令自己忙到没空思考;
为什么? 因为收入压力, 不得不想多作点儿,
可作的事儿是否有利收入增长?
难以判定, 甚至八成没用, 所以害怕去分析;
下意识找各种能作的事儿, 忙到没空去想;
那么,慢慢来..</p>
<p><img alt="200326" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.028.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3964</p>
</blockquote>
<p>三毛,不是漫画那位(当然作家三毛是和漫画三毛认了亲咯)
当年可真的风靡全球华人啊;
俺也无法免俗, 所有作品都刷过, 那篇 导向自由的律令 非常触动,一直推荐;
其实最有共鸣的还是她周游四海记录真人真事真感受的洒脱;
以及非常传奇的家庭生活,太羡慕...</p>
<p><img alt="200327" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.029.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3964</p>
</blockquote>
<p>昨天有关三毛的呢喃诱发W2W:
什么是精神独立?
W2W就是以文唤文: 抛弃无脑点赞,用文章唤取文章;
很多人怕自己写不出, 其实只有开始写才知道如何写成;
何况: 写作本身就是写作最好的回报;
投稿邮箱:</p>
<blockquote>
<p>askdama@googlegroups.com</p>
</blockquote>
<p><img alt="200328" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.030.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3966</p>
</blockquote>
<p>今天写作班论及修辞中隐喻技巧, 原以为是高深大巧;
但回过神儿来才惊觉, 现在网络中不用隐喻基本无法正常发言的吧?
比如, 这次 COVID-19 爆发, 所有学校老师被网课, 基本都被自动判定非法内容,
得专门人工配置开绿灯才能恢复教学.
地命海心...</p>
<p><img alt="200329" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.031.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3867</p>
</blockquote>
<p>COVID-19 被爆发, 各社区不得不将以往线下活动迁移到线上;
但是, 光直播/会议平台的选择就足以令组织者崩溃几次;
12年在豆瓣公司现场组织两天的黑客松时,用 join.me 共享屏幕+QQ 群语音直播;
现在统一 zoom Pro. 帐号, 爽.</p>
<p><img alt="200330" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.032.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3968</p>
</blockquote>
<p>昨夜首次尝试前后两期学员混合在一起网络直播,
就象偏远山区学校中一间教室所有年级滚动式上课一般;
结果发现, 体验不错, 非常象印度"墙中洞"教学实验中发现的 SOLE 状态;
AKA 原则是可以包含课程其它期的呢.
因为, 这是真正意义上的薪火相传...</p>
<p><img alt="200331" src="https://ipic.zoomquiet.top/2021-07-25-zq42-today-card-2003.033.jpeg"></p>
<blockquote>
<p>呢喃/ NN 3969</p>
</blockquote>
<p>程序猿一有钱就想折腾什么? 装备哉.
键盘是重灾区, 理由很正义:
吃饭的家伙, 每天陪伴自己超过10小时, 比老婆都亲的家什, 当然得认真.
相同的理由还会投射到:人体工程学椅/路由器/显示器/办公桌/游戏手柄/眼镜/..
好在都还算是些耐用品...</p>钩陈/ 被jianshu认证了2020-02-27T10:42:00+08:002020-03-05T15:43:00+08:00ZoomQuiettag:blog.zoomquiet.io,2020-02-27:/oldtouch-historic-jianshu-end.html<p>OldTouch/ zoomquiet blocked by jiansho for NULL</p><p>这是大妈在 <strong>ZoomQuiet</strong> 的第<strong>005</strong>篇原创</p>
<h1 id="jianshu">钩陈/ 被jianshu认证了<a class="headerlink" href="#jianshu" title="Permanent link">¶</a></h1>
<blockquote>
<p>普通老程序猿一则事件回响...</p>
</blockquote>
<hr>
<h2 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>参考: <a href="https://mp.weixin.qq.com/s/N5TuRRbF485D4Q90XdDA7g">公告/ 叕重新开始的大妈</a></p>
<p>就知道, 俺作为一头羞涩的程序猿,
40多年来, 从来只敢代表技术社区发言,
很少以私人身份发表言论;</p>
<p>只是最近才发现, 原来俺一直以为毫无作用的 <code>吐糟</code> ,
也是有社会正面意义的, 这才开辟了公众号;</p>
<p>和其它管理的社区公众号隔离, 真正开始表述自己代码之外的思考.</p>
<hr>
<h2 id="_2">现象<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<blockquote>
<p>200227 1110 收到短信通知</p>
</blockquote>
<div class="highlight"><pre><span></span><code> <span class="p">[</span><span class="n">简书</span><span class="p">]</span><span class="n">尊敬的简书用户您好</span><span class="p">,</span>
<span class="n">由于您有可能违反了简书社区管理规定</span>
<span class="p">(</span><span class="n">包括但不仅限于违反法律法规</span><span class="p">,</span>
<span class="n">不友善行为</span><span class="p">,</span><span class="n">发布垃圾信息</span><span class="p">,</span><span class="n">恶意行为如简信滋扰</span><span class="p">),</span>
<span class="n">给予您冻结账户的惩罚</span><span class="p">,</span>
<span class="n">详情请看</span><span class="p">:</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">dwz</span><span class="o">.</span><span class="n">cn</span><span class="o">/</span><span class="mi">3</span><span class="n">Bc0DZ</span>
</code></pre></div>
<hr>
<h2 id="_3">问题<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<blockquote>
<p>俺的直觉...</p>
</blockquote>
<p>应该不是最近俺在 jianshu 上的行为,
因为, 近两年以来, 俺在 jianshu 上的发表内容,
都是 <a href="http://weekly.pychina.org/issue/index.html">- Issue ~蠎周刊 ~汇集全球蠎事儿 ;-)</a> ,</p>
<p>Python 技术社区定期快讯的摘要翻译.</p>
<p>没可能触发有关规定;</p>
<hr>
<h2 id="_4">分析<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<blockquote>
<p>俺的猜想...</p>
</blockquote>
<p>作为一个有理想有道德有目标的 SNS 网站,
jianshu 是有盈收压力的,</p>
<p>当初, jianshu 作为第一个支持 Markdown 写作界面的 SNS 网站,
简直提前圆了豆瓣被期待多年的一个核心功能;</p>
<p>所以, 很是兴高采烈的注册, 开始使用;</p>
<p>然后, 发现尴尬了...</p>
<div class="highlight"><pre><span></span><code>没人来看
</code></pre></div>
<p>俺从 2014.12.12 注册 jianshu 以来,
发表超过30万字各类文章,但是,收获的点赞只有26个;</p>
<p>而且, jianshu 的功能,也一直没有什么变化,
只是界面越来越复杂, 手机 app 越来越慢而已.</p>
<p>好在, jianshu 并不是俺主要内容输出空间;</p>
<p>只是当初, 作为第一批输出 打赏 功能的网站, 也想试试运气;</p>
<p>然后, 真的没有然后了.</p>
<p>所以, 这次突然到来的惊喜:</p>
<div class="highlight"><pre><span></span><code>人生首次被一家网站认证
</code></pre></div>
<p>应该就是俺以往发布的文字中, 包含了什么最新关键词, 从而引发了和谐.</p>
<p>进一步的, 还发现:</p>
<p><img alt="1d1d" src="http://ydlj.zoomquiet.top/ipic/2020-02-27-jianshu-dlall.jpg"></p>
<p>jianshu 虽然提供了大度的一键下载所有文章的迁移功能, 但是:</p>
<ul>
<li>每天只能一次</li>
<li>生成的 .rar 压缩文件其实无法下载<ul>
<li>下载到本地的是一个残缺的 .html 文件</li>
</ul>
</li>
</ul>
<p>可见, jianshu 的压力是真的, 所以, 基础功能的测试, 基本也都放过了...
全力在保流量.</p>
<hr>
<h2 id="_5">对策<a class="headerlink" href="#_5" title="Permanent link">¶</a></h2>
<blockquote>
<p>凉办</p>
</blockquote>
<p>幸好, 俺早已习惯性的备份了文章,</p>
<p>因为, 早年在 SINA 时有位技术大拿(FreeBSD 中国社区创始人 ,delphij)曰过:</p>
<div class="highlight"><pre><span></span><code>冗余不做,日子甭过;
备份不做,十恶不赦.
</code></pre></div>
<p>所以, 两年前, jianshu 下架了俺一篇文章时, 就开始习惯性的备份自己在 jianshu 上发布的文章;</p>
<p>好在, 俺一向是先在本地完成文稿, 然后,才用 jianshu 们的编辑器来发布而已;
自然, 在本地一直有备份, 而且,习惯性的是定期同步到一些项目托管仓库中;
(是的 GitHub/gitlab/Bitbucket/.. 一个不能少,能用多少种, 就用多少种)</p>
<h2 id="_6">样章<a class="headerlink" href="#_6" title="Permanent link">¶</a></h2>
<blockquote>
<p>之前在 jianshu 中被和谐的文章都是什么?</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="c1"># L10E01🐙红黄蓝 ~ 虐童战纪</span>
<span class="o">></span> <span class="n">背景</span>
<span class="o">~</span> <span class="n">阐述</span> <span class="n">记录</span><span class="o">/</span><span class="n">问题</span><span class="o">/</span><span class="n">事件</span><span class="o">/...</span> <span class="n">发生的背景</span>
<span class="o">></span> <span class="mi">10</span><span class="n">万字写书计划活动</span>
<span class="o">-</span> <span class="n">大纲要求</span><span class="p">:</span><span class="n">请包含</span><span class="p">[</span><span class="n">标题</span><span class="p">],[</span><span class="n">副标题</span><span class="p">],[</span><span class="n">目录</span><span class="p">]</span><span class="n">三部分内容</span><span class="p">,</span><span class="n">题材不限</span>
<span class="o">-</span> <span class="n">提交日期</span><span class="p">:</span><span class="mi">12</span><span class="n">月8日晚23</span><span class="p">:</span><span class="mi">00</span><span class="n">之前</span>
<span class="o">-</span> <span class="n">提交形式</span><span class="p">:</span><span class="n">完成后请投稿简书专题</span><span class="s2">"...的样子"</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="o">.</span><span class="n">jianshu</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">c</span><span class="o">/</span><span class="mi">6</span><span class="n">c99</span><span class="o">...</span>
<span class="o">-</span> <span class="n">投稿要求</span><span class="p">:</span><span class="n">请在文末注明</span><span class="s2">"L01E01"</span>
<span class="o">></span> <span class="o">@</span><span class="mi">323</span><span class="o">-</span><span class="n">水</span><span class="o">.</span><span class="n">衣</span><span class="o">-..</span> <span class="n">这两天红H蓝幼儿园的事情不是挺火的吗</span><span class="err">?</span><span class="n">我脑中冒出个想法</span><span class="p">,</span><span class="n">能不能写一个故事</span><span class="p">,</span><span class="n">这些孩子在童年遭遇了这样的事情</span><span class="p">,</span><span class="n">但是却因为政府不作为事情不了了之</span><span class="p">,</span><span class="n">他们在成长过程中却承担了各种压力和异样的眼光</span><span class="p">,</span><span class="n">然后他们的性格扭曲了</span><span class="p">,</span><span class="n">复仇成为了她们生存下去的目标</span><span class="p">,</span><span class="n">是的</span><span class="p">,</span><span class="n">故事就是她们的复仇故事</span>
<span class="n">是也乎</span> <span class="err">╮</span><span class="p">(</span><span class="err">╯╰</span><span class="p">)</span><span class="err">╭</span>
<span class="n">必须有啊</span>
<span class="n">刚好红黄L三部曲</span>
<span class="n">每部都比前一部多十万字</span><span class="o">...</span>
<span class="o">></span> <span class="n">所以</span><span class="p">,</span> <span class="n">仅仅作为创新梗概</span>
<span class="c1"># 标题:HHL</span>
<span class="c1">## 副标: ~ 虐童战纪</span>
<span class="c1">### 目录/纲要</span>
<span class="c1">#### 红</span>
<span class="o">~</span><span class="n">是个男孩</span>
<span class="o">-</span> <span class="n">军队</span><span class="p">:</span><span class="o">...</span> <span class="n">选择最直接的复仇</span><span class="o">~</span><span class="n">加入军队</span>
<span class="o">-</span> <span class="o">~</span><span class="n">修炼军事技能</span><span class="o">...</span>
<span class="o">+</span> <span class="n">汽车兵开始</span>
<span class="o">+</span> <span class="n">因为能烧菜</span>
<span class="o">+</span> <span class="n">历经连</span><span class="o">/</span><span class="n">团</span><span class="o">/</span><span class="n">旅厨师长</span>
<span class="o">+</span> <span class="n">通过师长保送入军校研发战地全地形炊事车</span>
<span class="o">+</span> <span class="n">自学各种金属加工技能以及作战技巧</span>
<span class="o">-</span> <span class="n">退役后</span><span class="o">...</span> <span class="n">用手造远程高精度步gun</span>
<span class="o">+</span> <span class="n">用以往一点点儿积累下来的专用钢材</span>
<span class="o">+</span> <span class="n">慢慢手工镗出滑膛管</span>
<span class="o">+</span> <span class="n">使用手工制造的箭形弹</span>
<span class="o">+</span> <span class="n">通过滑膛方式发射</span>
<span class="o">+</span> <span class="n">电击发液体发射药</span>
<span class="o">+</span> <span class="n">整体系统根本不象步GUN</span>
<span class="o">+</span> <span class="n">好似一种工程测试仪器</span>
<span class="o">+</span> <span class="n">经过4年努力</span><span class="p">,</span> <span class="n">在张家界深处完成最终调节</span>
<span class="o">+</span> <span class="n">射程3700米</span><span class="p">,</span> <span class="n">可以洞穿两层砖墙</span>
<span class="o">+</span> <span class="n">拆解后</span><span class="p">,</span> <span class="n">可以通过机场的安检</span>
<span class="o">+</span> <span class="n">只有发射药必须事先用避孕套包好吞入胃中夹带</span><span class="o">...</span>
<span class="o">-</span> <span class="n">逐一点杀当年参与长期NUE待幼童的</span><span class="err">`</span><span class="n">叔叔</span><span class="err">`</span><span class="o">...</span>
<span class="o">+</span> <span class="n">每个月一次</span>
<span class="o">+</span> <span class="n">非常规律</span>
<span class="o">-</span> <span class="n">最终被相似经历的小伙伴出卖惨死</span>
<span class="o">+</span> <span class="n">叔叔们的名单</span><span class="o">/</span><span class="n">行程</span>
<span class="o">+</span> <span class="n">都是过往小伙伴们提供的</span>
<span class="o">+</span> <span class="n">但是</span><span class="p">,</span><span class="n">当年已经是高级校官的</span><span class="err">`</span><span class="n">叔叔</span><span class="err">`</span><span class="n">现在更难追踪</span>
<span class="o">+</span> <span class="n">终于冒着暴露的危险</span><span class="p">,</span><span class="n">联系上一位有内部消息的伙伴</span>
<span class="o">+</span> <span class="n">不料</span><span class="o">...</span>
<span class="o">-</span> <span class="o">...</span> <span class="n">身后也只能是个枪匪</span>
<span class="o">+</span> <span class="n">但是</span><span class="p">,</span> <span class="n">手造的滑膛箭形弹飘击枪</span><span class="p">,</span>
<span class="o">+</span> <span class="n">后来还是列装给解放军特种部队</span>
<span class="o">+</span> <span class="n">能安装在无人机上发射侦查弹</span><span class="o">...</span>
<span class="n">多年后一次误发射</span><span class="p">,</span><span class="n">终于击杀了当初没有杀死的那一名</span><span class="err">`</span><span class="n">叔叔</span><span class="err">`</span>
<span class="c1">#### 黄</span>
<span class="o">~</span><span class="n">就是出卖红的帅哥</span>
<span class="o">-</span> <span class="o">~</span><span class="n">他选择了打入敌人内部的策略</span>
<span class="o">-</span> <span class="o">...</span> <span class="n">忍耐着各种非人的磨难</span>
<span class="o">-</span> <span class="o">...</span> <span class="n">从当年令自已肛裂的叔叔身边</span>
<span class="o">-</span> <span class="o">...</span> <span class="n">一张张床爬上去</span>
<span class="o">+</span> <span class="n">男女都要服侍好</span>
<span class="o">+</span> <span class="n">还得忍受各种变态的要求</span>
<span class="o">+</span> <span class="n">对得起良心的只有在送幼童时给予足够的致幻剂</span><span class="p">,</span> <span class="n">以免留下清晰的记忆</span>
<span class="o">+</span> <span class="n">并自学摧眠术</span><span class="p">,</span><span class="n">义务为幼童们关闭记忆</span>
<span class="o">+</span> <span class="o">...</span>
<span class="o">-</span> <span class="o">~</span><span class="n">终于发现整个</span> <span class="err">`</span><span class="n">关系网</span><span class="err">`</span> <span class="n">大致全礼貌时</span>
<span class="o">-</span> <span class="n">意识到其真正的可怕</span><span class="o">...</span> <span class="n">最后绝望</span>
<span class="o">+</span> <span class="o">~</span><span class="n">虐杀了当年的叔叔后</span><span class="o">...</span>
<span class="o">+</span> <span class="n">静静的自杀</span><span class="o">~</span>
<span class="o">+</span> <span class="n">在当年幼儿园原址的地下</span>
<span class="o">+</span> <span class="n">自杀前将收集的资料传给了蓝</span>
<span class="c1">#### 蓝</span>
<span class="o">~</span><span class="n">是其中最漂亮的女孩子</span>
<span class="o">-</span> <span class="n">因为多次阴DAO撕裂导致阴Di受损</span><span class="o">...</span>
<span class="o">+</span> <span class="n">实质上被施割礼</span><span class="o">...</span>
<span class="o">-</span> <span class="n">由于这一变故</span><span class="o">...</span>
<span class="o">+</span> <span class="n">蓝远走法国</span><span class="o">...</span>
<span class="o">+</span> <span class="n">经过卓绝的努力</span>
<span class="o">+</span> <span class="n">逐步积累各种能力</span>
<span class="o">+</span> <span class="n">终于</span><span class="p">,</span><span class="n">成为一名超模</span><span class="o">...</span>
<span class="o">-</span> <span class="n">才发现几乎所有超模幼儿时都有类似受虐经历</span><span class="o">...</span>
<span class="o">-</span> <span class="n">于是在聚光灯下巧妙的利用时装周</span>
<span class="o">+</span> <span class="n">创建了</span> <span class="err">`</span><span class="n">灭虐营</span><span class="err">`</span> <span class="n">地下组织</span><span class="o">...</span>
<span class="o">+</span> <span class="n">逐步推动各国立法阉割恋童癖</span><span class="o">...</span>
<span class="o">-</span> <span class="n">并暗地资助两伊逃亡的女生进行军事训教</span><span class="o">...</span>
<span class="o">+</span> <span class="n">夺回</span> <span class="ow">is</span><span class="o">*</span><span class="ow">is</span> <span class="n">统治的家乡</span><span class="o">...</span>
<span class="o">+</span> <span class="n">独立为自治州</span><span class="o">...</span>
<span class="o">+</span> <span class="n">作为秘密处决恋童癖名人的基地</span><span class="o">~</span>
<span class="o">+</span> <span class="n">在收到</span> <span class="err">`</span><span class="n">黄</span><span class="err">`</span> <span class="n">的资料时</span>
<span class="o">+</span> <span class="n">已经处决了</span> <span class="mi">420</span> <span class="n">名有案可查的各国政要</span>
<span class="o">+</span> <span class="n">唯一没有触及的国家就是天朝</span>
<span class="o">-</span> <span class="n">最终</span><span class="o">...</span> <span class="n">发现自己已经变成</span>
<span class="o">+</span> <span class="n">只有虐杀小女孩才能有快感时</span><span class="o">...</span>
<span class="o">+</span> <span class="n">蓝选择了公开一切</span><span class="o">...</span>
<span class="o">+</span> <span class="n">并在直播现场</span><span class="o">~</span>
<span class="o">*</span> <span class="n">在十万观众</span><span class="o">...</span>
<span class="o">*</span> <span class="n">二亿网络直播观众面前自杀</span><span class="o">...</span>
<span class="c1">#### 白</span>
<span class="o">~</span> <span class="n">当年所有被虐幼童中有一对高智商双胞胎</span><span class="p">,</span> <span class="n">白是姐姐</span>
<span class="o">-</span> <span class="n">出事后</span><span class="p">,</span> <span class="n">家庭破裂</span><span class="p">,</span><span class="n">白跟了妈妈</span>
<span class="o">-</span> <span class="n">远走美国</span><span class="p">,</span> <span class="n">改嫁后</span><span class="p">,</span><span class="n">入藉</span><span class="p">,</span><span class="n">爆发学霸气质</span>
<span class="o">-</span> <span class="n">一直跳级</span><span class="p">,</span><span class="n">短短20年</span><span class="p">,</span> <span class="n">就成为最年轻的终身教授</span>
<span class="o">-</span> <span class="n">供职一个私募基金</span><span class="p">,</span><span class="n">进行投资分析</span>
<span class="o">-</span> <span class="n">私下却是很早就成名的</span> <span class="n">骇客</span><span class="p">:</span> <span class="err">`</span><span class="n">白光</span><span class="err">`</span>
<span class="o">+</span> <span class="n">擅长入侵各种公共监视系统</span>
<span class="o">+</span> <span class="n">用5年开发成一个</span> <span class="n">AI</span>
<span class="o">+</span> <span class="n">利用</span> <span class="n">暗网</span> <span class="n">的资源</span>
<span class="o">+</span> <span class="n">开始长年自动收集所有虐童证据</span>
<span class="o">+</span> <span class="n">分析整理后的名单和证据都分散备份在全球互联网中</span>
<span class="o">+</span> <span class="n">特别是</span><span class="p">:</span>
<span class="o">*</span> <span class="n">卫星的备用系统恢复记忆体尾部</span>
<span class="o">*</span> <span class="n">所有汽车行车记录仪的系统盘隐藏空间</span>
<span class="o">*</span> <span class="n">必须通过区块链交易形式的全网认证才能取到</span>
<span class="o">-</span> <span class="n">但是</span><span class="p">,</span> <span class="n">一直不敢</span><span class="p">,</span> <span class="n">也不知道能将证据提供给谁</span>
<span class="o">+</span> <span class="n">曾经尝试通过香港一个民YUN组织发起诉讼</span>
<span class="o">+</span> <span class="n">结果没出4天</span><span class="p">,</span> <span class="n">整个组织就消失了</span>
<span class="o">-</span> <span class="n">半年后</span><span class="p">,</span> <span class="n">从暗网获得了那个组织其中一个主要领导在非洲钻石矿出意外死亡的录像</span>
<span class="o">+</span> <span class="err">`</span><span class="n">白</span><span class="err">`</span> <span class="n">知道这个世界的恶意是多么的宏大</span>
<span class="o">+</span> <span class="n">开始另一项更加隐密的对抗</span><span class="o">...</span>
<span class="o">-</span> <span class="n">终于有一天发现了</span> <span class="err">`</span><span class="n">黑</span><span class="err">`</span>
<span class="c1">#### 黑</span>
<span class="o">~</span> <span class="n">是白的双胞龙凤胎弟弟</span>
<span class="o">-</span> <span class="n">出事后</span><span class="p">,</span> <span class="n">家庭破裂</span><span class="p">,</span><span class="n">黑</span> <span class="n">跟了爸爸</span>
<span class="o">-</span> <span class="n">也出国</span><span class="p">,</span> <span class="n">只是到了巴西</span><span class="p">,</span> <span class="n">在日本自治洲</span>
<span class="o">-</span> <span class="n">入藉后</span><span class="p">,</span> <span class="n">爆发学霸气势</span>
<span class="o">-</span> <span class="n">在生物遗传领域展现出异常的能力</span>
<span class="o">+</span> <span class="n">初中自然课的独立作品就是通过共生系统的设计</span>
<span class="o">+</span> <span class="n">令原先不发光的一种水母</span>
<span class="o">+</span> <span class="n">结合一种发光的海藻</span>
<span class="o">+</span> <span class="n">形成互利的全部生物组织</span>
<span class="o">-</span> <span class="n">被日本在巴西的最大制药厂吸收</span><span class="p">,</span> <span class="mi">21</span><span class="n">岁时</span><span class="p">,</span><span class="n">成为独立实验室负责人</span>
<span class="o">+</span> <span class="n">从而接触到</span> <span class="mi">7</span>\<span class="mi">3</span><span class="o">/</span><span class="mi">1</span> <span class="n">部队真正的遗产</span>
<span class="o">+</span> <span class="n">可行的人体活体基因注入技术</span>
<span class="o">-</span> <span class="n">在进行厂方的产品研发期间</span>
<span class="o">+</span> <span class="err">`</span><span class="n">黑</span><span class="err">`</span> <span class="n">私下进行的研发是活体应激式生物毒素施放</span>
<span class="o">+</span> <span class="n">希望可以找到一种基因开关</span>
<span class="o">+</span> <span class="n">可以令14岁之前的幼童具有天然的毒素合成能力</span>
<span class="o">+</span> <span class="n">仅当生殖器官受到意外损害时</span><span class="o">...</span>
<span class="o">-</span> <span class="n">可惜这个思路怎么也无法突破</span>
<span class="o">+</span> <span class="n">因为一但生殖器官有施毒能力</span><span class="p">,</span><span class="n">将是终身有效</span>
<span class="o">+</span> <span class="n">终于有天见到壁虎断尾才想通</span>
<span class="o">*</span> <span class="n">令一对卵巢或是睾丸具有施毒能力</span>
<span class="o">*</span> <span class="n">成年后自身死亡就好</span>
<span class="o">+</span> <span class="n">但是</span><span class="p">,</span> <span class="n">这种改造属于一种生物器官强化</span><span class="p">,</span><span class="n">难以变成可遗传的自然能力</span>
<span class="o">-</span> <span class="n">通过</span> <span class="err">`</span><span class="n">蓝</span><span class="err">`</span> <span class="n">的事迹</span><span class="p">,</span> <span class="err">`</span><span class="n">黑</span><span class="err">`</span> <span class="n">才发现有GAAC</span><span class="p">(</span><span class="n">全球反虐童组织</span><span class="p">)</span><span class="n">的存在</span>
<span class="o">+</span> <span class="n">多方调查后</span>
<span class="o">+</span> <span class="n">无意间发现了自己的姐姐</span>
<span class="o">></span> <span class="n">于是</span><span class="o">....</span>
<span class="c1">## 变更</span>
<span class="o">~</span> <span class="n">记录合并学员建议</span><span class="o">/</span><span class="n">增补的主要变动信息</span>
<span class="o">-</span> <span class="mi">171125</span> <span class="n">微信群中激发而成</span>
</code></pre></div>
<p>以及: </p>
<div class="highlight"><pre><span></span><code># S09E05gDAMA:自由问
</code></pre></div>
<blockquote>
<p>此乃"好中文的样子"课程小组作业</p>
</blockquote>
<p>成员:</p>
<div class="highlight"><pre><span></span><code>天津 一坪海岸线
上海 安心竹和申小七
香港 宋偲瑄
珠海 大妈
</code></pre></div>
<p>... 向 Neruda 致敬
<a href="http://www.gnu.org/"><img alt="GNU 自由软件" src="http://upload-images.jianshu.io/upload_images/27562-6d2064a29b2f5d3d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></a></p>
<p>语音版: <a href="https://www.lizhi.fm/2193128/2592864852843807238">[自由问 和合共读 v7]在线收听 - 荔枝FM</a></p>
<p>(对 <a href="https://union-click.jd.com/jdc?e=&p=AyIGZRhaFgsaB1MfXRAyEgdSHl4dChc3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUCFQJQE1MQMhFdA3teF0NUZBRbMFAGG0w1WlMQaXILWStaJQITBlYZWBYAEABlK1sSMkBpja3tzaejG4Gx1MCKhTdUK1sRCxEBXBtcEQQUBlIrXBULImwLRQd1RkpTECtrJQEiN2UbaxYyUGkFT1MQVhUCUh4JFwUXBlxOUkZSEQ9QHQsXChtSUBgLRTIQBlQfUg%3D%3D">共产党宣言 </a>
的改编,以及远程协同合读
)</p>
<hr>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<p>所以, 不依赖任何内容发布平台的服务,
不用通过任何审核, 完全根据自己的良知来随时发布文章的渠道,
是一名现代地球人的基本能力,
好在互联网中早已布满了这种免费渠道和服务;</p>
<p>参考:</p>
<ul>
<li><a href="https://about.gitlab.com/blog/2016/06/03/ssg-overview-gitlab-pages-part-1-dynamic-x-static/">SSGs Part 1: Static vs Dynamic Websites | GitLab</a><ul>
<li><a href="https://staticsitegenerators.net/">Static Site Generators</a></li>
<li><a href="https://www.staticgen.com/">StaticGen | Top Open Source Static Site Generators</a></li>
</ul>
</li>
<li>...</li>
<li>是的, 大妈一系列社区/个人网站, 都通过 github-pages 服务自动静态发布.</li>
<li>如果, 大家有兴趣, 俺也可以从俺的体验来分享对应经验,虽然类似文章/教程已经无数了</li>
</ul>
<p>文中链接感谢<a href="https://linux.cn/static/tools/a.html">"文章助手"的助手</a> 的支持,
(来自 <a href="(https://linux.cn/article-11850-1.html)">LINUX中国</a> 的小应用)</p>
<ul>
<li>点击, 将自动跳入小应用, 并复制链接到剪贴板</li>
<li>然后, 打开浏览器, 复制到地址栏, 就能访问了</li>
<li>好处, 避开了微信内置特殊浏览器的有关屏蔽策略</li>
<li>问题, 操作复杂了, 要打开手机上的浏览器, 如果在桌面微信则无法使用</li>
</ul>
<p>JD 下单链接 -> 点击后再打开浏览器复制到地址栏访问 -> 俺能获得少许佣金:</p>
<ul>
<li><a href="https://union-click.jd.com/jdc?e=&p=AyIGZRhaFgsaB1MfXRAyEgdSHl4dChc3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUCFQJQE1MQMhFdA3teF0NUZBRbMFAGG0w1WlMQaXILWStaJQITBlYZWBYAEABlK1sSMkBpja3tzaejG4Gx1MCKhTdUK1sRCxEBXBtcEQQUBlIrXBULImwLRQd1RkpTECtrJQEiN2UbaxYyUGkFT1MQVhUCUh4JFwUXBlxOUkZSEQ9QHQsXChtSUBgLRTIQBlQfUg%3D%3D">马列主义经典作家文库著作单行本:共产党宣言 </a></li>
</ul>
<hr>
<h2 id="ps">PS:<a class="headerlink" href="#ps" title="Permanent link">¶</a></h2>
<p><code>新冠肺炎(NCP)正确应对姿势</code> 系列之后被读者触发的两个系列:</p>
<ul>
<li>为什么就是不愿意上班?</li>
<li>科学'摸鱼'指北</li>
</ul>
<p>都已完结,虽然分散在各个公众号中...</p>
<p>接下来将尝试什么, 俺也没计划, 想哪儿怼哪儿了;</p>
<p>欢迎大家留言触发其它 <code>有用/有趣/有种</code> 的系列话题.</p>
<hr>
<blockquote>
<blockquote>
<p>NN 3936</p>
</blockquote>
</blockquote>
<p>好文笔,感叹号年度配额: <strong>1/3</strong></p>
<hr>
<p>ZoomQuiet/<strong>大妈</strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个大妈:</p>
<div class="highlight"><pre><span></span><code><span class="n">私自嗯哼</span><span class="p">:</span> <span class="n">ZoomQuiet</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">ZoomQuiet42</span><span class="p">)</span>
<span class="n">公开课程</span><span class="p">:</span> <span class="n">蟒营</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">Mainium</span><span class="p">)</span>
<span class="n">全国大会</span><span class="p">:</span> <span class="n">PyChina</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">PyChinaOrg</span><span class="p">)</span>
<span class="n">本地社区</span><span class="p">:</span>
<span class="n">GDG珠海</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">GDG</span><span class="o">-</span><span class="n">ZhuHai</span><span class="p">)</span>
<span class="n">TFUG珠海</span> <span class="p">(</span><span class="n">订阅号</span><span class="p">:</span> <span class="n">ZH_TFUG</span><span class="p">)</span>
<span class="n">历史吐糟</span><span class="p">:</span> <span class="n">Chaos42</span> <span class="p">(</span><span class="n">订阅号</span> <span class="n">PythoniCamp</span><span class="p">)</span>
</code></pre></div>
<hr>钩陈/ CPUG故事2020-02-26T10:42:00+08:002020-03-05T15:42:00+08:00ZoomQuiettag:blog.zoomquiet.io,2020-02-26:/oldtouch-historic-cpug.html<p>OldTouch/ about CPUG history with zoomquiet</p><h1 id="cpug">钩陈/ CPUG故事<a class="headerlink" href="#cpug" title="Permanent link">¶</a></h1>
<blockquote>
<p>普通老 Pythoneer 行者的回忆...</p>
</blockquote>
<p>这是大妈在 <strong>ZoomQuiet</strong> 的第<strong>004</strong>篇原创</p>
<hr>
<h2 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>PyCon2020US 已经开始注册, PyCon2020中国也在筹备中...</p>
<p>但是, 发现, 无论什么大会, 论及中国Python社区时,
总以为:</p>
<ul>
<li>有个社区叫:<code>Python 中国社区</code></li>
<li>是最早的中国 Python 技术社区</li>
</ul>
<p>这就比较尴尬了...</p>
<hr>
<h2 id="_2">现象<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<blockquote>
<p>搜索引擎查: <code>Python 中国 社区</code></p>
</blockquote>
<p>立即可以看到有无数名称类似的网站, 比如:</p>
<ul>
<li>Python中文社区 - 全球Python中文开发者的精神部落 - 知乎<ul>
<li>https://zhuanlan.zhihu.com/zimei</li>
<li>https://python-chinese.github.io/</li>
</ul>
</li>
<li>Python论坛 - 国内最好的Python中文社区<ul>
<li>https://bbs.pythontab.com/</li>
</ul>
</li>
<li>Python社区 - 专注于Python技术发展的社区(原Django社区)<ul>
<li>http://www.python88.com/</li>
</ul>
</li>
<li>Python 中文学习大本营<ul>
<li>http://www.pythondoc.com/</li>
</ul>
</li>
<li>... 以及历史上各种包含这几个关键词的各种域名的各种社区</li>
</ul>
<hr>
<h2 id="_3">回忆<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<blockquote>
<p>其实, 不是的...</p>
</blockquote>
<p>仅仅以一篇老文章来回顾一下, Python 在中国的社区故事吧.</p>
<h1 id="_4">自在的行者社区<a class="headerlink" href="#_4" title="Permanent link">¶</a></h1>
<p>~ 简述CPyUG(华蟒用户组)的学习生态</p>
<h2 id="_5">源起::<a class="headerlink" href="#_5" title="Permanent link">¶</a></h2>
<div class="highlight"><pre><span></span><code><span class="n">庄秀丽</span><span class="w"> </span><span class="o"><</span><span class="n">xiuli</span><span class="p">.</span><span class="n">zhuang</span><span class="nv">@gmail</span><span class="p">.</span><span class="n">com</span><span class="o">></span>
<span class="n">发件人当地时间</span><span class="w"> </span><span class="n">发送时间</span><span class="w"> </span><span class="mi">12</span><span class="err">:</span><span class="mi">53</span><span class="w"> </span><span class="p">(</span><span class="n">GMT</span><span class="o">+</span><span class="mi">08</span><span class="err">:</span><span class="mi">00</span><span class="p">).</span><span class="w"> </span><span class="nl">发送地当前时间</span><span class="p">:</span><span class="nl">下午12</span><span class="p">:</span><span class="mf">06.</span><span class="w"> </span><span class="err">✆</span>
<span class="n">主题</span><span class="w"> </span><span class="ss">"中国教育网络"</span><span class="nl">组文</span><span class="p">:</span><span class="n">开放网络社区中的学习组织</span>
</code></pre></div>
<p>涉及 <a href="http://www.media.edu.cn/">"中国教育网络"</a> ^杂志^</p>
<blockquote>
<p>主管单位:中华人民共和国教育部,主办单位:教育部科技发展中心,承办单位: 中国教育和科研计算机网.
在其中进行相关社会化学习社区的介绍和经验分享</p>
</blockquote>
<p>其实在各种场合,大家都知道啄木鸟/CPyUG 社区是中国最大的Py 技术社区,但是具体的一直没有方式的说明...</p>
<blockquote>
<p>特此, 由 ZoomQuiet 发起,进行相关的社区介绍组织 ;-)</p>
</blockquote>
<h2 id="_6">社区自述<a class="headerlink" href="#_6" title="Permanent link">¶</a></h2>
<p><a href="http://wiki.woodpecker.org.cn/moin/CPUG">CPyUG ~ Chinese Python User Group (华蟒用户组)</a></p>
<ul>
<li>由全球使用中文的Python程序员自发组成,面向实习/应用/推广Python 以及相关技术的愛好者;关注Python语言在中国的应用/推广/学习...<ul>
<li>成员号称 <a href="http://zh.wikipedia.org/wiki/%E8%A1%8C%E8%80%85">行者</a></li>
<li>这本来是佛教术语:"泛指一般佛道的修行者,又称行人,修行人"</li>
<li>因为Python 这一开发语言,在中国一直处于被主流媒体无视的状态,所以,完全出于下意识的对美的代码的追求,而聚集起来使用 Python的程序员们,就非常象古时卓然在浊世中独自修研佛法的行者了 ;-)</li>
</ul>
</li>
<li>社区经过长期演化,稳定在几个核心服务于公众的Py学习/分享:<ul>
<li>http://python.cn + http://www.woodpecker.org.cn/ 两个核心索引网站,指引新人到最常用的几个服务</li>
<li>http://python.cn/pipermail/python-chinese/ 为核心的系列邮件列表服务,支持日常的技术讨论/分享/交流</li>
<li>http://wiki.woodpecker.org.cn/moin/ 啄木鸟维基,作为社区的知识仓库,记录各种讨论出的成果</li>
</ul>
</li>
</ul>
<h2 id="_7">发展简忆<a class="headerlink" href="#_7" title="Permanent link">¶</a></h2>
<ul>
<li>2001-04-03 中国Linux论坛首先开辟 Python 专栏:<a href="http://www.linuxforum.net/forum/showflat.php?Cat=&Board=python&Number=96403&page=100&view=collapsed&sb=5&o=&fpart=">今天我上任!</a>, Limodou 主持,开始小范围聚集最早的一批Python 行者</li>
<li>2003-02 [http://www.czug.org/ 中国Zope用户组]发布专题技术网站,从而令更多的人知道了 Python</li>
<li>2004-01 在exoweb.com 的全额赞助下,通过 python.cn 这一域名发布了专题技术讨论列表:<ul>
<li><code>python-chinese@lists.python.cn</code></li>
<li>归档: <code>http://python.cn/pipermail/python-chinese/</code>(使用纯Pytyhon 编写的 mailman 系统)</li>
<li>以HD主持的一系列Python 开源项目为话题,将原先分散在各种BBS的中国Py开发人员聚集到在这一列表中;</li>
</ul>
</li>
<li>2004-03-30 ZoomQuiet 架设并发布了 Python知识维基 <code>http://220.248.2.35:7080</code> (使用 MoinMoin 1.2,也是纯Python 写的维基引擎)</li>
<li>2005-05,HD 从SINA提供主机资源,发布啄木鸟维基 http://wiki.woodpecker.org.cn</li>
<li>结合邮件列表,快速形成了相对稳定的项目导向的学习型(<a href="http://wiki.woodpecker.org.cn/moin/CoP">CoP</a>)社区;</li>
<li><a href="http://wiki.woodpecker.org.cn/moin/BPUG/2005-07-30">2005-07-30 啄木鸟会课中,自发宣告成立 </a></li>
</ul>
<p><img alt="logo" src="http://woodpecker.up.zoomquiet.top/logos/120201-CPyUG-logo-v2all-w200.png"></p>
<h3 id="_8">邮件列表变迁::<a class="headerlink" href="#_8" title="Permanent link">¶</a></h3>
<ul>
<li>2004.1~2007.1 exoweb.com 贡献公司资源,发布 http://python.cn 以及 <code>python-chinese@lists.python.cn</code> ^mailman 的邮件列表^,成为中国首批Python 程序猿的讨论中心<ul>
<li>同时也备案到: <a href="http://dir.gmane.org/gmane.comp.python.chinese">gmane.comp.python.chinese</a>: <a href="http://news.gmane.org/gmane.comp.python.chinese">新闻组形式</a>/<a href="http://blog.gmane.org/gmane.comp.python.chinese">Blog形式</a></li>
</ul>
</li>
<li>2006.04~2008.01 自动备份在: http://groups.google.com/group/pythonzh/about ^tomz 配置^</li>
<li>2007年 exoweb 停止带宽的赞助后,<code>python-chinese@lists.python.cn</code> 迁移到哲思社区中 合并到 <code>zeuux-python@zeuux.org</code> ^同樣是mailman 发布的列表^<ul>
<li>原列表归档也迁移为: <code>http://www.zeuux.org/pipermail/zeuux-python</code> ^已消失^</li>
</ul>
</li>
<li>Limodou 私人于2004-10-19 创建 python-cn@googlegroups 列表;和原先的自架列表并行使用;</li>
<li>自2008 年以来主要的技术讨论就已经聚集在: <ul>
<li>http://groups.google.com/group/python-cn</li>
<li>同时也订阅为:<a href="http://dir.gmane.org/gmane.org.user-groups.python.chinese">gmane.org.user-groups.python.chinese</a>:<a href="http://blog.gmane.org/gmane.org.user-groups.python.chinese">Blog形式</a>/<a href="http://news.gmane.org/gmane.org.user-groups.python.chinese">新闻组形式</a></li>
</ul>
</li>
<li>在2011 年整体迁移到哲思平台中的: <a href="http://www.zeuux.org/group/python/bbs/page478/">ZEUUX:Python 群组</a></li>
</ul>
<p>邮件列表一直以来很活跃,其中也引发了无数事件,相关变化截屏可以参考:</p>
<ul>
<li>python-cn列表史截屏 <ul>
<li>(已下线 - 好看簿图片博客:用照片记录生活 - http://www.haokanbu.com/story/11015/)</li>
</ul>
</li>
<li>当前(2010)的历史邮件情况:</li>
</ul>
<p><img alt="ml2010" src="http://s5.zoomquiet.top/100729-ks-timemana/img/cpug-ml-zoomq-2010-06-04-111017_628x701_scrot.png"></p>
<h2 id="_9">社区结构<a class="headerlink" href="#_9" title="Permanent link">¶</a></h2>
<p>社区从组织结构来说,由以下几个层次的在线群体松散的聚合而成:</p>
<ul>
<li>啄木鸟社区,作为HD个人捐助域名,公司赞助网站空间(2004~2010 是SINA公司,之后由豆瓣全情赞助),为CPyUG
提供基础信息发布/管理支持,其中的主机管理成员,维基管理成员/编辑成员,成为 CPyUG 的核心成员;</li>
<li>主要包含 <a href="http://wiki.woodpecker.org.cn/moin/">维基</a>/<a href="http://woodpecker.org.cn/planet/">聚合</a> 服务,以及域名资源;</li>
<li>2010 年以前由SINA 全程赞助</li>
<li>2010 年以来,豆瓣团队义务承担了啄木鸟社区的所有系统的发布和运维</li>
<li>http://groups.google.com/group 由Google 免费提供的邮件列表服务,通过不同的列表,聚集了不同地域不同领域的沟通:</li>
<li>python-cn@googlegroups.com 是CPyUG 主讨论列表,所有成员针对技术/开发/工程问题进行开放式沟通</li>
<li>bpug@googlegroups.com 京蟒用户组,是CPyUG北京地区的线下交流活动的组织事务沟通列表</li>
<li>zpug@googlegroups.com 珠三角华蟒用户组,是CPyUG珠三角地区地区的线下交流活动的组织事务沟通列表</li>
<li>等等...</li>
<li>各个列表的管理成员,基本成为当地同城市 CPyUG 技术交流活动的核心成员</li>
<li>以及在各种线下技术交流活动中吸引进来的新人以及受到各种引用资料召唤主动加入列表的,成为 CPyUG 不断积累的主体成员</li>
</ul>
<h2 id="_10">社区现状<a class="headerlink" href="#_10" title="Permanent link">¶</a></h2>
<p>发展至今,主列表订阅成员超过 <code>8600</code>人- ,累计在全国各个城市进行线下会课 44 次;</p>
<ul>
<li><code>会课</code> 已经成为 CPyUG 最有代表性的自发学习活动;简要的过程是:</li>
<li>列表中发起,预告会课行进日期,时间,一般提前一~三周;</li>
<li>提前一周收集确认好本次会课的主题内容和讲师,全部靠自愿/自主报名;</li>
<li>按期完成现场会课,收集照片/录音/录像等各种记录</li>
<li>48小时之内,整理发布到维基中,并在列表中通告,以便未能到现场的,可以持续参考
- 会课引发的各种项目,也将在列表中长期沟通
- 成熟的就演化成在 code.google/bitbucket/github 等免费工程空间中的正式开源项目进行持续开发...</li>
<li>进一步的,因感觉到Py的学习中文资料不足,大家自发的形成各种文档的翻译团队,义务的为社区进行各种翻译和推广<ul>
<li>甚至于引起了出版社的注意,主动和 CPyUG 沟通,形成了多本图书的工程</li>
<li>进而引发了相关经验的积累: <a href="http://code.google.com/p/openbookproject/wiki/HowToBuildBookOnline">如何在线組織图书创译</a></li>
</ul>
</li>
</ul>
<h2 id="sns">SNS学习<a class="headerlink" href="#sns" title="Permanent link">¶</a></h2>
<p>作为全程参与者, ZoomQuiet 以个人的体验来回顾 CPyUG 从无到有到成为全球最大的中文Py技术社区这其中有关社会化学习的方面, 感觉主要有这几点是值得回味的:</p>
<h3 id="_11">项目导向:<a class="headerlink" href="#_11" title="Permanent link">¶</a></h3>
<ul>
<li>从一开始用具体的开发项目来作为参与的筛选标准,以及讨论内容,就决定了 CPyUG 是一个实践社区</li>
<li>种下这一社区基因后,从后来的服务提供/会课组织/讨论氛围等等,都包含了实作为上,项目正果的态度</li>
<li>也积累引发出了有CPyUG 特色的 Python 学习劝诫: <a href="http://wiki.woodpecker.org.cn/moin/RouseChina">奋起宣言</a></li>
</ul>
<dl>
<dd>
<p>每日至少抽一刻钟,解答邮件列表中初学者的问题,
每周至少抽两小时,整理新学知识将体验发表/分享出去,
通过Blog/Wiki/邮件列表/个人网站...
每旬至少抽四个小时, 来翻译自个儿喜爱的自由软件的文档,
每月至少抽八小时, 快乐的编程,推进自个儿的项目,
每年至少参加一次, 自由软件的活动,传播自由软件思想,
发展一名"自由人"...
只要我们每个人都坚持下去...
10年!就足以改变中国软件的整体风貌!</p>
</dd>
</dl>
<ul>
<li><a href="http://wiki.woodpecker.org.cn/moin/Py8Rong8Chi">Pythonic八荣八耻</a></li>
</ul>
<p>:</p>
<div class="highlight"><pre><span></span><code>以动手实践为荣 , 以只看不练为耻;
以打印日志为荣 , 以单步跟踪为耻;
以空格缩进为荣 , 以制表缩进为耻;
以单元测试为荣 , 以人工测试为耻;
以模块复用为荣 , 以复制粘贴为耻;
以多态应用为荣 , 以分支判断为耻;
以Pythonic为荣 , 以冗余拖沓为耻;
以总结分享为荣 , 以跪求其解为耻;
</code></pre></div>
<ul>
<li>等等,有趣有用的类似口号的断言,在社区的各种沟通渠道中传播,形成了独特的鲜明的个性,创造出了不同的学习目的指向:</li>
</ul>
<blockquote>
<div class="highlight"><pre><span></span><code> 追求简单而有力的美
</code></pre></div>
</blockquote>
<h3 id="_12">列表文化:<a class="headerlink" href="#_12" title="Permanent link">¶</a></h3>
<ul>
<li>社区以完全不同于在中国流行的BBS/QQ群 等等娱乐导向的讨论形式--mailing list(邮件列表)为核心沟通方式</li>
<li>直接引入了这一古老而优雅的技术交流文化</li>
<li>在日常一封封邮件的传播过程中树立起了:<ul>
<li>为自己的言论负责</li>
<li>对事不对人</li>
<li>热情帮助他人就是帮助自己</li>
</ul>
</li>
<li>等等发源自列表文化的交流意识,有力的确保新人得到良好的支持,高手享受到平等高效的交流;
进而铸造出社区的独特学习氛围;</li>
<li>核心成员:<ul>
<li>在长期运营社区的各种平台和活动后,发觉,一个技术社区的气质是由极少数核心成员来引导的</li>
<li>核心成员的特质:<ul>
<li>热心 ~ 长期热情的回答任何问题,在列表发送邮件的数量非常惊人比如说 者群組建立以來 limodou@gmail.com 累计发送了 <code>9265</code> 封邮件!</li>
<li>正直 ~ 不论多么无聊/简单/可笑的问题,都尽力回答,并说明社区的沟通建议</li>
<li>强大 ~ 本身技术积累丰厚,在各种领域都有足够的实践积累,可以随时举出对应的代码实例来说明</li>
</ul>
</li>
</ul>
</li>
<li>这种核心成员,不是自封的,而是在长年的社区交流过程中,为所有人认可的,难以动摇的</li>
<li>他们的言行/态度/决策,直接影响了整个社区的所有方面</li>
</ul>
<blockquote>
<p>如果社区缺少了这类核心成员的坐阵,
将立即充满了各种无意义的情绪发泄式的邮件,
对技术型自学习型社区造成难以弥补的破坏性影响!</p>
</blockquote>
<h2 id="_13">图书事件<a class="headerlink" href="#_13" title="Permanent link">¶</a></h2>
<p>~ <a href="http://nicholas-ding.javaeye.com/blog/206347">"Python 核心编程"应属于社区翻译 - Nicholas_Ding - JavaEye技术网站</a></p>
<p>(原文已经删, 私人备案: <a href="http://devrel.zoomquiet.io/data/20080704230201/index.html">"Python 核心编程"应属于社区翻译</a>)</p>
<p>因由::</p>
<ul>
<li><a href="http://wiki.woodpecker.org.cn/moin/BPUG/2007-09-01">CPyUG总第21次.会课理想</a> 中,<code>宋吉广</code> 提出"Python核心编程" 的翻译交社区进行;</li>
<li>社区成立<a href="http://wiki.woodpecker.org.cn/moin/CorePyProgramming">项目组</a> ,并在 <a href="http://groups.google.com/group/openbookproject"> OpenBookProject</a>中进行版本控制和协同</li>
<li>在征集了志愿者,并通过维基进行<a href="http://wiki.woodpecker.org.cn/moin/CorePyProgramming/revision">进度追踪</a>,通过网络进行快速的迭代,2007-12-07 交付译稿</li>
<li>然后,<code>宋吉广</code> 就消失在邮件列表中了</li>
<li>结果 2008-6-23 <a href="http://product.china-pub.com/39969#yzx">Python核心编程(中文 第二版) (08年度畅销榜TOP50)</a> 上架销售时,大家才发现,宋吉广 只是在序言中提及获得了社区的帮助,根本没有说明图书内容的真正来源!</li>
<li>发觉这一明目张胆的偷窃行为后,社区成员尝试过多种方式来补救:<ul>
<li>在所有图书的在线推荐中进行说明</li>
<li>和出版社接触,说明实际,寻求解决</li>
<li>集资,招募律师进行起述</li>
</ul>
</li>
<li>但是,由于社区本身没有法律实体,当初也没有和出版社进行任何形式的约定,最终这一偷窃作为既定现实,被大家无奈的接受了;</li>
</ul>
<p>习得::</p>
<ul>
<li>CPyUG 社区聚集了中国主要的Python 用户和学习者,所以,相关Python 技术图书的翻译,出版社编辑总是找到社区来寻求帮助;</li>
<li>但是所有成员,从来都是优先考虑是否有利于 Python 在中国的推广,没有想到有人利用这一社区资源,为自身谋利!</li>
<li><code>宋吉广</code> 事件之后,大家继续挖掘,才知道,在这之前,有本 Ubuntu官方手册,也是 <code>宋吉广</code> 以同样手法骗取社区信任,集体完成的翻译!</li>
<li>这一事件成为 CPyUG 集体版权法强化理解学习的激发事件,所有人意识到:</li>
<li>社区的日常知识分享,技术讨论是有价值的,有版权的</li>
<li>和出版社等法律实体打交道时,一定要事先沟通明确,不留法律漏洞</li>
<li>个人的时间/精力总是有限的,不可能掌握所有社会技巧,专业人士作专业的事情最简单</li>
<li>至此,但凡社区接类似的图书/文章的翻译/创作任务,都第一时间确认版权和回报问题!</li>
</ul>
<p>分析::</p>
<ul>
<li>正是 CPyUG 社区,尽力的将所有项目/讨论公开,从而达到了 <code>AKA</code>~<a href="http://wiki.woodpecker.org.cn/moin/KaoPulity">All Know All</a> 的状态</li>
<li>形成了每一成员的社区归宿感,愿意为自身认同的各种社区项目贡献时间/精力</li>
<li>每一次挫折也從而可能立即形成社区共有的经验,并立即应用起来!</li>
</ul>
<h2 id="_14">社区展望<a class="headerlink" href="#_14" title="Permanent link">¶</a></h2>
<p>综上, CPyUG 经过7年的发展,已经形成了足够稳固的文化和学习模式,识别出了固定的学习人群,</p>
<p>但是, 其运营的支撑核心,那些左右社区气质的核心成员,总是会老去,变动,转移兴趣,如何识别/培养/吸引可以成为核心成员的学习者?!</p>
<p>这将是 CPyUG 当前最大的挑战...</p>
<h2 id="_15">联系社区<a class="headerlink" href="#_15" title="Permanent link">¶</a></h2>
<ul>
<li>Zoom.Quiet <ul>
<li>电邮/GTalk: Zoom.Quiet AT gmail.com</li>
<li>个站: http://zoomquiet.io</li>
</ul>
</li>
<li>Limodou<ul>
<li>电邮/GTalk: limodou.cn AT gmail.com></li>
<li>个站: http://hi.baidu.com/limodou</li>
<li>维基: http://wiki.woodpecker.org.cn/moin/limodou</li>
</ul>
</li>
</ul>
<h2 id="_16">是也乎<a class="headerlink" href="#_16" title="Permanent link">¶</a></h2>
<p><img alt="cpyug_historic_mapping.png(PNG 图像,941x1074 像素)" src="http://0.zoomquiet.top/ZQCollection/map/cpyug_historic_mapping.png?imageView2/2/w/640"></p>
<ul>
<li>150211 大妈 根据 <a href="http://www.v2ex.com/t/170350#reply13">为何国内没有靠谱的 Python 论坛? - V2EX</a> 的有关回答增补</li>
<li>150106 大妈 根据微信群的反馈创立</li>
<li>110903 ZoomQuiet 增补细节,列表截屏</li>
<li>110325 ZoomQuiet 迁移为 code.google 维基,增补图书事件</li>
<li>110228 ZoomQuiet 初稿发布</li>
<li>110225 ZoomQuiet 初始化</li>
</ul>
<p>原文: <a href="https://code.google.com/p/cpyug/wiki/CpyUg">CpyUg - cpyug - Historic of Chinese Python User Group - CPyUG~华蟒用户组 相关邮件列表管理通告收集/维护 - Google Project Hosting</a>
维基: <a href="http://wiki.pychina.org/hd/CpyUgHistoric.html">自在的行者社区 | PyChina.org Static Wiki</a></p>
<hr>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li><a href="https://zhuanlan.zhihu.com/p/26832983">我不认识Pythoner这种开发者 - 知乎</a></li>
</ul>
<p><img alt="v2-4c23e4b623898389d4031f69dd3cbded_1200x500.jpg (JPEG Image, 900 × 500 pixels)" src="https://pic4.zhimg.com/v2-4c23e4b623898389d4031f69dd3cbded_1200x500.jpg"></p>
<p>文中链接感谢<a href="https://linux.cn/static/tools/a.html">"文章助手"的助手</a> 的支持,
(来自 <a href="(https://linux.cn/article-11850-1.html)">LINUX中国</a> 的小应用)</p>
<ul>
<li>可以点击, 将自动复制对应链接到剪贴板</li>
<li>然后打开浏览器, 复制到地址栏访问</li>
</ul>
<hr>
<h2 id="ps">PS:<a class="headerlink" href="#ps" title="Permanent link">¶</a></h2>
<p><code>新冠肺炎(NCP)正确应对姿势</code> 系列之后被读者触发的两个系列:</p>
<ul>
<li>为什么就是不愿意上班?</li>
<li>科学'摸鱼'指北</li>
</ul>
<p>都已完结,虽然分散在各个公众号中...</p>
<p>接下来会嗯哼什么, 俺也没计划, 想哪儿怼哪儿了;</p>
<p>欢迎大家留言触发其它 <code>有用/有趣/有种</code> 的系列话题.</p>
<hr>
<blockquote>
<blockquote>
<p>NN 3935</p>
</blockquote>
</blockquote>
<p>好文笔,感叹号年度配额: <strong>1/3</strong></p>
<hr>
<p>ZoomQuiet/<strong>大妈</strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个大妈:</p>
<ul>
<li>私自嗯哼: ZoomQuiet (订阅号 <strong>ZoomQuiet42</strong>)</li>
<li>公开课程: <strong>蟒营</strong> (订阅号: Mainium)</li>
<li>全国大会: PyChina (订阅号: PyChinaOrg)</li>
<li>本地社区: <ul>
<li>GDG珠海 (订阅号: GDG-ZhuHai)</li>
<li>TFUG珠海 (订阅号: ZH_TFUG)</li>
</ul>
</li>
<li>历史吐糟: Chaos42 (订阅号 PythoniCamp)</li>
</ul>
<hr>拙见/ 布道 技术社区2020-02-25T12:42:00+08:002020-03-05T15:41:00+08:00ZoomQuiettag:blog.zoomquiet.io,2020-02-25:/oldtouch-ln-floss-tech.html<p>IMHO/ about zoomquiet evangelist in all kinds of tech commuinty</p><h1 id="_1">钩陈/ 布道 技术社区<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<blockquote>
<p>ZoomQuiet 在各技术社区中的足迹</p>
</blockquote>
<hr>
<h2 id="_2">程序媛<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<ul>
<li>2015-03-11 <a href="http://skm.zoomquiet.top/data/20200225102803/index.html">2015开源技术大会将于3月28日召开 设女性开源专场</a></li>
</ul>
<hr>
<h2 id="_3">程序猿<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<ul>
<li>2018-11-15 <a href="https://mp.weixin.qq.com/s/l_4bbGHqMKhp_bT0qcfoYQ">中国人做不好开源?他和他的开源社有话说</a></li>
<li><a href="https://mp.weixin.qq.com/s/VJQOBWA8xPmqYx0ETASNgw">BPUG-2018-06-09小记</a></li>
<li>2016-01-04<a href="https://mp.weixin.qq.com/s/v7LY1kJV7U7C1NVcWCydUQ">为什么是这个开源组织卷走了锤子T2发布会的全部门票钱?</a><ul>
<li><a href="https://mp.weixin.qq.com/s/KLJOAW413mEwKXtqmBHlKA">Apache APISIX 温铭:运营开源社区,基础软件创业-拒绝自嗨,聚焦和快速发布</a></li>
</ul>
</li>
</ul>
<hr>
<h2 id="csdn">CSDN<a class="headerlink" href="#csdn" title="Permanent link">¶</a></h2>
<ul>
<li>2020-01-23 <a href="https://mp.weixin.qq.com/s/hypAlmUusIFgZnK1RE60pg">黑科技抗疫,Python 开发者大集结!</a></li>
<li>2020-01-18 <a href="https://mp.weixin.qq.com/s/_Q2Hh4MbaDC--KltuNApzg">疫中行,程序员可在家免费学这些!</a></li>
<li>2015-01-20 <a href="https://mp.weixin.qq.com/s/HsH9TkC8CUJePmb94K2OBQ">OSTC 2015开源技术大会3月底召开,演讲征集中</a></li>
</ul>
<hr>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<p>文中链接感谢<a href="https://linux.cn/static/tools/a.html">"文章助手"的助手</a> 的支持,
(来自 <a href="(https://linux.cn/article-11850-1.html)">LINUX中国</a> 的小应用)</p>
<ul>
<li>可以点击, 将自动复制对应链接到剪贴板</li>
<li>然后打开浏览器, 复制到地址栏访问</li>
</ul>
<hr>
<blockquote>
<blockquote>
<p>NN 3934</p>
</blockquote>
</blockquote>
<p>好文笔,感叹号年度配额: <strong>1/3</strong></p>
<hr>
<p>ZoomQuiet/<strong>大妈</strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个大妈:</p>
<ul>
<li>私自嗯哼: ZoomQuiet (订阅号 <strong>ZoomQuiet42</strong>)</li>
<li>公开课程: <strong>蟒营</strong> (订阅号: Mainium)</li>
<li>全国大会: PyChina (订阅号: PyChinaOrg)</li>
<li>本地社区: <ul>
<li>GDG珠海 (订阅号: GDG-ZhuHai)</li>
<li>TFUG珠海 (订阅号: ZH_TFUG)</li>
</ul>
</li>
<li>历史吐糟: Chaos42 (订阅号 PythoniCamp)</li>
</ul>
<hr>钩陈/ 掠过 文化社区2020-02-25T11:42:00+08:002020-03-05T15:39:00+08:00ZoomQuiettag:blog.zoomquiet.io,2020-02-25:/oldtouch-ln-bookings.html<p>OldTouch/ booker commuinty about zoomquiet story</p><h1 id="_1">钩陈/ 掠过 文化社区<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<blockquote>
<p>ZoomQuiet 在各类文化社区中的身影</p>
</blockquote>
<hr>
<h2 id="_2">好中文/文笔<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<ul>
<li>2017-03-08 <a href="https://mp.weixin.qq.com/s/t3YZVOQGqGYXIaU9GqRExQ">晚清传教士与Github</a></li>
<li>2017-02-16 <a href="https://mp.weixin.qq.com/s/imoRIOkgJH3WnmPDEJ-WFA">为什么要回到知识源头</a></li>
<li>2017-02-23 <a href="https://mp.weixin.qq.com/s/M7HeBFdS2WkwuxxHmuloRg">如何2小时读完一本书</a></li>
<li>2017-01-21 <a href="https://mp.weixin.qq.com/s/RS_SQByPSqhwiPK5Te09rg">好中文的样子第二讲:好处在平易</a></li>
<li>2017-01-18 <a href="https://mp.weixin.qq.com/s/Gd1JSSupGLpRgEwuy516bQ">看作业的意外收获:聪明人是如何工作的</a></li>
</ul>
<hr>
<h2 id="-">话题->阅读邻居<a class="headerlink" href="#-" title="Permanent link">¶</a></h2>
<ul>
<li>2015-05-21 <a href="https://mp.weixin.qq.com/s/pTdUqnb07EiYJM45L1wHAA">如果个体是偏颇的,那么我们不妨拼凑一个整体|阅读邻居第30期实录(3)</a></li>
<li>2014-04-04 <a href="https://mp.weixin.qq.com/s/dqNSnwwHSHr45evcYzrlhQ">阅读邻居第23期"中日之间"之误解与错位(5)人上亿就没有什么一致性</a></li>
<li>2014-04-03 <a href="https://mp.weixin.qq.com/s/IN72ITj8f1j6CLfbercl4g">阅读邻居第23期"中日之间"之误解与错位(4)小心翼翼地维持着友好</a></li>
<li>2014-03-10 <a href="https://mp.weixin.qq.com/s/7El1elKvc6nQzJOlUfrrhw">无往不复(关于回复的争论)</a></li>
<li>2014-03-14 <a href="https://mp.weixin.qq.com/s/nqxgggIe4G49Gu8XMZwTgg">"女博与女士"的回复(2)</a></li>
</ul>
<hr>
<h2 id="_3">珠海<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<ul>
<li>2020-02-23 <a href="https://mp.weixin.qq.com/s/pyANlgWV7jYeju7SJyk3eA">疫情闭关期,他们在家干了啥?</a></li>
</ul>
<hr>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<p>文中链接感谢<a href="https://linux.cn/static/tools/a.html">"文章助手"的助手</a> 的支持,
(来自 <a href="(https://linux.cn/article-11850-1.html)">LINUX中国</a> 的小应用)</p>
<ul>
<li>可以点击, 将自动复制对应链接到剪贴板</li>
<li>然后打开浏览器, 复制到地址栏访问</li>
</ul>
<hr>
<blockquote>
<blockquote>
<p>NN 3934</p>
</blockquote>
</blockquote>
<p>好文笔,感叹号年度配额: <strong>1/3</strong></p>
<hr>
<p>ZoomQuiet/<strong>大妈</strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个大妈:</p>
<ul>
<li>私自嗯哼: ZoomQuiet (订阅号 <strong>ZoomQuiet42</strong>)</li>
<li>公开课程: <strong>蟒营</strong> (订阅号: Mainium)</li>
<li>全国大会: PyChina (订阅号: PyChinaOrg)</li>
<li>本地社区: <ul>
<li>GDG珠海 (订阅号: GDG-ZhuHai)</li>
<li>TFUG珠海 (订阅号: ZH_TFUG)</li>
</ul>
</li>
<li>历史吐糟: Chaos42 (订阅号 PythoniCamp)</li>
</ul>
<hr>拙见/ 四处 箴言断喝2020-02-25T11:42:00+08:002020-03-05T15:39:00+08:00ZoomQuiettag:blog.zoomquiet.io,2020-02-25:/oldtouch-ln-mottos.html<p>IMHO/ about zoomquiet speech in all kinds of commuinty</p><h1 id="_1">拙见/ 四处 箴言断喝<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<blockquote>
<p>ZoomQuiet 在以往各种场景中的嗯哼</p>
</blockquote>
<hr>
<h2 id="_2">自怼圈<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<blockquote>
<p>15~18曾经签约设计/创建/主持/顾问了多期活动和课程</p>
</blockquote>
<ul>
<li>2018-06-14 <a href="https://mp.weixin.qq.com/s/vFzDdg3KE7zRv4vOesPy1g">学习一个技能,应该达到什么程度</a></li>
<li>2018-06-09 <a href="https://mp.weixin.qq.com/s/Y_etPrlCr0binBVGyErjYw">Zoom.Quiet: 如何开始编程</a></li>
<li>2018-04-12 <strong><a href="https://mp.weixin.qq.com/s/qvwmrlmcoQCwVbnugcWyhQ">GitHub 协作五大业余姿势</a></strong></li>
<li>2017-12-14 <a href="https://mp.weixin.qq.com/s/OeaHgiU8sat1O7adgUNBGQ">解决中英混输的句号问题</a></li>
<li>2017-12-08 <a href="https://mp.weixin.qq.com/s/JvpT7MR24jBeWBeCkVISZw">用回"小鹤双拼方案"</a></li>
<li>2016-04-30 <a href="https://mp.weixin.qq.com/s/6Je0k7KpWXZhAIJVjNj3Bw">四月总结|京城之春</a></li>
</ul>
<h2 id="v">大V<a class="headerlink" href="#v" title="Permanent link">¶</a></h2>
<ul>
<li>余晟以为 <ul>
<li>2020-02-08 <a href="https://mp.weixin.qq.com/s/gKBVCDkWFwC8EEjqmHgGdw">想学好编程,请赶在本月24日之前行动</a></li>
<li>2019-11-14 <a href="https://mp.weixin.qq.com/s/swyrZzro0XO7aFhglG0PmQ">说说我的五花八门的朋友们,有耗子,有爸爸,还有柏林... </a></li>
<li>2019-09-15 <a href="https://mp.weixin.qq.com/s/6EgDuXXT3MfR5shHxmE0KQ">我为什么相信周琦?</a></li>
</ul>
</li>
<li>2019-07-11 <a href="https://mp.weixin.qq.com/s/BWy1qRzg6z4jBPGqFYXA6A">论一个自毁倾向社区的形成</a></li>
<li>2019-07-09 <a href="https://mp.weixin.qq.com/s/RM6xTvCP0JJQ9x8Y4si--g">今天给大妈打次Call</a></li>
<li>2018-02-12 <a href="https://mp.weixin.qq.com/s/UvnLw7B4yFchlfenpjYcHA">第117期 | 专家主题日 周琦 分享主题 "社区运营碎碎念"</a> Mcross研究院</li>
<li>2017-06-01 <a href="https://mp.weixin.qq.com/s/MS_qtX7sisuVUBMDgYXldA">如何通过技术社区加速成长?</a></li>
<li>2017-04-27 <a href="https://mp.weixin.qq.com/s/FjMkw830SoeLxnUfytEsnA">开发和产品之间的恩怨从何来?</a></li>
<li>2016-05-18 <a href="https://mp.weixin.qq.com/s/2SNLUBHcF74G4k4slxLDuw">大牛们怎么管理知识 | 一点线索</a></li>
</ul>
<h2 id="_3">书评<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<ul>
<li>2016-09-09 <a href="https://mp.weixin.qq.com/s/Ch4Ggpx2lj6bdr-BtXFiLQ">每月好书: Python Web开发实战</a></li>
<li>2016-09-05 <a href="https://mp.weixin.qq.com/s/7OhAKQUQK0JHlgBBeQ6a8A">荐书 | 跟着豆瓣工程师学Web开发</a></li>
</ul>
<hr>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li><a href="https://du.101.camp/about/">自怼圈 ~ 关于 ~ DebugUself with DAMA ;-)</a></li>
</ul>
<p>文中链接感谢<a href="https://linux.cn/static/tools/a.html">"文章助手"的助手</a> 的支持,
(来自 <a href="(https://linux.cn/article-11850-1.html)">LINUX中国</a> 的小应用)</p>
<ul>
<li>可以点击, 将自动复制对应链接到剪贴板</li>
<li>然后打开浏览器, 复制到地址栏访问</li>
</ul>
<hr>
<blockquote>
<blockquote>
<p>NN 3934</p>
</blockquote>
</blockquote>
<p>好文笔,感叹号年度配额: <strong>1/3</strong></p>
<hr>
<p>ZoomQuiet/<strong>大妈</strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个大妈:</p>
<ul>
<li>私自嗯哼: ZoomQuiet (订阅号 <strong>ZoomQuiet42</strong>)</li>
<li>公开课程: <strong>蟒营</strong> (订阅号: Mainium)</li>
<li>全国大会: PyChina (订阅号: PyChinaOrg)</li>
<li>本地社区: <ul>
<li>GDG珠海 (订阅号: GDG-ZhuHai)</li>
<li>TFUG珠海 (订阅号: ZH_TFUG)</li>
</ul>
</li>
<li>历史吐糟: Chaos42 (订阅号 PythoniCamp)</li>
</ul>
<hr>钩陈/ 曾经 有关社区2020-02-25T10:42:00+08:002020-03-05T15:38:00+08:00ZoomQuiettag:blog.zoomquiet.io,2020-02-25:/oldtouch-ln-others.html<p>OldTouch/ others commuinty about zoomquiet story</p><h1 id="_1">钩陈/ 曾经 有关社区<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<blockquote>
<p>ZoomQuiet 在以往社区中的介入</p>
</blockquote>
<hr>
<h2 id="openmindclub">OpenMind.club<a class="headerlink" href="#openmindclub" title="Permanent link">¶</a></h2>
<blockquote>
<p>15~18曾经签约设计/创建/主持/顾问了多期活动和课程</p>
</blockquote>
<ul>
<li>2017-12-18 <a href="https://mp.weixin.qq.com/s/Qb8jlfnpxdXyqx_oqSmPmw">摇滚妈妈的Python之旅</a></li>
<li>2017-07-13 <a href="https://mp.weixin.qq.com/s/OQ0W7SyenBUzK_80kLL6NQ">与聪明人一起编程,更容易激发你前进的动力</a></li>
<li>2017-06-12 <a href="https://mp.weixin.qq.com/s/JKof3xHTox_JfjYdqQlO9w">一个准妈妈的终身学习故事</a></li>
<li>2016-12-09 <a href="https://mp.weixin.qq.com/s/Eqzs2I1BF4CkmRb4V7a6nA">为什么你不该用微信进行主题讨论?</a></li>
<li>2016-01-11 <a href="https://mp.weixin.qq.com/s/-NOH4oWD03yT2hHRMSM1Rg">一个妈妈和编程的270天死磕日记</a></li>
<li>2015-11-03 <a href="http://skm.zoomquiet.top/data/20200225105213/index.html">苑明理:如何制作一个星球?</a></li>
<li>2015-09-26 <a href="https://mp.weixin.qq.com/s/2-bW3CDCJqhcQsGCGm3tQQ">大妈答疑:如何用编程让大脑二次发育?</a></li>
<li>2015-09-17 <a href="https://mp.weixin.qq.com/s/y4ohSQUn9xrrfZxzJyi_9g">Python中文社区创始成员ZoomQuiet:究竟什么是编程?</a></li>
<li>2015-09-15 <a href="https://mp.weixin.qq.com/s/NmCa-ANdmlzsEvqy-dG7CQ">'学会编程'是一种什么样的体验? </a></li>
<li>2015-09-09 <a href="https://mp.weixin.qq.com/s/eWnQMUQjo-Q63FaTtFJXpA">星际跃迁:像程序一般升级自己</a></li>
</ul>
<hr>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<p>文中链接感谢<a href="https://linux.cn/static/tools/a.html">"文章助手"的助手</a> 的支持,
(来自 <a href="(https://linux.cn/article-11850-1.html)">LINUX中国</a> 的小应用)</p>
<ul>
<li>可以点击, 将自动复制对应链接到剪贴板</li>
<li>然后打开浏览器, 复制到地址栏访问</li>
</ul>
<hr>
<blockquote>
<blockquote>
<p>NN 3934</p>
</blockquote>
</blockquote>
<p>好文笔,感叹号年度配额: <strong>1/3</strong></p>
<hr>
<p>ZoomQuiet/<strong>大妈</strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个大妈:</p>
<ul>
<li>私自嗯哼: ZoomQuiet (订阅号 <strong>ZoomQuiet42</strong>)</li>
<li>公开课程: <strong>蟒营</strong> (订阅号: Mainium)</li>
<li>全国大会: PyChina (订阅号: PyChinaOrg)</li>
<li>本地社区: <ul>
<li>GDG珠海 (订阅号: GDG-ZhuHai)</li>
<li>TFUG珠海 (订阅号: ZH_TFUG)</li>
</ul>
</li>
<li>历史吐糟: Chaos42 (订阅号 PythoniCamp)</li>
</ul>
<hr>公告/ 叕重新开始的大妈2020-02-23T10:42:00+08:002020-03-05T15:35:00+08:00ZoomQuiettag:blog.zoomquiet.io,2020-02-23:/ann-dama-aaaagain.html<p>ANN/ what is DAMA, and why starting again again and again with again</p><h1 id="_1">公告/ 叕重新开始的大妈<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<p>这是大妈在 <code>ZoomQuiet</code> 的第<strong>000</strong>篇原创文章</p>
<hr>
<h2 id="_2">背景<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<p>公众号, 之前在管理的有:</p>
<ul>
<li>订阅号: ChinaPyUG<ul>
<li>2011 注册的第一个公众号, 因为不常用丢失了</li>
</ul>
</li>
<li>GDG珠海 (订阅号: GDG-ZhuHai)<ul>
<li>2013 年注册的第二个公众号</li>
</ul>
</li>
<li>全国大会: PyChina (订阅号: <strong>PyChinaOrg</strong>)<ul>
<li>2014 年注册的最后一个公众号, 配合 PyCon中国大会</li>
</ul>
</li>
<li>历史吐糟: Chaos42 (订阅号 PythoniCamp)<ul>
<li>2014 年工作需要, 拉同事注册的 DevRel </li>
<li>2018 年蟒营™课程需要, 重新启用, 改名为 蟒营101camp</li>
<li>2020 年疫情触发了一系列私人思考文章, 但是, 无论哪个社区公众号都不合适发布,于是, 再次变更为现在的 Chaos42</li>
</ul>
</li>
<li>TFUG珠海 (订阅号: ZH_TFUG)<ul>
<li>2019 和朋友一起运营</li>
</ul>
</li>
<li>公开课程: 蟒营 (订阅号: <strong>Mainium</strong>)<ul>
<li>2019 年决心正式运营蟒营™网课</li>
<li>终于正式注册了公司(昩因®)后, 对应注册的企业订阅号</li>
<li>而且对应注册了 <code>蟒营™</code> 商标</li>
</ul>
</li>
</ul>
<hr>
<h2 id="_3">现象<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<p>公众号, 俺一向认为是有有关部门监管的, 封闭的信息发布渠道,
比自己发布的专有 blog 要受限的多,
而且限于微信内置的专有浏览器, 根本不允许外部链接,
其实隔离自互联网之外;</p>
<p>所以, 以往都是为了配合社区的宣传而不得不使用;</p>
<p>从来没想过用公众号来发布自己的思考/感情;</p>
<p>可是, 没想到, 这次春节被 <code>新冠肺炎(NCP/2019-nCoV)</code> 激发的几个系列:</p>
<ul>
<li>(8篇) 新冠肺炎(NCP)正确应对姿势</li>
<li>(4篇) 如何应对,就是不愿意上班的心情?</li>
<li>(3篇) 科学'摸鱼'指北</li>
</ul>
<p>完全是自觉隔离期间, 应网友预约, 写了出来,出乎意料, 反响热烈, </p>
<p>而且, 有赞赏直接给最高额度的, 吓一大跳, 赶忙问:"是否点错了?"</p>
<p>准备退钱呢, 结果人家说等你吐糟很久了,
这种文章对自己有<strong>定神丸</strong>一般的作用云云...</p>
<hr>
<h2 id="_4">分析<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<p>嗯哼? 看来不知不觉中, 自己的吐糟能力, 也终于进化到足以触及人心的程度了,</p>
<p>而且, 随着订阅人数超过 500 人, 发现还能启动流量功能,</p>
<ul>
<li>虽然, 自动插入的广告看很有些膈应, </li>
<li>但是, 这是真正的被动收入哪;</li>
<li>原本, 在俺的计划中, 第一笔被动收入是在完成有关系统后, 拼命持续优化出足够流量时才可能有的;</li>
</ul>
<p>看来, 真小看了微信生态超过8亿用户的现实;</p>
<hr>
<h2 id="_5">对策<a class="headerlink" href="#_5" title="Permanent link">¶</a></h2>
<p>那么, 就认真开始呗; </p>
<p>反正, 在社区/课程/开发之余, 以往每天也都在各种群吐糟;</p>
<p>现在嘦成系列的将大家关心的话题, 认真吐糟, 就有被动收入!</p>
<div class="highlight"><pre><span></span><code>简直太正能量了;
</code></pre></div>
<p>只是, 问题在:</p>
<ul>
<li>没有真正可以长期运营的, 格调匹配的公众号来用</li>
<li>以往公众号都是配给社区运营的, <ul>
<li>唯一那个硬迁移到企业订阅号后, 叒闲置下来的, 注册主体是旧同事</li>
<li>如果当前这个<strong>"吐糟"计划</strong>, 想长期进行,</li>
<li>还是得主体在左近的, 有些认证的事儿好处理.</li>
</ul>
</li>
<li>好再经提醒, 明确了:<ul>
<li>俺家里领导自己的公众号(<code>花毛笔</code>), 就是长期闲置状态;</li>
<li>一说即通, 那就重新装修, 这就开始吧.</li>
</ul>
</li>
</ul>
<hr>
<h2 id="_6">以及<a class="headerlink" href="#_6" title="Permanent link">¶</a></h2>
<p>叕, 读作 <code>zhuó</code>, 本意是连缀,如:</p>
<div class="highlight"><pre><span></span><code>"圣人之思脩,愚人之思叕"
</code></pre></div>
<p>只是, 日常俺任性的转用其字形喻义:</p>
<ul>
<li>又 ~ 再1次</li>
<li>双 ~ 又2次</li>
<li>叒 ~ 又3次</li>
<li>叕 ~ 又4次</li>
<li>敠 ~ 又5次</li>
</ul>
<p>所以, 作为一头数字游民, 大妈本体在这世上历数是真的4次迁徙了:</p>
<ul>
<li>出生在兰州, 第一次迁徙到常州, 接触到网络</li>
<li>第二次, 从常州迁徙到上海, 证明自己可以独立生存</li>
<li>第三次, 从上海迁徙到北京, 证明自己并无商业潜力</li>
<li>第四次, 从北京迁徙到珠海, 证明自己技术潜力还成</li>
</ul>
<p>同时, 也是私人发言场景的迁移:</p>
<ul>
<li>大学前, 通过信件通过手写和笔友交流</li>
<li>工作后, 通过邮件加入技术社区和网友交流</li>
<li>有域名, 通过私人网站, 通过 blog 默默和世界对话</li>
<li>第四次, 固定一个私人公众号, 在微信生态圈中和怼友们主题化交流</li>
</ul>
<p>这次, 不知道能坚守多久, 全看 微信 小龙哥能坚持多久了.</p>
<hr>
<h2 id="ps">PS:<a class="headerlink" href="#ps" title="Permanent link">¶</a></h2>
<blockquote>
<p>不完全过往私人吐槽线路</p>
</blockquote>
<p>作为一名热爱互联网的程序猿, 从94年进入大学接触到互联网后,
就一直本能的对所有免费数据/发布渠道有冲动;</p>
<p>总是对各种新发布的 SNS/CMS 工具/服务/平台/... 有研究试用,
以致日积月累, 自己都不清楚自己在网络中留下了多少痕迹;
甚至于, 想过发动网友, 一起探索的, 结果用了两年多, 还是没探查穷尽;</p>
<p>既然, 要重新开始一个长期锚点吐槽了, 那么, 以往折腾过的线路就值得清点一下,
以便大家知道哪些是真大妈, 哪些是李鬼:-}</p>
<p>域名, 没折腾太多:</p>
<ul>
<li>私用:<ul>
<li>zqstudio.org ~ 03 年左右短期临时使用</li>
<li>zoomquiet.org ~ 04年注册,一直是个人网站主入口</li>
<li>momoko.in ~ 10年, 为自己家注册, 发布家庭笔记</li>
<li>zoomquiet.io ~ 13年, Google I/O 大会期间趁优惠抢到, 迁移为个人网站入口</li>
<li>zoomquiet.top ~ 17年, 为7niu/upyun 的CDN 使用,不得不注册 aliyun 全家桶,并备案, 专门用来绑定国内资源</li>
</ul>
</li>
<li>社区:<ul>
<li>zhgdg.org ~ 13年, GDG珠海成立时,配合注册, 一直私人支付各种费用</li>
<li>DevRel.info ~ 14年, 配合公司开发者关系部门工作注册, 17年过期</li>
<li>TFUG.world ~ 19年, TFUG珠海成立时, 配合注册</li>
<li>101.camp ~ 18年, 无意中抢到, 变成 蟒营™系列课程主域名</li>
</ul>
</li>
<li>企业:<ul>
<li>Mainium.icu ~ 意为: <code>i see u Mainium</code></li>
</ul>
</li>
</ul>
<p>大妈吐糟路线简谱:</p>
<div class="highlight"><pre><span></span><code> <span class="n">SNS</span><span class="o">/</span>
<span class="o">+-</span> <span class="n">zoomq</span><span class="o">.</span><span class="n">livejournal</span><span class="o">.</span><span class="n">com</span>
<span class="o">+-</span> <span class="n">twitter</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">zoomq</span>
<span class="o">+-</span> <span class="n">flickr</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">photos</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/</span>
<span class="o">+-</span> <span class="n">zoomquiet</span><span class="o">.</span><span class="n">blogspot</span><span class="o">.</span><span class="n">com</span>
<span class="o">+-</span> <span class="n">facebook</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">zoom</span><span class="o">.</span><span class="n">quiet</span>
<span class="o">+-</span> <span class="n">medium</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="nd">@zoom</span><span class="o">.</span><span class="n">quiet</span>
<span class="o">+-</span> <span class="n">linkedin</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="ow">in</span><span class="o">/</span><span class="n">zoomquiet</span><span class="o">/</span>
<span class="o">+-</span> <span class="n">douban</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">group</span><span class="o">/</span><span class="n">zoomquiet</span>
<span class="o">+-</span> <span class="n">weibo</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">zoomquiet</span>
<span class="o">+-</span> <span class="n">segmentfault</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">blog</span><span class="o">/</span><span class="n">zoomquiet</span>
<span class="o">+-</span> <span class="n">zhihu</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">people</span><span class="o">/</span><span class="n">zoomquiet</span>
<span class="o">+-</span> <span class="n">v2ex</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">member</span><span class="o">/</span><span class="n">ZoomQuiet</span>
<span class="o">+-</span> <span class="n">jianshu</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">u</span><span class="o">/</span><span class="mi">3908</span><span class="n">d6bf439d</span>
<span class="o">+-</span> <span class="n">space</span><span class="o">.</span><span class="n">bilibili</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="mi">370446051</span>
<span class="o">+-</span> <span class="n">lizhi</span><span class="o">.</span><span class="n">fm</span><span class="o">/</span><span class="n">user</span><span class="o">/</span><span class="mi">2591566889804466220</span>
<span class="o">+-</span> <span class="n">ximalaya</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">zhubo</span><span class="o">/</span><span class="mi">21419207</span><span class="o">/</span>
<span class="o">+-</span> <span class="o">..</span> <span class="n">其它</span> <span class="mi">42</span><span class="o">+</span> <span class="n">以上挖坑没埋的嗯哼</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/python-cn</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/shlug</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/szlug</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/lispchina</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/ecug</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/erlang-china</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/golang-china</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/gdg-zhuhai</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/tfug-zh</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/codingirl</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/openbookproject</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/101camp</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/debuguself</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/guru101camp</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/askdama</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/101camp1py</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/101camp2py</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/101camp3py</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/101camp4py</span>
<span class="o">+-</span> <span class="n">groups</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">forum</span><span class="o">/</span><span class="c1">#!forum/101camp5py</span>
<span class="o">+-</span> <span class="o">..</span> <span class="n">以及其它不到</span> <span class="mi">200</span> <span class="n">个列表</span>
<span class="n">Project</span><span class="o">/</span>
<span class="o">+-</span> <span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">ZoomQuiet</span>
<span class="o">|</span> <span class="o">+-</span> <span class="o">..</span> <span class="mi">20</span><span class="o">+</span> <span class="n">组织</span>
<span class="o">|</span> <span class="o">+-</span> <span class="o">..</span> <span class="mi">142</span><span class="o">+</span> <span class="n">仓库</span>
<span class="o">+-</span> <span class="n">gitlab</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">ZoomQuiet</span>
<span class="o">|</span> <span class="o">+-</span> <span class="o">..</span> <span class="mi">4</span><span class="o">+</span> <span class="n">组织</span>
<span class="o">|</span> <span class="o">+-</span> <span class="o">..</span> <span class="mi">142</span><span class="o">+</span> <span class="n">仓库</span>
<span class="o">+-</span> <span class="n">mercurial</span><span class="o">-</span><span class="n">scm</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">wiki</span><span class="o">/</span><span class="n">ZoomQuiet</span>
<span class="o">+-</span> <span class="n">wiki</span><span class="o">.</span><span class="n">bazaar</span><span class="o">.</span><span class="n">canonical</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">ZoomQuiet</span>
<span class="o">+-</span> <span class="n">bitbucket</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">ZoomQuiet</span>
<span class="o">+-</span> <span class="n">sourceforge</span><span class="o">.</span><span class="n">net</span><span class="o">/</span><span class="n">u</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/</span><span class="n">profile</span>
<span class="o">+-</span> <span class="n">slideshare</span><span class="o">.</span><span class="n">net</span><span class="o">/</span><span class="n">Zoom</span><span class="o">.</span><span class="n">Quiet</span>
<span class="o">+-</span> <span class="n">speakerdeck</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">zoomquiet</span>
<span class="o">+-</span> <span class="n">wiki</span><span class="o">.</span><span class="n">woodpecker</span><span class="o">.</span><span class="n">org</span><span class="o">.</span><span class="n">cn</span><span class="o">/</span><span class="n">moin</span><span class="o">/</span><span class="n">ZoomQuiet</span>
<span class="o">+-</span> <span class="n">txt2tags</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">team</span><span class="o">/</span>
<span class="o">+-</span> <span class="o">..</span> <span class="n">以及其它</span> <span class="mi">42</span><span class="o">+</span> <span class="n">以上乱入</span>
<span class="n">Site</span><span class="o">/</span>
<span class="o">+-</span> <span class="n">zoomquiet</span><span class="o">.</span><span class="n">io</span> <span class="o">~</span> <span class="n">私人资源图谱</span>
<span class="o">+-</span> <span class="n">wiki</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">io</span>
<span class="o">+-</span> <span class="n">blog</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">io</span>
<span class="o">+-</span> <span class="n">blog</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">org</span>
<span class="o">+-</span> <span class="n">www</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span> <span class="n">备案声明</span>
<span class="o">+-</span> <span class="n">ScrapBook</span> <span class="n">自动镜像</span><span class="p">:</span>
<span class="o">+-</span> <span class="n">coder</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">floss</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">devrel</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">devres</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">pythonic</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">smm</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">scm</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">skm</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">公开资源索引</span><span class="p">:</span>
<span class="o">+-</span> <span class="mi">0</span><span class="o">|</span><span class="n">z</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="mi">1</span><span class="o">|</span><span class="n">q</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">s5</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">rtfd</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">chaos2</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="o">...</span>
<span class="o">+-</span> <span class="n">UPYUN</span> <span class="n">资源索引</span><span class="p">:</span>
<span class="o">+-</span> <span class="n">woodpecker</span><span class="o">.</span><span class="n">up</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">res</span><span class="o">.</span><span class="n">pychina</span><span class="o">.</span><span class="n">up</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">pychina</span><span class="o">.</span><span class="n">up</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">org</span><span class="o">.</span><span class="n">up</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">ipic</span><span class="o">.</span><span class="n">up</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">techparty</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">tpres</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="n">flutter</span><span class="o">.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="o">+-</span> <span class="o">...</span>
<span class="o">+-</span> <span class="mf">101.</span><span class="n">camp</span> <span class="o">~</span> <span class="n">蟒营</span><span class="err">™</span><span class="n">开源网络课程框架</span>
<span class="o">+-</span> <span class="n">t</span><span class="o">.</span><span class="n">zsxq</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">iaIEQ3N</span> <span class="o">-></span> <span class="n">知识星球</span>
<span class="o">+-</span> <span class="n">blog</span><span class="mf">.101</span><span class="o">.</span><span class="n">camp</span>
<span class="o">+-</span> <span class="n">wiki</span><span class="mf">.101</span><span class="o">.</span><span class="n">camp</span>
<span class="o">+-</span> <span class="n">du</span><span class="mf">.101</span><span class="o">.</span><span class="n">camp</span> <span class="o">~</span> <span class="n">自怼圈</span>
<span class="o">|</span> <span class="o">+-</span> <span class="n">du</span><span class="mf">.101</span><span class="o">.</span><span class="n">camp</span><span class="o">/</span><span class="n">duw</span> <span class="o">~</span> <span class="n">怼周刊</span>
<span class="o">+-</span> <span class="n">fm</span><span class="mf">.101</span><span class="o">.</span><span class="n">camp</span> <span class="o">~</span> <span class="n">播客</span>
<span class="o">+-</span> <span class="n">py</span><span class="mf">.101</span><span class="o">.</span><span class="n">camp</span> <span class="o">~</span> <span class="n">Python</span> <span class="n">入门班</span><span class="p">,</span> <span class="n">每月上新一期</span>
<span class="o">+-</span> <span class="n">tm</span><span class="mf">.101</span><span class="o">.</span><span class="n">camp</span> <span class="o">~</span> <span class="n">时帐入门体验班</span>
<span class="o">+-</span> <span class="n">dj</span><span class="mf">.101</span><span class="o">.</span><span class="n">camp</span> <span class="o">~</span> <span class="n">Django</span> <span class="n">入门班</span>
<span class="o">+-</span> <span class="o">..</span> <span class="n">其它</span> <span class="mi">42</span><span class="o">+</span> <span class="n">以上筹备课程</span>
<span class="o">+-</span> <span class="n">ydlj</span><span class="mf">.101</span><span class="o">.</span><span class="n">camp</span> <span class="o">~</span> <span class="n">阅读邻居官网备份</span>
<span class="o">+-</span> <span class="n">PyChina</span><span class="o">.</span><span class="n">org</span> <span class="o">~</span> <span class="n">蟒中国</span> <span class="n">落地页</span>
<span class="o">+-</span> <span class="n">wiki</span><span class="o">.</span><span class="n">PyChina</span><span class="o">.</span><span class="n">org</span>
<span class="o">+-</span> <span class="n">blog</span><span class="o">.</span><span class="n">PyChina</span><span class="o">.</span><span class="n">org</span>
<span class="o">+-</span> <span class="n">weekly</span><span class="o">.</span><span class="n">PyChina</span><span class="o">.</span><span class="n">org</span> <span class="o">~</span> <span class="mi">2012</span><span class="n">开始坚持的周刊快译</span>
<span class="o">+-</span> <span class="n">cn</span><span class="o">.</span><span class="n">PyCon</span><span class="o">.</span><span class="n">org</span> <span class="o">~</span> <span class="n">PyCon</span> <span class="n">中国大会官网</span>
<span class="o">+-</span> <span class="n">wiki</span><span class="o">.</span><span class="n">woodpecker</span><span class="o">.</span><span class="n">org</span><span class="o">.</span><span class="n">cn</span><span class="o">/</span><span class="n">moin</span><span class="o">/</span><span class="n">ZoomQuiet</span>
<span class="o">+-</span> <span class="n">包含21</span><span class="o">+</span><span class="n">万页面</span><span class="p">,</span> <span class="n">全球最大中文</span> <span class="n">Python</span> <span class="n">技术维基</span>
<span class="o">+-</span> <span class="n">感谢</span> <span class="n">豆瓣</span> <span class="n">从09年开始坚定不移的主机支持</span>
<span class="o">...</span><span class="n">以及其它挖坑不埋的网站们</span> <span class="p">;</span><span class="o">-</span><span class="p">}</span>
</code></pre></div>
<hr>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li><a href="https://101.camp/">蟒营™101.camp 开源网络课程框架</a><ul>
<li><a href="https://py.101.camp/">蟒营™ Python 入门班第5期</a></li>
</ul>
</li>
</ul>
<hr>
<p>是也乎,( ̄▽ ̄)</p>
<blockquote>
<blockquote>
<p>NN 3932</p>
</blockquote>
</blockquote>
<p>好文笔,感叹号年度配额: <strong>1/3</strong></p>
<hr>
<p>ZoomQuiet/<strong>大妈</strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个大妈:</p>
<ul>
<li>私自嗯哼: ZoomQuiet (订阅号 <strong>ZoomQuiet42</strong>)</li>
<li>公开课程: <strong>蟒营</strong> (订阅号: Mainium)</li>
<li>全国大会: PyChina (订阅号: PyChinaOrg)</li>
<li>本地社区: <ul>
<li>GDG珠海 (订阅号: GDG-ZhuHai)</li>
<li>TFUG珠海 (订阅号: ZH_TFUG)</li>
</ul>
</li>
<li>历史吐糟: Chaos42 (订阅号 PythoniCamp)</li>
</ul>
<hr>公告/ 拙见2020-02-22T11:42:00+08:002020-03-05T15:45:00+08:00ZoomQuiettag:blog.zoomquiet.io,2020-02-22:/ann-imho-0.html<p>ANN/ what is IMHO</p><p>叕流浪到一个公众号, 期望定居, 重新开始嗯哼;</p>
<p>那么先厘定的当然是栏目了;</p>
<div class="highlight"><pre><span></span><code>事不过三
</code></pre></div>
<p>就三个:</p>
<ul>
<li>公告
- 拙见</li>
<li>钩陈</li>
</ul>
<blockquote>
<p>公告</p>
</blockquote>
<p>不用说, 就是 ANNouncement, 各种正式通知,
给自己和读者以及永远注视着我们的系统背后的有关部门们;</p>
<blockquote>
<p>拙见</p>
</blockquote>
<p>其实就是 IMHO(In My Humble Opinion) 这一网络常用缩写的翻译:</p>
<ul>
<li>恕我直言</li>
<li>依拙之见</li>
<li>依我所见</li>
<li>依愚人之见</li>
<li>依鄙人之见</li>
<li>... </li>
</ul>
<p>准备将自己各种问题思考过程记述并公开出来,
类似这次春节被 <code>新冠肺炎(NCP/2019-nCoV)</code> 激发的几个系列:</p>
<ul>
<li>(8篇) 新冠肺炎(NCP)正确应对姿势</li>
<li>(4篇) 如何应对,就是不愿意上班的心情?</li>
<li>(3篇) 科学'摸鱼'指北 0~2</li>
</ul>
<p>发现任何一个问题, 真的要认真分析, 尝试回答, 都不是一个简单的事儿;
而多数网络中的文章,只是丢出一个非常标题党的问题,
立即, 用一篇文章,罗列数据/图片/表情包,
以及一句断言式的结论就完成了回答;</p>
<p>并成功引爆转发和关注, 形成 10万+ 大V文章;</p>
<p>这不是不行, 而是不怎么合俺自己的偏好;</p>
<p>那么, 既然没有对味儿的思考记录,
就公开自己的呗, 反正在思考了, 公开出来但求, <code>抛砖引玉</code> 哈?</p>
<p>其实,公开了, 才发现有几个作用:</p>
<ul>
<li>梳理自己思考, 形成可讨论的输出</li>
<li>提供问题的私人思考方式和过程, 给有需要的朋友参考</li>
<li>演示普通人如何结构化思考, 以及过程, 为面对问题难以进行深入分析的朋友, 提供思维上的脚手架</li>
<li>以自己认真的姿态, 来安定一小片儿被爆文挑拨起来的焦虑</li>
<li>...</li>
</ul>
<p>以上</p>
<hr>
<p>是也乎,( ̄▽ ̄)</p>
<blockquote>
<blockquote>
<p>NN 3931</p>
</blockquote>
</blockquote>
<hr>
<p>ZoomQuiet/<strong>大妈</strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个大妈:</p>
<ul>
<li>私自嗯哼: Zoom.Quiet (订阅号 <strong>ZoomQuiet42</strong>)</li>
<li>公开课程: 蟒营 (订阅号: Mainium)</li>
<li>全国大会: PyChina (订阅号: <strong>PyChinaOrg</strong>)</li>
<li>本地社区: GDG珠海 (订阅号: GDG-ZhuHai)</li>
<li>本地社区: <ul>
<li>GDG珠海 (订阅号: GDG-ZhuHai)</li>
<li>TFUG珠海 (订阅号: ZH_TFUG)</li>
</ul>
</li>
<li>历史吐糟: Chaos42 (订阅号 PythoniCamp)</li>
</ul>
<hr>公告/ 钩陈2020-02-22T10:42:00+08:002020-03-05T15:42:00+08:00ZoomQuiettag:blog.zoomquiet.io,2020-02-22:/ann-oldtouch-0.html<p>ANN/ what is OldTouch</p><p>叕流浪到一个公众号, 期望定居, 重新开始嗯哼;</p>
<p>那么先厘定的当然是栏目了;</p>
<div class="highlight"><pre><span></span><code>事不过三
</code></pre></div>
<p>就三个: 公告/拙见/钩陈</p>
<hr>
<blockquote>
<p>钩陈</p>
</blockquote>
<p>其实是两个词的组合:</p>
<ul>
<li>勾陈 , 古代星宿名,源于中国人民对远古的星辰自然崇拜,是古代中国神话和天文学结合的产物. 勾陈为上古六神之中,与腾蛇同属土. <ul>
<li>"荆州占"曰:"钩陈,天子大司马,钩陈者,黄龙之位也. "</li>
<li>"易冒":"勾陈之象,实名麒麟,位居中央,权司戊日. </li>
<li>"星经":"钩陈六星在五帝下. "</li>
<li>"步天歌":"勾陈六星六甲前,天皇独在勾陈里. "</li>
<li>在"奇门遁甲",勾陈被纳入八神之一,值符,腾蛇,太阴,勾陈,白虎,六合,玄武,九地,九天. </li>
<li>...</li>
<li>史书上所记"句陈,勾陈,钩陈",均为"勾陈". </li>
<li>英文Curved Array,星官名,属紫微垣,共6星,4星即小熊座α,δ,ε,ζ;2星在仙王座. </li>
<li>同时: 勾陈, 在药材中又是[雄黄]的别称. </li>
</ul>
</li>
<li>钩沉, <ul>
<li>一词语出"易经·系辞":"探赜(音zé)索隐,钩深致远,以定天下之吉凶,成天下之亹亹者,莫大乎蓍龟. "</li>
<li>释义:探求繁杂的物象,索求幽隐的事理,钩求深远的道术,使人获致远大的前途,以决定天下的吉凶,成就天下勤勉的事业的,没有比卜筮所用的"蓍草"和"龟甲"更伟大的了. )</li>
<li>指探索深奥的道理或散失的内容</li>
</ul>
</li>
</ul>
<p>俺原先直觉是想用 <code>勾陈</code>:</p>
<ul>
<li>勾联陈旧的故事,<ul>
<li>将以往的常识,</li>
<li>现在大家忽略的人/故事/技术/工具/项目/...</li>
<li>阐述清楚, 作为参考</li>
</ul>
</li>
<li>没想到 <code>勾陈</code> 是位星君</li>
<li>而俺想表述的类型, 是 <code>钩沉</code></li>
<li>沉和陈, 俺还是意向陈旧的陈</li>
<li>但是, 钩又的确比勾, 来的形象</li>
<li>那么,就任性组合为 <strong>钩陈</strong></li>
<li>作为私人栏目代号了</li>
</ul>
<p>另两个就是:</p>
<ul>
<li>公告 -> <strong>ANN</strong>ouncement</li>
<li>拙见 -> <strong>IMHO</strong>(In My Humble Opinion)</li>
</ul>
<p>已经在 <code>菜单/栏目</code> 中有关链接说明了.</p>
<p>以上</p>
<hr>
<p>是也乎,( ̄▽ ̄)</p>
<blockquote>
<blockquote>
<p>NN 3931</p>
</blockquote>
</blockquote>
<hr>
<p>ZoomQuiet/<strong>大妈</strong></p>
<p>就是四处 <code>是也乎,( ̄▽ ̄)</code> 的那个大妈:</p>
<ul>
<li>私自嗯哼: Zoom.Quiet (订阅号 <strong>ZoomQuiet42</strong>)</li>
<li>公开课程: 蟒营 (订阅号: Mainium)</li>
<li>全国大会: PyChina (订阅号: <strong>PyChinaOrg</strong>)</li>
<li>本地社区: GDG珠海 (订阅号: GDG-ZhuHai)</li>
<li>本地社区: <ul>
<li>GDG珠海 (订阅号: GDG-ZhuHai)</li>
<li>TFUG珠海 (订阅号: ZH_TFUG)</li>
</ul>
</li>
<li>历史吐糟: Chaos42 (订阅号 PythoniCamp)</li>
</ul>
<hr>什么是开放社区初探....2020-01-31T16:42:24+08:002020-01-31T17:15:27+08:00Zoom.Quiettag:blog.zoomquiet.io,2020-01-31:/200131-what-is-community.html
<h2 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p><a href="https://shimo.im/docs/KWxwgtpwGQxYv6Gw">鼠年话开源-系列主题网聊</a></p>
<ul>
<li>第6夜是俺发起的议题</li>
<li>没想到是个错误的议题, 几句聊明白后</li>
<li>引发出更加有意思的讨论...</li>
</ul>
<h2 id="_2">触发<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<blockquote>
<p>其中追本溯源 …</p></blockquote>
<h2 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p><a href="https://shimo.im/docs/KWxwgtpwGQxYv6Gw">鼠年话开源-系列主题网聊</a></p>
<ul>
<li>第6夜是俺发起的议题</li>
<li>没想到是个错误的议题, 几句聊明白后</li>
<li>引发出更加有意思的讨论...</li>
</ul>
<h2 id="_2">触发<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<blockquote>
<p>其中追本溯源的灵魂一问, 导入一本奇书中的论述</p>
</blockquote>
<p>' 姜宁: https://github.com/open-organization-ambassadors/open-org-workbook/blob/master/open_org_workbook_1_1_5.pdf 222 页有一篇文章 community和open source community的论述,大家可以参考一下. '</p>
<hr/>
<p>' 姜宁: 里面提到一个概念,就是Open Communities 也不是绝对的Open . '</p>
<hr/>
<p>' 姜宁: open communities are a broader implementation of open source communities. '</p>
<hr/>
<h2 id="_3">快译<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<blockquote>
<p>尝试将要点翻译一下...</p>
</blockquote>
<p>什么是社区?
...以往...现在互联网社区越来越重要...</p>
<p>"社区"是指关系;它是成员与其共享的价值和活动系统之间的连接媒介. 换句话说,这是人员,工具和其他元素相互联系和互动的方式. 这一点很重要. 社区不仅仅是一群无定形的人...</p>
<p>什么是开放社区?</p>
<p>-> 专门指开源技术社区了...其次,这些社区产生的源代码是"开放的",这意味着社区和公众都可以使用和修改它. </p>
<p>进一步的, 开源技术社区也只是开放社区首批实例化的社区...</p>
<p>以往是专有软件为王, 现在开源软件在兴起...</p>
<p>更简单地讲,开放社区发展所遵循的共同价值观和信念不仅与它所做的事情有关,而且还与它如何做事有关. </p>
<p>功勋主义 是很多开源社区的核心价值观...</p>
<p>开放社区主要通过成员的参与进行管理,而不是由指定的社区主持人进行管理(尽管可能有一个社区主持人,其作用是根据社区的精英和其他价值观来调解纠纷或进行适度的讨论).
所有成员的参与都是为了使社区的目标和行为社会化. 例如,在开放社区中,围绕"协作","多样性","适应性","透明性"或"功勋"的价值观形成,所有成员都有责任防止和报告骚扰或任何可能破坏这些骚扰的行为价值观. </p>
<h2 id="_4">反思<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<p>6年前私人偏见是这样的:</p>
<p><a href="https://devrel.101.camp/2014-02/ac2-tech-community/">关 乎社群:2 什么是技术社区? | DevRel | 开发者关系.思考</a></p>
<p>今天, 从开源技术社区开始, 逐渐获得社会认可, 进而衍生出更加宽泛的开放社区;
对比开源技术社区, 相同的是:</p>
<ul>
<li>核心目标作品</li>
<li>开放/对等/主动的协作机制</li>
<li>...</li>
</ul>
<p>问题是, 国外学术界/商界都在积累观察/参与/讨论/分析/...开源引发的开放社区协作...</p>
<p>而中国互联网全员关注的只是 996 福报...</p>
<p>那么, 作为微小的个人, 可以为之作什么?</p>
<ul>
<li>发起/运营/参与/服务各种开放社区</li>
<li>积累贡献经验, 观察/总结中国式协作技巧</li>
<li>切实通过实践影响到具体的一个个人</li>
<li>慢慢的, 传递开来, 就能形成切实的影响力以及组织/团体/社区/共同体/...</li>
</ul>
<h2 id="_5">原文<a class="headerlink" href="#_5" title="Permanent link">¶</a></h2>
<p><a href="https://github.com/open-organization-ambassadors/open-org-workbook/">open-organization-ambassadors/open-org-workbook: Repository for open organization community's workbook</a></p>
<p>p222~224</p>
<blockquote>
<p>Introduction:</p>
</blockquote>
<p><strong>What is community?</strong></p>
<p>Heidi Hess von Ludewig</p>
<p>The term "community" refers to a sense of shared ownership and purpose that generates relationships of goodwill and fel- lowship between the members of a social network.</p>
<p>"A community" is a speci c social network united according to shared values, beliefs, and goals. In recent years (and especially since the widespread adoption of internet technologies and appli- cations), the term "community" has taken on renewed importance. Communities exist wherever people can connect—face-to-face, in shared space, or even virtually, through analog or digital media (like as ham or CB radio) or social networking applications (like Facebook). Social communities often center around religion, poli- tics, culture, geographical location, or interests. In professional and business realms, communities can be comprised of members who have similar knowledge, professions, or work roles (for in- stance, software coding, lawyers, or project managers). Research on communities has found that they provide support, enlarge net- works by enabling weak and strong network ties, disseminate information, and provide education and mentorship.</p>
<p>But they do something else, too: Communities de ne modes of behavior, beliefs, and roles, and in this way foster relationships between people. "Community" refers to the relationships; it is the connective medium between members and their shared value and activity systems. In other words, it's the way that people, tools, and other elements relate and engage with one another. This point is important. Communities are not just amorphous globs of people</p>
<p>stuck together with some beliefs; they consist of relationships that develop between and among community members and elements. Those relationships are what constitute the community; the rela- tionships make possible the feeling of fellowship and positive association between members, the activities they perform, and the way they perform them.</p>
<p>Communities—how they're constructed, the tools they use, how they operate—in uence the ways members connect (how they develop relationships between each other and establish relation- ships to the community at large), and the community purpose and value system is the reason those members connect. In this sense, then, the reason a community exists, how it decides to design and structure itself, the tools it decides to use, the information it dis- plays to instruct and guide members, and the people who join and participate in the community are all important considerations in building an open community, because each of these factors in u- ences the others.</p>
<p><strong>What are open communities?</strong></p>
<p>So-called "open communities" are an o shoot of open source software communities. The term "open" in "open source commu- nity" has dual meanings. First, in open source communities, community participation is "open," meaning that anyone can join the community and participate in its activities. Second, the source code these communities produce is "open," meaning that both the community and the general public can use and modify it.</p>
<p>At the time open source communities were created, "open" was a very new concept—one in direct opposition to prevailing wis- dom in the software industry, where proprietary software (creation, use, and access controlled by the owners of the intellectual prop- erty) was predominant. Open source communities, therefore, were among the rst enactment of open communities and were focused on creating software. Today, however, open communities are a broader implementation of open source communities.</p>
<p>While all communities function in ways that align with the beliefs and values of the group, some are more explicit and deliberately re exive about the values that guide their operation. Open communities are one example of this approach to community; they concern themselves with how a community should operate. In this way, open communities foster a particular kind of relationship and bond between its members, and—in the truest sense—encourage the development of specialized activities that are supportive of its values and beliefs. More simply, the shared values and beliefs around which an open community develops has to do not only with what it does but how it does what it does.</p>
<p>For example, at the heart of many open communities is the value of "meritocracy," which members invoke to stress evaluation of ideas and work based on the intrinsic value of the work to the community and not on the value of the people performing the activ- ity. Other key attributes of an open community are transparency, inclusivity, adaptability, and collaboration. These shared qualities help spur the self-organizing nature of an open community. The rel- ative level of a community's degree of inclusivity, adaptability, collaboration and transparency determines that community's de- gree of "openness."</p>
<p>Open communities are managed predominantly through members' participation, rather than by a designated community moderator (though there may be a community moderator whose role is intended to mediate disputes or moderate discussions based on the meritocracy and other values of the community). All mem- bers participate in order to socialize the goals and behaviors of the community; for instance, in open communities are formed around values like "collaboration," "diversity," "adaptability," "trans - parency," or "meritocracy," all members are responsible for preventing and reporting harassment or any behavior that might negate these values.</p>
<p>Since open communities are especially concerned with how they operate, they are often able to use their shared values to in- form decision-making practices and evaluate contributions. Members therefore possess a common language for working to- gether, are able to use that language and standard of behavior to participate in collaborative work, consistently model the behaviors that align with the shared values, and—perhaps most importantly— are accountable for their actions (and trust other community mem- bers to also be accountable).</p>
<p>...</p>Elixir 中列出 Map 中值键对的折腾...2020-01-08T00:00:00+08:002020-01-09T12:37:57+08:00Zoom.Quiettag:blog.zoomquiet.io,2020-01-08:/200108-ex-map-enum.html
<p>因为各种原因吧...</p>
<ul>
<li>很早在 ECUG 就接触了 Erlang<ul>
<li>但是, 怪异的语法,以及狭小的应用领域,一直没真正使用起来</li>
<li>现在, 发现 Elixir 很好的解 …</li></ul></li></ul>
<p>因为各种原因吧...</p>
<ul>
<li>很早在 ECUG 就接触了 Erlang<ul>
<li>但是, 怪异的语法,以及狭小的应用领域,一直没真正使用起来</li>
<li>现在, 发现 Elixir 很好的解决了 OTP 生态的通用应用问题</li>
</ul>
</li>
<li>所以, 开始折腾...</li>
<li>结果, 撞见各种值得嗯哼的事儿...</li>
</ul>
<h2 id="env">env.<a class="headerlink" href="#env" title="Permanent link">¶</a></h2>
<p>༄ screenfetch</p>
<div class="highlight"><pre><span></span><code> <span class="s s-Atom">-/+:.</span> <span class="s s-Atom">zoomq@</span><span class="nv">ZQ160626rMBP</span>
<span class="o">:</span><span class="s s-Atom">++++.</span> <span class="nv">OS</span><span class="o">:</span> <span class="mi">64</span><span class="s s-Atom">bit</span> <span class="nv">Mac</span> <span class="nv">OS</span> <span class="nv">X</span> <span class="mf">10.12.6</span> <span class="mi">16</span><span class="nv">G2136</span>
<span class="s s-Atom">/+++/.</span> <span class="nv">Kernel</span><span class="o">:</span> <span class="s s-Atom">x86_64</span> <span class="nv">Darwin</span> <span class="mf">16.7.0</span>
<span class="p">.</span><span class="o">:-::-</span> <span class="p">.</span><span class="s s-Atom">+/:-</span><span class="err">``</span><span class="p">.</span><span class="o">::-</span> <span class="nv">Uptime</span><span class="o">:</span> <span class="mi">30</span><span class="s s-Atom">d</span> <span class="mi">12</span><span class="s s-Atom">h</span> <span class="mi">38</span><span class="s s-Atom">m</span>
<span class="p">.</span><span class="o">:</span><span class="s s-Atom">/++++++/::::/++++++/:</span><span class="err">`</span> <span class="nv">Packages</span><span class="o">:</span> <span class="mi">241</span>
<span class="p">.</span><span class="o">:</span><span class="s s-Atom">///////////////////////:</span><span class="err">`</span> <span class="nv">Shell</span><span class="o">:</span> <span class="s s-Atom">bash</span>
<span class="s s-Atom">////////////////////////</span><span class="err">`</span> <span class="nv">Resolution</span><span class="o">:</span> <span class="mi">2560</span><span class="s s-Atom">x1440</span>
<span class="s s-Atom">-+++++++++++++++++++++++</span><span class="err">`</span> <span class="nv">DE</span><span class="o">:</span> <span class="nv">Aqua</span>
<span class="s s-Atom">/++++++++++++++++++++++/</span> <span class="nv">WM</span><span class="o">:</span> <span class="nv">Quartz</span> <span class="nv">Compositor</span>
<span class="o">/</span><span class="s s-Atom">sssssssssssssssssssssss</span><span class="p">.</span> <span class="nv">WM</span> <span class="nv">Theme</span><span class="o">:</span> <span class="nv">Blue</span>
<span class="o">:</span><span class="s s-Atom">ssssssssssssssssssssssss</span><span class="o">-</span> <span class="nv">CPU</span><span class="o">:</span> <span class="nv">Intel</span> <span class="nv">Core</span> <span class="s s-Atom">i7</span><span class="o">-</span><span class="mi">5557</span><span class="nv">U</span> <span class="s s-Atom">@</span> <span class="mf">3.10</span><span class="nv">GHz</span>
<span class="s s-Atom">osssssssssssssssssssssssso/</span><span class="err">`</span> <span class="nv">GPU</span><span class="o">:</span> <span class="nv">Intel</span> <span class="nv">Iris</span> <span class="nv">Graphics</span> <span class="mi">6100</span>
<span class="err">`</span><span class="s s-Atom">syyyyyyyyyyyyyyyyyyyyyyyy+</span><span class="err">`</span> <span class="nv">RAM</span><span class="o">:</span> <span class="mi">9318</span><span class="nv">MiB</span> <span class="o">/</span> <span class="mi">16384</span><span class="nv">MiB</span>
<span class="err">`</span><span class="s s-Atom">ossssssssssssssssssssss</span><span class="o">/</span>
<span class="o">:</span><span class="s s-Atom">ooooooooooooooooooo+.</span>
<span class="err">`</span><span class="o">:+</span><span class="s s-Atom">oo+/:-..-:/+o+/-</span>
</code></pre></div>
<ul>
<li>Erlang/OTP 21 [erts-10.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]</li>
<li>Elixir 1.9.1 (compiled with Erlang/OTP 20)</li>
</ul>
<h2 id="problem">problem<a class="headerlink" href="#problem" title="Permanent link">¶</a></h2>
<blockquote>
<p>使用 Plug 快速开发 Slack 插件...</p>
</blockquote>
<p>首先得完成基于 Plug 的 API 服务,
这其中最关键的是从 GET/POST 协议请求中获得 Slack 转发过来的用户指令;</p>
<p>官方文档中 demo 形似:</p>
<div class="highlight"><pre><span></span><code><span class="n">defmodule</span><span class="w"> </span><span class="n">Example</span><span class="p">.</span><span class="n">Plug</span><span class="p">.</span><span class="n">VerifyRequest</span><span class="w"> </span><span class="n">do</span>
<span class="w"> </span><span class="n">defmodule</span><span class="w"> </span><span class="n">IncompleteRequestError</span><span class="w"> </span><span class="n">do</span>
<span class="w"> </span><span class="nv">@moduledoc</span><span class="w"> </span><span class="ss">"""</span>
<span class="ss"> Error raised when a required field is missing.</span>
<span class="ss"> """</span>
<span class="w"> </span><span class="n">defexception</span><span class="w"> </span><span class="nl">message</span><span class="p">:</span><span class="w"> </span><span class="ss">""</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="n">def</span><span class="w"> </span><span class="n">init</span><span class="p">(</span><span class="n">options</span><span class="p">),</span><span class="w"> </span><span class="nl">do</span><span class="p">:</span><span class="w"> </span><span class="n">options</span>
<span class="w"> </span><span class="n">def</span><span class="w"> </span><span class="k">call</span><span class="p">(</span><span class="o">%</span><span class="n">Plug</span><span class="p">.</span><span class="n">Conn</span><span class="err">{</span><span class="nl">request_path</span><span class="p">:</span><span class="w"> </span><span class="k">path</span><span class="err">}</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">conn</span><span class="p">,</span><span class="w"> </span><span class="n">opts</span><span class="p">)</span><span class="w"> </span><span class="n">do</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="k">path</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">opts</span><span class="o">[</span><span class="n">:paths</span><span class="o">]</span><span class="p">,</span><span class="w"> </span><span class="nl">do</span><span class="p">:</span><span class="w"> </span><span class="n">verify_request</span><span class="err">!</span><span class="p">(</span><span class="n">conn</span><span class="p">.</span><span class="n">params</span><span class="p">,</span><span class="w"> </span><span class="n">opts</span><span class="o">[</span><span class="n">:fields</span><span class="o">]</span><span class="p">)</span>
<span class="w"> </span><span class="n">conn</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="n">defp</span><span class="w"> </span><span class="n">verify_request</span><span class="err">!</span><span class="p">(</span><span class="n">params</span><span class="p">,</span><span class="w"> </span><span class="n">fields</span><span class="p">)</span><span class="w"> </span><span class="n">do</span>
<span class="w"> </span><span class="n">verified</span><span class="w"> </span><span class="o">=</span>
<span class="w"> </span><span class="n">params</span>
<span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="k">Map</span><span class="p">.</span><span class="n">keys</span><span class="p">()</span>
<span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="n">contains_fields</span><span class="vm">?</span><span class="p">(</span><span class="n">fields</span><span class="p">)</span>
<span class="w"> </span><span class="n">unless</span><span class="w"> </span><span class="n">verified</span><span class="p">,</span><span class="w"> </span><span class="nl">do</span><span class="p">:</span><span class="w"> </span><span class="n">raise</span><span class="p">(</span><span class="n">IncompleteRequestError</span><span class="p">)</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="n">defp</span><span class="w"> </span><span class="n">contains_fields</span><span class="vm">?</span><span class="p">(</span><span class="n">keys</span><span class="p">,</span><span class="w"> </span><span class="n">fields</span><span class="p">),</span><span class="w"> </span><span class="nl">do</span><span class="p">:</span><span class="w"> </span><span class="n">Enum</span><span class="p">.</span><span class="ow">all</span><span class="vm">?</span><span class="p">(</span><span class="n">fields</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="p">(</span><span class="o">&</span><span class="mi">1</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">keys</span><span class="p">))</span>
<span class="k">end</span>
</code></pre></div>
<p>对应检验请求可以是:</p>
<div class="highlight"><pre><span></span><code><span class="o">$</span><span class="w"> </span><span class="n">curl</span><span class="w"> </span><span class="n">localhost</span><span class="p">:</span><span class="mi">8080</span><span class="o">/</span><span class="n">upload</span><span class="err">?</span><span class="n">content</span><span class="o">=</span><span class="n">foo</span><span class="o">&</span><span class="n">mimetype</span><span class="o">=</span><span class="n">bar</span>
</code></pre></div>
<p>问题是:</p>
<div class="highlight"><pre><span></span><code><span class="o">...</span>
<span class="o">|></span><span class="w"> </span><span class="n">contains_fields</span><span class="o">?(</span><span class="n">fields</span><span class="o">)</span>
</code></pre></div>
<ul>
<li>提供的函式只是对所有 URI 参数键进行检验, 如果缺少了则报错,</li>
<li>可是, 正确请求时, 如何获得所有参数值?</li>
</ul>
<p>先使用输出语句来探查 params 是什么数据类型:</p>
<div class="highlight"><pre><span></span><code>IO.inspect(params)
</code></pre></div>
<p>请求触发后终端输出:</p>
<div class="highlight"><pre><span></span><code><span class="c">%{"cnt" => "foo", "mmt" => "bar"}</span>
</code></pre></div>
<p>是标准 Map 对象.</p>
<h2 id="try">try<a class="headerlink" href="#try" title="Permanent link">¶</a></h2>
<blockquote>
<p>Enum.all?() 是个重要的入口</p>
</blockquote>
<p>追查文档, 知道 Enum 有丰富的序列型数据处置支持:</p>
<blockquote>
<p>Enum.each 可以针对每个键进行附加处置</p>
</blockquote>
<p>所以:</p>
<div class="highlight"><pre><span></span><code><span class="n">defp</span><span class="w"> </span><span class="n">echo_vars</span><span class="p">(</span><span class="n">keys</span><span class="p">,</span><span class="w"> </span><span class="n">fields</span><span class="p">)</span><span class="w"> </span><span class="n">do</span><span class="w"> </span>
<span class="w"> </span><span class="n">Enum</span><span class="o">.</span><span class="n">each</span><span class="p">(</span><span class="n">fields</span><span class="p">,</span><span class="w"> </span><span class="n">fn</span><span class="p">(</span><span class="n">s</span><span class="p">)</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">IO</span><span class="o">.</span><span class="n">puts</span><span class="p">(</span><span class="n">s</span><span class="p">)</span><span class="w"> </span><span class="n">end</span><span class="p">)</span>
<span class="w"> </span><span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"chk. as #{keys} ;-)"</span><span class="p">)</span>
<span class="n">end</span>
</code></pre></div>
<p>但是, 各种出错, 因为这时, 传入的 keys 是只有请求 Map 中的键;</p>
<p>那么:</p>
<div class="highlight"><pre><span></span><code><span class="n">Enum</span><span class="p">.</span><span class="n">each</span><span class="p">(</span><span class="n">params</span><span class="p">,</span><span class="n">fn</span><span class="p">(</span><span class="n">k</span><span class="p">)</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">IO</span><span class="p">.</span><span class="n">puts</span><span class="p">(</span><span class="nf">Map</span><span class="p">.</span><span class="n">get</span><span class="p">(</span><span class="n">params</span><span class="p">,</span><span class="n">k</span><span class="p">))</span><span class="w"> </span><span class="kd">end)</span>
</code></pre></div>
<ul>
<li>跳出 verified = params ... 的处理流水线;</li>
<li>直接追加列印处理?</li>
<li>也不行...<ul>
<li>光是看形式就有问题</li>
<li>先对 Map 进行 Enum.each </li>
<li>然后对每一个键, 再进行 Map.get</li>
<li>这简直是对相同的数据进行反复操作</li>
</ul>
</li>
</ul>
<h2 id="hummm">Hummm?!<a class="headerlink" href="#hummm" title="Permanent link">¶</a></h2>
<blockquote>
<p>万万没想到...</p>
</blockquote>
<p>无意中在 <a href="https://mlog.club/article/1923002">如何在Elixir中将映射键从字符串转换为原子 | 码农俱乐部 - Golang中国 - Go语言中文社区</a></p>
<p>看到:</p>
<div class="highlight"><pre><span></span><code>iex(1)> string_key_map = %{"foo" => "bar", "hello" => "world"}
</code></pre></div>
<p>%{"foo" => "bar", "hello" => "world"}</p>
<div class="highlight"><pre><span></span><code><span class="n">iex</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">></span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">{</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">val</span><span class="p">}</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">string_key_map</span><span class="p">,</span><span class="w"> </span><span class="n">into</span><span class="p">:</span><span class="w"> </span><span class="c">%{}, do: {String.to_atom(key), val}</span>
<span class="c">%{foo: "bar", hello: "world"}</span>
</code></pre></div>
<p>虽说这是 Comprehensions 概念的通常使用,
但是, 发现, for 这个操作, 和 Python 中的完全一致哪,
于是:</p>
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="n">defp</span><span class="w"> </span><span class="n">echo_vars</span><span class="p">(</span><span class="n">params</span><span class="p">)</span><span class="w"> </span><span class="n">do</span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">{</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">val</span><span class="p">}</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">params</span><span class="w"> </span><span class="n">do</span>
<span class="w"> </span><span class="c1">#IO.inspect(key)</span>
<span class="w"> </span><span class="c1">#IO.inspect(val)</span>
<span class="w"> </span><span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"each -> #{key}=>#{val} ;-)"</span><span class="p">)</span>
<span class="w"> </span><span class="n">end</span>
<span class="w"> </span><span class="n">end</span>
</code></pre></div>
<p>简直和 Python 中解包行为完全一致...</p>
<p>可是: <a href="https://learnxinyminutes.com/docs/zh-cn/elixir-cn/">Learn elixir in Y Minutes</a>
一句也没提及, for 这么 NB 的操作符哪...</p>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li><a href="https://hexdocs.pm/plug/Plug.Router.html">Plug.Router — Plug v1.8.3</a><ul>
<li><a href="http://elixirschool.com/zh-hans/lessons/specifics/plug/">Plug · Elixir School</a></li>
</ul>
</li>
<li><a href="https://mlog.club/article/1923002">如何在Elixir中将映射键从字符串转换为原子</a><ul>
<li><a href="https://szpzs.oschina.io/2017/02/11/elixir-getting-started-comprehensions/">Elixir入门教程-速构 | Time is all</a></li>
</ul>
</li>
</ul>
<h2 id="changelog">Changelog<a class="headerlink" href="#changelog" title="Permanent link">¶</a></h2>
<ul>
<li>200109 .5h 配置模板,重新发布</li>
<li>200108 .5h 输出</li>
<li>200107 2.5h 折腾</li>
</ul>Leo 第N次科普2019-08-23T00:00:00+08:002019-09-08T12:44:51+08:00Zoom.Quiettag:blog.zoomquiet.io,2019-08-23:/leo-101-againnn.html
<h2 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p><a href="https://wewe.t9t.io/chat/%E3%80%90%E9%9B%86%E6%99%BA%E3%80%91%E6%B3%A8%E6%84%8F%E5%8A%9B%E4%B8%8E%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%BE%A4">[集智]注意力与知识管理群</a></p>
<p>中大家经常就一些工具产生各种讨论,
俺一向的标签是:</p>
<ul>
<li>Python</li>
<li>Pythonic</li>
<li><a href="http://www.leoeditor.com/">Leo</a></li>
</ul>
<p>其它还好, 有广泛群众基础 …</p>
<h2 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p><a href="https://wewe.t9t.io/chat/%E3%80%90%E9%9B%86%E6%99%BA%E3%80%91%E6%B3%A8%E6%84%8F%E5%8A%9B%E4%B8%8E%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%BE%A4">[集智]注意力与知识管理群</a></p>
<p>中大家经常就一些工具产生各种讨论,
俺一向的标签是:</p>
<ul>
<li>Python</li>
<li>Pythonic</li>
<li><a href="http://www.leoeditor.com/">Leo</a></li>
</ul>
<p>其它还好, 有广泛群众基础, 这个 Leo 就经常引发嗯哼</p>
<h2 id="_2">引子:<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<blockquote>
<p>pimgeek-知识管理工具研究者: 插一个技术提问. . . </p>
</blockquote>
<ul>
<li>@大妈🙊Zoom.Quiet LeoEditor 的节点支持类似 {{ var }} 这样的模板语法吗?<ul>
<li>我知道 << section >> 这样的用法,还有 valuespace + jinja 的方式, 不知还有没有其它实现方式?[疑问] '</li>
<li><< section >> 这种用法是 LeoEditor 内置的实现方式</li>
<li>{{ var }} 这种用法是 LeoEditor 插件的实现方式</li>
</ul>
</li>
<li>我就是希望定义一些可填充的内容,把这些内容从代码主体中抽取出来,这样我编辑起来方便. '<ul>
<li>有些内容,比如网页里的作者信息等,一次编辑后反复引用. 修改时也方便. </li>
<li>专业的 Web 开发者应该是把这些代码拆成多个文件来管理. 我现在尝试用一个 LeoEditor 的大纲文件来管理. '</li>
</ul>
</li>
<li><< section >> 的用法也是类似的,只不过它必须是模板节点的子节点. '<ul>
<li>这样不必对每个节点都执行特殊操作,最省心. '</li>
<li>如果需要复用比如 html-header 中的信息,我可以利用 clone 节点的方式. '</li>
</ul>
</li>
</ul>
<blockquote>
<p>tomz-没有褒贬: 发现leo把tangle命令去掉了. 只能命令行输入tangle. 没有尝试成功怎么用尖括号引用父节点. 找不到文档了. '
noweb和org这种没有outline结构的软件就能任意引用任何节点. '
tomz-没有褒贬: 对啊 原来用tangle命令就能引用父节点 等于是全局变量 '
tangle才是真正的noweb方式 现在只能子节点有了局限 '</p>
<p>pimgeek-知识管理工具研究者: @tomz-没有褒贬 我昨天已经实现自己的想法了,虽然没有 tangle 没有全局变量,可能会稍微麻烦一些. </p>
</blockquote>
<ul>
<li>我现在是这样,如果有需要被反复引用的代码段 S,我会先放在一个专门收集这类代码的大纲节点下. </li>
<li>后面但凡有代码 X 需要用到时,我就在 X 下方创建一个 S 的 clone 子节点,然后在 X 中使用 << S >> 引用之. 😄 '</li>
<li>如果我发现 S 代码段,暂时对 X 没有帮助了, 我也不用把这个 clone 节点删除, 只要把那个 << S >> 从代码 X 中移除掉就可以了 😎 '</li>
<li>所以 Leo Editor 的 clone 节点是个好东西啊 [耶] '</li>
</ul>
<blockquote>
<p>大妈🙊Zoom.Quiet: 才发现?
俺宣传了有14年了...没人相信, 这是最好的重构姿势... '</p>
</blockquote>
<ul>
<li>pimgeek-知识管理工具研究者: 不是我不相信,而是以往的开发需求没被明晰化,更早以前则不知道 Leo Editor 😂 '<ul>
<li>2016 年关于 Leo Editor 的讨论 '</li>
<li>理论上可以把个人的所有开发代码都这样管理起来:<ul>
<li>网上发布用 Git, 本地管理用 Leo, </li>
<li>互不干扰</li>
<li>(Leo 大纲可以自动生成带有特殊注释的代码文件, 文件发生变化时也能同步回 Leo 里 )互不干扰.</li>
</ul>
</li>
</ul>
</li>
</ul>
<blockquote>
<p>𝙰𝚣𝚎𝚛𝚒𝚕: 这是大妈的上古神器系列的... '</p>
<p>大妈🙊Zoom.Quiet: 是也乎 ╮(╯▽╰)╭</p>
</blockquote>
<p>@pimgeek-知识管理工具研究者 --> 那都是老黄历了</p>
<div class="highlight"><pre><span></span><code>现在 Leo 有了更好的算子
~可以不污染输入又确保双向感知了~ '
</code></pre></div>
<blockquote>
<p>pimgeek-知识管理工具研究者: 我集中问一下: </p>
</blockquote>
<ul>
<li>
<ol>
<li>有什么比 @file 更好的方式, 可以双向感知?</li>
</ol>
</li>
<li>
<ol>
<li>有什么比 << section >> 更好的方式, 可以实现代码段引用? '</li>
</ol>
</li>
</ul>
<blockquote>
<p>' 大妈🙊Zoom.Quiet: 代码引用 --> 这是高德纳原创发明~比宏直觉又简洁~含自注释~
多用~没毛病 '</p>
<p>pimgeek-知识管理工具研究者: @file 节点我去看文档, 但是问题 2 我真没找到, 可能我搜索方式不对, 昨天至少花了 3 个小时找替代, 就是没找到. '</p>
</blockquote>
<ul>
<li>大妈🙊Zoom.Quiet: <a href="http://www.leoeditor.com/directives.html">Directives Reference — Leo 6.0 documentation</a><ul>
<li>之前是用 @nosent 替代 @file 的<ul>
<li>后来找到自动 diff 并双向合并技术后</li>
<li>就有了 @auto @clean</li>
</ul>
</li>
<li>一次性将 混入/出 时依赖的标记文本从目标文本中清除了 '</li>
</ul>
</li>
<li>所以, 作为 Leo 老用户, 从来不看官方文档,<ul>
<li>导致一直用老经验使用效率有问题的流程...</li>
<li>那么, 推而广之, 可能其它工具也都有类似问题存在//// '</li>
</ul>
</li>
</ul>
<blockquote>
<p>' 大妈🙊Zoom.Quiet: ' pimgeek-知识管理工具研究者: 大多数文档中的例子和提问/设问相对较少, 如果能多一些例子和提问/设问就好多了. '</p>
</blockquote>
<p>看 FAQ ....</p>
<div class="highlight"><pre><span></span><code>官方文档很多都是从代码自动生成,
难免呆板,
所以, FAQ 中有灵活自然的问答...
甚至于, 都是开源项目哪,
你哪儿不舒服, 问哪.... '
</code></pre></div>
<blockquote>
<p>pimgeek-知识管理工具研究者: LeoEditor 似乎没有规定源码的组织方式,如果要批量导入,可能还是先在自己头脑中预先想好一种结构,而不是依赖它的"内置结构" ... '</p>
<p>@SML 似乎不行,他的大纲树 和 硬盘的路径树 是两个东西</p>
</blockquote>
<h2 id="_3">断言:<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<blockquote>
<p>SML: 嗯嗯 所以不太适合开发flask这种组织好的工程项目',更适合学习,归类,阅读代码,或者开发小型项目 '</p>
<p>额,大家可能误会我意思了 '
我并不是批判leoeditor '
他确实不适合,类似laravel,flask这种成熟的工程项目开发 '
django项目的文件超过数百个了 '
连批量导入都不支持... '</p>
<p>我明白你说的,就是用大纲的形式串起来,当做模板语言的使用 '
这个我清楚,leo的思想是想以类,或者组件为单位 '
这不就是 前端的经常用的组建化开发 或者模板语法么... '</p>
<p>@SML 这个....作为 ide 使用啊 '
你可以尝试一下,用它来开发django,或flask 基本是不可能的 '</p>
</blockquote>
<p>大妈🙊Zoom.Quiet: 该批就批~俺又不是 Leo 厂商代理~</p>
<ul>
<li>问题是不说问题 --> 只给大家你的方案... 没法儿聊啊~ '<ul>
<li>就算是ide 也和批量导入文件无关啊 --> 你想干什么?真正的? '</li>
<li>关键为什么大家习惯性讨论问题的某个方案 --> 而不讨论问题本身呢?</li>
<li>批量导入工程是为什么啊? '</li>
</ul>
</li>
<li>俺用 Leo 14年了~<ul>
<li>从服务端 web server / DevOps 管理/数据分析~到 chrome 插件开发... golang 单体服务 --> Qt 桌面应用... bottle dango flask ....</li>
<li>基本上凡涉及文件越过三个的都用 leo 管理了... </li>
</ul>
</li>
<li>Leo 没有自动重构<ul>
<li>没有自动跳类定义... </li>
<li>没有您依赖的一切 IDE 功能~</li>
<li>但并不影响开发任何想开发的软件~</li>
</ul>
</li>
<li>因为... <ul>
<li>IDE 从 TurboC之后俺再没用过任何一种... </li>
<li>VSCode 也关闭或不用任何 IDE 特有功能... </li>
<li>所以... 没理解你说的不合适在哪个功能上? '</li>
</ul>
</li>
<li>俺通过 Leo 管理的文件过千了... '</li>
</ul>
<blockquote>
<p>SML: 编辑哪个就导入哪个...好吧 你解答了我的疑惑 '</p>
<blockquote>
<p>pimgeek-知识管理工具研究者: '我:如果想把手头现有的,已经用传统项目结构组织好的代码,转换为 Leo Editor 的"树状网结构",那可能是一项浩大的工程...
与放弃 pyCharm 转投 VS.Code 那种变化相比,肯定是不一样,要麻烦的多. '
' SML: 这个我清楚,leo的思想是想以类,或者组件为单位 '
' tomz-没有褒贬: 不是类和组件为单位 单位可以是一个函数其中的几行 '
如果不是说代码内部的组织 那就是说对文件之上层次的组织了 '
将几行作为单位 等于是为这几行做了一个注释 同时就将这几行折叠起来了 '</p>
</blockquote>
</blockquote>
<p>大妈🙊Zoom.Quiet: 也不是~</p>
<ul>
<li>Leo 可抽象管理的 note 从几行到几个文件夹... 都可以~ '</li>
</ul>
<blockquote>
<p>' SML: 嗯嗯 就是想以 snippet 为单位吧 '</p>
</blockquote>
<p>大妈🙊Zoom.Quiet: 更加不是~~~~ '</p>
<ul>
<li>如果你写过小说就懂了 '</li>
</ul>
<blockquote>
<p>@tomz-没有褒贬: 文学编程就是让代码更整齐更帅 😂 '
换个词 叫一目了然 '</p>
</blockquote>
<p><code>是也乎,( ̄▽ ̄)</code></p>
<div class="highlight"><pre><span></span><code>Yes and Not;
</code></pre></div>
<p>文学化编辑器, 正好不怎么关心最终输出的代码是否整齐/帅</p>
<ul>
<li>但是, 一目了然, 的确是真的...</li>
<li>只是, 只针对作者本人...</li>
<li>为什么这么说 '<ul>
<li>@pimgeek-知识管理工具研究者 发现并研究以及尝试整合的,也从无一个主流工具/软件,</li>
<li>为什么?原因相似...</li>
</ul>
</li>
<li>可惜, 世人从来不关心自己被浪费掉的时间和精力...<ul>
<li>一脑门子 WYSIWYG 要求,</li>
<li>全然无视了在计算机发展过程中, 最宝贵的从来不是视觉要求,</li>
<li>而是思想要求 '</li>
</ul>
</li>
<li>Django 或是 Flask 工程, 之所以, 会有多个目录和很多文件;<ul>
<li>是框架本身引导和要求的?为什么?</li>
<li>因为框架是领域工程经验集成, 要求我们必须按照人家的工程经验走... </li>
<li>凡是上点儿规模的工程, 一个共同经验就是:<ul>
<li><strong>目录即系统架构</strong></li>
</ul>
</li>
<li>目录结构以及命名以及文件分布约定本身,</li>
<li>就决定了系统依赖/功能/数据/调运/... 内部架构;</li>
</ul>
</li>
<li>但是, 正如小说撰写, 虽然最终是由/字/词/句/段落/章节构成了小说,<ul>
<li>可小说真正想传达的意象, 叙述结构, </li>
<li>却正好超脱这些最终产物的, </li>
<li>而是萦绕在作者头脑内心深处的另外结构;</li>
</ul>
</li>
<li>当初为了和 C 初始人们提倡的结构化编辑叫劲儿,<ul>
<li>高老爷创造的文学化编程, </li>
<li>就是抓住了这一更加 Bigger 的思想, <ul>
<li>完成了专用 DSL -> WEB 以及对应方言 CWEB;</li>
</ul>
</li>
<li>可以在 变量/语句/函式/类/文件/目录 之上,</li>
<li>描述工程师对系统真正的理解和结构;</li>
</ul>
</li>
<li>但是, 为什么现在 "所有人" 用的各种 IDE 都没有这种支持?<ul>
<li>原因非常简单, 因为 IDE 所包含的工程思想, 是最平庸简单的,</li>
<li>是能为最大多数快速理解并使用的,</li>
<li>甚至于连商务人员都能理解和宣传的;</li>
</ul>
</li>
<li>可惜, 编程是门手艺活,<ul>
<li>每个手艺人都有自己的个性和习惯,</li>
<li>真正注意到自己习惯和个性的手艺人, 一定是从工具开始自行构造的;</li>
<li>这也是为什么 Plan9 小组, 大家使用的 ACM 是针对三键鼠标优化的,</li>
<li>所有功能集成在中键点击菜单中, </li>
<li>根本不兼容任何 IDE 的主要功能;</li>
</ul>
</li>
<li>即, 编程, 这么私人的事儿,<ul>
<li>如果工具不能充分匹配或是定制匹配,</li>
<li>那么, 就只能被迫将自己训化为现有流行工具包含的工程思想/编程习惯/思维...</li>
<li>当然, 多数人将之视为理所当然, 完全无视了这过程中,</li>
<li>自己被主动无形中格式化掉的个性和思想;</li>
</ul>
</li>
<li>简单说, 商业社会中, 主流产品一定不是最优的,<ul>
<li>毕竟主流产品一定得是利润最好的...</li>
<li>所以, 美军手中武器一定是最便宜的那种...</li>
</ul>
</li>
<li>软件行业更加是:<ul>
<li>XP 统治PC 多年,<ul>
<li>为什么最后还是给放弃了?</li>
</ul>
</li>
<li>JAVA 这么多人吐糟, 连创始人都退出维护团队了,<ul>
<li>为什么, 照样是商用软件C位选择?</li>
</ul>
</li>
<li>但是, NASA 照样用古老的LISP ?</li>
</ul>
</li>
</ul>
<p>...</p>
<blockquote>
<p>' tomz-没有褒贬: leo本身的代码就是例子 leo是吃自己的狗食的 '</p>
</blockquote>
<h3 id="_4">文学化:<a class="headerlink" href="#_4" title="Permanent link">¶</a></h3>
<blockquote>
<p>' 𝙰𝚣𝚎𝚛𝚒𝚕: 印象中 大妈貌似还认识 Leo 编辑器的开发者老爷子吧 '</p>
</blockquote>
<p>大妈🙊Zoom.Quiet: http://0.zoomquiet.top/pychina/PyCon2013China/PyConChina2013-EKR-final-v2.mp4</p>
<p><-- 是也乎 ╮(╯▽╰)╭</p>
<p>作者本人介绍 Leo
可参考理解... '</p>
<blockquote>
<p>@tomz-没有褒贬 leo所做的工作只是把一个文件的一些行折叠为一个代码块 所以我觉得可以用emacs的folding程序代替
先写文档后写代码我没有尝试过 '</p>
</blockquote>
<p><code>是也乎 ╮(╯▽╰)╭</code></p>
<p>正好理解反了~ '</p>
<p>俺也没尝试过... 文学化编辑... 洽洽和文档无关~ '
也都关联不大
--> 文学化编辑和以往结构化编辑是根本性不同的思想 --> 最大阻碍是思维惯性... '</p>
<h2 id="_5">分析<a class="headerlink" href="#_5" title="Permanent link">¶</a></h2>
<p>一定要找一个生活化的案例, 可能就是:</p>
<ul>
<li>刚刚来到中国的西方探险家, 一定无法理解为如何用筷子叉起食物?</li>
<li>被 IDE 训化的绝大多数程序猿, <ul>
<li>早已忘记了写代码时自己是怎么思考的</li>
<li>而是替之以 IDE 要求我们如何去写的</li>
</ul>
</li>
<li>这样其实, 并没什么不好<ul>
<li>毕竟, 公司不关心, 代码是怎么生产出来的</li>
</ul>
</li>
<li>这就好比, 被卖猪仔到美国的华工<ul>
<li>如果想融入当地<ul>
<li>要作的事儿, 可能就是丢指筷子,剪指头发</li>
<li>永远不再吃米饭/炒菜, 在一切细节上伪装成周围的人</li>
<li>直到最后从思想上也同化</li>
</ul>
</li>
<li>才可能被美国人视作长的实在丑的人<ul>
<li>而不是吃死老鼠的黄种鸡</li>
</ul>
</li>
</ul>
</li>
<li>其实, 类似 Leo 这样设计思想和 IDE 完全不同的编辑环境非常多:<ul>
<li>神之编辑器 ~ Emacs</li>
<li>编辑器之神 ~ Vim</li>
<li>行编辑器 ~ le</li>
<li>...</li>
</ul>
</li>
<li>那么多尝试吧, 找到自己最喜欢的那种...</li>
</ul>
<h2 id="_6">回顾<a class="headerlink" href="#_6" title="Permanent link">¶</a></h2>
<blockquote>
<p>其实, 俺当年也用了将近一年, 才慢慢明白过来的:</p>
</blockquote>
<p>其实, 和其它全新技能一样,</p>
<ul>
<li>先熟悉工具内置功能</li>
<li>然后, 结合具体任务</li>
<li>完成基本行为的肌肉记忆后</li>
<li>才可能进一步完成以往用 IDE 才能完成任务的文学化再流程...</li>
</ul>
<p>很多时候, 和 IDE 的感觉有点儿象:</p>
<ul>
<li>手工绘画和打印槐打印一张图片的差别</li>
<li>Leo 是响应自然的思考和尝试过程<ul>
<li>将最终代码/文档的形成从目标形式中抽离了</li>
<li>以提纲为主要结构</li>
<li>每次时应对 node 中非常小的几行内容</li>
</ul>
</li>
<li>不象 IDE 无时不刻在整体分析/提醒你应该作什么</li>
</ul>
<h2 id="refer">refer.<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<p>以往也用自己的方式尝试解释过:</p>
<ul>
<li><a href="http://s5.zoomquiet.top/060730-abtLeo/index.html">啄木鸟/CPUG 会课06年度第九次 (built by S5)</a></li>
<li><a href="http://s5.zoomquiet.top/131101-leo-china/index.html">Leo ~ 文学式编程体验</a></li>
<li><a href="http://s5.zoomquiet.top/131113-MyTools/index.html">我的工具箱</a></li>
<li>...</li>
</ul>
<p>相关录音:</p>
<ul>
<li><a href="http://org.up.zoomquiet.top/ztapes/wav4zoomq/060730-cpug_abt-leo.ogg">060730-cpug_abt-leo.ogg</a></li>
<li><a href="http://org.up.zoomquiet.top/ztapes/wav4zoomq/100716-Leo-LiterateProgramming/">100716-Leo-LiterateProgramming/</a></li>
<li><a href="http://org.up.zoomquiet.top/ztapes/wav4zoomq/100930-snda-mytools/">100930-snda-mytools/</a></li>
<li>...</li>
</ul>[S03E23] 我的人生七年2019-07-12T20:42:00+08:002020-07-19T12:39:12+08:00ZoomQuiettag:blog.zoomquiet.io,2019-07-12:/190712-GC4-S03E23-42UP.html<h1 id="s03e23">[S03E23] 我的人生七年<a class="headerlink" href="#s03e23" title="Permanent link">¶</a></h1>
<blockquote>
<p>假设你是纪录片导演迈克尔,从7岁开始,每隔7年拍摄你自己的生活,现在为这部纪录片写出分集大纲,分别是:7 Up, 14 Up, 21 Up, 28 Up……直 …</p></blockquote><h1 id="s03e23">[S03E23] 我的人生七年<a class="headerlink" href="#s03e23" title="Permanent link">¶</a></h1>
<blockquote>
<p>假设你是纪录片导演迈克尔,从7岁开始,每隔7年拍摄你自己的生活,现在为这部纪录片写出分集大纲,分别是:7 Up, 14 Up, 21 Up, 28 Up……直到你的上一个7的倍数年。</p>
</blockquote>
<h2 id="7-up">7 UP<a class="headerlink" href="#7-up" title="Permanent link">¶</a></h2>
<blockquote>
<p>地点: 兰州, 504厂,子弟幼儿园</p>
</blockquote>
<ul>
<li>早晨, 小朋友们被家长用各种交通工具送到园门</li>
<li>早操, 小朋友在阿姨带领下作活动</li>
<li>午饭, ZQ 主动出来值日, 和其它班小朋友一起从厨房搬饭/汤桶</li>
<li>午睡, ZQ 和其它好动的小朋友装睡, 等阿姨们离开, 躲在床下玩探险游戏<ul>
<li>丢鼻涕</li>
<li>偷手绢</li>
<li>...</li>
</ul>
</li>
<li>洗澡, 小朋友们不分男女排队先脱光了, 然后流水线一样,到浴缸中:<ul>
<li>由第一个阿姨打湿身体</li>
<li>由第二个阿姨上肥皂</li>
<li>然后爬出浴缸到旁边淋浴喷头下自己冲干净</li>
<li>再到门口,由第三个阿姨擦干</li>
</ul>
</li>
<li>上课, ZQ 叕被指令出来当故事大王<ul>
<li>坐中间给全班小朋友讲故事</li>
</ul>
</li>
<li>...各种睡觉生活场景</li>
<li>最喜欢作什么?<ul>
<li>看书, 最好有图片</li>
<li>不过都是字的用字典也能看</li>
</ul>
</li>
<li>未来想作什么?<ul>
<li>当科学家, 象凡尔纳那样的, 可以制造去太空的飞船</li>
</ul>
</li>
<li>最快乐是何时?<ul>
<li>爸爸作香酥鸡时</li>
<li>一作两只, 和弟弟分一只</li>
<li>太过瘾了...</li>
</ul>
</li>
</ul>
<h2 id="14-up">14 UP<a class="headerlink" href="#14-up" title="Permanent link">¶</a></h2>
<blockquote>
<p>地点: 兰州, 504厂,子弟初中</p>
</blockquote>
<ul>
<li>0630 起床</li>
<li>0700 晨练, 分班集合, 围厂福利区跑一大圈, 冬天所有学生都跑到头冒烟</li>
<li>0800 上课, 每个人桌里都堆满了各科练习卷</li>
<li>0930 课间操, 整齐的队伍, 第6套广播体操的音乐响起来</li>
<li>1200 下课铃一响, 学生汹涌的冲出学校各自回家</li>
<li>1215 食堂, 先回家拿到饭盒/饭票, 到食堂排队先买菜, 再打二两饭, 堆在一起, 快速吃完, 洗好</li>
<li>1242 午睡时间, 不过今天拿了球拍先去学校占个水泥台, 和同学玩起了双打 ,今天尝试横握</li>
<li>1400 上课, 物理课首次实验, 光学, 同学们玩的很开心</li>
<li>1800 放学, 轮到作值日, 负责拖地...</li>
<li>1900 晚饭, 伴着隋唐演义评书认真吃饭, 三菜一汤,有肉丝</li>
<li>1930 外出回来, 天已经黑了</li>
<li>2200 睡觉, 之前完成了作业, 就一直在看书, 世界五千年, 刚刚买的</li>
<li>参加首届智力竞赛...</li>
<li>参与班级黑板报制作...</li>
<li>参与班级组织旱冰...</li>
<li>给烟台的笔友写信...</li>
<li>...各种大厂矿企业才有的活动</li>
<li>最喜欢作什么?<ul>
<li>看书, 特别是日本漫画</li>
</ul>
</li>
<li>未来想作什么?<ul>
<li>漫画家, 画出中国自己的传奇故事</li>
</ul>
</li>
<li>最快乐是何时?<ul>
<li>大人不在家, 可以一直看变形金刚</li>
</ul>
</li>
</ul>
<h2 id="21-up">21 UP<a class="headerlink" href="#21-up" title="Permanent link">¶</a></h2>
<blockquote>
<p>地点: 常州, 江苏石油化工学院</p>
</blockquote>
<ul>
<li>周一 早起穿上制服,参加国旗帜班护旗, 不用参与早锻练, 幸福的买到了热包子...</li>
<li>周二 下课独自打扫卫生, 因为承包班级卫生, 每个月有35元补助 </li>
<li>周三 终于在图书馆抢到位置自习, 只是周围都是成双成对的高年级学生, 很不自在 </li>
<li>周四 中午去存饭卡,算算还有2周,只能存50元</li>
<li>周五 录像厅有大片, 挤进去5毛又看了一次"真实的谎言" </li>
<li>周六 散打选修课, 结束后体育馆就得准备给舞会用... </li>
<li>周日 断言一天, 以便省钱租书, 所以, 在宿舍看了一天的书, 饿了冲点儿豆奶顶住就好 </li>
<li>去亲戚家蹭肉吃...</li>
<li>去同学家蹭肉吃...</li>
<li>定期和烟台笔友通电话...</li>
<li>...各种大学中普通的努力</li>
<li>最喜欢作什么?<ul>
<li>看书, 特别是长篇小说</li>
</ul>
</li>
<li>未来想作什么?<ul>
<li>博物学家吧, 各种都知道一点儿</li>
<li>可以给漫画家作编剧</li>
</ul>
</li>
<li>最快乐是何时?<ul>
<li>全套漫画终于连载完,没人抢, 慢慢看, 想怎么看就怎么看</li>
</ul>
</li>
</ul>
<h2 id="28-up">28 UP<a class="headerlink" href="#28-up" title="Permanent link">¶</a></h2>
<blockquote>
<p>地点: 上海, 浦东陆家嘴软件园</p>
</blockquote>
<ul>
<li>0600 起床 背好包, 扛自行车下楼</li>
<li>0700 公路上自行车40分钟, 到软件园, 路边摊买早饭</li>
<li>0800 搜索下载, 继续搜索下载, 自学 Linux </li>
<li>0900 上班, 和经理沟通当天任务</li>
<li>1200 午饭, 食堂太贵, 一般到周边便宜的路边摊吃</li>
<li>1330 午休, 大家都扒在桌上睡, ZQ 自己在查阅资料, 尝试安装 Linux </li>
<li>1800 下班, 先出去吃饭, 带点儿零食回桌边</li>
<li>1900 公司没人了, 开始逛各种技术论坛/列表和网友们讨论, OICQ 也挂着和 ICQ 一起尝试建立关系...</li>
<li>2300 自行车回到楼下, 刚好夜霄摊也出摊了, 买份4元糊辣蛋炒饭回家吃</li>
<li>0100 又看了几集 friends 才不得不睡去</li>
<li>周末参与漫展, 给几个漫画社当义务摄影师,用好容易攒钱买的 F100 数字照相机记录展会...</li>
<li>周末去爷爷家看望, 蹭肉吃...</li>
<li>每当发工资时, 去陆家嘴莲花大超市逛, 采购一个月的食品...吃一次日料理</li>
<li>...各种在上海独自生存的程序猿普通生活</li>
<li>最喜欢作什么?<ul>
<li>看书, 特别是去复旦或是四川路的漫吧看</li>
<li>可以通霄看...</li>
</ul>
</li>
<li>未来想作什么?<ul>
<li>软件工程师? 不一定...</li>
<li>总之能给大家带来快乐最好了</li>
</ul>
</li>
<li>最快乐是何时?<ul>
<li>回兰州和同学们吃烤羊肉喝啤酒吧...</li>
<li>以往想干的, 现在都可以干了...</li>
</ul>
</li>
</ul>
<h2 id="35-up">35 UP<a class="headerlink" href="#35-up" title="Permanent link">¶</a></h2>
<blockquote>
<p>地点: 珠海, 金山软件临时办公楼</p>
</blockquote>
<ul>
<li>周一 早点有馄饨, 特意早起吃了两份儿...</li>
<li>周二 连续面试了4个人, 都不满意 </li>
<li>周三 每日组内立会时, 又没忍住, 努怼哭了实习MM </li>
<li>周四 晚饭后, 回到工位继续呆到2100, 才回女友家 </li>
<li>周五 下班后, 主持每周迭代发布会议, 培训金山大学 Python 训练营也叫蟒营的学生们,演示一周以来的开发成果; </li>
<li>周六 主持珠三角 Python 用户组(ZPyUG)线下技术分享活动</li>
<li>周日 配合女友看房, 因为已经怀孕, 必须有自己的家</li>
<li>和父母电话公布要结婚了...</li>
<li>和银行职员商议如何先借一万元作彩礼...</li>
<li>...各种突然成家的程序猿普通经历</li>
<li>最喜欢作什么?<ul>
<li>看书, 各种网络小说, 超过1000万字的实在太过瘾了</li>
</ul>
</li>
<li>未来想作什么?<ul>
<li>布道师, 自由软件社区的</li>
<li>通过开源技术给大家带来快乐, 嗯, 学习上的快乐</li>
</ul>
</li>
<li>最快乐是何时?<ul>
<li>技术问题调通的瞬间吧...</li>
<li>有时卡了几天的问题, 突然发现是一个不起眼的配置问题导致的</li>
<li>彻底解决时, 真的感觉天空一下子辽阔了一般</li>
</ul>
</li>
</ul>
<h2 id="42-up">42 UP<a class="headerlink" href="#42-up" title="Permanent link">¶</a></h2>
<blockquote>
<p>地点: 美国, wichita, 借宿民居中</p>
</blockquote>
<ul>
<li>0742 起床 煮咖啡,作吐司,简单早饭</li>
<li>0842 休息 编程一小时后, 自动休息一下, 续杯 咖啡</li>
<li>0942 会议 和四川来的教授沟通, 讨论技术方案, 然后他出门找图书馆编程, 俺继续在家</li>
<li>1142 作饭 结束上午的编程, 作午饭, 一般都是面条, 不占人家过多餐具<ul>
<li>先起锅小炒个卤</li>
<li>然后加水成汤</li>
<li>直接下挂面</li>
<li>等面煮好, 一起连锅吃</li>
</ul>
</li>
<li>1442 午休结束, 回到电脑前继续编程, 查资料</li>
<li>1642 下午茶, 简单水果或是饼干</li>
<li>1742 结束, 出门步行半小时到附近超市采购</li>
<li>1842 晩饭, 今天有烤鸡, 来了一只能吃三天<ul>
<li>一个大腿, 配两片面包+一袋沙拉</li>
<li>以及一小瓶啤酒, 一边看下载的美剧一边慢慢吃</li>
</ul>
</li>
<li>2042 开会, 汇合创始人, 另外一位年轻教授, 交流进展, 讨论机械视觉方案优化</li>
<li>2142 结束, 洗澡, 休整, 开始下载剧集, 这边儿没有墙, p2p 软件下载的很高兴</li>
<li>0142 入睡</li>
<li>入海关证明资料过期差点儿遣返...</li>
<li>又一次没及时听到登机口变动, 滞留在达拉斯机场一夜...</li>
<li>...各种往来海外进行软件项目推进的普通程序猿活动</li>
<li>最喜欢作什么?<ul>
<li>看书, 有意思的书, 最好超过200万字的</li>
</ul>
</li>
<li>未来想作什么?<ul>
<li>如果项目成功, 可能作名自由布道师? 培训师?</li>
<li>分享各种社区经验, 让大家可以快乐的学习任何想学习的</li>
</ul>
</li>
<li>最快乐是何时?<ul>
<li>哈, 应该还是学到新技术时吧</li>
<li>用自己的代码证明自己学到了...</li>
<li>程序跑通的那一瞬间</li>
</ul>
</li>
</ul>
<h2 id="_1">( ̄▽ ̄)<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<blockquote>
<p>证明自己的记忆还是靠谱的...</p>
</blockquote>
<p>在不使用任何辅助资料时,
根据年份, 就可以快速组织出那一年经典的一些标志性片段来...</p>
<p>真的和 63UP 记录的一样,
每个人, 只要认真活着,
任何决定都是最好的决定,</p>
<p>因为我们别无选择, 只能将先前的选择作到最好.</p>修复 subl3 包安装2019-04-03T12:12:00+08:002019-04-03T12:47:58+08:00Zoom.Quiettag:blog.zoomquiet.io,2019-04-03:/fix-subl-package-installation.html
<h2 id="bg">BG<a class="headerlink" href="#bg" title="Permanent link">¶</a></h2>
<p>突然: <code>cmd+shift+P</code> 选择 <code>Package Control: install package</code> 时,一直:</p>
<blockquote>
<blockquote>
<blockquote>
<p>There are no packages available for installation</p>
</blockquote>
</blockquote>
</blockquote>
<h2 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<p>当然就是解决呗:</p>
<ul>
<li>各种官方都有吼</li>
<li><a href="https://packagecontrol.io/docs/troubleshooting">Troubleshooting - Package Control</a></li>
<li><a href="https://github.com/wbond/package_control/issues/959#issuecomment-168447848">There are no packages available for installation - Package Control of …</a></li></ul>
<h2 id="bg">BG<a class="headerlink" href="#bg" title="Permanent link">¶</a></h2>
<p>突然: <code>cmd+shift+P</code> 选择 <code>Package Control: install package</code> 时,一直:</p>
<blockquote>
<blockquote>
<blockquote>
<p>There are no packages available for installation</p>
</blockquote>
</blockquote>
</blockquote>
<h2 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<p>当然就是解决呗:</p>
<ul>
<li>各种官方都有吼</li>
<li><a href="https://packagecontrol.io/docs/troubleshooting">Troubleshooting - Package Control</a></li>
<li><a href="https://github.com/wbond/package_control/issues/959#issuecomment-168447848">There are no packages available for installation - Package Control of Sublime Text 3 · Issue #959 · wbond/package_control</a></li>
<li>...</li>
</ul>
<h2 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h2>
<p>打开 debug 观察:</p>
<div class="highlight"><pre><span></span><code><span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Skipping</span><span class="w"> </span><span class="n">automatic</span><span class="w"> </span><span class="n">upgrade</span><span class="p">,</span><span class="w"> </span><span class="n">last</span><span class="w"> </span><span class="n">run</span><span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="mi">2019</span><span class="o">-</span><span class="mi">04</span><span class="o">-</span><span class="mi">03</span><span class="w"> </span><span class="mi">11</span><span class="p">:</span><span class="mi">45</span><span class="p">:</span><span class="mi">00</span><span class="p">,</span><span class="w"> </span><span class="n">next</span><span class="w"> </span><span class="n">run</span><span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="mi">2019</span><span class="o">-</span><span class="mi">04</span><span class="o">-</span><span class="mi">03</span><span class="w"> </span><span class="mi">12</span><span class="p">:</span><span class="mi">45</span><span class="p">:</span><span class="mi">00</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="n">after</span>
<span class="n">Detected</span><span class="w"> </span><span class="n">ASCII</span><span class="w"> </span><span class="n">vs</span><span class="w"> </span><span class="n">Undefined</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="mi">100</span><span class="o">%</span><span class="w"> </span><span class="n">confidence</span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Fetching</span><span class="w"> </span><span class="n">list</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">available</span><span class="w"> </span><span class="n">packages</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">dependencies</span>
<span class="w"> </span><span class="n">Platform</span><span class="p">:</span><span class="w"> </span><span class="n">osx</span><span class="o">-</span><span class="n">x64</span>
<span class="w"> </span><span class="n">Sublime</span><span class="w"> </span><span class="n">Text</span><span class="w"> </span><span class="n">Version</span><span class="p">:</span><span class="w"> </span><span class="mi">3200</span>
<span class="w"> </span><span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="w"> </span><span class="n">Version</span><span class="p">:</span><span class="w"> </span><span class="mf">3.3</span><span class="o">.</span><span class="mi">0</span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Download</span><span class="w"> </span><span class="n">Debug</span>
<span class="w"> </span><span class="n">URL</span><span class="p">:</span><span class="w"> </span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">packagecontrol</span><span class="o">.</span><span class="n">io</span><span class="o">/</span><span class="n">channel_v3</span><span class="o">.</span><span class="n">json</span>
<span class="w"> </span><span class="n">Timeout</span><span class="p">:</span><span class="w"> </span><span class="mi">30</span>
<span class="w"> </span><span class="n">Resolved</span><span class="w"> </span><span class="n">IP</span><span class="p">:</span><span class="w"> </span><span class="mf">74.207</span><span class="o">.</span><span class="mf">232.232</span>
<span class="w"> </span><span class="n">Resolved</span><span class="w"> </span><span class="n">IPv6</span><span class="p">:</span><span class="w"> </span><span class="mi">2600</span><span class="p">:</span><span class="mi">3</span><span class="n">c02</span><span class="p">::</span><span class="n">f03c</span><span class="p">:</span><span class="mi">91</span><span class="n">ff</span><span class="p">:</span><span class="n">fec5</span><span class="p">:</span><span class="mi">4</span><span class="n">fd5</span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Urllib</span><span class="w"> </span><span class="n">Debug</span><span class="w"> </span><span class="n">Proxy</span>
<span class="w"> </span><span class="n">http_proxy</span><span class="p">:</span><span class="w"> </span>
<span class="w"> </span><span class="n">https_proxy</span><span class="p">:</span><span class="w"> </span>
<span class="w"> </span><span class="n">proxy_username</span><span class="p">:</span><span class="w"> </span>
<span class="w"> </span><span class="n">proxy_password</span><span class="p">:</span><span class="w"> </span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Found</span><span class="w"> </span><span class="n">previously</span><span class="w"> </span><span class="n">exported</span><span class="w"> </span><span class="n">CA</span><span class="w"> </span><span class="n">bundle</span><span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="o">/</span><span class="n">Users</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/</span><span class="n">Library</span><span class="o">/</span><span class="n">Application</span><span class="w"> </span><span class="n">Support</span><span class="o">/</span><span class="n">Sublime</span><span class="w"> </span><span class="n">Text</span><span class="w"> </span><span class="mi">3</span><span class="o">/</span><span class="n">Packages</span><span class="o">/</span><span class="n">User</span><span class="o">/</span><span class="n">oscrypto</span><span class="o">-</span><span class="n">ca</span><span class="o">-</span><span class="n">bundle</span><span class="o">.</span><span class="n">crt</span><span class="w"> </span><span class="p">(</span><span class="mi">268761</span><span class="w"> </span><span class="n">bytes</span><span class="p">)</span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Urllib</span><span class="w"> </span><span class="n">HTTPS</span><span class="w"> </span><span class="n">Debug</span><span class="w"> </span><span class="n">General</span>
<span class="w"> </span><span class="n">Connecting</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">packagecontrol</span><span class="o">.</span><span class="n">io</span><span class="w"> </span><span class="n">on</span><span class="w"> </span><span class="n">port</span><span class="w"> </span><span class="mi">443</span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Error</span><span class="w"> </span><span class="n">downloading</span><span class="w"> </span><span class="n">channel</span><span class="o">.</span><span class="w"> </span><span class="n">URL</span><span class="w"> </span><span class="n">error</span><span class="w"> </span><span class="p">[</span><span class="n">Errno</span><span class="w"> </span><span class="mi">65</span><span class="p">]</span><span class="w"> </span><span class="n">No</span><span class="w"> </span><span class="n">route</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">host</span><span class="w"> </span><span class="n">downloading</span><span class="w"> </span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">packagecontrol</span><span class="o">.</span><span class="n">io</span><span class="o">/</span><span class="n">channel_v3</span><span class="o">.</span><span class="n">json</span><span class="o">.</span>
</code></pre></div>
<p>果断就是 <code>https://packagecontrol.io/channel_v3.json</code> 资源无法访问;</p>
<p>尝试配置 host 无果;
也升级 <code>Package Control</code> 本身;</p>
<p>看来是和谐了? 那么:</p>
<ul>
<li>翻越, 下载</li>
<li>发布为 http://101.zoomquiet.top/res/subl/channel_v3.json</li>
<li>配置到 <code>Package Control.sublime-settings</code><ul>
<li>Preferences > Package Settings > Package Control > Settings - User</li>
</ul>
</li>
</ul>
<p>追加为:</p>
<div class="highlight"><pre><span></span><code>"channels": [
"http://101.zoomquiet.top/res/subl/channel_v3.json"
],
</code></pre></div>
<p>再来就好了:</p>
<div class="highlight"><pre><span></span><code><span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Fetching</span><span class="w"> </span><span class="n">list</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">available</span><span class="w"> </span><span class="n">packages</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">dependencies</span>
<span class="w"> </span><span class="n">Platform</span><span class="p">:</span><span class="w"> </span><span class="n">osx</span><span class="o">-</span><span class="n">x64</span>
<span class="w"> </span><span class="n">Sublime</span><span class="w"> </span><span class="n">Text</span><span class="w"> </span><span class="n">Version</span><span class="p">:</span><span class="w"> </span><span class="mi">3200</span>
<span class="w"> </span><span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="w"> </span><span class="n">Version</span><span class="p">:</span><span class="w"> </span><span class="mf">3.3</span><span class="o">.</span><span class="mi">0</span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Download</span><span class="w"> </span><span class="n">Debug</span>
<span class="w"> </span><span class="n">URL</span><span class="p">:</span><span class="w"> </span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="mf">101.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span><span class="o">/</span><span class="n">res</span><span class="o">/</span><span class="n">subl</span><span class="o">/</span><span class="n">channel_v3</span><span class="o">.</span><span class="n">json</span>
<span class="w"> </span><span class="n">Timeout</span><span class="p">:</span><span class="w"> </span><span class="mi">30</span>
<span class="w"> </span><span class="n">Resolved</span><span class="w"> </span><span class="n">IP</span><span class="p">:</span><span class="w"> </span><span class="mf">183.236</span><span class="o">.</span><span class="mf">31.251</span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Urllib</span><span class="w"> </span><span class="n">Debug</span><span class="w"> </span><span class="n">Proxy</span>
<span class="w"> </span><span class="n">http_proxy</span><span class="p">:</span><span class="w"> </span>
<span class="w"> </span><span class="n">https_proxy</span><span class="p">:</span><span class="w"> </span>
<span class="w"> </span><span class="n">proxy_username</span><span class="p">:</span><span class="w"> </span>
<span class="w"> </span><span class="n">proxy_password</span><span class="p">:</span><span class="w"> </span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Urllib</span><span class="w"> </span><span class="n">HTTP</span><span class="w"> </span><span class="n">Debug</span><span class="w"> </span><span class="n">General</span>
<span class="w"> </span><span class="n">Connecting</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="mf">101.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span><span class="w"> </span><span class="n">on</span><span class="w"> </span><span class="n">port</span><span class="w"> </span><span class="mi">80</span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Urllib</span><span class="w"> </span><span class="n">HTTP</span><span class="w"> </span><span class="n">Debug</span><span class="w"> </span><span class="n">Write</span>
<span class="w"> </span><span class="n">GET</span><span class="w"> </span><span class="o">/</span><span class="n">res</span><span class="o">/</span><span class="n">subl</span><span class="o">/</span><span class="n">channel_v3</span><span class="o">.</span><span class="n">json</span><span class="w"> </span><span class="n">HTTP</span><span class="o">/</span><span class="mf">1.1</span>
<span class="w"> </span><span class="n">User</span><span class="o">-</span><span class="n">Agent</span><span class="p">:</span><span class="w"> </span><span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="w"> </span><span class="n">v3</span><span class="o">.</span><span class="mf">3.0</span>
<span class="w"> </span><span class="n">Connection</span><span class="p">:</span><span class="w"> </span><span class="n">Keep</span><span class="o">-</span><span class="n">Alive</span>
<span class="w"> </span><span class="n">Host</span><span class="p">:</span><span class="w"> </span><span class="mf">101.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span>
<span class="w"> </span><span class="n">Accept</span><span class="o">-</span><span class="n">Encoding</span><span class="p">:</span><span class="w"> </span><span class="n">bzip2</span><span class="p">,</span><span class="n">gzip</span><span class="p">,</span><span class="n">deflate</span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Urllib</span><span class="w"> </span><span class="n">HTTP</span><span class="w"> </span><span class="n">Debug</span><span class="w"> </span><span class="n">Read</span>
<span class="w"> </span><span class="n">HTTP</span><span class="o">/</span><span class="mf">1.1</span><span class="w"> </span><span class="mi">200</span><span class="w"> </span><span class="n">OK</span>
<span class="w"> </span><span class="n">Server</span><span class="p">:</span><span class="w"> </span><span class="n">marco</span><span class="o">/</span><span class="mf">2.9</span>
<span class="w"> </span><span class="n">Date</span><span class="p">:</span><span class="w"> </span><span class="n">Wed</span><span class="p">,</span><span class="w"> </span><span class="mi">03</span><span class="w"> </span><span class="n">Apr</span><span class="w"> </span><span class="mi">2019</span><span class="w"> </span><span class="mi">04</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mi">47</span><span class="w"> </span><span class="n">GMT</span>
<span class="w"> </span><span class="n">Content</span><span class="o">-</span><span class="n">Type</span><span class="p">:</span><span class="w"> </span><span class="n">application</span><span class="o">/</span><span class="n">json</span>
<span class="w"> </span><span class="n">Transfer</span><span class="o">-</span><span class="n">Encoding</span><span class="p">:</span><span class="w"> </span><span class="n">chunked</span>
<span class="w"> </span><span class="n">Connection</span><span class="p">:</span><span class="w"> </span><span class="n">keep</span><span class="o">-</span><span class="n">alive</span>
<span class="w"> </span><span class="n">Vary</span><span class="p">:</span><span class="w"> </span><span class="n">Accept</span><span class="o">-</span><span class="n">Encoding</span>
<span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">Source</span><span class="p">:</span><span class="w"> </span><span class="n">C</span><span class="o">/</span><span class="mi">200</span>
<span class="w"> </span><span class="n">Content</span><span class="o">-</span><span class="n">Disposition</span><span class="p">:</span><span class="w"> </span><span class="n">inline</span><span class="p">;</span><span class="w"> </span><span class="n">filename</span><span class="o">=</span><span class="s2">"channel_v3.json"</span><span class="p">;</span><span class="w"> </span><span class="n">filename</span><span class="o">*=</span><span class="n">utf</span><span class="o">-</span><span class="mi">8</span><span class="s1">' '</span><span class="n">channel_v3</span><span class="o">.</span><span class="n">json</span>
<span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">Reqid</span><span class="p">:</span><span class="w"> </span><span class="n">JCYAAB2A</span><span class="o">-</span><span class="n">KCu3JEV</span>
<span class="w"> </span><span class="n">Cache</span><span class="o">-</span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="nb">max</span><span class="o">-</span><span class="n">age</span><span class="o">=</span><span class="mi">2592000</span>
<span class="w"> </span><span class="n">ETag</span><span class="p">:</span><span class="w"> </span><span class="n">W</span><span class="o">/</span><span class="s2">"FupX-eSMnVrkAsAr7E6aNcS8eye6"</span>
<span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">Log</span><span class="p">:</span><span class="w"> </span><span class="n">redis</span><span class="o">.</span><span class="n">g</span><span class="o">/</span><span class="mi">404</span><span class="p">;</span><span class="n">rdb</span><span class="o">.</span><span class="n">g</span><span class="o">/</span><span class="n">no</span><span class="w"> </span><span class="n">such</span><span class="w"> </span><span class="n">key</span><span class="p">;</span><span class="n">DBD</span><span class="o">/</span><span class="mi">404</span><span class="p">;</span><span class="n">v4</span><span class="o">.</span><span class="n">get</span><span class="o">/</span><span class="n">Document</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">found</span><span class="p">;</span><span class="n">rs5_shard</span><span class="o">.</span><span class="n">sel</span><span class="p">:</span><span class="mi">2</span><span class="p">;</span><span class="n">rwro</span><span class="o">.</span><span class="n">get</span><span class="p">:</span><span class="mi">3</span><span class="p">;</span><span class="n">RS</span><span class="o">.</span><span class="n">dbs</span><span class="p">:</span><span class="mi">3</span><span class="p">;</span><span class="n">RS</span><span class="p">:</span><span class="mi">3</span><span class="p">;</span><span class="n">redis</span><span class="o">.</span><span class="n">s</span><span class="p">;</span><span class="mi">2</span><span class="n">s</span><span class="o">.</span><span class="n">gh</span><span class="p">;</span><span class="n">PFDS</span><span class="p">;</span><span class="n">IO</span><span class="p">:</span><span class="mi">5</span>
<span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">Slice</span><span class="o">-</span><span class="n">ETag</span><span class="p">:</span><span class="w"> </span><span class="n">FupX</span><span class="o">-</span><span class="n">eSMnVrkAsAr7E6aNcS8eye6</span>
<span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">Slice</span><span class="o">-</span><span class="n">Complete</span><span class="o">-</span><span class="n">Length</span><span class="p">:</span><span class="w"> </span><span class="mi">3461591</span>
<span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">Slice</span><span class="o">-</span><span class="n">Size</span><span class="p">:</span><span class="w"> </span><span class="mi">1048576</span>
<span class="w"> </span><span class="n">Content</span><span class="o">-</span><span class="n">Transfer</span><span class="o">-</span><span class="n">Encoding</span><span class="p">:</span><span class="w"> </span><span class="n">binary</span>
<span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">Qnm</span><span class="o">-</span><span class="n">Cache</span><span class="p">:</span><span class="w"> </span><span class="n">Miss</span>
<span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">Svr</span><span class="p">:</span><span class="w"> </span><span class="n">IO</span>
<span class="w"> </span><span class="n">Access</span><span class="o">-</span><span class="n">Control</span><span class="o">-</span><span class="n">Expose</span><span class="o">-</span><span class="n">Headers</span><span class="p">:</span><span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">Log</span><span class="p">,</span><span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">Reqid</span>
<span class="w"> </span><span class="n">Access</span><span class="o">-</span><span class="n">Control</span><span class="o">-</span><span class="n">Allow</span><span class="o">-</span><span class="n">Origin</span><span class="p">:</span><span class="w"> </span><span class="o">*</span>
<span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">M</span><span class="o">-</span><span class="n">Reqid</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="n">mcAAMfJXKCu3JEV</span>
<span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">Qiniu</span><span class="o">-</span><span class="n">Zone</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span>
<span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">M</span><span class="o">-</span><span class="n">Log</span><span class="p">:</span><span class="w"> </span><span class="n">QNM</span><span class="p">:</span><span class="n">xs1163</span><span class="p">;</span><span class="n">SRCPROXY</span><span class="p">:</span><span class="n">xs485</span><span class="p">;</span><span class="n">SRC</span><span class="p">:</span><span class="mi">31</span><span class="p">;</span><span class="n">SRCPROXY</span><span class="p">:</span><span class="mi">31</span><span class="p">;</span><span class="n">QNM3</span><span class="p">:</span><span class="mi">138</span>
<span class="w"> </span><span class="n">Last</span><span class="o">-</span><span class="n">Modified</span><span class="p">:</span><span class="w"> </span><span class="n">Wed</span><span class="p">,</span><span class="w"> </span><span class="mi">03</span><span class="w"> </span><span class="n">Apr</span><span class="w"> </span><span class="mi">2019</span><span class="w"> </span><span class="mi">04</span><span class="p">:</span><span class="mi">31</span><span class="p">:</span><span class="mi">53</span><span class="w"> </span><span class="n">GMT</span>
<span class="w"> </span><span class="n">Access</span><span class="o">-</span><span class="n">Control</span><span class="o">-</span><span class="n">Max</span><span class="o">-</span><span class="n">Age</span><span class="p">:</span><span class="w"> </span><span class="mi">2592000</span>
<span class="w"> </span><span class="n">Expires</span><span class="p">:</span><span class="w"> </span><span class="n">Fri</span><span class="p">,</span><span class="w"> </span><span class="mi">03</span><span class="w"> </span><span class="n">May</span><span class="w"> </span><span class="mi">2019</span><span class="w"> </span><span class="mi">04</span><span class="p">:</span><span class="mi">33</span><span class="p">:</span><span class="mi">06</span><span class="w"> </span><span class="n">GMT</span>
<span class="w"> </span><span class="n">Age</span><span class="p">:</span><span class="w"> </span><span class="mi">101</span>
<span class="w"> </span><span class="n">X</span><span class="o">-</span><span class="n">Request</span><span class="o">-</span><span class="n">Id</span><span class="p">:</span><span class="w"> </span><span class="mi">67</span><span class="n">a882de6a2b534dd68e3fe0a15c7128</span><span class="p">;</span><span class="w"> </span><span class="mi">7</span><span class="n">f96de58c802da2ccd119a99b08623f6</span>
<span class="w"> </span><span class="n">Via</span><span class="p">:</span><span class="w"> </span><span class="n">S</span><span class="o">.</span><span class="n">mix</span><span class="o">-</span><span class="n">js</span><span class="o">-</span><span class="n">czx2</span><span class="o">-</span><span class="mi">045</span><span class="p">,</span><span class="w"> </span><span class="n">T</span><span class="o">.</span><span class="mf">46.</span><span class="n">M</span><span class="p">,</span><span class="w"> </span><span class="n">V</span><span class="o">.</span><span class="n">mix</span><span class="o">-</span><span class="n">js</span><span class="o">-</span><span class="n">czx2</span><span class="o">-</span><span class="mi">049</span><span class="p">,</span><span class="w"> </span><span class="n">T</span><span class="o">.</span><span class="mf">231.</span><span class="n">H</span><span class="p">,</span><span class="w"> </span><span class="n">M</span><span class="o">.</span><span class="n">cmn</span><span class="o">-</span><span class="n">gd</span><span class="o">-</span><span class="n">can</span><span class="o">-</span><span class="mi">228</span>
<span class="w"> </span><span class="n">Content</span><span class="o">-</span><span class="n">Encoding</span><span class="p">:</span><span class="w"> </span><span class="n">gzip</span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Caching</span><span class="w"> </span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="mf">101.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span><span class="o">/</span><span class="n">res</span><span class="o">/</span><span class="n">subl</span><span class="o">/</span><span class="n">channel_v3</span><span class="o">.</span><span class="n">json</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="o">/</span><span class="n">Users</span><span class="o">/</span><span class="n">zoomq</span><span class="o">/</span><span class="n">Library</span><span class="o">/</span><span class="n">Application</span><span class="w"> </span><span class="n">Support</span><span class="o">/</span><span class="n">Sublime</span><span class="w"> </span><span class="n">Text</span><span class="w"> </span><span class="mi">3</span><span class="o">/</span><span class="n">Packages</span><span class="o">/</span><span class="n">User</span><span class="o">/</span><span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="o">.</span><span class="n">cache</span><span class="o">/</span><span class="mi">5</span><span class="n">bd341de6f2ee7d8d6c4aa065520052a</span>
<span class="n">Package</span><span class="w"> </span><span class="n">Control</span><span class="p">:</span><span class="w"> </span><span class="n">Urllib</span><span class="w"> </span><span class="n">HTTP</span><span class="w"> </span><span class="n">Debug</span><span class="w"> </span><span class="n">General</span>
<span class="w"> </span><span class="n">Closing</span><span class="w"> </span><span class="n">connection</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="mf">101.</span><span class="n">zoomquiet</span><span class="o">.</span><span class="n">top</span><span class="w"> </span><span class="n">on</span><span class="w"> </span><span class="n">port</span><span class="w"> </span><span class="mi">80</span><span class="w"> </span><span class="n">after</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">request</span>
</code></pre></div>
<h2 id="sayeahooo">Sayeahooo<a class="headerlink" href="#sayeahooo" title="Permanent link">¶</a></h2>
<blockquote>
<p>所以, 有一个可以随时发布自己资源的外网空间是好的...</p>
</blockquote>
<ul>
<li>1.5h 资料搜索理解</li>
<li>2d 冷静</li>
<li>.5h 实施</li>
<li>.5h 文档嗯哼...</li>
</ul>Python 列表为毛从0开始索引?2019-03-23T00:00:00+08:002020-05-31T16:48:03+08:00Zoom.Quiettag:blog.zoomquiet.io,2019-03-23:/131023-why0base-indexing-python.html
<p><a href="https://plus.google.com/115212051037621986145/posts/YTUxbXYZyfi">I was asked on Twitter why Python uses 0-based indexing,...</a></p>
<p>老爹当年也很是积累使用 G+ 的,
公开回答了很多价值问题...
能看一眼少一眼了...</p>
<h2 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<blockquote>
<blockquote>
<blockquote>
<p>Google+ 帐号将于 2019 …</p></blockquote></blockquote></blockquote>
<p><a href="https://plus.google.com/115212051037621986145/posts/YTUxbXYZyfi">I was asked on Twitter why Python uses 0-based indexing,...</a></p>
<p>老爹当年也很是积累使用 G+ 的,
公开回答了很多价值问题...
能看一眼少一眼了...</p>
<h2 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<blockquote>
<blockquote>
<blockquote>
<p>Google+ 帐号将于 2019 年 4 月 2 日关停. 下载 Google+ 内容可能需要一些时间,因此请在 2019 年 3 月 31 日之前开始下载. </p>
</blockquote>
</blockquote>
</blockquote>
<h2 id="_2">发现<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<blockquote>
<p>Guido van Rossum</p>
<blockquote>
<p>公开</p>
<blockquote>
<p>2013年10月23日</p>
</blockquote>
</blockquote>
</blockquote>
<p>I was asked on Twitter why Python uses 0-based indexing, with a link to a new (fascinating) post on the subject (http://exple.tive.org/blarg/2013/10/22/citation-needed/). I recall thinking about it a lot; ABC, one of Python's predecessors, used 1-based indexing, while C, the other big influence, used 0-based. My first few programming languages (Algol, Fortran, Pascal) used 1-based or variable-based. I think that one of the issues that helped me decide was slice notation.</p>
<p>Let's first look at use cases. Probably the most common use cases for slicing are "get the first n items" and "get the next n items starting at i" (the first is a special case of that for i == the first index). It would be nice if both of these could be expressed as without awkward +1 or -1 compensations.</p>
<p>Using 0-based indexing, half-open intervals, and suitable defaults (as Python ended up having), they are beautiful: a[:n] and a[i:i+n]; the former is long for a[0:n].</p>
<p>Using 1-based indexing, if you want a[:n] to mean the first n elements, you either have to use closed intervals or you can use a slice notation that uses start and length as the slice parameters. Using half-open intervals just isn't very elegant when combined with 1-based indexing. Using closed intervals, you'd have to write a[i:i+n-1] for the n items starting at i. So perhaps using the slice length would be more elegant with 1-based indexing? Then you could write a[i:n]. And this is in fact what ABC did -- it used a different notation so you could write a@i|n.(See http://homepages.cwi.nl/~steven/abc/qr.html#EXPRESSIONS.)</p>
<p>But how does the index:length convention work out for other use cases? TBH this is where my memory gets fuzzy, but I think I was swayed by the elegance of half-open intervals. Especially the invariant that when two slices are adjacent, the first slice's end index is the second slice's start index is just too beautiful to ignore. For example, suppose you split a string into three parts at indices i and j -- the parts would be a[:i], a[i:j], and a[j:].</p>
<p>So that's why Python uses 0-based indexing.</p>
<h2 id="_3">是也乎<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<blockquote>
<p>简单说, 就是为了切片时的语义合理性...</p>
</blockquote>如何自在定义 macOS 截屏文件名?2019-02-13T22:42:00+08:002019-09-08T12:14:36+08:00Zoom.Quiettag:blog.zoomquiet.io,2019-02-13:/how2rename-mac-screen-shot.html
<h2 id="bg">BG<a class="headerlink" href="#bg" title="Permanent link">¶</a></h2>
<ul>
<li>默认系统截屏工具输出图片是:<ul>
<li>到桌面</li>
<li>文件名: <code>屏幕快照 2019-02-13 17.17.32.png</code></li>
</ul>
</li>
</ul>
<h2 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<ul>
<li>当年在 Linux 中,是可以自由定义输出的, 俺期望是:<ul>
<li><code>screenshot_190213-17 …</code></li></ul></li></ul>
<h2 id="bg">BG<a class="headerlink" href="#bg" title="Permanent link">¶</a></h2>
<ul>
<li>默认系统截屏工具输出图片是:<ul>
<li>到桌面</li>
<li>文件名: <code>屏幕快照 2019-02-13 17.17.32.png</code></li>
</ul>
</li>
</ul>
<h2 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<ul>
<li>当年在 Linux 中,是可以自由定义输出的, 俺期望是:<ul>
<li><code>screenshot_190213-17.17.32.jpg</code></li>
</ul>
</li>
<li>现在怎么作到?</li>
</ul>
<h2 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h2>
<blockquote>
<p>记要尝试过程</p>
</blockquote>
<h3 id="_1">格式<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>defaults<span class="w"> </span>write<span class="w"> </span>com.apple.screencapture<span class="w"> </span><span class="nb">type</span><span class="w"> </span>jpg
$<span class="w"> </span>killall<span class="w"> </span>SystemUIServer
</code></pre></div>
<p>以上即可</p>
<h3 id="_2">命名<a class="headerlink" href="#_2" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>defaults<span class="w"> </span>write<span class="w"> </span>com.apple.screencapture<span class="w"> </span>name<span class="w"> </span>screenshot
$<span class="w"> </span>killall<span class="w"> </span>SystemUIServer
</code></pre></div>
<p>以上只能变成:</p>
<div class="highlight"><pre><span></span><code>screenshot 2019-02-13 17.17.32.jpg
</code></pre></div>
<h3 id="screencapturestrings">ScreenCapture.strings<a class="headerlink" href="#screencapturestrings" title="Permanent link">¶</a></h3>
<p>以往可以进行的</p>
<div class="highlight"><pre><span></span><code>sudo su
cd /System/Library/CoreServices/SystemUIServer.app/Contents/Resources/Spanish.lpro
plutil -convert xml1 ScreenCapture.strings
vim ScreenCapture.strings
</code></pre></div>
<p>在 macOS Sierra 10.12.6 中失败:</p>
<ul>
<li>无论是否是 root 身份</li>
<li>都说系统没有权限</li>
</ul>
<h3 id="automator">Automator<a class="headerlink" href="#automator" title="Permanent link">¶</a></h3>
<p>另外一种思路是用内置自动脚本来刷指定目录中指定文件名的文件名:</p>
<ul>
<li>但是, 尝试后发现, 这种可视化编程限制太多</li>
<li>而且调整困难, 根本无法有效完成设想</li>
</ul>
<h3 id="bash">bash<a class="headerlink" href="#bash" title="Permanent link">¶</a></h3>
<p>经检测:</p>
<div class="highlight"><pre><span></span><code>screencapture -io ~/Desktop/screenshot_`date '+%y%m%d-%H.%M.%S'`.jpg
</code></pre></div>
<p>可以满足所有构想,可是:</p>
<ul>
<li>先要打开终端</li>
<li>运行, 无论是配置为别名, 还是部署为指定 .sh 脚本</li>
<li>然后才能进行截屏</li>
<li>相比原先随时 <code>cmd+shift+4</code> 进入截屏, 还是多了一层, 不方便</li>
</ul>
<p>问题变成如何可以用原有快捷键调用 bash 指令?</p>
<ul>
<li>alfred 复杂</li>
<li>HotKey 只能绑定 .app 使用自定快捷键<ul>
<li>那么问题进一步变成: <code>如何快速将一个 shell 脚本变成标准 mac app?</code></li>
<li>果然有很多方式, 脚本,编译,应用...</li>
<li>试用 Platypus 一下子就形成了无界面后台运行的 app</li>
</ul>
</li>
<li>配合 HotKay 达成目标效果 ;-)</li>
</ul>
<p><img alt="screenshot_190213" src="https://ipic.zoomquiet.top/2019-02-13-screenshot_190213-23.03.43.jpg"/></p>
<h2 id="refer">refer<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li><a href="http://snowleopardtips.net/tips/everything-you-need-to-know-about-screen-captures.html">TIP: Change default screen shot filenames, format and location | Snow Leopard Tips</a><ul>
<li><a href="https://www.tekrevue.com/tip/how-to-customize-screenshot-options-in-mac-os-x/">The Complete Guide to Mac OS X Screenshots - TekRevue</a></li>
<li><a href="https://apple.stackexchange.com/questions/27729/changing-the-default-screenshot-filename">uti - Changing the default screenshot filename - Ask Different</a></li>
<li>...</li>
</ul>
</li>
<li><a href="https://apple.stackexchange.com/questions/200125/how-to-create-an-osx-application-to-wrap-a-call-to-a-shell-script">macos - How to create an OSX Application to wrap a call to a shell script? - Ask Different</a><ul>
<li><a href="https://apple.stackexchange.com/questions/103621/run-applescript-from-bash-script">macos - Run AppleScript from bash script - Ask Different</a></li>
<li><a href="https://stackoverflow.com/questions/30792569/converting-a-shell-script-into-a-app-file">macos - Converting a Shell Script Into a *.app File - Stack Overflow</a></li>
<li><a href="https://christopher.su/2012/creating-mac-applications-shell-scripts/">Creating Mac Applications from Shell Scripts - Christopher Su</a></li>
<li><a href="https://sveinbjorn.org/platypus">Platypus - Create Mac apps from command line scripts |</a></li>
</ul>
</li>
</ul>
<h2 id="sayeahooo">Sayeahooo<a class="headerlink" href="#sayeahooo" title="Permanent link">¶</a></h2>
<ul>
<li>1.5h 资料搜索理解</li>
<li>2h 嗯哼</li>
<li>.5h 截屏,文档嗯哼...</li>
</ul>如何配置 rIME 支持 GitChat 规范?2019-02-01T10:42:00+08:002020-01-31T16:42:10+08:00Zoom.Quiettag:blog.zoomquiet.io,2019-02-01:/rime4gitchat.html
<h2 id="bg">BG<a class="headerlink" href="#bg" title="Permanent link">¶</a></h2>
<ul>
<li>新年了, 发现有 <code>长徦式学习症</code> , 很多不敢肥家被逼婚的程序猿, 宁可呆在公司一边值班一边刷课</li>
<li>同时, GitChat 也空降新领导, 启 …</li></ul>
<h2 id="bg">BG<a class="headerlink" href="#bg" title="Permanent link">¶</a></h2>
<ul>
<li>新年了, 发现有 <code>长徦式学习症</code> , 很多不敢肥家被逼婚的程序猿, 宁可呆在公司一边值班一边刷课</li>
<li>同时, GitChat 也空降新领导, 启动叕一波作者鼓动</li>
<li>所以, 响应号召, 尝试分享这年几点感触</li>
<li>只是, 没想到, 对提交文章, 有了细致要求, 任何一点不达标, 直接退稿, 不允许发布</li>
<li>虽然, 申述说:<ul>
<li>通过配置输入法, 已经有15年从来不用中文标点了</li>
<li>不仅在编程时杜绝了因为中文标点引发血案</li>
<li>同时, 也促使行文更加国际化, 也从来没因为标点而引发误解</li>
<li>但是, GitChat 方面不认为这是读者可以接受的</li>
<li>其它作者也劝:"从了吧, 您就..."</li>
</ul>
</li>
</ul>
<blockquote>
<p>所以...</p>
</blockquote>
<h2 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<ul>
<li>找到配置, 恢复全角标点输入</li>
<li>同时兼容以往全部半角标点输入习惯</li>
<li>进一步, 是否可以用工具来完成自动化修改?</li>
</ul>
<h2 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h2>
<blockquote>
<p>快速记录应对嗯哼</p>
</blockquote>
<h3 id="sed">sed<a class="headerlink" href="#sed" title="Permanent link">¶</a></h3>
<ul>
<li><a href="https://gist.github.com/ZoomQuiet/53439dd21c60a935e793">i hate Chinese symbol! so usage: zhmark2en.sh pwd FILEexNAME</a></li>
<li>早年开始实行全半角标点后, 自然的基于 bash 编写了小工具<ul>
<li>可以自动用自己指定规则</li>
<li>替换批量文本文件中所有全角标点</li>
</ul>
</li>
<li>自然首先尝试基于之, 反转规则:<ul>
<li>还用之前输入习惯</li>
<li>只是提交前, 用工具自动替换所有半角标点为编辑们渴望和依赖的中文标点</li>
</ul>
</li>
</ul>
<blockquote>
<p>结果->放弃</p>
</blockquote>
<ul>
<li>首先, 中文标点有很大一批是成对却不同形状 <code>"" " "</code><ul>
<li>原先工具替换时是统一替换为同一形状</li>
<li>比如,无论 <code>"</code> 或是 <code>"</code> 都嗯哼为 <code>"</code></li>
<li>现在想相反, 远没那么简单</li>
</ul>
</li>
<li>另外, 原先替换的目标字符在 ASCII 范畴, 无论什么编码都兼容<ul>
<li>现在则不同, 中文标点只存在少数几种编码中</li>
<li>用 shell 脚本强行修改后</li>
<li>引发编码混乱, 文本直接乱码了</li>
<li>强行转换回 UTF-8 依然有很大比例有吞字现象</li>
</ul>
</li>
</ul>
<h3 id="rime">rIME<a class="headerlink" href="#rime" title="Permanent link">¶</a></h3>
<blockquote>
<p>只能回到输入法本身来定制了</p>
</blockquote>
<p>好在 <a href="https://rime.im/">RIME - 中州韻輸入法引擎</a> 本身就是高度可定制的</p>
<ul>
<li>参考: <a href="https://github.com/ZoomQuiet/ZqBXM/tree/master/Rime-Squirrel">ZqBXM/Rime-Squirrel at master · ZoomQuiet/ZqBXM</a></li>
<li>发现当年关键几处配置</li>
<li>小心尝试几次, 便搞定</li>
</ul>
<p>:</p>
<div class="highlight"><pre><span></span><code>/Users/zoomq/Library/Rime/
+- alternative.yaml ~ 全/半角标点声明
+- ...
+- bxm4zq2mac.custom.yaml ~ 私制 表形码 输入法定制配置
+- bxm4zq2mac.schema.yaml ~ 私制 表形码 输入法行为配置
+- ...
`- user.yaml ~ 通用输入行为配置
</code></pre></div>
<ul>
<li>其它配置都不用动</li>
<li>单单在 <code>user.yaml</code> 中<ul>
<li><code>ascii_punct: true</code> </li>
<li><code>full_shape: false</code></li>
<li>这两个配置反转就好</li>
</ul>
</li>
</ul>
<h2 id="gitchat-style">GitChat-style<a class="headerlink" href="#gitchat-style" title="Permanent link">¶</a></h2>
<blockquote>
<p>饭桶式写作输入</p>
</blockquote>
<ul>
<li>原先 rIME 配合私制 <code>表形码</code> 进行写作和编程时, 行为很简洁:<ul>
<li><code>control+空格</code> 切换到 <code>鼠鬚管</code> (中州韻 输入法平台 macOS 版本代号)<ul>
<li>随便输入就好...</li>
</ul>
</li>
<li>如果有大段英文输入, 不想触发中文选字<ul>
<li><code>shift</code> 切换状态, 或 <code>option+~</code> 选择输入状态</li>
</ul>
</li>
<li>以上</li>
</ul>
</li>
<li>现在, 为了兼容编辑们的期待, 行为就业务性冗余了:<ul>
<li>输入正文时, 必须:<ul>
<li><code>shift</code> 切换为中文输入模式</li>
<li>再用 <code>shift+空格</code> 切换为到 <code>全角</code> 标点</li>
<li>此时, 所有标点是<code>中文式</code>的</li>
</ul>
</li>
<li>输入 markdown 相关结构字符时, 又必须:<ul>
<li><code>shift</code> 切换为中文输入模式</li>
<li>再用 <code>shift+空格</code> 切换为到 <code>半角</code> 标点</li>
<li>此时, 类似 <code>+ - ></code> 以及空格/tab 都是 ASCII 式, markdown 可理解的</li>
</ul>
</li>
<li>输入英文单词/术语时, 又必须:<ul>
<li><code>shift</code> 切换为中文输入模式</li>
<li>再用 <code>shift+空格</code> 切换为到 <code>半角</code> 标点</li>
<li>再用 <code>shift</code> 切换为 en 输入模式</li>
<li>此时, 才能输入正常 ASCII 字符</li>
<li>否则是类似 <code>ASCII</code> 全角英文</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>综上, rIME 支持灵活丰富的输入模式:</p>
<ul>
<li>可是为了灵活, 不得不劳累用户显式指令切换模式</li>
<li>同时, 从法理上不同输入模式中, ASCII 字符形态是不兼容</li>
<li>而 GitChat 编辑又要求在同一篇文章中:<ul>
<li>不同格式标点,空格</li>
<li>和不同形式字符</li>
<li>又必须 <code>合理? 美观? 合规?</code> 并举</li>
</ul>
</li>
<li>导致至少多出一倍毫无必要的击键操作</li>
<li>以及, 和以往主要输入行为完全不同的心智判定损耗</li>
<li>可以说, 是 <code>GitChat 式工伤</code></li>
</ul>
<h2 id="refer">refer<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li><a href="https://gitbook.cn/books/5c47da3ef79c0c1f90492403/index.html">Chat 发布与写作指南</a></li>
<li><a href="http://w3c.github.io/clreq/zh/">中文排版需求</a><ul>
<li><a href="http://devrel.zoomquiet.top/data/20150402184838/index.html">从"中文排版规范"开始</a></li>
<li>对比: <a href="https://www.w3.org/TR/jlreq/">Requirements for Japanese Text Layout</a></li>
</ul>
</li>
<li><a href="https://github.com/sparanoid/chinese-copywriting-guidelines/blob/master/README.md#%E7%A9%BA%E6%A0%BC">中文文案排版指北</a><ul>
<li><a href="https://github.com/vinta/pangu.js?utm_source=www.appinn.com">vinta/pangu.js: 為什麼你們就是不能加個空格呢?</a></li>
</ul>
</li>
<li><a href="https://mp.weixin.qq.com/s/Vu-20r7_LCTToyaOeli7tg">全角半角碎碎念 - The Type</a><ul>
<li><code>...可见,中文的标点符号既可以是'全宽'的也可以是'半宽'的,'中文=全角'完全是技术问题导致的误解.</code></li>
<li><a href="https://zh.wikipedia.org/wiki/%E5%85%A8%E5%BD%A2%E5%92%8C%E5%8D%8A%E5%BD%A2">全角和半角 - 维基百科,自由的百科全书</a></li>
</ul>
</li>
</ul>
<h2 id="sayeahooo">Sayeahooo<a class="headerlink" href="#sayeahooo" title="Permanent link">¶</a></h2>
<ul>
<li>h 资料搜索理解</li>
<li>2d gitlab 尝试/生效</li>
<li>4h github 嗯哼<ul>
<li>3h 域名迁移尝试</li>
</ul>
</li>
<li>2h 截屏,文档嗯哼...</li>
</ul>如何持证 (SSL) 开车2019-01-30T10:10:00+08:002019-08-19T17:30:30+08:00Zoom.Quiettag:blog.zoomquiet.io,2019-01-30:/jump-into-ssl.html
<h2 id="bg">BG<a class="headerlink" href="#bg" title="Permanent link">¶</a></h2>
<p><a href="https://mp.weixin.qq.com/s/qig7l-Tc1P6gp_Ldm2bQJg">Let's Encrypt 2019:带来更多振奋人心的新功能 - 开源中国</a></p>
<p>被成功安利...</p>
<h2 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<p>因各种网站发布的年代, 使用技术各不相同, 但是好在都能 …</p>
<h2 id="bg">BG<a class="headerlink" href="#bg" title="Permanent link">¶</a></h2>
<p><a href="https://mp.weixin.qq.com/s/qig7l-Tc1P6gp_Ldm2bQJg">Let's Encrypt 2019:带来更多振奋人心的新功能 - 开源中国</a></p>
<p>被成功安利...</p>
<h2 id="goal">goal<a class="headerlink" href="#goal" title="Permanent link">¶</a></h2>
<p>因各种网站发布的年代, 使用技术各不相同, 但是好在都能依托 <code>*-pages</code> 服务快速发布:</p>
<ul>
<li>github/gitlab 为核心</li>
<li>免费 SSL 认证为基础</li>
<li>最好能一次配置长期可用</li>
</ul>
<h2 id="logging">logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h2>
<p>整体上, 无论在哪个 <code>*-pages</code> 平台, 要折腾的事儿相似, 就3步:</p>
<ul>
<li>追加配置含 <code>SSL</code> 解析能力的 DNS 服务主机 <code>A</code> 地址<ul>
<li>并解决引发的有关 <code>CANEM</code> 冲突问题</li>
</ul>
</li>
<li>在 <code>*-pages</code> 平台配置 <code>Enforce HTTPS</code> 有关嗯哼</li>
<li>优雅的等待一切生效 ;-)<ul>
<li>并解决可能的资源冲突问题</li>
</ul>
</li>
</ul>
<h3 id="gh-pages">gh-pages<a class="headerlink" href="#gh-pages" title="Permanent link">¶</a></h3>
<p>原先的:</p>
<blockquote>
<p>༄ dig blog.zoomquiet.io +nostats +nocomments +nocmd</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="o">;</span><span class="w"> </span><span class="o"><<>></span><span class="w"> </span><span class="nt">DiG</span><span class="w"> </span><span class="nt">9</span><span class="p">.</span><span class="nc">8</span><span class="p">.</span><span class="nc">3-P1</span><span class="w"> </span><span class="o"><<>></span><span class="w"> </span><span class="nt">blog</span><span class="p">.</span><span class="nc">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="w"> </span><span class="o">+</span><span class="nt">nostats</span><span class="w"> </span><span class="o">+</span><span class="nt">nocomments</span><span class="w"> </span><span class="o">+</span><span class="nt">nocmd</span>
<span class="o">;;</span><span class="w"> </span><span class="nt">global</span><span class="w"> </span><span class="nt">options</span><span class="o">:</span><span class="w"> </span><span class="o">+</span><span class="nt">cmd</span>
<span class="o">;</span><span class="nt">blog</span><span class="p">.</span><span class="nc">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span>
<span class="nt">blog</span><span class="p">.</span><span class="nc">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">600</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">CNAME</span><span class="w"> </span><span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">3251</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">185</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">108</span><span class="p">.</span><span class="nc">153</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">3251</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">185</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">109</span><span class="p">.</span><span class="nc">153</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">3251</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">185</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">110</span><span class="p">.</span><span class="nc">153</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">3251</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">185</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">111</span><span class="p">.</span><span class="nc">153</span>
</code></pre></div>
<ul>
<li>暂停原先 <code>CNAME</code> -> <code>ZoomQuiet.github.io.</code></li>
<li>追加新 <code>A</code> 记录-><code>185.199.111.153</code></li>
<li>立即...</li>
</ul>
<blockquote>
<p>༄ dig blog.zoomquiet.io +nostats +nocomments +nocmd</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="o">;</span><span class="w"> </span><span class="o"><<>></span><span class="w"> </span><span class="nt">DiG</span><span class="w"> </span><span class="nt">9</span><span class="p">.</span><span class="nc">8</span><span class="p">.</span><span class="nc">3-P1</span><span class="w"> </span><span class="o"><<>></span><span class="w"> </span><span class="nt">blog</span><span class="p">.</span><span class="nc">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="w"> </span><span class="o">+</span><span class="nt">nostats</span><span class="w"> </span><span class="o">+</span><span class="nt">nocomments</span><span class="w"> </span><span class="o">+</span><span class="nt">nocmd</span>
<span class="o">;;</span><span class="w"> </span><span class="nt">global</span><span class="w"> </span><span class="nt">options</span><span class="o">:</span><span class="w"> </span><span class="o">+</span><span class="nt">cmd</span>
<span class="o">;</span><span class="nt">blog</span><span class="p">.</span><span class="nc">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span>
<span class="nt">blog</span><span class="p">.</span><span class="nc">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">600</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">CNAME</span><span class="w"> </span><span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">2989</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">185</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">111</span><span class="p">.</span><span class="nc">153</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">2989</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">185</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">108</span><span class="p">.</span><span class="nc">153</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">2989</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">185</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">109</span><span class="p">.</span><span class="nc">153</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">2989</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">185</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">110</span><span class="p">.</span><span class="nc">153</span>
</code></pre></div>
<p>触发对应 gh-pages 配置处 <code>CNAME</code> 冲突报警</p>
<p><img alt="冲突报警" src="_images/ssl-gh-pages-alert-cname.png"/></p>
<p>删除原先 <code>blog.zoomquiet.io</code> 定制域名后, gh-pages 状态恢复:</p>
<p><img alt="暂时默认" src="_images/ssl-gh-pages-revert-domain.png"/></p>
<ul>
<li>然而, 这肯定不是俺要的效果哪...</li>
<li>进一步的, 发现, 这是 <code>DNSPod</code> 的问题</li>
<li>namecheap 等等, 其它老厂, 是支持这种 <code>A</code> 记录和 <code>CNAME</code> 记录指向不同的</li>
<li>
<p>所以, 回查当初域名服务商:</p>
<ul>
<li>才发现, 因为抢注的早, 当年支付私人购买 <code>.io</code> 的 iwantmyname.com</li>
<li>实在太弱, 根本没有完备的域名配置服务</li>
<li>而且一直以来域名托管年费也比其它大厂贵一倍</li>
<li>说不得, 只能迁移了:</li>
</ul>
</li>
<li>
<p>先 <code>unlock</code></p>
</li>
<li>获得 <code>Transfer Auth Code</code></li>
<li>再到 namecheap 发起转移工单</li>
<li>再回 iwantmyname 同意转移</li>
<li>等待生效</li>
<li>再将 DNSPod 上对应各种配置, 逐一手工配置回 namecheap 中</li>
<li>再对应增补 SSL 依赖的 gh-pages 有关配置:<ul>
<li>blog 主机 <code>A</code> 记录-><code>185.199.111.153</code></li>
<li>blog 主机 <code>CNAME</code> -> <code>ZoomQuiet.github.io.</code></li>
</ul>
</li>
</ul>
<p>迁移前:</p>
<blockquote>
<p>༄ dig zoomquiet.io +nostats +nocomments +nocmd</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="o">;</span><span class="w"> </span><span class="o"><<>></span><span class="w"> </span><span class="nt">DiG</span><span class="w"> </span><span class="nt">9</span><span class="p">.</span><span class="nc">8</span><span class="p">.</span><span class="nc">3-P1</span><span class="w"> </span><span class="o"><<>></span><span class="w"> </span><span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="w"> </span><span class="o">+</span><span class="nt">nostats</span><span class="w"> </span><span class="o">+</span><span class="nt">nocomments</span><span class="w"> </span><span class="o">+</span><span class="nt">nocmd</span>
<span class="o">;;</span><span class="w"> </span><span class="nt">global</span><span class="w"> </span><span class="nt">options</span><span class="o">:</span><span class="w"> </span><span class="o">+</span><span class="nt">cmd</span>
<span class="o">;</span><span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">600</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">172</span><span class="p">.</span><span class="nc">105</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">192</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">600</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">NS</span><span class="w"> </span><span class="nt">f1g1ns1</span><span class="p">.</span><span class="nc">dnspod</span><span class="p">.</span><span class="nc">net</span><span class="o">.</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">600</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">NS</span><span class="w"> </span><span class="nt">f1g1ns2</span><span class="p">.</span><span class="nc">dnspod</span><span class="p">.</span><span class="nc">net</span><span class="o">.</span>
<span class="o">...</span>
</code></pre></div>
<blockquote>
<p>先给銭:</p>
</blockquote>
<p><img alt="迁移费用" src="_images/ssl-domain-transfer-pay.png"/></p>
<blockquote>
<p>再同意...</p>
</blockquote>
<p><img alt="同意迁移" src="_images/ssl-domain-transfer.png"/></p>
<ul>
<li>而且人家立即有挽救邮件来问, 为毛走哪....</li>
</ul>
<p><img alt="邮件事务" src="_images/ssl-domain-transfer-flow.png"/></p>
<blockquote>
<p>namecheap 中进行恢复</p>
</blockquote>
<p><img alt="旧解析" src="_images/ssl-domain-dnspod.png"/></p>
<blockquote>
<p>使用官方模板, 替代 <code>DNSPod</code> 代理的...</p>
</blockquote>
<p><img alt="解析模板" src="_images/ssl-domain-dns2namecheap.png"/></p>
<p><img alt="生效等待" src="_images/ssl-domain-waitting.png"/></p>
<p><img alt="迁移成功" src="_images/ssl-domain-in-namecheap.png"/></p>
<p>迁移并重置后:</p>
<blockquote>
<p>༄ dig zoomquiet.io +nostats +nocomments +nocmd</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="o">;</span><span class="w"> </span><span class="o"><<>></span><span class="w"> </span><span class="nt">DiG</span><span class="w"> </span><span class="nt">9</span><span class="p">.</span><span class="nc">8</span><span class="p">.</span><span class="nc">3-P1</span><span class="w"> </span><span class="o"><<>></span><span class="w"> </span><span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="w"> </span><span class="o">+</span><span class="nt">nostats</span><span class="w"> </span><span class="o">+</span><span class="nt">nocomments</span><span class="w"> </span><span class="o">+</span><span class="nt">nocmd</span>
<span class="o">;;</span><span class="w"> </span><span class="nt">global</span><span class="w"> </span><span class="nt">options</span><span class="o">:</span><span class="w"> </span><span class="o">+</span><span class="nt">cmd</span>
<span class="o">;</span><span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">600</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">172</span><span class="p">.</span><span class="nc">105</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">192</span>
</code></pre></div>
<ul>
<li>然后, 逐一先将老的 几十条配置, 逐一复制到 namecheap 解析面板中</li>
<li>然后, 按照文档要求的,配置好:</li>
</ul>
<p><img alt="全部OK" src="_images/ssl-domain-ko.png"/></p>
<blockquote>
<p>༄ dig blog.zoomquiet.io +nostats +nocomments +nocmd</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="o">;</span><span class="w"> </span><span class="o"><<>></span><span class="w"> </span><span class="nt">DiG</span><span class="w"> </span><span class="nt">9</span><span class="p">.</span><span class="nc">8</span><span class="p">.</span><span class="nc">3-P1</span><span class="w"> </span><span class="o"><<>></span><span class="w"> </span><span class="nt">blog</span><span class="p">.</span><span class="nc">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="w"> </span><span class="o">+</span><span class="nt">nostats</span><span class="w"> </span><span class="o">+</span><span class="nt">nocomments</span><span class="w"> </span><span class="o">+</span><span class="nt">nocmd</span>
<span class="o">;;</span><span class="w"> </span><span class="nt">global</span><span class="w"> </span><span class="nt">options</span><span class="o">:</span><span class="w"> </span><span class="o">+</span><span class="nt">cmd</span>
<span class="o">;</span><span class="nt">blog</span><span class="p">.</span><span class="nc">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span>
<span class="nt">blog</span><span class="p">.</span><span class="nc">zoomquiet</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">1799</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">CNAME</span><span class="w"> </span><span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">3600</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">185</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">111</span><span class="p">.</span><span class="nc">153</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">3600</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">185</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">110</span><span class="p">.</span><span class="nc">153</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">3600</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">185</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">109</span><span class="p">.</span><span class="nc">153</span>
<span class="nt">zoomquiet</span><span class="p">.</span><span class="nc">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">3600</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">185</span><span class="p">.</span><span class="nc">199</span><span class="p">.</span><span class="nc">108</span><span class="p">.</span><span class="nc">153</span>
<span class="nt">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">698</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">NS</span><span class="w"> </span><span class="nt">ns-1622</span><span class="p">.</span><span class="nc">awsdns-10</span><span class="p">.</span><span class="nc">co</span><span class="p">.</span><span class="nc">uk</span><span class="o">.</span>
<span class="nt">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">698</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">NS</span><span class="w"> </span><span class="nt">ns-393</span><span class="p">.</span><span class="nc">awsdns-49</span><span class="p">.</span><span class="nc">com</span><span class="o">.</span>
<span class="nt">github</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">698</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">NS</span><span class="w"> </span><span class="nt">ns-692</span><span class="p">.</span><span class="nc">awsdns-22</span><span class="p">.</span><span class="nc">net</span><span class="o">.</span>
<span class="o">...</span>
</code></pre></div>
<blockquote>
<p>可以看到, 壕 github 全部用 AWS 域名服务来解析的...</p>
</blockquote>
<p><img alt="gh 正常" src="_images/ssl-gh-pages-ko.png"/></p>
<blockquote>
<p>此时 gi-pages 配置已经感知到一切良好</p>
</blockquote>
<p><img alt="证书有效" src="_images/ssl-chrome-info.png"/></p>
<p>点击 chrom 域名前的小图标, 可以看到 SSL 已生效</p>
<p><img alt="检验" src="_images/ssl-chrome-chk.png"/></p>
<p>当然, 原先模板中一系列资源指向老 <code>http</code> 资源都无法使用了</p>
<p><img alt="资源丢失" src="_images/ssl-res-load-err.png"/></p>
<p>修订配置文件 <code>pelicanconf.py</code>: </p>
<div class="highlight"><pre><span></span><code><span class="n">SITEURL</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">'http://blog.zoomquiet.io'</span>
<span class="o">--></span>
<span class="w"> </span><span class="s">'https://blog.zoomquiet.io'</span>
</code></pre></div>
<p>但是, 进行 push 失败:</p>
<div class="highlight"><pre><span></span><code><span class="err">༄</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="n">pu</span>
<span class="k">To</span><span class="w"> </span><span class="n">github</span><span class="p">.</span><span class="nl">com</span><span class="p">:</span><span class="n">ZoomQuiet</span><span class="o">/</span><span class="n">ZoomQuiet</span><span class="p">.</span><span class="n">github</span><span class="p">.</span><span class="n">io</span><span class="p">.</span><span class="n">git</span>
<span class="w"> </span><span class="err">!</span><span class="w"> </span><span class="o">[</span><span class="n">rejected</span><span class="o">]</span><span class="w"> </span><span class="n">master</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">master</span><span class="w"> </span><span class="p">(</span><span class="k">fetch</span><span class="w"> </span><span class="k">first</span><span class="p">)</span>
<span class="nl">error</span><span class="p">:</span><span class="w"> </span><span class="n">failed</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">push</span><span class="w"> </span><span class="ow">some</span><span class="w"> </span><span class="n">refs</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="s1">'git@github.com:ZoomQuiet/ZoomQuiet.github.io.git'</span>
<span class="nl">hint</span><span class="p">:</span><span class="w"> </span><span class="n">Updates</span><span class="w"> </span><span class="n">were</span><span class="w"> </span><span class="n">rejected</span><span class="w"> </span><span class="n">because</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">remote</span><span class="w"> </span><span class="k">contains</span><span class="w"> </span><span class="k">work</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">you</span><span class="w"> </span><span class="n">do</span>
<span class="nl">hint</span><span class="p">:</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">have</span><span class="w"> </span><span class="n">locally</span><span class="p">.</span><span class="w"> </span><span class="n">This</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">usually</span><span class="w"> </span><span class="n">caused</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="n">another</span><span class="w"> </span><span class="n">repository</span><span class="w"> </span><span class="n">pushing</span>
<span class="nl">hint</span><span class="p">:</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">same</span><span class="w"> </span><span class="k">ref</span><span class="p">.</span><span class="w"> </span><span class="n">You</span><span class="w"> </span><span class="n">may</span><span class="w"> </span><span class="n">want</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="k">first</span><span class="w"> </span><span class="n">integrate</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">remote</span><span class="w"> </span><span class="n">changes</span>
<span class="nl">hint</span><span class="p">:</span><span class="w"> </span><span class="p">(</span><span class="n">e</span><span class="p">.</span><span class="n">g</span><span class="p">.,</span><span class="w"> </span><span class="s1">'git pull ...'</span><span class="p">)</span><span class="w"> </span><span class="k">before</span><span class="w"> </span><span class="n">pushing</span><span class="w"> </span><span class="n">again</span><span class="p">.</span>
<span class="nl">hint</span><span class="p">:</span><span class="w"> </span><span class="n">See</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="s1">'Note about fast-forwards'</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="s1">'git push --help'</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">details</span><span class="p">.</span>
</code></pre></div>
<blockquote>
<p>因为仓库目录中 <code>CNAME</code> 文件自动构建过,和本地没同步上</p>
</blockquote>
<p><img alt="CNAME 重建" src="_images/ssl-domain-cname-renew.png"/></p>
<blockquote>
<p>再重新编译->push->等待 gh-pages 完成发布</p>
</blockquote>
<p><img alt="等待部署" src="_images/gh-pages-waitting.png"/></p>
<p>那个褐色小点, 变成绿色对勾, 就说明一切安好...</p>
<p><img alt="WOLA" src="_images/ssl-all-ok.png"/></p>
<h3 id="gl-pages">gl-pages<a class="headerlink" href="#gl-pages" title="Permanent link">¶</a></h3>
<p>其实, gitlab 上网站先持证上岗的...</p>
<p>先出示一下成果:</p>
<blockquote>
<p>༄ dig 101.camp +nostats +nocomments +nocmd</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="o">;</span><span class="w"> </span><span class="o"><<>></span><span class="w"> </span><span class="nt">DiG</span><span class="w"> </span><span class="nt">9</span><span class="p">.</span><span class="nc">8</span><span class="p">.</span><span class="nc">3-P1</span><span class="w"> </span><span class="o"><<>></span><span class="w"> </span><span class="nt">101</span><span class="p">.</span><span class="nc">camp</span><span class="w"> </span><span class="o">+</span><span class="nt">nostats</span><span class="w"> </span><span class="o">+</span><span class="nt">nocomments</span><span class="w"> </span><span class="o">+</span><span class="nt">nocmd</span>
<span class="o">;;</span><span class="w"> </span><span class="nt">global</span><span class="w"> </span><span class="nt">options</span><span class="o">:</span><span class="w"> </span><span class="o">+</span><span class="nt">cmd</span>
<span class="o">;</span><span class="nt">101</span><span class="p">.</span><span class="nc">camp</span><span class="o">.</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span>
<span class="nt">101</span><span class="p">.</span><span class="nc">camp</span><span class="o">.</span><span class="w"> </span><span class="nt">1799</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">CNAME</span><span class="w"> </span><span class="nt">pythonicamp</span><span class="p">.</span><span class="nc">gitlab</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span>
<span class="nt">pythonicamp</span><span class="p">.</span><span class="nc">gitlab</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">300</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">A</span><span class="w"> </span><span class="nt">35</span><span class="p">.</span><span class="nc">185</span><span class="p">.</span><span class="nc">44</span><span class="p">.</span><span class="nc">232</span>
<span class="nt">gitlab</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">48445</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">NS</span><span class="w"> </span><span class="nt">ns-1116</span><span class="p">.</span><span class="nc">awsdns-11</span><span class="p">.</span><span class="nc">org</span><span class="o">.</span>
<span class="nt">gitlab</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">48445</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">NS</span><span class="w"> </span><span class="nt">ns-926</span><span class="p">.</span><span class="nc">awsdns-51</span><span class="p">.</span><span class="nc">net</span><span class="o">.</span>
<span class="nt">gitlab</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">48445</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">NS</span><span class="w"> </span><span class="nt">ns-1697</span><span class="p">.</span><span class="nc">awsdns-20</span><span class="p">.</span><span class="nc">co</span><span class="p">.</span><span class="nc">uk</span><span class="o">.</span>
<span class="nt">gitlab</span><span class="p">.</span><span class="nc">io</span><span class="o">.</span><span class="w"> </span><span class="nt">48445</span><span class="w"> </span><span class="nt">IN</span><span class="w"> </span><span class="nt">NS</span><span class="w"> </span><span class="nt">ns-288</span><span class="p">.</span><span class="nc">awsdns-36</span><span class="p">.</span><span class="nc">com</span><span class="o">.</span>
<span class="o">...</span>
</code></pre></div>
<h4 id="domain">domain<a class="headerlink" href="#domain" title="Permanent link">¶</a></h4>
<blockquote>
<p>首先操作就撞到神奇形象</p>
</blockquote>
<p><img alt="DNSPod 升级?" src="_images/SSL-dnspod-acord-error.png"/></p>
<p><img alt="DNSPod 冲突" src="_images/SSL-dnspod-cname-error.png"/></p>
<blockquote>
<p>不得以, 迁移回 neamcheap 来配置, 顺畅完成:</p>
</blockquote>
<p><img alt="neamcheap 可配" src="_images/SSL-namecheap-acords.png"/></p>
<ul>
<li>当然, 这波配置, 看错文档, 配置成 github 解析主机了</li>
<li>但是, 证明 DNSPod 完全不可用了...</li>
</ul>
<h4 id="pages">pages<a class="headerlink" href="#pages" title="Permanent link">¶</a></h4>
<blockquote>
<p>配置证书前, 得先生成, gitlab 不象 github 为用户自动生成, 得自行嗯哼</p>
</blockquote>
<ul>
<li>先安装 <a href="https://certbot.eff.org/">Certbot</a></li>
<li><a href="https://letsencrypt.org/">Let's Encrypt</a> 官方推出的证书生成工具</li>
</ul>
<blockquote>
<p>brew install certbot</p>
</blockquote>
<p>然后手工给对应域名生成密匙对:</p>
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>sudo<span class="w"> </span>certbot<span class="w"> </span>certonly<span class="w"> </span>-a<span class="w"> </span>manual<span class="w"> </span>-d<span class="w"> </span><span class="m">101</span>.camp<span class="w"> </span>--email<span class="w"> </span>zoom.quiet@gmail.com
</code></pre></div>
<ul>
<li>注意, 这里 <code>-d</code> 参数可以叠加</li>
<li>不过, 毎生成一个, 必须同时完成自证检验,才能继续</li>
<li>否则, 等于放弃当前生成的密匙</li>
</ul>
<blockquote>
<p>即, 蔱根据提示完成:</p>
</blockquote>
<hr/>
<div class="highlight"><pre><span></span><code>Create a file containing just this data:
iIpSoAbePD ... 1tTDSskcHQFs
And make it available on your web server at this URL:
http://101.camp/.well-known/acme-challenge/iIpSoAbePDhDmGwPUDfER-Czl_bxduu2Cp6qE-IxjLI
<span class="k">-</span> - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
</code></pre></div>
<p>此时, 千万别按回车:</p>
<ul>
<li>得回到仓库中</li>
<li>构建 <code>.well-known/acme-challenge/iIpSoAbePDhDmGwPUDfER-Czl_bxduu2Cp6qE-IxjLI</code> 目录</li>
<li>并在其中构建 <code>index.html</code> 文件</li>
<li>文件内容就那一行提供的用来检验的数据</li>
<li>当然, 对于 gl-pages 网站</li>
<li>只是手工建立目录和文件, 复制进入数据</li>
<li>再 <code>git push</code> 就好</li>
<li>只是, 按回车前, 一定要先<ul>
<li>访问那个 URI</li>
<li>看一眼, 是否可以获得对应数据</li>
</ul>
</li>
</ul>
<blockquote>
<p>按下回车</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="nx">Waiting</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">verification</span><span class="o">...</span>
<span class="nx">Cleaning</span><span class="w"> </span><span class="nx">up</span><span class="w"> </span><span class="nx">challenges</span>
<span class="nx">IMPORTANT</span><span class="w"> </span><span class="nx">NOTES</span><span class="p">:</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">Congratulations</span><span class="p">!</span><span class="w"> </span><span class="nx">Your</span><span class="w"> </span><span class="nx">certificate</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="nx">chain</span><span class="w"> </span><span class="nx">have</span><span class="w"> </span><span class="nx">been</span><span class="w"> </span><span class="nx">saved</span><span class="w"> </span><span class="nx">at</span><span class="p">:</span>
<span class="w"> </span><span class="o">/</span><span class="nx">etc</span><span class="o">/</span><span class="nx">letsencrypt</span><span class="o">/</span><span class="nx">live</span><span class="o">/</span><span class="mi">101</span><span class="p">.</span><span class="nx">camp</span><span class="o">/</span><span class="nx">fullchain</span><span class="p">.</span><span class="nx">pem</span>
<span class="w"> </span><span class="nx">Your</span><span class="w"> </span><span class="nx">key</span><span class="w"> </span><span class="nx">file</span><span class="w"> </span><span class="nx">has</span><span class="w"> </span><span class="nx">been</span><span class="w"> </span><span class="nx">saved</span><span class="w"> </span><span class="nx">at</span><span class="p">:</span>
<span class="w"> </span><span class="o">/</span><span class="nx">etc</span><span class="o">/</span><span class="nx">letsencrypt</span><span class="o">/</span><span class="nx">live</span><span class="o">/</span><span class="mi">101</span><span class="p">.</span><span class="nx">camp</span><span class="o">/</span><span class="nx">privkey</span><span class="p">.</span><span class="nx">pem</span>
<span class="w"> </span><span class="nx">Your</span><span class="w"> </span><span class="nx">cert</span><span class="w"> </span><span class="nx">will</span><span class="w"> </span><span class="nx">expire</span><span class="w"> </span><span class="nx">on</span><span class="w"> </span><span class="mi">2019</span><span class="o">-</span><span class="mi">04</span><span class="o">-</span><span class="mi">23</span><span class="p">.</span><span class="w"> </span><span class="nx">To</span><span class="w"> </span><span class="nx">obtain</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="nx">new</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="nx">tweaked</span>
<span class="w"> </span><span class="nx">version</span><span class="w"> </span><span class="nx">of</span><span class="w"> </span><span class="nx">this</span><span class="w"> </span><span class="nx">certificate</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="nx">the</span><span class="w"> </span><span class="nx">future</span><span class="p">,</span><span class="w"> </span><span class="nx">simply</span><span class="w"> </span><span class="nx">run</span><span class="w"> </span><span class="nx">certbot</span>
<span class="w"> </span><span class="nx">again</span><span class="p">.</span><span class="w"> </span><span class="nx">To</span><span class="w"> </span><span class="nx">non</span><span class="o">-</span><span class="nx">interactively</span><span class="w"> </span><span class="nx">renew</span><span class="w"> </span><span class="o">*</span><span class="nx">all</span><span class="o">*</span><span class="w"> </span><span class="nx">of</span><span class="w"> </span><span class="nx">your</span><span class="w"> </span><span class="nx">certificates</span><span class="p">,</span><span class="w"> </span><span class="nx">run</span>
<span class="w"> </span><span class="s">"certbot renew"</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">If</span><span class="w"> </span><span class="nx">you</span><span class="w"> </span><span class="k">like</span><span class="w"> </span><span class="nx">Certbot</span><span class="p">,</span><span class="w"> </span><span class="nx">please</span><span class="w"> </span><span class="nx">consider</span><span class="w"> </span><span class="nx">supporting</span><span class="w"> </span><span class="nx">our</span><span class="w"> </span><span class="nx">work</span><span class="w"> </span><span class="nx">by</span><span class="p">:</span>
<span class="w"> </span><span class="nx">Donating</span><span class="w"> </span><span class="nx">to</span><span class="w"> </span><span class="nx">ISRG</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="nx">Let</span><span class="err">'</span><span class="nx">s</span><span class="w"> </span><span class="nx">Encrypt</span><span class="p">:</span><span class="w"> </span><span class="nx">https</span><span class="p">:</span><span class="c1">//letsencrypt.org/donate</span>
<span class="w"> </span><span class="nx">Donating</span><span class="w"> </span><span class="nx">to</span><span class="w"> </span><span class="nx">EFF</span><span class="p">:</span><span class="w"> </span><span class="nx">https</span><span class="p">:</span><span class="c1">//eff.org/donate-le</span>
</code></pre></div>
<p>嗯哼, 好了, 出现以上类似信息</p>
<ul>
<li>说明, 已经在官方注册好并检验通过私人证书了</li>
<li>不过, 这种证书只有 4个月 寿命</li>
<li>到时得运行 <code>certbot renew</code> 一下</li>
</ul>
<p>接下来正常重新配置一下 gl-pages 中的域名</p>
<p><img alt="gl 强制嗯哼" src="_images/SSL-gl-pages-ssl.png"/></p>
<blockquote>
<p>打开 HTTPS 开关</p>
</blockquote>
<p><img alt="gl 域名上证" src="_images/SSL-gl-pages-redomain.png"/></p>
<blockquote>
<p>根据提示, 从本地 <code>letsencrypt</code> 证书目录中复制出有关嗯哼就好</p>
</blockquote>
<ul>
<li>当然, 别忘记重新在域名解析商, 配置新的 <code>TXT</code> 字串</li>
</ul>
<h4 id="waitting">waitting<a class="headerlink" href="#waitting" title="Permanent link">¶</a></h4>
<p>首先..</p>
<p><img alt="证件无效" src="_images/SSL-chrome-chk-CA-not.png"/></p>
<p>然后可以看到:</p>
<p><img alt="检验通过" src="_images/SSL-CAX3-ok.png"/></p>
<p>接着...</p>
<p><img alt="还未安全" src="_images/SSL-chrome-chk-CA-ok.png"/></p>
<p>最后...</p>
<p><img alt="部分安全" src="_images/SSL-chrome-chk-info.png"/></p>
<p>这是因为有的图片/css/js 资源, 还是用 hhtp 引用的, 得升级:</p>
<p><img alt="iPic" src="_images/ipic-http.png"/></p>
<p>俺采购的工具, 才发现主要图床还是 http 的</p>
<p>追查文档:</p>
<p><img alt="7牛有关页面" src="_images/SSL-7niu-cdn.png"/></p>
<blockquote>
<p>对比隔壁 ...</p>
</blockquote>
<p><img alt="UPYUN 有关页面" src="_images/SSL-upyun-https.png"/></p>
<p>嚓, 这不很明显, 只能选择后者了...</p>
<ul>
<li>当然, 又引发了欠费等等额外处置事务</li>
<li>那就是另外的故事了</li>
<li>但是, 反正可以先直接用 gl-pages 空间嘛<ul>
<li>已经 HHTPS 光辉笼罩下的资源渠道...</li>
</ul>
</li>
</ul>
<p><img alt="一切安全" src="_images/SSL-chrome-chk-good.png"/></p>
<p>终于...收功</p>
<h2 id="ipic">iPic<a class="headerlink" href="#ipic" title="Permanent link">¶</a></h2>
<blockquote>
<p>是的, mac 下 docker 工具中最接地气的了</p>
</blockquote>
<p>在和有关人士沟通后, 人工通过了俺单域名免费 SSL 的订单,
然后发现和对应 bucket 的配合是这样的:</p>
<ul>
<li>首先,在 SSL 采购界面中,点击 <code>补全</code></li>
</ul>
<p><img alt="补全" src="https://ipic.zoomquiet.top/2019-02-13-%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202019-02-13%2016.19.48.png"/></p>
<ul>
<li>然后才有域名绑定界面出现, 当然的要求先备案</li>
</ul>
<p><img alt="SSL 配置" src="https://ipic.zoomquiet.top/2019-02-13-%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202019-02-13%2016.32.44.png"/></p>
<ul>
<li>再回到对应云存储控制界面中, 再次绑定域名</li>
<li>最后,参考: <a href="https://help.upyun.com/knowledge-base/cdn-https/">如何进行 HTTPS 配置? – 又拍云-文档帮助中心</a><ul>
<li>还得 <code>服务管理 > 功能配置 > HTTPS</code>, 点击 <code>管理</code> 才能真正打开 HTTPS</li>
</ul>
</li>
</ul>
<p><img alt="管理" src="https://ipic.zoomquiet.top/2019-02-13-%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202019-02-13%2017.17.32.png"/></p>
<ul>
<li>这样就完成了隐藏的云端 SSL 密匙部署, 以及空间域名绑定过程</li>
<li>是的, 以上3张图片都是 <code>HTTPS</code> 持证资源了</li>
</ul>
<h2 id="summary">summary<a class="headerlink" href="#summary" title="Permanent link">¶</a></h2>
<ul>
<li>DNSPod 依然是感觉最舒服的 DNS 管理界面, 可惜彻底被放弃了, 能迁走就迁吧...<ul>
<li>而且功能已经落后</li>
</ul>
</li>
</ul>
<p><img alt="报警" src="_images/ssl-dnspod-err.png"/></p>
<ul>
<li>gitlab 比 github 要 hardcore 很多<ul>
<li>但是, 乐趣也更多也</li>
</ul>
</li>
<li>嫑怕嫑怕嫑怕<ul>
<li>官方文档, 总是最合理的</li>
<li>一定要安心静静读一遍, 比查找多少中文说明都好用</li>
<li>所以, 俺这篇, 也纯粹是私人 BDD, 包含一些隐坑, 不好意思提了<ul>
<li>就渴望您也撞到</li>
<li>好一起呵呵...</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="refer">refer<a class="headerlink" href="#refer" title="Permanent link">¶</a></h2>
<ul>
<li><a href="https://yixuan.li/geek/2019/01/21/howToDriveWithHTTPS/">如何持证 (HTTPS) 开车 · Yixuan</a><ul>
<li><a href="https://help.github.com/articles/troubleshooting-custom-domains/">GitHub Pages HTTPS 设置 | 查错指南</a></li>
<li><a href="https://help.github.com/articles/securing-your-github-pages-site-with-https/">如何给你的 GitHub Pages 加上 HTTPS 证书</a></li>
<li><a href="https://help.github.com/articles/using-a-custom-domain-with-github-pages/">Using a custom domain with GitHub Pages - User Documentation</a><ul>
<li><a href="https://help.github.com/articles/setting-up-a-custom-subdomain/">Setting up a custom subdomain - User Documentation</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="https://gitlab.com/help/user/project/pages/lets_encrypt_for_gitlab_pages.md">Lets encrypt for gitlab pages · Pages · Project · User · Help · GitLab</a><ul>
<li><a href="https://github.com/rolodato/gitlab-letsencrypt">rolodato/gitlab-letsencrypt: Easily generate a Let's Encrypt certificate for GitLab Pages</a></li>
<li><a href="https://gitlab.com/help/user/project/pages/getting_started_part_three.md#dns-records">Getting started part three · Pages · Project · User · Help · GitLab</a></li>
<li>...</li>
</ul>
</li>
<li><a href="https://www.namecheap.com/support/knowledgebase/article.aspx/9175/83/how-to-transfer-a-domain">How to Transfer a Domain - Domain Transfers -Namecheap</a><ul>
<li><a href="https://www.namecheap.com/support/knowledgebase/article.aspx/255/83/how-do-i-transfer-my-existing-domain-to-namecheap">How do I transfer my existing domain to Namecheap? - Domain Transfers</a></li>
<li><a href="https://www.namecheap.com/support/knowledgebase/article.aspx/9798/83/how-do-i-verify-that-my-domain-is-eligible-for-transfer">How do I verify that my domain is eligible for transfer? - Domain Transfers</a></li>
<li><a href="https://help.iwantmyname.com/customer/portal/articles/184477-how-do-i-transfer-a-domain-to-another-registrar-">iwantmyname | How do I transfer a domain to another re...</a></li>
<li><a href="https://help.iwantmyname.com/customer/portal/topics/83858-domain-transfer">iwantmyname | Domain Transfer</a></li>
<li>...</li>
</ul>
</li>
</ul>
<h2 id="sayeahooo">Sayeahooo<a class="headerlink" href="#sayeahooo" title="Permanent link">¶</a></h2>
<ul>
<li>1.5h 资料搜索理解</li>
<li>2d gitlab 尝试/生效</li>
<li>4h github 嗯哼<ul>
<li>3.5h 域名迁移尝试</li>
</ul>
</li>
<li>2h 截屏,文档嗯哼...</li>
<li>190213 2h 沟通以及尝试<ul>
<li>iPic 获得一个稳定 HTTPS 入口</li>
</ul>
</li>
</ul>L10E01🐙/ 红黄蓝~虐童战纪2018-05-01T20:42:00+08:002020-07-19T12:26:00+08:00ZoomQuiettag:blog.zoomquiet.io,2018-05-01:/180501-L10E01-ryb-wars.html<h1 id="l10e01">L10E01🐙红黄蓝 ~ 虐童战纪<a class="headerlink" href="#l10e01" title="Permanent link">¶</a></h1>
<blockquote>
<p>背景
~ 阐述 记录/问题/事件/... 发生的背景</p>
<p>10万字写书计划活动</p>
</blockquote>
<ul>
<li>大纲要求:请包含【标题】、【副标题】、【目录】三部分内容,题材不限</li>
<li>提交日 …</li></ul><h1 id="l10e01">L10E01🐙红黄蓝 ~ 虐童战纪<a class="headerlink" href="#l10e01" title="Permanent link">¶</a></h1>
<blockquote>
<p>背景
~ 阐述 记录/问题/事件/... 发生的背景</p>
<p>10万字写书计划活动</p>
</blockquote>
<ul>
<li>大纲要求:请包含【标题】、【副标题】、【目录】三部分内容,题材不限</li>
<li>提交日期:12月8日晚23:00之前</li>
<li>提交形式:完成后请投稿简书专题“好中文的样子”http://www.jianshu.com/c/6c9915be5f2c</li>
<li>投稿要求:请在文末注明“L01E01”</li>
</ul>
<blockquote>
<p>@323-水天衣-青岛 这两天红黄蓝幼儿园的事情不是挺火的吗?我脑中冒出个想法,能不能写一个故事,这些孩子在童年遭遇了这样的事情,但是却因为政府不作为事情不了了之,他们在成长过程中却承担了各种压力和异样的眼光,然后他们的性格扭曲了,复仇成为了她们生存下去的目标,是的,故事就是她们的复仇故事</p>
</blockquote>
<p>是也乎 ╮(╯╰)╭</p>
<div class="highlight"><pre><span></span><code>必须有啊
刚好红黄蓝三部曲
每部都比前一部多十万字…
</code></pre></div>
<blockquote>
<p>所以, 仅仅作为创新梗概</p>
</blockquote>
<h1 id="_1">标题:红黄蓝<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<h2 id="_2">副标: ~ 虐童战纪<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<h3 id="_3">目录/纲要<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
<h4 id="_4">红<a class="headerlink" href="#_4" title="Permanent link">¶</a></h4>
<p>~是个男孩</p>
<ul>
<li>军队:…选择最直接的复仇~加入军队</li>
<li>~修炼军事技能…<ul>
<li>汽车兵开始</li>
<li>因为能烧菜</li>
<li>历经连/团/旅厨师长</li>
<li>通过师长保送入军校研发战地全地形炊事车</li>
<li>自学各种金属加工技能以及作战技巧</li>
</ul>
</li>
<li>退役后…用手造狙击步枪<ul>
<li>隐藏的炮钢</li>
<li>慢慢手工镗出枪管</li>
<li>使用手工制造的箭形弹</li>
<li>通过滑膛方式发射</li>
<li>电击发液体发射药</li>
<li>整体系统根本不象步枪</li>
<li>好似一种工程测试仪器</li>
<li>经过4年努力, 在张家界深处完成最终调节</li>
<li>射程3700米, 可以洞穿两层砖墙</li>
<li>拆解后, 可以通过机场的安检</li>
<li>只有发射药必须事先用避孕套包好吞入胃中夹带...</li>
</ul>
</li>
<li>逐一点杀当年涉及虐待幼童的<code>叔叔</code>…<ul>
<li>每个月一次</li>
<li>非常规律</li>
</ul>
</li>
<li>最终被相似经历的小伙伴出卖惨死<ul>
<li>叔叔们的名单/行程</li>
<li>都是过往小伙伴们提供的</li>
<li>但是,当年已经是高官的现在更难追踪</li>
<li>终于冒着暴露的危险,联系上一位有内部消息的伙伴</li>
<li>不料...</li>
</ul>
</li>
<li>…身后也只是个枪匪<ul>
<li>但是, 手造的滑膛狙击枪, 最后列装解放军特种部队</li>
<li>通过无人机发射侦查弹...多年后一次误发射,终于击杀了当初没有杀死的那一名<code>叔叔</code></li>
</ul>
</li>
</ul>
<h4 id="_5">黄<a class="headerlink" href="#_5" title="Permanent link">¶</a></h4>
<p>~就是出卖红的帅哥</p>
<ul>
<li>~他选择了打入敌人内部的策略</li>
<li>…忍耐着各种非人的磨难</li>
<li>…从当年令自已肛裂的叔叔身边</li>
<li>…一张张床爬上去<ul>
<li>男女都要服侍好</li>
<li>还得忍受各种变态的要求</li>
<li>对得起良心的只有在送幼童时给予足够的致幻剂, 以免留下清晰的记忆</li>
<li>并自学摧眠术,义务为幼童们关闭记忆</li>
<li>...</li>
</ul>
</li>
<li>~终于发现整个 <code>关系网</code> 大致全礼貌时</li>
<li>意识到其真正的可怕…最后绝望<ul>
<li>~虐杀了当年的叔叔后…</li>
<li>静静的自杀~</li>
<li>在当年幼儿园原址的地下</li>
<li>自杀前将收集的资料传给了蓝</li>
</ul>
</li>
</ul>
<h4 id="_6">蓝<a class="headerlink" href="#_6" title="Permanent link">¶</a></h4>
<p>~是其中最漂亮的女孩子</p>
<ul>
<li>因为多次阴道撕裂导致阴蒂受损…实质上被实施割礼…</li>
<li>由于这一变故…<ul>
<li>蓝远走法国…</li>
<li>经过卓绝的努力</li>
<li>逐步积累各种能力</li>
<li>终于,成为一名超模…</li>
</ul>
</li>
<li>才发现几乎所有超模幼儿时都有类似受虐经历…</li>
<li>于是在聚光灯下巧妙的利用时装周<ul>
<li>创建了 <code>灭虐营</code> 地下组织…</li>
<li>逐步推动各国立法阉割恋童癖…</li>
</ul>
</li>
<li>并暗地资助两伊逃亡的女生进行军事训教…<ul>
<li>夺回 isis 统治的家乡…</li>
<li>独立为自治州…</li>
<li>作为秘密处决恋童癖名人的基地~</li>
<li>在收到 <code>黄</code> 的资料时</li>
<li>已经处决了 420 名有案可查的各国政要</li>
<li>唯一没有触及的国家就是天朝</li>
</ul>
</li>
<li>最终…发现自己已经变成<ul>
<li>只有虐杀小女孩才能有快感时…</li>
<li>蓝选择了公开一切…</li>
<li>并在直播现场~<ul>
<li>在十万观众…</li>
<li>二亿网络直播观众面前自杀…</li>
</ul>
</li>
</ul>
</li>
</ul>
<blockquote>
<p>C'est la vie (´-ι_-`)</p>
</blockquote>
<h4 id="_7">白<a class="headerlink" href="#_7" title="Permanent link">¶</a></h4>
<p>~ 当年所有被虐幼童中有一对高智商双胞胎, 白是姐姐</p>
<ul>
<li>出事后, 家庭破裂,白跟了妈妈</li>
<li>远走美国, 改嫁后,入藉,爆发学霸气质</li>
<li>一直跳级,短短20年, 就成为最年轻的终身教授</li>
<li>供职一个私募基金,进行投资分析</li>
<li>私下却是很早就成名的 骇客: <code>白光</code><ul>
<li>擅长入侵各种公共监视系统</li>
<li>用5年开发成一个 AI</li>
<li>利用 暗网 的资源</li>
<li>开始长年自动收集所有虐童证据</li>
<li>分析整理后的名单和证据都分散备份在全球互联网中</li>
<li>特别是:<ul>
<li>卫星的备用系统恢复记忆体尾部</li>
<li>所有汽车行车记录仪的系统盘隐藏空间</li>
<li>必须通过区块链交易形式的全网认证才能取到</li>
</ul>
</li>
</ul>
</li>
<li>但是, 一直不敢, 也不知道能将证据提供给谁<ul>
<li>曾经尝试通过香港一个民运组织发起诉讼</li>
<li>结果没出4天, 整个组织就消失了</li>
<li>半年后, 从暗网获得了那个组织其中一个主要领导在非洲钻石矿出意外死亡的录像</li>
<li><code>白</code> 知道这个世界的恶意是多么的宏大</li>
<li>开始另一项更加隐密的对抗... </li>
</ul>
</li>
<li>终于有一天发现了 <code>黑</code></li>
</ul>
<h4 id="_8">黑<a class="headerlink" href="#_8" title="Permanent link">¶</a></h4>
<p>~ 白是双胞龙凤胎弟弟</p>
<ul>
<li>出事后, 家庭破裂,白跟了爸爸</li>
<li>也出国, 只是到了巴西, 在日本自治洲</li>
<li>入藉后, 爆发学霸气势</li>
<li>在生物遗传领域展现出异常的能力<ul>
<li>初中自然课的独立作品就是通过共生系统的设计</li>
<li>令原先不发光的一种水母</li>
<li>结合一种发光的海藻</li>
<li>形成互利的全部生物组织</li>
</ul>
</li>
<li>被日本在巴西的最大制药厂吸收, 21岁时,成为独立实验室负责人<ul>
<li>从而接触到 731 部队真正的遗产</li>
<li>可行的人体活体基因注入技术</li>
</ul>
</li>
<li>在进行厂方的产品研发期间<ul>
<li><code>黑</code> 私下进行的研发是活体应激式生物毒素施放</li>
<li>希望可以找到一种基因开关</li>
<li>可以令14岁之前的幼童具有天然的毒素合成能力</li>
<li>仅当生殖器官受到意外损害时...</li>
</ul>
</li>
<li>可惜这个思路怎么也无法突破<ul>
<li>因为一但生殖器官有施毒能力,将是终身有效</li>
<li>终于有天见到壁虎断尾才想通<ul>
<li>令一对卵巢或是睾丸具有施毒能力</li>
<li>成年后自身死亡就好</li>
</ul>
</li>
<li>但是, 这种改造属于一种生物器官强化,难以变成可遗传的自然能力</li>
</ul>
</li>
<li>通过 <code>蓝</code> 的事迹, <code>黑</code> 才发现有GAAC(全球反虐童组织)的存在<ul>
<li>多方调查后</li>
<li>无意间发现了自己的姐姐</li>
</ul>
</li>
</ul>
<blockquote>
<p>于是....</p>
</blockquote>
<h2 id="_9">变更<a class="headerlink" href="#_9" title="Permanent link">¶</a></h2>
<p>~ 记录合并学员建议/增补的主要变动信息</p>
<ul>
<li>171125 微信群中激发而成</li>
</ul>内圈梗集锦(人工智能简史)书评2018-02-20T16:42:24+08:002020-01-31T16:42:10+08:00Zoom.Quiettag:blog.zoomquiet.io,2018-02-20:/180220-book-ai-historic.html
<p>版权归作者所有,任何形式转载请联系作者. </p>
<div class="highlight"><pre><span></span><code><span class="err">作者</span><span class="o">:</span><span class="n">Zoom</span><span class="o">.</span><span class="na">Quiet</span><span class="o">(</span><span class="err">来自豆瓣</span><span class="o">)</span>
<span class="err">来源</span><span class="o">:</span><span class="n">https</span><span class="o">://</span><span class="n">book</span><span class="o">.</span><span class="na">douban</span><span class="o">.</span><span class="na">com</span><span class="sr">/review/9167418/</span>
</code></pre></div>
<p>是也乎,( ̄▽ ̄)</p>
<p>现在技术类图书有一种不好的 …</p>
<p>版权归作者所有,任何形式转载请联系作者. </p>
<div class="highlight"><pre><span></span><code><span class="err">作者</span><span class="o">:</span><span class="n">Zoom</span><span class="o">.</span><span class="na">Quiet</span><span class="o">(</span><span class="err">来自豆瓣</span><span class="o">)</span>
<span class="err">来源</span><span class="o">:</span><span class="n">https</span><span class="o">://</span><span class="n">book</span><span class="o">.</span><span class="na">douban</span><span class="o">.</span><span class="na">com</span><span class="sr">/review/9167418/</span>
</code></pre></div>
<p>是也乎,( ̄▽ ̄)</p>
<p>现在技术类图书有一种不好的倾向:</p>
<div class="highlight"><pre><span></span><code>书名有简史的
总是比通史要难写
但是有趣也有用的多
关键特别有种 ;-)
</code></pre></div>
<p>以往从信息简史开始到人类/未来等诸简史, 其实都有点以史预言将来的意思,</p>
<p>AI 简史, 反而专注陈述过去,</p>
<p>全书少了一个关键内容:</p>
<div class="highlight"><pre><span></span><code>AI历史进展中
各种路线的时间线
和关键人物/作品/理论
的关系图谱
</code></pre></div>
<p>另外,和其它技术图书类似(是的,类似流畅的 Python 之类技术人员自己写的图书);
书中各种小扣儿比正文有趣的多,
只是, 作者是海外华人, 用的都是中文中精彩的梗, 目测难以翻译为英文挣些更大的名望.</p>
<p>作者, 明显是业内人士, 从参考文献列表就可以看出,
俺看过,这么多技术类图书, 也就暗时间, 能比肩了,
基本上这本不到300页的小书, 涉及的参考图书数量是俺看过的所有大陆华人写的技术图书参考图书的总合还多...</p>
<p>当然, 看下来还是很爽利的,
特别是最后一章最后一节, 是作者的巅峰之作, 也是全书的精华,
另外, 作者原创的图灵小传也值得反复嗯哼...</p>
<p>简单的说, 这是一部用49城侃大山的精神结构来回顾AI 这一领域发展过程的仙书.</p>
<p>对于准备或是从事 AI 开发工作的程序猿来说,
最大的功能就是知道自己袓师爷们的关系,
以及知道想深入下去, 应该补什么书了. </p>
<p>~ <a href="https://book.douban.com/review/9167418/">内圈梗集锦(人工智能简史)书评</a></p>L10E01🐙/ GPL2018-02-04T20:42:00+08:002020-07-19T12:38:43+08:00ZoomQuiettag:blog.zoomquiet.io,2018-02-04:/180204-L10E01GPL.html<h1 id="l10e01gpl">L10E01🐙GPL<a class="headerlink" href="#l10e01gpl" title="Permanent link">¶</a></h1>
<blockquote>
<p>没经过小组和合的私人版本...</p>
</blockquote>
<p>原文:<a href="http://www.gnu.org/licenses/old-licenses/gpl-1.0.html">GNU General Public License v1.0 - GNU Project - Free Software Foundation</a></p>
<p>为什么推荐这篇英文许可证文本?</p>
<p>因为, 这篇小文, 不到百 …</p><h1 id="l10e01gpl">L10E01🐙GPL<a class="headerlink" href="#l10e01gpl" title="Permanent link">¶</a></h1>
<blockquote>
<p>没经过小组和合的私人版本...</p>
</blockquote>
<p>原文:<a href="http://www.gnu.org/licenses/old-licenses/gpl-1.0.html">GNU General Public License v1.0 - GNU Project - Free Software Foundation</a></p>
<p>为什么推荐这篇英文许可证文本?</p>
<p>因为, 这篇小文, 不到百行,且每行不超过 80 字符,
却开启了人类至今可能是最大规模的思想风潮,
因之衍生的文章/组织/工程/代码/产品/...越来越多,
自 1989 年发布以来, 仅升级过3个版本,可见其初始版本多强大, 无须与日俱进.</p>
<blockquote>
<p>License ~ 许可证, 其实就是版权声明书, 用来规约智力作品使用权益.</p>
</blockquote>
<p>但是, GPL (GNU 通用公共许可证)却用软件许可证这一法律形式,
突破软件使用许可限制, 宣告软件可以回归自由 ;-)</p>
<p>甚至于, GNU 这个代号, 也充满了这种自反迭代的韵味:</p>
<ul>
<li>GPL 作为自由软件运动檄文, 由 GNU 社区发布, 目标是创建独立又兼容 UNIX 的计算机操作系统<ul>
<li>所以, GNU 的含义是:<code>GNU is Not UNIX</code></li>
<li>等等又出现了一个应该解释的 GNU ...</li>
</ul>
</li>
<li>而 gnu 小写时,指非洲持有的生物~牛羚<ul>
<li>一种长的象牛的羊,</li>
<li>所以 GNU 社区标准形象就是一头睿智的牛羚 ;-)</li>
</ul>
</li>
</ul>
<p>以上只是 GPL 产生背景,其行文气势非凡, 仅两部分:</p>
<ul>
<li>前言</li>
<li>条款</li>
</ul>
<p>然而, 在前言之前, 当头一炮, 就其实已完成目标宣告:</p>
<blockquote>
<p>Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.</p>
<p>任何人都可以复制和分发这个许可证文件的逐字副本,但改变它是不允许的.</p>
</blockquote>
<p>为什么呢? </p>
<p>在前言, 简洁有力的揭示了计算机软件当前状态,
以及软件原本应有的形态, 并给出了解决方案,</p>
<blockquote>
<p>大多数软件许可证决意剥夺你的共享和修改软件的自由.
对比之下, GNU通用公共许可证, 即 GPL 力图保证共享和修改自由软件的自由. </p>
</blockquote>
<p>就地给出了简洁可行的条款, 以此来确保软件应该具有的四项基本自由:</p>
<ul>
<li>不论目的为何,有运行该软件的自由(自由之零)</li>
<li>有研究该软件如何运行,以及按需改写该软件的自由(自由之一). 取得该软件源代码为达成此目的之前提.</li>
<li>有重新发布拷贝的自由,这样你可以借此来敦亲睦邻(自由之二). </li>
<li>有改进该软件,以及向公众发布改进的自由,这样整个社群都可受惠(自由之三). 取得该软件源码为达成此目的之前提. </li>
</ul>
<p>遥想 RMS 当年, 起初一直能自在的使用/修订/传播/改进软件以便令世界更加美好,
突然间软件许可证被发明出来,
导致伙伴们逐一被关到各种软件公司中去秘密编造软件,
而发布出来的软件并没有变的更加优良, 反而,即使有能力知道哪儿有问题, 也无从修改.</p>
<p>以他的技术水平, 进入任何一家公司, 瞬间就能财务自由,
但是, 他坚信, 软件自由比财务自由更重要, 涉及人类褔祉,</p>
<p>进而立志改善, 经过孤独的思辩,机智的选择软件许可证基于的版权法,
运用相同的形式, 但完全相反的权益声明,合法发布为 GPL.</p>
<p>从此, 人类的智慧, 在软件这一领域, 有了另外的选择,
在各种软件公司围追堵截中, 自由软件却也没有停止过增长.</p>
<p>是的, 当前无论通过手机还是平板或是桌面阅读到这些文字过程中,
就有无数自由软件在默默工作着, 事实上整个互联网就是主要由自由软件构造起来的.</p>
<p>而这一切的开始, 就是 GPL 这短短不到百行的简洁文本.</p>L06E01🐙/ Анна Каренина2018-01-04T20:42:00+08:002020-07-19T12:38:26+08:00ZoomQuiettag:blog.zoomquiet.io,2018-01-04:/180104-L06E01Анна-Каренина.html<h1 id="l06e01">L06E01🐙Анна Каренина<a class="headerlink" href="#l06e01" title="Permanent link">¶</a></h1>
<p>~ 安娜·卡列尼娜 | Anna Karenina</p>
<blockquote>
<p>幸福的家庭有同样的幸福,而不幸的家庭则各有各的不幸。</p>
</blockquote>
<p>作为名著, Anna 的地位无可质疑,
但是, 也 …</p><h1 id="l06e01">L06E01🐙Анна Каренина<a class="headerlink" href="#l06e01" title="Permanent link">¶</a></h1>
<p>~ 安娜·卡列尼娜 | Anna Karenina</p>
<blockquote>
<p>幸福的家庭有同样的幸福,而不幸的家庭则各有各的不幸。</p>
</blockquote>
<p>作为名著, Anna 的地位无可质疑,
但是, 也吻合佩哥哥指出的名著特征:</p>
<ul>
<li>名气大</li>
<li>篇幅大</li>
<li>读不下去</li>
</ul>
<p>以往尝试过, 但是, 当时武侠风行, 感情生活, 又是外国近代现实,毫无共鸣,就反复放下了,</p>
<p>但是, 现在通过课程, </p>
<ul>
<li>认同要读真正的经典, </li>
<li>同时婚姻生活也进入第9年</li>
<li>Anna 的内容应该有处感应了</li>
</ul>
<h2 id="_1">如何<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<ul>
<li>Kindle,元旦假期集中速读</li>
</ul>
<h2 id="_2">期待<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<ul>
<li>选择 81 草婴译版, 感受30年前的好中文</li>
<li>体会长篇小说的经典架构</li>
<li>人类社会生活共性的提取/观察技巧</li>
<li>对自己25年前的小说草稿, 是否能有结构改进的触发?</li>
<li>...</li>
</ul>
<h2 id="_3">回顾<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<ul>
<li>听读: <a href="http://www.ximalaya.com/33671123/album/3607582?page=2">安娜•卡列尼娜_有声小说在线收听-喜马拉雅FM</a><ul>
<li>168节, 约70+小时, 1.5倍速下载后收听</li>
<li>180101~0104 尽可能持续播放</li>
</ul>
</li>
<li>体验:<ul>
<li>AirPod 是好帮手, 可以在任何时候只戴一边来解放双手同时听</li>
<li>2倍速听不明白了</li>
<li>原速无法忍受..</li>
<li>俄国人名长到无法记忆, 但是, 演播主持连贯念出时, 可以形成一个个整体来对应</li>
</ul>
</li>
<li>内容:<ul>
<li>注意力无法长期专注所有,但华彩部分表述会入心</li>
<li>通过两个中心人物的活动,将俄国上层生活的所有切面进行了描述</li>
<li>他们吃/玩/跳舞/结婚/离异/讨论/工作/...</li>
<li>详细到发指的细节, 生活细节被合理的包含在情节中</li>
<li>不是俄语的思想, 也合理的安排在合理的场景中, <ul>
<li>对比苏联后来从上层的自发崩溃,可以跨时空的体验到:</li>
<li>精英一向如此不折腾要死</li>
</ul>
</li>
<li>双线描述, 好象一直没有什么关联<ul>
<li>但是, 却非常精巧的在各自线索中, 琐碎到一有厌烦时,就自动切换</li>
<li>同时, 在平时时空中, 几乎所有方向都是相对的一组 CP 好象在进行对比一样行事</li>
<li>组合起来, 形成一种厚度, 将作品自举了起来</li>
</ul>
</li>
</ul>
</li>
<li>反射:<ul>
<li>听书总感觉隔了一层, 故事/情节/人物能 got 到<ul>
<li>但是, 具体的 文采/文气/结构/... 就没有直接的体验了</li>
<li>因为, 阅读时, 速度/节奏/扫描是主动的,</li>
<li>而听书时, 是被动的, 有疑问时, 难以简单的精确回听</li>
</ul>
</li>
<li>因此对写作的助攻, 只有模糊的感觉</li>
<li>之于我, 可能就是一个态度:<ul>
<li>耐心<ul>
<li>任何一个有助于人物成立的细节</li>
<li>都必须耐心的积累,提炼, 精当的描述</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>L04E51🐙/ 长城简史2017-12-31T20:42:00+08:002020-07-19T12:37:58+08:00ZoomQuiettag:blog.zoomquiet.io,2017-12-31:/171231-L04E51greatwall.html<h1 id="l04e51">L04E51🐙长城简史<a class="headerlink" href="#l04e51" title="Permanent link">¶</a></h1>
<blockquote>
<p>字 -> 词 -> 象征 -> 新指</p>
</blockquote>
<h2 id="_1">长,城<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<ul>
<li>长, 久遠也. 从兀从匕.兀者,高遠意也</li>
<li>城, 以盛民也. 从土从成,成亦聲;"釋名"城,成也. 一成而不可毀 …</li></ul><h1 id="l04e51">L04E51🐙长城简史<a class="headerlink" href="#l04e51" title="Permanent link">¶</a></h1>
<blockquote>
<p>字 -> 词 -> 象征 -> 新指</p>
</blockquote>
<h2 id="_1">长,城<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<ul>
<li>长, 久遠也. 从兀从匕.兀者,高遠意也</li>
<li>城, 以盛民也. 从土从成,成亦聲;"釋名"城,成也. 一成而不可毀也. </li>
</ul>
<p>造字时, 长和城一直是分别使用的,</p>
<p>长, 长度之外,
移情用用在 <code>长久/长情</code> 之类用长度来比喻非物质的精神事物.</p>
<p>而,城则一直指代主要承担防务功能的建筑.</p>
<h2 id="_2">长城<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<p>长城是中国也是世界上修建时间最长,工程量最大的一项古代防御工程.
自秦始皇以后,凡是统治着中原地区的朝代,几乎都要修筑长城. 计有汉,晋,北魏,东魏,西魏,北齐,北周,隋,唐,宋,辽,金,元,明,清等十多个朝代,都不同规模地修筑过长城.
清康熙时期,虽然停止了大规模的长城修筑,但后来也曾在个别地方修筑了长城,可以说自春秋战国时期开始到清代的2000多年一直没有停止过修筑. 据历史文献记载,有20多个诸侯国家和封建王朝修筑过长城,若把各个时代修筑的长城加起来,有10万里以上,其中秦,汉,明三个朝代所修长城的长度都超过了1万里. </p>
<p>所以, 长城几乎是和中国的概念一起形成的,
太长时期中,长城作为国家主要常设大型工程,
日子久了, 和政治事务以及百姓的日常生活也就逐渐绑定在了一起,</p>
<p><code>长城</code> 也就变成了国家的象征.</p>
<h2 id="_3">长城长<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<blockquote>
<p>不到长城非好汉,屈指行程二万[毛泽东·清平乐·六盘山]</p>
</blockquote>
<p>长城作为中华民族的象征,在历史的进程中自然形成,并在中国人民反对帝国主义侵略的斗争中,特别是在全民族的反对日本帝国主义的侵略斗争中被世人所认同,所接受. </p>
<p>面对民族的生死存亡,象征国防和民族统一的长城自然提升为整个中华民族的象征,唤起整个民族的抗战意识. </p>
<p>1933年的长城抗战震惊中外,揭开了抗日战争史上最初的壮烈一页,
"誓与长城共存亡"成为抗日将士们的共同誓言. </p>
<p>1935年,影片 "风云儿女"主题歌 "义勇军进行曲"唱出了全体中国人民共同的心声</p>
<div class="highlight"><pre><span></span><code>起来,不愿做奴隶的人们,
把我们的血肉筑成我们新的长城
...
</code></pre></div>
<p>1937年春,影片"关山万里"的主题曲"长城谣"唱到:</p>
<div class="highlight"><pre><span></span><code>万里长城万里长,
长城外面是故乡.
高粱肥,大豆香,
遍地黄金少灾殃.
...
</code></pre></div>
<p>"义勇军进行曲"后来成为中华人民共和国国歌,人们听到或唱起总能从中感受到一种爱国激情,就是因为长城能唤起亿万中国人心灵深处的共鸣. </p>
<p>建国后 <code>长城</code> 被官方正式指定为国家/民族精神的象征,
甚至于广告法也明文规定, 不得将 <code>长城</code> 包含在商品/商标中,
可以说, <code>长城</code> 在建国后, 通过政府/文艺/教育 等等渠道和手段,
有计划, 成规模的作为一种精神象征注入到了中国人思想中.</p>
<h2 id="_4">防火长城<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<div class="highlight"><pre><span></span><code>"Across the Great Wall
we can reach every corner in the world.
"
(越过长城,走向世界)
</code></pre></div>
<p>这是1987年9月20日从北京向海外发出的中国第一封电子邮件.
标志着中国正式撞入了互联网时代.</p>
<p>此时, 长城还只是中国的代称, </p>
<p>不久之后, 中国在电子空间筑就了新的 <code>长城</code>:</p>
<ul>
<li>GFW = 防火长城</li>
<li>(英文名称Great Firewall of China,简写为Great Firewall,缩写GFW)</li>
<li>也称中国防火墙或中国国家防火墙,</li>
<li>指中华人民共和国政府在其管辖因特网内部建立的多套网络审查系统的总称,</li>
<li>包括相关行政审查系统. </li>
<li>首要设计者为北京邮电大学原校长方滨兴,<ul>
<li>被称为"国家防火墙之父"</li>
</ul>
</li>
<li>从90年代初期,中国大陆只有教育网,高能所和公用数据网3个国家级网关出口,中国政府对认为具有颠覆性质的站点进行IP封锁,这是有效的封锁手段. 随着时间的推移对于IP封锁,用普通Proxy技术就可以绕过. </li>
<li>在2002年左右,中国大陆研发了一套系统,并规定各个因特网服务提供商必须使用. 思科等公司的高级路由设备帮助中国大陆实现了关键字过滤. </li>
<li>从2007年2月前后,<code>GFW</code>开始对境外及境内的Wap网站含有的敏感字符进行过滤. </li>
<li>从2012年12月开始,有报道称中国加强了其互联网防火墙,其主要目的在于阻止用户访问政治敏感信息. </li>
</ul>
<p>此时, 长城又在电子世界中恢复了原有的定义:</p>
<ul>
<li>巨型防御工程</li>
<li>防止外敌进入的同时</li>
<li>也能有效的管理内部人民进出的行为</li>
</ul>
<p>从此, 在中国互联网中,
<code>长城</code> 附加了全新的含义:</p>
<ul>
<li>是中国数字主权的形象</li>
<li>是和中国地理疆界重合的数字边界</li>
<li>是挡在真实互联网前的宏大城墙</li>
</ul>
<p>翻越/翻墙 变成了一种科学上网的姿势, 专门指穿透 <code>GFW</code> 自由访问境外网站.</p>L03E01🐙/ 从前是现在2017-12-22T20:42:00+08:002020-07-19T12:25:21+08:00ZoomQuiettag:blog.zoomquiet.io,2017-12-22:/171222-L03E01-passisnow.html<h1 id="l03e01">L03E01🐙从前是现在<a class="headerlink" href="#l03e01" title="Permanent link">¶</a></h1>
<blockquote>
<p>一个普通人在时间中的挣扎</p>
</blockquote>
<p>试阅版本开头....</p>
<h2 id="_1">从前<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>严肃 活泼 奉献 无私</p>
<p>自打仨儿识字,每天出入家属区,
必然看 …</p><h1 id="l03e01">L03E01🐙从前是现在<a class="headerlink" href="#l03e01" title="Permanent link">¶</a></h1>
<blockquote>
<p>一个普通人在时间中的挣扎</p>
</blockquote>
<p>试阅版本开头....</p>
<h2 id="_1">从前<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>严肃 活泼 奉献 无私</p>
<p>自打仨儿识字,每天出入家属区,
必然看到这标语 —— 正好刷在楼侧面,老远就能看到.</p>
<p>今天是仨儿生日,
但是,无人准备为之庆贺,
就连仨儿自己都忘记了,
因为学校将有更严重的事情 --- <strong>约谈</strong>.</p>
<p>当然, 不是老师约学生谈 , 那早已家常便饭, 无须挂心了.
而是, 被 <code>小洪帮</code> 约谈.
这个以"心狠手辣"著称的帮派.
成员是留过级的小学生,
经已在混社会的哥哥们指点,
这些年在子弟小学的地下世界中,
俨然一统江湖.</p>
<p>但是, 仨儿已经初二了, 为什么有这种跨级别约谈呢?
仨儿内里十分纳闷.</p>
<p>傍着标语出门, 迎着另外一波口号入校,
上课, 食堂午饭,
下午一点, 上学前, 准时到校前居民楼一门洞,
小心踏入:
大约六人, 都有军队服饰, 或军带,或军帽,军裤,
都是大人尺寸改的, 套在身上, 显得身量空荡荡的大.</p>
<p>"你就是 仨儿?"</p>
<p>"我是, 什么事儿? 是我弟弟的事儿嘛?"</p>
<p>"你有个弟? 和他没事儿, 你的事儿."</p>
<p>"我的事儿? 我有什么事?"</p>
<p>"有人托我们警告你, 别太嚣张."</p>
<p>居中,最黑的那个小孩一严肃的交涉着,
仨儿人生中第一次感觉到 <code>荒谬</code> ,</p>
<p>"谁?"</p>
<p>"谁你别管了,今天按规矩得教训一下"</p>
<p>"什么规矩"</p>
<p>"要想不被教训呢, 拿5元钱,请弟兄们吃个牛肉面也成"</p>
<p>"什么? 牛肉面不就4角一碗的嘛?"</p>
<p>"兄弟们加个肉行不行哪, 你管的倒挺宽"</p>
<p>"就是, 怎么样, 你选吧"</p>
<p>"啰嗦个屁啦, 先打了再说…"</p>
<p>"听大哥的..."</p>
<p>仨儿果断扭身撞开身后最高那位社团成员,
仗着路熟, 又撞翻两辆自行车,4个围观的小朋友后,
冲回初中部顶楼图书馆,
藏到最后一排书架之后墙洞中.</p>
<p>仨儿其实并不活跃, 在同学中无论身材/学习/相貌/家世都是普通中的普通,
唯一算得上出众的, 可能就是认字早,
小学前, 就已能连蒙带猜的, 自己看大部头小说了.
所以, 学校的图书馆, 是仨儿最喜欢来的地方,
也因为经常借书, 和高年终学长担当的图书管理员们混熟了, 有时还会被塞给钥匙去代为打扫,
这样到晚自习前两个小时,
仨儿就在空无一人的学校图书馆中当上了大王,
可以任意看书, 淘书, 垒书....
才初二上学期, 图书馆不多的藏书, 仨儿已翻了快一半.</p>
<p>所以, 直觉上, 学校外那帮小流氓们, 即使冲进学校,
也不会找到图书馆最后一排通往电气维护井的墙洞.</p>
<p>只是, 仨儿不知道下午逃课严重呢,
还是出去被抓住打一顿严重.
于是, 开始蹲在洞里仔细盘算起来.</p>
<p>这时, 图书馆门忽然被冲开了:</p>
<p>"小心,小心, 这是刚刚到的新书"</p>
<p>"知道了, 知道了,我这不是来帮忙的嘛, 那一会儿, 能先借本来看的吧"</p>
<p>"不行, 还没有记录入库呢"</p>
<p>"小娟姐, 我又不是不还, 先看呗, 等你有空造册记录时, 我可能都看完了"</p>
<p>"好吧, 好吧, 你个死丫头, 每次都蹭书看, 只能拿一本啊."</p>
<p>"咦? 凡尔纳的神密岛? 一套三本呢, 我都拿了哈."</p>
<p>"别想, 只能一本,老师发现了我不好说哪."</p>
<p>"得了, 老师就是你妈, 有什么不好说的?"</p>
<p>"那还是你姨妈呢, 每次都严正交待我多看管你的..."</p>
<p>"什么叫看管, 我又不是犯人…"</p>
<p>"叮铃铃铃铃铃铃铃...."</p>
<p>"上课了,上课了,赶紧走…"</p>
<p>"一本,只能一本…"</p>
<p>叽喳喳一通乱, 安静下来后, 仨儿忽然发现自己不再担心 <code>小洪帮</code> 的事儿了.</p>
<p>对 凡尔纳的神密岛 更加有好奇了,
于是轻轻蹭出来,
悄悄到门口长桌上, 找到 神密岛 中下两册,
缩回最后一排,看了起来.</p>
<p>那一个下午, 仨儿看完了 凡尔纳的神密岛 后三分之二的内容, 无比渴望上集的内容,
同时, 也坚定的发现, 自己最喜欢什么了:</p>
<p>科幻 --- 科学幻想小说</p>
<p>这将是自己一生最爱的体裁,
当然, 仨儿这时根本无从预见, 420年后,
他和那个 <code>死丫头</code> 之间的羁绊可以跨跃人类最后的疆野....</p>
<p>晚饭, 仨儿 没回家吃, 请同学顺道回家慌称要做作业,
熬到晚自习结束, 夜里9点多, 才溜路边儿回家.
<code>小洪帮</code> 没再出现.</p>
<p>一周后, 偶然的机会, 仨儿才从消息灵通人士那儿知道原因:
有次政治课,
老师组织分析, 大学生救老农民跳粪坑溺死是否值得,
仨儿理性的分析两者对社会的贡献值,
认为不值得.</p>
<p>所以, 激怒了来自农村的一批同学,
私下约了自己的弟弟们来给仨儿一个教训.
仨儿再次感受到 <code>荒谬</code> ,无法理解这两件事儿是通过什么逻辑关联起来的,</p>
<p>不过, 仨儿的数学还可以, 也就是说逻辑推理能力是有一定水平的,
所以, 自己在内心勾勒出了一条社会定律:</p>
<p>人心难测
轻易不要发表见解
一定要说, 说大家都在说的</p>
<p>从此, 仨儿更加沉默了.</p>
<p>不过, 课外仨儿除了看书, 也有自己独有的爱好:</p>
<blockquote>
<p>义务喂鸡</p>
</blockquote>
<p>仨儿生在只有数字编号的研究所,
属于三线工程, 几乎一夜之间从上海迁移到四川重重大山间,
居民区距离四周大山不过几百米,
交通非常不便, 即使国家专门铺设了窄轨铁路,
但是, 进城至少要一整天,
所以, 除了必要的生活用品, 大家都习惯自力更生了.</p>
<p>金沙江就在厂区旁边, 鱼是不缺的,
但是, 来自浙江的家属们, 还是喜欢吃鸡,
所以, 有人从老家带来了一窝三黄鸡,
没几年和当地山鸡居然杂交出了全新品种,
不但好吃,还好养,白天放养在家属区,自己上山找食儿,
晚上会回到家属楼半地下室私建的鸡窝.</p>
<p>仨儿根据 十万个为什么 中自学到的知识:</p>
<ul>
<li>鸡是天生夜盲</li>
</ul>
<p>也自行检验过:</p>
<ul>
<li>将一只鸡赶到黑暗的楼道中</li>
<li>发现,的确立即鸡就安静了下来</li>
<li>可以轻易的抓住</li>
</ul>
<p>于是, 开始了自定的饲养计划, 找各种虫子/蚯蚓来喂那些看起来顺眼的.
久而久之, 也有鸡认识了 仨儿,
知道什么时候有零食吃.</p>
<p>特别是冬天, 野外没什么吃的,
但是, 仨儿能从高处, 各种旮旯中发现冬眠的青头苍蝇,
可以轻松的扫落, 收集起来喂鸡,
特别是小鸡非常喜欢,
喜欢到足以象训练小狗一样训练转圈什么的把戏.</p>
<p>结果, 就这样和 <code>死丫头</code> 重逢了....</p>GC4L02E05🐙/ 汉语引进的2017-12-12T20:42:00+08:002020-07-19T12:37:36+08:00ZoomQuiettag:blog.zoomquiet.io,2017-12-12:/171212-GC4L02E05chinese-imports.html<h1 id="gc4l02e05">GC4L02E05🐙汉语引进的<a class="headerlink" href="#gc4l02e05" title="Permanent link">¶</a></h1>
<p>~ 小组和合版本</p>
<p>三镁化二镧复联小队成员:</p>
<table>
<thead>
<tr>
<th style="text-align: center;">005</th>
<th style="text-align: center;">017</th>
<th style="text-align: center;">42</th>
<th style="text-align: center;">109</th>
<th style="text-align: center;">182</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;"><a href="https://github.com/BrookSongBrookSong"><img alt="BrookSongBrookSong" src="http://upload-images.jianshu.io/upload_images/27562-4ce05a7cf9dd4307?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></a></td>
<td style="text-align: center;"><a href="https://github.com/sallysong007"><img alt="sallysong007" src="http://upload-images.jianshu.io/upload_images/27562-8ad9270a170085f3?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></a></td>
<td style="text-align: center;"><img alt="是也乎" src="http://upload-images.jianshu.io/upload_images/27562-f7e665b7c4c17057?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></td>
<td style="text-align: center;"><a href="https://github.com/qingkongdy">青空</a></td>
<td style="text-align: center;"><a href="https://github.com/gcw182nico"><img alt="gcw182nico" src="http://upload-images.jianshu.io/upload_images/27562-caf6e28d0c69c552?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></a></td>
</tr>
</tbody>
</table>
<h2 id="_1">外来译词<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<blockquote>
<p>至少10个翻译词,比如"民主"</p>
</blockquote>
<ol>
<li>电脑 ~ computer</li>
<li>软件 ~ software</li>
<li>内存 ~ memory …</li></ol><h1 id="gc4l02e05">GC4L02E05🐙汉语引进的<a class="headerlink" href="#gc4l02e05" title="Permanent link">¶</a></h1>
<p>~ 小组和合版本</p>
<p>三镁化二镧复联小队成员:</p>
<table>
<thead>
<tr>
<th style="text-align: center;">005</th>
<th style="text-align: center;">017</th>
<th style="text-align: center;">42</th>
<th style="text-align: center;">109</th>
<th style="text-align: center;">182</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;"><a href="https://github.com/BrookSongBrookSong"><img alt="BrookSongBrookSong" src="http://upload-images.jianshu.io/upload_images/27562-4ce05a7cf9dd4307?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></a></td>
<td style="text-align: center;"><a href="https://github.com/sallysong007"><img alt="sallysong007" src="http://upload-images.jianshu.io/upload_images/27562-8ad9270a170085f3?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></a></td>
<td style="text-align: center;"><img alt="是也乎" src="http://upload-images.jianshu.io/upload_images/27562-f7e665b7c4c17057?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></td>
<td style="text-align: center;"><a href="https://github.com/qingkongdy">青空</a></td>
<td style="text-align: center;"><a href="https://github.com/gcw182nico"><img alt="gcw182nico" src="http://upload-images.jianshu.io/upload_images/27562-caf6e28d0c69c552?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></a></td>
</tr>
</tbody>
</table>
<h2 id="_1">外来译词<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<blockquote>
<p>至少10个翻译词,比如"民主"</p>
</blockquote>
<ol>
<li>电脑 ~ computer</li>
<li>软件 ~ software</li>
<li>内存 ~ memory</li>
<li>函数 ~ function</li>
<li>纤程 ~ fiber process</li>
<li>黑客 ~ hacker</li>
<li>卡片 ~ card</li>
<li>热狗 ~ hotdog</li>
<li>蒙太奇 ~ Montage</li>
<li>马赛克 ~ Mosaic</li>
</ol>
<h2 id="_2">外来句式<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<blockquote>
<p>至少10个翻译句式,比如"不能同意更多"</p>
</blockquote>
<ol>
<li>他在我的反应范围之外<ul>
<li>原句: the man (who gives his name to this book) was exempt from my reaction</li>
<li>句式: A be exempt from B 免除于... </li>
<li>文化: 出自"了不起的盖茨比",表示逻辑上的否定</li>
<li>同例: No one can exempt from the society. 人不能脱离社会环境之外. </li>
</ul>
</li>
<li>进行不断的,有时隐蔽有时公开的斗争<ul>
<li>原句: carried on an uninterrupted, now hidden, now open fight</li>
<li>句式: 对名词定语/形容的堆叠</li>
<li>文化: 出自"共产党宣言",名词前加多个形容词来修饰. </li>
<li>同例: Life is a never-ending,desperate struggle. 生活是一场永不终结的无望的..奋斗. </li>
</ul>
</li>
<li>菊治也不十分清楚自己为什么会与夫人陷入这种状态<ul>
<li>原句: 菊田治も,自分がなぜ夫人とこんな状態に陥るのかよく分からない. </li>
<li>句式: 陷入某种状态</li>
<li>文化: 出自"千只鹤",状态是个科学名词,描述事物处于某时期的形态; 对应的中文会直接给出最终状态描述, 而不会对<code>陷入</code>过程加以关注; </li>
<li>同例: 陷入精力耗尽的状态 fall into a state of exhaustion</li>
</ul>
</li>
<li>如此才能释放那些宝贵的劳动力,以使之能够去做别的事情<ul>
<li>原句: So as to free up that valuable labour so that it can go and do something else.</li>
<li>句式: so as to</li>
<li>文化: 由英语中引导目的状语而来. 通常为先描述做了某事,而导致后面达成的目的. </li>
<li>同例: I got up early this morning so as to catch the early train.(我今天早起床,为了能赶上早班车. )</li>
</ul>
</li>
<li>美国队长是美国最知名的超级漫画英雄之一<ul>
<li>原句: I think the Captain America is one of the most famous superhero I've ever seen.</li>
<li>句式: one of the most... 最... 之一</li>
<li>文化: 来源于英语,表达所谓的精确. 出自"翻译乃大道(从西而不化到西而化之)","最高级+名词+之一",但仔细推究,即可发现:在不圈定范围的情况下,还是没有表达出具体的精确度. 比如李白是中国最伟大的诗人之一. 那么,最伟大的诗人到底有谁?大家是否都认同?否则,"之一"的表达,并不精准. </li>
<li>同例: "哈姆雷特"是莎士比亚最著名的悲剧作品之一. </li>
</ul>
</li>
<li>是时候做点什么了<ul>
<li>原句: It's time to do somethings.</li>
<li>句式: 是时候... It's time to do sth.</li>
<li>文化: 这个句式,来源于英语中介词对中文的影响. 由于原本中文中没有介词,中文中的动词往往就能说清句子的意思. 因此面对英文中的" to do",中文发明出:该是... 的时候了. </li>
<li>同例: It's time to have supper.(该吃晚饭了)</li>
</ul>
</li>
<li>人们不会明白编剧有多难,除非真正从事过写剧本的工作. <ul>
<li>原句: People will never understand how hard to write a play,unless they actually take the job.</li>
<li>句式: ..unless..</li>
<li>文化: 纸上得来终觉浅,绝知此事要躬行. 汉语中的条件都是以肯定句的语气来说的,而通过否定说除非怎样,否则就不怎样,来表明条件,应该是外来的用法. </li>
<li>同例: I won't stay here unless he leaves.<ul>
<li>除非他离开,否则我不会呆在这. </li>
</ul>
</li>
</ul>
</li>
<li>恭喜你成为我们中的一员<ul>
<li>原句: Congratulations to become one of us.</li>
<li>句式: become one of us</li>
<li>文化: 汉语中,集体就是集体,没有集体中的一员这样强调个体的表述. </li>
<li>同例:作为我们中的一员,你应该有集体荣誉感</li>
</ul>
</li>
<li>很高兴认识你. <ul>
<li>原句: nice to meet you</li>
<li>句式: (adj) to (V) someone </li>
<li>文化: 对行为进行明确的态度描述, 而在中文, 形容词本身就可以直接用作行为, 比如:<code>幸会</code> 所以, 这种表述形式只能是外来的</li>
<li>同例: sad to tell you</li>
</ul>
</li>
<li>我不认为他是个好人<ul>
<li>原句: I don't think he is a good man.</li>
<li>句式: I don't think...</li>
<li>文化: 中文没有否定之否定的逻辑, 只会直接怼: 丫坏蛋</li>
<li>同例: I don't think it works.</li>
</ul>
</li>
</ol>
<h3 id="_3">存疑<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
<ol>
<li>吃个饭先<ul>
<li>原句: have a dinner first</li>
<li>句式: do something first</li>
<li>文化: 原出自粤语句式,可能受外来语(英语)影响</li>
<li>同例: Let's go first. 我们走先. </li>
</ul>
</li>
</ol>
<h2 id="_4">外来比喻<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<blockquote>
<p>至少10个比喻,比如"⼀⽯⼆鸟" </p>
</blockquote>
<ol>
<li>作牛作马<ul>
<li>喻源: 佛教六道众生可以因果转生.比喻心甘情愿被人驱使.</li>
</ul>
</li>
<li>五体投地<ul>
<li>喻源: 古印度佛教一种最恭敬的行礼仪式.比喻彻底地佩服.</li>
</ul>
</li>
<li>放下屠刀,立地成佛 <ul>
<li>喻源: 佛教认为,人皆有佛性,作恶之人弃恶从善,即可成佛. 后来发展成为劝导作恶之人停止作恶. </li>
<li>宋·释普济"五灯会元"卷五十三:"广额正是个杀人不眨眼底汉,放下屠刀,立地成佛. "</li>
</ul>
</li>
<li>火中取栗<ul>
<li>喻源: 法国寓言诗人拉·封丹的寓言"猴子与猫".比喻为别人拼尽全力,自己却落不到好处.</li>
</ul>
</li>
<li>天方夜谭<ul>
<li>喻源: "一千零一夜",阿拉伯古代民间故事集.比喻天马行空的奇闻异事.</li>
</ul>
</li>
<li>象牙塔<ul>
<li>喻源: 原是法国十九世纪文艺批评家圣佩韦批评同时代消极浪漫主义诗人维尼的话. 比喻脱离现实生活文艺家的小天地. </li>
</ul>
</li>
<li>潘多拉之盒<ul>
<li>喻源: 出自希腊神话. 比喻灾难和不幸的爆发. </li>
</ul>
</li>
<li>阿基里斯之踵<ul>
<li>喻源: 出自希腊神话. 相传英雄阿基里斯出生后被母亲抓住脚踝浸在冥河的水中侵泡,由此可抵挡各种刀剑之伤,唯独脚踝处没有受到冥河之水的加持,因此成为他的致命弱点. 比喻唯一的弱点. </li>
</ul>
</li>
<li>罗马不是一天建成的<ul>
<li>喻源: 出自英语典故,来自"罗马神话". 比喻伟业不是简单达成的. </li>
</ul>
</li>
<li>太阳底下无新事<ul>
<li>喻源: 出自圣经"圣经·旧约·传道书". 比喻万物一切都是安排好的,并无特例和意外. </li>
</ul>
</li>
</ol>
<h3 id="_5">弃喻<a class="headerlink" href="#_5" title="Permanent link">¶</a></h3>
<ol>
<li>衔环相报<ul>
<li>喻源: "左传·宣公十五年":"及辅氏之役,颗见老人结草以亢杜回,杜回踬而颠,故获之. "唐·白居易"赎鸡"诗:"莫学衔环雀,崎岖谩报恩. "</li>
<li>又: 汉 杨宝 救一黄雀,夜有黄衣童子以白玉环四枚与 宝 ,曰:"令君子孙洁白,位登三事,当如此环矣. "</li>
<li>追查:佛经大规模翻译是鸠摩罗什,东晋,佛教是在汉哀帝时传入,两汉时期佛教经典翻译的记录未见遗存记载; 佛教大规模发展是在两晋南北朝. </li>
<li>所以, 这一比喻是中文原创的</li>
</ul>
</li>
</ol>GC4L01E01🐙/ 从前的现在2017-12-01T20:42:00+08:002020-07-19T12:24:44+08:00ZoomQuiettag:blog.zoomquiet.io,2017-12-01:/171201-GC4L01E01-now-from-past.html<h1 id="gc4l01e01">GC4L01E01🐙从前的现在<a class="headerlink" href="#gc4l01e01" title="Permanent link">¶</a></h1>
<blockquote>
<p>一个普通人在时间中的挣扎</p>
</blockquote>
<h3 id="_1">目录/纲要<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
<ul>
<li>从前<ul>
<li>三线研究所的日常</li>
<li>最喜欢在夜晚私人探险</li>
<li>山,河,水...</li>
</ul>
</li>
<li>喜欢<ul>
<li>发现有 …</li></ul></li></ul><h1 id="gc4l01e01">GC4L01E01🐙从前的现在<a class="headerlink" href="#gc4l01e01" title="Permanent link">¶</a></h1>
<blockquote>
<p>一个普通人在时间中的挣扎</p>
</blockquote>
<h3 id="_1">目录/纲要<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
<ul>
<li>从前<ul>
<li>三线研究所的日常</li>
<li>最喜欢在夜晚私人探险</li>
<li>山,河,水...</li>
</ul>
</li>
<li>喜欢<ul>
<li>发现有人在半地下仓库养鸡</li>
<li>利用鸡的夜盲症,管理大公鸡的行为</li>
<li>遇到了她,隔壁班的校花</li>
<li>一起从墙洞中挖冬眠的苍蝇来喂小鸡</li>
<li>一起用铅笔盒炸土豆片</li>
<li>一起粘秋蝉烤着香</li>
<li>...</li>
</ul>
</li>
<li>一个人<ul>
<li>37年过去,回到上海,供职国际集团</li>
<li>无意间发现董事长助理是她</li>
<li>年会,吹乒乓球游戏重新相识</li>
<li>慢慢开始规划未来</li>
<li>核心项目脑机接口的研发</li>
<li>成功了</li>
<li>也发现自己不可以使用</li>
<li>作为第一批数字公民她和精英们走了</li>
</ul>
</li>
<li>现在<ul>
<li>420年后</li>
<li>作为遥控师, 自愿休眠几个世纪来到人类宇宙的边疆</li>
<li>海参崴的日, 作为能源采集站拥有最紧密的机器人集团以及最高配置的计算集群</li>
<li>为了应对越来越复杂的采集现场</li>
<li>申报成功启动自动繁殖式计算集群生产</li>
</ul>
</li>
<li>喜欢<ul>
<li>虽然无法长期进入数字地球生活, 但是沉浸同步率却非常高</li>
<li>工作之余, 逐步在数字地球备份中还原了当初三线研究所的一切</li>
<li>一个人从墙洞中挖冬眠的苍蝇来喂小鸡</li>
<li>一个人用铅笔盒炸土豆片</li>
<li>一个人粘秋蝉烤着香</li>
<li>...</li>
</ul>
</li>
<li>一个人<ul>
<li>在数字地球中漫游时,经常发现隐藏的备份包</li>
<li>在 切尔诺贝利 遗址处,发现了不得的东西</li>
<li>几个世纪前首批数字公民的记忆备份</li>
<li>调集富余的计算资源, 逐步具身化其中4万位精英的记忆体</li>
<li>复活在三线研究所</li>
<li>用最新的时间加速算法,令世界时间过去37年</li>
<li>在这个人类宇宙的边疆,我构造出了基本真实的原来的世界</li>
<li>终于,还是提取了她</li>
<li>一起回到 455 年的那个状态</li>
<li>独自生活在距离全人类最远的所在</li>
<li>并不寂寞</li>
<li>...</li>
</ul>
</li>
</ul>
<h2 id="_2">是也乎<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<ul>
<li>171125 起草</li>
</ul>
<blockquote>
<p>L01E01</p>
</blockquote>好中文写作课私人体验2017-11-09T19:42:00+08:002020-07-19T11:59:37+08:00ZoomQuiettag:blog.zoomquiet.io,2017-11-09:/171109-GC4-feeling.html<hr/>
<h1 id="_1">冲破<code>海洋般的微笑</code>~好中文写作课私人体验<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<p>是的, 必须作个广告:
报名链接:<strong><a href="http://h5.xiaoeknow.com/content_page/eyJ0eXBlIjozLCJyZXNvdXJjZV90eXBlIjoiIiwicmVzb3VyY2VfaWQiOiIiLCJwcm9kdWN0X2lkIjoicF81OWZhODE4NWE2YzhiX01wN3RlSUpBIiwiYXBwX2lkIjoiYXBwUnJ4VWtkSG84MDU3Iiwic2hhcmVfdXNlcl9pZCI6InVfNTlmYzNjMjA2Y2I1N19uc3Q3UUZndTJDIiwic2hhcmVfdHlwZSI6NX0">好中文写作课</a></strong></p>
<p>明晩(2017-11-10)20:00 开始的42分钟里
将亲声嗯哼 …</p><hr/>
<h1 id="_1">冲破<code>海洋般的微笑</code>~好中文写作课私人体验<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<p>是的, 必须作个广告:
报名链接:<strong><a href="http://h5.xiaoeknow.com/content_page/eyJ0eXBlIjozLCJyZXNvdXJjZV90eXBlIjoiIiwicmVzb3VyY2VfaWQiOiIiLCJwcm9kdWN0X2lkIjoicF81OWZhODE4NWE2YzhiX01wN3RlSUpBIiwiYXBwX2lkIjoiYXBwUnJ4VWtkSG84MDU3Iiwic2hhcmVfdXNlcl9pZCI6InVfNTlmYzNjMjA2Y2I1N19uc3Q3UUZndTJDIiwic2hhcmVfdHlwZSI6NX0">好中文写作课</a></strong></p>
<p>明晩(2017-11-10)20:00 开始的42分钟里
将亲声嗯哼如何 <strong><a href="https://st.h5.xiaoe-tech.com/st/9GMIuwZcW">冲破<code>海洋般的微笑</code></a></strong>
<img alt="长按扫描二维码进入直播, 当然俺是说手机上;-)" src="http://upload-images.jianshu.io/upload_images/27562-d018b5243c1f681f.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"/></p>
<p><em>(如果无法打开外链, 那么:</em>
- 微信->
- 搜索关注 <code>简书大学堂</code>(jianshuit)公众号->
- 后台回复 <strong>大妈</strong> ->
- 即时获得分享链接
<em>)</em></p>
<hr/>
<p>佩哥哥的官方文案:<a href="http://www.jianshu.com/p/2b10a8c3c71a">你一定没见过好中文的样子 - 简书</a></p>
<p>对比第一期的野望:<a href="http://www.jianshu.com/p/b8908240cdbb">我发起了《好中文的样子:36堂写作练习》 - 简书</a></p>
<p>可以感受的到, 从根本上不同与:</p>
<ul>
<li>文科专业的学术向研究</li>
<li>或是广告/文案/公号等专项领域的专用写作技巧传授</li>
</ul>
<p>这门课本质上...</p>
<h2 id="_2">起初<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<p>其实, 小学时对写作是很有自信的:</p>
<ul>
<li>曾经用一天完成了暑假40天日记的伪装</li>
<li>家长和老师都没看出来</li>
<li>可以说, 非虚构写作技能在小学三年级前已算过关</li>
</ul>
<p>进一步的:</p>
<ul>
<li>在初3, 对一次语文作业进行了深度折腾</li>
<li>首稿提交的是3万字短篇小说</li>
<li>后来扩写为30万字</li>
<li>可以说, 长篇故事的虚构写作也算过关的</li>
</ul>
<p>当然:</p>
<ul>
<li>最自得的是各种应用文创作</li>
<li>检讨书/检讨信/道歉书/道歉信/...</li>
<li>各种在公众场合对自己的灵魂进行真诚剖析并展示悔恨的文体</li>
<li>异常熟练,并形成了自己的套路</li>
<li>以致, 30多年后, 都能信手掂来:<a href="http://www.jianshu.com/p/6c3fcf5f8c6b">有关门牙的公开检讨书</a></li>
</ul>
<h2 id="_3">然后<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<p>进入大学之后, 发觉根本没那么简单...</p>
<ul>
<li>无论邮件/报告/论文/说明/...</li>
<li>所有涉及文字的输出</li>
<li>大家第一反应,都是看不懂</li>
<li>唉唉? 剧情不是这么设定的哪...</li>
</ul>
<p>所以, 开始在人前沉默:</p>
<ul>
<li>好在, 工作是软件工程师</li>
<li>只要电脑可以理解并正确执行出结果就好</li>
<li>对于那些当面和真实肉体实时交流的语言</li>
<li>和文书上的规则又是不同的宇宙规则了, 先不讨论</li>
</ul>
<h2 id="_4">所以<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<p>工作上了年头, 文案工作是少不了的,
也就越来越急切的想整明白:</p>
<ul>
<li>技术社区中流通的文字和日常竟有什么不同?</li>
<li>为什么写的邮件同事们都说看不懂?</li>
<li>为什么中文图书越来越难以阅读?</li>
<li>为什么?...</li>
</ul>
<p>因为内心其实还未通达, 所以, 偶然间撞到 <strong><a href="http://h5.xiaoeknow.com/content_page/eyJ0eXBlIjozLCJyZXNvdXJjZV90eXBlIjoiIiwicmVzb3VyY2VfaWQiOiIiLCJwcm9kdWN0X2lkIjoicF81OWZhODE4NWE2YzhiX01wN3RlSUpBIiwiYXBwX2lkIjoiYXBwUnJ4VWtkSG84MDU3Iiwic2hhcmVfdXNlcl9pZCI6InVfNTlmYzNjMjA2Y2I1N19uc3Q3UUZndTJDIiwic2hhcmVfdHlwZSI6NX0">好中文写作课</a></strong> ,毅然报名并意外的坚持了下来,</p>
<p>是以, 能作为幸存者来将 <strong><a href="http://h5.xiaoeknow.com/content_page/eyJ0eXBlIjozLCJyZXNvdXJjZV90eXBlIjoiIiwicmVzb3VyY2VfaWQiOiIiLCJwcm9kdWN0X2lkIjoicF81OWZhODE4NWE2YzhiX01wN3RlSUpBIiwiYXBwX2lkIjoiYXBwUnJ4VWtkSG84MDU3Iiwic2hhcmVfdXNlcl9pZCI6InVfNTlmYzNjMjA2Y2I1N19uc3Q3UUZndTJDIiwic2hhcmVfdHlwZSI6NX0">好中文</a></strong> 的故事分享给大家伙儿...</p>
<p>是的, 这门课是本质上的<code>课</code>:</p>
<p><img alt="8AB2" src="http://upload-images.jianshu.io/upload_images/27562-1b9138404aba0cf2.gif?imageMogr2/auto-orient/strip"/></p>
<p>小篆的"课"字是个形声兼会意字.
左边的言字旁是形符,
表示这个字与讲话发言有关.
右边的"果"是读音. </p>
<ul>
<li>"课"的本义是按照一定的标准进行试验,考核,以检验成果. </li>
<li>所以引申为国家根据数额征收赋税,如:国课,课税</li>
<li>按照规定的内容和分量,教授和学习称之为"课"</li>
<li>按照规定的教学内容,教学时间所设置的教学科目,也称之为"课"</li>
<li>"课"也用来表示教学单位,如:一节课. 也表示教授的段落,如:这本教材共有十五课. </li>
</ul>
<p>所以本质的<code>课</code>:</p>
<ul>
<li>按照本义, 上课,其实就应该是来<code>向</code>先生阐述所得, 印证学习成果来的<ul>
<li>所谓 言</li>
<li>以证 果</li>
<li>是然 课</li>
</ul>
</li>
<li>只是, 向先生阐述的,是之前,约定的课题/问题/疑题/试题....</li>
<li>只有这样,每个人,才是真正用自个儿最有效的方式在正确的方向上积累智慧</li>
<li>以往,所谓 "上课" 其实变成了:<ul>
<li>老师求学生记忆单元知识点</li>
<li>如若不然,用考试用分数用体罚 来加以开导</li>
<li>至于强填到学生脑子里的东西,老师一般也不以为然的</li>
<li>反正,考卷怎么要求,就怎么教</li>
</ul>
</li>
<li>回想一下,可怕嘛?! 挺可怕的,但是,大家也20几年熬过来了</li>
<li>可是,为什么又主动要求, 再来"享受"这种无谓的灌输呢?! <code>斯德哥尔摩综合症</code> ?</li>
</ul>
<p><strong><a href="http://h5.xiaoeknow.com/content_page/eyJ0eXBlIjozLCJyZXNvdXJjZV90eXBlIjoiIiwicmVzb3VyY2VfaWQiOiIiLCJwcm9kdWN0X2lkIjoicF81OWZhODE4NWE2YzhiX01wN3RlSUpBIiwiYXBwX2lkIjoiYXBwUnJ4VWtkSG84MDU3Iiwic2hhcmVfdXNlcl9pZCI6InVfNTlmYzNjMjA2Y2I1N19uc3Q3UUZndTJDIiwic2hhcmVfdHlwZSI6NX0">好中文写作课</a></strong>
回归<code>课</code> 的本源,</p>
<ul>
<li>专注唯一的命题: 什么是好中文?</li>
<li>无私的分享佩哥哥半个世纪以来有关中文写作的深入思考</li>
<li>当然, 最 COOL 的就是佩哥哥, 打死都不会直接说出来好中文的写作机密的</li>
<li>只是通过一个个精心泡制的故事/任务/聊天/...</li>
<li>以及神奇的学员们结成的全新课程空间</li>
<li>来用半年时间焖熟你自己, 将好中文卤入味到所有人心神中</li>
</ul>
<p>好玩儿卟?
那么立即报名吧--><strong><a href="http://h5.xiaoeknow.com/content_page/eyJ0eXBlIjozLCJyZXNvdXJjZV90eXBlIjoiIiwicmVzb3VyY2VfaWQiOiIiLCJwcm9kdWN0X2lkIjoicF81OWZhODE4NWE2YzhiX01wN3RlSUpBIiwiYXBwX2lkIjoiYXBwUnJ4VWtkSG84MDU3Iiwic2hhcmVfdXNlcl9pZCI6InVfNTlmYzNjMjA2Y2I1N19uc3Q3UUZndTJDIiwic2hhcmVfdHlwZSI6NX0">好中文写作课</a></strong></p>
<p>还是有点儿小纠结?
欢迎明晩(2017-11-10)20:00
来小鹅直播间: <strong><a href="https://st.h5.xiaoe-tech.com/st/9GMIuwZcW">怂怼录 ~ 大妈的好中文私人体验回哞</a></strong></p>
<p>亲声尝试用<strong>42分钟</strong> 嗯哼清楚 <strong><a href="https://st.h5.xiaoe-tech.com/st/9GMIuwZcW">冲破<code>海洋般的微笑</code></a></strong></p>
<p><em>(如果无法打开外链, 那么:</em>
- 微信->
- 搜索关注 <code>简书大学堂</code>(jianshuit)公众号->
- 后台回复 <strong>大妈</strong> ->
- 即时获得分享链接
<em>)</em></p>
<hr/>
<p><img alt="长按扫描二维码进入课程, 当然俺是说手机上;-)" src="http://upload-images.jianshu.io/upload_images/27562-631a0b4bf263c98b.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"/></p>关联 PRESSone2017-09-10T08:42:00+08:002019-03-31T09:47:35+08:00Zoom.Quiettag:blog.zoomquiet.io,2017-09-10:/bind-press-one.html
<p>https://press.one/p/v?s=daa9a127693ab0fde9141b894ff9f0dc452c33fc166f0e97252420b83a33088e6c67f5d44f63860c218859c099557d42908cbb8059ebfe92765636dbaaf654710&h=90f1dab4c8b24b6502c03cdf067a279d8a672ae229cc405e171f57c0d45613f7&a=6263e76c1e5ac3196975ad5fa05f458f49633f5c&f=P1&v=3</p>
<h2 id="changelog">Changelog<a class="headerlink" href="#changelog" title="Permanent link">¶</a></h2>
<ul>
<li>190331 ZoomQuiet init.</li>
</ul>用 DSL 们构筑商用系统2017-08-27T00:00:00+08:002019-09-08T12:14:36+08:00Zoom.Quiettag:blog.zoomquiet.io,2017-08-27:/dsl-atop-openresty.html
<h1 id="building-business-systems-with-dsls-for-nginx-openresty">Building Business Systems with DSLs for NGINX & OpenResty<a class="headerlink" href="#building-business-systems-with-dsls-for-nginx-openresty" title="Permanent link">¶</a></h1>
<p>~ 来自春哥的分享</p>
<h2 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<ul>
<li>5年前也听录了一次 春哥的分享:<a href="http://blog-zq-org.qiniucdn.com/pyblosxom/oss/openresty-intro-2012-03-06-01-13.html">由Lua 粘合的Nginx生态环境</a></li>
<li>然后, 神奇的引发了各种后来的然后</li>
<li>去年, 在 NGINX 大会 …</li></ul>
<h1 id="building-business-systems-with-dsls-for-nginx-openresty">Building Business Systems with DSLs for NGINX & OpenResty<a class="headerlink" href="#building-business-systems-with-dsls-for-nginx-openresty" title="Permanent link">¶</a></h1>
<p>~ 来自春哥的分享</p>
<h2 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<ul>
<li>5年前也听录了一次 春哥的分享:<a href="http://blog-zq-org.qiniucdn.com/pyblosxom/oss/openresty-intro-2012-03-06-01-13.html">由Lua 粘合的Nginx生态环境</a></li>
<li>然后, 神奇的引发了各种后来的然后</li>
<li>去年, 在 NGINX 大会上, 春哥才真正讲出了10年前设计 OpenResty 前身时内心的宏大构想</li>
<li>所以, 值得认真 review 一下:<ul>
<li>视频:<a href="https://www.youtube.com/watch?v=w2RAZLptE-U">Building Business Systems with Domain-Specific Languages for NGINX & OpenResty | Cloudflare - YouTube</a></li>
<li>文稿:<ul>
<li><a href="https://www.nginx.com/blog/building-business-systems-with-domain-specific-languages-for-nginx-openresty-part-1/">Domain-Specific Languages for NGINX & OpenResty, Part 1</a></li>
<li><a href="https://www.nginx.com/blog/building-business-systems-with-domain-specific-languages-for-nginx-openresty-part-2/">Domain-Specific Languages for NGINX & OpenResty, Part 1</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="tldr">TL;DR<a class="headerlink" href="#tldr" title="Permanent link">¶</a></h2>
<p><img alt="p0" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide0_First-image.png"/></p>
<p>nginx.conf 2016 春哥进行的是压轴分享,对于在主厅面对千人的演讲,
他表示了虚伪的不好意思.</p>
<p><img alt="p2" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide2_OpenResty.png"/></p>
<p>OpenResty 项目发起自10年前,现在已经有完备的团队专门进行维护和开发,
twitter 官方帐号是: @OpenResty</p>
<p>推荐关注</p>
<p><img alt="p4" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide4_Lua-Libraries.png"/></p>
<p>OpenResty 在 NGINX 内嵌了 LuaJIT 环境,
得以支持丰富的 Lua 库,结合 NGINX 原生的非阻塞机制,
支持我们可以快速的完成复杂的 web 应用系统,
当前 <code>lus-resty-*</code> 库已经支持非常多领域功能,比如说:</p>
<ul>
<li>各种数据库客户端: MySQL/Pg/MongoDB/RabbitMQ/..</li>
<li>各种 upstreams 的健康检验</li>
</ul>
<p>是的, OpenResty 是成长非常迅猛的社区</p>
<p><img alt="p5" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide5_NGINX-LuaJIT.png"/></p>
<p>OpenResty 不仅仅将 LuaJIT 嵌入到 NGINX ,
感谢 Lus 的 <code>co-routines</code> 特性,
我们还创造了独有的特性,比如说:</p>
<ul>
<li>light threads</li>
<li>timers</li>
</ul>
<h3 id="or">OR 的世界观<a class="headerlink" href="#or" title="Permanent link">¶</a></h3>
<p><img alt="p6" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide6_The-All-Inclusive-Philosophy.png"/></p>
<p>OpenResty 的世界观是 <code>全包容</code> 的,
不排斥其它任何技术, 事实上 resty 用户来自从 JAVA 到 Go 各种技术人群.</p>
<p>NGINX 可以在后端到客户端之间作很多有趣的事儿,
所以, 在 OpenResty 帮助下, 可以很好的完成混合解决,
能和旧系统无缝衔接.</p>
<p><img alt="p7" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide7_Simple-Small-Fast-Flexible.png"/></p>
<p>OpenResty 的目标是:</p>
<ul>
<li>简洁</li>
<li>轻便</li>
<li>快速</li>
<li>灵活</li>
</ul>
<p>认真研究 Lua 后, 我们发现这真是个神奇的恩物,
不仅小而且快,更加灵活,支撑复杂的大型系统也没有问题.</p>
<p>总之这是个设计务实,发展良好,基础稳定的好语言,
OpenResty 将 Lua 和 NGINX 深度结合,
倍增了双方的实力.</p>
<p><img alt="p8" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide8_Synchronously-Nonblocking.png"/></p>
<p>OpenResty 的 I/O 模式是 <code>无阻塞异步</code>,
虽然 异步 在现实世界中无处不在,
但是,人类的头脑只习惯同步,
当然,俺也反感回调</p>
<p><img alt="p9" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide9_Light-Threads-Semaphores.png"/></p>
<p>所以,我们设计了 纤程和信号 来模拟并发,
而实际上只有一个唯一的系统线程.</p>
<p><img alt="p10" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide10_Cosockets.png"/></p>
<p>并发明了: 'Cosockets' ~ 肯接字 (哈N 年前就想翻译了, 现在才有好想法儿)</p>
<p>类似 BSD/Lua 套接字的容器,
支持我们象写 PHP 代码一样写同步表述, 但实际运行是完全异步的.</p>
<p>(<code>是也乎:</code></p>
<p>golang 其实也借鉴了我们这一设计
)</p>
<p><img alt="p11" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide11_Timers-and-Sleeping.png"/></p>
<p>我们也重新定义了 计时器和睡眠原语,
将异步和下游任务在 NGINX 中完备的分离了,
使用起来就象 cron .</p>
<p><img alt="p12" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide12_Shm-Based-Dictionaries-and-Queues.png"/></p>
<p>同时还发明了 <code>shm</code> ~ 内存分享式字典和队列,
以便支持我们的应用在 NGINX 不同进程间分享数据,
同时又不打破 NGINX 的异步性能.</p>
<p><img alt="p13" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide13_Dynamic-SSL-Handshakes.png"/></p>
<p>而且刚刚我们也开始支持 动态SSL握手, 以便支持下游的 HTTPS 事务.</p>
<p><img alt="p14" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide14_Dynamic-SSL-Handshakes-Example.png"/></p>
<p>比如在 Cloudflare, 作为CDN 供应商,
有很多客户以及虚拟服务器和边缘服务器构成网络,</p>
<p>要面对的一个主要问题就是: SSL 证书/密钥太多</p>
<p>理论上应该根据实际请求来动态加载对应的证书/密钥,
这样我们就可以同时持有无限量的 SSL 证书/密钥,
感谢本地流量调度, 虽然不可能有单机可以查询所有用户的流量.</p>
<p>进一步的, 在 OpenResty 可以通过 共享内存和工作级缓存中管理 SSL 证书/密钥,</p>
<p>数据 -- 比如: 证书/密钥 -- 当前已支持在 <a href="https://github.com/alticelabs/kyoto">Kyoto Tycoon</a> 中分发,
其它后端,比如说 Redis 或其它分布式存储也当然可以了.</p>
<p><img alt="p15" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide15_Dynamic-Load-Balancers.png"/></p>
<p>通过 NGINX 中的 Lua 进行动态加载平衡也是能的.</p>
<p><img alt="p16" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide16_Dynamic-Load-Balancers-Ex.png"/></p>
<p>比如这一则配置:</p>
<ul>
<li>几行就可以定义一系列复杂的决策</li>
<li>动态, 意味着你可以在该级别上对每个请求灵活应用不同的均衡策略</li>
<li>并指定重试策略:<ul>
<li>比如, 特定请求没有获得响应时</li>
<li>可以选择忽略</li>
<li>也可以选择请求和请求的位置</li>
<li>等等,都在 <code>balancer_by_lua_block</code> 中可以声明</li>
</ul>
</li>
<li>同时不影响 NGINX 各种标准模块,比如说:<ul>
<li><a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html">Proxy</a></li>
<li><a href="http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html">FastCGI</a></li>
<li><a href="http://nginx.org/en/docs/http/ngx_http_uwsgi_module.html">uwsgi</a></li>
<li>... 等等的使用</li>
</ul>
</li>
<li>以及 NGINX 核心模块,比如: keepalive,连接池等等, 也一样开箱即用</li>
</ul>
<p><img alt="p17" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide17_ngx_stream_lua_module-TCP-UDP.png"/></p>
<p>最近我们创建了 <a href="https://github.com/openresty/stream-lua-nginx-module">ngx_stream_lua_module</a> 模块来替代以往的
<a href="https://github.com/openresty/lua-nginx-module">ngx_ HTTP_lua_ module</a></p>
<p>通过 NGINX 核心子系统,来支持实现通用的 TCP/UDP 服务,</p>
<p>实际上 <a href="http://openresty.org/en/">OpenResty® - Official Site</a>
本身的 DNS 服务器就由此模块支撑,
还有人拿个模块实现了类似 syslog 的 TCP 守护进程,
来接收远程的大量日志.</p>
<p><img alt="p18" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide18_Advanced-Debugging-Profiling-Tools-Based-on-GDB-SystemTap.png"/></p>
<p>多年以来, 我们积累了大量的专用测试工具.</p>
<p>在 Cloudflare, 运营有全球范围的复杂大型网络,
很多问题发生的几率仅仅有 1% 或 0.1% 甚至于 0.001%,
几乎难以复现, 必须依赖高级调试工具来完成.</p>
<p>已经开源了很多基于 GDB 以及 SystemTap 的工具:</p>
<ul>
<li>GDB 主要调试死锁进程,借助 GDB 以及 dump 工具, Mike Pall 已经修复了10多个隐藏在 JIT 中非常深的积年老问题</li>
<li>SystemTap 则是非常赞的 RedHat 工程师贡献的动态追踪平台,<ul>
<li>允许分享分析运行时系统, </li>
<li>从 内核到 NGINX 整个儿软件桟以及用户的 Lua 业务脚本, </li>
<li>都能在对生产系统微小影响下快速分析出来,</li>
<li>甚至于不用关闭防火墙</li>
<li>可以直接进行线上活体分析</li>
<li><-- 这才是未来系统开发的应该姿势</li>
</ul>
</li>
</ul>
<p>(<code>是也乎:</code></p>
<p>嗯哼? LISP 构造的系统, 从一开始就这样的哪?!
)</p>
<h3 id="or_1">OR 的应用场景<a class="headerlink" href="#or_1" title="Permanent link">¶</a></h3>
<p><img alt="p19" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide19_C2000K.png"/></p>
<p>随着近几个月, 我们发布的重要功能,
OpenResty 已在真实客户单主机上支持住了 200万 级别的并发请求,</p>
<p>已经有客户在生产环境中部署了这种级别的推送系统.</p>
<p><img alt="p20" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide20_Web-API-and-Microservices.png"/></p>
<p>另外一个常见领域是接口和微服务,</p>
<p>很多人使用 OpenResty 构建这类服务,比如:
<a href="https://github.com/Mashape/kong">Mashape's Kong</a>平台,
以及 <a href="https://github.com/adobe-apiplatform/apigateway">Adobe's API Gateway</a></p>
<p>此外, 一些美国银行使用 OpenResty 来管理路由器流量,</p>
<p>同时, 一些更大的中国互联网公司, 在用 OpenResty 构建实时股票信息服务,
这些接口是其中流量最大的,</p>
<p>还有用来发布实时天气信息接口的...</p>
<p>等等吧, OpenResty 的应用可能是无限的.</p>
<p><img alt="p21" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide21_Web-Gateways.png"/></p>
<p>另外一个 OpenResty 的应用场景是 web 网关,
很多 CDN 厂商都在这样使用.</p>
<p>我们还知道有人用 OpenResty 来管理通用 TCP/UDP 流量,</p>
<p>Lua 可以支持你的网关在运行中得以变化,
基于互联网的动态性,
CDN 厂商必须灵活的应对客户的不同需求,
而客户的需求越来越复杂化.</p>
<p>甚至于人们在期待可以包含业务逻辑,比如常见的想动态修订配置文件,来支持软件更新,
等等出于实际需求的要求.</p>
<p>选择 Lua 令一切变的可能,
因为 JIT (即时编译)的机制,
可以随时根据变更的配置生成新的规则,
并根据不同的请求进行对应的流量优化...</p>
<p>NGINX 原先就支持基于 HUP信号 的配置重加载,
但是, 这对于厂商而言成本太高,
因为无法精确的退出相应请求来重启.</p>
<p>另外, 缓存也是个大问题:</p>
<ul>
<li>有时一个客户的缓存非常冷</li>
<li>但是,又不能为了释放这部分数据而重启整个儿缓存</li>
<li>这对其它用户来说太惨了...</li>
</ul>
<p><img alt="p22" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide22_Web-Applications.png"/></p>
<p>OpenResty 原先设计目标是支持完备的web 应用,
第一个案例是网站, 所以,有了 <a href="http://openrety.org">openrety.org</a></p>
<p>如今有越来越多的传统网站,在用 OpenResty 从头开始构建</p>
<p><img alt="p23" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide23_Web-Applications-Products-Details-Page.png"/></p>
<p>例如 京东网, 中国最大的 B2C 电子商务服务平台之一.
在各种营销日, 他们必须面对海量的请求,
类似美国的黑色星期五, 在中国则是 11.11</p>
<p>(<code>是也乎:</code>
问题在中国的光棍节营销流量, 是黑色日期五的几个数量级哪!!!
毕竟, 美国的打折多数是线下的...
)</p>
<p>最早他们使用 Starnet 技术, 经常崩溃,
后来迁移到 JAVA 技术桟, 全然崩溃.</p>
<p>最终迁移到 OpenResty ,虽然后端依然是 JAVA,
但是迎接所有流量的全部是 OpenResty 了, 从此再也没有崩溃过.</p>
<p>现在他们使用 OpenResty 来生成复杂的网页.</p>
<p>比如这个截屏,是 iPhone 的详细产品信息页,
类似页面吸引了主要的流量, 基于 OpenResty 的模板库来生成动态页面,
这是个非常长的页面,只截取了顶部,</p>
<p>他们内部维护了一个非常庞大的模板库,
并用 Redis 来缓存数据 ,以免流量直接击中后端的 JAVA 服务,</p>
<p>春哥曾经询问 JD, 是否需要优化, 他们回答,速度已经足够快, 不用了,谢谢...</p>
<p>(<code>是也乎:</code></p>
<p>这可能是由于性能太好而丢失定制服务的最好案例,
MySQL 只能表示 23333 了...
)</p>
<p><img alt="p24" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide24_OpenResty-Website.png"/></p>
<p>我们自己则重构了官方网站,
整个网站使用 Lua 在 OpenResty 上重写而成,</p>
<p>使用 PorstgreSQL 作为后端数据存储,
通过 OpenResty 直接和数据库交互,</p>
<p>通过 NGINX 的异步非阻塞进程来处理 IO,
非常快速并便宜,</p>
<p>基于 Pg 内置的全文搜索而支持了网站的内部搜索功能.</p>
<p><img alt="p25" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide25_Distributed-Storage-Systems.png"/></p>
<p>这是令春哥自己都惊讶的领域:</p>
<ul>
<li>作为中国最大的网站之一 sina.com</li>
<li>发布有类似 Jawbox 的网络存储产品</li>
<li>他们不仅用 OpenResty 来构建前端</li>
<li>而且还用在后台直接处理文件 I/O</li>
<li>对于这种操作他们非常自得</li>
<li>也非常自豪的成为 OpenReaty 核心组件贡献方之一</li>
</ul>
<p><img alt="p26" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide26_Datanet.png"/></p>
<p>Datanet 则是另外一个类似的项目,
虽然没开源, 但是,作者在努力中,</p>
<p>创始人是 Russell Sullivan,
在 twitter 是 @jaksprats</p>
<p>正在基于 OpenResty 构建一个分布式数据网络,
推荐大家去直接嗯哼...</p>
<p><img alt="p27" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide27_Conflict-Free-Replicated-Data-Types.png"/></p>
<p><code>CRDT</code> ~ 无冲突数据复制类型,
简单的说, 这是全新的复杂理论,
涉及复杂的算法和论文, 还在折腾中...</p>
<p><img alt="p28" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide28_Forming-a-Stateful-Network.png"/></p>
<p>基本上象个 <code>半p2p</code> 网络,
每个节点都可以有状态,通过 类似 p2p 的机制完成自动同步,</p>
<p>为什么叫 <code>半p2p</code> 网络,因为这其中必须有某种中心,
可以是大型数据中心,
以便支持暂时下线的节点, 重新上线时,快速发现差异完成同步....</p>
<p>是的, 机制很复杂要说明白得额外2小时...</p>
<p>(<code>是也乎:</code></p>
<p>不就是不完备的区块链网络嘛...
)</p>
<h3 id="sregex">大事儿: sregex<a class="headerlink" href="#sregex" title="Permanent link">¶</a></h3>
<p><img alt="p29" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide29_Sregex.png"/></p>
<p>sregex <-- 春哥一直在造的轮那 ~ 正则表达式引擎,</p>
<p>当然是为了真实的业务需求</p>
<p>(<code>是也乎:</code></p>
<p>但是,这是阻止不了从头造轮子的快感的...嗯哼!
)</p>
<p><img alt="p30" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide30_web-server.png"/></p>
<p>本质上她必须可以支撑处理流式数据,
毕竟 web 服务器要处理的数据理论上是无限大的.</p>
<p><img alt="p31" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide31_4KB-buffer.png"/></p>
<p>关键问题是高速处理缓冲区块:</p>
<ul>
<li>缓冲总是混沌的</li>
<li>通常很小,比如 4k</li>
<li>数据一进入, 就必须完成处理,得到我们需要的,并作出决定:<ul>
<li>丢弃</li>
<li>或是通过</li>
</ul>
</li>
<li>而且是单向流水线<ul>
<li>一但数据块被处理</li>
<li>立即将被下一组填充</li>
</ul>
</li>
<li>这一构想很得趣, 但是,不简单</li>
<li>算法非常困难, 传统的都不行...</li>
</ul>
<p><img alt="p32" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide32_4KB-buffer-2.png"/></p>
<p>回溯算法在主流正则表达式引擎中很流行,</p>
<p>基本上, 当你找不到匹配时,就将指针逈后移动再重试.</p>
<p>PCRE 以及其它很多引擎都是基于这一算法的,
但是,包含了很多问题,不仅仅是固定缓冲区的要求.</p>
<p>还可能引发非常昂贵的系统资源浪费,
这种现象我们定义为: <code>病理行为</code></p>
<p><img alt="p33" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide33_Xregex%E2%80%99s-BFA-Engine-Performance-Benchmark.png"/></p>
<p>春哥构建了 <a href="https://en.wikipedia.org/wiki/Deterministic_finite_automaton">DFA</a>
(确定性有限自动机),
当前性能尚可, 如图中所示:</p>
<ul>
<li>橙色->Google RE2</li>
<li>紫色->PCRE JIT</li>
<li>黑色->PCRE</li>
<li>绿色->PCRE2解释器</li>
<li>蓝色->PCRE2 JIT</li>
<li>黄色->sregex DFA 原型</li>
</ul>
<p>PCRE 是 C 实现的 Perl 兼容正则表达库,性能口碑很好</p>
<p><img alt="p34" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide34_benchmark2.png"/></p>
<p>在这个有点儿复杂的测试案例中:</p>
<ul>
<li>RE2 比 PCRE 好</li>
<li>甚至于比解释器版本还好</li>
<li>但是, sregex DFA 原型 依然更好点儿</li>
</ul>
<p><img alt="p35" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide35_benchmark3.png"/></p>
<p>而在 <code>/d.*?d/</code> 这一简单案例测试中:</p>
<ul>
<li>我们的原型获得了极大的优势</li>
<li>因为 DFA 可以进行智能优化</li>
</ul>
<p><img alt="p36" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide36_benchmark4.png"/></p>
<p>在 PCRE 提供的性能测试案例集中,
我们(黄色)领先一些</p>
<p><img alt="p37" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide37_benchmark5.png"/></p>
<p>这一正则表达式案例是从 ModSecurity 的核心规则中抽取的,
应用在 WAF(web 应用防火墙)过滤核心中.</p>
<ul>
<li>回溯引擎浪费了大量 CPU 资源,因为在反复回溯</li>
<li>sregex DFA 原型则相反, 非常快</li>
</ul>
<p>sregex 将是 OpenResty 接下来的重心!</p>
<ul>
<li>当前还不是产品状态, 只是个快速原型</li>
<li>春哥用大约2000行 perl 代码实现了一个正则表达式引擎</li>
<li>以便生成能被 clang/GCC 编译的 C 代码</li>
<li>完成这些,只是为了印证设想</li>
</ul>
<p>我们认为:</p>
<div class="highlight"><pre><span></span><code>自己的 JIT 引擎比 Clang/GCC 更好,因为优化器更通用
自己的 JIT 引擎比 Clang/GCC 更好,因为优化器更通用
自己的 JIT 引擎比 Clang/GCC 更好,因为优化器更通用
</code></pre></div>
<p>(<code>好吧, 重要的事儿得说三次</code>)</p>
<h3 id="dsl-lzsql">DSL实验: LZSQL<a class="headerlink" href="#dsl-lzsql" title="Permanent link">¶</a></h3>
<p><img alt="p38" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide38_A-Web-Platform-As-A-Virtual-Machine.png"/></p>
<p>回到主题: 建立在 OpenResty 上的 DSL</p>
<p>先分享了一系列 OpenResty 的新功能,</p>
<p>但是,更重要的是, 春哥认为:</p>
<ul>
<li>OpenResty 可以视作 VM(虚拟机)</li>
<li>就象 JVM</li>
<li>可以更加强大, 更加面向 web</li>
</ul>
<p><img alt="p39" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide39_lz.taobao.com_.png"/></p>
<p>这个实验其实是7~8年前完成的,不算新鲜,但是,实验是值得回味的.</p>
<p>那时春哥供职 taobao, 是 alibaba 集团子公司, 是中国最大的 B2C 平台,
当时在数据分析部门,
客户是 taobao 的商家, 类似 eBay 的商家就是卖家一样.</p>
<p>客户需要一个流量分析工具,
来统计店面的流量,和广告部署/销售间的影响力关系,
这是个非常大的产品.</p>
<p>(<code>是也乎:</code></p>
<p>为什么大? 因为要分析的数据量,相当于好几个 twitter 的数据量....
)</p>
<p><img alt="p40" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide40_Taobao-homepage.png"/></p>
<p>这是产品首页</p>
<p><img alt="p41" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide41_chart.png"/></p>
<p>给出了类似 google 分析样漂亮的图表,
所不同的是有更多数据报告.</p>
<p><img alt="p42" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide42_data-volume.png"/></p>
<p>由于 yaobao 的体量,数据量很大, 非常的大</p>
<p><img alt="p43" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide43_experiment-on-the-client-side.png"/></p>
<p>当时春哥 放胆在客户端进行各种尝试,8年前:</p>
<ul>
<li>整个儿应用逻辑已经全部在前端了</li>
<li>类似 gmail ,完全由一组运行在网页中的脚本构建</li>
<li>还引入了客户端模板:<ul>
<li>构建了一个能从模板生成 JS 代码的引擎</li>
</ul>
</li>
<li>另外也提供了 web 服务来驱动客户端应用</li>
<li>总之, web 服务是关键,是唯一运行在服务器上的东西<ul>
<li>将 JSON 发送给客户端</li>
<li>JS 用编译后的模板生成页面区域</li>
</ul>
</li>
</ul>
<p><img alt="p44" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide44_server-side-.png"/></p>
<p>量子统计整体架构如上:</p>
<ul>
<li>OpenResty 位于后端和浏览器之间</li>
<li>后端是 MySQL 集群,因为数据量大, 光卷就有超过1亿个</li>
<li>另外还有实时统计集群作支撑</li>
<li>同时还作为一个开放平台发布 JSON 的 API</li>
<li>以及 Memcached 和 Tokyo Tyrant 集群来管理其它元数据</li>
<li>但是, 相比其它系统要简洁的多,只用 PHP 来运行</li>
</ul>
<p><img alt="p45" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide45_-Inventing-LZSQL.png"/></p>
<p>春哥很快意识到关键问题:</p>
<ul>
<li>没有足够的人力来支撑开发</li>
<li>整个儿团队只有两个实习生</li>
<li>但是, 不得不将原先 PHP 编写的整个儿数据分析产品迁移到 OpenResty 平台</li>
<li>即使迫使实习生拼命写 Lua 代码,但是,面对复杂到狂乱的业务逻辑,这是个不可能的任务</li>
</ul>
<p>春哥用了一个晚上思考, 决定:</p>
<ul>
<li>基于对数据分析核心模型/模式的理解</li>
<li>构建自己的 DSL</li>
<li>以便用更加自然的形式来描述业务</li>
</ul>
<p>毕竟: <code>什么是编程?</code></p>
<ul>
<li>本质上是和机器对话</li>
<li>令机器理解我们的意图</li>
<li>从而快速/便宜/可靠的完成业务</li>
</ul>
<p>所以, 编程的关键是:</p>
<div class="highlight"><pre><span></span><code>提高同机器对话的效率
</code></pre></div>
<p>那么, 如果你能用两个词或是一个句子来表达一个想法,
为毛要使用十多行代码? 那也忒自虐了!</p>
<p>所以, 春哥不喜欢 JAVA, 因为要输入的代码太多了,
Lua 也不是个好形式, 以及其它现有的所有命令式通用开发语言</p>
<p><img alt="p46" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide46_to-convey-the-idea-to-the-machine.png"/></p>
<p>所以有了第一个 DSL: <code>LZSQL</code></p>
<ul>
<li>基于SQL 的形式, 快速传达想法给系统</li>
<li>为什么选择 SQL ? <ul>
<li>因为数据分析产品本质上是基于关系型数据模型的</li>
<li>无论是否使用 SQL 数据库</li>
</ul>
</li>
<li>我们可以在 SQL 中定义变量和用户变量, 作为第一公民</li>
<li>SQL 可以在一些 MySQL 后端运行</li>
<li>也可以在 NGINX 中运行<ul>
<li>因为实现了包含 SQL 引擎的内存数据库</li>
<li>只有100行左右的 Lua 代码</li>
<li>运行良好</li>
</ul>
</li>
<li>复杂性来源是因为数据不得不来自很多不同的 MySQL 数据库</li>
<li>然后在内存中重新关联, 并组合成最终结果发送到客户端</li>
<li>这其中涉及很多棘手的问题:<ul>
<li>必须能分解 SQL 到不同节点上运行</li>
<li>同时还能自动优化 SQL 查询 <ul>
<li>~ MySQL 自己的优化器通常无法完成海量优化</li>
<li>特别是在 OLAP 场景中</li>
<li>(在线分析过程)</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><img alt="p47" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide47_writing-the-business-logic-in-LZSQL-files.png"/></p>
<p>最终, 实际上我们用 LZSQL 来记述业务逻辑,
用编译器生成 Lua 代码,
在线发布 Lua 代码并运行,
而线上不再需要编译器.</p>
<p>这就是 <code>编译</code> 的美妙所在.</p>
<p><img alt="p48" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide48_to-compile-the-LZSQL-files.png"/></p>
<p>当前的, 提供 CLI 工具,
完成 LZSQL 脚本的编译, 链接到最终 Lua 应用程序.</p>
<p><img alt="p49" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide49_The-result.png"/></p>
<p>其结果非常赞:</p>
<ul>
<li>因为编译器可以进行很多优化</li>
<li>人通常不能, 甚至于不能正确运行</li>
</ul>
<p>旧业务是 PHP 编写的,新接口由春哥编译器生成 Lua 代码,</p>
<ul>
<li>请求延迟下降超过 90%,</li>
<li>甚至于这包含了 MySQL 的延迟,</li>
<li>上图是一次完整的 接口 HTTP 延迟对比</li>
</ul>
<p>值得注意的是, 这时使用的还是标准的 Lua 解释器</p>
<p><img alt="p50" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide50_still-using-the-interpreter-only.png"/></p>
<p>进一步的, 仅仅切换为 LuaJIT , 速度就获得进一步加强</p>
<p><img alt="p51" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide51_4000-lines-of-Perl.png"/></p>
<p>而实际上, LZSQL 编译器,仅仅是 4000行 Perl 代码,
但是,包含了非常复杂的优化和类型检查以及一应上下文相关的分析过程.</p>
<p><img alt="p52" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide52_several-code-emitters.png"/></p>
<p>而且, 编译器包含了:</p>
<ul>
<li>一个解析自己的解析器</li>
<li>一个 AST(抽象语法树)</li>
<li>一堆优化器</li>
<li>一个代码映射器<ul>
<li>其实是多种映射器</li>
<li>因为 LZSQL 支持多种语言后端</li>
</ul>
</li>
</ul>
<p><img alt="p53" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide53_why-not-C-code.png"/></p>
<p>是的, 当时可以生成 Lua 代码,
当然, 也可以生成 C 代码.</p>
<p><img alt="p54" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide54_generate-an-NGINX-model.png"/></p>
<p>是的, 当时后端是一个实时数据库, 提供了非常具体和复杂的线程协议,以至难以人工完成客户端.</p>
<p>但是, 数据库发布有一个完备的wiki 文档:</p>
<ul>
<li>那么为毛不让电脑可以理解文档</li>
<li>自动生成一个 NGINX C 模块来调用呢?</li>
</ul>
<p>于是, 春哥实现了这个想法</p>
<p><img alt="p55" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide55_Ticpy.png"/></p>
<p><img alt="p56" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide56_implementation-example.png"/></p>
<p>是的, 嘦很小的 DSL 抽象就可以解析 wiki 文档.</p>
<p><img alt="p57" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide57_a-very-quick-Perl-script.png"/></p>
<p>于是, 再再再次用 Perl 快速完成了一个编译器来从文档生成 NGINX C 模块,
可以自由的通过 NGINX 来和数据库交互,</p>
<p>这算 NGINC 的上游模块.</p>
<p><img alt="p58" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide58_just-300-lines-of-code.png"/></p>
<p>是的, 文档只有300行, 但是生成的 C 模块有12000行代码.</p>
<p><img alt="p59" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide59_Writing-Programs-to-Write-Programs-to-Write-Programs.png"/></p>
<p>这一案例说明:</p>
<ul>
<li>编程就是和机器沟通</li>
<li>如果文档足够完备</li>
<li>那么完全可以直接转换给机器</li>
<li>从而避免了人工编程的各种糟心事儿</li>
<li>这一切指向了一个觉悟:</li>
</ul>
<p>:</p>
<div class="highlight"><pre><span></span><code>宁愿写程序上编程来生成代码
</code></pre></div>
<p>(<code>是也乎:</code> 也嫑直接写业务代码)</p>
<p><img alt="p60" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide60_Test-Scaffold.png"/></p>
<p>同时我们的测试脚手架也是基于 DSL 的:</p>
<ul>
<li><code>Test::Nginx::Socket</code> 被所有 OpenResty 工程引用</li>
<li>以规范的形式来描述测试用例</li>
</ul>
<p>即使你不会 Perl 也没有关系:</p>
<ul>
<li>嘦按照规范提供描述</li>
<li>服务就能理解并进行对应测试</li>
</ul>
<h3 id="dsl">DSL 的爆发<a class="headerlink" href="#dsl" title="Permanent link">¶</a></h3>
<p><img alt="p61" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide61_How-About-Tests.png"/></p>
<p>幻灯参考: http://search.cpan.org/perldoc?Cheater</p>
<p>接下来的一件大事:</p>
<ul>
<li>对于新产品</li>
<li>数据库中还没有真实的业务数据时</li>
<li>如何进行测试?</li>
<li>我们需要数据来测试 SQL 查询/网页/服务/...</li>
</ul>
<p>所以, 春哥再再再再次用 Perl 实现了一个类似 SQL 语言的建数据表用的 DSL</p>
<p><img alt="p62" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide62_Cheater.png"/></p>
<p>就是 Cheater 工具:</p>
<ul>
<li>用正则表达式来指定允许渲染的字段</li>
<li>并能指定依赖的外链</li>
<li>那么这工具就能生成满足所有约束和要求的随机数据</li>
</ul>
<p><img alt="p63" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide63_The-OpenResty-Model-Language.png"/></p>
<p>回到 OpenResty 场景中, 从多年前的实验中可以学到:</p>
<ul>
<li>可以通过设计/实现模式语言来简化开发</li>
<li>可以在 OpenResty 中使用 SQL </li>
<li>编译器知道在哪儿运行:<ul>
<li>本地或是远程</li>
<li>又或是混合</li>
</ul>
</li>
<li>在不同数据库中运行 SQL ,甚至于不一定是关系型数据库</li>
</ul>
<p><img alt="p64" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide64_The-OpenResty-View-Language.png"/></p>
<p>另外, 也发布有 OpenResty View 语言:</p>
<ul>
<li>基于 <a href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller">MVC</a> 模型</li>
<li>在 View 层:<ul>
<li>Perl 有 TT2</li>
<li>Python 有 Jinja2</li>
</ul>
</li>
<li>现在有了自己的 DSL 就可以生成客户端 JS 或是服务端 Lua 代码</li>
<li>这是 DSL 的优势</li>
</ul>
<p><img alt="p65" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide65_Jemplate-Lemplate.png"/></p>
<ul>
<li>Jemplate 将 Perl 的 TT2 模板转换为 JS 代码</li>
<li>Lemplate 则编译成 OpenResty Lua 代码</li>
</ul>
<p><img alt="p66" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide66_The-OpenResty-Controller-Language.png"/></p>
<p>这又是一件大事儿</p>
<p><img alt="p67" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide67_it%E2%80%99s-a-Lua-based-language.png"/></p>
<p>看起来是这样的:</p>
<ul>
<li>基于规则的语言<ul>
<li>你只需要描述一系列规则</li>
<li>箭头左侧是谓词, 类似条件</li>
<li>箭头右侧是行为, 比如重定向/返回错误码...</li>
</ul>
</li>
<li>那些谓词其实是无效的 (不会导致执行具体的行动)</li>
<li>编译器进一步优化的话, 就能将机关的谓词合并起来</li>
<li>多数 CDN 业务编辑都可以如此表述<--这就是 CDN 市场的本质</li>
</ul>
<p>不同的商业模式包含共同的内在特性:</p>
<ul>
<li>这是可能的也是可以的</li>
<li>比如数据分析业务共同的模式是关系模式</li>
<li>SQL 语言洽好是这种模式的表述形式</li>
</ul>
<p>对于 CDN 或是 WAF 型的业务:</p>
<ul>
<li>应该就是规则集的模型</li>
<li>理论上是个 <code>前向链专家系统模型</code></li>
</ul>
<p>春哥是 AI 的资深粉丝</p>
<ul>
<li>高中时就研究过各种流派的 AI 实现</li>
<li>当前机器学习是热点</li>
<li>而专家系统是 AI 的分支, 并没有过时</li>
<li>比如说:<ul>
<li>基于 Prolog 的语法解析, 在自然语言研究领域很流行</li>
<li>而语义解析, 则多用 CLISP</li>
</ul>
</li>
<li>70年代 NASA 就折腾过类似的</li>
</ul>
<p><img alt="p68" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide68_remove-all-the-C-comments.png"/></p>
<p>OpenResty 也支持组合多个 正则表达式 来执行复杂的过滤:</p>
<ul>
<li>这样,所有替换在 NGNIX 输出过滤器中<ul>
<li>是缓冲实时完成的</li>
<li>所以, 定长缓冲区, 无限数据流处理</li>
</ul>
</li>
<li>非常 COOL , 不是嘛?</li>
</ul>
<p>上图是批量从 C++ 中删除注释的案例</p>
<ul>
<li>你可以稍微修订就能支持 CSS/JS 的注释删除</li>
<li>当然的,这是基于 sregex 的</li>
</ul>
<p><img alt="p69" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide69_-WAF-Hot.png"/></p>
<p>WAF 是热点, 公司已在为 NGINX 推出 ModSecurity 端口,</p>
<p>春哥看来 WAF 本身就可以基于前述控制语言来完成.</p>
<p><img alt="p70" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide70_ModSecurity-a-Horrible-DSL.png"/></p>
<p>ModSecurity 本身作为 DSL 很可怕</p>
<p><img alt="p71" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide72_-Example-of-a-Poor-Rule.png"/></p>
<p>这是 ModSecurity 一个线路的描述</p>
<p>已经复杂到天际了, 而厂商们还发明了各种更加复杂 WAF 语法,
只是为了表述类似 <code>if-else</code> 的逻辑</p>
<p>那么为什么不创建我们这样简洁的 DSL ?</p>
<p><img alt="p72" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide71_it%E2%80%99s-a-Lua-based-language-2.png"/></p>
<p>这样的语法就干净很多:</p>
<ul>
<li>也支持短路:如果第一条匹配了,就跳过后续的</li>
<li>本质上只是个 <code>if-else</code> 不必要进行深度嵌套</li>
<li>如果查阅其它 CDN 厂商的 VSL 代码<ul>
<li>其实就是一堆堆的 <code>if-else</code></li>
<li>是的, 很疯狂</li>
</ul>
</li>
</ul>
<h3 id="or_2">OR 的目标<a class="headerlink" href="#or_2" title="Permanent link">¶</a></h3>
<p><img alt="p73" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide73_Model-View-Controller.png"/></p>
<ul>
<li>模式 ~ 不同种类的商业系统都有内在相似的模型,从而抽象为一个 DSL</li>
<li>视图 ~ 已经完成很多种模板语言,都是 DSL</li>
<li>控制 ~ 也已经展示了, 通过规则的描述可以简洁的完成 WAF 业务的定义</li>
</ul>
<p><img alt="p74" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide74_SportLang.png"/></p>
<p>运动类游戏当然也可以拥有自己的语言, 来描述业务系统.</p>
<div class="highlight"><pre><span></span><code>还能更 COOL 嘛?
</code></pre></div>
<p>我们作为软件行业的专业人士,
讲真, 强迫其它行业用户(如物理/数学/建筑/哲学...)来使用计算机语言,
这本身算是种耻辱吧.</p>
<p>理想情景中, 我们应该支持用户:</p>
<ul>
<li>使用他们熟悉的领域语言</li>
<li>自然的描述</li>
<li>而机器可以理解并运算</li>
</ul>
<p>而且, 同时:</p>
<ul>
<li>DSL 还包含了大量的自动优化过程</li>
<li>毕竟这不是每个程序猿都知道的技巧</li>
</ul>
<p><img alt="p75" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide75_The-Y-Language.png"/></p>
<p>当前我们内部已经在使用 Y 语言:</p>
<p>这是全新的能调试多种语言的工具, 类似 GDB, SystemTap, LuaJIT</p>
<p><img alt="p76" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide76_CoffeeScript.png"/></p>
<p>另外也支持 CoffeeScript :</p>
<ul>
<li>毕竟 CoffeeScript 很受欢迎</li>
<li>这种 DSL 可以生成 JS</li>
<li>现在我们可以从 CoffeeScript 生成 OpenResty Lua 代码</li>
</ul>
<p><img alt="p77" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide77_A-Meta-DSL.png"/></p>
<p>我们也有元DSL:</p>
<ul>
<li>用来生成其它所有 DSL 的 DSL</li>
<li>包含 元DSL 本身</li>
</ul>
<p>我们还有创建编译器的 DSL, 能生成:</p>
<ul>
<li>DSL 编译器</li>
<li>DSL 优化器</li>
</ul>
<p>Perl 一直是 春哥 的第一序列武器,
但是,并一定是最好的,
最终可能为构建编译创建专用 DSL</p>
<p><img alt="p78" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide78_Clean-Separation.png"/></p>
<p>我们可以在业务描述和业务实现间进行清晰的隔离.</p>
<p>这意味着我们可以一夜之间, 完成业务系统实现技术桟的切换,而不用触动具体的业务代码.</p>
<p>比如说:</p>
<ul>
<li>我们可以将当前运行在 OpenResty 上的业务系统</li>
<li>一键迁移到 C 甚至于汇编代码上</li>
<li>而不会变动业务逻辑</li>
<li>甚至于将来迁移到新技术桟上, 也不用改变业务代码<ul>
<li>只需要编写一个新的后端优化器</li>
<li>并添加到现有的 DSL 编译器中就好</li>
</ul>
</li>
</ul>
<p><img alt="p79" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide79_Compiling-Style-Web-Frameworks.png"/></p>
<p>此外, 我们也将获得全新的 web 应用框架:</p>
<ul>
<li>编译型的</li>
<li>不再依赖一层层的嵌套, 从而令开发运行都越来越慢</li>
</ul>
<p>我们必须同时实现美丽和效率:</p>
<blockquote>
<p>这是未来商业产品级工程的必须特性</p>
</blockquote>
<p><img alt="p80" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide80_The-Best-Language.png"/></p>
<p>最好的语言就是 <code>商业语言</code> 正如春哥意识到的</p>
<p>基于商业语言开发,还有一个好处就是:</p>
<ul>
<li>一但完成了一个 DSL </li>
<li>将一些业务逻辑放入后</li>
<li>如果有幸拿到客户原始需求文档</li>
<li>两厢对比,发现接近</li>
<li>就意味着作对了 ;-)</li>
</ul>
<p>其实, 还有最好的方式来描述具体的领域问题:</p>
<p><img alt="p81" src="https://cdn-1.wp.nginx.com/wp-content/uploads/2017/08/Yichun_Zhang-conf2016-slide81_The-Machine-Truly-Understands-Business-Logic.png"/></p>
<p>是的, 只有机器真正理解你的业务逻辑, 那么:</p>
<ul>
<li>可以获得比以往更多的嗯哼</li>
<li>比如自动生成测试用例</li>
<li>完成上下文分析</li>
<li>或者干脆为你即时生成真正可运行的实例</li>
</ul>
<p>(<code>是也乎:</code></p>
<p>这, 才是 OpenResty 真正的目标:</p>
<blockquote>
<p>逼所有程序猿变成产品经理</p>
</blockquote>
<p>)</p>
<h2 id="tlog">TLog<a class="headerlink" href="#tlog" title="Permanent link">¶</a></h2>
<ul>
<li>.5h 决定嗯哼</li>
<li>2.h 完成上篇</li>
<li>2.5h 完成下篇</li>
</ul>PyQt4 之消失在 Sierra2017-08-08T00:00:00+08:002019-09-08T12:14:36+08:00Zoom.Quiettag:blog.zoomquiet.io,2017-08-08:/pyqt4macos.html
<h3 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
<p>最近在折腾 Qt , 因为在 mac 中开发运行在 win10 中,
用 PyQt 是必然选择哪.</p>
<p>只是项目是老坑, 所以,没用 Qt5 技术桟, 还是 Qt4</p>
<h2 id="_2">嗯哼<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<ul>
<li>这天 …</li></ul>
<h3 id="_1">背景<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
<p>最近在折腾 Qt , 因为在 mac 中开发运行在 win10 中,
用 PyQt 是必然选择哪.</p>
<p>只是项目是老坑, 所以,没用 Qt5 技术桟, 还是 Qt4</p>
<h2 id="_2">嗯哼<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<ul>
<li>这天要折腾 QR 码识别了</li>
<li>运行 <code>brew install zbar</code></li>
<li>然后,各种问题就爆发了,特别是:<ul>
<li><code>libjpeg.8.dylib</code> 加载不到</li>
<li>PyQt4 镜像丢失</li>
<li>...</li>
</ul>
</li>
<li>重新安装 pyqt 时才发现只有 5.1 系列的 Qt/PyQt 可以安装了...</li>
</ul>
<h2 id="_3">原来<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<p>参考:<a href="https://github.com/cartr/homebrew-qt4">cartr/homebrew-qt4: Homebrew tap for Qt4 and dependent formulae on Sierra</a></p>
<ul>
<li><a href="https://github.com/spesmilo/electrum/issues/2001">Build on macOS Sierra 10.12 without pyqt4? · Issue #2001 · spesmilo/electrum</a></li>
<li><a href="https://gist.github.com/robdvr/271e34785c8a43b1e093d2ee8e612aee">How to install QT4, Poppler, and Cairo on MacOS Sierra 10.12</a></li>
<li><a href="https://stackoverflow.com/questions/36615952/how-can-i-install-pyqt4-for-python-2-7">osx - How can i install PyQT4 for Python 2.7? - Stack Overflow</a></li>
</ul>
<p>要想继续嗯哼 PyQt4:</p>
<div class="highlight"><pre><span></span><code><span class="n">brew</span><span class="w"> </span><span class="n">tap</span><span class="w"> </span><span class="n">cartr</span><span class="o">/</span><span class="n">qt4</span>
<span class="n">brew</span><span class="w"> </span><span class="n">tap</span><span class="o">-</span><span class="n">pin</span><span class="w"> </span><span class="n">cartr</span><span class="o">/</span><span class="n">qt4</span>
<span class="n">brew</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">qt</span><span class="mi">@4</span>
<span class="n">brew</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">cartr</span><span class="o">/</span><span class="n">qt4</span><span class="o">/</span><span class="n">pyqt</span><span class="mi">@4</span>
</code></pre></div>
<p>然后继续的:</p>
<div class="highlight"><pre><span></span><code><span class="o">~/</span><span class="p">.</span><span class="n">pyenv</span><span class="o">/</span><span class="n">versions</span><span class="o">/</span><span class="n">uC2710</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">python2</span><span class="mf">.7</span><span class="o">/</span><span class="n">site</span><span class="o">-</span><span class="n">packages</span><span class="err">༽</span>
<span class="err">༄</span><span class="w"> </span><span class="n">ll</span><span class="w"> </span><span class="n">PyQt4</span>
<span class="n">lrwxr</span><span class="o">-</span><span class="n">xr</span><span class="o">-</span><span class="n">x</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">zoomq</span><span class="w"> </span><span class="n">staff</span><span class="w"> </span><span class="mi">66</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="mi">21</span><span class="o">:</span><span class="mi">50</span><span class="w"> </span><span class="n">PyQt4</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">Cellar</span><span class="o">/</span><span class="n">pyqt</span><span class="mi">@4</span><span class="o">/</span><span class="mf">4.12</span><span class="n">_1</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">python2</span><span class="mf">.7</span><span class="o">/</span><span class="n">site</span><span class="o">-</span><span class="n">packages</span><span class="o">/</span><span class="n">PyQt4</span><span class="o">/</span>
</code></pre></div>
<p>是的, 要在 pyenv 中使用 brew 安装的 pyqt 得:</p>
<ul>
<li>在对应版本环境的 site-packages 中使用 <code>ln -s</code> 关联到系统环境的库</li>
<li>就 Qt 而言要链接两个东西:<ul>
<li><code>sip.so -> /usr/local/Cellar/sip/4.19.3_1/lib/python2.7/site-packages/sip.so</code></li>
<li><code>PyQt4 -> /usr/local/Cellar/pyqt@4/4.12_1/lib/python2.7/site-packages/PyQt4/</code></li>
</ul>
</li>
</ul>
<p>PS:</p>
<p>同理: OpenCV 也一样:</p>
<ul>
<li>通过 brew 一致安全稳定的自动化编译安装到系统环境中</li>
<li>然后, 手工通过链接形式加载到对应 pyenv 版本环境中</li>
</ul>
<p>所以, macOS 本质是 UNIX 系统,
用 linux 的环境配置思路是好的,
但是,又为了易用, macOS 也进行了各种妥协, 好在程序猿界总是能第一时间给出对应的嗯哼</p>
<p>只是不通过 google 简直了,不知道何时才能从弥散回来的文章中知道嗯哼...</p>
<blockquote>
<p>请上苍保祐能翻墙的人民吧...</p>
</blockquote>
<h2 id="_4">更新<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<ul>
<li>170809 blogging</li>
<li>170808 inti.</li>
</ul>GC4S19E51🐙/ as the writer2017-06-13T20:42:00+08:002020-07-19T12:24:12+08:00ZoomQuiettag:blog.zoomquiet.io,2017-06-13:/170613-GC4S19E51-as-wirter.html<h1 id="gc4s19e51-as-the-writer">GC4S19E51🐙 as the writer<a class="headerlink" href="#gc4s19e51-as-the-writer" title="Permanent link">¶</a></h1>
<blockquote>
<p>当写作成为能源时…</p>
</blockquote>
<h2 id="_1">坏塌<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>丫的,李雷发明的 <code>代笔机</code> 坏了,
收了我10个鸡腿的饭票,
在我终于需要给出份儿情书时,却拿不出一篇能 …</p><h1 id="gc4s19e51-as-the-writer">GC4S19E51🐙 as the writer<a class="headerlink" href="#gc4s19e51-as-the-writer" title="Permanent link">¶</a></h1>
<blockquote>
<p>当写作成为能源时…</p>
</blockquote>
<h2 id="_1">坏塌<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>丫的,李雷发明的 <code>代笔机</code> 坏了,
收了我10个鸡腿的饭票,
在我终于需要给出份儿情书时,却拿不出一篇能读的.</p>
<p>我怒问:"怎么回事儿哪? 行不行哪…"
"上周就知道有问题了, 只是没空修理而已."
"赶紧的, 下周就光棍节了"
"好的,好的, 要不一起去修理吧, 最近用电量番了四倍,文章质量却不稳定了."
"行,反正现在就这事儿算个事儿...."</p>
<p>一没留神, 就和雷同学站在上百米高的岩洞里了,</p>
<p>我很蒙:"呃…我们在哪儿?!"
李雷象看白痴一样:"你不是要一起来修理 代笔机 嘛?
其实是个缩微宇宙,
先对上千万颗行星进行自动进化,
从中选出来历史流向最象地球的这一颗,
只要表演点神迹, 灌输写作是唯一的生命真理,
然后引导他们向 文曲星神 献祭好文章,就能获得能源,
这样,我们就能持续获得无数体裁的文章,
再简单的过滤分类一下, 就能随时提供命题文章了."</p>
<p>我大惊:"嗯哼? 你这是奴役, 奴役整个星球…"
"乱说,明明是相互协作, 他们一样有生老病死,和我们没有什么不同."
"那只是奴役步骤多了几个阶段而已…"</p>
<p>争吵中,我和雷同学稍微伪装了一下(戴上绿色的耳朵),
乘正方体的漂浮船,假装从太空降落到中心广场.</p>
<p>雷同学提醒:"注意,跟着我, 大拇指向下表示高兴, 当然, 这是我乱教他们的..."</p>
<p>长的象紫皮变色龙的当地智慧生物们兴高采烈的聚集了过来,</p>
<p>其中最肥的那只,上前迎接我们:"敬爱的代理人, 很高兴你又从 星神 来访了"
"尊敬的总总统阁下, 为什么你们献祭的文章突然没有感情了? 星神 很不满意."
"不应该哪, 能源一直很稳定,说明神很满意, 大家都开始尝试追求其它意义了."
"等等, 那文章谁还在写?"
"哦, 那是我们伟大的科学家发明的 写作机 在自动进行了"
"什么? 带我们去看看…"</p>
<h2 id="_2">原因<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<p>来到能源中心高塔顶部, 那位异常干瘦的非常鄙视这肥的:
"总总统, 我反复解释过, 可是你根本没有理解的智能哪"
"呃, 卫理思, 这次是给文曲星神 的两位代理人来说明"</p>
<p>雷同学等不及, 直接问:"等等, 你为什么要研究这种机器, 学校里难道没有教, 写作是唯一的真理嘛?"
"我没上过学, 都是自己想的, 所以, 没有人理解我作的事有多么伟大."</p>
<p>"好吧, 你解释一下这个机器的原理吧."
"很简单, 我只是制造了个缩微宇宙,
然后加速进化, 从中选择一颗有合适智能生物的行星,
只要向它们灌输写作是唯一的使命,
献祭文章,就能获得能源, 我就能持续获得无数体裁的文章,
再简单的过滤就能从 星神 那儿换取能源了.
只要返还小部分能源回去就好"</p>
<p>雷同学暴怒:"你这是奴役! 无耻的奴役…"
"怎么会, 只是平等的协作而已, 但是最近提交的文章没变, 不知道怎么的电量加倍了,
要不我们一起去看看?"</p>
<p>依然一闪神, 就和两位习惯制造奴役的家伙,再次传送到又一级缩微宇宙,
雷同学看不惯 卫理思 的一切行为:"至于嘛, 伪装外星人,还要穿上整个儿假皮肤…"
"呵呵,我自己的小爱好, 对了, 过一会儿, 记得, 大拇指向上表示 高兴哪, 是我乱教他们的..."</p>
<p>我:"嚓…"
我同学:"嚓…"</p>
<p>又是一顿似曾相识无法纠结各种细节的欢迎仪式,
星球总督介绍了唯一的科学家: 唐金,</p>
<p>我们仨儿,默默看着他演示怎么制造缩微宇宙,
并准备如何进行智能诱导...并热情的带我们下去视察,</p>
<p>再再次传送到次次次级缩微宇宙后,
相同的对话,重新在 唐金和卫理思 间重复进行,
突然, 卫理思 终于反应过来,
暴怒的冲向雷同学:
"你竟然创造了我们的宇宙, 只是为了骗我们写作?"
于是,他俩热情的撕打起来,
好在都算科学家, 体力很儿童, 一时不会有事,</p>
<p>我也愿意看到这俩个混蛋受点儿教训,就没有上去拉架.</p>
<p>唐金 站在一边, 听了会俩人的对话, 也反应过来了:
"你们创造了他的宇宙? 他创造了我们的宇宙? 都只是为了写作?"</p>
<p>我只有苦笑: "是的, 你理解正确"
"折腾这么多年, 还四处求来写作教程,
准备给这里的原始生物教授 好中文写作课...
原来只是....
哈哈哈哈哈哈哈哈..."</p>
<p>唐金 崩溃了,驾驶着浮空器, 撞山自杀,
这下我们仨都傻眼了...</p>
<h2 id="_3">解决<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<p>幸好, 缩微宇宙的时间流动也是和空间级别相同缩微的...
我们仨用了4年,才从次次次级宇宙逐层蜕升上来,
我们俩又用了4个月,才摆脱了卫理思 的追杀回到地球宇宙.</p>
<p>不过, 代笔机 居然就这么恢复正常了, 用电量也恢复了原先的水平.</p>
<p>我不解,雷同学说:"卫理思 好歹是名科学家, 逻辑上很明智,
无论他怎么折腾, 对于我只有两种选择:</p>
<ol>
<li>丢掉现在的宇宙,重新构建</li>
<li>继续使用现有宇宙</li>
</ol>
<p>所以, 他作出了合理的选择…"</p>
<p>我却不由总在想, 这个宇宙真正的目的真心是什么?</p>
<h2 id="_4">是也乎<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<ul>
<li>170609 Rick and Morty 那一集..</li>
<li>170610 嗯哼到 writer... 梗儿</li>
<li>170611 1小时完成初稿</li>
<li>170611 小组内怼后, 20分钟,自捋一次</li>
</ul>GC4S18E1s🐙/ 怎样用移动支付通过高铁在一天内尝遍中国美食2017-06-07T20:42:00+08:002020-07-19T12:37:15+08:00ZoomQuiettag:blog.zoomquiet.io,2017-06-07:/170607-GC4S18E1s.html<h1 id="gc4s18e1s">GC4S18E1s🐙 怎样用移动支付通过高铁在一天内尝遍中国美食<a class="headerlink" href="#gc4s18e1s" title="Permanent link">¶</a></h1>
<p>林达 你好:</p>
<p>很高兴这个暑假你终于能来中国了,
虽然算是亲戚, 但毕竟 …</p><h1 id="gc4s18e1s">GC4S18E1s🐙 怎样用移动支付通过高铁在一天内尝遍中国美食<a class="headerlink" href="#gc4s18e1s" title="Permanent link">¶</a></h1>
<p>林达 你好:</p>
<p>很高兴这个暑假你终于能来中国了,
虽然算是亲戚, 但毕竟已经有几十年没有走动了,
要不是在 facebook 舌尖上的中国爱好组里聊起猪脚姜来,
可能永远不知道居然还有外国亲戚.</p>
<p>请转告叔叔阿姨放心,
我们保证这个假期, 你一准吃胖三斤以上, 至少!</p>
<p>前一封信, 你问了很多有关在中国旅行的问题,
虽然网络中有很多攻略,
不过,大多是给旅游者用的, 我们这是回家省亲,
有更实用的, 让我一一道来:</p>
<p>首先, 你的行程, 直飞广州的航班没有北京的多,
而且从西雅图过来, 到北京也更加快,
所以, 先到北京,再转乘高铁, 睡一夜, 一早到广州,刚好可以吃上早茶, 再到家里, 这样最顺.</p>
<p>只是, 提醒一下, 不用带太多现金,不仅不安全, 还不方便.
现在中国越来越多的服务通过手机就可以移动中完成预订,支付, 灵活多了.
比如你一路过来涉及到的交通工具:
地铁, 出租车, 火车, 都可以通过 支付宝或是微信 应用内第三方服务完成支付.</p>
<p>只是也带来新的问题:
支付如此方便, 大家不用去车站排队买票,
导致高铁票永远提前售磬,
所以, 得注意提前至少5天预订.</p>
<p>我们以往聊了很多海外的中国美食,
这下你有三个月的时间可以遍尝正宗的中华料理了,</p>
<p>初步计划是这样的, 你先独自在北京, 探索半天,
然后来广州后, 我们带你按图索骥去扫街.</p>
<p>北京聚集有全国的经典美食, 只是名店分布的也散,
你初来乍到, 在上千万人口的都市中探访实在不易,
推荐直接去 簋街 .
在机场寄存好行李,
用微信中的 滴滴出行 预约个专车,
直接就送到街口, 最好先逛一圈,看看什么最有兴趣, 再决定吃什么.
唯一不推荐尝试的是 豆汁儿 ,
现在已经入夏, 豆汁儿 冬天喝才最过瘾.
其实, 最仪式感的, 还是北京烤鸭, 虽然我感觉不是特别好吃,
但作为你在中国的第一顿,
去全聚德吃半只是很好的, 记住,半只就好, 整只烤鸭四吃,三个人都不一定吃的完.
其它的, 广州都有,
毕竟自古有曰:</p>
<div class="highlight"><pre><span></span><code>食在广州
</code></pre></div>
<p>真心不用在北京吃了.</p>
<p>一般北京到广州都有夜间高铁,
下午七点左右开, 隔天早上六点就到广州南站了.
买卧辅票, 刚好倒个时差.</p>
<p>对了, 来前通过 淘宝网, 买好中国4G电话卡,
下飞机就换上,
这样在高铁上也能随时聊天,看网络剧的.</p>
<p>来广州第一站呢, 我们一起去上下九街,
有年头的老店都在那里,
早茶最是正宗, 仅仅是粥就有几十个品种,
我最习惯吃及第粥…呃好吧, 我承认, 是高考那年,老妈天天喂成习惯的.</p>
<p>反正来中国吃好吃的是最正义的事情了.
其它的并不重要.</p>
<p>以上 ;-)</p>
<h2 id="_1">是也乎<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p><code>好中文的样子</code> 作业要求:
以2017年本省高考作文题为准(港澳台地区可自选一省),在1小时内,写一篇同题作文。</p>
<p>广东高考作文题目为:</p>
<blockquote>
<p>据近期一项对来华留学生的调查,他们较为关注的“中国关键词”有:一带一路、大熊猫、广场舞、中华美食、长城,共享单车、京剧、空气污染、美丽乡村、食品安全、高铁、移动支付。</p>
<p>请从中选择两三个关键词来呈现你所认识的中国,写一篇文章帮助外国青年读懂中国。要求选好关键词,使之成为有机的关联:选好角度,明确文体,自拟标题;不要套作,不得抄袭;不少于800字。</p>
</blockquote>
<p>用时42分钟,在 Ulysses 中嗯哼完成. </p>GC4S16E51🐙/ CPHB2017-05-23T20:42:00+08:002020-07-19T12:36:52+08:00ZoomQuiettag:blog.zoomquiet.io,2017-05-23:/170523-GC4S16E51CPHB.html<h1 id="gc4s16e51-cphb">GC4S16E51🐙 CPHB<a class="headerlink" href="#gc4s16e51-cphb" title="Permanent link">¶</a></h1>
<p>码农私人史 (Chinese/Coder Private Hacking/History Book)</p>
<blockquote>
<p>v17.5.22</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="nv">make</span><span class="w"> </span><span class="nv">up</span><span class="w"> </span><span class="nv">with</span><span class="w"> </span><span class="nv">so</span><span class="w"> </span><span class="nv">many</span><span class="w"> </span><span class="nv">nagging</span>
<span class="k">include</span><span class="w"> </span><span class="nv">soul</span><span class="w"> </span><span class="nv">pieces</span><span class="w"> </span><span class="nv">as</span><span class="w"> </span><span class="nv">debug</span>
<span class="nv">after</span><span class="w"> </span><span class="nv">review</span><span class="w"> </span><span class="nv">first</span><span class="w"> </span><span class="nv">release</span>
<span class="nv">re</span><span class="o">-</span><span class="nv">back</span><span class="w"> </span><span class="nv">coding</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nv">nothing</span>...
</code></pre></div>
<h2 id="_1">前言<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>近来看过一部剧集: <code>This Is Us</code> (中 …</p><h1 id="gc4s16e51-cphb">GC4S16E51🐙 CPHB<a class="headerlink" href="#gc4s16e51-cphb" title="Permanent link">¶</a></h1>
<p>码农私人史 (Chinese/Coder Private Hacking/History Book)</p>
<blockquote>
<p>v17.5.22</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="nv">make</span><span class="w"> </span><span class="nv">up</span><span class="w"> </span><span class="nv">with</span><span class="w"> </span><span class="nv">so</span><span class="w"> </span><span class="nv">many</span><span class="w"> </span><span class="nv">nagging</span>
<span class="k">include</span><span class="w"> </span><span class="nv">soul</span><span class="w"> </span><span class="nv">pieces</span><span class="w"> </span><span class="nv">as</span><span class="w"> </span><span class="nv">debug</span>
<span class="nv">after</span><span class="w"> </span><span class="nv">review</span><span class="w"> </span><span class="nv">first</span><span class="w"> </span><span class="nv">release</span>
<span class="nv">re</span><span class="o">-</span><span class="nv">back</span><span class="w"> </span><span class="nv">coding</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nv">nothing</span>...
</code></pre></div>
<h2 id="_1">前言<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>近来看过一部剧集: <code>This Is Us</code> (中文译作: "我们这一天")
故事从父亲生日当天迎来三胞胎开始,
嗯, 戏剧化的是老三在胎中就死了,
所以,认领了同一天被遗弃的黑人婴儿;</p>
<p>随着生活的展开, 同一天生日的四人,
自然的发展出那么多平易动人的细节,
尽管没有外星人入侵之类的极端情节,
却令人不觉深迷,忍不住要看这一家上下: <strong>然后呢?</strong></p>
<p>虽然一种流行的历史观是:</p>
<div class="highlight"><pre><span></span><code>一切历史都是当代史
</code></pre></div>
<p>但是,有种当代史是没有历史可以对照的:</p>
<blockquote>
<p>计算机技术发展史</p>
</blockquote>
<p>历史上以纯粹思辩为工作的职业一向极其稀少,比如哲学家/数学家, 而且从业人数也一直很少.
但是,随着计算机近30年爆发式的发展,以及随着移动互联网的普及,
计算机技术嵌入到手机/平板/手表等等大众智能产品,
将整个人类社会高速的拉入到可计算的虚拟空间中,</p>
<p>而这个空间正是由大量职业软件工程师以纯思辩能力一行行代码创造出来的.
随着计算机的普及,程序员的人数也快速增长为一种无法忽视的社会族群.</p>
<p>而且,和历史上所有职业有着本质不同:</p>
<div class="highlight"><pre><span></span><code>程序员的终极目标
是创造出人工智能
来替代自己写程序
</code></pre></div>
<p>这种以消灭自身为目标的职业前所未有,将来也不可能再有了.</p>
<p>Google I/O 大会刚刚发布了一系列 AI 服务,
但是,回想入行这么多年, 笔者坚信:</p>
<ul>
<li>计算机技术史和其它历史一样,不应该完全由大公司大事件构成</li>
<li>正如宇宙的主要质量组成是至今无法直接观察的: <code>暗物质</code></li>
<li>计算机技术发展的主要动因还是广大普通的软件工程师</li>
</ul>
<p>如此特别的群体, 却没有任何历史记录是可悲的.
虽然, 市面上流传大量的各种科技公司的厂史类图书,
其中只有伟人们的关键决策和公司的伟大失败或是胜利.</p>
<p>但是,计算机技术的发展史, 应该包含具体软件工程师们的私人史,
有位历史专家说过:</p>
<blockquote>
<p>对历史不感兴趣是最大的愚蠢</p>
</blockquote>
<p>因为我们生存的世界是四维的,
除去当下的空间,更加有意义的一维,就是时间;</p>
<blockquote>
<p>如果你是位时间无感患者,
就无法定位你在人类历史中的位置,
其最主要最明显的症状就是: <code>笨</code></p>
</blockquote>
<p>"大学"有云:</p>
<div class="highlight"><pre><span></span><code>物有本末
事有终始
知所先后
则近道矣
</code></pre></div>
<p>然而长期以来,我们所接受的认知顺序却是由人类到国家,由国家到集体,由集体到个人.
被要求无条件地热爱和服从于前三者,却耻于谈及个人. </p>
<p>所以:</p>
<ul>
<li>CPHB (Chinese/Coder Private Hacking/History Book)码农私人史</li>
<li>计划收集尽可能多的领域程序员私人史,</li>
<li>再来对照主流媒体中的技术发展史,</li>
<li>才能真正理解中国计算机技术发展历史,</li>
<li>进而对老程序员的何去何从,以及新入行的工程师们,</li>
<li>赋予时间感,从而对: <ul>
<li><code>"我是谁, 从哪来, 何处去"</code></li>
</ul>
</li>
<li>这一系列终极问题, 有个正确的思考基础.</li>
</ul>
<p>进一步的,以本书的撰写为借口,
可以认识到更多的和笔者类似,
大多数沉默的永远不可能成名,但是一样热爱技术/生活的程序员,
可能是另外更加重要的动因.</p>
<h2 id="_2">纲要<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<p>一种"当下感"的历史陈述充斥于我们的生活. </p>
<ul>
<li>王朝兴亡更替被描述成一场现代的成功学竞赛;</li>
<li>层出不穷的微博历史集中了现代人各种猎奇的喜好;</li>
<li>还有对"历史"遗物的极端狂热:<ul>
<li>流落海外的圆明园,莫高窟里零散物件被高价买回国内</li>
<li>以作为中华民族伟大复兴的见证...</li>
</ul>
</li>
</ul>
<p>笔者作为程序员已超过15年, 亲身体验了技术飞速发展过程中,
普通工程师竭力挣扎的所有细节,
也终于意识到, 这种挣扎将永远不可能出现在正史以及教科书中,
好在, 也拜技术的发展,
当前只要我们愿意, 随时可以通过各种免费平台撰写/发布电子书.</p>
<p>所以,为自己所在族群写一部历史书的念头就自然发生了.
--- 俗称 geek/nerd/hacker 的族群,
是这样一种奇怪的生物:</p>
<blockquote>
<p>输入咖啡和泡面
等一段时间
就可以输出无限多种:
程序/软件/应用/平台/服务/... </p>
</blockquote>
<p>但是,我们也是娘生爹养, 一把屎一把尿拉扯起来的,
是什么,或是什么时刻/事件,将我们从普通人变成了程序员?
我们的学习经历, 工作体验, 和其它职业有什么不同?
我们又自发组织成一个个技术社区,来直接对技术进行推动,这又对各大著名公司的发展产生了什么影响?
...等等,</p>
<p>记录/反省/总结以上类似都可以认真挖掘下去的问题,
即为本书的主题宗旨.</p>
<p>因为是私人史和技术史的交织,
所以, 从信息来源上, 计划:</p>
<ul>
<li>技术史, 从公开渠道收集汇总</li>
<li>私人史, 召集志愿者采访/追踪/自我撰写</li>
</ul>
<p>写作要求上,期望如维基百科类似,变成一个可以持久发展下去的
开放工程:</p>
<ul>
<li>建立一个最小框架和工具集</li>
<li>使本书可以通过社区自我运营</li>
<li>长期增补,每年发布一个版本以供下载/打印</li>
<li>最终, 希望形成类似 10.24 码农节的非官方庆祝活动<ul>
<li>大家一起计算, 程序员这一职业消失还有多少年...</li>
</ul>
</li>
</ul>
<p>张爱玲说过一句话:</p>
<div class="highlight"><pre><span></span><code>写实主义的好处是买一奉十
</code></pre></div>
<p>所以, 本书将尽可能的客观记录具体程序员自身的真实学习经验,
和对应领域科技的发展节点性事件,
两者对照后形式什么样的结论,敬请读者自己构造.</p>
<h3 id="_3">目录大纲<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
<ul>
<li>前言</li>
<li>操作系统<ul>
<li>Linux 人物1/2/3</li>
<li>Windows 人物1/2/3</li>
<li>macOS 人物1/2/3</li>
</ul>
</li>
<li>服务运维<ul>
<li>数据库 人物1/2/3</li>
<li>云服务 人物1/2/3</li>
<li>安全运维 人物1/2/3</li>
</ul>
</li>
<li>移动应用<ul>
<li>Android 人物1/2/3</li>
<li>iOS 人物1/2/3</li>
<li>web app 人物1/2/3</li>
</ul>
</li>
<li>智能前端<ul>
<li>全栈 人物1/2/3</li>
<li>智能设备 人物1/2/3</li>
<li>大数据/AI 人物1/2/3</li>
</ul>
</li>
<li>参考索引</li>
<li>后记</li>
</ul>
<blockquote>
<p>每类人物各采写 1--3人
对照人物成长私人史时间节点
在每章尾部给出简要的对应领域技术发展事件</p>
</blockquote>
<h2 id="_4">计划<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<p>本书的创作规划为 9 年, 整体上大致分:</p>
<ul>
<li>0.5年: 准备团队</li>
<li>7年: 通过完成4本专业图书来进入4种不同的领域<ul>
<li>从而打入圈子, 并进行采访</li>
</ul>
</li>
<li>1.5年: 通过运营对应的图书撰写社区,持续的发布版本</li>
</ul>
<h3 id="_5">团队筹备<a class="headerlink" href="#_5" title="Permanent link">¶</a></h3>
<p>团队组成:</p>
<ul>
<li>职业记者一名, 担当采访顾问</li>
<li>主创至少两名, 以便相互激励</li>
<li>编辑一名, 作为文字校对/第一读者,始终以可出版为标准来要求所有文字的形成</li>
<li>志愿者保持在4名左右, 负责联络/线上运营/线下活动组织</li>
</ul>
<p>召募条件:</p>
<ul>
<li>对 CPHB 工程理解</li>
<li>对私人史创作有兴趣</li>
<li>能进行简单的英文写作/对话</li>
<li>有编程经验优先</li>
<li>有写作经历优先</li>
<li>有海外学习/工作经历优先</li>
</ul>
<p>进入流程:</p>
<ul>
<li>内部推荐</li>
<li>面试</li>
<li>笔试</li>
<li>试作: 3000字人物小传, 以及采访笔记</li>
<li>任务认领, 开始协同</li>
</ul>
<p>退出流程:</p>
<ul>
<li>主动申请/内部举报</li>
<li>面谈</li>
<li>任务交接</li>
<li>关闭相关资源权限</li>
<li>正式退出</li>
</ul>
<h4 id="_6">采访模板<a class="headerlink" href="#_6" title="Permanent link">¶</a></h4>
<p>关注个人自然成长同技术自觉成长相互印证:</p>
<ol>
<li>之初<ul>
<li>几几年生人?</li>
<li>幼儿园? 小学? 初中? 高中?</li>
<li>儿童时期印象最深刻的是什么?</li>
<li>喜欢过什么? 围棋?漫画?军事?...</li>
<li>是家庭/地域/饮食... 是什么造就了自个儿的基础性格?</li>
</ul>
</li>
<li>窥径<ul>
<li>高考如何? </li>
<li>哪个大学?</li>
<li>什么专业?</li>
<li>大学时代感印象最深的是什么?</li>
<li>同学们现在联系? 都在作什么?</li>
<li>人缘如何? </li>
<li>谈了几次恋爱? </li>
<li>对人生的规划,女人比重大嘛?</li>
<li>什么时候突然发现,自个儿的人生可以自个儿说了算的?</li>
<li>怎么进入技术世界的?</li>
<li>什么时候,怎么喜欢上的?</li>
</ul>
</li>
<li>得趣<ul>
<li>第一份独立完成可运行的代码是什么?</li>
<li>第一份工作同专业相关嘛?</li>
<li>什么时候开始用IT 技术作为职业的?</li>
<li>怎么开始沉迷于最新技术的?</li>
<li>怎么遇到真心喜爱的技术的?</li>
<li>自个儿的技术世界观怎么演变的?</li>
<li>技术节操怎么形成,又是怎么意识到的?</li>
</ul>
</li>
<li>现实<ul>
<li>自个儿的领导们中,谁对自个儿的影响最大,最久,最深?</li>
<li>什么时候第一次升职的? 什么感觉? 喜欢这种感觉嘛?</li>
<li>什么时候第一次被降职/创业/下岗...? </li>
<li>什么时候想到了独立创业? 怎么行动的?</li>
<li>怎么跳槽的? 旧同事联系嘛?</li>
<li>各种老东家对自个儿的职业成长有什么帮助?</li>
<li>回顾以往,最感谢谁?什么项目?什么机会? 成就了现在的自个儿?</li>
<li>以往各种项目中,什么是最自得的,愿意跟孙儿们念叨的? 什么是打死也不想说的?</li>
</ul>
</li>
<li>理想<ul>
<li>自个儿最想作的是什么?</li>
<li>如果有机会跟20年前的自个儿说句话,想说什么?</li>
<li>技术世界会变好嘛?</li>
<li>怎么看中国It 技术圈? 社区? 公司?</li>
<li>自个儿能/愿意改变什么?</li>
<li>自个儿已经改变了什么?</li>
<li>自个儿想成为什么样的技术人?</li>
<li>自个儿现在作到了什么程度?</li>
</ul>
</li>
</ol>
<h4 id="_7">采写流程<a class="headerlink" href="#_7" title="Permanent link">¶</a></h4>
<ul>
<li>取得 <code>CPHB</code> 编撰资格</li>
<li>开始坚持撰写一篇篇采访稿</li>
<li>通过内部交叉和合,进入图书章节</li>
</ul>
<p><strong>CPHBer 权益</strong></p>
<ul>
<li><code>CPHBer</code> 即 <code>CPHB</code>记者</li>
<li>进入 <code>CPHB</code> 协会名单</li>
<li>进入协会列表:<a href="https://groups.google.com/forum/#!aboutgroup/cphb-committee">CPHB 协会列表</a></li>
<li>优先审阅新进 <code>CPHB</code> 内容</li>
</ul>
<p><strong>CPHBer 资格获取</strong></p>
<ul>
<li>以自己为采访目标,完成 <code>CPHB</code> 初稿</li>
<li>或,独立采访完成任何一位吻合 <code>非著名程序员</code> 标准的<code>CPHB</code> 初稿</li>
<li>要求不小于 4.2 万字的中篇,提交到 <a href="https://groups.google.com/forum/#!aboutgroup/cphb-committee">CPHB 协会列表</a> </li>
<li>或,独立获得吻合 <code>CPHB</code> 内容期待的文章授权, ,提交到 <a href="https://groups.google.com/forum/#!aboutgroup/cphb-committee">CPHB 协会列表</a> </li>
</ul>
<p><strong>CPHB 流程</strong></p>
<ul>
<li>向目标人物陈述 <code>CPHB</code> 工程,获得认同</li>
<li>进行至少三次的当面/在线采访(要求至少有录音)如果是对自己的追忆,可以省略此步骤</li>
<li>根据采访记录,涉及的各种背景/数据/人物,尽力进行调查,确认真实性:<ul>
<li>要求有对应的采访笔记</li>
</ul>
</li>
<li>撰写 <code>CPHB</code> 形成有足够阅读乐趣的完整文章,提交 <a href="https://groups.google.com/forum/#!aboutgroup/cphb-committee">CPHB 协会列表</a> </li>
<li>根据 <code>CPHBer</code> 的建议进行扩充/删减, 通过评审,进入 <code>CPHB</code> 文稿仓库</li>
</ul>
<h3 id="_8">采写<a class="headerlink" href="#_8" title="Permanent link">¶</a></h3>
<p>每个领域的程序员都有自己专属的亚文化(黑话),
往往几句话就知道你的水平和能力界限,
然后, 就开始针对你的水平开始说 "儿童英语",
这是以往惨烈的经历, 自然形成的自我保护的技巧.</p>
<p>所以, 想接近程序员, 并采访到真正的成长史,
必须用作品进入:</p>
<h4 id="_9">入圈<a class="headerlink" href="#_9" title="Permanent link">¶</a></h4>
<p>选择计算机四大主要技术方向,
自学并完成可用作品,并形成电子书, 来完成入圈仪式,
以此为台阶真正进入社区,以结识合适的目标人物来采访;</p>
<p>预期进行的图书写作有:</p>
<ul>
<li>操作系统领域<ul>
<li>Plan 9 配置和日常使用基础</li>
</ul>
</li>
<li>服务运维领域<ul>
<li>PostgreSQL 迷你书 </li>
</ul>
</li>
<li>移动应用<ul>
<li>Kotlin 入门指南</li>
</ul>
</li>
<li>智能前端<ul>
<li>Vue.js 结合 QPython 快速完成嵌入式智能硬件应用</li>
</ul>
</li>
</ul>
<h4 id="_10">目标<a class="headerlink" href="#_10" title="Permanent link">¶</a></h4>
<ul>
<li>还原真实的自主成长历程</li>
<li>个人角度回顾重要中国软件历史事件的切面</li>
<li>给自身以及后学者,留下软件发展史的私人史实</li>
</ul>
<p>可能引发的复利:</p>
<ul>
<li>对没有日记习惯的程序员,及时形成比较客观的记录个人传记</li>
<li>总结出在中国教育制度下进行突破性自主成长的可用方法集</li>
<li>给后来者留下工程师文化史記(包含共同的图书/漫画/影视/游戏/...)</li>
</ul>
<p>潜在问题: 任何媒体的介入都将引发采访人的表演化美化英雄化豪杰化,对策:</p>
<ul>
<li>学习使用 <a href="https://site.douban.com/widget/notes/2002622/note/141463955/">《纽约客》的采写规范</a> 的技巧和原则</li>
<li>应该进行大量的周边采访,以便进行交叉事实核定</li>
<li>但是,这样一来,采访动机就很难解释,难以进入自然交流的状态</li>
<li>所以,要先说明私人史的必要性,发起大家自行回顾,记述,然后在特定场合进行交流</li>
<li>或是,在各种线下活动时,对所有讲演人进行采访追踪</li>
<li>因为,这些人基本吻合所有条件:<ul>
<li>愿意分享</li>
<li>敢于总结</li>
<li>擅长交流</li>
</ul>
</li>
<li>可以用社区讲师名录的理由,启动</li>
<li>预计三五年,才能出篇靠谱的私人史...</li>
</ul>
<h3 id="_11">持续发布<a class="headerlink" href="#_11" title="Permanent link">¶</a></h3>
<p>在团队形成, 完成主要领域进入,并锁定10位样本目标后,
即: 图书主体内容完成 80% 时,
可以进入持续发布阶段:</p>
<ul>
<li>基于 gitbook 或是其它平台</li>
<li>通过 github 组织工程</li>
<li>自动关联完成编译和发布</li>
<li>设计页面模板, 追加评注插件</li>
<li>开通各种反馈/增补渠道</li>
<li>在各种社区活动中试读,推荐本书</li>
<li>每年程序员节, 发布一个大版本</li>
<li>和出版社合作, 对发布版本试印小批量实体书作为技术大会的礼品来传播</li>
<li>和直播平台合作, 语音化图书,进一步在不同的阅读场景中推荐</li>
</ul>
<h2 id="_12">是也乎<a class="headerlink" href="#_12" title="Permanent link">¶</a></h2>
<div class="highlight"><pre><span></span><code>多年唠叨爨成书
内里多少糟心血
回望初心NAIVE
伏首作事忘前程
</code></pre></div>
<ul>
<li>17.5.19 好中文间书公司线下课程直播</li>
<li>17.5.20 直播录音复听两次, 小组内部讨论一次</li>
<li>17.5.21 个人初稿</li>
<li>17.5.22 个人和合,追加相关社区基础流程</li>
<li>...</li>
</ul>GC4S15E51🐙/ 良人2017-05-21T20:42:00+08:002020-07-19T12:36:27+08:00ZoomQuiettag:blog.zoomquiet.io,2017-05-21:/170521-GC4S15E51goodman.html<h1 id="gc4s15e51">GC4S15E51🐙 良人<a class="headerlink" href="#gc4s15e51" title="Permanent link">¶</a></h1>
<blockquote>
<p>v17.5.17</p>
</blockquote>
<div class="highlight"><pre><span></span><code>一剑萍身闯四海
温柔良善不求报
旧家流离非自愿
别屋完满误入迷
渣男逻辑尽无错
欢喜由他无关汝
强释 …</code></pre></div><h1 id="gc4s15e51">GC4S15E51🐙 良人<a class="headerlink" href="#gc4s15e51" title="Permanent link">¶</a></h1>
<blockquote>
<p>v17.5.17</p>
</blockquote>
<div class="highlight"><pre><span></span><code>一剑萍身闯四海
温柔良善不求报
旧家流离非自愿
别屋完满误入迷
渣男逻辑尽无错
欢喜由他无关汝
强释冷暴逼自惠
未满当年终破散
渡厄尽劫又启程
良人何在弗挂心
读书劈柴看世界
</code></pre></div>
<h2 id="_1">崩<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>新婚之夜: "亲戚来了,今晚先休息吧…"
一星期后: "没状态, 睡吧"
一个月后: "今天加班"
两个月后: "累了"
入秋:"我已不喜欢你了"</p>
<p>温柔想, 一定是领证在 四月一日 的原因.</p>
<h2 id="_2">前尘<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<p>温柔 自小就懂, 爸对妈并不够好,
因为还有另外两个小妈,
虽然都离婚了, 那为什么妈妈不能是爸爸的唯一呢?</p>
<p>好在, 两人对 温柔 是上心的,
即使爸妈还是分离了,
至少使 温柔 变成爽朗的大姑娘,
主动选择商科 , 并不因为父亲从商,
而是为了用商业来改良世界.
大学期间, 温柔独自游历了21个省,
美国日本尼泊尔也独自去过,
在那次深入四川边远学校的公益巡讲中,
温柔给自己的标签是:</p>
<div class="highlight"><pre><span></span><code>敢想敢实现
爱读书
爱运动
爱音乐
爱帮助别人
爱说爱交流
</code></pre></div>
<p>向学生们展示 <code>我相信</code> 的关键词:</p>
<div class="highlight"><pre><span></span><code>世界等着我去改变
想做的梦<span class="w"> </span>从不怕别人看见
抛开烦恼<span class="w"> </span>勇敢的大步向前
我就站在舞台中间
我相信我就是我
我相信明天
我相信青春没有地平线
我相信自由自在
我相信希望
我相信伸手就能碰到天<span class="w"> </span>
<span class="nv">I</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="nv">believe</span><span class="w"> </span>每一刻都精采万分
</code></pre></div>
<p>持着正能量如此饱满的宣言,
温柔 以身作责践行之,
刚毕业, 先自费东南亚4国旅游100天,
回来闯过8轮面试, 获得去巴西实习的机会,
在全球第二大压缩机制造商总部实习一年,
完成学生向职业人士的转变,
同时掌握葡萄牙语,
紧接着, 在阿根廷分部完成转正培训,
回派北京在中国分部工作.
毕业仅30个月, 就进入了自主稳定的人生阶段.</p>
<h2 id="_3">破旧离<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<p>毕业散伙宴当晚, 才注意到他的,
在班里从不耀眼,
一直瘦弱的忧郁安静男子,
因为走的晚, 又只有他俩都没伴,
只好结伴回宿舍,
结果坐路灯下深聊一晚,
温柔不知道被男孩儿还是男孩家的幸福安定打动,
在东南亚旅游时,通过短信/邮件, 远程谈上了恋爱,
回国时, 从广州上岸没回家, 径直火车先去天津见了他,
和他父母;</p>
<p>回国后,每周赶回天津见面,
一起环台湾自行车旅游时,
在台南安平古堡下,求婚成功,</p>
<p>温柔知道他不能离开天津,
回来谁也没商量, 先离职, 孤身回天津, 再找工作,
天津的机会的确比北京少,
新岗位虽然也是市场, 但和原先传统制造业的完全没关联,
是负责新媒体市场推广的,
不仅要从头学, 而且, 薪酬也降了一大半.</p>
<p>人道是:"有情饮水饱"</p>
<p>温柔认为终于找到了自己的安定.
所以, 在他说出:"我已不喜欢你" 后,
依然顽固的认为可以弥补,
包括家人也认为都是温柔以往太强势, 不够温柔,
所以只要改变自己,一切会慢慢回来.</p>
<p>四时衣物, 主动购置,放在就手的地方;
关注他热爱的球队, 周边及时买, 比赛及时提醒,
无论工作多忙,一定按时回家作饭,
自学各种料理, 寿司/咖喱面/煎牛扒…
他闷头吃完, 道声谢, 再不言语, 回床打游戏看电视,</p>
<p>结婚半年, 一次他脚受伤在家修养, 整整三天,
温柔请假陪护, 喂水喂饭擦药擦身, 无微不致,
他沉默寡言,
去医院复诊时坦白:"和你在一起,感觉象坐牢"</p>
<p>往年积累的所有正能量终于耗尽,
温柔 接受公司的调岗,
在婚后第七个月另十一天,回到北京,
投入更复杂激荡的工作,
不再对着越来越冷漠的他和家,
恢复了些生气.</p>
<p>隔年换季, 习惯性感冒,
温柔这次身边谁也没有,
软在床上三天, 向丈夫求助, 没回应.
终于养回点精神,再电话时,有力气发火了:
"你不爱了也行, 但是在一起五年了, 一点儿亲情也没有嘛?
为你, 我付出了一切, 你怎么能这么不仗义?! "</p>
<p>终于, 他来了依然相对无言,
温柔思前想后, 止不住泪,
到半夜泪干了, 心眼也明了:
"你什么时候开始不喜欢我的"
"结婚前"
"那为什么要结婚"
"那时, 还是有点喜欢的, 而且有家长的压力, 你对我好也是感动的"
"去年十一, 回我家过节, 你在阳台打了一个小时的电话,跟谁?"
"呃…前, 前同事, 相互吐槽老东家嘛"
"是那个抽屉里纸条上约你一起吃凉皮的同事?"
"你怎么知道的?"
"…"</p>
<p>他依然没留宿,即使回不了天津,</p>
<p>温柔没费什么劲就查明了他和她的事,
打印好证据,
突然回到天津, 又一夜深聊,
这次现场有他的父母,
他父亲慨叹:"我们家祖上八代也没出过这种事儿哪."</p>
<p>温柔更想不通的是,
他婚前就忍不住劈腿的,
比自己无论学识/身材/容貌/谈吐, 都是路人级别的.</p>
<h2 id="_4">可能未来<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<p>温柔, 不回家.
交割了天津的一切,
只剩3箱私人物品, 快递回老家,
再次孤身回北京.</p>
<p>可以重新开始嘛?</p>
<p>23到28, 人生最宝贵的5年,消耗在曾认定的"良人"身上.</p>
<p>好在, 温柔还是那个正义善良的温柔,
即使一起喝酒,回忆,愤恨到渗泪,
拍肩膀时, 依然习惯性的轻轻来.
只要别人说话, 一定认真的盯着对方的脸,
合照一定会微笑,
无论什么情况,都必须微笑的温柔.</p>
<p>这种级别的好姑娘, 按照历史惯例,
总是要被渣男拱过的.
温柔的父母, 也早就各自请大师算过八字,
命中有离人这一劫.</p>
<p>我想, 这是上苍对她未来太过辉煌的平衡吧.</p>
<p>现在的温柔,
已实实在在的负责多达15人的团队所有事务了,
肩负400万订阅者级别的公众号,
所有文案/活动的从策划到执行,
虽然, 从体制上温柔可能永远不可能转正,
但是, 那又如何,
在北京, 地球上机会最多的城市之一,
只要温柔愿意, 随时可以扼住又一个机会,
也许回到巴西, 和绿瞳美男组成新家庭,
也许回到斯里兰卡, 创立自己的商业品牌,
也许去新西兰, 开创互联网商业王国,
也许…</p>
<p>只要温柔愿意, 一切未来的可能都能发生,
因为温柔从未中断践行多年前对自己的定义:</p>
<div class="highlight"><pre><span></span><code>敢想敢实现
爱读书
爱运动
爱音乐
爱帮助别人
爱说爱交流
</code></pre></div>
<h2 id="_5">采访<a class="headerlink" href="#_5" title="Permanent link">¶</a></h2>
<ul>
<li>2370天前, 和温柔被选中进入公益巡讲</li>
<li>40天后, 完成巡讲, 期间交流10小时以上</li>
<li>互留联系方式,但是,半年后,因为出国,基本失联</li>
<li>1566天前, 从活动组织方朋友那儿无意获得温柔的微信号,恢复联系</li>
<li>221天前, 才得知在北京工作</li>
<li>118天前, 成功邀请她到一个活跃的有北京朋友们在的微信群, 恢复比较正常的日常嗯哼</li>
<li>37小时前,半夜, 温柔才从工作中脱身, 在 NB堂, 精酿啤酒屋, 完成了无意中的快速采访</li>
<li>飞机上根据录音, 和以往的交流记录,完成初稿</li>
<li>又42小时,通过邮件获得授权</li>
<li>再修订两稿,得以发布为作业</li>
</ul>GC4S14E51🐙/ 真实的如同假装2017-05-12T20:42:00+08:002020-07-19T12:35:56+08:00ZoomQuiettag:blog.zoomquiet.io,2017-05-12:/170512-GC4S14E51true4frake.html<h1 id="gc4s14e51">GC4S14E51🐙 真实的如同假装<a class="headerlink" href="#gc4s14e51" title="Permanent link">¶</a></h1>
<p>十年修得同船渡</p>
<div class="highlight"><pre><span></span><code>百年修得共枕眠
千年修得亲囡囡
万般还得前世债
</code></pre></div>
<h2 id="_1">学区房<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>四年前初夏闷热的傍晚,
在 …</p><h1 id="gc4s14e51">GC4S14E51🐙 真实的如同假装<a class="headerlink" href="#gc4s14e51" title="Permanent link">¶</a></h1>
<p>十年修得同船渡</p>
<div class="highlight"><pre><span></span><code>百年修得共枕眠
千年修得亲囡囡
万般还得前世债
</code></pre></div>
<h2 id="_1">学区房<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>四年前初夏闷热的傍晚,
在徐汇这个楼盘, 小郭已经站了至少200天,
却没卖出去一套, 要不是还在兼职早饿死了.
虽然地处上海核心区,
又是 世外/盛大/逸夫/爱菊 四大私立中学所在学区,
理论上只要有楼放盘, 都应疯抢的,
问题在, 这楼是30年代的, 而且无产权,仅售使用权,
精明的上海人, 买楼都是用来投资的,
这种升值有限的, 自然无人问津.</p>
<p>"咦, 这位上周来拿过资料,
只是, 开的车才20几万, 将军肚尺寸一般, 不象小开, 买的起嘛?"</p>
<p>小郭还是很职业的迎了上去;
"先生…"
"上次说的那套房还在吧?"
"呃, 在的, 当然在的."
"好!" 从身后拽出个 LINING 32升中桶包, 往桌上一放:
"这是370万现金, 我们希望尽快入住."
"哗…真港都…" 周围的同事都看傻了.</p>
<p>是的, 我们的主角不是小郭, 是决然举债提前6年,
为女儿抢下学区房的小七.</p>
<h2 id="_2">普通人<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<p>小七在组里时不时抛出些断言,比如:
"我本质上就是个臭流氓"</p>
<p>然后就消失在各地的酒桌上,
神奇的是, 隔天清醒爬回来, 总能赶上大家的进度,
文稿照交,和合照怼, 啥也不缺席.</p>
<p>作为组里唯二的两位男学员,
又都成家, 相对无趣很多,
所以, 为了减轻其它同组的压力,
主动认领了小七,
原准备用练习了37年的春秋笔法,
虚构出位鲜明的沪上成功人士.</p>
<p>但是, 42分钟远程语音采访下来,
发现普通到一定程度, 其实也足够传奇了.</p>
<p>小七和那个时代很大一批同龄人一样,
祖藉北上广一线大城市,
但随着父辈响应国家号召,
随着知青政策, 在祖国边疆落了草.</p>
<p>小七高中前, 生长在新疆,
骑马,杀羊,怼过狼, 也联合小伙伴抢过女朋友们.
原以为能在瀚海上驰骋一生.
没想到命运将他抛回没有翻散/手抓/烤馕/… 的故乡.</p>
<p>小七和其它从 边疆 回归子弟一样,
拼力自我改造多年, 才洗掉羊膻味儿, 重新变回上海人,
但是, 流利的上海话,
时髦的外表,并没有改变内在奔放的 边疆 心胸.</p>
<p>小七出色的酒量, 以及待人接物的豪爽,
有力的支撑他稳步在销售岗位持续升迁,
积累的渠道/经验,
推动他开始向富贵人生挺进时,
女儿的到来,
将童年那些美丽的倩影,
逐一复活在眼前,</p>
<p>小七被自己顿悟了:
负责5000万, 8000万, 或是 2亿销售额又怎样?
即使能轻松作到又怎样?
销售本身并不创造什么新的价值,
事业再成功, 没有传承,没有创造的人生本质是零.</p>
<p>正如他在作业中描述的那个瞬间:</p>
<div class="highlight"><pre><span></span><code>扭头 微风中 女儿追逐着肥皂泡
身影稚嫩 分外可人
自己却只能气喘的滩在远处看着.
</code></pre></div>
<p>看清自己正在逐渐虚无的状态,
小七决定必须以身作责:</p>
<div class="highlight"><pre><span></span><code>教会女儿 良好的锻炼/阅读 习惯,
</code></pre></div>
<p>这才有可能和家人一起五福圆满.</p>
<p>儿时, 在边疆高远的天地间熏陶出来的豪气,
摧动小七, 借贷两百多万, 抢下沪上最核心的学区房;</p>
<p>也推动着他从零开始重新奔跑;
不到五年, 完成全马, 并自费参加专业教练班,
可以成体系的给家人朋友同事们分享运动技能;</p>
<p>也推动着他挤出时间参与 好中文 写作班,
有意识的逼自己在学员们的压力中,
持续练习写作,</p>
<p>以便创造性的记述自己的思考,
为女儿, 未来延续不绝的家族, 留下有意义的记忆.</p>
<h2 id="_3">未来<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<p>未来, 未来的就是没有到来的未来,
未来的一切,都是当下自己所有作为的延伸和累积.</p>
<p>小七的过去, 被他自己正视并珍视,
在不惑的门口, 小七完成了人生观的升级,
调整了内观的重心,
更加从容的认真活在当下,
不报怨, 不责难, 接受应许, 感念所得,
虽说采访中,反复在念叨各种佛教概念,
听起来好象又一位民间仁波切,
但是, 真的要能一直假装到底,
那和真正的了悟有何区别?</p>
<p>开悟即通达,祝一直普通的小七, 可以坚守这普遍的幸福到百年后.</p>S13E15/ 一生所求2017-04-21T20:42:00+08:002020-07-19T12:35:13+08:00ZoomQuiettag:blog.zoomquiet.io,2017-04-21:/170421-S13E15-fullifeask.html<h1 id="s13e15">S13E15: 一生所求<a class="headerlink" href="#s13e15" title="Permanent link">¶</a></h1>
<p>嗯哼版: <a href="https://www.lizhi.fm/2193128/2597430407374436870">在线收听 - 荔枝FM</a></p>
<div class="highlight"><pre><span></span><code>未来不来只能现在
代码写完 却编译不出
功能终究 总是被放弃
远方的你 漂泊太空外 …</code></pre></div><h1 id="s13e15">S13E15: 一生所求<a class="headerlink" href="#s13e15" title="Permanent link">¶</a></h1>
<p>嗯哼版: <a href="https://www.lizhi.fm/2193128/2597430407374436870">在线收听 - 荔枝FM</a></p>
<div class="highlight"><pre><span></span><code>未来不来只能现在
代码写完 却编译不出
功能终究 总是被放弃
远方的你 漂泊太空外
苦海 翻起爱意
人世间 终难逃死去
相遇 竟不可接近
或我 应相信这是命运
灵感逝去 永不再来
无言独坐 放眼心神内
生命总在凋谢
不会复生
一生所求隐约
在虚空间
苦海 翻起爱恨
人间世 难逃避死亡
相遇 竟无法亲近
或我应该 相信命运
</code></pre></div>
<h2 id="_1">( ̄▽ ̄)<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<ul>
<li>170421 再和合</li>
<li>170417 读改</li>
<li>170415 创建</li>
</ul>S12E01/23世纪 学校2017-04-18T20:42:00+08:002020-07-19T12:23:39+08:00ZoomQuiettag:blog.zoomquiet.io,2017-04-18:/170418-S12E01-23cc.html<h1 id="s12e0123">S12E01:23世纪:学校<a class="headerlink" href="#s12e0123" title="Permanent link">¶</a></h1>
<h2 id="_1">无意蓄水 垒世界<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>大学前, 一直生活在兰州某处军工企业的福利区;
小学前, 就开始挖掘职工图书馆了;
三年级前, 所 …</p><h1 id="s12e0123">S12E01:23世纪:学校<a class="headerlink" href="#s12e0123" title="Permanent link">¶</a></h1>
<h2 id="_1">无意蓄水 垒世界<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>大学前, 一直生活在兰州某处军工企业的福利区;
小学前, 就开始挖掘职工图书馆了;
三年级前, 所有能找到的凡尔纳小说都看过至少一遍;
非常敬仰 "神密岛" 中那位无所不能的工程师,
仅用随身携带的极少工业制品,
就能在荒岛上逐渐再制出现代化生活.
也从中知道了一种神奇的职业: 博物学家.</p>
<p>学校教育当然是无法满足博物学家自我成长的, 即便是山寨版本的,
无意间, 启动了原始的私人知识库筑造:</p>
<ul>
<li>订阅各种科学相关报刊</li>
<li>计有:</li>
<li>奥秘</li>
<li>少年科学</li>
<li>科学画报</li>
<li>国际航空</li>
<li>航空知识</li>
<li>兵器知识</li>
<li>世界军事</li>
<li>…</li>
<li>然后:</li>
<li>有感兴趣的,折页</li>
<li>分门别类装档案袋</li>
<li>另外找硬皮本, 手工索引知识点:杂志期数/页数</li>
</ul>
<p>但随着积累的持续, 发现自己想出来的各种索引方法都不好用,
进一步的, 明确课堂上教的, 和实际期待的相差太远;
但是, 自己的思维/谈吐/写作等等, 并没有什么不正常的,
那么, 一定是这个世界有问题.</p>
<h2 id="_2">中学作文 溃高考<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<p>初三某次语文课, 作业要求是不限内容的小说;
猛然间, 意识到这是集中阐述自己教育观的最方便渠道.
于是,用了三个星期, 写成3万字的科幻小说:</p>
<p>23世纪:学校</p>
<p>描述因为被意外冷冻, 从而完成了时光旅行的自己,
在300年后学校中的见闻, 借其人物的言行来回答:</p>
<p>什么是真正的教育</p>
<p>这个一直在思考的问题.</p>
<p>老师很无奈的给了98分, 但并没有在班级上推荐,
因为, 迟交了整整两星期.
其实, 还有更多想讨论的, 没来得及写进去.</p>
<p>2年后, 通过 "童话大王" 的一个小栏目,
关注到有篇微型小说, 作者是烟台小学生,
感觉世界观非常接近, 想办法达成了笔友.
通信往来中, 有次涉及教育, 又被激发出冲动;</p>
<p>这次, 用两个月, 将原先的作文,扩写为15万字,
用一个月誊抄, 然后自己想办法装订:</p>
<ul>
<li>先烧红粗针</li>
<li>烫出一组孔</li>
<li>用细麻绳穿过,系好</li>
<li>再蒙上牛皮纸</li>
<li>变成稿纸组成的自出版图书</li>
</ul>
<p>邮寄费都要了5元.</p>
<p>没想到竟然被邮局弄丢了.</p>
<p>没办法, 再次誊抄,
没忍住, 同时进一步扩充到20万字, 还配了几幅插图,
这次, 只能装订为两本, 并用挂号信邮寄.
终于送达, 心愿完成.</p>
<p>高考也就到来了,
果然考砸,
虽然用写小说练出的语感, 帮助语文考试作文拿到高分,
但, 我是考理科的, 其它科目并不理想.</p>
<h2 id="_3">块垒丛生 待去留<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<p>最终分数, 只能上专科, 虽然也有专升本的后期操作,
却不甘心, 于是重读一年,
重温应试题海教育的一应细节,
那天, 一拿到录取通知书,
冷静的将两次高考的所有模拟卷子扛出去,
认真的放了一把火, 用半小时才烧光近一人高的试卷堆,</p>
<p>是的, 这个世界一定哪里有不对,
这种学习,这般教育,
除了练出老僧般枯树之心外,
全然获得不到什么有用的新能力.</p>
<p>一毕业, 紧接着就业, 城市转战, 结婚, 生娃, 再被创业...
经历各种团队,项目,公司文化,
没有一刻停止, 求生存, 求机会, 求发展,
同时又不自主的持续组建/管理/参加不同的技术社区,
对教育的体验和理解也越加偏激,
有更多的块垒在胸中顽固生长着,
逼着心海的水位越来越高,
准备着, 时刻准备着,
另一个契机能开闸喷薄而出.</p>
<h2 id="_4">嗯哼<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<ul>
<li>170418 再修订, 1400+字</li>
<li>170417 通读增补</li>
<li>170415 通写</li>
<li>170414 整体大纲</li>
<li>170413 修订标题</li>
<li>170410 创建</li>
</ul>S11E01/ 海港 立其诚2017-04-11T20:42:00+08:002020-07-19T12:34:53+08:00ZoomQuiettag:blog.zoomquiet.io,2017-04-11:/170411-S11E01.html<h1 id="s11e01">S11E01: 海港 立其诚<a class="headerlink" href="#s11e01" title="Permanent link">¶</a></h1>
<p>这次要求看一部样板戏, 交出任意形式/体裁的感想来.
对平剧, 实在没积累, 只得用最平常的观后感来记述,
实 …</p><h1 id="s11e01">S11E01: 海港 立其诚<a class="headerlink" href="#s11e01" title="Permanent link">¶</a></h1>
<p>这次要求看一部样板戏, 交出任意形式/体裁的感想来.
对平剧, 实在没积累, 只得用最平常的观后感来记述,
实在不够走心, 主要原因不解释.</p>
<p>为什么选择 <code>海港</code> 样板戏中最不出名的一部戏?
就是因为不出名, 好奇想一探究竟;
并且, 是唯一内容不是解放前的革命故事,
而是贴近当时社会现实生产生活的时代剧.</p>
<h2 id="_1">概要<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>故事很简洁, 上海港里左中右三派人物的交锋:</p>
<ul>
<li>开始, 阶段敌人单独一人, 就以丰富的破坏经验, 用最小行动, 搞出很大规模的混乱</li>
<li>而中间派后进分子, 思想不坚定, 被蒙骗, 无形中拖延了事故解决</li>
<li>最终, 正派有决心有群众有能力, 稳步从容的解决了问题</li>
</ul>
<p>剧情结构也非常传统:</p>
<blockquote>
<p>问题被制造 -> 被发现 ->受阻 -> 后进被感动转化 -> 反动派被戳穿 -> 一切走上正途</p>
</blockquote>
<h2 id="_2">感动<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<p>看的是 1972 北京电影制片厂彩色电影版,
由上海京剧团出演, 很有故事的组合.</p>
<p>标准的毛泽东语录开画,
紧接着演职员表,才入正戏.
这细节, 配合 交响版国际歌,
就非常说明, 当年劳动人民是统治阶级呢.</p>
<p>因为在本地播放, 凡过于文革腔, 难以消受的,都能快速跳过,
所以, 通观下来心态相对平稳.</p>
<p>非常有感觉的:</p>
<ul>
<li>几场表现劳动现场的戏, 舞美设计实在立功了, 自发应用各种现代影视技巧:<ul>
<li>吊车上下</li>
<li>拖车左右</li>
<li>布景前后</li>
<li>灯光内外</li>
<li>… 在有限的舞台空间,用最少的道具,有效营造出丰富的真实感</li>
</ul>
</li>
<li>第四面墙, 根本就不存在:<ul>
<li>继承京剧现代化创新出来的平剧</li>
<li>虽然进行了各种创新</li>
<li>但并没有抛弃原有的京剧舞台语言</li>
<li>特别是电影/电视中, 很少打破的第四面墙</li>
<li>而在这里,人物随时可以抽离剧情, 当众进行内心独白</li>
<li>要是话剧, 看起来很不自然</li>
<li>但戏剧唱段来表现, 却非常自然, 毫不突兀</li>
</ul>
</li>
<li>"我不发火 我不发火 我不发火"<ul>
<li>后来各种影视中出现的,以递进的态度将相同的话反复念出</li>
<li>这种技巧, 原来发源在此</li>
</ul>
</li>
<li>最后反动派潜逃未果, 在海上被抓捕<ul>
<li>惊险过程, 却通过转述得知</li>
<li>反动人物并没有登场, 进行意料中的批斗</li>
<li>这种调度实在高明</li>
<li>用最小成本完成剧情/情绪的表现</li>
</ul>
</li>
</ul>
<p>总之, 远没有想象中的无法直视,
作为一部正剧, 实在诚意满满,
比如那个 "12公民", 算 57年 十二怒汉 的复拍,
但是, 电影主旨和精神内核整个拧了,
远没有 海港这般真诚透亮.</p>
<h2 id="_3">( ̄▽ ̄)<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<ul>
<li>170410 再稿, 900字</li>
<li>170410 初稿</li>
<li>170405 看完</li>
<li>170401 创建</li>
</ul>S10E15/ 帐单废稿2017-04-08T20:42:00+08:002020-07-19T12:34:34+08:00ZoomQuiettag:blog.zoomquiet.io,2017-04-08:/170408-S10E15.html<h1 id="s10e15">S10E15: 帐单废稿<a class="headerlink" href="#s10e15" title="Permanent link">¶</a></h1>
<p>收集 <code>S10E15</code> 上半场积累的文字, 回顾注解为什么放弃:</p>
<h3 id="_1">写是写的最好回报<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
<p>(...没说透)</p>
<p>随时想尝试写点儿什么
问题是写 …</p><h1 id="s10e15">S10E15: 帐单废稿<a class="headerlink" href="#s10e15" title="Permanent link">¶</a></h1>
<p>收集 <code>S10E15</code> 上半场积累的文字, 回顾注解为什么放弃:</p>
<h3 id="_1">写是写的最好回报<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
<p>(...没说透)</p>
<p>随时想尝试写点儿什么
问题是写什么能令自己不焦虑了,
比如当前这 400 字, 只是想回答自己一个问题,
那么, 需要查阅资料,反复论证,一定要挤出一句名言来嘛?
其实, 不必, 写 -> 线性的输出形式本身, 就是对纷乱的思绪的一种强行整理,
那么, 可以自主控制的思维整理, 本身不就是一种福利嘛?</p>
<p>思维混乱不受控制, 那就是精神失常了,
如果不加以舒导, 一定病变的.</p>
<p>所以, 每当对任何事物有评论冲动时, 别怕写错,
先写出来, 反正是否发布还是由自己说了算的.</p>
<p>然后, 就可以享受有输出的放松时间了</p>
<p>![dd-170328.jpg(JPEG 图像,750x1206 像素) - 缩放 (54%)][image-1]</p>
<p>-- ZQ 17.3.28.1420 280+字</p>
<h3 id="_2">怂怼写<a class="headerlink" href="#_2" title="Permanent link">¶</a></h3>
<p>(...太内心化, 无普适性)</p>
<p>习惯的先分析自己的写作敌友:</p>
<ul>
<li>输入: 积累以及选题<ul>
<li>以往的兴趣从很小就被 SiFi 引到科学意义方向了</li>
<li>没有宏大背景 神奇效果 基本不动心</li>
<li>进一步的 程序猿生活 导致收集的资料也偏向 <code>考据党</code></li>
<li>所以: 故事性/情感/鸡汤/… 没有积累 虽然会依样伪装</li>
</ul>
</li>
<li>处理:<ul>
<li>有一定的自动化长考能力: 一个命题入选后,可以比较长时期的自动在头脑中持续思考以及组织稿</li>
<li>习惯的工具是:纸上思维图谱,可以快速将所有想到的点用自己的思路串接起来</li>
<li>过程中, 可以反复调节组块间的关系以及动力 — 阅读动力,用什么核心旨趣来推动发展/阅读</li>
<li>问题在, 这种动力 一般习惯性的选择了程序式逻辑推动...以至多数人看不下去</li>
</ul>
</li>
<li>输出:<ul>
<li>markdown 以及各种结构化文本都非常习惯,并配合有专门定制化 输入法/插件/编辑器</li>
<li>问题在时机: 无论积累/构思/大纲 都可以随时进行,并随时中断</li>
<li>但是,撰写时的连续时空非常重要,无法作到写的正高潮时,被中断去晾个衣服/倒个垃圾什么的回来再继续 HIGH</li>
<li>甚至于, 只要想到得去作哪些永远不可能作完的反复再生的无意义的事儿…</li>
<li>就得,回来专门心理重构个42分钟,才能重新回到文字现场</li>
<li>这应该是病吧, 怎么治修炼中…</li>
</ul>
</li>
</ul>
<p>-- ZQ 17.3.29.1042 470+字</p>
<h3 id="_3">怼不写<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
<p>(...太教条,小聪明, 自己都感动不了)</p>
<p>~ 快速回顾一下以往不写的动机</p>
<ul>
<li>能发表嘛? 如果没有发布渠道,动力消失一半...</li>
<li>有受众嘛? 如果没有明确期待中的读者, 动力消失另外一半...</li>
<li>多久可以获得反馈? 如果基本上不可能有反馈, 动力余额不足...</li>
<li>...</li>
<li>所以, 好象基本上都不是为了自己写</li>
<li>那么, 算是种表演型写手? 只是文字化的演讲而已..</li>
<li>以往, 积累的最多的都是 维基 中的输出:<ul>
<li>因为, 基本上都是邮件列表中, 有人问</li>
<li>然后, 说等等, 俺来写一篇就知道了</li>
<li>最后, 发布出来, 大家一起在我的框架中继续完备</li>
<li>即, 所谓挖坑不埋有人来...</li>
</ul>
</li>
<li>好象, 形成了以上快速正反馈的心理期待模式后, 就很少进入长时间的沉默写作了</li>
<li>即使进行图书翻译, 没有编辑姐姐的摧稿, 基本上也是每100天进入自动怠速状态</li>
<li>可是, 这样好嘛? 对嘛? 值得嘛?</li>
</ul>
<p>-- ZQ 17.3.30.1018 400+字</p>
<h3 id="_4">写作究竟是什么?<a class="headerlink" href="#_4" title="Permanent link">¶</a></h3>
<p>(...老调重弹, 又没有实例,纯粹自己玩概念)</p>
<p>写作应该是自己对自己的倾述
只是不小心刚好有其它人能截获部分心境吧</p>
<p>思维太快,又难以控制,总是纷飞不休,
只有通过写,被控制在线性的一字一字输出时,
才能发现自己真正关心的那条线索,
才能用最触动自己的文字慢慢串起来,
才能令不受控制的心情慢下来,真正跟上身体...</p>
<p>只是写什么,往往在发觉自己在写作时,才有的困挠,
如果只是单纯的和自己对话,就没有那么多目标/策略/气质 诸如此类的选择困难.</p>
<p>但是,这种单纯的对话却是很难确立起来...
因为,自己对自己实在太熟悉了,熟悉到想说什么自己都是明白的,
那还有什么倾述的动力?
嗯哼,实在平时所有的对话,都基于一定要知道点什么,或是让对方同意点什么之类的述求了...</p>
<p>怎么消解这种顽固的功利心理呢?</p>
<p>想来只有借用其它外在的因素来了....
一部能触动内心的电影/电视剧, 代入了其它人的人生场景,
就有了对话的成立,不同世界间信息,或是说心灵能量流动的动力,
即使是徦的...</p>
<p>总之, 写出来总是比死憋在心中直到忘却要好的多....
因为写出来,才知道自己真正在想什么,
而且能过滤掉那些杂乱的背景念头.</p>
<p>当然,写作也是种专门的能力,和武术一样,必须多练习,技艺才能增长,
才能将思想,清晰,有力,简洁的表述出来!</p>
<p>进一步的, 通过写作,能挖掘出自己内心真实的想法;
再进一步, 创造出自洽的世界,失控般看着故事/人物的发展,自己无能为力,变成诅咒般的抄写员...
最深渊的, 应该就是被击穿了识海, 自己受到意外的控制, 在意识丧失的情况下,被某些艺术精灵夺舍, 被代笔输出了神奇的作品...</p>
<p>-- ZQ 16.11.11 640+字</p>
<h3 id="_5">时间感觉<a class="headerlink" href="#_5" title="Permanent link">¶</a></h3>
<p>(...只有情绪)</p>
<ul>
<li>每个人的时间意义是不同的</li>
<li>有的坚定的认为自己使用 word 就是享受就是高效率</li>
<li>有的永远怀疑自己有浪费时间浪费生命的行为</li>
<li>有的....</li>
</ul>
<p>-- ZQ 17.3.30 微信群怼 有感...</p>
<h3 id="_6">怼时间<a class="headerlink" href="#_6" title="Permanent link">¶</a></h3>
<p>(...没说完,没想明白..)</p>
<p>时间一直是不存在的徦想之物呢</p>
<p>宇宙/物理/数学/... 等等原本并没有这东西, 完全人造的一个概念,以及生绑的一系列约定.
但是, 需要时间来拘束行为, 以便衡量行为相关的东西.</p>
<p>其实, 时间对于具体的我, 应该只是参考坐标:</p>
<ul>
<li>一系列特殊的时刻, 有鲜明记忆的时刻</li>
<li>在那些时刻场景/记忆之间, 就是平淡乏味难熬的平日</li>
<li>由有记忆的时刻和无记忆的间隔组合起来的记忆序列</li>
<li>才是对个人有意义的时间...</li>
</ul>
<p>这也直接导致了, 时间在不同人的意识中是完全不同的事物.</p>
<p>除了职业原因, 比如高铁司机, 日常时间都自觉习惯的控制在以秒计算的误差中.
多数人对时间, 空位是应激性的:</p>
<ul>
<li>如果没有其它人/事 来怼</li>
<li>那基本是可以永久性的无意识的浪费时间而不自知</li>
<li>比如说, 现在非常经典的, 刷朋友圈:<ul>
<li>可以习惯敬业的刷一整天</li>
<li>一定非要将今天更新过的所有朋友的信息/照片</li>
<li>都看一遍, 点一次赞不可</li>
<li>否则,睡不了</li>
</ul>
</li>
</ul>
<p>问题来了:</p>
<ul>
<li>当沉迷在自己认为重要的事情时, 现实世界是否真的和这事关联增加了?</li>
<li>当自己越来越习惯甚至于在自己认为重要的事物上效率提高时, 整个人生来看, 价值是在升高嘛?</li>
<li>或是说, 在一个自己认为重要的事物上,花的时间/精力越来越多时, 值得嘛?</li>
<li>...</li>
</ul>
<p>简单的说,就是:</p>
<ul>
<li>要如何才能明确自己作的事是投入产出比最高的?</li>
<li>当别人推荐/建议有关行为效率方面的技巧时, 又如何检验是否吻合自己的人生?</li>
<li>...</li>
</ul>
<p>只是直觉告诉我, 当我这样想时, 一切已经失控了.</p>
<p>-- ZQ 17.3.31 650+字 开始真正初稿</p>[大妈吐糟]小密圈 之功能残念集2017-04-03T19:42:00+08:002020-07-19T12:19:55+08:00ZoomQuiettag:blog.zoomquiet.io,2017-04-03:/170403-chaos-xiaomi.html<h2 id="toc">[TOC]<a class="headerlink" href="#toc" title="Permanent link">¶</a></h2>
<h1 id="_1">[大妈吐糟]小密圈 之功能残念集<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<h1 id="_2">唯有忍受的小密圈<a class="headerlink" href="#_2" title="Permanent link">¶</a></h1>
<p>第一时间下载/注册/安装了...然后, 没明白能干什么..
终于阴差阳错的也 …</p><h2 id="toc">[TOC]<a class="headerlink" href="#toc" title="Permanent link">¶</a></h2>
<h1 id="_1">[大妈吐糟]小密圈 之功能残念集<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<h1 id="_2">唯有忍受的小密圈<a class="headerlink" href="#_2" title="Permanent link">¶</a></h1>
<p>第一时间下载/注册/安装了...然后, 没明白能干什么..
终于阴差阳错的也发布了付费自学圈, 大家进来了,才发现: WTF!</p>
<h1 id="bug-imho">Bug# #IMHO<a class="headerlink" href="#bug-imho" title="Permanent link">¶</a></h1>
<h2 id="_3">先夸奖<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<ul>
<li>和微信的关联太平滑了,简直以为是同一家公司作的<ul>
<li>用微信支付/认证, 完成小密圈的进入</li>
<li>没有任何问题,而且异常的吻合目标人群的分布</li>
<li>至少,俺的所有成员, 都是从微信群转入的</li>
</ul>
</li>
<li>支付作的非常简洁, 提供了所有必要的功能,而没有其它乱来的</li>
</ul>
<h2 id="wtf">WTF!<a class="headerlink" href="#wtf" title="Permanent link">¶</a></h2>
<p>~ 一堆堆的 </p>
<ul>
<li>app 和 网页功能竟然不是一一对应的?!<ul>
<li>app->动态|消息</li>
<li>是所有小圈的综合入口 类似各种 CSM 平台的: dashboard</li>
<li>非常好,非常有用,非常必要</li>
<li>居然 网页版 没有这功能!</li>
</ul>
</li>
<li>要知道:<ul>
<li>任何时候尝试在移动设备上进行大量的文字输入, 都是不人道的</li>
<li>所以, 强行要求用户这么作, 只能 WTF!</li>
<li>而手机上知道动态, 进行复稿</li>
<li>回到桌面, 进入对应的问题/回复 快速输入完成交流</li>
<li>这是最自然的流程了</li>
<li>在 小密圈 完全变成了不可能...</li>
</ul>
</li>
</ul>
<h3 id="uri">虚假的 URI<a class="headerlink" href="#uri" title="Permanent link">¶</a></h3>
<ul>
<li>不知什么原则的设计</li>
<li>小密圈中的所有事物(主题/回复/提问/消息/...) 都没有真正的 URI</li>
<li>变成了一个功能页面的各种 锚点 (path/2/foo.html#/index/758548854 <-- 这种)</li>
<li>虽然地球上首先由 gmail 发明并成功了 SPA(单网页应用)概念<ul>
<li>但, 那是完全的特例, 因为作为一个私人邮箱的界面在一个页面不跳转是合理的</li>
<li>而且, 借助宏大的原创 JS 库, gmail 拥有完备的快捷键体系</li>
<li>可以只用键盘,完成几乎所有邮件管理的操作</li>
</ul>
</li>
<li>可是, 小密圈, 是完全隔离的不同群落的私密圈哪</li>
<li>那么, 当我同时付费进入,以及在经营不同主题的小圈时<ul>
<li>这种虚URI 就引发了各种浏览器的错乱</li>
<li>比如, 无论俺在什么页面, F5/cmd+r 刷新时</li>
<li>结果将是我在的所有小圈按照字母排序第一个圈子的首页</li>
<li>无论刷新时, 俺在哪儿...</li>
<li>WTF!</li>
</ul>
</li>
<li>更加可怕的是:<ul>
<li>网页版 主题发言 的 <code>复制链接</code> 功能提供的<ul>
<li>https://wx.xiaomiquan.com/mweb/views/topicdetail/topicdetail.html?topic_id=...</li>
<li>链接, 根本不是正常的访问链接</li>
<li>而是推广链接, 根本无法正常的在自己的小圈内部, 不同文章中使用</li>
</ul>
</li>
<li>而 app 中的分享:<ul>
<li>则是单向的, 只能分享向 微信/朋友圈</li>
<li>而不能获得链接/对象, 分享给 小密圈中具体的人/主题</li>
<li>也就是说, 俺自己创建的多个小圈, 也是完全隔离的</li>
<li>可以同时分享/发布的内容, 除了手工反复复制, 没有任何其它办法</li>
</ul>
</li>
<li>无论 app/网页, 从消息中进入主题的回复<ul>
<li>都看不到消息提醒的新回复</li>
<li>那东西, 在可能十几屏之下呢...</li>
</ul>
</li>
<li>...</li>
</ul>
</li>
</ul>
<p>也就是说, 从根儿上:</p>
<ul>
<li>小密圈就是一个付费才能进入的残废的 微信群</li>
<li>并不是俺想象中的: 有付费功能的 gmail+邮件列表:<ul>
<li>大家可以在手机和桌面相同的行为</li>
<li>来对具体的一个个主题进行讨论</li>
<li>并可以快速定位/切换不同的主题</li>
<li>...</li>
</ul>
</li>
</ul>
<p>以上, 认真使用 小密圈 42 小时后, 先宏观阐述一下体验,
然后逐一怼一下, 要命的脑残功能们...</p>
<h1 id="bug-imho_1">Bug# #IMHO<a class="headerlink" href="#bug-imho_1" title="Permanent link">¶</a></h1>
<blockquote>
<p>~ 也就是说, 从根儿上:小密圈就是一个付费才能进入的残废的 微信群</p>
</blockquote>
<p>这就是俺第一篇反馈的虚链接 --></p>
<p>https://wx.xiaomiquan.com/mweb/views/topicdetail/topicdetail.html?topic_id=222814528151&secret=59ki2qvxatw9wtlb4lw31j99r348gk5k</p>
<p>(大家可以体验一下, 这种链接有毛用?)</p>
<p>以上, 认真使用 小密圈 42 小时后, 先宏观阐述一下体验,
然后逐一怼一下, 要命的脑残功能们...</p>
<h2 id="markdown">Markdown<a class="headerlink" href="#markdown" title="Permanent link">¶</a></h2>
<ul>
<li>有什么理由在 2017 年还专门不支持 md ?</li>
<li>有什么理由在 2017 年还专门不支持 md ?</li>
<li>有什么理由在 2017 年还专门不支持 md ?</li>
<li>好吧, 俺可以忍:<ul>
<li>可是问题是, 为毛在同一个应用内部竟然也有格式不统一的呢?</li>
<li>主题/回复 好歹能记录并体现俺输入的回行以及缩进哪</li>
<li>为毛在 app 中的提问,无论怎么尝试, 最后给出来的都是一坨挤在一起不换行的文字? </li>
</ul>
</li>
</ul>
<h1 id="bug-imho_2">Bug# #IMHO<a class="headerlink" href="#bug-imho_2" title="Permanent link">¶</a></h1>
<h2 id="_4">无法关闭的赞提醒<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<ul>
<li>点赞功能是 facebook 发明的 VP 发动机,用来提高广告价格的东西</li>
<li>而小密圈靠的是圈内髙品质的交流</li>
<li>点赞, 除了代表 <code>联已阅</code> 之外无论发布人还是阅读者 都没有任何意义</li>
<li>就是对 小密圈 也没有任何积极意义 --> <ul>
<li>要是在小密圈大家都只是点赞和微信朋友圈中点赞之交一样</li>
<li>那为毛要付费进入?</li>
</ul>
</li>
<li>如果小密圈以聚集 1000 鉄粉 为目标<ul>
<li>那么应该杀掉点赞功能!</li>
<li>或是,最低限度, 给俺一个选择</li>
<li>在配置中, 可以关闭点赞的提醒!</li>
</ul>
</li>
</ul>
<h1 id="bug-imho_3">Bug# #IMHO<a class="headerlink" href="#bug-imho_3" title="Permanent link">¶</a></h1>
<h2 id="web">冇用的 web 版<code>通知</code><a class="headerlink" href="#web" title="Permanent link">¶</a></h2>
<ul>
<li>对比 app 中 ->动态|消息:<ul>
<li>动态可以进入俺所在所有圈和俺相关的所有场景中</li>
<li>消息 则是可以进入 1对1 的留言场景</li>
</ul>
</li>
<li>web 版本中<ul>
<li>消息 功能消失了</li>
<li>也就是说禁止我们在桌面浏览器中,和同一小密圈的朋友单聊</li>
<li>凭什么!?</li>
<li>一定逼我们,在手机中以极其低下的效率来沟通?!</li>
</ul>
</li>
<li>更加搞笑的是:<ul>
<li>web->通知 和 app->动态 是无关联的!</li>
<li>俺在 app->动态 中点击浏览了相关消息</li>
<li>按照一般产品逻辑, 俺的未读消息数量就应该减少一个</li>
<li>而且同时 web 桌面端也应该一致的减少一个提醒计数</li>
</ul>
</li>
<li>更更加搞笑的是:<ul>
<li>web->通知 本身根本没有所谓消息是否已读的计算</li>
<li>无论俺是否从 web->通知 中点击查阅过</li>
<li>除非手工点击那个不知所谓的标记所有消息已读的 icon</li>
<li>否则, 永远标红在那儿</li>
<li>WTF!</li>
</ul>
</li>
</ul>
<p>明显 app 和 web 是两个开发团队,
而且相互不尿...</p>
<h1 id="bug-imho_4">Bug# #IMHO<a class="headerlink" href="#bug-imho_4" title="Permanent link">¶</a></h1>
<h2 id="_5">不能修改的发言<a class="headerlink" href="#_5" title="Permanent link">¶</a></h2>
<p>非常惊悚的发现:</p>
<ul>
<li>无论 <code>主题</code>/<code>回复</code> 嘦发布了</li>
<li>就只能 收藏/删除/追加标签</li>
<li>不允许作者自己来修改自己发布的文字<ul>
<li>小密圈又不是 SVN 版本仓库</li>
<li>对于交流平台, 也没有所谓历史不可悔之说哪</li>
<li>如果出于数据/消息系统的架构问题,最好所有行为是原子的</li>
<li>那俺也理解, 可是,作为作者本人<ul>
<li>俺在主题原文之下,追加个补丁说明 总是是好的吧</li>
<li>不然, 作者对自己的主题的补救说明</li>
<li>也只能挤在一堆积极奔放的回复中</li>
<li>可能连自己过几天都找不到了...</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>WTF!</p>
<h1 id="bug-imho_5">Bug# #IMHO<a class="headerlink" href="#bug-imho_5" title="Permanent link">¶</a></h1>
<h2 id="_6">找不到的文章<a class="headerlink" href="#_6" title="Permanent link">¶</a></h2>
<ul>
<li>嗯哼? 这个问题,两个月前俺回答过哪, 大家也有精彩的讨论<ul>
<li>那么, 怎么找到那篇圈内文章?</li>
</ul>
</li>
<li>对比 github-wiki:<ul>
<li>有 <code>_Sidebar.md</code>/<code>_Footer.md</code> 手工索引关键文章</li>
<li>文章内部,可以通过文件名形成 <code>WikiName</code> 式自动链接</li>
<li>当然, 也可以使用 md 的链接形式, 手工链接到任意内外文章</li>
<li>最后, 实在找不到了, 再搜索一下</li>
</ul>
</li>
<li>小密圈 呢? 作为主持人:<ul>
<li>标定文章为精华, 但是:<ul>
<li>精华标多了一样找不到</li>
<li>更加可怕的是 精华-><code>查看全部</code></li>
<li>并不是精华列表, 而是精华文章+大量回复</li>
<li>基本上成员积极点儿</li>
<li>这个界面中,前3屏第2个精华文章正文都是看不到的</li>
</ul>
</li>
<li>那尝试追加分类作用的 标签 呢?<ul>
<li>标签 早已证明不是个好东西</li>
<li>任何人都可以任意追加任意内容和数量的标签</li>
<li>积累一定时间后</li>
<li>基本就无任何指导作用了</li>
<li>可以类比在微信中, 对好友的标签分类...</li>
</ul>
</li>
<li>...没招了, 只能搜索了</li>
<li>搜索更加坑:<ul>
<li>俺只是想找, 当前小圈的相关文章哪</li>
<li>搜索,却是强壮的给出了俺所在的所有圈的所有搜索结果</li>
<li>WTF!</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>总之:</p>
<ul>
<li>虚URI+故意的产品设计</li>
<li>令 小密圈 严密的倾向:<ul>
<li>临时性的</li>
<li>非讨论式的</li>
<li>相互点赞之交式的</li>
<li>无法长期讨论的</li>
<li>...</li>
<li>总是就是低智型的快速沟通</li>
<li>想对历史讨论/发言/主题 进行针对性的有结构的管理/索引/快速引用</li>
<li>是 WTF 的...</li>
</ul>
</li>
</ul>
<h1 id="bug-imho_6">Bug# #IMHO<a class="headerlink" href="#bug-imho_6" title="Permanent link">¶</a></h1>
<h2 id="_7">怼不到的成员<a class="headerlink" href="#_7" title="Permanent link">¶</a></h2>
<p>真正运营起来小密圈后, 才发现:</p>
<ul>
<li>只有主持人, 才有界面可以进入成员列表<ul>
<li>而且这一界面, web 桌面版是没有的</li>
</ul>
</li>
<li>成员,是无法知道当前圈有多少同伴的</li>
<li>问题来了:<ul>
<li>要是 小密圈 禁止成员相互间秘密交流, 俺也能理解</li>
<li>但是,问题是 作为主持人, 想在桌面端私下对一组成员提醒点儿什么</li>
<li>竟然没招!</li>
</ul>
</li>
<li>建议:<ul>
<li>恢复微信群的逻辑吧!</li>
<li>将 <code>@</code> 功能给作齐全了</li>
<li>强制私聊变成公开聊也是好的...</li>
</ul>
</li>
</ul>
<p>现在这样不上不下的, 就佷 WTF!</p>
<h1 id="bug-imho_7">Bug# #IMHO<a class="headerlink" href="#bug-imho_7" title="Permanent link">¶</a></h1>
<h2 id="_8">信息黑洞<a class="headerlink" href="#_8" title="Permanent link">¶</a></h2>
<p>小密圈, 聚集高质量好友在一起, 长期在一起, 当然是要搞点事儿出来的哪</p>
<ul>
<li>大家好容易在一起聊出来的东西</li>
<li>竟然没有任何办法可以方便的拿出来用?!</li>
<li>要知, 信息天生就是自由的要流动的</li>
<li>对比 github-wiki 无论是否付费<ul>
<li>都有对应的 git 路径</li>
<li>可以让成员, 分布式离线使用/完善/增补/...</li>
</ul>
</li>
<li>小密圈?<ul>
<li>没有任何文档来说明怎么使用我们在这儿碰撞出来的文字</li>
<li>以及也没有任何 API 提供的迹象</li>
<li>也就是说, 这是一个付费制造出来的 信息黑洞</li>
<li>大家只能对最近的几篇文章,进行讨论</li>
<li>过去的, 甚至于现在讨论的将永远只能在 这儿</li>
<li>无法快速的提取, 以便其它组合/再创造...</li>
</ul>
</li>
</ul>
<p>所以, 俺现在是人工, 将关键文字:</p>
<ul>
<li>复制到 github 仓库中</li>
<li>随着讨论的进行, 在同步整理/再输出</li>
<li>但是,这样,对小密圈的发展...呵呵</li>
</ul>
<h1 id="imho-bug">IMHO# #Bug#<a class="headerlink" href="#imho-bug" title="Permanent link">¶</a></h1>
<h2 id="_9">完全不可用的微信小应用<a class="headerlink" href="#_9" title="Permanent link">¶</a></h2>
<p>如图片, 在微信的小应用版本 <code>小密圈+</code> 中
刷自己圈子的信息,
将永远重复的将最早的消息输出...</p>
<p>进入一种非常 Naive 的死循环中...</p>
<p>更加可怕的是:</p>
<ul>
<li>这种形式的 小应用</li>
<li>令付费的以为这就是小密圈本身</li>
<li>不再下载安装 小密圈</li>
<li>以至各种更多功能无法使用<ul>
<li>如截屏</li>
<li>付费进入的成员</li>
<li>俺想直接沟通</li>
<li>不能...</li>
<li>因为从来没有登录过 app.</li>
</ul>
</li>
</ul>
<p>所以, 小密圈 的 产品经理和其它著名产品经理一样,
自己是从来不使用小密圈来组织产品设计的...</p>
<h1 id="imho-bug_1">IMHO# #Bug#<a class="headerlink" href="#imho-bug_1" title="Permanent link">¶</a></h1>
<h2 id="web_1">web 版通知的不可用<a class="headerlink" href="#web_1" title="Permanent link">¶</a></h2>
<p>如截屏, 这种只有红标, 却没有任何内容以及链接的通知</p>
<ul>
<li>在桌面 web 版中, 越来越多</li>
<li>随着我们的深入使用</li>
</ul>
<p>所以, 小密圈 的 工程师和其它著名产品经理一样,
自己是从来不使用真空的小密圈来测试的...</p>
<h1 id="_10">是也乎#<a class="headerlink" href="#_10" title="Permanent link">¶</a></h1>S02E01/周生剧本大纲2017-04-01T19:42:00+08:002020-07-19T12:20:02+08:00ZoomQuiettag:blog.zoomquiet.io,2017-04-01:/GC4-S02E01-script.html<h2 id="toc">[TOC]<a class="headerlink" href="#toc" title="Permanent link">¶</a></h2>
<h1 id="s02e01">S02E01: 周生剧本大纲<a class="headerlink" href="#s02e01" title="Permanent link">¶</a></h1>
<p>演员设定: </p>
<ul>
<li>周生生: 姜文 (红高梁时期的)</li>
<li>秀娘: 娜塔莎.波特曼</li>
<li>郑和: 吴秀波</li>
<li>郑爽: 文章</li>
</ul>
<h2 id="_1">双闯西洋<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<ul>
<li>(宣德五年三月 …</li></ul><h2 id="toc">[TOC]<a class="headerlink" href="#toc" title="Permanent link">¶</a></h2>
<h1 id="s02e01">S02E01: 周生剧本大纲<a class="headerlink" href="#s02e01" title="Permanent link">¶</a></h1>
<p>演员设定: </p>
<ul>
<li>周生生: 姜文 (红高梁时期的)</li>
<li>秀娘: 娜塔莎.波特曼</li>
<li>郑和: 吴秀波</li>
<li>郑爽: 文章</li>
</ul>
<h2 id="_1">双闯西洋<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<ul>
<li>(宣德五年三月十三日)</li>
<li>[泉州城西郊, 强生豆腐店,后门]</li>
</ul>
<p>秀娘,从后看只是个普通的大明及笄少女,只是生有奇怪的褐色头发;但是,正面一看就知道不是中原人,高鼻绿瞳;
在温州地区,总是有行商失败的大食人后代流落善堂,想来这个面色焦急的少女也是相似的身世.</p>
<blockquote>
<p>"生哥! 生哥!"</p>
<p>"阿秀,你怎么来了?"</p>
<p>"生哥! 阿爷已为我报名织绣营了,年末就要和三宝大人出洋了!"
…</p>
</blockquote>
<p>送走阿秀,周生生下了决心,转身和东家辞行,
然后径直去东门,揭了西洋舰队官榜,
作为厨师入了辎重营;
又以加温来加速发豆芽的独门技术,
配合腌金桔可防/治败血症的功劳,进入郑和的视野,
成为第七次西洋舰队第42 粮船的辎重队队副.</p>
<ul>
<li>(宣德五年十一月十一)</li>
<li>[珠江口, 虎门港]</li>
</ul>
<p>240多艘各型海船,浩浩荡荡,在礼炮的欢送下,缓缓驶向外海.
其中一艘粮船上,进行仪仗队列的人群中,
周生生偷偷看向甲板中间织绣营队列;
心有灵犀般,垂着头的秀娘,微微偏头,
准确的对上了周生生的眼睛.</p>
<p>两个大明朝普通的青年,
为了对抗命运,开始了未知的旅程.</p>
<h2 id="_2">月背黑石<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<p>2020年11月11日, 月背USA 静海基地,</p>
<blockquote>
<p>"嘀! 嘀! 嘀!"
控制台警告声吵醒了值班员,
看了眼屏幕:"shit 又坏了."
随即,调无人机到矿区上空, 才发现,
在矿务机器人自动作业下, 一个倒方锥形,有10公里见方的矿坑底部,暴露出了一个纯粹几何外形的非自然物体!</p>
</blockquote>
<p>一阵鸡飞狗跳的调查,以及考察性挖掘后,
明确这是一座长高宽,9:3:1 精确比例的四棱锥.
仅挖出的部分,周长就已经有300米,</p>
<p><code>黑的象没有尺度</code>…</p>
<p>又一个早晨,阳光在无数年后,终于再照射到黑石尖顶,
瞬间一次宏大的无线电脉冲从月球射向深空,
有非常惊人的指向性,
只有在信号路径上的各种接收器,才收到:"嗡! 嗡—嗡!"</p>
<blockquote>
<p>"喂, 喂... 喂! 这个情景好象在哪里看到过啊!"
一名宅男样技术员,在显示屏上看到模拟的波峰后,下意识的说.</p>
</blockquote>
<p>宇宙中,一股能量波精确的指向火星发射而去.</p>
<h3 id="_3">隐岛失魂<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
<ul>
<li>(宣德6年九月十日,当地子时)</li>
<li>[旗舰宝船,舰长室]</li>
</ul>
<blockquote>
<p>郑和:"子爽,到底那场暴风雨后发生了什么?!"</p>
<p>郑爽:"族叔公,都是周生生引发的事端…"</p>
</blockquote>
<p>半月前,舰队在东非外洋,遭遇暴风雨,
郑爽统领的辎重队被冲散,只余两艘船停靠在一无名大岛上....</p>
<p>其中一艘舯部受损,需要上岛收集合适的材料来修补.
周生生作为志愿者进入岛深处,
独自发现了一处有无数洞窟的山崖.</p>
<p>入夜, 周生生 偷偷从舷窗外,唤醒 秀娘 意图私奔.
却被外围的暗哨发现.
好在事先探好通路,
俩人总算领先半步逃入了 隐窟 ,
但被卫队逐步逼至窟底,
是一扇被异族花纹装饰的异常庄严的门,
门内 <code>黑的象没有尺度</code>
俩人决然闯入,漾起星光样光纹再无音讯.</p>
<p>郑爽带队赶到,尝试各种方法都无法和进入的人/物产生影响.
感觉太过诡异,又根据门楣雕刻推断是黄泉入口.
惊恐的封了洞窟,回航.</p>
<blockquote>
<p>郑和:"此事太过凶兆,下封口令,不得记入日帐!"</p>
<p>郑爽:"诺!"</p>
</blockquote>
<h2 id="_4">天宫危机<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<ul>
<li>2046年12月12日,触发黑石信号同一时刻,</li>
<li><火星同步轨道中国<code>天宫</code>宇航站></li>
</ul>
<blockquote>
<p>"嘀! 嘀! 嘀!"</p>
</blockquote>
<p>控制台报警随着闪动的桔红警灯响起,
严阵以待的宇航员立即按照预案行动起来:</p>
<ul>
<li>关闭所有隔仓</li>
<li>关闭所有不必要系统</li>
<li>调整姿势,将头部面向冲击方向</li>
</ul>
<p>420秒后,失事的俄国运载飞船残骸如约而至!
暴雨般的大小残骸飞掠,不可避免的有几个撞击到天宫</p>
<p>有的撞歪跳走了,
有的撞凹了外壁粉碎,
更有的穿入舱体!</p>
<p><code>天宫</code>中央的居住舱,7名宇航员,惊恐的望着对面的舱壁.</p>
<blockquote>
<p>"警告! 警告!气密性破损!"
伴随更加尖锐的警告声, 前后多处穿透.
多数被速凝胶堵住,
但是,有一处刚好在接缝处,被高速逸出的空气撕开越来越大.
紧急时刻,一位高大队员,直接坐了上去,用屁股堵住破孔.</p>
</blockquote>
<p>幸好穿了宇航服,立即脱下,并堆上速凝胶.</p>
<p>残骸雨仅仅20秒就通过了,但是,40分钟后,将再次来袭!
大家相互看着,无言以对.</p>
<blockquote>
<p>"咳,有哉屋底呢弗?" </p>
<p>(<code>有人z屋底啊弗啊</code>)</p>
</blockquote>
<p>突然,全舰响起一句温州话.</p>
<h2 id="_5">黑石来客<a class="headerlink" href="#_5" title="Permanent link">¶</a></h2>
<p>火卫3背面,三座上百公里长的方尖石紧密的耸立在一起.
三个尖顶组成的正三角形虚空,
忽然亮起银河般的光辉,
一抹正圆形黑影从中心出现,
缓缓拉出,形成标准圆柱体, 有42公里长,4.2公里直径.</p>
<p>入内, 各三条陆地和天空间夹形成了内部居住空间.
通过持续稳定旋转,获得人工重力.
中心是交通柱,如树枝,间或关联到各个陆地区.</p>
<p>在交通柱中心控制核区:</p>
<p>外形象石墨烯球, 数十米见方,中空的一个构件中,亮起辉光.
一闪而泯后,
落下天宫中,所有宇航员.
大家先后醒过神来,张目忘去,
两鬓见霜的 周生生 依然穿着号坎迎上来…</p>
<h2 id="_6">生生不忘<a class="headerlink" href="#_6" title="Permanent link">¶</a></h2>
<p>一年后, 当年 郑爽 逃离的迷岛所在,海底.
中国远洋科考察队,<code>天涯</code>11号深渊着陆器,
在10240米处,重新找到了当年的洞窟.
打开封口,机器人重新观察到了黑石门.</p>
<p>架设好小型传送巢后,
辉光亮起, 两鬓见霜的 周生生 竟然没穿任何保护服,
只是样式古早的长衫, 沉静, 但是无法压抑激动样,
缓缓走入黑石.</p>
<p>在洋面上, 核心实验室广大的球形全息显示屏环绕的控制仓中,
原<code>天宫</code>宇航队长赫然在列,和几十位不同部门的专家在围观.</p>
<p>仅几分钟后,辉光再闪, 周生生走出来,怀抱一样东西,
回到传送巢...相似的辉光再闪...</p>
<h2 id="_7">秀娘离魂<a class="headerlink" href="#_7" title="Permanent link">¶</a></h2>
<ul>
<li>(宣德6年七月四日)</li>
</ul>
<p>进入黑石后,类似后来圆柱形飞船控制中心的空间,
追兵还是围上了秀娘和周生生,
关键时刻秀娘护住 周生生,自己受了重伤,
智能系统才反应过来,迅速制止了暴行,
将其它官兵传送走后,
救治了 周生生,期间,和建立了沟通方式—使用手写板,
通过文字进行初步交流,
明确了现状:</p>
<ul>
<li>这是一个星际中转站</li>
<li>单向负责发送原 <code>亚特兰提斯</code> 帝国的留守人员</li>
<li>秀娘身体受损过重难以承受传送</li>
<li>只能先抽取魂魄寄养在魂器中静待机缘</li>
<li>中转站资源有限, 无法长期供应生命体</li>
</ul>
<p>周生生 只能选择离开</p>
<h2 id="_8">深深不弃<a class="headerlink" href="#_8" title="Permanent link">¶</a></h2>
<p>四年后,已经出发12年的中华深空移民船,<code>息壤</code>号的通讯中心,
忽然收到海量来自地球的数据包...</p>
<p>经过紧张的处理,发现是一个结构体的设计图纸
和刚刚成立的地球人类<code>星际联盟</code>(EHSU),
对所有深空移民舰队的统一指令.</p>
<p>紧张的制造和调试后,
专门腾空的货仓中央,
尺寸更加大的 传送巢 亮起辉光:
重新年轻的周生生和秀娘出现在 传送巢 中!</p>
<p>…</p>
<h2 id="_9">彩蛋<a class="headerlink" href="#_9" title="Permanent link">¶</a></h2>
<blockquote>
<p>没有彩蛋的电影是没有灵魂的...</p>
</blockquote>
<h3 id="_10">魂器<a class="headerlink" href="#_10" title="Permanent link">¶</a></h3>
<p>无数年后,地球文明果然被人类自己毁灭了,
轨道上卫星都变成了残骸,
所有城市都变成了废墟,
海洋变成灰色的...
真正的灭世!</p>
<p>在北京西山深处,依然运转的安全仓中,
一组魂器,闪动着桔色的微光,表示保有灵魂中…</p>
<h3 id="_11">大明<a class="headerlink" href="#_11" title="Permanent link">¶</a></h3>
<p>无数光年外,类似太阳系的系统中,
黑石,不在卫星,而是在类地行星上,
体积也更加宏大,
不过是横置的, 从三个尖顶组成的正三角形虚空中,
缓慢突出的,是有大明建筑风格的大气层内飞行母舰,
主控中心,坐在舰长位置的,赫然是当年追入黑石的一名内卫!</p>
<h2 id="_12">是也乎<a class="headerlink" href="#_12" title="Permanent link">¶</a></h2>
<div class="highlight"><pre><span></span><code>剧本剧本, 一剧之本
故事架构, 情节所依
开放封闭, 皆须逻辑
人物情感, 才得寄所
是也乎哉, 吾之浅见
</code></pre></div>
<blockquote>
<p>嗯哼</p>
</blockquote>
<p>最早见到的剧本, 是 2002 年找到的风之谷的英文版本剧本,
才知道剧本是要将故事有序分解为:</p>
<ul>
<li>场景</li>
<li>行为</li>
<li>对话</li>
<li>心情</li>
</ul>
<p>才能指导后续所有其它艺术创作的.</p>
<p>但是,后来自己尝试写剧本, 才发现远没那么简单.
再后来,看电影/剧集, 也开始从成品自发的逆向工程剧本,
然后,见到了 star war 剧本原稿照片,
内心无垠 WTF …
才知道, 天才就在于,从简单结构故事中育发出无数细节.</p>
<p>因为,编程有早已包含无数细节的开源模块和编译器来协助,
影视剧本,可真心要从虚空中无中生有!</p>
<p>不过,撰写冲动总是有的, 明知故事太嗯哼,
却是淤塞住了其它构思,非得写出来不可.
上周课程末尾,一说剧本大纲,立即脑中跳出了以下关系链:</p>
<div class="highlight"><pre><span></span><code><span class="w"> </span>郑和<span class="o">-></span>非洲<span class="o">-></span>亚特兰提斯
<span class="w"> </span><span class="o">-></span>黑石
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-></span>月球<span class="w"> </span><span class="o"><-</span><span class="n">USA</span>
<span class="w"> </span><span class="o">+-></span>…<span class="w"> </span><span class="o">-></span>火星<span class="o"><-</span>中国<span class="w"> </span><span class="o"><-</span>危机
<span class="w"> </span><span class="o">-></span>深空
</code></pre></div>
<p>接下来,发现,根本就是以往看过的一堆 SiFi 小说的混合物,
原创部分异常的少,
但是,死活丢不干净这一事件链相关的念头矣!
只好硬着头皮, 先立场景标题,再设计人物,
合理化所有情节背景…
哗的一下,就过了2500字.
再改, 也就按照电影的时间顺序重新排一下叙述线索,
吻合: <code>起承转合</code> 的心理节奏就好.</p>
<p>问题在:场景切换这么大尺度的 SiFi 电影,竟然没有一个核心矛盾的爆发点!</p>
<h2 id="_13">用时<a class="headerlink" href="#_13" title="Permanent link">¶</a></h2>
<ul>
<li>积累: 36+年</li>
<li>构思: 1秒</li>
<li>结构: 两次重构</li>
<li>初稿: .5h 500+字</li>
<li>再稿: .5h 300+字,全新结构,放弃</li>
<li>三稿: 4h, 2200+字, 分4次碎片时间撰写,恢复原先故事大纲</li>
<li>四稿: 1 h,回珠海飞机上,调整/删节大纲,增补细节点</li>
<li>五稿: .5h review 错别字,调整格式,发布简书</li>
</ul>自由问自疏2017-03-28T20:42:00+08:002020-07-19T12:34:08+08:00ZoomQuiettag:blog.zoomquiet.io,2017-03-28:/170328-S09E05gDAMA-ask-freedom.html<h1 id="_1">自由问自疏<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<p>~ 尝试记录和合过程中偏见的激荡</p>
<p><strong>S09E05</strong> 作业要求改编共宣为 800 字以内的文章</p>
<p>当时全体就感受到一万点<code>无助</code>:</p>
<ul>
<li>再 …</li></ul><h1 id="_1">自由问自疏<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<p>~ 尝试记录和合过程中偏见的激荡</p>
<p><strong>S09E05</strong> 作业要求改编共宣为 800 字以内的文章</p>
<p>当时全体就感受到一万点<code>无助</code>:</p>
<ul>
<li>再次时隔多年接触到两个多甲子前的雄文</li>
<li>虽然意境感受的到, 但是,具体内容越读越模糊</li>
<li>其中嵌入的概念迭代是越品越多</li>
<li>想整体改编是不可能的</li>
<li>所以, 只能抓住自己最有感觉的一个点来尝试展开</li>
<li>只求将我们的偏见能和合出足够通畅的文字就已是成功</li>
</ul>
<p>共宣1万多字,四章:</p>
<ul>
<li>第一章: 说来由, 论述了阶级斗争和资产/无产阶级 的对立形成</li>
<li>第二章: 说共党, 描述共产党要作什么</li>
<li>第三章: 说文献, 再回顾历史挖掘共产主义的各种来由</li>
<li>第四章: 说计划, 定义口号和命运方向</li>
</ul>
<p>第二章 最后一句承前启后, 非常有感觉, 所以,决心怼:</p>
<blockquote>
<p>代替那存在着阶级和阶级对立的资产阶级旧社会的,将是这样一个联合体,在那里,每个人的自由发展是一切人的自由发展的条件</p>
</blockquote>
<p>中英对照这个核心句...程序化理解是:</p>
<div class="highlight"><pre><span></span><code><span class="n">support</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">make</span><span class="w"> </span><span class="o"><-+</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">pFD</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">Dev.</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">person</span><span class="w"> </span><span class="o">-+</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">V</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o"><--</span><span class="w"> </span><span class="n">for</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="n">V</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="n">aFD</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">all</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">support</span><span class="w"> </span><span class="o">---+</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="o">+------</span><span class="w"> </span><span class="n">association</span><span class="w"> </span><span class="o">----+</span>
</code></pre></div>
<p>其中:</p>
<ul>
<li>pFD ~ personal Free Development</li>
<li>aFD ~ all Free Development</li>
</ul>
<p>进一步溯源时又发现原文含坑:</p>
<blockquote>
<p>In place of the old bourgeois society with its classes and class conflicts there will be an association in which the free development of each is the condition for the free development of all.</p>
</blockquote>
<div class="highlight"><pre><span></span><code><span class="nv">an</span><span class="w"> </span><span class="nv">association</span><span class="w"> </span>
<span class="w"> </span><span class="nv">in</span><span class="w"> </span><span class="nv">which</span><span class="w"> </span>
<span class="w"> </span><span class="nv">the</span><span class="w"> </span><span class="nv">free</span><span class="w"> </span><span class="nv">development</span><span class="w"> </span>
<span class="w"> </span><span class="nv">of</span><span class="w"> </span><span class="nv">each</span><span class="w"> </span><span class="o"><--</span><span class="w"> </span>每一个
<span class="nv">is</span><span class="w"> </span><span class="nv">the</span><span class="w"> </span><span class="nv">condition</span><span class="w"> </span><span class="o"><--</span><span class="w"> </span>不单纯是条件
<span class="w"> </span><span class="k">for</span><span class="w"> </span>
<span class="w"> </span><span class="nv">the</span><span class="w"> </span><span class="nv">free</span><span class="w"> </span><span class="nv">development</span><span class="w"> </span>
<span class="w"> </span><span class="nv">of</span><span class="w"> </span><span class="nv">all</span><span class="w"> </span><span class="o"><--</span><span class="w"> </span>全部每一个,而不是简单的整体
</code></pre></div>
<ul>
<li>为什么用 <code>association</code> 而不是党/派/会社/... 之类?</li>
<li>为什么用 <code>condition</code> 而不是前题/需求/条件/要求/... 之类?</li>
<li>对这一断言的理解/设想/推导/遐想/... 就足以写出很多很多</li>
</ul>
<p>029学员, 对此句的比喻是:</p>
<blockquote>
<p>只有自证不缺钱,才能从银行借到钱,而有经济能力的人必不滥用那借贷。
只有内心渴望劳动,才能拥有随时不工作的自由,而渴望劳动的人必不滥用这自由</p>
</blockquote>
<p>逻辑很自恰,但是, Max 构想的社会一定没有这么简单;</p>
<p>好叫你们知道:</p>
<p>那时 道德/劳动/工作/生活/自由/商品/产品/…
一切我们熟知的概念都应该完全进化了...
相关的描述用词, 都包含了我们当前的局限性思维:</p>
<blockquote>
<p>思想境界 </p>
</blockquote>
<ul>
<li>这词本身就带有价值取向时,才有意义
因为能分境界的, 必然得有评判标准,才能分高下
但那时 全员每个人的思想是高级一致的,无分高下,
每个人都自然而然的在自主追求自己的发展
并从内心第一选择整个人类发展需要的前沿领域
这时, 根本无道德之说了
因为所有人都已经在道中</li>
</ul>
<blockquote>
<p>无限自由 </p>
</blockquote>
<ul>
<li>这词也是法律界进行讨论的主体
对应的是法律限制下的有限自由
但那时 全员每个人的资源/追求/第一需求 是相同的
可以强行理解为高度限制下的无自由
因为每个人的自由选择和全体的一致了
再没有纷挠的自由意识
有点儿象 berg 种族 全体即个人 只是没有女王来掌握最终决议
从外界来看 每个人是没有任何自由的
但是,从内部来看, 每个人又是有无限自由的</li>
</ul>
<blockquote>
<p>热爱劳动 </p>
</blockquote>
<ul>
<li>热爱, 这定义本身也是价值倾向的
因为要对比逃避劳动...
问题是 这种描述无法回答为什么有的人热爱劳动, 有的却不?
但那时 劳动和工作已经和生活三位一体了
全员每个人都自然融入了全体持续发展的劳动中
没有爱或不爱
劳动就是生活日常的本身
象呼吸一样自然
我们只能爱上一种稀缺之物 对平常到已经无法感知到的事物
是无法论及是否爱的</li>
</ul>
<blockquote>
<p>工作的目的,理当是高尚和自由 </p>
</blockquote>
<ul>
<li>同前设想, 工作就是生活本身是没有目的的
所以, 也没有高尚/低下的差异了</li>
</ul>
<blockquote>
<p>只有内心渴望劳动,才能拥有随时不工作的自由,而渴望劳动的人必不滥用这自由</p>
</blockquote>
<ul>
<li>逻辑上的确是通的
但那时 已经没有劳动/工作/自由 的现在概念了
也就没有所谓滥用了...</li>
</ul>
<p>几轮下来, 对 Max 当年以工程师的条理程序员的逻辑严密科学家的细致政治导师的磅礴气势
嗯哼出来的 <code>共宣</code> 其实:</p>
<ul>
<li>就是篇科学幻想小说哪</li>
<li>用当时的一些概念, 净解重构成完全不同的概念,并立即用其构筑全新的社会图景</li>
<li>但是, 当我们不自主的去用自己的经验来脑补出所有细节时</li>
<li>过程中就自己说服了自己: <code>共产主义革命一定能胜利</code></li>
<li>这就是发动每个人内心的模因来为作者工作的至高话术了...</li>
</ul>
<h3 id="bgm">BGM<a class="headerlink" href="#bgm" title="Permanent link">¶</a></h3>
<p>~ 作业还有一层坑在,要求同时提供作业的语音版本</p>
<p>既然有了语音, 那么配上吻合心境的音乐作为背景也是自然的选择;
那么问题来了</p>
<ul>
<li>怎么配音?配什么音乐?几个?多长?何时切入?...</li>
<li>又如何通读?朗读?一起?分别?合声?群读?对话?...</li>
</ul>
<p>一系列电影配乐的陌生知识一涌而上.</p>
<p>随心随性推荐了:</p>
<ul>
<li>BGM.1 <a href="http://music.163.com/#/song/5271787?userid=46575348">Amazing Grace 天赐恩宠</a></li>
<li>BGM.2 <a href="http://music.163.com/#/song/95670?userid=46575348">国际歌(伴唱:现代人乐队 合唱:总政歌舞团) </a></li>
<li>BGM.3 <a href="http://music.163.com/#/song/399366318?userid=46575348">各味食材的相互作用 - 阿鲲</a></li>
<li>BGM.4 <a href="http://music.163.com/#/song/447076460?userid=46575348">今夕是何夕 - 刘胡轶</a></li>
<li>BGM.5 <a href="http://music.163.com/#/song/590281?userid=46575348">be human - Scott Matthew</a></li>
<li>BGM.6 <a href="http://music.163.com/#/song/5246953?userid=46575348">小星星</a></li>
</ul>
<p>然后小组成员就各种嗯哼:</p>
<ul>
<li>BGM.1 自然的觉知是自由的</li>
<li>BGM.2 联合的无产者是自由的</li>
<li>BGM.3 吃货的世界是自由的</li>
<li>BGM.4 忘记轮转的今夕是自由的</li>
<li>BGM.5 自在人生是自由的</li>
<li>BGM.6 有人一起怼哇是自由的</li>
</ul>
<p>其实, 回想俺第一直觉是:</p>
<ul>
<li>BGM.1 共宣是伟大和谐的</li>
<li>BGM.2 标准配乐呗...</li>
<li>BGM.3 小组各种心智相互作用的成果</li>
<li>BGM.4 在共宣描绘的时空中穿梭经常忘记 <code>今夕是何夕</code></li>
<li>BGM.5 AI 都在渴望成为人,作为人我们也在渴望成为真正自由人</li>
<li>BGM.6 只有保持儿童的赤诚才能真正理解导师的设想...</li>
</ul>
<p>所以,最后我们选择了什么背景音乐呢?</p>
<p>去听一听就知道了...</p>
<ul>
<li><a href="https://www.lizhi.fm/2193128/2592864852843807238">【自由问 和合共读 v7】在线收听 - 荔枝FM</a></li>
<li><a href="https://www.lizhi.fm/2193128/2592864814189100550">【自由问 和合共读 v2】在线收听 - 荔枝FM</a></li>
<li><a href="https://www.lizhi.fm/2193128/2592864807739953158">【自由问 和合共读 v1】在线收听 - 荔枝FM</a></li>
</ul>
<p>我们为了证明在互联网时代也已经是联合在一起的,
所以,没有对录音使用任何后期编辑,是通过网络语音会议,尝试七次性录制而成...</p>
<p>以上 ;-)</p>S09E05gDAMA/ 自由问2017-03-27T20:42:00+08:002020-07-19T12:33:41+08:00ZoomQuiettag:blog.zoomquiet.io,2017-03-27:/170327-S09E05gDAMA.html<h1 id="s09e05gdama">S09E05gDAMA:自由问<a class="headerlink" href="#s09e05gdama" title="Permanent link">¶</a></h1>
<blockquote>
<p>此乃《好中文的样子》课程小组作业
成员:
天津 一坪海岸线
上海 安心竹和申小七
香港 宋偲瑄
珠海 大妈</p>
</blockquote>
<p>… 向 Neruda 致敬
<a href="http://www.gnu.org/"><img alt="GNU 自由软件" src="http://upload-images.jianshu.io/upload_images/27562-6d2064a29b2f5d3d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></a></p>
<p>语 …</p><h1 id="s09e05gdama">S09E05gDAMA:自由问<a class="headerlink" href="#s09e05gdama" title="Permanent link">¶</a></h1>
<blockquote>
<p>此乃《好中文的样子》课程小组作业
成员:
天津 一坪海岸线
上海 安心竹和申小七
香港 宋偲瑄
珠海 大妈</p>
</blockquote>
<p>… 向 Neruda 致敬
<a href="http://www.gnu.org/"><img alt="GNU 自由软件" src="http://upload-images.jianshu.io/upload_images/27562-6d2064a29b2f5d3d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></a></p>
<p>语音版: <a href="https://www.lizhi.fm/2193128/2592864852843807238">【自由问 和合共读 v7】在线收听 - 荔枝FM</a></p>
<h2 id="0">0.<a class="headerlink" href="#0" title="Permanent link">¶</a></h2>
<p>那般联合体中 自由是什么? </p>
<p>好叫你知道:</p>
<div class="highlight"><pre><span></span><code>劳动和学习 以及生活的自由
劳动作为第一需求
劳动创造人生价值
学习成为第一娱乐
创造性劳动的乐趣 最纯粹 无法替代
更好的生活 只为更好的劳动
和家人一起坦然分享 劳动成果
不再为生存 忍受工作
</code></pre></div>
<h2 id="1">1.<a class="headerlink" href="#1" title="Permanent link">¶</a></h2>
<p>那般联合体中 劳动者要的自由是什么?</p>
<p>好叫你知道:</p>
<div class="highlight"><pre><span></span><code>自由安排 工作时间
自由选择 工作内容
自由学习 劳动技能
劳动者 从不厌恶劳动
劳动者 从不刻意勤劳
劳动者 从来需要劳动
劳动者 就是渴望自由劳动
自由的创造 必能滋养全体劳动者
劳动者当然自由支配 自己的创造
</code></pre></div>
<h2 id="2">2.<a class="headerlink" href="#2" title="Permanent link">¶</a></h2>
<p>那般联合体 为何被赋予自由的联合之名?</p>
<p>好叫你知道:</p>
<div class="highlight"><pre><span></span><code>国家民族的壁垒 都被洞穿
每人内心都充盈 劳动的需求和享受
全体协手 共开创 无限意义的未来
拓开 星辰大海中 新的疆野
不再为 压迫和反压迫 纷争
这般自由 前所未有
只属于 劳动者的自在联合
</code></pre></div>
<h2 id="3">3.<a class="headerlink" href="#3" title="Permanent link">¶</a></h2>
<p>那般联合体 为何看重我的自由?</p>
<p>好叫你知道:</p>
<div class="highlight"><pre><span></span><code>只有自由的联合 才有联合的自由
不自由人的联合 只能孕育出仇恨
每个人都在自由 才好集成全自由
联合目的 只能是为了每个人自由
任何不自由 都必将导致联合崩溃
可这般全自由 哪能轻易获得
须得全体 拼力改造 世界和自己
</code></pre></div>
<h2 id="4">4.<a class="headerlink" href="#4" title="Permanent link">¶</a></h2>
<p>为何资产阶级会创造自己的掘墓人?</p>
<p>好叫你知道:</p>
<div class="highlight"><pre><span></span><code>资产阶级要生存 就要资产增值
他们炮制 雇佣劳动
他们聚集 生产资料发展大工业
他们聚集 劳动者扩张工厂城市
聚集的劳动者 必定结社 形成势力
因这工业世界 本就由劳动者创造
那这世界主宰 本就应该是劳动者
是的 他们不得不创造出自己的掘墓人
</code></pre></div>
<h2 id="5">5.<a class="headerlink" href="#5" title="Permanent link">¶</a></h2>
<p>劳动者到底被夺走了什么?</p>
<p>好叫你知道:</p>
<div class="highlight"><pre><span></span><code>超长工时 微薄薪酬 夺去那劳动的愉悦
这世界是劳动者亲手创造呵
怎任由资本家 堂堂然 拿走了呢
他们
夺去 劳动者自我实现的满足
夺去 劳动者挺直腰板的荣耀
资本家 身着罗绮 翩翩踏着萨克斯吹奏的圆舞曲
无产者 养蚕织造 却只能在没有火柴的冬天瑟瑟
不 那机械的轰鸣 本该是劳动者的赞歌
不 劳动本不该如此卑贱 只为存活
劳动 原本是灵魂 必然荡漾出的渴求
没错 资本家夺去的就是 劳动的自由
以贪婪的嘴脸和冷漠的姿态
</code></pre></div>
<h2 id="6">6.<a class="headerlink" href="#6" title="Permanent link">¶</a></h2>
<p>全世界无产者能联合起来嘛?</p>
<p>好叫你知道:</p>
<div class="highlight"><pre><span></span><code>无产阶级 天然 就是联合的
无产者在压迫中 早已被迫联合起来了
共产党人进而 协调各国的联合体
是的 我们早已联合起来了
</code></pre></div>S07E15g193/ 和合技 私例2017-03-14T20:42:00+08:002020-07-19T12:32:03+08:00ZoomQuiettag:blog.zoomquiet.io,2017-03-14:/170314-S07E15g193-examples.html<h1 id="s07e15g193">S07E15g193: 和合技 私例<a class="headerlink" href="#s07e15g193" title="Permanent link">¶</a></h1>
<p>~ 参考: <a href="http://www.jianshu.com/p/aaf4096bde08">GC4g56: 和合技~强释</a></p>
<p>再次体验和合,试例一则:</p>
<p>初稿:</p>
<blockquote>
<p>那时 大马金刀 一起踞坐 在半山
瞥着下面 错落的居民楼 操 …</p></blockquote><h1 id="s07e15g193">S07E15g193: 和合技 私例<a class="headerlink" href="#s07e15g193" title="Permanent link">¶</a></h1>
<p>~ 参考: <a href="http://www.jianshu.com/p/aaf4096bde08">GC4g56: 和合技~强释</a></p>
<p>再次体验和合,试例一则:</p>
<p>初稿:</p>
<blockquote>
<p>那时 大马金刀 一起踞坐 在半山
瞥着下面 错落的居民楼 操场 工人俱乐部 红旗</p>
</blockquote>
<p>再稿: 发现 <code>瞥</code> 读不出来 --></p>
<blockquote>
<p>那时 大马金刀 一起踞坐 在半山腰
静静看着下面
错落的居民楼 学校 操场 工人俱乐部 红旗 …</p>
</blockquote>
<p>三稿: <code>看着</code> 太平 --></p>
<blockquote>
<p>那时 一起大马金刀的坐在半山
静静巡视下面
错落的居民楼 学校 操场 工人俱乐部 红旗 …</p>
</blockquote>
<p>稿4: 发现景象中有重复的 --></p>
<blockquote>
<p>吃完 一起静静坐在半山
巡视下方 错落的居民楼 学校 操场 工人俱乐部 红旗 …</p>
</blockquote>
<p>稿5: <code>吃完</code> 联系前述是废话 --></p>
<blockquote>
<p>此时 一起 大马金刀 踞坐山边
巡视下方 居民楼 学校 操场 工人俱乐部 红旗 …</p>
</blockquote>
<p>稿6: <code>巡视</code> 无由来 --></p>
<blockquote>
<p>彼时 一起 大马金刀 踞坐山边
凝视河谷中 居民楼 学校 操场 工人俱乐部 红旗 …</p>
</blockquote>
<p>稿5: <code>凝视</code> 自觉多余 --></p>
<blockquote>
<p>那时一起 大马金刀 踞坐山边
河谷中 居民楼 学校 操场 工人俱乐部 红旗 …</p>
</blockquote>
<p>终稿: <code>凝视</code> 通读时, 被同组叫好, 从善回用 --></p>
<blockquote>
<p>那时 一起大马金刀 踞坐山边
凝视河谷中 居民楼 学校 操场 工人俱乐部 红旗 …</p>
</blockquote>
<h2 id="_1">和合技<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<ul>
<li>反复的读</li>
<li>每次都认真的问:<ul>
<li>What am I trying to say?</li>
<li>What words will express it?</li>
<li>What image or idiom will make it clearer?</li>
<li>Is this image fresh enough to have the effect?</li>
<li>Could I put it more shortly?</li>
<li>Have I said anything that is avoidably ugly?</li>
</ul>
</li>
<li>如果所有问题都没有更好的回答了, 也只能先这般也...</li>
</ul>S07E15g193/ 嗯哼重来2017-03-14T20:42:00+08:002020-07-19T12:32:18+08:00ZoomQuiettag:blog.zoomquiet.io,2017-03-14:/170314-S07E15g193-re-hummm.html<h1 id="s07e15g193">S07E15g193: 嗯哼重来<a class="headerlink" href="#s07e15g193" title="Permanent link">¶</a></h1>
<p>佩哥哥一声令下, 原先好容易磨合成功的小组,
不得不破出门户,另行嗯哼...</p>
<p>原本以为只是普通的 <code>重复基建</code> 没想 …</p><h1 id="s07e15g193">S07E15g193: 嗯哼重来<a class="headerlink" href="#s07e15g193" title="Permanent link">¶</a></h1>
<p>佩哥哥一声令下, 原先好容易磨合成功的小组,
不得不破出门户,另行嗯哼...</p>
<p>原本以为只是普通的 <code>重复基建</code> 没想到</p>
<p><strong>TL;DR</strong> ...</p>
<h2 id="_1">知情咒批发组<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<p>才4天就已形成内部的很多新咒:</p>
<ul>
<li>和合仪式</li>
<li>通读怂怼</li>
<li>C-C模式</li>
<li>大装修模式</li>
<li>第一作者</li>
<li>...</li>
</ul>
<p>可能因为组里女生多, 对各种细节敏感, 发觉有一丝不嗯哼, 就立即挖掘,
直至明白并折叠为新咒, 以及面向半年前的自己, 整理为小教程...</p>
<p>计有:</p>
<ul>
<li>github 注册说明</li>
<li>全手机 github 使用手册</li>
<li>如何 github-issue 图片发布</li>
<li>commit-comment和合模式解决的核心需求</li>
<li>大装修模式[B-C MODEL]规约</li>
<li>...</li>
</ul>
<p>简直将 github 各种表面功能挖了个底儿掉..</p>
<p>也生生前后挤出俺这8天 16 个小时的精力投入到越来越有趣也越深入的
<a href="http://www.jianshu.com/p/f3fc6f0ca682">怂怼</a><a href="http://www.jianshu.com/p/aaf4096bde08">和合</a>中来...</p>
<h2 id="_2">和合技<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<p>这次对具体的 <code>和合技</code> 积累的不多, 只复用了之前小组约定的几点,
创新的 <code>和合技</code> 是利用 github-project:</p>
<ul>
<li>类似 <code>Kanban</code> 系统的界面</li>
<li>快速直觉性的, 每人排出一个专辑次序</li>
<li>立即在 zoom 会议中逐一讲述基于的原则</li>
<li>公投定序</li>
</ul>
<p>过程流畅的象用了很多年的老司机, 不觉进一步的赞叹, github 功能设计的太傻瓜化了, 太好用了</p>
<h2 id="c-c">和合技: C-C 模式说明<a class="headerlink" href="#c-c" title="Permanent link">¶</a></h2>
<ul>
<li>参考: <a href="http://www.jianshu.com/p/aaf4096bde08">GC4g56: 和合技~强释</a><ul>
<li><a href="http://www.jianshu.com/p/61709860ae61">S06E05g56: 再次嗯哼</a></li>
</ul>
</li>
<li>C-C 模式<ul>
<li>即 github 的 Commit(提交)-Comment(点评)</li>
<li>是一种可以在版本页面逐行评注文本的功能</li>
<li>发现人追述: <a href="http://www.jianshu.com/p/d90f5df63e18">「私塾7.1/36」和合技C-C模式</a></li>
</ul>
</li>
<li><code>和合技</code> 是参照圣经和合本翻译过程的一种小组互助写作技法<ul>
<li>通过大家对同个稿件的多种方面/层次</li>
<li>进行反复多次的讨论和修订</li>
<li>获得超越所有成员本身写作能力之上的和合本</li>
</ul>
</li>
</ul>
<h3 id="_3">和合的内在要求<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
<p>一般网络团队,成员分布在全球各地无法象当年的和合翻译小组, 可以当面拿着同一份文稿逐字讨论</p>
<p>但是,通过网络却是可以基本达到相似状态的, 只要解决以下主要问题:</p>
<ol>
<li>看到完整/通畅的全文</li>
<li>看到具体修改了什么</li>
<li>可以快速对不满意的那一行进行点评</li>
<li>其它人可以同时看到其它所有人的点评</li>
<li>作者可以在任何时间随时自主将所有点评意见权衡后决定如何修订</li>
<li>作者可以随时发布修订好的新版本文稿</li>
</ol>
<h3 id="github">github 可利用的功能<a class="headerlink" href="#github" title="Permanent link">¶</a></h3>
<p>在 github 中可以进行大规模文本编辑的功能有三处
不过,一般使用其中两个:</p>
<ul>
<li>Code ~ 代码仓库</li>
<li>Issue ~ 提案池</li>
</ul>
<h4 id="issue">Issue<a class="headerlink" href="#issue" title="Permanent link">¶</a></h4>
<p>非常象以往的 BBS:</p>
<ul>
<li>提案建立后,大家就可以回复发表意见</li>
<li>想进行和合的话:<ul>
<li>大家的修订将在越来越长的回复列表中</li>
<li>作者想找到具体某一句的修订意见将越来越困难</li>
</ul>
</li>
</ul>
<p>所以, 不好进行 <code>和合</code></p>
<h4 id="code">Code<a class="headerlink" href="#code" title="Permanent link">¶</a></h4>
<p>有道是:</p>
<div class="highlight"><pre><span></span><code>代码是给电脑读的文章
电脑理解其义相应动作
文章是给肉脑读的文字
肉脑理解其意相应感动
</code></pre></div>
<blockquote>
<p>没差别嗦…</p>
</blockquote>
<p>所以, 虽然 github 的所有功能都是针对程序猿进行代码管理的,
也照样可以在和合写作中用起来 ;-)</p>
<p>只是, 具体操作时,得有点技巧,这点是
(@029-HK-宋偲瑄 敏锐的发现并宣告出来的)</p>
<p>将原先的代码仓库视作文稿仓库后:</p>
<ul>
<li>每次修订自己的文稿,提交</li>
<li>其它成员,立即可以从 Code->文件 路径中查阅到最新版本的全文<ul>
<li>解决前述 1/4/6 三个需求</li>
</ul>
</li>
<li>但是难以立即点评感觉有问题的那一行</li>
</ul>
<h5 id="_4">直接修订<a class="headerlink" href="#_4" title="Permanent link">¶</a></h5>
<ul>
<li>如果直接用编辑进行修订话</li>
<li>一提交,将在正文中留下修订意见</li>
<li>导致再刷新时正文原有的流畅阅读体验被中断</li>
<li>以及其它3个问题</li>
</ul>
<p>所以 不好进行 <code>和合</code></p>
<h5 id="c-c_1">C-C<a class="headerlink" href="#c-c_1" title="Permanent link">¶</a></h5>
<ul>
<li>从 Code->文件->History 路径</li>
<li>进入文稿的修订版本列表, 点击任一版本</li>
<li>进入 <code>Commit</code> 页面,记录了修订,以及和前一版本的差异处</li>
<li>又支持点击任一行头部的 <code>Comment</code> 符号来进行点评</li>
<li>作者可以随时经由相同的访问路径看到大家各自的点评</li>
<li>甚至于可以回复相关点评,直接展开文字讨论</li>
<li>综上解决了前述 <code>和合</code> 需求中:<ul>
<li>2/3/4 问题问题</li>
</ul>
</li>
</ul>
<p>看起来完美解决所有 <code>和合</code> 协同的需求哪</p>
<h3 id="c-c_2">C-C 使用中发现的问题<a class="headerlink" href="#c-c_2" title="Permanent link">¶</a></h3>
<ul>
<li>如果作者某次只修订了一行文稿</li>
<li>则在 C-C 界面中,只能看到前后3行文稿</li>
<li>问题1 没有同时解决</li>
<li>我们不得不另外开一个窗口,从 <code>Code->文件</code> 来查阅全文</li>
<li>要是修订的行,引发了隔了几段的另外一行的问题</li>
<li>就无法简单的进行对应点评了</li>
</ul>
<h4 id="_5">方案<a class="headerlink" href="#_5" title="Permanent link">¶</a></h4>
<p>仔细一想其实就这么几个解决方案</p>
<ol>
<li>每次修订后,都提交一个新文件,这样所有行都能点评</li>
<li>每次修订, 都修改每一行,这样自然所有行都能点评</li>
<li>每次修订, 对没有修改的那些行, 进行一些不影响阅读的修订,以便所有行都能点评</li>
<li>等待 github 开发相关功能,可以令 C-C 界面中看到所有没被修订的行</li>
</ol>
<h4 id="_6">分析<a class="headerlink" href="#_6" title="Permanent link">¶</a></h4>
<p>前述几种应对稍一思量就知道:</p>
<ol>
<li>这样将无法知道和前一个版本相比修订了什么</li>
<li>这是最好的方式, 也是最累的</li>
<li>这个可以有,但是,用什么方式可以快速追加什么看不到的修订?</li>
<li>这是种不现实的期待</li>
</ol>
<h4 id="_7">规约<a class="headerlink" href="#_7" title="Permanent link">¶</a></h4>
<p>过程中文稿的和合流程:</p>
<ul>
<li>作者尽力修订每一行, 如果不能,提交前在所有行前追加空格(下次提交可以再删除能些空格)</li>
<li>所有其它成员通过 <code>Code->文件->History</code> 点击最后的一个版本(Commit)</li>
<li>根据自己的理解/通读感觉, 对有问题的那一行使用 点评(Comemmt) 功能留下意见</li>
<li>作者在进行又一次修订前, 要通读所有点评,自主决定怎么和合</li>
<li>继续以上操作序列的循环处置</li>
</ul>
<h4 id="_8">技巧<a class="headerlink" href="#_8" title="Permanent link">¶</a></h4>
<p>~ split视图</p>
<ul>
<li>commit界面有两种视图</li>
<li>unitied 视图<ul>
<li>是将前后两个版本的文本间杂的显示,这样很影响完整的通读感觉</li>
</ul>
</li>
<li>split 视图<ul>
<li>则是将前后版本文字,以左右分离的形式来显示</li>
<li>即可以对比各行的变化</li>
<li>有有流畅的阅读体验</li>
<li>也能随地点评</li>
<li>唯一问题就是对显示屏幕有要求,对手机过小的屏幕就很难受了</li>
<li>所以, 推荐使用桌面电脑大屏幕在此视图中进行和合点评</li>
</ul>
</li>
</ul>
<h5 id="_9">进一步的<a class="headerlink" href="#_9" title="Permanent link">¶</a></h5>
<p>综上, 可以快速的对所有行的前/后 追加空格可以解决所有问题</p>
<ul>
<li>那么, 什么方式可以作到这点呢?</li>
<li>简单的说: <code>用个对的编辑器</code></li>
<li>大妈推荐: <code>Sublime Text 3</code></li>
</ul>
<h2 id="bc">和合技: BC 模式<a class="headerlink" href="#bc" title="Permanent link">¶</a></h2>
<p>~ <code>C-C</code> vs <code>BC</code> 模式</p>
<h3 id="_10">背景<a class="headerlink" href="#_10" title="Permanent link">¶</a></h3>
<p>作为一头程序猿, 每天都在使用 github(常见缩写为 gh),
一般对 gh 中的代码有两种处置:</p>
<ol>
<li>先同步团队成员昨天修订的代码, 然后进行理解/测试/修订/提交</li>
<li>根据邮件或是 gh 界面上的提醒, 查阅爱好者推送来的 <code>Pull-Request</code> (合并请求), 决定接受哪个合并,并将合并后的代码提交</li>
</ol>
<p>而竟然和100多年前的圣经 <code>和合本</code> 诞生过程非常相似:</p>
<ul>
<li><code>TUV</code> ~ The Union Version 和合本创作技巧 (<code>TÜV</code> 也是德国技术监督协会及认证的简称,以示这是一门严格的技术)</li>
<li>是 1891 年度开创性翻译圣经的方法,包含中国文人和外国教士组成的小组,</li>
<li>使用 <code>7柱式和合帐本</code> 来记录译文的版本变化:<ul>
<li>从左向右7列</li>
<li>分别是 初译->1审..4审->和合->定稿</li>
<li>译文竖写, 这样如同现代敏捷软件团队使用的 <code>Kanban</code> 一般</li>
<li>译文的每个字,都通过多轮次 review 最终和合出最合适的</li>
</ul>
</li>
</ul>
<p><img alt="TUV-orig.png" src="http://upload-images.jianshu.io/upload_images/27562-b7b71af30e0cfe57.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></p>
<p>所以, 小组联合写作时,自然的将代码仓库视作文稿仓库,
就能通过最现代化的协同平台, 来进行 <code>TUV</code> 了.</p>
<h3 id="_11">问题<a class="headerlink" href="#_11" title="Permanent link">¶</a></h3>
<p>第一时间规约好的 <code>和合</code> 流程:</p>
<div class="highlight"><pre><span></span><code><span class="mf">1.</span><span class="w"> </span><span class="n">随时通过</span><span class="w"> </span><span class="n">github</span><span class="w"> </span><span class="n">对所有文稿进行和合</span><span class="o">/</span><span class="n">点评</span>
<span class="mf">2.</span><span class="w"> </span><span class="n">每天至少和合自己文稿一个版本</span>
<span class="mf">3.</span><span class="w"> </span><span class="n">每天定时一小时</span><span class="w"> </span><span class="n">Zoom</span><span class="w"> </span><span class="n">和合会议</span>
</code></pre></div>
<p>通俗的说:</p>
<div class="highlight"><pre><span></span><code>每天每个人对自己的文稿就是那个主审
每个人对其它人的文稿就是四评
每天至少和合一次
就是自己应该定期将其它人的所有点评意见
自行和合出一个新版本来
</code></pre></div>
<p>并很快发现 gh 点评功能的特性,并进行了进一步的增强,即 <code>C-C</code> 模式</p>
<blockquote>
<p>参考: <a href="http://www.jianshu.com/p/d90f5df63e18">和合技C-C模式</a>
确保每次提交文件时, 文稿的每一行都有修订,或不可见的空格变化
这样可以高效利用 Code->file->History->Commit 中的 comment 功能
进行随时的和合讨论,节约会议时间</p>
</blockquote>
<p>但现实总是超出意料, 当前这一流程中:</p>
<ul>
<li>如果会议因为有些原因没有进行, 对文稿的点评/意见没进行讨论怎么办?</li>
<li>如果 <code>第一作者</code> 每天因为有原因没有完成和合,其它人可以主动进行嘛?</li>
<li>如果点评难以对一个跨度远的 两/多处 进行完整的修订说明, 怎么办?</li>
<li>...</li>
</ul>
<p>于是自然的, 俺对其它成员的文稿进行了逐一行修订,并提交,
跳过了先点评, 等 <code>第一作者</code> 的和合.</p>
<p>立即,引发了成员们的思考, 这样好不好?</p>
<h3 id="_12">分析<a class="headerlink" href="#_12" title="Permanent link">¶</a></h3>
<p>~ 当前和合文稿的流程中各种概念和角色</p>
<ul>
<li><code>仓库</code> -> Code -> file (各种 .md 结尾的文件) 即文稿</li>
<li><code>第一作者</code> -> <code>fE</code> ~ first Editor 对应文稿第一个版本的提交人, 即原作</li>
<li><code>C-C 模式</code> -> Commit-Comments ~ 提交-点评 模式, 通过 gh 提供的 版本(commit) 页面中的点评(comment) 功能, 方便的将原文/和合意见/讨论 统一在一个界面中,以便 <code>fE</code> 可以有的放矢高效完成新的一个版本</li>
<li><code>BC 模式</code> ~ <code>BigChang</code>(大装修)模式 即直接替代 <code>fE</code> 对文稿进行整体和合修订<ul>
<li>模式命名原创人追述: <a href="http://www.jianshu.com/p/ba524d020a06">「私塾7.2/36」和合技BC 模式</a></li>
</ul>
</li>
</ul>
<p>在进行了高速的思考和交流后,嗯哼了共识:</p>
<ul>
<li><code>fE</code> 对文稿天然更加理解, 因为这是 TA 内心的创造性成果,根据其它成员给出和合点评来和合是好的</li>
<li>和合中的贡献是复合的:<ul>
<li>C-C 中的点评</li>
<li>正文中的修订</li>
<li>通读的献声</li>
<li>会议中的讨论</li>
<li>流程/技巧的思考分享/演练</li>
<li>...</li>
</ul>
</li>
<li><code>和合技</code> 要着在快速反复的进行讨论和修订</li>
<li><code>C-C</code> 后等待 <code>fE</code> 来和合, 以及直接进行 <code>BC</code> 修订, 都是允许的</li>
<li><code>AKA</code> ~ AllKnowAll 原则也是 <code>和合技</code> 的精神内容:<ul>
<li>即确保: 全体对所有修订以及修订意见都应能简易可见</li>
<li>仓库中最新版本的文稿是否由 <code>fE</code> 完成并不重要</li>
</ul>
</li>
</ul>
<h3 id="_13">方案<a class="headerlink" href="#_13" title="Permanent link">¶</a></h3>
<p>~ <code>C-C</code>和<code>BC</code> 协同模式又有</p>
<h4 id="c-c-bc">C-C + BC<a class="headerlink" href="#c-c-bc" title="Permanent link">¶</a></h4>
<div class="highlight"><pre><span></span><code><span class="n">Code</span><span class="w"> </span><span class="n">................</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kc">...</span><span class="w"> </span><span class="n">History</span><span class="o">-></span><span class="n">Commit</span><span class="w"> </span><span class="n">....</span>
<span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="n">V</span><span class="w"> </span><span class="n">V</span><span class="w"> </span><span class="n">V</span><span class="w"> </span><span class="n">V</span>
<span class="o">+-</span><span class="w"> </span><span class="n">s07e17_010.md</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">Vn</span><span class="w"> </span><span class="n">..</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">V1</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">E0</span>
<span class="o">+-</span><span class="w"> </span><span class="n">s07e17_010_V2</span><span class="m">-011</span><span class="n">.md</span>
<span class="o">+-</span><span class="w"> </span><span class="n">s07e17_010_V2</span><span class="m">-100</span><span class="n">.md</span>
<span class="o">+-</span><span class="w"> </span><span class="kc">...</span>
<span class="o">+-</span><span class="w"> </span><span class="n">s07e17_011.md</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">Vn</span><span class="w"> </span><span class="n">..</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">V1</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">E0</span>
<span class="o">+-</span><span class="w"> </span><span class="n">s07e17_011_V1</span><span class="m">-010</span><span class="n">.md</span>
<span class="o">+-</span><span class="w"> </span><span class="n">s07e17_011_V3</span><span class="m">-100</span><span class="n">.md</span>
<span class="o">+-</span><span class="w"> </span><span class="kc">...</span>
<span class="o">+-</span><span class="w"> </span><span class="n">s07e17_100.md</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">Vn</span><span class="w"> </span><span class="n">..</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">V1</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">E0</span>
<span class="o">+-</span><span class="w"> </span><span class="n">..</span>
</code></pre></div>
<p><strong>其中:</strong></p>
<ul>
<li>V* 代表某 <code>C-C</code> 版本,为 <code>fE</code> 和合相关意见后的版本</li>
<li>E* 代表某个 <code>BC</code> 版本,即大装修版本<ul>
<li>E0 即初稿, 本质上也是 <code>fE</code> 的第一个大装修版本</li>
</ul>
</li>
</ul>
<p>这样看起来好象:</p>
<ul>
<li>将 <code>fE</code> 的所有版本,收集在固定的文件中并配以对应的点评</li>
<li>又同时通过 <code>BC</code> 的新文件, 配合文件名约定,以便:<ul>
<li>知道是从哪个版本中 <code>大装修</code> 出来的</li>
<li>以及是谁进行的 <code>大装修</code></li>
</ul>
</li>
</ul>
<p>问题在:</p>
<ul>
<li>仓库目录中的文件将高速增长</li>
<li>同时, <code>fE</code> 想知道 <code>BC</code> 和自己有关版本的差异也只能用肉眼</li>
<li>进一步的, 对 <code>BC</code> 版本的点评也分散在越来越多的文件版本历史中</li>
</ul>
<h4 id="c-c-bc_1">C-C | BC<a class="headerlink" href="#c-c-bc_1" title="Permanent link">¶</a></h4>
<p>~ 相信 gh 的能力, 约定人的行为就可以更加 easy</p>
<div class="highlight"><pre><span></span><code><span class="n">Code</span><span class="w"> </span><span class="n">...........</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">.........</span><span class="w"> </span><span class="n">History</span><span class="o">-></span><span class="n">Commit</span><span class="w"> </span><span class="n">..................</span>
<span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="n">V</span><span class="w"> </span><span class="n">V</span><span class="w"> </span><span class="n">V</span><span class="w"> </span><span class="n">V</span>
<span class="o">+-</span><span class="w"> </span><span class="n">s07e17_010.md</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">Vn</span><span class="w"> </span><span class="n">..</span><span class="w"> </span><span class="n">V2</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">V1E2</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">V1E1</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">V1</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">E0</span>
<span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">+:</span><span class="w"> </span><span class="n">inti.</span><span class="w"> </span>
<span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">+:</span><span class="w"> </span><span class="nf">V1</span><span class="p">(</span><span class="n">e2m</span><span class="p">)</span><span class="w"> </span><span class="kc">...</span>
<span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">+:</span><span class="w"> </span><span class="nf">V1</span><span class="p">(</span><span class="n">BC</span><span class="p">)</span><span class="w"> </span><span class="kc">...</span>
<span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">+:</span><span class="w"> </span><span class="nf">V1</span><span class="p">(</span><span class="n">BC</span><span class="p">)</span><span class="w"> </span><span class="kc">...</span>
<span class="o">|</span><span class="w"> </span><span class="o">+:</span><span class="w"> </span><span class="nf">V2</span><span class="p">(</span><span class="n">e2m</span><span class="p">)</span><span class="w"> </span><span class="kc">...</span>
<span class="o">+-</span><span class="w"> </span><span class="n">s07e17_011.md</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">Vn</span><span class="w"> </span><span class="n">..</span><span class="w"> </span><span class="n">V3</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">V1E1</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">V2</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">V1</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">E0</span>
<span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">+:</span><span class="w"> </span><span class="n">inti.</span><span class="w"> </span><span class="n">..</span>
<span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">+:</span><span class="w"> </span><span class="nf">V1</span><span class="p">(</span><span class="n">e2m</span><span class="p">)</span><span class="w"> </span><span class="kc">...</span>
<span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">+:</span><span class="w"> </span><span class="nf">V2</span><span class="p">(</span><span class="n">e2m</span><span class="p">)</span><span class="w"> </span><span class="kc">...</span>
<span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">+:</span><span class="w"> </span><span class="nf">V1</span><span class="p">(</span><span class="n">BC</span><span class="p">)</span><span class="w"> </span><span class="kc">...</span>
<span class="o">|</span><span class="w"> </span><span class="o">+:</span><span class="w"> </span><span class="nf">V3</span><span class="p">(</span><span class="n">e2m</span><span class="p">)</span><span class="w"> </span><span class="kc">...</span>
<span class="o">+-</span><span class="w"> </span><span class="n">s07e17_100.md</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">Vn</span><span class="w"> </span><span class="n">..</span><span class="w"> </span><span class="n">V2</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">V1E1</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">V1</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">E1</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">E0</span>
<span class="o">+-</span><span class="w"> </span><span class="n">..</span>
</code></pre></div>
<p><strong>其中:</strong></p>
<ul>
<li>V* 代表某 <code>C-C</code> 版本,为 <code>fE</code> 和合相关意见后的版本</li>
<li>E* 代表某个 <code>BC</code> 版本,即大装修版本<ul>
<li>E0 即初稿, 本质上也是 <code>fE</code> 的第一个大装修版本</li>
</ul>
</li>
<li><code>+:</code> 后面是提交时版本说明的前缀示例</li>
<li><code>e2m</code> ~ Easy to Merge, 是我们对 <code>和合技</code> 具体行为的指代<ul>
<li>参考:<a href="http://www.jianshu.com/p/aaf4096bde08">GC4g56: 和合技~强释</a></li>
</ul>
</li>
</ul>
<p>嘦约定好提交时的版本说明, 就可以令:</p>
<ul>
<li><code>Code->Commits</code> 列表 以及 <code>Code->file->History</code> 列表中</li>
<li>都能清晰的看到:<ul>
<li>所有修订都是什么状态中的</li>
<li><code>V*(e2m)</code> 都是 <code>fE</code> 发布的大和合版</li>
<li><code>V*(BC)</code> 都是成员 <code>大装修</code> 的非集体和合版</li>
</ul>
</li>
<li>进入任何一个版本,都可以 点评</li>
<li>同时, <code>fE</code> 也能在一个界面中知道有多少 <code>BC</code> 版本,以及 <code>BC</code> 和自己和合版本的差异<ul>
<li>事实上, 这种自动的差异标定, 也就等于成员的批量点评而已</li>
</ul>
</li>
</ul>
<p>PS:</p>
<ul>
<li><code>版本说明</code> 在编辑页面的底部, <code>Commit changes</code> 那个表单</li>
<li>其实, 使用版本说明来包含丰富的信息,以及指令</li>
<li>一直是程序猿的习惯行为,在 git 时代更加丰富了</li>
<li>参考: <a href="http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html">Commit message 和 Change log 编写指南 - 阮一峰的网络日志</a><ul>
<li><a href="https://help.github.com/articles/closing-issues-via-commit-messages/">Closing issues via commit messages - User Documentation</a></li>
<li><a href="https://help.github.com/articles/autolinked-references-and-urls/#issues-and-pull-requests">Autolinked references and URLs - User Documentation</a></li>
<li>...</li>
</ul>
</li>
</ul>
<h3 id="_14">追加: 版本描述<a class="headerlink" href="#_14" title="Permanent link">¶</a></h3>
<p>参考:<a href="http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html">Commit message 和 Change log 编写指南 - 阮一峰的网络日志</a></p>
<p>对于我们嘦最小模板
标题是对版本的压缩描述</p>
<div class="highlight"><pre><span></span><code>v*版本(BC 和合技类型) 产生日期 作者
</code></pre></div>
<ul>
<li>修订了什么</li>
<li>尝试了什么</li>
<li>大家应该作什么</li>
</ul>
<p>比如:</p>
<div class="highlight"><pre><span></span><code> v5(BC) d4e2m 成果和合
- 删除4,5 两节
- 增补会议意见
- 今天怼的入口
</code></pre></div>
<p>以及:</p>
<div class="highlight"><pre><span></span><code> v6(BC) d5e2m 小俕怼
- 根据一周理解
- 嵌入大妈语言结构
- 尽量完善逻辑链条
</code></pre></div>怂怼录2017-03-14T00:00:00+08:002020-07-19T11:55:57+08:00Zoom.Quiettag:blog.zoomquiet.io,2017-03-14:/170314-GC4-follow-ur-heart-debuguself.html<hr/>
<h1 id="_1">怂怼录<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<p>~来自 GC4 课程中的互动, 记录各种情景中的私人体会, 具体哪些场景的触发? 您猜~</p>
<h2 id="_2">怂怼解<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<div class="highlight"><pre><span></span><code>从心出发 对心发声
直觉通读 …</code></pre></div><hr/>
<h1 id="_1">怂怼录<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
<p>~来自 GC4 课程中的互动, 记录各种情景中的私人体会, 具体哪些场景的触发? 您猜~</p>
<h2 id="_2">怂怼解<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<div class="highlight"><pre><span></span><code>从心出发 对心发声
直觉通读 入耳走心
任意不畅 和合点矣
先找怼点 再修其诚
文气图画 如经似诵
字平易读 其义弗微
好中文哉 永存内心
怂怼而出 是也乎哉
</code></pre></div>
<h2 id="_3">和合技<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<div class="highlight"><pre><span></span><code>百年和合好事磨 几经和合定和合
从此和合传天下 也含和合技连脉
</code></pre></div>
<h3 id="_4">和合技层<a class="headerlink" href="#_4" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>合而不同 和而同气
合再进阶 和复顺气
和合嵌套 永无止境
</code></pre></div>
<h3 id="_5">和合嗯哼<a class="headerlink" href="#_5" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>一周不断探和合 七天末绝扣字眼
但使文章雅洁平 中文好样不使空
</code></pre></div>
<h3 id="_6">和合之焉<a class="headerlink" href="#_6" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>大道三千 早融生活
中外一样 入心入脑
唯难提取 须依场景
万般困顿 本心何如
录之念之 和矣合焉
</code></pre></div>
<h3 id="_7">和合效果<a class="headerlink" href="#_7" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>高雅概念去 平易述行藏
效果释嗯哼 中文好模样
</code></pre></div>
<h3 id="_8">和合协同<a class="headerlink" href="#_8" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>此间有真义 规模化魔咒
单打一何则 无量众合哉
</code></pre></div>
<p><img alt="170330e2mgrp" src="http://upload-images.jianshu.io/upload_images/27562-d6fce6d8e1b8c1b8.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"/></p>
<h2 id="_9">好个中文<a class="headerlink" href="#_9" title="Permanent link">¶</a></h2>
<blockquote>
<p>无趣只得是自已 世界从来太精彩
无胆去闯茶米油 唯放心思横竖捺</p>
</blockquote>
<h3 id="_10">佩哥哥<a class="headerlink" href="#_10" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>如丝如缕 无形无相
菩提心树 柢园布施
能得几何 且写且改
是也乎哉 ( ̄▽ ̄)
</code></pre></div>
<p><img alt="wp170330-anti-die-fish" src="http://upload-images.jianshu.io/upload_images/27562-353a35c935c580b2.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"/></p>
<p><img alt="wp170330-anti-line-book" src="http://upload-images.jianshu.io/upload_images/27562-5aaab78bf124c360.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"/></p>
<p><img alt="170328-anti-break-grp" src="http://upload-images.jianshu.io/upload_images/27562-da35cbca7bc25855.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"/></p>
<p><img alt="170330-anti-d" src="http://upload-images.jianshu.io/upload_images/27562-b37302f186737c74.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"/></p>
<div class="highlight"><pre><span></span><code>百无禁忌 千般好
万里无云 星光闪
亿样记忆 水流过
唯有家人 安心过
</code></pre></div>
<h3 id="_11">世上可有<a class="headerlink" href="#_11" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>世上可有任何速度,比买书的更迅捷?
世上可有任何建议,比老师的话语更可信?
世上可有任何箴言,比上帝的话语更慈悲?
世上可有任何嗯哼,比大妈的话更足繁不及道?
世上可有任何课程,比好中文更加不务正业?
世上可有任何... 是也乎,( ̄▽ ̄)
</code></pre></div>
<h3 id="_12">诗寿<a class="headerlink" href="#_12" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>外衍越小 内涵越大
内涵越大 解读越多
解读越多 流传越广
流传越广 使用越多
使用越多 变化越繁
变化越繁 适用越深
适用越深 存在越长
</code></pre></div>
<h3 id="_13">知情咒<a class="headerlink" href="#_13" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>以汝已知 以汝弗知
以己已知 以己弗知
</code></pre></div>
<h3 id="_14">知情咒制造<a class="headerlink" href="#_14" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>和合技 主妇流 知情咒
好中文 佩哥哥 是也乎
</code></pre></div>
<h3 id="opening">opening<a class="headerlink" href="#opening" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>open u mind
try u never try
be happy
to writing
</code></pre></div>
<h3 id="_15">新世界<a class="headerlink" href="#_15" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>无论我们看或是不看
世界总是在哪儿
不增不减
只是
我
是否
真心愿意
去积极探寻那些
永远探寻不尽的世界
</code></pre></div>
<h3 id="_16">真正的自由<a class="headerlink" href="#_16" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>人之初性本惰
动物性为主时
好吃好睡好玩
社会性浓重后
尊重自我实现
囿于社会结构
消费能力为尚
商品渴求无度
即便生产赛高
为了攀比荣耀
必创无谓侈品
破除这个魔咒
并非靠提境界
重定人之意义
现代放弃意义
追求科学力量
上帝必须先殆
科技才能无惧
只从资本指挥
上天入地奔月
更快更多更强
人却没了追求
只余自由买卖
生产资料根源
谁控谁定意义
社会资本主义
都仅求个生存
竭力保持增长
否则一切崩坏
未来共产义义
增长不为消费
发展附带增长
崇创始性劳动
劳动即人意义
可乍个过渡去
导师不知道啊
也没谁敢去试
所以是也乎哉
╮(╯▽╰)╭
</code></pre></div>
<h3 id="_17">坐而后家<a class="headerlink" href="#_17" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>做,而后做梦
读,而后整理
理,而后触感
感,而后发觉
觉,而后得定
定,而后发慧
慧,而后储能
能,而后文涌
</code></pre></div>
<h3 id="_18">立之以诚<a class="headerlink" href="#_18" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>立其诚 无对错
记当下 持续补
皆原创 理解深
字才平 会他人
尽全功 新技got
</code></pre></div>
<h3 id="calling">calling<a class="headerlink" href="#calling" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>神性蕴在所有人 却罕有能唤出时
但遇他她它或祂 立地成佛一刹那
</code></pre></div>
<h3 id="_19">买买买<a class="headerlink" href="#_19" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>千金难买我喜欢 随心随性起用先
待到无法忍受时 再说升级它器物
</code></pre></div>
<h3 id="_20">不得嗯哼<a class="headerlink" href="#_20" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>嗯哼只因辞穷 说到微妙之所
懵然发现没词 难以精确描述
好在大家脑补 只需音节补句
</code></pre></div>
<h3 id="_21">坑道<a class="headerlink" href="#_21" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>文章本天成 妙手偶得之
挖坑不可埋 格调靠坑堆
挖得九十九 神作自此成
</code></pre></div>
<h3 id="_22">第一人称<a class="headerlink" href="#_22" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>我就是那朵白莲花
出污泥而不染
人群中总是最先看到我
躲也不行
怎么办啊
我就是这般美的出尘
为了天地这一抹灵气
我也只能忍受你们的注目
继续我的求学之路…
</code></pre></div>
<blockquote>
<p>~ 芙蓉教主一世
4200天前</p>
</blockquote>
<h2 id="_23">醉点<a class="headerlink" href="#_23" title="Permanent link">¶</a></h2>
<div class="highlight"><pre><span></span><code>视而不见 最最常见
非不明义 自认弗要
何以判决 超纲经验
未先尝试 脑补视之
何以之破 保持傻瓜
是也乎哉 ( ̄▽ ̄)
</code></pre></div>
<blockquote>
<p>请公开讨论,令众受益……눈_눈</p>
</blockquote>
<p><img alt="wp150321-ask-dama" src="http://upload-images.jianshu.io/upload_images/27562-3d7a47fc376f7b3a.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"/></p>
<h3 id="_24">嫑点赞<a class="headerlink" href="#_24" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>点赞一秒钟
放弃思考无
以为且明白
实则忘脑后
好问题或值
视汝愿怼否
</code></pre></div>
<h3 id="_25">挖坑不埋<a class="headerlink" href="#_25" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>挖坑不埋真君子
授人以渔不予鱼
嗟来之食无营养
种子自粪成珍馐
大家同一天空下
我知我感即同你
先尝回答为什么
再来印证是也乎
╮(╯▽╰)╭
</code></pre></div>
<h3 id="_26">放弃<a class="headerlink" href="#_26" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>凡是可以快速放弃的
要么是不重要的问题
要么只是自己不重视
</code></pre></div>
<h1 id="316">3:16 之俕<a class="headerlink" href="#316" title="Permanent link">¶</a></h1>
<div class="highlight"><pre><span></span><code>停之顿之 往未知欲
能之力之 才得尝试
今之现之 终于累也
弱水三千 只取一瓢
今之现之 学会拒绝
做之行之 唯愿我意
</code></pre></div>
<h3 id="_27">随随缘缘<a class="headerlink" href="#_27" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>随心随性 缘来缘去
我述我法 但信或不
无碍吾心 是也乎哉
</code></pre></div>
<h3 id="_28">忘记...<a class="headerlink" href="#_28" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>忘记的就是不重要的
不知道就是不必要的
事实往往不是这样的
( ̄⊥ ̄)
</code></pre></div>
<h2 id="_29">修行之道<a class="headerlink" href="#_29" title="Permanent link">¶</a></h2>
<div class="highlight"><pre><span></span><code>关注大师的言行
跟随大师的举动
和大师一并修行
领会大师的意境
成为真正的大师
look to the master
follow the master
walk with the master
see through the master
become the master
</code></pre></div>
<blockquote>
<p>http://www.catb.org/~esr/faqs/hac</p>
</blockquote>
<h3 id="_30">膜拜<a class="headerlink" href="#_30" title="Permanent link">¶</a></h3>
<div class="highlight"><pre><span></span><code>膜拜向来有门槛
一心向佛无香火
寺门无径后殿入
上帝救赎有票卖
无钱只得下地狱
知行合一为那般
拜前自证已入境
</code></pre></div>S07E17g193:作业合缉,内设奖品2017-03-14T00:00:00+08:002020-07-19T11:56:18+08:00Zoom.Quiettag:blog.zoomquiet.io,2017-03-14:/170314-S07E17g193.html<hr/>
<h1 id="s07e17g193">S07E17g193:作业合缉,内设奖品<a class="headerlink" href="#s07e17g193" title="Permanent link">¶</a></h1>
<p>此乃《好中文的样子》课程小组作业,成员(按纬度排序)有天津一坪海岸线、上海安心竹和申小七、香港宋 …</p><hr/>
<h1 id="s07e17g193">S07E17g193:作业合缉,内设奖品<a class="headerlink" href="#s07e17g193" title="Permanent link">¶</a></h1>
<p>此乃《好中文的样子》课程小组作业,成员(按纬度排序)有天津一坪海岸线、上海安心竹和申小七、香港宋偲瑄、珠海大妈。</p>
<blockquote>
<p>提示文末福利:
作业由五人相互而成,虽选题不一,但仍以神秘逻辑串合在了一起。
如果“评论”回复正确这五篇短文作者各是谁,
将会收到本组严正补品 --《共产党宣言》经典版本一册。
共5个名额,先怼先得。</p>
</blockquote>
<h2 id="_1">焖土豆<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2>
<div class="highlight"><pre><span></span><code>都已出了正月
春 依然犹豫 就是不来珠海
忽冷乍热 闷出身黏糊
不觉回想起 儿时在兰州
这节气 真正 天青气爽
山上黄土不干也不湿
实在是 焖土豆 的好日子
午间 和死党们翘课
在菜市场摸上几颗土豆 揣好火柴
兴冲冲爬一会儿 就能到半山
就地摸条石片 选个坡
平整出灶台 约一臂宽
在台面下一拳左右 向内 挖出坑道 一肘见方
接着 在灶面中心
小心向下凿穿 就是火眼 拳头粗细
再从旁边披出些小土块 半掌大小
围住火眼 垒成透风的金字塔
这时大家 也都拾柴回来了
废纸柴草一塞 升火烧旺
等火苗将土塔内侧 烤得微红
一脚捅塌 丢入土豆 用土封好
大功告成 伸伸腰 撒泡尿
十分钟 焦香钻土而出
马上围住 七手八脚 刨开土
要躲着还滚烫的土块
将土豆们小心挑出来
人人托上 急急撮破皮
哪管上面是否有土 下嘴啃
简直就是烤鸡 刚出炉 外焦里嫩 浓香冲顶
那时 一起大马金刀 踞坐山边
凝视河谷中 居民楼 学校 操场 工人俱乐部 红旗 …
即便年纪小 心中却是涌出 苍茫
</code></pre></div>
<h2 id="_2">跑下去<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
<div class="highlight"><pre><span></span><code>周日阳光明媚
城市雾霾终于消散
带女儿来到公园
一同畅快的享受户外阳光和蓝天
公园里小伙伴们很快熟识
追逐着漫天的肥皂泡
女儿开心极了
而我急急跟在后面
护着女儿的周全
才跑了五十米
已是气喘吁吁
顺势歪躺在草地上
扭头 微风中 女儿追逐着肥皂泡
身影稚嫩 分外可人
我被美丽的场面惊呆
凝望许久
一个念头刹那间刺到了我
女儿从襁褓到咿呀学步
时光如梭 如今已经奔跑自如
将来女儿会跑的越来越快
当她开始享受奔跑的乐趣
我就开始跑不动
还在喘息 低头瞪着赘肉 黯然神伤
人生最大的悲哀也许莫过于此
如果说身体和思想总有一个在路上
言传身教静下心想来
也许身教才是最有力的教育和传承
为了改变 我开始了慢跑
从初跑的五十米
喘气 停歇 放弃 挣扎 再上路 纠结
呼吸的急促 体力的匮乏
肌肉的酸痛 无一可以克服
不跑的理由很多
跑下去的理由极少
跑步中如果真的有什么必须战胜的对手
回想 只能是过去的自己
因为期望健康地陪伴女儿的成长
就这样 坚持中
我完成了人生首个十公里 半马 全马
没有轻松的得到
只有坚持的意外
未来 女儿将长大成人
远去的背影会更加坚定且稳健
分明告诉她的父母不必追
但我只想尽力跑的快一点 再快一点
跟上陪伴她的脚步将距离缩短一点 再短一点
</code></pre></div>
<h2 id="_3">渔岛<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2>
<p>他走到海草房的门前,能借口水喝吗?</p>
<p>渔夫的女儿低着头,手里的动作突然凝住。渔夫的女儿抬起头惊愣,鼻翼细密的汗珠泛着浑浊的灰。 风暴前,天上擦不干净的,也是这样的灰。</p>
<p>渔夫的女儿闪进海草房的门后,门缝里遗落两颗像星星一样黑的眼睛忽闪。海草做的门,有轻柔的阻力。他缓慢地把门拉向自己。门开的瞬,嵌着她的背影,粉旧的麻布裙子到脚踝,腰肢像春桨,系着黑绿色的围裙。 她像刚被风从尘埃里吹出来的棕榈树叶子,寂静的黄枯里挣扎着一绺不甘的绿。 或者是踢开滚圆的鹅卵石会看到的,不知道哪次涨潮时,被潮水丢弃在石头与石头缝隙间的海藻。 她就像那海藻,太阳底下的石头传导着温度刚要把它烤干,潮水便默默探访一遭,在脆软的海藻上留下摆脱不掉的湿印,就像她胸前的痕迹。</p>
<p>他不请自来,坐在海草屋里唯一的椅子上,接过她递来的颤巍巍的水。</p>
<p>岛上就你们一家吗?他问。</p>
<p>渔夫的女儿局促的手指在墨绿色的围裙上揩了揩,连带胸部丰腴的线条,像风吹过时的麦浪。 渔夫的女儿扭身走出海草房,蘸着蓝色的油漆,刷那没褪色的船篷。
船是你爹自己造的?他跟出来,蹲在一边。</p>
<p>渔夫的女儿蘸着蓝色的油漆,刷蓝得泛汪的船篷。</p>
<p>他的背正对着渔夫回来的方向。他感到了奇异的粗糙的力量稳稳地拍了他的肩膀,他扭头,看到了渔夫奇异的笑。他想那奇异的缘故是太久没笑,又好像不止。
你睡哪里。渔夫问。</p>
<p>他看着渔夫刀割一样的皱纹,门口,他答。</p>
<p>他留了下来。</p>
<h2 id="_4">疯人院的中秋节<a class="headerlink" href="#_4" title="Permanent link">¶</a></h2>
<p>月光如水,倾泻而下,映出院子天井般的深影。</p>
<p>东北角杂草地,一男人斜躺着,瘦瘦长长,裤子极不合身,露出了一大截小腿。</p>
<p>院子中央,有一男青年在跳舞, 霹雳舞, 他随着想象中的节奏, 夸张地摆动着身体,还一边和观众互动, 一边固执的只向右甩发, 不存在的长发。</p>
<p>观众开始活跃,朝他吹口哨,喝倒彩,也有人随众人一通傻乐。</p>
<p>草地上男人幽幽望了人群一眼,转头盯树,和四年以来的每天一样。 </p>
<p>女人,三十几, 脸色苍白,唱“爱江山更爱美人”, 凄美幽怨,无人言语。</p>
<p>人群后,突然一声嘁笑。 老太婆, 瘦瘦小小,驼背。 也是名人, 病人们被混居在一大房间, 每当深夜,若你被悉悉索索的声音弄醒, 一睁眼,一定看到的是她, 静静的, 木然的看着你, 她睡不着,喜欢半夜瞎晃。</p>
<p>小伙儿, 二十几,表演武术, 好不容易答应出场, 他被城管吓坏了, 害怕他人关注的目光. 脸被药里激素催肿, 但神情认真。</p>
<p>这一群,似乎遗忘了世界的人,也在庆祝中秋。</p>
<p>愿他们,也能被这世界,温柔以待。</p>
<h2 id="_5">味道<a class="headerlink" href="#_5" title="Permanent link">¶</a></h2>
<p>七月份的一个暴晒下午,法医李雨接到了她的第一次出警任务。</p>
<p>和同事们顶着39度的高温,她带着勘查箱来到犯罪现场:临海河的某片平房拆迁区。</p>
<p>将将走进过道,一股恶臭直冲脑门儿。</p>
<p>即使在专业课学过:尸臭由400多种挥发性有机化合物构成,主要成分是尸胺和腐胺。</p>
<p>但第一次现场闻,还是让李雨受到了冲击:刺鼻又特殊,就像是两万只死耗子堆在她面前。</p>
<p>高度腐败的尸体,盖满了苍蝇和蛆。</p>
<p>队长吩咐大伙儿使用驱虫剂,李雨却“呕”的一声,把午饭一口喷了出来。</p>
<p>尸臭顽固地粘在了她的身上,尤其在出夜警的时候,真实得就像她重新站在那具尸体旁边。
领导看出她心理压力过大,找她谈话:实在不行,可以在合适的时候申请转岗。</p>
<p>就在李雨也觉得自己坚持不下去的时候,事情有了转机。</p>
<p>一个流浪汉被初步判定冻死在他的拾荒窝棚里。</p>
<p>勘验现场,李雨掀开流浪汉身上的层层棉被,熟悉的尸臭味道又来了。
强按下那种恐惧与不适,李雨发现:死者脸上的血痕残存,但创口周围的血迹却被清洗干净,
尸体的衣物还有被轻微动过的痕迹。</p>
<p>她大胆推断:这不是意外,是刑事案件。</p>
<p>果然,进一步化验下,李雨的发现成了破案的关键。</p>
<p>两天之后,嫌疑人被抓捕归案。</p>
<p>看到嫌疑人被送押,尸臭的味道和那背后的恐惧也在这一刻随之而去。
转天,有人报警:信宁大厦发现四具烧焦的尸体。</p>
<p>李雨与同事对望一眼,抓起警帽,快步出发。</p>