自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不积跬步无以至千里,不积小流无以成江海

Making the world different with beautiful design

  • 博客(120)
  • 收藏
  • 关注

转载 SSL协议工作过程分析

TLS、TCP

2023-02-20 14:42:10 150

转载 HMAC的图解

一 什么是HMACHMAC是一种使用单向散列函数来构造消息认证码的方法,其中HMAC中的H就是Hash的意思。HMAC中所使用的单向散列函数并不仅限于一种,任何高强度的单向散列函数都可以被用于HMAC,如果将来设计出的新的单向散列函数,也同样可以使用。使用SHA-1、SHA-224、SHA-256、SHA-384、SHA-512所构造的HMAC,分别称为HMAC-SHA1、HMAC-SHA-224、HMAC-SHA-384、HMAC-SHA-512。二 HMAC步骤1 图例.

2021-09-15 15:16:45 1828

转载 2020-11-16

数字签名是什么?作者:阮一峰日期:2011年8月 9日今天,我读到一篇好文章。它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。我对这些问题的理解,一直是模模糊糊的,很多细节搞不清楚。读完这篇文章后,发现思路一下子就理清了。为了加深记忆,我把文字和图片都翻译出来了。文中涉及的密码学基本知识,可以参见我以前的笔记。====================================..

2020-11-16 16:06:17 190

转载 如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(二)

上一篇文章发出来之后,为了掐死我,大家真是很下工夫啊,有拿给姐姐看的,有拿给妹妹看的,还有拿给女朋友看的,就是为了听到一句“完全看不懂啊”。幸亏我留了个心眼,不然就真的像标题配图那样了。我的文章题目是,如果看了这篇文章你“还”不懂就过来掐死我,潜台词就是在你学了,但是没学明白的情况下看了还是不懂,才过来掐死我。另外,想跟很多人抱歉,因为评论太多了,时间有限,不能给每个人回复,还望大家谅解。

2016-04-17 15:15:08 1146

转载 如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(一)

我保证这篇文章和你以前看过的所有文章都不同,这是12年还在果壳的时候写的,但是当时没有来得及写完就出国了……于是拖了两年,嗯,我是拖延症患者……这篇文章的核心思想就是:要让读者在不看任何数学公式的情况下理解傅里叶分析。傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是,傅里叶分析的公式看起来太复杂了,所以很多大一新生上来就懵圈并从此对它深恶痛绝。

2016-04-17 15:11:14 692 1

转载 如果看了这篇文章还不懂卷积,那就过来掐死我吧

卷积最近总是和卷积打交道,工作需要,每天都要碰到它好几次,不胜烦恼,因为在大学时候学信号与系统的时候就没学会,我于是心想一定要把卷积完全搞明白。正好同办公室的同学也问我什么是卷积,师姐昨天也告诉我说:"我也早就想把这个问题搞明白了!"经过一段时间的思考之后,有一些很有趣的体会和大家分享。听说卷积这种运算式物理学家发明的,在实际中用得不亦乐乎,而数学家却一直没有把运算的意

2016-04-17 15:08:03 1212

原创 丰富多彩的浮点运算

编者按:浮点运算,说起来简单,实现起来可不是那么容易的事情,我们认为很简单的运算,计算机特别是嵌入式处理器实现起来,也不是那么容易。嵌入式处理器,用的最多的当属ARM家族了,我也每天都跟她打交道,但对于软浮点,硬浮点,vfp,softfp,刚开始我也并不清楚怎么用。下文这篇文章,对arm处理器的浮点讲的很清楚。很多时候我们要处理的数据,不仅仅是整数和字符串,

2015-09-09 23:20:00 1065

原创 Content模块设计意图

Content 模块概述“content”模块放在src \content里面,并使用多进程浏览器沙盒模块来呈现页面所需的核心代码。它包括所有的网络平台功能(如HTML5)和GPU加速。它不包括Chrome浏览器的功能,即扩展/自动填充/拼写等。它的目标是,任何嵌入者或者说使用者应该能够用它来开始建立一个浏览器,然后从中挑选Chrome功能。动机是什么?由于Ch

