2017年6月7日星期三

python 项目小谈





<br /> Made with Remarkable!<br />




python项目小谈

项目结构

.
├── docs
│   ├── conf.py
│   ├── index.rst
│   └── quickstart.rst
├── foobar
│   ├── cli.py
│   ├── __init__.py
│   ├── storage.py
│   └── tests
│       ├── __init__.py
│       ├── test_cli.py
│       └── test_storage.py
├── README.rst
├── requirements.txt
├── setup.py
└── test_requirements.txt
另外,那些额外的数据如图片,shell脚本放在任何合适的地方都可以。

还有常见的顶层目录如:

etc用来放配置文件的样例
tools用来放与工具有关的shell脚本
bin用来放将被setup.py安装的二进制脚本
data用来存放其他类型的文件,如媒体文件。



常见版本号

PEP440定义:


N[.N]+[{a|b|c|rc}N][.postN][.devN]

其中


  • rc表示候选版本

  • .postN表示后续版本,常用来解决细小问题。

  • .devN表示开发版本。
可以使用pbr,基于项目的Git版本自动生成版本号。

编码风格

Python的常见编码风格这里不再赘述。可以使用PEP8进行检测。后期可以考虑将其集成到测试中。


可以使用

pip install hacking



pip install flake8

安装测试工具。

copyright@陈默






2017年6月3日星期六

服从与取悦于人的欲望

    在学校碰到了两个美国留学生。指完路给他们留下自己的电话号码后,心里还是有一点点期待的。大概是对未知文化的期待。
    于是昨天下午他们约我打篮球的时候,我毫不犹豫的告诉他们,我可以带他们逛逛南京。因为打篮球的时候肯定没有很多机会说话,而我对真实的美国大学生眼中的美国十分好奇。
    来南京肯定要来夫子庙。在买门票的时候,我把他们两个人的没有头像的学生卡递给了买票的阿姨,平日里肯定卡着票说学生卡不行,必须要学生证的阿姨,居然什么都没说,就给开了学生票。
    同样的情况,还发生了三次,我也顺带“享受”着“假洋鬼子”般的待遇,出入都见得国人十分礼貌。
    一路上走过三四个地方,我们看到星巴克和肯德基开满了旅游景区和市中心的商场。留学生告诉我,
    于是在“鸡鸣汤包”吃饭的时候,其中一个留学生告诉我,他觉得很奇怪,为什么进进出出的人都盯着他看。他说,在学校,很多女孩都盯着他看,这让他感觉自己像个明星。我只好说,其实来这里旅游的很多人都是大爷大妈,可能很少见到外国人,一时间比较新奇。我反问他,难道在美国看到中国人,不也是这样吗?他解释说在美国其实有很多中国人,并且美国有很多外来人种,所以这一点不显得奇怪在路上看到一个和自己长相迥异的人。
    归程,我们乘坐地铁一路南下。上了地铁后恰好有一个留学生没有座位。我看到有人坐在两个位子的中间,占了两个位子,留下半个位子的空隙——我告诉他可以坐在那里。也许是我们之间的英语对话引起了大家的注意——占着两个位子的人,看清发生了什么后,忙不迭地站起来,要把自己的位子让给留学生。
    一瞬间我的脸涨得通红。
    我建议他,我急切地大声命令他,我甚至有点恼羞成怒地告诉他,让他回到自己的座位上,不需要把位子让出来。然而他弯着腰抱紧包,露出有点谦卑的笑容,让我一瞬间有点无地自容,又有点手足无措。最后那个留学生在他的邀请下坐了上去,这让我有了“汉奸”的感觉。
    于是我告诉留学生,我下个月很忙,可能没有空陪他们游玩南京。
    我只是想对自己究竟为何如此热情进行反省。我不知道是我想要取悦于他们的欲望,还是纯粹的只是想要给他们展现一个更好的中国。因为如果这是一个来旅行的中国人,我应该不会如此热情。我想知道这是否是我人格上的缺点。
    然而这是人类身上不可避免的存在的一种劣根性—或者说,为了生存而适应的一种特质。只有服从、取悦强者,才能更好得生存。在原始年代,未知则引来恐惧。为了抗拒、克服这种恐惧,原始动物取悦强者,古代的人进行祭祀和祈祷。现在的外国人对于我们来说,也是意味着不熟悉,意味着未知。而我们倾向于取悦那些好看的人,则是因为越好看的人,生理学上来说更加强大更加聪明。
    如果要完全克服这种心理,我觉得是不可能的。所需要的是我们正确对待——理性的人理性对待,热情的人热情对待。

