自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

有关心情

一切都是个人遭遇

  • 博客(137)
  • 资源 (6)
  • 收藏
  • 关注

原创 Python爬虫系列

Python爬虫系列@(博客)[Python, 爬虫]背景由于近来学(lan)业(ai)繁(fa)忙(zuo),快一个月没有更新博客了。这周完成了两门课的结课考试,现下时间开始变得充裕。准备梳理一下前段时间学习的关于Python爬虫的内容,权当复习巩固知识。而初次学习时遇到的疑难杂症,那时候的应对策略是抓大放下,在这梳理过程会下定决心一一攻克。 由于本人技术有限,错漏处还望各友不...

2018-05-19 07:37:24 515 5

原创 不要用 boxed trait objects

文章目录起步什么是 boxed trait 对象 ?`Box` 有什么问题吗?结构体泛型总结感谢起步此文基本算是 《Don’t use boxed trait objects》 的中译,但又不全是 《Don’t use boxed trait objects》 的中译。什么是 boxed trait 对象 ?通常来说,rust 中的 trait 类似于 go 里的 interface —— 一个存放 n(n>=0 ) 个方法的集合,而 go 借助 interface 这一概念,很容易实现“多态

2021-09-25 21:44:06 421

原创 一个局域网中,不同网段的服务器能通信吗?

起步在一个局域网中存在两台服务器 A, B:A:IP=192.168.211.110, NETMASK=255.255.255.0B:IP=192.168.211.3, NETMASK=255.255.255.224此时,A B 能相互通信吗?环境说明A, B 服务器均为 centos7 —— 通过 vmware 启动的虚拟机。A:IP=192.168.211.110, NETMASK=255.255.255.0, MAC=00:0c:29:69:73:aeB:IP=192.168.21

2021-09-21 22:49:41 3771 1

原创 tornado + peewee 下打印执行 SQL 日志

tornado + peewee 下打印执行 SQL 日志文章目录tornado + peewee 下打印执行 SQL 日志起步环境准备打印 peewee 的 SQL 日志第一个为什么第二个为什么第三个为什么更优雅的日志打印感谢起步最近在用 tornado + peewee + peewee-async 写自己的东西。有了早前工作上的重大教训,这次我一上手就着手打开 peewee 或者是 peewee-async 的 SQL 执行日志,遇到了点问题。最后问题解决了,但过程中产生的几个“为什么”想在这里

2021-04-12 09:24:13 1468

原创 做隧道里的鱼: ssh 端口转发

做隧道里的鱼: ssh 端口转发文章目录做隧道里的鱼: ssh 端口转发起步本地端口转发远程端口转发一些有用的参数感谢起步很惭愧,用 linux 也有好长一段时间了——至少 2 年以上,但在 ssh 命令上只会浅显的登陆而已,直到才不久领略了它的强大。基于 ssh 建立的安全通道,可使你在多个不同网段间来回穿梭(当然有前提),恍若化身游鱼,在隧道里自在。这种比喻很抽象,后面会让你体会到。所以了,明明网上关于 ssh 端口转发的文章很多,干嘛要自己写一篇呢?我希望用我以为容易理解的方式写出来。本地端

2021-03-30 23:23:39 220 1

原创 零基础手动搭建 k8s 那点事

零基础手动搭建 k8s 那点事文章目录零基础手动搭建 k8s 那点事起步环境准备关闭 swap安装 docker安装 kubeadm、kubelet、kubectl初始化 master 节点安装网络插件加入 Nodedashboard安装 dashboard创建用户与角色访问 dashboard获取 token安装监控出错了怎么办?感谢起步这是我第二次手动搭建 k8s 了,相较于第一次用掉一天时间,这次花费半天。当然,这其中倒不全是 k8s 的问题。是网络。而网络又是一个很大的概括,更细分则是:k8s

2021-03-14 21:19:38 363

原创 索引下 update 只锁住符合条件的记录吗?

文章目录起步环境准备奇怪的 update 行为行锁与间隙锁加锁规则实战分析 1实战分析 2实战分析 3实战分析 4如何理解“等值查询”和“范围查询”next-key lock 是两步骤总结参考起步我着手一个需要高并发 update 的功能,进行压测时,发现了大量锁超时。于是所有矛头就指向我了,认为我做任务分发时重复分发了两个或两个以上相同的子任务。这一假设基于现有的子任务 update 范围,已知更新语句走索引 c,则有:子任务 A 更新 c=[1,10] ;子任务 B 更新 c=[11,20] …

