hint

short blabla


fuse是?

February 21, 2024

FUSE(Filesystem in Userspace)是UNIX和类UNIX操作系统的软件接口,允许用户态程序创建和管理文件系统,而不需更改内核代码。使开发人员可在不需要复杂内核开发过程的情况下,实现和运行新的文件系统类型。通过FUSE文件系统的实现可像普通的用户级应用程序一样运行,大大降低开发和测试的复杂度

工作原理是FUSE提供了一个桥接用户空间和内核空间的接口,使用户空间程序可处理那些通常由内核管理的文件系统请求。访问FUSE挂载的文件系统时,相关操作(如打开文件、读/写数据、修改文件属性等)会被重定向到用户空间的程序处理,而不由内核直接处理

appimage就用了fuse来挂载文件系统

nixos上运行appimage的问题

February 21, 2024

NixOS上即使用buildFHSUserEnv创建FHS环境,AppImage运行时也可能遇到问题,尤其当它们需要挂载文件系统时

  • 尝试使用fakeroot,一个模拟root权限的工具,可在不提升实际权限的情况下执行root权限操作。不过并不总是有效,因为它并不提供挂载操作所需的内核级权限
  • ./YourApp.AppImage --appimage-extract: 将AppImage文件解压后直接运行解压出来的应用程序,而不是通过AppImage挂载

nmcli使用

February 21, 2024

nmcli device wifi list

nmcli connection up id <YourWiFiSSID>

nmcli device wifi connect <YourWiFiSSID> password <YourPassword>

tlp是?

December 31, 2023

tlp 是在Linux系统上用于电源管理的工具。帮助用户优化笔记本电脑的电池续航时间,通过各种设置如根据系统负载动态地开关处理器核心和锁定处理器频率

networkmanager 底层是用wpa的

December 13, 2023

wpa_supplicant 是Wi-Fi 保护接入(WPA)客户端和 IEEE 802.1X 供应商。处理与 Wi-Fi 网络的连接、加密、身份验证等

NetworkManager 是管理网络的高级工具。在后台利用 wpa_supplicant 来管理无线网络的具体细节

RTFM是?

December 7, 2023

It means Read The Fucking Manual

为什么cache server的binary可以通用?

December 5, 2023

通用编译:为保证软件包在不同x86平台上的兼容性,包管理器通常会采用“通用编译”策略。意味着软件包编译时,会避免使用特定于某个厂商(如Intel或AMD)的特殊指令集或优化

软件层面优化:即便在通用编译的情况下,软件本身可能包含机制来检测运行时的硬件环境,根据硬件特性动态调整行为

平台特定的包:某些情况下如果软件确实需要针对特定硬件平台进行优化,Nix可能提供专门为该平台优化的版本

webkit是?

November 24, 2023

开源的网页浏览器引擎。最初由Apple为其Safari开发,后来被很多软件采用

macos默认terminal没有true color支持

October 16, 2023

"True colors" 系统中,可以显示大量不同的颜色组合,通常是通过24位或更高位的颜色来实现的,允许数百万种不同的颜色显示。在计算机图形显示中,这通常指的是能够显示全范围的RGB颜色,每个通道8位,总共24位,这提供了大约1670万种可能的颜色。

macOS 自带的终端在不支持 "true color",这意味着它不能显示整个RGB颜色范围,可能只支持256色,或者甚至更少的颜色

linux上amd gpu的占用率问题

October 4, 2023

GFX时钟和功耗的含义:

  • 1000 MHz (MCLK):MCLK表示图形内存的时钟频率
  • 727 MHz (SCLK):SCLK表示图形处理单元的时钟频率
  • 1950 MHz (PSTATE_SCLK):PSTATE_SCLK是指在特定性能状态下的图形处理单元的时钟频率
  • 676 MHz (PSTATE_MCLK):PSTATE_MCLK是指在特定性能状态下的图形内存的时钟频率
  • 743 mV (VDDGFX):VDDGFX表示图形处理单元的电压

PSTATE_SCLK 在AMDGPU称为“功率状态核心时钟”。PSTATE表示Power State的缩写,代表GPU的功耗状态。SCLK代表GPU的核心时钟

AMD的GPU可以在不同的功率状态下运行,每个状态下GPU核心时钟频率都不同。PSTATE_SCLK就是用来表示在某个功率状态下,GPU的核心时钟频率是多少

我发现确实gpu固定运行在几个频率上,和win上那种按需的完全不同

hyprland下xwayland应用的缩放问题

October 4, 2023

Xwayland没有自动检测和调整分辨率的能力

办法是在hyprland.conf里面写

xwayland