2017年4月27日星期四

make and Makefile





<br /> make & Makefile!<br />




make及makefile



make命令简介:

要使用make,首先需要写一个makefile文件. 描述了软件包中各文件的关系,提供更新每个文件的命令。

如:

gcc module1.o module2.o -o exel

可以这样写Makefile文件:

exel:module1.o module2.o
    gcc module1.o module2.o -o exel

复杂化为:

module1.0:module1.c module1.h
    gcc -c moduel1.c

Makefile文件的格式如下:

目标:依赖项列表
    【命令】

#表示注释,\作为后接换行符来换行


命令行首需要空格,为一个制表位。

Makefile文件推荐首字母大写,安放在源程序相同的目录下。

shell使用make命令时,默认对Makefile第一行目标进行维护。层层递进。

make程序也可以指定要维护的目标:

make module1.o

也可以制定自己取名字的Makefile:

make -f filename









Makefile中的环境变量:

用条件语句把前面的Makefile重写一遍:

OBJS=module1.o module2.o
C=-c
exel:$(OBJS)
    gcc $(OBJS) -o exel
module1.o:module1.c module1.h
    gcc C mdoule1.c

某些默认变量具有特殊含义。参看

博客

.







伪目标

Makefile文件中存在这种情况:有的目标存在只是为了形成一条规则。

如:

all:exel1 exel2 exel3

作用:

可以维护全部exel

如:

clean:rm -f exe*

作用:

中间文件清理







条件语句

主要三个关键字:ifeq, else, endif

ifeq( $(VAR), 1)
    gcc -o exe1 module
else
    gcc -o exe2 module
endif







调试make

通过-d选项打印调试信息。







进阶


Makefile隐含规则的书写






2017年3月26日星期日

djangosetting


Untitled Document.md

Django部署

本次Django部署,需求为python3.5+django1.10+mysql5.7+uwsgi+nginx

首先要说明的是,平时我采用的是Python+Apache,数据库用官方自带的SQLite。这种部署方式最为简洁,只需要在服务器端部署Apache虚拟机,将接口转到相关域名。具体操作可按照自强学堂的部署来。新手也只需要一两个小时就能完成配置,并且官方推荐数据库实现自动管理。

但是这次需求改了。而且Nginx确实是一种主流的配置方法。

以下为配置流程:

首先安装python3.5发现失败。发现是系统环境下只有3.4安装包。于是更新系统到Ubuntu16.04.

于是安装了Python3.5,pip3.5,然后用pip安装了虚拟环境virtualenv和virtualenvwrapper。创建了新的一个环境。

接着按照Google的推荐,结合了Linux15.04上的部署Linux14.04上的部署,开始实现MySQL,Nginx。

然而实现过程中发现较多的问题。

具体包括:


  • 问题:

      virtualenvwrapper.sh:Therewas a problem running the initialization hooks.
    
      IfPythoncouldnotimportthe module virtualenvwrapper.hook_loader, check that virtualenvwrapper has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/bin/pythonandthat PATHis set properly.
    

  • 解决:

    在~/.bashrc文件的最下方加入下面语句:

     if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
    
         export WORKON_HOME=$HOME/.virtualenvs
    
         export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    
         source /usr/local/bin/virtualenvwrapper.sh
    
     fi
    

  • 问题:

      mysql access denied for user'root'@'localhost'
    

  • 解决:

      没有使用密码。MySQL的使用为:mysql -u root -p ,然后输入password
    

  • 问题:

      *1 directory index of "/home/ubuntu/taiwanapp/" is forbidden,
    

  • 解决:

      当前文件夹不允许访问。所以可以在文件夹处放置一个index文件(修改文件夹的权限没有必要)
    

  • 问题:

      2017/03/26 15:27:26 [alert] 3730#3730: *37 open socket #17 left in connection 7
      2017/03/26 15:27:26 [alert] 3730#3730: *20 open socket #11 left in connection 8
      2017/03/26 15:27:26 [alert] 3730#3730: aborting
    

  • 解决:

      原因未明。Google了一下发现条目较少,且与我的现象不是很吻合。后期现象偶尔复现。但是认为对于实现来说不是很重要。
    

  • 问题:

      2017/03/26 15:45:45 [warn] 5373#5373: conflicting server name "127.0.0.1" on 0.0.0.0:8100, ignored
    

  • 解决:

      端口被重复指定。换了一个端口。(可以解除端口占用)
    

  • 问题:

      /var/log/nginx/access.log 502 584 
    

  • 解决:

    未解决。参考博客

