Barbossa is Hungry

Barbossa is Hungry

咱期盼了一整个大学的《加勒比海盗 5》终终终于上映惹! 加勒比海盗是咱从小学时候就开始追起来的一部系列电影,也应该就是这一部电影的各种交响乐曲拨开了咱对交响乐的喜爱。在当时很多身边的同学都是喜欢流行音乐,但是咱却在听古典、交响…… 这一部加勒比海盗的和上一部隔了将近 6 年吧,咱也从高中僧越级到了一位初级社畜,很想和小学时候一起入坑的同学一起看,但是小学毕业后大家也几乎已经不联系很久惹 _(:ェ 」∠)_,现在好像连个 QQ 都要找不到了(你就是懒,现在知道不写备注的坏处了?)。 这次是和公司里的同事们一起看。因为最近一段时间咱白天没呆在公司里,所以 7 点半的电影咱得坐地铁赶回去。从中山公园到中原城市广场的路线有很多,但是千万不要坐 3 号线转 8 号线,这是最崎岖的一条路线。

  • realityone
    realityone
3 min read
DotA

2017 DAC: Invictus Gaming!

总算在现场感受了一次中国队拿冠军的快感! 话说赞咱玩了这么些年 DotA2 还一直没有去比赛现场感受过,不过其实好想咱也没有去过演唱会什么的,前年 LoveLive! 演唱会居然因为那天感冒了然后就在公司呆了一天,到晚上到时候才发现今天居然有 μ's 的演唱会! 这次 DAC 虽然咱很早就知道在上海了,但是之前一看比赛日期,发现两天决赛居然在 4 月 3 号和 4 号,本来还以为是工作日,所以也就没买票,结果好久之后才发现是清明节 ( ̄-  ̄ )。 想着最后一天如果是中国队内战或者外国队内战就不去看了,结果很争气的本次 DAC 前三至少有两个中国队,因此咱也就打算就算没票也去现场感受一下神秘商店,打不了就去神秘商店看看买个米拉娜手办什么的(事实证明你只得有票才能进神秘商店,

  • realityone
    realityone
4 min read
QueuePool-TimeoutError

SQLAlchemy 中的 QueuePool 出现 TimeoutError

表现 咱在使用 Flask-SQLAlchemy 或者 SQLAlchemy 中有时候会出现类似这样的错: TimeoutError: QueuePool limit of size 10 overflow 10 reached, connection timed out, timeout 30 出现这个错的根本原因是因为该进程对数据库的连接池满了,且等待之前的 session 超时。 出现这个错的时候一般后端的表现为有部分请求非常慢,或者大部分请求都非常慢,如果后端频繁出现这个问题的时候,可以根据这两种情况进行分析: 所有请求都变得非常慢 出现这种现象的时候,大部分情况下都会伴随大量慢 SQL 记录,

  • realityone
    realityone
4 min read

如何获取 SingleNet 的拨号密钥

授人以鱼不如授人以渔。 最近有很多人问咱如何获取 SingleNet 之类的各种算法,因为 V4 版本也出来了,没有深入研究过 V4,但是估计是更难了,那咱把这个所谓的 V3 版拿出来炒下冷饭,其实方法都是大同小异,更重要的是前辈们所流传的内容。 首先咱就来讲下如何获取他的拨号密钥。 配置调试环境 如果环境就在学校的话,拿出虚拟机就可以直接调试了,但是咱现在已经不在学校了,就需要手动搭建一套 PPPoE 的环境,也不麻烦,直接用海蜘蛛或者 OpenWRT 甚至随便找个 Linux 就行,不过海蜘蛛一键安装配置,咱就随手拿来用啦。 其次呢,千万不要再虚拟机内开

  • realityone
    realityone
3 min read
OS X 证书认证

OS X 下使用证书认证

最近安全界爆出了一个 Docker/Swarm 2375 端口无认证的漏洞,甚至乌云里也有人搞批量扫描上报。事实上这个 2375 是 Docker Remote API 的端口,有了这个端口有什么用呢?任何能连上这个端口的人都能通过这个 API 在你的机器上部署容器,甚至是一个 privileged 的容器,那样几乎可以直接操作宿主机。但是这个端口其实本来就是干这事儿的,不过直接开放在公网上肯定危险,Docker 官方事实上一直推荐在生产环境中使用客户端证书的方式对该端口作认证。 一般在企业内部使用证书认证时,我们会拿到这么几个文件: client-cert.pem 证书文件 client-key.pem 用户私钥

  • realityone
    realityone