但是这也有问题,应该要配置一下x11设置才更好,懒得搞了,不如全用wayland

adobe rgb 和 p3

September 4, 2023

Adobe RGB和DCI-P3色彩空间都比sRGB色彩空间广,但它们覆盖的颜色范围略有不同。

Adobe RGB色彩空间主要在蓝绿色调上超越了sRGB,因此主要被用于高端照片打印和编辑。而DCI-P3则在红色和黄色色调上超越了sRGB,这使得它特别适合电影和电视产业。

两者比较起来,Adobe RGB和DCI-P3的颜色范围大致相当。

如果你正在处理电影级的视频编辑,那么一个覆盖DCI-P3色域的显示器可能是最好的选择。如果你是一位专业摄影师,那么一个覆盖Adobe RGB色域的显示器可能更适合你的需求。

electron应用通过增加对新的web api的使用来减少nodejs依赖?

September 4, 2023

Electron 是一个能让你使用纯 JavaScript 构建桌面应用的框架。它结合了 Chromium(Google 开发的开源浏览器项目)和 Node.js,让你能够在一个应用中同时访问 Web 技术和本地系统资源。

Electron 应用是否可以通过增加对 Google 或 Mozilla 开发的 Web API 的使用,而减少对 Node.js 的依赖。答案在一定程度上取决于你的应用需要访问的特定功能和资源。

Web API 是在浏览器环境中运行的,因此它们主要用于处理网络请求,操作 DOM,处理用户输入等任务。一些新的 Web API,如 Fetch API 和 Service Workers,也提供了更先进的网络和离线功能。然而,Web API 的使用受到浏览器沙箱的限制,它们不能直接访问操作系统的底层功能和资源。

相比之下,Node.js 提供了对底层系统资源的访问,例如文件系统,网络(TCP/UDP/HTTP/HTTPS)以及子进程等。这使得 Electron 应用可以执行一些 Web API 无法实现的任务,例如直接读写本地文件,监听网络端口等。

所以,如果 Electron 应用需要访问这些底层系统资源,那么你可能无法完全摆脱对 Node.js 的依赖。然而,如果你的应用主要是处理网络请求和用户输入,那么你可能可以通过更多地使用 Web API 来减少对 Node.js 的依赖。

首屏加载js大小

September 4, 2023

一般来说,建议首屏加载的 JS 文件控制在 200-300kb 以内比较合理,可以从以下几点优化:

  • 采用代码分割,只加载必要代码。
  • 压缩和 Tree Shaking 优化,删除无用代码。
  • 提取常用代码到共享模块。
  • 懒加载非关键代码。
  • 使用更轻量的代码结构替代一些重的库

inode耗尽

September 4, 2023

当我们谈论硬盘的使用空间时,通常指的是硬盘上的数据块(data block)的使用率。然而,对于UNIX和类UNIX系统(例如Linux),每个文件或目录不仅需要数据块来存储其实际内容,还需要一个inode来存储其元数据。元数据包括文件的所有者、权限、创建时间、修改时间、访问时间等信息,以及指向文件数据块的指针。

inode的数量在文件系统创建时就已经确定,且通常无法在不重新格式化的情况下进行更改。每个文件或目录都需要一个inode,无论文件的大小如何。因此,如果你有大量小文件(例如1KB),那么你可能会耗尽inode,尽管数据块的使用率可能仍然很低。这就是为什么你的朋友的硬盘只用了30%的空间,但却无法写入文件的原因:尽管还有很多空闲的数据块,但已经没有可用的inode来存储新文件的元数据。

出来promise类型的时候

September 4, 2023

是不是忘记await了?

stateful和stateless

September 4, 2023

两种主要的系统设计概念:有状态(stateful)和无状态(stateless)。这两个术语通常用来描述系统、应用、服务或函数的特性

  1. 有状态(Stateful):在一个有状态的系统或服务中,系统在处理请求时需要记住之前的信息或请求的结果。这种“记忆”可以在一个操作或多个操作之间持续,直到不再需要。例如,用户登录到一个网站后,该网站就会保存用户的登录状态,并在用户进行其他操作(如查看个人信息、发布信息等)时,都会使用到这个状态。
  2. 无状态(Stateless):无状态系统或服务不保留任何关于过去请求的信息。每个请求都被视为一个完全独立的事务,与之前或之后的请求无关。例如,HTTP 协议就是无状态的,每个请求都是独立的,不依赖于之前或之后的请求。

对于需要跟踪用户信息或持久化数据的应用,可能需要使用有状态设计。而对于需要高度可伸缩性和简单性的应用,可能会选择无状态设计。

运维用的语言

August 26, 2023