最后放出有意义的参考文献:

Setting up Django and your web server with uWSGI and nginx

Ubuntu下MySQL的“ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)”

Getting “Error loading MySQLdb module: No module named MySQLdb” - have tried previously posted solutions

按照这个流程能配置到只出现一个502错误

Nginx的配置


2017年3月13日星期一

万物简史

初次见到万物简史的时候,我还不知道这本书会对我有多大的影响。我买了以后将它搁在书柜的第二层。抬头能看到,但是一直没有看。宿舍本来就小,这么厚厚的一本书着实有些占位置。所以有时会觉得不该一时冲动,看到封面很好看就买下了。
后来去了上海自然博物馆,回来后兴之所至,就打开了这本号称“为万物写纪,为宇宙立传”的大部头——我开始后悔没有早点看,并且产生了强烈的冲动,想要再去一次自然博物馆。
引言写的就很精炼生动,好像看了引言就不必再看全书。然而我一口气看完全书,竟是觉得这部“大部头”实在有些薄了。作者也觉得,有很多故事没来得及讲,有很多科学家没来得及介绍。
全书共六部,涵盖天文地理,星辰虫豸。虽有科学家的逻辑严谨,但是看起来又一点不累,是不是还插上几句诙谐的设想。实在是大大得满足了我有些挑剔的胃口。
第一章:寥廓的空宇。
几百亿年前,宇宙里还是只有一个奇点。膨胀理论指出,在一百万亿亿亿分之一秒里,宇宙从一个能拿在手里那么大的东西变成了至少十亿亿亿倍大——听起来挺吓人的。事实上,一分钟之内,宇宙的直径就已经有了1600万亿公里,并且产生了100亿摄氏度的高温。如此大,如此小,如此宽广,如此高温——如此强烈的冲突,多么奇妙的感觉。然后我们来到了太阳系。这个人类生存的环境,看似触手可及的宇宙。人类在其中不断探索,就能有一种更加走近宇宙的错觉。然而宇宙史表明,人类的认识走过了一段荆棘坎坷的道路,洒满了探索者的热血。从地心说到日心说,就让我们失去了伟大的天文学家哥白尼。冥王星的发现捧起了两个天文学家洛威尔和汤博,但是那么多年后,它又被废除了九大行星之一的身份,孤独地在宇宙中游荡。它那么小,那么暗,那么远,那么孤孤单单却又确确实实地被太阳的引力所束缚,成为我们的邻居,成为太阳系的一员。人类一直孜孜不倦地探索未知,期望某一天能找到奇奇怪怪的邻居,但是又非常害怕被更高等级的物种奴役——很多科幻小说和电影已经将这种矛盾的心态表现地淋漓尽致。最后我们将目光放到埃文斯牧师的宇宙里,去寻找那些叫超新星的东西,并且期待着它们变成黑洞吞噬光线。
第二部:地球的大小。
胡可哈雷牛顿诺伍德卡文迪许米歇尔,那么多耳熟能详的人,就这样出现在探索地球的道路上。小到用显微镜观察细胞,大到用数学原理解释行星的椭圆曲线。其实这与其说是一部科学史书,更可以说是一部科学家传记——当然那些生动的轶事也是传记不可缺少的一部分。那么多奇奇怪怪的科学家,有不同的秉性,又有着那么多相似的特质,好像一个展览:当时西方科学界错综复杂的人际关系。我们还可以透过这本书,了解到西方当时的社会环境。
测量完了地球的大小,“无聊”的科学家又开始对地球的年龄有了极大的兴趣。于是在当时,“头戴高顶大礼帽,穿着黑色的套装”,“有学问的人都会下乡去干一点他们所谓的敲石头的活儿”。传奇人物如默奇森,人生只能用奇幻来形容。再就是詹姆斯帕金森,灰心丧气之后专心搞学术,竟然也成了地质学会的创始人之一,还在一次抽奖中摸中了一个自然博物馆。然后就是莱尔,相信搞地质的都将他的地质学原理奉为圭臬。
接下来的任务就是寻找人类的起源了。我们都知道的达尔文站了出来,于是古生物学开始发光发热。这其中涉及的纷争,不足一道。
第三卷:一个新时代的黎明
我们伟大的爱因斯坦创立了他的世界观,并且强迫我们接受,虽然这个理论到现在为止被认为最成熟的。我读高中时幸得金彪老师讲解,才能略懂相对论——也不过是能做几个题罢了。后来有人发现,这一切并不适用于微观世界——就是从卢瑟福发现原子核开始的那个。到了现在,科学家的认识已经到了夸克这个层级。不得不说,革命尚未成功,同志仍需努力。
后面三章分别是:处境危险的行星,生命本身,通向我们的路。一路展望,我们对这个世界了解越多,越能感受到其中的乐趣。
如书中所引,“上帝知道这些事实,但是他不知道这样描述的事实”。本篇阅读笔记也仅作为兴趣之笔。如果哪天想再看一看了,实实在在的需要重新捧起书,而不得看着这草稿般凌乱的简写以为自己又读了一遍。也有一个原因是全书的语言确实幽默,但体系严谨。天马行空之际,还能对问题进行深刻的思考和隐晦的嘲讽。
实不敢私藏,与大家共享。

