win10外接显示器频繁休眠

“win10外接显示器频繁休眠” win10外接显示器频繁休眠 https://blog.csdn.net/YHFZXF/article/details/103408021 参考链接https://baijiahao.baidu.com/s?id=1620654112845897421&wfr=spider&for=pc 最近笔记本外接显示器总是频繁休眠,网上找了很多方法都不管用,按照这个方法设置后好像有效果,为了以后方便自己忘记怎么设置了,就把链接中的方法备份到博客。 一、查看睡眠超时设置 进入"Windows设置 - 系统 - 电源和睡眠"查看,发现"电脑在经过以下时间后进入睡眠状态"设置即使是在使用电池时也长达30分钟的,更不用说插电时是 1 小时了。如图: 所以进入睡眠状态的超时设置是没有问题的。 二、更新/重装显卡驱动 打开设备管理器,打开显卡属性窗口,切换到"驱动程序"选项卡。如图: 但是无论是"更新驱动程序",还是"卸载设备"后重装安装显卡驱动 (甚至借助DDU彻底卸载了显卡驱动,并且尝试了多个版本的显卡驱动) ,结果问题依旧。 三、排除"屏幕保护程序"制造的假象 使用Win10任务栏搜索功能搜索"屏幕保护程序"打开"屏幕保护程序设置"窗口。如图: 因为如果"屏幕保护程序"等待时间设置过短,屏幕保护程序设置为"无",并且勾选了"在恢复时显示登录屏幕"的话。一旦Win10电脑闲置超时,就会触发屏幕保护程序,但又因为并没有设置屏保,所以会屏幕一闪直接进入系统登录界面,从而给人一种进入睡眠又旋即被唤醒的错觉。 四、问题根源在"无人参与系统睡眠超时"设置 在排除以上原因后,最终找到了问题的根源是在Windows电源选项的一个隐藏设置项"无人参与系统睡眠超时"上。 之所以说它是隐藏设置项,是因为需要修改注册表才能使该设置项显示出来。方法如下: 打开注册表编辑器,定位至: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 PS: 如何快速定位至注册表中某项鉴于修改注册表有风险,所以建议修改前备份注册表 (备份注册表的方法) ,或者创建系统还原点,以便出现问题时恢复。 在右侧窗格找到名为 Attributes 的 DWORD 值,双击该值打开编辑窗口。如图: 把数值数据由默认值 1 修改为 2 ,确定。 然后还进入"Windows设置 - 系统 - 电源和睡眠",点击"相关设置"下的"其他电源设置",这时会打开"控制面板\硬件和声音\电源选项"。如图: 点击当前电源计划右侧的"更改计划设置",会跳转到"控制面板\硬件和声音\电源选项\编辑计划设置"界面。如图: 点击"更改高级电源设置"即可打开"电源选项 - 高级设置"窗口。如图: 点击 + 号展开"睡眠",即可看到"无人参与系统睡眠超时"设置项,默认正是 2 分钟,由此可见,问题的根源就是在这里。 把它修改为一个较大的数值,起码不小于你在"Windows设置 - 系统 - 电源和睡眠"设置的睡眠超时时间即可。 至此问题解决!

2020-10-21 · 1 min · 61 words · -

typescript basic

