共有 277 篇文章
Wiki Install
2024-02-20 - 2024-09-18

Special pages

Editors

Parser hooks

API

Other

LocalSettings.php

网站图标

1$wgFavicon = "$wgResourceBasePath/resources/assets/snowflake_128.png";

短URL

在编译好的docker镜像中,已经配置好了apache,因此只要修改wiki的配置文件即可

SVG 结构
2024-02-08 - 2024-09-18
SVG
  • M = moveto(M X,Y):起始 将画笔移动到指定的坐标位置
  • L = lineto(L X,Y):连线 画直线到指定的坐标位置
  • H = horizontal lineto(H X):水平线 画水平线到指定的X坐标位置
  • V = vertical lineto(V Y):垂直线 画垂直线到指定的Y坐标位置
  • C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY):三次贝塞尔曲线
  • S = smooth curveto(S X2,Y2,ENDX,ENDY):三次贝塞尔曲线
  • Q = quadratic Belzier curve(Q X,Y,ENDX,ENDY):二次贝塞尔曲线
  • T = smooth quadratic Belzier curveto(T ENDX,ENDY):二次贝塞尔曲线 映射
  • A = elliptical Arc(A RX,RY,XROTATION,FLAG1,FLAG2,X,Y):椭圆弧 弧线
  • Z = closepath():闭合(从最后一个点连直线到起始点)关闭路径

使用大写字母表示绝对位置,小写字母表示相对位置(相对于起点的位置,向右向下为正)。

Debian 触摸板 Touchpad
2024-02-06 - 2024-09-18

使触摸板敲击(不是按压)时也产生左键事件

1sudo apt install xserver-xorg-input-synaptics
2sudo vim /etc/X11/xorg.conf.d/50-synaptics.conf

在文件中添加以下内容

 1Section "InputClass"
 2    Identifier "touchpad catchall"
 3    Driver "synaptics"
 4    MatchIsTouchpad "on"
 5
 6    Option "TapButton1" "1"            #单指敲击产生左键事件
 7    Option "TapButton2" "2"            #双指敲击产生中键事件
 8    Option "TapButton3" "3"            #三指敲击产生右键事件
 9
10    Option "VertEdgeScroll" "on"       #滚动操作:横向、纵向、环形
11    Option "VertTwoFingerScroll" "on"
12    Option "HorizEdgeScroll" "on"
13    Option "HorizTwoFingerScroll" "on"
14    Option "CircularScrolling" "on"
15    Option "CircScrollTrigger" "2"
16
17    Option "EmulateTwoFingerMinZ" "40" #精确度
18    Option "EmulateTwoFingerMinW" "8"
19    Option "CoastingSpeed" "20"        #触发快速滚动的滚动速度
20
21    Option "PalmDetect" "1"            #避免手掌触发触摸板
22    Option "PalmMinWidth" "3"          #认定为手掌的最小宽度
23    Option "PalmMinZ" "200"            #认定为手掌的最小压力值
24EndSection

键入时禁止触摸板

键入时禁止触摸板可以避免焦点变化,影响当前的输入。 对于使用 startx 来启动的桌面系统,可以修改其 .xinitrc 初始化配置文件来完成:

暴力删除registry镜像文件
2024-01-29 - 2024-09-18

暴力删除registry镜像文件

直接进入这个目录删除仓库 /HHD4/docker/docker_hub/docker/registry/v2/repositories

进入docker实例执行垃圾回收 /bin/registry garbage-collect /etc/docker/registry/config.yml

重启registry

Gorm 数据库操作
2024-01-26 - 2024-09-18

RawMessage Scan&Value

json.RawMessage[]byte形式存储json数据,但在父结构体marshal和unmarshal时不会重复序列化,仅仅将数据复制到新json字符串中

通过继承Scanner和Valuer实现结构体变量写入和读出数据库

合并字体文件
2024-01-22 - 2024-09-18

使用i3的时候终端总是却一些字体,比如FontAwesome, 调了半天也没法解决, 无奈只能将所有用到的字体合并成一个字体

使用FontCreator打开要合并的字体文件

