rsshub 部署

主要订阅内容

  • [x] 微博
  • [ ] eh
  • [ ] 哔哩哔哩
  • [ ] 公众号(发现完全不看公众号)
  • [ ] 少数派
  • [ ] 论文期刊(读研再说吧)

dependence

  • docker
  • docker-compose
  • rsshub
  • rssradar

初次部署

使用本地 RSS 客户端来浏览在线 RSS 帐户
客户端用fluent reader 账户用inoreader
对于eh可以直接使用,但对于exhentai,好像只能自己部署来实现
放弃项目


第二次部署

重新启动!
用omnivore之后,为了订阅微博上的关注,在软路由上重新部署了rsshub.

部署很简单,建议使用docker-compose部署,详情见Docker Compose 部署.

阅读更多

openwrt防火墙

由于openwrt与ikuai网关互指,并且没有做转发设置,不能在ikuai中监控设备流量情况,openwrt的监控流量插件也不好用,遂研究下接口与防火墙.

现在的网络情况为
i快开启dhcp,openwrt关闭.所有设备的IP由ikuai分配.由于科学上网的需求,openwrt跑passwall,dhcp网关设置为openwrt.
这就导致,虽然ikuai,openwrt,设备处于同一个网段下,但由于ikuai的dhcp设置,下属所有设备不论是上传还是下载,所有数据报是都要经过openwrt解包 处理 封包 转发处理,再去ikuai.
上传

1
2
3
4
5
6
7
graph LR

    A((设备)) -->|数据报| B[OpenWRT]

    B -->|解包 处理 封包 转发| C[ikuai]

    C -->|数据报| D[internet]

下载
1
2
3
4
graph LR
D[Internet] -->|数据报| C[iKuai]
C -->|解包 处理 封包 转发| B[OpenWRT]
B -->|数据报| A((设备))

对openwrt性能损耗高.

通过对防火墙与接口设置,实现,下载直接到设备,上传经过openwrt.
上传

阅读更多

oos

首先OSS的英文全称是Object Storage Service, 直译过来就是”对象存储服务“。 严谨的解释是:OSS是一种使用HTTP API存储和检索非结构化数据和元素的数据对象的工具。 要点:

  1. HTTP API风格
  2. 存储数据
  3. 检索数据

通俗易懂的说就是:OSS就是通过HTTP restful风格的API进行数据上传,存储和获取的云端数据库服务。你也可以简单的理解成网盘。

服务供应商: 阿里云,蓝队云,移动云,AWS存储

阅读更多

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

阅读更多

Linux安装

BIOS、UEFI、MBR、GPT、GRUB 到底是什么意思?
ubuntu20.04.1

下载

阿里云镜像
https://mirrors.aliyun.com/ubuntu-releases/?spm=a2c6h.25603864.0.0.2b7e45f8SJ9NVf

在阿里云下载的镜像甚至不需要换源?它好像本来就是换好的

安装

diskgenius处理磁盘分区
rufus写入ISO
重启进入bios,调整启动项

根据安装指引一路点点

  • ubuntu磁盘分区:
    引导:512m efi系统分区
    swap:16g
    根: ext4日志
    home: ext4日志

注意一定要在混合模式下启动,独显模式,缺少显卡驱动,打不开,后期更换显卡驱动就行了

删除

阅读更多

docker

what is docker

采用了容器概念,本质上每个容器都是一台vm.但相对于vm,性能需求更低.
Docker 只是一个管理这些容器的平台,因此您可以轻松构建不同的特定环境。

容器

容器包括应用程序运行的所有库和工具。容器的作用是将这些应用程序与应用程序的库和工具一起打包在容器中,这样它就可以在任何地方运行,而不必依赖宿主的环境。
同时也能隔绝不同环境之间的干扰.

用户docker安装(root与非root)

refering

图形化docker管理工具

安装
docker的端口是:9000
后台地址为 192.168.33.4:9000
居然是不需要https://的...如果把地址写成https://192.168.33.4:9000,访问不了
中文portainer

问题:

  1. Docker Compose stuck downloading or pulling fs layer
    描述:0bad1d247b5b: Pulling fs layer ,某一个哈希值一直下载不出来restart也没有用
    想起来一件事,没有对docker进行换源 换源
    1
    2
    service restart docker.service
    docker info
    牢记,linux系统一般都是要进行镜像换源的
  2. 安装汉化portainer
    安装教程 报错教程
    1. 下载文档问题 用wget命令就行了…
    2. 一个报错
      1
      Error response from daemon: Conflict. The container name "/portainer" is already in use by container "9226aa8941ce67663089515cb68f462a90654642fbb2c7a72b8e57253dea7f48". You have to remove (or rename) that container to be able to reuse that name.
      原因是我本来就下载了一个英文版本的portainer,汉化并非是汉化补丁,而是直接安装一个中文版本的portainer,因此出现了命名冲突.删除掉原来的portainer就行了
      1
      2
      docker stop portainer
      docker rm portainer
阅读更多

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,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用。
阅读更多

dn11 peer流程

my info

Publickey:
0bBel8q6++FmOuPrepFpWaIUHWur4ppB09LKN4UmLiQ=
172.16.36.254
4211116657
dn11.l4rk.cn:325xx

/etc/wireguard

生成的公钥私钥保存在该文件下
在这个文件夹下面编写一个新的 example.conf example=对方名称

1
2
3
4
5
6
7
8
9
10
[Interface]
PrivateKey = QOiaOOemHPKsACOyiGVvZ4btQ344rqx07poiiW2WRmw=
ListenPort = 32501
PostUp = /sbin/ip addr add dev %i 172.16.36.254/32 peer 172.16.2.254/32
Table = off

[Peer]
Endpoint = open.iraze.top:42025
PublicKey = jEAB/Yl4Oqz2fAyt8V/5MKb0j4FmD7XEhYRvjnDtNV0=
AllowedIPs = 0.0.0.0/0

wg-quick-op

在颤巍巍的帮助下顺利完成

有柏喵师傅写的wg-quick-op https://github.com/BaiMeow/wg-quick-op
wg-quick-op:
编写一个 /etc/wg-quick-op.yaml

阅读更多

cmake

CMake

前言

  • CMake是一个跨平台的安装编译工具,可以用简单的语句来描述所有平台的安装(编译过程)。
  • CMake可以说已经成为大部分C++开源项目标配

1 Cross-platform development

Let’s assume you have some cross-platform project with C++ code shared along different platforms/IDEs. Say you use Visual Studio on Windows, Xcode on OSX and Makefile for Linux:

What you will do if you want to add new bar.cpp source file? You have to add it to every tool you use:

To keep the environment consistent you have to do the similar update several times. And the most important thing is that you have to do it manually (arrow marked with a red color on the diagram in this case). Of course such approach is error prone and not flexible.

CMake solve this design flaw by adding extra step to development process. You can describe your project in CMakeLists.txt file and use CMake to generate tools you currently interested in using cross-platform CMake code:

Same action - adding new bar.cpp file, will be done in one step now:

Note that the bottom part of the diagram was not changed. I.e. you still can keep using your favorite tools like Visual Studio/msbuild, Xcode/xcodebuild and Makefile/make!

阅读更多