在Matplotlib中显示中文大多数人会推荐用SimHei,但是相应的英文奇丑无比。
经过试验,发现华文中宋是一个很好的字体。中文是宋体,英文基本是Times风格。
We've havered enough. Let's get tae work!
Python有两大类并行方式:多线程与多进程。由于GIL的存在,这两种方式有着截然不同的特点:
multiprocessing
包中的Pool
类是实现多进程的常用工具。从直觉上看,以下代码中,由于每个进程都具有独立的内存,对i
进行修改不会有任何效果,所有打印出来的i
应该都是1
。1
2
3
4
5
6
7
8
9
10
11
12
13import os
from multiprocessing import Pool
i = 0
def pp(job_id):
global i
i = i + 1
print(f"[{job_id:02}]: {i}, from {os.getpid()}")
if __name__ == "__main__":
with Pool(4) as p:
p.map(pp, range(9))
然而,实际运行这段代码,i
可以一直打印到10
!这是什么原因呢?
最近因为约稿要投一个很偏的期刊,参考文献格式奇葩,现成的\(\LaTeX\)参考文献格式不能满足要求,需要自己手动配置。一些博客中已经介绍了使用makebst
工具交互式生成相应bst文件的做法。好处是相对学习成本比较小,坏处就是被人牵着走还不一定能完成需求。
本文介绍的,是掌握BibTeX语法后,直接修改bst文件来设置\(\LaTeX\)参考文献格式的方法。
百度文库中以垃圾居多,然而有时却特别适合完成一些垃圾任务。许多百度文库文档是所谓“VIP”文档,看是可以看,复制是不允许的。
不过通过浏览器控制台查看HTML代码可以发现,百度文库没有使用任何特殊的控件来渲染文档,每一行字都写在HTML里,这就意味着通过控制台可以快速将文档中的文字复制出来。
女朋友要毕业了,写毕业论文要引很多文献,有些格式调起来很繁琐。她写论文+管理文献用的是Word+EndNote,比起纯手工已经方便了很多,但仍然有些让人头疼的问题,需要耗费大量人力。如果能批量修改EndNote文献库中的内容,则可以使工作量大大降低。
在Git中,原则上使用merge或者rebase都可以解决分支冲突的问题,比如:1
2
3 D (dev)
/
A---B---C (master)
当master和dev存在冲突时,在dev上进行git merge master
或者git rebase master
都可以解决冲突。这两种方式的作用机制不同,结果也不一样。
很久之前就在关注Julia的发展,待到1.0版本决定入坑,现在终于有时间刷一刷文档。
对于编程语言来说,后发者总是试图对老一辈的设计有全面深刻的突破,但这些突破有时不得要领,且老一辈依靠沉淀下来的代码也不会被轻易击倒。
读Julia的文档确实让人有很多惊喜。即使不用Julia,通过读文档了解现在正在用的编程语言(其实主要是Python)的不足也可以加深对编程语言的理解。
许多大型Git项目中不允许直接push到master上。但是当需要给新人介绍为什么不能直接push到master上时,一个Git老手也不一定能简明扼要地解释清楚。想要让新人放弃直截了当地git push origin master
,采取建立分支-commit-push-PR-merge的弯弯绕方式,需要有让人信服的理由,特别是在新人对Pull Request(PR)还没有任何概念的时候。本文试图以比较好理解的方式,帮助初学Git的人了解不能直接push到master分支的原因。
原则上git的force push是不能push到公共repo的,但实际难免会出现由force push引起的冲突。昨天我在A机器上push到了develop
分支之后,在B机器上做了些小修改然后force-push,之后又回到A机器上工作,commit之后push发现冲突。1
2
3 C---D (local `develop`, HEAD)
/
A---B---C' (remote `develop`)
现在怎样能修复这一冲突,使最新的commit(D
)能接在force push后的C'
后呢?