enX

enX 开发环境 vscode 本地测试 在 Chrome 里打开 Manage Extensions: chrome://extensions/ Reload enX 在 Chrome 里打开 InfoQ 里任意一篇文章 点击扩展栏里的 enX enX 会标记文章正文部分的英文词 unit test cd /Users/wiloon/workspace/projects/enx/chrome-enx npm run test -- infoq.test.js deploy api to local vm commit and push enx to GitHub go to jenkins run deploy env DNS: 192.168.50.1:53, dnsmasq Nginx: 192.168.50.130 api: 192.168.50.36:8080 https://github.com/wiloon/enx/blob/main/enx-api/deploy.sh

2024-10-17 · 1 min · 55 words · -

dual boot windows and ubuntu

dual boot windows and ubuntu https://askubuntu.com/questions/1506694/dual-boot-with-windows-11-and-bitlocker/1514161#1514161 Ubuntu 版本: 22.04 用 clonezill 备份硬盘 在硬盘上准备一块空闲的空间, 用 windows 的磁盘管理工具调整现有的分区 用 balenaEtcher 制作 ubuntu 安装盘 (U盘) 在 BIOS 里确认 Secure Boot 已经开启 用分区工具在 U 盘或移动硬盘上准备一个大于 100MB 的 FAT32 分区 从 U 盘引导, 安装 ubuntu, 选择 Try or install Ubuntu Select Language: English Install> Install Ubuntu Keyboard: English(US)> English(US) Wireless What apps would you like to install to start with: Minimal installation 勾选 Install third-party software for graphics and wi-fi hardware and additional media formats 勾选 Configure Secure Boot, 设置 Secure boot 密码 备份 windows 的 EFI 分区 到 U 盘 (/dev/sda2) open a terminal with ctrl+alt+t ...

2024-05-19 · 6 min · 1242 words · -

plantuml, puml

plantuml, puml UML 序列图, Sequence Diagram 用例图, Use Case Diagram 类图, Class Diagram 对象图, Object Diagram 活动图, Activity Diagram 组件图, Component Diagram 部署图, Deployment Diagram 状态图, State Diagram 时序图, Timing Diagram 非 UML 图 架构图, Archimate diagram UML 图 时序图, Sequence Diagram @startuml Alice -> Bob: Authentication Request Bob --> Alice: Authentication Response Alice -> Bob: Another authentication Request Alice <-- Bob: Another authentication Response Alice ->> Bob: async msg @enduml 类图, Class Diagram @startuml skinparam classFontColor red class Foo note left: parent class Bar Bar : String field0 Bar : String method0() Foo<|--Bar note left: child abstract class Abstract0 Foo--|>Abstract0 interface Interface0 ' 注意, 接口名和冒号之间必须用空格分隔 Interface0 : void method0() class Class0{ - private_field_0 } @enduml @startuml skinparam class { BackgroundColor Lightblue ArrowColor #0ACF97 BorderColor #d5d5d5 } skinparam stereotypeCBackgroundColor YellowGreen Class101 <|.. Class102 @enduml 活动图, Activity Diagram @startuml !theme plain start if (foo?) then (yes) :process0; else (no) :process1; endif stop @enduml 组件图, Component Diagram 别名后面可以标注颜色 修改线和箭头的颜色 文字颜色 语法 # 把组件显示成普通矩形 skinparam componentStyle rectangle # 组件间横向距离 skinparam nodesep 10 # 组件间纵向距离 skinparam ranksep 10 @startuml skinparam componentStyle rectangle skinparam nodesep 10 skinparam ranksep 10 skinparam ParticipantFontColor #A9DCDF ' comments line starts by single quote, 注释 [First component] [Another component] as Comp2 component Comp3 component [Last\ncomponent] as Comp4 [component0] as c0 #ff0000 [<color:#ff0000>component1</color>] as c1 [component2] as c2 [component3] as c3 [component4] as c4 c0 -- c1 c0-[#00ff00]-c2 c1--c3 c0--c3 c2--c4 note left of c0 note0 end note @enduml 部署图, Deployment Diagram @startuml circle 1 circle 2 circle 3 agent 4 1 -- 2 1 -- 3 1 -- 4 queue 5 4 -right- 5 5 -right-2 @enduml 状态图, State Diagram @startuml [*] --> State1 State1 --> [*] State1 : this is a string State1 : this is another string State1 -> State2 State2 --> [*] @enduml 安装 graphviz sudo apt-get install -y graphviz https://graphviz.org/download/ ...

