<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[permike的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/permike</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; permike]]></copyright><item><title><![CDATA[SQLite：TIMESTAMP类型使用]]></title><link>https://blog.youkuaiyun.com/permike/article/details/133761664</link><guid>https://blog.youkuaiyun.com/permike/article/details/133761664</guid><author>permike</author><pubDate>Wed, 11 Oct 2023 10:02:51 +0800</pubDate><description><![CDATA[SQLite是一种嵌入式SQL数据库引擎，被广泛应用于移动平台和嵌入式设备中。它具有轻量级、开源、无服务器的特点，可以在各种操作系统上使用，并且无需配置和管理。SQLite支持常见的SQL语法和操作，包括创建表、插入数据、更新数据、查询数据等。SQLite是一种轻量级、开源的嵌入式SQL数据库引擎，使用方便，常被应用于移动平台和嵌入式设备。在SQLite中使用CURRENT_TIMESTAMP函数可以获取当前时间戳，但需要注意的是，它返回的时间戳是基于GMT时区的，不是基于本地机器的时区。]]></description><category></category></item><item><title><![CDATA[mysql时间类型使用说明]]></title><link>https://blog.youkuaiyun.com/permike/article/details/133761563</link><guid>https://blog.youkuaiyun.com/permike/article/details/133761563</guid><author>permike</author><pubDate>Wed, 11 Oct 2023 09:59:06 +0800</pubDate><description><![CDATA[由于地域的限制，人们发明了时区的概念，用来适应人们在时间感受上的差异，比如中国的时区是东8区，表示为+8:00，或GMT+8，而日本的时区是东9区，表示为+9:00，或GMT+9，当中国是早上8点时，日本是早上9点，即东8区的8点与东9区的9点，这两个时间是相等的。这样的话，似乎java中日期类型用时间字符串来存还好些，不容易出错，但请再认真考虑一下，调用方传了一个无时区的8点，数据库自作主张，就将其认为是东9区的8点，但如果这个时间字符串实际是东8区的8点呢？]]></description><category></category></item><item><title><![CDATA[Python文件.py||.pyi||.pyc||.pyo||.pyd等各种文件后缀区别]]></title><link>https://blog.youkuaiyun.com/permike/article/details/117219340</link><guid>https://blog.youkuaiyun.com/permike/article/details/117219340</guid><author>permike</author><pubDate>Mon, 24 May 2021 10:46:28 +0800</pubDate><description><![CDATA[.py：这通常是您编写的输入源代码。
	.py3: Python3脚本（Python3脚本通常以.py而不是.py3结尾，很少使用）
	.pyc：这是编译好的字节码。如果您导入一个模块，python将生成一个*.pyc包含字节码的文件，以便以后再次导入它更容易(也更快)。.pyc二进制文件可以反编译成.py文件，反编译软件叫Easy Python Decompiler。
	.pyo：这是在优化(-O)时创建的*.pyc文件,从Python3.5开始，Python将只使用pyc而不是pyo和pyc
	.pyd]]></description><category></category></item><item><title><![CDATA[2021-05-23软考数据库知识点总结]]></title><link>https://blog.youkuaiyun.com/permike/article/details/117195202</link><guid>https://blog.youkuaiyun.com/permike/article/details/117195202</guid><author>permike</author><pubDate>Sun, 23 May 2021 14:44:14 +0800</pubDate><description><![CDATA[三级模式-两层映射


所谓的三级模式为外模式，概念模式，内模式。

外模式又被称为用户模式，让用户和引用程序打交道，对数据结构的逻辑描述，操作数据的逻辑。(呈现为视图级)
内模式又被称为存储模式。讲数据结构的物理存储，主要考虑到数据到底用什么方法存储。形成文件级结构
概念模式不用管是如何存储的以及如何访问 数据库的技术，其又被称为模式，主要表现为表级结构
何为两层映射

外模式和模式的映射
模式和内模式的映射
映射的作用是为了让数据具有独立性，让数据和程序进行分离。数据的物理独立性在模式和内模式的映射中。]]></description><category></category></item><item><title><![CDATA[区块链里的一些容易混淆的概念]]></title><link>https://blog.youkuaiyun.com/permike/article/details/110821823</link><guid>https://blog.youkuaiyun.com/permike/article/details/110821823</guid><author>permike</author><pubDate>Mon, 07 Dec 2020 16:44:30 +0800</pubDate><description><![CDATA[区块链里节点的概念

