第七天.SharedPreferences与文件 7.1 SharedPreferences 7.1.1数据存储方式 课程安排 Shared Preferences 存储到文件 SQLite数据库 存储到网络 内容提供者(Content provider) 7.1.2 SharedPreferences 如何保存软件配置参数: Window: 采用ini文件进行 j2se应用: 采用propert
在这篇 Matplotlib 教程中,我们继续使用Basemap地理绘图扩展。 我们将展示一些我们可用的自定义选项。 首先,从上一个教程中获取我们的起始代码: from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt m = Basemap(projection='mill') m.drawcoastlines
在本教程中,我们将讨论如何向 Matplotlib 图形添加文本。 我们可以通过两种方式来实现。 一种是将文本放置在图表上的某个位置。 另一个是专门注解图表上的绘图,来引起注意。 这里的起始代码是教程 15,它在这里: import matplotlib.pyplot as plt import matplotlib.dates as mdates import matplotlib.ticker
简介 在获得一些便利来发现和利用漏洞之后,我们现在转向可能需要更多努力的其他问题上。 这一章中,我们会搜索利用,编译程序,建立服务器以及破解密码,这可以让我们访问敏感信息,并执行服务器和应用中的特权功能。 7.1 在 Exploit-DB 中搜索 Web 服务器的漏洞 我们偶尔会在操作系统中, Web 应用所使用的库中,以及活动服务中发现服务器漏洞,或者可以在浏览器或 Web 代理中不能利用的安全
简介 我们已经获得了想要攻击的计算机的权限。于是将权限尽可能提升就非常重要。通常,我们能访问较低权限的用户账户(计算机用户),但是,我们的目标账户可能是管理员账户。这一章中我们会探索几种提升权限的方式。 7.1 使用模拟令牌 这个秘籍中,我们会通过使用模拟令牌,模拟网络上的另一个用户。令牌包含用于登录会话和识别用户、用户组合用户权限的安全信息。当用户登入 Windows 系统是,它们会得到一个访问
七、 端口扫描技术 作为一个修车新手,我可能折腾几个小时来摸索怎样把基本工具(锤子,胶带,扳子等) 用于手 头的任务。当我惨痛地失败,把我的老爷车拖到一个真正的技师那儿的时候,他总是在他的工 具箱里翻来翻去,直到拽出一个完美的工具然后似乎不费吹灰之力搞定它。端口扫描的艺术和 这个类似。专家理解成打的扫描技术,选择最适合的一种 (或者组合)来完成给定的任务。 另 一方面,没有经验的用户和刚入门者总是
在有些场合,需要对Django处理的每个request都执行某段代码。 这类代码可能是在view处理之前修改传入的request,或者记录日志信息以便于调试,等等。 这类功能可以用Django的中间件框架来实现,该框架由切入到Django的request/response处理过程中的钩子集合组成。 这个轻量级低层次的plug-in系统,能用于全面的修改Django的输入和输出。 每个中间件组件都用
javascript的核心API设计的很简单,但由于浏览器之间的不兼容性,导致客户端的API过于复杂。IE9的到来缓解了这种情况。然而使用javascript的框架或者工具类库,能简化通用操作,处理浏览器之间的差异,这让很多程序员在开发web应用时变得更简单。 jQuery类库被广泛的使用,作为web开发者,我们必须熟悉它:即便没有在自己的代码中遇到,也可能在别人的代码中遇见。幸运的是,jQuer
我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数。 但是在一些情况下,我们得到的观察数据有未观察到的隐含数据,此时我们未知的有隐含数据和模型参数,因而无法直接用极大化对数似然函数得到模型分布的参数。怎么办呢?这就是EM算法可以派上用场的地方了。 EM算法解决这个的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含数据(
本章的目标是开发一个 Web 爬虫,它测试了第 6.1 节中提到的“到达哲学”猜想。 7.1 起步 在本书的仓库中,你将找到一些帮助你起步的代码: WikiNodeExample.java包含前一章的代码,展示了 DOM 树中深度优先搜索(DFS)的递归和迭代实现。 WikiNodeIterable.java包含Iterable类,用于遍历 DOM 树。我将在下一节中解释这段代码。 WikiFet
本书的最后一部分是你进阶更高级项目,并尝试确定你的个人流程的地方。这些项目是困难的组合,但他们应该帮助你正式化你的流程,并找出适合你的东西。最重要的是,你应该着手分析你的工作方式和最适合你的东西。也许你没有执行我在本书建议的,关于个人发展的任何事情,但我希望你继续阅读这本书,并找到分析自己的方法。作为程序员,这样做会给你一种有效的方式,来成长和改进。 我们应该检查你至今为止所学到的知识,因为我会要
接下来的变换是旋转变换,就是说给定一个角度和点,我们将点绕着一个坐标轴旋转。在旋转过程中发生变化的总是x,y,z三个坐标里面的其中两个,而不让第三个坐标值变化。这意味着,旋转路径总在三个坐标轴平面中的一个之中:绕 Z 轴的是 xy 面、绕 X 轴的是 yz 面、绕 Y 轴的是 xy 面。还有许多复杂的旋转变换可以让你绕任意一个向量旋转,但是眼下我们并不需要讨论这些。 让我们概括地定义这个问题这个问
前几章介绍了Python主要的内建对象类型(数字、字符串、列表、元组和字典),以及内建函数和标准库的用法,还有定义函数的方法。现在看来,还差一点——创建自己的对象。这正是本章要介绍的内容。 为什么要自定义对象呢?建立自己的对象类型可能很酷,但是做什么用呢?使用字典、序列、数字和字符串来创建函数,完成这项工作还不够吗?这样做当然可以,但是创建自己的对象(尤其是类型或者被称为类的对象)是Python的
前 言 介绍在 Linux 下线程的创建和基本的使用. Linux 下的线程是一个非常复杂的问题,由 于我对线程的学习不时很好,我在这里只是简单的介绍线程的创建和基本的使用,关于线程的高级使用(如线程的属性,线程的互斥,线程的同步等等问题)可以参考我后面给出的资料. 现在关于线程的资料在网络上可以找到许多英文资料,后面我罗列了许多链接,对线程的高级属性感兴趣的话可以参考一下. 等到我对线程的了解比
人活在社会上不可能孤立,比如跟美女有着千丝万缕的关系,有的是一对一,有的是一对多,有的是多对多。 哈哈,我们的数据也一样,存在这三种基本关系,用术语来说就是: <1> 线性关系。 <2> 树形关系。 <3> 网状关系。 一: 线性表 1 概念: 线性表也就是关系户中最简单的一种关系,一对一。 如:学生学号的集合就是一个线性表。 2 特征: ① 有且只有一个“首元素“。 ② 有且只有一个“末元素”。