<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wallace_www的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wallace_www</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wallace_www]]></copyright><item><title><![CDATA[MySQL 事务详解]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/118768540</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/118768540</guid><author>wallace_www</author><pubDate>Thu, 19 Aug 2021 22:31:54 +0800</pubDate><description><![CDATA[本文将会介绍 MySQL 的事务 `ACID` 特性和 MySQL 事务控制流程的语法，并介绍事务并发处理中可能出现的异常情况，比如脏读、幻读、不可重复读等等，最后介绍事务隔离级别。]]></description><category></category></item><item><title><![CDATA[Golang 并发: goroutine and channel]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/117792034</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/117792034</guid><author>wallace_www</author><pubDate>Wed, 14 Jul 2021 22:30:32 +0800</pubDate><description><![CDATA[前言
在前面的系列文章中，我们基本已经讲解完了 Golang 的数据类型、流程控制。函数、方法、接口、断言等基本知识点，这些内容其实和其他语言大同小异，除了语法以外并没有什么特别的地方。
那么，Go 语言和其他语言的区别是什么？她独特的魅力到底在哪里呢？答案就是并发。作为少有的语言层面就支持多协程的编程语言，Go 语言的并发编程简洁而优雅，并且拥有极为出色的性能。
本文先简单介绍一些并发的基本概念，在了解了 goroutine 协程之后，下一篇文章再探讨协程之间的通信。
文章目录前言进程、线程和协程进程线程]]></description><category></category></item><item><title><![CDATA[MySQL 索引结构]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/117304921</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/117304921</guid><author>wallace_www</author><pubDate>Sun, 06 Jun 2021 17:43:01 +0800</pubDate><description><![CDATA[前言
在上一篇 MySQL 索引类型 中，我们已经了解了索引的基本概念以及分类，那么，索引的结构是什么样的？为什么索引可以这么快？这一篇文章将继续探讨索引的实现原理和数据结构。
文章目录前言索引数据结构二叉树的局限性B 树B+ 树
索引数据结构
首先我们要知道，由于为了实现持久化，只能将索引存储在硬盘上，通过索引来进行查询的时候就会产生硬盘的 I/O 操作，因此，设计索引时需要尽可能的减少查找次数，从而减少 I/O 耗时。
此外还需要知道一个很重要的原理，计算机系统对磁盘 I/O 会做预读优化，当一次I/O]]></description><category></category></item><item><title><![CDATA[MySQL 索引概览]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/117264149</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/117264149</guid><author>wallace_www</author><pubDate>Wed, 26 May 2021 10:00:32 +0800</pubDate><description><![CDATA[前言
在 SQL 优化中，索引是至关重要的一环，能给查询效率带来质的飞跃，但是索引并不是万能的，不合理的索引设计甚至会拖慢查询效率。本文将详细介绍各类索引的定义、用法以及分类，并讨论使用索引时应该权衡的要素。
文章目录前言概览索引定义索引优缺点优点缺点索引类型按功能逻辑划分普通索引唯一索引主键索引全文索引按物理实现划分聚集索引（clustered index）非聚集索引（non-clustered index）按字段个数划分单一索引组合索引最左匹配原则
概览
索引定义
索引是一种专门用于帮助 SQL 高效获]]></description><category></category></item><item><title><![CDATA[MySQL 基础语法]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/116766427</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/116766427</guid><author>wallace_www</author><pubDate>Wed, 19 May 2021 21:05:20 +0800</pubDate><description><![CDATA[前言
数据库管理系统（DBMS, Database Management System）主要分为关系型数据库管理系统（RDBMS）和非关系型数据库管理系统（NoSQL）两种。作为最流行的 RDBMS 之一， MySQL 因为其开源、灵活高效的特性，在很多互联网公司都有着广泛的使用，并且对各种编程语言都有很好的兼容。
本文将介绍 MySQL 的基础语法，包括数据类型，数据库操作，基本 sql 语句等内容。关于 MySQL 的安装配置，可以参考教程。
MySQL 执行过程
MySQL  是典型的 C/S 结构，]]></description><category></category></item><item><title><![CDATA[Golang type assertion 类型断言]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/116572820</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/116572820</guid><author>wallace_www</author><pubDate>Tue, 18 May 2021 21:45:38 +0800</pubDate><description><![CDATA[前言
在很多情况下，接口类型没有办法直接作为值来使用，或者说我们需要检查某个接口变量是否为我们期望的类型，就需要先使用类型断言 (type assertion)进行类型判断以及转换。
基本用法
断言语句
一个类型断言语句检查它操作对象的动态类型是否和断言的类型匹配。
value, ok := x.(T)

各变量含义为：
x ：要判断的变量，必须为接口类型
T ：被判断的目标类型
value ：成功转换后的值，动态类型
ok：是否为目标类型，bool 类型
需要注意的是，如果 x == nil，那么断言一定]]></description><category></category></item><item><title><![CDATA[Golang interface 接口详解]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/115710853</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/115710853</guid><author>wallace_www</author><pubDate>Wed, 21 Apr 2021 22:26:20 +0800</pubDate><description><![CDATA[前言
之前写过，golang 是通过 结构体(struct)-方法(method)-接口(interface) 的组合使用来实现面向对象的思想。在之前的文章 Golang 复合类型 和 Golang method 方法详解 已经详细介绍过 struct 和 method，本文将介绍 golang 面向对象的另一个重要组成部分：接口(interface)。
接口概念
接口是一种抽象的类型，描述了一系列方法的集合，作用是对一系列具有联系的方法做出抽象和概括，类似于其他语言中类的成员变量。不同的是，golang ]]></description><category></category></item><item><title><![CDATA[Golang method 方法详解]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/115677156</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/115677156</guid><author>wallace_www</author><pubDate>Wed, 14 Apr 2021 21:46:46 +0800</pubDate><description><![CDATA[前言
作为一种面向对象编程语言，golang 和其他的 OOP 语言在面向对象的实现上有较大的区别，在 golang 中，没有 class 的概念，而是通过 结构体(struct)-方法(method)-接口(interface) 的组合使用来实现面向对象的思想。在之前的文章 Golang 复合类型 中已经介绍过结构体的概念，本文将介绍 method 的用法。
基本语法
接收器
方法的使用和函数非常相似，都是通过包装一段代码块来实现某种可复用的功能，不同的是，函数的输入通过入参来定义，而对于方法，声明时需要]]></description><category></category></item><item><title><![CDATA[Golang function 函数详解]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/115217086</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/115217086</guid><author>wallace_www</author><pubDate>Tue, 30 Mar 2021 17:28:17 +0800</pubDate><description><![CDATA[对于任何语言而言，函数都是结构化编程中的重要一环，通过函数机制，可以把一个大的模块分解成多个小任务，让代码结构更清晰，可复用性大大提高。
        本文将介绍如何定义，调用函数，如何定义和接收函数错误，以及 golang 特有的可变参数，闭包，defer，panic 和 recover 等机制。]]></description><category></category></item><item><title><![CDATA[Golang 条件循环语句]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/115143024</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/115143024</guid><author>wallace_www</author><pubDate>Tue, 23 Mar 2021 21:08:06 +0800</pubDate><description><![CDATA[本文简单描述 golang 中最常用的两种流程控制语句，条件和循环。在其他编程语言的基础上介绍条件语句 if 和 switch 的语法和 fallthrough 关键字，以及循环语句 for 的三种使用形式和 break/continue 关键字，并粗略介绍了 goto 语句的用法。]]></description><category></category></item><item><title><![CDATA[Git 基本操作]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/115115492</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/115115492</guid><author>wallace_www</author><pubDate>Tue, 23 Mar 2021 12:04:23 +0800</pubDate><description><![CDATA[基本流程
git 的基本工作流程如下

使用某种 git hosting tool（如 github，bitbucket）创建项目代码仓库（repository）。
将远端代码仓库克隆（clone）或者拉取（pull）到本地工作区。
创建开发分支（branch），在本地分支对文件进行编辑操作，并将文件从工作区添加 (add) 到暂存区（stage）
将文件从暂存区提交（commit）到版本库
将本地版本库的内容推送 (push) 到远端版本库
创建 pull request，将开发分支合并到主分支（mast]]></description><category></category></item><item><title><![CDATA[Golang复合类型]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/114646363</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/114646363</guid><author>wallace_www</author><pubDate>Wed, 10 Mar 2021 22:31:07 +0800</pubDate><description><![CDATA[前言
上文 Golang 基本类型 中我们介绍了golang 基本类型的常见用法，本文将介绍 golang 中的复合数据类型，常用的复合数据类型有 array 数组，slice 切片，map 字典 和 struct 四种。
数组
数组是一个由固定长度的特定类型元素组成的序列，由于长度固定，在实际业务场景下使用较为不便，因此在 go 中很少直接使用。
数组的长度是数组类型的一个组成部分，因此 [3]int 和 [4]int 是两种不同的数组类型。数组的长度必须是常量表达式，因为数组的长度需要在编译阶段确定。
]]></description><category></category></item><item><title><![CDATA[Golang 基本数据类型]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/114333523</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/114333523</guid><author>wallace_www</author><pubDate>Wed, 03 Mar 2021 21:37:27 +0800</pubDate><description><![CDATA[Golang 基本数据类型
golang 是一种强类型语言，变量使用时需要进行强制类型定义，一旦某一个变量被定义类型，如果不经强制转换，那么它永远就是该数据类型。本文主要介绍 golang 的基本数据类型。
变量声明及初始化
go 语言推荐使用驼峰式命名，如 QuoteRuneToASCII 和 parseRequestLine 等。
定义变量的几种形式
// 第一种，先声明类型，再进行初始化赋值
// 如果没有初始化，则变量默认为零值。
var a int
a = 3

// 第二种, 根据赋值自动适配类]]></description><category></category></item><item><title><![CDATA[拐点检测常用算法介绍]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/101363199</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/101363199</guid><author>wallace_www</author><pubDate>Wed, 25 Sep 2019 14:32:28 +0800</pubDate><description><![CDATA[拐点检测常用算法介绍
最近在学习拐点检测的相关问题， 发现 C.Truong 的论文 对拐点检测的整个流程和目前主流的一些算法介绍的比较清楚，所以在这里进行了一些记录以及总结，并且对 Truong 发布的 ruptures 库做了一些简单的介绍。如果想要进行更深入的研究，请参考原论文和 ruptures。
问题定义
拐点检测名为 change point detection，对于一条不平缓的时间序...]]></description><category></category></item><item><title><![CDATA[Student's t-test]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/101355063</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/101355063</guid><author>wallace_www</author><pubDate>Wed, 25 Sep 2019 12:07:39 +0800</pubDate><description><![CDATA[Student’s t-test
常作为检验一组来自正态分布总体的独立样本的期望值是否为一个实数，或者两组正态分布样本的期望值之差是否为某一个实数。可以用于检验两个样本集是否有显著的差异。
前提假设
大多数的 t−testt-testt−test  统计量形式为 t=Z/st=Z/st=Z/s，其中 ZZZ 与 kkk 为已知数据的函数，kkk 为尺度参数，
t−testt-testt−test ...]]></description><category></category></item><item><title><![CDATA[EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES 论文笔记]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/101353789</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/101353789</guid><author>wallace_www</author><pubDate>Wed, 25 Sep 2019 12:00:56 +0800</pubDate><description><![CDATA[EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES 论文笔记
原论文链接
摘要
包括神经网络在内的许多机器学习模型都很容易受到对抗样本（adversarial examples）的攻击导致误分类，对抗性样本指通过刻意的给输入增加一些轻微的恶意扰动，从而使系统以高置信度对样本进行错误的分类。之前的一些观点认为这种现象是由于非线性性质和过拟合导致的，但是本文认...]]></description><category></category></item><item><title><![CDATA[智能运维]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/101353570</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/101353570</guid><author>wallace_www</author><pubDate>Wed, 25 Sep 2019 11:40:06 +0800</pubDate><description><![CDATA[智能运维
AIOps(Artificial Intelligence for IT Operations) 即智能运维，其目标是给予已有的运维数据（日志，监控信息，应用信息等），通过机器学习的方式来进一步解决自动化运维所未能解决的问题，提高系统的预判能力及稳定性。
KPI：Key Performance Indicators
SRT：search response time
HSRT: High ...]]></description><category></category></item><item><title><![CDATA[AI 可靠性论文整理]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/101353347</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/101353347</guid><author>wallace_www</author><pubDate>Wed, 25 Sep 2019 11:37:05 +0800</pubDate><description><![CDATA[AI 可靠性论文整理鲁棒性  Robustness相关文献高优先级对抗样本设计与抵御鲁棒性评估其他鲁棒性研究次要优先级公平性 Fairness相关文献高优先级次要优先级可解释性  Explainability相关文献高优先级次要优先级可追溯性 Lineage相关文献名词解释
鲁棒性  Robustness
通过暴露和修复漏洞来确保AI系统的安全性和可靠性

识别并防御新的攻击
设计新的对抗性训练方...]]></description><category></category></item><item><title><![CDATA[python定时任务介绍]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/93199922</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/93199922</guid><author>wallace_www</author><pubDate>Fri, 21 Jun 2019 15:49:46 +0800</pubDate><description><![CDATA[定时任务
本文介绍几种简单的执行定时任务的方法，包含两种可以重复运行定时任务的方法以及两种只能定时运行一次任务的方法
死循环 + time.sleep() （定时多次运行）
第一种办法简单粗暴。那就是在一个死循环中，使用线程睡眠函数 sleep()。
import time

def dosomething(s):
    print(s)

def timedTask():
    while ...]]></description><category></category></item><item><title><![CDATA[kafka 简介]]></title><link>https://blog.youkuaiyun.com/wallace_www/article/details/91979219</link><guid>https://blog.youkuaiyun.com/wallace_www/article/details/91979219</guid><author>wallace_www</author><pubDate>Fri, 14 Jun 2019 16:57:17 +0800</pubDate><description><![CDATA[kafka 学习记录
Apache Kafka® 是 一个分布式流处理平台，一般来说流处理平台有如下三种特性：

可以发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。
可以储存流式的记录，并且有较好的容错性。
可以在流式记录产生时就进行处理。

Kafka 主要的应用场景为：

构造实时流数据管道，它可以在系统或应用之间可靠地获取数据。 (相当于message queue)
构建实时...]]></description><category></category></item></channel></rss>