首先你要知道，节点（node）只是一个词，在网络相关的文献里很常见，在不同的语境，不同的系统里会有不同的意思，并不是所有的区块链乃至p2p网络里提到节点都指的一个东西。

其次，区块链这东西是什么，现在也没有明确定义。看你问题里的区块链似乎是指数据结构，但是，在现在的一般语境下，区块链是指这个分布式数据库的技术，包括这个数据结构，底层的p2p网络，以及共识算法。所以，一般谈区块链就是区块链系统，不要和p2p网络混为一谈，把这概念引进来只会让你理解起来更复杂。

区块链是个分...]]></description><category></category></item><item><title><![CDATA[python3异步编程async/await 原理解释的比较详细的文章]]></title><link>https://blog.youkuaiyun.com/permike/article/details/110821246</link><guid>https://blog.youkuaiyun.com/permike/article/details/110821246</guid><author>permike</author><pubDate>Mon, 07 Dec 2020 16:21:59 +0800</pubDate><description><![CDATA[身为Python核心开发组的成员，我对于这门语言的各种细节充满好奇。尽管我很清楚自己不可能对这门语言做到全知全能，但哪怕是为了能够解决各种issue和参与常规的语言设计工作，我也觉得有必要试着接触和理解Python的内核，弄清楚在底层它是怎么工作的。

话虽如此，直到最近我才理解了Python3.5中async/await的工作机制。在此之前，对于async/await语法，我只知道Python3.3中的yield from和Python3.4中的asyncio让这个新语法得以在Python3.5中实现。由]]></description><category></category></item><item><title><![CDATA[常见的并发模型2]]></title><link>https://blog.youkuaiyun.com/permike/article/details/109821310</link><guid>https://blog.youkuaiyun.com/permike/article/details/109821310</guid><author>permike</author><pubDate>Thu, 19 Nov 2020 18:42:34 +0800</pubDate><description><![CDATA[并发与并行

并发和并行都可以是相对于进程或是线程来说。并发是指一个或若干个CPU对多个进程或线程之间进行多路复用，用简单的语言来说就是CPU轮着执行多个任务，每个任务都执行一小段时间，从宏观上看起来就像是全部任务都在同时执行一样。并行则是指多个进程或线程同一时刻被执行，这是真正意义上的同时执行，它必须要有多个CPU的支持。

如下图是并发和并行的执行时间图。对于并发来说，线程一线执行一段时间，然后线程二再执行一段时间，接着线程三再执行一段时间。每个线程都轮流得到CPU的执行时间，这种情况下只需要一个CPU]]></description><category></category></item><item><title><![CDATA[常见的并发模型]]></title><link>https://blog.youkuaiyun.com/permike/article/details/109820881</link><guid>https://blog.youkuaiyun.com/permike/article/details/109820881</guid><author>permike</author><pubDate>Thu, 19 Nov 2020 18:30:56 +0800</pubDate><description><![CDATA[并发往往和并行一起被提及，但是我们应该明确的是“并发”不等同于“并行”



• 并发：同一时间 对待 多件事情 （逻辑层面）



• 并行：同一时间 做(执行) 多件事情 (物理层面)



并发可以构造出一种问题解决方法，该方法能够被用于并行化，从而让原本只能串行处理的事务并行化，更好地发挥出当前多核CPU，分布式集群的能力。



但是，并发编程和人们正常的思维方式是不一样的，因此才有了各种编程模型的抽象来帮助我们更方便，更不容易出错的方式构建并发程序。下面将简单...]]></description><category></category></item><item><title><![CDATA[搭建CA服务器的两种方式]]></title><link>https://blog.youkuaiyun.com/permike/article/details/108852240</link><guid>https://blog.youkuaiyun.com/permike/article/details/108852240</guid><author>permike</author><pubDate>Mon, 28 Sep 2020 16:42:43 +0800</pubDate><description><![CDATA[1, 直接生成私钥和证书


openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

  ca.key 就是私钥，ca.crt 就是根证书

2， 先生成私钥 private.key

用私钥生成自签名的证书，


openssl genrsa -out mypvk.pem  # 生成私钥

openssl req -new -keymypvk.pem -out rootCA.csr  #申请生成证书

