Shawn's Blog

一个伪程序员的伪技术博客

本来准备总结一下Linux桌面系统使用一年以来的一些感受,以及为什么选择Linux作为桌面系统工作学习的,但是构思了半个小时也没能想到要写些什么。所以还是来推荐一下一年以来在Linux桌面平台下的软件体验和推荐吧。由于我这一年多以来一直使用的是Fedora Workstadion,所以并不能保证这些软件能在其他平台下的体验与我一致,不过一般来说都是没有问题的呢。

0X00 vim + spacevim

首先说明我不认为Vim比IDE写代码更好用,但是我仍然在使用vim。一个原因是觉得使用盗版IDE有些不太道德,另一个也是想要提升一下自己的代码水平,毕竟vim给出的提示会更少一些。IDE用户可以在IDE上安装vim的操作插件,毕竟vim的操作方式还是能很大程度上提升效率的。

SpaceVim 呢是vim的一个插件打包配置集成之后的一个版本。由于它集成了大量精选插件和配置,所以用起来很舒服,就把他当成一个高级的文本编辑器来用就好的。spacevim还有官方的中文文档可以查阅,虽然学习成本相对高一些,但是带来效率和爽快感的提升可不是一点点的。

0X01 ulaunch

ulaunch是一个快速启动器,按下快捷键后屏幕中间会出现一个搜索框,可以快捷打开软件和文件。配合一些插件可以实现在搜索框中翻译等工作,而且软件和插件都是Python写的可以轻松制作自己的插件。

阅读全文 »

0X00 Sentry是什么

Sentry是一个统一收集整理程序异常错误的服务。如果你有一个程序在跑,并且配置了日志,那么可以轻松的找到程序出错的地方;甚至可以在报错后发邮件通知自己以便抓紧处理。但是如果你的团队有10个项目和50个人,并且这50个人并不是每人只负责一个项目,此时此刻该怎么办呢?难道为每个项目都配置很多人,并且在人员变动和项目变动的时候都去再修改吗?这样就未免有点傻了,Sentry就是用来做这个的。

你可以在Sentry上为每个项目创建一个Project用于收集项目的错误,再为每位成员创建用户,由用户去关注项目,就可以实现上述复杂的功能了。

0X01 如何部署

为了流程简洁,默认安装了dockerdocker-compose

1
2
3
4
5
6
7
8
9
10
# 将一个配置好的使用docker-compose部署Sentry给clone下来
git clone https://github.com/getsentry/onpremise.git

cd onpremise

# 创建所需的目录
mkdir -p data/{sentry,postgres}

# 生成一个secret-key
docker-compose run --rm web config generate-secret-key
阅读全文 »

0X00 什么是“事务”

“事务”简单的说就是把一些数据库操作打包起来,要么就全部执行要么就全部不执行。

假设有一个操作是新建一个学生信息,有多张表分别记录了“基本信息、家庭信息、学校信息等“,那么就需要分成多步来新增这个学生的信息。但是如果在添加了”基本信息和家庭信息“两张表的内容后在添加”学校信息“时出现了错误那么数据库中就会存在该学生部分信息,从而使得数据库中的数据出现错误。

如果将这些操作放到一个”事务“中执行就可以在中途出现错误的时候所有数据库操作都不生效,当顺利执行完成之后使所有数据库操作都生效。总的来说就是”事务中出现错误则所有数据库操作都不生效,否则所有数据库操作均生效“。

具体可参见下面几个链接
Database transaction - Wikipedia
MySQL Document

阅读全文 »

0X00 Django Model中的空

Django的Model常见两个与空有关的参数:nullblank。其中null是数据库层面的是否允许为Null,而blank则将空处理为空值。比如一个CharFieldblank=True,那么这个字段在没有赋值的情况下入库,这个字段就会是空字符串而不是Null。

阅读全文 »

0X00 Model中要注意的几点

verbose_name 和 help_text 属性

Model中通常第一个参数指定的是verbose_name,还要手动指定一个help_text属性。其中verbose_name属性是用来我们自己读的,而help_text是用于提供字段描述类的功能,比如在DJango Admin中verbose_name会变成字段的中文名,而help_text则会变成改字段的描述。

阅读全文 »
0%