编程笔记

lifelong learning & practice makes perfect

背景

项目要求使用国密加密算法保障安全性,go和java需要通过接口互通,请求时使用sm4加密数据,sm2加密sm4秘钥,必将加密数据和加密后的sm4秘钥发送到第三方接口,
响应用相反的方式解密数据.
java 使用hutool里的工具函数实现,go使用”github.com/tjfoc/gmsm”实现.

阅读全文 »

channel

打开企业微信三方应用报错,提示如图,检查了服务商后台和后端代码里的各项配置都没错,域名也通过了
验证

channel

最后发现是前端oauth时跳转配置里的appid填错了

1
2
3
// 第三方应用需要在打开的网页里面携带用户的身份信息,第一步需要构造如下的链接来获取code:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

参考文档:

部署Keycloak

使用dev模式启动,自定义配置可以放到conf下

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
version: '3.9'
services:
keycloak:
image: quay.io/keycloak/keycloak:24.0.3
environment:
# KC_DB: mysql
# KC_DB_SCHEMA: keycloak
# KC_DB_USERNAME: kc
# KC_DB_PASSWORD: xxxxxx
# KC_DB_URL_HOST: xxx.xxx.xxx.xxx
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
KC_PROXY: edge
KC_HOSTNAME_STRICT: false
KC_RUN_IN_CONTAINER: true
mem_limit: 500m
mem_reservation: 400m
command:
- start-dev
#- --optimized
container_name: keycloak
volumes:
- ./conf/:/opt/keycloak/conf
restart: always
ports:
- 8080:8080
阅读全文 »

使用YOLOV8训练自定义数据集,实现多目标检测

流程

  • 自定义标签
  • 数据标注
  • 训练
  • 验证

自定义标签

这里通过工具X-AnyLabeling进行标注,需要按照工具要求添加标签,这里我添加了2个标签,person和car如下

1
2
3
#新增 classes.txt,内容:
person
car
阅读全文 »

什么是 tailscale

Tailscale 是一个开源的 VPN 服务器,它允许用户使用自己的互联网连接来创建一个安全的、无备案的 VPN 网络。

direct vs relayed connection

直连和中继网络的区别,如果建立连接后不同终端间的网络延迟很大,可检查下是否使用了中继节点(relay),考虑使用direct connection优化延迟
经测试,relay模式延迟300ms左右情况下,改用direct模式延迟在10ms左右

1
2
3
4
5
6
7
# 查看当前节点,网络状态
tailscale status
# 如下是直连模式:direct connection
# xxxxx windows active; direct 27.xx.xxx.xxxx:xxxx, tx xxxxx rx 18832

# 使用ping 或 tailscale ping xxxx,查看延迟
ping xxx

relayed connection可能的优化:
在某个节点的防火墙放开UDP协议的41641端口

都没有公网ip的节点间延迟优化

偶尔使用还是ssh方便

ssh端口转发

上一级提到过,有公网ip的服务器可以通过开启UDP协议的41641端口建立direct connection,减少节点间的网络延迟,
在两台设备都没有公网固定ip的情况下,尝试在同样开启端口没有效果,延迟仍然很大(300~1000ms)

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
# 查看网络情况
tailscale netcheck (base)

Report:
* UDP: true
* IPv4: yes, 27.38.xxx.xxxx:xxxx
* IPv6: no, but OS has support
* MappingVariesByDestIP: true
* HairPinning: false
* PortMapping:
* Nearest DERP: San Francisco
* DERP latency:
- sfo: 175ms (San Francisco)
- lax: 175.9ms (Los Angeles)
- tok: 184.4ms (Tokyo)
- dfw: 192.6ms (Dallas)
- ord: 205.8ms (Chicago)
- tor: 218.1ms (Toronto)
- hkg: 220.6ms (Hong Kong)
- hnl: 222ms (Honolulu)
- nyc: 223.9ms (New York City)
- fra: 231.7ms (Frankfurt)
- sin: 238ms (Singapore)
- waw: 249.2ms (Warsaw)
- par: 254.3ms (Paris)
- ams: 257.3ms (Amsterdam)
- lhr: 265ms (London)
- mad: 271.1ms (Madrid)
- sao: 343ms (São Paulo)
- dbi: 350.9ms (Dubai)
- syd: 382.2ms (Sydney)
- jnb: 420.1ms (Johannesburg)
- nai: 464.5ms (Nairobi)
- blr: (Bangalore)
- sea: (Seattle)
- den: (Denver)
- mia: (Miami)

