自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Meditation

书写是为了更好地思考

原创 About Cache Coherence, Atomic Operation, Memory Ordering, Memory Barrier, Volatile

写这篇文章的起因是看到何登成博士的一个微博问题,自己想but

2014-04-06 21:43:52

阅读数 5622

评论数 5

原创 虚析构函数? vptr? 指针偏移?多态数组? delete 基类指针 内存泄漏?崩溃?

四条基本规则: 1、如果基类已经插入了vptr, 则派生类将继承和重用该vptr 2、在遇到通过基类指针或引用调用虚函数的语句时,首先根据指针或引用的静态类型来判断所调函数是否属于该class或者它的某个public 基类,如果属于再进行调用语句的改写:  C++ Code  ...

2013-10-11 21:34:36

阅读数 4447

评论数 0

原创 浅谈原始套接字 SOCK_RAW 的内幕及其应用(port scan, packet sniffer, syn flood, icmp flood)

一、SOCK_RAW 内幕 首先在讲SOCK_RAW 之前,先来看创建socket 的函数: int socket(int domain, int type, int protocol); domain :指定通信协议族(protocol family/address)  C++ Code...

2013-10-07 16:30:55

阅读数 21154

评论数 1

原创 十种排序算法总结(冒泡、插入、选择、希尔、归并、堆、快速,计数,桶,基数)

首先声明一下,本文只对七种排序算法做简单总结,并参照一些资料给出自己的代码实现,并没有对某种算法理论讲解,更详细的 了解可以参考以下资料(本人参考): 1、《data structure and algorithm analysis in c 》 2、《大话数据结构》 3、http://blog....

2013-08-01 17:16:54

阅读数 54687

评论数 19

原创 从零开始学C++之boost库(一):详解 boost 库智能指针(scoped_ptr<T> 、shared_ptr<T> 、weak_ptr<T> 源码分析)

一、boost 智能指针 智能指针是利用RAII(Resource Acquisition Is Initialization:资源获取即初始化)来管理资源。关于RAII的讨论可以参考前面的文 章。在使用boost库之前应该先下载后放在某个路径,并在VS 包含目录中添加。下面是boost 库里面的...

2013-07-29 17:15:51

阅读数 13921

评论数 2

原创 从零开始学C++之STL(二):实现简单容器模板类Vec(vector capacity 增长问题、allocator 内存分配器)

首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下:  C++ Code  1 2 template class _Ty, class _Ax = allocator > class vector; ...

2013-07-23 18:23:10

阅读数 5416

评论数 2

原创 从零开始学C++之对象语义与值语义、资源管理(RAII、资源所有权)、模拟实现auto_ptr<class>、实现Ptr_vector

