跳转至

笔记

PicBed & OSS

PicGo介绍

这是一款图片上传的工具,目前支持微博图床,七牛图床,腾讯云,又拍云,GitHub等图床,未来将支持更多图床。

所以解决问题的思路就是,将本地的文件,或者剪切板上面的截图发送图床,然后生成在线图片的链接,走到哪就可以用到哪。

  1. 创建github仓库
  2. 在设置的最后生成token
  3. 下载PicGo并设置github图床

Cloudflare R2 Storage

对象存储有时也称为 Blob 存储,可以存储任意的大型非结构化文件。我们常用的有 AWS 的 S3、阿里云的 OSS、腾讯云的 COS、华为云的 OBS,都是对象存储,他们都可以为我们提供延迟一致、持久性高和容量无限的服务,免去了我们本地文件系统的共享、备份等痛点。

最为经典的是 AWS 的 S3(Simple Storage Service),刚刚推出的时候是革命性的服务,但也带来了新的痛点,上传、存储的费用还可以,但下载也就是取回的时候会被收取流量费,这个费用随着时间的推移,存储的文件越来越多,流量费也变得越来越高

2022年 5月 Cloudflare 就为我们带来了 R2 Storage,基于带宽联盟,为存储对象提供更低成本的存储服务。在后台,R2 自动智能管理数据分层,以在峰值负载时提高性能,并为不经常请求的对象降低成本。

R2 的革命性

在上面我们了解了 Cloudflare R2 Storage 收费项目,发现了什么?只收取存储费用、操作费用,没有流量费用!是的没有流量费用,这就是 Cloudflare R2 Storage 的革命性,依托带宽联盟,做到了零出口费用!5

picbed / OSS compare

  1. github图床,国内连不上
  2. (推荐)七牛申请了免费的证书证书,由于是海外访问还是慢。

  3. one drive虽然能用也能访问,但是速度慢而且操作麻烦,只能一个个传。而且会失效

  4. OSS charge but easy-to-use.

定价对比

服务名称 存储费用 请求操作费用 网络流量费用
Cloudflare R2 10GB/月免费 + 超量部分 $0.015/GB/月 100万次操作/月免费 + 超量部分 $4.50/百万次操作(B类操作) 免费
阿里云 OSS 0.12元/GB/月(1) 0.01元/万次请求 0.50元/GB
  1. (6GB内无需购买套餐,最低配置一年9元/40GB)
  2. B类操作费用说明:每月有1000万次免费额度,超出后每百万次收取 $0.36 的操作费
对象读取属于B类操作
  1. A类操作:费用较高,通常涉及状态变更(如上传、删除)
  2. B类操作:通常为读取操作(如查看文件、获取元数据)

当前图床使用统计

时间节点 存储量 月流量 请求次数
阿里云 2023年10月 395.13MB 21.41GB 61,490次
Cloudflare 2023年11月 490MB 未统计 9,110次

当前月支出约10元且费用增长较快

我的选择分析

  1. 自建服务器的可行性
    我的博客本质是个人知识库(非跨平台发布),理论上可通过自建服务器存储图片,无需图床服务。

  2. Cloudflare + GitHub方案的三大隐患

  3. 存储限制:图片可能触及 GitHub 仓库的推荐存储上限(官方建议不超过5GB)
  4. 构建延迟:每次推送代码后,Cloudflare Pages 会克隆整个图片仓库,导致博客构建时间过长(超20分钟会触发超时)
  5. 文件大小限制:Cloudflare Pages 对静态文件有单文件25MB的限制

  6. 最终建议
    综合考量仍推荐使用对象存储(如阿里云OSS),规避GitHub方案的潜在问题。

旧版阿里云图床配置

详见

# 配置参数
* 存储空间名 shaojiemike
* 存储区域 oss-cn-hangzhou
* 存储路径 img/

参考文献

IPCC Preliminary SLIC Analysis

VScode Debug Run

{
    "name": "(gdb) 启动",
    "type": "cppdbg",
    "request": "launch",
    "program": "/home/shaojiemike/github/IPCC/SLIC/SLIC",
    "args": [],
    "stopAtEntry": false,
    "cwd": "${fileDirname}",
    "environment": [],
    "externalConsole": false,
    "MIMode": "gdb",
    "setupCommands": [
        {
            "description": "为 gdb 启用整齐打印",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
        }
    ]
}
g++ -g -std=c++11 SLIC.cpp -o SLIC #把调试信息加到可执行文件中,如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。