2024-03-19 · 3 min · 620 words · -

BNF 巴科斯范式

BNF 巴科斯范式 BNF & Augmented BNF 巴科斯范式 巴科斯范式(BNF: Backus-Naur Form 的缩写) 是由 John Backus 和 Peter Naur 首次引入一种形式化符号来描述给定语言的语法 (最早用于描述ALGOL 60 编程语言) 。 确切地说,早在UNESCO (联合国教科文组织) 关于ALGOL 58的会议上提出的一篇报告中,Backus就引入了大部分BNF符号。 虽然没有什么人读过这篇报告,但是在Peter Naur读这篇报告时,他发现Backus对ALGOL 58的解释方式和他的解释方式有一些不同之处,这使他感到很惊奇。 首次设计ALGOL的所有参与者都开始发现了他的解释方式的一些弱点,所以他决定对于以后版本的ALGOL应该以一种类似的形式进行描述,以让所有参与者明白他们在对什么达成一致意见。 他做了少量修改,使其几乎可以通用,在设计ALGOL 60的会议上他为ALGOL 60草拟了自己的BNF。 看你如何看待是谁发明了BNF了,或者认为是Backus在1959年发明的,或者认为是Naur在1960年中发明。 (关于那个时期编程语言历史的更多细节,参见1978年8月,《Communications of the ACM (美国计算机学会通讯) 》, 第21卷,第8期中介绍Backus获图灵奖的文章。这个注释是由来自Los Alamos Natl.实验室的William B. Clodius建议的) 。 现在,几乎每一位新编程语言书籍的作者都使用巴科斯范式来定义编程语言的语法规则。 巴科斯范式的内容 在双引号中的字(“word”)代表着这些字符本身。而double_quote用来代表双引号。 在双引号外的字 (有可能有下划线) 代表着语法部分。 尖括号 <> 内包含的为必选项。 方括号 [] 内包含的为可选项。 大括号 {} 内包含的为可重复 0 至无数次的项。 竖线 | 表示在其左右两边任选一项,相当于"OR"的意思。 ::= 是"被定义为"的意思。 巴科斯范式示例 这是用BNF来定义的Java语言中的For语句的实例: FOR_STATEMENT ::= ...

2024-03-11 · 2 min · 240 words · -

pacman command

