入门指南

Docker零基础入门指南(四):Docker容器使用

匿名 (未验证) 提交于 2019-12-03 00:22:01
启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。因为Docker的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 新建并启动 所需要的命令主要为 docker run 当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括: 1. 检查本地是否存在指定的镜像,不存在就从公有仓库下载 2. 利用镜像创建并启动一个容器 3. 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层 4. 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去 5. 从地址池配置一个 ip 地址给容器 6. 执行用户指定的应用程序 7. 执行完毕后容器被终止 启动已终止容器 可以利用 docker container start 命令,直接将一个已经终止的容器启动运行。 终止容器 可以使用 docker container stop 来终止一个运行中的容器。此外,当 Docker 容器中指定的应用终结时,容器也自动终止。 终止状态的容器可以用下面的命令看到。 # 列出本机所有容器,包括终止运行的容器 $ docker container ls -- all 处于终止状态的容器,可以通过 docker container start 命令来重新启动。此外, docker container

Drools规则引擎入门指南(二)

匿名 (未验证) 提交于 2019-12-02 23:03:14
本篇博客主要讲解Drools常用的属性以及函数 首先我们在resources\rules文件夹下创建一个Property.drl,还有一个DroolsApplicationPropertyTests salience 属性的值默认为0,它的值越大执行的优先级就越高,看如下代码在执行的时候就会先执行salience2 123456789101112131415 rule "salience2"salience 2 when eval(true) then System.err.println("salience2");endrule "salience1"salience 1 when eval(true) then System.err.println("salience1");end 1234 @Test public void testSalience() { kieSession.fireAllRules(); } 当系统时间小于等于date-effective的值是才会执行。 12345678910111213 rule "dateEffective"date-effective "2018-11-24" when then System.err.println("2018-11-24被执行");endrule "dateEffectiveTomorrow"date

张高兴的 .NET Core IoT 入门指南:(五)PWM 信号输出

瘦欲@ 提交于 2019-12-02 15:19:40
什么是 PWM 小说搜索 biqi.org 在解释 PWM 之前首先来了解一下电路中信号的概念,其中包括模拟信号和数字信号。 模拟信号 是一种连续的信号,与连续函数类似,在图形上表现为一条不间断的连续曲线。 数字信号 为只能取有限个数值的信号,比如计算机中的高电平(1)和低电平(0)。 PWM(Pulse Width Modulation)即脉冲宽度调制,简称脉宽调制,通过对一系列的脉冲的宽度进行调制,从而等效出所需要的模拟信号。如图 1 所示,蓝色波形为调制的一系列脉冲,红色波形为模拟的正弦样信号。在模拟电路中,模拟信号的值可以连续进行变化,而数字电路是在高电平和低电平中取值,所以电压或电流会以脉冲的形式出现。通过使用 PWM 技术,我们可以在数字电路中模拟出电信号的连续变化。 图1:PWM 示意图 提示 看完上面的如果你还不明白,那么可以看看下面这个生动的解释,这个解释来源于百度知道: “简单的说,比如你有5V电源,要控制一台灯的亮度,有一个传统办法,就是串联一个可调电阻,改变电阻,灯的亮度就会改变。还有一个办法,就是PWM调节。不用串联电阻,而是串联一个开关。假设在1秒内,有0.5秒的时间开关是打开的,0.5秒关闭,那么灯就亮0.5秒,灭0.5秒。这样持续下去,灯就会闪烁。如果把频率调高一点,比如是1毫秒,0.5毫秒开,0.5毫秒灭,那么灯的闪烁频率就很高。我们知道

9.JavaCC官方入门指南-例4

