Shawn's Blog

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

0X00 时间都去哪儿了

好多人都会有这种情况,整整两天的周末回忆起来却不知道自己做了什么,明明也没看几部电影、没怎么打游戏,也没怎么学习,时间怎么就不见了呢?更为常见的一种是“等我有空了就搞”、“等我空了一定去一趟哪儿哪儿哪儿”、“下周六一定要去吃XXX”,然后就再也想不起来了。真正空下来的时候又觉得自己没事做,完全想不起来之前列出来比卷纸还长的todo list了。

实际上大家几乎不会真的有“无事可做”的时候,只是有空的时候想不起来之前的计划,定了计划又不定执行时间。最后到头来就落得这么一个不仅很闲又啥事都做不了的境况。比如你一定会有过上午还在说“有空了一定去一趟本地的博物馆看看”,下午的时候就趴在床上不知道要干啥的情况。这种在我们中太长见了,通常我们都是就这么趴在床上继续下去了。

以我个人来说,在主动管理自己时间的时候我一天下来有很多事要做,感觉自己很充实。那段时间里我玩游戏、看书、写代码甚至去一公里外的镇上吃一家好吃的包子都会列在我的计划中,严格按照计划行事。

后来大四实习的一年因为刚刚出来独自生活再加上刚开始工作觉的比较累,那一年基本就什么都没做。每天晚上对着电脑不知道在干吗,周末在家里也是完全懵逼的。都不说学习了,就连游戏和电影都没怎么碰过,所以将自己的时间管理起来指的当然不是说只于学习和提升自己,而是单纯的管理时间而已。把自己的时间管理起来了以后会发现自己的游戏通关更快了、看书效率更高了、电影看得更多了、好多计划过没有付诸时间的事情都从TODO中清理掉了。唯一边少的时间就是自己无聊发呆的时间,所以说来这是一门血赚的生意。换句话说周末两天趴在床上发呆玩手机是最咸鱼的,就算是起来看三部电影玩几个小时PS4都要比这发呆来的好吧。

最近这段时间又将时间管理起来了,才觉得自己的生活又充实了起来。不仅通关了几款早就想玩的游戏、看了好多部想看却没看的电影、就连好多本想看没看的书也都看完了。

阅读全文 »

好多人的VPS或是服务器就只跑了一个小服务或是小程序,虽然我们多数人的VPS性能比较差但是只跑一个小服务一个小程序未免还是有些浪费。大可将其充分利用起来,毕竟性能再差也是一个24小时不停机且带有一个独立公网IP的机器。这里我介绍一下我跑在VPS上的一些服务和使用中的一些经验和建议,希望可以给各位带来些许的帮助吧。

0X00 操作系统

通常我们自己的VPS性能都不怎么强,很多人都是买的单核512M内存的,所以Windows Server系统通常是不用想了。那么众多的Linux发行版本又该如何选择呢?其实因为我们是个人使用,不用过分考虑发行版本的区别,哪个用着习惯就用哪个。我自己的VPS用过一段时间的Fedora和Debian,都是很不错的。如果是针对Linux新手的话我还是比较建议使用Ubuntu和CentOS,因为这两个系统的用户群体很大,出现问题时候在网络上也更容易找到相关的解决方案。

还有就是图形界面,Linux作为服务器操作系统时是完全没有必要安装图形界面的。想必购买了VPS的用户应该也多少能操作一下Linux,就更没有必要浪费系统资源和时间去安装图形界面和VNC了。

0X01 机场建设

大家如果购买的是国外的VPS那么多数情况下都是为了跨过长城,不过好多人在使用的都是基于命令行的Shadowsocks服务,不仅配置起来不太直观,分享给其他人用的时候也不好管理。有一个开源项目ignite可以部署一整套的Shadowsocks管理系统。这样你的VPS就不再是飞机跑道了,而是进化成了一个国际机场 :)

这是一个Go语言实现的基于Web的Shadowsocks管理工具。多个用户使用时会创建多个Docker容器,每个连接使用独立的环境与公网端口便于管理。

配置好后可以在admin端创建邀请码,每个邀请码对应着使用时间与可用的流量。将邀请码分发给其他人后,其他人登录到你的client端便可以使用激活码注册自己的用户,并且启动一个新的Shadowsocks连接。作为管理员可以实时观察各位用户的剩余时间和剩余流量,并且可以进行延长时间和重置流量等操作。

阅读全文 »

0X00 前言

最开始使用Linux的时候一直搞不懂为什么Linux下会有这么多在命令行里操作文本的工具。一度以为这些玩意儿没啥大用,但是随着使用频率与强度的增加才发现这些东西是Linux上非常有魅力的部分。

0X01 cat

cat命令是最简单的,cat filename就是将文件内容以文本的形式输出到命令行。这个命令主要是作为后面组合技的基础,威力到后面cat的作用才能发挥出来。

0X02 head

head是查看文件的前面部分,默认情况下是前10行,可以使用-n参数指定具体的行数。如果你有一个文件巨大无比,比如说几个G,且你只关心前100行,那怎么搞呢。使用cat是不可能的了,毕竟你cat一下之后回去睡一觉屏幕都可能还没滚完,何况你还得翻回最上面查看开头的内容。

1
head filename -n 100   # 查看文件的前100行
阅读全文 »

0X00 install

安装nose:pip install nose
安装mock:pip install mock

Python3 中mock模块已成为标准库,无需单安装

在任意目录下执行nosetests看到有输出就是已经安装好了nose。进入到Python shell中执行import mock没有报错也就是mock安装好了。

0X01 用于测试的代码

这里先贴出这次被测的代码simple_math.py,是一个非常简单的数字计算类。

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env python
# coding=utf-8

class MyMath:
def my_add(self, a, b):
return a + b

def my_subtraction(self, a, b):
if a and b:
return a - b

这里的代码是有问题的,毕竟是要拿来作为单元测试的样例的嘛。

阅读全文 »

平时使用Django REST framework的时候除了常用的几个字段类型之外其实没有哪些字段是必须的了,不过了解一下这些「非必需」的字段能给日常的编程任务带来大幅度的效率提升呢。

0X00 EmailField

首先是EmailField,这个字段本质上是CharField但是单纯的添加了一个完善的校验,可以免去我们手工编写正则和对应报错信息的过程,简单地定义之后就可以使用了。

1
2
3
4
5
user_email = EmailFIeld(
min_length=5,
max_length=30,
allow_blank=False,
)

0X01 URLField

这里的URLField跟上面的EmailField类似,在CharField的本质上添加了对应的校验,使用时会校验该字段是否符合url的校验规则。

1
2
3
4
5
article_url = URLField(
min_length=10,
max_length=100,
allow_blank=False,
)
阅读全文 »
0%