HTTP GET/POST
2024-01-20 - 2024-09-18

接收端

首先我们有这样一段测试代码来接收 POST 请求,并返回其接收到的字段信息。

 1package main
 2
 3import (
 4	"fmt"
 5	"log"
 6	"net/http"
 7)
 8
 9func urlencodedHandler(w http.ResponseWriter, r *http.Request) {
10	err := r.ParseForm()
11	if err != nil {
12		log.Printf("r.ParseForm(): %v", err)
13		return
14	}
15
16	result := ""
17	for k, v := range r.Form {
18		result += fmt.Sprintf("%s:%v\n", k, v)
19	}
20
21	fmt.Fprintf(w, result)
22}
23
24func multipartHandler(w http.ResponseWriter, r *http.Request) {
25	err := r.ParseMultipartForm(4 * 1024 * 1024)
26	if err != nil {
27		log.Printf("r.ParseForm(): %v", err)
28		return
29	}
30
31	result := ""
32	for k, v := range r.MultipartForm.Value {
33		result += fmt.Sprintf("%s:%v\n", k, v)
34	}
35
36	for k, v := range r.MultipartForm.File {
37		result += fmt.Sprintf("%s:%v\n", k, v)
38	}
39
40	fmt.Fprintf(w, result)
41}
42
43func main() {
44	http.HandleFunc("/urlencoded", urlencodedHandler)
45	http.HandleFunc("/multipart", multipartHandler)
46
47	log.Fatal(http.ListenAndServe(":8080", nil))
48}

发送 urlencoded 请求

urlencoded 主要用于纯文本请求,代码如下:

还原鼠标右键 Restore old Right-click Context menu in Windows 11
2024-01-18 - 2024-09-18

右键菜单改回Win10(展开)

1reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
2taskkill /f /im explorer.exe & start explorer.exe

右键菜单改回Win11(折叠)

1reg delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f
2taskkill /f /im explorer.exe & start explorer.exe
队列 Queue
2024-01-06 - 2024-09-18

介绍

元素为[]byte的队列的golang实现(适用于多线程环境下,当然单线程也能用 如果想更改队列的元素类型,请自行将queue [][]byte中的[]byte替换为其他类型,同时修改函数中的相关代码

Pake: 打包网页为桌面端应用
2024-01-04 - 2024-09-18

https://github.com/tw93/Pake/tree/master

安装程序

1npm install pake-cli -g 

安装依赖

 1sudo apt install libwebkit2gtk-4.0-dev \
 2    build-essential \
 3    curl \
 4    wget \
 5    file \
 6    libssl-dev \
 7    libgtk-3-dev \
 8    libayatana-appindicator3-dev \
 9    librsvg2-dev
10# 安装rust
11curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

打包网站

Nvidia 显卡驱动
2024-01-03 - 2024-09-18

Nvidia 驱动在Linux下, 必须安装 Xorg

查看显卡信息

 1lspci -k | grep -EA3 'VGA|3D|Display'
 2lspci | grep VGA
 3lspci | grep -i nvidia
 4# 查看指定显卡的详细信息用以下指令
 5lspci -v -s 00:0f.0
 6# Nvidia自带一个命令行工具可以查看显存的使用情况:
 7nvidia-smi
 8# Fan:显示风扇转速,数值在0到100%之间,是计算机的期望转速,如果计算机不是通过风扇冷却或者风扇坏了,显示出来就是N/A; 
 9# Temp:显卡内部的温度,单位是摄氏度;
10# Perf:表征性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能;
11# Pwr:能耗表示; 
12# Bus-Id:涉及GPU总线的相关信息; 
13# Disp.A:是Display Active的意思,表示GPU的显示是否初始化; 
14# Memory Usage:显存的使用率; 
15# Volatile GPU-Util:浮动的GPU利用率;
16# Compute M:计算模式; 
17
18# 如果要周期性的输出显卡的使用情况,可以用watch指令实现
19watch -n 10 nvidia-smi
20
21# 检测显卡驱动是否正常
22sudo apt-get install hwinfo
23hwinfo --display

安装核显驱动

Intel 核显不需要单独安装驱动,系统自带