12 2017 档案

ICG游戏:尼姆游戏异或解法的证明
摘要:描述: 尼姆博奕(Nimm Game),有n堆石子,每堆石子有若干石子,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限。取走最后石子的人获胜。 标准解法: 判断: 先计算先手是必胜还是必败: 将每堆石子的数量做二进制异或(即用二进制表示,每个数字的第一位做异或;第二位做异或...), 阅读全文

posted @ 2017-12-31 00:23 willaty 阅读(1928) 评论(0) 推荐(0)

ICG游戏:证明,先手不是必胜就是必败。
摘要:简介: ICG游戏:Impartial Combinatorial Games,公平的组合游戏。 以下是定义,来自网络,可能不够严谨: 1、两名选手;2、两名选手轮流行动,每一次行动可以在有限合法操作集合中选择一个;3、游戏的任何一种可能的局面(position),合法操作集合只取决于这个局面本身; 阅读全文

posted @ 2017-12-30 23:22 willaty 阅读(1308) 评论(0) 推荐(0)

leetcode 10 正则表达式匹配
摘要:描述: 实现.和*号匹配,*表示前面字符0~无穷个,.表示任意一个字符。 要求全部,匹配,不是部分匹配。 解决: 思路类似最长公共子序列, dp[i][j] = dp[i - 1][j - 1], 如果s[i] == p[j] || p[j] == '.' dp[i][j - 2], 如果p[j] 阅读全文

posted @ 2017-12-28 11:15 willaty 阅读(5931) 评论(0) 推荐(0)

leetcode 64 最小路径和
摘要:描述: 题目给个矩阵,每个点有个权重,左上到右下,只能往右或下走,求最小路径。 解决: dp[i][j] = min(d[i -1][j], dp[i][j - 1]) + dp[i][j] 更新一遍即可,改为一维。 注意,在原数组的基础上改不是很好,自己定义个数组存就可以了。 阅读全文

posted @ 2017-12-27 13:22 willaty 阅读(180) 评论(0) 推荐(0)

leetcode 63 不同的路径2
摘要:描述: 从左上角走到右下角,中间可能有若干阻碍; 题目给出一个矩阵,0表示可以走,1表示有障碍。 解决: 思路同第一题,只是如果上面或左边有障碍,自身不一定能走,注意些边界条件即可,复杂度仍是m*n。 为了防止和真正的路径1冲突,走过的障碍改为-1。 阅读全文

posted @ 2017-12-26 20:23 willaty 阅读(110) 评论(0) 推荐(0)

leetcode 62 不同的路径
摘要:描述: m*n的矩阵,从左上角走到右下角,只能向下或向右走。 解决: 简单dp,dp[i][j]表示到i,j这点总共多少种路径。 dp[i][j] = dp[i][j - 1] + dp[i - 1][j],化为一维: 注意,1*1的化结果是1的,如果别的题目是0,初始化里i改为从1开始即可。 也可 阅读全文

posted @ 2017-12-26 15:45 willaty 阅读(140) 评论(0) 推荐(0)

python 协程
摘要:简介: 线程和进程都是抢占式的,即系统调配,有一定时间片; 而协程则是程序自己安排执行顺序,可以主动让出CPU,系统是不知道的,在lua等脚本语言中都有机制。 使用协程的几种方法: yield 注意协程关键是程序自己安排执行顺序,函数可以通过yield让出执行权。 greenlet greenlet 阅读全文

posted @ 2017-12-21 17:43 willaty 阅读(176) 评论(0) 推荐(0)

POJ2533 最长递增子序列
摘要:描述: 7 1 7 3 5 9 4 8 输出4 最长递增子序列为1 3 5 9,不必连续。 解法: 三种思路: 转化为最长公共子序列(n^2),动态规划(n^2),不知叫什么解法(nlogn)。 解法一:转化 先排序nlogn,在最长公共子序列 解法二:动态规划 dp[i]定义为,以此数为终点的最长 阅读全文

posted @ 2017-12-20 20:29 willaty 阅读(193) 评论(0) 推荐(0)

POJ1458 最长公共子序列
摘要:描述: 给定两个字符串,求其最长公共子序列(不用连续), 输入: abc bcc programning content 输出: 2 2 解法: 动态规划。 定义dp[i][j]表示s1到i索引,以及s2到j索引为止的最长公共子序列, 则定义如下: dp[i][j] = dp[i - 1][j - 阅读全文

posted @ 2017-12-19 20:17 willaty 阅读(234) 评论(0) 推荐(0)

POJ1163 数学三角求最大路径
摘要:描述:输入,行数,之后接数据,第一行一个数据,之后每行加一。5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5思路:简单动态规划问题。dp[i][j]定义为到这个数为止(包括这个数)的最大和,则:dp[i][j] = max(d[i-1][j-1], d[i-1][j]),未考虑边界条件 阅读全文

posted @ 2017-12-19 15:09 willaty 阅读(274) 评论(0) 推荐(0)

转)GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
摘要:开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别 以下是上述协议的简单介绍: BSD开源协议 BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但”为所欲为”的前提当你 阅读全文

posted @ 2017-12-12 18:27 willaty 阅读(350) 评论(0) 推荐(0)

转)bash快捷键
摘要:粗体表示推荐,也许对每个人不同。 Ctrl-A 相当于HOME键,用于将光标定位到本行最前面 Ctrl-E 相当于End键,即将光标移动到本行末尾 Ctrl-B 相当于左箭头键,用于将光标向左移动一格 Ctrl-F 相当于右箭头键,用于将光标向右移动一格 Ctrl-D 相当于Del键,即删除光标所在 阅读全文

posted @ 2017-12-12 15:35 willaty 阅读(166) 评论(0) 推荐(0)