pacman command 参数, options -Sy # 仅同步源 -Syy # 两个 y 代表强制更新 database 文件, 即使文件看起来是最新的, 回退到旧版本的时候会用到 -Syyuu # 降级软件包的时候用 -Q # 查询 本地 pacman 数据库, 比如查询某一个已经安装的包的版本 pacman -Q openssl -Qd, -d, --deps # list packages installed as dependencies [filter] -Qt, -t, --unrequired # list packages not (optionally) required by any package (-tt to ignore optdepends) [filter] -Qh, -Q -h, print help -Ql <boost-libs> #D isplay file list provided by local package -Qk # Check the local package database -Qo /path/to/file # Check if the file is owned by any package, 查看某个文件属于哪个包 -Qq, -q, --quiet show less information for query and search, 省略版本号 -Qs 关键字: 搜索已安装的软件包。 -Qi 软件名: 查看某个软件包信息,显示软件简介,构架, 依赖,大小等详细信息。 -Qu: 列出所有可升级的软件包 -Qdtq 显示了不必要的依赖关系列表 -Qqe 列出所有显式安装(-e,explicitly显式安装;-n忽略外部包AUR) -Qqd 列出自动安装的包(-d,depends 作为依赖项) -Qqdt 列出孤立的包(-t 不再被依赖的 "作为依赖项安装的包") -F 查询远程仓库里的软件包 -Fl 比如在安装软件包之前查询一下远程仓库, 看看会有哪些文件安装到本地 --needed 已经是最新版本的包,不会再重新安装 -R 删除软件包 -b 指定 database 路径, 默认 /var/lib/pacman -r 指定安装软件包的 root 路径, 默认 / -Rdd 要删除软件包,但是不删除依赖这个软件包的其他程序, pacman -Rdd package_name -Qqo '/path/to/dir' 查看文件关联的包 -Rsn -Rs, -s, --recursive remove unnecessary dependencies, 同时删除本机上只有该软件依赖的软件。有其他包可选依赖这个包的话 pacman 会警告你,有其他包依赖这个包的话 pacman 会阻止你 -Ru 软件名: 删除软件,同时删除不再被任何软件所需要的依赖。 -Sg 软件包组: 查看某软件包组所包含的所有软件包。 -Sc:清理未安装的包文件,包文件位于 /var/cache/pacman/pkg/ 目录。 -Scc:清理所有的缓存文件。 commands # 查看安装了多少个包 pacman -Qq|wc -l 查看软件包依赖, pactree # pactree 由 pacman-contrib 包提供 pacman -S pacman-contrib # 查看 package_0 依赖了哪些软件包 pactree package_0 # 查看 package_0 被哪些软件包依赖了 # 查看哪些包依赖 package_0 pactree -r package_0 把 openssl 包安装到指定的目录 pacman -Sy openssl -b /var/lib/pacman -r 2022-11-04 在仓库里搜索有关 foo 的包 pacman -Ss foo # pacman 的 help pacman -h # -Q 的 help pacman -Q -h pacman -Q # 列出已经安装的软件包 pacman -Q boost-libs # Display version pacman -Ql boost-libs # Display file list provided by local package # 查看文件/命令属于哪个包, Check if the file is owned by any package, 查看命令由哪个包提供. pacman -Qo /etc/profile # 检查包对应的文件有没有缺失, #Check the local package database pacman -Qk filesystem # 打印详细信息,比如 文件 是否有修改 修改时间, 大小 , md5 pacman -Qkk filesystem # 安装下载的 gvim 包,或新编译的 gvim 包 pacman -U /var/cache/pacman/pkg/gvim-8.2.4106-1-x86_64.pkg.tar.zst downgrade 降级软件包 去 archive 时手动下载 https://archive.archlinux.org/packages/, 然后 pacman -U 安装 ...

2024-02-06 · 5 min · 1021 words · -

Books

books 读书 平时看到有人推荐好书就忍不住想屯几本,但是到了读书的时候大都是看了几页几十页就被各种事情打断了…, 很少有一本书能读完的,从 2021 年开始计划着多花些时间读书,从第一页读到最后一页的那种。然后就有了这里的列表。 2025 Elon Musk Author/作者: [美]沃尔特·艾萨克森 译作名: 埃隆·马斯克传 译者: 孙思远 / 刘家琦 Elon Musk Author/作者: [美] 阿什利·万斯 译作名: 硅谷钢铁侠 译者: 周恒星 Steve Jobs Author/作者: [美]沃尔特·艾萨克森 译作名: 史蒂夫·乔布斯传 译者: 赵灿 The Gardener and the Carpenter Author/作者: [美] 艾莉森•高普尼克(Alison Gopnik) 译作名: 园丁与木匠 译者: 刘家杰 / 赵昱鲲 三体 Author/作者: 刘慈欣 The Scientist in the Crib Author/作者: [美]艾莉森•高普尼克 / [美]安德鲁•梅尔佐夫 / [美]帕特里夏•库尔 译作名: 孩子如何学习 译者: 林文韵 / 杨田田 The Philosophical Baby ...

2023-12-11 · 2 min · 286 words · w10n

磁盘性能测试

磁盘性能测试 https://blog.csdn.net/zqtsx/article/details/25487185 linux 下测试磁盘的读写 IO 速度 (IO物理测速) hdparm 这是一个是用来获取 ATA/IDE 硬盘的参数的命令, 是由早期 Linux IDE 驱动的开发和维护人员 Mark Lord 开发编写的 (hdparm has been written by Mark Lord, the primary developer and maintainer of the (E)IDE driver for Linux, with suggestions from many netfolk). 该命令应该也是仅用于 Linux 系统, 对于 UNIX 系统, ATA/IDE 硬盘用的可能比较少, 一般大型的系统都是使用磁盘阵列的. hdparm -Tt /dev/sda options -t 评估硬盘的读取效率。 -T 评估硬盘快取的读取效率。 /dev/sda: Timing cached reads: 6676 MB in 2.00 seconds = 3340.18 MB/sec ...