2015-08-26 01:58:01 1424

原创 Chromium浏览器组件设计意图

在文章开始之前,我要叽歪几句,一上来就看Chrome的代码,简直晕头转向,摸来摸去莫不着头脑,好不容易看了一点点代码,却宛如瞎子摸象,无法众观全局,下面这篇小文,简单介绍其中一个重要的模块--Component的设计,为我们阅读Google的代码打开思路。 概述Chrome浏览器组件是一个google的一个项目,它用来不断的模块化Chrome的代码。把整个content模块

2015-08-14 17:22:06 1377

原创 C++ Primer快速入门之七:运算符

一、表达式的定义什么是表达式?表达式,是由数字、运算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合(1)。1 + 2是个表达式, 女 | 男也是一个表达式。这两个例子都提到了运算符:+和|。这是C++众多的运算符之冰山一角,C++ 提供了丰富的运算符。二、运算符表 1. 部分算术运算符加减乘除

2015-08-12 10:35:46 648

原创 怎样使用ninja编译系统编译我们的程序?

使用ninja配置自己的环境来使用ninja构建程序Android使用ninjaWindows使用调试不使用VS技巧问题Ninja的原意是忍者,忍者神龟的忍者,这里被google拿来用在他们的编译系统上,目标是替代make之类的构建器,因为他们觉得其它的构建器太慢了,为此他们做过对比,对于chrome之类的拥有几万个文件的超大程序来说,用ni

2015-07-28 00:15:52 18432 2

原创 C++ Primer快速入门之六:数组和指针

更新:勘误,delete [] 猪我们知道,C语言以及早期的面向结构的语言几乎都支持数组定义,比如整形数组int 女神[2],表示有俩数: 女神[0], 女神[1],她们都是整数。C++ 语言为了效率和兼容考虑,也支持这个。当然了,毕竟是别人家的孩子(标准),并不提供类似于 vector 和迭代器类型那些神奇的能力。与 vector的区别在于,数组的长度是固定的。另外呢,指 针还是那个指针

2015-07-26 23:38:25 864

原创 C++ Primer快速入门之五:实用的模板库

更新:重新排版代码格式除上篇博客介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类 型标准库。包括 string 和 vector,它们分别定义了字符串和矢量(集合)。string 和 vector 往往用迭代器iterator访问 string 中的字符,或者 vector 中的元素。      另一种标准库类型 bitset,她提供了一些方法的集合,我们可以利用

2015-07-18 23:44:45 1161

原创 C++ Primer快速入门之四:变量和数据类型

1 数据类型数据类型顾名思义,表明数据是啥,就像我们处理问题时候,面对的对象是骡子是马,还是小麦,男人女生,类型的属性规定了可以对数据执行哪些操作。 C++ 语言定义了几种基本类型:字符型、整型、浮点型等,以及一些高级类型比如vector,map等等。类型确定了数据和操作在程序中的意义。我们在第一章已经看到,如下的语句:i = i + j; 不同的类

2015-07-13 23:28:31 820

原创 C++ Primer快速入门之三:几种常见的控制语句

语句总是顺序执行的:第一条语句执行完了接着是第二条,第三条等等。这是最简单的情况,为了更好的控制语句的运行,程序设计语言提供了多种控制结构支持更为复杂的语句执行。我们就来看看C++ 提供的控制方式。一、 while 语句while 语句提供了循环执行功能。可以用 while 语句编写一个好玩的从 1 到 5(包括 5)的数数游戏:1+2+3+4+5#include

2015-07-06 00:06:32 1464 1

原创 怎样调试Blink?

内容虽然有许多工具和技巧可用于调试Blink,这个文章的重点调试Blink除布局测试之外的feature。1 介绍2 Linux2.1 入门2.2 启动Debugger3 有用的工具3.1 Debugging functions3.2 Blink GDB python library4 打印 back trace4.1 利用ASSERT打印符号

