CSAPP,即<深入理解计算机系统:程序员视角>第三版,是一本好书,但读起来确需要具备相当的基本功.而且,有的表述(中译文)还不太直白. 比如,第463页提到,(对于32位系统)为什么汇编器会将call指令中的引用的初始值设置为-4.其后解释语焉不详.结合文中对代码计算公式的展开: *refptr = (unsigned) (ADDR(r.symbol) + *refptr - refaddr) = (unsigned) (0x80483c8        + (-4)     - 0x804…
这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级程序中的并发举例: 访问慢速io设备,当一个应用等待慢速设备(磁盘)的数据到来时,内核会运行其他进程,使cpu保持繁忙.每个应用都可以按照类似的方式,通过交替执行io请求和其他有用的工作来使用并发. 与人交互,和计算机交互的人要求计算机由同时执行多个任务的能力,例如他们在打印一个文档时,可能要调整一…
modal属性表示窗口执行show()操作时是以模态窗口还是非模态窗口形式展示,缺省为False,设置该值与QWidget.windowModality的值设置为 Qt.ApplicationModal一样(请参考<PyQt(Python+Qt)学习随笔:模式窗口的windowModality属性与modal属性>). 可以通过isModal()查看该属性的值,使用setModal(bool modal)设置该属性的值. 当窗口是通过exec() 方式展示出来时,不论该属性是否设置都等同于QW…
根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1)  属于第一种情况 sum = x + y = 9- 2^w  = –7 sum – x == y? -7 – 4 = – 11 属于第三种情况 负溢出 sum – x  = –7 - 4= –11 + 2^w = 5  = y? 明显是等于的 同样 sum- y = x ? -7 – 5 = –12 + 2^w = 4 = x? 所以溢…
代码规范:var $variable = jQuery对象:var variable = DOM对象: jQuery对象无法使用DOM对象的任何方法,同样DOM对象也无法使用jQuery对象的任何方法.下面两个代码是等效的,获取id为foo的元素的html代码.document.grtElementById("foo").innerHTML;$("#foo").html(); DOM对象和Jquery对象的转换JQuery->DOM1) var $cr = $…
第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的变化复杂问题时就没法使用上面的方法控制: 数据从磁盘或者网络适配器到达 指令除以了零 用户按下 ctrl+c 系统的计时器到时间 现代系统通过使控制流发生突变来对系统状态的变化做出反应,这些突变称为异常控制流. 异常控制流有四种实现机制: 1)异常(低层级):2)进程上下文切换:3)信号:4)非本地…
声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 通过对比WebForms和MVC中表格数据库分页代码的不同,可以对 MVC 中的数据流转有更加深入的了解. WebForms 中表格的数据库分页 WebForms中的代码会比较直观,我们从具体是示例入手: http://fineui.com/demo/#/demo/grid/grid_paging_database.aspx 前台标签定义,简单起见省略了部分列定义: <f:Grid ID="Grid1" Ti…
根据<PyQt学习随笔:Model/View中视图数据项编辑变动实时获取变动数据的方法>可以重写从PyQt的Model类继承的setData方法来实时截获View中对数据的更改,但需要注意,setData方法调用不光发生在View中实际存储的内部数据修改,也可能是其他与数据相关的属性或值调整,如数据项的checked变化,数据的对齐风格变化等. 因此如果应用需要响应数据的变化实时做出反应而重写setData时,需要判断setData的数据变化的角色,具体来说就是setData方法的参数role…
很多人刚开始使用python+appium去执行APP自动化的时候经常会遇到webdriver.Remote,报错位置指向都是driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub/',desired_caps)这行代码 很容易误导别人错认为是自己的webdriver发生了错误,此时应该如何排查这个问题,以下将举例说明 当发生以下错误的时候 Traceback (most recent call last):File "E:\Workpla…
接触Groovy也快一年了,一直在尝试怎么将Groovy引用到日常工作中来.最近在做一个功能的时候,花了点时间重新看了下Java怎么调用Groovy的方法.传递参数和获取返回值. 示例Groovy代码如下: # TestGroovy.groovy 定义testC方法,传入3个参数,返回处理后的数据 def testC(int numA, int numB, int numC) { "传入参数:" + numA + numB + numC + "计算之和为:" + (…
前言 下面就开始总结C#4.0的一些变化了, 也是这本书中最后的一点内容了, 这一部分终于要更新完了. 同时感觉再来读第二遍也有不一样的收获. 今天很嗨的是武汉下雪了,明天周六,一切都是这么美好.哈哈哈.主要内容有: 可选参数和命名实参, 泛型的可变性, 动态类型 1,可选参数和命名实参1.1可选参数可选参数和命名实参就如同一对好基友, 因为它们经常一起使用. 可选参数重在"可选", 即在调用方法时, 该参数可以明确指定实参, 也可以不指定实参.如下代码: class Program…
1.为什么需要访问资源管理类中的原生资源  资源管理类是很奇妙的.它们是防止资源泄漏的堡垒,没有资源泄漏发生是设计良好的系统的一个基本特征.在一个完美的世界中,你需要依赖这样的类来同资源进行交互,绝不要直接访问原生(raw)资源而玷污你的双手.但是世界不是完美的,许多API会直接引用资源,所以除非你放弃使用这样的API(这是不实际的想法),你将会绕开资源管理类而时不时的处理原生资源. 2. 如何获取原生资源——通过显示转换和隐式转换 2.1 一个例子 举个例子,Item 13中介绍了使用像aut…
大多数面向对象的编程语言都支持类和类继承的特性,而JavaScript却不支持这些特性,只能通过其他方法定义并关联多个相似的对象.这个状态一直从ECMAScript 1持续到ECMAScript 5. 尽管一部分JavaScript开发强烈坚持JavaScript中不需要类,但由于类似的库层出不穷,最终还是在ECMAScript 6中引入了类的特性. ECMAScript 6中的类与其他语言中的还是不太一样,其语法的设计实际上借鉴了JavaScript的动态性 ECMAScript 5 中的近类…
声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 用户需求 有网友在<FineUI总群1>问这么一个问题:怎么把 HTML 嵌套在控件中? 这是很多刚学习 FineUIMvc 的网友经常问的问题,我想原因是对 WebForms 陷入太深,习惯了 FineUI 控件的 ContentPanel 和 Content 属性. FineUI 中嵌套 HTML FineUI中有两种嵌套 HTML 的方法. 方法一:ContentPanel 控件 第一种是 ContentPanel…
0x1 PE文件与免杀思路 基于PE文件结构知识的免杀技术主要用于对抗启发式扫描. 通过修改PE文件中的一些关键点来达到欺骗反病毒软件的目的. 修改区段名 1.1 移动PE文件头位置免杀 工具:PeClean SizeOfOptionalHeader字段来描述扩展头的大小,恒定值为0xE0. 某些程序直接使用0xE0对PE文件进行处理,对于修改过的程序会被识别为非PE文件. 1.2 导入表移动免杀 通过修改程序里导入表ThunkValue值实现. 1)通过ThunkValue的偏移地址,找到AP…
1 <script>的6个属性 async  立即下载当前script标签的外部脚本 但不能影响别的 charset 没用了 defer  文档显示之后再执行脚本,只对外部脚本有效 language 没用了 src  type 描述代码内容Mine类型 默认就是text/javascript 没什么用   2 在解释器对<script>元素内部的所有代码求值完毕以前 页面中的其余内容都不会被浏览器加载或显示   3 有两种script 嵌入式 外部引入式 在解析外部引入式的js文件…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget中的QTreeWidgetItem项中可以有多列数据,每列数据可以根据列位置进行访问.项中列数据的访问方式有两种: 通过data和setData方法 可以通过项的data(int column, int role) 方法获取项中指定列指定角色的数据,也可以通过setData(int column, int role, QVariant value)方法设置指定列指定角…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 追加子项 QTreeWidgetItem类型的项构建以后,可以通过addChild(QTreeWidgetItem child)方法在该项中的子节点最后加入另一个项child作为该项的子项,也可以通过addChildren(iter[QTreeWidgetItem] children)将一个迭代类型children中的多个项加入到该项的子项最后. 如果要插入的项原来已经在QTreeWidgetIt…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 QStandardItemModel有两种构造方法: QStandardItemModel(QObject parent = None):直接创建一个模型实例,数据未进行初始化,可以通过setItem将QStandardItem的实例对象添加到模型中作为项. QStandardItemModel(int rows, int columns, QObject parent = None):…
在Qt Designer的部件的多个属性中,如toolTip.whatsThis.accessibleName.accessibleDescription.text等都有国际化属性设置,国际化属性有三个设置:translatable. disambiguation和comment. 这三个属性的含义分别如下: 1.translatable:表示对应属性文字不用翻译成其他语言: 2.disambiguation:消除歧义,这是当有多个需要翻译文字的对象有相同文字时,避免出现歧义而额外添加的消除歧义…
在Qt Designer中可以设置部件的焦点策略,部件的焦点策略属性取值范围由枚举类型Qt.FocusPolicy来定义,该枚举类型及其含义如下表所示: 注意:经老猿测试鼠标轮滚动获取焦点,只有在鼠标光标已经到达该部件上面时才有效,当鼠标没有在对应部件时滚轮将会导致对应部件失去焦点,该方式并不支持设置了该焦点模式的所有部件通过鼠标滚轮切换焦点. 通过focusPolicy()可以获取当前部件的焦点策略: 通过setFocusPolicy(Qt.FocusPolicy policy)设置焦点策略.…
老猿Python博文目录 老猿Python博客地址 一.引言 Qt Designer中的部件栏并没Action相关的部件,Action可以在右侧的Action Editor中编辑,如图: 如果没有出现Action Editor,可以通过鼠标右键的弹出菜单将其打开,如图: 二.Action 2.1.功能 Action是Qt中单独引入的一个对象,对应QAction类.Action表示一个独立的操作,是将界面上某个可以通过菜单.快捷键.toolBar按钮执行的同一个操作映射到同一个Action对象,由…
在PyQt应用中,任何一个应用在启动时必须创建一个基于QtWidgets.QApplication或其派生类对应的应用对象,该对象用于处理事件. 如果需要在应用代码中的任何位置都能访问该应用对象,可以通过"QtWidgets.qApp"访问应用及其属性. 示例代码1: QtWidgets.qApp.popwin = self.createPopwin(winTypeChoice) QtWidgets.qApp.popwin.show() 上面代码创建一个在应用对象空间中保存的弹窗对象实…
说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘>的编排,对内容进行了总结并加入一些个人理解. 如果你有Web编程的经验,你会知道使用Style属性给Html元素添加样式,并且更好的做法是将这些样式提取到CSS文件中.在WPF/Silverlight中我们也可以把控件的样式提取出来并进行复用,这就是本节讨论的话题 – 样式支持. 所有外观效果相关的特性,如样式.模板或皮肤等的基础是资源的定义与使用,如果对于资源还不是很熟悉,可参考前文部分章节介绍…
Primer C++第五版 读书笔记(一) (如有侵权请通知本人,将第一时间删文) 1.1-2.2 章节 关于C++变量初始化: 初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,以一个新值来替代. 定义一个名为a的int变量并初始化为0,有以下4种方法: int a = 0; int a = {0}; // 列表初始化 int a{0}; // 列表初始化 int a(0); 当列表初始化方法用于内置类型的变量时,如果初始值存在信息丢失的风险,则编译器…
前言 本篇博客将会展示 CSAPP 之 BombLab 的拆弹过程,粉碎 Dr.Evil 的邪恶阴谋.Dr.Evil 的替身,杀手皇后,总共设置了 6 个炸弹,每个炸弹对应一串字符串,如果字符串错误,炸弹就会被引爆,如下图所示: 字符串的长度未知,所以暴力破解是不可取的,也就是说这个实验就是要逼着拆弹小分队将 bomb 可执行文件反汇编,根据汇编代码推测出每个炸弹对应的字符串.在终端输入 objdump -d bomb > bomb.asm ,就可以将汇编代码写入 bomb.asm 文件中,方便…
1. 如何选择类型的准则 当明确知晓数值不可能为负的时候,应该选择无符号类型. 使用int执行整数运算的时候,在实际应用中,short常常显得太小而long一般和int有一样的尺寸,如果数值超过了int,那么就要用long long(ACM经常用). 在算术表达的时候不要使用char或者bool,char在一些机器上是有符号的,而在另一些机器上又是无符号的. 执行浮点运算的时候应该选用double而不是float,双精度运算有时候会比单精度要快很多. 2. 对于有符号和无符号整形转换的规则 当我…
目  录 第1章  初识UML. 1 1.1 初识UML用例图... 1 1.2 初识UML类图... 3 第2章  Rational Rose工具... 6 2.1 安装与配置Rational Rose. 6 2.2 使用Rational Rose建模... 15 第3章  用例模型... 20 3.1 参与者... 20 3.2 用例... 28 3.3用例模型中的关系... 37 第4章  静态模型... 49 4.1 类图中的事物... 49 4.2 类图中的关系... 66 第5章 …
cnblogs的页面, 一种是管理页面, 是随笔的列表 a full list of essays. 另一种是 首页. 要搜索文档的话, 就使用 "首页"的那种方式. 一个jquery的基本常识: 任何一个jquery完整的选择器, 完整的形式, 实际上包含的是两个参数 $("selector", context). context表示jquery搜索匹配的环境, 通俗的说就是 搜索的范围(有开始和 结尾),可以理解为: $("selector"…
我正在做一个开源的中文车牌识别系统,Git地址为:https://github.com/liuruoze/EasyPR. 我给它取的名字为EasyPR,也就是Easy to do Plate Recognition的意思.我开发这套系统的主要原因是因为我希望能够锻炼我在这方面的能力,包括C++技术.计算机图形学.机器学习等.我把这个项目开源的主要目的是:1.它基于开源的代码诞生,理应回归开源:2.我希望有人能够一起协助强化这套系统,包括代码.训练数据等,能够让这套系统的准确性更高,鲁棒性更强等等…