《流畅的 Python》阅读笔记
去年就想看《流畅的 Python》这本书,今年终于看完了。 《流畅的 Python》是一本深入讲解 Python 语言的书,非常值得一读。去年看到同事在看,就一直想看,陆陆续续看了很久没什么进度,这个月一努力,把这本书看完了。 这次脑洞一开,觉得既然学的是 Python,那我为什么不用 Python 做笔记呢?于是就选用了 Jupyter Notebook 来做笔记载体。一个文档里既可以写 Markdown,又可以运行 Python 代码,简直完美。 所以,这本书的笔记就这么写出来了。内容不算少,所以烦请移步我的 GitHub Repo.
更多Python Hacking: “高级”偏函数
本文讲解了一个需求的解决方案,而这个奇葩需求你在 99.93% 场景下都不会遇到,就算遇到了,也一定有其它更简单的解决方案。 0. 引言 >>> print((lambda x:None).__code__.__doc__) code(argcount, kwonlyargcount, nlocals, stacksize, flags, codestring, constants, names, varnames, filename, name, firstlineno, lnotab[, freevars[, cellvars]]) Create a code object. Not for the faint of heart. 1. 需求 mock.patch 对象在..
更多《Prometheus Book》阅读笔记
看了一本在线的小书,叫《Prometheus Book》,做了一点摘抄和笔记。 第 1 章:天降奇兵 第一章对 Prometheus 的架构和用法做了简单的介绍。 基本介绍 通过建立完善的监控体系,我们可以达到以下目的:长期趋势分析、对照分析、告警、故障分析与定位、数据可视化。 Prometheus是一个开源的完整监控解决方案,其对传统监控系统的测试和告警模型进行了彻底的颠覆,形成了基于中央化的规则计算、统一分析和告警的新模型。 个人理解,这里的中央化主要是指数据存储中央化:各个数据源将指标暴露出来,由 Prometheus 服务器采集后统一存储、统一分析,方便聚合查询。 Prometheus 的基本结构如图所示: 其中 Prometheus Server 是整个组件中的核心部分,负责实现对监控数..
更多![loading..](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/metrics_graph_stats_blue.png?itok=OKCc_60D)
![loading..](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/metrics_graph_stats_blue.png?itok=OKCc_60D)
Python 函数式编程:不可变数据结构
本文原载于 opensource.com,由本人翻译,翻译作品原载于 linux.cn。翻译及转载基于 CC-BY-NC-SA 协议。具体创作参与信息可见文章最后部分。 不可变性可以帮助我们更好地理解我们的代码。下面我将讲述如何在不牺牲性能的条件下来实现它。 在这个由两篇文章构成的系列中,我将讨论如何将函数式编程方法论中的思想引入至 Python 中,来充分发挥这两个领域的优势。 本文(也就是第一篇文章)中,我们将探讨不可变数据结构的优势。第二部分会探讨如何在 toolz 库的帮助下,用 Python 实现高层次的函数式编程理念。 为什么要用函数式编程?因为变化的东西更难推理。如果你已经确信变化会带来麻烦,那很棒。如果你还没有被说服,在文章结束时,你会明白这一点的。 我们从思考正方形和矩形开始。..
更多《Docker 实践》阅读笔记
这几天看了《Docker 实践》,写了一点自己不知道或者想记录下来的内容。这是一份笔记,但不是一份基础教程。 1. 第一部分:Docker 基础 Docker 的优势 通过将环境打包成镜像的方式来标准化系统环境,需要使用这个环境的人可以直接使用镜像,无须重头配置环境。所以,Docker 在很多情况下可以作为虚拟机的替代使用。 对 Linux 用户而言,Docker 镜像没有依赖,所以非常适合用于打包软件。 关键概念:镜像和容器 简而言之,容器运行着由镜像定义的系统,而镜像本质上是一个文件系统,由一个或多个层加上一些 Docker 的元数据组成。 我们可以从一个镜像中生成多个容器,这些容器完全隔离,其行为不会相互影响。 一个巧妙的类比:镜像和容器的关系,就相当于类和对象的关系。 创建 Docke..
更多![loading..](https://blog.stdioa.com/pics/cicd/schedule.png)
![loading..](https://blog.stdioa.com/pics/cicd/schedule.png)
GitLab CI/CD: 辅助工具
本文会讲一些在 GitLab CI/CD 中可能会用到的辅助工具,包括隐藏任务、依赖缓存、定时任务以及部署环境。 0. TL;DR Hidden keys (jobs) Cache dependencies in GitLab CI/CD Pipeline Schedules Introduction to environments and deployments 1. 隐藏任务 先讲个简单的。 有的时候我们需要在 Pipeline 中跳过某些任务,通常情况下我们可以用任务定义中的 when 和 except 属性来控制任务是否显示。但是如果我们想暂时删掉这个任务怎么办? 一种方法,是在 .gitlab-ci.yml 中删掉或注释掉这个任务;另一种做法是,直接在任务定义的 key 中加个点号(...
更多Vim 修炼秘籍之语法篇
欲练此功,必先自宫。前言少年,我看你骨骼精奇,是万中无一的武学奇才,维护世界和平就靠你了,我这有本秘籍《Vim 修炼秘籍》,见与你有缘,就十块卖给你了! —— 本秘籍建议零售价:10 元如果你是一名 Vimer,那么恭喜你,你的 Vim 技能马上要升级了 😈!如果你之前不了解过 Vim ,那么也没关系,本文就当成学英语语法了!好,废话不多说,秘籍送上。ps: 建议先熟悉一遍 Vim 修炼秘籍之命令篇,本秘籍食用更佳正文核心秘诀Vim 功法之究极总结: (操作次数)+ 操作行为 + 操作范围 下面,我会将此秘诀 亲自传授于你。秘诀解析先列一些常用的 Vim 招式给你瞧瞧,看你是否是传说的练武奇才:123456c2w —— 删除当前光标后紧邻的两个单词,并转换为普通模式dip ——..
更多使用telegram bot实现的报警工具
个人的程序的报警很多人都用的 server 酱 之前我也是用这个的 个人使用的时候确实非常方便 但是因为 server 酱是基于微信公众号的 所以如果要发送个多人 或者分组发送消息 还是不是很方便 于是自己开始准备用 wepy 来做这个工具 结果发现貌似itchat接口被封掉了 issues 不得不寻求其他的方法最终找到了telegram 不得不说 虽然是聊天工具 但是对开发者还是相当友好的 各种接口都有提供 而且提供了一个非常强大的机器人系统 可以进行各种操作 而且流程非常简单 创建自己的机器人搜索BotFather 这个帐号 然后发送/start开始对话 BotFather是telegram的一个机器人帐号 用来管理所有用户创建的机器人 开始对话之后 会提示你进行各种操作 来创建和管..
更多![loading..](https://cdn.jsdelivr.net/gh/Tomotoes/images/loading/4-min.gif)
![loading..](https://cdn.jsdelivr.net/gh/Tomotoes/images/loading/4-min.gif)
你有所不知的 margin 属性
你真的了解的 margin 属性吗?前言致谢本文总结于 张鑫旭老师的 CSS 深入理解之 margin 课程,感谢张老师的辛苦付出!难学的 CSS作为前端狗的我们,每天都要和网页打交道。当 UI 将设计稿发给你时,CSS 的知识便显得尤为重要。而 CSS 这一标记性的语言,却时常让我很头疼:毫无逻辑性,并充满了各种坑爹的潜规则 ,以至于每次做项目时,大部分时间精力都浪费在了调整布局与样式上,详情可点击知乎上的为什么 CSS 这么难学?问题,道出了我的心声 :(但谁叫我们是吃这碗饭的呢,不管怎样,有困难必须迎面解决,学好 CSS ,向张老师看齐!正文margin 算是性格刚烈的属性了,下面,我将从各个方面讲解 margin 的可怕之处。元素尺寸的影响通常一个元素的尺寸可分为:可视尺寸 与 占据尺寸可视尺寸 ..
更多Git 修炼手册
Git 命令大汇总。入门配置用户信息git config –global user.name Simon设置自己的用户名git config –global user.email jinmaup@gmail.com设置自己的邮箱查看配置git config –list查看自己 git 的配置信息设置编辑器git config –global core.editor vim当你用 git 编辑文件时,编辑文件的文本编辑器会默认调用 vim文本着色git config –global color.ui true可为大部分 git 的代码布上颜色基础命令建立版本库git init当前路径文件 初始化为 Git 仓库(可以发现 当前路径增加了.git 文件夹)git init 文件夹名新建一个文件夹,并将其初始化..
更多