5 min read
SQL

SQLAlchemy 下处理时区问题

嗯……随着我们项目越做越大了现在该考虑国际化啦,首先遇到的就是时区问题。 一般我们都会在一个表中加入类似 created_at 这样的字段,目的是记录这条记录到底是什么时候被创建的,但是我们这里存哪个时区的时间好呢? 直接存 UTC 这是一种做法,我在 Flask 的书上看见他也是这么做的,不管 3721 直接用 datetime.datetime.utcnow() 作为值传入数据库。那样不管数据库上到底是什么时间,我们知道数据库所有的时间都是 UTC,然后让前端通过取浏览器的时区对这个世间进行转换。 这么做的问题是读数据的应用可能不止你自己一人,当别人也想读该数据库中的内容时,他看见出来的时间和自己预料的不一致,可能会对别人造成困惑~~(全看悟性)~~。一种方法就和你的队友约定好你们到底使用哪里的时区。 就用开发者自己的时区

  • realityone
    realityone
2 min read
Nginx 容器化

Nginx 的容器化

自从 Docker 出世后应用容器化便成为了未来开发运维一体化的趋势。Docker 推荐的理念是一个容器只跑一个进程,但是现在大家倾向于把它理解为广义上的单进程——即一个容器只运行一个应用服务,将所有服务模块化。 在这里遇到了一个问题,Nginx 这厮到底需不需要容器化? 强行容器化 Nginx 是有官方镜像的,那么说明 Nginx 官方也支持将其容器化,但是问题来了,Nginx 的配置文件要怎么放进容器中。 VOLUME 机制 将所有站点的配置文件放在同一个目录里,然后将其 VOLUME 进去,那么 Nginx 容器在启动的时候就能自动找到这些配置文件并全部加载。但是问题又来了,如果有时候你改错了一个配置文件,你不得不频繁地 restart

  • realityone
    realityone
2 min read
DockerMachine

在 Docker Machine 中使用 Mirror 服务

Docker Machine 是 Docker 官方推出用来取代原来 boot2docker 的工具,其实我感觉就是把原来的 boot2docker 再次包装了一层?给了一个统一化的管理方式,但是这下问题来了,原来我们使用的 DaoCloud 的加速器服务在这里该怎么使用了呢? 先看了下docker-machine的大概操作,里面有个 ssh Log into or run a command on a machine with SSH. 可以提供一个交互式的 shell,但是坑就在这里,即使你登上去在/

  • realityone
    realityone
2 min read

iPTV 终极方案

iPTV 是电信推出的针对家庭宽带用户的数字电视业务,其实也就是一个普通的网络电视机顶盒,只不过源是电信自己维护的,所以稳定性要比很多其他机顶盒好很多。 但是最麻烦的是经过几次更新之后,这个网络电视的机顶盒只能通过一次 PPPoE 才能成功连上电信的服务器(以前确实可以直接改 DHCP 就信了),但是我们之前还有一个路由器已经完成了 PPPoE 的过程,怎么做才能让路由下面的设备一就能够进行拨号呢? 最早是改变了一个接线方式,将猫上的 LAN 与路由上的一个 LAN 相连,然后路由再从一个 LAN 连至 WAN,在机顶盒之前再加一个迷你路由做 WDS。这个方案确实用了好久,不过针对有些路由会出现网络风暴,路由上的灯会狂闪直到封包的 TTL 数耗尽?

  • realityone
    realityone
2 min read
Ghost

迁移到 Ghost