2020-11-20 16:01:34 712 1

原创 如何获取 postgres 执行的 sql

如何获取 postgres 执行的 sql文章目录如何获取 postgres 执行的 sql起步如何洗冤?操作最后020.11.4起步由于我在新项目里引入了 python 的 async 语法,在连接 pg 数据库时用到了 asyncpg 这个异步包。多日来,从线上得到了一些反馈。简单说来就是:数据库存在暂时无法修复的 bug,使得一些 sql 成为 “禁用 sql”,从应用层看没有执行过 “禁用 sql” ,但在监控器上发现执行了 “禁用 sql”。我简单跟踪了 asyncpg 源码,没有发现

2020-11-05 12:49:00 1012

原创 SQLAlchemy 奇怪的查数据库行为

SQLAlchemy 奇怪的查数据库行为文章目录SQLAlchemy 奇怪的查数据库行为前言环境准备奇怪的查数据库行为expire\_on\_commit如何解决020.10.16前言进行数十亿数据压测时,测试环境发生了一个很奇怪的现象:在对 SQLAlchemy 查出的结果做遍历操作时,随着集合越大,遍历的时间跟着变长,是肉眼可见的变长。根据现象,一位腾讯的程序员向我提出了疑问:会不会遍历过程中 SQLAlchemy 又去查询了数据库?环境准备-- DDLCREATE TABLE `stu

2020-10-16 20:45:45 1119

原创 update 走索引后会不会锁全表?

update 走索引后会不会锁全表?020.10.6文章目录update 走索引后会不会锁全表?前言环境准备会锁全表的 update 语句指定索引前言同事告诉我 update 时,如果没走索引,会锁全表;如果走了索引,只锁住符合条件的行记录。所以果真如此吗?好像不是欸!环境准备在进入正文之前,需要做一些准备。create table student( id int not null primary key auto_increment, name varchar(10) n

2020-10-08 15:03:51 3684 3

原创 databases 连接 pg 查询时返回的数据类型

databases 连接 pg 查询时返回的数据类型020.10.6使用 databases 做异步查询的时候,sqlite、mysql 查询结果返回的都是元组类型,但是连接 pg 数据库的时候返回的是 Record 对象实例。database = Database( 'postgresql://postgres:[email protected]:54321/postgres', min_size=5, max_size=20)await databas

2020-10-06 20:36:45 668

原创 Rust 中的 mod (模块)

文章目录起步mod 关键字crate、self、super、usecrateselfsuperuse拆分到多文件感谢起步初看《Rust 程序设计语言》第七章的模块管理时,完全有不知所云之感。看完就“懵”住,也不晓得 mod 要怎么用。上 B 站找相关视频,稍解惑,却未细讲单个文件如何拆分到多个文件。最后在 github 找到 rust 语言编写的项目,方如梦初醒。我很喜欢这种一致性设计,也就简单说一下。mod 关键字在 rust 中,可用 mod 关键字划分代码作用域,使代码结构清晰。mod 的

2020-08-20 22:06:24 9902 6

原创 Manjaro xfce 合盖不关屏幕

最近买了显示器,macbook pro 的扩展坞却没买,干脆把大学时的电脑利用起来。我的需求就是:笔记本主机一般的存在,放书桌下边,外接显示器;笔记本需要合盖。一阵搜索后,得到的解决都是在 /etc/systemd/logind.conf 文件中,要么修改 HandleLidSwitch,要么修改 HandleLidSwitchDocked,再或者是 LidSwitchIgnoreInhibited,结果都不生效。这或许是桌面系统不同的缘故?最后皇天不负有心人,终于还是找到了解决方案。如下:$ s

2020-06-01 22:14:48 1974 1

原创 Flutter 是怎样练成的

文章目录起步正文Waiting for another flutter command to release the startup lockRunning "flutter pub get" in xxx起步在学 flutter 过程中遇到很多“惨绝人寰”的环境问题,在这里记录,供自己,也供大家食用。持续更新……正文Waiting for another flutter command to release the startup lock解决:linuxkillall -9 dart

2020-05-30 15:20:28 164

原创 Go 1.13 之后的 error 检查

Go 1.13 之后的 error 检查文章目录Go 1.13 之后的 error 检查起步error 从何而来如何检查 error1.13+ 如何检查 errorUnwraperrors.Iserrors.As占位符 %w感谢起步如果说 Go 有很多诟病的地方,那么 Go 中 error 的处理一定可以挤进吐槽榜单前十。既然 try语句提议被一拒再拒,我们也只好用着古老的 if 筛选错误。Go 官方并非没有意识到 error 的鸡肋问题,于是在 Go 1.13 提出了新解决方案,总的说来就是“三个

2020-05-24 23:31:18 475

原创 启动轻量级 Django

启动轻量级 Django文章目录启动轻量级 Django起步如果是 flask轻量级 django总结参考起步相比 fastapi、flask 等 http 框架,django 一直被 python 程序员认为**“重”**。“重”有很多理解方式,我至少认为它不是在指责 django 大而全——由于自己多才多艺而被嫌弃,django 岂不是很冤?!所以我理解的、普遍意义的“重”是:djang...

2020-04-19 20:13:21 325

原创 defaultdict 嵌套用法

defaultdict 嵌套用法文章目录defaultdict 嵌套用法起步方法1:初始化目标数据结构方法2:setdefault方法3:collections.defaultdict起步昨天在公司加班要处理这样一组数据:{"村": "李村", "症状": "血糖", "姓名": "小李1"}{"村": "李村", "症状": "血糖", "姓名": "小李2"}{"村": "李村",...

2020-03-29 13:55:49 1655 1

原创 当新浪防盗链时,我在想些什么?续

文章目录起步HTTP -> HTTPS为运行容器添加端口映射HTTPS -> HTTP2如何排查其他问题感谢起步在去年五月份的时候,新浪免费图床做了防盗链机制,羊毛就不能褥了。个人博客不挂图片忍忍也就过去,但在某些时候还是不便。后来我采用 docker 镜像 + 开源图床系统 lychee-docker 的方式,在自己的阿里服务器上搭建了一个简易图床。时移近一年,使用起来没有什么不...

2020-02-29 23:05:33 448 2

原创 systemctl 管理 nginx 与 systemctl start nginx 卡住问题

文章目录systemctl 管理 nginxsystemctl start nginx 卡住问题systemctl 管理 nginx命令:vim /usr/lib/systemd/system/nginx.service,写入以下内容:[Unit]Description=The NGINX HTTP and reverse proxy serverAfter=syslog.target ...

2020-02-20 22:13:13 2564 1

原创 Go Micro 初探

文章目录起步初探 Micro感谢起步在使用 go-micro 之前,我们需要做一些环境准备。$ go get github.com/micro/protoc-gen-micro/v2$ go get -u github.com/golang/protobuf/protoc-gen-go然后安装 protoc,这是软件下载连接。我用的操作系统是 centos 7,因此下载的是:prot...

2020-02-17 23:56:32 856

原创 GORM 字段使用自定义类型

文章目录起步方法1:类型别名场景 1场景 2方法2:定义结构体场景 3结合源码分析Scan 与 Value 方法从何而来?Valuer 接口的注意事项起步想在使用 GORM 时使用自定义类型必然事出有因,一般可有以下两种方式:方法 1:type MyString string方法 2:type MyString struct { string}当需求比较简单时,...

2020-02-17 08:35:48 16703 1

原创 Go 方法接收器与接口

在写 Go 的时候,我们常会发现以下情况:type Z struct {}func (zv Z) Hello() { log.Println("hello")}func (zp *Z) World() { log.Println("world")}func main() { { zv := Z{} zv.Hello() ...

2020-02-08 22:50:10 698 2

原创 fetch 引发 blocked by CORS policy

fetch 引发 blocked by CORS policy文章目录fetch 引发 blocked by CORS policy起步从一个 demo 入手后端如何解析参数流行的 json 风格参考起步当使用 fetch 函数做跨域请求时,大概率会在浏览器 Console 中看到这样一个错误信息:Access to fetch at 'xxx' from origin 'null' has...

2020-02-04 23:39:59 11465 2

原创 Go Http 解析 text/plain

在没有任何框架的加持下,如果客户端(前端)传递过来的数据类型是:text/plain 。// 请求头Content-Type: text/plain;charset=UTF-8Go 的解析方式是:import ( "io/ioutil" ...)func apiHandler(w http.ResponseWriter, r *http.Request) { ...

2020-02-02 15:40:12 1878

原创 MySQL 部署主从数据库

文章目录起步操作步骤感谢起步借助 Docker 容器部署 MySQL 主从数据库。以下内容涉及路径、端口等可更换内容会额外加以说明。如果你还没用过 Docker,不妨先看看 Centos7 上安装 MySQL。操作步骤创建主从数据库的映射目录。# 创建主(master)据库的数据(data)目录,配置(conf)目录$ mkdir /Users/guan/Mine/docker_...

2020-01-21 21:05:58 191

原创 Golang struct,map,json 之间的转换

Golang struct,map,json 之间的转换文章目录Golang struct,map,json 之间的转换起步struct <=> jsonmap <=> jsonstruct <=> map感谢起步利用 Go 写一个项目时,比如常见的 web server,很容易涉及到 struct,map,json 三者之间的转换。这里想简单总结下,帮助...

2019-12-24 16:42:21 421

原创 Centos7 上安装 MySQL

Centos7 上安装 MySQL文章目录Centos7 上安装 MySQL起步操作步骤可能用到的 docker 命令感谢起步在 Centos7 上安装 mysql 是一件比较麻烦的事儿,要么将源码拉下来自己编译,要么忍受乌龟爬的外网。只要操作简单,方案可行,乌龟爬就乌龟爬吧——如果你抱着这样的想法,不妨转至这篇文章 CentOS7安装MySQL(完整版)。本文是想寻找一个折中点。既保证 ...

2019-11-04 14:23:57 179

原创 shell 并发执行多任务

shell 并发执行多任务文章目录shell 并发执行多任务起步& 与 wait最后起步现有 shell 脚本如下。即:脚本中有函数 Task1、Task2、Task3,每个函数执行是会打印 start,即将结束时打印 stop,中间用 sleep 模拟耗时操作。function Task1() { printf "[$(date)] task1 start.\n...

2019-10-22 23:57:35 760

原创 区别二维数组中的 a 与 a[0]

区别二维数组中的 a 与 a[0]文章目录区别二维数组中的 a 与 a[0]起步正文参考起步在一个二维数组 a[2][3] 中,a 与 a[0] 拥有相同的地址,但它们各自存在的意义却不同。正文现在,我们创建一个二维数组,再打印它们的各自地址:int a[2][3] = {{1, 2, 3}, {4, 5, 6}};printf("a address is %p\n", a);...

2019-10-19 16:57:08 9241

原创 在 vim 中跳转到 py 源码

文章目录起步tagsptags.py 的问题起步作为一个后端开发者,用 vim 查看代码总是难以避免的事。打开代码之后,想跳转到某个接口实现的地方,如果该接口在一个文件中还好,可在不同文件中又是难以避免的事。那么,如果是 python 项目,怎样才能优雅的跳到接口定义的地方去呢?tags事实上 vim 支持设置 tags 属性,其对应的值就是 tags 文件的路径。在 normal 模式...

2019-10-13 21:04:57 1006

原创 MAC-快捷键打开终端

MAC-快捷键打开终端目标通过快捷键 Cmd + Opt + T 快速打开 MAC 默认终端。步骤快捷键 Cmd + 空格 打开 Spotlight。搜索框键入 automator,打开自动操作。(或是:打开启动台 -> 其他 -> 自动操作)打开快速操作。左侧栏双击运行 AppleScript,右上工作流程选择没有输入。右中文本框键入以下内容:on run ...

2019-10-06 15:05:04 34348 12

原创 3n + 1 问题——引发的缓存思考

3n + 1 问题——引发的缓存思考文章目录3n + 1 问题——引发的缓存思考问题描述方法 1(实时计算)方法 2(结果缓存)方法 3(过程缓存)最后问题描述有这样一个规律:对任意大于 1 的自然数 n,如果 n 为奇数,将其变化为 3n + 1;如果 n 为偶数,将其变化为 n/2。经过若干次变化后,一定会使 n 变为 1。如果 n = 5:5 -> 16 -> 8 -...

2019-10-01 00:40:11 202

原创 Superset 开发环境搭建

Superset 开发环境搭建文章目录Superset 开发环境搭建起步设置静态 IPCentos7 更换源Python3.6 安装pip 国内源npm 安装Superset 安装Pycharm 调试参考起步该教程从虚拟机装完 Centos7 开始。此次环境搭建在 /opt 目录下。文件夹中的代码具有时效性,无法做到与 github 上的开源项目 superset 时时一致。现在时间是 0...

2019-09-08 20:54:15 899

原创 C语言-可变参数列表

C语言-可变参数列表文章目录C语言-可变参数列表起步C语言的可变参数列表VA_ARGS 与 记号粘贴符标准库 stdarg起步假使你有使用 Python 编程的经验,你应该会觉得设计接口能用 *arg 和 **kwarg 这件事是多么的酸爽。毕竟定义一个拥有长长参数列表的函数是多么的累赘,形参不能总是被函数使用到则是累赘中的累赘。多说无益,还是用个 Python Demo 举例。假使我想设...

2019-08-31 17:57:49 272

原创 理解 MySQL 中的 JOIN 与 UNION

理解 MySQL 中的 JOIN 与 UNION文章目录理解 MySQL 中的 JOIN 与 UNION起步开始前的准备JOINNATURAL JOINLEFT JOINRIGHT JOINUNIONUNION ALL起步最近公司接到一个项目,任务是根据需求制表。完整过程是:用 SQL 汇总数据,再写进 Execel 文件中。SQL 这门课倒是大学里学过,过久不用,不记得许多,顶多 SEL...

2019-08-04 14:45:12 1613

原创 Pycharm 远程启动 Django 项目不能访问

文章目录操作步骤问题排查结论操作步骤今天用 Pycharm 远程创建一个 Django 项目。创建成功后 Pycharm 会自动为其生成 Configuration ,因此我没有自己去配置。点击运行按钮,测试 Django 能否正常启动。结果是,项目正常启动(Pycharm 没有报错),但打开浏览器访问 http://192.168.20.133:8000 ,不能得到正常页面。问题排...

2019-07-29 22:42:06 1548

原创 对角线问题

对角线问题问题这里有 n * n 矩阵,要求左上到右下的对角线上都为 x,其他地方为 y。x、y 任意值,但不相等。x y y ... yy x y ... yy y x ... y. . . ... .. . . ... .y y y ... x解决我们可以把这里的矩阵看做一个二维数组,长度为 N;x,y 赋任意不等常数即可。>>> 方法一现在,最...

2019-07-15 10:25:43 959

原创 二分查找

二分查找二分查找是一个比较简单的算法,用 C++ 语言实现如下:template <typename T>int binary_search( const T& key, // 搜索元素 key vector<int>::const_iterator data, // 数组起始位置 int N) // 元素...

2019-07-14 08:30:57 142

原创 VS Code + Flutter 搭建环境(Win)

VS Code + Flutter 搭建环境(Win)文章目录VS Code + Flutter 搭建环境(Win)安装 Android Studio下载 Android Studio安装 Android Studio添加模拟器安装与配置 FlutterVS Code 配置参考安装 Android Studio下载 Android Studio由于官网需要翻墙,这里建议没有梯子的朋友选...

2019-07-02 09:52:23 4263 1

原创 TypeError: super(type, obj): obj must be an instance or subtype of type

问题今天学习《Python Web 开发实战》自定义转换器这一小节,书中有段代码如下:class ListConverter(BaseConverter): def __init__(self, url_map, separator="+"): super(ListConverter, self).__init__(url_map) self.sepa...

2019-06-15 16:11:09 25199 1

chromedriver 2.41

Latest Release: ChromeDriver 2.41 Supports Chrome v67-69 内包含: win,linux,mac 三个版本

2018-08-22

《精通Scrapy网络爬虫》刘硕 pdf

详细的讲述了Scrapy框架各种常用方法,是一本爬虫进阶的不错书籍,有目录。

2018-08-19

Visual C++ 14.0

解决python在pip install xxx的时候报错Microsoft Visual C++ 14.0 is required(下载之后默认安装即可)

2018-08-19

利用python进行数据分析pdf+配套资料

本来奔着程序员开源共享精神,但是设置资源分至少得1一个。所以没法。 Github上下载的原版完整资料,pdf是中文版。

2018-05-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除