科技新闻

“宇宙时钟”脉冲星太空定位精度达5公里

旧时模样 提交于 2020-03-01 05:42:11
据美国国家航空航天局(NASA)官方网站近日消息称,该机构的科学家展示了用卫星定位原理为飞船导航的能力,并实现了精度5公里之内的定位。其所用的信号源不是通常的人造地球卫星,而是数千甚至数万光年外精准的脉冲星。 卫星定位导航为地球上人们的出行提供了极大的便利,但在深空航行中,飞船面临的是超长的距离、匮乏的地标以及无法与地球通信的困境,深空的复杂环境也让太空导航变得不可想象。于是NASA科学家们才想到利用脉冲星发出的X射线——以恒定速度旋转的脉冲星,信号极其稳定、误差很小,几乎可视作“宇宙时钟”。 脉冲星本就是科学家不会放过的“天然太空实验室”,它实际上是快速旋转的中子星,属于大质量恒星死亡后留下的残骸,也是宇宙中密度最高的天体之一。脉冲星如同飞轮般高速旋转,有的甚至可以达到每秒700多圈,旋转过程中,其磁场形成强烈的电波向外界辐射,对观测者来说,就像周期性的脉冲信号。 此次,NASA戈达德航天中心发布公告称,已利用国际空间站搭载的中子星观测设备对太空导航系统进行了测试。团队成员“借用”4颗毫秒脉冲星,由空间站的设备接收其信号,据此计算自身位置。在为期两天的实验中,该导航系统成功完成预定目标,显示出可全自动运作的能力,其精度达到16公里以内,最高精度达5公里左右。 团队将进一步优化系统,并于今年晚些时候再次实验,最终开发出高精度的全自动太空导航设备。其一旦投入使用

rabbitmq的概念及作用

a 夏天 提交于 2020-03-01 05:00:12
基本概念 Broker 容器: 它提供一种传输服务,它的角色就是维护一条从生产者到消费者的路线,保证数据能按照指定的方式进行传输, 关系 “exchange”接收发布应用程序发送的消息,并根据一定的规则将这些消息路由到“消息队列”。 “message queue”存储消息,直到这些消息被消费者安全处理完为止。 “binding”定义了exchange和message queue之间的关联,提供路由规则。 Exchange 和 Routing_Key 交换器,根据类型自带规则,一般和Queue配合。 Exchange的类型表格: 类型 名称xxxxxxxxx 描述 Direct Exchange 直接匹配 通过Exchange名称+RountingKey来发送与接收消息. Fanout Exchange 广播订阅 向所有的消费者发布消息,但是只有消费者将队列绑定到该路由器才能收到消息,忽略Routing Key. Topic Exchange 主题订阅 根据Routing_Key的规则匹配消息,可以使用通配符: * 匹配任意单词 # 匹配单个或多个单词 Headers Exchange 消息头订阅 用的不多,略 Queue 队列,也就是消息载体 Queue 和 AnonymousQueue 的区别 都是Queue的2种实现。 Queue默认值: durable : true #

RocketMQ学习笔记(十)

蓝咒 提交于 2020-03-01 04:08:23
特性(features) 1 订阅与发布 消息的发布是指某个生产者向某个topic发送消息;消息的订阅是指某个消费者关注了某个topic中带有某些tag的消息,进而从该topic消费数据。 2 消息顺序 消息有序指的是一类消息消费时,能按照发送的顺序来消费。例如:一个订单产生了三条消息分别是订单创建、订单付款、订单完成。消费时要按照这个顺序消费才能有意义,但是同时订单之间是可以并行消费的。RocketMQ可以严格的保证消息有序。 顺序消息分为全局顺序消息与分区顺序消息,全局顺序是指某个Topic下的所有消息都要保证顺序;部分顺序消息只要保证每一组消息被顺序消费即可。 全局顺序 对于指定的一个 Topic,所有消息按照严格的先入先出(FIFO)的顺序进行发布和消费。 适用场景:性能要求不高,所有的消息严格按照 FIFO 原则进行消息发布和消费的场景 分区顺序 对于指定的一个 Topic,所有消息根据 sharding key 进行区块分区。 同一个分区内的消息按照严格的 FIFO 顺序进行发布和消费。 Sharding key 是顺序消息中用来区分不同分区的关键字段,和普通消息的 Key 是完全不同的概念。 适用场景:性能要求高,以 sharding key 作为分区字段,在同一个区块中严格的按照 FIFO 原则进行消息发布和消费的场景。 3 消息过滤

