<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title><![CDATA[硬汉工作室]]></title> 
<atom:link href="https://emlog.nciaer.com/rss.php" rel="self" type="application/rss+xml" />
<description><![CDATA[全心全意为站长服务]]></description>
<link>https://emlog.nciaer.com/</link>
<language>zh-cn</language>

<item>
    <title>php里的opcache</title>
    <link>https://emlog.nciaer.com/?post=352</link>
    <description><![CDATA[<p>虽然用php也十几年了，但是最近才开始学习下php优化的知识，不是php语法方面，而是php环境方面，而opcache就是用来提高php执行效率的。</p>
<p>如果不启用这个opcache，php环境每次解析php文件时，需要<code>读取-&gt;解析-&gt;执行</code>，如果启用后，那么直接把php文件解析后的代码（字节码？）缓存起来，下次不用读取php文件了，至少少了一次IO，直接执行，那速度肯定会快一些。</p>
<p>这里又有一个问题，如果php字节码缓存起来后，修改php文件怎么办呢？opcache有选项可以配置，多长时间重新读取php文件，开发环境可以设置短一点，生产环境可以设置长一点。</p>
<p>可以通过phpinfo()函数来判断是否启用了opcache。</p>]]></description>
    <pubDate>Mon, 07 Sep 2026 09:17:26 +0800</pubDate>
    <dc:creator>nciaer</dc:creator>
    <guid>https://emlog.nciaer.com/?post=352</guid>
</item>
<item>
    <title>flex知识点</title>
    <link>https://emlog.nciaer.com/?post=351</link>
    <description><![CDATA[<h2>一、知识点</h2>
<ol>
<li>
<p>flex容器里的项目如果没有设置高度，那么项目高度默认和容器一样高；</p>
</li>
<li>
<p>flex项目默认横向排列，不会自动换行，会直接挤压项目的宽度，不管项目是否设置了宽度；</p>
</li>
<li>
<p>如果设置了换行，比如换成了3行，那么3行会充满容器的高度；</p>
</li>
</ol>
<h2>二、速查手册</h2>
<table>
<thead>
<tr>
<th>属性</th>
<th>作用</th>
</tr>
</thead>
<tbody>
<tr>
<td>flex-direction</td>
<td>设置主轴方向，如row水平（默认），column垂直</td>
</tr>
<tr>
<td>flex-wrap</td>
<td>是否换行,默认(nowarp)不换，wrap(换行)</td>
</tr>
<tr>
<td>flex-flow</td>
<td>flex-direction和flex-wrap简写，如：row wrap</td>
</tr>
<tr>
<td>justify-content</td>
<td>主轴对齐方式（水平对齐方式）<br />flext-start 左对齐，默认<br />flex-end 右对齐<br />center 居中对齐<br />space-between 两端对齐，中间均匀分配间隙<br />space-around  每个项目两端空隙一样<br /> space-evenly 所有空隙一样</td>
</tr>
<tr>
<td>align-items</td>
<td>交叉轴垂直对齐，单行时使用<br />stretch 拉伸，如果项目没有设置高度，那么拉伸到和容器一样高<br />center 垂直居中，最常用</td>
</tr>
<tr>
<td>align-content</td>
<td>多行时，垂直对齐方式，其实就是justify-content的垂直版本，值也一样，单行时无效</td>
</tr>
<tr>
<td>order</td>
<td>控制排序，默认0，值越大排的越往后</td>
</tr>
<tr>
<td>flex-grow</td>
<td>剩余空间分配，默认0，如果把某个项目设置1，那么它就占剩余 空间</td>
</tr>
<tr>
<td>flex-shrink</td>
<td>空间不足时是否压缩，默认值1，压缩，设置为0就是绝不压缩</td>
</tr>
<tr>
<td>flex-basis</td>
<td>设置元素基准尺寸，不知道有啥用</td>
</tr>
<tr>
<td>flex</td>
<td>flex: grow shrink basis的简写，常用就是1，占用剩余空间</td>
</tr>
<tr>
<td>align-self</td>
<td>单独修改某个项目垂直对齐方式</td>
</tr>
<tr>
<td>gap</td>
<td>设置项目的间距，用在父元素，比margin好用，不会有额外边距</td>
</tr>
</tbody>
</table>]]></description>
    <pubDate>Thu, 30 Jul 2026 09:29:20 +0800</pubDate>
    <dc:creator>nciaer</dc:creator>
    <guid>https://emlog.nciaer.com/?post=351</guid>
