原来python的format函数是必需给所有的占位符赋值的,不能只赋值其中一个。
比如下面的代码会报错,因为country没有赋值

my_str = "My name is {name}, I'm from {country}"   
print( my_str.format(name='Versun') )   

所以如果对于用户输入的字符串,比如用于AI的提示词,用replace更合适些。

分享篇文章<做为独立开发者的这两年>,作者Justin Duke从Stripe公司离职后,创办了Buttondown,做为独立开发者,工作生活难平衡,虽灵活但更孤独,而且收入并没有比工作时的多。 “但是,如果你认为它可能适合你,如果不是现在,那是什么时候?”

朋友:“我现在学哪个编程语言能战未来?” 我:“前端JS,后端Go,底层Rust” 朋友:“那你学的是哪个?” 我:“Python”

早上才发现我博客的feed链接有问题。。。。。
现在修复了
Feed: rss, json

“我可不能接受周末休息是为了有力气去上班"😄

总算给 RSS翻译器 添加了 AI 摘要功能,可单独指定引擎,比如翻译使用DeepL,摘要使用GPT,完美配合。
还加了摘要细粒度控制,对长文更友好。
同时还优化了 AI 提示词的设置,现在可以给每个RSS源添加额外的提示词,方便针对性优化

人变老的一个迹象就是喜欢看照片。
以前是拍了没时间看,现在是有时间就看

看完 扎克伯格和Dwarkesh Patel访谈podcast,总算明白Meta为啥要开源Llama大模型和开放Quest的Horizon系统
虽然对Meta没好感,但还是佩服扎克伯格的战略眼光

发现一个很好玩的AI应用: ChatDev
可以模拟一家虚拟软件公司,定义不同角色的代理,比如产品, 程序员, 测试, 设计等
然后你做为甲方给一个命题,让它们自己去讨论实现
这可不是玩具,人家是有正儿八经的论文做支撑的: 软件开发代理的经验协同学习框架
项目, 论文

TIL: 错误地在全局 Python 环境中安装了软件包?
使用空白 requirements.txt 运行 pip-sync ,可进行清理 [via]

在Linux系统上,我目前最期待的软件就是Pop OS正在开发的Cosmic桌面环境
从零使用Rust开始编写,预计今年7月份发布alpha版本
Pop OS也是我目前主用的Linux系统桌面发行版,开箱即用,体验非常好。
github.com/pop-os/co…

TIL: 才发现亚洲不仅有泛亚铁路,还有 泛亚公路!
从日本能开车到上海!! (轮船到韩国)
zh.wikipedia.org/wiki/%E4%…

Google Gemini真的是不想让人用,gemini-pro不支持system_instruction参数(类system message),只有gemini-1.5-pro才支持, 那我还得给这2个模型写2个方法? 无法理解。
只能设置为"only support gemini-1.5-pro-latest"

自从笔记和博客转到micro.blog后,轻松了好多,感觉又找回了“记录”的感觉,
不再受迫与各种分类、框架、层级、标题、目的等压力。
准备写一篇博文记录下这次笔记系统和观念的转变
Blog: versun.me
Tweets存档: versun.me/tweets
Mastodon: versun.me/@versun

要想完全放弃Twitter(X),转战Mastodon(via micro.blog)还是有点难,原因主要有2点:

  1. 互动性:大部分人还是在X上,发推和发嘟的覆盖面和互动性完全不是一个量级,没有互动也就很难产生新想法
    解决方法:尽量发嘟,然后转发到X上。X上只进行转发评论互动,定期归档到micro.blog上
  2. 虚荣心:X粉丝数涨的快,Micro.blog不显示粉丝数也是这个原因,为了保持真实,注重内容
    解决方法:X并没有完全弃用,所以影响不大。
    总结:在micro.blog上发post(嘟文),按需转发到X,定期归档X

写作提示: 删除所有使用"……对我来说……"、“在我看来”、“有些人可能不同意”、“我认为 “等词语的地方。 这些词语会让你的文章变得脆弱,缺乏任何说服力,阻碍你去描述你所热爱的事物。

TIL: Linux查看具体进程的内存占用情况

cat /proc/[PID]/status | grep VmRSS

如果你只做能力范围内的事,则永远不会进步 —-功夫熊猫3

我正式搬迁到Micro.blog平台啦🎉🎉🎉

TIL-什么是RAG

RAG是Retrieval Augmented Generation的缩写,中文名为检索增强生成。 它是一种结合了信息检索和文本生成的技术,旨在增强大语言模型处理知识密集型任务的能力。 RAG的基本工作流程如下 检索:根据用户的查询,利用检索模型从外部知识库中获取相关的背景信息。通常是将查询向量化,然后在向量数据库中进行相似度搜索,找出最相关的若干条记录。 增强:将用户查询和检索到的背景信息一起嵌入到预设的提示模板中,生成增强后的提示。 生成:将增强后的提示输入到语言模型中,生成最终的输出文本。 通过融合外部知识,RAG可以让语言模型生成更加准确、符合上下文的回答,减少幻觉和错误信息。同时RAG也比较灵活,可以通过更新知识库来适应知识的变化,而无需重新训练整个语言模型 与微调(fine-tuning)相比,RAG有以下优势 更新知识更加高效,只需修改知识库即可,不用重新训练模型 更适合知识会随时间变化的动态场景 可以利用更大规模的外部知识,不受模型参数规模的限制 …

Read more ⟶

Python打包简明教程

参考文档: https://packaging.python.org/en/latest/tutorials/packaging-projects/ https://setuptools.pypa.io/en/latest/userguide/quickstart.html https://docs.djangoproject.com/zh-hans/5.0/intro/reusable-apps/ 准备工作 安装相关工具 python3 -m pip install --upgrade pip python3 -m pip install --upgrade twine python3 -m pip install --upgrade setuptools python3 -m pip install --upgrade build 注册pypi账号 正式环境:https://pypi.org 测试环境:https://test.pypi.org 文件结构 my-project/ └── src/ └── my_package/ ├── __init__.py └── example.py my_package是你的包名 创建打包的相关文件 按照下方的结构创建对应文件: my-project/ ├── LICENSE ├── pyproject.toml ├── README.md ├── setup.cfg ├── setup.py ├── MANIFEST.in ├── src/ │ └── my_package/ │ ├── __init__.py │ └── example.py └── tests/ 各文件内容参考如下:…