2015-06-30 23:59:02 2373

原创 C++ Primer快速学习 第一章 入门之二:输入与输出 (IO)

什么是输入输出,即Input-Output,缩写是很装B的IO?请看经典民间解释:C++语言的输入输出是指信息从外部输入设备(如键盘、磁盘等)向计算机内部(内存)输入(即Input)和从内存向外部输出设备(显示器、磁盘)输出(即Output)的过程。这种输入输出过程被形象地比喻为“stream--流”。原点击阅读原文

2015-06-25 19:18:05 912

原创 Chromium浏览器之渲染引擎Blink

Blink是谷歌公司的浏览器Chromium使用的渲染引擎。Blink处于一个包容性的开源社区里,它欢迎任何人分享其使命。Blink是在一种抽象的平台上实现的, 因此本身不能运行。 Chromium Content module提供这个抽象平台运行所需的Blink的实现。 Content模块的开发有专门的文档描述。有关调试Blink一些提示和建议,请参阅入门Blink调试页面。

2015-06-19 22:51:05 5058

原创 C++ Primer快速学习 第一章 入门

很多人说C++Primer不适合于入门,本系列入门文章向大家证明了:这是一个谎言。第一章 入门本章介绍 C++ 的大部分基本要素:内置类型、库类型、类类型、变量、表 达式、语句和函数。1.1. 编写简单的 C++ 程序每个 C++ 程序都包含一个或多个 函数 ,而且必须有一个命名为 main。函数 由执行函数功能的语句序列组成。操作系统通过调用 main 函数来

2015-06-19 22:25:13 878

原创 聊聊C++语言-软件和编程

C++语言脱胎于C语言,早期还有好几个名字呢,什么“c with class”, “new c”等等。可见其是一种基于C语言发展而来的更高级的语言,与C语言相比,她能做的事情更多,也更方便。在软件规模越来越大、复杂度越来越高的今天,尤其有必要学习C++语言。小编接下来将要写一个系列的文章来带你进入C++语言编程的奇妙世界。首先聊聊什么是软件?软件简单来说就是程序和文档,我们用一种语

2015-04-29 22:29:23 1421

原创 敏捷软件开发之环境准备

最近换工作了,进入一个小团队,很惊讶,除了一个bug报告表之外,竟然没有使用任何敏捷项目管理软件。于是乎,我跟大伙介绍了JIRA的基本情况,用法等等,小伙伴迫不及待的就下载了一个试用版,然后习惯性的到处谷歌和度娘尝试破解,折腾了一个多小时,还没有搞定。呵呵。无意中去JIRA的官网上翻了翻价格,才知道对小团队来说,价格很便宜,1-10人的用户,每年的服务费才10美元!为了这区区62块钱,还犯得着让两名高级工程师浪费一个多小时去破解吗?破解得到的软件质量不能保证不说,还犯下一个不尊重知识产权的恶名。

2015-04-26 21:56:19 1428

原创 小菜鸟学浏览器之感悟

十年生死两茫茫,不思量,自难忘。千里孤坟,无处话凄凉。纵使相逢应不识,尘满面,鬓如霜。夜来幽梦忽还乡,小轩窗,正梳妆。相顾无言,唯有泪千行。料得年年断肠处,明月夜,短松岗。   清明节,思念故乡,不免想起了远在千里之外故去的老父亲,想起苏轼的一首《江城子》,借此抒发情感,望网友勿取笑。如今的浏览器,越来越向谷歌看齐了,从安卓起,谷歌就对webkit内

2015-04-25 23:02:07 1280

转载 深入理解html5系列-文本标签

文章简介:      关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后,所有的工作都可以达到真正的云方式呢?这一系列的问题你是否已经想明白了呢?      本系列文章将为您一一解答你所不知道的关于html5与html中的那些事;具体会包括如:html5新的

2015-04-20 23:45:52 740

原创 深入理解html5系列-文本标签