可以看到通过derp单程最短延迟在170ms+,roundtrip至少延迟300ms

此时如果有一个公网ip的节点,可以尝试将它作为中继节点,将其他节点连接到它上,这样其他节点的网络延迟就会变小
例如使用ssh的端口转发,a,b是没有固定公网ip的节点,c是公网ip的节点,c和a,c和b之间均可以建立direct connection,延迟很
小在10ms左右
通过ssh本地端口转发将本地请求通过c转发到b,这样a和b就可以直连了,参考这篇文章

自建DERP节点

参考

参考

3D

ComfyUI,自定义节点

3d插件,ComfyUI

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
conda create --name comfy -y python=3.11
conda activate comfy
python -m pip install --upgrade pip
conda install -c "nvidia/label/cuda-12.1.0" cuda-toolkit

# 安装ComfyUI
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt

# ComfyUI-3D-Pack
# Ubuntu下必须要有g++,不然会报错
# ERROR: Failed building wheel for torchmcubes
# Running setup.py clean for torchmcubes
# Failed to build torchmcubes
# ERROR: Could not build wheels for torchmcubes, which is required to install pyproject.toml-based projects
cd custom_nodes/ComfyUI-3D-Pack/
pip install -r requirements.txt
pip install -r requirements_post.txt

# 其他缺失的包
pip install numba
pip install xformers # pip3 install -U xformers --index-url https://download.pytorch.org/whl/cu121
# pip install simple_knn # 必须使用 ComfyUI-3D-Pack中的包,直接用pip安装的包不匹配用不了

https://github.com/MrForExample/ComfyUI-3D-Pack/issues/16

workflow

https://openart.ai/workflows/oliviosarikas/stable-zero123-tutorial-workflow/UNZqaUXTQBvBv1LyLYsK

参见错误

pytorch3d安装

1
2
3
4
5
6
7
#安装g++
sudo apt-get install g++
#安装make,cmake
sudo apt-get install make
sudo apt-get install cmake
#ninja
sudo apt install ninja-build

试了多次仍然无法安装成功,改用其他人编译好的wheels,参考pytorch3d,Issue

其他

基础

Stable Diffusion(稳定扩散)严格说来它是一个由几个组件(模型)构成的系统,而非单独的一个模型

关键概念: 模型,Prompt(CLIP Text Encode,提示词),KSampler(采样器),VAE(变分自动编码器(Variational Autoencoder))

Prompt+Latent(潜变量空间) -> KSampler -> VAE -> Image

ComfyUI

安装

1
2
3
4
5
6
7
8
git clone https://github.com/comfyanonymous/ComfyUI.git

cd ComfyUI

pip install -r requirements.txt

# 启动
python main.py

此时目录下还没有模型,需要下载模型到指定目录: ComfyUI/models/checkpoints

插件

ComfyUI Manager

在 custom_nodes 目录下,下载插件代码

1
2
cd custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git

workspace-manger

workflow 管理/切换插件

参考

模型下载

sd模型

1
axel https://civitai.com/models/112902/dreamshaper-xl

VSCode从V1.86起对部分服务器不兼容(remote ssh),出现类似报错

1
You are connected to an OS version that is unsupported by Visual Studio Code

原因可参考文档,从报错提示看,
大部分人遇到的情况是GLIBC版本过低,而VSCode要求版本>=2.28,这是vscode的依赖nodejs要求的

1
2
3
4
5
6
# 基本要求 kernel >= 4.18, glibc >=2.28, libstdc++ >= 3.4.25, Python 2.6 or 2.7, tar
# 可以通过如下命令查看glibc版本
ldd --ersion

# 查看libstdc++ 3.4.25 是否可用
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

可以升级服务器版本或者降低VSCode版本来解决

老版本

VSCode支持Portable Mode,可以同时安装多个版本,多个版本建

下载链接

root密码

启动powershell,使用命令找出需要重置密码的wsl实例:

1
2
3
4
5
6
wsl --list