本着学习折腾 NodeJS 的目的,我打算把博客从 WordPress 迁移到 Ghost。Ghost 还有一个吸引我的地方就是他的默认主题就非常漂亮,用了好久的 WP 我越来越发现其实那么多功能我都不怎么需要,就需要一个平台来给你写东西就够了,Ghost 就是那么一个平台其实 Ghost 上很多功能都没有。 迁移的时候因为我打算一些图片什么的都放在自己服务器上,所以并没有给静态资源上 CDN,因此迁移的时候需要把文章里的图片链接都修正好花费了一些时间。还好,WP 上一个插件导出后是一个 JSON 文件,而且也不大,直接用 Python 搞定~~(你不是要学 Node 吗)

  • realityone
    realityone
1 min read
师范

班主任参考

本周我们老师请来了定海一中的周晓飞老师来给我们组织一次班主任工作的分享。周晓飞老师今年带的高三刚刚完成了高考,高中这一特殊时期的班主任工作想必一定是比较复杂的,不过这次分享的重点是班主任工作,并不是高中时期的工作。 智慧型班主任 智慧型的班主任的智慧我觉得是体现在巧妙地推动学生去帮助自己工作,二并不是像诸葛亮一般万事都亲力亲为。比如在学生军训时期就全面了解学生个人情况,指派好每个职务,安排值日表、座位表与临时班长。这些不仅仅对自己以后的工作能降低复杂度,也对同学们的互相了解有帮助。这是每个新班主任接手自己班级学生时都必须重视的项目,虽然万事开头难,但是相信在学生养成习惯后能对其一生受益。 班级各项活动 每个班级都应该生成自己的班级文化。周老师给我们提出,班级文化建设时要解决的三大问题: 有气无力 —— 有气势没力量 两张皮 —— 文化与道德的分离 没带走 —— 文化没有被学生所吸收 班级文化对于每个班级来讲应该是独一无二的,应该把学生向阳光正确的道路上指引。 在有了班级文化后,还应积极开展班会活动。不要小看班会,班会应该变成学生每周都期待的活动。

  • realityone
    realityone
4 min read
flask-admin

Flask-Admin 小坑之 dynamic

比如有两个 SQLAlchemy 模型,Post 和 Tag,两者之间是 Many-to-Many 的关系,因为我想在渲染页面时传个 Pagination 对象过去方便分页,所以在定义关系时用了lazy='dynamic'参数,返回的是一个BaseQuery对象。 在使用Flask-Admin时我想在Tag的管理页面上每一条纪录都能出现一个Posts的字段用来显示当前Tag中Post的数量,所以我们简单的这么表示: class RBTagAdmin(ModelView): column_list = ('topic', 'posts') column_formatters = dict(posts=RBColumnFmtter.count_post) 但是在访问页面的时候会出这么一个错误InvalidRequestError: 'Tag.

  • realityone
    realityone
1 min read
sqlalchemy

Flask-SQLAlchemy 微坑之跨模块外键

在两个模块的数据库模型之间建立外键关系的需求是显而易见的吧,比如我把Author模型单独出来,Post模型在另一个模块里,怎样在这两个模型之间建立外键呢? 很简单的思路就是在Author上加一个posts = db.relationship('Post', backref='author', lazy='dynamic')吧,然后Post模型上加一个author_id = db.Column(db.Integer, db.ForeignKey('authors.id')),但是在./manage.py db migrate的时候一直报一个问题: sqlalchemy.exc.NoReferencedTableError: Foreign key

  • realityone
    realityone
1 min read
Flask

Flask 中修改 Jinja2 的配置

最近在用 Jinja2 构建模板的时候发现 Jinja2 有个很奇怪的地方,他渲染完{% block header %}之类的标签后,你会在 html 页面里找到一个空行,有没有什么办法避免一些不必要的空行呢? 翻了点资料,Jinja2 的文档里有一个Whitespace Control,里面说到的就是这一点,按文档讲,trim_blocks选项是将模板标签后第一个空行自动删去;还有一个类似的选项是lstrip_blocks,他是将模板标签前的制表符或者空格自动删去(当然如果之前有其他字符的话就不会删去惹……)。 看来挺简单的吧,单独使用 Jinja2 的时候可以这么做: from jinja2 import Environment

  • realityone
    realityone
2 min read
教育见习

教育见习体会

