软路由

软路由的性能由cpu决定,r2s以上都可以跑满1000m
虚拟机内存需求极大
物理机1-2g足够了

硬件

硬盘

不存在大量的读写

  • nvme协议
  • u盘协议

网口

  • WAN接口是用来连接外网的,也被称之为广域网接口(Wide Area Network)
  • LAN接口用来连接内网中的设备(Local Area Network)
    一个路由器通常有一个WAN口,多个LAN口。

    网卡

    intel更加友好,尤其是对虚拟机
    2.5g内网
    性能足够的软路由>交换机+弱软路由

总结

  • 网卡上限
  • cpu下限
  • nas最好x86,尽可能cpu足够好

虚拟机

阅读更多

anki-sync-server

dependences

必要

公网IPv4
linux服务器
docker
docker-compose

可选

ddns 没有ddns,可以将服务器同步地址改为你的ipv4地址,例如http://69.31.25.33:8080
端口映射 不一定要用ikuai的,路由器自带的端口映射也可以用

服务器配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
l4rk@l4rkserver:~/docker-compose$ cat docker-compose.yml
version: "3.7"
services:
anki_sync_server:
image: jeankhawand/anki-sync-server:23.12.1
restart: unless-stopped
ports:
- "52502:8080" #将docker容器中的8080端口映射到linux主机的52502端口
environment:
- SYNC_USER1=账号:密码
volumes:
- anki_data:/home/anki
# network_mode: host 没有网络问题,不直接走主机的网络
volumes:
anki_data: #创建anki_data的卷来专门存放anki的数据

docker项目暂时只有24.04,23.12.1,23.10这几个tag,后续版本更新不知道是否会同步适配.但既然已经在anki官方库中提交了PR应该会继续维护.

启动

1
docker-compose up -d
阅读更多

pve下的虚拟机扩容

在web端硬件-磁盘-磁盘操作增加磁盘大小

再依靠gparted,没有的话就安装下

1
apt install gparted

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
root@l4rkserver:~/omnivore# parted /dev/sda

GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) print
Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an extra 10485760 blocks) or continue with the current setting?
Fix/Ignore? fix
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 26.8GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 2150MB 2147MB linux-swap(v1) swap
3 2150MB 21.5GB 19.3GB ext4

(parted) resizepart 3 100%
Warning: Partition /dev/sda3 is being used. Are you sure you want to continue?
Yes/No? y
(parted) print
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 26.8GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 2150MB 2147MB linux-swap(v1) swap
3 2150MB 26.8GB 24.7GB ext4

root@l4rkserver:~/omnivore# resize2fs /dev/sda3
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/sda3 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 3
The filesystem on /dev/sda3 is now 6028795 (4k) blocks long.

搞定

阅读更多

pve lvm磁盘管理

理论

磁盘

磁盘有三种类型

  • physic volume
  • logic volume
  • volume group
    下面分别用pv,lv,vg简称

    抽象的一点是,lv大小可以超过pv的大小
    例如,pv A的大小是5G,而在pv上的lv a的磁盘大小可以设置为10G,已经超出了物理限制.
    但是,lv a对应的虚拟机a认为,你有10G磁盘大小.虚拟机a不会阻止你占用超过5G的磁盘.
    当磁盘占用超过5G时,你的虚拟机就会进入io/error的状态.😅😅😅
    这点要注意

pve磁盘

pve会默认创建两个存储分区locallocal-lvm(下称lvm)
pve使用local,一般情况下,虚拟机使用lvm.

可能会存在lvm过小,而local过大的情况.

方案

有两种思路:

  • 减小local,增大lvm
  • 移动lvm中的内容至local
阅读更多

lisp