2023-05-18 · 2 min · 249 words · -

podman basic

podman basic install https://podman.io/getting-started/installation # archlinux install podman pacman -S podman # 提示选择 crun, runc, 选 crun # netavark aardvark-dns 会默认安装 # 正常情况,安装 podman 之后不需要重启系统, 但是如果有异常,比如 CNI 之类 的问题,可以考虑重启一下... Netavark Netavark 是一个 用 rust 实现的 配置 linux 容器网络的工具。 In addition to the existing CNI Out of the stack, Podman Now it also supports based on Netavark and Aardvark New network stack. The new stack features improved support for containers in multiple networks 、 improvement IPv6 Support, And improve performance. To ensure that there is no impact on existing users, used CNI The stack will keep the default value of the existing installation, The new installation will use Netvark. ...

2023-04-06 · 6 min · 1127 words · -

scp

scp scp 可以在两个 linux 主机间复制文件; # 复制目录 -r scp -r local_folder remote_username@remote_ip:remote_folder ash: /usr/libexec/sftp-server: not found This is a consequence(结果/后果) of your client machine using a very recent OpenSSH release (9.0 - check https://www.openssh.com/txt/release-9.0 62 for more info), which changes the scp program to use the SFTP protocol under the hood, which vanilla OpenWrt/dropbear installations do not support. To work around the problem on the client side, use the new -O (that is an uppercase letter “o”) switch when invoking scp, which will cause it to fall back to the legacy behavior. ...

2023-01-08 · 1 min · 205 words · -

nfs0

nfs # archlinux nfs-utils 包含客户端和服务端实现 sudo pacman -S nfs-utils # ubuntu, nfs client sudo apt install nfs-common nfs server nfs 依赖时钟, 需要 ntp 服务 archlinux enabled ntp by default https://blog.wiloon.com/ntp mkdir -p /data/nfs /mnt/nfs mount --bind /mnt/nfs /data/nfs vim /etc/fstab /mnt/nfs /data/nfs none bind 0 0 # NFS 服务的主配置文件 # 格式:[共享的目录] [主机名或IP(参数,参数)] vim /etc/exports /data/nfs *(rw,async,no_root_squash) # reload nfs config exportfs -arv # 查看 export dir exportfs -v sudo systemctl restart nfs-server sudo systemctl enable nfs-server showmount -e 127.0.0.1 nfs client linux client showmount -e servername mount server:/ /mountpoint/on/client windows client # 挂载之前先改注册表 需要读写权限的需要修改注册表 通过修改注册表将windows访问NFS时的UID和GID改成0即可,步骤如下 1. 在运行中输入regedit,打开注册表编辑器; 2. 进入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default条目; 3. Create two DWORD values namely AnonymousUid and AnonymousGid,十进制值跟nfs服务端文件 所属用户 的用户 id一致。 # 重启windows的NFS client service C:\Windows\system32>hostname DESKTOP-AE0D2H0 C:\Windows\System32>nfsadmin client DESKTOP-AE0D2H0 config casesensitive=yes The settings were successfully updated. C:\Windows\system32>nfsadmin client DESKTOP-AE0D2H0 stop The service was stopped successfully. C:\Windows\system32>nfsadmin client DESKTOP-AE0D2H0 start The service was started successfully. C:\Windows\system32> #win10 mount nfs 打开控制面板 > 程序 > 启用或关闭 Windows 功能,找到NFS服务打开子目录勾选NFS客户端与管理工具。 showmount -e [server] 显示 NFS 服务器导出的所有共享。 showmount -a [server] 列出客户端主机名或 IP 地址,以及使用"主机:目录"格式显示的安装目录。 showmount -d [server] 显示 NFS 服务器上当前由某些 NFS 客户端安装的目录。 # 挂载nfs mount -o anon \\192.168.50.220\data\nfs\data Z:\ #卸载 umount z: https://wiki.archlinux.org/index.php/NFS#Installation ...

2023-01-08 · 2 min · 271 words · -

vi basic, vim basic command

