skip to content
声控烤箱 | KazooTTT 博客

Notes(115) RSS feed

81. [生活] 与其倒腾,不如静下心来

Updated:

与其倒腾,不如静下心来

我这个人一直都有一个不好的习惯,就是对于任何事物都是浅尝辄止,技艺不精。

如果说是无关紧要爱好,其实这没什么,但是关乎到职业发展的技能也是如此。

就拿博客来举例,我总是想要倒腾博客,从各种框架,各种主题之间不断的切换,做了很多重复性的工作。虽然乐在其中,但是仔细想想并没有什么实际的用途。

所以我想控制一下自己的手,目前将自己的记录和发布模式固定一下。具体的规划如下:

  1. 首先,使用 obsidian 和 flomo 作为本地的编辑器。obsidian 用于记录笔记和比较正式的可能需要发布的内容。而 flomo 则是一些碎片化的内容,可能是个人的碎碎念,也可能是一些小脑洞。
  2. 然后,obsidian 的内容与 Welcome to Quartz 4 绑定,如果有更新则会自动地部署上去,这里自动更新的内容都是一些很随意的笔记的内容。
  3. 再然后就是上传到 notion 了,这里的内容还是比较水。
  4. 最后是比较正式的内容,会通过 obsidian 的插件上传到掘金、xlog、微信公众号。

也就是说内容的质量由低到高的排序是:

本地 obsdian > quartz > notion > 掘金、xlog、微信公众号。

我认为记录的初心是为了自己,然后再是分享。因此质量低一点只是给自己看没有关系,后面有比较好的内容再放到更公开的平台分享,是比较合适的方式。

而不是每次更新内容就想着要传播,这是不对的。

82. [日记] 2024-03-06

Updated:

今天要做的事情

打卡

工作上排了一天的错,本来要做的工作也没有做。

给 autogen 和 notionnext 提了 pr,autogen 的已经被合并了,这是第二次被 autogen 合并,

🙏非常感谢。

然后开通了 notion ai,发现它支持 google pay,这点对我来说挺友好的。开通的原因是想用它的自动生成 tags 和 summary 的功能。搭配 notionnext,比较方便。然后迁移了一部分本地的内容到博客上去。

买的时尚小垃圾到了,挺喜欢的。

IMG-20241021113029511 IMG-20241021113029604 IMG-20241021113029671

今天的不足之处是没有学习也没有刷题。

昨天太累了,今天早睡吧。晚安。

今天记录的内容

table file.path
from ""
where dateformat(file.ctime, "yyyy-MM-dd") = "2024-03-06"

明天要做的事情

Inbox

83. [日记] 2024-03-05

Updated:

今天要做的事情

打卡

主要在看 Python,另外刷了两道算法题。

帮之前部门的人面试了一个前端。​​​

今天记录的内容

table file.path
from ""
where dateformat(file.ctime, "yyyy-MM-dd") = "2024-03-05"

明天要做的事情

Inbox

85. [项目] file-downloader

Updated:

File Download

封装了对于 url 和 blob 类型文件的下载方法。

downloadFileFromURL

function downloadFileFromURL(url: string, filename?: string)

url 是网络请求的链接,filename 不是必填,如果填了那么下载文件名称=filename

downloadFileFromBlob

function downloadFileFromBlob(blob: Blob | MediaSource, filename: string)

blob 是一个 blob 对象,一般从后端获取,filename 不是必填,如果填了那么下载文件名称=filename

地址

npm 地址:

@kzttools/file-downloader - npm

github 地址:

GitHub - kzttools/file-downloader

License

MIT License © 2023-PRESENT kazoottt

86. [前端] npm发包失败的原因

Updated:

Npm 发包失败的原因

