An awesome & curated list of anything that I find might be useful for computer science students. Kinda messy but try to organize it well.
Some blogs are in Chinese, and some in English. Hope this repo will be helpful for more people.
ENJOY IT!!
日常碰到的收集的觉得可能对计算机相关专业学生有用的资料。可能有点乱,会不定期整理。
有些链接文章是中文的,有些是英文的。希望尽可能对更多人有用。
[toc]
-
之前的tensorD项目可作为参考,包括API说明以及文档格式
-
Git相关
- Git小书
- 什么是 .gitkeep ?
- GitHub无法访问、443 Operation timed out的解决办法
- Gitignore not working?
- Git的GUI客户端:
- SourceTree: macOS, windows
- GitKraken: macOS, windows
- Git 使用规范流程
- 团队协作中的 Github flow 工作流程
- Git分支管理策略
- Git 分支命名规范
-
Python package的打包与发布
-
Python模块与包
-
README相关
-
持续集成状态
-
Travis CI不支持organization的private repo,放弃吧
-
改用Github Actions
- Introduction to GitHub Actions
- Building and testing Python
- Codecov GitHub Action
- 其他跟codecov和coverage的结合用法直接上GitHub搜人家代码:直接用Codecov GitHub Action
-
unit test代码覆盖率
-
coverage + codecov 支持organization的private rep
- codecov的配置文件
codecov.yml
写法直接看官方文档
- codecov的配置文件
-
coverage + coveralls
- coveralls不支持organization的private repo
- Travis CI+Coveralls大致流程
-
-
-
Unit test
slumber
利用unittest编写tests示范- 在
tests.__init__.py
文件中加载所有test suite - 项目
setup.py
脚本中指定tests_require
和test_suite
- 在
unittest
— Unit testing framework ->官方文档- 廖雪峰:单元测试
- 提高你的Python能力:理解单元测试
- 各位都是怎么进行单元测试的? - 大宽宽的回答 - 知乎 https://www.zhihu.com/question/27313846/answer/853193909
- 各位都是怎么进行单元测试的? - gashero的回答 - 知乎 https://www.zhihu.com/question/27313846/answer/120164282
- unittest使用详解
- Python必会的单元测试框架 —— unittest
- torch相关代码如何做unit test?
-
文档开发与托管
-
Sphinx+Read the Docs (Read the Docs对private repo收费,开发时候放弃吧!)
-
使用Sphinx开发文档
-
Sphinx使用标记语言reStructuredText编写文档
-
Sphinx主题
-
最主流的
sphinx_rtd_theme
:Read the Docs Sphinx Theme (画风就真的很丑哈,实在没办法才换回来)可以去GitHub看人家rst文件写法
-
目前用了sphinx-typo3-theme
主题(example) -
目前用了Furo主题
- 如何自定义修改相关元素: Customisation
- urllib3的文档主题也是Furo,供参考
-
-
Sphinx文档自动抽取
*.py
代码中的API docstrings可用Sphinx原生的扩展sphinx-apidoc
抽取(语法直接看sphinx-apidoc
的文档),但是build出来的效果不是很好而且不够auto。。。- docstrings风格在PyCharm中的设置:sphinx+python项目文档自动生成
- Google Python代码风格指南
- Example Google Style Python Docstrings
- 增加第三方sphinx-autoapi插件!!!!
简易流程:
- 编写rst
- 当前目录到
docs
下,执行build相关指令生成html文件
尽量不要直接用原生的apidoc,难用。。。
建议安装
sphinx-autoapi
来构成自动docs抽取!!!!!!比原生的sphinx.ext.autodoc
的效果好很多。。。。手动改rst之后进行build(sphinx-autoapi
是否能自动生成rst?看文档),build要用的命令行:# 目录切到docs下 # 移除build中原有文件 $ rm -r build # 正式build $ sphinx-build -b html ./source build
-
-
Read the Docs:
- Importing Your Documentation
- 创建并部署你的文档
- 务必要在GitHub项目中添加ReadTheDocs的hook!
-
Sphinx + GitHub Page
-
-
需要发布PyPI上吗
-
用Teambition进行合作: https://www.teambition.com/apps/
-
Python Register module:
-
如何用SSHFS?让服务器文件系统挂到自己本地系统里方便文件传输
-
下载
osxfuse
brew install --cask osxfuse
-
下载
sshfs
brew install sshfs
-
设置文件目录挂载
# 创建本地目录,用于挂载 $ mkdir -p xxxx/mount_remote # 挂在远程目录到本地,输入密码即可,若要免密,创建sshkey即可 $ sshfs xxxx@x.x.x.x:/home/yyy /xxxx/mount_remote -p port_num # 在macOS的Finder里像用本地正常文件夹一样打开远程目录,进行操作 # 使用结束,取消挂载(有时候会自动断掉链接,就不用手动取消挂载了) $ umount /xxxx/mount_remote
-
-
使用
expect
完成脚本一键登录服务器(README.md中的Tips on Using SFTP & SSH) -
服务器公私钥登陆
-
在本地计算机的
~/.ssh
目录下生成密钥对:# in local dir ~/.ssh $ ssh-keygen <== 建立密钥对 Enter file in which to save the key (~/.ssh/id_rsa): sample <== 自定义名字 Enter passphrase (empty for no passphrase): <== 按 Enter Enter same passphrase again: <== 按 Enter Your identification has been saved in sample. <== 私钥 Your public key has been saved in sample.pub. <== 公钥 The key fingerprint is: SHA256:xxxxxxxxxxxxxxx/xxxxx xxxxxx.local
-
在remote服务器上确定存在
~/.ssh
目录,如果没有,创建并改变权限:# in remote dir ~ $ mkdir .ssh $ chmod 700 ~/.ssh
-
在remote服务器上确定存在
~/.ssh/authorized_keys
文件,如果没有,创建并改变权限# in remote dir ~ $ cd .ssh # in remote dir ~/.ssh $ touch authorized_keys $ chmod 600 authorized_keys
-
把本地生成的公钥文件
~/.ssh/sample.pub
发送到remote服务器的~/.ssh
目录下:# in local dir ~/.ssh $ scp sample.pub [remote user name]@[remote address]:./.ssh/
-
在remote服务器的
~/.ssh/authorized_keys
中加入~/.ssh/sample.pub
的内容:# in remote dir ~/.ssh $ cat sample.pub >> authorized_keys
-
在本地的
~/.ssh/config
文件中加入remote服务器的配置:Host serverA user [用户名] hostname [服务器ip] port [端口号] identityfile ~/.ssh/sample
-
在本地命令行输入以下命令直接登陆:
$ ssh serverA
-
-
直接kill掉名字中包含
xxxx
字符的所有进程:ps aux | grep -i xxxx | awk '{print $2}' | xargs kill -9
-
Python config文件解析
-
wandb](https://wandb.ai): A tool for better logging
-
Optuna: Optimize Your Optimization
-
CODELF: find real-world usage variable names
-
HyperOpt: Distributed Asynchronous Hyper-parameter Optimization
-
Pytorch相关
-
Pytorch实验可复现性:
def setup_seed(seed): np.random.seed(seed) random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed_all(seed) torch.backends.cudnn.deterministic=True torch.backends.cudnn.benchmark = False
-
写作模版:[Report Template](./Report Template.doc)
-
文献管理工具:
-
Latex写作
-
数学符号
- latex数学符号
- machine learning符号写法
- 数学公式Latex自动识别Mathpix Snap
- AxMath: Interactive WYSIWYG Equation Editor
-
表格插入
- Excel2LATEX: convert excel spreadsheets to LATEX tables
- LaTeX tables
- Table Convert Online
- Tables Generator
- HTML table convert
- Small Guide to Make Nice Tables
-
-
语法相关
-
画图相关
- Python画图
- AxGlyph: Scientific Vector Graph Editor
- Diagrams(draw.io): Security-first diagramming for teams
- iconfont: 图标库
- Color Hunt: Color Palettes for Designers and Artists
-
时间序列动图的可视化https://flourish.studio/
-
English Writing
-
关于Hexo vs Jekyll:
-
用 GitHub Page + Jekyll 建立个人网站
-
Jekyll - Static Site Generator|Tutorial (强烈推荐highly recommended)
-
可能会在本地执行
exec jekyll serve
时候报错:``require': cannot load such file -- webrick (LoadError)`,可以通过执行以下来解决:If there is feedback ``require': cannot load such file -- webrick (LoadError)
when executing
exec jekyll serve`, try to use follow command to resolve this:bundle add webrick
参考reference:Load error: cannot load such file – webrick
-
github上利用jekyll搭建自己的blog的操作顺序? - 王彦宁的回答 - 知乎 https://www.zhihu.com/question/30018945/answer/50507749
-
用 GitHub Page + Hexo 建立个人网站
-
一些DIY相关blog
- mo_wang关于GitHub Page搭建blog的系列
- 【一】Ubuntu14.04+Jekyll+Github Pages搭建静态博客 : 安装方面
- 【二】jekyll 的使用 : jekyll的配置
- 【三】用Markdown写blog的常用操作 : Markdown的使用
- 【四】搭建Markdown的编辑器 (不如直接Typora)
- 【五】将博客从jekyll迁移到了hexo
- mo_wang关于GitHub Page搭建blog的系列