# 适用于 Linux 的 Windows 子系统分发版:
# Ubuntu-18.04 (默认)
# docker-desktop
# docker-desktop-data

单个wsl

如果只有一个实例,可以直接使用命令切换到root账号,然后就可以重置密码了(passwd root)

1
wsl.exe --user root

输入2次密码就完成了

1
2
root@DESKTOPxxx:/mnt/c/Users/xxx# passwd root
Enter new UNIX password:

多个wsl

使用-d 指定实例切换到root用户,如:

1
wsl -d Ubuntu-18.04 --user root

sudo密码

sudo密码实际和用户的密码是一个,和上面的方法一致,使用passwd 加用户名重置当前用户的sudo密码

PS:
1️⃣ 建议优先提交DA值高且影响力大的平台
2️⃣ 每个平台的提交要求和规则可能不同,请仔细阅读
3️⃣ 保持提交频率的自然性,避免集中提交
4️⃣ 定期检查外链存活状态
5️⃣ 持续维护和更新已发布的内容


常规热门网站

Google Business Profile | DA 100 | MarketPlace | High Impact

Forbes Technology | DA 94 | Media | High Impact

Guardian Technology | DA 94 | Media | High Impact

Huffingtonpost | DA 94 | Media | High Impact

TechCrunch | DA 93 | Media | High Impact

Mashable | DA 93 | Media | High Impact

Engadget | DA 93 | Media | High Impact

Gizmodo | DA 93 | Media | High Impact

Wired | DA 93 | Media | High Impact

Trustpilot | DA 93 | Review Site | High Impact

Behance | DA 92 | Creative | High Impact

BostInno | DA 92 | Media | High Impact

Digg | DA 92 | Media | High Impact

Fastcompany | DA 92 | Media | High Impact

Softonic | DA 92 | Directory | High Impact

Crunchbase | DA 91 | Directory | High Impact

Stripe | DA 91 | Partner Program | High Impact

Android Authority | DA 91 | Media | High Impact

Healthline | DA 91 | Media | High Impact

MakeUseOf | DA 90 | Media | High Impact

ProductHunt | DA 89 | Launch Platform | High Impact

HackerNews | DA 89 | Forum | High Impact

Atlassian | DA 89 | Community | High Impact

The Register | DA 89 | Media | High Impact

Geekwire | DA 88 | Directory | High Impact

HackerNoon | DA 88 | Media | High Impact

FreeCodeCamp | DA 88 | Forum | High Impact

AlternativeTo | DA 87 | Directory | Medium Impact

Angellist | DA 87 | Jobs | High Impact

BuzzFeed News | DA 87 | Blog | High Impact

YourStory | DA 86 | Media | High Impact

Wellfound | DA 86 | Jobs | High Impact

Mac Stories | DA 82 | Media | High Impact

DEV Community | DA 84 | Community | High Impact

Devpost | DA 84 | Community | High Impact

e27 | DA 77 | Media | High Impact

Sitejabber | DA 74 | Directory | High Impact

Vccircle | DA 73 | Directory | High Impact

FinancesOnline | DA 72 | Media | High Impact

All top startups | DA 72 | Directory | Medium Impact

TrustRadius | DA 70 | Review Site | High Impact

Similar Sites | DA 68 | Review Site | High Impact

Growth Hackers | DA 66 | Community | Low Impact

Startup Grind | DA 65 | Slack Community | Medium Impact

Foundr | DA 64 | Media | Medium Impact

Hashnode | DA 61 | Blogging Platform | High Impact

Betalist | DA 60 | Directory | High Impact

All my faves | DA 60 | Tools | High Impact

Startupxplore | DA 59 | Directory | Medium Impact

Webrazzi | DA 58 | Media | Medium Impact

Slant | DA 58 | Community | Medium Impact

People Ops & HR | DA 58 | Slack Community | Medium Impact

AlphaDigits | DA 57 | Review Site | Medium Impact

Alternative.me | DA 55 | Directory | High Impact

KillerStartup | DA 55 | Media | Medium Impact

Tech directory | DA 55 | Directory | Medium Impact

NextBigWhat | DA 55 | Media | Medium Impact

Venture Village | DA 54 | Media | Medium Impact

Product School | DA 54 | Slack Community | Medium Impact