Lec1a

  • 编程就像念咒语
  • 从另外一个角度看computer science
    computer science是一个糟糕的名字.这门学科中所包括的不仅仅是computer,并且它也并不是科学,而更接近于tech or engineering.
    geometry,几何学,名字来源于gaia meaning to earth,and metron meaning to measure.埃及祭司用来计算每年被尼罗河摧毁的土地边界,从而创立了几何学.对于他们来说,geometry确实是用来测量土地.但几何学本身的内容早就已经超出了最开始的范围.
    cs也是这样.它不仅仅是介绍计算机使用.
    但是回过头看千年前埃及人的工作,他们开始形式化地对空间与时间进行描述.并且归纳出了一套讨论数学真理的形式化方法.这直接导致了公理化方法,促进了现代数学的诞生,指明了一种精确讨论何为真理的方法.
    同样的,千年之后的人类回头看我们现在的cs,会作何评价?我们只是摆弄着一个叫做计算机的小玩意,但却真正意义上开始了对于计算过程的形式化表示,并结合实际需求,发展出一套问题处理过程精确描述的方法.
    下面来举个栗子:

我们都知道平方根的定义:

$\sqrt{x}$是满足$y^2=x$同时$y≥0$

这个定义告诉了你平方根是什么,却没有告诉你如何求一个平方根。
这里提供亚历山大Heron提出的一叫连续取均值求平方根法。下面列出形式化的描述:

如何求$\sqrt{x}$的平方根?
1.随便猜一个数叫$G$
2.改进你的猜想通过计算 $G$ 和 $X/G$的平均值
3.不断重复步骤2,直到满意为止

对于cs来说,我们要完成的是拥有一个定义之后,实现它的具体而精确的计算过程.

Lec2b

  • 数据抽象 data abstraction
    用构造函数与选择函数来分隔 数据的表示与数据的使用
    例如构建一段关于点,线的代码段
    从层次结构上看,分成了三层
    segments
    make-seg seg-start seg-end (构造函数与选择函数)
    vectors
    make-vertor xcor ycor (构造函数与选择函数)
    pairs
  • 重要的不是某个小功能的本身,而是我能够用这个小block来搭建什么
  • 模糊数据与过程的边界是有利的.

    Lec3a

  • 封闭性(closure)是一个非常良好的特性.在缺少封闭性的语言中,你可以使用字符串,数字等去构造数组.但不能用数组去构造数组.
    例如用cons去构建cons
    1
    2
    3
    cons(1
    cons(1 2))

  • regard the procedure and data as the same thing
  • 当你有一项任务要完成时候,有两种情况
    你把它分解成为几个sub-tasks,再把sub-tasks分解成又几个sub-tasks,成为一个树的形状.
    或者,选择使用层级结构.在每个层级只讨论描述该层级的事件,从而实现良好的分层.
    层级结构与书级结构的差距在于:层级是为了讨论整个事件,而树形只是为了解决这个具体的问题.原因在于,对于相似的事件,他们有相似的层级结构,但在树形上,因为处理到的具体细节的不同,存在较大的差距.
    层级具有更好的robust,当你做出某些改变时,会做出相应的回应.想要改变某层的效果,只要去更改更底层的内容.
    并且,在每一层都有完备的语言去描述具体的操作.因而,想要实现某些变化的时候,你可以选择在某个具体的层级改变.
    这使得计算机科学比其他的工程学更加强大

    Lec3b

阅读更多

dns

DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址(IP address)转换的服务器。

IP地址是唯一确定的.但访问网页的时候输入的往往是域名,例如: https://www.baidu.com. 想要访问这个网址,DNS服务器就会对网址进行解析,找到网址对应的IP地址,并将IP地址返回,从而实现访问.

常用的dns

  • 相同
    114.114.114.114和8.8.8.8,这两个IP地址都属于公共域名解析服务DNS其中的一部分,而且由于不是用于商业用途的,这两个DNS都很纯净,不用担心因ISP运营商导致的DNS劫持等问题,而且都是免费提供给用户使用的。
  • 区别:
    1. 114.114.114.114
        114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。
    2. 8.8.8.8
        8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用。
阅读更多

102

Lec1 课程介绍

GAMES:Graphics And Mixed Environment Symposium