Read more ⟶

Huey在Django下的使用

参考: Huey 官方文档Django 对于小型的应用,轻量化的Huey非常适合做为Celery的替代品 安装huey 参考:https://huey.readthedocs.io/en/latest/installation.html pip install huey 由于我直接使用sqlite,所以就不安装redis了 Django配置 参考:https://huey.readthedocs.io/en/latest/django.html#setting-things-up 第一步是添加模块 # settings.py # ... INSTALLED_APPS = ( # ... 'huey.contrib.djhuey', # Add this to the list. # ... ) 第二步添加配置 # settings.py HUEY = { 'huey_class': 'huey.SqliteHuey', 'filename': DATA_FOLDER / "huey.sqlite3", 'consumer': { 'workers': 1, 'worker_type': 'thread', }, "immediate": False, } filename可自行设置其它路径 第三步添加任务 在需要添加任务的app里创建tasks.py # my_app/my_app/tasks.py from huey import crontab from huey.contrib.djhuey import periodic_task, task @task() def count_beans(number): print('-- counted %sbeans --' % number) return 'Counted %sbeans' % number @periodic_task(crontab(minute='*/5')) def every_five_mins(): print('Every five minutes this will be printed by the consumer') 第四步运行 python .…

Read more ⟶

笔记_怎么写日记

Youtube:https://www.youtube.com/watch?v=E8vwGLMTx5I Level 1 开始写 方法一:Homework for Life —《Soryworthy by Matthew Dicks》 每天结束后,问自己“今天发生在我身上的,最有故事价值的事情是什么”,然后以这件事为素材,讲一个5分钟的故事。 这种方法可以锻炼自己写故事的能力 方法二:模版 今天学到了什么? 今天见了什么人? 今天有什么惊喜? 方法三:晨间笔记 —《The Artist’s Way by Julia Cameron》 每天早上写,想到写什么,清空大脑,写15-20分钟 Level 2 写感受 方法一:感恩日记 写下感激的三件事情 找到你想感谢的人,然后举出3个这个人的优点,然后写下展现这些优点的事情,最后和TA分享这份感激 Level 3 做什么/怎么做 日记不仅仅是了解你的想法和感受,还可以帮助你弄清楚你该做什么 方法一:Odyssey Plan — 《Designing Your Life by Bill Burnett & Dave Evans》 如果我继续照这这条路走下去,5年后我的生活会是什么样的 如果我走一条完全不同的路,5年后我的生活会是什么样的 如果我走一条完全不同的路,同时我不用担心钱,也不用在乎别人的眼光,5年后我的生活会是什么样的 方法二:The Wheel of Life 把你的生活分成多个不同的组成部分,然后定期给它们打分/评价/幸福度/满意度 参考:职业/商业、财务、健康、家庭/朋友、浪漫、个人成长、娱乐和休闲、物质环境 方法三:12月庆典(The 12 Month Celebration) 从现在起12个月后,在生活的不同方面,我想和朋友庆祝什么?(加薪?创业?坚持健身?) 方法四:恐惧设定练习(Fear Setting Exercise)— Tim Ferriss 一般用户面临选择/害怕选择事 如果我去做了我害怕的事,最糟糕的后果是什么? 我能做些什么来防止那些坏事发生? 如果最坏的情况发生了,我能做什么来修复它? 如果我试过了甚至取得了小小的成功,那我会得到什么好处? 如果我害怕的事一件不做,半年、一年、三年后我的生活会怎么样 方法五:和未来的自己对话 一人饰两角,假装和85岁的自己对话…

Read more ⟶

我的2023

做了什么: 54321周刊 RSS翻译器 开通Twitter 变动: 博客从纯html -> Astro -> Obsidian Publish -> Listed.to 笔记软件从Obsidian -> Standard Notes 大事件: 第一次参与第三方项目沉浸式翻译插件 第一次和网友面基(Owen) 第一次赞助和被赞助 第一次长途自驾游 第一次摸到雪 习惯打卡(App: 小日常): 学习:329天 感觉良好:266天 运动:327天 吃点心:200天 读书:102天 冥想:66天 日记:48天 反思:39天 感觉非常棒:31天 无所事事:35天 新购买的服务 Mullvad VPN Standard Notes Pikapods OpenAI API Backblaze Computer Backup Migadu mail 想学但还未学的: htmlx 加密货币/区块链 fediverse 想培养的习惯: 看书 写作 总结 谈不上丰富,也谈不上虚度,还凑合…

Read more ⟶

笔记_编写你的第一个Django应用

以下内容是本人学习 Django 5.0官方介绍文档 的笔记 第一部分 创建项目 django-admin startproject mysite 这些目录和文件的用处是: 最外层的 mysite/ 根目录只是你项目的容器, 根目录名称对 Django 没有影响,你可以将它重命名为任何你喜欢的名称。 manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin 和 manage.py 获取所有 manage.py 的细节。 里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls). mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果你是 Python 初学者,阅读官方文档中的 更多关于包的知识。 mysite/settings.py:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django 配置 了解细节。 mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL调度器 文档来获取更多关于 URL 的内容。 mysite/asgi.…

Read more ⟶

Uvicorn和Guvicorn的使用场景

Uvicorn 是一个异步服务器网关接口 (ASGI) 实现,它能够通过异步IO在单个进程中并发地处理多个请求。 这意味着,尽管 Uvicorn 是单线程的,但由于 Python 的异步特性,它还是能够同时处理多个请求。 这与传统的同步服务器不同,后者通常会为每个请求分配一个线程或进程。 Uvicorn 非常适合 IO 密集型的应用,如大量的网络请求和数据库操作,因为它们可以在等待 IO 操作完成时处理其他请求。 然而,对于 CPU 密集型任务,异步IO并不能提高性能,因为 Python 解释器的全局解释器锁 (GIL) 限制了在任何给定时间只有一个线程执行 Python 字节码。 因此,如果需要处理多个 CPU 密集型任务,需要使用多个 Uvicorn 工作进程来充分利用多核心 CPU。在这种情况下,可以使用像 Gunicorn 这样的工具来管理多个 Uvicorn 工作进程,每个进程都有自己的事件循环和内存空间。 在大多数情况下,Uvicorn 足以处理中等流量的应用程序,并且可以通过添加更多的工作进程来水平扩展以处理更高的负载。…