Changelog | DA 54 | Media | Medium Impact

SoftwareSuggest | DA 52 | Review Site | Medium Impact

CoFoundersLab | DA 51 | Community | Medium Impact

DevDojo | DA 50 | Dev Community | Medium Impact

Betabound | DA 49 | Beta testing | Medium Impact

Serchen | DA 49 | Directory | Medium Impact

Netted | DA 49 | Media | Medium Impact

Lobsters | DA 48 | Launch Platform | Medium Impact

devRant | DA 48 | Community | Medium Impact

Elpha | DA 47 | Community | Medium Impact

eCommerceFuel | DA 47 | Community | Medium Impact

One Thing Well | DA 47 | Blog | Medium Impact

CrozDesk | DA 46 | Review Website | Medium Impact

Fastlane Forum | DA 45 | Community | Medium Impact

Venture Radar | DA 45 | Directory | Low Impact

There’s An AI For That | DA 44 | Directory | Medium Impact

Land Book | DA 44 | Design | Medium Impact

Startupbeat | DA 44 | Media | Medium Impact

Startup Buffer | DA 44 | Directory | Medium Impact

Real World Beta Testing | DA 43 | Beta testing | Medium Impact

Online Geniuses | DA 42 | Slack Community | Medium Impact

Web3Canvas | DA 41 | Blog | Medium Impact

Future Startup | DA 41 | Publication | Medium Impact

SaasGenius | DA 41 | Directory | Medium Impact

Superb Crew | DA 41 | Media | Medium Impact

SaaSHub | DA 40 | Directory | Medium Impact

SaaSworthy | DA 40 | Review Site | Medium Impact

TechPluto | DA 40 | Media | Medium Impact

Futurepedia | DA 40 | AI directory | Medium Impact

Startup Resources | DA 39 | Newsletter | Medium Impact

Tech Tools Directory | DA 38 | Directory | Medium Impact

buildspace | DA 38 | Platform | Medium Impact

Supertools | DA 38 | AI directory | Medium Impact

Web Tools Weekly | DA 37 | Directory | Medium Impact

Submit A Startup | DA 37 | Media | Medium Impact

TopAI.tools | DA 37 | AI directory | Medium Impact

Women in Technology | DA 35 | Slack Community | Medium Impact

Romanian Startups | DA 34 | Directory | Medium Impact

Toolify | DA 34 | AI directory | Low Impact

No Code Founders | DA 33 | Slack Community | Medium Impact

Robin Good’s Tools | DA 33 | Directory | Medium Impact

New Startups | DA 33 | Media | Medium Impact

Promotehour | DA 33 | Directory | Low Impact

iOS Developers | DA 32 | Slack community | Medium Impact

Peerlist | DA 32 | Directory | Medium Impact

Product-Led Alliance | DA 32 | Slack Community | Low Impact

Growmance | DA 32 | Slack Community | Low Impact

GenZ VCs | DA 31 | Slack Community | Medium Impact

Creative Tribes | DA 29 | Community | Low Impact

Startups.watch | DA 29 | MarketPlace | Low Impact

Startuptabs | DA 29 | Directory | Low Impact

Techendo | DA 29 | Directory | Low Impact

founderio | DA 29 | Community | Low Impact

TechLondon | DA 27 | Slack Community | Low Impact

aitools.fyi | DA 27 | AI directory | Low Impact

Easy With AI | DA 27 | AI directory | Low Impact

Landscape | DA 26 | Slack Community | Low Impact

unita | DA 25 | Directory | Low Impact

AI Scout | DA 25 | AI directory | Low Impact

SEOUL Startups | DA 24 | Slack Community | Low Impact

Remotely One | DA 24 | Slack Community | Low Impact

Ai Tool Hunt | DA 24 | AI directory | Low Impact

Postmake | DA 23 | Blog | Low Impact

AppsMirror | DA 22 | Review Site | Low Impact

#TechMasters | DA 22 | Community | Low Impact

Dev Hunt | DA 22 | Launch Platform | Low Impact

Kernal | DA 22 | Idea platform | Low Impact

SaaS AI Tools | DA 22 | AI directory | Low Impact

Tool Scout | DA 20 | AI directory | Low Impact

10Words | DA 20 | Newsletter | Low Impact