</item>
<item>
    <title>ES6对象方法简写</title>
    <link>https://emlog.nciaer.com/?post=350</link>
    <description><![CDATA[<p>ES5及以前，对象里方法是这么定义的：</p>
<pre><code class="language-javascript">{
    say: function() {
        console.log('hello');
    }
}</code></pre>
<p>ES6简化了对象里方法的定义，如下：</p>
<pre><code class="language-javascript">{
    say() {
        console.log('hello');
    }
}</code></pre>
<p>效果其实完全一样，只是个语法糖，更加简洁，vue/uniapp里都这么写。</p>]]></description>
    <pubDate>Mon, 20 Jul 2026 09:21:22 +0800</pubDate>
    <dc:creator>nciaer</dc:creator>
    <guid>https://emlog.nciaer.com/?post=350</guid>
</item>
<item>
    <title>uniapp开发的小程序启动，提示：Error: timeout</title>
    <link>https://emlog.nciaer.com/?post=349</link>
    <description><![CDATA[<p>uniapp开发的空白小程序，启动后提示这个：</p>
<pre><code>Error: timeout
at Function.&lt;anonymous&gt; (WAServiceMainContext.js?t=wechat&amp;v=3.15.2:1)
at p (WAServiceMainContext.js?t=wechat&amp;v=3.15.2:1)
at WAServiceMainContext.js?t=wechat&amp;v=3.15.2:1
at WAServiceMainContext.js?t=wechat&amp;v=3.15.2:1(env: Windows,mp,1.06.2504060; lib: 3.15.2)</code></pre>
<p><strong>uniapp官方回复如下：</strong></p>
<p>这是微信开发者工具的内部机制报错，与你的 uni-app 空白项目代码无关，通常不会对小程序正常运行和真机体验产生任何实质影响。</p>
<p>具体来说：<br />
WAServiceMainContext.js 是微信开发者工具自身的底层服务文件，127.0.0.1:xxxx 也正是开发者工具在本机启动的服务地址。在项目刚启动时，工具内部组件之间的初始化和通信偶尔会出现超时，这在开发环境中属于偶发的系统级 bug。</p>
<p>从 ask 社区相关的反馈来看，这类 SystemError (appServiceSDKScriptError) 等报错，只要没有导致页面白屏或功能异常，官方通常建议忽略该报错，并且它在稳定的基础库版本下往往不会出现。</p>
<p>你可以留意以下两点来规避此问题：<br />
确认是否影响功能：只要你的页面能正常渲染、数据能正常请求和展示，这个控制台的 Error: timeout 可以完全忽略。<br />
偶尔的闪屏排查：如果确实看到了白屏，可以检查一下项目 main.js 的最后一行是否为单行注释。如果是，可以将其改为多行注释或在末尾另起一行加个变量声明（如 let a;），这是一个在特定版本下可能导致启动白屏的已知问题（相关 ISSUE）。</p>]]></description>
    <pubDate>Wed, 20 May 2026 11:38:36 +0800</pubDate>
    <dc:creator>nciaer</dc:creator>
    <guid>https://emlog.nciaer.com/?post=349</guid>
</item>
<item>
    <title>公司小程序年审总结</title>
    <link>https://emlog.nciaer.com/?post=345</link>
    <description><![CDATA[<p>每次都忘了具体步骤，所以记录下来。</p>
<p>因为我们是与医院合作的挂号平台，所以需要提供医院的<code>医疗机构执业许可证</code>、<code>合作协议</code>以及<code>小程序承诺函</code>，因为小程序年审比较多，所以每个主体的小程序都有psd的承诺函，然后审核公司可能还需要给医院打电话核实合作信息，完事。简简单单。</p>
<p>完工</p>]]></description>
    <pubDate>Tue, 10 Mar 2026 10:18:43 +0800</pubDate>
    <dc:creator>nciaer</dc:creator>
    <guid>https://emlog.nciaer.com/?post=345</guid>
</item>
<item>
    <title>C51知识记录</title>
    <link>https://emlog.nciaer.com/?post=344</link>
    <description><![CDATA[<p>汇编太难了，还是用C语言来学习单片机吧。</p>
<p>先介绍下keil c51里两个专属关键字：</p>
<p><code>sfr</code>： 全称是特殊功能寄存器（special function register），作用是将单片机硬件寄存器的物理地址映射为 C 语言中的变量，用变量操控寄存器，格式是：<code>sfr 寄存器名 = 寄存器物理地址</code>。</p>
<p><code>sbit</code>：special bit，给某个位定义变量，比如 <code>sbit LED = P1^0；</code>，然后在后面代码里可以用LED=1设置P1.0的口为高电平。</p>]]></description>
    <pubDate>Sat, 28 Feb 2026 15:50:26 +0800</pubDate>
    <dc:creator>nciaer</dc:creator>
    <guid>https://emlog.nciaer.com/?post=344</guid>
