diff --git a/notes/ai/ai-glossary.md b/notes/ai/ai-glossary.md index a89e2f4211f..4d1832ece90 100644 --- a/notes/ai/ai-glossary.md +++ b/notes/ai/ai-glossary.md @@ -7,6 +7,7 @@ tags: | abbr. | for | cn | | ----- | -------------------------------------------- | -------------------- | +| GPT | Generative Pre-trained Transformer | 生成型预训练变换模型 | | LLM | Large Language Model | 大语言模型 | | LoRA | Language of Rules and Actions | 语言规则与行动语言 | | LLaMa | Large Language Model for Machine Translation | 机器翻译的大语言模型 | diff --git a/notes/ai/chatgpt/README.md b/notes/ai/chatgpt/README.md deleted file mode 100644 index 89808e78596..00000000000 --- a/notes/ai/chatgpt/README.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: ChatGPT ---- - -# ChatGPT - -## API - -```bash -curl https://api.openai.com/v1/models \ - -H "Authorization: Bearer $OPENAI_API_KEY" \ - -H "OpenAI-Organization: org-5FZWKSvJEvQSok3N4NM9Avue" -``` - -# FAQ - -## Access denied - -尝试不用 VPN 或者换 VPN - -## 清理 Auth 信息 - -```js -javascript:window.localStorage.removeItem(Object.keys(window.localStorage).find(i=>i.startsWith('@@auth0spajs')) -``` diff --git a/notes/ai/coding/continue.md b/notes/ai/coding/continue.md index cb317505a00..4fd8d067c6c 100644 --- a/notes/ai/coding/continue.md +++ b/notes/ai/coding/continue.md @@ -15,6 +15,7 @@ title: continue - Jetbrain 插件 https://plugins.jetbrains.com/plugin/22707-continue ``` +# PostHog allow_anonymous_telemetry=False ``` diff --git a/notes/ai/dalle.md b/notes/ai/dalle.md index ac177ffb798..536c690b486 100644 --- a/notes/ai/dalle.md +++ b/notes/ai/dalle.md @@ -10,3 +10,24 @@ title: DALL-E - 不能生成 中文 ::: + +- gen_id + - 需要在相同 session + - 可以要求返回 DALLE gen_id + - referenced_image_ids 使用 gen_id +- https://community.openai.com/t/after-upgrade-seeds-doesnt-work-generation-id-is-introduced/462161/7 +- https://twitter.com/MooenyChu/status/1727497076786045346 + +````md +Send this JSON data to the image generator, do not modify anything. After generating an image, show me the JSON data that the image generator returns to you. + +``` +{ + "size": "1024x1024", + "prompts": [ + "Japanese anime style. In a dimly lit dungeon, a fearsome beast with sharp claws and glowing blue eyes stands guard, ready to attack any intruder." + ], + "seeds": [3075182356] +} +``` +```` diff --git a/notes/ai/gpt/gpt-awesome.md b/notes/ai/gpt/gpt-awesome.md index 1e28cdd14bf..7de6c23d41f 100644 --- a/notes/ai/gpt/gpt-awesome.md +++ b/notes/ai/gpt/gpt-awesome.md @@ -5,7 +5,7 @@ tags: # GPT Awesome -- GPT - Generative Pre-trained Transformer - 生成型已训练变换模型 +- GPT - Generative Pre-trained Transformer - 生成型预训练变换模型 - wikipedia [GPT-3](https://en.wikipedia.org/wiki/GPT-3) - autoregressive language model - 自回归语言模型 - [openai/gpt-3](https://github.com/openai/gpt-3) diff --git a/notes/ai/prompt-awesome.md b/notes/ai/prompt-awesome.md index 5c48e0f6111..07e78814e38 100644 --- a/notes/ai/prompt-awesome.md +++ b/notes/ai/prompt-awesome.md @@ -68,6 +68,8 @@ https://twitter.com/dotey/status/1722831122285932592 https://github.com/linexjlin/GPTs https://crackgpts.com/ https://github.com/LouisShark/chatgpt_system_prompt +https://gptseek.com/ +https://twitter.com/FinanceYF5/status/1726456413227298905 https://chat.openai.com/g/g-4nCSDIETH-phototoavatar 广告文案 diff --git a/notes/ai/openai.md b/notes/ai/service/openai/README.md similarity index 95% rename from notes/ai/openai.md rename to notes/ai/service/openai/README.md index 7a637c4c5c0..eda56f870c9 100644 --- a/notes/ai/openai.md +++ b/notes/ai/service/openai/README.md @@ -113,3 +113,14 @@ Rate limit reached for default-gpt-3.5-turbo in organization org-xxx on requests ``` ## 您的银行卡被拒绝了。 + + +## Access denied + +尝试不用 VPN 或者换 VPN + +## 清理 Auth 信息 + +```js +javascript:window.localStorage.removeItem(Object.keys(window.localStorage).find(i=>i.startsWith('@@auth0spajs')) +``` diff --git a/notes/ai/chatgpt/chatgpt-awesome.md b/notes/ai/service/openai/chatgpt-awesome.md similarity index 100% rename from notes/ai/chatgpt/chatgpt-awesome.md rename to notes/ai/service/openai/chatgpt-awesome.md diff --git a/notes/ai/stable-diffusion/stable-diffusion-awesome.md b/notes/ai/stable-diffusion/stable-diffusion-awesome.md index 499250f7ed5..3193f18dd30 100644 --- a/notes/ai/stable-diffusion/stable-diffusion-awesome.md +++ b/notes/ai/stable-diffusion/stable-diffusion-awesome.md @@ -6,6 +6,7 @@ tags: # Stable Diffusion Awesome +- [apple/ml-stable-diffusion](https://github.com/apple/ml-stable-diffusion) - https://latent-consistency-models.github.io/ - https://www.fal.ai/models/latent-consistency-sd - https://github.com/fal-ai diff --git a/notes/db/design-schema.md b/notes/db/design-schema.md index d597b9529db..9e3f0ce4122 100644 --- a/notes/db/design-schema.md +++ b/notes/db/design-schema.md @@ -88,6 +88,8 @@ tags: - K-Sortable - 基本有序 - Prefetch 优化 - 非常容易连续命中 +- https://sqids.org/ + - HN https://news.ycombinator.com/item?id=38414914 ## 主键类型 diff --git a/notes/dev/dev-faq.md b/notes/dev/dev-faq.md index f49d4725a24..8eb945c0a2b 100644 --- a/notes/dev/dev-faq.md +++ b/notes/dev/dev-faq.md @@ -235,6 +235,27 @@ mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout ``` +## clean + +```bash +brew cleanup +go clean -modcache + +mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false --fail-at-end +gradle clean + +ls ~/.nvm/versions/node/v{12,14,16}* -d 2>/dev/null | xargs -n1 basename +# for s in $( ls ~/.nvm/versions/node/v{12,14,16}* -d 2>/dev/null | xargs -n1 basename );do echo nvm uninstall $s; done +rm -rf ~/.nvm/versions/node/v{12,14,16}* + +nvm cache clear +yarn cache clean +npm cache clean --force +pnpm store prune + +pip cache purge +``` + ## How to ask - https://stackoverflow.com/help/minimal-reproducible-example diff --git a/notes/evolve/levelup-cn.md b/notes/evolve/levelup-cn.md index 53c6274d9b8..da2b37d939b 100644 --- a/notes/evolve/levelup-cn.md +++ b/notes/evolve/levelup-cn.md @@ -27,13 +27,6 @@ title: Level UP in China | NPDP | 国际公认的产品开发专业认证 | | MBA | -## 上海居住证 - -- 积分查询登陆 https://jzzjf.rsj.sh.gov.cn/jzzjf/ - - 打印没有二维码时 临时修改站点设置,允许 Insecure content -- 档案核实进度查询 http://222.68.19.232/webMaster/ggrs/ggrs_cxhs.htm -- [紧缺专业目录](http://jzzjf.rsj.sh.gov.cn/jzzjf/pingfen/jqzyml.htm) -- https://etax.chinatax.gov.cn/ ## 会计 diff --git a/notes/evolve/mgmt/mgmt-faq.md b/notes/evolve/mgmt/mgmt-faq.md deleted file mode 100644 index 3d02cee89fb..00000000000 --- a/notes/evolve/mgmt/mgmt-faq.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: FAQ -tags: - - FAQ ---- - -# Mgmt FAQ - -## 项目经理 vs 技术经理 - -1. 职责不同:项目经理负责项目的规划、执行和控制,确保项目按时、按质量完成,而技术经理则负责技术团队的管理和技术方案的制定,确保技术实现的可行性和高效性。 -2. 技能要求不同:项目经理需要具备项目管理技能和团队管理能力,能够协调各方利益和资源,而技术经理需要具备技术领域的专业知识和技能。 -3. 目标不同:项目经理的工作目标是项目的成功交付,而技术经理的目标是技术实现的优化和创新。 -4. 对公司的贡献不同:项目经理的工作贡献主要体现在项目的成功交付和客户满意度上,而技术经理的工作贡献主要体现在技术创新和公司的技术竞争力上。 - -- https://juejin.cn/post/6856942683089289224 - -## Interview - -**简历** - -- ~100% 可以看出 工作经历 -- ~60% 可以看出 专业与职业 -- ~10% 可以看出 兴趣与热枕 -- ~0% 可以看出 使命与愿景 - -**Flow** - -- 自我简介 -- 招聘者信息同步 - - 告知 公司情况、团队情况、技术栈、工作内容、遇到的问题 -- 项目经历 - - 最近的事情作为切入口 - - 判断 经验、能力 - - 判断 是否真实 -- 专业技能 - - 判断 是否匹配 -- 个人兴趣 -- QA diff --git a/notes/languages/go/go-build.md b/notes/languages/go/go-build.md index ba4e0a78eb1..6b8c816d2ac 100644 --- a/notes/languages/go/go-build.md +++ b/notes/languages/go/go-build.md @@ -193,13 +193,26 @@ docker run --rm -it --entrypoint bash \ - v1 - 默认 - v2 - CMPXCHG16B, LAHF, SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3 - 2009: Nehalem, Jaguar, Intel Atom Silvermont, QEMU + - amdv2 - v3 - AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, OSXSAVE - 2015 - Haswell, Excavator + - amdv3 - v4 - AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL + - 2017: Skylake-X, Skylake-SP + - 2022: Zen 4 + - amdv4 - 参考 - [GOAMD64](https://github.com/golang/go/wiki/MinimumRequirements#amd64) - [Microarchitecture levels](https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels) +```bash +# AMDv3 +# avx 可能有,但可能没 avx2 +grep -oE 'avx2|bmi1|bmi2|f16|fma' /proc/cpuinfo | sort -u +# AMDv4 +grep -oE 'avx512' /proc/cpuinfo | sort -u +``` + ## GOARM - ARM 浮点数逻辑 diff --git a/notes/mgmt/README.md b/notes/mgmt/README.md deleted file mode 100644 index 1f56dee3f13..00000000000 --- a/notes/mgmt/README.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: 管理 ---- - -# 管理 diff --git a/notes/network/internet/ip.md b/notes/network/internet/ip.md index 26fcc6bf5ff..9ebb9f9a9f6 100644 --- a/notes/network/internet/ip.md +++ b/notes/network/internet/ip.md @@ -17,8 +17,11 @@ curl ipecho.net/plain curl icanhazip.com curl ipv4.icanhazip.com +curl 'https://vv.video.qq.com/checktime?otype=json&callback=onCheckTime' + # 使用 DNS 的方式获取 dig +short myip.opendns.com @resolver1.opendns.com + ``` ## Private diff --git a/notes/ops/mirrors.md b/notes/ops/mirrors.md index 296d6884d5f..5157bff4271 100644 --- a/notes/ops/mirrors.md +++ b/notes/ops/mirrors.md @@ -27,9 +27,6 @@ title: Mirrors | https://mirrors.cloud.tencent.com/ | 腾讯云 | | https://mirrors.gitee.com/ | Gitee | -- https://fastly.jsdelivr.net -- https://cnd.jsdelivr.net - **高校镜像** | URL | 地址 | 信息 | @@ -66,6 +63,14 @@ title: Mirrors - https://github.com/SUSTech-CRA/chinese-opensource-mirror-site - https://mirrors.cernet.edu.cn/list +## jsdelivr + +- https://fastly.jsdelivr.net +- https://cnd.jsdelivr.net +- https://jsdelivr.wener.me +- https://github.com/54ayao/Chinajsdelivr + - jsd.cdn.zzko.cn + ## Github - https://gitcode.net @@ -169,27 +174,27 @@ EOF mirrors: docker.io: endpoint: - - https://dockercr.wener.me - - https://docker.m.daocloud.io - - https://registry-1.docker.io + - https://dockercr.wener.me + - https://docker.m.daocloud.io + - https://registry-1.docker.io ghcr.io: endpoint: - - https://ghcr.wener.me - - https://ghcr.io + - https://ghcr.wener.me + - https://ghcr.io registry.k8s.io: endpoint: - - https://k8scr.wener.me - - https://registry.k8s.io + - https://k8scr.wener.me + - https://registry.k8s.io gcr.io: endpoint: - - https://gcr.wener.me - - https://gcr.m.daocloud.io - - https://gcr.io + - https://gcr.wener.me + - https://gcr.m.daocloud.io + - https://gcr.io quay.io: endpoint: - - https://quaycr.wener.me - - https://quay.m.daocloud.io - - https://quay.io + - https://quaycr.wener.me + - https://quay.m.daocloud.io + - https://quay.io ``` ## HomeBrew diff --git a/notes/os/linux/fs/zfs/zfs-faq.md b/notes/os/linux/fs/zfs/zfs-faq.md index 02f24cb0fbd..b38661bc59a 100644 --- a/notes/os/linux/fs/zfs/zfs-faq.md +++ b/notes/os/linux/fs/zfs/zfs-faq.md @@ -375,3 +375,74 @@ zpool online data DISK zpool clear data zpool scrube data # 推荐 ``` + +## remount zvol rw + +```bash +mount -o remount,rw /data/docker +``` + +- cache 异常后导致 zvol 被重新挂载为 ro +- clear cache 的 error 后还是无法挂载,因为 fs 损坏 + + +```ansi +EXT4-fs warning (device zd0): ext4_end_bio:343: I/O error 3 writing to inode 5767264 starting block 14909936) +Buffer I/O error on device zd0, logical block 14909936 +EXT4-fs warning (device zd0): ext4_end_bio:343: I/O error 3 writing to inode 5898267 starting block 11927556) +Buffer I/O error on device zd0, logical block 11927556 +EXT4-fs warning (device zd0): ext4_end_bio:343: I/O error 3 writing to inode 5898258 starting block 20496389) +Buffer I/O error on device zd0, logical block 20496389 +EXT4-fs warning (device zd0): ext4_end_bio:343: I/O error 3 writing to inode 5898266 starting block 2630818) +Buffer I/O error on device zd0, logical block 2630818 +EXT4-fs warning (device zd0): ext4_end_bio:343: I/O error 3 writing to inode 2919521 starting block 16194810) +Buffer I/O error on device zd0, logical block 16194810 +Buffer I/O error on device zd0, logical block 16194811 +Buffer I/O error on device zd0, logical block 16194812 +Buffer I/O error on device zd0, logical block 16194813 +EXT4-fs warning (device zd0): ext4_end_bio:343: I/O error 3 writing to inode 2920494 starting block 14332529) +EXT4-fs warning (device zd0): ext4_end_bio:343: I/O error 3 writing to inode 2883634 starting block 24493815) +Buffer I/O error on device zd0, logical block 24493815 +EXT4-fs warning (device zd0): ext4_end_bio:343: I/O error 3 writing to inode 2883634 starting block 24493816) +Buffer I/O error on device zd0, logical block 14332529 +Buffer I/O error on dev zd0, logical block 0, lost async page write +Buffer I/O error on dev zd0, logical block 1, lost async page write +Buffer I/O error on dev zd0, logical block 2, lost async page write +EXT4-fs error (device zd0): ext4_check_bdev_write_error:217: comm kworker/u8:0: Error while async write back metadata +EXT4-fs (zd0): previous I/O error to superblock detected +Buffer I/O error on dev zd0, logical block 5, lost async page write +Buffer I/O error on dev zd0, logical block 6, lost async page write +Buffer I/O error on dev zd0, logical block 8, lost async page write +Buffer I/O error on dev zd0, logical block 1048588, lost async page write +Buffer I/O error on dev zd0, logical block 1048589, lost async page write +Buffer I/O error on dev zd0, logical block 1466067, lost async page write +Buffer I/O error on dev zd0, logical block 1505175, lost async page write +EXT4-fs warning (device zd0): ext4_end_bio:343: I/O error 3 writing to inode 2883634 starting block 24493838) +EXT4-fs error (device zd0): ext4_check_bdev_write_error:217: comm VM Periodic Tas: Error while async write back metadata +EXT4-fs warning (device zd0): ext4_end_bio:343: I/O error 3 writing to inode 2883634 starting block 24493839) +Aborting journal on device zd0-8. +EXT4-fs error (device zd0) in ext4_convert_unwritten_io_end_vec:4859: IO failure +EXT4-fs (zd0): failed to convert unwritten extents to written extents -- potential data loss! (inode 2883634, error -5) +JBD2: I/O error when updating journal superblock for zd0-8. +EXT4-fs error (device zd0): ext4_journal_check_start:83: comm k3s-server: Detected aborted journal +EXT4-fs (zd0): previous I/O error to superblock detected +EXT4-fs error (device zd0): ext4_journal_check_start:83: comm http-nio-8080-P: Detected aborted journal +EXT4-fs (zd0): I/O error while writing superblock +EXT4-fs (zd0): Remounting filesystem read-only +EXT4-fs (zd0): I/O error while writing superblock +``` + +- 停止服务自动启动 +- reboot +- fsck + +```bash +umount /dev/zd0 +fsck -y /dev/zd0 +mount -a + +# ensure mount point working as expected +touch /data/docker/test + +# start service +``` diff --git a/notes/platform/nordvpn.md b/notes/platform/nordvpn.md index 0345a806a89..f38ae0e1221 100644 --- a/notes/platform/nordvpn.md +++ b/notes/platform/nordvpn.md @@ -4,6 +4,12 @@ title: NordVPN # NordVPN +- 注意 6 设备限制 +- 推荐区域 - 香港作为 relay + - 美国 - 可以考虑额外节点 + - 台湾 + - 日本 + - 新加坡 - 参考 - [bubuntux/nordvpn](https://github.com/bubuntux/nordvpn) @@ -185,3 +191,12 @@ curl -x https://$USERNAME:$PASSWORD@at80.nordvpn.com:89 icanhazip.com ```bash curl https://api.nordvpn.com/vpn/check/full ``` + +# FAQ + +## 6 设备限制 + +- 6 链接限制 +- 过多连接可能需要登录后才能连接成功 +- https://support.nordvpn.com/FAQ/1047408552 +- https://nordvpn.com/zh/features/vpn-for-multiple-devices/ diff --git a/notes/security/crypto/crypto-glossary.md b/notes/security/crypto/crypto-glossary.md new file mode 100644 index 00000000000..f0935eacad2 --- /dev/null +++ b/notes/security/crypto/crypto-glossary.md @@ -0,0 +1,20 @@ +--- +tags: + - Glossary +--- + +# Crypto Glossary + +- ECDSA(v, r, s) - Elliptic_Curve_Digital_Signature_Algorithm + - v=27+(y%2) + - https://bitcoin.stackexchange.com/a/38909 + - [ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) +- [rfc6979](https://datatracker.ietf.org/doc/html/rfc6979) +- https://safecurves.cr.yp.to/ + SafeCurves: choosing safe curves for elliptic-curve cryptography +- ED25519 - 用于签名 +- CV25519 - Curve25519 - 用于加密 +- ECDH - Elliptic Curve Diffie Hellman +- ECDSA - Elliptic Curve Signature Generation +- Elliptic Curve Signature Verification +- ECC - elliptic-curve cryptography diff --git a/notes/security/crypto/password.md b/notes/security/crypto/password.md index 19eac1f4110..df352a8639c 100644 --- a/notes/security/crypto/password.md +++ b/notes/security/crypto/password.md @@ -87,6 +87,8 @@ mkpasswd --rounds 1000 -m sha-512 --salt $(head -c 40 /dev/random | base64 | sed ## 常见服务加密算法 +- `$algorithm$[cost]$[salt][hash]` + ### Gitea - `PASSWORD_HASH_ALGO=pbkdf2` diff --git a/notes/service/api/api-awesome.md b/notes/service/api/api-awesome.md index 70cd8a06de6..cec25db26fe 100644 --- a/notes/service/api/api-awesome.md +++ b/notes/service/api/api-awesome.md @@ -245,12 +245,22 @@ tags: - [metadevpro/openapi3-ts](https://github.com/metadevpro/openapi3-ts) - TS Model - [APIDevTools/swagger-parser](https://github.com/APIDevTools/swagger-parser) - - MIT, JS + - MIT, JS - OpenAPI 2.0, 3.0 parser/validator - Resolves all $ref - [getkin/kin-openapi](https://github.com/getkin/kin-openapi) - MIT, Golang - OpenAPIv3 for Go +- Diff + - [OpenAPITools/openapi-diff](https://github.com/OpenAPITools/openapi-diff) + - Apache-2.0, Java + - [tufin/oasdiff](https://github.com/tufin/oasdiff) + - Apache-2.0, Golang + - https://www.oasdiff.com/ + - [Azure/openapi-diff](https://github.com/Azure/openapi-diff) + - https://api-diff.io/ + - https://bitbucket.org/atlassian/openapi-diff + - https://www.npmjs.com/package/openapi-diff ## API Gateway diff --git a/notes/service/cn/sh/sh-faq.md b/notes/service/cn/sh/sh-faq.md index 1fac04d9a2d..6fe5de404bf 100644 --- a/notes/service/cn/sh/sh-faq.md +++ b/notes/service/cn/sh/sh-faq.md @@ -6,6 +6,17 @@ tags: # 上海 +## 上海居住证 + +- 积分查询登陆 https://jzzjf.rsj.sh.gov.cn/jzzjf/ + - 打印没有二维码时 临时修改站点设置,允许 Insecure content +- 档案核实进度查询 http://222.68.19.232/webMaster/ggrs/ggrs_cxhs.htm +- [紧缺专业目录](http://jzzjf.rsj.sh.gov.cn/jzzjf/pingfen/jqzyml.htm) +- https://etax.chinatax.gov.cn/ + + +# 教育 + ## 对口报名条件 > 即 “小区生” diff --git a/notes/service/data/crawler/crawlee.md b/notes/service/data/crawler/crawlee.md new file mode 100644 index 00000000000..1a3ba6c29ae --- /dev/null +++ b/notes/service/data/crawler/crawlee.md @@ -0,0 +1,8 @@ +--- +title: crawlee +--- + +# crawlee + +- [apify/crawlee](https://github.com/apify/crawlee) + - Apache-2.0 diff --git a/notes/service/data/crawler/crawler-awesome.md b/notes/service/data/crawler/crawler-awesome.md index 096811c2bcf..2f77f961dcb 100644 --- a/notes/service/data/crawler/crawler-awesome.md +++ b/notes/service/data/crawler/crawler-awesome.md @@ -14,3 +14,12 @@ tags: - [PuerkitoBio/goquery](https://github.com/PuerkitoBio/goquery) - BSD-3, Golang - jQuery + +## Bots + +- https://www.useragentstring.com/pages/Crawlerlist/ +- https://github.com/monperrus/crawler-user-agents/blob/master/crawler-user-agents.json + +``` +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 (Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot) +``` diff --git a/notes/service/erp/erp-glossary.md b/notes/service/erp/erp-glossary.md index ad25aff6831..260f2664cde 100644 --- a/notes/service/erp/erp-glossary.md +++ b/notes/service/erp/erp-glossary.md @@ -17,7 +17,7 @@ tags: - [scheibler/khard](https://github.com/scheibler/khard) - Console carddav client - [3 open source tools to manage your contacts](https://opensource.com/article/20/1/sync-contacts-locally) -## User - 员工/用户 {#user} +## User - 员工/用户/服务商 {#user} ## Customer - 客户 {#customer} @@ -30,6 +30,8 @@ tags: ## Account - 账户 {#account} +- 企业客户 + ## Contact - 联系人 {#contact} - 企业外部人员 diff --git a/notes/service/erp/sop.md b/notes/service/erp/sop.md new file mode 100644 index 00000000000..e5cf263d5f1 --- /dev/null +++ b/notes/service/erp/sop.md @@ -0,0 +1,90 @@ +--- +title: SOP +--- + +# SOP + +- https://www.notion.so/templates/category/standard-operating-procedure-sop +- https://nujuo8y1qx.feishu.cn/docs/doccnAaTyrx2KMhWcTVKhxtC9bc + +```markdown +| 标题 | [SOP的标题] | +| ------------ | ---------------------- | +| 文档编号 | [文档的唯一标识号] | +| 版本号 | [当前版本] | +| 生效日期 | [SOP开始实施的日期] | +| 审核日期 | [最近一次审查的日期] | +| 下次审查日期 | [下一次计划审查的日期] | + +--- + +### 1. 目的 + +简明扼要地说明编写这份SOP的目的是什么。 + +### 2. 范围 + +描述这份SOP适用的业务范围、部门或任务。 + +### 3. 责任 + +列出负责执行、监督和维护此SOP的个人或团队。 + +### 4. 定义 + +提供文档中使用的专业术语、缩写和定义。 + +--- + +### 5. 程序步骤 + +#### 5.1 步骤一 + +- 描述步骤一的具体操作指导。 + +#### 5.2 步骤二 + +- 描述步骤二的具体操作指导。 + +(以此类推) + +--- + +### 6. 所需资源 + +列出执行SOP所需的材料、工具或资源。 + +### 7. 相关文档/参考资料 + +提供相关政策、指南或外部标准的链接或引用。 + +### 8. 健康和安全警告(如适用) + +提供必要的安全指南和警告。 + +### 9. 附录(如适用) + +包括相关的表格、模板或额外信息。 + +--- + +### 10. 审核记录 + +| 版本号 | 审核人 | 审核日期 | 备注 | +| ------ | ------ | -------- | ------ | +| 1.0 | [姓名] | [日期] | [备注] | +| 1.1 | [姓名] | [日期] | [备注] | + +--- + +### 11. 更改记录 + +| 版本号 | 更改描述 | 更改日期 | 更改人 | +| ------ | -------- | -------- | ------ | +| 1.0 | [描述] | [日期] | [姓名] | +| 1.1 | [描述] | [日期] | [姓名] | + +--- + +此模板提供了创建SOP的基本框架,具体内容需要根据实际的业务流程和需求进行定制。确保SOP文档清晰、准确且易于理解,以便于所有相关人员能够正确执行。 +``` diff --git a/notes/service/file/nextcloud/nextcloud-faq.md b/notes/service/file/nextcloud/nextcloud-faq.md index 7a73020a152..2a1dea4b96a 100644 --- a/notes/service/file/nextcloud/nextcloud-faq.md +++ b/notes/service/file/nextcloud/nextcloud-faq.md @@ -1,7 +1,7 @@ --- title: Nextcloud FAQ tags: -- FAQ + - FAQ --- # Nextcloud FAQ @@ -20,6 +20,14 @@ export PHP_MEMORY_LIMIT=8G tail -f /var/www/html/data/nextcloud.log ``` +## 移除获取免费账号的 Footer + +```bash +su -l www-data -s /bin/bash +cd /var/www/html +./occ config:system:set simpleSignUpLink.shown --value=false --type=boolean +``` + ## nextcloud put 413 发生未知错误 @@ -99,7 +107,6 @@ Strict-Transport-Security max-age=31536000; ## Collabora Online should expose the same protocol as the server installation. Please check the ssl.enable and ssl.termination settings of your Collabora Online server. - ## loading document exception: No acceptable WOPI hosts found matching the target host ```bash @@ -119,4 +126,5 @@ docker run --rm -it -e 'domain=nextcloud.wener.me' ``` ## AH00558: apache2: Could not reliably determine the server's fully qualified domain name + Apache 错误信息,不影响 diff --git a/notes/service/file/nextcloud/nextcloud-version.md b/notes/service/file/nextcloud/nextcloud-version.md index 01df92bfa92..46ccbe020e7 100644 --- a/notes/service/file/nextcloud/nextcloud-version.md +++ b/notes/service/file/nextcloud/nextcloud-version.md @@ -13,12 +13,18 @@ title: Nextcloud 版本 | version | date | | ------------ | ---------- | +| Nextcloud 27 | | +| Nextcloud 26 | | | Nextcloud 25 | 2022-12-08 | | Nextcloud 24 | 2022-05-03 | | Nextcloud 23 | 2021-11-30 | | Nextcloud 23 | 2022-05-03 | | Nextcloud 22 | 2021-07-06 | +## Nextcloud 27 + +## Nextcloud 26 + ## Nextcloud 25 ## Nextcloud 24 diff --git a/notes/service/network/proxy/glider.md b/notes/service/network/proxy/glider.md index 73856b388f0..5e7da011260 100644 --- a/notes/service/network/proxy/glider.md +++ b/notes/service/network/proxy/glider.md @@ -24,4 +24,40 @@ title: glider ```bash brew install glider + + +``` + +```ini +verbose +listen=trojan://UUID@0.0.0.0:1234?cert=/etc/ssl/certs/host.crt&key=/etc/ssl/private/host.key +``` + +```bash +#!/sbin/openrc-run +supervisor=supervise-daemon + +name="Glider" +description="A forward proxy with multiple protocolso." + +command=/usr/local/bin/glider +command_args="-config /etc/glider/${RC_SVCNAME}.conf" + +LOGFILE="${LOGFILE:-/var/log/${RC_SVCNAME}.log}" +output_log=${LOGFILE} +error_log=${LOGFILE} + +depend() { + use logger dns + need net +} + +checkconfig() { + # warn this if not found + if [ ! -f "/etc/glider/${RC_SVCNAME}.conf" ] ; then + eerror "No config ${RC_SVCNAME}.conf" + return 1 + fi + return 0 +} ``` diff --git a/notes/service/network/proxy/http.md b/notes/service/network/proxy/http.md new file mode 100644 index 00000000000..f856b2a6440 --- /dev/null +++ b/notes/service/network/proxy/http.md @@ -0,0 +1,59 @@ +--- +title: HTTP Proxy +--- + +# HTTP Proxy + +- HTTP CONNECT 方法 + - 只能 HTTP 1.1 + +``` +CONNECT github.com:443 HTTP/1.1 +Host: github.com:443 +User-Agent: curl/7.64.1 +Proxy-Connection: Keep-Alive +``` + +``` +HTTP/1.1 200 Connection Established +Proxy-agent: nginx +X-Proxy-Connected-Addr: 13.229.188.59:443 +``` + +## HAProxy + +- Upstream + - https://github.com/haproxy/haproxy/issues/1542 +- 2.2 ~~http-tunnel~~ + - https://news.ycombinator.com/item?id=23817444 + +## Nginx + +- [chobits/ngx_http_proxy_connect_module](https://github.com/chobits/ngx_http_proxy_connect_module) + - 支持 HTTP CONNECT + +```bash +nginx -V | grep http_proxy_connect_module +``` + +```nginx +server { + listen 443; + + # dns resolver used by forward proxying + resolver 114.114.114.114; + + # forward proxy for CONNECT request + proxy_connect; + proxy_connect_allow 443; + proxy_connect_connect_timeout 10s; + proxy_connect_read_timeout 10s; + proxy_connect_send_timeout 10s; + + # forward proxy for non-CONNECT request + location / { + proxy_pass http://$host; + proxy_set_header Host $host; + } +} +``` diff --git a/notes/service/observability/highlight.md b/notes/service/observability/highlight.md new file mode 100644 index 00000000000..c0960d87856 --- /dev/null +++ b/notes/service/observability/highlight.md @@ -0,0 +1,12 @@ +--- +title: highlight +--- + +# highlight + +- [highlight](https://github.com/highlight/highlight) + - Apache-2.0+EE, TS, Go + - error monitoring, session replay, logging, trace + - https://github.com/highlight/highlight/blob/main/docker/compose.yml + - zookeeper, kafka, redis, postgres, clickhouse, collector + - backend, frontend diff --git a/notes/service/serverless/README.md b/notes/service/serverless/README.md new file mode 100644 index 00000000000..396988be935 --- /dev/null +++ b/notes/service/serverless/README.md @@ -0,0 +1,20 @@ +--- +title: Serverless +--- + +# Serverless + +- 由平台提供运行容器环境 + - e.g. + - Tomecat -> WAR -> Java + - Apache -> vhost -> PHP +- 基于 Path/Host/Header 的 路由 + - 路由层由平台提供 +- 基于事件触发 + - e.g. Keda +- 特点 + - 无状态 + - 无运维 + - 按需部署 + - 按时长计费 +- [Awesome](./serverless-awesome.md) diff --git a/notes/service/serverless/laf.md b/notes/service/serverless/laf.md new file mode 100644 index 00000000000..fe9cc547a64 --- /dev/null +++ b/notes/service/serverless/laf.md @@ -0,0 +1,8 @@ +--- +title: laf +--- + +# laf + +- [labring/laf](https://github.com/labring/laf) + - Apache-2.0, TS diff --git a/notes/devops/service/serverless-awesome.md b/notes/service/serverless/serverless-awesome.md similarity index 100% rename from notes/devops/service/serverless-awesome.md rename to notes/service/serverless/serverless-awesome.md diff --git a/notes/service/service-awesome.md b/notes/service/service-awesome.md index da5988f322a..543912d9489 100644 --- a/notes/service/service-awesome.md +++ b/notes/service/service-awesome.md @@ -272,6 +272,115 @@ tags: - [jimmykuu/gopher](https://github.com/jimmykuu/gopher) - [mlogclub/bbs-go](https://github.com/mlogclub/bbs-go) - [beego/wetalk](https://github.com/beego/wetalk) +- Storage/File/Drive + - Nextcloud + - [cloudreve/Cloudreve](https://github.com/cloudreve/Cloudreve) + - GPLv3, Golang +- file share/airdrop + - [localsend/localsend](https://github.com/localsend/localsend) + - MIT, Dart, Flutter + - 🌟 + - GUI/桌面/Web 应用 + - https://localsend.org/ + - [schollz/croc](https://github.com/schollz/croc) + - MIT, Go + - 🌟 + - 命令行 + - 依赖 relay,可以 selfhost + - 支持 resume + - [tudbut/qft](https://github.com/tudbut/qft) + - GPLv3, Rust + - [psanford/wormhole-william](https://github.com/psanford/wormhole-william) + - MIT, Go + - 不支持 resume + - ⚠️ 默认 release 依赖 glibc + - https://github.com/psanford/wormhole-william-mobile + - [schlagmichdoch/PairDrop](https://github.com/schlagmichdoch/PairDrop) + - GPLv3, JS, WebRTC, NodeJS + - fork of Snapdrop + - [RobinLinus/snapdrop](https://github.com/RobinLinus/snapdrop) + - GPLv3, JS + - [mozilla/send](https://github.com/mozilla/send) + - MPLv2 + - [timvisee/send](https://github.com/timvisee/send) + - fork of mozilla/send + - https://send.vis.ee + - [saljam/webwormhole](https://github.com/saljam/webwormhole) + - [szimek/sharedrop](https://github.com/szimek/sharedrop) + - MIT, JS + - P2P + - [kern/filepizza](https://github.com/kern/filepizza) + - P2P + - https://file.pizza/ + - ~~[dennis-tra/pcp](https://github.com/dennis-tra/pcp)~~ + - Apache-2.0, Golang, libp2p + - 命令行 + - IPFS DHT + - [blenderskool/blaze](https://github.com/blenderskool/blaze) + - MIT, JS + - Web, P2P + - built using WebTorrent and WebSockets + - [LeastAuthority/winden](https://github.com/LeastAuthority/winden) + - [magic-wormhole/magic-wormhole.rs](https://github.com/magic-wormhole/magic-wormhole.rs) + - EUPL-1.2, Rust + - http://magic-wormhole.io/ + - [mat-sz/filedrop](https://github.com/mat-sz/filedrop) + - BSC-3, NodeJS, React + - https://magic-wormhole.readthedocs.io/en/latest/ + - https://wormhole.app/ + - PAKE - e2e 加密 +- CMS + - https://github.com/gollum/gollum + - MIT, Ruby + - Git-powered wiki with a sweet API and local frontend + - [outline/outline](https://github.com/outline/outline) + - BSL 1.1 +- image + - [cshum/imagor](https://github.com/cshum/imagor) + - Go, libvips +- git + - [charmbracelet/soft-serve](https://github.com/charmbracelet/soft-serve) +- zoom, team + - [miroslavpejic85/mirotalksfu](https://github.com/miroslavpejic85/mirotalksfu) + - WebRTC & SFU + - SFU - [versatica/mediasoup](https://github.com/versatica/mediasoup) https://mediasoup.org/ +- office + - [gotenberg/gotenberg](https://github.com/gotenberg/gotenberg) + - stateless API for PDF files +- gist/pastebin + - [thomiceli/opengist](https://github.com/thomiceli/opengist) + - AGPLv3, Go +- form/问卷调查系统/表单系统 + - [TDuckCloud/tduck-platform](https://github.com/TDuckCloud/tduck-platform) + - [javahuang/surveyking](https://github.com/javahuang/surveyking) +- real-time/messaging/Websocket as a Service + - nats + - 支持 WebSocket, JWT 认证 + - [im-awesome](./im/im-awesome.md) + - [centrifugal/centrifugo](https://github.com/centrifugal/centrifugo) + - 实时消息服务 + - 作为独立服务存在 + - JWT 认证 + - 暴露 HTTP, GRPC 接口 + - 可以将 RPC Websocket 请求转换为 HTTP 请求 + - MIT 协议 + - language-agnostic - 语言无关 + - Websocket - JSON, Protobuf + - SockJS - polyfill + - 类似商业产品 + - https://pusher.com/websockets + - 适用场景 + - php+html - php 不易处理 ws,但使用该服务可以 php --POST-> centrifugo --WS-> html + - vercel 部署请求必须 10s 内 - 则可以 NextJS 后端 -> centrifugo -> 前端 + - AWS Lambda 场景 - 没有长链接,需要支持通知 + - Function as a Service 场景 - 没有链接概念,需要支持通知 + - 聊天产品、实时通知、消息集成、事件驱动 + - 类似于 Kafka,但是是面向 C 端产品 +- Map/Geo + - [protomaps](https://github.com/protomaps) + - [maplibre](https://github.com/maplibre) +- serverless/event driven + - [triggerdotdev/trigger.dev](https://github.com/triggerdotdev/trigger.dev) ## Avatar @@ -381,109 +490,7 @@ tags: - [Conchylicultor/DeepQA](https://github.com/Conchylicultor/DeepQA) - Apache-2.0, Python, 停止开发 - [DopplerHQ/awesome-bots](https://github.com/DopplerHQ/awesome-bots) -- [outline/outline](https://github.com/outline/outline) - - BSL 1.1 -- CMS - - https://github.com/gollum/gollum - - MIT, Ruby - - Git-powered wiki with a sweet API and local frontend -- image - - [cshum/imagor](https://github.com/cshum/imagor) - - Go, libvips -- git - - [charmbracelet/soft-serve](https://github.com/charmbracelet/soft-serve) -- zoom, team - - [miroslavpejic85/mirotalksfu](https://github.com/miroslavpejic85/mirotalksfu) - - WebRTC & SFU - - SFU - [versatica/mediasoup](https://github.com/versatica/mediasoup) https://mediasoup.org/ -- office - - [gotenberg/gotenberg](https://github.com/gotenberg/gotenberg) - - stateless API for PDF files -- gist/pastebin - - [thomiceli/opengist](https://github.com/thomiceli/opengist) - - AGPLv3, Go -- form/问卷调查系统/表单系统 - - [TDuckCloud/tduck-platform](https://github.com/TDuckCloud/tduck-platform) - - [javahuang/surveyking](https://github.com/javahuang/surveyking) -- real-time/messaging/Websocket as a Service - - nats - - 支持 WebSocket, JWT 认证 - - [im-awesome](./im/im-awesome.md) - - [centrifugal/centrifugo](https://github.com/centrifugal/centrifugo) - - 实时消息服务 - - 作为独立服务存在 - - JWT 认证 - - 暴露 HTTP, GRPC 接口 - - 可以将 RPC Websocket 请求转换为 HTTP 请求 - - MIT 协议 - - language-agnostic - 语言无关 - - Websocket - JSON, Protobuf - - SockJS - polyfill - - 类似商业产品 - - https://pusher.com/websockets - - 适用场景 - - php+html - php 不易处理 ws,但使用该服务可以 php --POST-> centrifugo --WS-> html - - vercel 部署请求必须 10s 内 - 则可以 NextJS 后端 -> centrifugo -> 前端 - - AWS Lambda 场景 - 没有长链接,需要支持通知 - - Function as a Service 场景 - 没有链接概念,需要支持通知 - - 聊天产品、实时通知、消息集成、事件驱动 - - 类似于 Kafka,但是是面向 C 端产品 -- file share/airdrop - - [localsend/localsend](https://github.com/localsend/localsend) - - MIT, Dart, Flutter - - 🌟 - - GUI/桌面/Web 应用 - - https://localsend.org/ - - [schollz/croc](https://github.com/schollz/croc) - - MIT, Go - - 🌟 - - 命令行 - - 依赖 relay,可以 selfhost - - 支持 resume - - [tudbut/qft](https://github.com/tudbut/qft) - - GPLv3, Rust - - [psanford/wormhole-william](https://github.com/psanford/wormhole-william) - - MIT, Go - - 不支持 resume - - ⚠️ 默认 release 依赖 glibc - - https://github.com/psanford/wormhole-william-mobile - - [schlagmichdoch/PairDrop](https://github.com/schlagmichdoch/PairDrop) - - GPLv3, JS, WebRTC, NodeJS - - fork of Snapdrop - - [RobinLinus/snapdrop](https://github.com/RobinLinus/snapdrop) - - GPLv3, JS - - [mozilla/send](https://github.com/mozilla/send) - - MPLv2 - - [timvisee/send](https://github.com/timvisee/send) - - fork of mozilla/send - - https://send.vis.ee - - [saljam/webwormhole](https://github.com/saljam/webwormhole) - - [szimek/sharedrop](https://github.com/szimek/sharedrop) - - MIT, JS - - P2P - - [kern/filepizza](https://github.com/kern/filepizza) - - P2P - - https://file.pizza/ - - ~~[dennis-tra/pcp](https://github.com/dennis-tra/pcp)~~ - - Apache-2.0, Golang, libp2p - - 命令行 - - IPFS DHT - - [blenderskool/blaze](https://github.com/blenderskool/blaze) - - MIT, JS - - Web, P2P - - built using WebTorrent and WebSockets - - [LeastAuthority/winden](https://github.com/LeastAuthority/winden) - - [magic-wormhole/magic-wormhole.rs](https://github.com/magic-wormhole/magic-wormhole.rs) - - EUPL-1.2, Rust - - http://magic-wormhole.io/ - - [mat-sz/filedrop](https://github.com/mat-sz/filedrop) - - BSC-3, NodeJS, React - - https://magic-wormhole.readthedocs.io/en/latest/ - - https://wormhole.app/ - - PAKE - e2e 加密 -- Map/Geo - - [protomaps](https://github.com/protomaps) - - [maplibre](https://github.com/maplibre) + ## 学习 diff --git a/notes/service/service-faq.md b/notes/service/service-faq.md new file mode 100644 index 00000000000..36fef5c3e59 --- /dev/null +++ b/notes/service/service-faq.md @@ -0,0 +1,19 @@ +--- +tags: + - FAQ +--- + +# Service FAQ + +## Workflow vs Serverless + +可以互为补充 + +- Workflow + - 侧重业务、流程、编排、自动化 + - 业务逻辑实现 + - 特点:流程定义、状态管理、可视化和监控 +- Serverless + - 侧重代码、runtime、ingress、webhook + - 事件驱动应用 + - 特点:按需部署、按时长计费、无状态、无运维、可视化和监控 diff --git a/notes/service/workflow/workflow-awesome.md b/notes/service/workflow/workflow-awesome.md index b5d59d85053..3eb20d95a0a 100644 --- a/notes/service/workflow/workflow-awesome.md +++ b/notes/service/workflow/workflow-awesome.md @@ -43,6 +43,8 @@ tags: - [activepieces/activepieces](https://github.com/activepieces/activepieces) - MIT, Typescript - no-code workflow builder +- [PipedreamHQ/pipedream](github.com/PipedreamHQ/pipedream) + - SALv1, JS, TS - Huginn - Python - [enso-org/enso](https://github.com/enso-org/enso) diff --git a/notes/strategy/README.md b/notes/strategy/README.md new file mode 100644 index 00000000000..a2f88126008 --- /dev/null +++ b/notes/strategy/README.md @@ -0,0 +1,8 @@ +--- +title: 战略 +--- + +# 战略 + +- [Strategy](https://en.wikipedia.org/wiki/Strategy) + - 主要方向 diff --git a/notes/strategy/mgmt/README.md b/notes/strategy/mgmt/README.md new file mode 100644 index 00000000000..ee30a6aee0b --- /dev/null +++ b/notes/strategy/mgmt/README.md @@ -0,0 +1,7 @@ +--- +title: 管理 +--- + +# 管理 + +- https://www.praxisframework.org/ diff --git a/notes/strategy/mgmt/mgmt-faq.md b/notes/strategy/mgmt/mgmt-faq.md new file mode 100644 index 00000000000..7f0b10aeac9 --- /dev/null +++ b/notes/strategy/mgmt/mgmt-faq.md @@ -0,0 +1,150 @@ +--- +title: FAQ +tags: + - FAQ +--- + +# Mgmt FAQ + +- 管理的主要职责是沟通、协调 +- 管理就像一个系数 + - `员工*工具*系数=产出` + - 这个系数可能 > 1, 可能 < 1 +- 管理 是对别人 提供支撑 + - 让别人感到安全 + - 做他认为对的事 + - 花钱的管理 是为了别人告诉你怎么做 + - 如果你想要告诉别人怎么做,那这样的人不值得花这么多钱 +- 管理者需要 delegate + +## 项目经理 vs 技术经理 + +1. 职责不同:项目经理负责项目的规划、执行和控制,确保项目按时、按质量完成,而技术经理则负责技术团队的管理和技术方案的制定,确保技术实现的可行性和高效性。 +2. 技能要求不同:项目经理需要具备项目管理技能和团队管理能力,能够协调各方利益和资源,而技术经理需要具备技术领域的专业知识和技能。 +3. 目标不同:项目经理的工作目标是项目的成功交付,而技术经理的目标是技术实现的优化和创新。 +4. 对公司的贡献不同:项目经理的工作贡献主要体现在项目的成功交付和客户满意度上,而技术经理的工作贡献主要体现在技术创新和公司的技术竞争力上。 + +- https://juejin.cn/post/6856942683089289224 + +## Interview + +**简历** + +- ~100% 可以看出 工作经历 +- ~60% 可以看出 专业与职业 +- ~10% 可以看出 兴趣与热枕 +- ~0% 可以看出 使命与愿景 + +**Flow** + +- 自我简介 +- 招聘者信息同步 + - 告知 公司情况、团队情况、技术栈、工作内容、遇到的问题 +- 项目经历 + - 最近的事情作为切入口 + - 判断 经验、能力 + - 判断 是否真实 +- 专业技能 + - 判断 是否匹配 +- 个人兴趣 +- QA + +## 跨阶层管理沟通 + +- 促进信息共享 - 双向沟通、提升透明度 +- 支持决策过程 - 决策输入、底层反馈 +- 建立关系和信任 - 增强团队精神、文化传播 +- 促进职业发现和学习 - 直到和发展、激励和鼓励 +- 管理变更和冲突 - 变更管理、冲突解决 +- 获取资源 - 资源分配 + +## 对内宣讲 vs 对外宣讲 + +对内和对外宣讲都是企业沟通策略的重要组成部分,但它们各自有着不同的侧重点和方式。正确地处理这两种宣讲可以有效地增强企业的内部管理效率和外部品牌形象。 + +### 对内宣讲 + +#### 目的 + +- 旨在向员工传达公司政策、战略、文化或变革。 +- 加强员工对公司目标和价值观的理解和认同。 +- 促进员工的参与感和归属感。 + +#### 内容 + +- 公司内部的事务,如管理变更、新项目、业绩回顾、培训和发展等。 +- 对员工直接相关的信息,如福利政策、工作流程变更等。 + +#### 方式和重点 + +- 更注重内部语言和文化。 +- 强调互动和反馈,鼓励员工参与和提问。 +- 通常采用更正式或半正式的方式。 + +### 对外宣讲 + +#### 目的 + +- 向外部利益相关者(如客户、投资者、合作伙伴、公众)传达公司的品牌形象、产品、服务或业绩。 +- 扩大公司的市场影响力,建立或维护公司的公众形象。 + +#### 内容 + +- 公司的产品、服务介绍,市场表现,业务战略。 +- 公司的社会责任、技术创新、行业地位等。 + +#### 方式和重点 + +- 通常更正式,需要适应更广泛的听众群体。 +- 重视清晰、准确地传达信息,以及正面、吸引人的呈现方式。 +- 通常包含营销和公关策略。 + +### 共同点 + +尽管对内和对外宣讲在多个方面有所不同,但它们都需要: + +- **清晰明确的信息传达**:无论是对内还是对外,清晰准确的信息传达都是关键。 +- **适当的准备和规划**:高质量的宣讲需要事先的准备和练习。 +- **适应听众**:根据听众的特点调整宣讲的内容和方式。 + +## 会议时间 + +会议的建议时长取决于会议的性质、目的和内容。一些常见类型会议的一般建议时长: + +### 1. 日常站立会议(Stand-up Meeting) + +- **时长**:通常10-15分钟。 +- **目的**:快速更新团队状态,解决当天工作中的障碍。 + +### 2. 团队或部门会议 + +- **时长**:一般30-60分钟。 +- **目的**:讨论具体项目、团队事务或协作事宜。 + +### 3. 项目进度更新会议 + +- **时长**:约30-45分钟。 +- **目的**:审查项目进度,解决项目中的关键问题。 + +### 4. 策略规划会议 + +- **时长**:1-2小时。 +- **目的**:进行长期规划和战略讨论,可能需要更多时间进行深入讨论。 + +### 5. 工作坊或培训会议 + +- **时长**:2小时至半天或全天。 +- **目的**:进行专业培训、团队建设或深入工作坊。 + +### 6. 一对一会议 + +- **时长**:通常30分钟到1小时。 +- **目的**:进行个人绩效反馈、职业发展讨论或解决具体问题。 + +### 通用建议 + +- **保持专注**:限定会议时长可以帮助参与者保持专注和高效。 +- **事先准备**:事先准备并共享会议议程,以确保会议按时进行。 +- **灵活调整**:根据会议内容和参与者的反馈适时调整会议时长。 + +保持会议简短且有目的性是提高会议效率的关键。过长的会议可能导致参与者注意力下降和效率降低。 diff --git a/notes/mgmt/pm-awesome.md b/notes/strategy/mgmt/pm-awesome.md similarity index 100% rename from notes/mgmt/pm-awesome.md rename to notes/strategy/mgmt/pm-awesome.md diff --git a/notes/mgmt/pmp/README.md b/notes/strategy/mgmt/pmp/README.md similarity index 100% rename from notes/mgmt/pmp/README.md rename to notes/strategy/mgmt/pmp/README.md diff --git a/notes/mgmt/pmp/pmbok-5th.md b/notes/strategy/mgmt/pmp/pmbok-5th.md similarity index 100% rename from notes/mgmt/pmp/pmbok-5th.md rename to notes/strategy/mgmt/pmp/pmbok-5th.md diff --git a/notes/mgmt/pmp/pmbok-summary.md b/notes/strategy/mgmt/pmp/pmbok-summary.md similarity index 100% rename from notes/mgmt/pmp/pmbok-summary.md rename to notes/strategy/mgmt/pmp/pmbok-summary.md diff --git a/notes/mgmt/pmp/pmbok.md b/notes/strategy/mgmt/pmp/pmbok.md similarity index 100% rename from notes/mgmt/pmp/pmbok.md rename to notes/strategy/mgmt/pmp/pmbok.md diff --git a/notes/mgmt/pmp/pmp-glossary.md b/notes/strategy/mgmt/pmp/pmp-glossary.md similarity index 100% rename from notes/mgmt/pmp/pmp-glossary.md rename to notes/strategy/mgmt/pmp/pmp-glossary.md diff --git a/notes/mgmt/pmp/project-charter.md b/notes/strategy/mgmt/pmp/project-charter.md similarity index 100% rename from notes/mgmt/pmp/project-charter.md rename to notes/strategy/mgmt/pmp/project-charter.md diff --git a/notes/mgmt/pmp/project-management-plan.md b/notes/strategy/mgmt/pmp/project-management-plan.md similarity index 100% rename from notes/mgmt/pmp/project-management-plan.md rename to notes/strategy/mgmt/pmp/project-management-plan.md diff --git a/notes/strategy/mgmt/tech/cto.md b/notes/strategy/mgmt/tech/cto.md new file mode 100644 index 00000000000..894c2f16cf7 --- /dev/null +++ b/notes/strategy/mgmt/tech/cto.md @@ -0,0 +1,253 @@ +--- +title: CTO +--- + +# CTO + +- 技术管理 +- 基础 + - 团队管理 + - 项目管理 + - 财务管理 + +### By GPT + +作为新上任的首席技术官(CTO),您将面临一系列挑战和责任,这些都将对公司的技术方向和创新产生重大影响。以下是一些建议和最佳实践,帮助您成功地担任这一角色: + +1. **了解公司文化和业务目标**:深入了解公司的文化、价值观和业务目标。这对于制定符合公司长期目标的技术战略至关重要。 + +2. **建立强大的技术团队**:构建一个技能多样、高效的技术团队。关注团队成员的职业发展,确保他们能够不断学习和成长。 + +3. **制定清晰的技术愿景和策略**:创建一个既符合公司当前需求又能预见未来趋势的技术路线图。这包括选择合适的技术栈、优化现有系统,以及探索新技术。 + +4. **推动创新和持续改进**:鼓励团队创新思维和实验文化。保持对新技术的关注,评估它们如何能够为公司带来价值。 + +5. **加强与其他部门的沟通和协作**:与市场、产品、运营等部门保持紧密合作,确保技术战略与公司整体目标一致。 + +6. **管理技术风险**:识别并管理技术项目的风险,确保数据安全和合规性。 + +7. **优化预算和资源**:合理分配技术预算,确保资源得到最有效的利用。 + +8. **关注客户和用户体验**:理解客户需求,确保技术解决方案能够提升用户体验和客户满意度。 + +9. **持续学习和适应变化**:技术领域变化迅速,因此不断学习和适应新技术和市场变化是必要的。 + +10. **领导力和影响力**:作为CTO,不仅需要技术专长,还需要强大的领导力和影响力,以推动公司在技术上取得进步。 + +记住,作为CTO,您的角色不仅仅是技术决策者,还是团队的激励者、创新的推动者和业务战略的关键参与者。通过均衡的技术专长和商业洞察,您可以为公司带来长远的成功。 + +--- + +作为新上任的 CTO,您接下来的步骤应该专注于为自己的角色定位,建立关键的内部和外部关系,并制定一个清晰的技术路线图。以下是一些建议: + +1. **深入了解公司**: + + - 与主要利益相关者(如CEO、其他高管)进行深入交流,理解公司的业务模式、核心价值和长远目标。 + - 审查公司的当前技术状况,包括基础设施、软件、团队能力和进行中的项目。 + +2. **建立关键关系**: + + - 与团队成员进行一对一会谈,了解他们的技能、经验和职业抱负。 + - 与其他部门领导建立沟通渠道,理解他们的需求和期望。 + +3. **评估和优化团队结构**: + + - 根据公司需求和技术战略,评估现有团队结构和人才配置。 + - 需要时进行招聘,以填补关键技能缺口。 + +4. **制定技术战略和路线图**: + + - 根据公司目标和市场趋势,制定清晰的技术愿景和路线图。 + - 确定短期和长期目标,以及实现这些目标的步骤。 + +5. **推动创新文化**: + + - 鼓励团队实验和创新,创建一个安全失败的环境。 + - 实施定期的技术分享会议,促进知识共享和学习。 + +6. **强化技术治理**: + + - 确保技术实践符合行业最佳实践和合规要求。 + - 定期审查和更新安全策略和数据保护措施。 + +7. **维持持续沟通**: + + - 定期更新团队和公司高层关于技术进展和挑战。 + - 对外,与行业同行建立联系,保持对新技术和趋势的敏感度。 + +8. **个人发展**: + - 投资于个人成长,如参加行业会议、阅读相关文献,或进行专业培训。 + - 建立一个个人指导网络,包括业界导师和顾问。 + +作为 CTO,您的角色不仅是技术领袖,也是战略决策者和团队激励者。您的目标应该是创造一个鼓励创新、追求卓越和支持个人成长的环境。通过坚实的领导和清晰的视野,您可以引导团队实现公司的技术目标和业务增长。 + +--- + +了解了公司和团队之后,您作为 CTO 可以开始更深入地规划和实施您的策略。以下是您可以考虑的下一步行动: + +1. **制定或优化技术战略**: + + - 结合您对公司和团队的了解,明确技术战略与公司业务目标的对齐方式。 + - 确定重点技术领域和投资,包括新技术的探索、现有系统的改进,以及潜在的技术合作或外包。 + +2. **加强团队能力建设**: + + - 根据团队的现状和未来的技术需求,规划人才发展和团队扩充计划。 + - 实施培训计划,提高团队的技能和专业知识,特别是在关键技术领域。 + +3. **推进关键项目和创新**: + + - 识别并推动关键技术项目,这些项目应该能显著支持公司的战略目标。 + - 鼓励团队进行创新实验,探索可能为公司带来竞争优势的新技术和方法。 + +4. **强化跨部门合作**: + + - 与其他部门(如产品、市场、销售等)紧密合作,确保技术战略支持整体业务目标。 + - 在项目规划和执行中,确保技术和业务团队之间的沟通和协调。 + +5. **优化流程和工具**: + + - 审查并优化现有的工作流程和工具,提高团队的生产效率和项目管理能力。 + - 实施最佳实践,如敏捷开发、持续集成/持续部署(CI/CD)等。 + +6. **管理技术风险**: + + - 审查和强化公司的技术风险管理策略,包括数据安全、隐私保护和业务连续性规划。 + - 确保技术决策和实践符合行业标准和合规要求。 + +7. **建立有效的绩效评估体系**: + + - 设计和实施针对技术团队的绩效评估和反馈机制。 + - 设定清晰的目标和关键绩效指标(KPIs),定期评估团队和个人绩效。 + +8. **维护领导力和团队文化**: + - 作为技术领袖,展现积极的领导力,为团队树立榜样。 + - 培养包容、协作和创新的团队文化,支持团队成员的职业发展和个人成长。 + +作为 CTO,您需要在技术领导、战略规划、团队建设和业务合作等多个方面发挥作用。确保您的决策和行动不仅符合当前的业务需求,而且也为未来的增长和创新奠定基础。 + +--- + +对于研发团队来说,CTO(首席技术官)的角色通常超越了简单的支撑角色,具有多重重要职责和影响力。CTO 的主要任务包括: + +1. **战略制定者**: + + - 确定技术愿景和方向,使之与公司的整体业务目标和战略保持一致。 + - 制定技术路线图和优先级,指导研发团队聚焦于对公司最重要的技术领域。 + +2. **创新领导者**: + + - 鼓励和推动创新,引入新技术和方法来解决问题或改进产品。 + - 创建一个支持实验和探索的环境,允许团队尝试新思路和技术。 + +3. **技术顾问和专家**: + + - 在关键技术决策和复杂问题解决中发挥专家作用。 + - 为研发团队提供技术指导和最佳实践建议。 + +4. **团队建设者和人才发展者**: + + - 招聘、培养和保留技术人才,确保团队具有实现技术目标所需的技能和能力。 + - 推动团队成员的职业发展和成长。 + +5. **流程和质量监督者**: + + - 审核和优化研发流程,确保高效和高质量的软件交付。 + - 实施最佳实践,如敏捷开发和持续集成/持续部署(CI/CD)。 + +6. **风险管理者**: + + - 识别和管理与技术相关的风险,包括安全、合规性和运营风险。 + - 确保技术决策和实践符合行业标准和合规要求。 + +7. **沟通桥梁**: + + - 作为研发团队与公司其他部门(如市场、销售、产品)之间的沟通桥梁。 + - 确保技术战略和决策与业务需求和目标相协调。 + +8. **预算和资源管理者**: + - 管理技术预算,确保资源被有效地分配和利用。 + - 对技术投资进行优先排序,以最大化投资回报。 + +因此,CTO 的角色是多维度的,不仅仅是为研发团队提供支持,而是在技术战略、团队建设、创新引领和整体业务协调等多个方面发挥关键作用。CTO 通过这些多方面的努力来推动公司的技术发展和业务成功。 + +--- + +成为一名合格的CTO需要不断学习和适应,涵盖技术领导力、战略规划、团队管理以及与业务目标的对齐等多个方面。以下是一些推荐的资源和书籍,它们可以帮助您在这个角色中取得成功: + +### 书籍推荐 + +1. **《高效能人士的七个习惯》(Stephen R. Covey)**: + + - 这本书提供了关于个人和专业效能的深刻见解,对于任何领导角色都非常有用。 + +2. **《硅谷钢铁侠》(Ashlee Vance)**: + + - 这本传记探讨了埃隆·马斯克的生活和职业,提供了关于技术创新和领导力的独特视角。 + +3. **《The Lean Startup》(Eric Ries)**: + + - 讲述了如何在快速变化的市场环境中构建和管理创新型公司。 + +4. **《The CTO Handbook/Job Manual》(Mark D. Minevich)**: + + - 专为CTO设计,涵盖了角色的各个方面,包括管理、战略和技术趋势。 + +5. **《The Phoenix Project》(Gene Kim, Kevin Behr, George Spafford)**: + + - 以故事的形式介绍了IT运营的最佳实践和挑战,适合想要理解如何改善IT部门效率的CTO。 + +6. **《Good to Great》(Jim Collins)**: + - 探索了使公司从优秀转变为卓越的关键因素,强调领导力的重要性。 + +### 在线资源 + +1. **CTO Academy**: + + - 提供针对技术领导者的课程、工作坊和教练服务。 + +2. **Harvard Business Review**: + + - 定期发布关于技术、创新和领导力的高质量文章。 + +3. **MIT Technology Review**: + + - 提供关于最新技术趋势和创新的深度分析。 + +4. **Podcasts 如“CTO Talk”或“Masters of Scale”**: + + - 听取业界领导者分享他们的经验和见解。 + +5. **Coursera 或 Udemy**: + - 提供多种针对领导力和技术管理的在线课程。 + +通过阅读这些书籍和利用在线资源,您不仅能够了解到领导力和技术管理的理论知识,还能从现实世界的案例中学习。同时,参加行业会议、网络研讨会和专业培训也是不断进步的重要途径。记住,作为CTO,持续学习和适应是您职业生涯中不可或缺的一部分。 + + +## 关于这个角色的关键点: + +作为 CTO,您的角色确实包含了大量的沟通和管理职责,但这并不意味着您完全脱离技术工作。CTO 的角色可以根据公司的大小、发展阶段和特定需求而有所不同。以下是一些关于这个角色的关键点: + +### 沟通和管理 + +1. **战略规划**:制定技术路线图,确保技术战略与公司目标一致。 +2. **团队领导**:领导和发展技术团队,确保团队有适当的指导和资源。 +3. **跨部门协调**:与其他部门领导合作,确保技术解决方案支持整体业务目标。 +4. **风险管理**:处理技术风险,确保符合合规和安全标准。 +5. **预算管理**:管理技术预算,合理分配资源。 + +### 技术参与 + +1. **技术决策**:在关键技术决策中发挥作用,例如选择技术栈、评估新技术。 +2. **保持技术敏锐度**:跟进最新的技术趋势和发展,以便更好地做出战略决策。 +3. **技术指导**:向团队提供专业的技术指导和建议。 + +### 写代码的可能性 + +- 在大型公司或成熟的组织中,CTO 往往更多地专注于战略、领导和管理方面,编码工作可能较少。 +- 在初创公司或小型企业中,CTO 可能需要更直接地参与产品开发、编码和日常技术任务。 +- 个人选择也发挥作用。有些 CTO 喜欢保持一定程度的技术参与,例如通过审查代码或参与关键技术决策来保持技术敏感性。 + +### 结论 + +作为 CTO,您的主要职责可能更倾向于战略规划和团队管理,但这并不排除保持一定程度的技术参与。如何平衡这些角色取决于您的个人兴趣、技能和公司的具体需求。重要的是找到一个符合您和您的组织需求的平衡点。 diff --git a/notes/web/dev/bun.md b/notes/web/dev/bun.md index 12e1c766fbd..f2e7f6c3d27 100644 --- a/notes/web/dev/bun.md +++ b/notes/web/dev/bun.md @@ -21,7 +21,7 @@ title: bun - [#255](https://github.com/oven-sh/bun/issues/255) - deploy [bun#211](https://github.com/oven-sh/bun/issues/211) - ~~无 dns 模块~~ - 0.5+ - pg 不支持 [#288](https://github.com/oven-sh/bun/issues/288) -- 无 async_hooks - sequelize 不支持 +- ~~无 async_hooks - sequelize 不支持~~ - 未实现 ~~dns~~, http2, https, child_process, vm, tls, async_hooks, worker_threads - 支持 NestJS [#1641](https://github.com/oven-sh/bun/issues/1641) diff --git a/notes/web/dev/elysia.md b/notes/web/dev/elysia.md index 078496de495..d939f692c93 100644 --- a/notes/web/dev/elysia.md +++ b/notes/web/dev/elysia.md @@ -11,6 +11,13 @@ title: elysia - AOT - 生成代码来进行 route - route 变成一个大 switch + - 与 [hono](./hono.md) 非常相似,但面向 bun 为主 + - hono 更早,支持更多 环境 + - 没有 AOT + - 没默认 typebox - 支持多种 validator +- 参考 + - [bogeychan/elysia-polyfills](https://github.com/bogeychan/elysia-polyfills) + - 可以在 node 环境下使用 elysia ```bash pnpm add elysia @elysiajs/swagger @elysiajs/static @@ -81,3 +88,8 @@ app.signIn - application/octet-stream 会让 body 为 arrayBuffer - 没有则会触发 onParse - fallback 为基于 header 里的 content-type 进行 parse + +# FAQ + +- gen eden types + - https://github.com/elysiajs/elysia/issues/257#issuecomment-1752547939 diff --git a/notes/web/dev/graphile-worker.md b/notes/web/dev/graphile-worker.md new file mode 100644 index 00000000000..2bd7cbb93d1 --- /dev/null +++ b/notes/web/dev/graphile-worker.md @@ -0,0 +1,25 @@ +--- +title: graphile-worker +--- + +# graphile-worker + +- [graphile/worker](https://github.com/graphile/worker) + - 支持 cron + - PostgreSQL + - LISTEN/NOTIFY + - pgbouncer 需要 connection 模式 + +```bash +npm add graphile-worker +``` + +```bash +docker run \ + --init \ + --rm -it \ + --network=host \ + -v "$PWD/tasks":/worker/tasks \ + graphile/worker \ + -c "postgres://postgres:postgres@localhost:5432/postgres" +``` diff --git a/notes/web/dev/hono.md b/notes/web/dev/hono.md new file mode 100644 index 00000000000..1ac4c5a3724 --- /dev/null +++ b/notes/web/dev/hono.md @@ -0,0 +1,59 @@ +--- +title: Hono +--- + +# Hono + +- [honojs/hono](https://github.com/honojs/hono) + - Fast, Lightweight, Web-standards + - 支持环境 + - Cloudflare Workers + - Cloudflare Pages + - Fastly Compute + - Deno + - Bun + - Lagon + - Vercel + - AWS Lambda + - Lambda@Edge + - used by: + - cdnjs + - Polyfill.io + - https://ultrajs.dev/ React + +```bash +npm add hono @hono/node-server @hono/zod-openapi +``` + +```ts +import { serve } from '@hono/node-server'; +import { Hono } from 'hono'; + +const app = new Hono(); +app.get('/', (c) => c.text('Hono meets Node.js')); + +serve(app, (info) => { + console.log(`Listening on http://localhost:${info.port}`); // Listening on http://localhost:3000 +}); +``` + +## html + +1. 配置 tsconfig + +```json +{ + "compilerOptions": { + "jsx": "react-jsx", + "jsxImportSource": "hono/jsx" + } +} +``` + +2. 使用 pragma directive + +```ts +/** @jsx jsx */ +/** @jsxFrag Fragment */ +import { jsx, Fragment } from 'hono/jsx'; +``` diff --git a/notes/web/dev/trigger.md b/notes/web/dev/trigger.md new file mode 100644 index 00000000000..6aa3a9817d9 --- /dev/null +++ b/notes/web/dev/trigger.md @@ -0,0 +1,27 @@ +--- +title: Trigger +--- + +# Trigger + +- [triggerdotdev/trigger.dev](https://github.com/triggerdotdev/trigger.dev) + - Apache-2.0, TS + - 技术栈 postgres, prisma, react, codemirror, headlessui, heroicons, radix-ui, lucide-react, prismjs, framer + - remix + - [graphile/worker](https://github.com/graphile/worker) + - 监控 [highlight](https://github.com/highlight/highlight) + - Apache-2.0+EE, TS, Go + - logger morgan + - ohash + - posthog + - recharts + - simple-oauth2 + - sonner Toast + - tailwindcss-animate + - zod + - swc + - background jobs framework for TypeScript + - API integrations, webhooks, scheduling, delays +- https://github.com/triggerdotdev/docker + - https://github.com/triggerdotdev/docker/blob/main/docker-compose.yml +- Cloud [限制](https://trigger.dev/docs/documentation/concepts/limits) diff --git a/notes/web/react/react-query.md b/notes/web/react/react-query.md index 21e4a8b7fd3..86325f41dba 100644 --- a/notes/web/react/react-query.md +++ b/notes/web/react/react-query.md @@ -34,13 +34,6 @@ title: React Query | | isPlaceholderData | | keepPreviousData | isPreviousData | -:::caution - -- mutation 状态不共享 [#2304](https://github.com/tannerlinsley/react-query/issues/2304) -- useQueries suspense 不是一次性等待完成 [#1523](https://github.com/tannerlinsley/react-query/issues/1523) - -::: - ## QueryClient - 框架无关客户端 @@ -158,7 +151,7 @@ const [unsubscribe, promise] = persistQueryClient({ - cacheTime -> gcTime - keepPreviousData -> placeholderData - loading -> pending -- `useMutationState` +- `useMutationState` - suspense - `useSuspenseQuery` - `useSuspenseInfiniteQuery` diff --git a/notes/web/script/js/js-awesome.md b/notes/web/script/js/js-awesome.md index 2f242fda1ce..b8bfcbe4111 100644 --- a/notes/web/script/js/js-awesome.md +++ b/notes/web/script/js/js-awesome.md @@ -788,6 +788,17 @@ tags: ## WebServer +- Reuqest/Response/WebStandard - 支持 EdgeRuntime/Deno/Bun/Cloudflare + - [honojs/hono](https://github.com/honojs/hono) + - https://ultrajs.dev/ + - [elysiajs/elysia](https://github.com/elysiajs/elysia) + - [hattipjs/hattip](https://github.com/hattipjs/hattip) + - [unjs/nitro](https://github.com/unjs/nitro) +- Router + - itty-router + +--- + - fastify - koa - express diff --git a/notes/web/script/lib/typebox.md b/notes/web/script/lib/typebox.md index b000b870df0..0fe40edd682 100644 --- a/notes/web/script/lib/typebox.md +++ b/notes/web/script/lib/typebox.md @@ -1,3 +1,6 @@ +--- +title: typebox +--- # typebox