AwesomeIndie | DA 20 | Launch Platform | Low Impact

Firebase | DA 20 | Community | Low Impact

Ben Bites News | DA 20 | AI directory | Low Impact

Igniter AI | DA 19 | AI directory | Low Impact

aiwizard | DA 18 | AI directory | Low Impact

Open Startup List | DA 18 | List | Low Impact

CtrlAltCC | DA 18 | Launch Platform | Low Impact

AI Startups | DA 17 | AI directory | Low Impact

FoundersList | DA 17 | Community | Low Impact

MicroLaunch | DA 17 | Directory | Low Impact

AI Depot | DA 17 | AI directory | Low Impact

AI Tools Directory | DA 28 | AI directory | Low Impact

Startup Europe | DA 16 | Directory | Low Impact

Apprater | DA 16 | Launch Platform | Medium Impact

Indie London | DA 15 | Slack Community | Low Impact

1000 Tools | DA 15 | Directory | Medium Impact

AI Tool Details | DA 15 | AI directory | Low Impact

FeedMyStartup | DA 15 | Media | Low Impact

AI ToolBoard | DA 14 | AI directory | Low Impact

Outreach Desk | DA 14 | Slack Community | Low Impact

Broadwise | DA 14 | Community | Low Impact

SaaS Directory | DA 13 | Directory | Low Impact

The AI Warehouse | DA 12 | AI directory | Low Impact

Hackers Pad | DA 12 | Community | Low Impact

Microsoft Dev Chat | DA 12 | Community | Low Impact

The Ultimate ChatGPT Database | DA 11 | AI directory | Low Impact

Startup Roulette | DA 11 | Directory | Low Impact

Snowball club | DA 10 | Community | Low Impact

Mad Genius | DA 9 | AI directory | Low Impact

Belkins B2B Sales | DA 8 | Slack Community | Low Impact

Future AGI Tools | DA 8 | AI directory | Low Impact

Founderopedia | DA 7 | Slack Community | Low Impact

Silicon Prairie Tech | DA 7 | Community | Low Impact

SaaSBaba | DA 6 | AI directory | Low Impact

AI Marketing Directory | DA 6 | AI directory | Low Impact

Reddit 社区

r/GrowthHacking | Subreddit | High Impact

r/Marketing | Subreddit | High Impact

r/Sales | Subreddit | High Impact

r/startup_resources | Subreddit | High Impact

r/startup | Subreddit | High Impact

r/streetwearstartup | Subreddit | Medium Impact

r/VentureCapital | Subreddit | Medium Impact

r/SweatyStartup | Subreddit | Medium Impact

r/testmyapp | Subreddit | Medium Impact

r/eCommerce | Subreddit | Medium Impact

r/EmailMarketing | Subreddit | Medium Impact

r/NoCodeSaaS | Subreddit | Low Impact

r/Plugyourproduct | Subreddit | Low Impact

r/Retail | Subreddit | Low Impact

r/VenturedCapital | Subreddit | Low Impact

r/WebMarketing | Subreddit | Low Impact

r/Socialpreneur | Subreddit | Low Impact

r/AlphaandBetausers | Subreddit | Low Impact

r/growinpublic | Subreddit | Low Impact

r/GrowMyBusiness | Subreddit | Low Impact

r/DotCom | Subreddit | Low Impact

Discord 社区

Furlough | Discord Community | Medium Impact

Makers HQ | Discord Community | Medium Impact

Tech Startup Community | Discord Community | Low Impact

Stripe Discord Server | Discord Community | Low Impact

OpenAI discord Server | Discord Community | Low Impact

Retool Discord Server | Discord Community | Low Impact

Loqol Startup Community | Discord Community | Low Impact

Makers Community | Discord Community | Low Impact

Startup India | Discord Community | Low Impact

Makerspace | Discord Community | Low Impact

LinkedIn 社区

Entrepreneur’s network | LinkedIn Group | Low Impact

Band of Entrepreneurs | LinkedIn Group | Low Impact

Startup Specialists Group | LinkedIn Group | Low Impact

Executive Suite | LinkedIn Group | Low Impact

On Startups | LinkedIn Group | Low Impact


📌 DA 值会随时间变化,提交前请重新验证。

ref