my.md

概述

Linux 配置

软件安装

edge 安装

firefox 安装

clash 安装

dida 安装

listen1 安装

snipaste 安装

virt-manager 安装

fcitx5 安装

桌面美化

定时脚本

定时提交

1
0 2 * * * /opt/mystorage/github/dairy/script/commit_cron.sh

快捷键配置

Jetbrains keymap

keymap

  • emacs
  • previous project window : C-q
  • back : C-M-,
  • forward : C-M-.

创业思路

实体

玩具行业,感兴趣的有 FPV无人遥控车、其他小玩具,特点:利润不会太高,除非能自研
需要学习运营,做平台,硬件知识。

软件

  1. 分享自己。 要去抖音、bilibili 去分享自己,做视频。
  2. 做产品。 量化交易,web3 相关, 需要学习前端, 学习 ai, 做 ai 相关, 目前这个成功的可能性更高。硬件相关产品, 需要学习硬件。
  3. 做一个低价平台,咖啡、奶茶。 需要持续收集低价渠道,抖音团购。开发一个平台,可以将新的低价商品提供给用户。 实现: https://www.zhihu.com/people/73-49-89-95

低价渠道

  • 抖音团购
  • 美团圈圈

部署车牌号识别

https://github.com/szad670401/HyperLPR

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 基于官方 Python 3.11 镜像
FROM python:3.11

# 设置工作目录
WORKDIR /app

# 更新系统包并安装 libgl1-mesa-glx
RUN apt-get update && apt-get install -y libgl1-mesa-glx

# 安装 hyperlpr3
RUN pip3 install hyperlpr3

# 暴露端口 8715
EXPOSE 8715

# 启动命令,运行 lpr3 rest 守护进程
CMD ["lpr3", "rest", "--port", "8715", "--host", "0.0.0.0"]
1
2
docker build -t my-lpr3-app .
docker run -d -p 8715:8715 my-lpr3-app

AI 资讯 app

输入源

  • 官方发布源 – 各类信息收集
  • 信息发布源 – infoq
  • 个人发布源 – up主
  • 输出
    • 直接输出–听
    • 直接输出–看
    • 整理
      • 直接输出 + 调试关键词
      • 关键词分享
    • 整理
    • 分享自己的调试关键词

参考: https://www.thedailyintelligence.com/

AI 钓鱼 app, 未来海世界

故事: 未来,大部分陆地被海水覆盖、只留下零散的小岛,玩家出生在自己的小岛上,不断建设、收集、打鱼、卖鱼。玩家可以乘坐海空飞机去到聚居地,寻找传说中的海怪。
剧情模式 + 开放世界

  • 建设海岛
  • 驾船出岛
  • 抓鱼
    • 放钩 陀螺仪
    • 拉杆 交互键 , 取消?
    • 展示鱼信息
      • type_name
      • 品级
      • 重量
    • 放生还是收下
    • 鱼类图鉴
    • 地图探索
    • 排行
    • 背包
    • 卖鱼

chatgpt api_key

链接 https://platform.openai.com/chat-completions 需要国外手机号才能开始创建 api-key 。 先使用国内大模型。

发布 rancher k8s 应用

在 rancher 中只需新增一个 deployment , 填入 docker image 名称, 提前将 image 传入到 docker hub 中, rancher 会自动拉取, 拉取的过程比较慢,可能要 10 min。

前台程序转后台并与命令行分离

1
2
3
4
# C-z 暂停
bg
disown -h %1 # 分离终端
jobs # 查看进程是否还在此终端,如果有值那就还在

RKE2

RKE2 可以快速在本地搭建 k8s 环境, 不提供 rancher 管理客户端。

参考 https://docs.rancher.cn/docs/rke2/_index

灵活就业参保

社保申请 + 深圳税务里缴费

strace 分析 io 性能瓶颈

strace 是一个非常有用的工具,可以帮助分析程序在 I/O 操作中出现的性能瓶颈。I/O 操作包括文件 I/O 和网络 I/O,可能涉及读取和写入大量数据、文件打开和关闭、文件权限问题等。通过 strace,你可以跟踪并分析这些 I/O 操作,找到影响性能的关键点。

分析 I/O 性能瓶颈的步骤