vi/vim basic, command commands vim -u NONE -N -n bigfile.txt # -u NONE: 不加载配置文件 # -u 后面跟的是要加载的配置文件路径。 # -u NONE:不加载任何配置,相当于“安全模式”或“干净模式”。 # -N: 启用现代兼容模式(非 Vi) # -n: 不创建 swap 文件 基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode) Command mode, 命令模式: 用户启动Vim之后,vim 默认是在命令模式。 Insert mode, 输入模式: i 切换到插入模式 Last line mode,底线命令模式: : 切换到底线命令模式 快捷键 ctrl + d 向下滚动半屏 ctrl + u 向上滚动半屏 基本插入 i: 在光标前插入;一个小技巧:按8,再按i,进入插入模式,输入=, 按 esc 进入命令模式,就会出现 8 个=。 这在插入分割线时非常有用,如`30i+<esc>`就插入了 36 个+组成的分割线。 I: 在当前行第一个非空字符前插入; gI: 在当前行第一列插入; a: 在光标后插入; A: 在当前行最后插入; o 小写 `o` 在当前行的下边插入新行, 在当前行的下边插入一行. O 大写 `O` 在当前行的上边插入新行. :r filename 在当前位置插入另一个文件的内容。 :[n]r filename 在第 n 行插入另一个文件的内容。 :r !date 在光标处插入当前日期与时间。同理,:r !command 可以将其它 shell 命令的输出插入当前文档。 escape/ESC 回到命令模式 ^v char 插入时忽略char的指定意义,这是为了插入特殊字符 vim 编辑二进制文件 # 注意用 -b,否则后面会有 0a vim -b test.bin # 以 16 进制格式查看 :%!xxd # 编辑完成后转换为二进制文件 :$!xxd -r :wq # force write :w! ### vim utf8 乱码 #### 查看文件编码 :set fileencoding # 临时显示行号 :set number # 不自动换行 :set nowrap # 自动换行 :set wrap 如果你只是想查看其它编码格式的文件或者想解决用 Vim 查看文件乱码的问题,那么你可以在 ~/.vimrc 文件中添加以下内容: ...

2022-12-15 · 6 min · 1261 words · -

go basic, golang basic

go basic, golang basic The Go Programming Language, Go 语言虽然是静态编译型语言, 但是它却拥有脚本化的语法, 支持多种编程范式(函数式和面向对象)。 Go 是 Google 开发的一种静态强类型、编译型、并发型, 并具有垃圾回收功能的编程语言。 罗伯特·格瑞史莫, 罗勃·派克及肯·汤普逊于 2007年9月开始设计 Go, 稍后 Ian Lance Taylor, Russ Cox 加入项目。 Go 是基于 Inferno 操作系统所开发的。 Go 语言是静态类型的编程语言 go source code https://github.com/golang/go version latest: 1.23.0 current: 1.17.7 install # macos brew search golang brew upgrade golang hello world package main import "fmt" func main() { fmt.Println("hello world") } go run hello-world.go go build hello-world.go ./hello-world 升级依赖包版本, upgrade package version go list -m all|grep redis # go list 返回: github.com/redis/go-redis/v9 v9.0.2 # 升级 go-redis 版本 go get -u github.com/redis/go-redis/v9 # -u The -u flag instructs get to update modules providing dependencies of packages named on the command line # to use newer minor or patch releases when available. # 不带 -u 的 go get 在发现依赖包已经存在的时候不会更新, 加 -u 参数会检查依赖包是否有更新然后下载新版本. # 升级 go-redis 到 9.0.4 go get -u github.com/redis/go-redis/v9@v9.0.4 -u 更新包,包括他们的依赖项 -v 输出详细信息 http://studygolang.com/articles/1941 ...

2022-12-11 · 7 min · 1425 words · -

JetBrains, idea, basic

JetBrains, idea, basic file> open recent, 点击打开项目的同时按 ctrl 会在新窗口打开 jetbrain> Git, 选中分支名 Ctrl + C 会复制分支名 HiDPI https://intellij-support.jetbrains.com/hc/en-us/articles/360007994999-HiDPI-configuration search everywhere (shift shift)> “Show HiDPI Info” vm option help> edit custom vm options> add line “-Dsun.java2d.uiScale.enabled=true” JetBrains keys, 快捷键 列编辑/column selection mode, Alt+Shift+Insert, Alt+Shift+i Expand All, Ctrl+Shift+= goto line: Ctrl + g ctrl + shift + k, git push ctrl + alt + y, reload from disk ctrl + alt + f, find in files ctrl + n, Down ctrl + p, Up ctrl + f, Right ctrl + b, Left ctrl + [, Move caret to code block start ctrl + ], Move caret to code block end ctrl + shift + i, generate date ctrl + shift + f, find in file ctrl + alt + l, reformat code ctrl + shift + o, Run ctrl + shift + up, move statement up ctrl + shift + down, move statement down alt + sift + up, move line up CTRL+SHIFT+N 查找文件 ...

