- 博客(38)
- 资源 (4)
- 收藏
- 关注

原创 python检索特定内容的文本文件
windows环境下python2.7 脚本指定一个参数作为要检索的字符串 例如: >find.py ./ hello# coding=utf-8import osimport sys# 找到当前目录下的所有文本文件def findFile(path): f = [] d = [] l = os.listdir(path) for x in l:
2016-12-29 15:01:45
8226
1
原创 openresty通过ffi调用一个c编写的base64动态库
base64不是加密,就是一种编码,将字符串的二进制按6个bit一组,每组的6个bit的形式转换一下。每组6个bit对应的字符是 有特定的映射表决定。映射表:都转成以上5种,目的是为了网络传输没有特殊字符。标准base64 不适合url中直接传输; safe_base64的做法是把最后那俩字符 +和/ 替换成 -_ 即可。解析的时候反向替换之后再base64解码。因为http传输,+号会被服务器解析成空格, 导致解析base64字符串失败。当然可以对传输的base64字符串进行url编码在传输, ngin
2022-07-14 14:34:19
1048
原创 nodejs中的promise和async以及wait的原理
promise的作用promise的含义是保证的意思,可以定义一个异步处理的对象他有两个参数(其实是两个回调函数,因为异步操作就两种结果,ok或者不ok):resolve函数是执行成功时调用的。reject函数是抛出异常时调用的。于是乎我们一般这么用定义 Promise对象var x = new Promise(function(resolve, reject){ var ret = .... if(ret成功){ return resolve(ret) }else{
2021-05-22 23:56:25
1439
原创 python3虚拟机环境用法
Python3的virtualenv用法安装pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvyum install python3-pipmkdir test && cd testvirtualenv venv --python=python3创建了虚拟目录venv 后激活激活环境 source venv/bin/activate取消激活 deactivate激活后可以用pip安装对应
2021-05-15 00:20:25
224
原创 url编码和utf8以及unicode的东东
为什么要url编码为了安全的传输url除了 一下5类字符,其余的都要编码, RFC39860-9a-Z、-_.~4 (4个字符)! * ’ ( ) ; : @ & = + $ , / ? # [ ] (这些是保留字符,路径分隔,参数分隔等作用)~ 波浪线虽然不要求编码,但一些老网关或代理会编码。0 -127 者128个ascii表:00~1F + 7F 这32个是控制字符。20~7E 都是可见字符。怎么编码16进制表示形式,一个字节一个字节的表示 前
2021-05-10 23:40:26
1200
原创 数字签名和公开密钥体系
数字签名的作用在很多场合我们都需要在文件上签字,为什么不直接用电脑打呢, 这就是为了日后确认文件确实是你自己的签名,每个人的笔迹都不一样。数字签名也是一样的作用:保证B收到的是A发来的信息确实是A发的,而不是C冒充 A发的。数字签名为何能保证信息来源确定呢这就是非对称加密中的私钥和公钥的一个特性:– 私钥加密的数据,只能由对应的公钥解密。还有第二个特性。...
2021-05-08 00:30:05
1715
1
原创 vim利用coc补全的配置过程
题外话,国内的博客为什么都是抄来抄去呢,还是要自己实践一下coc插件原理 vscode 补全利用的是LSP (language server protocol), 简单理解就是编辑时启动一个进程,补全果过程就类似app请求服务器得到补全数据。这就是为什么要装node,服务进程都是node启动。第一步 安装nvim首先你需要 安装vim8 或者nvim 我测试的是macos如果是nvim, 需要把nvim 的配置文件做一次软链接指向 ~/.vimrc 这是延续以前的vim配置方式, 不做..
2020-08-29 22:34:33
7327
原创 ngx_lua的三种变量范围
NGX_LUA的三种变量范围进程间共享, nginx的所有work进程共享,使用lua_shared_dict定义,这样高并发就出触发锁。进程内共享,lua代码中不加local关键字就是全局变量,这样的变量在同一个进程的所有请求之间共享,因为开启了lua缓存,每个work的VM虚拟机都会缓存全局变量.同一个请求,比如local声明的或者ngx.ctxlua_shared_dict 有模块lua-resty-lrucache可以实现在一个work中共享,由于nginx是单进程的,所以永
2020-07-01 21:49:11
579
原创 nginx支持php
ubuntu14.04 +nginx+php5-fpm一,安装Nginxapt-get install nginx1,配置nginxnginx所有的配置在 /etc/nginx/nginx.conf中nginx.conf配置里面包括了include /etc/nginx/conf.d/.conf; include /etc/nginx/sites-enabled/;这两个配置,所以这里面的配置也是有效的。错误日志 error_log /var/log/nginx/error.log;
2020-07-01 21:48:38
210
原创 mongodb编译安装
CentOS7 编译安装 Mongodb (实测 笔记 Centos 7.0 + Mongodb 2.6.6)环境:系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡)系统版本:CentOS-7.0-1406-x86_64-DVD.iso安装步骤:1.准备1.1 显示系统版本[root@centos ~]# cat /etc/redhat-releaseCentOS Linux release 7.0.1406 (Core)[root@cento.
2020-07-01 21:47:58
793
原创 mac挂载NTFS磁盘
查看移动硬盘的信息diskutil list/dev/disk0 (internal): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme 121.3 GB disk0 1: EFI EFI
2020-07-01 21:46:44
1131
原创 linux FTP建立
linux FTP建立,条件:安装vsftpd:配置vsftpd的配置文件:vim /etc/vsftpd.confanonymous_enbale =NO //关闭匿名登录local_enbale=YES //允许本地用户,就是ftp建立者的用户名和密码write_enbale=YES //允许写入,就是上传文件到ftp反注释掉:ascii_upload_enbale=YESascii_download_enbale=YES默认的ftp目录就是home下的user目录,包含桌面,
2020-07-01 21:46:14
132
原创 linux虚拟机配置静态ip
1. mac上的虚拟机使用(自动模式)就是桥接模式。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zQKdxSX6-1593611109008)(images/vmnet.png)]2. 查看自己的网卡名ifconfig 命令[root@localhost ~]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.132
2020-07-01 21:45:37
222
原创 ip地址和子网掩码,广播地址关系
什么是ip地址?ip是在一个网段中的一台计算机的ip地址(192.168.1.2)如果你家的联通宽带给你家的公网ip地址是10.10.123.234(假设的),那么接到你家路由器,首先路由器需要有一个ip地址,一般是192.168.1.1(也可能是192.168.0.1),这个应该可以登录到路由器中设置。其中192.168.1.255 就是广播地址,比如centos中ifconfig命令查看的broadcast剩余的ip段192.168.1.2~192.168.1.254 就是可以分配给手机,电脑
2020-07-01 21:44:45
3816
原创 git tag和branch的区别
tag 和branch的区别Git tag是一系列commit的中的一个点,只能查看,不能移动。branch是一系列串联的commit的线。git tag的用法我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的git的tag功能git 下打标签其实有2种情况轻量级的:它其实是一个独立的分支,或者说是一个不可变的分支.指向特定提交对象的引用带附注的:实际上是存储在仓库中的
2020-07-01 21:43:31
1345
原创 git_linux搭建服务器
为什么本地搭建一个git服务器对于自己学习使用的代码,在没有网络的情况下不能用github,gitlab,所以本地建立一个git服务器。git服务器环境准备centos7服务端创建git用户 id git # 查看是否存在git用户,存在就不创建了。 useradd git passwd git 输入密码,我设置的是xxx@123 客户端开启公钥认证认证,免密push/pu...
2020-04-08 22:31:26
182
原创 nginx支持php
ubuntu14.04 +nginx+php5-fpm一,安装Nginxapt-get install nginx1,配置nginxnginx所有的配置在 /etc/nginx/nginx.conf中nginx.conf配置里面包括了include /etc/nginx/conf.d/.conf; include /etc/nginx/sites-enabled/;这两个配置,...
2020-04-08 22:30:45
305
原创 openresty 变量
NGX_LUA的三种变量范围进程间共享, nginx的所有work进程共享,使用lua_shared_dict定义,这样高并发就出触发锁。进程内共享,lua代码中不加local关键字就是全局变量,这样的变量在同一个进程的所有请求之间共享,因为开启了lua缓存,每个work的VM虚拟机都会缓存全局变量.同一个请求,比如local声明的或者ngx.ctxlua_shared_d...
2020-04-08 22:29:45
679
原创 git tag用法
tag 和branch的区别Git tag是一系列commit的中的一个点,只能查看,不能移动。branch是一系列串联的commit的线。git tag的用法我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的git的tag功能git 下打标签其实有2种情况轻量...
2020-04-08 22:28:32
601
原创 python 导入模块,__init__.py 的作用
python 导入模块文件的2中方式import lib or from lib import *# 导入子目录中模块import tmp.lib3 or from tmp.lib3 import *# 导入上级目录import syssys.path.append('home/app/')import modimport xxxx与import类似, 被...
2019-05-02 14:13:58
2369
原创 python 转码问题
为什么需要sys.setdefaultencoding(“utf-8”)因为python转码是通过unicode作为中间码的。比如字符串 x = “你们”,本身是str,首先我们指定了文件编码uft8,所以x是utf8编码的。如果要转化gb18030, 默认是x用默认解码方式(ASCII)decode成中间码 unicode -> encode成gb18030如果x是abc这...
2019-05-02 14:11:36
717
原创 python装饰器
property装饰器作用和原理我们知道c++中有public,projected,private等修饰类私有属性的作用,这样就限定了某些属性只能读取,不能修改;有些能读也能需改。设置C++类中的一个属性可以自定义方法get和set方法。python中实现这种原理,就需要装饰器property,本身可修饰(变量x同名)的函数,让x拥有可读的属性(相当于get函数...
2019-05-02 14:09:37
597
原创 git tag的用法
tag 和branch的区别Git tag是一系列commit的中的一个点,只能查看,不能移动。branch是一系列串联的commit的线。git tag的用法我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的git的tag功能git 下打标签其实有2种情况轻量...
2019-05-02 14:08:51
140
原创 自己搭建git服务器
为什么本地搭建一个git服务器对于自己学习使用的代码,在没有网络的情况下不能用github,gitlab,所以本地建立一个git服务器。git服务器环境准备centos7服务端创建git用户 id git # 查看是否存在git用户,存在就不创建了。 useradd git passwd git 输入密码,我设置的是xxx@123 客户端开启公钥认证认证,免密push/pu...
2019-05-02 14:08:19
755
原创 了解一下加密相关的名词
加密体系对称加密算法,加密和机密密钥一样,加密方和解密方都持有.DES加密 56位密钥长度,美国数据加密标准,DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。AES加密 高级加密标准,一种区块加密算法,为了取代DES。...
2019-05-02 07:52:42
265
原创 unix获取时间的小程序
layout: posttitle: unix获取时间的小程序category: cdate: 2017-1-7 15:30:30//一个简单的时间获取客户程序#include &lt;netinet/in.h&gt; /* sockaddr_in{} and other Internet defns */#include &lt;strings.h&gt;#inc...
2019-02-14 20:27:05
321
原创 mysql安装用户设置
mysql安装用户设置xmapp安装后设置MariaDB问题创建用户insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));创建用户并分配所有权限grant all privileges on dbname.* to 'username'@'%' identifi...
2019-02-14 20:25:26
362
转载 send函数何时返回
send 分阻塞和非阻塞模式的!1 在阻塞模式下, send函数是将应用程序请求发送的数据拷贝到发送缓存中发送并得到接收端的确认后再返回2 在非阻塞模式下, send函数仅仅是将数据拷贝到协议栈的缓存区而已,如果缓存区可用空间不够,则尽能力的拷贝,返回成功拷贝的大小;如缓存区可用空间为0,则返回-1,同时设置errno为EAGAIN. 但是此时这些数据并不一定马上被传到连接的另一端。如果协
2017-03-18 12:03:37
1666
原创 linux 套接字函数send和recv函数(阻塞模式)
send函数的流程:buffer的内容 —->linuxTCP协议栈发送缓存区—->内核发送什么情况下,buffer内容才会先写入协议缓存区呢 ,协议缓存区有一个SO_SNDLOWAT最低位标志,表示缓存区有空间了, 一般是2048字节。就是说缓存区至少2048字节剩余空间,你才能继续向缓存区写。selcet /epoll等监视内核,就是依据这个,判断socket是否可以向缓存区写数据,就是产生
2017-03-18 11:45:39
1943
原创 python脚本整理一下桌面
python脚本整理一下桌面代码如下:#!/usr/bin/python# coding=utf-8import osimport shutilimport re# 取得后缀名是.0的文件def getFileByEndName(FilepathDir, fileEnd): ''' if in directory (filepathDir),the (fileEnd) i
2016-12-30 19:34:21
966
原创 python检索特定内容的文本文件2
代码如下: # coding=utf-8 import os import sys # 找到当前目录下的所有文本文件 def findFile(path): f = [] d = [] l = os.listdir(path) os.chdir(path) for x in l:
2016-12-29 18:25:25
457
原创 windows dll函数的导出
DLL导出的方式调用约定 _CDECL: c语言的默认调用形式,也是C++的默认调用形式 特点:参数从右到左入栈,调用者负责手动清理堆栈,所以传入多少参数给被调函数都不会产生编译阶段错误。 命令行参数:/Gd 开关 场景:可变参数函数,必须是这种调用方式。 缺点:每次调用都需要编译器产生清除堆栈的代码。所以比_stdcall方式编译的程序体积大。 修饰方法: 对于C函数,默认是函数名前加
2016-12-29 15:12:25
884
原创 python 建立ftp共享文件夹
python 建立ftp共享文件夹安装ftp模块: pip install pyftplib 代码如下:# coding=Shift_JISimport sysfrom pyftpdlib.authorizers import DummyAuthorizerfrom pyftpdlib.handlers import FTPHandlerfrom pyftpdlib.servers imp
2016-12-27 18:19:15
831
原创 gitbook制作电子书
git制作电子书http://blog.youkuaiyun.com/wsyw126/article/details/51733577可以gitbook serve 本地预览,浏览器访问http://localhost:4000 或者生成静态网站 gitbook build ./ 生成的_book 目录就是了。然后上传_book下文件到 github 的一个仓库book1中:进入_book 目录: g
2016-12-27 17:38:19
437
原创 MFC程序框架
MFC程序框架比如建立一个叫test的程序。1. 首先需要构造一个mfc实例。需要一个类CtestApp 继承自CWinAppp类。在头文件 test.h 中定义。// #test.h头文件#pragma once#ifndef __AFXWIN_H__ #error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"#endif#include "resource.h"
2016-12-25 16:24:20
2545
原创 _stdcall和_cdecl,extern “C”的联系
_stdcall 和_cdecl的区别 前者是函数自己清理堆栈,右到左入栈,例如:win API函数和回调函数(必须)。 后者是调用方清理堆栈,右道左入栈,是c语言默认的调用方式,也是VC的默认方式。 Extern “C”是C++兼容C语言代码设计的关键字,为了兼容既存的大量c代码。表示这段代码用c语言的方式编译,因为C++编译器是兼容c代码的,所以这个设置可用。c语言函数的可变
2016-12-13 19:28:20
371
原创 DLL导出的方式
DLL导出的方式调用约定_CDECL: c语言的默认调用形式,也是C++的默认调用形式 特点:参数从右到左入栈,调用者负责手动清理堆栈,所以传入多少参数给被调函数都不会产生编译阶段错误。 命令行参数:/Gd 开关 场景:可变参数函数,必须是这种调用方式。 缺点:每次调用都需要编译器产生清除堆栈的代码。所以比_stdcall方式编译的程序体积大。 修饰方法: 对于C函数,默认是函数名前加一个
2016-12-13 14:19:24
408
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人