Github/Gitee Page
GitHub Pages 是一个由 GitHub 提供的静态网站托管服务,它允许用户直接从 GitHub 仓库托管静态网页。这些网页可以是个人简历、项目文档、博客、电子书籍、幻灯片演示文稿等。GitHub Pages 非常适合托管不需要服务器端处理的静态内容,因为它提供免费的托管服务,并且与 GitHub 仓库紧密集成。
以下是 GitHub Pages 的一些主要特点:
易于使用 :
- 无需配置复杂的服务器或数据库,只需将静态网页文件推送到 GitHub 仓库,GitHub Pages 就会自动为你托管网站。
- 支持直接通过 GitHub 仓库的默认分支(通常是
main
或master
)托管网站,或者通过gh-pages
分支托管。
自定义域名 :
- 你可以为你的 GitHub Pages 网站配置自定义域名,使其更专业。
HTTPS 支持 :
- GitHub Pages 提供自动 HTTPS 支持,确保你的网站内容通过加密传输。
CDN 和缓存 :
- GitHub Pages 使用全球 CDN(内容分发网络)来加速内容分发,并且自动缓存静态资源以提高加载速度。
Jekyll 集成 :
- GitHub Pages 与 Jekyll 静态站点生成器集成,使得你可以使用 Jekyll 生成静态网页,然后托管在 GitHub Pages 上。
版本控制 :
- 你的网站内容存储在 GitHub 仓库中,这意味着你可以利用 Git 的版本控制功能来管理你的网站内容。
免费的 :
- 对于公共仓库,GitHub Pages 提供的托管服务是完全免费的。
易于分享和协作 :
- 由于网站内容存储在 GitHub 上,你可以轻松地与他人分享和协作网站内容。
实时更新 :
- 每当你推送新的更改到 GitHub 仓库时,GitHub Pages 会自动更新你的网站。
要开始使用 GitHub Pages,你只需要创建一个 GitHub 仓库,将你的静态网页文件(如 HTML、CSS、JavaScript 文件等)推送到仓库中,然后按照 GitHub 的指引配置你的仓库以启用 GitHub Pages 功能。对于使用 Jekyll 的用户,过程也类似,只是你需要在仓库中包含 Jekyll 站点的配置文件和内容。
GitHub Pages 是一个强大的工具,特别适合开发者和小型团队托管静态网站,以及个人创建个人网站或博客。
tools:
fish
是一种智能且用户友好的命令行 shell,它旨在提供更加人性化的用户体验。以下是 fish
的一些特点:
自动建议 :
fish
提供了强大的命令自动补全功能,它根据上下文环境智能地提示命令和参数。
语法高亮 :
- 它能够对输入的命令进行语法高亮显示,帮助用户快速发现错误。
历史搜索 :
fish
提供了一种改进的历史搜索功能,允许用户以自然语言的方式搜索命令历史。
定制性 :
- 用户可以通过配置文件和第三方插件来定制
fish
的外观和行为。
脚本友好 :
fish
支持强大的脚本功能,并且提供了一些内置的函数和工具来简化脚本编写。
跨平台 :
fish
可以在多种操作系统上运行,包括 Linux、macOS 和 Windows(通过 WSL 或其他终端模拟器)。
友好的错误提示 :
- 当命令执行出错时,
fish
会提供有用的错误信息和可能的解决方案。
tmux
是一个开源的终端复用器,由 Nicholas Marriott 开发。它允许用户在一个终端窗口中访问多个独立的终端会话,并且可以在这些会话之间自由切换。tmux
特别适合需要长时间运行命令、需要断开连接后能够恢复工作场景的用户,以及需要在多个终端任务之间快速切换的用户。
以下是 tmux
的一些核心特性:
会话分离与恢复 :
- 用户可以在
tmux
会话中运行程序,然后断开连接。程序会继续在后台运行,用户可以在任何时候重新连接到会话,恢复之前的工作状态。
窗口与窗格 :
tmux
允许在一个会话中创建多个窗口(相当于多个终端),每个窗口可以进一步分割成多个窗格(panes),实现多任务并行处理。
可定制性 :
- 用户可以通过配置文件
.tmux.conf
来定制tmux
的行为和外观,包括键绑定、颜色主题、状态栏等。
滚动缓冲区 :
tmux
提供了一个滚动缓冲区,用户可以回顾之前在终端中执行的命令和输出,即使这些内容已经超出了当前屏幕的视野。
共享会话 :
tmux
支持会话共享,允许多个用户连接到同一个会话,实时协作或观察。
跨平台 :
tmux
可以在多种操作系统上运行,包括 Linux、macOS 和 BSD 系列。
命令和交互 :
tmux
提供了丰富的命令和交互方式,用户可以通过前缀键(默认是Ctrl+b
)加上其他键来执行各种操作,如创建新窗口、切换窗格、调整窗格大小等。
状态栏和模式线 :
tmux
的状态栏显示当前会话、窗口和时间等信息,模式线(mode line)则提供了当前窗格的状态和消息。
复制模式 :
tmux
提供了一个复制模式,允许用户使用方向键和Page Up
/Page Down
键浏览和选择终端输出,然后复制到剪贴板。
tmux
是一个功能强大的工具,对于需要在终端中高效工作的用户来说,它提供了极大的便利和灵活性。通过熟练使用 tmux
,用户可以提高工作效率,更好地管理复杂的终端任务。
soup:
要有目标 。你需要有目标。短的也好,长的也好。认真定下的也好,别人那里捡的也好。就跟随机梯度下降需要有个目标函数一样。
目标要大 。不管是人生目标还是目标函数,你最好不要知道最后可以走到哪里。如果你知道,那么你的目标就太简单了,可能是个凸函数。你可以在一开始的时候给自己一些小目标,例如期末考个80分,训练一个线性模型。但接下来得有更大的目标,财富自由也好,100亿参数的变形金刚也好,得足够一颗赛艇。
坚持走 。不管你的目标多复杂,随机梯度下降都是最简单的。每一次你找一个大概还行的方向(梯度),然后迈一步(下降)。两个核心要素是方向和步子的长短。但最重要的是你得一直走下去,能多走几步就多走几步。
痛苦的卷 。每一步里你都在试图改变你自己或者你的模型参数。改变带来痛苦。但没有改变就没有进步。你过得很痛苦不代表在朝着目标走,因为你可能走反了。但过得很舒服那一定在原地踏步。需要时刻跟自己作对。
可以躺平 。你用你内心的激情来迈步子。步子太小走不动,步子太长容易过早消耗掉了激情。周期性的调大调小步长效果挺好。所以你可以时不时休息休息。
四处看看 。每一步走的方向是你对世界的认识。如果你探索的世界不怎么变化,那么要么你的目标太简单,要么你困在你的舒适区了。随机梯度下降的第一个词是随机,就是你需要四处走走,看过很多地方,做些错误的决定,这样你可以在前期迈过一些不是很好的舒适区。
快也是慢 。你没有必要特意去追求找到最好的方向和最合适的步子。你身边当然会有幸运之子,他们每一步都在别人前面。但经验告诉我们,随机梯度下降前期进度太快,后期可能乏力。就是说你过早的找到一个舒适区,忘了世界有多大。所以你不要急,前面徘徊一段时间不是坏事。成名无需太早。
赢在起点 。起点当然重要。如果你在终点附近起步,可以少走很多路。而且终点附近的路都比较平,走着舒服。当你发现别人不如你的时候,看看自己站在哪里。可能你就是运气很好,赢在了起跑线。如果你跟别人在同一起跑线,不见得你能做更好。
很远也能到达 。如果你是在随机起点,那么做好准备前面的路会非常不平坦。越远离终点,越人迹罕见。四处都是悬崖。但随机梯度下降告诉我们,不管起点在哪里,最后得到的解都差不多。当然这个前提是你得一直按照梯度的方向走下去。如果中间梯度炸掉了,那么你随机一个起点,调整步子节奏,重新来。
独一无二 。也许大家有着差不多的目标,在差不多的时间毕业买房结婚生娃。但每一步里,每个人内心中看到的世界都不一样,导致走的路不一样。你如果跑多次随机梯度下降,在各个时间点的目标函数值可能都差不多,但每次的参数千差万别。不会有人关心你每次训练出来的模型里面参数具体是什么值,除了你自己。
简单最好 。当然有比随机梯度下降更复杂的算法。他们想每一步看想更远更准,想步子迈最大。但如果你的目标很复杂,简单的随机梯度下降反而效果最好。深度学习里大家都用它。关注当前,每次抬头瞄一眼世界,快速做个决定,然后迈一小步。小步快跑。只要你有目标,不要停,就能到达。