- 博客(125)
- 资源 (9)
- 收藏
- 关注
原创 Python logging 模块详解
Python 的logging模块提供了一个强大而灵活的日志系统。它是 Python 标准库的一部分,因此可以在任何 Python 程序中使用。logging模块提供了许多有用的功能,包括日志消息的级别设置、日志消息的格式设置、将日志消息输出到不同的目标,以及处理复杂的日志系统配置。
2024-06-06 22:40:36
1769
2
原创 [翻译] 在 CI 或测试环境中使用 Docker-in-Docker,三思而后行
发布日期:2024-04-08 18:01:01Docker-in-Docker 的主要目的是帮助 Docker 本身的开发。许多人使用它来运行 CI(例如使用 Jenkins),起初这似乎很好,但他们遇到了许多“有趣”的问题,这些问题可以通过将 Docker 套接字(socket)“绑定安装”到 Jenkins 容器中来避免。我们看看这意味着什么。如果您想要不包含详细信息的快速解决方案,只需滚动到本文底部即可。☺。
2024-04-09 22:10:42
787
原创 如何在 Azure 上备份 windows 虚拟机并恢复
Azure 在 windows 虚拟机备份/还原上和通常的虚拟机备份有所区别,一般的虚拟机备份在控制台的上的操作通常是选择将目标虚拟机备份成镜像,还原的时候选择备份好的镜像即可。进入创建页面后,填写 disk 的名称,注意,由于这个是 windows 的 disk,各种属性都是默认 windows 的配置,是不可修改的。首先进入 Azure 的 Disk 服务,找到将要做备份的目标虚拟机所正在使用的 Disk。进入刚创建好的 disk 的详细页面并选择“Create VM”创建一个新的虚拟机。
2024-03-14 09:11:44
671
原创 从动态/静态语言角度理解接口
在编程语言中,接口(interface)是一种规范或契约,用于定义类或对象应该提供哪些方法、属性或事件。接口提供了一种抽象的方式来描述类或对象的行为,使得不同的类或对象可以通过实现相同的接口来实现相同的功能。接口通常包含一组方法和属性的声明,但不包含任何具体的实现。通过实现相同的接口,不同的类或对象可以实现相同的功能,从而减少了代码的重复,提高了代码的可重用性和可维护性。在一些编程语言中,如 Java 和 Go,接口是一种独立的类型,可以被类或对象实现。
2024-02-22 19:53:41
1080
原创 aws lambda 转换 office/txt/html 为 pdf
AWS Lambda 是一项无服务器事件驱动型计算服务,该服务使您可以运行几乎任何类型的应用程序或后端服务的代码,而无需预置或管理服务器。可以从 200 多个 AWS 服务和软件即服务 (SaaS) 应用程序中触发 Lambda,且只需按您的使用量付费。
2023-04-03 00:31:18
1474
原创 深入浅出 SSL/CA 证书及其相关证书文件(pem、crt、cer、key、csr)
与手动从网站收集数据相比,爬虫可以为我们节省很多时间,对于爬虫的每次请求而言,这相当于 AWS Lambda 的每次函数的运行。AWS Lambda 是一种将脚本部署到云的简单且价格低廉的服务,如果我们要实现在 AWS Lambda 上运行 selenium 实现数据的爬取,我们需要解决如何在 AWS Lambda 函数中安装 Chrome 浏览器?同时,AWS Lambda 的主要限制是超时限制,即 15 分钟,部署包不能超过 250 MB(但使用容器最多可接受10 GB)。
2023-03-30 11:59:18
40439
1
原创 如何使用 AWS Lambda 运行 selenium
与手动从网站收集数据相比,爬虫可以为我们节省很多时间,对于爬虫的每次请求而言,这相当于 AWS Lambda 的每次函数的运行。AWS Lambda 是一种将脚本部署到云的简单且价格低廉的服务,如果我们要实现在 AWS Lambda 上运行 selenium 实现数据的爬取,我们需要解决如何在 AWS Lambda 函数中安装 Chrome 浏览器?同时,AWS Lambda 的主要限制是超时限制,即 15 分钟,部署包不能超过 250 MB(但使用容器最多可接受10 GB)。
2023-03-01 21:52:49
1818
原创 Docker - 发送 Container 日志到 AWS CloudWatch
关于将 docker 应用程序日志发送到 AWS CloudWatch 的教程。
2022-11-08 20:34:05
737
原创 AWS SQS, Boto3 and Python:带示例的完整指南
AWS Boto3 是 AWS 的 Python SDK。Boto3 可以直接在 Python 脚本中与 AWS 资源进行交互。在本教程中,我们将了解如何使用 Boto3 操作 AWS SQS。
2022-10-22 11:03:03
1561
原创 在 AWS lambda 上部署 docker 应用
AWS lambda 提供了两种方式来部署容器,一种是基于 AWS 提供的镜像的部署方式,另一种是自定义镜像的部署方式,下面我们将对这种中方式的不同和使用做出阐述。
2022-07-10 23:27:48
1677
原创 https 是如何保护数据传输的
为什么需要 httpshttps 是 http + ssl,也就是加密的 http 数据传输。我们都知道 https 的最主要的作用在于保证数据的安全,但具体来说,https 的安全性主要体现在以下两点:保证数据传输不被中间人盗用和信息的泄漏。保证数据内容不被劫持、篡改。针对上面两点,https 的保护策略如下:对传输内容进行加密对请求进行身份验证对称加密和非对称加密对称加密只有一个密钥,同时用来进行加密和解密。非对称加密有一对密钥,分别是公钥和私钥。公钥加密,私钥解密。
2022-05-10 09:45:37
2731
原创 阅读笔记 - 20220409
Hired in the Metaverse, The New Frontier of Recruiting阅读时间:2022-04-09原文地址:https://www.venu3d.com/hirect.html读后&摘录:这是 facebook 通过元宇宙进行招聘的视频,虽然人物的建模没有那么逼真,但这都是力气活,暴雪公司的建模如果用到元宇宙,那么元宇宙带给我们的将是真正的虚拟世界。美版iPhone 12支持的5G毫米波 为什么到国行版就没了?阅读时间:2022-04-09原文
2022-04-24 14:46:18
1817
原创 解决 Elastic Search 的 Fast Vector Highlighting (FVH) 策略无法高亮 nested 数据类型
前言本文的目的不在介绍 ES 的三种高亮文本的策略,因此在阅读本文之前假设你已经熟悉 ES 的使用熟悉 ES 高亮的三种策略:Unified,Plain,FVH需要对 nested field 的大文本进行高亮显示提出问题一般情况下,ES 的文本搜索结果高亮默认的策略是 Unified,这种高亮策略对于大部分文本是够用的,但是如果文本的长度比较长,比如达到几十兆甚至上百兆的文本数据,那么 ES 在 FETCH 阶段去解析文本并准备文本高亮的时候会非常耗时,并且很可能请求超时。从官网的文档中我
2022-04-08 10:05:39
2353
原创 阅读笔记 - 20220401
Ice Spikes… Strange things you can find in your freezer …阅读时间:2022-04-01原文地址:https://www.its.caltech.edu/~atomic/snowcrystals/icespikes/icespikes.htm读后&摘录:冰刺形成的顺序就是由于水的结冰是从边缘开始向中间汇聚的,并且由于水结冰会增大提及,因此中间的水会涌起结冰从而形成冰刺。这可能也是人体内的水如果结冰会损害细胞的原因吧。应县木塔“病重
2022-04-01 18:10:39
971
原创 ESLint 和 Prettier 工程化前端代码
大浪淘沙,前段构架工具也在一代代的更迭,最终脱颖而出的是 Prettier 和 ESLint。很多人说这两个有很多重复功能,但其实这两个工具的侧重点是不一样的:Prettier 注重的是代码的格式化,也就是让团队有一个统一的代码规范。ESLint 注重的则更多是代码的质量,保证的是代码的安全性。这一点在 Prettier 的官网上有很好的说明:参考链接:https://prettier.io/docs/en/comparison.htmlLinters have two categories
2022-03-27 21:55:29
2349
1
原创 阅读笔记 - 20220305
4 ways to read file line by line in Node.js阅读时间:2022-03-15原文地址:https://geshan.com.np/blog/2021/10/nodejs-read-file-line-by-line/#prerequisites读后&摘录:本文讲述了四种读取大文件的方法,前两种是 node 原生的方法,Read file sync 和 Readline,不需要安装任何库,但是第一种是全部加载到内存,明显不可取。后两种是通过第三方的库进
2022-03-15 22:55:18
7502
原创 记录从头搭建 Docker Swarm 集群的过程
即便 Swarm 不是容器编排的首选方案,但是了解它会使我们对服务编排工具有更深入的认识。云中的富士山 | 2018-11-25 | 拍摄于 iphone 7p一提到 Docker 的服务编排服务,大多数人首先想到的肯定是 Kubernetes,仿佛 Kubernetes 已经成为 Docker 编排的标准。确实, Kubernetes 可以帮我们做很多的事情,但同时它也非常重。如果我们只想要一个轻量级的 Docker 编排工具,并且容易搭建和使用,那么官方的 Docker Swarm 会是一个不
2022-03-11 07:34:17
611
原创 使用 office 365 SMTP 发送企业邮件
背景最近公司的企业邮箱从 gmail 迁移到了 office 365。不得不说,微软 office 套件的功能在市场上还是无人可以取代的。公司自然需要用 office 365 向客户发送邮件,因此需要重新配置项目的 SMTP 服务器。一开始直接将 gamil 的 SMTP 服务器地址换成 office 365 的地址即“smtp.office365.com”,但是一直收到下面的错误提示,很容易想到是用户名和密码错误,在确认用户名和密码没有问题之后错误仍然一直存在,在查阅资料(baidu,google,.
2022-03-10 00:23:42
19943
原创 Django 与 DRF 结合的全局异常处理方案
前言Django 和 DRF(django rest framawork) 的结合在 python 后台中经常出现的组合。对于异常的全局处理,我们系统能有一个统一的解决方案,在开发环境能看到比较全的异常堆栈,而在生产环境能更好的给用户一个友好的提示,本文旨在提出一个统一个全局异常处理方案,仅供参考使用。实现的目标如果没有 DRF,我们只需要在 Django 中加一个中间件就可以解决全局异常的处理问题,但是 DRF 会帮我们处理一些异常并自动返回到客户端,因此我们要协调两者的异常处理策略。同时我们希望
2022-02-21 17:43:17
1456
原创 阅读笔记 1
“嫦娥五号”让月球有水“实锤” ,但水的来源存争议阅读时间:2022-02-18原文地址:https://mp.weixin.qq.com/s/SYaTb_m2nkdM7VzcSi89Yw读后&摘录:月球表面的含水量是微乎其微的,月岩180ppm的含水量相当于1吨月岩中只有180克水,这点水不要说和大多数地球土壤相比,就是和干燥的沙漠对比都少得可怜。硅谷又多了一个新大佬阅读时间:2022-02-15原文地址:https://mp.weixin.qq.com/s/bibVR6X0kwb
2022-02-18 13:48:05
322
原创 python 的魔法函数
魔法函数简介魔法函数是 python 语言的一大特色,魔法函数能增强类的类型,并且可以扩展类的行为。比如新声明的一个类是不能被迭代的,但是我们可以通过增加 __getitem__ 或 __iter__ 这两个魔法函数使得类具备可迭代的行为。这不同于 java,魔法函数不属于任何一个基类,是 python 中特有的特性,并且可以可是被附加到任何一个类上去。同时,魔法函数是 python 面向协议编程的基础,我们可以通过对类增加某些魔法函数使得类具备一些特定的行为。魔法函数示例在下面的例子中,本来 Co
2021-12-26 15:12:18
825
原创 python 的语言特性
python 语言类型鉴别常用的编程语言比如 java,javascript,python 等,我们可以从两个角度对语言进行分类。一个是动态语言 vs 静态语言,另一个是强类型 vs 弱类型。动态语言还是静态语言指的是编译期还是运行期确定类型;强类型和弱类型指的是是否会发生类型的隐式转换;而 python 的语言类型定义是强类型的动态语言。python 的变量python 的变量实质上是一个指针。这不同于 java,在 java 中如果要声明一个字符串,那么这个字符串会复制给字符串的变量,
2021-12-12 13:19:59
997
原创 实践中的 python - 目录大纲
python 是一门包容性比较高的语言,因此也被称之为“胶水语言”,其面向协议的设计使得各类编程范式在 python 的编程中都得到了比较优雅的实现。其广泛的应用领域也使得其越来越受到工程师的青睐,不管是在 web 领域,还是机器学习等领域,python 都有着举足轻重的位置。因此学好 python 一定会极大的提升个人的编程素质和能力。人生苦短,快用 python!本系列文章旨在尽可能简单明了的介绍 python 的高级知识。对于 python 的基础支持,不是本系列文章的重点,读者朋友可以自行进行查
2021-11-29 22:08:29
295
原创 读后:警惕软件复杂度困局
软件工程师们常常自嘲,“when things work, nobody knows why”警惕软件复杂度困局一文中提出了几个值得深思的观点,在此记录一下。原文地址:警惕软件复杂度困局: https://mp.weixin.qq.com/s/L2hviITn-MgKGWzyUdXSjg两个本质软件的本质是工程师之间用编程语言来沟通抽象和复杂的概念,软件的本质不是人和机器沟通。软件设计和实现的本质是工程师相互通过写作来交流一些包含丰富细节的抽象概念并且不断迭代过程。软件复杂度第一,认知
2021-11-25 23:47:39
159
原创 Django 和 DRF(Django Rest Framework) 下的全局异常处理
All good things must come to an end.Django 在 web 开发中往往会和 DRF 进行结合使用,DRF 有这自己的一套异常处理机制,我们可以对 DRF 中抛出的异常进行全局拦截,比如返回统一的 json 格式以便于前台进行处理。但是我们同时在 Django 中使用后台 admin 管理数据的同时,不希望修改原有的异常返回。因此我们需要同时配置 Django 和 DRF 的全局异常来适应我们的需求。异常种类我们在写代码的时候一般会遇到以下两种异常种类:【已知
2021-10-15 23:05:46
1182
原创 去掉特殊空格(\t \v \f \xa0 \u0020 \u3000 \u00A0  ;)
我们在做爬虫的时候,经常回遇到一些特殊的空格形式,如果不对这些空格进行妥善的处理,很可能会污染我们的数据。不同的空格种类一般我们所认识的正常空格为 0x20 这种也就是我们直接在键盘上敲击的空格。但是还有很多其他的空格形式。\t:水平制表符\v:垂直制表符\f:换页符\xa0:不间断空白符\u0020:半角空格(英文符号),代码中常用的\u3000:全角空格(中文符号),中文文章中使用\u00A0:不间断空格,主要用在office中,让一个单词在结尾处不会换行显示
2021-10-07 23:53:44
1950
原创 我的 vscode 配置笔记
窃钩者诛,窃国者侯。按不同颗粒度操作(通识操作)对于这些操作,是每个编辑器/IDE都具备的,也是应该牢记于心的。当然,vscode 也是很好的支持这些操作的。字符颗粒度单词颗粒度整行颗粒度移动up/down/left/rightup/down/left/right + Optionup/down/left/right + Command选择+ shift+ shift+ shift多光标特性多光标操作给代码的编写提供了极大的方便,下面根据不同场景有三
2021-09-16 11:45:19
1961
原创 如何整理积重难返的 django db migrations 文件
你的代码应该是写给下一个开发者的情书。最简单的方式当然是删除数据库然后重新生成,但本文主要针对在原有数据的基础上进行更新。主要分以下三步,多数据库环境适用,执行之前建议有二:建议一个模块一个模块执行;执行之前保证数据库 django_migrations 中的迁移记录和模块下的 migrations 子文件夹下的迁移文件保持一致;django 数据库迁移原理(如已知晓,则跳过)我们知道在 django 中执行了 python manage.py makemigrations MODEL_N
2021-08-30 17:43:53
339
原创 HTTP 下的前后端交互
互联网上半场的打法可以说是营销和资本驱动(你在选择安装哪个APP)。而互联网的下半场是数据和技术在驱动(你在选择卸载哪个APP)。HTTP 版本对比HTTP 版本的演化到现在为止一种经历了四个版本,分别是 HTTP/0.9,HTTP/1.0,HTTP/1.1 和 HTTP/2.0。现在使用最广泛的仍然是 1.1 版本,但是 2.0 版本也慢慢的被各个网站接纳和使用。下面分别介绍上面几个版本的区别。1991年 HTTP/0.9仅支持 GET 请求,不支持请求头1996年 HTTP/1.0默
2021-08-26 20:14:09
518
原创 linux 源码包安装拾遗
不要当一个迂腐的老实人。要宽容,但不要纵容;要大方,但不要任人宰割;你可以打破规则,但要有底线。源码包安装和 apt-get/yum 的区别安装前的区别:概念上的区别rpm 和 dpkg 包是经过编译过的包,并且其安装位置由厂商说了算,厂商觉得安装在哪里合适,就会装在哪里,而源码包则是没有经过编译的文件,大部分由c语言写的,需要gcc编译器进行编译使用,如同java源文件和二进制文件的区别。源码包执行效率更高。安装后的区别:安装位置不同rpm 和 dpkg 包的安装位置是厂商说了算,而源
2021-08-11 22:16:17
112
原创 AWS 配置 Ubuntu 可视化界面
仗义每多屠狗辈,负心多是读书人。在年少的认知能力下设立的本心一定在将来的高认知下适用吗?最近在写爬虫的时候,有一些网站当输入验证码之后可以进行长时间的爬取。但是如果不进行初次验证码验证,基本上是不能进行爬取的。本地测试是没有任何问题的,但是如果程序需要长期运行的话,还是要放到服务器上。因此配置一台带有 GUI 图形界面的服务器还是很有必要的,况且服务器的网速也能有很好的保证。我们在购买 linux 服务的时候,大部分的服务器都是不带有桌面的,这里不讨论如何在一个无桌面的 linux 上装上比如 GN
2021-08-11 22:15:03
2060
原创 如何在 pypi 上发布自己的 python 包
为什么人们喜欢视频学习?一篇文章中解释到,人类学习效率最高的方式,不是"读书 + 思考",而是"观察 + 模仿"。 前者需要较长时间的注意力投入,后者只需要短时间注意力,更符合人类的天性。准备工作首先在 pipy 上注册自己的帐号,这一步不再赘述本地电脑上安装有 python 的环境,这里推荐 3.x 以上的 python 环境打包工作主要依赖 python 的一个叫 setuptools 的包来完成,因此安装这个包 pip install setuptools组织代码结构下面是我所发布的
2021-07-28 23:07:36
1725
1
原创 代码的坏味道笔记
在 VUCA 时代,我们写代码的方式也应随时代的变化而变化,不能一直拘泥于以往也许被当作最佳实践的方式。万象丛生现象:我们也许缺少的是“实现模式”而不是“设计模式”并没有否定设计模式在编程中的重要作用,但是很多人“手里拿着锤子,眼中满世界都是钉子”。希望所有的程序都能套用一下设计模式,过犹不及。相较于设计模式的抽象,其实我们更需要的是日程编程中的实现模式。如何将每一行代码写好比起如何用设计模式来的更直接。现象:很多重复代码的产生通常都是从程序员偷懒开始的不管是需求的快速变更,还是领导带给的压力。
2021-07-21 13:44:11
2255
5
原创 Wordpress 拾遗笔记
记录一下 wordpress 学习笔记运行环境phpmySQLApache集成开发环境Appservxamppphpstudy文章和页面的区别文章是发布网站主要内容的地方,比如博客的文章,商城的商品等页面是发布次要内容的地方,比如联系我们,商品说明性文字等plug-ins 的作用增加新的功能,比如网上购物功能修改现有功能可以在插件选项中修改源代码,几乎不用。在中国解决wp后台速度慢的两个插件解决后台速度慢的问题cn-avatarDisable Goo
2021-07-13 23:05:26
117
原创 重学 python 基础笔记
书读百遍,其义自现。每次重学基础,总有值得记录的地方。和其他语言不一样的除法在 python 中,2/2 的结果是小数,而不是我们熟知的整数。# <class 'float'>type(2/2)# <class 'int'>type(2//2)进制表示法0b10 -> 二进制0o11 -> 八进制0x15 -> 十六进制bin() -> 二进制转换函数int() -> 十进制转换函数oct() -> 八进制转换函数
2021-07-08 19:44:35
166
1
原创 《愿你历尽千帆 归来仍是少年》 读后
雨落之时,思绪最甚雨落之时,思绪最甚。今天是大雨,引用书中的一句话做本文开头,“真正美妙的人生大概就从我们坚定不移地追寻自己的梦想的时候,才正式开始”。求知篇书中写到“求知本身,只是一种修行而已;而真理本身,不过是一种“大象无形”的人文关怀”。我本身是非常赞同这句话的,而本书也是作者在自己的求知路上一种内心“孤独”的述说。但是这种孤独,我想更多的是一种物质层面的孤独。而正式在这种物质孤独的时候,最容易触及内心,从而找到精神的补偿。“别人吃吃喝喝一辈子就满足的死去,而你居然还有机会与命运较量和对话,这
2021-07-04 23:28:06
652
原创 幻想即现实 摘录
如果一个人对我的实际态度比我希望他对我的态度要差,我就会认为自己受到了他的伤害。我们如果感觉受到了伤害,那并不是别人伤害了我们,而是自己的愿望伤害了自己。这个世界到底是什么样子,与这个世界无关,而与你愿意把它制造成什么样子有关。人最大的消耗,不是来自智力或者体力的透支,也不是来自跟大自然或者同类的争斗,而是来自自己对自己的战争。因为在这场战争中,“敌我双方”的战士、枪支、弹药甚至战术,都是自己...
2019-06-27 09:46:12
729
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人