一、对象语义与值语义 1、值语义是指对象的拷贝与原对象无关。拷贝之后就与原对象脱离关系,彼此独立互不影响。比如说int,C++中的内置类型都是值语义,前面学过的三个标准库类型string,vector,map也是值语义 2、对象语义指的是面向对象意义下的对象 对象拷贝是禁止的(Noncopyab...

2013-07-18 20:13:45

阅读数 5349

评论数 1

原创 从零开始学C++之虚继承和虚函数对C++对象内存模型造成的影响(类/对象的大小)

首先重新回顾一下关于类/对象大小的计算原则: 类大小计算遵循结构体对齐原则 第一个数据成员放在offset为0的位置 其它成员对齐至min(sizeof(member),#pragma pack(n)所指定的值)的整数倍。 整个结构体也要对齐,结构体总大小对齐至各个min中...

2013-07-13 09:38:11

阅读数 3802

评论数 0

原创 linux网络编程之socket(十四):基于UDP协议的网络程序

一、下图是典型的UDP客户端/服务器通讯过程 下面依照通信流程,我们来实现一个UDP回射客户/服务器  #include  #include   ssize_t send(int sockfd, const void *buf, size_t len, int flags);  s...

2013-06-12 09:03:05

阅读数 28439

评论数 16

原创 学习 iOS Application Security 需要注意的一些点

http://highaltitudehacks.com/ 0. 基础环境 iPhone 5s 64bit iOS 8.1 已越狱 1. mobileTerminal 使用 源 http://cydia.angelxwind.net 的版本;vim 版本7.1-3p,不要升级到7.3-1; ...

2018-10-17 11:01:27

阅读数 726

评论数 0

原创 Struts2 S2-045 漏洞触发流程不严谨推测

// 根据 已有的一些信息和修复版本的代码,推测应该是如下的触发流程 // 因为没有测试环境,也只是不严谨的代码触发流程推测,不保证正确性,欢迎大神交流分享。 //core\src\main\java\org\apache\struts2\dispatcher\multipart\Jakarta...

2017-03-07 20:04:04

阅读数 3593

评论数 0

原创 学习 Android Application Security Series 时需要注意的一些点

最近想扩展学习下 Android 应用安全,找到一份入门指引  ,大概走了一遍,有一些注意的点且记下。1. 建议下载的 Appie 版本为 2.0,因为作者写这些文章时用的是2.0 版本,亲试使用3.1版本时 goat droid 等 app 的 db 都是损坏的如果在 cmd 内 goatdro...

2017-03-07 19:58:26

阅读数 816

评论数 0

原创 使用 github, gitbook, markdown 写博客/写书

Github 是基于 开源代码管理工具 Git 的一个代码托管平台。Gitbook 是一个命令行工具,可以把你的 Markdown 文件汇集成电子书,并提供PDF等多种格式输出。你可以把Gitbook 生成的HTML发布出来,就形成了一个简单的静态网站。Gitbook还有一个同名的平台(gitbo...

2016-08-08 20:23:07

阅读数 8443

评论数 2

原创 移动支付时代的手机和app安全设置

进入移动互联网时代,移动支付已被大多数都市上班族所接受,逛个超市如果你说不能支持支付宝或者微信支付,估计会被深深鄙视,甚至就连菜市场买菜都可以随手给阿姨发个红包,虽然她们不一定懂手机淘宝 or 微信上的收付款功能,但在微信上收红包肯定是会的。         然而,移动支付给人民带来方便之外,同样...

2016-07-25 15:34:53

阅读数 3828

评论数 0

原创 apache, php, mysql 安装过程命令记录

一、安装apache httpd-2.0.64   1. ./configure --prefix=/usr/local/apache2   2. make 3. make install; 4. 配置/usr/local/apache2/conf/httpd.conf 5. 绑定内网:...

2015-09-28 19:23:34

阅读数 1265

评论数 0

原创 《Python 源码剖析》一些理解以及勘误笔记(3)

以下是本人阅读此书时理解的一些笔记,包含一些影响文义的笔误修正,当然不一定正确,贴出来一起讨论。 注:此书剖析的源码是2.5版本,在python.org 可以找到源码。纸质书阅读,pdf 贴图。 文章篇幅太长,故切分成3部分,这是第三部分。 p316: 初始化线程环境 Python ...

2015-05-09 11:57:27

阅读数 3987

评论数 2

原创 《Python 源码剖析》一些理解以及勘误笔记(2)

以下是本人阅读此书时理解的一些笔记,包含一些影响文义的笔误修正,当然不一定正确,贴出来一起讨论。 注:此书剖析的源码是2.5版本,在python.org 可以找到源码。纸质书阅读,pdf 贴图。 文章篇幅太长,故切分成2部分,这是第二部分。 p248: 嵌套函数、闭包和 decora...

2015-04-28 22:20:57

阅读数 1972

评论数 1

原创 《Python 源码剖析》一些理解以及勘误笔记(1)

以下是本人阅读此书时理解的一些笔记,包含一些笔误的地方,当然不一定正确,贴出来一起讨论。 注:此书剖析的源码是2.5版本,在python.org 可以找到源码。 p9:int_repr 函数中 PyObject_Print(str, stdout, 0);    stdout-->out...

2015-04-26 14:51:06

阅读数 1944

评论数 1

原创 建议程序员都读一读的31篇论文系列笔记(1~2)

1. An Axiomatic Basis for Computer Programming. 1969年的一篇论文,主要讲用公理基础证明计算机编程的正确性,包括赋值/递推/组合/循环等。不是那么容易读懂,特别是一些数理符号,想要完全看懂估计得查不少书。扫过重要的部分,关键就是 P{Q}R, 即...

2015-01-30 14:10:03

阅读数 2935

评论数 3

原创 JSONP存在的JSON Hijacking漏洞以及与csrf/xss漏洞的关系

在实习过程中接触过所谓的JSON Hijacking 漏洞,但最近在写论文时发现理解得不深,好像跟xss与csrf又有点区别与联系,索 性深入学习了下JSONP。 下面一段话截取自:http://stackoverflow.com/questions/2067472/what-is-jsonp-a...

2015-01-28 22:19:49

阅读数 7541

评论数 0

原创 linux环境常用的性能监控和协助开发调试工具

linux有诸多优秀的工具帮助我们分析服务器各项性能指标和协助开发调试工作。下面只列举比较基础的命令,且一般是集成在linux环境中而不需再次安装的命令。更多更详细的命令可以参考 https://github.com/brendangregg/perf-tools  A、CPU进程相关 常用工具列...

2015-01-25 11:53:55

阅读数 4631

评论数 1

原创 makefile基础和工作常用点补充

一、Makefile简介 Makefile是什么,能做什么用,为什么要用? 定义编译规则、自动化编译、提高效率 组织文件 Makefile由一组规则(Rule)组成,每条规则的格式是: 例如: 依赖关系如下图: 注意: (1) 当我们为了执行命令而非创建目标文件时,...

2015-01-23 14:45:05

阅读数 1956

评论数 0

原创 gdb基础命令和常用操作补充

GDB是Unix下的一个程序调试工具,类似于windows下面的VC调试器,区别在于GDB采用全命令行控制。 使用GDB需要在编译时使用-g选项,gcc支持-g –O选项同时使用,但如果还在调试阶段,尽量不要-O2,也不要删除(strip)符号表。作用如下: 让程序按照自己定义的要求运...

2015-01-23 11:42:51

阅读数 3371

评论数 0

原创 在腾讯实习的那段日子:不要在难受的时候选择 '逃避/离开'

时间过得很快,从2014.6.5入职实习到2015.1.5已经是7个月的时间了,在这边还是学到了很多东西,遇到的人大多数比较nice。中间拿到了留任offer,本来也是想来深圳,也就没有再去找工作。实习过程做了不少事,也遇到一些坑,犯过几个小错误。此篇不会记录流水账,也不会写技术细节,关于生活经历...

2015-01-02 12:49:24

阅读数 7981

评论数 22

原创 Java与C/C++不同的一些基础知识点

1. 关键字 final 可以修饰类,方法和成员变量 final修饰的类不能被继承 final修饰的方法不能被覆盖  final修饰的变量是常量,只能赋值一次 覆盖注意

2014-11-23 11:24:48

阅读数 1759

评论数 1

原创 90% of python in 90 minutes

注:本文整理自 http://www.slideshare.net/MattHarrison4/learn-90 --------------------------------------------------------------------------------------------...

2014-11-09 20:41:00

阅读数 1816

评论数 0

原创 有关Web 安全学习的片段记录(不定时更新)

1、有关html/css, js, php, cgi 的一些认识        当我们浏览器访问一个站点的静态文件,会把文件内容都下载下来(一般压缩),当然如果遇到外联的css/js,会再发起请求得 到。如果我们右键查看网页源代码,一片混乱没法看,可以使用firefox + firebug,可以清...

2014-10-26 18:59:42

阅读数 2935

评论数 0

原创 Perl 工作积累(不定期更新)

1)url 判断是否合法:   /^(http:\/\/|https:\/\/)?((?:[A-Za-z0-9]+-[A-Za-z0-9]+|[A-Za-z0-9]+)\.)+([A-Za-z0-9]+)[\/\?\:]?.*$/ 2)什么时候需要转义:1. 比如在"" 里...

2014-09-01 21:32:26

阅读数 1918

评论数 0

原创 用Python socket 实现一个简单的http服务器(post 与get 的区别)、CGI、WSGI、MVC

预备知识: 关于http 协议的基础请参考这里。 关于socket 基础函数请参考这里。 关于python 网络编程基础请参考这里。   一、python socket 实现的简单http服务器   废话不多说,前面实现过使用linux c 或者python 充当客户端来获取ht...

2014-05-27 20:22:29

阅读数 15459

评论数 2

原创 从汇编角度来理解linux下多层函数调用堆栈运行状态

我们用下面的代码来研究函数调用的过程。  C++ Code  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 int bar(int c, int d) {     int e = c + d;     return e; } int fo...

2014-05-06 21:05:03

阅读数 3911

评论数 0

原创 腾讯2014年实习生招聘广州站offer经历(TEG-后台开发)

过去的一年学的都是linux 系统编程和网络编程方面的东西,比较熟悉的语言也是c/c++,python仅限写一些测试客户端。所以这学期开始投的实习职位都是后台开发类,比如前面笔面的网易CC(面完hr后挂)。大概3月10多号就在腾讯 join.qq.com 上注册了简历,一直等到4.12才在大学城华...

2014-04-27 12:08:39

阅读数 10140

评论数 33

原创 2014.03.16 网易游戏TTT计划实习生笔试题

注:这份试题是本人事后回忆的,题目可能会有出入,且给出的答案不一定正确,仅供参考,欢迎指正错误。 前面这些题是试卷的第I部分,试卷上面说第一部分达不到基本线直接淘汰,最终排名主要看II卷 I 卷 基础题 1.求1111+2*1111+....+1111*1111对7求余的结果。 n(n+...

2014-03-26 11:37:47

阅读数 11100

评论数 43

原创 Mysql数据库学习(四):常用Mysql C API 介绍和使用、封装一个访问Mysql数据库的类MysqlDB

首先,环境是windows +  vs2008,Mysql数据库已经安装好,在使用之前,需要配置工程属性,附加包含目录添加 D:\Program Files\MySQL\MySQL Server 5.6\include (Mysql安装目录),附加库目录添加 D:\Program Files\My...

2014-02-28 21:36:57

阅读数 3334

评论数 0

原创 详解流编辑器 sed 和 编程语言 awk

一、流编辑器 sed sed 是一个精简的、非交互式的流式编辑器,它在命令行中输入编辑命令和指定文件名,然后在屏幕上查看输出。 逐行读取文件内容存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一...

2014-02-19 21:45:25

阅读数 3032

评论数 0

原创 shell programming tutorial

一、什么是shell程序 以文件形式存放批量的Linux命令集合,该文件能够被Shell解释执行,这种文件就是Shell脚本程序 通常由一段Linux命令、Shell命令、控制语句以及注释语句构成 Shell 脚本的编写 Shell 脚本是纯文本文件,可以使用任何文本编辑器编写 Shell 脚...

2014-02-19 14:02:40

阅读数 2514

评论数 0

原创 Mysql数据库学习(三):表的crud操作、完整性约束、select各种查询

一、表的crud操作 指增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete) // select 查询后面再讲  SQL Code  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1...

2014-02-18 14:33:53

阅读数 3871

评论数 0

原创 Mysql数据库学习(二):数据类型(数值类型 日期和时间类型 字符串类型)

数据类型 数值类型 日期和时间类型 字符串类型 一、数值类型 整数 tinyint[M] [unsigned] [zerofill]    // [ ] 表示可选,这里的M表示显示宽度,并不是取值范围,显示宽度不够前面以0填充 bool是tinyint(1)的别名 浮...

2014-02-18 11:56:32

阅读数 3481

评论数 5

原创 Mysql数据库学习(一):数据库基本概念、关系型数据库、Mysql数据库安装配置、DDL/DCL/DML语句

一、数据库基本概念 数据库(DB) 按照数据结构来组织、存储数据的仓库 数据库管理系统(DBMS) 数据库管理系统(Database Management System)是一套操纵和管理数据库的软件,是用于建立、使用和维护数据库 数据库系统(DBS) 数据库 数据库管理系统(及其开...

2014-02-18 11:10:21

阅读数 6868

评论数 0

原创 大型网站架构演变过程、大并发服务器架构

大型网站架构演变过程: [Step1]web server与数据库分离 web动静资源分离 静态请求:如html, js, css, img 动态请求:如jsp, php [Step2]缓存处理 客户端(浏览器)缓存 前端页面缓存(squid) 页面片段缓存...

2013-11-14 12:39:06

阅读数 8672

评论数 20

原创 muduo网络库学习之muduo_inspect 库涉及到的类

muduo inspect 库通过HTTP方式为服务器提供监控接口, 现在只实现进程相关信息的监控,通过成员ProcessInspector 实现。 ProcessInspector // 通过ProcessInfo返回进程信息      ProcessInfo // 获取进程相关信息 我们可...

2013-11-13 21:31:00

阅读数 2959

评论数 0

提示
确定要删除当前文章?
取消 删除