- 博客(67)
- 资源 (1)
- 收藏
- 关注
原创 渗透测试学习(1)
XSShtmlspecialchars($name) 函数把string中预定义的字符转换为html实体。str_replace( '<script>', '', $name ); 把name中的<script>标签转换为空字符。可用<scr<script>ipt&
2018-06-26 15:26:47 671
原创 周志华《机器学习》读书笔记(2)
第三章 线性模型给定由d个属性描述的示例 x⃗ =(x1;x2;...;xd)\vec x = (x_1; x_2;... ; x_d),其中xix_i是x⃗ \vec x在第ii个属性上的取值。线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即f(x⃗ )=w1x1+w2x2+...+wdxd+bf(\vec x) = w_1x_1+w_2x_2+...+w_
2017-12-02 13:10:00 311
原创 周志华《机器学习》读书笔记(1)
越来越觉得一个码农应该学点机器学习相关的东西了。希望毕业前能看完这本书。— 2017年11月22日 第一章 绪论数据集中的每条记录是关于一个时间或者对象的描述,成为一个“示例”(instance)或”样本“(sample),反应时间或对象在某方面的表现或性质的事项,如“颜色”、“大小”。属性上的取值成为“属性值”(attribute value);属性张成的空间成为“属性空间”(attribu
2017-11-22 22:53:33 846
原创 《高性能MySQL》读书笔记
第一章 MySQL架构与历史MySQL 服务器逻辑架构图 最上层服务:大多数基于网络的服务都有类似最上层的架构第二层架构:包含大多数MySQL的核心服务功能,包括查询解析、分析、优化、缓存以及所有的内置函数(日期、时间、数学、加密函数等),所有跨存储引擎的功能都在在一层时间:存储过程、触发器、视图等。第三层:包含存储引擎。存储引擎负责 MySQL 中数据的存储与提取。连接管理与安全性。每个
2017-11-22 17:07:25 402
原创 MySQL 配置主从数据库
环境:一台 Master 主服务器,ip 192.168.0.1。一台 Slave 从服务器,ip 192.168.0.2。配置 Master 主服务器:在 Master 服务器上创建一个用户 ‘backup’,并将其权限设置为 REPLICATION SALVE,密码为123456。mysql> create user backup;mysql> GRANT REPLICATION SL
2017-09-29 10:50:13 237
原创 MySQL 数据类型
MySQL 支持所有标准 SQL数值数据类型,MySQL 数据类型是 SQL 标准的扩展。数据类型的作用允许限制可存储在列中的数据。数据类型允许在内部更高效地存储数据。允许变换排序排序。 使用错误的数据类型可能严重影响应用程序的功能和性能
2017-08-23 14:18:05 392
原创 Reactor 模式
Reactor 模式参考:https://segmentfault.com/a/1190000002715832Reactor 模式包含几个主要的模块:Reactor:反应器,定义一个接口,实现以下功能: 供应用程序注册和删除关注的事件句柄。运行事件循环有就绪事件到来时,分发事件到之前注册的回调函数上处理Handle (文件描述符)Synchronous Event Demultiple
2017-08-14 16:59:03 452
原创 高并发服务器架构笔记(4)——muduo_net 源码分析
TCP 网络编程最本质的是处理3.5个事件1. 连接建立:服务端 accept(被动)接受连接,客户端 connect (主动)发起连接。2.连接断开:主动断开(close、shutdown),被动断开(read 返回0)3 处理消息到达事件(核心):当网络库事件循环中的可读事件触发时,将数据从内核缓冲区移动到应用缓冲区中。调用OnMessage( )函数,根据协议判断数据包是否一个完整的数据包(不
2017-08-09 21:23:37 782
原创 Linux 网络编程笔记(3)——进程间通信
进程间通信的目的数据传输资源共享通知时间。进程控制。一个进程完全控制另一个进程的执行,如拦截另一个进程的所有陷入和异常,并能够几时知道它的状态改变。进程间通信的分类文件文件锁管道(pipe)和有名管道(FIFO)信号消息队列共享内存信号量互斥量条件变量读写锁套接字System V IPC 和 POSIX IPCSystem V IPC System V 消息队列
2017-06-01 13:04:40 316
原创 Linux 网络编程笔记(2)——socket 编程
socket 可以看作是用户进程与内核网络协议栈的编程接口既可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信listenfd 是被动套接字,可以用来接受连接。accept 从已完成连接队列中取出一个队列头,得到一个新套接字 connfd。connfd 是主动套接字,不能用来接受连接。服务端和客户端的 ip 和 port 四元组表示 一个连接。REUSEADDR 可以解决
2017-05-28 00:32:44 422
原创 Linux 网络编程笔记(1)——TCP / IP 基础
ISO / OSI 参考模型 TCP / IP 四层模型 基本概念(对等通信、封装、分用、端口) 层 作用 传输单位 作用 应用层 提供应用程序间通信 application PDU 与应用程序界面沟通,以达到展示给用户的目的 表示 处理数据格式、数据加密等 presentation PDU 对网络传输的数据进行变换(压缩加密的) 会话层
2017-05-27 11:27:31 404
原创 高并发服务器架构笔记(3)——muduo_base 源码分析
MutexLock MutexLock Mutex: pthread_mutex_t holder: pid_t (当前拥有该锁的线程 tid) ~~~~~~~~~~~~~ << create >> MutexLock() << destroy >> ~MutexLock() idLockedBythisThread(): bool 判断是否当前线程拥有该锁 asser
2017-05-26 23:45:15 420
原创 高并发服务器架构笔记(3)——muduo_base 源码分析
class Timestamp : public muduo::copyable, public boost::less_than_comparable<Timestamp>{//...}Tinestamp 类封装
2017-05-22 16:48:05 845
原创 高并发服务器架构笔记(2)——面向对象编程风格
以封装一个线程类为例 Thread (一个线程抽象基类) threadId: pthread_t Strat(): void Join(): void ThreadRoutine(void* arg): void Run(): void(纯虚函数)Run()表示这个线程类的执行体,每个线程类都可能不一样 TestThread : Thread (派生自 THread 的
2017-05-21 23:16:37 301
原创 高并发服务器架构笔记(1)——poll 和 epoll
signal(SIGPIPE, SIG_IGN); //忽略 SIGPIPE 信号如果客户端关闭套接字 close(sockfd); 而服务器调用了一次write() 这时候服务器会产生一个 SIGPIPE 信号。TIME_WAIT 状态对高并发服务器有不利影响。应尽可能避免在服务器端出现 TIME_WAIT 状态,因为会耗费大量比必要的资源。协议设计上,应尽可能让客户端先 close
2017-05-18 11:05:47 502
原创 数据库的三个范式
第一范式(1NF)强调列的原子性,即列不能够再分成其他几列。 考虑有这样一个表:【联系人】(姓名、性别、电话) 如果在实际场景中,一个联系人有家庭电话和公司电话,那么这种表结构就不符合1NF,应把电话列拆分成家庭电话和公司电话。第二范式(2NF)首先是1NF,另外还有两部分内容。 1. 一个表必须有一个主键。 2. 不在主键里的列必须依赖主键的所有内容,而不能只依赖主键的一部分。
2017-05-05 16:05:10 356
原创 SQL 入门
了解SQL数据库是一个以某种有组织的方式存储的数据集合。表是某种(同一种)特定类型数据的结构化清单数据库名和表名的组合可以唯一的标识一个表名。就像 C++ 中的类名加函数名。表由列组成。列存储表中某部分的信息。每个列都有自己的数据类型。表中的数据按行存储。行是表中的一个记录。主键(primary key)是表中的 一列 或 几列 的组合其值能够唯一标识表中每一行。主键满足以下条件:
2017-05-04 10:29:40 373
原创 《C++ Primer》读书笔记——第十五章_面向对象程序设计_2
OOP基于三个基本盖面:数据抽象、继承和动态绑定。 以下的例子:基类Quote->派生类Bulk_quote 对于某些类,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明称虚函数(virtual function)。class Quote{public: std::string isbn() const; virtual doubl
2017-04-05 17:25:16 710
原创 temp
OOP基于三个基本盖面:数据抽象、继承和动态绑定。 以下的例子:基类Quote->派生类Bulk_quote 对于某些类,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明称虚函数(virtual function)。class Quote{public: std::string isbn() const; virtual double
2017-04-05 17:23:39 294
原创 TCP echo server demo
#include "unp.h"int main(int argc, char *argv[]){ int listenfd, connfd; pid_t childpid; socklen_t clilen; struct sockaddr_in cliaddr, servaddr; //一般是程序员填写sockaddr_in 然后转化成sockaddr类型传到内核 listen
2017-03-25 21:33:23 325
原创 操作系统(2)—进程管理
一、临界资源:一次仅允许一个进程使用的资源 成为临界资源(包括一些物理设备。访问临界资源的那段代码成为临界区。二、为了保证临界资源的正确使用,可以把临界资源地访问过成分成四个部分:进入区。为了进入临界区使用临界资源,在进入区要检查可否进入临界区,如果可以进入临界区,则映射之正在访问临界区的标志,以阻止其他进程同时进入临界区。临界区。进程中访问临界资源的那段代码,又称临界段。退出区。
2017-03-11 23:23:32 464
原创 操作系统(1)—操作系统概述
操作系统的特征:(1)并发(concurrence):两个或多个事件在同一时间间隔内发生。引入进程的目的是为了是程序能并发执行。并发和并行的区别:并发是指多个事件在同一时间间隔内执行(某一个时间点只执行行一个任务),并行是指多个事件在同一时间执行(某一个时间点执行多个任务),并行需要硬件支持。(2)共享(sharing):系统中的资源可供多个并发执行的进程共同使用。共享的方式:
2017-03-04 14:58:26 880
原创 Linux编程——进程的创建
1.系统调用fork()允许一个进程(父进程)创建一新进程(子进程)。具体做法是:新的子进程几乎是父进程的翻版,子进程获得了父进程的栈、数据段、堆和执行文本段的拷贝。可视作将父进程一分为二,术语fork由此得名。(fork()无需参数)2.库函数exit(status)终止一个进程,将进程占用的所有资源(内存,文件描述符等)归还给内核,交其进行再次分配。参数status为一盒整形变量,标识进程
2016-11-17 20:28:39 260
原创 操作系统基本概念——信号(一)
信号是事件发生时对进程的通知机制,有时也称为软件中断。信号与硬件中断的相似之处在于打断了程序执行的正常流程,大多数情况下,无法预测信号到达的准确时间。一个(具有合适权限的)进程能够向另一进程发送信号。这一做法可作为一种同步技术,甚至是进程间通信(IPC)的原始形式。进程也可以向自身发送信号。但是发往进程的诸多信号,通常都是源于内核。有时需要确保一段代码不被传递来的信号中断,为了做到这点
2016-11-16 20:33:56 3065
转载 查找(一)史上最简单清晰的红黑树讲解
原文地址:http://blog.csdn.net/yang_yulei/article/details/26066409#t4查找(一)我们使用符号表这个词来描述一张抽象的表格,我们会将信息(值)存储在其中,然后按照指定的键来搜索并获取这些信息。键和值的具体意义取决于不同的应用。符号表中可能会保存很多键和很多信息,因此实现一张高效的符号表也是一
2016-11-05 10:36:09 242
原创 Linux基本概念
一、操作系统的两种含义:(1)完整的软件包,包括用来管理及算计的核心曾软件,以及附带的所有标准软件工具,例如命令行解释器、GUI、文件操作工具和文本编辑器等。(2)更狭义地,是指管理和分配计算机资源(CPU, RAM和设备)的核心层软件。“内核”和本书中的“操作系统”通常是指第二种含义。二、操作系统(内核)的职能:(1)进程调度。Linux属于抢占式多任务管理系统,多任
2016-11-03 20:11:55 369
原创 博弈论入门(1)——游戏与必胜策略
1.硬币游戏:给出k个数字a1, a2, a3, ..., ak,且至少有一个数字为1(ps:是为了保证最后一定有解,否则当剩下的硬币数比最少的 xi 都要少,就无解了)。一开始有x枚硬币,A、B两人轮流取一定数目硬币,且取的数目必须在集合a1, a2, a3, ..., ak中,取走最后几枚硬币的人获胜,A先取。问:两人都采取最优策略的情况下,谁会获胜?分析:假设最后轮到某个人取时,没有
2016-10-21 23:37:06 4928
原创 《Linux多线程服务端编程》读书笔记——第一章_线程安全的对象生命期管理
要编写线程安全的类,只需用同步原语保护内部状态即可。如果一个对象能被多个线程同时看到,,那么对象的销毁时机会变得模糊不清,可能出现竞态条件(race condition):在即将析构函数一个对象时,从何而知此刻是否有别的线程正在执行该对象的成员函数?如何保证执行成员在函数期间,对象不会在另一个线程被析构?在调用某个对象的成员函数之前,如何得知这个对象还活着?它的析构函数会不
2016-10-15 21:25:46 403
转载 PV操作
PV操作简单理解 http://blog.csdn.net/liushuijinger/article/details/7586656pv原语的定义及解释理解 http://blog.csdn.net/sinat_27042305/article/details/51590476
2016-10-14 22:17:56 350
转载 找工作笔试面试那些事儿(13)---操作系统常考知识点总结
找工作笔试面试那些事儿(13)---操作系统常考知识点总结2016-07-29 08:19 30人阅读 评论(0)收藏举报本文章已收录于:分类: 操作系统(3) 作者同类文章X目录(?)[+]进程管理内存管理 先占个坑,后面陆续修改上一节对数据
2016-10-14 19:54:13 431
原创 《深入理解计算机系统》读书笔记——第七章 链接
链接有两个c文件:/* main.c */void swap();int buf[2] = {1, 2};int main(){ swap(); return 0; }/* swap.c */extern int buf[];int *bufp0 = &buf[0];int *bufp1;void swap(){ int temp;
2016-10-13 22:02:39 953
原创 《C++ Primer》读书笔记——第十六章_模板与泛型编程
16.1.1 函数模板template int compare(const T &v1, const T &v2){ if(v1 < v2) return -1; if(v2 < v1) return 1; return 0;}模板定义以关键字template开始,后跟一个模板参数列表,这是一个逗号分隔的一个或多个模板参数的列表,用 包围起来。
2016-10-12 23:16:46 436
原创 《现代操作系统》读书笔记——第二章 进程与线程
2.1 进程严格的说,在一个瞬间,cpu只能运行一道程序。但在一秒钟期间,他可能运行多道程序,这样就给用户一种并行的错觉。这也称伪并行。多处理机系统(该系统有两个或多个cpu共享同一个物理内存)是真正硬件并行。
2016-10-09 20:41:25 428
原创 《C++ Primer》读书笔记——第十五章_面向对象程序设计
OOP基于三个基本盖面:数据抽象、继承和动态绑定。 以下的例子:基类Quote->派生类Bulk_quote 对于某些类,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明称虚函数(virtual function)。class Quote{public: std::string isbn() const; virtual double ne
2016-09-25 22:28:52 829
原创 《C++ Primer》读书笔记——第九章_顺序容器
《C++ Primer》读书笔记——第九章_顺序容器标签(空格分隔): 未分类一个容器就是一些特定类型对象的集合。顺序容器(sequential container)为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖于元素的值,而是与元素加入容器时的位置相对应。与之相对的是11章的有序和无序关联容器,它们根据关键字的值来存储元素。与容器对应的是适配器,他们为容器操作定义了不同的接口,来与容器
2016-09-25 16:44:41 482
原创 《C++ Primer》读书笔记——第十三章_拷贝控制
一个类有5种特殊的成员函数:拷贝构造函数、拷贝赋值运算符、覅用构造函数、移动赋值运算符、析构函数。如果没有定义这些拷贝控制成员,编译器会自动为它定义缺失的操作。13.1 拷贝构造函数如果一个构造函数的第一个参数是自身类类型的引用,而且任何额外参数都有默认值,则此构造函数是拷贝构造函数。class Foo{public: Foo(); Foo(const F
2016-09-22 00:04:42 1487
原创 《C++ Primer》读书笔记——第八章_IO库
c++语言不直接处理输入输出,而是通过一族定义在标准库中的类型来处理IO。这些类型支持从设备读取数据,向设备写入数据的IO操作,设备可以是文件、控制台窗口等。IO库:istream(输入流)类型,提供输入操作。ostream(输出流)类型,提供输出操作。cin,一个istream对象,从标准输入读取数据。cout,一个ostream对象,从标准输入读取数据。cerr,一个o
2016-09-21 18:49:23 264
原创 《C++ Primer》读书笔记——第七章
类的基本思想是数据抽象和封装。数据抽象是一种依赖于接口和实现分离的编程技术。7.1抽象数据类型不允许用户直接访问他的数据成员。封装可以隐藏数据成员的操作。7.1.2定义在类内部的函数是隐式的inline函数。所有成员都必须在类的内部声明,但是成员函数体可以定义在类外。当调用Sales_data类内的isbn成员函数时,编译器负责把total的地址
2016-09-16 18:27:00 971
原创 《C++ Primer》读书笔记——第六章
6.1.1在c++中,名字有作用域,对象有生命周期。局部变量尽在函数的作用域内可见,同时会隐藏外层作用域中同名的其他所有声明。在所有函数体制外定义的对象存在于程序的整个执行过程中。此类对象在启动时被创建,知道结束才会被销毁。局部变量的生命周期依赖于定义的方式。只存在于块执行期间的对象成为自动对象。形参是一种自动对象。局部静态变量的生命周期可以贯穿函数调用之后的时间。将局
2016-09-11 10:25:12 731
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人