Read more ⟶

在云开发机上运行uvicorn的问题

今天在使用uvicorn运行fastapi的app时,遇到了几个问题: 无法在code server上正常访问 由于我的开发环境在云上,用的code server,并非是本地,因此默认命令uvicorn main:app --reload 是无法正常访问的,因为code server代理的网址是https://example.com/proxy/8000 因此需要更改root-path才可以正常访问: uvicorn main:app --root-path https://example.com/proxy/8000 --reload 对于python的自定义包无法正常载入解析 在我的main.py中,导入自定义包:from myapp.utils.database import Database 但在myapp文件夹下执行uvicorn main:app时,会出现无法找到myapp模块的错误,因此需要返回上一级文件夹,然后执行uvicorn myapp.main:app,这样就可以了 reload监控文件夹设置 由于uvicorn在启用reload时,默认是监控当前文件夹的变动,但如果使用了uvicorn myapp.main:app,则需要指定监控的文件: uvicorn myapp.main:app --reload --reload-dir /path/to/myapp/ 综上,全部命令为: uvicorn myapp.main:app --reload --root-path https://example.com/proxy/8000 --reload-dir /path/to/myapp/…

Read more ⟶

博客搬家到Listed-to

这次搬家主要是因为我的笔记应用从Obsidian(下称ob)搬到了Standard Notes(下称sn)。 我用ob也有一年多了,一直是开了sync和publish服务,但ob有很多操作一直习惯不来,比如左栏视图切换,总要想一下才能反应过来,还有就是鸡肋的搜索和没有web端,但让我下定决心搬家的原因是插件,正所谓成也插件败也插件,原先想自己做一个插件,深入了解后发现,插件的权限非常大,读取任意笔记不说,甚至可以在没有通知的情况下删除笔记……这顿时让我脊背发凉。 所以趁着黑五sn全场5折,一年只要49美金,还有免费的listed博客发布平台,比ob的sync + publish = 192美金要划算很多,而且sn不仅端到端加密,还本地加密,还有自动邮件和本地备份,操作和印象笔记也差不多,之前因为价格太贵一直没入手,所以这次就抓紧上车了。 下面简单介绍下Listed的设置,以备不时之需 关于博客数量 可以开无数个Listed,不过默认的listed.to域名国内被墙,需要绑定域名才可以在国内访问 自定义日期或者设置唯一的URL(doc): --- date: 2017-11-20 17:08:05 canonical: [mysite.com/blog/1/po...](https://mysite.com/blog/1/post-im-importing) --- Your story... 可用元数据字段列表: created_at 博文创建时间 canonical 该帖子的规范 URL,供搜索引擎使用。 custom_path 覆盖帖子的默认路径。如果是从其他博客迁移过来,这很有用。(例如: my-blog-post ) desc 本帖的自定义元描述,供搜索引擎使用。 hidden true/false. 是否应从作者简介中隐藏文章(但仍可通过 URL 访问) image_url 社交媒体网站在链接预览卡中使用的图片。 metatype [css, html, json]. 用于创建自定义主题。 page true/false. 用于在作者标题中创建专用链接。 page_link 如果 page 为 true,且设置了该值,页面将作为外部 URL 打开。 page_sort 一个数字。数字越小,页面链接出现在作者页眉的时间就越早。 关于自定义CSS 先根据官方文档创建css文件 如果想做成twitter类型,不显示正文,只显示标题: --- metatype: css --- .author-post .post-body { display: none; } 我博客在用的css:gist.…

Read more ⟶

解决macOS下OneDrive的同步问题

我的OneDrive下有4.7T的资料,需要全部同步下载到macOS下的外置硬盘,期间遇到了无数的问题,同步了数次才成功,因此在这里记录下主要的问题和相关的解决方案。 安装Onedrive 一定要去官网下载OneDrive,不要在Appstore里安装。 同步 初次开启OneDrive或者推出OneDrive后,如果文件数量超多,则会一直卡在“正在处理”的状态,这时不要退出,等待处理完成后就会开始下载。 建议一次一个大文件夹,不要一下子全部同步,不方便后续的核对 下载的文件 下载的文件并不在Finder左边的OneDrive文件夹里,该文件夹里都是链接文件,并非真实的文件。 真实文件都在隐藏文件夹 “.ODContainer-OneDrive” 下 比对文件大小 OneDrive官网不会显示文件夹的大小,需要进入OneDrive软件的设置里,点击“管理存储空间”可以查看 mac的对于文件大小的计算方式和微软不同,所以下载的文件大小会大于网页上显示的大小 需要在隐藏文件夹 “.ODContainer-OneDrive” 下,才可以查看文件大小 对于超大文件夹(大于2T),mac下右键文件夹详情里的文件大小有时不准确,需要进入文件夹比对子文件的大小 无法同步 一般情况下,重启软件或电脑是可以解决的 但如果软件有红色提示 存在同步问题的文件,则需要在网页上下载有问题的文件后,在网页端删除该文件。 这样软件就不会提示了,就会继续同步…

Read more ⟶

macOS的Python环境配置

警告:千万不要使用macOS默认安装的python。。。。 最佳配置是使用pyenv,因为它可以控制shell路径,可以配置全局默认版本 安装pyenv Github仓库 官方安装指南 这边只建议使用Homebrew来安装,可以省很多麻烦 首先需要安装依赖 brew install openssl readline sqlite3 xz zlib tcl-tk 然后再pyenvbrew install pyenv 安装Python 可先运行pyenv install --list查看所有可安装的版本 pyenv install 3.12.0 设置全局默认 `pyenv global 3.12.0 设置默认环境 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc 重启终端就可以自动生效了 使用PDM来管理虚拟环境 Github仓库 | 官方文档 安装brew install pdm 初始化一个新的 PDM 项目: pdm init (可选) 选择python版本号 pdm use 3.11 安装包:pdm add django 添加依赖: pdm add requests django…

Read more ⟶

树莓派4安装vscode并开启tunnel

如果你的树莓派可以外网访问,或者只想在内网使用vscode server,则建议直接使用Remove SSH会好些。 但如果无法外网访问,除了设置DDNS外,还可以使用tunnel,还可以网页访问vscode,很方便 参考:https://code.visualstudio.com/docs/remote/tunnels 如果你的树莓派是Raspberry Pi OS,则直接运行下面的代码安装即可: sudo apt update sudo apt install code 如果是debian或者其它第三方的系统,则运行下面的代码安装: ref:https://code.visualstudio.com/docs/setup/linux sudo apt-get install wget gpg wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list' rm -f packages.microsoft.gpg sudo apt install apt-transport-https sudo apt update sudo apt install code # or code-insiders 接着,下载CLI工具:https://code.…

Read more ⟶

NAS惊险记

这周我的威联通NAS因为一次意外断电,发生了硬盘坏块,数据丢失的情况,好在之前做好了备份策略,数据无损恢复,只是浪费了些时间。 这次事件发生了很多之前完全想不到的情况 ps:人类果然无法逃脱熵增定律 在此分享下事件过程: 我的备份策略: 首先我不相信任何的软raid方案,因此我的NAS设置为raid 0,寻求最佳性能 所有文件自动备份在NAS上,并实时同步到OneDrive 个人文档和重要文件也会同步到iCloud上 NAS连接外置硬盘,定时备份重要文件 目的: 通过不同的云服务商来确保数据安全,同时确保重要文件能最快速度的恢复并能临时使用 在发生意外断电后,在检查UPS电量和电源连接情况后,重启NAS,系统提示发生意外断电,需检查磁盘,运行了一天,果然有坏块,数据丢失。 由于日常使用的文件,均在iCloud上,所以不受影响 NAS重新绑定OneDrive时,再次出现问题,由于太过信任微软的Authenticator应用,使用的e5子账户可能因为长期没有登录,应用死活收不到验证码 好在电脑上的onedrive会话还在有效期,赶紧连接nas并全部下载下来,然后新建e5账户,并开启双因子和短信验证。 NAS绑定新的OneDrive账户,开始同步 至此,数据已全部找回,并在事件发生期间没有影响到日常的使用。 教训: 1.做好nas的物理隔离 2.所有账户的登录验证方式至少激活2种以上 3.对于非重要的冷数据,有必要再找个云服务商,不能只靠onedrive,目前在考虑BorgBase服务 小插曲:在意外发生时,我还在上班,由于正好要查看一个冷数据,之前都是VPN连接到内网的NAS上查看,但这次只能使用onedrive,好在app会话有效期还在。 但在我下载后准备使用Cryptomator解密vault时,才发现这个app竟然开始收费了。。。。好在有30天的试用期,看来要重新考虑加密方案了。 2023–12–01 更新 由于远程访问文件的需求较低,因此把NAS卖了,换了硬盘柜,并使用BackBlaze的Computer Backup备份,热文件依旧使用iCloud备份…

Read more ⟶

如何自建Newsletter服务

由于我原来的54321周刊部署在Substack平台, 但该平台国内访问不了, 而且发送的邮件附加了点击跟踪, 导致所有链接都需要从Substack服务器进行跳转, 没有科学上网的话根本访问不了, 体验很差, 所以有必要从Substack搬出来了. TLDR: 主页: 以Github为主, 类似阮一峰的科技周刊, 可以在cloudflare部署静态网页 RSS: 将内容发布到Github Release, 会有自动生成的RSS, 只要在release网址最后加.atom 邮件服务: 在Pikapods部署Listmonk, 并使用AWS SES服务, 非常便宜 正文: 使用Github Release发布 我的周刊从一开始就同步上传到Github上, 所以这次主要是解决Github Release的设置. 从原来的直接上传到docs文件夹下改为使用Github Release来发布, 体验更好: 而且release的标签可以作为id进行短网址跳转(后面会设置): 访问 54321.versun.me/p/29 自动跳转到 github.com/versun/54321-Weekly/releases/tag/29 同时, 我设置了一个Github Action, 可以在每次Releases新的内容后, 自动将内容保存为md文件并push到docs文件下: 在库的根目录下创建 .github/workflows/create-release-note.yml name: Create Release Note on: workflow_dispatch: release: types: [published] jobs: create-release-note: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 with: ref: main - name: Create release note run: | echo "…

Read more ⟶

Github-Sponsorkit使用说明

第一步:在需要添加sponsor模块的repo根目录下新建文件sponsorkit.config.js 该文件会自动输出svg,png和json格式的sponsor信息 import { defineConfig, presets } from 'sponsorkit' export default defineConfig({ // Rendering configs width: 800, formats: ['svg', 'png','json'], tiers: [ // Past sponsors, currently only supports GitHub { title: 'Past Sponsors', monthlyDollars: -1, preset: presets.xs, }, // Default tier { title: 'Backers', preset: presets.base, }, { title: 'Sponsors', monthlyDollars: 0.5, preset: presets.medium, }, { title: 'Silver Sponsors', monthlyDollars: 1, preset: presets.large, }, { title: 'Gold Sponsors', monthlyDollars: 5, preset: presets.…

Read more ⟶

UX-Learning-Path

Codecademy Courses Path Introduction to UI and UX Design Learn User Research: Generative Learn Design Thinking: Ideation Learn Interaction Design Create a Professional Website with Velo by Wix | Codecademy Designlab Courses Path UX Academy: Learn UX UI Design | Designlab 1 Design Is… Begin your learning journey by gaining essential information about the field of UX and UI design. Determine what design means to you and set achievable goals for yourself.…

Read more ⟶

Pinboard_in快速上手

==Pinboard功能== 书签管理 稍后阅读 同步 Pocket, Twitter, Instapaper 浏览器标签页保存 简易note RSS, 插件 书签存档服务 ==隐私设置== Pinboard默认书签是公开的,如果您要私人使用,建议您打开隐私模式后再导入书签: settings -> privacy -> Turn Privacy Lock On 打开后,名字旁边会有个🔒图案: ==导入导出书签== 导入: 使用浏览器导出的html文件来导入: settings -> import 通过邮箱导入: 首先启用该功能(勾选最后的Email设置), 将会显示专属的邮件地址, 邮件格式如下: 主题: 书签的标题 内容:第一行为网址,第二行为描述,第三行为标签 导出: export ==添加插件== 查看Pinboard Resources, 选择您要添加的插件或应用 如果你要添加书签栏的插件,查看howto ==书签管理== Pinboard只有2种管理方式: Tags和Bundles 标签Tags 每个链接可以添加多个标签(tags1,tags2) 集合Bundles 整合多个标签,类似标签文件夹(bundles1:tags1,bundles1:tags2) 需先在settings中打开bundles功能 打开后,点击首页的no tag bundles 然后再点击new bundle 在Create Tag Bundle页面,左边为所有的tag,右边为需添加到bundle的tag 点击左边需要添加的tag(可多个),然后点击中间的转换按钮,选中的tag将会显示在右边栏中 最后输入上方的bundle name,点击保存即可将所选择的tag加到对应的bundle下 Tips: 可双击tag快速转换左右列表 bundle暂时无法在添加书签时指定,只能手动 不能嵌套bundle ==RSS订阅== 可用RSS订阅自己/某人的pinboard页面变化,具体查看这里…

Read more ⟶

笔记应用Lattics的体验分享

在火热的卡片笔记应用市场中,原以为不会再有能让人眼前一亮的应用,但是我最近发现了Lattics,相较于其他笔记应用,它解决了很多硌脚式的痛点,例如: 之前喜欢印象笔记的素材库,但苦恼于没有无限层级。 Lattics提供了无限层级,也有卡片库。 喜欢 Notion 的自由,但需要顺畅的网络支持。 Lattics是本地优先的应用,也有类notion的功能模块 喜欢双向链接,但一直没有好用的图谱功能。 Lattics标配双链,并且有可以直接编辑的图谱,更有三种不同细粒度的模式 还有一页式笔记(在一个页面下查看某一主题的所有笔记内容) Lattics提供了顺序阅读,在输出或者整理时很方便 Lattics还提供了分割笔记功能 是不是很心动,可以看下官方的介绍视频,更直观。 话不多说,先来看看它的主界面,相当的简洁清爽 我个人很喜欢的功能: 卡片库,类似印象笔记的素材库,可直接拖到当前笔记中完成链接和插入操作 卡片库也可以筛选: 并且可以直接编辑卡片: 无限层级 类notion的快速插入模块,也支持Markdown语法 一页式顺序阅读,可以把子文档合并在一起显示,并可编辑 非常直观的拆分笔记功能 强大的图谱功能,类Ob的canva,但更人性化,有3种模式,我一般使用鸟瞰模式,显示的信息最多,如果能导出为图片那就更好了。 一键分隔编辑框,有种vscode的感觉 还可以定时备份!! 导出功能也必不可少 最后说下付费项,如下图,个人觉得免费的就够用了,如果要导出PDF/DOCX/图片,则需要付费 虽然这些功能,在其他笔记应用中都可以使用第三方插件来完成,但是Lattics让我有一种解放的感觉,它并不是大而全,而是小而美,用户体验很不错。 当然, Lattics 也有一些需要改进的地方,例如,备份使用的是json格式,如果能用md格式备份那就更好了;此外,它暂时还不支持移动端,目前只有 PC和Mac 版本,希望未来能够覆盖全平台。 总的来说, Lattics 是一款非常值得尝试的应用,如果你正在寻找一款好用的笔记应用,不妨试试Lattics…

Read more ⟶

Ruby-Cheatsheet

安装 ref: Installing Ruby , Download Ruby 在线使用: TryRuby playground Linux: sudo apt-get install ruby-full or sudo yum install ruby macOS: brew install ruby , 也可以参考这里[[M芯片的macOS安装Ruby]] Windows: winget install RubyInstallerTeam.Ruby or RubyInstaller for Windows 可选安装: GitHub - rbenv/rbenv: Manage your app’s Ruby environment RVM: Ruby Version Manager 交互模式 打开终端,输入irb即可进入Ruby交互模式 irb(main):002:0> puts "Hello World" Hello World => nil 变量 myVar = 48 常量 PI = 3.1415 输出 print "Hello" puts "…

Read more ⟶

Git-Cheatsheet

基础流程 git add . git commit -m "message" git push 强制Pull,忽略本地的修改,以远端的repo为准 git fetch git reset --hard HEAD git merge '@{u}' git add 添加 git init 初始化 git commit -m 提交 git status 状态 git diff 工作区(work dict)和暂存区(stage)的比较 git diff –cached 暂存区(stage)和分支(master)的比较 git reset HEAD 把暂存区的修改撤销掉(unstage),重新放回工作区 git commit –amend 修改最后一次提交的内容,可以仅修改message,也可以添加新的文件(按正常步骤add,然后输入该命令提交) head 指向的版本就是当前版本 git reset –hard commit_id 回到某历史版本 git log 查看提交历史,以便确定要回退到哪个版本 git reflog 查看命令历史,以便确定要回到未来的哪个版本 git remote add origin git@server-name:path/repo-name.git 关联一个远程库 git remote -v 查看远程库信息 git remote rm origin 删除已有的GitHub远程库 git remote rename origin mine 重命名origin为mine git push -u origin master 第一次推送master分支的所有内容 git push origin master 推送最新修改 git branch dev 创建dev分支 git checkout -b dev 创建并切换一个新分支dev git branch 查看当前分支 git checkout dev 切换到dev git merge dev 合并dev分支到当前分支 git branch -d dev 删除dev分支,如果有未提交的内容, 需要用-D强制删除 git log –graph 分支合并图 git merge –no-ff -m “merge with no-ff” dev 禁用Fast forward,然后合并 git stash 存储当天工作现场,等以后恢复现场后继续工作 git stash list git stash apply 恢复存储的工作现场 git stash drop 删除存储的工作现场 git stash pop 恢复的同时并删除 git pull origin master 从远程origin抓取最新的分支master的commit,并合并master和origin/master分支 git fetch origin master origin/master分支和远程同步,但master分支不动,可自行merge合并(主要用在,本地和远程都有各自的新commit,这种情况下,无法pull,所以要先fetch,然后merge合并修改,最后把本地最新 版本push到远程) git branch -b dev origin/dev 在本地创建和远程分支对应的分支 git branch –set-upstream-to=origin/dev dev 把本地dev和远程dev链接 git rebase 把本地未push的分叉提交历史整理成直线 git tag v1.…

Read more ⟶

Migadu邮箱服务的使用配置

在个人域名的邮箱服务商的选择上,看似很多其实好用的不多, 比如国内的阿里云腾讯网易等,国外的gmail,zoho,mail还有各大域名注册商也有提供, 但用了一圈下来,没有一个能同时满足隐私性,自定义性,国内网络易用,费用低,稳定的要求。 所以后来我一直使用的是icloud和cloudflare的邮件路由功能,cloudflare确实很强大且稳定还免费,但唯一缺点就是无法用收件的地址发信,虽然发的不多,但硌得慌。 直到我找到了Migadu ,他们的宣发真是太低调了,直到最近我才发现到它。 同时,也很心水他们的网页设计和创办理念,收费方式是根据使用量而不是功能,简直是一股清流,二话不说果断转移。 官网也放出了优缺点供参考。 价格: 不同档位的区别主要就是收发邮件的数量限制,域名子域名设置都不限制,14天免费试用,还有网页端可用。 最低档一天可以收200封发20封,同时官方允许25%的超量,对于个人来说,这个量完全够用。 在注册后,首先要修改些信息,保证账户安全 开启两步验证和恢复用的邮箱 由于我在注册后,就把登录邮箱改为了设置的域名邮箱,所以为了防止未来Migadu的服务器出现问题,无法登录收发邮件重置密码的情况,所以恢复用的邮箱设置为第三方服务的邮箱,比如谷歌或者微软的邮箱。 增加通知邮箱,理由同上 添加域名 不建议使用Migadu的Nameservers,这不是它们的主业,建议使用cloudflare 添加DNS解析记录 在点击Add Email Domain后,会跳到DNS设置页面(DNS Setup Instructions),需要添加的记录巨多,建议使用BIND zone records来批量添加 复制所有的记录到txt文档中,然后在cloudflare的DNS管理页面,使用导入功能 导入完成后,稍等1分钟左右,回到Migadu点击检查按钮 检查通过的话,该按钮会消失,可以点击Overview查看状态 如果有问题的话,可以点击Diagnostics来查看具体哪些记录没有生效 添加邮箱 点击New Mailbox就可以按需添加邮箱, 个人建议添加一个即可,然后在Address Aliases或者Pattern Rewrites来设置不同前缀的邮箱,方便一个邮箱收发多个地址, 建议使用Pattern Rewrites设置,会方便很多 设置Pattern Rewrites (模式重写?) 该功能是我主要使用的,对于保护个人隐私非常有用, 比如不同网站,如果都是同一个邮箱注册的话,若其中一家网站被拖库(数据泄露),则黑客就可以用该邮箱在不同的网站上尝试撞库,当然你也可以使用密码管理器来设置不同密码,但是,该功能还可以防止大数据通过同一个邮箱来得到你的个人画像。 所以,使用不同邮箱地址来注册账户,就相对解决了以上问题,为什么说相对呢,如果还想进一步保护个人隐私,可以查看 这里。 配置可参考如下图,设置的功能是,所有发送到signup-开头的邮箱地址,均发到me@versun.me的邮箱里, 比如signup-amazon@versun.me和signup-google@versun.me,对外界来说是2个不同的邮箱,但实际上都是发送到me@versun.me里面去, 这样就能实现不同的注册邮箱地址,一个邮箱接收。 接下来就是设置可以从不同的邮箱地址发送邮件 设置Wildcard Sender (通配符发件人) 这个的作用,就是允许不同的邮箱前缀通过versun.me这个域名来发送邮件,就不用单独为一个账户创建一个邮箱。 比如我可以使用signup-amazon@versun.me这个邮箱来回复邮件, 当然邮件客户端上也要添加该别名 邮件客户端添加邮箱别名 这里以我用的Canary为例,在Settings下,点击要添加别名的主邮箱,然后在Aliases里面添加别名即可: signup-amazon@versun.…

Read more ⟶

冥想计划

前言 在这个迷乱的世界,所有的事物,时时刻刻都在尝试夺取我们宝贵的注意力, 而冥想,给我们带来了主动控制注意力的可能,锻炼“有意识”的能力, 冥想其实就是掌控念头的训练。 当某件事发生时,我们的大脑会给予反应(快乐、挫败、愤怒等),并倾向于用最简单的方式来回应,也就是惯性思维。 冥想就是教我们怎么去超越惯性,有意识的控制大脑的反应。 冥想时,我们的大脑可能有一半时间都在反抗,可能会想“我累了,今天就这样吧,放弃吧,别再专注在呼吸上了。” 或者注意力总是会飘到其它地方,这很正常,你要做的,就是意识到它们的存在,但不要马上跟随它们,然后把注意力转回到呼吸上,这就是在训练超越惯性的能力,可能之后还会分心,然后再专注,再分心,无限循环,但随着练习的次数越多,你会越快的意识到注意力的分散,越快的调整注意力,你也会发现适合自己的处理各种念头的方法,甚至在念头还没成型之前就意识到并处理掉。 随着不断地练习冥想,我们对发生的任何事/念头/人,都可以有意识的去处理,而不是跟随惯性,这会成为一种习惯,不让任何念头/情绪困扰你,不用最直接的情绪给予周遭事物任何反应,因为一旦掉入情绪的漩涡,你就会开始失控,开始胡思乱想。 比如在开车时,遇到超车或者塞车,不需要跟随最直接的愤怒情绪,而是有意识的发现情绪并处理它,这并不是简单的压抑情绪。 我们需要有意识的专注,对任何突然冒出的想法/事情/情绪,第一时间应该是意识到它们的存在,你可以记录下来,然后才是安排处理它们,而不是马上惯性地采取行动。 超越惯性,控制自己的念头,这就是冥想所能带来的。 计划说明: 冥想基础: 背景音乐可有可无,随你心意 最好有专门冥想的地方,比如专用的地垫等 两只脚平放在地上,移动到你的座椅边缘,手轻轻地放在膝盖上,打开胸腔,肩膀放松 闭眼,深呼吸1-3次,**然后回到自然呼吸,**开始冥想 每次冥想结束前:深呼吸1-3次,再睁眼 每日训练内容可根据需要重复进行,您也可以一直进行P1-D1的训练,直到您想进一步,一切随你心意。 每日训练内容: Plan 1 Day 1 (P1-D1) 时长:5分钟 | 技能:呼吸 | 目标:注意呼吸 把你的注意力放在你的呼吸上,自然的呼吸,不用特意控制呼吸。 注意力飘移是很正常的,重新回到呼吸上即可 吸气的时候,默想“吸”,呼气的时候,默想“呼” P1-D2 时长:5分钟 | 技能:呼吸 | 目标:感受呼吸的精神变化 吸气的时候,脑子默想“吸”,呼气的时候,默想“呼” 感受空气的温度,凉爽的吸入,温暖的呼出,如果没有感受,也是正常的 认真感受你的呼吸,感受空气的流动,大脑的感受,感受思绪在大脑的流动,注意力慢慢回到呼吸上…

Read more ⟶

习惯养成

所有习惯均出自Fabulous app 建议一次培养一个新习惯 每天起床喝一杯水 可以买个好看的水杯放床头 吃健康早餐 做好准备 去超市购买一周的能量早餐 放在显眼易得的地方 扔掉垃圾食物 运动 低强度运动: 快步走 随音乐跳舞 简单瑜伽 甩摆小型壶铃 做好准备 前一晚就做好准备 5分钟即可,3天后可适当增加时间 获得动力 1. 写下所有从最后一次运动中获得的正面的感受,即使是几个月前的事 设计你的锻炼环境 挂上您最喜欢的运动员的海报 开始写运动日志 参加当地的运动项目俱乐部或团队 多和锻炼的人交往 找到一个有意义的物品,让它成为您的锻炼图腾:这个物品会时刻提醒您要开始锻炼 创建属于自己的Sphere仪式 对着图腾说:我要去锻炼了,我感觉很棒! 戴上头戴式耳机 开始播放最喜欢的锻炼音乐 穿上跑鞋 每天庆祝 完成每个习惯后立刻庆祝是很重要的,只有这样才可以把正面的后续情绪与行为习惯连接起来 庆祝方式最好难忘切激情,要把情绪融入其中 最重要的是感受那兴奋的快感在血液里流淌,感受快乐传遍全身 培养良好的睡眠习惯 睡前不接触任何的电子产品,让电子产品远离床 让卧室在睡眠的时间段里保持黑暗 记录任何让您烦躁,惊醒的声音,尝试消除/解决它,可利用白噪音、耳塞 在床上只做2件事,睡觉和性爱 以积极的眼光看待世界 快乐与否,取决于自己的态度,只有自己可以控制如何看待日常发生的事情 留意身边让您开心的事情,把这养成一种习惯 每天写下2件以上让您开心或者值得感恩的事情 不要记录在电脑里 买一本笔记本,认真选购,可以的话,每去一次异地就买一本,这样,笔记本就会有本身的故事 不要觉得写的很乱,写得没有意义,不要隐藏自己的情绪,宣泄出来,和你的朋友或者宠物分享您的快乐 持续3天以上,就能感觉有活力和精神,压力也会减少,睡得更好 冥想 冥想计划 自我鼓励 每天一起床,便对自己大声说“我今天感觉精力充沛,今天将会是美好的一天” 聚焦重要的任务 晨间 按ABC分3个优先级 筛选今天要做的最重要的3件A优先级的事 设定目标并调整计划 设定目标 3个以内 (一次性行动) 问自己:为什么我想要完成它? 必须清楚了解自己的动机,以便之后迷失时,可以重燃欲望 比如,我想要做更多的运动,因为我觉得运动可以给予我能量应付社会生活。 问:我需要做什么来达成目标 不需要立刻写下所有任务,但至少需要3项 检阅并调整计划 (每天下午或一定的周期) 每天结束,检阅并调整自己的计划 今天有什么任务没有完成? 我需要改变什么? 接下来的任务是什么? 比如,原计划去健身房锻炼,但已经连续2天没去,正因为每天检阅计划,所以意识到,我没有充足的时间去健身房,最后调整为在家,跟随教程短时锻炼的教程来运动 光辉时刻 作用: 锁定习惯,重新激活动力,防止放弃 每周末选一个固定时间,回忆锻炼所带来的美好回忆,成就感等,越形象越有效果 然后问自己,下周还要锻炼吗?当然要! 写日记 写下3个当天的消极想法:“我太老/年轻“、”我不相信别人“ 写下今天犯的错误,包括前因后果 识别偏见 社会认同偏见 为了社会认同(形象/面子),而做出错误的决定 短缺偏见 由于担心失去一些已经拥有的事物而高估它们的价值 权威偏见 专家也会犯错,要寻求第二方案。 对比偏见 基于其他选择比较另一个选择的好坏 一个糟糕的事物不会因为旁边的事物更糟糕而变得好一点 爱/恨偏见 我们经常忽视了朋友的缺点以及敌人的优点 对于自己喜欢的球队,往往都信心十足。 写下一天中遇到的2-3个偏见,具体发生的场景和影响,然后写下相反的场景,描述如果及时识别出这个偏见,会发生什么事。 去商店买衣服,导购说这条裤子要脱销了(短缺偏见), 以至于我买下了根本不需要的裤子 …

Read more ⟶

技术文档框架

ref:: Technical Documentation Framework 教程(tutorials):通过一系列步骤来帮助学习者正确的开始(类似教学) 学习导向 告知用户将取得的成就 确保用户获得同样的结果 确保用户立即看到结果,且结果是有意义的 教程可在不同的环境下复现 描述具体步骤,而不是抽象概念 仅提供最低限度的、必要的解释 忽略那些可能分心的选项和替代方案 语言框架 在本教程中,您将… 描述学员将完成什么(注意-不是:“您将学习…”)。 首先,做x。现在,做y。既然你做了y,就做z。 没有模糊或怀疑的余地。 在做y之前,我们必须总是做x,因为……(有关更多详细信息,请参阅解释)。 用尽可能基本的语言对行动进行最少的解释。链接到更详细的解释。 输出应该看起来像这样…… 明确地向学员提供预期。 注意……记住…… 给你的学习者提供充足的线索,以帮助确认他们走在正确的轨道上,并调整方向。 您已经制造了一个安全的三层透明稳态发动机…… 描述(并钦佩,以温和的方式)你的学习者所取得的成就(注意-而不是:“你学会了……”) 操作指南(how-to):解决一个具体的问题/实现特定的结果(类似食谱) 目标导向 不必从头开始,那是教程做的事 直观的标题《如何 xxx》 提供可实践的步骤/做法 注重结果,而非解释 实用可用性比完整性更有帮助 语言框架 本指南介绍如何… 清楚地描述要解决的问题。 如果你想要x,则做y。要实现w,则做z。 灵活。 有关选项的完整列表,请参阅x参考指南。 把概念解释交给参考指南,专注目标的实现。 参考(reference):技术描述(类似wiki) 信息导向 简洁有序权威,只戳重点 使用内容相关的结构,有助于理解 语言一致性 仅描述 提供实例 保持准确 语言框架 X是y的一个子函数。W需要使用z初始化。此选项可以做到这一点。 陈述有关选项及其行为。 子命令是:a、b、c、d、e、f。 列出命令、选项、操作、功能、标志、限制、错误消息等。 你必须使用a。除非c,否则您不得申请b。从来没有d。 酌情提供警告。 解释(explanation):澄清和阐明特定话题,加深和拓宽读者对某主题的理解 理解导向 一种更轻松自由的思考某事的讨论方法。 已"关于"开头为标题 与相关的事物建立连接,编织理解网络 提供背景和具体例子 可讨论大局观/历史/选择、替代方案、可能性/为什么:原因和理由 避免提供指导做法或技术描述 语言框架 x的原因是,从历史上看,y… 解释一下。 W比z好,因为… 在适当的情况下提供判断甚至意见。 系统y中的x类似于系统z中的w。然而…… 提供有助于读者的上下文。 一些用户更喜欢w(因为z)。这可能是一个好方法,但是… 权衡替代方案。 x与y交互如下:… 揭开内部秘密,以帮助理解为什么某物会这么做。 …

Read more ⟶

PKM探索

2023-02-24 一些不错的资源 Effie软件的blog 一个由org-mode生成的静态网站:https://ag91.github.io 我发现只要用了emacs,则TA的github大部分都是围绕elisp的代码,哈哈,看来emacs真的很折腾 一个可以保存为HTML的笔记软件Noteship 仅有mac端,移动端还在开发,无法iCloud同步,订阅制 最原始的卡片笔记法的软件The Archive 有点简陋感觉,很纯粹 2023-01-20 关于任务管理方法 ref: About The Bento Method Pack: 抽取3个任务 小:简单的任务,比如清理email,归档文件等,15-30分钟 中:需要一半的精力,项目导向,邮件事件,发布博客,完成撰写等,45-60分钟 大:需要深度集中,交付成果,编写报告,视频编辑等,90+分钟 Flow: 选择一种工作流 吃掉那只青蛙:大 -> 中 -> 小 攀登:中 -> 大 -> 小 慢热:小 -> 中 -> 大 Focus: 一次只处理一个任务 2022-12-21 唯一适合你的笔记系统,是随着你的使用慢慢形成的,然后在其过程中慢慢完善。 不要一开始就想构建一个完美的笔记系统,这注定会失败的,因为该系统不是在生产环境中锤炼出来的,所以一开始不要浪费时间和热情在构建上,而应该在使用中学习并构建,享受这段渐进式的过程。 现在开始创建您的Home笔记 2022-10-08 每一个笔记是一个点,2个关联的笔记是一条线,多条线即构成面,多个面构成体 那么如何找到一个体中的点呢,很显然,需要3个维度来定位, 这时就需要标签,定义笔记的3个维度(X状态,Y类型,Z类别) 每个维度的初级类别是固定的,初级类别的子类别不限制,根据需要添加 每个笔记,必须要有XYZ标签,数量不限制 该标签系统的目的:快速定位笔记,每个维度的边界清晰,没有打标签的压力 也可自行定义这3个维度(但要注意,每个维度的边界要清晰,这样才便于标签,没有压力) X-status:open, in_progress, on_hold, closed…

Read more ⟶

树莓派超频设置

设备:树莓派4b 4G内存. 编辑/boot/config.txt 添加以下代码: arm_freq=2000 over_voltage=10 保存,重启即可。 建议可以从1750开始超,如果能顺利重启,则再设置为2000 如果无法顺利重启,可以把SD卡插到其他电脑上,去修改config文件即可。 其他相关命令: 当前电压: vcgencmd measure_volts 当前温度: vcgencmd measure_temp 当前频率: sudo cat /sys/devices/system/cpu/cpu0/cpufreqq/cpuinfo_cur_freq 最大频率: sudo cat /sys/devices/system/cpu/cpu0/cpufreqq/cpuinfo_max_freq 性能测试 表示创建4个线程来寻找 √ ̄20000 以内的质数: sysbench –num-threads=4 –test=cpu –cpu-max-prime=20000 run 跑分软件nbench wget <http://www.math.utah.edu/~mayer/linux/nbench-byte-2.2.3.tar.gz> tar -xvzf nbench-byte-2.2.3.tar.gz cd nbench-byte-2.2.3 make ./nbench 压力测试 期间温度不超85度为正常。 sudo apt install stress stress -c 4 -t 10m -v …

Read more ⟶

Windows下虚拟机安装Metasploitable3

项目地址:https://github.com/rapid7/metasploitable3 需求软件: Packer Vagrant Vagrant Reload Plugin VirtualBox, libvirt/qemu-kvm, or vmware (paid license required) 除了Packer,下载完解压后,把Packer.exe放到系统Path里面去,然后在cmd里面测试packer就行了 其他都是软件包安装,很方便 接下来就是重头戏了 该命令需要在poweshell上执行,不能在cmd中执行 错误1: 图片: 解决1: 管理员运行PoweShell 执行 Set-ExecutionPolicy RemoteSigned 输入y回车 错误2: 图片: 解决2: 文本编辑 build.ps1 把: $actualVersion = $actualVersion.split(“.”) 改为已安装的virtualbox的版本号:(需要你自己打开virtualbox查看版本) $actualVersion = “6.0.8” 保存 最后重新执行命令,等等即可。 完成…

Read more ⟶

Linux添加service服务文件

vim /lib/systemd/system/jupyter.service / 这个目录不同发行版可能也不同 [Unit] Description=jupyter After=network.target [Service] Tpye=forking EnvironmentFile=/usr/local/bin/jupyter-notebook ExecStart=/usr/local/bin/jupyter-notebook ExecStop=/usr/bin/pkill jupyter-notebook KillMode=process Restart=on-failure RestartSec=30s [Install] WantedBy=multi-user.target 创建好之后再操作下就行了 bash systemctl daemon-reload systemctl start jupyter systemctl enable jupyter…

Read more ⟶