1. 跟踪 I/O 相关的系统调用

strace 可以跟踪与 I/O 相关的系统调用,比如 readwriteopencloselseek 等。使用 strace 跟踪这些调用可以帮助你了解程序执行过程中如何进行 I/O 操作。

  • 命令
    1
    strace -e trace=read,write,open,close,lseek ./your_program
    解释:此命令只跟踪程序运行过程中涉及的读写操作(readwrite)、文件打开和关闭操作(openclose),以及文件指针的移动操作(lseek)。这些系统调用的输出可以帮助你分析程序的 I/O 行为。

2. 统计每个系统调用的耗时

strace 提供了 -T 选项,可以记录每个系统调用的执行时间。这在分析 I/O 性能瓶颈时非常有用,因为你可以通过耗时信息,快速识别出哪些系统调用导致了 I/O 性能的下降。

  • 命令
    1
    strace -T -e trace=read,write,open,close,lseek ./your_program
    解释-T 选项会显示每个系统调用的耗时。通过查看输出,可以找到耗时较长的调用,从而定位可能的性能瓶颈。例如,某个 read 调用的执行时间非常长,可能意味着磁盘 I/O 的延迟或数据量太大。

3. 生成汇总报告

strace 提供了 -c 选项,可以生成一个简洁的系统调用摘要,显示每个系统调用的总次数、执行时间的百分比和平均耗时。这有助于快速发现哪个系统调用是 I/O 性能瓶颈的来源。

  • 命令
    1
    strace -c ./your_program
    解释-c 选项会统计所有系统调用的信息,并以汇总的形式显示出来。输出内容包括每种系统调用的次数、总耗时、平均耗时等信息。如果 readwrite 等 I/O 操作占用了大量时间,则表明它们可能是性能瓶颈。

4. 输出到文件并分析

在复杂的程序中,直接在终端查看 strace 输出可能会不太方便。因此,你可以将 strace 的输出重定向到一个文件中,然后使用文本处理工具(如 grepawk 等)进行分析。

  • 命令

    1
    strace -o strace_output.txt -T -e trace=read,write,open,close ./your_program

    解释:此命令将 strace 输出重定向到 strace_output.txt 文件,并记录每个系统调用的耗时。你可以在这个文件中查找耗时较长的调用,分析哪些文件或数据导致了性能问题。

  • 进一步分析:使用 grep 来查找特定的系统调用,或者使用 awk 统计执行时间。

    1
    grep 'read' strace_output.txt | awk '{print $NF}' | sort -n | tail -10

    解释:这条命令会找到所有的 read 调用,提取每次 read 的耗时,并显示耗时最长的 10 次调用。类似的方法可以用于 write 或其他系统调用。

5. 关注文件描述符和文件路径

在跟踪 I/O 操作时,文件描述符(fd)和文件路径的信息也非常重要。可以使用 -y 选项来显示系统调用中涉及的文件描述符指向的文件路径。

  • 命令
    1
    strace -y -e trace=open,read,write ./your_program
    解释-y 选项会在每个与文件描述符相关的系统调用后面显示文件路径。通过查看这些路径信息,可以确认程序在访问哪些文件、是否有频繁的文件切换或意外的文件访问。

6. 查找网络 I/O 性能瓶颈

如果程序涉及网络操作,可以通过 strace 跟踪网络相关的系统调用,例如 connectsendrecv 等。可以使用以下命令来跟踪网络 I/O:

  • 命令
    1
    strace -e trace=network -T ./your_program
    解释trace=network 选项会跟踪所有与网络相关的系统调用,例如 socketconnectsendrecvbind 等。通过查看网络系统调用的耗时,可以判断程序的网络性能瓶颈。

7. 组合使用 -r 选项

-r 选项可以显示相邻两个系统调用之间的时间差,这有助于了解在某个调用结束后到下一个调用开始之间的时间间隔。对于分析程序中 I/O 操作的延迟非常有帮助。

  • 命令
    1
    strace -r -e trace=read,write,open,close,lseek ./your_program
    解释:此命令会在每个系统调用前显示从上一个系统调用结束到当前系统调用开始的时间差。如果发现某个系统调用之间的间隔非常大,可能表明存在 I/O 瓶颈或其他阻塞操作。