2022-12-09 · 2 min · 417 words · -

athens

athens, go package cache/repo 私服, go package 私有仓库, go package 服务器 Athens: Go Packages 服务器, 私服, go package 私有仓库, 其它可选方案 Nexus. nerdctl nerdctl volume create athens-data nerdctl run -d \ --name athens \ -p 4000:3000 \ -v athens-data:/var/lib/athens \ -e ATHENS_STORAGE_TYPE=disk \ -e ATHENS_DISK_STORAGE_ROOT=/var/lib/athens \ gomods/athens:v0.16.0 docker docker volume create athens-data docker run -d \ --name athens \ -p 4000:3000 \ -v athens-data:/var/lib/athens \ -e ATHENS_STORAGE_TYPE=disk \ -e ATHENS_DISK_STORAGE_ROOT=/var/lib/athens \ gomods/athens:v0.15.4 podman volume create athens-data vim /var/lib/containers/storage/volumes/athens-data/_data/download-mode downloadURL = "https://goproxy.cn" mode = "async_redirect" podman run -d \ --name athens \ -p 4000:3000 \ -v athens-data:/var/lib/athens \ -e ATHENS_DISK_STORAGE_ROOT=/var/lib/athens \ -e ATHENS_STORAGE_TYPE=disk \ -e ATHENS_DOWNLOAD_MODE=file:/var/lib/athens/download-mode \ gomods/athens:v0.15.4 GOPROXY=http://127.0.0.1:4000 && go get github.com/google/uuid@v1.4.0 GOPROXY=http://192.168.50.63:4000 && go get github.com/google/uuid@v1.4.0 https://docs.gomods.io/ ...

2022-11-29 · 1 min · 118 words · -

ls command

ls command ls 默认列出当前目录的内容, ls 是 list 的缩写 ls 命令默认会按照文件名字母序排序 find $PWD | xargs ls -ld ls -lrth # -l 默认按文件名排序 ls -l # 只列出目录 ls -d foo* ls -dl foo* ls -l | grep ^d # 子目录所有文件 ls -lR|grep ^- ls -lR|grep ^-|awk '{print $9}' # 列出重复的行 ls -lR|grep ^-|awk '{print $9}'|sort|uniq -d 参数 -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 -t 选项,将首先按照文件的最后修改时间排序 (时间越新越靠前) ,之后再按字母顺序排 -i 打印出文件的 inode -R 列出所有子目录 -L 当文件是软链接时, 直接显示被链接的文件的信息 -T 结合 -l 可将时间显示为 hh:mi:ss 的形式,但不会按时间排序,因而不会影响默认字母排序 -S 按文件大小排序,越大越靠前 -u 结合 -l 选项可以看到每个文件最后被访问的时间,并且也会按该时间排序 以上影响排序的选项如果结合 -r 选项一起使用,则按相反顺序排列 ...

2022-11-17 · 1 min · 87 words · -

scrum poker, 点数估算

scrum poker Scrum Poker Cards (Agile) Android, iOS https://artarmin.com/embed/#?secret=jkb2vbmib7 scrum poker online, 在线点数估算 https://www.scrumpoker-online.org/en/room/04930078

2022-11-17 · 1 min · 14 words · -

chrome weak up api, keep screen on, 屏幕常亮