openss...]]></description><category></category></item><item><title><![CDATA[搭建CA证书服务器过程详解]]></title><link>https://blog.youkuaiyun.com/permike/article/details/108848916</link><guid>https://blog.youkuaiyun.com/permike/article/details/108848916</guid><author>permike</author><pubDate>Mon, 28 Sep 2020 14:32:14 +0800</pubDate><description><![CDATA[1首先要生成一个自己的私钥mypvk.pem

这个密钥一定要保持好，不能泄露


openssl genrsa -out mypvk.pem

2, 通过这个私钥，自签名生成服务器的证书

2.1 openssl req -new -keymypvk.pem -out rootCA.csr

2.2 openssl ca -selfsign -in rootCA.csr

会生成一个 服务器自己的证书，拷贝到配置中指定的目录下，命名保持一致

3，通过生成的证书和私钥，给其他用户颁发证书


o...]]></description><category></category></item><item><title><![CDATA[Systemd service配置文件解析]]></title><link>https://blog.youkuaiyun.com/permike/article/details/108846912</link><guid>https://blog.youkuaiyun.com/permike/article/details/108846912</guid><author>permike</author><pubDate>Mon, 28 Sep 2020 11:40:59 +0800</pubDate><description><![CDATA[systemd 的配置文件大部分放置于 /usr/lib/systemd/system/ 目录内。但是 Red Hat 官方文件指出， 该目录的文件主要是原本软件所提供的设置，建议不要修改！而要修改的位置应该放置于 /etc/systemd/system/ 目录内。

配置文件示例：





[root@study ~]# cat /usr/lib/systemd/system/sshd.service
[Unit]           # 这个项目与此 unit 的解释、执行服务相依性有关
Desc..]]></description><category></category></item><item><title><![CDATA[Openssl使用方式整理]]></title><link>https://blog.youkuaiyun.com/permike/article/details/108846554</link><guid>https://blog.youkuaiyun.com/permike/article/details/108846554</guid><author>permike</author><pubDate>Mon, 28 Sep 2020 11:33:56 +0800</pubDate><description><![CDATA[OpenSSL 是一个开源项目，其组成主要包括一下三个组件：


	openssl：多用途的命令行工具
	
	
	libcrypto：加密算法库
	
	
	libssl：加密模块应用库，实现了ssl及tls
	
openssl可以实现：秘钥证书管理、对称加密和非对称加密。

1、对称加密

对称加密需要使用的标准命令为enc，用法如下：






	openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d...]]></description><category></category></item><item><title><![CDATA[第一次把Epoll讲这么详细的文章]]></title><link>https://blog.youkuaiyun.com/permike/article/details/104898567</link><guid>https://blog.youkuaiyun.com/permike/article/details/104898567</guid><author>permike</author><pubDate>Mon, 16 Mar 2020 14:23:48 +0800</pubDate><description><![CDATA[从事服务端开发，少不了要接触网络编程。epoll 作为 Linux 下高性能网络服务器的必备技术至关重要，nginx、Redis、Skynet 和大部分游戏服务器都使用到这一多路复用技术。

epoll 很重要，但是 epoll 与 select 的区别是什么呢？epoll 高效的原因是什么？



网上虽然也有不少讲解 epoll 的文章，但要么是过于浅显，或者陷入源码解析，很少能有通俗易懂的。...]]></description><category></category></item><item><title><![CDATA[linux内核详细]]></title><link>https://blog.youkuaiyun.com/permike/article/details/104751895</link><guid>https://blog.youkuaiyun.com/permike/article/details/104751895</guid><author>permike</author><pubDate>Mon, 09 Mar 2020 14:20:49 +0800</pubDate><description><![CDATA[Linux内核的特点：
结合了unix操作系统的一些基础概念


转存失败重新上传取消

转存失败重新上传取消

Linux内核的任务：
1.从技术层面讲，内核是硬件与软件之间的一个中间层。作用是将应用层序的请求传递给硬件，并充当底层驱动程序，对系统中的各种设备和组件进行寻址。
2.从应用程序的层面讲，应用程序与硬件没有联系，只与内核有联系，内核是应用程序知道的层次中的最底层。在实际工作中内核抽...]]></description><category></category></item><item><title><![CDATA[TCP需要了解的都在这]]></title><link>https://blog.youkuaiyun.com/permike/article/details/104751827</link><guid>https://blog.youkuaiyun.com/permike/article/details/104751827</guid><author>permike</author><pubDate>Mon, 09 Mar 2020 14:18:32 +0800</pubDate><description><![CDATA[一.TCP相关机制

TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。

1.确认应答

在TCP中，当发送端的数据到达接收主机时，接收端主机会返回一 个已收到消息的通知。这个消息叫做确认应答（ACK（Positive Acknowled-gement）意指已经接收。）TCP通过肯定的ACK实现可靠的数据传输。当发送端将数据发出之后会等待对端的确认应答。如果...]]></description><category></category></item><item><title><![CDATA[Python3 Typing]]></title><link>https://blog.youkuaiyun.com/permike/article/details/104479673</link><guid>https://blog.youkuaiyun.com/permike/article/details/104479673</guid><author>permike</author><pubDate>Mon, 24 Feb 2020 16:16:45 +0800</pubDate><description><![CDATA[typing模块的作用：

类型检查，防止运行时出现参数和返回值类型不符合。
	作为开发文档附加说明，方便使用者调用时传入和返回参数类型。
	该模块加入后并不会影响程序的运行，不会报正式的错误，只有提醒。

注意：typing模块只有在python3.5以上的版本中才可以使用,pycharm目前支持typing检查

下面说说typing模块常用的方式：

from typing import L...]]></description><category></category></item><item><title><![CDATA[netstat命令中state详解]]></title><link>https://blog.youkuaiyun.com/permike/article/details/104407774</link><guid>https://blog.youkuaiyun.com/permike/article/details/104407774</guid><author>permike</author><pubDate>Thu, 20 Feb 2020 11:42:33 +0800</pubDate><description><![CDATA[State: 表TCP连接状态

ESTABLISHED指TCP连接已建立，双方可以进行方向数据传递



CLOSE_WAIT:这种状态的含义其实是表示在等待关闭。当对方close一个SOCKET后发送FIN报文给自己，你系统毫无疑问地会回应一个ACK报文给对方，此时则进入到CLOSE_WAIT状态。接下来呢，实际上你真正需要考虑的事情是察看你是否还有数据发送给对方，如果没有的话， 那么你...]]></description><category></category></item><item><title><![CDATA[查看端口是否有进程启动]]></title><link>https://blog.youkuaiyun.com/permike/article/details/104407635</link><guid>https://blog.youkuaiyun.com/permike/article/details/104407635</guid><author>permike</author><pubDate>Thu, 20 Feb 2020 11:36:54 +0800</pubDate><description><![CDATA[当一个程序明明启动了，但是访问出错

或者程序明明没问题，却启动不了

一种方式是应该检查端口是否被占用，

linux查看端口状况的命令： netstat


netstat --tunlp

netstat -aon

但是Mac系统这个命令不能用，

可以使用lsof


lsof -nP -i:8000

lsof -i tcp:8000



...]]></description><category></category></item><item><title><![CDATA[netstat命令详解]]></title><link>https://blog.youkuaiyun.com/permike/article/details/104406560</link><guid>https://blog.youkuaiyun.com/permike/article/details/104406560</guid><author>permike</author><pubDate>Thu, 20 Feb 2020 10:47:48 +0800</pubDate><description><![CDATA[netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据，一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序，它能提供TCP连接，TCP和UDP监听，进程内存管理的相关报告。

netstat常用命令参数




			1

			2

			3

			4

			5

			6

			7

			8

			9

			10

			...]]></description><category></category></item><item><title><![CDATA[python协程及一些相关概念]]></title><link>https://blog.youkuaiyun.com/permike/article/details/104394422</link><guid>https://blog.youkuaiyun.com/permike/article/details/104394422</guid><author>permike</author><pubDate>Wed, 19 Feb 2020 15:46:29 +0800</pubDate><description><![CDATA[【Coroutine】
Coroutine：协程，又称微线程，纤程。
协程的这种“挂起”和“唤醒”机制实质上是将一个过程切分成了若干个子过程，给了我们一种以扁平的方式来使用事件回调模型。优点：共享进程的上下文，一个进程可以创建百万，千万的coroutine。

python中的yield和第三方库greenlet，都可以实现协程。
greenlet 提供了在协程中直接切换控制权的方式，比生成器(y...]]></description><category></category></item></channel></rss>