运维中的hcl、groovy、recipe、yaml是常见的配置管理语言和格式,各有不同的用途:

HCL(HashiCorp Configuration Language) 是HashiCorp公司定义的一种配置语言,用于编写Terraform等HashiCorp工具的配置文件。语法与JSON类似,但更为简洁。

Groovy是一种基于JVM的敏捷开发语言,语法与Java类似,但更简单。在运维中可用于编写Jenkins Pipeline等自动化任务的脚本。

Recipe是Chef中的配置管理代码单元。Chef使用Ruby语言编写Recipe代码,定义系统配置、安装软件、部署应用等任务。

YAML是一种人性化的数据序列化语言,以数据为中心,用空格来展示数据结构层次。在运维中常用于编写Ansible playbook等配置文件。

总体来说,HCL和Groovy更侧重于实现自动化配置;Recipe和YAML更侧重于定义系统状态和需求。各种语言和格式有各自的侧重点,运维人员可根据实际场景和习惯进行选择。

相机像素取决于?

August 6, 2023

相机的像素是由 Sensor芯片来决定的,与镜头无关。

相机的主要组成部分有镜头、传感器(Sensor)和图像处理器(Image Processor)。

决定照片像素的关键部件是传感器,它起到和底片相似的作用,直接接收光线并转化为电信号。不同尺寸的传感器上所含的感光点(像素)数量不同,感光点数量决定了图片的分辨率和像素。

而镜头主要起聚光作用,决定了入射到摄像头的光线角度、聚焦效果等,与最终照片的像素无关。同一台相机换用不同镜头,不会影响照片像素。

但是,镜头的光学质量会对最终照片的图像质量有较大影响。高质量的镜头能够获得更清晰、色彩更丰富的照片。所以消费级相机中,传感器决定像素,而镜头决定图像质量。它们共同影响照片的效果。

.so文件是?

August 6, 2023

.so 文件是一种可执行文件,具体来说是共享库(Shared Library)动态链接库(Dynamic Link Library)

.so 文件主要有以下特点:

  • .so 文件包含了可被多个程序共享的代码和数据,可以让多个程序共享同一份库文件,以减少内存占用和磁盘空间。
  • .so 文件在程序运行时动态加载,可以节省启动时间,不同的程序可以运行不同版本的库文件,增加了灵活性。
  • .so 文件中的函数和变量名被编译成位置独立代码,加载入内存后,程序可以直接调用,无需关心具体地址。
  • .so 文件实现了模块化,程序只需要关心库文件的接口,而不需要知道其实现的细节。
  • .so 文件需要由动态链接器来定位并加载到进程的地址空间,比静态链接的 .a 库文件的使用更为灵活。

所以,尽管 .so 文件自身无法直接执行,但通过动态链接的方式,它可以为executable程序提供可共享和可重用的代码,所以也是一种可执行文件。加载 .so 文件可以直接为程序添加功能。

windows fast startup

August 6, 2023

工作原理:

  1. 当系统正常关机时,Windows会将当前的内存状态保存成一个hiberfil.sys文件。这个文件包含了内存中加载的核心文件、驱动等信息。
  2. 下次启动时,Windows不会完全从零开始载入系统,而是直接读入hiberfil.sys文件,恢复内存状态。这样可以跳过很多启动步骤,大大加快启动时间。
  3. 如果在关机前系统进行了更新或改动(如安装了新程序),关机时也会相应地更新hiberfil.sys文件,以反映最新的系统状态。
  4. 如果不正常关机(如断电),hiberfil.sys文件没有被更新,下次启动还会读入上一次的旧状态,需要额外的时间检查和更新。

ui和框架库

August 1, 2023

react是UI库,你用react

next是框架,框架用你

btrfs

July 28, 2023

快照:Btrfs的快照是一个给定时间点的文件系统状态的只读副本。这通过Btrfs的子卷和其copy-on-write(COW,写时复制)特性来实现。当创建快照时,Btrfs实际上是创建了一个新的子卷,并将源子卷的元数据复制到新的子卷中。由于Btrfs使用COW策略,所以在创建快照的过程中并不会复制所有的数据,只有当源子卷中的数据发生改变时,改变的部分才会被复制到新的子卷中。这样,快照的创建就非常快速,而且不会占用太多的磁盘空间。

回滚:Btrfs的回滚是通过将整个文件系统恢复到之前的快照状态来实现的。实际上,这是通过将特定快照设置为默认子卷来完成的。当系统下次启动时,它将加载这个默认子卷,就像加载了一个之前的文件系统状态。这种方法允许用户轻松地恢复到之前的系统状态,特别是在某次系统更新或修改后出现问题时。

