运维

centos7 离线配置安装nginx

下载nginx包 tar -zxvf nginx-1.13.7.tar.gz cd nginx-1.13.7 安装 ./configure make clean ####清除./configure时产生的临时文件 可能会报错误 ### the HTTP rewrite module requires the PCRE library. ###显示需要pcre rpm -ivh pcre pcre-devle zlib zlib-devle ./configure 执行完成会看到 ### Configuration summary + using system PCRE library + OpenSSL library is not used + using system zlib library nginx path prefix: “/usr/local/nginx” nginx binary file: “/usr/local/nginx/sbin/nginx” nginx modules path: “/usr/local/nginx/modules” nginx configuration prefix: “/usr/local/nginx/conf” nginx configuration file: “/usr/local/nginx/conf/nginx.conf”

用海康威视摄像头做图像处理问题

用海康威视摄像头做图像处理问题 首先自己要激活海康威视摄像机,然后,如果只有摄像机,没有配套的存储设备啥的,就用电脑就好了 在激活摄像机后,在电脑端要去海康威视官网下载4200管理软件,然后配置就好。 之后调用程序访问摄像机拍摄的视频时,需要发邮件给海康威视,让对方发SDK,不然海康威视的视频没法转成RGB的,而opencv里的库函数需要访问的是RGB格式的视频。 注意:有个问题就是,电脑要是能访问海康威视的摄像机,需要将电脑的网关改成和海康威视摄像机的IP(192.168.1.64)网关一样,所以可能会使电脑上不了网,也就是IP冲突,这个时候就需要改电脑连的路由器网关或者是海康威视摄像机的网关。

如何理解持续集成、持续交付、持续部署?