chrome weak up api, keep screen on, 屏幕常亮 chrome: enable-experimental-web-platform-features web 页面支持 https 才能使用 wake lock api android: 系统开启开发者模式 chrome 74 chrome://flags/#enable-experimental-web-platform-features Note: Like most other powerful web APIs, the Wake Lock API is only available when served over HTTPS. chrome 79+ Chrome Updates Experimental Wake Lock API Support https://www.infoq.com/news/2019/11/chrome-wakelock-api/#:~:text=The%20Wake%20Lock%20API%20prevents%20some%20aspect%20of,this%20feature%2C%20adding%20promises%20and%20wake%20lock%20types. To use the Wake Lock API, developers need to enable the #enable-experimental-web-platform-features flag in chrome://flags. chrome://flags enable-experimental-web-platform-features keep-screen-on.js export function wakeLock () { if ('wakeLock' in navigator && 'request' in navigator.wakeLock) { console.log('wakeLock supported') try { navigator.wakeLock.request('screen') console.log('Wake Lock is active') } catch (e) { console.error(`${e.name}, ${e.message}`) } } else { console.log('no wakeLock support') } } vue script <script lang="ts"> import HelloWorld from './components/HelloWorld.vue' import { Component, Vue } from 'vue-property-decorator' import { wakeLock } from './assets/keep-screen-on.js' @Component({ components: { HelloWorld } }) export default class App extends Vue { drawer = false foo = '' mounted () { this.$vuetify.theme.dark = true wakeLock() } } </script> demo https://wake-lock-demo.glitch.me/ ...

2022-11-08 · 1 min · 170 words · -

三菱欧蓝德, Outland

三菱欧蓝德, Outland 机油 机油:矿物质 5000km,半合成 7500km,全合成 8000-10000km,平时行使道路越畅通,机油时效越长, 驾驶沉稳不经常暴力的,全年使用0W-20没问题(强烈推荐),此机油也特别适合北方冬季使用, 时常习惯开快车的建议全年 5W-30, 天天开暴力机车的,建议 5W-40;2,机油格(机油滤清器):每次换机油必须一同更换; 矿物机油 矿物机油以石油提炼的矿物油为基础,然后添加添加剂制造而成。矿物机油最普通,整体性能一般,价格最便宜,主要用于中低端车型,一般车辆每跑5000公里或者半年时间一换,时间和公里数以先到者为准; 全合成机油 全合成机油是化学合成的机油,成本较高,它的高低温性、高速润滑效果非常突出,一般用于中高档车型。涡轮增压车型因为其转速高、扭矩变化大,基本都是推荐使用全合成机油。全合成机油一般每10000公里或者一年一换,相比矿物机油更耐用,更换周期更长。 半合成机油介于矿物油和全合成机油之间,本身由矿物机油和全合成机油以4:6比例混合而成。一般每7500公里或者9个月一换。 时间或者公里数达到后尽快去更换机油,最好是不要超出1000-2000的公里,超过2000公里因为机油润滑保护作用的下降,继续使用将损害发动机。 0W-20, 5W-30 0W 的机油会在 -35℃ 的时候结冰 5W 代表耐外部低温 -30°C 20W 耐低温为 -15°C 前面的数字越小说明机油的低温流动性越好,代表可供使用的环境温度越低,在冷启动时对发动机的保护能力越好,如 5W 代表耐外部低温 -30°C,而 20W 耐低温为 -15°C。W 后面的数字代表机油在 100℃ 时的运动粘度,数值越高说明粘度越高。40 代表 100 摄氏度时运动粘度标准为 12.5mm2/s 到 16.3mm2/s 之间 根据说明书选择。原厂机油一般是厂家根据车辆发动机活塞与缸体间隙来选定,如换用高型号的机油,会使发动机有一定磨损。 根据公里数逐渐增加型号。前10万公里完全可以用20的机油,10 万到 20 万可以选择 30 的机油,20 万以后选择 40 的机油。但如果之前一直使用高型号的机油,建议最好还是不要降低型号。 根据使用地点选择型号。需要根据机油冷启动性能的指标来选择,比如你要是在南方,用5甚至10的绝对没有问题,如果在北部,最好用5甚至0开头的。 机滤 每次换机油的时候一起换; 机油滤芯也叫“机油滤清器”,其上游是机油泵,下游是发动机中需要润滑的各零部件。 轮胎 225 55 R18 胎压 240 kPa 2.4 bar 34.8 psi 三菱欧蓝德乘用车的原厂胎压标准是 2.3-2.5bar 都属于正常范围,最高不要超过3.0,最低不要低于2.1, 高一点没关系,但是低压非常危险。冷车和空车时测量胎压最为准确,如果低压非常低就该检查轮胎是否有漏气现象,不分前后轮,因为乘用车一般不存在承重问题, 胎压过大,会导致,轮胎与地面的基础面降低,可以降低油耗,但是也会影响制动力,胎压过低,会导致,轮胎侧壁直接磨损地面,过快,或过久行驶,导致侧壁破裂,甚至爆胎。 ...