Btrfs的快照功能,它的实际空间需求取决于你的数据变化的频率和规模。一般来说,快照本身并不需要很多额外的空间,因为它们主要是保存文件的变化,而不是文件的完整副本。

/nix下的.links文件夹

July 28, 2023

/nix占了100G,/nix/.links 50G,这究竟是什么?

links是Nix用来优化磁盘空间的一种机制。Nix会尝试在安装新的包时找到已经存在的、内容完全相同的文件,并在.links目录中为这些文件创建硬链接,而不是创建新的文件。这意味着,即使有多个版本的同一个包在/nix/store中存在,只要它们有共享的文件,这些文件只需要在磁盘上存储一次。

当Nix需要存储一个文件时,它首先会计算该文件的哈希值,然后在.links目录中创建一个以哈希值命名的文件。然后,Nix会在/nix/store的相应位置创建一个指向.links中哈希文件的硬链接。因此,即使多个包共享同一文件,该文件也只需要在磁盘上存储一次。

Linux发布周期

July 25, 2023

Linux的发布周期通常开始于大版本的结束。首先,内核维护者开始合并新功能代码。这个阶段通常被称为合并窗口,大约会持续两周的时间。

合并窗口关闭后,开始进入“稳定”阶段。这个阶段主要是对新合并的代码进行测试,找出并修复错误。一旦代码稳定,就会发布新的主版本。

之后的发布周期,一般都是在新的主版本基础上进行的,主要是修复已知的错误或安全问题,这就是小版本更新。在这个阶段不会引入新的大功能,以保持系统的稳定性。

每个版本的具体发布日期不是固定的,通常是在内核维护者认为版本已经足够稳定时才会发布。这样的策略可以确保Linux的稳定性和可靠性。

Xorg历史

July 25, 2023

在Xorg之前,X Window System(也称为X11或X)已经存在了。X Window System于1984年开始开发,用于提供基本的窗口绘制、鼠标和键盘输入等功能。然后,Xorg是X Window System的一个开源实现,于2004年开始

git tree is dirty是?

July 20, 2023

Git 中,工作目录有未提交的更改

c标准库和系统调用

July 20, 2023

系统调用和C标准库的关系在于,C标准库一般包含一系列用于执行常见任务(例如文件操作、输入/输出处理、内存管理等)的函数,而这些函数的实现往往依赖于操作系统提供的系统调用。

所以,C标准库和系统调用之间的关系可以看作是一种封装和抽象的关系:C标准库为开发者提供了一个相对高级和便利的编程接口,而这些接口的实现则是依赖于底层的系统调用。

POSIX标准委员会不直接定义系统调用,而是定义了一套标准,这个标准规定了一个满足POSIX的操作系统应该实现哪些接口。这些接口中包含了系统调用,但具体的系统调用实现是由操作系统本身来定义和提供的。

在C代码中调用如fwrite这样的函数时,你实际上是调用了C标准库中的函数。这些函数的具体实现通常会在编译时或运行时链接到你的程序。

在各个平台(比如Windows、OS X)上,C标准库的具体实现可能会有所不同,以适应该平台的特性。例如,fwrite函数在Windows上的实现可能会使用Windows特有的系统调用,而在OS X上的实现则可能会使用Unix风格的系统调用。

所以,是C标准库(或者更具体地说,是链接到你的程序的C标准库的实现)负责处理这些平台差异,而不是C编译器

鳗鱼很贵

July 18, 2023

鳗鱼的高价并不完全是因为缺乏人工养殖,还有其他因素也起到了作用。虽然鳗鱼可以通过人工养殖,但相比其他鱼类,鳗鱼的养殖难度更高,需要特殊的环境和饲养条件。此外,鳗鱼生长速度较慢,养殖周期较长,这也导致了养殖成本的增加。

此外,全球对鳗鱼的需求很高,尤其是在亚洲国家,如日本和中国。这种供需不平衡也会导致价格上升

JWT是?

July 14, 2023

JavaScript Web Tokens(JWT)是用于安全传输信息的开放标准(RFC 7519)。信息可在两方间安全传输,且因为信息被签名,所以能验证信息的发送者和防止数据被篡改

JWT由三部分组成:Header、Payload和Signature。以点(.)分隔,形如 xxxxx.yyyyy.zzzzz

Header包含两部分:token类型(即JWT)和采用的加密算法

Payload是存放有效信息的地方,叫做claims。claims是关于实体(通常是用户)和其他数据的一些事实。根据数据类型claims分为三种:registered、public)和private

Signature:签名是对头部和载荷信息进行加密的部分,确保token的完整性和可信任性

JWTs常用于认证和授权。用户登录后服务器创建包含用户信息的JWT并返回给用户。用户可使用这个token来验证自己的身份