如何理解持续集成、持续交付、持续部署? 在学习精益思想的过程中接触到了持续部署这个概念,查了下资料还有持续集成与持续交付。 身为没有技术背景的产品人员,靠自己搜索信息深刻理解这三个概念实在过于痛苦(相反,产品人员对精益是很容易深刻理解且高度认同的,因为越来越明白再好的产品人员、再好的用研意识与方法都无法保证需求的正确性,前期过度的产品设计是浪费的),所以来知乎上求助一下技术达人有没有现成的总结。 如何分辨与理解这三个概念? 你所在的技术团队是否认同与实践推广?在实践推广的过程中总结出了什么心得? 这类概念是否有必要向产品同事、老板普及推广?在普及推广中有过什么事情发生? 说出来才知道对不对;知道不对才能改进;改进才能成长 集成是指软件个人研发的部分向软件整体部分交付,以便尽早发现个人开发部分的问题; 部署是代码尽快向可运行的开发/测试节交付,以便尽早测试; 交付是指研发尽快向客户交付,以便尽早发现生产环境中存在的问题。 如果说等到所有东西都完成了才向下个环节交付,导致所有的问题只能再最后才爆发出来,解决成本巨大甚至无法解决。 而所谓的持续,就是说每完成一个完整的部分,就向下个环节交付,发现问题可以马上调整。是的问题不会放大到其他部分和后面的环节。 这种做法的核心思想在于:既然事实上难以做到事先完全了解完整的、正确的需求,那么就干脆一小块一小块的做,并且加快交付的速度和频率,使得交付物尽早在下个环节得到验证。早发现问题早返工。 举个例子,你家装修厨房,其中一项是铺地砖,边角地砖要切割大小。如果一次全切割完再铺上去,发现尺寸有误的话浪费和返工时间就大了,不如切一块铺一块。这就是持续集成。 装修厨房有很多部分,每个部分都有检测手段,如地砖铺完了要测试漏水与否,线路铺完了要通电测试电路通顺,水管装好了也要测试冷水热水。如果全部装完了再测,出现问题可能会互相影响,比如电路不行可能要把地砖给挖开……。那么每完成一部分就测试,这是持续部署。 全部装修完了,你去验收,发现地砖颜色不合意,水池太小,灶台位置不对,返工吗?所以不如没完成一部分,你就去用一下试用验收,这就是持续交付。 ——————– 补充:从敏捷思想中提出的这三个观点,还强调一件事:通过技术手段自动化这三个工作。加快交付速度。 最近看了一篇文章 The Product Managers’ Guide to Continuous Delivery and DevOps 文中对「持续集成(Continuous Integration)」、「持续交付(Continuous Delivery)」和「持续部署(Continuous Deployment)」这三个概念有很详细的解释。这里借用文中的插图,说一下我对这三个概念的理解。 持续集成 持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。 持续交付 持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」( production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续 手动部署到生产环境中。 持续部署 持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。 我个人觉得持续集成、持续交付、持续部署非常值得推广。开发过程中最怕集成时遇到问题导致返工,而持续集成、持续交付、持续部署恰恰可以早发现早解决,从而可以避免这个问题。 即代码的零库存管理,是精益生产的精~精~精~精髓。 代码越早push出去,用户能越早用到,快就是商业价值; 用户越早用到就越早反馈,团队越早得到反馈,好坏都是有价值的输入; 用户不反馈,说明我们做了用户不想要的东西(通过用例跟踪)或者marketing没做好,能帮助产品市场人员调整策略; 代码库存越是积压,就越得不到生产检验,积压越多,代码间交叉感染的概率越大,下个release的复杂度和风险越高; 代码库存越多,workflow的包袱越重,管理成本越大,说敏捷越可笑。 流水不腐,户枢不蠹。 职业生涯没有被要求过要区分这三个概念 … 其实应该是四个词:持续集成、持续部署、持续交付、持续发布。 咱们把这几个词拆解一下: 持续 (Continuous):不断的获取反馈,响应反馈。 集成 (Integration):编译、测试、打包; 部署 (Deployment):应用组件或基本设施的代码或配置变更在产品环境生效称为“部署”; 发布 (Release):具有业务影响的功能变化对最终用户可见称为“发布”。 交付 (Delivery):可以理解为从 Deployment 到 Release 之间的阶段,更多的强调的是一种能力。开发有能力频繁的部署,业务有能力随时发布。

Altium Designer PCB导线高亮

在Altium Designer17中,默认设置PCB导线是不高亮的 需要再设置中修改 DXP -> Perferences -> PCB Editor -> Board Insight Display 中取消勾选Live Highlighting only when Shift Key Down(只有Shift按键按下才高亮) 单击OK保存即可。 到了AD18中,设置的位置改变为

OD各种断点的原理

(1)int 3断点,即cc断点,这是一种基于软中断机制断点,3为中断号。OD中,当你在代码区某行按F2即可实现,其机理是把所在代码的第一个字节保存到一张表上,然后将其修改为CC,当程序运行到此代码时,就会产生中断,从而转至中断服务程序。当你去除断点时,OD会从表里读取出当前断点原来的字节内容。 (2)内存断点,假如你用int 3断点对数据区下断,OD会提示你断点可能不会实现,其实也是必然,程序不可能执行数据区,然而我们却可以当数据被读取或写入时进行下断,这种原理主要基于内存属性,当下读写断点是,OD会修改断点处读写属性,如果程序对此数据读写的话,会产生读写异常,OD捕捉此异常并分析,其可以知道运行到何处,对代码段也可以下此断点,机理相似。 (3)硬件断点,这是由硬件实现(这里是CPU实现),其由CPU调试器实现,断点长度有限,其只用两位记录断点长度,所以只支持4个硬件断点,调试寄存器中有3位表示断点状态及属性,000 保留 001 执行断点 010 访问断点 011 写入断点 100 保留 101 临时断点 110 保留 111 保留

什么是渗透测试

渗透测试的分类 作为一种对抗性和定制要求都非常高的服务,渗透测试的完成质量依赖于实施人员即渗透测试者(PenetrationTester, Pentester)的技术能力、专业素养以及团队协作能力。提供渗透测试服务的安全公司或组织都需要由职业化渗透测试者组成的专业团队,这些渗透测试者一般称为渗透测试工程师。 熟练掌握测试方法、流程与技术,面对复杂渗透场景能够运用自己的创新意识、技术手段与实践经验,从而成功取得良好渗透测试效果的技术专家称为渗透测试师(PenetrationTest Expert)。 渗透测试的两种基本类型包括: 黑盒测试:设计为模拟一个对客户组织一无所知的攻击者所进行的渗透攻击。 白盒测试:渗透测试者在拥有客户组织所有知识的情况下所进行的渗透测试。两种测试方法都拥有他们各自的优势和弱点。 黑盒测试 黑盒测试(Black-boxTesting)也称为外部测试(ExternalTesting)。采用这种方式时,渗透测试团队将从一个远程网络位置来评估目标网络基础设施,并没有任何目标网络内部拓扑等相关信息,他们完全模拟真实网络环境中的外部入侵者,采用流行的攻击技术与工具,有组织有步骤地对目标组织进行逐步的渗透与入侵,揭示目标网络中一些已知或未知的安全漏洞,并评估这些漏洞能否被利用获取控制权或造成业务资产的损失。 黑盒测试还可以对目标组织内部安全团队的检测与响应能力做出评估。在测试结束之后,黑盒测试会对发现的目标系统安全漏洞、所识别的安全风险及其业务影响评估等信息进行总结和报告。 黑盒测试是比较费时费力的,同时需要渗透测试者具备较高的技术能力。在安全业界的渗透测试眼中,黑盒测试通常更受推崇,因为它能更逼真地模拟一次真正的攻击过程。 白盒测试 白盒测试(White-boxTesting)也称为内部测试(InternalTesting)。进行白盒测试的团队将可以了解到关于目标环境的所有内部与底层知识,因此这可以让渗透测试者以最小的代价发现和验证系统中最严重的安全漏洞。如果实施到位,白盒测试能够比黑盒测试消除更多的目标基础设施环境中的安全漏洞与弱点,从而给客户组织带来更大的价值。 白盒测试的实施流程与黑盒测试类似,不同之处在于无须进行目标定位与情报收集;此外,白盒测试能够更加方便地在一次常规的开发与部署计划周期中集成,使得能够在早期就消除一些可能存在的安全问题,从而避免被入侵者发现和利用。 白盒测试中发现和解决安全漏洞所需花费的时间和代价要比黑盒测试少许多。而白盒测试的最大问题在于无法有效地测试客户组织的应急响应程序,也无法判断出他们的安全防护计划对检测特定攻击的效率。如果时间有限或是特定的渗透测试环节(如情报搜集)并不在范围之内,那么白盒测试可能是最好的选项。 灰盒测试 以上两种渗透测试基本类型的组合可以提供对目标系统更加深入和全面的安全审查,这就是灰盒测试(Grey-boxTesting),组合之后的好处就是能够根据对目标系统所掌握的有限知识与信息,来选择评估整体安全性的最佳途径。在采用灰盒测试方法的外部渗透场景中,渗透测试者也类似地需要从外部逐步渗透进入目标网络,但他所拥有的目标网络底层拓扑与架构将有助于更好地决策攻击途径与方法,从而达到更好的渗透测试效果。 渗透测试的方法与流程 要想完成一次质量很高的渗透测试过程,渗透测试团队除了具备高超的实践技术之外,还需要掌握一套完整和正确的渗透测试方法学。 虽然渗透测试所面临的目标组织网络系统环境和业务模式前边万化,而且过程中需要充分发挥渗透测试者的创新与应变能力,但是渗透测试的流程、步骤与方法还是具有一些共性,并可以用一些标准化的方法体系进行规划和限制。 目前,安全业界比较流行的开源渗透测试方法体系标准包括以下几个。 安全测试方法学开源手册 由ISECOM安全与公开方法学研究所定制,最新版本为2010年发布的v3.0。安全测试方法学开源手册(OSSTMM)提供物理安全、人类心理学、数据网络、无线通信媒介和电信通信这五类渠道非常细致的测试用例,同时给出评估安全测试结果的指标标准。 OSSTMM的特色在于非常注重技术的细节,这使其成为一个具有很好可操作性的方法指南。 NIST SP 800-42 网络安全测试指南 美国国家标准与技术研究院(NIST)在SP800-42 网络安全测试指南中讨论了渗透测试流程与方法,虽然不及OSSTMM全面,但是它更可能被管理部门所接受。 OWASP十大Web应用安全威胁项目 针对目前最普遍的Web应用层,为安全测试人员和开发者提供了如何识别与避免这些安全威胁的指南。OWASP十大Web应用安全威胁项目(OWASPTop Ten)只关注具有最高风险的Web领域,而不是一个普适性的渗透测试方法指南。 Web安全威胁分类标准 与OWASPTop Ten类似,Web应用安全威胁分类标准(WASC-TC)全面地给出目前Web应用领域中的漏洞、攻击与防御措施视图。 PTES渗透测试执行标准 2010年最新发起的渗透测试过程规范标准项目,核心理念是通过建立起进行渗透测试所要求的基本准则基线,来定义一次真正的渗透测试过程,并得到安全业界的广泛认同。 通过深入了解这些开放的渗透测试方法标准,将有助于你对渗透测试建立起一个整体的知识与技能体系,所有这些方法标准背后的基本想法就是你的渗透测试过程应该按步骤实施,从而确保更加精确地评价一个系统的安全性。我们无法在这里细致地介绍每一个标准的细节,只是简要地介绍最新的PTES标准中定义的渗透测试过程环节。当你更加深入地了解渗透测试技术之后,可以更进一步去了解这些渗透测试方法体系,并在实际的渗透测试中加以应用。

Ubuntu14.04–SUMO–Omnet++和Veins

研究需要,所以安装这些工具。 按照car2x.org网页tutorial的说明,在Ubuntu环境更理想,但该指南是以windows系统为例说明安装。尝试后会发现,windows环境安装远比Ubuntu环境方便很多。 言归正传: 1. 先装好Ubuntu14.04(本人环境win7-64+virtualBox) 2. 根据Omnet++ 4.4.1 InstallationGuide 之Chapter 5. Ubuntu说明,完成预装模块: $ sudo apt-get update $ sudo apt-get install build-essential gcc g++ bison flex perl tcl-dev tk-dev blt libxml2-dev zlib1g-dev default-jre doxygen graphviz libwebkitgtk-1.0-0 openmpi-bin libopenmpi-dev libpcap-dev 3. 不建议在Ubuntu下下载Omnet++4.4.1,觉得速度太慢,建议其他方式下好后在相关目录下解压。 4. 检查配置:$ ./configure (如果发现异常情况,一定要做补救,比如安装所缺模块,否则会影响后续编译,导致错误)。 5 . 常见的需要安装的模块:Tcl/Tk (第2步已包括,但不知为何检查时提示没有。参考了–philips_629的博文:“ubuntu安装ns2时tcl/tk的问题” 6. 安装JRE,参考 了–lindabell的博文“ubuntu怎么安装JRE”进行; 7. 安装BLT:sudo apt-get install blt,提示安装进行并完成。重新检查./configure,根据提示直到提示需要的都ok: 8. make成功后,可以直接用omnetpp进入IDE界面(图像界面)。 9. 安装sumo,也使用./configure 检查配置情况。参考以下博文:“SUMO仿真快速入门系列一:Ubuntu 12.04下安装SUMO”。 10. PROJ也是需要预装的模块。再次./configure 无差错后进行make。 11. 正常编译后可以用sumo测试软件是否正常(会有版本提示,如果需要图形界面,则使用sumo-gui)。 12. 安装veins-3a3。先在选定的文件夹下解压,然后启动Omnetpp,载入project后Build all(具体细节在Car2x 网站上有说明)。

修改putty非常暗的注释字体颜色

转载自http://m.blog.csdn.net/blog/astrotycoon/9729961 个人很喜欢使用putty,不但小巧,也很喜欢他的默认配色方案。唯一美中不足的就是它的默认注释颜色,很暗淡,大白天有时根本看不清。 上网查了查,终于知道可以通过vim的hi(highlight)命令改变。 以下是vim不同关键字字体颜色修改方法 修改字符串颜色 hi String ctermfg =darkred 修改类型颜色 hi Type ctermfg =yellow 修改数字颜色 hi Number ctermfg =darkblue 修改常量颜色 hi Constant ctermfg =blue 修改声明颜色 hi Statement ctermfg =darkyellow 通过hi Comment ctermfg=blue后就清晰多啦!

altium中遇到的一些问题

1. 在原理图界面,编译工程,然后点击design->nelist for project-> protel生成网表 新建PCB文件,在PCB界面,点击design import changes from XXX,即可生成PCB 在生成过程中如果产生“failed to add class member”的错误,可以通过设置消除 点击project->project option->class generation(页面),如下图所示 去掉5个class的勾,即可,就是所有的Component Classes选项下东西都不选。 2. 每次修改原理图之后都要保存,然后才会在PCB更新的时候有效,PCB更新时应该是自动生成了NetList 3.在绘制某个器件封装时,有时候器件引脚会非常近,已至于出现规则错误,这时候需要修改规则,保证正确通过 例如设置第一个对象为指定器件引脚,第二个对象为器件本身,容限设置成0即可规避错误 4. 在移动某个元器件或者某段走线时,有时候不需要贴靠,这时只需要按住CTRL就能自由移动而不带贴靠了 5、出现Match Manually选项,最后出现Unknown Pin,是因为现在pcb中已经有了那些pin了。可以这样。 Design—-NelList——Edit Nets 然后删除所有的Nets In Class即可。 6 按快捷键 Shift + S 进入单层显示模式, 再按+或-在各层切换,或者按*在顶层和底层切换, 再按 Shift + S 回到原来的复合状态。 7 还要注意这些:芯片不用的输入端口要接地;过孔尽量不要打在焊盘上

解决一例监控摄像图像发绿的问题

自己家门口的监控摄像机在我调完镜头焦距之后,画面突然发绿,非常非常绿…… 在采集软件里调整白平衡,效果也是很糟糕。画面看起来比较“正常”的时候,画面就基本成了黑白了。 回想只是在调整焦距的时候,在断电的情况下用强光手电的最低档照了照CCD,也不至于把CCD烧出问题吧……我觉得CCD这玩意在断电而且又没有镜头的情况下,单纯用强光照一下,不会出什么问题的。 信号线根本没问题啊,调镜头的时候也没有碰到信号线。 把信号线直接插电视上看看,还是一片大绿,说明不是采集的问题。 突然想起来,这个摄像头内置自动白平衡…… 于是断电,再给电,好了……(就是硬复位一下嘛) 怎么一个垃圾形容得了哦……