101偏渲染
201偏动画
102偏建模

图像是由像素表达的离散的点
图形是具有数学表达的几何对象,矢量图

光栅化

文字都是矢量图,不论怎么放大都是清晰的
储存的是点线的坐标,在经过重新计算之后,会清晰的呈现出来

渲染

光的计算科学

  1. 光源
  2. 几何
  3. 纹理
  4. 材质

仿真

阅读更多

hw1

总的来说,hw1是比较简单的.
本次作业的任务是填写一个旋转矩阵和一个透视投影矩阵,只要记得上课时候给的公式,写进去就行.

  • 旋转矩阵
    注意,cos,sin等,需要的参数为弧度制(rad),而不是角度制
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Eigen::Matrix4f get_model_matrix(float rotation_angle) {
    Eigen::Matrix4f model = Eigen::Matrix4f::Identity();

    // TODO: Implement this function
    // Create the model matrix for rotating the triangle around the Z axis.
    // Then return it.
    rotation_angle = rotation_angle / 180 * MY_PI;
    Eigen::Matrix4f rotate;
    rotate << cos(rotation_angle), -sin(rotation_angle), 0, 0,
    sin(rotation_angle), cos(rotation_angle), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1;
    model = rotate * model;
    return model;
    }

先进行挤压,再进行正交投影得到结果

  • persp2ortho

    • 透视投影到正交投影的变化矩阵
  • ortho

    • 正交矩阵
      projection = ortho * persp2ortho * projection;
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      Eigen::Matrix4f get_projection_matrix(float eye_fov,
      float aspect_ratio,
      float zNear,
      float zFar) {
      // Students will implement this function

      Eigen::Matrix4f projection = Eigen::Matrix4f::Identity();

      // TODO: Implement this function
      // Create the projection matrix for the given parameters.
      // Then return it.
      Eigen::Matrix4f persp2ortho = Eigen::Matrix4f::Identity();
      Eigen::Matrix4f ortho = Eigen::Matrix4f::Identity();

      float top = abs(zNear) * tan(eye_fov / 2 / 180 * MY_PI);
      float bottom = -top;
      float right = top * aspect_ratio;
      float left = -right;

      persp2ortho << zNear, 0, 0, 0, 0, zNear, 0, 0, 0, 0, zNear + zFar,
      -zNear * zFar, 0, 0, 1, 0;

      ortho << 2 / (right - left), 0, 0, -(right + left) / (right - left), 0,
      2 / (top - bottom), 0, -(top + bottom) / (top - bottom), 0, 0,
      2 / (zNear - zFar), -(zNear + zFar) / (zNear - zFar), 0, 0, 0, 1;

      projection = ortho * persp2ortho * projection;
      return projection;
      }

最后得到的结果与官方答案不同,图形倒转了.这是zNear值导致的.
根据课上的内容,看向的是Z轴负半轴,Z<0; 而代码中,看向Z正半轴,Z>0;

小问题懒得修改了.

顺便学习了一下cmake的相关知识
[[07archive/tech/cmake|cmake]]

阅读更多

101

Lec1 overview of Computer Graphic

判断游戏画面水平如何
可以去看画面的明暗.亮的,一般都是采用了全局光照技术.从技术层面来看更加优秀

特效是最简单的图形学技术应用
特效是特殊的效果.在平常生活中见得很少,即使特效出错,观众不一定看得出来.而对日常东西的渲染更为困难

Visualization
Virtual Reality
Digital Illustration数字图像处理
Simulation
Graphic User Interface
Typography矢量字体?

  • course topic
    • Rasterazation
    • Curves and Meshes
    • Ray Tracing
    • Animation / Simulation

CG与CV
一切需要理解,猜测的都是计算机视觉的内容.
no clear boundaries

Lec2 Review of Linear Algebra

A Swift and Brutal Introduction to Linear Algebra

Vectors

$\vec {a}$ 或者$\boldsymbol {a}$

阅读更多