<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Wollens Blogs]]></title><description><![CDATA[Coding...]]></description><link>https://blog.youkuaiyun.com/DanielJackZ</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; DanielJackZ]]></copyright><item><title><![CDATA[github Warning: the ECDSA host key for ‘github.com‘ differs from the key for the IP address “xxx“ 解决]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/129827334</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/129827334</guid><author>DanielJackZ</author><pubDate>Tue, 28 Mar 2023 23:05:03 +0800</pubDate><description><![CDATA[最近使用本机很久未使用的 git 提交代码，每次提交都会出现。]]></description><category></category></item><item><title><![CDATA[局域网下连接非本机 Mysql]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/124643547</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/124643547</guid><author>DanielJackZ</author><pubDate>Sun, 08 May 2022 09:21:01 +0800</pubDate><description><![CDATA[背景
昨天在做一个小服务时，需要前端同事连接本机 Mysql 进行调试，但是在同一个局域网下连接总是失败，查找资料发现需要将 mysql 授权访问，使用 grant all privileges on * . * to 'user'@'192.168.0.163' identified by '123'; 其中 user 是授权用户名，后面的 IP 是允许连接的 IP，最后面则是登陆密码。在 Mysql 执行这条语句报错：
You have an error in your SQL syntax; chec]]></description><category></category></item><item><title><![CDATA[CentOS 安装 mongodb]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/124210456</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/124210456</guid><author>DanielJackZ</author><pubDate>Sat, 16 Apr 2022 11:12:46 +0800</pubDate><description><![CDATA[CentOS 安装 mongodb

推荐使用 yum 源头安装方式，便于管理



创建 mongodb yum 源头


vim /etc/yum.repos.d/mongodb-org-5.0.repo


编辑刚刚创建的文件，将下面👇内容写入
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck]]></description><category></category></item><item><title><![CDATA[多进程构建 IP 代理池]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/123978904</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/123978904</guid><author>DanielJackZ</author><pubDate>Tue, 05 Apr 2022 22:23:14 +0800</pubDate><description><![CDATA[IPProxy_Pool

🚀 Building Ip Proxy Pool

相关知识点

multiprocessing 【爬取数据】
threading【校验数据有效性】
lxml【解析 html】

Project Structure
├── LICENSE
├── Makefile        # make 服务启动命令
├── README.md
├── app.py          # crawl 启动入口
├── config.py       # crawl config
├── da]]></description><category></category></item><item><title><![CDATA[Pymongo 使用]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/123749384</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/123749384</guid><author>DanielJackZ</author><pubDate>Sat, 26 Mar 2022 01:37:22 +0800</pubDate><description><![CDATA[Pymongo

说明：以下操作 pymongo: 4.0.4  mongo: 4.4.4

MongoDB 是由 C++ 语言编写的非关系型数据库，是一个基于分布式文件存储的开源数据库系统，其内容存储形式类似 JSON 对象，它的字段值可以包含其他文档、数组以及文档数组，非常灵活。
连接 MongoDB
没有开启认证 mongo
连接 MonogoDB 时，我们需要使用 PyMonogo 中的 MongoClient。连接 MongoDB 有两种形式


方式一：传入 host 和 port
import]]></description><category></category></item><item><title><![CDATA[一个 emoji 引发的思考]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/123577106</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/123577106</guid><author>DanielJackZ</author><pubDate>Fri, 18 Mar 2022 16:01:43 +0800</pubDate><description><![CDATA[MySQL 字符集相关梳理
故事背景
今天在做项目数据迁移，涉及到将 A 表中的某个字段复制到 B 表，本地（MAC Mysql 8.0.25）完全没问题，但是在服务器上执行迁移文件时报错：
经过一番查阅资料发现是由于 emoji 字符导致的，由于服务器中 Mysql 版本为 5.6 在 A 表中设置的字符集为 utf8mb4 而 B 表中默认使用 utf8，utf8 最大只支持三个字节，而 emoji 表情字节占用大于三个，因此导入失败。下面关于 MySQL 字符相关做如下梳理：
MySQL 字符集
版本]]></description><category></category></item><item><title><![CDATA[Python 进程、线程、协程]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/123508112</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/123508112</guid><author>DanielJackZ</author><pubDate>Tue, 15 Mar 2022 17:43:00 +0800</pubDate><description><![CDATA[进程和线程
在爬虫开发中，进程和线程的概念非常重要的，提高爬虫的工作效率，打造分布式爬虫，都离不开进程和线程的身影。本节将从多进程、多线程、协程三个方面，帮组大家回顾 Python 语言中进程和线程的常用操作，以便在接下来的爬虫开发中灵活运用进程和线程。
多进程
Python 实现多进程的方式主要有两种，一种方法是使用 os 模块中的 fork 方法，另一种方法是使用 multiprocessing 模块。这两种方法的区别在于前者仅使用 Unix/Linux 操作系统，对 Windows 不支持，后者则是跨]]></description><category></category></item><item><title><![CDATA[Python 操作文件和目录方法总结]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/123426945</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/123426945</guid><author>DanielJackZ</author><pubDate>Fri, 11 Mar 2022 16:01:52 +0800</pubDate><description><![CDATA[Python 操作文件和目录方法总结

源文件下载地址

]]></description><category></category></item><item><title><![CDATA[Git Commit emoji Guide]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/123215761</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/123215761</guid><author>DanielJackZ</author><pubDate>Tue, 01 Mar 2022 20:51:04 +0800</pubDate><description><![CDATA[Git Commit emoji Guide
背景
gitmoji 是一个标准化和解释在 GitHub 提交消息上使用 emoji 的提议，gitmoji 是一个开源项目，专门规定了在 ``github 提交代码是应当遵循的 emoji 规范。在 git commit上使用 emoji 提供了一种简单的方法，仅通过查看所使用的表情符号来确定提交的目的或意图
概述
在执行 git commit 指令时使用 emoji 图标为本次提交一个特别的图标，这个本次提交的记录很容易突出重点，也可以光看图标就知道本次提交]]></description><category></category></item><item><title><![CDATA[分布式多机集群环境下如何保证任务只执行一次]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/123016838</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/123016838</guid><author>DanielJackZ</author><pubDate>Sat, 19 Feb 2022 12:31:26 +0800</pubDate><description><![CDATA[问题背景：当我们有多个服务器，每个服务器上都有相同的定时任务，如每天凌晨定时插入数据，如果多个服务器上的定时任务都执行了会导致数据重复，如果只让一个服务器存在定时任务代码，部署起来比较麻烦，需要多套代码，万一定时任务机器宕机这会导致系统不稳定性
一般解决方案有如下几种：

数据库实现
基于 Redis 的分布式锁
利用 quartz 集群分布式

数据库实现

数据库建立一个定时表，记录 IP 和插入时间
当多个服务器通知执行任务时把自己的 IP 和当前时间插入定时表
定时表中查询当天最早插入的时间那条记录]]></description><category></category></item><item><title><![CDATA[API 接口的安全性及鉴权方式]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/122520971</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/122520971</guid><author>DanielJackZ</author><pubDate>Sun, 16 Jan 2022 11:29:12 +0800</pubDate><description><![CDATA[什么是 API 鉴权
公司、个人开发的系统上线后，系统中 API 暴露到互联网上会存在一定的安全风险，eg: 爬虫、恶意访问等。因此我们要先对接口调用方做一个用户鉴权，对访问 API 权限进行限制，如果鉴权通过则允许用户调用 API。根据不同的场景鉴权方案也有很多种。
常用 API 接口安全措施????
数据加密
数据在互联网传输过程很容易被抓包，如果直接传输，那么用户数据可能被其他人获取，导致系统安全性等问题，所以必须对数据加密。常见的做法是对关键字段加密，比如用户密码直接通过 md5 加密。
数据签名
]]></description><category></category></item><item><title><![CDATA[多容器 GRPC 服务通信]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/122267860</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/122267860</guid><author>DanielJackZ</author><pubDate>Sat, 01 Jan 2022 15:18:54 +0800</pubDate><description><![CDATA[创建 docker network

docker network create flask-admin-dev



编排容器
# server
version: "2"
services:
    notify_service_dev:
        build: .
        image: notify-service:0.1
        container_name: notify_service_dev
        volumes:
            - .:/code
..]]></description><category></category></item><item><title><![CDATA[Vscode 使用 Python]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/122107879</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/122107879</guid><author>DanielJackZ</author><pubDate>Thu, 23 Dec 2021 14:57:39 +0800</pubDate><description><![CDATA[???? python + vscode]]></description><category></category></item><item><title><![CDATA[pytesseract 使用]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/121304320</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/121304320</guid><author>DanielJackZ</author><pubDate>Sat, 13 Nov 2021 14:43:40 +0800</pubDate><description><![CDATA[pytesseract 使用

pip install pytesseract
在识别图片时会出现如下报错：

# error message
pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your PATH. See README file for more information.

该报错是由于本机没有安装 tesseract 导致，其实 pytesseract 是在 ]]></description><category></category></item><item><title><![CDATA[生成器、迭代器、可迭代对象]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/120827704</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/120827704</guid><author>DanielJackZ</author><pubDate>Mon, 18 Oct 2021 15:38:31 +0800</pubDate><description><![CDATA[本节内容

列表生成式
生成器（Generator）
可迭代对象（Iterable）
迭代器（Iterator）
生成器、迭代器、可迭代对象关系

列表生成式

列表生成式是 python 中的一种语法糖，就是一个用来生成列表特定语法形式的表达式，是 python 提供的一种生成列表的简洁形式


基础语法格式


[exp for iter_var in iterable]



工作过程

迭代 iterable 中的每个元素
每次迭代都先把结果赋值给 iter_var，然后通过 exp 得到一个新的计]]></description><category></category></item><item><title><![CDATA[python argsparse 构建终端交互程序]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/120570603</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/120570603</guid><author>DanielJackZ</author><pubDate>Thu, 30 Sep 2021 17:58:33 +0800</pubDate><description><![CDATA[argparse

argparse 模块可以让让轻松编写用户友好的命令行接口。程序定义它需要的参数，然后 argparse 模块还会自动生成帮助和使用手册，并在用户给程序传入无效参数时报出错误信息

ArgumentParser 对象

创建一个新的 ArgumentParser 对象。所有的参数都作为关键字参数传入，参数描叙如下（???? 表示常用参数）：

ArgumentParser -h 命令行展示格式：
usage
description
option arguments
epilog

pro]]></description><category></category></item><item><title><![CDATA[Git 多用户配置]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/119766982</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/119766982</guid><author>DanielJackZ</author><pubDate>Tue, 17 Aug 2021 21:52:58 +0800</pubDate><description><![CDATA[Git 多用户配置

MacOS 系统

故事背景
日常工作中我习惯带自己的电脑去公司上班，公司使用 Gitlab 管理代码，但是个人使用全球同性交友平台 Github 管理代码。在公司时你需要将公司代码提交到 Gitlab 中，下班后个人代码提交到 Github ，这两个仓库不仅地址不一样仓库的用户名和邮箱????都不一样，这里就需要我们在 git 中配置多个 git 用户以此来满足不同的代码提交需求。
多用户配置




用户名
邮箱
代码管理




tom
tom@163.com
Github


]]></description><category></category></item><item><title><![CDATA[为什么精英都是时间控]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/119747270</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/119747270</guid><author>DanielJackZ</author><pubDate>Tue, 17 Aug 2021 08:14:21 +0800</pubDate><description><![CDATA[????为什么精英都是时间控 --日本.华泽紫苑

微信读书

序章
我所主张的时间管理术，是将人“从忙碌中解放出来的方法”。我会把工作限定在一个相对固定的时间范围内，在规定的时间内尽量增加工作量，提高工作的质量。如果您能坚决执行我的时间管理术，您一定能从忙碌的工作中解脱出来。

时间管理术第一原则：专注力为中心对时间分配进行思考????

■工作大体上可以分为两种：“专注性工作”和“非专注性工作”。
■“专注性工作”应该放在上午做。
■上午的时间价值是晚上的时间价值的4倍。
■不必勉强自己提高专注力。

]]></description><category></category></item><item><title><![CDATA[拖拽排序实现方式]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/119539989</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/119539989</guid><author>DanielJackZ</author><pubDate>Mon, 09 Aug 2021 15:57:03 +0800</pubDate><description><![CDATA[拖拽排序实现方式
问题背景
最近在做项目时遇到一个需求，需要支持数据拖拽排序。通过拖动数据以此来达到对数据重新排列，且可能存在多人同时对相同数据重新排列问题
需求描叙

支持数据拖拽排序，一次只允许拖动一列
允许多人同时对相同数据列表拖拽排序
数据数量最多允许 1000

解决方式
取中值法
实现思路：

创建元素时给元素赋默认位置（position 字段记录该值）。赋值规则：当创建第一个元素时，默认位置赋值为100，第二个元素为 2 * 100 = 200，增加第N个元素时，位置赋值为N*100（等差数列]]></description><category></category></item><item><title><![CDATA[黑盒测试 & 白盒测试]]></title><link>https://blog.youkuaiyun.com/DanielJackZ/article/details/119494279</link><guid>https://blog.youkuaiyun.com/DanielJackZ/article/details/119494279</guid><author>DanielJackZ</author><pubDate>Sat, 07 Aug 2021 22:45:13 +0800</pubDate><description><![CDATA[任何工程产品都可以使用一下两法之一进行测试：
黑盒测试：已知产品的功能设计规格，可以进行测试证明每个实现的功能是否符合要求
白盒测试：已知产品内部工作过程，可以通过测试证明每种内部操作是否符合设计规格要求，所有内部成分是否以经过检查
软件的黑盒测试意味着测试要在软件的接口处进行，这种方法是把测试对象看成一个黑盒子，测试人员完全不考虑程序内部的逻辑结构和内部特性，只依据程序的需求规格说明书检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能性测试或数据驱动测试
软件白盒测试是对软件的过程细节作细致的检查，]]></description><category></category></item></channel></rss>