欢动技术
欢动技术
产品和服务
直接成本核算系统
数据库开发服务
员工自报工系统
招聘
联系
Home
图片来源: NASA
linux下制作windows启动U盘
众所周知,在linux下制作linux启动盘是非常容易的,假如/path/to/livecd.iso是一个linux系统的镜像,我们可以直接使用dd命令将其写入到优盘上。假如u盘是/dev/sdb,那么我们可以直接使用linux自带的命令: $ sudo dd if=/path/to/livecd.iso of=/dev/sdb bs=4MiB && sync 来将镜像直接整体写入u盘中,完全不需要任何第三方的软件帮助。 然而,制作windows的系统镜像是有一定的困难的,一般需要下载第三方的软件。windows上有微软第一方的启动盘制作工具,也有久负盛名的rufus。但是在linux下,有太多可选择的软件,对于有选择困难症的人而言,很容易出现不知道选哪个的情况。 这里,我们介绍一个利用rufus的资源文件实现windows启动盘制作的方法。 具体流程 软件依赖 parted,ntfs-3g. 在ubuntu为例,可以这样安装依赖: $ sudo apt install parted ntfs-3g 以archlinux为例,可以这样安装依赖: $ sudo pacman -S parted ntfs-3g 但是这两个软件很有可能在系统中已经存在,可以使用:
10/20/23
服务器安装casdoor
要求 操作系统 支持所有主流操作系统,包括 Windows、Linux 和 macOS。 环境 Go 1.17+ Node.js LTS (18) Yarn 1.x 信息 我们强烈建议使用 Yarn 1.x 运行和构建 Casdoor 前端。使用 NPM 可能会导致用户界面样式问题。更多详情,请参阅:Casdoor#294。 注意事项 如果网络无法直接同步 Go 依赖包,则需要通过配置 GOPROXY 环境变量来使用 Go 代理。我们强烈建议使用:https://goproxy.
10/16/23
事件订阅模式
node 是一个事件循环驱动的js运行时。EventEmitter 是其核心模块,这个模块可以自定义事件,实现订阅发布模式。 事件订阅和发布模式的关键是解耦。它允许不同的组件或模块能够独立地进行通信,而不需要直接依赖彼此的具体实现细节。这种解耦可以提高代码的可维护性、灵活性和可扩展性。 下面通过一个例子来说明事件订阅和发布的实际用途: 假设你有一个应用程序,其中包含一个用户注册模块和一个发送欢迎邮件的模块。当用户在注册模块中成功注册时,你希望发送欢迎邮件。但是你不希望注册模块直接调用发送邮件的功能,而是希望它只负责触发一个事件,然后由发送邮件的模块来订阅并处理该事件。 以下是一个用户注册时,给用户发送欢迎邮件的示例: const EventEmitter = require('events'); class UserRegistration { constructor() { this.eventEmitter = new EventEmitter(); } registerUser(username) { // 用户注册逻辑... // 触发事件 this.eventEmitter.emit('userRegistered', username); } } class WelcomeEmailSender { constructor(userRegistration) { this.
10/15/23
flow 1
起源 因为工作相关的一些原因,最近开始看一些工作流的框架或者产品,有兴趣的可以看我这篇文章。任务流是一种很常见的任务组织形式: graph LR Start-->Step1 Step1-->Step2 Step2-->End 这种例子充斥我们的生活,比如订单系统,Hr系统,审批系统,CI/CD 系统,都是任务流的常见引用。 Dag 我们常见两种任务流的实现形式,一种是 DAG,dag 的表达的核心在于描述单个任务, 比如 描述一个 Task 他完成什么样的动作,以及他依赖什么样的动作,DAG 的描述和他的名字一样,缺陷在于不支持有环的任务流转(这一点只是为了简化,实际上也有办法实现) TaskA: Actions: - 动作 A Dependencies: TaskB: Actions: - 动作 B Dependencies: - TaskA TaskC: Actions: - 动作 C Dependencies: - TaskA - TaskB 对这个 dag 进行简单的拓扑排序,就能得到他大概的执行流程, 下图为依赖图,首先会执行 TaskA,然后 TaskB,最后 TaskC
10/09/23
任务流引擎简介
任务流简介 任务比如 k8s 概念中的 job,一般指的是短期的会结束的一个离线任务,而人物流就是将一组任务组织起来的流程。比如下面的这个流程。 任务流中除了支持简单的串行处理之外,通常还会支持 并发,条件,skip 等影响执行流程的功能 任务流一般是 DAG,即不支持有环操作,在大部分场合这也能满足绝大部分需求了 每个 Step 通常除了 action 之外,通常还会有输入输出,这种输入输出 可能是一段数据,也可能是一个打包好的文件,甚至一个 测试生成的 html 页面等等 任务流的启动 可以是手动触发,也可能是各种事件处罚,比如一个 github merge事件。也可能是 cron 处罚,即周期执行。 任务流的例子 Jenkins 最早接触任务流工具应该是在 jenkins, 实际上 CI/CD 也是任务流最常见的场景之一,不过 jenkins 并不局限于 ci/cd (大部分 ci/cd 工具也是这种设计,采用 通用工作流 + 业务插件的形式支持具体的业务)
10/09/23
Node Module Stream
这个模块是介绍nodejs的stream,node的很多api都实现了stream stream 有四种基本的类型: 可读流 可写流 双工流 转换流 Object mode 由 Node.js API 创建的所有流仅对字符串和 Buffer (或 Uint8Array)对象进行操作。但是,流实现可以与其他类型的 JavaScript 值一起工作(null 除外,它在流中有特殊用途)。这些流被认为是在“对象模式”下操作的。 在创建流时,使用 objectMode 选项将流实例切换到对象模式。尝试将现有流切换到对象模式是不安全的。 buffering Writable 和 Readable 流都将数据存储在内部缓冲区中。 可能缓冲的数据量取决于传递到流的构造函数中的 highWaterMark 选项。对于普通流,highWaterMark 选项指定总字节数。对于在对象模式下运行的流,highWaterMark 指定对象的总数。
10/01/23
nodejs
events 关于’newListener' import { EventEmitter } from 'node:events'; class MyEmitter extends EventEmitter {} const myEmitter = new MyEmitter(); // Only do this once so we don't loop forever myEmitter.once('newListener', (event, listener) => { if (event === 'event') { // Insert a new listener in front myEmitter.
09/25/23
nodejs
Why should I avoid blocking the Event Loop and the Worker Pool? Node.js uses a small number of threads to handle many clients. In Node.js there are two types of threads: one Event Loop (aka the main loop, main thread, event thread, etc.
09/25/23
nodejs net api
Net 模块提供了一个异步网络 API,用于创建基于流的 TCP 或 IPC 服务器(net.createServer())和客户端(net.createConnection())。 你可使用以下连结进入: const net = require('node:net');
09/25/23
计算机基础知识ChatGPT答疑
本章内容都是由人类学生提问,ChatGPT回答生成的。ChatGPT在学习编程的过程中,对于追根溯源刨根问底的探究基础知识是很有帮助的。 Q. The node:net module provides an asynchronous network API for creating stream-based TCP or IPC servers (net.createServer()) and clients (net.createConnection()). 这句话中的IPC是什么? A:在这句话中,“IPC” 是指 “Inter-Process Communication”(进程间通信)的缩写。在Node.js中,“IPC” 通常用于表示进程之间进行通信的机制。Node.js的 net 模块不仅可以用于创建TCP服务器和客户端,还可以用于创建IPC服务器和客户端。 在这种情况下,IPC是一种允许不同的进程在同一台计算机上相互通信的方式。通常,IPC用于在多个进程之间传递数据、共享资源或进行协作。Node.js的 net 模块支持创建基于流的IPC服务器和客户端,以便不同进程之间可以通过套接字连接进行通信。这种通信方式对于需要跨进程协作的应用程序非常有用。
09/25/23
»