“Cache-control”常见的取值有private、no-cache、max-age、must-revalidate等

送分小仙女□ 提交于 2020-03-01 03:27:20
网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况: (1) 打开新窗口 如果指定cache-control的值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如: Cache-control: max-age=5 表示当访问此网页后的5秒内再次访问不会去服务器 (2) 在地址栏回车 如果值为private或must-revalidate(和网上说的不一样),则只有第一次访问时会访问服务器,以后就不再访问。如果值为no-cache,那么每次都会访问。如果值为max-age,则在过期之前不会重复访问。 (3) 按后退按扭 如果值为private、must-revalidate、max-age,则不会重访问,而如果为no-cache,则每次都重复访问 (4) 按刷新按扭 无论为何值,都会重复访问 当指定Cache-control值为“no-cache”时,访问此页面不会在Internet临时文章夹留下页面备份。 另外,通过指定“Expires”值也会影响到缓存。例如

citrix 路径遍历 rce漏洞(CVE-2019-19781)

别来无恙 提交于 2020-03-01 02:54:12
漏洞描述 Citrix旗下多款交付控制器和网关存在RCE漏洞,攻击者在无需身份验证的情况下就可执行任意命令。根据其他安全网站的说法,这个RCE漏洞会有一个标记漏洞(其中之一的标记),即本次报道的Citrx路径遍历漏洞(CVE-2019-19781)。Citrx路径遍历漏洞(CVE-2019-19781)利用方式的PoC已被公开。该漏洞利用复杂性低,且无权限要求,攻击者只能遍历vpns文件夹,但攻击者可能利用Citrx路径遍历漏洞进行RCE漏洞试探,从而发起进一步精准攻击。 影响范围 Citrix NetScaler ADC and NetScaler Gateway version 10.5,Citrix ADC and NetScaler Gateway version 11.1 , 12.0 , 12.1 ,Citrix ADC and Citrix Gateway version 13.0 漏洞检测方法 根据此次公开的PoC显示,该洞目录遍历被限制子在vpns文件夹下,任意用户可通过HTTP请求直接访问该目录下的文件。 https://xx.xx.xx.xx/vpn/../vpns/services.html https://xx.xx.xx.xx/vpn/../vpns/smb.conf 如果没有修复的话的会返回 http 200 通过fofa搜索 title=

SetWindowsHookEx的用法

馋奶兔 提交于 2020-03-01 02:46:21
HOOK钩子详细介绍 基本概念 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监 视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理 window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有 到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强 制结束消息的传递。 运行机制 1、钩子链表和钩子子程: 每一个Hook都有一个与之相关联的指针列表,称之为钩子链表,由系统来维护。这个列表的指针 指向指定的,应用程 序定义的,被Hook子程调用的回调函数,也就是该钩子的各个处理子程。当与指定的Hook类型关联的消息发生时,系统就把这个消息传递到Hook子程。 一些Hook子程可以只监视消息,或者修改消息,或者停止消息的前进,避免这些消息传递到下一个Hook子程或者目的窗口。最近安装的钩子放在链的开始, 而最早安装的钩子放在最后,也就是后加入的先获得控制权。 Windows 并不要求钩子子程的卸载顺序一定得和安装顺序相反。每当有一个钩子被卸载,Windows 便释放其占用的内存,并更新整个Hook链表

Redis——5种数据结构底层实现原理