可能的原因

  1. 当前的账号没有发包权限。(比如没有某个包或者某个 scope 的权限)
  2. 当前的包名不符合规范。(需要 URL-safe characters)
  3. 当前的包名是屏蔽词。(例如 download npm发包失败的原因#npm包名屏蔽词)
  4. 可能是当前的 npm 设置了镜像地址,而不是原始的 npm 地址,导致 login 的时候无法登录从而无法发布。解决方法就是在发布的时候先切换为原始的 npm 地址,再发布。
  5. 其他(后续遇到了再补充)

// 吐槽一下,npm 的 cli 给的信息很多都是无效信息,有时候很难从中知道到底是哪里有问题

Npm 包名屏蔽词

  1. download (我替换成 downloader 之后才成功发布)

参考

[BUG] npm publish get 400 Bad Request without any useful information · Issue #6090 · npm/cli · GitHub

87. [前端] npm换源

Updated:

查看源

Terminal window
npm config get registry
Terminal window
yarn config get registry
Terminal window
pnpm config get registry

换源

Terminal window
npm config set registry https://registry.npmmirror.com
Terminal window
yarn config set registry https://registry.npmmirror.com
Terminal window
pnpm config set registry https://registry.npmmirror.com

取消换源

Terminal window
npm config delete registry
Terminal window
yarn config delete registry
Terminal window
pnpm config delete registry

工具

GitHub - i5ting/yrm: YARN registry manager, fast switch between different registries: npm, cnpm, nj, taobao

Terminal window
npm install -g yrm
yrm ls
yrm use [name]

88. [web3] web3资源收集

Updated:

web3 资源收集

基础推荐材料
人文基础:

比特币之前的事情:理解组成比特币的核心技术的发展,理解比特币的前前后后,能更好的理解中本聪创造比特币的核心产物。

1、比特币前传
https://foresightnews.pro/article/detail/13987(比特币前传(一)70 年代公钥传奇)

https://foresightnews.pro/article/detail/14114(比特币前传(二):去中心化的起源)

https://foresightnews.pro/article/detail/14545(比特币前传(三):90 年代的加密战争
https://foresightnews.pro/article/detail/14783(比特币前传(四):跨越半个世纪的思想与蓝图)

2、以太坊简史:因暴雪削弱术士而诞生的千亿美元巨兽
https://foresightnews.pro/article/detail/13531
以太坊近十年的发展很难用一篇文章概括,但是可以大致浏览每一个阶段的重大突破与变化。了解 VB 创造 ETH 的时候主要想解决什么问题
3、加密思潮编年史,从 25 年前说起
https://foresightnews.pro/article/detail/961
快速了解加密思潮在不同时期的变化,了解到如何一步步从 BTC 走向 DAPP
技术基础:

1**、比特币白皮书精读版**
https://mp.weixin.qq.com/s/eYCbAD_tPG9PmuFE1LvCWA
比特币白皮书精读版是对比特币白皮书更详细的解读,有助于更好的理解白皮书中的内容。比特币的技术原理搞的越清楚越好。

2、以太坊白皮书精讲 精选
https://zhuanlan.zhihu.com/p/37747240(Part1)

https://zhuanlan.zhihu.com/p/38002875(Part2)

https://zhuanlan.zhihu.com/p/38003169(Part3)

白皮书精讲系列是看懂白皮书很好的参考资料,可以更深入的了解白皮书中的细节。这是 ETH1.0 的架构,后面再看 ETH 2.0 的架构。也是搞得越清楚越好,后续的区块链整体上都没有脱离这个架构,既 Chain-VM- 共识 -Daap
3**、一个以太坊交易的完整周期**
https://www.notonlyowner.com/learn/what-happens-when-you-send-one-dai
这篇文章对具体的每一个环节都有很详细的记录,跟 Daap 的开发结合非常紧密,最好能完整过一遍,然后自己尝试画一个详细的流程图。包括前端怎么跟钱包交互,钱包怎么跟 RPC 交互,节点之间怎么通信,EVM 怎么处理交易,Gas,最后存储等。


youtube 教程
Site Unreachable

这个可以看看 Foundry 开发框架
Foundry 开发框架 | Decert.me

The Architecture of a Web 3.0 application 这篇是讲 web3 应用的架构

对了,有一个 uniswap v2 详细讲解材料,非常不错,我发出来
大家有需要可以好好看一下,讲得非常详细
X 上的 RareSkills:“It’s 100% free — no login required. Bookmark (no pun intended) and come back as needed. Book link: https://t.co/8BcWQH8jH0” / X

89. [后端] 管理python环境的方式

Updated:

管理 python 环境的方式

最近又有写 python 的需求了,上一次写还是几年前写圣纳百川爬虫的时候,因此很多事情记不太清楚了。

本文主要来疏离总结一下管理 python 环境的方式,以及它们的适用场景。


主流的方案

对于不同的项目,它们会用到不同的 python 版本,以及不同的依赖库和版本。如果只使用全局解释器,那么切换和维护起来会非常的麻烦且容易出错。面对这样的场景,虚拟环境是更优的选择。

在官方文档中提到:venv --- 创建虚拟环境 — Python 3.12.0 文档

venv  模块支持创建轻量的“虚拟环境”,每个虚拟环境将拥有它们自己独立的安装在其  site  目录中的 Python 软件包集合。虚拟环境是在现有的 Python 安装版基础之上创建的,这被称为虚拟环境的“基础”Python,并且还可选择与基础环境中的软件包隔离开来,这样只有在虚拟环境中显式安装的软件包才是可用的。

那么虚拟环境的管理具体有哪些呢?

IMG-20240904002804460
我们从 pycharm 提供的解释器选项中能看出一二,pycharm 这里提供的都是比较主流的虚拟环境管理了。

  1. venv(官方内置的模块)
  2. virtualenv
  3. conda
  4. pipenv
  5. poetry

这里不想分别对这些管理工作都做详细的介绍,只记录我自己最常用的组合。

我的需求有两类,第一类管理 python 的版本,第二类管理依赖的版本。

对于 Python 版本管理

使用 pyenv
GitHub - pyenv/pyenv: Simple Python version management
用来安装和切换 python 的版本

对于依赖管理

如果是我自己的项目,那么我会使用 poetry(因为操作比较像 npm,我更加熟悉)

如果是别人的项目且项目中不是使用 poetry 来管理的,那么我会使用 virtualenv 来管理。

Poetry

Basic usage | Documentation | Poetry - Python dependency management and packaging made easy

如果是一个新的项目

Terminal window
poetry new poetry-demo

如果是一个已经存在的项目

Terminal window
poetry init

然后使用 poetry add 包名 安装依赖
也可以指定版本,Dependency specification | Documentation | Poetry - Python dependency management and packaging made easy

如果要导出 requirements 方便别人安装可以运行
poetry export -o requirements.txt

Virtualenv

virtualenv

创建虚拟环境
“virtualenv env_name

激活
如果是 linux
source env_name/bin/activate
如果是 windows
.\env_name\Scripts\activate

当然如果你用的 IDE,它会帮你创建和关联

然后后面就是正常的 pip install xxx 之类的操作了。

Conda

请问大神们,pip install 和 conda install 有什么区别吗? - 知乎
conda 用来作为虚拟环境管理的话,不建议 pip 和 conda 混用,需要了解一下 import 优先级。

如果都安装了某一个包,那么优先 import 的是 conda 安装的

如果之前用 pip 装的,运行 conda convert 转一下。

然后后面都用 conda 来安装,conda 找不到的包再用 pip 来装。