Debug Process

  1. main
  2. LoadPPM 把数据读入imag
  3. 读类型、像素图片长宽 2599 3898
  4. 读最大像素 255(应该是指rgb颜色,比如red只有256种,也就是8位二进制)
  5. 读长宽的像素的rgb到imag返回,imag是2599*3898大小的unsigned int二维数组,每位存24位数2进制数。
  6. 创建lables来存储分类结果, m_spcount 200, m_compactness 10
  7. 计时运行 slic.PerformSLICO_ForGivenK(img, width, height, labels, numlabels, m_spcount, m_compactness);//for a given number K of superpixels
  8. 结果与check.ppm对比

skills: watch arrays

*(int(*)[100])labels
*labels@10000

SourceTrail Analysis

Vtune Analysis

需要进一步的研究学习

遇到的问题

参考文献

IPCC Preliminary SLIC test

test on node5

g++ -std=c++11 SLIC.cpp -o SLIC
time ./SLIC
./SLIC  28.46s user 0.52s system 99% cpu 29.027 total
slic

test on amd_256

gcc 10.2.0
[1]    122955 segmentation fault (core dumped)  ./SLIC
我傻逼了,我把cpp移动了,但是输入文件忘记动了
cat ./log/job_436960_rank0_fb0707_0.out
Computing time=21872 ms
There are 0 points' labels are different from original file.

要求

  1. 对slic.PerformSLICO_ForGivenK 函数运行时间进行通用优化
  2. 首先是并行化处理
  3. 读取时间不在计分范围
  4. 可以优化编译选项
  5. 可以改变数据结构与类型
  6. 需保证结果正确
  7. 之后有多组数据

需要进一步的研究学习

遇到的问题

北京超算的机器传文件只能用wincp,而且有时候不行,需要刷新缓存

参考文献

IPCC Preliminary SLIC algorithm

SLIC

超像素算法就是将图像中的像素依据某种相似性进行聚类,形成一个大“像素”,这个大“像素”可以作为其他图像处理算法的基础。 或者是超像素算法将像素组合成感知有意义的原子区域( atomic regions),其可以用于替换像素网格的刚性结构。它们捕获图像冗余,提供计算图像特征的方便原语( primitive ),并且大大降低了后续图像处理任务的复杂性。

SLIC 算法的基本思想是: 1. 首先将图像从 RGB 颜色空间转换到 CIE-Lab 颜色空间,并把每个像素的(L,a, b)颜色值和(x, y)坐标值组成一个 5 维的特征向量 V[L, a, b, x, y], 1. 然后,根据给定的网格步长 \(S=\sqrt{N/k}\),初始化聚类中心 \(\(C_k=[L_k, a_k, b_k, x_k, y_k]^T\)\) 2. 之后在每个聚类中心 Ck 的邻域(2Sx2S),计算邻域内各像素与该 Ck 点 的相似性度量,从而对邻域内的像素点进行聚类, 3. 之后迭代更新聚类中心,直至满足收敛条件。 233 233

算法特点

  1. 通过将搜索空间限制为与超像素大小成比例的区域,显着地减少了优化中的距离计算的数量。 233
  2. 加权距离度量组合颜色和空间接近度,同时提供对超像素的尺寸和紧凑性的控制。
  3. 默认情况下,算法的唯一参数是k,其含义是大小大致相等的超像素的个数。
距离测量

233 233 233

参考文献

https://blog.csdn.net/bailing910/article/details/79747689

SSL

什么是SSL证书

SSL是SecureSocketLayer的缩写,即安全套接层协议,SSL证书是一种数字证书,主要是给予网站HTTPS安全协议加密传输与信任的功能。SSL证书拥有数字加密与认证过程,加密协议可以保护网站。

高层的应用协议如HTTP、FTP、Telnet等能透明地建立于SSL协议之上。其在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证们在互联网上通信的安全。

个人网站需要证书吗?

先了解一下安装SSL证书有哪些作用吧。      1.网站数据的加密:对网站的数据进行加密,达到能够保护数据不会被泄露的效果。   2.身份的验证: 安装SSL证书可以证实真实信息,防止流量被劫持、防止被中间人攻击等。   3.显示绿色小锁,消除不安全信息:在网址栏当中会展示绿色小锁,消除主流浏览器对该网址提示“不安全”标记。   4.利于收录:谷歌百度等主流搜索引擎会优先展示和收录https的网站,也就是安装SSL证书的网站。   5.绿色的地址栏:安装高级的SSL证书可在地址栏当中显示绿色企业名称,有利于企业品牌的宣传以及客户的信任。    如果你的个人网站不需要信息加密、不需要身份验证、不需要用户的体验、也不需要优化,那么你也就没必要去购买安装SSL证书。

个人网站DV证书的授权

https://blog.csdn.net/bennny/article/details/82988260