<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[松鼠豪的坚果]]></title><description><![CDATA[代码似坚果，坚果似初恋。]]></description><link>https://blog.youkuaiyun.com/Scrat_Kong</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Scrat_Kong]]></copyright><item><title><![CDATA[如果有人问你数据库的原理，看这篇文章。（超长预警）]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/100121389</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/100121389</guid><author>Scrat_Kong</author><pubDate>Wed, 28 Aug 2019 17:00:32 +0800</pubDate><description><![CDATA[长文，相当的通透。以下为scrat进行总结后的删减版。

下面假定你已经知道时间复杂度

关系型数据库无处不在，而且种类繁多，从小巧实用的 SQLite 到强大的 Teradata 。但很少有文章讲解数据库是如何工作的。





作为一个开发人员，我不喜欢用我不明白的东西。数据库已经使用了40年之久，一定有理由的。关系型数据库非常有趣，因为它们是基于实用而且可复用的概念。如果你对了解一个数据库...]]></description><category></category></item><item><title><![CDATA[前端常见跨域解决方案]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/100111890</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/100111890</guid><author>Scrat_Kong</author><pubDate>Wed, 28 Aug 2019 07:43:51 +0800</pubDate><description><![CDATA[什么是跨域？

跨域是指的一个域名下的文档或者脚本试图去请求另一个域名下的资源，这里跨域是广义的。

广义的跨域

资源跳转：A链接、重定向、表单提交
	资源嵌入：&lt;link&gt; 、&lt;script&gt; 、&lt;img&gt; 、&lt;frame&gt;等dom标签，还有样式中background：url()、@font-face()等文件外链
	脚本请求：js发起的ajax...]]></description><category></category></item><item><title><![CDATA[Python 文件操作]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/100063885</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/100063885</guid><author>Scrat_Kong</author><pubDate>Sun, 25 Aug 2019 16:15:42 +0800</pubDate><description><![CDATA[什么是文件 ？


这是文件




这是计算机中的文件



文件的作用 

“好记性不如烂笔头”。 
不仅人的大脑会遗忘事情，计算机也会如此，比如⼀个程序在运⾏过程中⽤了九牛二虎之力终于计算出了结果，试想⼀下如果不把这些数据存放起来，相⽐重启电脑之后，“哭都没地⽅哭了” 可见，在把数据存储起来有做么⼤的价值 。

使⽤⽂件的⽬的： 

就是把⼀些存储存放起来，可以让程序下⼀次执行的时候直接...]]></description><category></category></item><item><title><![CDATA[Python 异常处理]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/100047613</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/100047613</guid><author>Scrat_Kong</author><pubDate>Sun, 25 Aug 2019 15:41:12 +0800</pubDate><description><![CDATA[异常:

当Python检测到⼀个错误时，解释器就⽆法继续执⾏了，会出现⼀些错误的提示，这就是所谓的"异常"。

看如下示例:


print('-----test--1---')
open('123.txt','r')
print('-----test--2---')

打开⼀个不存在的⽂件123.txt，当找不到123.txt ⽂件时，就会抛出给我们⼀个IOError类型的错误，No such...]]></description><category></category></item><item><title><![CDATA[面向对象编程（OOP)]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/100034538</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/100034538</guid><author>Scrat_Kong</author><pubDate>Fri, 23 Aug 2019 18:20:37 +0800</pubDate><description><![CDATA[什么是面向对象 ? 

面向对象编程 (OOP，Object Oriented Programming）可以理解为将具有相互 关系的数据/操作封装成对象，以对象的⻆度去处理问题，让对象来完成相应处理 。

面向对象 vs 面向过程：

按照业务逻辑 从上到下 设计程序 的⽅式，叫做 ⾯向过程编程 (Procedure OrientedProgramming，POP，⾯向过程程序设计） 
	面向过程...]]></description><category></category></item><item><title><![CDATA[防瞎指南----程序员如何保护自己的眼睛]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/99730169</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/99730169</guid><author>Scrat_Kong</author><pubDate>Mon, 19 Aug 2019 15:26:25 +0800</pubDate><description><![CDATA[这篇文章由一个老程序员所整理，作者工作(编码）10年来，视力一直比较稳定，下面是他分享给广大程序员的护眼经验。



1、修改Visual Studio/SQL Server Management Studio编程字体大小

安装好编程软件，第一个要做的事情是修改字体大小。我一般是改成14pt，工具软件的默认字体值9pt太小了(Visual Studio .NET 2003的默认字体大小是9pt，...]]></description><category></category></item><item><title><![CDATA[闭包、装饰器]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/99702446</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/99702446</guid><author>Scrat_Kong</author><pubDate>Sun, 18 Aug 2019 15:33:32 +0800</pubDate><description><![CDATA[什么是闭包

闭包是与引用及作用域相关的计算机专业术语，先看下面一个demo

函数的引用：


def test():
    print('---in test func---')

test()  # 调用函数

ret = test   # 引用函数

print(id(ret))
print(id(test))

ret()  # 通过引用调用函数

运行结果：


---in test...]]></description><category></category></item><item><title><![CDATA[协程（微线程）、greenlet、gevent]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/99698031</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/99698031</guid><author>Scrat_Kong</author><pubDate>Sun, 18 Aug 2019 09:55:44 +0800</pubDate><description><![CDATA[协程

 协程(Coroutine) 是python中另外一种实现多任务的方式，比线程更小占用更小执行单元（理解为需要的资源）。 为啥说它是一个执行单元，因为它自带CPU上下文。这样只要在合适的时机，可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。

通俗的理解：

 在一个线程中的某个函数，可以在任何地方保存当前函数的...]]></description><category></category></item><item><title><![CDATA[Python目录]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/90257118</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/90257118</guid><author>Scrat_Kong</author><pubDate>Sat, 17 Aug 2019 21:04:29 +0800</pubDate><description><![CDATA[写在前面：


 整个IT产业只是在共同做好一件事--------信息（数据）的处理，对有用信息提取，存、增、删、改、查，然后更好的呈现在客户面前。 本文主要涵括博主以Python为主的后端体系技术点介绍，以及关于工作、学习的心得，与同行、同好交流分享。

 语言、框架都只是工具，重要的是思想。日常工作学习中不应只满足于熟练调用接口，虽然技术日新月异，但万变不离其宗...]]></description><category></category></item><item><title><![CDATA[多任务----进程]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/99682094</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/99682094</guid><author>Scrat_Kong</author><pubDate>Sat, 17 Aug 2019 21:01:04 +0800</pubDate><description><![CDATA[进程

进程 vs 程序

程序：例如xx.py这是程序，是一个静态的文件。
	进程：一个程序运行起来后，代码+用到的资源称之为进程，它是操作系统分配资源的基本单元。
多任务

不仅可以通过线程完成多任务，进程也是可以的


进程的状态

 工作中，任务数往往大于cpu的核数，即一定有一些任务正在执行，而另外一些任务在等待cpu进行执行，因此导致了有了不同的状态。



就绪态：运...]]></description><category></category></item><item><title><![CDATA[多任务----线程、同步、互斥锁、死锁]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/99642542</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/99642542</guid><author>Scrat_Kong</author><pubDate>Fri, 16 Aug 2019 15:57:39 +0800</pubDate><description><![CDATA[多任务

 简单来说，就是同时进行多个任务，比如一边上班一边刷手机，咳咳。。。一边唱歌，一边跳舞，一边打篮球，一边还偷瞄旁边的妹子，嗯，这都是多任务。


罗宾的技能，以及千手观音，哪吒三头六臂。

通常的程序是这样式儿的：


# 顺序执行（非多任务）
from time import sleep

def work():
    for i in range(3):
      ...]]></description><category></category></item><item><title><![CDATA[网络编程基础-------计算机网络快速一览]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/99441988</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/99441988</guid><author>Scrat_Kong</author><pubDate>Thu, 15 Aug 2019 09:28:58 +0800</pubDate><description><![CDATA[目录

基本概念

网络分类

网络体系结构

IP协议 

IP地址及相关

 关于地址转换

端口

网络编程的基础是计算机网络，计算机网络可以展开讲很多，这里只是 概括的讲述计算机网络体系的基本知识。

基本概念

计算机网络

 通信的链路（分为有线/无线链路）连接到一起的一组计算机/设备的集合，通信技术与计算机技术的产物。



以太网、因特网、互联网、...]]></description><category></category></item><item><title><![CDATA[正则-------Python re模块]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/98632100</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/98632100</guid><author>Scrat_Kong</author><pubDate>Tue, 06 Aug 2019 17:42:02 +0800</pubDate><description><![CDATA[什么是正则？

假如现在你用python写一段代码，类似：


phone_number = input('please input your phone number ： ')

你怎么判断这个phone_number是合法的呢？


根据手机号码一共11位并且是只以13、14、15、16、17、18、19开头的数字这些特点，用python写如下代码：

判断手机号码是否合法：


# 方法1
...]]></description><category></category></item><item><title><![CDATA[Python加密之hashlib、hmac]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/97540029</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/97540029</guid><author>Scrat_Kong</author><pubDate>Sat, 27 Jul 2019 18:45:50 +0800</pubDate><description><![CDATA[Python中的用于加密的函数位于hashlib，hmac模块中，均为内置模块。

import hashlib
	import hmac
hashlib模块实现了md5，sha1，sha224，sha256，sha384，sha512等算法，可以通过hashlib.algorithms_available查看


&gt;&gt;&gt; import hashlib
&gt;&gt;&gt; ...]]></description><category></category></item><item><title><![CDATA[Shell基础篇]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/96862607</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/96862607</guid><author>Scrat_Kong</author><pubDate>Mon, 22 Jul 2019 16:06:55 +0800</pubDate><description><![CDATA[1 shell简介

在计算机科学中，Shell就是一个命令解释器。

shell是位于操作系统和应用程序之间，是他们二者最主要的接口，shell负责把应用程序的输入命令信息解释给操作系统，将操作系统指令处理后的结果解释给应用程序。



一句话，shell就是在操作系统和应用程序之间的一个命令翻译工具。



1.1 shell的分类

基本上shell分两大类：图形界面shell和命令行sh...]]></description><category></category></item><item><title><![CDATA[单点登录 (SSO)]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/96477758</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/96477758</guid><author>Scrat_Kong</author><pubDate>Fri, 19 Jul 2019 11:49:23 +0800</pubDate><description><![CDATA[单点登录(SSO) 英文全称Single Sign On，人话：在多个应用系统中，只需要登录一次，就可以访问其他相互信任的应用系统。



如图所示，图中有4个系统，分别是Application1、Application2、Application3、和SSO。Application1、Application2、Application3没有登录模块，而SSO只有登录模块，没有其他的业务模块，当App...]]></description><category></category></item><item><title><![CDATA[可扩展的事件复用技术：epoll和kqueue]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/96427363</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/96427363</guid><author>Scrat_Kong</author><pubDate>Thu, 18 Jul 2019 16:37:28 +0800</pubDate><description><![CDATA[什么是事件复用技术

假设你有一个简单的web服务器，并且那里已经打开了两个socket连接。当服务器从两个连接那里都收到Http请求的时候，它应该返回一个Http响应给客户端。但是你没法知道哪个客户端先发送的消息和什么时候发送的。BSD套接字接口的阻塞行为意味着，如果你在一个连接上调用recv（）函数，你就没办法去响应另外一个连接上的请求。这时你就需要I/O复用技术。 I/O复用技术的一个直接方...]]></description><category></category></item><item><title><![CDATA[数据结构之二叉树及其Python实现]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/95339870</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/95339870</guid><author>Scrat_Kong</author><pubDate>Wed, 10 Jul 2019 15:20:09 +0800</pubDate><description><![CDATA[目录

二叉树

二叉树的基本概念

二叉树的性质(特性)

二叉树的节点表示以及树的创建

二叉树的遍历

深度优先遍历

广度优先遍历(层次遍历)

二叉树

二叉树的基本概念

二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”（left subtree）和“右子树”（right subtree）

二叉树的性质(特性)

性质1: 在二叉树的第i层上至多有2^(i-1)个结点...]]></description><category></category></item><item><title><![CDATA[Ubuntu MySQL安装、初始密码修改]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/95241761</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/95241761</guid><author>Scrat_Kong</author><pubDate>Tue, 09 Jul 2019 21:32:09 +0800</pubDate><description><![CDATA[转自：https://www.cnblogs.com/roadofstudy/p/7446690.html

最近在ubuntu系统上安装了MySQL，但是安装时没有提示输入root用户密码，在网上找了一天解决方案，试图修改root用户下的登入密码，但是网上的帖子都不凑效，最后终于改成功了，因此记下来以供有同样需要的人参考。

1、安装


$ sudo apt-get install mysql...]]></description><category></category></item><item><title><![CDATA[HTTP快速一览]]></title><link>https://blog.youkuaiyun.com/Scrat_Kong/article/details/94297516</link><guid>https://blog.youkuaiyun.com/Scrat_Kong/article/details/94297516</guid><author>Scrat_Kong</author><pubDate>Sun, 30 Jun 2019 11:45:48 +0800</pubDate><description><![CDATA[本文是Scrat自己在学习中对相关教程的提炼总结，满满干货，闲话少叙，进入正题~

一. 什么是HTTP？

HTTP ------ Hyper Text Transfer Protocol（超文本传输协议）的缩写, 用于从服务器传输超文本到本地浏览器的传送协议。。

HTTP是一个基于TCP/IP通信协议来传递数据（HTML 文件, 图片文件, 查询结果等）。

简单提一下TCP/IP协议族：
...]]></description><category></category></item></channel></rss>