返回view而不返回table

July 14, 2023

将一些计算操作直接在数据库层面进行,而不是在后端服务器上进行。这些计算结果不直接以数据库表格(table)的形式,而是通过数据库视图(view)来提供给后端使用。

数据库视图是一种虚拟的表格,它的内容由查询定义。也就是说,视图是基于一个或多个现有表格的结果集。通过在数据库中创建视图,我们可以预先在数据库中完成一些聚合或者复杂的查询操作,然后在后端代码中直接查询这个视图,可以简化后端的逻辑并提升性能。

microservices JSON

July 14, 2023

微服务之间通常使用JSON作为数据交换的格式,它可以在不同语言编写的服务之间轻松传输和解析。还可以使用其他方式,例如XML,Protobuf,或者像Avro这样的二进制格式等,具体使用哪种方式主要取决于系统的需求和设计

公開初週舞台挨拶:本会場

July 14, 2023

这通常指的是在电影首周公映时,演员和/或导演会在特定的影院现场,对观众进行简短的问候或者简介,有时还会进行Q&A(问题和答案)环节。"本会場"就是指的这种活动所在的具体地点或场地。

technical debt

July 13, 2023

"技术债务"是一个比喻,主要用于描述当软件开发者选择快速易行但并不是最佳的解决方案时所产生的额外工作。这个选择可能会让开发者在短期内达到目标,但在长期中,它可能需要额外的修正和改进。这个概念就像债务一样,如果你不偿还,利息就会累积,导致未来需要花费更多的时间和努力来解决。总的来说,"技术债务"反映了项目的技术问题和难题,以及这些问题可能导致的后果。

gh会部分托管git-credentials-helper

July 12, 2023

今天突然又出现push的时候github说不能用账号密码验证身份,我寻思着早就转token了,估计是过期了(也确实是),但是一push就报错也不让我输新token。最后发现gh好像托管了credentials,gh重新auth一下就好了

go template

July 12, 2023

Go 模板(Go template)是 Go 语言的一部分。Go 模板设计为可以由开发人员进行扩展,并能够程序化地向模板引擎传递数据对象和附加功能

It can {{ "output" }} something.
It also
{{- " demonstrates" }} trim markers.
{{/* it has a comment */}}
It can {{ "output" }} something.
It can demonstrate {{ "output" | print }} using pipelines.
It also {{ $A := "assigns variables" }}{{ $A }}.
And conditionals:
{{ $B := 2 }}{{ if eq $B 1 }}B is 1{{ else }}B is 2{{ end }}

attack on network

July 12, 2023

数据包嗅探:这是一种被动监听网络数据传输的方式。攻击者通过嗅探器程序,能够捕获通过网络传输的数据包,并能解析这些数据包中的内容。如果你通过不安全的网络连接(比如没有加密的WiFi或者不安全的HTTP连接)发送敏感信息,比如密码,攻击者就有可能捕获到这些信息。这就是为什么我们总是推荐在处理敏感信息时使用安全连接,如HTTPS或者VPN。

键盘记录程序(Keylogging):这是一种恶意软件,会在用户的设备上秘密安装,然后记录用户的键盘输入,包括密码、信用卡号等敏感信息。这些信息被捕获后,就会被发送到攻击者。为了防止键盘记录,用户应该安装可靠的安全软件,并定期更新操作系统和软件,以防止恶意软件的入侵。

路由器可能没有公网ip吗?

July 12, 2023

对于大多数的家庭和小型企业网络,路由器的WAN(宽域网)接口通常会被分配一个公网IP地址。这个地址由你的互联网服务提供商(ISP)提供,用于与互联网其余部分通信。这个地址通常是动态分配的,但在某些情况下也可能是静态的。

然而,也有一些情况下,你的路由器可能不直接拥有公网IP。例如,如果你的ISP实施了某种形式的CGNAT(CARRIER-GRADE NAT,运营商级NAT),那么你的路由器可能被分配一个私有IP地址,而非公网IP。在这种情况下,公网IP地址被ISP的设备(而非你的路由器)持有,并用于多个客户。这通常在IPv4地址不足的情况下出现。

在另一些情况下,例如在某些大型组织或者企业网络中,路由器可能位于一个更大的私有网络中,并通过更高级别的路由器或防火墙访问互联网。

pcie通道

July 5, 2023

PCIe 4.0的一条通道(x1)的理论最大带宽为2GB/s(Gigabytes per second)。这是因为PCIe 4.0的每条通道的数据传输速率为16 GT/s(Gigatransfers per second),并且每个传输可以携带64位(8字节)的数据。因此,16 GT/s * 8字节/GT = 128 Gb/s,也就是16 GB/s,但由于编码开销,实际可用带宽约为这个数值的78.125%,即约12.5 GB/s。

