在上一篇介绍了逻辑编程的作用,介绍了逻辑编程中的一些概念,包括逻辑程序的结构:事实.规则和问题:知识的表达方式:谓词演算.产生式规则,以及这些概念与三维度(角色+场景+时间)理论的契合关系,正式提出了"三维度逻辑编程"这个概念.为了更好的体现"三维度"的关系,今天要重点介绍一下角色的扮演者--Actor. 其实,我是一个演员 这个标题来自电影<喜剧之王>周星驰的台词.人生如戏全靠演技,星爷这样说,我们又何尝不是呢? (图片来自网络,侵删) 在我们的&qu…
http://www.36kr.com/p/177143.html 从 2003 年到 2008 年,处理器双雄 Intel 和 AMD 在 64 位 CPU 领域展开了一场长达五年,极为惨烈的科技战争.此战双方均投入巨额研发资金,战事波及近千亿美元的半导体市场,其间更是风谲云诡,极尽各种商战权谋之术,令一众围观厂商大呼过瘾.这便是芯片史上赫赫有名的“长平之战”. 话说时间走到了 20 世纪末期,32 位 CPU 的 4G 内存限制已成明显缺陷,64 位 CPU 则成为工业界的必然方向.这一次,…
目录 PHP 类与对象 全解析( 一) PHP 类与对象 全解析( 二) PHP 类与对象 全解析(三 ) 13.魔术方法 定义:PHP把所有以__(两个下划线)开头的类方法当成魔术方法     __construct, __destruct (参看 构造方法和析构方法),   __call, __callStatic, __get, __set, __isset, __unset (参看 重载),   __sleep, __wakeup, __toString, __set_state 和 _…
VHT Capabilities 802.11ac作为IEEE 无线技术的新标准,它借鉴了802.11n的各种优点并进一步优化,除了最明显的高吞吐特点外,不仅可以很好地兼容802.11a/n的设备,同时还提升了多项用户体验.802.11ac 主要技术特征:由于802.11n在MAC层已经很优异了,因此802.11ac在MAC层上的改进并不多,主要通过PHY层来提升其基础速率.更密的调制模式256qam,更宽的信道带宽,更多的空间流,MU-MIMO等等 1. Receive and Transmi…
ElasticSearch 深入理解 三:集群部署设计 ElasticSearch从名字中也可以知道,它的Elastic跟Search是同等重要的,甚至以Elastic为主要导向. Elastic即可伸缩性,作为一个分布式的搜索引擎,可伸缩性是它的核心竞争力. Elastic&Shard 这两个词能放在在一起,因为ES的Elastic是建立在Shard的基础上.Shard作为ES伸缩性的基本单元,可以在不同的node之间迁移.例如我一个实际测试的例子: 两个节点的时候,一个index配置15个s…
<Effective C#>快速笔记(三)- 使用 C# 表达设计 目录 二十一.限制类型的可见性 二十二.通过定义并实现接口替代继承 二十三.理解接口方法和虚方法的区别 二十四.用委托实现回调 二十五.用事件模式实现通知 二十六.避免返回对内部类对象的引用 二十七.让类型支持序列化 二十八.提供组粒度的因特网服务 API 二十九.支持泛型协变和逆变 二十一.限制类型的可见性 1.在保证类型可以完成工作的前提下,应该尽可能地给类型分配最小的可见性. 2.我们经常下意识的创建公有类型.可见性越低…
JS中的三种逻辑语句:顺序.分支和循环语句. 一.顺序语句 代码规范如下:1. <script type="text/javascript"> var a = 10;           var b = 5;           var c = a==b?"A等于B":"A不等于B";          alert(c);顺序语句 2.var sex = true;        var xb = sex?"男":…
开篇介绍 在从 OLTP 业务数据库向 DW 数据仓库抽取数据的过程中,特别是第一次导入之后的每一次增量抽取往往会遇到这样的问题:业务数据库中的一些数据发生了更改,到底要不要将这些变化也反映到数据仓库中?在数据仓库中,哪些数据应该随之变化,哪些可以不用变化?考虑到这些变化,在数据仓库中的维度表又应该如何设计以满足这些需要. 很显然在业务数据库中数据的变化是非常自然和正常的,比如顾客的联系方式,手机号码等信息可能随着顾客的所在地的更改发生变化,比如商品的价格在不同时期有上涨和下降的变化.那么在业务…
目录 二十一.限制类型的可见性 二十二.通过定义并实现接口替代继承 二十三.理解接口方法和虚方法的区别 二十四.用委托实现回调 二十五.用事件模式实现通知 二十六.避免返回对内部类对象的引用 二十七.让类型支持序列化 二十八.提供组粒度的因特网服务 API 二十九.支持泛型协变和逆变 二十一.限制类型的可见性 1.在保证类型可以完成工作的前提下,应该尽可能地给类型分配最小的可见性. 2.我们经常下意识的创建公有类型.可见性越低,以后升级或更改时所需要的变化就越小,因为能访问你功能模块的代码越少.…
API的定义取决于选择的IPC通信方式,假设是消息机制(如 AMQP 或者 STOMP).API则由消息频道(channel)和消息类型.假设是使用HTTP机制,则是基于请求/响应(调用http的url),这里我们先简述下RestfulAPI的定义. 设计原则 域名 应该尽量将API部署在专用域名之下,如: https://api.example.com 也能够放在主域名下: https://example.org/api/ 版本号 放入到头信息的Accept中 制定版本号并在版本号之间平缓过渡…
(一)前面课程逻辑梳理 任何一门数据的软件也好,数据构架也好,或者说是数据学科也好,最终都是要解决实际问题的,大家说是不是? 前面jacky讲为什么要引入数据库的时候,举了一个案例,大家还记的吗?大家还记得这张图吧 jacky说这家手机公司对于手机数据的管理是混乱的,给出了3点混乱的理由,然后引出了我们要引入数据库的必要性:jacky说既然我们的数据库这么重要,那么操作数据库的软件就一定会出现,那么MySQL就是其中最流行的软件之一,是吧,然后大家跟着jacky把MySQL都安在了电脑上,前面我…
一.通过代码 requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏标题栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);// 隐藏状态栏 注意:必须在setContentView之前执行,否则会报错. 另外这种全屏显示方式的缺点是,会有隐藏标题栏和隐藏状态栏的动画过渡效果. 二…
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7723174.html 前面讲到:Java IO编程全解(二)--传统的BIO编程 为了解决同步阻塞I/O面临的一个链路需要一个线程处理的问题,后来有人对它的线程模型进行了优化,后端通过一个线程池来处理多个客户端的请求接入,形成客户端个数M:线程池最大线程数N的比例关系,其中M可以远远大于N,通过线程池可以灵活的调配线程资源,设置线程的最大值,防止由于海量并发接入导致线程耗尽. 下面,我们结合连接模型图和源…
在做应用的时候,很多时候是不需要系统自带的标题栏的,而是自己去实现标题栏,这就要去掉系统的标题栏,下面总结了三种方法.全屏也是一样的道理,也总结了实现的三种方法. (一)去除标题栏 1.方法1 在Activity的onCreate方法中: requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 //注意这句一定要写在setContentView()方法的前面,不然会报错的 但是这种方法的缺陷是,因为在onCreate方法中才去掉标题栏,所以在这…
一.通过Java代码 在setContentView之前执行: requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏状态栏 二.调用Android自带的Theme 直接在AndroidManifest.xml中需要全屏显…
封面:洛小汐 作者:潘潘 在理解中执行,在执行中理解,学习技术也循此道. 前言 上一篇文章 <Mybatis系列全解(二):Mybatis简介与环境搭建> ,我们对 Mybatis 做了初步讲解,并搭建了一套基本环境,共同完成了一次查询操作.所以本篇文章我们在此基础上,继续拓展了插入.修改.删除三种操作,把我们的CRUD基础操作进行完善. 目录 1.Mybatis查询操作回顾 2.插入操作 3.修改操作 4.删除操作 5.总结 Mybatis查询操作回顾 默认已安装 Java 开发环境.Mys…
1.super.onCreate(savedInstanceState)方法之前调用:            setTheme(android.R.style.Theme_Light_NoTitleBar_Fullscreen);            2.setContentView(R.layout.xxx)之前调用:            requestWindowFeature(Window.FEATURE_NO_TITLE); // 去除标题            getWindow(…
一.环境: windows xp sp3 Microsoft VC++ 6.0 二.制作文件 打开iexpress.exe(windows提供的一个向导式cab制作工具,位置:C:\WINDOWS\system32) 选“创建新的自解压缩指定文件”,点“下一步”. 选“仅创建压缩文件(ActiveX安装)”,点“下一步”. 点“添加”将上边制作好的default.inf和getcertocx.ocx文件添加进来,点“下一步”. 选“不保存”,点“下一步”. 点“下一步”. 点“完成”退出向导,c…
一. 条件语句 python条件语句是根据一条或多条语句的执行结果的真假(True Or False)来决定代码块的执行. 而执行内容可以多行,以缩进来区分表示同一范围. 1.Python判断条件真假的形式: 真 :  True, 非零,非空(即列表非空),非假等等 假:False, 0,空列表,空字典,空集合,非真等等 2.常见的判断条件: if 语句的判断条件可以用>(大于).<(小于).==(等于).>=(大于等于).<=(小于等于)来表示其关系. 当判断条件为多个值时,可以…
能看懂博主我此博文,相信你已经有了一定基础了. 对于本地模式.伪分布模式和全分布模式的概念,这里,我不多赘述.太多资料和博客,随便在网上一搜就好. 比如<hadoop实战 第二版>陆嘉恒老师等. 我这里呢,是再次挖掘深入. 我们知道,如伪分布模式或全分布式模式,里有着很多的java进程(这个,可用jps查看).有过动手试验的都知道, 这两种模式,速度明显比本地模式要快,为什么呢? 答:原因在于,本地独立模式将每个单独任务执行的信息都打印在屏幕上,而在伪分布模式和全分布式模式下,这些信息只被写入…
一功能checkbox时隐时现,比如第一次打开有勾选,第n次打开可能就不选了. 经过偶层层抽次剥茧(da da jiang you),终于知道了原因:attr()在二次选中勾选框时,失效. 比如,如下HTML页面,一点[选中].二点[取消选中].三点[选中],瞧,不行了呗. <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title&…
在本系列的上一篇文章中,我带着大家一起阅读了一遍Glide的源码,初步了解了这个强大的图片加载框架的基本执行流程. 不过,上一篇文章只能说是比较粗略地阅读了Glide整个执行流程方面的源码,搞明白了Glide的基本工作原理,但并没有去深入分析每一处的细节(事实上也不可能在一篇文章中深入分析每一处源码的细节).那么从本篇文章开始,我们就一篇篇地来针对Glide某一块功能进行深入地分析,慢慢将Glide中的各项功能进行全面掌握. 今天我们就先从缓存这一块内容开始入手吧.不过今天文章中的源码都建在上一…
上篇文章讨论了Hibernate持久对象的生命周期,在整个生命周期中一个对象会经历三个状态,三种状态的转换过程在开发过程中是可控的.并且是通过用法来控制它们的转化过程.详细的转化过程今天就来着重讨论下. 二.状态转化方法 前面说到对象之间的转化过程是通过用法来实现的,这些方法是非常重要的.先看张图 上面这张图在三篇文章中都实用到,它具体描写叙述了持久对象三种状态的转换过程及具体的转化方法.另外还有垃圾回收器,对象在瞬态和脱管状态下假设长时间不适用将会在某一时刻被Java回收器回收,消亡. 1.对…
前言 上一篇[.Net Core微服务入门全纪录(二)--Consul-服务注册与发现(上)]已经成功将我们的服务注册到Consul中,接下来就该客户端通过Consul去做服务发现了. 服务发现 同样Nuget安装一下Consul: 改造一下业务系统的代码: ServiceHelper.cs: public class ServiceHelper : IServiceHelper { private readonly IConfiguration _configuration; public S…
写在前面 本文将记录构建LFS的过程中,下载软件包的全过程 准备下载的路径 注意请确保$LFS已经设置完毕 我们需要创建一个文件夹,地址为$LFS/sources,用于保存对应的源码 输入的指令如下: sudo mkdir -v $LFS/sources 如果创建成功,将会有以下的显示: 我们需要修改文件夹的读写权限,修改的指令如下: sudo chmod -v a+wt $LFS/sources 如果修改成功,将有以下的显示: 文件下载 构建成功这些文件后,我们就可以开始下载所需的文件了 在L…
在本系列的上一篇文章中,我们看到了一个典型的事务处理失败的案例,其主要原因在于,service层和各个DAO所使用的Connection是不一样的,而JDBC中事务处理的作用对象正是Connection对象,所以不同DAO中的操作不在同一个事务里面,从而导致事务失败.从中我们得出了教训:要避免这种失败,我们可以使所有操作共享一个Connection对象,这样应该就没有问题了. 在本篇文章中,我们将看到一个成功的,但是丑陋的事务处理方案,它的基本思路是:在service层创建Connection对…
前面两文主要对前端网络流的数据路径和虚拟网卡的创建进行了说明,这些能够看做是Guest OS网络数据包收发的准备工作,那么网络数据包是怎样在Guest OS中进进出出的呢,本文就是重点讲述Guest OS的数据包的收发路径,当中涉及到一个重要的虚拟化技术,即I/O虚拟化. [点击查看全文] http://luoye.me/2014/07/26/netdev-virtual-3/…
首先,传统做动画的方式有以下几种: 1. css的transition过度动画 2. css的animation动画 3. 使用setTimeout或setInterval模拟动画贞(js执行机制决定了并非严格意义上的动画贞) 定时器模拟动画又分为 :(1)速度版运动   (2)时间版运动 4.使用requestAnimationFrame 本文主要讲的就是requestAnimationFrame,requestAnimationFrame:即在浏览器的帧频下,每隔16.7ms(官方),执行一…
/* [数组函数] *///统计计算count        计算数组中的单元数目或对象中的属性个数array_count_values  统计数组中所有的值出现的次数array_product       计算数组中所有值的乘积array_sum           计算数组中所有值的和range        建立一个包含指定范围单元的数组array_chunk        将一个数组分割成多个   array array_chunk(array $input, int $size[, b…
1.cv2.resize(image, (image_size, image_size), 0, 0, cv2.INTER_LINEAR) 参数说明:image表示输入图片,image_size表示变化后的图片大小,0, 0表示dx和dy, cv2.INTER_LINEAR表示插值的方式为线性插值 2.image.get_shape[1:4].num_elements() 获得最后三个维度的大小之和 参数说明:image表示输入的图片 3. saver.save(sess, path, glob…