文章简介:      关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后,所有的工作都可以达到真正的云方式呢?这一系列的问题你是否已经想明白了呢?      本系列文章将为您一一解答你所不知道的关于html5与html中的那些事;具体会包括如:html5新的理念...

2015-04-20 23:45:40 121

原创 小菜学Chromium之OpenGL学习之二

在这个教程里,我们一起来玩第一个OpenGL程序.它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出.它是我们以后应用程序的框架.在CodeBlock里创建一个新的GLUT Win32程序(不是console控制台程序)后,我们还需要链接OpenGL库文件。代码的前4行包括了我们使用的每个库文件的头文件。如下所示:#include /

2015-04-17 21:30:32 1359

原创 小菜学Chromium之OpenGL学习之二

在这个教程里,我们一起来玩第一个OpenGL程序.它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出.它是我们以后应用程序的框架.在CodeBlock里创建一个新的GLUT Win32程序(不是console控制台程序)后,我们还需要链接OpenGL库文件。代码的前4行包括了我们使用的每个库文件的头文件。如下所示:#include <windows.h> //...

2015-04-17 21:29:58 265

原创 程序员的健康之路

当我第一次听到加班的时候,其实我是是拒绝的,我对领导说我拒绝;领导说可以加工资,就这样我加了一个月的班之后,我的工资就DUANG的一下,上去了。之后我每个月都在加班,我也告诉我身边的朋友加班,白天不用怎么干活,晚上可以加班,周末可以加班,假期可以加班,之后工资就duang duang duang 的上去了;就这样我的加了几年的班之后,我的工资在duang duang duang的向...

2015-04-15 22:50:21 111

转载 程序员的健康之路

当我第一次听到加班的时候,其实我是是拒绝的,我对领导说我拒绝;领导说可以加工资,就这样我加了一个月的班之后,我的工资就DUANG的一下,上去了。之后我每个月都在加班,我也告诉我身边的朋友加班,白天不用怎么干活,晚上可以加班,周末可以加班,假期可以加班,之后工资就duang duang duang 的上去了;就这样我的加了几年的班之后,我的工资在duang duang duang的向

2015-04-15 22:48:10 912

转载 解密硬件解码关键技术

通过上一篇文章,我们用ffmpeg分离出一个多媒体容器中的音视频数据,但是很可能这些数据是不能被正确解码的。为什么呢?因为在解码这些数据之前,需要对解码器做一些配置,典型的就是目前流行的高清编码“黄金搭档”组合H264 + AAC的搭配。本文将讲述H264和AAC的关键解码配置参数的解析,如果没有这些配置信息,数据帧往往不完整,导致了解码器不能解码。H264的配置信息解析前面我们知

2015-04-14 22:40:20 1153

转载 揭秘chromium内部目录结构

上两篇介绍了下载源码和编译源码,这次主要介绍chromium的源码目录结构,我也是通过源码和官网结合来跟大家说,如果有说的不准确的,欢迎交流。另外,官网的不一定准确,他们其实也很懒,所以最主要还是靠自己。官网只能作为一个参考。Chromium结构相对两年前变化很大。目录结构依然很清晰,主要有三个部分(不包括其他的库):浏览器,渲染器,webkit。浏览器是主要的进程,代表所有的UI

2015-04-13 23:24:19 1063

原创 解密多媒体封装解封装框架

上一篇文章我们搭好了环境并编译出所需的ffmpeg库,本篇我们讨论如何利用ffmpeg提供的API函数进行多媒体文件的解封装(demux)过程。在讲解之前,我们需要了解一些基本的多媒体文件知识,大虾请飘过。容器格式:不管是音频文件还是视频格式的文件,都是一个多媒体的容器,即container,比如常见的视频容器格式有avi、mp4、mkv、flv、rm/rmvb、mov、ts、vo

2015-04-03 09:47:23 2004 1

转载 android apk 防止反编译技术第一篇-加壳技术

