Windows安装rsync命令一键脚本
<>在Widow上安装ryc通常需要使用诸如WSL2或Cygwi等解决方案。然而,这些方法可能会导致性能下降、系统资源占用高以及用户体验不佳等问题。因此,我们将通过一个简单的PowerShell脚本来安装cwRyc,避免上述问题。</><><trog>请注意:</trog> 执行这个脚本意味着您同意cwRyc的相关协议。</>
<>在Widow上安装ryc通常需要使用诸如WSL2或Cygwi等解决方案。然而,这些方法可能会导致性能下降、系统资源占用高以及用户体验不佳等问题。因此,我们将通过一个简单的PowerShell脚本来安装cwRyc,避免上述问题。</><><trog>请注意:</trog> 执行这个脚本意味着您同意cwRyc的相关协议。</>
<>现在新购买默认搭载Widow系统的电脑一般都会提供一个<code>Widow Hello</code>身份认证方案,例如指纹或者人脸识别。Howdy是一个在Liux上模仿Widow Hello的程序,可以实现在<code>系统用户登录</code>、<code>锁屏登录</code>、<code>udo</code>、<code> u</code>等身份认证时候使用人脸识别。</><>Howdy开源地址:<a target="_lak" href="htt://githu.com/oltgolt/howdy" title="" rel="exteral ofollow">htt://githu.com/oltgolt/howdy</a></><>Howdy程序本身的使用方法官方已经已经非常详细了,在此仅做补充。</><>除了说明提到的<code>Uutu or Liux Mit</code>、<code>Deia</code>、<code>Arch Liux</code>、<code>Fedora</code>、<code>oeSUSE</code>这些Liux发行版之外,基于这些系统的一系列发行版系统都是可以用的。例如<code>Raerry Pi OS</code>、<code>Kali</code>。</><>支持<code>Widow Hello</code>的笔记本电脑配有红外摄像头和红外光线发射器。红外网络摄像头通常可以在Liux上自动检测到,但默认情况下,红外光线发射器不起作用。为了使它们工作,请安装和配置<a target="_lak" href="htt://githu.com/EmixamPP/liux-eale-ir-emitter" title="" rel="exteral ofollow">liux-eale-ir-emitter</a>。</>
<>RNDIS(Remote Network Driver Iterface Secificatio)驱动在MacOS Sooma中的安装,可以有效解决一些网络共享问题。这主要用于两个场景:</><ol><li><trog>安卓手机有线共享网络</trog>:允许用户通过USB连接,将安卓设备的网络共享给MacOS设备。</li><li><trog>USB随身WiFi有线共享网络</trog>:实现通过USB连接的WiFi设备,为MacOS提供网络连接。常见的飞猫智联U8、高通410随身Wifi等几乎所有USB和TyeC接口的4G/5G随身WIFI都是RNDIS方式有线上网。</li></ol><>支持Itel、Ale Silico(M1/M2/M3)芯片。</>
<>由于工作需要,长期以来我都是iPhoe作为主力机,安卓作为备用机。经常出现iPhoe在充电的时候需要接收验证码。为了实现备用机和主力机一致的功能体验,特地让AI帮我写了一个APP实现“iPhoe短信自动转发到Adroid手机”。</><>众所周知,Adroid手机APP是可以可以申请读取短信内容权限的,实现Adroid短信自动转发或者自动识别验证码是比较容易的。但是目前为止,我并没有发现市面上存在IOS应用程序可以实现读取短信的。真的没有办法实现读取短信内容吗?带着疑问我让AI帮忙翻阅了Ale开发者文档,最后发现其实是可以实现这个功能的。</>
<>这篇文章《A tale ad relicale eural igature of lifea adverity i the adult rai》在《Nature Neurociece》上发表,讲述了一项纵向研究,研究人员通过对约170人的一生数据及其大脑结构的检视,发现逆境(如母亲怀孕期吸烟,受虐待等负面事件)会导致大脑广泛的形态变化,这种影响与生逆境类型和患者大脑特定区域有关。研究结果显示,这种逆境对大脑结构的影响是可持续且稳定的,逆境不仅改变了大脑结构,而且可能引起持续的焦虑症状,有助于预测谁更有可能患上精神障碍,这为精神健康的干预和治疗提供了新的理论依据。逆境不仅是社会和心理问题,更是生物学问题。我们需要对逆境的影响进行更多重视,寻求有效策略减轻其对个人和家庭的长期影响。同时,研究团队开源了用于预测临床神经科学的工具包,旨在推动此领域的进一步发展。</>
<>The article rimarily dicue the tye ad quality of data required for Suervied Fie-Tuig (SFT). It cover the followig aect:</><ol><li><trog>Ojective of Suervied Fie-Tuig</trog> : Ehacig erformace i ecific tak, domai adataility, ad the iterretaility ad cotrollaility of the model, with a overarchig goal to oot ytem route.</li><li><trog>Core Coideratio</trog> : Thee iclude the diverity of data, avoidig treatig SFT merely a data ulemetatio, aroriately icororatig few-hot learig ad COT data, emhaizig data quality over quatity i SFT, ad recogizig that icreaig data volume without diverity rig dimiihed retur.</li><li><trog>Data Quality Requiremet</trog> : Thee coideratio touch o the legth retrictio for quetio ad awer, the accuracy of awer, the electio of data aed o idutry requiremet, the diverity of eceary NLP ailitie, ad the cautio agait too much vertical domai data.</li><li><trog>Secific Examle</trog> : The article rovide oth good ad oor dataet examle to illutrate how to chooe ad evaluate data.</li><li><trog>QamA Sectio</trog> : Thi art exlai why icludig the aility to write code i SFT i eetial, emhaizig it imortace i imrovig reaoig ad tructured outut ailitie.</li></ol><>I ummary, the article offer comreheive guidace o how to coduct uervied fie-tuig, uderliig the imortace of data diverity ad quality, ad reet imlemetatio trategie ad examle to uort thee oit.</>
<>专业显卡在生产力应用领域不仅仅用于AI模型训练及推理,也用于空气动力学仿真、科学计算和数据分析。某些情况下塔式工作站是很多专业用户的最佳选择。</><h2>为什么选择消费级平台?</h2><>使用云服务获得专业显卡的计算能力是非常方便的,但受限于光速,使用非同一个城市的机房会有较大的延迟,部分专业应用对延迟要求很高,也不得不使用物理机搭配专业显卡。</><>博主在近几年一直在做垂直领域的人工智能,由于服务于政府客户,对数据安全的要求比较高,因此选择自建塔式工作站放置于工作室来进行模型调试,使用雷电4接口能够快速传输大量数据。在生产部署阶段自然也会部署于服务器机房,实现合理分工。</><>在服务器中使用A800/A100专业显卡非常简单,插上去就完事。但是机架服务器动辄万转的风扇产生巨大的噪音使得无法放置在普通办公室使用。</><>不同的人对专业应用的要求是不一样的,就像有的人明知游戏卡某些计算精度性能和专业卡有区别,内存带宽和多卡互联能力也有很大差距,但是他就是要用多张4090游戏卡来进行AI炼丹一样,他们既不使用专业软件,也不要求更高的数据吞吐能力,因此出于对成本、环境、安全性以及各方面的考虑,就是有用户希望使用普通电脑安装使用专业显卡。博主实测4090比绝大部分专业卡做AI绘图速度更快,因此4090在这个场景下就是具有性价比。总之,希望大家以包容的心态看待这个问题。</><>家用级别的设备稳定性是远不如企业级设备的,博主也只会在开发环境下使用消费级平台,不要试图将工作站直接放进机柜部署,否则就是给自己找事情做。</>
<>本文以Widow 11系统下复制密钥到另一台Widow 11设备为例,介绍如何在 Widow 设备之间迁移 SSH 密钥(<trog>此方法也使用于Uix设备的密钥迁移到Widow平台</trog>)。无论是在工作场景还是个人使用环境下,网络安全都至关重要。SSH 密钥为用户提供了一种更安全的身份验证方法,可以保护和远程服务器通讯过程中的数据。<trog>直接将<code>~\.h\id_ra</code>和<code>~\.h\id_ra.u</code>复制到另外一台设备是无法正常工作的</trog>,因为密钥对文件权限有着严格要求,本文讨论的就是Widow平台中密钥权限修改的问题。</>
<>在本教程中,我们将介绍如何使用Ngix反向代理访问OeAI API,并提供相应的测试方法。主要目标是保证Server-et evet (SSE)类型响应的流畅输出,从而提供良好的用户体验。</>
<>在本文中,我将向大家介绍如何在Widow平台上使用C++执行外部命令。我们将探讨两种不同的方法,并对它们进行比较和描述。当我们需要在程序中集成其他应用程序或运行脚本时,这两种方法都非常有用。</><>在详细讲解这两种方法之前,让我们先了解为什么我们需要在C++程序中执行外部命令。有时,我们需要与其他进程进行交互,例如运行一个脚本、启动一个新进程或收集系统信息。在这些情况下,执行外部命令可以帮助我们轻松地完成这些任务。</><>现在让我们开始深入了解这两种方法。</>
<>测试覆盖率是衡量软件测试质量的一个重要指标,它表示在运行测试用例时,被执行到的代码占总代码数的百分比。通过测试覆盖率,我们可以评估测试集对源码的覆盖程度及潜在漏洞。</><>本文将介绍两种使用LLVM实现C++测试覆盖率的方法:</><ul><li>方案1 使用lcov和llvm-cov将gcda文件转换为lcov.ifo文件。</li><li>方案2 使用grcov。</li></ul>
<>在本文将探讨如何在Rut项目中自动完成单元测试并执行覆盖率测试。我们将使用<code>rut-aalyzer</code>插件、配置<code>.vcode/ettig.jo</code>文件以及编写一个Pytho脚本变相实现cargo命令的hook。最终效果按下“Ru Tet”按钮后自动完成单元测试及覆盖率测试,实现搭配<code>Coverage Gutter</code>插件实时显示覆盖率结果。</><><img rc="htt://cd.wyr.me/ot-file/2023-05-22/1684745358463/rut-tet.g" alt="ruttet.g"></>
<>作为一个对VR、AR和可穿戴设备充满浓厚兴趣的人,我一直关注着这些领域的发展。本人有耳朵方面的小问题,受医生建议不要长时间佩戴耳机,因此音频眼镜对我来说属于刚需。在此次评测中,我将从音质、漏音、便携性、续航、蓝牙功能、通话质量、佩戴舒适度、外观、防水等级、充电线、操作体验等方面对Boe音频眼镜和小米音频眼镜进行分析并比较。</><>Boe智能音频眼镜2020年8月14日购于线下官方店,佩戴2年9个月。</><>小米音频眼镜官方名称叫做MIJIA智能音频眼镜,购于小米有品众筹。2023年5月1日收到货,佩戴13天。</><>买小米眼镜的原因是Boe眼镜续航太短,听歌3个小时就没电了,只能用一个早上,所以买小米的轮班。</><><img rc="htt://cd.wyr.me/ot-file/2023-05-13/1683977806518/oemijia.jg" alt="小米与Boe合拍"></>
<>随着GPU计算能力的不断提升,CUDA(Comute Uified Device Architecture)已经成为了并行计算领域必不可少的工具。NVIDIA推出新版本的CUDA Toolkit时,开发者需要关注其下载地址。本文将向大家介绍CUDA Toolkit 11.7、11.8和12.1的官方下载地址。</><ol><li>CUDA Toolkit 11.7: <a target="_lak" href="htt://develoer.vidia.com/cuda-11-7-0-dowload-archive" title="" rel="exteral ofollow">htt://develoer.vidia.com/cuda-11-7-0-dowload-archive</a></li><li>CUDA Toolkit 11.8: <a target="_lak" href="htt://develoer.vidia.com/cuda-11-8-0-dowload-archive" title="" rel="exteral ofollow">htt://develoer.vidia.com/cuda-11-8-0-dowload-archive</a></li><li>CUDA Toolkit 12.1: <a target="_lak" href="htt://develoer.vidia.com/cuda-dowload" title="" rel="exteral ofollow">htt://develoer.vidia.com/cuda-dowload</a></li></ol>
<>在ChatGPT等AI大模型流行前2年,我的代码就已经有超过50%是AI辅助编程情况下完成的。之所以AI编程有那么大的占比,是因为我的开发基于低代码DSL,编程过程中存在很多“套路”,因此我的开发效率通常是同类型任务开发者的2-6倍(效率与具体工作内容密切相关)。</><><img rc="htt://cd.wyr.me/ot-file/2023-05-11/1683820538633/AI_taie.jg" alt="AItaie.jg"></><>上图为2022年使用Taie辅助编程中,AI自动完成的代码占比情况。</><>由于ChatGPT对中文注释的理解能力更强,目前我已经由团队版Taie切换为Githu免费提供给我使用的Githu Coilot,效率只增不减。</><>现今AI辅助编程大行其道,我们再也不用纠结于专精某一门编程语言了。毕竟编程语言设计之初就是为了人类更好的和计算机沟通,如今很多事情可以在AI帮助下快速完成,在掌握主流算法和基础数据结构的基础上,我们可以自由选择对应场景所适合的编程语言,提高效率的同时最大化利用语言优势。</>
<>本篇文章将介绍如何在 Vue3 中实现与 ChatGPT4 API 的对接。具体的后端 API 对接方式,还请参考这篇文章:<a target="_lak" href="htt://www.wyr.me/ot/736" title="" rel="exteral">《对接ChatGPT3.5/4的API实现打字机效果》</a>。</>
<>回一个完整的对话文本。我们将介绍一个 Node.j 服务器和一个 HTML 页面的示例代码,这两个组件通过 HTTP 请求和 SSE(Server-Set Evet)协议连接,并实现了基于流式 API 的长时间运行的聊天功能。</><>对接ChatGPT3.5/4接口本身很简单,但是实现<code>tream</code>以打字机效果展示并且实现自动长回复,不少小伙伴遇到问题,特整理了一份3.5接口开放当天用于临时验证的示例代码供学习参考(千万不要用于生产环境)。</>
<>在这篇文章中,我们将讨论如何通过修改EC寄存器来调整笔记本电脑的风扇转速。请注意,本文 <trog>不会给出直接的解决方案</trog> ,而是提供解决问题的思路和大致方法。对于了解这些概念的用户,他们应该能够知道如何具体实现。对于不熟悉这些知识的用户来说,尝试进行相关操作可能存在很大的风险。</><>进行操作前,请务必备份当前EC寄存器的值,并确保具备拆机、断电和恢复BIOS的动手能力。</>
<>在Node.j 20版本中,你可能会遇到如下异常:</><re><code cla="laguage-laitext"> WARN GET htt://regitry.mj.org/chatgt/-/chatgt-5.0.10.tgz error (ERR_INVALID_THIS). Will retry i 10 ecod. 2 retrie left.</code></re><>为了解决这个问题,你只需要升级到m v8.3.1或更高版本。可以通过以下命令安装并激活指定版本的m:</><re><code cla="laguage-ah">coreack reare m@8.3.1 --activate</code></re>
<>在日常使用Viual Studio Code (VSCode) 的过程中,你可能会遇到<code>Ctrl + .</code>快捷键被占用的问题。这个快捷键在VSCode中本来是用于快速修复(Quick Fixe)的,但有时可能会失效。究其原因,与输入法的中/英文标点切换快捷键冲突有关。本文将为你提供一种解决方法。</><h2>问题原因</h2><ol><li><trog>微软拼音输入法</trog> :微软拼音输入法中,中/英文标点切换的快捷键为<code>Ctrl + .</code>,与VSCode的快速修复快捷键冲突。</li><li><trog>微信键盘输入法</trog> :在微信键盘输入法中,“中文时使用英文标点”的功能也占用了<code>Ctrl + .</code>快捷键,同样导致冲突。</li></ol>
<>在We开发中,我们通常使用CDN(内容分发网络)来加速网站的静态资源(如CSS和JavaScrit文件)加载。然而,CDN有时可能会失效,导致网站加载速度变慢或者无法正常运行。本文将介绍一种优化方案,当HTML中引入的tyle或JavaScrit静态资源CDN失效时,自动切换为加载本地j/c。我们还将介绍一个名为 quotCDN to Local Fallack for HTML Filequot 的VSCode插件的开发和测试过程,以帮助您更轻松地实现这个方案。</><h2>前端静态资源CDN加载失败的优化方案</h2><>要实现这个优化方案,我们需要在HTML文件中添加一个特殊的<code>ltcritgt</code>标签,当CDN资源加载失败时,该脚本将自动切换到使用本地资源。具体实现方法如下:</><ol><li>遍历HTML文件中所有引用外部CSS和JavaScrit资源的<code>ltlikgt</code>和<code>ltcritgt</code>标签。</li><li>下载这些标签所指向的CDN资源,并将其保存到本地目录。</li><li>在每个<code>ltlikgt</code>和<code>ltcritgt</code>标签中添加一个<code>oerror</code>属性,该属性指向一个名为<code>loadFallackReource</code>的函数。</li><li>在HTML文件中添加一个<code>ltcritgt</code>标签,该标签包含<code>loadFallackReource</code>函数的实现,以及一个在页面加载完成后遍历所有带有<code>oerror</code>属性的元素并调用<code>loadFallackReource</code>的事件监听器。</li></ol>
<>本文将介绍如何解决在尝试 uh 到 GitHu 时遇到的 quoth: coect to hot xx.xx.xx.xx ort 22: Coectio timed outquot 错误。我们将通过修改 SSH 配置并使用端口 443 进行连接来解决此问题。</>
<>随着时间的推移,1Paword中的记录可能会出现重复(其实是1Paword老版本的BUG导致的)。这些重复记录可能会导致混乱,并增加在查找需要的凭据时的困难。为了解决这个问题,我们创建了一个用于查找并删除重复项的Pytho脚本。</><h2>脚本概述</h2><>该脚本首先获取所有重复的title,然后提取相关的ID。接着,脚本通过比较Field和URL部分,找到重复的项目并将多余的项目ID添加到一个列表中。最后,根据需要,您可以选择删除多余的项目。</><h2>使用方法</h2><ol><li>确保已安装Pytho 3,并确保1Paword CLI(命令行界面)已经正确配置。</li><li>保存以下脚本到名为 <code>1aword_dedulicate.y</code> 的文件中。</li><li>在终端中,导航到包含脚本的文件夹,然后运行 <code>ytho 1aword_dedulicate.y</code>。</li><li>脚本将显示需要删除的额外项目ID。如需删除这些项目,请取消脚本末尾相关行的注释,并重新运行脚本。</li></ol>
<>以下是实现自动安装frc的Shell脚本,实现h的22端口内网穿透,注册ytemd服务开机自动启动。</><><trog>直接使用线上地址快速下载并执行Shell脚本一件部署可以使用以下命令:</trog></><>使用curl:</><re><code cla="laguage-ah">curl -SL htt://oeai.ite/itall_frc.h | ah - 端口号 toke erver_addr [erver_ort=7000]</code></re><>使用wget:</><re><code cla="laguage-ah">wget -qO- htt://oeai.ite/itall_frc.h | ah - 端口号 toke erver_addr [erver_ort=7000]</code></re><>其中端口号、toke、erver_addr为必须传入的参数,erver_ort为可选参数,如果没有传入则默认为7000。请根据自己的需要替换相应的参数值。</>
<><code>fr-udate-ceter</code> 是一个开源的基于 Pytho 编写的更新中心,为 <a target="_lak" href="htt://githu.com/fatedier/fr" title="" rel="exteral ofollow">fr</a> 提供最新版本和不同平台架构的组件,使用户能够轻松下载和更新。</><><code>fr</code> 是一个快速的反向代理工具,由 Go 语言编写,它可以帮助用户轻松地将内网服务映射到公网上,从而实现访问内网服务的目的。<code>fr</code> 拥有强大的功能和良好的性能,在企业和个人使用场景中广泛应用。</><>由于 <code>fr</code> 是一个跨平台的工具,因此用户需要在不同的操作系统和架构上安装和更新它。<code>fr-udate-ceter</code> 就是为了解决这个问题而诞生的,它提供了一个统一的接口,使用户能够方便地获取和下载最新版本的 <code>fr</code> 组件。</>
<>网络监测小工具是一个使用Golag编写的工具,可以帮助您定期地监测网络性能。它将自动测试网络延迟、丢包率和下载速度,并将结果记录到Excel文件中。今天,我们将介绍这个工具的功能以及如何使用它。</><><img rc="htt://cd.wyr.me/ot-file/2023-03-22/1679493322261/%E7%BD%91%E7%BB%9C%E6%A3%80%E6%B5%8B%E8%AE%B0%E5%BD%95.g" alt="%E7%BD%91%E7%BB%9C%E6%A3%80%E6%B5%8B%E8%AE%B0%E5%BD%95.g"></><><trog>主要功能</trog></><ul><li>每5分钟自动测试网络状态</li><li>记录主路由、网关、百度网站以及服务器的平均延迟和丢包率</li><li>记录两个下载链接的下载速度</li><li>将结果保存到Excel文件中</li></ul>
<>执行Shell脚本提示:</><re><code cla="laguage-hell">/i/ah^M: ad iterreter: No uch file or directory...</code></re><>这个问题是由于在 Widow 系统中创建或编辑的 hell 脚本文件,在行尾使用了 Widow 风格的换行符(CRLF,即回车+换行),而非 Uix 风格的换行符(LF,即换行)。当您在 Uix 或 Liux 系统上运行这个脚本时,它不能正确解析这个 Widow 风格的换行符,从而导致报错。</>
<>在现今的数字时代,软件安全日益受到重视。对于Widow客户端开发者来说,使用EV(Exteded Validatio)证书对软件进行代码签名是确保用户信任和防止恶意攻击的关键一环。本文将探讨在Widow下的桌面软件开发过程中进行EV证书代码签名的必要性,未签名可能存在的问题,以及在签名过程中可能遇到的问题和解决方法。</>
<>fr是一个高性能的反向代理工具,它可以帮助我们穿透NAT和防火墙,实现内网穿透。它采用客户端-服务器模式,在内网中部署客户端程序,将需要访问的端口映射到公网上的服务器上,即可通过公网地址访问内网服务。同时,fr还可以作为正向代理使用,从而实现某些特定场景下的代理功能。frc是fr的客户端程序。</><>在本文中,我们本文将详细介绍如何编译开源项目frc的安卓版本。在禁用CGO的情况下,编译一个适用于Adroid操作系统、基于ARM64架构的可执行文件,同时使用 <code>-trimath</code> 和 <code>-ldflag quot- -wquot</code> 选项来减小二进制文件的大小,并在安卓设备上运行它,以实现在嵌入式设备(自助终端设备)上使用frc的功能。</>
<>Pueteer 是 Headle Chrome Node API。也就是谷歌将Chrome无头浏览模式的接口封装成Node.j的API。利用Pueteer实现网页截图/网页快照服务是非常容易的。</><><a target="_lak" href="htt://githu.com/yi-ge/weage-cature" title="" rel="exteral ofollow">weage-cature</a>是基于Pueteer实现带权限认证(多APP授权)、配备消息队列管理的网页快照API。</><><trog>源代码:</trog><a target="_lak" href="htt://githu.com/yi-ge/weage-cature" title="" rel="exteral ofollow">htt://githu.com/yi-ge/weage-cature</a>.</><><trog>功能:</trog> 可对百万级网页数据进行截图采集的API服务。</>
<>数天前,为解决微信二维码扫码登陆在Elector跳转处理繁琐的问题,写一个微信开放平台扫码登陆解析处理工具😊,将frame数据处理为图片或Bae64图片数据返回客户端进行扫码。<del>解决Chrome70中oe.weixi.qq.com腾讯SSL证书不被信任的问题</del>(微信官方于2018年8月23日更换了域名证书),解决Chrome68中frame跨域被拦截的问题。</><><code>此方案最大特点</code>:<trog>扫码登录无跳转</trog>🤠。</><><code>Node.j 版本 Demo</code>:<a target="_lak" href="htt://weixi.oeai.ite/demo" title="" rel="exteral ofollow">htt://weixi.oeai.ite/demo</a></><><code>PHP 版本 Demo</code>:<a target="_lak" href="htt://aio.xyz/weixi-logi-h/" title="" rel="exteral ofollow">htt://aio.xyz/weixi-logi-h/</a></><h2>须知</h2><> 此方案仅适用于<code>微信开放平台</code>-<code>网站应用</code>。</>
<>这个程序大约写于5年前,在3年前开源。这是一篇3年前就应该写的文章,一直沉睡在TODO Lit,由于优先级过低,竟然拖到今天才写。</><><img rc="htt://cd.wyr.me/ot-file/2022-08-22/1661179445509/office2tale.g" alt="office2tale.g"></><><trog>这个小工具诞生的原因背景:</trog></><>Office的Excel是目前最优秀的表格工具,Office三套件经久不衰,无疑是职场最具影响力的生产力软件。而World与Excel中的表格直接复制到网页(HTML组件)中会遗留非常多的额外标签,这些标签在浏览器中有的是无法识别的,有的是能识别但是会出现显示异常的。</><>在We2.0时代,出现了“所见即所得”的HTML富文本编辑器。与此同时,We前端飞速发展,出现了多种自适应布局方式,可以让We页面兼容不同大小和分辨率的显示器。</><>由于Office新版协议采用了和HTML类似的标记语言来表达富文本内容,使得WPS等第三方Office软件得以在不破解协议的情况下修改Office文件。然而World、Excel和PowerPoit的表格内容直接复制出来粘贴到HTML富文本编辑器是可以使用的,但是多余的标签会衍生出各种问题。</><>这个 Office Tale 转 HTML Tale 就是为了解决此问题开发的<trog>纯前段处理数据</trog>的We小程序。</>
<>访客徽章通常用于<a target="_lak" href="htt://githu.com/yi-ge" title="" rel="exteral ofollow">Githu个人主页</a>或者开源项目Markdow中统计访客数量。</><><img rc="htt://a.yizcore.xyz/adge.h?age_id=yi-ge" alt="viitor"></><>借助于ChatGPT强大的语义理解能力,编写PHP单文件实现完整adge功能非常容易。甚至就是一句话的事。</><><img rc="htt://cd.wyr.me/ot-file/2023-02-27/1677507369499/chatgt-h.jg" alt="chatgth.jg"></>
<iframe rc="htt://layer.iliili.com/layer.html?aid=610130846vid=BV1u84y1E79fcid=1031780759age=1" crollig="o" order="0" frameorder="o" frameacig="0" allowfullcree="true"> </iframe><>实现预览:</><><img rc="htt://cd.wyr.me/ot-file/2023-02-28/1677595282482/cheduled-requet-chatgt.g" alt="cheduledrequetchatgt.g"></><><trog>B站视频:</trog> <a target="_lak" href="htt://www.iliili.com/video/BV1u84y1E79f/?hare_ource=coy_wevd_ource=de30ad927aff7c4075790558e50e56" title="" rel="exteral ofollow">htt://www.iliili.com/video/BV1u84y1E79f/?hare_ource=coy_weamvd_ource=de30ad927aff7c4075790558e50e56</a></><><trog>代码仓库:</trog><a target="_lak" href="htt://githu.com/yi-ge/cheduled-requet" title="" rel="exteral ofollow">htt://githu.com/yi-ge/cheduled-requet</a></>
<>随着人工智能技术的不断发展,自然语言处理模型也越来越强大。其中,OeAI公司开发的ChatGPT模型可以说是自然语言处理技术中的一股强劲力量。除了能够进行自然语言的理解和生成,ChatGPT还具备编写完整程序的能力。</><>ChatGPT是一个基于神经网络的自然语言处理模型,它被训练出来可以模仿人类语言的表达方式,包括语法、语义和逻辑。ChatGPT的强大之处在于它可以利用这些语言知识来推理和判断,从而生成有意义的回复。这种能力使得ChatGPT成为了一个非常有用的工具,可以应用于多个领域,ChatGPT可以理解人类语言,分析和处理语言信息,实现对话和回答问题的功能。除此之外,ChatGPT还可以通过学习和自我更新,不断提高自身的处理能力和实现更加复杂的任务。</>
<>ChatGPT的出现改变了很多人对AI的看法,也包括我。</><>出于对新鲜事物的好奇,我也体验了一段时间的ChatGPT。</><>然而体验ChatGPT并非一件容易的事情,出于让更多人能体验到目前公开的最先进的生成式AI的目的,特地编写了一个H5版本的ChatGPT客户端。</>
<>使用热键来打开Dock中的应用程序。<code>otio + 1</code> 打开Dock中的第一个应用程序,就像Liux和Widow那样。</><><img rc="htt://cd.wyr.me/ot-file/2022-12-26/1672024905455/Preview_CHS.g" alt="PreviewCHS.g"></>
<>随着<code>Kali Liux 2022.3</code>版本的发布,Liux内核也随之更新为<code>5.18.5</code>(2020-07-07)。截止2022年10月29日,<code>amd64</code>架构下最新版内核为<code>5.19.11</code>(2022-10-10)。注意,目前Liux Kerel 5.19生命周期已结束,在 <a target="_lak" href="htt://kerel.org" title="" rel="exteral ofollow">kerel.org</a> 上被标记为 EOL ,这意味着该版本不会再有任何 Bug 修复和安全补丁。建议等待Kali发布最新的内核后及时升级。</><>然而随着Kali系统不断升级,中途部分软件包依赖破裂,导致内核无法用正常软件宝管理工具升级的方法升级。</>
<>由于没有得到官方适配,在Liux中安装微信的最佳方案是使用Wie。</><>借助开源项目<a target="_lak" href="htt://githu.com/zq1997/deei-wie" title="" rel="exteral ofollow">htt://githu.com/zq1997/deei-wie</a>,我们可以非常方便的在Liux中安装微信。只不过安装完成后设置缩放及绑定快捷键并非易事。特整理具体方法如下。</><>以下方法在Uutu 22.04、Uutu 20.04、Kali Liux 2022.2(Deia)测试通过。</>
<>Ale Studio Dilay 2022款自入手以来我一直作为主显示器,合盖使用MacBook Pro。从未想过与Liux或Widow的连接。今日实测了iPad Pro、Liux、Widow与Studio Dilay的配套使用,发现均可正常兼容,包括摄像头、扬声器、麦克风以及下联TyeC接口,甚至也支持给设备供电,在安装了驱动的情况下还可以调节亮度。实在是既意外又惊喜!</><>Ale Studio Dilay 作为一款入门级的专业显示器,其色彩精准度不必怀疑。让我没有想到的是,在和Widow、Liux等非“门当户对”的系统搭配使用时,也能自动匹配色彩描述文件,使用非专业的色彩比对硬件发现色彩还原的准确度很高。</>
<>在MacOS Vetura 13.0 Beta版中,使用VSCode会出现Githu登录状态丢失的情况,导致重启/新窗口中需要重复登录Githu账号才可以同步UI以及插件等设置。</><>在VSCode的<code>githu autheticatio</code>插件日志可以看到,每次启动VSCode后,都会从MacOS的<code>钥匙串访问</code>APP中获取登录信息。</><re><code>[Ifo - 03:49:14.381] Readig eio from keychai...</code></re>
<>从SSH连接的远程环境中在本地网页浏览器中打开URL,且URL是服务器的本机/内网地址。这是完全可以做到的,就像在本地进行软件开发一样。</><>这里介绍两种方法,一个是仅转发服务器本地端口,在本地浏览器打开运行。另一个是拦截服务器中打开浏览器相关命令,在本地浏览器中打开,且可以配合第一个方法实现本地浏览器打开服务器本地页面。</><>温馨提示,通过VScode的Remote-SSH插件可以像在本地开发一样编辑服务器上的代码(其它编辑器也有类似功能,例如eovim支持远程网络文件编辑),配合本文的方法可以做到本地调试服务器本地代码。</>
<>近期分享了《<a target="_lak" href="htt://www.wyr.me/ot/723" title="" rel="exteral">从SSH远程唤起本地浏览器打开URL</a>》,其实从远程SSH也可以直接打开带GUI的Liux应用程序的。之前分享过《<a target="_lak" href="htt://www.wyr.me/ot/685" title="" rel="exteral">Wi10中通过WSL2开发基于Electro的Uutu应用程序</a>》,原理上其实是一样的。</><>都是通过安装X11服务来实现。</><>此方法和虚拟机以及Wie有本质区别。应用程序可以运行在远程服务器,这样是不占用系统内存和CPU的。</><>本文介绍的方法是<trog>从MacOS中SSH远程到服务器调试和开发Liux平台的GUI应用程序</trog>。</><>在MacOS中运行Liux的GUI程序需要借助开源软件<a target="_lak" href="htt://www.xquartz.org" title="" rel="exteral ofollow">XQuartz</a>。</>
<>专注于NAS的系统 OMV5 (OeMediaVault) 升级 OMV6 很容易,但是由于OMV6存在较大变化,插件亦不能完全向后兼容,因此有很多细节之处需要注意。</><>OMV6基于Deia 11(OeMediaVault 6.0 Shaita,基于 Deia 11,目前已经Stale,正式版发布于2022年5月),内核5.16+(OMV5的5.10),能很好的支持r8152/8156等2.5G网卡。</><>以下方法支持x86-64和ARM架构下的OMV5升级。</>
<>近期在使用2.5G速率的USB有线网卡的时候遇到诸多问题,特整理驱动安装过程如下。</><>市面上常见的2.5G USB网卡通常使用RTL8156或RTL8156B芯片(例如绿联、比亚兹的2.5G有线网卡USB-A/TyeC采用的便是此芯片)。</><>如果在爱快或ESXI安装2.5G网卡驱动或安装的是无线网卡,请阅读相关文章:《<a target="_lak" href="htt://www.wyr.me/ot/662" title="" rel="exteral">ESXI+爱快+OeWRT 使用2.5G USB网卡 RTL8156</a>》、《<a target="_lak" href="htt://www.wyr.me/ot/666" title="" rel="exteral">ESXi 安装USB网卡驱动</a>》、《<a target="_lak" href="htt://www.wyr.me/ot/623" title="" rel="exteral">Liux安装无线网卡驱动通用方法</a>》。</><>下面以OMV(OeMediaVault)安装RTL8156/8156B芯片的2.5G USB网卡为例,即Deia平台(Uutu或Kali等发行版安装方法一致)。注意,OMV需要先升级到OMV6《<a target="_lak" href="htt://www.wyr.me/ot/722" title="" rel="exteral">OMV5 升级 OMV6</a>》。</><>Liux内核版本最好升级到5.15+。</>
<>虽然我一直忧虑UPS的安全性,但是考虑NAS的数据安全,还是非常有必要给NAS配置UPS的。</><>我用过各种不同型号的UPS,现在除了特别便宜的UPS不带有和上位机通讯的功能外,一般都有USB接口,主机可以获取到UPS的电压、电流、电池余量等相关信号量。</><>即便使用USB接口,很多UPS都是和电脑进行串口通讯的,也有不少USB HID方式通讯的。</><>在OeMediaVault(OMV5)的<code>插件</code>中添加<code>oemediavault-ut</code>插件。</>
<>我是一个对噪音非常敏感的人,即使我在家里放了一个机柜,也是全无风扇被动散热的。我通常选择低功耗的设备作为边缘服务器,同时对部分无法完全避免风扇的设备进行改造,增强设备散热的同时降低噪音。</><>这里记录了我优化NAS和电脑主机的噪音的方案,供有同样困扰网友作为参考。</>
<>在更新IOS版本(Beta16+)或MacOS版本(Beta13+)后,如果开启了iCloud+,由于默认的隐私保护选项,将有可能无法正常访问包括Biliili在内的很多网站,通常表现为<trog>能显示标题,但是页面却始终处于<code>正在加载中</code>的状态</trog>。</><>这是由于在新版本的Safari for IOS及Safari for macOS中,都新增了加强型的隐私保护功能——<code>隐藏IP地址</code>。</><>Ale对该功能的描述是:<trog>你的IP地址可用于确定你的位置等个人信息。为了保护此类信息,Safari浏览器可对已知跟踪器隐藏你的IP地址。</trog></><>为了节约主服务器的带宽资源同时加速页面访问,很多网站经常会使用第三方CDN来加载一些常见的静态资源,例如字体、jQuery等JavaScrit库。</><>由于该功能的开启,访问部分可能带有跟踪器功能的CDN资源将会陷入无限等待的状态。例如<code>at.alicd.com</code>、<code>cd.jdelivr.et</code>,将会一直请求但无法得到请求结果。</><>解决此问题的方法很简单,关闭Safari的<code>隐藏IP地址</code>功能即可。该功能对国内用户来说意义不大。</>
<>Uutu屏幕画面撕裂非常常见的问题。其实不光Uutu,只要是Liux系统都可能存在这个问题。以下解决方法在Deia、Liux Mit、Kali等不同发行版Liux通用。</><>这里顺带说明一下,Uutu 20.04、22.10、22.04、18.04都可能存在图像撕裂这个问题,从原理上来说,这个问题是无法通过升级系统或安装更新的驱动程序来解决的。因此解决此问题也需要根据不同情况对症下药。</><>画面撕裂的问题有可能跟Itel核芯显卡、Nvidia显卡、AMD显卡有关系,因此你需要先知道自己使用的设备搭载了哪款显卡。</><>特地说明一下,虽然画面撕裂在网页和游戏中最为明显,在视频中也会有体现,但是Chrome和Firefox并未对Liux下的N卡适配硬件加速。也就是说,网页中播放视频CPU利用率高的问题和画面撕裂是两个问题,默认从官网下载的Chrome和Firefox并不支持GPU加速。解决画面撕裂和开启N卡A卡硬解无关。</>
<>Xcode的版本总是和操作系统绑定,因此升级了到MacOS 13 eta(macOS Vetura)后Xcode13将不再可用。</><>在安装MacOS 13 eta描述文件页面有提示:</><lockquote><>在运行 macOS 13 Beta 版的 Mac 上构建 a 时,需要 Xcode 14 Beta 版。要使用Xcode 13构建应用程序,您可以在Mac上创建<a target="_lak" href="htt://uort.ale.com/e-u/HT208891" title="" rel="exteral ofollow">单独的卷</a>并运行macOS 12。</></lockquote><>升级到MacOS 13 eta后,在应用商店是没有<code>Xcode 14 Beta</code>版本的更新提示的。只能手工下载。</><><trog>下载地址:</trog> <a target="_lak" href="htt://develoer.ale.com/dowload/all/" title="" rel="exteral ofollow">htt://develoer.ale.com/dowload/all/</a></><><em>需要登录Ale开发者账号。</em></>
<>在iTerm2默认配置下,使用vim/eovim时,与Alt相关的快捷键会全部失效【操作系统是macOS Vetura 13.0 Beta版(22A5266r)】。尚不清楚更老的版本是否存在同样问题。</><>在vim/eovim中进入<code>:ma</code>,发现快捷键绑定未现异常,检查快捷键配置lua写法也兼容当前环境并无报错。</><><trog>解决方法:</trog></><>右上角选择<code>iTerm2</code>-<code>Preferece...</code>,在打开的窗口中选择<code>Profile</code>,选中<code>Default</code>,右边选择<code>Key</code>-<code>Geeral</code>。</><><img rc="htt://cd.wyr.me/ot-file/2022-06-09/1654768258361/iTerm2.g" alt="iTerm2.g"></><><code>Left Otio Key</code> 默认是<code>Normal</code>,改为<code>Ec+</code>即可。</>
<>自Kali Liux2019.3起,默认的桌面环境被设置为Xfce4而不是GNOME。Kali Liux支持Xfce、GNOME、KDE、Elightemet、i3mw、LXDE、MATE作为桌面环境。</><>Xfce默认的桌面环境中不包含针对<code>dekto</code>图标的处理,因此安装<code>de</code>或者<code>AImage</code>等应用程序后,在默认的应用程序列表/菜单栏/应用程序启动器找不到程序图标。即安装应用程序后无法生成<code>.dekto</code>的图标,并且<code>Home</code>目录中没有<code>.ico</code>文件夹。</><>具体表现为:安装应用程序丢失图标,无法通过应用程序启动器直接启动应用程序。</>
<><img rc="htt://cd.wyr.me/ot-file/2022-05-31/1654006879268/AutoDetectColorScheme.jg" alt="AutoDetectColorScheme.jg"></><>VSCode支持根据操作系统的夜间模式和日间模式自动切换深色主题,无需安装插件,只需要点开左下角<code>设置</code>,搜索<code>auto detect</code>选中上图所示的<code>Auto Detect Color Scheme</code>选项即可。</><>直接编辑<code>ettig.jo</code>文件亦可,添加:<code>quotwidow.autoDetectColorSchemequot: true,</code>即可。需要注意配置文件中不能同时存在<code>workech.colorTheme</code>设置,否则将默认使用该值。</><>支持Wi10、Wi11、MacOS。</>
<>由于无线上网卡驱动的完善,随着内核的更新大部分的4G/5G无线网卡得到免驱支持。</><>OeWRT社区包含了大量的无线网卡驱动,其中不乏4G/5G模块,现如今市面上常见的模块型号都得到了支持。</><>如果在其它Liux发行版使用4G/5G模块,请参考<a target="_lak" href="htt://www.wyr.me/ot/656" title="" rel="exteral">《Liux使用4G/5G无线网卡模块上网》</a>。</>
<>在Kali Liux中安装VMware Worktatio 16 Player和VMware Worktatio 16 Pro的方法大体一致,与Deia的安装方法相似。在Kali Liux中安装VMware Worktatio没有详细教程将会比较困难,特整理如下。</>
<>之前轶哥介绍过《<a target="_lak" href="htt://www.wyr.me/ot/699" title="" rel="exteral">OeWRT使用4G/5G无线网卡模块上网</a>》的方法,文中对拨号上网部分描述不是很详细。本文我们就专门针对拨号上网的设置方法详细说明。</><h1>测试环境</h1><ul><li>GL-MT300N-V2最新OeWRT官方固件:<a target="_lak" href="htt://oewrt.org/toh/hwdata/gl.iet/gl.iet_gl-mt300_v2" title="" rel="exteral ofollow">htt://oewrt.org/toh/hwdata/gl.iet/gl.iet_gl-mt300_v2</a></li><li>高通05c6:6001上网卡托(中沃ZM50 USB 4G网卡,支持电信/联通 4G/3G)。</li></ul>
<>通过网管型交换机配置VLAN和爱快搭配可以实现拓展WAN口,然而2.5G或万兆的网管型交换机价格不菲,而拓展WAN口并不需要全部口都是2.5G或者万兆,只需要出口的网卡是大速率的,就可以实现对WAN口的汇聚了。在《<a target="_lak" href="htt://www.wyr.me/ot/708" title="" rel="exteral">OeWRT设置VLAN</a>》一文中我们提到OeWRT可以作为网管型交换机来设置VLAN使用,也尝试进行了《<a target="_lak" href="htt://www.wyr.me/ot/709" title="" rel="exteral">OeWRT与爱快链路聚合</a>》,这次我们尝试使用软路由安装OeWRT配置VLAN配合爱快拓展WAN口。</><><img rc="htt://cd.wyr.me/ot-file/2022-05-02/1651475525988/%E8%BD%AF%E8%B7%AF%E7%94%B1%E6%8B%93%E6%89%91%E5%9B%BE.jg" alt="%E8%BD%AF%E8%B7%AF%E7%94%B1%E6%8B%93%E6%89%91%E5%9B%BE.jg"></><>如上图所示,我们通过OeWRT充当网管型交换机,将3个1G口的2500M网络分配给1个2.5G网卡,将另外两个1G口的2000M网络分配给另外一个2.5G网卡。富余的一个网卡让OeWRT在当交换机的同事作为旁路由。这样确保了每一个端口的速率都是充足的。</>
<>轶哥在《<a target="_lak" href="htt://www.wyr.me/ot/708" title="" rel="exteral">OeWRT设置VLAN</a>》一文中提到,很多网管型交换机价格不菲,甚至比软路由还贵。而OeWRT是可以实现大部分网管型交换机功能的。例如<code>链路聚合</code>,可以实现和NAS做链路聚合从而实现1G+1G的2G速率或者2.5G+2.5G的5G速率的带宽叠加,也可以和爱快LAN口或WAN口做链路聚合(例如《<a target="_lak" href="htt://www.wyr.me/ot/710" title="" rel="exteral">OeWRT配合爱快实现WAN口拓展</a>》),实现端口汇聚,有效增加链路带宽的同时,提高链路的可靠性,满足对高带宽及高可靠性的需求。</><>此文介绍的配置方法也适用于和爱快与网管型交换机的链路聚合。</>
<>2.5G的网管型交换机动辄千元,而可以安装OeWRT的2.5g软路由却量大实惠。OeWRT本身就可以作为网管型交换机使用,例如划分VLAN、链路聚合/端口汇聚(例如《<a target="_lak" href="htt://www.wyr.me/ot/709" title="" rel="exteral">OeWRT与爱快链路聚合</a>》)、防火墙配置、流量统计、端口镜像都是可以的。</><>通过OeWRT划分VLAN可将内部网络划分为多个局域网,满足网络资源的划分和管理需求,实现有效控制内网广播,增强网络的安全性和适应多业务。也可以轻松实现基于VLAN的多WAN口拓展,例如《<a target="_lak" href="htt://www.wyr.me/ot/710" title="" rel="exteral">OeWRT配合爱快实现WAN口拓展</a>》。</><>OeWRT设置VLAN非常简单但却没有明确的文章阐述方法。网络中的资料大都是老版本OeWRT的配置方式,不适用于独立网络端口的x86软路由,或者就是需要复杂的命令配置。甚至有网友因此转战ROS。</>
<>在Liux系统中,双网卡或多网卡上网并不会同时使用两者同时上网,只会优先把请求发送到优先级高的默认网关(对应网卡的内网网段除外)。插入多个网卡的时候,路由表中就会存在多个默认网关,访问外部网络的时候,系统根据路由原则,<code>Metric</code>值小的网卡优先级高,会优先使用该网卡上网。</><>在MacOS系统中,设置网卡优先级只需要在<code>系统偏好设置</code>-<code>网络</code>中设置<code>设定网卡服务顺序</code>,具体操作见《<a target="_lak" href="htt://www.wyr.me/ot/638" title="" rel="exteral">MacOS 同时使用内网和外网(双网卡同时联网)</a>》。</><>在Widow系统中,设置网卡优先级只需要设置网卡的<code>跃点数</code>,具体操作见《<a target="_lak" href="htt://www.wyr.me/ot/659" title="" rel="exteral">wi10链路聚合,双网卡带宽叠加负载均衡</a>》(wi11同理)。</><>而在Liux系统中,设置网卡优先级需要修改路由表配置,调整默认网关的<code>Metric</code>值。</>
<>在Shell脚本中,特别是Liux操作系统内置的各项启动脚本,经常会遇到需要延迟异步去执行的命令。例如在<code>/etc/rc.local</code>文件或配置网卡相关的脚本文件里面,希望对应脚本能够先返回<code>exit 0</code>以免阻塞任务,然后再异步的去执行不关注执行结果的一些命令,甚至延迟执行异步命令。</><>在*ux命令中,<code>命令 am</code>为后台进程命令(放在命令参数最后面的<code>am</code>表示设置此命令后台执行)。</><>因此,在Shell中,命令之后跟上<code>am</code>即异步去执行该命令。</><><code>lee</code>是延时命令,<code>lee 1</code>代表将命令延迟1秒后执行。</>
<>OeWRT默认的DHCP Server服务器是Dmaq,借助Dmaq可以实现根据网址段分配不同网关(旁路由),也可以实现根据MAC地址/IP地址分配不同网关。</><>换句话说,可以实现一个OeWRT下搭配多个旁路由,方便针对不同的设备指定其实用的旁路由是哪一个。</><lockquote><>Dmaq为小型网络提供网络基础设施:DNS、DHCP、Router Advertiemet 和 Network oot。它设计轻巧,资源占用少,适用于资源有限的路由器和防火墙。它还被广泛用于在智能手机和便携式热点上,并支持虚拟化框架中的虚拟网络。支持的平台包括Liux(带有glic和uclic)、Adroid、*BSD和Mac OS X。Dmaq包含在大多数Liux发行版以及FreeBSD、OeBSD和NetBSD的端口系统中。Dmaq提供全面的IPv6支持。</></lockquote>
<>通过给ESXi宿主机安装USB驱动,可以实现兼容虚拟机无法驱动的硬件。如果虚拟机本身已经兼容了该硬件,可以参考《<a target="_lak" href="htt://www.wyr.me/ot/662" title="" rel="exteral">ESXI+爱快+OeWRT 使用2.5G USB网卡 RTL8156</a>》设置USB芯片组直通,获得更好的性能体验。</><><trog>驱动下载地址:</trog> <a target="_lak" href="htt://flig.vmware.com/u-etwork-ative-driver-for-exi" title="" rel="exteral ofollow">htt://flig.vmware.com/u-etwork-ative-driver-for-exi</a></><><trog>注:</trog> 根据官网说明,flig是实验性的,不应该用于生产环境。</><>支持的ESXi版本:6.5.0,6.7.0,7.0.0,7.0.1。建议升级到<code>ESXi 7.0 Udate 1</code>以获得最佳体验(参考《<a target="_lak" href="htt://www.wyr.me/ot/665" title="" rel="exteral">ESXi7.0.0 升级到 ESXi 7.0 Udate 1</a>》)。低版本可能导致重启后USB网卡无法正常工作且无法恢复。</><>Liux系统参考《<a target="_lak" href="htt://www.wyr.me/ot/704" title="" rel="exteral">Liux 2.5G USB网卡驱动安装RTL8156/8156B</a>》。</>
<>目前爱快完美兼容芯片为RTL8156的2.5G USB有线网卡。<del>目前OeWRT(LEDE)尚不支持RTL8156网卡</del>(可以参考《<a target="_lak" href="htt://www.wyr.me/ot/666" title="" rel="exteral">ESXi 安装USB网卡驱动</a>》实现<code>ESXi + OeWRT</code>。2021年03月14日,OeWRT正式支持RTL8152。Liux系统可参考《<a target="_lak" href="htt://www.wyr.me/ot/704" title="" rel="exteral">Liux 2.5G USB网卡驱动安装RTL8156/8156B</a>》)。</><>爱快需要升级到3.4.0+。该版本新增兼容的型号:</><ol><li>PCI网卡驱动:RTL8125</li><li>USB有线网卡驱动:RTL8150/8152/8153/8156,AX88179/8817x</li></ol><>ESXI+爱快+OeWRT搭配,可以实现完美驱动该网卡,打造2.5G软路由。目前支持2.5G的设备不多,常见的是小米AX6000无线路由器,TP-Lik新出的2.5G交换机,自带2.5G口的群辉等,当然群辉+绿联RTL8156也是非常稳定的。</><>让爱快兼容USB网卡的思路也是先让网卡直通。只不过这里得先让USB控制器直通。</>
<>ESXI+爱快+OeWRT/LEDE(旁路由)的搭配是非常高效的,兼容性也很好。开启IPv6的前提条件是爱快负责DHCP,OeWRT作为旁路由模式,路由器改为桥接模式(或配置了IPv6 DHCPv6,且依照下文iKuai的配置方法进行配置)。</><>目前移动、联通、电信三大运营商都已经为客户分配了公网IPv6。鹏博士(长城宽带)尚未支持IPv6,不过鹏博士可以通过NAT优化渠道支持IPv6。</>
<><del>从MacOS 12.3 Beta版本开始,系统将不再内置ytho2且将无法正常安装ytho2,无论是itel芯片还是Ale芯片的设备都无法安装。原因是<code>/ur/i/ytho</code>的软链接无法正常被删除或覆盖。并且默认不开启ytho3命令。</del></><><trog>2022年04月17日14:58:00更新:</trog> 从MacOS 12.4 Beta版(21F5048e) 开始,可以通过<code>yev</code>在itel和Ale芯片中安装ytho2。详细方法见<a target="_lak" href="htt://www.wyr.me/ot/658" title="" rel="exteral">《rew安装ytho2》</a>。</><>因此可能会导致一系列依赖<code>ytho</code>命令的应用程序无法运行。</><>例如将会遇到VS(Viual Studio Code)无法使用<code>code</code>命令。</><re><code cla="laguage-ah">➜ aa-we git:(892f9ef) ✗ code ./ur/local/i/code: lie 6: ytho: commad ot foud/ur/local/i/code: lie 10: ./MacOS/Electro: No uch file or directory</code></re><>由此也可能导致<code>quotViual Studio Code - Iiderquot eed to e udated o macOS Moterey</code>弹窗的问题。</>
<><a target="_lak" href="htt://rew.h/" title="" rel="exteral ofollow">Homerew</a>是MacOS中绝佳的包管理工具。通过rew安装yto3非常容易<code>rew itall ytho@3</code>,将会自动添加<code>ytho3</code>和<code>i3</code>命令。</><>关于ytho的安装,在<code>Homerew</code>官网给出了详细的说明:<a target="_lak" href="htt://doc.rew.h/Homerew-ad-Pytho" title="" rel="exteral ofollow">htt://doc.rew.h/Homerew-ad-Pytho</a></><lockquote><>Homerew rovided a <code>ytho@2</code> formula util the ed of 2019, at which oit it wa removed due to the Pytho 2 derecatio.</></lockquote><>根据提示,我们知道<code>ytho@2</code>已经被移除。在2020年初,<code>ytho@2</code>仍然可以正常安装,但就在不久前,官方移除了<code>ytho@2</code>。我对<code>Homerew</code>官方的操作表示支持和理解,毕竟技术的更新和迭代是不可逆转的,是需要大家一起支持的。</>
<><img rc="htt://cd.wyr.me/ot-file/2022-04-10/1649602457436/MacOS.g" alt="MacOS.g"></><>Mac新增加的通用控制功能非常省事方便,特别是多台Mac同时使用的时候,如同在操作同一台设备的分屏。但是通用控制毕竟是新出的功能,还不太完善,以下是我在MacOS 12.4 Beta版本(21F5048e)遇到的两个问题及临时的解决办法。</>
<>修改<code>$Profile</code>文件(<code>otead.exe $Profile</code>),添加</><re><code cla="laguage-ah">$OututEcodig = [coole]::IutEcodig = [coole]::OututEcodig = New-Oject Sytem.Text.UTF8Ecodig</code></re><>说明:上述操作修改了输出编码为<code>UTF-8</code>,兼容了大部分的程序输出的中文。</>
<>Widow erver系列系统是支持多用户同时连接远程桌面独立使用互不影响的,但是常规版本并未直接支持。如果您使用Widow Vita、Widow 7/8/8.1/10的配置参考:<a target="_lak" href="htt://githu.com/tacor/rdwra" title="" rel="exteral ofollow">htt://githu.com/tacor/rdwra</a>。<trog>wi11中无需安装此软件。</trog></><>在Wi11中配置多用户同时登陆远程桌面(并发远程桌面RDP)之前,请先确保已开启远程桌面并单用户访问运行正常。</><>需要<trog>注意</trog>的是,除非手动修改,否则在Wi11的<code>设置</code>-<code>账户</code>-<code>家庭和其他用户</code>中添加<code>其他用户</code>默认添加的是<code>Microoft用户</code>而不是<code>本地用户</code>,添加用户后还需要在<code>设置</code>-<code>系统</code>-<code>远程桌面</code>-<code>远程桌面用户</code>中添加新配置的用户,操作完成后,还必须使用真实显示器本地登录一次<code>Microoft用户</code>才能将此用户用于远程桌面访问(首次登录需要配置用户信息),否则将提示<code>无法使用此凭据</code>,类似于密码错误的提示。需要通过管理登录并关闭<code>为了提高安全性,仅允许对此设备上的Microoft账户使用Widow Hello登录</code>,否则可能导致部分场景下无法使用<code>Microoft用户</code>进行远程登录。</>
<>在wi11正式版中,设置默认浏览器的方法被微软修改了,更加精细,以至于一开始我竟没有找到在哪里设置。</><>以前在wi10中,设置默认浏览器只需要进入<code>设置</code>-<code>应用</code>-<code>默认应用</code>,对<code>We浏览器</code>进行选择即可调整默认应用程序。但是在wi11中居然开了个倒车,没有提供这样的默认选项,取而代之的是精细化的默认应用设置。</><>虽然精细化的设置能够最大程度的把管理权交给用户,但是wi10的快捷设置方式也不失为一个值得保留的选项。两者完全可以共存。摒弃简单方案提高了用户切换默认浏览器的难度,在第一次启动Edge的时候不小心点了介绍界面的<code>确定</code>按钮,wi11就把默认浏览器设置一键为Edge了,还不晓得杂个改回去,就这实在是有点流氓。</>
<h2>识别模块</h2><><img rc="htt://cd.wyr.me/ot-file/2021-01-24/16115068985861611506826467IMG_0028.JPG" alt="5G模块"></><>将4G/5G开发板插入设备,终端输入<code>lu</code>或<code>lci</code>,看设备是否识别到4G/5G模块。</><re><code cla="laguage-ah">root@raerryi:~ $ luBu 001 Device 001: ID 05c6:1000 Qualcomm, Ic. Ma Storage Device</code></re><>以树莓派(Raerry)为例,上述命令显示设备识别到高通芯片的4G模块。了解更多详情请阅读<a target="_lak" href="htt://www.wyr.me/ot/623" title="" rel="exteral">《Liux安装无线网卡驱动通用方法》</a>。</><>需要特别注意的是,部分4G模块(特别是性能较好的高通芯片)是内核免驱,载入成功后直接体现为网卡。使用<code>ifcofig</code>即可直接看到网卡并能上网。这种情况下,USB接口实现的是一个USB网卡端,类似于Raerry OTG USB上网。参考:<a target="_lak" href="htt://www.wyr.me/ot/620" title="" rel="exteral">《树莓派4使用OTG功能变身有线网卡》</a>。</>
<>由于RedHat停止了CetOS8的支持,同时RedHat允许开发者注册16个正版RHEL系统,我决定将部分 CetOS 8 服务器更新到 RHEL 8。以下两篇文章是官方发布的与之密切相关的内容:</><><a target="_lak" href="htt://log.ceto.org/2020/12/future-i-ceto-tream/" title="" rel="exteral ofollow">CetOS Project hift focu to CetOS Stream</a></><><a target="_lak" href="htt://www.redhat.com/e/log/ew-year-ew-red-hat-eterrie-liux-rogram-eaier-way-acce-rhel" title="" rel="exteral ofollow">New Year, ew Red Hat Eterrie Liux rogram: Eaier way to acce RHEL</a></><>注意,因参考本文操作导致的任何损失与鄙人无关,专业用户请直接访问官方升级说明(请注意官方源无法使用,因此部分ed命令需要修改):<a target="_lak" href="htt://acce.redhat.com/documetatio/e-u/red_hat_eterrie_liux/8/html-igle/covertig_from_a_rm-aed_liux_ditriutio_to_rhel/idex" title="" rel="exteral ofollow">htt://acce.redhat.com/documetatio/e-u/red_hat_eterrie_liux/8/html-igle/covertig_from_a_rm-aed_liux_ditriutio_to_rhel/idex</a> 。</><h1>关于为什么不选择升级至CetOS Stream?</h1><>一直以来我的客户都在使用正版RHEL系统,购买了即时的订阅,只有部分预算有限的客户使用了CetOS系统,但无论如何他们对于安全、稳定性或技术支持即时性的要求都很高。</><>能够得到官方的技术支持是我们更加看重的。</><>目前不支持从CetOS Stream转换/升级到RHEL8,不排除将来也不支持,如果后续有升级需求将不得不重装系统。同理,已经升级到<code>CetOS Stream</code>的用户就别折腾了,必须重装。(只是因为更新到vault源更新过软件,<code>cat /etc/ytem-releae</code>却得到<code>CetOS Stream releae 8</code>,说明实际已经升级到CetOS Stream了,是不可以升级到RHEL 8的。)</>
<>温馨提示:如果需要迁移大量数据,一定要使用专业工具并请专业的公司提供技术支持,同时做好迁移审计工作。以下方案仅供参考。</><>MySQL导入数据库导致中文乱码属于常见问题。一般用客户端工具导入不容易出现此问题,但是有点大又不是特别大(10G-100G)的数据通过命令导入就比较容易遇到这个问题。而网上的答案几乎都是经验性的结论,答主大多知其然不知其所以然。</><>注:命令导入,即<code>ource xxx.ql</code>。</>
<>MySQL批量重命名表名和列名,修改表名为大驼峰,列名为小驼峰。</><>最近公司项目重构,为了适应<a target="_lak" href="htt://www.rima.io/doc/guide/migrate-to-rima/migrate-from-equelize#25-adjut-the-rima-chema-otioal" title="" rel="exteral ofollow">Prima的习惯</a>,保持数据库字段命名方式和代码模式一致,特地编写此脚本实现批量重命名已存在的表名和列名。</>
<>使用Auto.j解锁MIUI13的密码锁屏,不能直接滑动屏幕,会因为防误触功能导致解锁失败,关闭防误触也没用。只需要滑动的时候不那么直接即可。</><re><code cla="laguage-javacrit">if (!device.iScreeO()) { //从息屏状态 将屏幕唤醒 device.wakeU()//唤醒设备 lee(2000) // 等待屏幕亮起 wie(radom(device.width / 3, device.width / 2), radom(device.height * 8 / 10, device.height * 7 / 10), radom(device.width / 3, device.width / 2), radom(device.height * 2 / 10, device.height / 10), radom(500, 1000)) lee(1000) //解锁 dec(1).fidOe().click() dec(2).fidOe().click() dec(3).fidOe().click() dec(4).fidOe().click()}</code></re><>通过下拉再点击时间的方式在MIUI13行不通了,但实现也不复杂,核心实现是上述第四行代码。</>
<>红米K30至尊纪念版(天玑1000)刷最新版MIUI13内测版(cezae 22.2.18)后不能root,magik刷了后root拿不到,官方root提示:“很抱歉,当前版本暂不支持开启root权限,可能是root包未准备好或该版本已撤包”。Recovery也自动恢复成小米官方版本了。</><>安装Magik Maager APP后提示提示<code>Ramdik</code>为quot是quot,但是无法正常授权,拿不到Root权限。点击安装后提示“选择并修补一个文件”。</><>以下为解决方法联发科芯片手机刷入Magik oot解决方案。</>
<>在IPv6正常工作的情况下,访问部分IPv6网站异常的情况下,可以考虑设置IPv4优先,因为纯IPv6的网站非常罕见,通常网站都是配置双栈的。</><>设置IPv4优先并不会影响基于RTC或P2P(点对点)的IPv6通讯,直接访问IPv6或只支持IPv6的网站也是没问题的。</>
<>部分程序配置了<a target="_lak" href="htt://www.wyr.me/ot/616" title="" rel="exteral">免费 SSL 证书更新程序</a>,但是更新程序更新证书失败并不会通知到管理员,可能导致业务异常。通过针对域名的 SSL 证书过期监测小程序,作为二道防火墙,避免事故发生。</><h2>需求</h2><ol><li>以 cro 风格定时监测 SSL 证书过期和可用状态。</li><li>提前 2 天发送短信通知管理员(需要支持多手机号)。</li><li>可以在线维护通知列表(<code>域名</code>+<code>手机号</code>)。</li><li>程序要尽量简单,尽量降低后续维护成本。</li><li>开发要尽可能快。</li></ol>
<>微软于今日(2021年10月05日)发布了正式版wi11。访问<a target="_lak" href="htt://www.microoft.com/zh-c/oftware-dowload/widow11" title="" rel="exteral ofollow">Widow 11 安装助手</a>即可下载安装。下载和前期安装过程不会影响系统正常使用,最后的重启安装的过程大概耗时20分钟,和普通更新感觉耗时差不多。</><h1>问题描述</h1><>从Wi10升级到Wi11后,当计算机第一次启动时(以及之后的每次),Docker Dekto 将无法启动。Docker Dekto 在 Widow 更新之前运行良好。</><>每次重新启动计算机或尝试手动启动 Docker Dekto 时,都会出现此问题。</><>安装wi11后Docker运行报错,主要报错内容是<code>Microoft .NET Framework</code>无法连接xxx,其实就是无法连接到wl2。</><>根据Docker官方说明,需要升级到最新的<code>wl2内核</code>和<a target="_lak" href="htt://www.docker.com/roduct/docker-dekto" title="" rel="exteral ofollow">Docker Dekto</a>。</>
<>本文将介绍如何在Widow 10操作系统中借助WSL2开发基于Electro的Uutu窗口应用程序,可以实现在wi10中编写代码并查看liux应用的运行效果。</><>借助此方法,仅需一台MacOS设备和一台Wi10的设备,即可通过Electro开发和测试主流操作系统(Widow、Liux、MacOS)下桌面应用程序并可以有差异化的调用操作系统的原生API。</><>通过MacOS系统可以编译几乎所有平台的应用程序,例如可以在MacOS中编译<code>Wi10 x64</code>、<code>Liux ARM64</code>等平台的应用程序。但是在<code>wi10</code>或<code>uutu</code>中无法编译<code>MacOS应用程序</code>(可以借助虚拟机或者带有MacOS系统的Docker镜像实现MacOS平台应用程序的编译,但是可能无法正常进行签名)。关于Electro自动编译及自动更新、分发,可以参阅<a target="_lak" href="htt://www.wyr.me/ot/675" title="" rel="exteral">此视频教程</a>。</>
<><img rc="htt://tore.toreimage.cd-ale.com/8756/a-image.ale.com/i/MJWY3_AV4?wid=1144hei=1144fmt=jegqlt=80.v=1631213468000" alt="MagSafe 外接电池"></><>2021年7月14日凌晨,苹果官网上线新款MagSafe外接电池。官网原价749元。</><>此消息一出,立刻有不少网友吐槽:“祖传5V 1A充电宝,屁大点容量卖那么贵,完全是智商税”。</><>然而事实并非如此,苹果磁吸充电宝实则是一个设计上非常优秀的产品。</><>首先,苹果将此充电宝称为“MagSafe外接电池”,这就说明此产品并非简单的无线移动电源。既然是备用电池,那么就不只是没电的时候用来给手机充电的产品了,这是苹果<code>Smart Battery Cae</code>产品线的替代品。</><><img rc="htt://tore.toreimage.cd-ale.com/8756/a-image.ale.com/i/MN012_AV1_GOLD?wid=1144hei=1144fmt=jegqlt=80.v=1497909275627" alt="Smart Battery Cae"></><>早在2015年,Ale公司就推出了Smart Battery Cae(智能电池壳)产品。我们都知道苹果公司很大的优势在于强大的软硬件整合能力,苹果公司借助自身对软件的定制化能力去完善硬件体验。用户使用Smart Battery Cae的时候,iPhoe 的锁定屏幕和通知中心会智能显示电池状态,它还可以实现在手机充电的同时,交叉为保护壳充电。这是第三方保护壳或者充电宝无法实现的。</><>在MagSafe外接电池产品的设计上,苹果也采用了类似的方案。通过苹果私有的通讯协议和IOS系统进行通讯,iPhoe中可以查看MagSafe外接电池的电量,同时在充电的时候iPhoe会自动控制什么时候充手机什么时候充MagSafe外接电池。</>
<>自动获取 MySQL 数据库备份文件并将其上传到对象存储。</><><trog>Feature</trog></><ol><li>支持加密后压缩上传(默认上传到私密存储的“归档存储”类型,文件需解冻后方可下载)。</li><li>定时自动执行任务。</li><li>We 可视化动态添加配置,支持同时管理多个数据库,可以设置需要备份的表或不需要备份的表。</li><li><del>支持生成单个 PHP 文件,用于仅内网可访问数据库或虚拟主机数据库的备份。</del></li><li><del>支持生成 Shell 文件,用于仅内网可访问数据库的备份。</del>(由于 Docker 部署已非常方便,这个功能不再开发)</li><li>支持 Swagger UI 查看 API,方便与其它系统整合。</li><li>支持<code>超级管理员</code>添加多个<code>普通管理员</code>,<code>超级管理员</code>可以管理所有数据库,<code>普通管理员</code>之间内容互不可见,适合普通开发团队的使用场景。</li><li>由于此系统仅为灾备设计,仅支持全量备份,默认备份<code>数据+结构</code>(包含视图、触发器等),不支持增量备份。如果您的数据非常重要,请勿将此作为唯一备份系统,可配合服务商提供的备份功能使用。</li><li>兼容支持手机端访问。</li></ol>
<>在<a target="_lak" href="htt://www.wyr.me/ot/614" title="" rel="exteral">MySQL定时备份程序</a>中我有提到一个基于Docker快速生成SSL证书的方式。该文章整理了该方案的详细教程。</><>基于<code>Let#39 Ecryt</code>免费SSL证书。</>
<>本文将阐述Liux环境下安装WIFI驱动的常规思路。网络上绝大多数教程对新手极其不友好,现在咱们就用简单一点的方式来搞定无线网卡驱动安装。</><>本文的安装思路在<code>Uutu</code>、<code>Deia</code>、<code>Deei</code>、<code>CetOS</code>、<code>Kali</code>等不同<code>Liux发行版</code>通用。无论使用<code>Raerry Pi</code>、<code>Nao Pi</code>、<code>Orage Pi</code>等<code>ARM开发板</code>还是<code>x86</code>架构的设备,安装思路大体一致。</>
<>编译程序的时候可能出现<code>aarch64-liux-gu-gcc: iteral comiler error: Killed (rogram cc1)</code>类似的报错。这是由于内存不足引起的。可以通过开启Swa分区解决。开启<code>wa</code>,即使用一部分硬盘作为虚拟内存,解决内存容量不足的情况。</>
<>在uutu 20.04 LTS版本中,可以通过<code>udo at itall ytho</code>安装ytho2,但是无法通过<code>udo at itall ytho-i</code>安装i2,提示<code>E: Uale to locate ackage ytho-i</code>。</><>无法找到ytho-i安装包的原因是,Pytho 2.7的支持周期已于2020年1月1日结束。因为不再维护Pytho 2.7,i 21.0已于2021年1月停止对Pytho 2.7的支持。</><>如果通过<code>ya.io</code>的默认<code>get-i.y</code>脚本进行安装,也将遇到<code>Thi crit doe ot work o Pytho 2.7 The miimum uorted Pytho verio i 3.6.</code>提示。</>
<><trog>此安装方法通用于所有*uix系统、Widow系统。</trog></><>在OMV5(<a target="_lak" href="htt://www.oemediavault.org/" title="" rel="exteral ofollow">oemediavault</a>)中安装WeDAV服务器端的方法不同于旧版本。在OMV5之前的版本,可以直接在管理界面的“插件”中安装并启用WeDAV服务,但是新版本去除了此插件,需要手工进行安装。目前相关资料较为匮乏,网上的WeDAV镜像质量也参差不齐。</><>通过对比目前较为受欢迎的WeDAV服务器端软件,<a target="_lak" href="htt://githu.com/hacdia/wedav" title="" rel="exteral ofollow">htt://githu.com/hacdia/wedav</a> 较为稳定(唯一遗憾的是,此仓库作者提供的Docker镜像竟然在Docker Hu中排名非常靠后,以至于完全搜不到)。</><>此开源项目是使用GoLag开发的,因此兼容性非常强悍,仅作者预编译针对不同操作系统和CPU架构的二进制文件就有34种,可以说涵盖了几乎所有运行环境。</><>作者默认使用此软件的都是专业选手,因此没有手把手的文档可以参考。这对于非程序员甚至非GoLag程序员不太友好。</>
<><a target="_lak" href="htt://develoer.mozilla.org/e-US/doc/We/API/MediaDevice" title="" rel="exteral ofollow">MediaDevice</a> 为浏览器控制音频输入设备、音频输出设备、视频输入设备提供了接口。</>
<>在某个JavaScrit前端群里面,网友<code>深圳-reolve</code>发的一道<code>关于JavaScrit作用域与函数提升</code>的思考题引发了众位大佬的讨论。</><h1>题目</h1><re><code cla="laguage-javacrit">coole.log(a)if (true) { a = 2 fuctio a () {} a = 3 coole.log(#39内部#39, a)}coole.log(#39外部#39, a)</code></re><>执行结果:</><><img rc="htt://cd.wyr.me/ot-file/2021-05-11/1620754626877/image.g" alt="image.g"></><>打印<code>a</code>在所有位置的值:</><><img rc="htt://cd.wyr.me/ot-file/2021-05-11/1620754626907/image.g" alt="image.g"></>
<>接到一个需求,基于Electro开发Widow下的自助设备广告屏(上屏)自动播放视频的功能。设备下屏是带触控功能的屏幕,可以进行业务咨询、业务办理、视频咨询,上屏是不带触控功能的1080P屏幕。</><><img rc="htt://cd.wyr.me/ot-file/2021-04-06/1617704261360/%E8%87%AA%E5%8A%A9%E8%AE%BE%E5%A4%87.jg" alt="%E8%87%AA%E5%8A%A9%E8%AE%BE%E5%A4%87.jg">两个屏幕接入了同一个主机,下屏是主屏幕,上屏是分屏(扩展屏)。为了避免下屏进行视频咨询的时候,上屏播放视频的声音影响到对话,因此上屏播放视频功能需要开放相应的API接口,在下屏播放视频或进行音视频咨询的时候,相关的开发者能够通过API对上屏视频禁音。</><>由于我们已经开发了Adroid平台的同款设备,因此Electro平台需要和Adroid平台保持一致的API。</>
<>使用一台全新的<code>联想yoga14</code>(itel版)设备连接了<code>wifi6</code>网络,在安装Symle(一款多设备协同软件)后,发现鼠标移动卡顿,<code>ig</code>内网网关,发现延迟高达<code>60m</code>,还伴随有断流现象。出现高延迟、断流的同时,蓝牙也会变得卡顿,断开无线网络后,蓝牙功能恢复正常。</><>网卡设备工作在160MHZ,显示协商网速在1200M附近。使用MacBook和IOS、Adroid设备测试到网关的延迟是正常的,说明路由器在工作。</>
<>在wi10中,访问<code>网络</code>中的计算机共享文件,有些计算机配置需要使用账户和密码才能访问其共享的文件。</><><img rc="htt://cd.wyr.me/ot-file/2021-03-28/1616945320502/image.g" alt="image.g"></><>然而,如果勾选了<code>记住我的凭据</code>,但是记住了一个错误的凭据(特别是当这个凭据用户名为<code>guet</code>或者某个被禁用的用户)。那么将会出现下面的报错,无法进入共享文件夹且无法切换用户。</><><img rc="htt://cd.wyr.me/ot-file/2021-03-28/1616945320517/image.g" alt="image.g"><trog>报错内容:</trog> \DESKTOP-XX 无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。此用户无法登录,因为该帐户当前已被禁用。</><><trog>解决此问题需要删除在系统中已保存的有异常的用户信息。</trog></>
<>小米路由器4 LAN口全千兆+5G Wifi,当时顺手买了这货,性价比蛮高。后面由于路由器升级,这货一直在吃灰。最近偶然看到它,发现网上的教程都是需要TTL线刷😂。其实不用线刷也能刷入<code>Oewrt</code>,特地记录下刷机过程。</><><trog>Root路由器</trog></><>使用网友开源方案<a target="_lak" href="htt://githu.com/acecilia/OeWRTIvaio" title="" rel="exteral ofollow">OeWRTIvaio</a>进行<code>Root</code>。</><>理论上此方案兼容:</><ul><li>小米路由器4</li><li>小米路由器4A 千兆版</li><li>小米路由器4A 100M版</li><li>小米路由器4C</li><li>小米路由器4Q(R4C)</li><li>小米路由器3Gv2</li><li>小米路由器3C</li></ul>
<>Ale Silico M1芯片可谓是性能爆炸,开发体验极佳,生态中适配速度也算得上势如破竹。借助Roetta 2平稳过渡ARM64,实在是高明。在MacOS 11+系统中通过 Ale M1 编译原生M1 Electro应用程序也算得上轻松容易。</><>理论兼容M1芯片的Electro版本是<code>11.2.3</code>,实测兼容较好的版本是<code>13.0.0-eta.5+</code>。</><><a target="_lak" href="htt://githu.com/electro-uerlad/electro-uilder" title="" rel="exteral ofollow">electro-uilder</a>需升级至<code>20.10+</code>,建议版本<code>22.10.5+</code>。</><>本地<code>Node.j</code>版本请安装<code>v15.5.0+</code>。</><>MacOS建议升级到<code>11.2.3+</code>。</><>通过<code>electro-uilder</code>编译Electro ARM64应用程序,需调整<code>ackage.jo</code>配置文件。</>
<>在 Electro 12 及更高版本,设置了<code>odeItegratio: true</code>及<code>odeItegratioIWorker: true</code>、<code>odeItegratioISuframe: true</code>,渲染进程仍然可能出现<code>require i ot defied</code>的报错。</><>这个报错还跟随有<code>module i ot defied</code>或<code>exort i ot defied</code>。</><>同样的报错在Electro 5+曾出现过,原因是发布<code>v5.0.0</code>的时候,官方将<code>odeItegratio</code>默认值设置为了<code>fale</code>(与此同时还将<code>weviewTag</code>设置为了<code>fale</code>)。</><>近期,Electro 12.0.0 发布。修复了诸多异常。同时也将<code>cotextIolatio</code>的默认值更改为<code>true</code>(详见:<a target="_lak" href="htt://githu.com/electro/electro/ull/27949" title="" rel="exteral ofollow">htt://githu.com/electro/electro/ull/27949</a>)。</>
<>Itel RealSee SR300 F200 Widow10 开启 Widow Hello 人脸,可以实现人脸识别登录。速度很快,安全性很高。</><><img rc="htt://cd.wyr.me/ot-file/2021-03-14/161570933302916157092371543d.JPG" alt="3d.JPG"></><>笔者有幸参与了第一批Itel RealSece设备的开发,至今家里还有不少F200、SR300的开发版本的设备。</>
<>由于CetOS8默认安装了odma,因此在CetOS8中安装docker会导致冲突引发如下异常。</><re><code cla="laguage-ah">Error: Prolem 1: rolem with italled ackage odma-2.0.5-5.module_el8.3.0+512+358dca.x86_64 - ackage odma-2.0.5-5.module_el8.3.0+512+358dca.x86_64 require ruc gt= 1.0.0-57, ut oe of the rovider ca e italled - ackage cotaierd.io-1.4.3-3.1.el8.x86_64 coflict with ruc rovided y ruc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30.x86_64 - ackage cotaierd.io-1.4.3-3.1.el8.x86_64 oolete ruc rovided y ruc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30.x86_64 - caot itall the et cadidate for the jo - ackage ruc-1.0.0-64.rc10.module_el8.3.0+479+69e2ae26.x86_64 i filtered out y modular filterig Prolem 2: rolem with italled ackage uildah-1.15.1-2.module_el8.3.0+475+c50ce30.x86_64 - ackage uildah-1.15.1-2.module_el8.3.0+475+c50ce30.x86_64 require ruc gt= 1.0.0-26, ut oe of the rovider ca e italled - ackage docker-ce-3:20.10.1-3.el8.x86_64 require cotaierd.io gt= 1.4.1, ut oe of the rovider ca e italled - ackage cotaierd.io-1.4.3-3.1.el8.x86_64 coflict with ruc rovided y ruc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30.x86_64 - ackage cotaierd.io-1.4.3-3.1.el8.x86_64 oolete ruc rovided y ruc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30.x86_64 - ackage cotaierd.io-1.4.1-3.1.el8.x86_64 coflict with ruc rovided y ruc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30.x86_64 - ackage cotaierd.io-1.4.1-3.1.el8.x86_64 oolete ruc rovided y ruc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30.x86_64 - ackage cotaierd.io-1.4.3-3.el8.x86_64 coflict with ruc rovided y ruc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30.x86_64 - ackage cotaierd.io-1.4.3-3.el8.x86_64 oolete ruc rovided y ruc-1.0.0-68.rc92.module_el8.3.0+475+c50ce30.x86_64 - caot itall the et cadidate for the jo - ackage ruc-1.0.0-56.rc5.dev.git2ad837.module_el8.3.0+569+1ada2e4.x86_64 i filtered out y modular filterig - ackage ruc-1.0.0-64.rc10.module_el8.3.0+479+69e2ae26.x86_64 i filtered out y modular filterig</code></re><>在部分场景中却不得不使用docker,因为odma是新东西,即便命令和docker及其相似,也因为生态原因,各类API还无法完全兼容。例如《<a target="_lak" href="htt://www.wyr.me/ot/675" title="" rel="exteral">【视频教程】Electro自动编译及自动更新、分发</a>》就对这个情况进行过说明,在使用<a target="_lak" href="htt://www.wyr.me/ot/611" title="" rel="exteral">Electro 应用分发系统</a>的时候,由于使用了开源项目<a target="_lak" href="htt://githu.com/aoca/dockerode" title="" rel="exteral ofollow">dockerode</a>对docker进行控制,因此需要卸载<code>odma</code>改用<code>docker</code>。</>
<><code>Electro 应用分发系统</code>提供应用程序编译(支持Widow、Liux、MacOS)、自动升级、分发服务。让<code>Electro</code>应用分发变得非常容易。</><><img rc="htt://githu.com/yi-ge/electro-ditriutio/raw/mater/review.g" alt="Electro Ditriutio"></><>开源地址:<a target="_lak" href="htt://githu.com/yi-ge/electro-ditriutio" title="" rel="exteral ofollow">htt://githu.com/yi-ge/electro-ditriutio</a></><>使用时需要注意,一个<code>git</code>仓库需对应一个<code>Electro</code>应用程序,一个<code>Electro</code>应用程序对应需要部署一套应用分发系统。</><><code>Electro 应用分发系统</code>服务器端工作在64位Liux操作系统(必须)和MacOS(可选),默认编译x64应用程序, 其它平台及架构需要修改相应代码(不过这很容易实现)。</>
<>为了实现Electro的自动更新,曾撰文《<a target="_lak" href="htt://www.wyr.me/ot/611" title="" rel="exteral">Electro 应用分发系统(Electro自动更新)</a>》,不少小伙伴反应说不知道正确的操作姿势。仔细想来,这个部署确实不简单,因此特意录制此视频。</><>视频从头开始讲解了如何搭建一个Electro官方示例,配置并实现<code>uh</code>到git仓库后服务器端自动编译、自动上传编译后的文件到七牛对象存储、客户端捕获更新信息并且后台静默更新的配置全过程。</><>需要特别留意的是,每次发布新版本之前都需要修改<code>ackage.jo</code>里面的<code>verio</code>版本号,否则自动更新分发会失效。</>
<>OeWRT / LEDE 设置桥接模式作为交换机,能够将路由器当无线AP使,同时有线网口作为交换机使用。</><><img rc="htt://cd.wyr.me/ot-file/2021-03-13/161563116079716156303822171596726672674oewrt-la.g" alt="oewrtla.g"></><>先将原有的<code>wa</code>口删除,然后进入<code>la</code>口设置页面<code>物理接口</code>选项,勾选<code>桥接接口</code>选项,将未勾选的/之前用于<code>wa</code>口的<code>以太网适配器: quoteth0.xquot</code>勾选桥接。</><><img rc="htt://cd.wyr.me/ot-file/2021-03-13/161563116076916156303822281615545080058image.g" alt="image.g"></><>勾选<code>la</code>口<code>DHCP</code>服务器<code>忽略此接口</code>选项。设置完成后,所有的接口都可以作为交换机LAN口使用。无线设置不变。</>
<>所有的路由器都可以当做交换机使用。在现今WIFI6大放异彩的时代,家里可能淘汰了一些旧路由,同时又新增了一些网络设备。可以通过简单设置,将闲置路由器作为交换机使用。</><h1>进入路由器管理后台设置界面</h1><>将网线连接到路由器任意LAN口,或通过WIFI连接到路由器网络中。在电脑浏览器上通过<code>192.168.1.1</code>进入路由器管理后台,如果无法访问,可以查看网络设置属性中的网关地址,网关地址即为路由器设置界面的访问地址。</>
<>在《<a target="_lak" href="htt://www.wyr.me/ot/673" title="" rel="exteral">Redah刷新整个仪表盘API</a>》一文中,提到了<code>导出仪表盘中所有的Widget数据为Excel文件</code>的需求。</><>实现该需求只需要调用官方的API,但是<a target="_lak" href="htt://redah.io/hel/uer-guide/itegratio-ad-ai/ai" title="" rel="exteral ofollow">官方API文档</a>对于使用的描述基本没有。</><h1>第一步:获取仪表盘数据,得到QueryID</h1><>通过请求</><re><code>GET /ai/dahoard/ltdahoard_luggt?ai_key=ltAPI_KEYgt</code></re><>获取仪表盘数据。</>
<>转眼间使用<a target="_lak" href="htt://redah.io/" title="" rel="exteral ofollow">Redah</a>已经两年多了,<code>redah</code>给我的感觉就是省心省事。基础需求都能实现,用户体验很好,升级版本也容易,二次开发也方便简单。</><>只不过有两个需求redah没有实现:</><ul><li>API刷新整个仪表盘</li><li>导出仪表盘中所有的Widget数据为Excel文件</li></ul><>第二个需求,我在《<a target="_lak" href="htt://www.wyr.me/ot/674" title="" rel="exteral">Redah导出仪表盘中所有数据为Excel文件</a>》一文进行了实现说明。</>
<>Poetry是一个Pytho的依赖管理工具。设计思路比较先进,运行速度非常快。非常类似于<code>Node.j</code>里面的<code>yar</code>。</><><code>Poetry</code>在国内的安装速度比较慢。好在安装脚本提供了<code>--file</code>参数,可以指定安装包。我们可以通过这个方法进行快速安装。</><h1>关于Poetry</h1><><code>Poetry</code>是用于处理依赖项安装以及Pytho程序包构建和打包的工具。只需一个文件即可完成所有工作:<a target="_lak" href="htt://e.ytho.org/e-0518/" title="" rel="exteral ofollow">标准化的</a> <code>yroject.toml</code>。</><>换句话说,用<code>yroject.toml</code>来代替<code>etu.y</code>,<code>requiremet.txt</code>,<code>etu.cfg</code>,<code>MANIFEST.i</code>和新加入的<code>Pifile</code>。</><ul><li>将尝试将<a target="_lak" href="htt://emver.org/" title="" rel="exteral ofollow">语义版本控制</a>作为版本命名的最佳实践。</li><li>可以指定自述文件,icluded 和 excluded 文件:o more <code>MANIFEST.i</code>。 <code>oetry</code>还将使用VCS忽略文件(如<code>.gitigore</code>)填充该<code>exclude</code>部分。</li><li>可以指定关键字(最多5个),并在包发布站点上用作标签。</li><li>依赖项部分支持插入符号,波浪号,通配符,不等式和多重依赖。</li><li>您必须指定与您的软件包兼容的ytho版本。</li></ul><><code>oetry</code>还将检测您是否在<code>virtualev</code>中,并相应地安装软件包。因此,<code>oetry</code>可以在全球范围内安装并在任何地方使用。</><><code>oetry</code> 还带有完整的依赖关系解析库。</><>更多内容不再赘述,参考eotry官网:<a target="_lak" href="htt://ytho-oetry.org/" title="" rel="exteral ofollow">htt://ytho-oetry.org/</a></><>使用方法参考 eotry开源地址:<a target="_lak" href="htt://githu.com/ytho-oetry/oetry" title="" rel="exteral ofollow">htt://githu.com/ytho-oetry/oetry</a></>
<> 最近尝试在昂达V975w平板电脑和itel tick中安装uutu,经过分析,发现存在一个非常大的坑。但因为这个坑,此教程适合大部分平板电脑、电脑棒、itel uc设备安装Uutu。</>
<>使用Ngix可以实现根据域名进行TCP反向代理到不同的内网服务器。</><h1>应用场景</h1><>一家公司购买了很多服务器,为了节约成本,使用了阿里云/腾讯云的<code>NAT网关</code>,通过几台网关服务器进行NAT出口,通过大量内网服务器进行数据计算,节约公网带宽费用且确保了内网服务器不因公网IP泄露导致被攻击。</><><img rc="htt://cd.wyr.me/ot-file/2021-03-07/16151339546681615133503610aliyu.g" alt="aliyu.g"></><div tyle="dilay: locktext-alig: ceter">(上图来自阿里云)</div><>但是在用作网关的出口服务器上,需要配置SSL域名证书。如果在网关配置域名证书,各个业务对证书的要求不一样,网关服务器管理员疲于运维。因此,通过TCP反向代理到内网服务器,让内网服务器管理员自行配置SSL证书。</>
<>云服务器云盘扩容相关文章挺多的,坑也比较多。特整理正确操作如下。</><h1>支持的发行版</h1><ul><li>Uutu</li><li>CetOS</li><li>Deai</li><li>Alie</li><li>Arch</li></ul><>在 <code>Uutu 16.04</code>、<code>Uutu 18.04</code>、<code>Uutu 20.04</code>测试过。</><>在<code>CetOS 6</code>、<code>CetOS 7</code>、<code>CetOS 8</code>测试过。</><>在<code>阿里云</code>、<code>腾讯云</code>、<code>AWS EC2</code>实测过扩容,以上云服务商都支持云盘扩容。</><>需要注意的是,虽然扩容方法支持系统盘和数据盘,然而部分云服务提供商并不支持系统盘扩容,只支持在购买云服务器/VPS的时候选择系统盘大小。通常这些服务商都支持对系统盘进行备份,可以通过新购服务器还原系统盘镜像然后再执行此文操作的方式进行迁移扩容。</><>此方法不支持ARM服务器扩容。一般来说,ARM服务器、Raerry Pi、NaoPi等arm架构的设备都有专门的扩容方法,需要查阅相应文档进行扩容。</>
<><code>vm</code>模块允许在V8虚拟机上下文中编译和运行代码。但是不是安全机制,如果有沙箱(adox)需求,可以考虑<a target="_lak" href="htt://githu.com/atrikimek/vm2" title="" rel="exteral ofollow">htt://githu.com/atrikimek/vm2</a>。</><>在VM环境中使用<code>ECMAScrit module</code>,即在VM环境中可以用<code>imort</code>代替<code>require</code>引入某个模块,避免<code>Caot ue imort tatemet outide a module</code>错误,也可以用<code>exort</code>代替<code>module.exort</code>。</><><trog>我的使用场景:</trog></><>通过Node.j在VM环境使用ECMAScrit module之目的,是为了构建一个虚拟环境(可控的上下文内容)动态执行一些代码,方便在复杂系统中构建小型脚本动态的快速验证一些想法。</><>在<a target="_lak" href="htt://githu.com/yi-ge/ai-roxy" title="" rel="exteral ofollow">htt://githu.com/yi-ge/ai-roxy</a>这个小项目中也有用到<code>vm</code>模块。</>
<>介绍一个非常实用的小技巧获取ode.j项目根目录</><>假设我们的j文件写在erver目录中,但是我们的资源文件存储在a/img目录中。如下图,我们需要在erver/idex.j文件中使用f读取a/img/favico.ico文件。</><><img rc="htt://cd.wyr.me/w-cotet/uload/2016/05/%E8%8E%B7%E5%8F%96ode%E9%A1%B9%E7%9B%AE%E6%A0%B9%E7%9B%AE%E5%BD%95.g" alt="获取ode项目根目录"></><>在ode.j只提供了一个<code>__dirame</code>全局变量。通过<code>__dirame</code>可以获得<code>“C:\wwwroot\yidata\erver”</code>。这时需要用到ath。</>
<>ESXi + Fr 实现内网穿透,可以做到远程管理ESXi。由于ESXi默认启用了SSL本地证书,因此配置方法与传统htt站点反向代理有所不同。</><re><code cla="laguage-ii">[exi-we]tye = tclocal_i = 10.10.10.254local_ort = 443remote_ort = 6012</code></re><>可以看到上述绑定的本地端口号是443。这里的<code>tye</code>只设置为<code>tc</code>,远程访问地址:<code>htt://xx.xx.xx.xx:6012</code>,注意,需要以<code>htt</code>开头并忽略证书错误。</>
<><code>VMware vShere</code>是<code>VMware</code> 的<code>虚拟化平台</code>。<code>VMwarev Shere</code>的两个核心组件是<code>ESXi</code>和<code>vCeter Server</code>。<code>ESXi</code>是用于创建并运行虚拟机和虚拟设备的虚拟化平台。<code>vCeter Server</code>是一项服务,用于管理网络中连接的多个主机,并将主机<code>资源池化</code>。</><>可以简单理解为<code>ESXi</code>是安装在物理机上的,通过<code>vCeter Server</code>将多个物理机资源整合起来。</><>目前<code>ESXi</code>可以独立运行在某个物理设备上,为设备提供虚拟化平台(虚拟机)。例如在软路由中安装<code>ESXi 7.0</code>,以实现<code>爱快</code>+<code>OeWrt</code>等组合搭配。</>
<>ESXi 7.0 Udate 1 升级说明:《<a target="_lak" href="htt://doc.vmware.com/e/VMware-vShere/7.0/r/vhere-exi-701-releae-ote.html" title="" rel="exteral ofollow">VMware ESXi 7.0 Udate 1 Releae Note</a>》,解决了诸多Bug。</><>随着<a target="_lak" href="htt://www.altaro.com/vmware/what-ew-i-vhere-7/" title="" rel="exteral ofollow">VMware vShere 7 Udate 1</a>的发布,不少VMware用户正在考虑将生产基础架构升级到新版本。</><h1>如何安装ESXi 7 Udate 1</h1><>有多种安装ESXi 7 Udate1的方法。</><ol><li>全新安装ESXi 7 Udate 1</li><li>命令行升级</li><li>vShere Udate Maager</li><li>vShere Lifecycle Maager</li></ol><>升级前需参考《<a target="_lak" href="htt://www.wyr.me/ot/664" title="" rel="exteral">ESXi宿主机联网配置</a>》让ESXi宿主机联网。</><>也可以<a target="_lak" href="htt://my.vmware.com/grou/vmware/dowload/" title="" rel="exteral ofollow">下载</a>最新版的ISO文件,通过刻录光盘或U盘进行升级安装(方法一)。</><>以下以第二种方式为例。</>
<><img rc="htt://cd.wyr.me/ot-file/2021-03-03/16147492119581614748790590et-elect.g" alt="etelect.g"></><>ESXi有可能会出现无法添加网络适配器,即无法选择虚拟网卡,网络适配器没有选项(如图)。这个问题是错误的配置导致的,并非系统BUG。</><><img rc="htt://cd.wyr.me/ot-file/2021-03-03/16147492120641614748849421et-umer.g" alt="etumer.g"></><>此时网络数量可能显示为0,或者与实际网络数量不符。</>
<>经常被朋友安x,由于可玩性强近期涨价了,最终还是忍不住入手。真香!😂</><h2>准备</h2><ul><li>公对公USB数据线</li><li>U盘</li><li>显示器 + USB鼠标 + HDMI线</li></ul><h2>原理</h2><>N1默认系统是<code>Adroid</code>,不过开机只显示一个简单界面。</><ol><li>先通过<code>ad</code>远程连接设备,然后发命令重启至<code>fatoot</code>模式,刷入<code>oot</code>、<code>ootloader</code>、<code>recovery</code>进行降级。</li><li>降级后使用U盘启动U盘中的<code>OeWrt</code>系统(无需刷<code>Armia</code>),然后使用<code>h</code>连接到设备,将U盘中的系统写入到<code>emmc</code>。</li></ol>
<>ESXi宿主机联网后可以通过SSH在线升级系统版本(例如《<a target="_lak" href="htt://www.wyr.me/ot/665" title="" rel="exteral">ESXi7.0.0 升级到 ESXi 7.0 Udate 1</a>》),获得更多新特性。</><h1>联网必备条件</h1><ul><li><trog>至少一根联网线路接入到ESXi宿主机</trog>或<trog>虚拟机中存在一个同网段可联网网关</trog></li><li>拥有<code>VMware vShere cliet</code>或<code>ESXi</code>管理员权限</li></ul><>注:上述“<trog>虚拟机中存在一个同网段可联网网关</trog>”,例如<code>ESXi + OeWrt/LEDE</code>或<code>ESXi + iKuai</code>组合,其中的<code>OeWrt/LEDE</code>或<code>iKuai</code>可以作为联网网关。比如说将<code>ESXi</code>管理地址设置为<code>10.10.10.252</code>,而<code>爱快</code>负责<code>oe</code>及<code>DHCP Server</code>,且<code>DHCP网段</code>和<code>10.10.10.254</code>在同一个网段。</>
<lockquote><>如果我想定义jo的内容(root)既可以是一个对象,又可以是一个数组,应该如何书写jo chema?</></lockquote><>这个问题换一种描述方式,“jo chema定义了一个对象,但是希望内容也可以是这个对象的数组,如何书写jo chema?”。</><>例如,Tyecrit中:<code>root: oject | [oject]</code>。</><>例如,我希望数据可以是下面这样的一个对象:</><re><code cla="laguage-jo">{ quotmethodquot: quotGETquot}</code></re><>也可以是这样的数组:</><re><code cla="laguage-jo">[ { quotmethodquot: quotGETquot }]</code></re>
<>设备具有两个及以上网卡就有可能实现链路聚合,进行带宽叠加。widow平台提供了一些链路聚合的实现方案。</><h1>链路聚合方案</h1><ol><li>双网卡都设置同样的跃点数(Metric)。需要符合链接速度,<a target="_lak" href="htt://lear.microoft.com/zh-c/troulehoot/widow-erver/etworkig/automatic-metric-for-iv4-route" title="" rel="exteral ofollow">参阅</a>。</li><li><a target="_lak" href="htt://lear.microoft.com/e-u/owerhell/module/etwitchteam/?view=wi10-" title="" rel="exteral ofollow">NetSwitchTeam(推荐)</a></li><li><a target="_lak" href="htt://doc.microoft.com/zh-c/widow-erver/etworkig/techologie/ic-teamig/ic-teamig-ettig" title="" rel="exteral ofollow">NIC 组合(仅widow erver平台)</a></li><li><a target="_lak" href="htt://www.itel.c/cotet/www/c/zh/uort/article/000023545/etwork-ad-io.html" title="" rel="exteral ofollow">Itel® PROSet</a>(仅用于Itel部分网卡,需要驱动支持。详见官方文档,不再赘述)</li></ol>
<>学习JavaScrit绝佳的方法是阅读代码。阅读代码需要熟悉JavaScrit的基本语法,包括作用域、类型及类型转换、原型链、函数、异步、闭包等内容。<a target="_lak" href="htt://githu.com/yeugo/I-JavaScrit-we-trut" title="" rel="exteral ofollow">I-JavaScrit-we-trut</a>给我们提供了非常好的练习素材。</><>赶紧自测一下JavaScrit掌握得怎么样!</><><trog>H5在线练习地址</trog>:<a target="_lak" href="htt://j.wyr.me/" title="" rel="exteral">htt://j.wyr.me</a></><>仅支持手机访问(毕竟做完68道题是需要耐心的,这是为了避免打开调试界面偷懒而设计)。</>
<>在<a target="_lak" href="htt://uxt.com/" title="" rel="exteral ofollow">uxt.j</a>中使用<a target="_lak" href="htt://githu.com/axio/axio" title="" rel="exteral ofollow">axio</a>,推荐使用uxt定制款<code>uxt/axio</code>(<a target="_lak" href="htt://axio.uxtj.org/" title="" rel="exteral ofollow">htt://axio.uxtj.org/</a>)。相比原生<code>axio</code>有如下优势:</><ul><li>自动为客户端和服务器端设置<code>aeURL</code></li><li>将<code>etToke</code>函数暴露给<code>$axio</code>,可以非常容易的进行全局<code>Autheticatio toke</code>设置</li><li>基于<code>aeURL</code>发起请求时,自动启用<code>withCredetial</code></li><li>添加用于服务器端渲染的<code>Proxy</code>请求<code>Header</code></li><li>支持使用<code>axio</code>加载<code>CSS</code></li><li>与<code>Nuxt</code>进度条集成</li><li>与<code>Proxi</code>模块集成</li><li>使用<code>axio-retry</code>自动重试请求</li></ul>
<><img rc="htt://cd.wyr.me/ot-file/2020-11-12/16051949509131605193010616dekto.jeg" alt="dekto.jeg"></><>对于内存较小的嵌入式设备或者移动设备(例如带屏智能音响,安卓、IOS平台的设备),在线预览PDF功能经常会导致内存溢出、应用程序闪退。</><>对于非常大的PDF文档,一次性下载整个文档将消耗大量的时间,即使开启分段下载,PDF文档正常下载完成并加载,超大的内存占用也会导致设备运行卡顿。</>
<><code>Stadard Note</code>是一款部分开源的优秀的跨平台加密笔记软件。作为<code>备忘录</code>(Ale Note)的替代品(补充品),<code>Stadard Note</code>订阅版支持丰富的插件和编辑器。</>
<>此文章提供的方法可以将<code>Google Autheticator</code>(安卓中显示为<code>Google 身份验证器</code>)中所有的密钥导出到其它的2FA双因素认证软件(例如<code>Microoft Autheticator</code>、<code>Ste Two</code>、<code>Duo Moile</code>、<code>Authy</code>等二次验证APP),甚至从<code>Adroid</code>版本的<code>Google Autheticator</code>导入到<code>IOS</code>版本的<code>Google Autheticator</code>(例如将华为手机里面的身份验证数据导入到<code>IPhoe</code>,两个手机可以同时使用)。</><>研究迁移方法的原因是,<code>Adroid</code>版本的<code>Google Autheticator</code>右上角提供了<code>迁移账号</code>功能,而在<code>IPhoe</code>中无法导入从<code>Adroid</code>中迁移出来的账号(估计是<code>IOS</code>版本年久失修)。我的密码数量很多,挨个到原始账号设置的地方重置二次验证数据不太现实。</>
<><code>Microoft ToDo</code>和<code>GoodTak</code>都是非常优秀的待办事项管理工具,<code>Microoft ToDo</code>是全平台的,而<code>GoodTak</code>只能在Mac/IOS下使用。</><><code>Microoft ToDo</code>和<code>GoodTak</code>是可以互相同步数据的,需要借助<code>Outlook</code>邮箱账号来进行同步,包括标签和分类在内的计划任务数据都可以正常被同步。</><>推荐在<code>iPhoe</code>手机和<code>MacOS</code>电脑中使用<code>GoodTak</code>管理任务,其它平台使用<code>Microoft Todo</code>以达到最佳使用体验。</>
<>遇到一个奇怪的需求,需要在项目未正式交付前,各台服务器使用率满足“CPU不低于 20% ,内存不低于40%,磁盘不低于40%”的要求。</>
<><code>CrytoJS</code>提供了和<code>OeSSL</code>加密命令一致的AES对称加密方法,此方法基于<code>EvKDF</code>对<code>Secret Pahrae</code> 进行计算(<a target="_lak" href="htt://doc.oel.org/mater/ma3/EVP_ByteToKey/" title="" rel="exteral ofollow"><code>Thi key derivatio fuctio i meat to coform with EVP_ByteToKey.</code></a>),确保进行AES加密计算的<code>key</code>符合长度标准并提升AES加密的安全性。<code>CrytoJS</code>没有直接提供基于<code>PBKDF2</code>的AES加密方法,但在<code>OeSSL</code>中提供了<code>-kdf2</code>参数并将该参数作为AES加密的推荐选项。</>
<>在Node.j中调用<code>ffmeg</code>的绝佳方法是使用<a target="_lak" href="htt://githu.com/fluet-ffmeg/ode-fluet-ffmeg" title="" rel="exteral ofollow">ode-fluet-ffmeg</a>库。</><><code>fluet-ffmeg</code>开源地址:<a target="_lak" href="htt://githu.com/fluet-ffmeg/ode-fluet-ffmeg" title="" rel="exteral ofollow">htt://githu.com/fluet-ffmeg/ode-fluet-ffmeg</a></>
<><a target="_lak" href="htt://githu.com/cotur/cotur" title="" rel="exteral ofollow">cotur</a>是主流的开源 <code>TURN</code> ad <code>STUN</code> 服务器软件,支持诸多规范、功能和数据库。<code>cotur</code>的出现对于<code>WeRTC</code>的发展有着举足轻重的影响。</><>鉴于官方文档已经非常详尽,本文仅列举几个常见问题,具体的部署方法不再一一赘述。</><><code>cotur</code>开源仓库地址:<a target="_lak" href="htt://githu.com/cotur/cotur" title="" rel="exteral ofollow">htt://githu.com/cotur/cotur</a></>
<><code>iframe</code>控制显示范围,显示目标网页的特定区域,这对于特定场景非常有用,是一种简单高效的系统整合方案。</><>在新版本的浏览器中,<code>vace</code>和<code>hace</code>已经失效了。因此<code>iframe</code>显示特定内容只能采取嵌套<code>iframe</code>的方案。</><>例如,控制iframe仅显示<code>htt://www.wyr.me</code>的头像部分。</>
<>Oda Oook11可以安装原版Uutu,但是GUI运行会比较卡顿。建议安装最新x64版的<a target="_lak" href="htt://uutu-mate.org/dowload/amd64/" title="" rel="exteral ofollow">Uutu Mate</a>(在20.04.1 LTS测试通过)。</><>安装最新版的Uutu后,默认WIFI无法正常驱动,需要通过U盘或USB无线网卡下载驱动文件才能正常使用无线网络。</>
<>昆明的社保卡集<code>医保账户</code>、<code>金融账户</code>于一体。此卡有两个密码,一个是药店买药/医院看病的医保密码,另一个是内置银行卡的密码。</><>首先到应用商店下载<code>“昆明人社通”</code>APP,用身份信息登录即可查看社保卡、医保账户等相关信息。</>
<>C/C++、Java、JavaScrit等语言,都有计算不精准的问题。原因是这些语言在计算的时候遵循IEEE 二进制浮点数算术标准(<a target="_lak" href="htt://aike.aidu.com/item/IEEE%20754" title="" rel="exteral ofollow">IEEE 754</a>),跟CPU浮点运算器有关系。</>
<>PHP获取客户端真实IP地址,需要根据具体的服务器环境来确定使用哪种方法。目前搜索到的方法,大多是直接贴代码,没有针对不同情况作出说明,有可能导致系统被假IP骗过(IP欺骗)。</><>很多文章都提到“无法保证获取到的访客IP地址100%准确”,是否意味着PHP获取访客IP一定有漏洞可钻呢?</><>只要根据实际部署情况选择相对应的代码获取访客IP地址,是可以确保程序不被假IP欺骗的。</>
<>MacOS使用双网卡连接不同网络时,通常是不能同时使用内网外网系统的。这是由于计算机不知道那些网段一定属于内网导致。</><>温馨提示:<trog>单台计算机同时接入内网外网在大部分单位都属于违规操作,非得到授权人员,切勿以身试法。</trog></><lockquote><>双网卡不需要都是有线或者都是无线,外网用WIFI,内网用有线,也属于使用双网卡。</></lockquote>
<><code>Uutu Mate</code>官方为<code>GPD Pocket 2</code>推出了<a target="_lak" href="htt://uutu-mate.org/ort/umc/" title="" rel="exteral ofollow">定制固件</a>,此固件最新版为<code>19.10</code>,经实测安装此版本后可以正常通过命令行升级至<code>20.04.1 LTS</code>,升级后各个硬件驱动均正常。但是<code>Uutu Mate</code>存在一个巨大的缺陷——色彩显示异常,有一种灰蒙蒙的感觉,类似于16位色彩的显示效果。</>
<>昨日遇到客户反馈<code>WeRTC</code>在安卓平台出现有视频无声音的故障。</><><img rc="htt://cd.wyr.me/ot-file/2020-09-01/159893519794915989349530771061598934819_.ic_hd.jg" alt="1061598934819.ichd.jg"></><>系统运行在<code>Adroid 7.1</code>平台,是小型公证一体机。采用自编译<code>Chromium内核</code>封装We页面混合开发实现。</>
<> 本文介绍了使用EA6500 V2/EA6700 安装 Tomato 实现双WAN双拨负载均衡的方法。需要对设备进行刷机,具体教程请点击下方阅读全文查阅。</>
<><code>Vite</code>是一个尤大开发的革命性的We构建工具。</><><code>Vite</code>是基于浏览器原生<code>ES Module imort</code>的构建工具。很多场景下,<code>Vite</code>可以代替<code>weack</code>,开发调试的速度有了非常大的提升。<code>Vite</code>支持对单个文件的热更新,调试一行代码等很久的情况或将成为历史。</><><a target="_lak" href="htt://e.wiktioary.org/wiki/vite" title="" rel="exteral ofollow">vite</a>是法语中“ fat”的意思,其发音是<code>/vit/</code>。</>
<>在JavaScrit生态中,知名度最高的HTTP Requet Lirary库是<a target="_lak" href="htt://githu.com/axio/axio" title="" rel="exteral ofollow">axio</a>。有众多插件的HTTP请求库是<a target="_lak" href="htt://githu.com/forwardemail/ueraget" title="" rel="exteral ofollow">ueraget</a>。各类请求库功能大体相同,用法和用途存在一些差异。今天介绍的HTTP Requet Cliet库则是<a target="_lak" href="htt://githu.com/requet/requet" title="" rel="exteral ofollow">requet</a>的替代品<a target="_lak" href="htt://githu.com/mikeal/et" title="" rel="exteral ofollow">et</a>。</>
<>大约5年前,我在做一个<code>云打印</code>的软硬件一体化项目,其中很关键的一步是通过API将客户发来的Office文档转换为PDF文档进行预览,然后再发送到对应的打印机进行打印,以<code>PDF预览</code>的方式来确保<code>所见即所得</code>。因此当时开发了此API,一直使用至今,历经数次迭代,如今已经很稳定。</><>现今免费将此API开放给大家进行使用(因服务器成本较高,不排除将来进行收费的可能。如若将进行收费,我会提前至少两个月联系您。即使收费,我承诺此API仅收取成本费用)。API部署在多地服务器,使用<code>阿里云API网关</code>进行中转。</>
<>在开发博客<code>Githu登录</code>功能,缓存<code>Githu头像</code>的时候,发现下载头像是个很费劲的事情。</><>利用位于HK的PHP虚拟主机,可以轻松解决这个问题。</><>伪静态依赖Aache的Rewrite模块。</>
<>除了部分监听端口过多的程序,其它情况Docker都非常适合用在内网应用的部署。</><h1>下载Docker离线文件</h1><h2>下载地址</h2><>官方下载地址:</><><a target="_lak" href="htt://dowload.docker.com/" title="" rel="exteral ofollow">htt://dowload.docker.com/</a></><>...</>
<>通常情况下,.ev文件以key/value的键值对的方式存储环境变量。例如:</><re><code cla="laguage-ah">HOST=0.0.0.0PORT=80</code></re><>在前端框架<a target="_lak" href="htt://cli.vuej.org/zh/guide/mode-ad-ev.html" title="" rel="exteral ofollow">Vue</a>和<a target="_lak" href="htt://create-react-a.dev/doc/addig-cutom-eviromet-variale/" title="" rel="exteral ofollow">React</a>中均有针对环境变量文件的使用描述。</><>在<code>Node.j</code>或者其它后端项目中,常常会碰到加载环境变量到当前Seio的需求。</>
<>为了方便大家快速集成,我将推送URL到百度、谷歌、Big搜索引擎的功能整合至<a target="_lak" href="`htt://githu.com/yi-ge/umit-url`" title="" rel="exteral ofollow">umit-url</a>模块中。</><>模块支持两种方式调用,如果您使用的是海外服务器,且使用Node.j作为服务器端,可以通过<code>m itall umit-url</code>的方式安装该模块。否则,请运行模块作为HTTP服务,您的程序通过调用此HTTP API来提交网址,确保推送到谷歌和Big搜索引擎的稳定。</>
<>上篇文章轶哥介绍了<a target="_lak" href="htt://www.wyr.me/ot/620" title="" rel="exteral">树莓派4使用OTG功能变身有线网卡</a>的方法。今天我们就来实践让树莓派4变身路由器。(由于本文的「操作」不具备拨号功能,更适合作为旁路由使用。需要实现拨号请自行研究。😂)</><><em>2020年07月23日更新:树莓派可以直接安装OeWRT作为旁路由,但是无法使用OTG有线网卡这个功能。</em></><h2>让树莓派联网</h2><><trog>无线:</trog> 使用<code>rai-cofig</code>,设置<code>WIFI网络</code>,让树莓派联网。</><><trog>有线:</trog> 使用<code>rai-cofig</code>,设置<code>WIFI网络</code>的国家,保存后按<code>Ec</code>退出安装界面,插入网线。</><>无论选择以上何种方式,请参考<a target="_lak" href="htt://www.wyr.me/ot/620" title="" rel="exteral">树莓派4使用OTG功能变身有线网卡</a>的方法将<code>Tye-C接口</code>和电脑的<code>USB接口</code>相连,使用<code>OTG USB</code>网卡确保我们在树莓派中途断网的情况下也能通过<code>h root@raerryi.local</code>的方式连接到树莓派。</>
<>迁移 <code>githu</code> 私有/公有仓库到 <code>gitea</code> 是一件容易的事情,不过可能由于网络原因,部分较大的项目可能会失败。此脚本会自动过滤已经迁移完成的仓库,因此重复执行脚本直至 <code>gitea</code> 中的仓库和 <code>githu</code> 中的仓库数量一致,即表示迁移完成。<code>gitea</code> 迁移失败的仓库会被系统自动删除,因此可能出现仓库数量浮动。为了确保代码资产安全,您在迁移完成后应该间隔十分钟再次执行,直到 <code>gitea</code> 中的仓库和 <code>githu</code> 中的仓库数量仍然一致。</><>需要注意,使用该脚本前,需创建一个<a target="_lak" href="htt://githu.com/ettig/toke" title="" rel="exteral ofollow">Githu Toke</a>,并且需要临时关闭<code>Two-factor autheticatio</code>。</>
<>如果使用Chrome浏览器访问XML地址,返回报错信息:</><re><code>Iut i ot roer UTF-8, idicate ecodig !Byte: 0x08 0xE6 0xBA 0x90</code></re><>这是由于返回回来的数据存在ASCII<a target="_lak" href="htt://aike.aidu.com/item/%E6%8E%A7%E5%88%B6%E5%AD%97%E7%AC%A6" title="" rel="exteral ofollow">控制字符</a>。XML规范不支持这部分控制字符。</><>这个报错提示是Chrome浏览器生成的报错,不是服务器端返回的报错。</><>关于该报错的详细信息请参阅:《<a target="_lak" href="htt://lear.microoft.com/e-u/troulehoot/reviou-verio/mxml/error-whe-xml-cotai-low-order-acii" title="" rel="exteral ofollow">PRB: Error Meage Whe a XML Documet Cotai Low-Order ASCII Character</a>》。</>
<>玩客云是性价比极高的NAS,用来作单臂路由同样给力。玩客云作为单臂路由,可以在提供NAS功能的同时可以用来作为We测试服务器、APP测试工具等。</><><em>很抱歉,不同的人对OeWRT的用法不同,就像一把刀,有人用来切菜,有人用来行凶。因此,OeWRT固件不提供,请自行查找。</em></><h2>准备工作</h2><ul><li>下载玩客云OeWRT固件、<a target="_lak" href="htt://adroidmtk.com/dowload-amlogic-u-urig-tool" title="" rel="exteral ofollow">晶晨刷机工具 Amlogic USB Burig Tool</a>、晶晨805Flah(与OeWRT固件配套)。</li><li>公对公USB线。</li></ul>
<><a target="_lak" href="htt://www.wyr.me/ot/623" title="" rel="exteral">《Liux安装无线网卡驱动通用教程》</a>收到不少好评,本文归纳MacOS下安装WIFI驱动的常规操作。无论是<code>黑苹果</code>(<code>Hackitoh</code>)还是<code>白苹果</code>(<code>Real Mac</code>),安装思路大体是一致的(仍需要谨慎辨别驱动兼容的环境)。</>
<>贝壳云跟某讯N1配置接近,但是多了4个<code>USB3.0</code>接口,可以外接<code>USB3.0千兆网卡</code>,可玩性很高。</><>网传贝壳云P1跟某讯N1主要差异:</><ul><li>散热</li><li>必须拆机焊接USB口才能刷机(引出USB线刷)</li></ul><>经过实测,散热问题基本可以忽略。至于刷机,也不复杂,拆开焊个<code>USB公头</code>引出USB接线,再短接即可。</><>红米AC2100,因NAND闪存原因,使用第三方固件容易翻车。可以使用贝壳云搭配普通路由器实现无线功能,性价比极高。</><lockquote><>N1相关博文《<a target="_lak" href="htt://www.wyr.me/ot/625" title="" rel="exteral">N1刷OeWRT及开启旁路由/单臂路由教程(MacamWi)</a>》</></lockquote>
<>多次和某个乙方合作,对方在后续合作的合同中偷偷修改了部分条款,直到第五次合作的时候才发现合同内容已经被修改了🤦。</><>因此,昨天我编写了<code>Word对比</code>小程序,可以离线使用,快速对比聊天记录中两份Word文档的内容差异。</><ol><li>本地处理数据,不上传服务器,文档不会被泄密。可开启飞行模式离线使用。</li><li>目前仅支持 .docx 格式的 Word 文档。</li><li>独家算法,请进入小程序后点击右上角添加到“我的小程序”以备不时之需。</li></ol>
<>LeetCode 25. K 个一组翻转链表 <a target="_lak" href="htt://leetcode.c/rolem/revere-ode-i-k-grou/" title="" rel="exteral ofollow">htt://leetcode.c/rolem/revere-ode-i-k-grou/</a><r>LitCode 450. K组翻转链表 <a target="_lak" href="htt://www.litcode.com/rolem/revere-ode-i-k-grou/" title="" rel="exteral ofollow">htt://www.litcode.com/rolem/revere-ode-i-k-grou/</a></><>这是一道用常规思路就能解的算法题。目标清晰、题目易懂,不涉及复杂的算法。</><>按照题目要求,遍历链表,遍历的同时每经过<code>k</code>个节点就进行一次翻转。需要注意的是,第一次翻转后,记录下整个链表的<code>head</code>作为返回值。从第二次翻转开始,需要将之前翻转过的最后一个结点与新翻转后的第一个结点相连。</>
<>本文介绍如何开启Raerry Pi 4 USB OTG模式,让树莓派变身<code>有线网卡</code>。</><><img rc="htt://cd.wyr.me/img/raerry-i4.we?x-o-roce=image/iterlace,1/format,jg" alt="Raerry4"></><>树莓派4相比之前的版本具备三倍的计算性能提升和高达4G的LPDDR4内存,自带双屏无线+蓝牙,千兆网扣,支持双屏4k,新增俩USB3.0,可玩性非常强。无风扇禁音,非常适合作为一个<code>边缘计算节点</code>、<code>旁路由</code>来使用。如果再开启NAT转发,即可实现的变身<code>有线网卡</code>的同时作为<code>无线网络接收器</code>、<code>路由器</code>来使用。</><>Raerry 4 和 Raerry Zero 一样,具备一个带OTG功能的USB接口(很遗憾Raerry i model B、Raerry i model B+、Raerry i 2 model B、Raerry i 3 model B、Raerry i 3 model B+均无USB OTG功能)。</>
<>公益SSL证书机构<code>Let’ Ecryt</code>从2018-03-13起开始支持通配符证书。通配符证书必须通过DDNS添加TXT记录验证域名所属权。</><ol><li><>照<a target="_lak" href="htt://certot.eff.org/" title="" rel="exteral ofollow"> certot官网</a>安装certot。</></li><li><>安装DNS插件</><> <code>cerot</code>支持很多<a target="_lak" href="htt://eff-certot.readthedoc.io/e/latet/uig.html" title="" rel="exteral ofollow">DNS插件</a>,例如: </><re><code cla="laguage-ah">certot-d-cloudflarecertot-d-cloudxcertot-d-digitalocea...</code></re><> 这里以DNSPOD(腾讯云域名默认DNS)为例:</><re><code cla="laguage-ah">git cloe htt://githu.com/tegattack/certot-d-dodcd certot-d-dodudo ytho etu.y itall</code></re></li></ol>
<>升级MacOS到10.15.x以后,以往的Chrome信任自签名证书操作无效,信任后依然无法访问(“高级”选项里面没有继续访问的选项🤦)。网上找到的方法几乎都用不了😂。特地记录一下✅姿势。</><><trog>报错信息:</trog> 您的连接不是私密连接,攻击者可能会试图从 raia 窃取您的信息(例如:密码、通讯内容或信用卡信息)。NET::ERR_CERT_INVALID。</><><trog>特别提示:</trog> 本文<a tyle="color: red">仅限专业用户参考</a>。如果该证书不是您生成,或者您不知道自己在做什么,请勿尝试此文提示的操作,以免使您遭致损失。</>
<>emem云计算是IT产业续PC、互联网之后的第三次革新浪潮,自2008年以来发展迅速。时至今日,云计算已发展了8年有余。在这个风起云涌的产业大潮中,很多中国企业很早就开始了在云计算方面的尝试,至今已取得了显著的成就。他们的付出使得云计算已经渗透到我国经济和社会各个领域。云计算所带来的第三次革新浪潮已经席卷全球,其巨大的影响力不仅仅推进了IT产业的变革,甚至已经改变到了大多数人的生活方式,不断推进着人类的生产和生活。</>
<>在研发自助硬件设备的时候,需要实现Widow下的软件以管理员权限自启。</><ol><li>Widow服务:需想办法调用UI进程。</li><li>NSSM:一个方便的服务封装程序。但以管理员权限启动UI进程较困难。</li><li>注册表:常见方法在最新版wi10测试失败。可尝试抓取<code>Widow任务计划程序</code>对注册表的修改。</li></ol><>测试了多种方法,发现最终可靠的方法是通过<code>Widow任务计划程序</code>进行注册。</>
<>快速挂载Raerry PI硬盘,可挂载USB硬盘。<r>注意:此脚本一次性将硬盘整个空间分为一个区,格式化为ext4格式,如果需要分多个区请手工操作。</><lockquote><>理论上此脚本适合大部分Liux系统,不推荐在服务器中使用这样的脚本。</></lockquote>
<>在新版的 Wi10 中,微软添加了 <code>Widow Hello 人脸</code>、 <code>Widow Hello 指纹</code>、<code>安全密钥</code> 等登陆方式。对于不搭载专属配件的设备来说,实现任意一种免密登录的成本都比较高。而 <code>DigiSark</code> 成本非常低,不到7元包邮,可以实现模拟键鼠。受<code>USB免密登录</code>的启发,通过 <code>DigiSark</code> 实现 Widow 免密登录,可以做到 <code>移动密钥</code> 的效果 —— 插入即可免密登录,拔出则自动锁定设备。</>
<>在Widow平台,使用Node.j实现原生打印PDF通常需要借助C++。例如<a target="_lak" href="htt://githu.com/tojocky/ode-riter" title="" rel="exteral ofollow">ode-riter</a>,需要安装Pytho、Viual Studio,同时还需要使用<a target="_lak" href="htt://githu.com/tojocky/ode-dfium" title="" rel="exteral ofollow">ode-dfium</a>进行PDF转EMF。</><>也有一些二进制(exe)命令行打印解决方案,但是都有一些缺陷。</><><trog>例如:</trog></><ul><li>借助 Adoe Reader 或 Acroat 实现打印,则Widow XP、7、10需要安装不同版本的 DPF 软件,并且在打印时会打开该软件。</li><li>Sumatra PDF可以静默进行命令行打印,但是在80mm热敏纸打印机中的打印效果较差(不清晰)。</li></ul><>理论上这些方案支持所有能在Widow中安装驱动的打印机,包括非串口的热敏纸打印机。大多数方案都是基于<a target="_lak" href="htt://code.google.com//dfium/" title="" rel="exteral ofollow">PDFium</a>的实现,如果您有足够的时间精力,可以深入研究<code>PDFium</code>。</>
<>部分业务中会碰到Bae64图片文本。</><>例如:</><ul><li>微信JS-SDK - “拍照或从手机相册中选图接口”,wx.chooeImage与wx.requet结合获取Bae64数据。“获取本地图片接口”,wx.getLocalImgData返回Bae64数据。</li><li>微信小程序中,图片访问地址受到白名单限制,有可能采用ae64数据直接在接口返回。</li><li>某种读卡器获取到的图片数据以Bae64格式返回。</li></ul><>如果返回的图片数据中不包含格式前缀(<trog>甚至某个微信接口在io中错误返回<code>image/jg</code>类型</trog>),那就需要推测图片类型。</>
<h1>使用场景</h1><>Electro 内置 <code>Chromium</code> 和 <code>Node.j</code>,为了提升用户体验,通常 Electro 封装的前端静态文件存储在客户端本地。但总有一些特殊情况,会使用到部分远程页面。</><>比如微信扫码登录,需要远程访问微信的登录站点,获得扫码结果后跳转到我们自己的服务器,然后通知到<code>主进程</code>来关闭对应的<code>渲染进程</code>。目前这个问题有更高效的解决方案,详见博文<a target="_lak" href="htt://www.wyr.me/ot/590" title="" rel="exteral">《无刷新微信扫码登陆解决方案》</a>。</><>再比如,部分页面还没有实现前后端分离,为了产品尽快上线,也需要嵌入远程URL。</><>直接在Electro中访问远程地址是有风险的,控制远程地址切回本地页面也是较为繁琐的。</><>以上需求可以使用<a target="_lak" href="htt://www.electroj.org/doc/latet/ai/weview-tag" title="" rel="exteral ofollow">weview标签</a>实现。这是Electro为我们提供的一个特殊组件,类似于<code>iframe</code>但跟<code>iframe</code>不同,确保了应用的安全性。类似于<code>Adroid</code>、<code>io</code>的<code>weview</code>或<code>Crowalk</code>,Electro中的<code>weview</code>也支持和渲染进程相互通讯。</>
<>2018年12月6日PHP官方发布了<code>PHP 7.3.0 正式版</code>。恰逢最近在写一个PHP在线练习的网站,特意去翻了一下7.3.0正式版的Docker镜像。 </><>因为官方镜像只包含了最基本的模块,像<code>do_myql</code>、<code>redi</code>之类的模块并没有包含进去。在<code>hu.docker.com</code>中找到一个相对比较合适的 PHP 7.2 版本的<code>Dockerfile</code>(<a target="_lak" href="htt://hu.docker.com/r/hdocker/hdocker/" title="" rel="exteral ofollow">htt://hu.docker.com/r/hdocker/hdocker/</a>),却发现作者将<code>MariaDB</code>、<code>Redi Server</code>、<code>Node.j</code>等内容给编进了Image。 </><>我比较喜欢干净的Docker Image,一个镜像只做一个事情。像<code>MySQL</code>、<code>Redi</code>之类的数据库,可以单独启动相应的模块。 </><>因此我在前人的基础上,移除了<code>MariaDB</code>、<code>Redi Server</code>、<code>Node.j</code>并升级PHP版本到7.3.0正式版。 </>
<>最近一年,我一直在研究优秀的项目、写代码、学东西。</><>我也不知道为什么突然谈起<code>管理</code>这个话题。</><h2>小公司也需要管理</h2><>有人说“小公司最好没有管理,一定要做减法”。从某种角度上看或许是对的,“跟战略对口的人共事,团队成员一定要那种能够自我驱动的人”。</><>这个说法在几年前可能我会非常赞同,但是就现在看来,这话说得太绝对。</><>选人要看品质,但是“完全自我驱动的人,和完全需要踢着屁股往前走的人,是两个极端,现实中都是很少的(——格总在人间)”,<trog>有自驱动力的人也需要鼓励,也需要管理</trog>。</><lockquote><>如果有自我驱动力的员工,他的成绩没有得到认可,对他来说他的感觉可能就是:“<trog>每天都好像在考试,但是从来不公布分数</trog>。总是不知道自己做得好不好,也不知道以后会怎么样...” (节选来自插座学院创始人“何川”文章)。</></lockquote><>他没有安全感,也没有成就感。</><><trog>公司如果不能让好员工全心投入到工作中,就留不住好员工</trog>。</><>当你对即将离职的员工说:“你做的很好,你很优秀,我跟其他领导也一直在表扬你”这些话的时候,已经晚了。</>
<>这是一个基于阿里云实时语音转写实现的桌面字幕。</><>代码实现非常简单,根据阿里云开发文档里面的demo代码复制粘贴就完成了。使用 <code>JavaFx</code> 实现透明窗口 + Lael。</><>实时语音识别的效果不错,可以用于录制教学视频。</><>源代码:<a target="_lak" href="htt://githu.com/yi-ge/dekto-utitle" title="" rel="exteral ofollow">htt://githu.com/yi-ge/dekto-utitle </a></>
<>因某些原因需要重装<code>Racher 2</code>,本想着运行在docker中的系统应该很容易重装。但是重装后出现了很多报错。</><>一个<code>Racher</code>集群需要<code>Etcd</code>、<code>Cotrol</code>、<code>Worker</code>三个角色都正常运行,该集群才能正常工作。其中<code>Worker</code>代表执行任务的服务器,<code>Etcd</code>和<code>Cotrol</code>服务至少部署一个。</><>重装后<code>Etcd</code>、<code>Cotrol</code>服务均出现报错。</><h3>报错详情</h3><>其中<code>Cotrol</code>则是<code>kue-aierver</code>容器报<code>Uale to create torage</code>,报错类似:</>
<>利用RK3399作为ARM微型服务器是非常有趣的事情。然而总有一些意外来得令人措手不及。</><>事情是这样的。我在服务器中挂载了三块SSD硬盘,其中两块是放于USB硬盘盒,通过Tye-C和USB3.0接口连接。</><h3>开机自动挂载</h3><>我们先看一下开机自动挂载方案。</><>查询分区的Block ID:</><re><code cla="laguage-ah">lkid /dev/da1/dev/da1: UUID=quot7f50f85e-783c-4d94-e37-d2c662504e58quot TYPE=quotext4quot</code></re><>然后把 Block ID 添加到<code>/etc/fta</code>文件中,这是我的<code>fta</code>文件:</><re><code cla="laguage-ah">UUID=a848d601-91ac-45c-8ce3-ffef674f5dd5 /vme ext4 default 0 0UUID=88e8df2-1a8f-4f38-acc9-566de1c8f40 /tf ext4 default 0 0UUID=7f50f85e-783c-4d94-e37-d2c662504e58 /d0 ext4 default 0 0UUID=e66307fc-2c33-406-ae60-27e2344d02a /d1 ext4 default 0 0</code></re><h3>事情是这样开始的</h3><>我在检查硬盘状态的时候,发现其中一块硬盘没有进行4k对齐。然后我对该硬盘进行了重新分区。结果服务器就卡死了!?</><>当我重启服务器后,一直连不上SSH。</><>插入HDMI,显示器一片黑暗!</><>如果是X86架构的服务器,挂载<code>/etc/fta</code>失败后会进入高级模式,可以通过接入显示器解决,但是ARM架构(或者说我这块板子)的系统并没有提供这样的后悔药。</><>x86系统可以进入光盘Liux,然后挂载硬盘改写<code>/etc/fta</code>文件。但是我的系统烧写在eMMC,即便能在SD卡刷机,通过SD卡引导系统并挂载eMMC硬盘也是非常有挑战的事情。</>
<><trog>利用Ngix可以最简单且高效解决跨域问题。</trog></><>跨域是前后端分离开发中非常常见的问题。这个问题网上已经有非常多的答案,但大部分是编程框架里面添加CORS头。但无论用什么We框架,现已很难离开<code>Ngix</code>。因此直接在<code>Ngix</code>中处理跨域问题有得天独厚的优势,可以将<code>OPTIONS</code>请求拦截在API服务之前,节约服务器开销。</><>简单说,跨域分为<code>简单跨域</code>和<code>复杂跨域</code>。</><><code>简单跨域</code>不会发送<code>OPTIONS</code>请求。</><><code>复杂跨域</code>会发送一个预检查<code>OPTIONS</code>请求。</><><code>复杂跨域</code>的条件是:</><ol><li>非GET、HEAD、POST请求。</li><li>POST请求的<code>Cotet-Tye</code>不是<code>alicatio/x-www-form-urlecoded</code>, <code>multiart/form-data</code>, 或<code>text/lai</code>。</li><li>添加了自定义header,例如<code>Toke</code>。</li></ol><><trog>跨域请求浏览器会在Header中添加<code>Origi</code>,通常情况下不允许用户修改其值。</trog> </>
<>正如Vue官方所说,SSR配置适合已经熟悉 Vue, weack 和 Node.j 开发的开发者阅读。请先移步 <a target="_lak" href="htt://r.vuej.org" title="" rel="exteral ofollow">r.vuej.org</a> 了解手工进行SSR配置的基本内容。 </><>从头搭建一个服务端渲染的应用是相当复杂的。如果您有SSR需求,对Weack及Koa不是很熟悉,请直接使用<a target="_lak" href="htt://uxt.com/" title="" rel="exteral ofollow">NUXT.j</a>。 </><>本文所述内容示例在 <code>Vue SSR Koa2 脚手架</code>:<a target="_lak" href="htt://githu.com/yi-ge/Vue-SSR-Koa2-Scaffold" title="htt://githu.com/yi-ge/Vue-SSR-Koa2-Scaffold" rel="exteral ofollow">htt://githu.com/yi-ge/Vue-SSR-Koa2-Scaffold </a> </><>我们以撰写本文时的最新版:Vue 2,Weack 4,Koa 2为例。</><><trog>特别说明</trog><r>此文描述的是API与WEB同在一个项目的情况下进行的配置,且API、SSR Server、Static均使用了同一个Koa示例,目的是阐述配置方法,所有的报错显示在一个终端,方便调试。 </>
<>涉及微信开发的技术人员总会面对一些“对接”工作,每当做好一个产品卖给对方的时候,都需要程序员介入进行一些配置。例如:</><ol><li><>使用“微信JS-SDK”的应用,我们需要添加微信公众号“JS接口安全域名”。</></li><li><>为了解决微信页面安全提示,我们需要添加微信公众号“业务域名”。</></li><li><>为了在小程序中使用WeView页面,我们需要添加微信小程序“业务域名”。</></li></ol><>以上三种情况都不是简单的将域名填入到微信管理后台,而是需要下载一个txt文件,保存到服务器根目录,能够被微信服务器直接访问,才能正常保存域名。 </><>如果只需要对接一个或几个应用,打开Ngix配置,如下添加:</><re><code cla="laguage-ruy">locatio /YGCSYilWJ.txt { default_tye text/html retur 200 #3978362e6cae6a33ec4609840e35399#39}</code></re><>假如有几十个甚至几百个项目需要接入?。 </><><trog>让我们花20分钟彻底解决这个问题。</trog> </><>进行域名泛解析:<code>*.ac.com</code> -gt 服务器,反向代理根目录下<code>.txt</code>结尾的请求。顺便配置一下通配符SSL证书(网上有免费版本)。</>
<>由于 MacOS Mojave 10.14 (18A391) 版本的 NVIDIA 显卡 WEB 驱动一直没有发布,其中缘由不能说。因此忙里抽闲用PHP迅速的搭建了一个监控平台,并做成多用户版本。 </><>系统每隔15会自动检测一次列表,如果发现有新版本发布,则会发送邮件及手机短信通知,方便广大N卡用户。 </><>访问地址:<a target="_lak" href="htt://driver.wyr.me" title="" rel="exteral">htt://driver.wyr.me</a>,填入邮箱或手机号即可。 </><>手机短信收取成本费0.5元人民币,源代码开源:<a target="_lak" href="htt://githu.com/yi-ge/mac-vidia-we-driver-otice" title="" rel="exteral ofollow">htt://githu.com/yi-ge/mac-vidia-we-driver-otice</a> </>
<>emem本文是针对PHP新手的Seio教程 —— 用户注册、登录、身份认证。以下代码均为伪代码。正式项目中需要修改完善强化其安全性。</>
<>emem今天上C#课时机子IP地址冲突,就百度了一下在线IP扫描一类的代码,整理了一下分享给大家。</><>这是个非常实用的小程序,可以用于多媒体教室查询在线机子数量、公司内网在线用户管理。当然,查询机房在线IP也可以实现。</>
<>emem由于PHP6中将默认以PDO方法连接数据库,而PDO方法优点很多,因此此文仅介绍PDO方法连接数据库进行操作。需要注意,从 PHP 5.1 开始附带了 PDO,在 PHP 5.0 中是作为一个 PECL 扩展使用,在生产环境中强烈建议升级到PHP5.4+版本。</><h5>PDO操作数据库的主要优点</h5><ul><li>支持多种数据库(只要提供正确的数据源,其它的数据库操作是一样的)。</li><li>开发效率更高,便于移植。</li><li>对事务处理支持更好,特别是事务回滚。</li><li>更为安全。</li></ul>
<>emem使用ASP.NET 5 MVC 6 编写 We API的代码和老版本的有很大区别。特别在连接数据库、图片上传下载等问题上非常难处理。主要原因是新版本中很多类的用法产生变更。</><>ememASP.NET 5 及 EF7(Etity Framework 7)可以跨平台的新特性使得Liux服务器更能大展身手。但随之而来的便是运维难度的加大和编程人员的“再学习”成本。</>
<>ememASP.NET 5 MVC 6 We API (C#)默认支持自动序化XML和JSON格式数据。然而自动序化的JSON数据在很多方面是存在问题的,比如部分符号和JSON字符串数组的问题。</><h3>输出符合JavaScrit标准的JSON字符串</h3><>emem目前比较适合正式生产场合的、不容易出现错误的解决方案是自行序化。尽管ASP.NET WEB API已经具备自动序化的能力,但序化出来的内容并不能完全符合JavaScrit规范,比如中文不能够很好的进行uicode转换,部分数值未以字符串方式输出(没有引号,或者变成了单引号)。为了避免出现结果差异,我们默认将所有数据都转换为字符串或字符串数组,再由JavaScrit自动将数据转换成对应的类型。</>
<>emem使用Node.j模拟一个Ngix/Aache静态文件服务器,可以直接运行HTML及JavaScrit、各类图片。具体代码请点击下方阅读全文。</>
<>emem在Uutu 14.04以上版本中安装搜狗输入法存在一些问题导致安装失败,这些问题主要是由依赖项和字体引起的。主要是fot-droid这个字体,非常坑。</><>emem首先从官网下载搜狗输入法 For Liux的de安装包。再<a href="htt://a.aidu.com//1miSwBa" target="_lak">点击此处</a>下载fot-droid字体de安装包(密码: 1r2e)。</>
<>emem像BCM4330 (AP6383)这样的Wifi/蓝牙一体化芯片常见于一些平板电脑、笔记本和mii c中。特别是z3735、z8300、core m这些芯片的平板电脑很常见。AP6210也比较常见,但目前暂未解决其驱动问题。</><>emem如何在搭载这样芯片的设备中安装Liux驱动呢?Uutu16.04版本的内核中仍然没有封装对应驱动(P:貌似Itel和Uutu合作,Itel NUC可以完美安装Uutu)。</>
<>emem如果在安装Bah o Uutu o Widow的时候没有以管理员方式运行“ah”命令,那么可能导致安装报“Failed to create hortcut to ah.exe”的错误。出现这个错误,说明Bah o Uutu o Widow的快捷方式没有被正确安装。此时会导致“开始-gtah”无法正常找到。</>
<>emem如果在制作Uutu To Go或安装Uutu出现“error: file #39/gru/i386-c/ormal.mod#39 ot foud”的报错,可以进入LiveCD模式进行引导的安装。 </><>emem插上U盘或CD,进入Try Uutu模式。</>
<h4>制作启动U盘启动盘</h4><>emem先找一个8G及以上大小的U盘。</><>emem下载并安装UltraISO,如图选择“打开”,选择安装镜像(本文使用Uutu 16.04)。</><>emem更多内容请点击下方阅读全文按钮。</>
<>emem制作Uutu To Go首先要下载好Uutu安装镜像,准备好一个用于安装Uutu系统的U盘。这个U盘不是所有U盘都可以的,我建议使用M.2 SSD + 硬盘盒,原因请看下面的速度测评。</><>emem更多内容请点击下方查看全文按钮浏览。</>
<>emem三个简单的JAVA练习题。</><ol><li>建立一个元素类型java.util.Date的线性表,并在表中加入3个日期对象。</li><li>定义一个代表人员的类Pero,含有三个数据成员(姓名,性别,年龄)。用TreeSetltPerogt存储三个对象。</li><li>产生0-99的随机数100个,去掉重复的,还有多少个相互不同的数?</li></ol>
<>emem如果安装uutu后启动报错:“Reoot ad Select roer Boot device or Iert Boot Media i elected Boot device”。(Uutu 16.04)解决方案:插上U盘或CD,进入Try Uutu模式。使用<code>udo fdik -l</code>查看你的Uutu安装在哪里。例如:/dev/da1,对应修改以下命令执行。<a tyle="color: #ff0000"><trog>注意</trog>:不要选择EFI分区!</a></><re><code>udo mout /dev/da1 /mtudo at-get udateudo at-get itall gru</code></re><>emem接下来修复引导:</><re><code>udo gru-itall /dev/da --root-directory=/mt</code></re>
<>emem利用Docker部署的服务器环境已经成为目前主流。为了实现高负载、易于拓展,我们采用Ngix作为反代,Redi记录访问日志。(主机服务器环境:CetOS7.3,2017年05月02日19:57:08更新)</><h3>1、安装并启动Docker</h3><h4>1. 设置仓库</h4><>emem在CetOS中设置Docker CE的仓库地址。</><re><code>udo yum itall -y yum-utiludo yum-cofig-maager \ --add-reo \ htt://dowload.docker.com/liux/ceto/docker-ce.reoudo yum makecache fat</code></re>
<>emem一不小心把今早刚刚买的EA6500 V2路由器刷砖了,心急了,提前断电?。ok,上TTL。</><>emem本文介绍了TTL刷机方法,请点击下方阅读全文浏览。</>
<>ememEA6500 V2的CPU发热严重,最高温度可达104°(如上图)。别说煮鸡蛋了,烧水都没问题了。给EA6500 V2/EA6700加装风扇我不是第一个,网友“啥都不会”早在14年10月就已经成功安装过了。</><>emem本文仅仅说明可以用5V风扇,而且可以控制是否启用。焊接点如下——USB电源接口。</>
<>emem使用Widow To Go的体验比Uutu To Go要好得多。特别是加密U盘/移动硬盘的功能很实用。然而无论是Widow To Go还是Uutu To Go都无法避免在新机子中移动使用需要安装驱动的问题。欣慰的是在Widow To Go中微软专门针对移动使用定制了部分功能,然而还是无法完美安装所有驱动。特别是在某些wi10平板中,几乎有数十个无法识别的驱动( 设备管理器中的感叹号)。怎么办呢?安装带网卡的驱动人生和驱动精灵?不,这个方法太Low了。</><>emem对于高手,驱动缺失的第一个反应是去官网找驱动,搜芯片型号。然而很多驱动你根本找不出来,特别是定制性的。这些驱动有个特点,就是驱动人生和驱动精灵也无法识别。</><>emem这里有一个小技巧,如果Widow To Go的目标主机和Widow To Go中安装的操作系统版本相近,位数相同,那么可以通过原有驱动直接安装。Widow10 To Go和Widow8 To Go均适用。</>
<>emem虽然Node.j6这个版本已经能够支持96%的ECMAScrit 2015 (ES6),但是仍然不支持imort。关于Node.j各个版本对ES6的支持可以浏览这个网站:<a target="_lak" href="htt://ode.gree/" title="" rel="exteral ofollow">htt://ode.gree/</a></><>ememNode.j 6 中可以启用ES6功能。在ode命令后面加上“--e_tagig”或“--harmoy”就好。</>