船
生死一同游,船尾隔船头。笑骂皆听见,四手分两头。
生死一同游,船尾隔船头。笑骂皆听见,四手分两头。
人类很容易把手段当成目标,从而忘记了本来的目标. 毛爷爷说这个就叫"教条化".
我发现很多宗教的问题, 甚至包括宗教本身就是这么产生的."教条化"这个词确实很形象.
孔夫子提出"礼",是针对东周末年朝纲崩坏, 诸侯甚至乱用天子之礼的问题, 目的是为了回复秩序. 而后来孔夫子的话就被当成圣旨不可违抗, 然后就变成了儒教.
同样老子为解释天地万物写了道德经, 里面少不了用一些象征比喻, 因为"道可道非常道", 本来就不好解释清楚嘛. 然后后人看不懂的比喻就强行解释, 或者强制解释为表面意思, 或者胡乱引申为其他意思. 有的是蠢, 有的是坏. 这就有了道教.
同理见其他宗教. 道教的三峰派, 印度教的性力派, 藏传佛教的密宗灌顶, 多多少少都把性从手段变成了目标.
而要是考量基督教,伊斯兰教和佛教的起源, 更都是将先贤的话教条化产生的宗教.
原始的目标只在一定的环境下存在. 教条化就是不顾原始目标,甚至不知道原始目标, 却一定要将手段实现.
甚至现在的企业管理也存在这样的问题. 比如马云的996是福报论. 996作为手段对于马云的目标来说确实是福报, 然而对于码农来说996变成了目标就不见得是福报了, 除非他和马云目标一致.
https://circuitdigest.com/microcontroller-projects/arduino-freertos-tutorial1-creating-freertos-task-to-blink-led-in-arduino-uno
原本还在纠结8266开发到底是用arduino还是rtos现在就不用纠结了, 直接arduino
ACER进入普通BIOS是F2,然而很多选项看不到.
参考这篇文章: https://blog.csdn.net/zhuzhuxiazst/article/details/116143900
1 当前很多的PC厂商发布的计算机产品,在开机进入BIOS时,一般默认都隐藏了Advanced菜单,防止用户误操作导致笔记本的异常,用户无法直接调整advanced设置,比如更改SATA mode (IDE/AHCI),CPU,GPU,FAN等的设置.
2 一些厂商发布的BIOS的advanced 菜单可以通过进入bios后,使用组合键后重启再次进入bios或者直接使用组合键在bios中来开启.
A LZ自己实测的一款笔记本通过组合键进入了bios advanced菜单.
笔记本: Acer TravelMate P246 系列。 BIOS: InsydeH20 V5.0.
开启advanced菜单的方式:
1) 按电源键后 按F2 进入bios页面.
2) 按住 Fn键,然后依次按 Tab键,asdfgho 字母键,松开Fn键,然后F10保存BIOS设置并重启(注意本处一定不能在F10重启时按电源键关闭电源,然后再开机).
3) 按电源键 后按F2再次进入bios页面,便能看到advanced菜单(进入后LZ还是未能看到有更改sata controller模式的菜单,比较可惜)。(再次重启bios后,高级菜单会再次隐藏,需要再次循环以上操作来调出高级菜单.) 运行“资源监视器”或者perfmon /res
遥遥归途逢国庆,
工业限电停灯笼。
暮光长照红旗静,
思心念家急车行。
寅睡难眠母窸窣,
辰闹儿女父叹息。
浪里归湾湾不静,
树欲停而风不停。
七十二年又华诞,
甲子地支各一轮。
茹苦含辛终渐老,
忠孝未尽愧吾心。
碌碌人生是所愿,
空空苟活非所殷。
平平淡淡侬常在,
来年新月复照人。
The Golden Hour – When Sunlight Turns Magical
黄金一小时是摄影的概念,指的太阳与地平线呈6度以内的角度时, 光色为金色.
eletron 12版本以后默认开启了上下文隔离
webPreferences: {
contextIsolation: true,
}
上下文隔离后, 内存变成了不一样的区域, 通过桥接函数contextBridge.exposeInMainWorld从preload转移过去的都是复制的内容, 桥接过去的obj也是复制的, 在render中修改并不会影响preload. 甚至ipcRender也不能直接桥接过去, .on会丢失.
可是renderer中最重要的就是ipc消息交互了. ipcRenderer.on用不了要如何监听ipcMain发过来的消息?
Eletron官方文档中居然都没有写如何桥接.on,只写了.send和.invoke
参考这个回答吧: https://stackoverflow.com/questions/59993468/electron-contextbridge
两个人给出了两种方式:都是preload.js
第一种:
const {
contextBridge,
ipcRenderer
} = require("electron");
// Expose protected methods that allow the renderer process to use
// the ipcRenderer without exposing the entire object
contextBridge.exposeInMainWorld(
"api", {
send: (channel, data) => {
// whitelist channels
let validChannels = ["toMain"];
if (validChannels.includes(channel)) {
ipcRenderer.send(channel, data);
}
},
receive: (channel, func) => {
let validChannels = ["fromMain"];
if (validChannels.includes(channel)) {
// Deliberately strip event as it includes `sender`
ipcRenderer.on(channel, (event, ...args) => func(...args));
}
}
}
);
第二种:
const { ipcRenderer, contextBridge } = require('electron')
const validChannels = ["toMain", "myRenderChannel"];
contextBridge.exposeInMainWorld(
"api", {
send: (channel, data) => {
if (validChannels.includes(channel)) {
ipcRenderer.send(channel, data);
}
},
on: (channel, callback) => {
if (validChannels.includes(channel)) {
// Filtering the event param from ipcRenderer
const newCallback = (_, data) => callback(data);
ipcRenderer.on(channel, newCallback);
}
},
once: (channel, callback) => {
if (validChannels.includes(channel)) {
const newCallback = (_, data) => callback(data);
ipcRenderer.once(channel, newCallback);
}
},
removeListener: (channel, callback) => {
if (validChannels.includes(channel)) {
ipcRenderer.removeListener(channel, callback);
}
},
removeAllListeners: (channel) => {
if (validChannels.includes(channel)) {
ipcRenderer.removeAllListeners(channel)
}
},
}
); <script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.0-beta.7/vue.global.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.0-beta.7/vue.global.min.js"></script>
var ready = function ( fn ) {
// Sanity check
if ( typeof fn !== 'function' ) return;
// If document is already loaded, run method
if ( document.readyState === 'complete' ) {
return fn();
}
// Otherwise, wait until document is loaded
document.addEventListener( 'DOMContentLoaded', fn, false );
};
<div id="app" class="app" v-cloak>{{counter}}</div>
[v-cloak]{
display: none!important;
} node上还是使用xmlbuilder2, 支持两者的互转.
https://www.bilibili.com/read/cv7568289/
输入section命令, 选择要剖的物体, 再画一条剖线, 就会生成2D曲线, 不要乱点击, 直接将2D曲线移动出来即可.
将视图调整为截平面, 画一个截平面, 然后就能直接看到剖面.
https://www.bilibili.com/read/cv6183523/
做法:
TechDraw工具组插入默认页, 会插入一个新的2D绘图页. 并且视图Tab页和组合浏览器->模型中会增加一个Page插入视图,将插入2D视图到2D图纸.组合浏览器中的数据属性, 将Coarse View设置为True, 选择Rotation旋转调整角度, 选择数据属性, 将Line Width设置为0.1mm.Windows上安装TortoiseGit后,已经commit的文件会打√, 未加入版本管理的文件会打?, 有修改的文件或者文件夹会打!, 刚刚加入文件管理,但还没有commit的会打+.
如果对项目进行commit时, tortoiseGit发现不了任何的新的修改,然而项目目录上就是有个!, 跟着!一路进入会找到若干个文件上打着?,但这些文件明明已经commit并且也没有任何修改,这时候一般是这几个文件的文件名大小写改变导致的.
登录git的WEB服务器端查看这几个文件名与本地的异同, 将本地文件名大小写改为与服务器一致就可以解决,文件将恢复√状态.