放肆的年华 提交于 2020-03-01 01:51:32
目录 一、Redis 简介 Redis 的优点 Redis 的安装 测试本地 Redis 性能 二、Redis 五种基本数据结构 1)字符串 string SDS 与 C 字符串的区别 对字符串的基本操作 2)列表 list 链表的基本操作 3)字典 hash 渐进式 rehash 扩缩容的条件 字典的基本操作 4)集合 set 集合 set 的基本使用 5)有序列表 zset 有序列表 zset 基础操作 一、Redis 简介 "Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker." —— Redis是一个开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。 (摘自官网) Redis 是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的 Web 应用程序。 Redis 也被作者戏称为 数据结构服务器 ,这意味着使用者可以通过一些命令,基于带有 TCP 套接字的简单 服务器-客户端 协议来访问一组 可变数据结构 。 (在 Redis 中都采用键值对的方式,只不过对应的数据结构不一样罢了) Redis 的优点 以下是 Redis 的一些优点: 异常快 -

PHP5 SOAP调用原理及实现过程

你离开我真会死。 提交于 2020-03-01 01:46:03
本文以某公司iPhone 6手机预约接口开发为例,介绍PHP5下SOAP调用的实现过程。 一、基础概念 SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例; SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。 WSDL(Web Service Description Language)就是描述XML Web服务的标准XML格式,WSDL由Ariba、Intel、IBM和微软等开发商提出。它用一种和具体语言无关的抽象方式定义了给定Web服务收发的有关操作和消息。就其定义来说,你还不能把WSDL当作一种对象接口定义语言,例如,CORBA或COM等应用程序体系结构就会用到对象接口定义语言。 WSDL保持协议中立,但它确实内建了绑定SOAP的支持,从而同SOAP建立了不可分割的联系。所以,当我在这篇文章中讨论WSDL的时候,我会假定你把SOAP作为了你的通讯协议。

Qt MFC混合编程详细介绍与代码示例

匆匆过客 提交于 2020-03-01 01:14:45
在用Qt做客户端时,如果项目突然需要用到一些COM,MFC dll等,这些玩意儿在Qt可能无法调用,又不想用MFC做界面,那么是否可以Qt, MFC一起使用呢? 这种解决方案是存在的,Qt是一套界面库,把Qt当做一套常规的SDK, 在MFC项目中包含Qt的头文件,lib,dll,这样就可以把Qt嵌套在MFC中使用,问题又来了,MFC有自己的消息映射机制,Qt有自己的信号槽,在一起使用,那么该遵循谁的标准呢? 下面介绍一种Qt, MFC混合编程的例子。用MFC作为程序起点,Qt做界面,在程序中截断MFC的消息循环,主要使用Qt的消息循环。 新建一个MFC单文档项目(或者对话框项目),我的项目名字TestDemo,如果MFC程序运行顺序不太熟悉的可能不太好看懂。大致从theApp--->InitInstance--->Run等流程要很熟悉。另外要包含Qt的头文件,lib库,dll。 项目要点如下: 1 在TestDemo.cpp 自定义一个Windows消息,用于发送到消息队列,启动Qt界面 //自定义消息,MFC调用Qt界面 #define MainUI WM_USER + 1000 来源: CSDN 作者: 令狐掌门 链接: https://blog.csdn.net/yao_hou/article/details/104580887

【MongoDB】MongoDB-Change Streams

折月煮酒 提交于 2020-03-01 00:34:13
前言 Change Stream是从mongodb3.6版本开始支持的一种新特性,是mongodb向应用发布数据变更的一种方式,即数据库中有任何数据变化,应用端都可以得到通知,类似于触发器的概念 方案思路 MongoClient去订阅mongodb数据库中某张表最新事件变化,类似于以事件驱动机制对collection变化做监听,化主动为被动,只需要被动等待collection变化消息 Change Stream 与 Tailing Oplog 对比,参考: http://www.mongoing.com/archives/29921 Java版本demo public class MongodbStreamResumeToken { /** * 用于模拟断点续传的存储,后期可以存储redis缓存中 */ private HashMap hashMap = new HashMap(); public MongoDatabase getDatabase(){ MongoDatabase database = null; MongoClient mongoClient = null; // MongoCredential credential = MongoCredential.createScramSha1Credential("userName","source","password