今天我们去南海实验中学参加了一次难得的教育见习活动,本以为南海实验中学会挺远的,不过最后发现在路上花费的时间也没多少…… 之前到网上查了下这个学校,发现这是由舟山教育局创办的从幼儿园到高中全覆盖的教育帝国……学校名字其实叫南海实验学校,分为幼儿部、小学部、初中部和高中部,今天我们看见的是南海实验高中的门牌,大概学校四面就是一个不一样的门牌吧……这学校战线真长。 啊当然来这里主要还是为了听课。恩作为个不想从业的师范生今天居然也好好听课了,大概是因为好久没感受过上课能听懂老师在讲什么的感觉了吧(笑)。 第一节课的主题是《植物的根与物质吸收》,是一个男老师上的课,可能是我们做的比较远的缘故,课上给我一个很明显的感受就是,教师的嗓音如果不响的话,同学们回答老师问题时的声音也会相应地降低。这一点有利有弊吧,有利就是可以平静学生的心情,让学生能够更加专心地跟着老师走;缺点嘛就是容易让学生会打不起精神。 这节课老师从海尔蒙特的柳树实验上入手,从一个当时他认为的错误的概念引出接下来有关植物根系的种种话题。老师称这个这个错误是『不是错误的错误』,因为植物大部分养分确实是从根系中吸收的。 整节课的流程从这里打开,

  • realityone
    realityone
8 min read
头文件

如何组织好 C 的头文件

一直很疑惑如何组织好头文件里的内容,有时候会写了一些很奇怪的声明,导入了很多不必要的头文件,在网上找到了这样一个文档,感觉作者写的相当清楚,试着翻一下就当练习六级了…… C 语言头文件配置指引 出处: David Kieras, EECS Dept., University of Michigan December 19, 2012 本文档内容和对应 C++ 的内容相似,但是引用的代码均为 C 的 **在一个复杂的工程中,头文件应当是什么样子的呢?**C 和 C++ 程序基本上都是一些分离编译的模块的集合。得益于分离编译的观念,在编译一个大型项目的可执行文件时,

  • realityone
    realityone
12 min read
vmnet 坑

VMware 虚拟机之间抓包坑之 vmnet

最近有需要在 VMware 的两个虚拟机之间进行数据包的抓取,本来直接在虚拟机上开个 Wireshark 就行了,但是目标软件傲娇的很,检测到有 pcap 之类的服务后会进行错误的运算,所以需要在母鸡上进行抓包操作。 于是向往常一样在母鸡上打开了 Wireshark,接口点在了 eth0 的 WiFi 上。好的,虚拟机上运行了软件后,执行……母鸡的 Wireshark 上没有出现任何可疑的数据包……我就不信邪了,我把接口全部勾上后再试试……还是没有任何可疑的数据包。 这是什么问题……于是不信邪的看了下ifconfig,发现了这两个接口 vmnet1: flags=8863&

  • realityone
    realityone
3 min read
除夕

除夕

今天是农历 2014 年的最后一天了,现在已经是除夕了。 就大学生涯来看,已经过去一大半了,上学期期末的时候决定考研,一个是因为确实不喜欢当老师,还有一个就是我感觉自己还不敢面对工作…… 从来没有那么不想长大,不想结婚,不想就这么草草收拾了自己的一生。 刚才在外婆家吃完饭回家路上,我和我爸去奶奶家逛了一圈,把奶奶好几天前的剩菜剩饭统统倒掉。奶奶的胃一直不太好,昨天在酒店里吃完组织的年夜饭后晚上 10 点多的时候开始拉肚子,吃了药之后又开始恶心呕吐……今天中午去奶奶家没找到人大声喊等了好久都不见人的时候真是吓了一跳,之后我爸找到了备用钥匙进去后发现里面也没人,这下才猜测奶奶是不是自己去医院了。 从小学之后我就和很多亲戚很少谈话了,因为我怕我突然失去他们……奶奶是我最揪心的一个人。她省吃俭用每次去她家都把我当宝贝一样看待,听别人说我在舟山读书的时候还担心中日千万不要打仗,因为舟山离海边最近了,每学期结束还给我『奖学金』…… 有时候我真怕奶奶突然就消失了…… 她有段时间非常痴迷于去医院看病,

  • realityone
    realityone
4 min read