Intel Intrinsics Guide

Intel Intrinsics Guide

这周开始学习Intel指令集
如Intel官方网站所写,英特尔内部函数指令是用来操纵intel相关设备的。
用这种c语言风格的函数来进行操作,本身就比较简单易懂,而且更加易于调试,同时也易于理解。
一点点开始学习:
主要包括:

MMX

SSE

SSE2

......
对其中一个函数进行示范:
__m128i _mm_abs_epi16 (__m128i a)
Synopsis
__m128i _mm_abs_epi16 (__m128i a)
#include “tmmintrin.h”
Instruction: pabsw xmm, xmm
CPUID Flags: SSSE3
Description
Compute the absolute value of packed 16-bit integers in a, and store the unsigned results in dst.
Operation
FOR j := 0 to 7
    i := j*16
    dst[i+15:i] := ABS(a[i+15:i])
ENDFOR
SSE3指令集|查问题所引:pabsw表示取两个绝对值进行操作。
如文中所说:pabsw xmm, xmm

CPUID Flags 应该是指函数所在的指令集及相应的适用CPU

CopyRight@Cheng 2017-3-12 15:26:31

markdown quick search

Markdown 快速索引

#表示标题语法,有多少个#就表明标题多少级。1级最大,6级最小。
同时,HTML语法规则也可以直接引用而无需区别是否符合Markdown语法。因为Markdown兼容HTML。
例:&copy可以用来表示 &copy;
用>表示类似email 的段落区块。
列表排序:
无序列表用

  • *

  • +

  • -
这三种符号表示
有序列表用:一个数字接着一个英文点。如:

  1. apple

  2. banana

  3. cherry

  4. Date
代码区块:
这是一个代码区块。区分代码区块需要换行。然后加上四个空格或一个制表符。

代码区块里所有的制表符都会被认为四个空格,而不会继续增加一个代码区块。
分割线:

你也可以- - -或***来建立分割线,三个标识符之间有空格没有关系,但是那一行不能有文字。如:

用了- - -作为分割线,会自动格式为标题大小。
链接:
常用行内式链接:
如访问我的网站,则把我的网站打上[]后可以直接在后面加(),内部写入URL。
或者用参考式链接,可进阶为隐式链接标记功能。
强调:
** 内部的文字被强调**(__同)
*内部的文字被斜写*(_同)
代码小段:
use the function() as function reference
插入图片:同插入链接,在最前面加一个!如:
常用Linux工具
referenceMarkDown中文网
CopyRight @ChenMo