搭建github博客,hexo主题
摘要:买个域名,多少钱的都有,看自己喜欢,可以去万网,ali嘛. 一般在windows,下载gitbash(配置公钥,全局用户名和email),node.js(不用配置). 新建github项目,添加公钥(如果重新生成公钥,需要点击y). 在github项目中使用博客,项目后缀记得是.github.io, 阅读全文

posted @ 2017-12-11 18:15 willaty 阅读(191) 评论(0) 推荐(0)

批处理作业调度算法
摘要:基本概念: 作业周转时间(Ti)=完成时间(Tei)-提交时间(Tsi) 作业平均周转时间(T)=周转时间/作业个数 作业带权周转时间(Wi)=周转时间/运行时间 响应比=(等待时间+运行时间)/运行时间 基本概念: FCFS(first come first server) FCFS(first 阅读全文

posted @ 2017-12-11 18:13 willaty 阅读(857) 评论(0) 推荐(0)

空闲分区分配算法
摘要:首先适应算法: 当接到内存申请时,查找分区说明表,找到第一个满足申请长度的空闲区,将其分割并分配。此算法简单,可以快速做出分配决定。 首先适应算法: 当接到内存申请时,查找分区说明表,找到第一个满足申请长度的空闲区,将其分割并分配。此算法简单,可以快速做出分配决定。 最佳适应算法: 当接到内存申请时 阅读全文

posted @ 2017-12-11 18:12 willaty 阅读(3112) 评论(0) 推荐(0)

进程调度算法
摘要:先进先出算法(FIFO): 先进先出算法(FIFO): 时间片轮转算法(RR,round robin): 时间片轮转算法(RR,round robin): 最高优先级算法(HPF): 进程调度每次将处理机分配给具有最高优先级的就绪进程。最高优先级算法可与不同的CPU方式结合形成可抢占式最高优先级算法 阅读全文

posted @ 2017-12-11 18:12 willaty 阅读(856) 评论(0) 推荐(0)

进程与线程基础
摘要:进程: 是具有一定独立功能的程序关于某个数据集合上的一次运行活动. 是系统进行资源`分配和调度`的一个独立单位. 地址空间:处理器位数有关,32位则为4G.(40位为1T) 进程: 线程: 是进程的一个实体. 是CPU调度和分派的基本单位. 私有的包括: 程序计数器,一组寄存器和栈. `共享所属进程 阅读全文

posted @ 2017-12-11 18:11 willaty 阅读(166) 评论(0) 推荐(0)

页面调度算法(虚拟页式存储时)
摘要:FIFO(first in first out) 选择最先进入内存的页面予以淘汰 FIFO(first in first out) 选择最先进入内存的页面予以淘汰 LFU(least frequently used,历史访问频率) 选择到当前时间为止被访问次数最少的页淘汰 LFU(least fre 阅读全文

posted @ 2017-12-11 18:11 willaty 阅读(1144) 评论(0) 推荐(0)

磁盘调度算法
摘要:1. 先来先服务(FCFS): 是按请求访问者的先后次序启动磁盘驱动器,而不考虑它们要访问的物理位置. 1. 先来先服务(FCFS): 是按请求访问者的先后次序启动磁盘驱动器,而不考虑它们要访问的物理位置. 2. 最短寻道时间优先(SSTF,Shortest Seek Time First): 让离 阅读全文

posted @ 2017-12-11 18:10 willaty 阅读(2363) 评论(0) 推荐(1)

tr命令
摘要:介绍: 介绍: 用管道来输入输出字符串,经tr处理,主要用于删除,替换,压缩。 用管道来输入输出字符串,经tr处理,主要用于删除,替换,压缩。 参数: -c: 取指定字符集的补集,注意,对原集合不影响,用户后续删除操作等。 -d: 删除集合,可以和-c组合,如-d -c [0-9],表示删除非0-9 阅读全文

posted @ 2017-12-11 18:09 willaty 阅读(125) 评论(0) 推荐(0)

strip命令
摘要:去掉文件里调试和符号信息,文件大小变小,一般在发布的时候使用。 主要作用于可执行文件,动态库,目标文件等。 可参考:http://blog.csdn.net/stpeace/article/details/47090255 阅读全文

posted @ 2017-12-11 18:07 willaty 阅读(249) 评论(0) 推荐(0)

CentOS错误
摘要:centos下yum lock的解决办法 Another app is currently holding the yum lock; waiting for it to exit... 解决办法: rm -f /var/run/yum.pid 阅读全文

posted @ 2017-12-11 18:06 willaty 阅读(184) 评论(0) 推荐(0)

CentOS6,7不同
摘要:centos6与centos7,防火墙,开机自启不同 centos6与centos7,防火墙,开机自启不同 6用iptables,7用firewall-cmd http://www.cnblogs.com/liyuanhong/articles/7064582.html 6用chkconfig,7用 阅读全文

posted @ 2017-12-11 18:04 willaty 阅读(179) 评论(0) 推荐(0)

系统引导一些区别
摘要:关于GPT硬盘和MBR硬盘的区别: GPT硬盘能识别2T以上硬盘. 注意GPT转MBR的话,使用diskgenius免费版的话,需要先删除所有分区. 关于GPT硬盘和MBR硬盘的区别: GPT硬盘能识别2T以上硬盘. 注意GPT转MBR的话,使用diskgenius免费版的话,需要先删除所有分区. 阅读全文

posted @ 2017-12-11 18:00 willaty 阅读(334) 评论(0) 推荐(0)

进程通信方式
摘要:(1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。 (2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关 系 进程间的通信。命名管道在文件系统中有对应的文件名。命名管 阅读全文

posted @ 2017-12-11 18:00 willaty 阅读(122) 评论(0) 推荐(0)

Ubuntu切换阿里源
摘要:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份 sudo vim /etc/apt/sources.list #修改 sudo apt-get update #更新列表 阿里云源 deb http://mirrors.aliyu 阅读全文

posted @ 2017-12-11 17:59 willaty 阅读(285) 评论(0) 推荐(0)

转)ubuntu安装clang
摘要:主要参考:http://blog.csdn.net/firebird321/article/details/48528569 主要参考:http://blog.csdn.net/firebird321/article/details/48528569 1.下载源码 去http://llvm.org/ 阅读全文

posted @ 2017-12-11 17:58 willaty 阅读(9226) 评论(0) 推荐(0)

Linux找不到动态库
摘要:首先系统上得有,只是路径问题 可使用ldd查看可执行程序的依赖库 以下都需要超级权限: find / -name libnet.so.9 // 可能在/usr/lib或/usr/local/lib中 vim /etc/ld.so.conf // 把动态库路径加到最后一行 执行ldconfig 参考: 阅读全文

posted @ 2017-12-11 17:57 willaty 阅读(452) 评论(0) 推荐(0)

关于"undefined reference"错误
摘要:这个错误换句话说: 链接的时候找不到实现的文件(谨记从这个入手!). 可能导致的原因有: 1. 没有链接库文件,包括静态库或动态库. 2. 链接文件的顺序问题,先后依赖问题,把被依赖的放后面. 3. C++中使用了C文件编译的库,指那些自己实现的,如UNP书的库,需要使用extern"C"{ ... 阅读全文

posted @ 2017-12-11 17:57 willaty 阅读(295) 评论(0) 推荐(0)

奸题
摘要:Base a(); //并不是构造,而是声明一个函数;调用默认构造是Base a; 函数中分配内存,使用二级指针,否则会释放. 阅读全文

posted @ 2017-12-11 13:28 willaty 阅读(109) 评论(0) 推荐(0)

重载,隐藏,覆盖区别
摘要:1. 重载(overload): 同名异参同域(如同类中),virtual可有可无.2. 覆盖(override): 同名同参有virtual,不同类,派生覆盖基类.3. 隐藏: 同名不同参异域(如基类和派生类),不管有无virtual(意图可能是为了把责任交给子类). 同名同参没有virtual. 阅读全文

posted @ 2017-12-11 13:27 willaty 阅读(180) 评论(0) 推荐(0)

strcmp函数
摘要:int strcmp(const char *str1,const char *str2) { /*不可用while(*str1++==*str2++)来比较,当不相等时仍会执行一次++, return返回的比较值实际上是下一个字符。应将++放到循环体中进行。*/ while(*str1 == *str2) { if(*str1 == '\0') ... 阅读全文

posted @ 2017-12-11 13:25 willaty 阅读(171) 评论(0) 推荐(0)

strcpy函数;memcpy函数;memmove函数
摘要:strcpy函数实现: char* strcpy(char* des,const char* source) { char* r=des; assert((des != NULL) && (source != NULL)); while((*des++ = *source++)!='\0') ; / 阅读全文

posted @ 2017-12-11 13:24 willaty 阅读(227) 评论(0) 推荐(0)

关于Python的OSError和IOError
摘要:参考:http://stackoverflow.com/questions/29347790/difference-between-ioerror-and-oserror 在3.x版本已经移除,剩下OSError,其实两者差别几乎没有, 常见,open函数是IOError,其他如os.remove, 阅读全文

posted @ 2017-12-11 13:13 willaty 阅读(18839) 评论(0) 推荐(0)

C++,坑...
摘要:如果使用const全局变量,记得声明处的引用处都加extern。 uint32_t等,t代表是typedef的,在stdint.h头文件里,C99后引入,记得先测试再用。 accept函数的参数,记得初始化,否则可能出错。 阅读全文

posted @ 2017-12-11 13:08 willaty 阅读(120) 评论(0) 推荐(0)

Jsoncpp使用
摘要:常用组件 常用组件 Value: 支持的类型,null,int,uint,double,string(utf-8),bool,array,object Value: 支持的类型,null,int,uint,double,string(utf-8),bool,array,object Writer: 阅读全文

posted @ 2017-12-11 13:06 willaty 阅读(489) 评论(0) 推荐(0)

git使用
摘要:1. 安装git: sudo apt-get install git git config --global user.name "Your Name" git config --glocal user.email "Your email" 使用global,表示主机所有git都使用这个name,e 阅读全文

posted @ 2017-12-11 13:04 willaty 阅读(152) 评论(0) 推荐(0)

rapidjson使用
摘要:Value构造 Value对象最好先声明后初始化,如果声明直接初始化可能出错。 rapidjson::Value a; a = val[i]; Value构造 Value对象最好先声明后初始化,如果声明直接初始化可能出错。 Value传参 Value传参,最好显式使用右值,如std::move,或使 阅读全文

posted @ 2017-12-11 13:02 willaty 阅读(1027) 评论(0) 推荐(0)

一些做题原则
摘要:获取输入,计算,输出.不做多余的事情,清楚格式. 每行输出以换行符结束,包括最后一行. 解决问题用最直接的,不要炫技.(KISS,keep it simple and stupid) floor(x),取不大于x的最大整数,floor(x+0.5)四舍五入. 常用: floor(sqrt(n)+0. 阅读全文

posted @ 2017-12-11 12:58 willaty 阅读(153) 评论(0) 推荐(0)

转)TNS协议--翻译自《The Oracle Hackers Handbook》
摘要:在开发源工具解决Oracle中的问题时,必须了解TNS协议。在努力理解TNS协议的时候,Oracle JDBC驱动程序(classes12.zip)会是一个很有用的资源TNS头。 每个TNS包都有一个8字节的包头。包最前面的两个字节用来表示包的长度–不包括包头的大小。和所有的值一样,大小是大端字节的 阅读全文

posted @ 2017-12-11 12:05 willaty 阅读(557) 评论(0) 推荐(0)

转)Ubuntu14安装wireshark进行抓包
摘要:转自:http://jingyan.baidu.com/article/c74d60009d992f0f6a595de6.html 背景: ubuntu14.04/64位 为了抓包和分析包 转自:http://jingyan.baidu.com/article/c74d60009d992f0f6a5 阅读全文

posted @ 2017-12-11 12:01 willaty 阅读(1194) 评论(0) 推荐(1)

安装tftp服务器进行文件传输
摘要:1. 安装: sudo apt-get install tftp-hpa tftpd-hpa ps: tftpd是服务器,tftp是客户端,客户端能发送和获取,服务器不能动. 1. 安装: 2. 配置文件: sudo vim /etc/default/tftpd-hpa 修改为如下内容: TFTP_ 阅读全文

posted @ 2017-12-11 11:50 willaty 阅读(1407) 评论(0) 推荐(0)

Ubuntu安装输入法
摘要:使用14.04,16.04 安装fcitx: sudo apt-get install fcitx libssh2-1 安装搜狗输入法: http://pinyin.sogou.com/linux/ 在设置中语言结构为fcitx,注销,在输入法中添加(注意,添加时,看看选项:只显示当前使用语言.) 阅读全文

posted @ 2017-12-11 11:48 willaty 阅读(160) 评论(0) 推荐(0)

virtualbox Linux与Windows共享文件
摘要:安装virtualbox增强功能 在Windows下新建文件用于共享,点设置->共享文件夹->添加共享文件,制定路径和名称(名称用于Linux中挂载使用)(选择固定分配) 在Linux中mount -t vboxsf ShareFolderName /mnt/shared/,其中,前者是步骤2中的共 阅读全文

posted @ 2017-12-11 11:47 willaty 阅读(129) 评论(0) 推荐(0)

两台Linux之间传文件
摘要:安装sudo apt-get install openssh-client openssh-server 使用scp命令: scp john@~/hallo.h /usr/include 将左边移动到右边,如果是文件夹加个-r递归,其他参数看手册. 注意: 确定服务有开启: ps -aux | gr 阅读全文

posted @ 2017-12-11 11:47 willaty 阅读(782) 评论(0) 推荐(0)

VMware Ubuntu 窗口太小 未安装VMwareTools
摘要:安装vmtools就行了:在虚拟机点击重新安装vmtools. 在虚拟机里点开挂载的,将那个压缩文件拉出document,解压 在命令行sudo运行.pl结尾的文件,一路回车就行了. 重启即可. 阅读全文

posted @ 2017-12-11 11:46 willaty 阅读(177) 评论(0) 推荐(0)

sublime快捷键
摘要:折叠:ctrl+k,ctrl+1->第一层折叠, ctrl+k,ctrl+j展开. alt+shift+2:二分屏 阅读全文

posted @ 2017-12-11 11:44 willaty 阅读(136) 评论(0) 推荐(0)

VMware安装win7:units specified don't exist问题
摘要:主要是磁盘接口不匹配,调整CD/DVD和硬件磁盘接口, CD/DVD调整成IDE,硬盘调整成SATA即可. 提示system not found,主分区没有激活,进入disgenius,会提示修正,保存重启即可. 阅读全文

posted @ 2017-12-11 11:44 willaty 阅读(486) 评论(0) 推荐(0)

jsoncpp在Windows和Linux下的安装
摘要:Windows下: 参考这个网站,没什么问题,注意MTd这些选对就行了. http://www.cppblog.com/wanghaiguang/archive/2013/12/26/205020.html Linux下: 安装Python,安装scons 解压压缩包后,scons platform 阅读全文

posted @ 2017-12-11 11:43 willaty 阅读(2247) 评论(0) 推荐(0)

docker在centos和Ubuntu的安装
摘要:CentOS: http://blog.csdn.net/wuapeng/article/details/51728614 rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm 除了内核,可能是设备映射库: y 阅读全文

posted @ 2017-12-11 11:43 willaty 阅读(233) 评论(0) 推荐(0)

转)Ubuntu安装mysql5.7
摘要:主要参考http://blog.csdn.net/q894523017/article/details/50705392 包去官网下载,解压,安装步骤如下: 上文中有错误,正确如下: sudo dpkg -i mysql-common_5.7.10-1ubuntu14.04_amd64.deb su 阅读全文

posted @ 2017-12-11 11:42 willaty 阅读(151) 评论(0) 推荐(0)

VMware安装Windows注意
摘要:安装Windows通用步骤,分区,重建分区表,重写MBR引导。安装即可。 VMware安装Windows 如果进不了CM/ROM,在.vmx文件里: 加入一行:bios.forceSetupOnce = "TRUE" ;开机就自动进入BIOS,但只有一次。 victualbox,能进CD/ROM,直 阅读全文

posted @ 2017-12-11 11:41 willaty 阅读(151) 评论(0) 推荐(0)

安装Ubuntu后一些准备
摘要:一些基础 安装的时候,先不选镜像就可以避开简易安装. 更改root密码:sudo passwd root 更改源,更新,不行就打断在更新 安装vim 改为unity模式,安装VMware Tools,参考http://blog.csdn.net/gongyuan073/article/details 阅读全文

posted @ 2017-12-11 11:40 willaty 阅读(153) 评论(0) 推荐(0)

安装完CentOS可以不做的事
摘要:添加用户到sudo. 打开/etc/sudoers 找到root ALL=(ALL) ALL这一行,在后面再加上一行就可以了(不用引号): username ALL=(ALL) ALL 注意,都用tab分割. 改镜像源 CentOS 6 wget -O /etc/yum.repos.d/CentOS 阅读全文

posted @ 2017-12-11 11:35 willaty 阅读(155) 评论(0) 推荐(0)

VMware克隆CentOS网络配置
摘要:配置网络 如果是克隆CentOS的: vi /etc/udev/rules.d/70-persistent-net.rules 注释掉网络eth0,把最后一个改为eth0,记录下mac地址。 vi /etc/sysconfig/network-scripts/ifcfg-eth0 HWADDR=00 阅读全文

posted @ 2017-12-11 11:34 willaty 阅读(128) 评论(0) 推荐(0)

转)安装svn服务器
摘要:以下转载自:http://www.linuxidc.com/Linux/2015-01/111956.htm 以下转载自:http://www.linuxidc.com/Linux/2015-01/111956.htm 安装 安装软件包: sudo apt-get install subversio 阅读全文

posted @ 2017-12-11 11:28 willaty 阅读(157) 评论(0) 推荐(0)

centos7,Python2.7安装request包
摘要:1、安装epel扩展源:“sudo yum install epel-release” 2、安装python-pip:“sudo yum install python-pip” 3、升级pip:“sudo pip install --upgrade pip” 4、安装requests包:“sudo 阅读全文

posted @ 2017-12-11 11:27 willaty 阅读(872) 评论(0) 推荐(0)

gitlab安装
摘要:官网解释很清楚:https://www.gitlab.com.cn/installation/ 如果安装很慢的话,原因应该是外国源,可用清华的源: 官网解释很清楚:https://www.gitlab.com.cn/installation/ 如果安装很慢的话,原因应该是外国源,可用清华的源: 直接 阅读全文

posted @ 2017-12-11 11:26 willaty 阅读(141) 评论(0) 推荐(0)

redis基础
摘要:kv数据库 C语言写的 可内存可持久化 只有5中数据结构 string,hash,set,zset,list 键,任一对象都拥有的属性,即便是string。 注意:5种数据结构都有键,可理解为their name。 五种结构讨论: zset是有序集合,唯一,分数可重复(也许因为精确度问题)。 lis 阅读全文

posted @ 2017-12-11 11:23 willaty 阅读(101) 评论(0) 推荐(0)

oracle在centos6.5安装
摘要:说明 很多操作是默认,具体定制另说. 说明 很多操作是默认,具体定制另说. 安装 参考http://www.linuxidc.com/Linux/2014-02/97374p4.htm 这篇是上面那篇的整合版:http://www.cnblogs.com/mophee/archive/2013/06 阅读全文

posted @ 2017-12-11 11:22 willaty 阅读(159) 评论(0) 推荐(0)

mysql通信协议
摘要:登录 登录 1. 三次登录认证 服务器问候,服务器发送自己信息. 登录认证,客户端发送自己账号密码. 登录结果,成功则为OK包. 注意,这三次算是一次会话,包序号为1,2,3. 1. 三次登录认证 服务器问候,服务器发送自己信息. 登录认证,客户端发送自己账号密码. 登录结果,成功则为OK包. 注意 阅读全文

posted @ 2017-12-11 11:16 willaty 阅读(189) 评论(0) 推荐(0)

远程连接mysql
摘要:修改mysql.user表 以root或debian-sys-maint身份登录mysql 如果root用户连不上,可以新建用户(建议不要用root用户连): mysql>create user user_name identified by 'password123456'; $ mysql -u 阅读全文

posted @ 2017-12-11 11:15 willaty 阅读(127) 评论(0) 推荐(0)

MySQL优化update操作
摘要:http://www.cnblogs.com/jevo/p/3314928.html 用replace代替delete和insert。 insert用批量。 用延迟(类似于缓冲,会否饿死) 大量插入,可锁表 从文件加载(为何不需更新表) http://www.ihref.com/read-16422 阅读全文

posted @ 2017-12-11 11:14 willaty 阅读(251) 评论(0) 推荐(0)

MySQL索引
摘要:方式 有几种方式,最常见是B树。还有哈希 方式 有几种方式,最常见是B树。还有哈希 使用场合 select或update等带有where时都可以,索引帮助where快速过滤。 使用场合 select或update等带有where时都可以,索引帮助where快速过滤。 适合数据类型 MySQL支持很多 阅读全文

posted @ 2017-12-11 11:13 willaty 阅读(176) 评论(0) 推荐(0)

mongo嗅探器mongosniff
摘要:mongo嗅探器 在更高版本被mongoreplay取代。 mongo嗅探器 在更高版本被mongoreplay取代。 安装: 在Ubuntu直接apt-get install mongodb即包含有。 安装: 在Ubuntu直接apt-get install mongodb即包含有。 使用方法 直 阅读全文

posted @ 2017-12-11 11:11 willaty 阅读(679) 评论(0) 推荐(0)

mongo远程登录
摘要:1. 进入数据库: use admin db.addUser("foo","foo"); ps:高版本用db.createUser创建。 1. 进入数据库: use admin db.addUser("foo","foo"); ps:高版本用db.createUser创建。 2. 改配置 如/etc 阅读全文

posted @ 2017-12-11 11:11 willaty 阅读(170) 评论(0) 推荐(0)

sqlite小知识
摘要:删除数据时,由于缓存关系,数据了文件大小不会一下子减小,可以通过执行vacuum;或新建表时使用自动整理大小来实现. sqlite的大小理论上可以达到140T. 暂时,使用C的api,只能使用不是.开头的命令,vacuum;也可以. 查看表结构,既可以用.schema也可以用select * fro 阅读全文

posted @ 2017-12-11 11:06 willaty 阅读(147) 评论(0) 推荐(0)

Ubuntu安装libevent
摘要:背景: 版本: libevent 2.1.6beta 背景: 版本: libevent 2.1.6beta linux下: 按照github官方做法: $ sudo apt-get install openssl $ mkdir build && cd build $ cmake .. # Defa 阅读全文

posted @ 2017-12-11 11:02 willaty 阅读(10791) 评论(0) 推荐(1)

套接字地址结构
摘要:1. 通用套接字地址结构: 1. 通用套接字地址结构: 1.1 概念: 套接字有几种类别,都可以放进通用套接字的容器中. 意即,具体的套接字是在通用套接字的基础上细化. 1.1 概念: 1.2 结构体如下: struct sockaddr{ uint8_t sin_len; unsigned sho 阅读全文

posted @ 2017-12-08 18:49 willaty 阅读(604) 评论(0) 推荐(0)

初始化函数1
摘要:1. 字节排序函数: 1. 字节排序函数: 1.1 大端小端: 参考其他笔记或资料,一句话:低地址低位为小端. 1.1 大端小端: 1.2 常用函数: #include <netinet.h/in.h> uint16_t htons(uint16_t va); uint32_t htonl(uint 阅读全文

posted @ 2017-12-08 18:46 willaty 阅读(295) 评论(0) 推荐(0)

初始化函数2
摘要:1. socket函数: #include <sys/socket.h> int socket(int family, int type, int protocol); 1. socket函数: 1.1. 参数: 第一个参数指定协议族(我理解为ip族): AF_INET,AF_INET6 第二个参数 阅读全文

posted @ 2017-12-08 18:44 willaty 阅读(188) 评论(0) 推荐(0)

非阻塞IO
摘要:非阻塞io 使用fcntl设置,先GETFL操作,取得后逻辑与,在SETFL 一般直接返回EWOULDBLOCK. 对已connect: 可能立即返回,比如在同一机器上时. 当连接成功时,描述符可写;当连接错误时,描述符既可读又可写.(tcpv2,530页) 管理缓冲区很复杂,比select+阻塞快 阅读全文

posted @ 2017-12-08 18:42 willaty 阅读(191) 评论(0) 推荐(0)

几种TCP连接终止
摘要:在三次连接完成后,accept调用前,客户机发来RST. Berkeley实现将完全在内核中处理,不通知. 而SVR4实现将返回一个错误EPROTO,而POSIX指出应该是ECONNABORTED,后面将补充解决方法. 如果服务器进程终止,而如果客户端对于套接字和用户输入两个源,只监听其中一个,则会 阅读全文

posted @ 2017-12-08 18:01 willaty 阅读(594) 评论(0) 推荐(0)

tcp连接需要注意的问题
摘要:当有子进程时,子进程终止时会返回SIGCHLD信号,默认忽略,此时会有僵尸进程. 处理方法: 捕获信号,并waitpid. 当慢系统调用被中断时(如信号中断),有些系统不会自动重启调用,此时系统调用可能返回一个EINTR错误.需要检测并重启系统调用.但connect函数不能重启,调用select. 阅读全文

posted @ 2017-12-08 18:00 willaty 阅读(162) 评论(0) 推荐(0)

IO模型与select,poll,epoll
摘要:五种:阻塞,非阻塞,IO复印,信号驱动,异步. 五种:阻塞,非阻塞,IO复印,信号驱动,异步. select,poll,epoll select: 典型用32个32位的整数表示1024个描述符,并发的局限. poll:功能同上,但数据结构不一样(链表),描述符不限制,只支持水平触发. epoll:数 阅读全文

posted @ 2017-12-08 17:59 willaty 阅读(191) 评论(0) 推荐(0)

为什么需要三次握手
摘要:三次握手基础: tcp三次握手是同步双方序列号和窗口大小的过程. 三次握手基础: 三次的原因: 一次肯定不行,C不知道是否连接成功,发送数据则错误. 两次的话存在一个问题: 已过期的连接包再现,S会回复确认并以为连接成功. 三次的话,过期的包,由于C并未发起连接,C就不会回复. `总结: 防止已失效 阅读全文

posted @ 2017-12-08 17:51 willaty 阅读(472) 评论(0) 推荐(0)

最小重组缓冲区和路径MTU发现
摘要:概括: 主要来源于unp,可参考:http://blog.csdn.net/ysu108/article/details/7764461 概括: 主要来源于unp,可参考:http://blog.csdn.net/ysu108/article/details/7764461 疑惑: 疑惑: 1. 最 阅读全文

posted @ 2017-12-08 17:50 willaty 阅读(1502) 评论(0) 推荐(0)

TIME_WAIT状态的作用
摘要:TIME_WAIT状态: 主动关闭的那端最后经历的状态,一般为2MSL秒(1~4分钟). TIME_WAIT状态: 两个原因: 保证当最后一个ack丢失后,能收到对端重传的fin包. 保证ack包消失,不会影响下一个连接. 关于原因2: 重传时间一般为几百毫秒,而延时的数量级可能为几十秒(MSL数量 阅读全文

posted @ 2017-12-08 17:49 willaty 阅读(916) 评论(0) 推荐(0)

ftp指令集
摘要:想进行ftp相关编程,得了解ftp的指令集. 可参考:http://blog.csdn.net/weiyuefei/article/details/51758288 ftp的命令和指令集不同: 命令是面向用户的,控制台输入的. 指令集是应用层的协议内容. ps: ftp使用ls,传输文件命令都会另开 阅读全文

posted @ 2017-12-08 17:47 willaty 阅读(239) 评论(0) 推荐(0)

git协议
摘要:常用三种协议:ssh, git, http 常用三种协议:ssh, git, http ssh协议: 使用ssh传输,安全,可授权,需要用ssh登录,一般使用添加秘钥的方式。搭建方便。 ssh协议: 使用ssh传输,安全,可授权,需要用ssh登录,一般使用添加秘钥的方式。搭建方便。 git协议: 使 阅读全文

posted @ 2017-12-08 17:44 willaty 阅读(338) 评论(0) 推荐(0)

条款3:尽可能地使用const
摘要:原因: 1. 利于编译器优化,比如QT中的隐式数据共享,也利于编译器检查约束。 2. 避免if a*b = c等意外行为。 阅读全文

posted @ 2017-12-08 17:10 willaty 阅读(134) 评论(0) 推荐(0)

条款4:确定对象使用前被初始化
摘要:包括内置类型,对象。 但问题是不同编译单元之间的初始化。 指全局对象,如static等。 不可能确定其初始化顺序。 可以用单例,如在函数里返回函数static成员的引用。 只在第一次调用时初始化。 注意:多线程调用,最好在启动时一起初始化。调用时内部加锁,这是一种方案。 总结:手工初始内置类型。构造 阅读全文

posted @ 2017-12-08 17:10 willaty 阅读(165) 评论(0) 推荐(0)

条款2:尽量以const, enum, inline替换#define
摘要:原因: 1. 追踪困难,由于在编译期已经替换,在记号表中没有。 2. 由于编译期多处替换,可能导致目标代码体积稍大。 3. define没有作用域,如在类中定义一个常量不行。 做法: 可以用const发挥常量的作用。 enum也可:取enum定义的变量地址不合法,取宏也是;而取const变量则合法。 阅读全文

posted @ 2017-12-08 17:06 willaty 阅读(182) 评论(0) 推荐(0)

条款1:视C++为一个语言联邦
摘要:C++是门多范式语言,至少包括面向过程,面向对象,泛型,函数式,元变成等。 但谨记,不要随意混合使用各种特性,为自己制定使用原则,针对不同项目、业务。 如: 类C风格编程:没有模板,没有异常,没有重载等。 面向对象:封装,继承,多态等。 模板编程:一般用于底层库的编写,大量使用模板。 STL:有自己 阅读全文

posted @ 2017-12-08 17:05 willaty 阅读(170) 评论(0) 推荐(0)

关于元表,self,元方法__index
摘要:这是需要仔细分辨的几个概念. 这是需要仔细分辨的几个概念. 元表:相当于table的隐藏属性. 只有固定的一些方法,如__index,__tostring,__add等,称为元方法. 虽然是固定的,但是任何table都可以作为任何值的元表,实际只会赋值对应的值. 元表:相当于table的隐藏属性. 阅读全文

posted @ 2017-12-08 16:36 willaty 阅读(154) 评论(0) 推荐(0)

格式化异常
摘要:Fundamental 一切来源于:sys.exc_info 返回一个元组->三个对象,异常类型,异常值,tb对象->tb对象包含位置信息。 Fundamental 一切来源于:sys.exc_info 返回一个元组->三个对象,异常类型,异常值,tb对象->tb对象包含位置信息。 def func 阅读全文

posted @ 2017-12-08 16:26 willaty 阅读(243) 评论(0) 推荐(0)

request模块
摘要:高级用法,文件流发送:http://docs.python-requests.org/zh_CN/latest/user/advanced.html#advanced 高级用法,文件流发送:http://docs.python-requests.org/zh_CN/latest/user/advan 阅读全文

posted @ 2017-12-08 16:07 willaty 阅读(101) 评论(0) 推荐(0)

模块常用snippet
摘要:压缩,文件操作,数据库,md5,json, 压缩,文件操作,数据库,md5,json, 压缩 压缩 import os, sys, time import zipfile # 解压 filename = 'callofdutyblackopszombies_1349649132343_my.zip' 阅读全文

posted @ 2017-12-08 16:06 willaty 阅读(180) 评论(0) 推荐(0)

time,datetime,时间戳 时间格式转换
摘要:总结: 总结: time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") 几个概念 时间戳:整型或float time对象,datetim 阅读全文

posted @ 2017-12-08 16:05 willaty 阅读(562) 评论(0) 推荐(0)

坑!!!
摘要:文件读写:f.seek如果偏移超出文件大小,会报错:IOError: invalid argument。从提示...完全看不出问题在哪!:-) subprocess模块:p.poll(),查看进程是否结束,没有结束返回None,结束了返回0 阅读全文

posted @ 2017-12-08 15:45 willaty 阅读(131) 评论(0) 推荐(0)

PyQt5信号与槽
摘要:简单使用 可以使用designer的一个模式定义,也可以自己定义,在__init__函数里,self.btn.clicked.connect(self.text.clear)。 注意:槽不用加括号,可是lambda对象等,connect最好在初始化函数里避免多次连接。 简单使用 可以使用design 阅读全文

posted @ 2017-12-08 15:32 willaty 阅读(1001) 评论(0) 推荐(0)

PyQt5安装
摘要:在Windows安装,直接pip install python_qt5,针对Python2.7版本的。 测试,不报错即可。 在Windows安装,直接pip install python_qt5,针对Python2.7版本的。 测试,不报错即可。 import sys from PyQt5 impo 阅读全文

posted @ 2017-12-08 15:30 willaty 阅读(376) 评论(0) 推荐(0)

中文路径读取乱码,json乱码
摘要:strPath = 'E:\新建文件夹' #含有中文的路径,使用unicode函数转换. strPath = unicode(strPath , "utf8") 参考:http://blog.csdn.net/qingyuanluofeng/article/details/49021711 json 阅读全文

posted @ 2017-12-08 15:25 willaty 阅读(296) 评论(0) 推荐(0)

Python错误:close failed in file object destructor
摘要:我遇到的情况: 二进制程序调shell再调Python后,shell退出,Python进程挂到init上(不是僵尸进程),但 此时二进制程序未退出,这时候中断而二进制程序出现此提示。 经查询: 应该是Python程序的stdout出错,最好输出到文件,不要输出到stdout。 其次,也可以忽略此信息 阅读全文

posted @ 2017-12-08 15:21 willaty 阅读(4777) 评论(0) 推荐(0)

Python调shell
摘要:os.system(cmd) 函数返回cmd的结束状态码,阻塞调用。 os.popen(cmd) 函数返回cmd的标准输出,阻塞调用。 (status, output) = commands.getstatusoutput(cmd) 函数返回cmd的结束状态码和标准输出,阻塞调用。 subproce 阅读全文

posted @ 2017-12-08 15:18 willaty 阅读(519) 评论(0) 推荐(0)

关于类和模块与导入的思考
摘要:相似性 从某个角度来讲,类和模块些许相似性。 你可以在模块中封装私有方法,都是import一个对象后调用其中方法。 在写一组接口时是应该封装成类还是模块? ps:如果把两者看成对象来操作,模块可以实现类似类的很多功能,但不建议随意修改底层魔法方法。 区别 类的特性:继承特性,重载等 模块:类似类的单 阅读全文

posted @ 2017-12-08 15:14 willaty 阅读(135) 评论(0) 推荐(0)

全局变量
摘要:如果在模块中定义了全局变量,注意: 如果别人用from *方式导入,则可能命名冲突。 在模块中使用时,如果是赋值,需要先global;如果直接使用,则可以不用。因为Python先从局部变量找(locals),找不到才找全局(globals)。 阅读全文

posted @ 2017-12-08 12:12 willaty 阅读(158) 评论(0) 推荐(0)

信号
摘要:可用signal模块 用dir(signal)模块查看信号 其中kill信号是不能捕获的,其他程序结束符号可以捕获。 ps:所以平时kill的时候尽量不要kill 9,先给个机会处理后事。 Python中的对应信号是signal.SIGINT,signal.SIGTERM等。 ps:wing5.1中 阅读全文

posted @ 2017-12-08 12:09 willaty 阅读(243) 评论(0) 推荐(0)

断点
摘要:可手动设置断点: pdb.set_trace() 到了相应断点后,可输入: bt查看栈 n,l,p, s进入函数 b设置断点 有点鸡肋... 阅读全文

posted @ 2017-12-07 20:38 willaty 阅读(129) 评论(0) 推荐(0)

函数式编程
摘要:闭包,有点类似类。 例子:有自己内部变量的函数 def transaction(): sqls = [] def insert(sql): sqls.append(sql) def update(sql): sqls.append(sql) def commit(): conn = self.__g 阅读全文

posted @ 2017-12-07 20:27 willaty 阅读(146) 评论(0) 推荐(0)

数据结构
摘要:集合 线性结构,集合无序,不可索引和切片。 可用set('abc')等方式生成 可用操作: 集合 线性结构,集合无序,不可索引和切片。 可用set('abc')等方式生成 可用操作: <,>,>=,==,!= :指结合的子集,超集等(注意,此处a>b和a < b都为False,不能说明其相等) |, 阅读全文

posted @ 2017-12-07 20:22 willaty 阅读(120) 评论(0) 推荐(0)

待总结...
摘要:装饰器 操作mysql 类super 协程 阅读全文

posted @ 2017-12-07 20:21 willaty 阅读(130) 评论(0) 推荐(0)

私有化
摘要:用_或__,一或两个下划线都可以。 在类中,用两个下划线,在外部,用一个下划线。 但前后都有两个下划线的是魔法方法,是公有的。 不知有什么黑科技能窃取呢? 阅读全文

posted @ 2017-12-07 20:03 willaty 阅读(154) 评论(0) 推荐(0)

【趣】Python获取变量的变量名
摘要:两种不完美的方式: 两种不完美的方式: 用locals,globals 用locals获取变量列表,再遍历比较对象。 用locals,globals 用locals获取变量列表,再遍历比较对象。 def namestr(obj): ns = globals() return [name for na 阅读全文

posted @ 2017-12-07 11:19 willaty 阅读(11128) 评论(0) 推荐(0)

Python并发讨论
摘要:手段有多线程,多进程,协程。 对于多线程: 由于GIL(全局解释器锁)的存在,多线程实际是单线程的,不能发挥多核的作用: 但对于IO密集型程序,多线程对于效率是有提高的,由于阻塞时,可能会切换到别的线程;但,阻塞时不会马上切换,要等待时间片结束才切换。 而CPU密集型则不适用,线程上下文切换浪费CP 阅读全文

posted @ 2017-12-07 11:10 willaty 阅读(150) 评论(0) 推荐(0)

QT隐式数据共享
摘要:QT中许多C++类使用了隐式数据共享,最小化资源拷贝。当作为参数传递时,实际只传递了指针,这是底层完成的,程序员无需担心,即使是在多线程中,从Qt4开始; 记住,尽量使用const迭代器,vector访问使用at。 在C++中,给数据加上合理的约束利于编译优化。 阅读全文

posted @ 2017-12-07 10:57 willaty 阅读(270) 评论(0) 推荐(0)

QT信号与槽
摘要:参考: 简单例子: http://www.cnblogs.com/MuyouSome/p/3515941.html 基本了解: http://blog.csdn.net/harbinzju/article/details/10813635 详细例子: http://blog.chinaunix.ne 阅读全文

posted @ 2017-12-07 10:55 willaty 阅读(171) 评论(0) 推荐(0)

QT注意事项(持续更新...)
摘要:同样要注意new和delete的问题; is not a member of QApplication:这个错误可能是找不到信号或槽函数; 想用到信号槽,必须至少继承QObject类,并在类第一行写上Q_OBJECT,moc将处理每个Q_OBJECT,但只在头文件有效,所以最好写在头文件里; 阅读全文

posted @ 2017-12-07 10:50 willaty 阅读(168) 评论(0) 推荐(0)

QT各模块
摘要:基本模块: QT core QT gui QT widgets QT multimedia QT webkit 浏览器引擎 QT network QT sql QT test 单元测试 QT webview 不用浏览器查看网页,预览阶段,5.5版本中出现 QT canvas 3D 使用openGL等 阅读全文

posted @ 2017-12-07 10:49 willaty 阅读(304) 评论(0) 推荐(0)

Qt的pro文件--项目配置的部分字段
摘要:Qt项目配置的部分字段: 库: LIBS += -L /usr/local/lib -lpcap INCLUDEPATH += /usr/local/include/ 阅读全文

posted @ 2017-12-07 10:47 willaty 阅读(218) 评论(0) 推荐(0)

导航