传输协议的开销。例如,PCIe使用了8b/10b或者128b/130b编码,这意味着每10比特或者130比特的数据只有8比特或者128比特是实际的有效数据。这就是为什么我们需要把理论带宽乘以78.125%来得到实际带宽。

EACCESS error?

July 4, 2023

EACCES错误通常是因为没有足够的权限访问文件或目录

什么是async/await的传染性?

June 30, 2023

也就是一层套一层,最里面的需要await,最外面的也要async,这就是传染性

/dev/shm 是?

June 29, 2023

/dev/shm 是一个特殊的虚拟文件系统,它是用于共享内存的一种机制。在许多类 Unix 系统中,包括 Linux,/dev/shm 是一个特殊的目录,用于在内存中创建临时文件系统,以实现进程间的共享内存通信。

共享内存是一种高效的进程间通信方式,它允许多个进程直接访问相同的内存区域,避免了复制数据的开销。在 /dev/shm 中创建的临时文件系统允许进程通过映射共享内存文件来实现共享数据。

磁盘的uuid不同系统看起来长度不一样

June 29, 2023

磁盘的UUID有两种:

  1. 硬件级UUID:就是我前面的回答说的,这种UUID是硬盘生产商固化写入磁盘的。这种UUID位数是固定的,一般为128位。
  2. 操作系统分配的UUID:这种UUID是操作系统在检测到磁盘后,根据磁盘的其他信息(如序列号、容量等)计算出来的。

Windows和Linux计算UUID的方式不同,所以:

  • Windows计算出来的UUID位数一般为32位。
  • Linux计算出来的UUID位数一般为128位,采用基于ISO的UUID标准。

.pki目录

June 28, 2023

.pki 文件夹通常用于存储与公钥基础设施 (Public Key Infrastructure, PKI) 相关的文件和证书

为什么要用UKI引导?

June 28, 2023

UKI(Unified Kernel Image)是一个用于引导操作系统的开源引导程序,相比于传统的GRUB(GRand Unified Bootloader)引导,它具有以下一些优点:

简化的配置:UKI的配置文件相对简单,易于理解和编辑。相比之下,GRUB的配置文件较为复杂,需要掌握一定的技术知识才能正确配置。

快速引导:UKI的设计目标之一是提供快速引导体验。它通过优化加载过程和减少不必要的操作,可以在更短的时间内引导操作系统。

空间效率:UKI采用了紧凑的内核映像格式,这意味着内核映像文件相对较小。相比之下,GRUB需要加载更大的内核映像文件,因为它支持更多的功能和配置选项。

build后的dist文件夹

June 24, 2023

dist是distribution的缩写

删库

June 23, 2023

DROP Database mydatabase

记住了以后可以开玩笑

SRE是?

June 22, 2023

Site Reliability Engineer,主要关注确保在线服务的稳定性和可靠性。这种角色通常与软件工程和系统运维密切相关,旨在通过自动化、监控和故障排除等手段来提高系统的可用性和性能。

SRE的职责包括监控系统健康状况、响应和解决故障、设计和实施容错机制、优化系统性能、制定紧急应对计划等

vim的粘贴

June 21, 2023

p和P分别是在光标后面和前面粘贴,我一直没用过P,之后可以多用用,还挺有用的

写react脑瘫了

June 19, 2023

onClick正常是传一个函数给它,如果直接call function会直接调用……

什么是endpoint

June 18, 2023

接口(endpoint)返回的不是一个空数组。这句话中提到了 "an empty array",意思是你的接口返回一个空数组。它建议你确保接口返回的数据不为空,可能是通过检查接口的响应来确保返回的不是空数组。

简单来说就是api?

npm run dev 在一个特定的port上

June 18, 2023