空扰寡人 提交于 2019-12-02 06:05:45
例4:计算器--添加减法运算 1. calculator1.jj   为了使得计算器具备更多功能,我们需要更多的操作符,比如减法、乘法和除法。接下来我们添加减法运算。   在词法分析器的描述部分,我们添加如下生产式: TOKEN : { < MINUS : "-" > }   在词法分析器的描述文件中,我们层在定义EOL和NUMBER这两个token时,使用竖线来表示“或”的意思,以此来区分不同的选项。在语法分析器的BNF生产式中,我们也同样用竖线来表示“或”的功能。   在这个例子中,我们需要在PLUS和MINUS这两个token之间做选择。用BNF符号表达式来表示就如下所示: Expression --> Primary ((PLUS | MINUS) Primary) *   但是我们也可以使用如下表示: Expression --> Primary (PLUS Primary | MINUS Primary)*   这种方式使得生成的java代码简单些,在JavaCC描述文件中,其对应的生产式如下所示: double Expression() throws NumberFormatException : { double i ; double value ; } { value = Primary() ( <PLUS> i = Primary() { value += i

10.JavaCC官方入门指南-例5

谁说我不能喝 提交于 2019-12-02 06:05:35
例5:计算器--添加乘除法运算 1.calculator2.jj 根据上一个例子,可知要添加乘法和除法运算是很简单的,我们只需在词法描述部分添加如下两个token: TOKEN : { < TIMES : "*" > } TOKEN : { < DIVIDE : "/" > }   接下来我们修改Expression这个生产式,对它的修改跟上一步添加减号运算所做的修改很相似: Expression --> Primary (PLUS Primary | MINUS Primary | TIMES Primary | DIVIDE Primary)*   从纯粹的句法角度来看,上面这种方法没有什么错,但是它与我们的计算方法不太吻合,因为它没有认识到乘法和除法应该比加法和减法具有更高的优先级。例如,如果我们计算下式: 2*3+4*5   那么根据我们的表达式,我们获得的结果就会是((2×3) + 4)×5,结果是50,而不是(2×3) + (4×5)。   因此,我们将生产式修改成如下: Expression --> Term (PLUS Term | MINUS Term)* Term --> Primary (TIMES Primary | DIVIDE Primary)*   这样一来,我们就将每个表达式拆分成了一个或多个式子(terms)相加或相减。在我们的例子中,式子

8.JavaCC官方入门指南-例3

假如想象 提交于 2019-12-02 06:04:41
例3:计算器—double类型加法   下面我们对上个例子的代码进行进一步的修改,使得代码具有简单的四则运算的功能。   第一步修改,我们将打印出每一行的值,使得计算器更具交互性。一开始,我们只是把数字加起来,然后再关注其他运算,比如减法、乘法和除法。 1.Options和class声明块   描述文件calculator0.jj的第一部分如下所示: /* calculator0.jj An interactive calculator. */ options { STATIC = false ; } PARSER_BEGIN(Calculator) import java.io.PrintStream ; class Calculator { public static void main( String[] args ) throws ParseException, TokenMgrError, NumberFormatException { Calculator parser = new Calculator( System.in ) ; parser.Start( System.out ) ; } double previousValue = 0.0 ; } PARSER_END(Calculator)   Calculator类中的previousValue属性

5.JavaCC官方入门指南-概述

折月煮酒 提交于 2019-12-02 06:01:49
一、前言   在最开始使用JavaCC的时候,从网上查询了许多资料,但是网上的资料水平是参差不齐的,走了许多弯路,不得已自己查阅了英文版官网文档。令我伤心的是最后我回过头来再看那些博客资料时,发现其实他们写的都是没错的,只不过某些地方少了必要的讲解,以至于新手刚接触的时候是持续懵逼的。   不管怎样,下面内容是对官方文档的翻译,加上一些自己的理解。   官方文档连接: https://www.engr.mun.ca/~theo/JavaCC-Tutorial/javacc-tutorial.pdf   这里所翻译的部分是JavaCC的入门知识,通过由浅入深的几个小例子,可以循序渐进的一步步了解JavaCC技术。 二、 JavaCC概述   JavaCC全称为Java Compiler Compiler,它是一个生成器,用于生成词法分析器(lexical analysers)和语法分析器(parsers)。它可以通过读取一个词法和语法描述文件(即词法和语法描述是写在同一个文件中的),来生成一个java程序,这个java程序就包括了词法分析器和语法分析器。接着就可以用生成的词法分析器和语法分析器来对我们的输入进行判断,判断输入是否符合我们所要求的语法规则。   编程语言中的编译器,其实就包含了词法分析器和语法分析器,编译器便是通过这两者来识别我们所编写的代码。除了在编译器中的应用之外

Maven入门指南

半城伤御伤魂 提交于 2019-12-01 19:24:39
# Maven入门指南 本指南旨在第一次为使用Maven的人员提供参考,但也打算作为一本包含公共用例的独立参考和解决方案的工具书。对于新用户,建议您按顺序浏览该材料。对于更熟悉Maven的用户,本指南致力于为手头的需求提供一个快速解决方案。现在假设您已经在本地计算机上下载了Maven并安装了Maven。如果您没有这样做,请参考下载和安装说明( [Download and Installation](http://maven.apache.org/download.html))。 好的,现在安装了Maven,我们准备好了。在开始我们的示例之前,我们将非常简单地介绍Maven是什么,以及它如何帮助您完成日常工作和与团队成员协作。当然,Maven将为小型项目工作,但是Maven在帮助团队更有效地操作方面表现出色,它允许团队成员将精力集中在项目的涉众需要什么上。您可以将构建基础设施留给Maven! ### Maven是什么? 乍一看,Maven看起来可能有很多东西,但简而言之,Maven是一种尝试将模式应用于项目的构建基础结构,以便通过在使用最佳实践中提供清晰的路径来促进理解和生产力。Maven本质上是一个项目管理和理解工具,因此提供了一种帮助管理的方法: - 构建 - 文档 - 报告 - 依赖 - SCMs - 版本 - 发布 如果您想了解更多关于Maven的背景信息

OWASP ZAP使用入门指南

隐身守侯 提交于 2019-12-01 05:37:50
安全性测试入门(一):Brute Force暴力破解攻击和防御 写在篇头: 随着国内的互联网产业日臻成熟,软件质量的要求越来越高,对测试团队和测试工程师提出了种种新的挑战。 传统的行业现象是90%的测试工程师被堆积在基本的功能、系统、黑盒测试,但是随着软件测试整体行业的技术积累和大环境,市场对于测试工程师的要求越来越全栈化,技术的突破是测试工程师的必修课。 安全测试就是测试工程师的高阶技能之一,不过安全性测试领域水非常深,对于普通测试工程师而言可能并不容易上手。 所以笔者准备写这个系列文章,做一个安全性测试入门级攻略。文章会采用DVWA项目,就其提供的几大模块,来进行安全性测试的初探和对安全性防御措施的简析。 1. DVWA - 非常脆弱的一个网页应用 DVWA- Damn voulnerable web application(直译就是:非常脆弱的网页应用-_-!!!),是UK的一家安全性研究机构发布的一套网站系统,专门用来展示网站安全性问题和防御机制。对于我们学习web安全性相关知识是一个很好的工具。 这套web项目可以在 http://www.dvwa.co.uk/ 官网由github下载。 DVWA的安装很简单,只要架设起本地的Tomcat+MySql服务器,将DVWA部署到相应目录即可。 部署完毕后,登录应用,可以在左侧的菜单中看到如下模块: 他们分别是Brute

Solr使用入门指南

三世轮回 提交于 2019-12-01 03:25:06
由于搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量需要搜索引擎的功能需求,目前在实现搜索引擎的方案上有集中方案可供选择: 1. 基于Lucene自己进行封装实现站内搜索。工作量及扩展性都较大,不采用。 2. 调用Google、Baidu的API实现站内搜索。同第三方搜索引擎绑定太死,无法满足后期业务扩展需要,暂时不采用。 3. 基于Compass+Lucene实现站内搜索。适合于对数据库驱动的应用数据进行索引,尤其是替代传统的like ‘%expression%’来实现对varchar或clob等字段的索引,对于实现站内搜索是一种值得采纳的方案。但在分布式处理、接口封装上尚需要自己进行一定程度的封装,暂时不采用。 4. 基于 Solr 实现站内搜索。封装及扩展性较好,提供了较为完备的解决方案,因此在门户社区中采用此方案,后期加入Compass方案。 1、 Solr简介 Solr是一个基于Lucene的Java搜索引擎服务器。Solr 提供了层面搜索、命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。Solr 包装并扩展了 Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与