NAS

NAS

“NAS本质上就是一个可以开启文件共享的具有大存储的系统:无论是Windows,Linux或其他一切可基于诸如SMB、Internet提供文件共享或访问功能的系统都可以作为NAS的系统使用。”

不出意外,针对该应用场景,也有针对性的一些简化OS,故而在构建NAS之前,首先分析对NAS存储的需求,进而选择一个合适的系统去构建。

个人NAS需求分析

就像NAS:Network Attached Storage所说,NAS最基本的需求是“存储”与“共享”(随时存取),实际也是一个私有网盘(支持更多功能?),本文便基于该脉络分析需求。

存储/功能类型 使用场景说明 需求程度
图片、文件归档 存储,预览(基于AI识别分类,时间线,照片墙) -
大文件 内网快速传输 -
电影 流媒体服务器:多设备在线观看、封面集归纳和整理(PLEX) -
工作文档 历史版本,协作编辑 Option
下载功能 看到想看的电影的时候可以直接让他开始下载 -
支持docker扩充功能 可以使用Docker下载并部署一些其他的乱七八糟的功能 Core

在支持基本功能的基础之上,通过配置的选择来,尽量减少功耗,从而减少长时间启动带来的电费消耗,如果可以的话使用软件或者硬件来记录NAS每个月的耗电量。

  • 此外,还需要考虑数据的稳定性,好像叫做《阵列》?(后续进行补充了解

  • 断电自动重启

  • 文件共享服务:SMB、FTP‘
  • 加密和数据安全性

不需要显示器,只需要网络和SSH进行远程登陆和控制之类的。


Markov Junior

Markov Junior

@Reference: Jack Cui | Github-Markov Junior | Wiki Markov algorithm

第一篇文章简要介绍了一下该编程语言能实现什么效果;第二个是官方repo,其文档和代码都有很强的借鉴意义;第三个是wikipedia对马尔可夫算法的解释,在该编程语言的实现中有重要的意义。

markov algorithm

马尔可夫算法指的是字符串重写算法,其基本逻辑如下:

  1. 自顶向下依次检查规则,看是否能在符号串中找到任何在箭头左边的字符串。
  2. 如果没有找到,停止执行算法。
  3. 如果找到一个或多个,把符号串中的最左匹配的文字替换为在第一个相应规则的箭头右边的字符串。
  4. 返回步骤1并继续。(如果应用的规则是终止规则,则停止执行算法。) [1]

Wave Function Collapse

Wave Function Collapse

@Reference: Github-Mxgmn | zhihu

概念简介和复习

本质上该方法的底层思想就是条件概率的启发式随机生成算法。

波函数坍塌

在介绍算法之前首先需要明确几个概念,第一个就是“波函数坍塌”(名字的来源是量子力学中的概念),参考“薛定谔的猫”,可以理解成:在一系列的不确定像素(存在多种可能)的基础之上,通过确定的规则相关关系,随机的将所有的像素变成确定的状态。(可以通过给定种子来启动,也可以通过随机规则来启动),实现在一定规则或者模式下的随机生成。


Z Jumper for Linux

Z Jumper for Linux

Star this Project in Github after u decide to use it.

Download & Install

Firstly, Cpy z.sh to the path u want make this script can be recognizabled by your shell like zsh, bash.

1
2
cd ~
wget https://raw.githubusercontent.com/rupa/z/master/z.sh

Secondly, add . ~/z.sh to the end of your .zshrc ,u can use following cmd also

1
2
3
echo ". ~/z.sh" >> ~/.zshrc
# then using this to check
tail -n 5 ~/.zshrc

Fi, activate it.

1
source ~/.zshrc

Usage and Description

以以下的目录为例:the/path/to/UniFramwork,演示该jumper的使用方式。我们首先需要进入(cd)过对应的目录,z将会记录看,并计算相应的权重,通过其维护的List来进行快速跳转,在完成记录后,我们即可用下面跳转到项目文件夹:


Hexo Write

Hexo Write

Hexo和Gitee一致,都是由Markdown文件为基础,构建的博客,编写Markdown本身无需多言,由于Hexo并非笔者的首选笔记管理方式,故而再其他地方构建和编写文件是常态,该Blog主要是利用其他工具来方便Hexo博文的编写(Header)

默认的是 hexo new [layout] title 可简写为 hexo n [layout] title,其中布局应该是在博客目录中定义,该命令也局限于博客的对应目录。

post(默认)、draft、page

除了默认的方法,本篇将介绍Obsidian、VsCode-like、Vim自动添加Header的方式,用以方便随时随地的编写博文。

同时为了方便已有笔记迁移,本文也编写了Python脚本,CPY后为Target Dir的版本自动添加Header,但是其中对应的Catagories最好还是手动修改一下。


Latex tesing

Latex tesing

该文档主要目的是用于测试Latex语法对应前端的渲染能力,主要用于测试Hexo站点是否能正常渲染Latex。

Example1: 2 inline in one sentence.

When $a \ne 0$, there are two solutions to $(ax^2 + bx + c = 0)$ and they are
Example2: Matrix Example

Example3: the Conditional Formula

Example4: Sprcial Symboy


Hexo Build

Hexo Build

该文档用以,记录自己(外行)利用Hexo建立Blog的过程,将原本用Gitbook构建的笔记转移到Hexo中,同时购买域名并部署其上。网页部署于Github Page。以Live my Live主题为例。

腾讯云和Github Page的操作和理解在现有的一些博客中过时了,或者说存在一些问题,后续会对此进行简单的讲解。同时大部分博客都是使用NexT主题进行配置,这里采用的是Live My Life主题,该博文介绍自己的粗浅理解,也为自己后续的工作进行一定的参考。

还存在一些没有解决的问题:

  • 对主题切换和主题配置和全局配置的的深入理解(Live my Life主题覆盖了很多默认配置)
  • 前端代码的理解,自定义Layout,超链接,图标等
  • 深入理解插件的应用和自定义
  • 推送网站到baidu和google(Option)(没有计划)

之后有时间的话可以去研究一下:

关键词:Hexo_Livemylive、Github Page、腾讯云(Domain、DNS、SSL)


Vim 01 Recorder

Vim 01 Recorder

Chose Your Dotfile to start the vim

1
vim -u {path to your .vimrc}

Recorder of Vim

This Chapter mainly introduces the Recorder in vim,Which is used to do some repeated operations.This function is also called a macro.

for more information try :help recording

This section will introduce related concept/function of recording function. Which help us to understand how this works, and what we should pay attention to it.

register of vim: register is a superset of macro, it contains more function. In this part we should know, register can store some string or operations to help subsequent use.

Status:
Using :registers or :reg to check those we have registered, or add the registers’s name behind to show those u’re interested in.

1
2
3
4
5
:reg a b c 
--- Registers ---
"a register a content
"b register b content
"c register c content

Lifecycle
The information in registers will not disappear with the window closed. But maybe with the system-level’s open-close. we should test this!!! So we can store some snippet,pwd,etc.


PicBed Setting for note and blog

PicBed Setting for note and blog

@Aiken 2020 first write,2021 modify

Mainly using picgo-core(command line) to setting picbed,and we can update the setting method

Github

基本部署

  1. 在偏好设置中的图像,进行如下设置👇: 下载或更新PicGo-Cord(command line)

image-20200512160643588

  1. 接着去Github中建立一个Repo:UserName/RepoName,用以存放图片(Public),简单的用readme初始建立即可。

  2. 在Github的setting - developer setting-personal access tokens中新建token,指定简单的repo权限,并记录个人的token(只显示一次)
    Attention: 忘记记录的话,在token中也是通过update token(好像是这个名,获取新的值的)

  3. 用Typora打开配置文件设置,或者使用命令行进行配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"picBed": {
"github": {
"repo": "UserName/RepoName",
"token": "your github token here",
"path": "img/",
"customUrl": "https://raw.githubusercontent.com/UserName/RepoName/master",
"branch": "master"
},
"current": "github",
"uploader": "github"
},
"picgoPlugins": {}
}

Fine Tuning

Fine Tuning

@Langs: python, torch
@reference: d2l-pytorch,transfer_torch

This Note focus on the code part.
模型微调和模型预训练,在Pytorch中的使用方式对比汇总。

How to Design the Fine Tune

这一部分主要集中于我们对于微调任务的拆解,有几种不同的预训练和微调的方式,在不同的情景下,对应的参数应该怎么设置和调整是问题的重点。

WorkFlow

基于这种Transfer的策略,我们能够学习到一个更通用,泛化能力更强,有助于识别边缘,色彩,等等有助于下游任务的通用特征提取。

在Transfer任务中,有几种不同的调整方式:

  • 固定Bakcbone,只训练Classifier
  • 同步微调网络
  • 区分学习率,微调Backbone,训练Classifirer

为了实现这几种不同的Transfer方式,需要用到以下的几种方式:梯度截断,lr区分设置等。

Code Part

不同lr设置

微调Backbone,训练Classifier作为最经典的Transfer设定,在Code上也较为复杂,所以我们首先举个这种例子。