做android framework方面的工作将近三年的时间了,现在公司让做一下android apk安全方面的研究,于是最近就在网上找大量的资料来学习。现在将最近学习成果做一下整理总结。学习的这些成果我会做成一个系列慢慢写出来与大家分享,共同进步。这篇主要讲apk的加壳技术,废话不多说了直接进入正题。一、加壳技术原理所谓apk的加壳技术和pc exe的加壳原理一样,就是在

2015-03-30 19:30:14 4351

转载 FFMPEG高级编程第一篇:环境搭建及编译

前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了。今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家分享一下,顺便做了一下记录以备以后使用时参考。本文(记录)与目前网上很多关于ffmpeg的文章相比有两个特点:一、重点不在于ffmpeg的解码部分(这个本来是ffmpeg最大的亮点),

2015-03-30 19:18:11 610

转载 linux设备驱动第三篇:写一个简单的字符设备驱动

在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动。本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存。下面就开始学习如何写一个简单的字符设备驱动。首先我们来分解一下字符设备驱动都有那些结构或者方法组成,也就是说实现一个可以使用的字符设备驱动我们必须做些什么工作。1、主设备号和次设

2015-03-30 11:13:52 621

转载 你所不知道的html[5]与html中的那些事(一)

文章简介:      关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后,所有的工作都可以达到真正的云方式呢?这一系列的问题你是否已经想明白了呢?      本系列文章将为您一一解答你所不知道的关于html5与html中的那些事;具体会包括如:html5新的

2015-03-29 13:02:22 640

原创 [WebKit内核] JavaScript引擎深度解析--基础篇(一)字节码生成及语法树的构建详情分析

看到HorkeyChen写的文章《[WebKit] JavaScriptCore解析--基础篇(三)从脚本代码到JIT编译的代码实现》,写的很好,深受启发。想补充一些Horkey没有写到的细节比如字节码是如何生成的等等,为此成文。      JSC对JavaScript的处理,其实与Webkit对CSS的处理许多地方是类似的,它这么几个部分:(1)词法分析->出来词语(Token)

2015-03-26 23:26:13 8973 3

转载 浏览器开发系列第一篇:如何获取最新chromium源码(转)

背景:     最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触chrome浏览器时间也不短了,干脆就总结一下吧。于是乎,本文顺理成章。由于有些细节必需描述清楚,所以这次先讲如何拿到chromium的源码,下次直接把编译过程写出来,供大家参考。前期准备:     之前的chromium源码都是用svn来维护,所以源码地址网上贴的到处都是,我看了一下,svn的版本最新的

2015-03-26 11:19:44 835

转载 Android Metro风格的Launcher开发系列第一篇

android apk目录(?)[+]可能大家做Android机顶盒或者Android电视开发的比较少,这类开发基本上都是基于源码的开发,大家有一个git版本库,大家开发完了编译出来一个版本烧到板子上跑,要编译肯定就要编译环境什么的,google推荐的是在Ubuntu系统上搭建开发和编译环境。首先要做的事情是环境搭建:大家可以装双

2015-03-24 10:35:37 1335

原创 Android上学习ARM指令集之开篇

工作中经常碰到crash的问题,如果是Debug版本,有源代码,那还好,调试信息多。万一Release给QA甚至客户之后,再发现crash之类的问题,如果不熟悉ARM指令、看不懂现场,那调试起来可就费劲了。往往只能到处去猜,相信大家都有过这种难过的经历。 这段时间比较闲,正好利用起来为入门ARM指令集写点初级文章,没什么远大理想,写到哪里算哪里,权当娱乐罢了。

2015-03-21 16:04:29 2389

转载 计算机航向

回复CSDN和KAOYAN诸位网友的几点看法,(为避免吵架,郑重声明,本人不是高手,只是有感而发的一点个人陋见,欢迎指正,事先感谢):     就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。     如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择。因为计算机学院才能让你在理论上更上一层楼。软件学院从教学计

2015-03-20 15:13:31 658

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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