8. 注意 I/O 缓存和阻塞的影响

在使用 strace 时,需要注意以下两点:

  • I/O 缓存的影响:如果程序使用了缓存,那么 I/O 操作可能并没有直接访问磁盘,而是访问了内存中的缓存数据。因此,单纯的系统调用耗时并不一定能反映磁盘 I/O 的真实性能。
  • 阻塞 I/O:如果程序使用了阻塞 I/O 操作,例如等待文件或网络数据,可能会导致系统调用在等待期间占用大量时间。这种情况可以通过分析每个系统调用的耗时来确认。

量化

  • 中心化和去中性化的量化
  • 交易所 BTC 价格不一致 链上 BTC , 低买高卖同一个币种
    链上套利模式:
  • 去中心化的量化,现货量化 合约量化。 策略: 网格量化, 针对传统
  • 套利:三明治夹击攻击。 参数:容错率 。收益猎人:赚取 容错率的利润
  • 三角形套利: A 币种 B 币种 C 币种, A -> B -> C -> A 用 python 计算是否有套利空间。
  • uniswa susiswa 差价

flbot
套利层 结算层

大机器人套小机器人 》 用户

链上套利模式 学习
项目、合约 多策略量化, 主要是网格。
传统的量化模式,如何应用到链上?
链下,网格。

python 成熟的量化框架
uniswap 知道套利点在哪儿。

大模型本地部署硬件要求

大模型编程能力测评表: https://www.datalearner.com/ai-models/leaderboard/datalearner-llm-coding-leaderboard

公式:模型显存占用(GB) = 大模型参数(B)*2

调研

  • kafka Topic
  • ES 存取
  • flink
  • Rust Vector
  • Django poetry
  • trapServer 告警源
  • celery

pyenv 配置多版本 python 环境

pyenv 可以管理同一机器不同 python 版本

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 依赖
sudo apt install -y libreadline-dev libsqlite3-dev tk-dev
sudo apt install -y zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev liblzma-dev libffi8 libffi-dev



git clone https://github.com/pyenv/pyenv.git ~/.pyenv
git clone https://github.com/pyenv/pyenv-virtualenv.git
mv pyenv-virtualenv ~/.pyenv/plugins/

# 配置参考
export PYENV_ROOT="$HOME/.pyenv"
export PATH="${PYENV_ROOT}/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

简单使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 查看当前版本
pyenv version

# 查看所有版本
pyenv versions

# 查看所有可安装的版本
pyenv install --list

# 安装指定版本
pyenv install 3.12
# 安装新版本后rehash一下
pyenv rehash

# 删除指定版本
pyenv uninstall 3.5.2

# 指定全局版本
pyenv global 3.6.5

# 指定多个全局版本, 3版本优先
pyenv global 3.6.5 2.7.14

pyenv local

img.png

app image lancher

Linux 管理 app image 程序的应用

只需要指定 app image 文件目录

二月版本事项整理

资料

具体需求整理

标题

【数据清洗】分隔符算子增强 开发完毕

【映射规则】映射规则关联数据清洗流程

【数据清洗】Json 反序列化算子能力增强 开发完毕

【数据清洗】截取算子设计 开发完毕

【数据清洗】时间格式清洗算子 开发完毕

【数据清洗】遍历(迭代)算子设计 这版本不做

【数据设计】赋值算子设计 ??

【技术需求】kbm 部署数据上报链路配置自动化

【映射规则】映射配置增加正则配置能力

【场景全貌】场景全貌展示调整

【数据清洗】取值算子设计 ??

【业务配置】数据清洗配置(10 月底过渡版本)

【业务配置】拓扑配置

操作系统:设计与实现读书笔记

操作系统任务

本质上也可以看成,不同的应用争夺硬件设备的控制权的过程。

插件式架构设计的一个关键点: 清晰设计目标中,插件的逻辑功能的边界,插件与底座的联系,底座的逻辑功能的边界。

操作系统与用户程序之间的接口通过一组扩展指令 系统调用 定义,


my.md
https://abrance.github.io/2024/04/25/mdstorage/my/
Author
xiaoy
Posted on
April 25, 2024
Licensed under