npm run dev --port 3010 会工作,改next.config.js可能不会工作(

FaaS和CaaS的区别

June 13, 2023

函数即服务(FaaS)是一种云计算模型,其中开发者可以编写和部署独立的函数。这些函数通常是小型的、独立的代码单元,用于执行特定的任务或响应特定的事件。当函数被调用时,云提供商会自动处理其运行和扩展,开发者只需关注函数的逻辑。

代码即服务(Code as a Service)则更广泛地指代一种服务模型,其中开发者可以在云平台上托管和运行代码。这可以包括各种形式的代码,如单个函数、应用程序、服务、库等。代码即服务的目标是提供一种托管和执行代码的方式,让开发者能够快速部署和运行他们的应用或代码。

可以说,函数即服务是代码即服务模型中的一种实现方式。FaaS专注于处理函数级别的代码,提供了更细粒度的函数级别的自动扩展和执行环境,而代码即服务可以更广泛地包含各种形式的代码托管和执行,包括应用程序级别的服务。。

怨声载道的python依赖问题

June 13, 2023

这个链接

大家觉得安装虚拟环境太麻烦,所以我直接选择docker。

看到有人说nix也可以来做这个事情,用poetry2nix(俩东西我都很喜欢)写flakes……感觉需要研究一下

最近nix出现频率越来越高了,看来是一股新的风气?

有人说python包分发与cargo和npm来比简直就是灾难……

wayland compositor是?

June 13, 2023

Wayland 中,compositor(合成器)是指一个负责处理窗口管理、渲染和输入事件分发的组件或程序。它是 Wayland 协议的一部分,负责处理客户端应用程序和显示服务器之间的通信和交互

chown chmod

June 12, 2023

有的时候会搞混chmod和chown,chmod 777,chown user filepath

造轮子比我学的快

June 10, 2023

感觉web开发是这样的,越来越没信心了

突然知道react state管理用什么zustand……啥玩意啊……我redux还没用过呢

18年的苹果真是垃圾制造厂

June 10, 2023

里面有一颗i5-8210Y,双核四线程,我真的哭死,我现在还在用这个垃圾电脑(在外面)

yarn感觉用的越来越少了

June 10, 2023

大家都开始用pnpm?

dylib是?

June 7, 2023

"dylib" 是 macOS(以及iOS)上的动态链接库(Dynamic Library)的文件扩展名。

动态链接库是一种可重用的二进制代码集合,它可以被多个程序共享并在运行时动态加载。与静态链接库(Static Library)相比,动态链接库在编译时不会被完全嵌入到程序中,而是在程序运行时由操作系统动态加载到内存中。

在 macOS 和 iOS 系统中,动态链接库的文件扩展名是 ".dylib"。这些库通常包含可被多个应用程序共享的代码和资源,如函数、类、变量以及其他符号。通过将共享代码放入动态链接库,可以减少可执行文件的大小,实现代码的复用,并允许对库进行更新和升级而无需重新编译整个程序。

gnueabihf是?

June 7, 2023

"gnueabihf" 是一个术语,通常用于描述与ARM架构相关的GNU/Linux系统中的一个特定ABI(应用程序二进制接口)。在这个术语中,"gnu"代表GNU项目,"eabi"代表嵌入式应用程序二进制接口(Embedded Application Binary Interface),"hf"代表硬浮点(hard float)。

GNUEABIHF是为了在ARM架构的处理器上实现兼容性和可移植性而设计的ABI标准之一。它定义了应用程序和操作系统之间的二进制接口规范,以便软件可以在不同的ARM处理器上运行,而不需要针对特定的处理器进行重新编译。GNUEABIHF还指定了如何处理浮点运算,以及如何传递参数和执行函数调用。

在GNUEABIHF中,"hf"表示硬浮点,这意味着浮点运算将由硬件浮点单元执行,而不是通过软件模拟。这通常会提高浮点运算的性能。

musl是?

June 7, 2023

"musl" 是一个轻量级的、快速的、符合标准的C库(libc),旨在用于UNIX-like操作系统。它是一个完全独立的C库实现,与其他常见的C库如GNU C Library(glibc)和uClibc不同。

musl的设计目标是提供一个高度可移植、高性能且易于使用的C库。它专注于遵循POSIX和C标准,并尽可能减少依赖关系和复杂性。musl的代码精简、可读性高,因此在资源受限的嵌入式系统或轻量级容器环境中非常受欢迎。

由于musl的设计原则,它通常与静态链接器一起使用,以生成独立可执行文件,减少运行时依赖。与动态链接器相比,这种静态链接方式可以减小可执行文件的大小,并提供更好的可移植性。

musl提供了与POSIX和C标准兼容的API,包括文件I/O、进程管理、内存分配和线程支持等功能。它还支持多种体系结构和操作系统,如x86、ARM、PowerPC、MIPS和RISC-V,以及Linux、BSD和其他UNIX-like系统。

许多Linux发行版和嵌入式系统选择使用musl作为默认的C库实现,以获得更小的可执行文件和更好的性能。同时,musl也被广泛用于一些特定的项目和应用领域,如容器技术、嵌入式设备和高性能计算等。

又看见一个sudo pip

June 4, 2023

this

pip前面加sudo……

我对作者应该没什么恶意,毕竟人只知道他知道的东西,但是你wakatime官网tutorial把这个链接放进去让用户参考也不注明问题,就很恶心了。

time to do university homework

June 2, 2023

最近要考试,要发表,要写作业,得停一停玩乐了……下周五之后准备看看vue和nuxt,争取拿这个东西做个小玩意出来.

如何阅读技术书籍

June 1, 2023

如果是动手实操型的,那就一定要仔细看,跟着做。

如果是理论型的,那就大致的看,尤其是英文的不太好看的,就看个大概意思就行了。

IEEE & IETF

May 31, 2023

IEEE的工作重点是推动新技术的发展和创新,而IETF则更侧重于制定和推广互联网标准。此外,IEEE还涉及到学术出版、会议组织等方面的工作,而IETF主要聚焦于技术标准的制定和推广。

关于literal

May 31, 2023

Literal是指在程序中直接出现的常量值,例如字符串、数字等,它们在编译时就会被赋予固定的值,因此常被视为不可变的。

在一些编程语言中,编译器会对常量值进行优化,以节省空间和提高程序的执行效率。例如,像C语言中,整型常量1会被编译器优化为一个字节的数据类型,因为1是一个较小的整数。这种优化可以减少内存占用和提高程序的执行效率。

js学习遇到瓶颈

May 31, 2023

js,我是完全瞎摸索过河,本来也就是一门没有什么特殊语法的,比较简单的语言,没怎么系统性的学过。

但是最近总感觉不踏实,是不是读一本书会好一点……看看动物书的Learning Typescript吧。

doom emacs 默认空格键前缀

May 29, 2023

好多常用的都移动到space下面了

好方便,C-x确实不好按(在我的键位设置上,我也想不到怎么改进),以后就用space和meta了,space下面没有的就用meta来查询

想学rust

May 29, 2023

尝试一周内掌握吧,虽然这周还挺忙的

因为现在好多cli工具都是用rust写的,可以抽点简单的做点PR什么的……

人生第一次PR

May 28, 2023

给chatgpt-shell-cli写了一个新功能。

也就20行,没什么了不得的,但是对我来说也是值得纪念的第一次。

shellscript再也不想碰了,再也,不想碰了。

容量告急

May 28, 2023

系统分区200g只剩50g了,怎么回事? 看了一下问题主要出在amd的rocm和docker上面,前者不知道有什么方法能解决,后者倒是可以指定到别的分区上。fstab帮帮我吧!

chatgpt写shell脚本

May 27, 2023

这种怪异的语法,还是靠chatgpt吧

以前写过一个200行以上的脚本,实在是非常折磨的经历(一个音乐格式转换同时自动填充tag的脚本)

关于go install

May 27, 2023

go install 出来的都是binary,所以没有uninstall,要删的话直接去$GOPATH(~/go/bin)删除

想用AMD gpu机器学习!

May 23, 2023

tensorflow不支持3.11 python, 我又不想装conda管理多版本的python环境

于是用docker了!tensorflow和pytorch都检测到了gpu,但还没试试能不能跑

fork bomb in sh

May 23, 2023

:(){ :|:& };: 被称为 "Fork炸弹" 。是一种拒绝服务(DoS)攻击,用于在Unix-like系统上耗尽系统资源,导致系统崩溃或变得不响应

  • :(){ ... };: 这是一个函数的定义和结束。函数名是 :,这是一个合法的函数名字。
  • :|: 这是函数的主体。它创建了两个进程,每个都是 : 函数的一个实例。| 是一个管道,它使得一个进程的输出成为另一个进程的输入。
  • & 这使得函数在后台运行。

当这个函数运行时,它不断地复制自己,每个复制又继续复制自己,以此类推,快速耗尽系统资源。

g++是?

May 23, 2023

g++是GCC(GNU编译器集合)的一部分,它是GCC的C++编译器。GCC是一款包含多种编程语言的编译器集合,除了g++之外,还包括了用于编译C、Objective-C、Fortran、Ada、Go等语言的编译器。因此,g++可以看作是GCC的一个组成部分,是GCC中负责C++编译的部分。

初遇Kaggle

May 23, 2023

好像是一个data science的竞赛网站,我是看到一些上面的教程,要下载数据集的时候要注册,于是看了看这是个什么网站

看起来像leetcode。。。

链接

在linux上压缩图像文件

May 21, 2023

使用imageMagisk

convert seminario-tabloide.png -resize 1024x test-1024x.jpg

convert test-1024x.jpg -quality 50% test-1024x-50p.jpg

要不要买个域名呢……

May 21, 2023

相中了几个, kud.life, rughzenhaide.com。前者要4500一年, 后者只要1400一年, 可能后者多买几年, 顺带加一个邮箱服务(不过看了一下一个月要800,还是算了?)