Shell 脚本和编程
介绍
Shell 脚本是一种用Shell脚本语言编写的程序,它可以在 UNIX 或类 UNIX 操作系统上运行。Shell 脚本通常用于自动化任务、管理系统和编写小型应用程序。Shell 脚本可以完成许多任务,例如文件操作、进程管理、网络管理、系统配置等。
Shell 脚本语言基于命令行界面,它使用 Shell 解释器(例如 Bash)解释 Shell 脚本语言。
Shell 脚本语言的语法非常简单,可以包含各种命令和操作,例如条件语句、循环语句、函数、变量和输入/输出操作等,易于学习和使用。
学习 shell 的价值
Linux 服务器的基本操作和管理。
前端 node.is 服务的进程管理、问题排查、资源监控等运维操作。
使用 shell 编写 TCE、SCM、Docker 脚本,完成服务编译和部署。
概念物理终端 => 软件终端 tty => 终端模拟器 => Shell
终端:获取用户输入,展示运算结果的硬件设备。
tty:teletypeWriter 的简称,和终端等价,早期指电报打印机,在 linux 中 ...
Linux 基础
介绍Linux 是由内核(kernel)、 shell(命令解释器)、文件系统和应用程序等组成的操作系统。它提供了丰富的工具和命令行界面,使用户能够轻松地管理和控制计算机系统。
Linux 具有稳定性高、安全性强、灵活性好、可靠性高等优点,同时还支持多任务处理和多用户操作,可以满足各种不同需求的用户。
Linux 操作系统被广泛应用于服务器、超级计算机、移动设备和嵌入式设备等领域,并且也逐渐普及到个人电脑的市场。
学习价值
Linux 是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境。
公司内部服务(TCE、FaaS、SCM)统一使用 Debian Linux 系统。
熟悉 Linux 基础指令,熟练运维前端常用服务(Nginx、Node.js)。
加深对操作系统概念和实现的理解,夯实基础知识。
Logo
企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于当今世界上的任何国家。
Linux 选择企鹅图案作标志,其含意也是表明:开源的 Linux 为全人类共同所有,任何公司无权将其私有。
计算机组成
控制器
运算器
存储器单元
输入单元
输 ...
计算机网络概论
介绍建立对计算机网络的整体认知,对计算机网络中的各种概念(网络分层、网络协议、网络应用等)有初步的理解,进而可以在后续的实际工作中能高效解决网络问题。
课程内容
通过一个示例建立对计算机网络的整体认识
建立对网络协议分层的认知
分析 HTTP1、2、3的关系
介绍 CDN 运行的基本原理
了解网络安全的最基本原则
但不包括:
详细描述如何开发一个基于HTTP协议(或者其他协议)的网络应用
深入介绍课程中所涉及协议的规范(Specification)内容和实现细节
分析方法
自底向上
从简单开始,逐渐变复杂
将模块逐步拼凑成一个系统
自顶向下
从复杂开始,逐渐变简单
从复杂的系统问题入手,拆分为模块问题
蟹堡王帝国蟹老板想挣一个“小目标”,三步走战略:
在比奇堡开通外卖
在北京和上海开分店
在全国开分店并开通外卖
计算机网络基础网络组成部分
主机:客户端和服务端
路由器
网络协议
网络结构:网络的网络
比奇堡和小区网络:本地网络
北京和上海分店+比奇堡:三个本地网络节点的网络
全国通信网络:本地网络的网络
区域网络、城域网和广域网
网络分层
快递员不关心包裹内 ...
Vue 组合式函数
组合式 APIComposition API 是一系列 API 的集合,使我们可以使用函数而不是声明选项的方式书写 Vue 组件。包括:
响应式 API:例如 ref() 和 reactive(),使我们可以直接创建响应式状态、计算属性和侦听器。
生命周期钩子:例如 onMounted() 和 onUnmounted(),使我们可以在组件各个生命周期阶段添加逻辑。
依赖注入:例如 provide() 和 inject(),使我们可以在使用响应式 API 时,利用 Vue 的依赖注入系统。
其他选项:props,emits,name 和 inheritAttrs。如果使用 <script setup>,那么 inheritAttrs 应该是唯一一个需要用额外的 <script> 块书写的选项了。
对比选项式 API
更好的逻辑复用:组合式 API 最基本的优势是它使我们能够通过组合函数来实现更加简洁高效的逻辑复用。在选项式 API 中我们主要的逻辑复用机制是 mixins,而组合式 API 解决了 mixins 的所有缺陷:
不清晰的数据来源:当使用了多个 ...
Vue 中的响应性
响应性本质Vue 组件状态都是由响应式的 JavaScript 对象组成的,当更改它们时,视图会随即自动更新。本质上,响应性是一种可以使我们声明式地处理变化的编程范式。一个典型例子是 Excel 表格:
A
B
C
0
1
1
2
2
3
这里单元格 A2 中的值是通过公式 = A0 + A1 来定义的 (可以在 A2 上点击来查看或编辑该公式),因此最终得到的值为 3。当更改 A0 或 A1 时,A2 也会随即自动更新。
JavaScript 代码:
1234567let A0 = 1let A1 = 2let A2function update() { A2 = A0 + A1}
A0 和 A1 被视为这个作用的依赖(dependency),因为它们的值被用来执行这个作用。
update() 函数会产生一个副作用,或者就简称为作用(effect),因为它会更改程序里的状态。
Vue 中的响应性是如何工作的我们无法直接追踪对上述示例中局部变量的读写,原生 JavaScript 没有提供任何机制能做到这一点。但是我们是可以 ...
MouseEvent 鼠标事件详解
介绍
MouseEvent 接口指用户与指针设备(如鼠标)交互时发生的事件。它包含了与鼠标相关的信息,比如鼠标的位置、鼠标键的状态等。
使用此接口的常见事件包括:click、dblclick、mouseup、mousedown、mouseenter、mouseleave、mouseover、mouseout、mousemove 等。
使用 MouseEvent() 构造函数创建一个 MouseEvent 对象,使用 MouseEvent.initMouseEvent() 方法可以保持向后兼容性。
MouseEvent 继承自 UIEvent,UIEvent 接口表示简单的用户界面事件,其后代有:MouseEvent, TouchEvent, FocusEvent, KeyboardEvent, InputEvent, 和 CompositionEvent。
继承自 MouseEvent 的事件有:WheelEvent 和 DragEvent。
常用属性
clientX 和 clientY: 鼠标事件发生时,鼠标指针相对于浏览器窗口左上角的水平距离和垂直距离。它不受页面滚动的影响,即使 ...
WebGPU 介绍和基本使用
介绍
WebGL 在 2011 年左右首次出现后,在图形功能方面彻底改变了网络。WebGL 是 OpenGL ES 2.0 图形库的 JavaScript 端口,允许网页将渲染计算直接传递给设备的 GPU 进行处理以非常高的速度,并在元素内渲染结果 <canvas>。
WebGPU 是 WebGL 的继任者(与 OpenGL ES 无关),提供了与现代 GPU 更好的兼容性、支持通用 GPU 计算、更快的操作以及访问更高级的 GPU 功能。
WebGPU 的开发始于 2017 年,这项技术的目标是借助现代 GPU 的计算能力来加速图形和计算并且允许在 Web 上进行高性能 3D 图形和数据并行计算。
与 DirectX 和 Vulkan 等其他图形 API 类似,WebGPU 也提供了直接在 GPU 上渲染和访问高级功能的功能,从而提高图形渲染的速度和效率。
WebGPU 大幅减少相同图形的 JavaScript 工作量,以及为机器学习模型推理提供 3 倍以上的改进。因为 WebGPU 提供了更灵活的 GPU 编程和访问,从而实现 WebGL 无法提供的高级功能。
目前已在 ...
基于对话式交互的 SQL 客户端 - SQL Chat
介绍SQL Chat 是一个基于聊天的 SQL 客户端,可以使用自然语言询问数据库问题和查询数据库。由 Next.js 构建,国内可直接部署到腾讯云 Web 应用托管服务,国外也可一键部署到 Vercel,同样支持私有化部署。现支持以下数据库,预计以后会添加更多数据库的支持:
MySQL
PostgreSQL
数据隐私
所有数据库连接配置都存储在本地浏览器中,还可以访问浏览器设置以清除数据。
只有数据库模式会被发送到 OpenAI API,而不会发送表数据。
本地安装
复制示例环境变量文件;1cp .env.example .env
将您的 API 密钥 和 OpenAI API 端点(Endpoint,可选)添加到新创建的 .env 文件中;
安装依赖项并启动开发服务器;1pnpm i && pnpm dev
使用
SQL Chat提供了连接数据库与数据库建立连接的功能,可以直接连接到一个公网数据库:
连上数据库之后,其最大的作用是可以对连接的数据库执行查询:
点这个小三角,就可以在连接的数据库中执行该查询 sql:
它只支持去执行查询, ...
集成 GPT-4 的代码编辑器 - OpenAI Cursor(已限制使用和收费)
介绍OpenAI 宣布推出了全新的代码编辑器——OpenAI Cursor,通过人工智能技术辅助程序员进行日常的编码,支持 Windows、Linux 和 macOS。最引人注目之处便是将 GPT-4 模型集成在了代码编辑环境中,使得代码编写过程中可实现更加高效、准确、智能化的提示与建议。主要功能有:
代码补全。当用户输入代码时,Cursor 可以预测并提示可能的后续代码,这有助于快速填补函数参数、变量名等,减少编写代码时的打字量。
错误修正。如果用户输入的代码有语法错误或拼写错误,Cursor 可以在边栏提示修正建议,帮助用户快速定位和修复问题。
方法文档。当用户输入一个方法的开头,如 def 后面空格时,Cursor 可以预测该方法的文档字符串,用户可以选择接受或修改建议的文档字符串。
重构代码。用户可以输入某段代码,然后在边栏选择“重构”,Cursor 会提供重构该代码段的建议,如提取变量、提取方法等,帮助用户进行代码重构。
推荐库。当用户想要实现某些功能时,可以在 Cursor 中输入,Cursor 会推荐可以使用的库和相关示例代码。这有助于发现和学习新的库。
代码 ...
英语 - 构词法
构词法英语词汇的构成有一定的规律,称为构词法(word-formation)。了解并掌握构词法可以使我们更好地理解词义、辨认新词、扩大词汇量。英语常用构词法有以下三种:派生法、合成法和转换法。
派生法(Derivation)在一个词的词根(root)的前面或后面加上某个词缀来产生一个新词,这种构词法称为派生法加在前面的词缀叫前缀(prefix),加在后面的词缀叫后缀(suffix)。一般来讲,前缀只改变词的意义不改变其词类,而后缀不仅改变词义而且使单词由一种词类转变为另一种词类。
常用前缀anti- 反对:
antibody 抗体
anticancer 抗癌的
antifreeze 防冻剂
antismoking 反对吸烟
antisocial 反社会的
antiwar 反战的
auto- 自动:
autoland 自动着陆
autoalarm 自动报警器
automatic 自动的
automat 自动售货机
automation 自动化
autotimer 自动定时器
bi- 双的:
bicentric 两个中心的
bimonthly 两月一次地
bicultural 二 ...