2017年3月5日星期日

说偏见

其实笔者人生阅历尚浅,不敢轻言了解人性。今日就当前社会主流的几个思想说说个人的看法。
首先是一个甚嚣尘上的说法:女性需要独立。
这话本没有错,因为就算我们改了主语,仍然是具有普世价值的。而至于由此衍生的一些说法,实在不敢苟同。
有些人将女性独立解释为交往中感情只得八分真,不可全抛一片心。乍听之,似有种“过刚易折”的哲学思想在里头。那些苦口婆心劝诫女性婚后不可将全部希望压在丈夫身上,要有独立的经济来源,实在不能说是不殚精竭虑苦心孤诣。然而他们都似早已高瞻远瞩,看到了每个男人的出轨,每个丈夫的不称职,每份婚姻的不和谐。然而他们似乎看不到一个真正独立成熟的个人的素质衡量。他们认为女性没有那么容易从挫折中起来,所以应该一心二用早做准备;他们认为女性失去了工作就失去了所有将自己变得更好的途径,社交是唯一能够升华女性的方法;他们认为一个女性应该保持一定的“价值”,才能在接下来的“婚姻市场”上有选择的权力和余地,而这“价值”就是所谓的健身时尚化妆和一些鸡汤文。
我想说,以上的观点我都不认同。虽然他们说的确实很现实。
感情一事,在于真挚。古人所谓“相敬如宾“,实在算不上什么好的典范。年轻人的两颗火热的心,就该火热地燃烧。如果因为怕受伤害而畏葸不前,或者想等着碰到对的人火花四溅,说上一句终于等来你。其实这困境就像苏格拉底的果林。你没法知道这个人是不是要陪你余生,但你要知道,眼下他就是你看到最大的那个果子。就像薛定谔的猫,打开未来的箱子之前,它既是美好的,也是悲伤的,这不是一个事实,而是两个并存的状态。如果没法做出最好的选择,那么认真去爱一定是一个不会后悔的决定。不要去想着退路,不要把鸡蛋放在别的篮子。全部的忠诚和全部的付出,往往能够增大你获得幸福的可能。另,个人愚见,我们从小收获了各种不求回报的爱,有时候付出爱,也是一种快乐。爱一个人是想让对方快乐,但也是想让自己快乐。归根结底,还是想要自己快乐。如果能从思想上塑造出奉献是快乐的观念,那么人生会有趣很多。
女性作为独立的个人,不应该在表述上和男性有任何差别。现在女权主义声势渐长,号召要为女性获取该有的平等公平的权利。出发点上是好的,我们也不去评说不可避免的老鼠屎譬如女权癌。但是这个思想的提出本身便意味着将女性放在了弱势地位上,并且提倡者清楚地认识到了这一点。事实上,人权斗士应将目光放在所有的弱势群体上,而不是单独将女性这一角色符号化。如果能够正视女性作为独立的个人,那么应该从人的角度出发,不偏不倚地看待。自然界的选择,优胜劣汰。人类发展至今,女性不可能只是单纯作为一个具有作用的种类而存在。在他们没有看到的地方,其实女性是生存下来的强者。君不见,“肯爱千金轻一笑”,其实在良好的男女关系上,女性是占据主导地位的。不管什么性别,不管什么年龄,没有绝对的弱势群体一说。首先要做的就是摆脱“弱势群体”的定位。
最后,虽然我们是共产主义社会,但是认可的是市场经济。婚姻也难逃厄运,沦为了“婚姻市场”。目的不纯粹,那么结果也难预料。人学习的意义不是为了显得有价值,而是确实有价值。所谓“书是给你自己读的”,那么也可以说“书不是给别人读的”。选择自己喜欢的事情做才有意义,才不枉费人生短短数十载。而自信的人,可以让别人也相信他具有价值。
以上驳斥一些说法,其实到不仅仅在于女性。换个主角,男性也是如此。本来人就该平等。
当然,社会如此,你又能说这是谁的过?

2017年3月1日星期三

世界音乐鉴赏之亚洲音乐——日本篇

