VIM配置推荐-K-VIM
归类到工具吧,算是可以提升效率的东西。自己也折腾过,VIM配置插件还是挺麻烦的。直到看到这个,一键配置,这个项目再github居然有3K的star。
https://github.com/wklken/k-vim
安装方法不赘述,帮助文档有。
用来写Python和其它脚步,做些小修改,算是一个好的补充吧。毕竟大部分时候还是专业的IDE比较方便。
归类到工具吧,算是可以提升效率的东西。自己也折腾过,VIM配置插件还是挺麻烦的。直到看到这个,一键配置,这个项目再github居然有3K的star。
https://github.com/wklken/k-vim
安装方法不赘述,帮助文档有。
用来写Python和其它脚步,做些小修改,算是一个好的补充吧。毕竟大部分时候还是专业的IDE比较方便。
本机装了MariaDB,很久不用,把密码给忘记了。
然后刚刚把密码恢复了下,记录一份这里方便以后索引。
# systemctl stop mysql 我是Ubuntu 这里服务名是这个
# mysqld_safe --skip-grant-tables &
# mysql -uroot
修改密码的SQL
1 | > use mysql; |
/etc/init.d/mysql stop
systemctl restart mysqldone.
全部流程记录
1 | fate phan # systemctl stop mysql |
写了一个脚本用fabric发布和运行java包。需要用到nohup,或者screen -d -m命令。
我习惯了nohup,但是执行完毕,没有出错,但是程序也压根没有执行。
最后才找到资料说是fabric执行nohup命令的时候,过早关闭session,导致出问题。
官方推荐的做法是在命令后面增加一点延迟,比如&& sheep 1或者用screen命令。
1 | #!/usr/bin/env python |
输出:
1 | [1, 0, 5, 6, 6, 4, 8, 7, 3, 1, 2, 10, 9, 5, 9, 3, 10, 9, 5, 4] |
1 | #!/usr/bin/env python |
输出:
1 | [61, -31, 2, -45, -1, 19, -41, -8, -17, 48] |
公司有块业务是靠socket提供端口供给业务查询的。
之前每次测试socket发送数据都略麻烦,所以自己用python搞了一次。
根据业务之前的逻辑,检测字段包含EOF结束读取。
1 | import socket |
Python实现求第N位斐波那契数。迭代用来队列来保存,用其它也是可以的。
1 | #!/bin/env python |
结果:
1 | 2017-05-19 18:00:52.194334 |
递归效率还是比较底下,但是语法简明。
这前天walle部署出现了一些莫名其妙的问题。检测配置是通过的,但是部署的时候遇到前后置任务的时候总是报错。
开始以为是数据库问题,后来排查了,又以为是php执行函数exec被禁用的问题。但是并不是。
真是百思不得骑姐啊。
回想最近的改动,只有我安装过一个运维工具的agent,但是已经卸载了。
料想应该是修改了哪里的配置。
最后才定位到 /etc/profile
多了一条 #ulimit -n 204800 修改了文件符打开数量。最后我把它注释掉就好了。
至于为什么这个会影响到walle,还没深究,等找到原因再来补充。
今天给一台测试机配个环境,顺道记录下,一直觉得webtatic比官方源好用。但是老是容易忘记名字,这次就贴这里了。
mariadb
yum groupinstall -y mariadb mairadb-client
php5.6
Repo 源
1 | CentOS 5.X |
yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64
php-fpm
yum install php56w-fpm
nginx 1.10
yum install -y nginx1w.x86_64
nginx
/etc/nginx/nginx.conf
1 | server字段里面,要配置root项,指向你网站的根目录。 |
php-fpm
其实user和group用默认的也是没问题的。但是为了以后方便自定义点,我用了一个叫www的账户
1 | # groupadd www-data |
/etc/php-fpm.d/www.conf
1 | user=www |
为了更好的性能,建议对nginx.conf 配置一下worker的数量,php-fpm 配置一下池,常驻进程数量。
mysql 先运行mysql_secure_installation这个脚本来改一下root密码,关闭远程连接和删除测试数据库之类的东西。
1 | # systemctl start php-fpm mariadb nginx |
Python 的异常接管和很多程序的都差不多,尤其是Pascal。
1 | ImportError:an import fails 导入失败,一般导入了无效的模块 |
异常的接管
1 | try: |
比如除以0的时候都会抛出一个ZeroDivisionError异常。
而接管异常处理示例
1 | try: |
又或者留空,默认接管所有异常。
1 | try: |
又或者使用多个except接管多个不同类型的异常。
1 | try: |
以上只是列举了异常类型的小部分
如果想查看更多异常类型,可以导入exceptions模块,用dir查看。如下:
1 | In [1]: import exceptions |
这个和许多语言都有点类似。一般在发生异常的时候,执行就被中断了。而有些被打开的数据有可能会被丢失。
尤其是用open打开文件的时候,很有可能导致内容丢失。所以为了让代码在出现异常的时候,一样能执行特定的代码。比如释放对象,安全关闭文件等。就有了 try ... finally语句。
1 | try: |
比如常见安全关闭文件
1 | try: |
不过对于安全打开关闭文件,一般更推荐的做法是用with
1 | with open("test.txt","wb") as f: |
raise 有时候在处理潜在有问题的代码的时候,你希望主动引出一个异常,可以用raise语句。
比如引出一个 ValueError
raise ValueError
raise ValueError('值错误')
assert断言使用,可能都是用于自己调试程序的时候才会用到。
assert 1!=1 当后面表达式不为True的时候,就会引发AssertionError错误。