</item>
<item>
    <title>小鱼备注</title>
    <link>https://emlog.nciaer.com/?post=343</link>
    <description><![CDATA[<table>
<thead>
<tr>
<th>班次</th>
<th>上班时间</th>
<th>下班时间</th>
</tr>
</thead>
<tbody>
<tr>
<td>A1</td>
<td>7：00</td>
<td>16：00</td>
</tr>
<tr>
<td>A2</td>
<td>8：00</td>
<td>17：00</td>
</tr>
<tr>
<td>A3</td>
<td>9：00</td>
<td>18：00</td>
</tr>
<tr>
<td>B1</td>
<td>11：00</td>
<td>20：00</td>
</tr>
<tr>
<td>B2</td>
<td>14：00</td>
<td>23：00</td>
</tr>
</tbody>
</table>
<hr />
<p>口红：196色号</p>]]></description>
    <pubDate>Sat, 28 Feb 2026 09:26:41 +0800</pubDate>
    <dc:creator>nciaer</dc:creator>
    <guid>https://emlog.nciaer.com/?post=343</guid>
</item>
<item>
    <title>常用元器件</title>
    <link>https://emlog.nciaer.com/?post=342</link>
    <description><![CDATA[<p><code>DS18B20</code> 单总线数字温度传感器，</p>
<p><code>ESP8266</code> 低成本 Wi-Fi 专用模块，主打 “把串口数据转 Wi-Fi 数据”（透传），一般配合51来使用</p>
<p><code>ESP32</code> 蓝牙+Wi-Fi微处理器模块，能同时做 “本地控制（比如驱动电机 / 屏幕）+ 无线通信（传数据 / 连蓝牙设备）”，是 “一站式物联网主控”</p>
<p><code>HC-SR04</code> 测距模块，2cm-400cm之间</p>]]></description>
    <pubDate>Fri, 27 Feb 2026 15:12:02 +0800</pubDate>
    <dc:creator>nciaer</dc:creator>
    <guid>https://emlog.nciaer.com/?post=342</guid>
</item>
<item>
    <title>C51汇编指令集</title>
    <link>https://emlog.nciaer.com/?post=341</link>
    <description><![CDATA[<h2>常用术语说明</h2>
<ul>
<li>
<p>CY（carry），进位标志</p>
</li>
<li>
<p>A（ACC，accumulator），累加器</p>
</li>
<li>
<p>PSW（program status word），程序状态字寄存器，是特殊功能寄存器，核心作用是记录程序执行过程中的 “状态信息”</p>
</li>
<li>
<p>P（parity），奇偶校验位</p>
</li>
<li>
<p>ORG（origin），起始位置，伪指令，没有对应的机器码，只是编译时用</p>
</li>
<li>
<p>END，汇编伪指令，必须放在程序最后且只能有一个</p>
</li>
<li>
<p>NOP（no operation），空操作，啥也不操作，只消耗一个时钟周期</p>
</li>
</ul>
<h2>常用指令</h2>
<ul>
<li>
<p>RL A（rotate left with carry），带进位循环左移指令</p>
</li>
<li>
<p>RL（rotate left），不带进位循环指令</p>
</li>
<li>
<p>SETB（set bit），将指定位置的电平设置位1，高电平</p>
</li>
<li>
<p>CLR（clear），将指定寄存器清0</p>
</li>
<li>
<p>LJMP（long jump），长跳转指令，可以跳转到64K的地址</p>
</li>
<li>
<p>SJMP（short jump），短跳转指令，只能跳转-127~128的地址</p>
</li>
</ul>]]></description>
    <pubDate>Mon, 02 Feb 2026 11:14:57 +0800</pubDate>
    <dc:creator>nciaer</dc:creator>
    <guid>https://emlog.nciaer.com/?post=341</guid>
</item>
<item>
    <title>phpstorm发现了新功能</title>
    <link>https://emlog.nciaer.com/?post=340</link>
    <description><![CDATA[<p>我现在开发模式一直是phpstorm+ftp，也就是phpstorm自带的ftp，连接到远程服务器，保存即提交。</p>
<p>有时候我想查看服务器上文件修改时间和大小，但是默认的<code>Rmote Host</code>里只显示文件列表，豆包一搜，原来还真有这个功能，也就是在点击<code>Rmote Host</code>右上角的齿轮，有<code>Show Size</code>和<code>Show Date</code>选项。</p>
<p>左侧是本地的项目目录，用快捷键<code>Shift+Alt+\</code>可以显示或者隐藏显示文件修改时间和大小，也可以在<code>View-&gt;Appearance-&gt;Descriptions in Tree Views</code>开启。</p>
<p>完美。</p>]]></description>
    <pubDate>Tue, 27 Jan 2026 17:09:22 +0800</pubDate>
    <dc:creator>nciaer</dc:creator>
    <guid>https://emlog.nciaer.com/?post=340</guid>
</item>
</channel>
</rss>