2022-10-28 · 1 min · 111 words · -

ssh command, openssh

ssh command, openssh 端口转发 ssh 不登陆直接执行命令 openssh 9.0 sftp-server options, 参数 -T: 禁止分配伪终端, Disable pseudo-terminal allocation -t 或 -tt: 强制分配伪终端, Force pseudo-terminal allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu servi ces. Multiple -t options force tty allocation, even if ssh has no local tty -f:后台执行ssh指令 -N:不执行远程指令 -L listen-port:host:port 指派本地的 port 到达端机器地址上的 port, 建立本地SSH隧道(本地客户端建立监听端口), 将本地机(客户机)的某个端口转发到远端指定机器的指定端口. -v: verbose -vv: verbose -o: 指定配置选项, 具体参数看 “配置选项” 配置选项 StrictHostKeyChecking=no 忽略主机密钥验证 ssh -vv -T -oKexAlgorithms=ecdh-sha2-nistp521 git@foo.com KexAlgorithms: key exchange algorithm commands # 指定 shell 可以解决 This account is currently not available. sudo -u username -s /bin/bash ssh 不登陆直接执行命令 ssh root@192.168.50.31 "whoami" # 也可以用单引号 ssh root@192.168.50.31 'whoami' 指定私钥, 指定密钥 ssh -i /path/to/id_rsa 测试 ssh -T git@github.com ssh 强制使用密码登录, force ssh client to use only password auth ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no 192.168.50.1 -l root #debian sudo apt-get install openssh-server #archlinux sudo pacman -S openssh sudo /etc/init.d/ssh start|stop|restart ssh IP ssh IP -p 1234 -l root # ssh version ssh -V ubuntu sudo apt install openssh-server sudo systemctl start sshd -A option enables forwarding of the authentication agent connection There is a shortcut to archive this, if we don’t want to create a config file, we have another option, using -A flag with the ssh command. ...

2022-10-20 · 4 min · 765 words · -

calibre, 电子书管理, calibre-web

calibre, 电子书管理 calibre-web k8s calibre-dp.yaml apiVersion: apps/v1 kind: Deployment metadata: name: calibre-web namespace: default spec: replicas: 1 selector: matchLabels: name: calibre-web template: metadata: labels: name: calibre-web spec: containers: - name: calibre-web-container image: lscr.io/linuxserver/calibre-web:0.6.25 imagePullPolicy: IfNotPresent env: - name: PUID value: "1000" - name: PGID value: "1000" - name: TZ value: "Asia/Shanghai" - name: DOCKER_MODS value: "linuxserver/calibre-web:calibre" - name: OAUTHLIB_RELAX_TOKEN_SCOPE value: "1" ports: - containerPort: 8083 volumeMounts: - name: calibre-data mountPath: /config subPath: calibre-data volumes: - name: calibre-data persistentVolumeClaim: claimName: pvc0 --- apiVersion: v1 kind: Service metadata: name: calibre-web-service namespace: default spec: type: NodePort ports: - name: http port: 18083 targetPort: 8083 nodePort: 31083 selector: name: calibre-web web podman run -d \ --name=calibre-web \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Asia/Shanghai \ -e DOCKER_MODS=linuxserver/calibre-web:calibre \ -e OAUTHLIB_RELAX_TOKEN_SCOPE=1 \ -p 8083:8083 \ -v calibre-data:/config \ -v calibre-library:/books \ --restart unless-stopped \ lscr.io/linuxserver/calibre-web:latest GUI podman run -d \ --name=calibre \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Asia/Shanghai \ -p 8080:8080 \ -p 8081:8081 \ -v calibre-data-tmp:/config \ --restart unless-stopped \ lscr.io/linuxserver/calibre:latest mail server setup https://github.com/janeczku/calibre-web/wiki/Setup-Mailserver

2022-10-12 · 1 min · 174 words · -