Posts under category "程序"
flask编写一个简易版的DnsPod
DNS是当前互联网最重要的基础设施,一般企业内也会部署自己的私有DNS服务器,在我们公司就是部署BIND9做内部域名解析,用DnsPod做外部域名解析,为了配合Nginx的运维自动化,所以对外封装了DnsPod的api接口,对内自己用flask封装了一套api。目前的过程是使用数据库记录DNS的解析记录,通过模板生成DNS的配置文件,并推送到DNS服务器,然后reload生效,过程比较复杂。
Python的重试模块retry
在某些场景下,代码执行出现异常的时候,我们希望代码能自动进行重试。比如,某个三方接口的token时效时间是30分钟,在编码的时候,我希望能主动尝试登录。如果接口返回401了,重新获取token,再用新token请求一次。
![retry][1]
Jupyter Notebook服务搭建过程
每次使用Jupyter Notebook都是在本地终端运行jupyter-notebook启动的,家里的树莓派上面已经运行了seafile, transmission-daemon,minidlna.service等服务,这次想着把Jupyter Notebook也搭建到树莓派上,提供在线编程能力。下面是搭建的过程。
![1_m87_Htb_9Pstq0UcvNJ49w.png][1]
Python编写简单的gRPC服务
感觉gRPC似乎一直在流行与不流行之间,似乎周围没什么人用,但是每隔一段时间都会听到一些gRPC的消息,今天刚好有团队要gRPC的支持,所以就自己也测试下怎么用Python来写gRPC的服务。RPC是远程过程调用(Remote Procedure Call)的缩写形式,基本可以理解为RPC就是要像调用本地的函数一样去调远程函数,gRPC就是Google开源的RPC框架。闲话不多说,show you the code!

Continue Reading ...
Flask日志级别的问题
这也是个老问题,很早之前发现使用logging模块在flask里记录info日志记录不上,没在意,但是有时候习惯拿info级别在线调试服务的时候没有日志就很苦恼,网上关于设置日志级别的文档大多是错误的(不排除可能是flask版本差异导致的),花了点时间来研究怎么设置flask的日志级别。
只是Flask-CAS的Demo而已
起了个轻松一点的标题,但其实是折腾CAS的心酸史,跨越大半年的时间,终于搞定了Flask-CAS这个模块。这是个悲伤的故事!
从头说起,CAS是central authentication service的缩写,也是一套单点登录协议标准。每个公司内部有很多自研的、商业的或者开源的系统,如果有了CAS,你只需要在某个接入CAS的站点登录,其它站点就可以自动登录了,不需要再单独验证。听起来很爽吧。这里不讲解具体原理,因为通过搜索引擎找到这篇文章的人应该都是和我曾经一样走投无路只想解决问题的人。。。
十分钟快速构建你的第一个springboot的项目
springboot是最流行的Java微服务框架之一,本文从基础的Java和mavne环境搭建开始,详细的展示了如何利用http://start.spring.io快速开发一个简单的springboot项目。
使用树莓派播放bbc新闻
家里有个树莓派,而且又是个起床困难户。总想改善下起床效率,于是用树莓派做了自动报时,自动放网易云音乐的起床歌单,但是还是起不来(悲伤)。
![bbc_news_logo.png][1]
突发奇想每天早上播放英文广播,BBC,VOA什么的都可以。最后发现有人做了基于BBC的播放器,比较粗陋,稍微看了下源码,了解流程之后,自己写了个简单的。
Expect中被忽视的超时
以前写过一个expect脚本,用于每天凌晨登录远端sftp服务器同步文件,但是偶尔会发现登录失败,查不出来原因,所以设置了每天同步两次,可惜依然有时候失败。直到我发现了expect的超时设置,据说expect默认超时时间是10s。