“typescript basic” number <> string let n = Number('1234') String(page_number); 遍历Array 方法一,for…of 这个貌似是最常用的方法,angular 2中HTML语法绑定也是要的这种语法。 let someArray = [1, "string", false]; for (let entry of someArray) { console.log(entry); // 1, "string", false } 方法二,for循环 for循环其实是标准的C风格语法。 let someArray = [1, "string", false]; for (var i = 0; i < someArray.length; i ++) { console.log(someArray[i]); // 1, "string", false } 方法三, for…in 官方文档上强调了for…in和for…of的区别: let list = [4, 5, 6]; for (let i in list) { console.log(i); // "0", "1", "2", } for (let i of list) { console.log(i); // "4", "5", "6" } 方法三,forEach forEach其实是JavaScript的循环语法,TypeScript作为JavaScript的语法超集,当然默认也是支持的。 ...

2020-10-19 · 1 min · 175 words · -

光圈

“光圈” 「小光圈」(像f/11、f/16、f/22等),会造成以下的效果: 1.减少光线进入相机,这时就可以用较慢的快门时间,比如拍摄流水、车轨、星轨、光影涂鸦等都需要相对时间长的曝光; 2.让点光源变成散射状,即产生明显的星芒效果; 3.大景深效果,对焦主体以外的背景或前景都可以保持清晰。 大光圈(像f/1.4、f/1.8、f/2.8等等),会有以下效果: 1.在快门时间相同的情况下,光圈越大会使越多光线进入相机,从而令曝光增加,相片变亮,尤其是在光线比较暗的情况下大光圈很有用; 2.景深变浅: 这是大光圈一个很有用的用处-制造浅景深,让焦点中主体从虚化的背景中突显出来;

2020-10-18 · 1 min · 9 words · -

xterm

xterm http://www.hasdiffer.com/xterm-vs-terminal.html xterm 和终端都是运行 X Windows 系统的基于 UNIX 的系统通用的终端仿真器。终端仿真器基本上是一种终端应用程序,它允许用户访问最初开发的程序以与某些其他类型的终端进行通信。它只是复制了经典计算机终端的功能。终端仿真器通常由系统管理员使用,因为某些内置的命令行程序无法自行运行,因此使用第三方终端仿真器与系统进行通信。命令行通常是在Linux系统上运行的最佳方法,因为大多数任务在控制台上运行效果最佳。 Windows的内置终端仿真器是"命令提示符",而Mac OS X使用"终端"作为其终端仿真应用程序,该应用程序位于/ Application/Utilities。终端机是Linux用户最重要的应用程序之一,它为用户提供了对Shell的访问。终端是Linux真正威力的源泉。但是,Linux提供了每个GUI版本专有的许多终端仿真器。运行X Windows系统的Linux系统使用" xterm"作为它们的默认终端仿真器程序。尽管xterm似乎有点经典,但它仍然是X Windows System的默认终端,它仅基于文本原理。 什么是终端机?终端是一个命令行界面,它使用户可以以书面文字与人类相同的方式与计算机进行通信。 Linux的终端就像Windows的命令提示符。它是Linux最强大的功能之一,可为用户提供对命令行界面的访问权限。简而言之,Terminal是Linux桌面环境的默认终端仿真器。其他桌面环境(如Ubuntu)也将Terminal用作其默认的终端仿真器软件包。每个桌面环境都有不同的方法来访问终端。最简单的方法之一是在按住Ctrl + Alt + T的同时启动终端窗口。 什么是Xterm?XTerm是运行X Windows系统的Linux系统的默认终端仿真器程序。您只需在"终端"窗口中键入xterm并按Enter,它将与xterm窗口一起启动X11环境。但是,在GNOME桌面环境中,默认情况下未安装xterm。必须先安装并从另一个终端仿真器(例如Terminal)启动xterm。另外,您还可以创建自己的桌面启动器以打开xterm窗口。与终端不同,用户可以同时运行多个xterm实例。 xterm和Terminal的区别 基本Terminal和xterm都是终端仿真器程序,允许在图形环境中使用终端。这是GUI中的纯文本窗口,允许用户直接执行命令。这是Linux的默认终端仿真应用程序。但是,Linux提供了各种终端仿真器,其中之一是" xterm"。它是运行X Windows系统的Linux和UNIX系统的默认终端仿真器。这是用于轻量级发行的复杂终端。 进程管理用户可以在同一显示器上同时运行多个xterm实例,这意味着每个窗口对应一个单独的进程,每个窗口为运行它的shell或进程提供独立的输入和输出。另一方面,终端一次仅控制一个会话,这意味着控制终端与该会话具有一对一的关系,并且每个会话作为终端的子进程单独运行。记录会话的终端将成为该过程的控制终端。 剪贴板剪切的所有内容(⌘-X)和复制的内容(is-C)都存储在剪贴板中,当您使用粘贴(⌘-V)时,系统会进一步从剪贴板中读取它。选项不会自动放入终端。您复制的所选文本最初存储在一个名为"粘贴板"的地方。另一方面,XTerm仅使用剪贴板缓冲区复制和粘贴文本,但是默认配置中未使用它。默认情况下,Xterm仅支持PRIMARY缓冲区,该缓冲区仅在用户用鼠标突出显示文本并且在用户按下鼠标中键时将所选文本粘贴到同一窗口中时才接收输入。 访问在Linux系统中打开终端的最简单方法之一是同时按住Ctrl + Alt + T键的组合,终端窗口将打开。只能通过打开"终端"应用程序从"应用程序"文件夹中的"实用工具"文件夹访问它。也可以在Dash中查找Terminal,或为Launcher添加快捷方式。同时按Alt + F2并键入" gnome-terminal"也将打开"终端"窗口。但是,您只需在"终端"窗口中键入xterm,然后按Enter键即可启动X11环境以及xterm窗口。 总结尽管xterm和Terminal都是基于Linux和UNIX的系统的终端仿真器程序,但是xterm是运行X Windows System的系统的默认终端仿真应用程序。 终端是命令行界面,允许用户访问Shell。 它是Linux的心脏,也是系统管理员最常用的最强大功能之一,因为大多数内置命令行程序本身并不出色,并且它们需要第三方程序通过命令与系统进行交互。 Linux提供了各种终端仿真器,包括xterm,它是X Windows系统的默认终端仿真器。 本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。 转载请注明: 文章转载自 有区别网 [http://www.hasdiffer.com] 本文标题: Xterm和终端的区别 本文链接: http://www.hasdiffer.com/xterm-vs-terminal.html //更多关于【Xterm和终端的区别】请查看: http://www.hasdiffer.com/xterm-vs-terminal.html

2020-10-12 · 1 min · 57 words · -

piano basic

piano basic 连奏(Legato) 钢琴练习中什么是连奏? 连奏(Legato),也称连音,是音与音相衔接时,既没有一点空隙,也不互相重叠。因此,至少要有两个音依次出现,才有连奏的问题。 在乐谱上,用连线记号将需要连奏的音置于一个弧线之内。有的乐谱不画连线,只标上Legato。应当指出,相当多的乐谱或是没画上该画的连线,或是连线的位置、长短不准、不妥,这是初学者要注意的。 连奏,还有心理感受上的意义。要在感觉上连绵不断,仿佛后一个音就是从前一个音生长出来的,音音之间,“血脉”相连。 钢琴上两个相同的音如何连奏? 依据钢琴的发音原理,不用踏板时,两个相同的音事实上是连不起来的。有的乐曲,因为风格或音乐片断结构的关系,又不允许使用踏板,怎么办? (1)在意念里,想象中要把两个同音连起来。这种感觉和愿望会使弹奏者想方设法调整动作,弥补两个音的隔断。 (2)弹两个同音时,无论换指或不换指,都要手指几乎不离键,用柔软的腕部小幅度的上下动作带动手指(手指几乎不动)的方法弹出两个同音。 用这两个办法,就可以使事实上连不起来的两个同音,给人以连起来的感觉。 钢琴弹奏连音的基本要领是什么? (1)听觉要精细地监督,确实听清了两个音没有一丝缝隙、没有一毫重叠。这就要求后一个音弹下时.前一个音的手指要准时(不早也不晚)地离键。离键动作无须幅度很大,但却不可缺少。这一点必须给予一定的注意。 (2)连奏中,要运用重量转移的方法。通常,连奏的第一个音都是用“提起手、落下去”的方法弹出的。弹第二个音时,则要把第一个音“落下”时手指承受的重 量感,转移到第二个音上来。这个转移不是再落一次,而是通过弹第二个音的手指主动触键实现的。如果是两个音的连奏,这个过程已经完成,可把手提起来。如果 是若干个音的连奏,就依次逐个转移下去,直至连线的最后一音再提起手。 (3)所以,从整体综合动作看,无论连线多么短多么长,都是手部“落下——被提起”的一个过程。有时,数十上百的快速音符在一个连线之内,也要感觉到是在 第一个音上落下去,最后一音上抬起手的一个综合、整体动作,就好象是被串起来的一串珠子,提起第一个就能带出一串来一样。 Tempo Tempo 速度意大利文时间的意思,泛指乐曲演奏时的速度,常见的有:Largo(宽广的),Adagio(缓慢的),Moderato(中庸速度, 90 - 115 bpm),Andante(行板, 90 - 115 bpm),Allegro(欢乐的快板)和Presto(非常快)。 高音谱号 𝄞 高单谱号的位置是固定的, 高音谱号起点圆圈围绕第2线 https://zh.wikipedia.org/zh-cn/%E8%AD%9C%E8%99%9F 拍号 分子表示每小节中单位拍的数目,分母表示单位拍的音符时值,例如 3/4 拍即是以四分音符作为一拍的基准单位,且一个小节之内共有三拍。 表示3个4分音符 , 拍号的读法应该是拍数在前,单位在后, 按照语序读就是 三四拍 https://peking.bjd.com.cn/content/s65082f88e4b021d199f1f76b.html 音 物理现象 音乐: 指任何以声音组成的艺术 乐音 : 发音物体有规律地振动而产生的具有固定音高的音称乐音。 噪音 鼓: 噪音乐器 调式: 贝多芬 至爱丽丝 巴洛克时代 古典时代 woO : works out opus

2020-10-08 · 1 min · 65 words · -

RV basic, 房车, 拖挂房车

RV basic, 房车, 拖挂房车 https://campaddict.com/dispersed-camping/ Dispersed camping is camping in a national forest OUTSIDE of any improved campground or recreational area. Dry camping is simply camping without being hooked up to any utilities. Boondocking is camping in a remote location. It is always dry camping. 拖挂 hobby 大驰 森林河 后车的最大质量不能超过前车的整备质量 Hobby http://www.hobbyrv.com/c/ONTOUR.html 大驰 https://www.dachirv.com/h-pd-53.html

2020-10-08 · 1 min · 54 words · -

html basic

html basic button <button name="button0">button0</button> HTML Formatting Elements <b> - Bold text <strong> - Important text <i> - Italic text <em> - Emphasized text <mark> - Marked text <small> - Smaller text <del> - Deleted text <ins> - Inserted text <sub> - Subscript text <sup> - Superscript text - line break node type ELEMENT_NODE (元素节点):值为 1 ATTRIBUTE_NODE (属性节点):值为 2 TEXT_NODE (文本节点):值为 3 CDATA_SECTION_NODE (CDATA区段节点):值为 4 ENTITY_REFERENCE_NODE (实体引用节点):值为 5 (在HTML中不常见) ENTITY_NODE (实体节点):值为 6 (在HTML中不常见) PROCESSING_INSTRUCTION_NODE (处理指令节点):值为 7 COMMENT_NODE (注释节点):值为 8 DOCUMENT_NODE (文档节点):值为 9 DOCUMENT_TYPE_NODE (文档类型节点):值为 10 DOCUMENT_FRAGMENT_NODE (文档片段节点):值为 11 NOTATION_NODE (符号节点):值为 12 (在HTML中不常见)

2020-09-29 · 1 min · 92 words · -

promise

“promise” ECMAscript 6 原生提供了 Promise 对象。 Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息。 Promise 对象有以下两个特点: 对象的状态不受外界影响。Promise 对象代表一个异步操作,有三种状态: pending: 初始状态,不是成功或失败状态。 fulfilled: 意味着操作成功完成。 rejected: 意味着操作失败。 只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是 Promise 这个名字的由来,它的英语意思就是「承诺」,表示其他手段无法改变。 一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise 对象的状态改变,只有两种可能: 从 Pending 变为 Resolved 和从 Pending 变为 Rejected。只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果。就算改变已经发生了,你再对 Promise 对象添加回调函数,也会立即得到这个结果。这与事件 (Event) 完全不同,事件的特点是,如果你错过了它,再去监听,是得不到结果的。 Promise 优缺点 有了 Promise 对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise 对象提供统一的接口,使得控制异步操作更加容易。 Promise 也有一些缺点。首先,无法取消 Promise,一旦新建它就会立即执行,无法中途取消。其次,如果不设置回调函数,Promise 内部抛出的错误,不会反应到外部。第三,当处于 Pending 状态时,无法得知目前进展到哪一个阶段 (刚刚开始还是即将完成) 。 https://www.liaoxuefeng.com/wiki/1022910821149312/1023024413276544 https://www.runoob.com/w3cnote/javascript-promise-object.html <!DOCTYPE html> <html> <head> <script type="text/javascript"> console.log('javascript0') function resolve(str) { console.log('resolve.' + str) } function reject(str) { console.log('reject.' + str) } function fun0() { console.log('fun0 start') //test(resolve, reject) new Promise(test).then(function (result) { console.log('成功: ' + result); }, function (result) { console.log('成功1: ' + result); }).catch(function (reason) { console.log('失败: ' + reason); }); } function log(str) { console.log(str) } function callback() { console.log('Done'); } function test(resolveParams, rejectParams) { var timeOut = Math.random() * 2; log('set timeout to: ' + timeOut + ' seconds.'); setTimeout(function () { if (timeOut < 1) { log('call resolve()...'); resolveParams('200 OK'); } else { log('call reject()...'); rejectParams('timeout in ' + timeOut + ' seconds.'); } }, timeOut * 1000); } </script> </head> <body> body0 <button name="btn0" onclick="fun0()">button0</button> </body> </html> https://www.cnkirito.moe/future-and-promise/

2020-09-29 · 1 min · 174 words · -

Service Worker

“Service Worker” Service Worker 是浏览器在后台独立于网页运行的脚本 Service workers 本质上充当 Web 应用程序、浏览器与网络 (可用时) 之间的代理服务器。这个 API 旨在创建有效的离线体验,它会拦截网络请求并根据网络是否可用采取来适当的动作、更新来自服务器的的资源。它还提供入口以推送通知和访问后台同步 API。 推送消息,背景后台同步geofencing (地理围栏定位) 它是一种 JavaScript Worker,无法直接访问 DOM。 Service Worker 通过响应 postMessage 接口发送的消息来与其控制的页面通信,页面可在必要时对 DOM 执行操作。 Service Worker 是一种可编程网络代理,让您能够控制页面所发送网络请求的处理方式。 Service Worker 在不用时会被中止,并在下次有需要时重启,因此,您不能依赖 Service Worker onfetch 和 onmessage 处理程序中的全局状态。 如果存在您需要持续保存并在重启后加以重用的信息,Service Worker 可以访问 IndexedDB API。 Service Worker 广泛地利用了 promise,因此如果您不熟悉 promise,则应停下阅读此内容,看一看 Promise 简介。 Service Worker 是一个浏览器中的进程而不是浏览器内核下的线程,因此它在被注册安装之后,能够被在多个页面中使用,也不会因为页面的关闭而被销毁。因此,Service Worker 很适合被用与多个页面需要使用的复杂数据的计算 chrome # 检查是否已经启用service workers chrome://inspect/#service-workers chrome://serviceworker-internals https://juejin.im/post/6844903613270081543

2020-09-29 · 1 min · 64 words · -

n1 coreelec

“n1 coreelec” 从官网下载最新版本的coreelec, CoreELEC-Amlogic.arm-9.2.4.2-Generic.img.gz https://coreelec.org/ 用7z 解压 CoreELEC-Amlogic.arm-9.2.4.2-Generic.img.gz, 得到 CoreELEC-Amlogic.arm-9.2.4.2-Generic.img 用Win32DiskImager.exe将CoreELEC-Amlogic.arm-9.2.4.2-Generic.img写入U盘 替换文件 运行N1降级工具,选择3 进入线刷模式 在提示插入usb线时,插入u盘 , 进入 U盘上的 coreelec系统, 开启ssh支持 ssh 登录 coreelec, 执行以下命令将coreelec写入emmc /flash/installtoemmc

2020-09-11 · 1 min · 25 words · -

windows install

“windows install” WoeUSB, linux 制作 windows 安装盘 WoeUSB 是一款主要用于在 Linux 下制作 Windows 启动 U 盘的开源软件 run woeusb gui woeusbgui wsl2 https://docs.microsoft.com/en-us/windows/wsl/install-win10 https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel hyper v https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

2020-09-07 · 1 min · 30 words · -

bt, pt

“bt, pt” PT(PrivateTracker)下载其实也是BT下载的 一种,和BT下载有两个最明显的不同,即私密范围下载和流量统计。BT下载时,BT客户端首先解析.torrent种子文件得到Tracker地址,然后 连接Tracker服务器,Tracker服务器回应下载者的请求,提供其他下载者 (包括发布者) 的IP,下载者再连接其他下载者。根据.torrent文件,两者分别向对方告知自己已经有的块 (数据) ,然后交换对方没有的数据,此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。Tracker是BT下载的一个重要组成部分,用于记录上下载用户的互联信息,而PT下载和BT下载的区别是PT下载的Tracker是私有的,BT下载的Tracker则是公开的。BT种子即是一种信息文件,把一个大文件分成若干个4M小文件进行传输,这样用户可以方便的交换文件的各个部分,也可以同时通过多个IP/TCP连接进行多线路的高速下载。 PT下载是一种小范围的BT下载,通过禁用DHT有要求地选择并控制用户数量。这样,在有限的范围内,下载的用户基本上都可以达到自己带宽的上线。PT下载还通过论坛制度的约束机制将BT的设计理念现实化,真正让用户做到下载的过程中努力上传。因此,PT下载的速度很快,能够让用户带宽得到最大程度的使用,而且种子时效更长。当然,这取决于种子的数量和质量,而种子的数量和质量BT和PT是没有区别的。 有些人会说,PT既然是小范围内的活动,如何做到的呢?首先,划分范围最好的方式就是论坛,新会员必须通过前期的会员邀请才可以加入,邀请注册机制有效的控制了下载人数,其次是通过passkey,登陆论坛后,系统会给该帐户用户分配一个固定的passkey,用户下载的种子中,会包passkey的信息,若没有passkey的认证通过,即便其他用户得到了种子,也不能进行下载。第三,PT下载软件使用的是可以计算下载上传流量的BT下载软件,例如Azureus,uTorrent,Transmission等,这类软件下载前,首先要检测用户的passkey,通过后再和种子的passkey进行对比,然后才可以下载。第四,通过流量统计控制,PT下载的约束机制就是流量统计,必须保证一定的上传量才能下载,如果界定流量,会不会泄露个人信息呢?流量统计实际是通过软件访问Tracker服务器发送自己的passkey和上传下载信息,并通过PT网站的种子追踪器,最后来判断用户的流量。界定用户流量仅仅是通过uTorrent等软件中的专用PHP程序,所以并不会泄露用户的其他隐私信息,完整的PT下载是通过passkey+Tracker服务器两种手段实现,两者缺一不可。 PT通过对做种时间和流量的要求在一定程度上避免了BT中存在的下完不做种的现象,因此在网络上,尤其是需要大文件 (如高清) 资源交换的时候广受欢迎, 在PT站里,“水管"代表上传带宽的大小,大水管可以通过快速的上传获得积分和流量,PT站点也会采取措施 (比如做种时间,优惠等) 使上传较慢的小水管能够参与贡献和共享资源。

2020-09-06 · 1 min · 17 words · -

Mailpit

Mailpit Mailpit - email testing for developers sudo bash < <(curl -sL https://raw.githubusercontent.com/axllent/mailpit/develop/install.sh) # 启动 mailpit, -h for help ./mailpit. mailpit -h docker docker run -d \ --restart unless-stopped \ --name=mailpit \ -p 8025:8025 \ -p 1025:1025 \ axllent/mailpit:v1.13 mailpit sendmail 准备一个文本文件 Date: Mon, 23 Jun 2015 11:40:36 -0400 From: user0 <user0@wiloon.com> To: user1 <user1@wiloon.com> Subject: subject0 body0 发送邮件 mailpit sendmail < foo.txt 在浏览器里查看邮件 http://localhost:8025

2020-09-01 · 1 min · 65 words · -

fork

“fork” 一个进程,包括代码、数据和分配给进程的资源。fork() 函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork() 函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。 我们来看一个例子: /* * fork_test.c * version 1 * Created on: 2010-5-29 * Author: wangth */ #include <unistd.h> #include <stdio.h> int main () { pid_t fpid; //fpid表示fork函数返回的值 int count=0; fpid=fork(); if (fpid < 0) printf("error in fork!"); else if (fpid == 0) { printf("i am the child process, my process id is %d/n",getpid()); printf("我是爹的儿子/n");//对某些人来说中文看着更直白。 count++; } else { printf("i am the parent process, my process id is %d/n",getpid()); printf("我是孩子他爹/n"); count++; } printf("统计结果是: %d/n",count); return 0; } 运行结果是: i am the child process, my process id is 5574 我是爹的儿子 统计结果是: 1 i am the parent process, my process id is 5573 我是孩子他爹 统计结果是: 1 在语句fpid=fork()之前,只有一个进程在执行这段代码,但在这条语句之后,就变成两个进程在执行了,这两个进程的几乎完全相同,将要执行的下一条语句都是if(fpid<0)…… 为什么两个进程的fpid不同呢,这与fork函数的特性有关。fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值: 1) 在父进程中,fork返回新创建子进程的进程ID; 2) 在子进程中,fork返回0; 3) 如果出现错误,fork返回一个负值; ...

2020-08-28 · 2 min · 387 words · -

brctl

“brctl” brctl brctl is deprecated use bridge command from iproute2 insted https://wiki.archlinux.org/index.php/Network_bridge 查询网桥信息 brctl show pacman -S bridge-utils apt-get install bridge-utils # 查看网桥 brctl show

2020-08-09 · 1 min · 25 words · -

软路由, docker

“软路由, docker” docker network create -d macvlan \ --subnet=192.168.50.0/24 --gateway=192.168.50.1 \ -o parent=enp1s0 \ -o macvlan_mode=bridge \ macvlan docker network create -d macvlan \ --subnet=192.168.254.0/24 --gateway=192.168.254.1 \ --ipv6 --subnet=fe81::/16 --gateway=fe81::1 \ -o parent=enp1s0 \ -o macvlan_mode=bridge \ dMACvWAN 导入镜像 docker import openwrt-19.07.2-x86-64-generic-rootfs.tar.gz openwrt:17.07.2 docker run docker run -d \ --network macvlan \ --privileged \ --name openwrt \ openwrt:17.07.2 \ /sbin/init

2020-08-03 · 1 min · 60 words · -

vlan

“vlan” vlan范围: 0~4095 0,4095 保留 仅限系统使用 用户不能查看和使用这些VLAN 1 默认 VLAN 用户能够使用该 VLAN,但不能删除它 2-1001 正常 用于以太网的 VLAN 用户可以创建、使用和删除这些VLAN 1002-1005 正常 用于 FDDI 和令牌环的, VLAN 用户不能删除这些 VLAN 1006-1024 保留 仅限系统使用 用户不能查看和使用这些VLAN 1025-4094 扩展 仅用于以太网VLAN Tagged 数据帧 Tagged数据帧 Untagged数据帧 Untagged数据帧 in out in out Tagged端口 原样接收 原样发送 按端口PVID打TAG标记 按照PVID打TAG标记 Untagged端口 丢弃 去掉TAG标记 按端口PVID打TAG标记 原样发送 2 、所谓的Untagged Port和tagged Port不是讲述物理端口的状态,而是将是物理端口所拥有的某一个VID的状态,所以一个物理端口可以在某一个VID上是Untagged Port,在另一个VID上是tagged Port; 3 、一个物理端口只能拥有一个PVID,当一个物理端口拥有了一个PVID的时候,必定会拥有和PVID的TAG等同的VID,而且在这个VID上,这个物理端口必定是Untagged Port; 4. PVID的作用只是在交换机从外部接受到可以接受Untagged 数据帧的时候给数据帧添加TAG标记用的,在交换机内部转发数据的时候PVID不起任何作用; 5. 拥有和TAG标记一致的VID的物理端口,不论是否在这个VID上是Untagged Port或者tagged Port,都可以接受来自交换机内部的标记了这个TAG标记的tagged 数据帧; 6. 拥有和TAG标记一致的VID的物理端口,只有在这个VID上是tagged Port,才可以接受来自交换机外部的标记了这个TAG标记的tagged 数据帧; ...

2020-08-02 · 1 min · 73 words · -

pppoe

“pppoe” PPP: Point-to-Point Protocol,链路层协议。用户实现点对点的通讯。 PPPoE的工作过程分成两个阶段,即发现阶段(Discorvery)和PPP会话阶段。 发现阶段(Discovery Stage)的具体过程如下: 用户主机用广播的方式发出PADI (PPPOE Active Discovery Initiatio) 包,准备去获得所有可连接的接入设备 (获得其MAC地址) ; 接入设备收到PADI包后,返回PADO (PPPOE Active Discovery Offer) 作为回应; 用户主机从收到的多个PADO包中,根据其名称类型名或者服务名,选择一个合适的接入设备,然后发送PADR (PPPOE Active Discovery Request) 包,另外如果一个用户主机在发出PADI后在规定时间内没有收到PADO,则会重发PADI; 接入设备收到PADR包后,返回PAS (PPPOE Active Discovery Session-confirmation) 包,其中包含了一个唯一session ID,双方进入PPP会话阶段。 PPP会话阶段,即在session建立后的通讯阶段。 另外,无论是用户主机还是接入设备可随时发起PADT包,中止通讯。 与PPPoE相对应的获得地址和认证的是DHCP,但普通家庭用户很少直接使用DHCP方式接入互联网 (这里说的DHCP不是自家路由器上的DHCP,而是互联网运营商的DHCP) 。PPPoE和DHCP的区别是: 前者需要身份验证才能上网,后者什么都不需要,直接接上网线即可。当然了,具体获得IP地址的方式还有很多。 PPP协议介绍 PPP 点对点协议(Point to Point Protocol)属于二层协议,隧道协议的一种。为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP/IP中它是一种用来同步调制连接的数据链路层协议 (OSI 模式中的第二层) ,替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换 (IPX) 。 为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。 PPP协议主要包括三部分: LCP (Link Control Protocol) 链路控制协议、NCP (Network Control Protocol) 网络控制协议和PPP的扩展协议 (如Multilink Protocol) ,比如认证协议,最常用的包括口令验证协议PAP (Password Authentication Protocol) 和挑战握手验证协议CHAP (Challenge-Handshake Authentication Protocol) 。 ...

2020-08-02 · 2 min · 294 words · -

RESTful api

“RESTful api” http://www.ruanyifeng.com/blog/2014/05/restful_api.html 路径 (Endpoint) 路径又称"终点" (endpoint) ,表示API的具体网址。 在RESTful架构中,每个网址代表一种资源 (resource) ,所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合" (collection) ,所以API中的名词也应该使用复数。 举例来说,有一个API提供动物园 (zoo) 的信息,还包括各种动物和雇员的信息,则它的路径应该设计成下面这样。 https://api.example.com/v1/zoos https://api.example.com/v1/animals https://api.example.com/v1/employees HTTP动词 对于资源的具体操作类型,由HTTP动词表示。 常用的HTTP动词有下面五个 (括号里是对应的SQL命令) 。 GET (SELECT) : 从服务器取出资源 (一项或多项) 。 POST (CREATE) : 在服务器新建一个资源。 PUT (UPDATE) : 在服务器更新资源 (客户端提供改变后的完整资源) 。 PATCH (UPDATE) : 在服务器更新资源 (客户端提供改变的属性) 。 DELETE (DELETE) : 从服务器删除资源。 还有两个不常用的HTTP动词。 HEAD: 获取资源的元数据。 OPTIONS: 获取信息,关于资源的哪些属性是客户端可以改变的。 参数命名规范 query parameter可以采用驼峰命名法,也可以采用下划线命名的方式,推荐采用下划线命名的方式,据说后者比前者的识别度要高,其中,做前端开发基本都后后者,而做服务器接口开发基本用前者。 http://example.com/api/users/today_login 获取今天登陆的用户 http://example.com/api/users/today_login&sort=login_desc 获取今天登陆的用户、登陆时间降序排列 REST API规范 编写REST API,实际上就是编写处理HTTP请求的async函数,不过,REST请求和普通的HTTP请求有几个特殊的地方: REST请求仍然是标准的HTTP请求,但是,除了GET请求外,POST、PUT等请求的body是JSON数据格式,请求的Content-Type为application/json; REST响应返回的结果是JSON数据格式,因此,响应的Content-Type也是application/json。 REST规范定义了资源的通用访问格式,虽然它不是一个强制要求,但遵守该规范可以让人易于理解。 https://www.liaoxuefeng.com/wiki/1022910821149312/1105003357927328 https://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html

2020-07-22 · 1 min · 71 words · -

摄影

“摄影” 曝光三要素 对于新人来说,最基本的知识就是曝光三要素: 光圈、快门、感光度。这是最重要的三个元素,利用这三个元素的不同组合,控制正常的曝光。 光圈, Aperture 光圈越大,通光量就越多,光圈越小,通光量就越少。 光圈值 光圈值用字母F 或f表示,常见的光圈有F1.4,F2.0,F2.8,F4.0,F5.6,F8.0,F11,F16,F22,F32,F36. 数值越小表示光圈越大。 光圈是用来控制镜头孔径大小的部件, 我们可以把光圈比作水龙头,水龙头开的越大,水流的就越多。光圈也是如此,光圈开的越大,进光量就越多。拍出的照片就会更加明亮。光圈通常用字母"F"来表示,F越大,光圈越小。例如: F1.8>F11。 光圈对背景虚化的影响 光圈是控制景深的重要因素,那些喜欢拍背景虚化的照片可要注意了。光圈越大,景深越浅,背景虚化越明显。光圈越小,景深越深,背景虚化程度越小。 光圈对画面亮度的影响 其它曝光值不变 (快门,ISO) 的情况下,光圈越大,画面越明亮,光圈越小,画面越暗,甚至看不清东西。当然平时拍摄很少故意把画面调到非常亮或者非常暗这么极端,这样测试可以更好的理解光圈对曝光的影响。 小光圈的作用 大光圈固然有很多好处,但并非越大越好。在拍摄大场景的风光时,使用F8,F11等较小的光圈能表现出更优秀画质和更好的画面细节。使用F16或者更小的光圈,拍摄光源 (如太阳) 会呈现出星芒效果,非常漂亮。星芒的形状取决于镜头光圈的叶片数量和形状。 快门 它是控制相机进光量的快慢,在同样的光圈和感光度下,快门速度的时间越长,那么进光量就越多,照片就越亮。我们还可以把它比作水龙头,当水龙头开的时间越长,那么流出的水越多,也就是说进光量越多。在此提醒一下大家,照片的快门速度越慢,手持相机不稳,容易抖动,造成照片模糊。 快门值 以秒为单位,入门微单一般1/4000s到30s之间。已经可以满足绝大部分拍摄题材。在快门优先和手动曝光拍摄模式下可以手动调节快门。 安全快门 简单来说,是指在手持相机情况下拍摄不容易出现照片模糊的快门时间,低于这个时间则可能容易模糊。通常全画幅相机的安全快门值为1/焦距,APS-C为1/(1.5X焦距)。 例如: 使用50mm的镜头焦距APS-C的 a6000安全快门时间为 1/75s,全画幅的a7系列为1/50s。 平常拍摄并不一定要按快门时间来,现在的很多相机或者镜头都有防抖功能,大大降低了安全快门的时间,手持相机带来的抖动也因人而异,平常多练习也可以降低安全快门的时间。 高速快门与慢快门的作用 快门记录拍摄对象的瞬间,慢门记录拍摄对象的过程。相对而言,慢门的玩法更多,比如流云,光绘,平滑效果等。 感光度 (ISO) 感光度是控制照片明暗的,它与光圈和快门的原理不同,快门和光圈都是控制进光量的,而感光度是提升相机感光元件灵敏度的。简单来说: 感光度越低,照片越暗;感光度越高,照片越亮。随着感光度的提升,照片的噪点也会越多,画质就会有所下降。在白天阳光好的时候拍摄照片,感光度100-200就够用,黑暗的条件下,为了得到正确的曝光,提升感光度也是可以的,唯一的缺点就是会损失一定的画质 Av档 光圈优先档,在此模式下,调节光圈的大小,在拍摄时,快门时间根据现场环境自动调节,保证拍出曝光正常的照片。这种模式有什么好处呢?通过控制光圈大小来控制景深,在拍摄的时候不需要考虑快门速度了,相机会根据现场的情况自动设定好快门速度,从而得到正确的曝光。尤其是在弱光条件下拍摄,使用低快门会导致画面的抖动而模糊,这时候保证光圈的大小不变,调整好感光度,从而提高快门速度。 Tv档 快门优先模式,在此模式下,调节快门速度的快慢,拍摄时,光圈大小根据现场环境自动调节,以保证拍出曝光正常的照片。Tv档比较适合拍摄运动的物体,尤其是快速奔跑的物体,快门速度如果过慢,就容易导致画面模糊,高速快门则可以让画面更清晰。同时,快门优先模式还可以拍摄夜间的车流,利用较慢的快门速度,拍出轨迹。 M档 手动模式,在这种模式下,光圈、快门、感光度都需要自己根据现场情况手动调节。手动模式对于新手很难操作,新手不仅要对现场的环境光线情况作出合理的判断,还要合理的调节好各项参数。相对新手而言,要不断的练习,慢慢的积累,才能熟练运用M档。 测光 首先解释一下什么是测光。测光是检测相机进光量的多少,物体反射的光进入到相机中,相机会根据光线的明暗情况,对物体进行曝光。我们的人眼可以对物体的明暗程度进行判断,从而调节进光量,但相机却不能,所以相机在拍摄物体时需要测光。 测光分为: 平均测光、 点测光、 中央重点测光、 局部测光。 平均测光 它是将取景画面分成不同的几块、分别对各部分进行测光,最后取平均值,相机根据这个平均值来进行曝光。 点测光 它是只对取景画面中的一小部分进行测光,相机会根据这一小块区域的亮度进行对照片进行曝光。点测光比较适用于光线明暗对比大的场景,比如日出、日落。 中央重点测光 它是对取景画面的中央60%,四周40%进行测光,这种测光模式可以保证你拍出的照片不会过亮或是过暗。 局部测光 它是以取景画面某一局部进行测光,主要是以取景框中心的一个圆圈中的光线来进行测光。利用局部测光你可以更好的掌握照片的明暗。 白平衡 白平衡是相机中用来平衡光线色彩偏移的功能,能够帮助相机在不同的光线或者色温下,还原被拍摄物体最真实的颜色,也就是矫正色差。想正确的调节白平衡,我们还要知道与白平衡对应的色温,色温是指光线色调的指标,它的单位是K。色温越高,光的颜色越蓝;色温越低,光的颜色越黄;白平衡值越高,对蓝光的平衡能力越强,画面会变得越黄。我们可以根据这个原来来调节白平衡的数值。相机上也自带了很多种白平衡模式: 自动、白炽灯、荧光灯等等。这些模式可以满足大部分拍摄需求 曝光补偿曝光补偿可以控制照片的明暗,在拍摄照片的时候总会遇到过曝或者欠曝的时候,这时候就可以利用曝光补偿来进行修正。曝光补偿向左调,照片会变暗,向右调,照片会变亮。在拍摄雪景的时候,曝光补偿就经常被用到,对于白色的雪,相机测光的时候仅仅接收18%的光线,所以我们拍摄的照片并不是纯白的,而是灰色的,这时候就要增加一点曝光补偿,让雪的颜色看起来更白。 在B站学摄影 左手plus Sony A6000 入门 http://www.sonystyle.com.cn/products/nex/ilce_6000.htm ...

2020-07-19 · 1 min · 135 words · -