音乐鉴赏笔记整理

  1. 对日本传统音乐的了解。    
  2. 首先可以知道当前运用全面科学的方法对日本音阶进行划分,主要是两类:“田舍节”和“都节”。“田舍节”指农村民歌的音阶,“都节”指城市歌曲的音阶。 作为日本民谣的代表作《樱花》,就是采用都节音阶,即dol,mi,fa,la,si五音。具体详见国际上对各种调式的分类。
  3. 日本筝。

  4. 日本筝是一种常见的乐器。日本筝,日语写为“箏”,偶尔写作“琴”(但是“琴”本是另外的乐器,指“和琴”),口语经常称为“こと”,是日本传统音乐中一项重要的乐器,一般认为源自于中国的古筝。日本筝的长度大约180 cm,有十三根弦,弦由十三个可移动的琴柱架著,演奏者可根据需要移动琴柱的位置来调音。演奏时以拇指、食指、中指戴上拨子拨动琴弦来演奏。
    著名的代表作有宫城道雄《春之海》。这也是日本邦乐的代表作之一。宫城道雄是一位具有历史意义的,伟大的,天才式的音乐家。他极大地扩展了日本筝及其艺术表现形式。
    参考阅读:《中国筝和日本筝》
  5. 尺八。

  6. 尺八对于日本的武士文化意义重大。早年间尺八是由虚无僧在民间吹奏所用,因为一部分虚无僧“多为浪人勇士”,尺八也就相应地带入了武士文化中。(另说德川幕府时代,武士也使用尺八,因武士势大,所以日本尺八最终不同于源头——宋尺八)这也是尺八禅宗基础的由来。尺八的吹奏也是一个“吹禅”的过程,是希望由此达到一种悟的境界。
    尺八是一种竖吹的乐器,长约一尺八寸,由此得名。与中国的萧不同的是,日本现代的尺八由竹子根端做成,越老越好。据传有二战时的老房子,多为竹子制成,现存的因年代久远,对于尺八艺术家来说价逾千金。
    其音色喑哑,也可悠远,进而随气息的推进而更加明亮。总的来说,尺八的音域宽广,音色变幻,表现力及其丰富。尺八的吹奏极为困难,有些练习者需要一年的时间才能将尺八吹响。所以作为日本传统音乐文化一个重要的代表,传承下去需要更多的努力。好在近年随着邦乐重新回到人们的视野,为日本年轻一代所喜爱,相信尺八也能焕发新的光彩。
    著名的代表作有《仙鹤筑巢》,这曲尺八独奏是著名的歌舞剧《家臣的宝藏》的插曲,用它来伴奏一对将要分别的恋人看到的仙鹤筑巢的场景,有十分深刻的寓意。曲中用颤音描写仙鹤翅膀拍打声,声声入耳。
    参考阅读:《尺八和萧》 《尺八》豆瓣小组
  7. 三味线。

  8. 三味线也是日本一种古老的民间乐器。乐器由四角状的扁平木质板面上蒙上猫皮制成,琴弦从头部一直延伸到尾部。通常会用银杏形的来弹奏。起源于琉球岛,也即今冲绳岛。相传是由中国的三弦转化而来,结合了本土音乐的影响。基本姿势是将琴身靠在右大腿上,左手根据按弦,右手用拨子拨击发声。传统上,演奏者一般“正座”,即臀部坐在后脚跟上的跪坐姿势。现在也经常直接坐在普通椅子上。
    三味线和琴并称日本乐器之王, 可见三味线对于日本意义之重大。一般街头艺人,民间传唱,都喜欢用三味线进行表演。
    三味线也随着时代的脚步前进,现在进化出多种形式。如津轻三味线,被称作“日本式爵士乐”,乃是采用最大号的拨子,最大号的弦和杆,用大的音量表达音质强劲魄力十足的曲子。代表演奏家有上妻宏光和吉田兄弟。其中有吉田兄弟和欧美的合作曲目《change》
    著名人物:元千岁

  9. 相关:奄美民谣岛呗
    扩展阅读:《中国三弦和日本三味线的渊源考证》
扩展阅读:

2017年2月15日星期三

Actually it is much more complex and reliable than the website I build myself.
But Welcome To My World Anyway!