• 关于 事件案例 的搜索结果

问题

DATAV能否添加在线百度地图

锅巴蓝鲸鱼 2019-12-01 20:05:23 2288 浏览量 回答数 4

回答

这个网站是分页展示的,如果是一页超过屏幕高度,肯定会出现滚动条的,否则无法阅读.这种效果叫Slider(水平或者垂直的移动相片墙)可以参考http://www.jssor.com/demos/vertical-slider.html或者 有安装案例http://bxslider.com/examples/vertical-slideshow然后加入鼠标事件捕捉(禁用默认的事件)

杨冬芳 2019-12-02 02:50:42 0 浏览量 回答数 0

问题

IT服务管理系统? 400 报错

爱吃鱼的程序员 2020-06-04 11:55:04 3 浏览量 回答数 1

试用中心

为您提供0门槛上云实践机会,企业用户最高免费12个月

问题

angularjs 如何在路由切换时发起ajax? 400 报错

爱吃鱼的程序员 2020-06-03 15:46:53 1 浏览量 回答数 1

回答

根据题猪提供的测试案例调试了下, 发现 iSlider 无法捕获到iframe中的 touchmove事件。 如果要解决上述问题确实比较蛋疼,得在 iframe中监听 touchmove事件,然后在合适的时机(页面滑到底部/顶部)告诉父级页面,执行翻页操作(这种方法太 ugly 啦~)。如果你可以保证你的的 iframe不会出现滚动条,或者即使出现也不让用户滚动的话,那么你可以给iframe一个属性值pointer-events: none;,这是最简单的解决问题的方式(不完美~)。另外,我决定比较好的方案是采用 ajax 请求的方式来获取 iframe 中的内容,然后填充到一个容器中,这样就不存在上述问题了。

杨冬芳 2019-12-02 02:30:59 0 浏览量 回答数 0

回答

根据题猪提供的测试案例调试了下, 发现 iSlider 无法捕获到iframe中的 touchmove事件。如果要解决上述问题确实比较蛋疼,得在 iframe中监听 touchmove事件,然后在合适的时机(页面滑到底部/顶部)告诉父级页面,执行翻页操作(这种方法太 ugly 啦~)。如果你可以保证你的的 iframe不会出现滚动条,或者即使出现也不让用户滚动的话,那么你可以给iframe一个属性值pointer-events: none;,这是最简单的解决问题的方式(不完美~)。另外,我决定比较好的方案是采用 ajax 请求的方式来获取 iframe 中的内容,然后填充到一个容器中,这样就不存在上述问题了。

a123456678 2019-12-02 02:25:19 0 浏览量 回答数 0

回答

事件冒泡执行过程:从最具体的的元素(你单击的那个元素)开始向上开始冒泡,下面的案例的顺序是:content > wrap 事件捕获执行过程:从最不具体的元素(最外面的那个盒子)开始向里面冒泡,下面的案例的顺序是:wrap > content (addEventListener第三个参数写的是false, 默认为false) window.onload = function(){ var wrap= document.getElementById("wrap"); var content= document.getElementById("content"); wrap.addEventListener("click", function(){ console.log("我是wrap"); }, false) content.addEventListener("click", function(){ console.log("我是content"); }) } 运行结果:我是content      我是wrap (addEventListener第三个参数写的是true, 默认为false) window.onload = function(){ var wrap= document.getElementById("wrap"); var content= document.getElementById("content"); wrap.addEventListener("click", function(){ console.log("我是wrap"); }, true) content.addEventListener("click", function(){ console.log("我是content"); }) } 运行结果:我是wrap      我是content 第三个参数写的是true,则按照事件捕获的执行顺序进行。

珍宝珠 2020-02-14 14:53:26 0 浏览量 回答数 0

回答

回 1楼钉钉-赤司的帖子 我还想了解一下  是否需要创建团队是否可以设置  如果可以设置  在哪里设置呢  ? ------------------------- Re应用序列号是根据什么规则生成的 如果需要企业输入isv的应用序列号  是否是需要开发回调函数的  --  g.“校验序列号”事件,在这里做校验  是否客户输入的序列号是否正确 ------------------------- 回 3楼大海常心的帖子 官网的demo没有  我这边开发  g.“校验序列号”事件回调的开发案例  也没有说怎么测试

大海常心 2019-12-02 02:31:42 0 浏览量 回答数 0

回答

本文通过实践案例为您介绍云监控如何利用MNS消息队列实现自动化处理ECS状态变化事件。 背景信息 阿里云ECS在已有的系统事件的基础上,通过云监控新发布了状态变化类事件和抢占型实例的中断通知事件。每当ECS实例的状态发生变化的时候,都会触发一条ECS实例状态变化事件。这种变化包括您在控制台/OpenAPI/SDK操作导致的变化,也包括弹性伸缩或欠费等原因而自动触发的变化,还包括因为系统异常而触发的变化。 云监控以前发布的系统事件,主要针对告警后人工介入的场景,而这次新发布的事件属于正常类的信息通知,适合自动化的审计运维等场景。为了自动化处理ECS状态变化事件,云监控提供了两种主要途径:一种是通过函数计算,另一种是通过MNS消息队列。本文将为您介绍利用MNS消息队列自动化处理ECS事件的三种最佳实践。 自动化处理ECS状态变化事件的准备工作 创建消息队列 登录MNS控制台。 在队列列表页面,选择地域,单击右上角的创建队列,进入新建队列页面。 输入队列的名称(例如“ecs-cms-event”)等信息,单击确认即可完成创建消息队列。 创建事件报警规则 登录云监控控制台。 单击左侧导航栏中的事件监控,进入事件查询页面 单击报警规则页签,然后单击右上角的创建事件报警,弹出创建/修改事件报警对话框。 在基本信息区域,填写报警规则名称,例如如“ecs-test-rule”。 设置事件报警规则:选择事件类型为系统事件。 产品类型、事件等级、事件名称:产品类型选择云服务器ECS,事件类型选择StatusNotification,其余按照实际情况填写。 资源范围:选择全部资源时,任何资源发生相关事件,都会按照配置发送通知;选择应用分组时,只有指定分组内的资源发生相关事件时,才会发送通知。 在报警方式中,选择消息队列,然后选择地域和队列(例如ecs-cms-event)。 完成以上设置后,单击确定按钮即可完成创建事件报警规则。 安装Python依赖 本文所有的代码均使用Python 3.6测试通过,您也可以使用Java等其他编程语言。 请使用Pypi安装以下Python依赖: aliyun-python-sdk-core-v3>=2.12.1 aliyun-python-sdk-ecs>=4.16.0 aliyun-mns>=1.1.5 自动化处理ECS状态变化事件的实施步骤 云监控会把云服务器ECS所有的状态变化事件都投递到MNS里面,接下来我们需要通过编写代码从MNS获取消息并进行消息处理。 实践一:对所有ECS的创建和释放事件进行记录 目前ECS控制台无法查询已经释放的实例。如果您有查询需求,可以通过ECS状态变化事件把所有ECS的生命周期记录在自己的数据库或者日志里。每当创建ECS时,会首先发送一个Pending事件,每当释放ECS时,会最后发送一个Deleted事件。我们需要对这两种事件进行记录。 编辑一个Conf文件。需包含mns的endpoint(可以登录MNS的控制台,在队列列表页,单击获取Endpoint得到)、阿里云的access key和secrect、region id(例如cn-beijing)以及mns queue的名字。 class Conf: endpoint = 'http:// .mns. .aliyuncs.com/' access_key = '<access_key>' access_key_secret = '<access_key_secrect>' region_id = 'cn-beijing' queue_name = 'test' vsever_group_id = '<your_vserver_group_id>' 使用MNS的SDK编写一个MNS Client用来获取MNS消息。 -- coding: utf-8 -- import json from mns.mns_exception import MNSExceptionBase import logging from mns.account import Account from . import Conf class MNSClient(object): def init(self): self.account = Account(Conf.endpoint, Conf.access_key, Conf.access_key_secret) self.queue_name = Conf.queue_name self.listeners = dict() def regist_listener(self, listener, eventname='Instance:StateChange'): if eventname in self.listeners.keys(): self.listeners.get(eventname).append(listener) else: self.listeners[eventname] = [listener] def run(self): queue = self.account.get_queue(self.queue_name) while True: try: message = queue.receive_message(wait_seconds=5) event = json.loads(message.message_body) if event['name'] in self.listeners: for listener in self.listeners.get(event['name']): listener.process(event) queue.delete_message(receipt_handle=message.receipt_handle) except MNSExceptionBase as e: if e.type == 'QueueNotExist': logging.error('Queue %s not exist, please create queue before receive message.', self.queue_name) else: logging.error('No Message, continue waiting') class BasicListener(object): def process(self, event): pass 上述代码只是对MNS消息进行拉取,调用Listener消费消息之后删除消息,后面的实践也会用到。 注册一个Listener进消费指定事件。这个简单的Listener判断收到Pending和Deleted事件时,打印一行日志。 # -- coding: utf-8 -- import logging from .mns_client import BasicListener class ListenerLog(BasicListener): def process(self, event): state = event['content']['state'] resource_id = event['content']['resourceId'] if state == 'Panding': logging.info(f'The instance {resource_id} state is {state}') elif state == 'Deleted': logging.info(f'The instance {resource_id} state is {state}') Main函数可以这么写: mns_client = MNSClient() mns_client.regist_listener(ListenerLog()) mns_client.run() 实际生产环境下,可能需要把事件存储在数据库里,或者利用SLS日志服务,方便后期的搜索和审计。 实践二:ECS的关机自动重启 在某些场景下,ECS会非预期的关机,您可能需要自动重启已经关机的ECS。 为了实现这一目的,我们复用实践一里面的MNS Client,添加一个新的Listener。当收到Stopped事件的时候,对该ECS执行一个Start命令。 -- coding: utf-8 -- import logging from aliyunsdkecs.request.v20140526 import StartInstanceRequest from aliyunsdkcore.client import AcsClient from .mns_client import BasicListener from .config import Conf class ECSClient(object): def init(self, acs_client): self.client = acs_client # 启动ECS实例 def start_instance(self, instance_id): logging.info(f'Start instance {instance_id} ...') request = StartInstanceRequest.StartInstanceRequest() request.set_accept_format('json') request.set_InstanceId(instance_id) self.client.do_action_with_exception(request) class ListenerStart(BasicListener): def init(self): acs_client = AcsClient(Conf.access_key, Conf.access_key_secret, Conf.region_id) self.ecs_client = ECSClient(acs_client) def process(self, event): detail = event['content'] instance_id = detail['resourceId'] if detail['state'] == 'Stopped': self.ecs_client.start_instance(instance_id) 在实际生产环境下,执行完Start命令后,可能还需要继续接收后续的Starting/Running/Stopped等事件,再配合计时器和计数器,进行Start成功或失败之后的处理。 实践三:抢占型实例释放前,自动从SLB移除 抢占型实例在释放之前五分钟左右,会发出释放告警事件,您可以利用这短暂的时间运行一些业务不中断的逻辑。例如,主动从SLB的后端服务器中去掉这台即将被释放的抢占型实例,而不是被动等待实例释放后SLB的自动处理。 我们还是复用实践一的MNS Client,添加一个新的Listener,当收到抢占型实例的释放告警时,调用SLB的SDK。 -- coding: utf-8 -- from aliyunsdkcore.client import AcsClient from aliyunsdkcore.request import CommonRequest from .mns_client import BasicListener from .config import Conf class SLBClient(object): def init(self): self.client = AcsClient(Conf.access_key, Conf.access_key_secret, Conf.region_id) self.request = CommonRequest() self.request.set_method('POST') self.request.set_accept_format('json') self.request.set_version('2014-05-15') self.request.set_domain('slb.aliyuncs.com') self.request.add_query_param('RegionId', Conf.region_id) def remove_vserver_group_backend_servers(self, vserver_group_id, instance_id): self.request.set_action_name('RemoveVServerGroupBackendServers') self.request.add_query_param('VServerGroupId', vserver_group_id) self.request.add_query_param('BackendServers', "[{'ServerId':'" + instance_id + "','Port':'80','Weight':'100'}]") response = self.client.do_action_with_exception(self.request) return str(response, encoding='utf-8') class ListenerSLB(BasicListener): def init(self, vsever_group_id): self.slb_caller = SLBClient() self.vsever_group_id = Conf.vsever_group_id def process(self, event): detail = event['content'] instance_id = detail['instanceId'] if detail['action'] == 'delete': self.slb_caller.remove_vserver_group_backend_servers(self.vsever_group_id, instance_id) 注意 抢占型实例释放告警的event name与前面不同,应该是“Instance:PreemptibleInstanceInterruption”, mns_client.regist_listener(ListenerSLB(Conf.vsever_group_id), 'Instance:PreemptibleInstanceInterruption') 在实际生产环境下,您可能需要再申请一台新的抢占型实例,挂载到SLB上,来保证服务能力。

1934890530796658 2020-03-25 19:15:43 0 浏览量 回答数 0

问题

比较Apache Hadoop生态系统中不同的文件格式和存储引擎的性能

anrui2016 2019-12-01 22:03:39 2706 浏览量 回答数 0

回答

对于页面加载时间的测试,简单的需求(仅仅是看看请求时间消耗分布)可以通过开发者工具或者Http Watch了解,但如果是想对页面加载进行优化,进行深入了解的(例如:渲染过程中的CPU开销、网络传输时间与客户端渲染时间的分别耗时、世界同类型站点响应排名),那么可以使用dynaTrace AJAX Edition使用并不复杂,启动浏览器,访问一遍希望了解的页面,针对每一个页面,dynaTrace AJAX Edition都会提供如下信息:1)Summary可以选择和各类型的站点进行性能排名PK,例如alexa排名前1000、500、100的站点、新闻站点、购物网站,了解我们站点在这类型网站中的各项性能指标排名,例如默认的和最佳范例比较,可以看到,综合排名来说,案例业务系统算是A级,超越了96%,缓存等级、网络等级、javascript等级都处于A级,服务响应等级处于B级,顺便说下,排名数据是可以在线更新的。也还可以看到各种加载时间指标的排名情况、服务端时间与客户端时间消耗的排名情况、网络消耗时间排名,以及前面所说指标的等级信息:也还可以看到各种加载时间指标的排名情况、服务端时间与客户端时间消耗的排名情况、网络消耗时间排名,以及前面所说指标的等级信息:2)caching可以看到浏览器缓存利用情况,下面的例子里面等级只能算E,并提示102个静态请求其中97个影响了等级排名列表里面可以看到,所有资源都没有使用expires标记这里也需要注意,post类型的请求,浏览器一般不启用本地缓存,对于静态内容,web服务器默认情况下不会开启expires标记的支持3)network从这里可以看到一些有助于减少网络资源开销的信息,例如4XX、5XX的资源请求又例如图片资源过大、css文件和js文件过大过多的问题,如下图在建议进行图片、css、js文件合并,并估算合并后能够因此带来多少的响应性能提升:又例如图片资源过大、css文件和js文件过大过多的问题,如下图在建议进行图片、css、js文件合并,并估算合并后能够因此带来多少的响应性能提升:4)server-side:列出了所有资源的总响应时间、其中服务器部分的时间,并显示了这些资源的体积,超过200ms的用了红色底色标注5)timeline:  时间轴,按照时间轴显示会话过去页面的每个时间点对应的事件,包括CPU占用(可惜不显示指标值)、javascript时间、类型的呈现、网络上的时间消耗、客户端事件信息。例如下面的监控信息里面可以看到,网络的时间消耗主要是HTML资源,如果需要对细节部分浏览的话,用左键可以划出一个放大的区间,把时间线定位到相应的红色部分,就显示了那个时间点网络资源出现消耗的原因,是两个gif例如下面的监控信息里面可以看到,网络的时间消耗主要是HTML资源,如果需要对细节部分浏览的话,用左键可以划出一个放大的区间,把时间线定位到相应的红色部分,就显示了那个时间点网络资源出现消耗的原因,是两个gif同理,对于javascript,占较长时间的部分是浅黄色表示的“load”,双击时间块可以查看其时间消耗详情以及具体的函数代码:同理,对于javascript,占较长时间的部分是浅黄色表示的“load”,双击时间块可以查看其时间消耗详情以及具体的函数代码:对于rendering,看其中的这一段,双击它:对于rendering,看其中的这一段,双击它:可以看到渲染事件的发生情况,了解css表达式带来的性能问题是否严重可以看到渲染事件的发生情况,了解css表达式带来的性能问题是否严重 可以看到渲染事件的发生情况,了解css表达式带来的性能问题是否严重 可以看到渲染事件的发生情况,了解css表达式带来的性能问题是否严重6)KPI's选项卡:各项指标消耗统计  first impression 视觉上的响应时间 , onload 加载消耗的时间 , total load time 完成加载的时间  requests 请求数,XHR XMLHTTPRequest数

小旋风柴进 2019-12-02 02:25:27 0 浏览量 回答数 0

问题

【大咖问答】对话阿里云 MVP刘洪峰之二――阿里云物联网平台属性、事件,服务详解

云起君 2019-12-01 21:58:19 732 浏览量 回答数 11

回答

前言 这篇文章适合所有的 C# 开发新手、老鸟以及想准备学习开发 C# 的程序猿。.NET Core是一个开源通用的开发框架,支持跨平台, 阿里云函数计算推出了 dotnetcore2.1 runtime, 使用 C# 编写 serverless 函数, 详情见官方文档:C# 函数入口. 在官方文档描述中,我们获知阿里云函数计算可以很好支持 asp.net core 的 Applicaiton: ASP.NET Core Web API ASP.NET Core Web App ASP.NET Core Web App (Model-View-Controller) 在介绍 Serverless Web 开发新模式之前,我们先了解下将 C# WebApi/WebApp Serverless 化的好处: 无需采购和管理服务器等基础设施 弹性伸缩,动态扩容 免运维, 极大降低人力成本 按需付费,财务成本低 本文以部署一个完善的 asp.net core 工程 Blogifier 为例,在函数计算环境中为例,向您讲解如何使用阿里云函数计算快速构建或移植基于 asp.net core 开发的 WebApi/WebApp ,通过本文,您将会了解以下内容: 案例概览 传统服务器架构 VS Serverless架构 Serverless架构详解 函数计算运行 Asp.net core App 原理 案例开发配置步骤 案例概览 在本教程中,我们讲解如何利用函数计算一步一步来构建 Web 的 Server 端,该案例是把一个 asp.net core 工程Blogifier 部署到函数计算,本文旨在展示函数计算做 Web Backend 能力,具体表现为以下几点: 完善的 ASP.NET Core Web 系统迁移到 FC 的成本不高 FC 打通了专有网络 VPC 功能,用户的函数可以配置访问专有网络的云资源,比如本案例中 NAS 案例体验入口: http://dotnet.mofangdegisn.cn/ https://dotnet.mofangdegisn.cn/ 传统服务器架构 VS Serverless架构 正常来说,用户开发 Server 端服务,常常面临开发效率,运维成本高,机器资源弹性伸缩等痛点,而使用 Serverless 架构可以很好的解决上述问题。下面是传统架构和 Serverless 架构的对比: image 阿里云函数计算是一个事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,并提供日志查询,性能监控,报警等功能。借助于函数计算,您可以快速构建任何类型的应用和服务,无需管理和运维。 Serverless 架构详解 image.png 从上面的示例图中,整体架构十分简单明了, 用 FC 替代了 Web 服务器,但是换来的是免运维,弹性扩容,按需付费等一系列优点 函数计算运行 Asp.net Core App 原理 Asp.net Core App 运行在服务器上 image A http request to your website will go through IIS/Nginx, then Kestrel, and finally will be passed on to ASP.NET Core Asp.net Core App 运行在函数计算上 image 请求通过函数(with http trigger), 最后到达ASP.NET Core tips: 基于函数计算环境运行新建 asp.net core app 可以参考dotnet runtime HTTP 触发器的函数入口示例 在本文中,我们展示把一个现有的成熟的 asp.net core 工程低成本无缝迁移到函数计算环境。 案例开发配置步骤 准备工作 1. 创建 NAS 挂接点,配置 VPC , 具体参考函数计算nas使用示例 注:在本示例中使用 sqlite3 数据库,这种文件类型的数据库直接放置在 nas 即可,如果使用 mysql 等其他数据库, 需要创建 RDS 数据库, 配置 VPC , 具体参考通过 VPC 访问 RDS 实例 可选操作,在准备函数的 region 创建日志,用于函数的调试, 具体参考函数计算配置日志服务 创建函数 创建 Service (假设是 csharp-web), 配置准备 vpc config , nas config 和日志服务,比如案例体验的 Service 配置如下图: image 下载 asp.net core 工程,Blogifier, 用 vs 打开, debug 本地可以正常运行。 注:本地安装 dotnetcore2.1 在工程中增加入口函数,使得该工程可在函数计算执行环境运行,diff dotnet publish -c Release, 跳转到publish目录, 将相关的静态资源/可写/共享目录移动到上述配置的 NAS 的某个目录(这里假设是 www目录, 对应步骤2中的diff) dotnet publish -c Release cp -r plugins/Common/bin/Release/netcoreapp2.1/publish/* src/App/bin/Release/netcoreapp2.1/publish/ src/App/bin/Release/netcoreapp2.1/publish/ mkdir lib // 选择函数计算执行环境所需要的so, 其他的删除即可 cp runtimes/linux-x64/native/libe_sqlite3.so ./lib // 这里是传送对应的静态文件和 app.db 到 nas 中, 详情看下面的描述 rm -rf wwwroot app.db runtimes zip -r code.zip * // 最后使用这个 code.zip 创建 handler 为 App::App.FcRemoteEntrypoint::HandleRequest 函数 将 publish 目录下的 wwwroot 和 app.db 传送到 nas 的 www 目录, 可以使用 ecs 挂载 nas 传输过去, 也可以采用如下简单函数传输过去 |-- index.py |-- www 注: www目录下面有 wwwroot 和 app.db index.py代码: -- coding: utf-8 -- import logging import os def handler(event, context): os.system("mkdir -p /mnt/share/www") os.system("cp -r /code/www/* /mnt/share/www/") os.system("chmod -R 777 /mnt/share/www") print( os.system("ls -ll /mnt/share/www") ) return 'ok' 基于上述代码创一个函数 move-res-nas , 执行函数,将相关静态和共享资源移动到 NAS 的/mnt/share/www/ 目录。 注:最新版本的 Fun 工具已经支持 NAS 相关操作, 有兴趣的同学可以使用 Fun 完成 NAS, VPC 的自动生成、配置以及网站工程文件上传到 NAS 创建入口函数 blog (使用上一步骤中的 code.zip ), 给函数设置 http trigger ,类型为 anonymous , 类型都选上。给函数入口配置自定义域名(操作过程请参考:绑定自定义域名示例), 具体配置假设如下: image 注意: 绑定自定义域名之后,不用使用控制台来进行调试,就只能使用浏览器来触发函数,日志服务来进行调试。 总结 函数计算有如下优势: 无需采购和管理服务器等基础设施 专注业务逻辑的开发 提供日志查询、性能监控、报警等功能快速排查故障 以事件驱动的方式触发应用响应用户请求 毫秒级别弹性伸缩,快速实现底层扩容以应对峰值压力 按需付费。只需为实际使用的计算资源付费,适合有明显波峰波谷的用户访问场景 除了上面所列的优势,FC 可以做为 Web Backend,只需要编写一个函数实现传统 Web 服务器中的 conf 中的逻辑,就可以将一个完整的 Web 工程迁移到 FC ,从而从传统的 Web 网站运维,监控等繁琐的事务中解放出来。

1934890530796658 2020-03-27 17:30:59 0 浏览量 回答数 0

回答

由于题主没有明确表示要实现什么效果,我只好按我个人理解为本题需要实现“在到页面B后,按后退按钮,被Ajax加载内容修改过DOM的页面A能够维持最后的状态”。对于这个问题,我也没有经验,于是在研究了一大会,搞明白点了,以下就现学现卖了。想要实现预期中的效果,需要明白浏览器的实现,就是在内存中保存页面的最后状态,在从跳转后的页面返回时,直接展现保存了状态的页面。这个技术在 Firefox 里叫 Back-Forward Cache,而在 sarafi 里叫 page cache,然后很遗憾,chrome 里并未实现。以下是可供测试的案例:页A:http://www.twmagic.com/misc/cache.htm...页B:http://www.twmagic.com/misc/cache-noc...测试方法,请依次操作观察效果:载入页面后点击“Modify the DOM”,页面DOM发生了变化点击“Go to another page”,跳转到下一个页面点击浏览器的“后退”按钮在IE8、FF 15.0.1 和 Chrome 22.0.1229.79 m 测试后得知:IE8、Chrome 均无法保存A和B的最后状态(肯定了,不支持 page cache)Firefox 都保存了A和B的最后状态关于 Firefox 的 Back-Forward Cache 在什么情况下会失效,我搬点内容过来:页面注册了 unload 和 beforeunload 事件;页面设置了 "cache-control: no-store"站点是 HTTPS,并且页面至少符合以下条件:"Cache-Control: no-cache""Pragma: no-cache"设置了 "Expires: 0",或者 "Expires" 的日期比 "Date" 指定的早 (有个例外是,如果指定了"Cache-Control: max-age=",cache 依然有效);用户访问其他页面时候,当前页因为网络原因未完全加载完,比如用到了XMLHttpRequest……所以,推荐题主按FF提供的内容,让它的BF Cache失效,然后用户在后退到页面A的时候依然会触发onload事件,你读取cookie加载内容就好了。参考链接:Ajax, back button and DOM updatesHow does this ajax call persist DOM c...Issue 2879: Implement fast back

a123456678 2019-12-02 03:15:36 0 浏览量 回答数 0

回答

Kafka 是一个消息系统,原本开发自 LinkedIn,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。现在它已被多家公司作为多种类型的数据管道和消息系统使用。活动流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。活动数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。这种数据通常的处理方式是先把各种活动以日志的形式写入某种文件,然后周期性地对这些文件进行统计分析。运营数据指的是服务器的性能数据(CPU、IO 使用率、请求时间、服务日志等等数据),总的来说,运营数据的统计方法种类繁多。Kafka 专用术语Broker:Kafka 集群包含一个或多个服务器,这种服务器被称为 broker。Topic:每条发布到 Kafka 集群的消息都有一个类别,这个类别被称为 Topic。(物理上不同 Topic 的消息分开存储,逻辑上一个 Topic 的消息虽然保存于一个或多个 broker 上,但用户只需指定消息的 Topic 即可生产或消费数据而不必关心数据存于何处)。Partition:Partition 是物理上的概念,每个 Topic 包含一个或多个 Partition。Producer:负责发布消息到 Kafka broker。Consumer:消息消费者,向 Kafka broker 读取消息的客户端。Consumer Group:每个 Consumer 属于一个特定的 Consumer Group(可为每个 Consumer 指定 group name,若不指定 group name 则属于默认的 group)。Kafka 交互流程Kafka 是一个基于分布式的消息发布-订阅系统,它被设计成快速、可扩展的、持久的。与其他消息发布-订阅系统类似,Kafka 在主题当中保存消息的信息。生产者向主题写入数据,消费者从主题读取数据。由于 Kafka 的特性是支持分布式,同时也是基于分布式的,所以主题也是可以在多个节点上被分区和覆盖的。信息是一个字节数组,程序员可以在这些字节数组中存储任何对象,支持的数据格式包括 String、JSON、Avro。Kafka 通过给每一个消息绑定一个键值的方式来保证生产者可以把所有的消息发送到指定位置。属于某一个消费者群组的消费者订阅了一个主题,通过该订阅消费者可以跨节点地接收所有与该主题相关的消息,每一个消息只会发送给群组中的一个消费者,所有拥有相同键值的消息都会被确保发给这一个消费者。Kafka 设计中将每一个主题分区当作一个具有顺序排列的日志。同处于一个分区中的消息都被设置了一个唯一的偏移量。Kafka 只会保持跟踪未读消息,一旦消息被置为已读状态,Kafka 就不会再去管理它了。Kafka 的生产者负责在消息队列中对生产出来的消息保证一定时间的占有,消费者负责追踪每一个主题 (可以理解为一个日志通道) 的消息并及时获取它们。基于这样的设计,Kafka 可以在消息队列中保存大量的开销很小的数据,并且支持大量的消费者订阅。利用 Apache Kafka 系统架构的设计思路示例:网络游戏假设我们正在开发一个在线网络游戏平台,这个平台需要支持大量的在线用户实时操作,玩家在一个虚拟的世界里通过互相协作的方式一起完成每一个任务。由于游戏当中允许玩家互相交易金币、道具,我们必须确保玩家之间的诚信关系,而为了确保玩家之间的诚信及账户安全,我们需要对玩家的 IP 地址进行追踪,当出现一个长期固定 IP 地址忽然之间出现异动情况,我们要能够预警,同时,如果出现玩家所持有的金币、道具出现重大变更的情况,也要能够及时预警。此外,为了让开发组的数据工程师能够测试新的算法,我们要允许这些玩家数据进入到 Hadoop 集群,即加载这些数据到 Hadoop 集群里面。对于一个实时游戏,我们必须要做到对存储在服务器内存中的数据进行快速处理,这样可以帮助实时地发出预警等各类动作。我们的系统架设拥有多台服务器,内存中的数据包括了每一个在线玩家近 30 次访问的各类记录,包括道具、交易信息等等,并且这些数据跨服务器存储。我们的服务器拥有两个角色:首先是接受用户发起的动作,例如交易请求,其次是实时地处理用户发起的交易并根据交易信息发起必要的预警动作。为了保证快速、实时地处理数据,我们需要在每一台机器的内存中保留历史交易信息,这意味着我们必须在服务器之间传递数据,即使接收用户请求的这台机器没有该用户的交易信息。为了保证角色的松耦合,我们使用 Kafka 在服务器之间传递信息 (数据)。Kafka 特性Kafka 的几个特性非常满足我们的需求:可扩展性、数据分区、低延迟、处理大量不同消费者的能力。这个案例我们可以配置在 Kafka 中为登陆和交易配置同一个主题。由于 Kafka 支持在单一主题内的排序,而不是跨主题的排序,所以我们为了保证用户在交易前使用实际的 IP 地址登陆系统,我们采用了同一个主题来存储登陆信息和交易信息。当用户登陆或者发起交易动作后,负责接收的服务器立即发事件给 Kafka。这里我们采用用户 id 作为消息的主键,具体事件作为值。这保证了同一个用户的所有的交易信息和登陆信息被发送到 Kafka 分区。每一个事件处理服务被当作一个 Kafka 消费者来运行,所有的消费者被配置到了同一个消费者群组,这样每一台服务器从一些 Kafka 分区读取数据,一个分区的所有数据被送到同一个事件处理服务器 (可以与接收服务器不同)。当事件处理服务器从 Kafka 读取了用户交易信息,它可以把该信息加入到保存在本地内存中的历史信息列表里面,这样可以保证事件处理服务器在本地内存中调用用户的历史信息并做出预警,而不需要额外的网络或磁盘开销。图 1. 游戏设计图图 1. 游戏设计图为了多线程处理,我们为每一个事件处理服务器或者每一个核创建了一个分区。Kafka 已经在拥有 1 万个分区的集群里测试过。切换回 Kafka上面的例子听起来有点绕口:首先从游戏服务器发送信息到 Kafka,然后另一台游戏服务器的消费者从主题中读取该信息并处理它。然而,这样的设计解耦了两个角色并且允许我们管理每一个角色的各种功能。此外,这种方式不会增加负载到 Kafka。测试结果显示,即使 3 个结点组成的集群也可以处理每秒接近百万级的任务,平均每个任务从注册到消费耗时 3 毫秒。上面例子当发现一个事件可疑后,发送一个预警标志到一个新的 Kafka 主题,同样的有一个消费者服务会读取它,并将数据存入 Hadoop 集群用于进一步的数据分析。因为 Kafka 不会追踪消息的处理过程及消费者队列,所以它在消耗极小的前提下可以同时处理数千个消费者。Kafka 甚至可以处理批量级别的消费者,例如每小时唤醒一次一批睡眠的消费者来处理所有的信息。Kafka 让数据存入 Hadoop 集群变得非常简单。当拥有多个数据来源和多个数据目的地时,为每一个来源和目的地配对地编写一个单独的数据通道会导致混乱发生。Kafka 帮助 LinkedIn 规范了数据通道格式,并且允许每一个系统获取数据和写入数据各一次,这样极大地减少数据通道的复杂性和操作耗时。LinkedIn 的架构师 Jay Kreps 说:“我最初是在 2008 年完成键值对数据存储方式后开始的,我的项目是尝试运行 Hadoop,将我们的一些处理过程移动到 Hadoop 里面去。我们在这个领域几乎没有经验,花了几个星期尝试把数据导入、导出,另外一些事件花在了尝试各种各样的预测性算法使用上面,然后,我们开始了漫漫长路”。与 Flume 的区别Kafka 与 Flume 很多功能确实是重复的。以下是评估两个系统的一些建议:Kafka 是一个通用型系统。你可以有许多的生产者和消费者分享多个主题。相反地,Flume 被设计成特定用途的工作,特定地向 HDFS 和 HBase 发送出去。Flume 为了更好地为 HDFS 服务而做了特定的优化,并且与 Hadoop 的安全体系整合在了一起。基于这样的结论,Hadoop 开发商 Cloudera 推荐如果数据需要被多个应用程序消费的话,推荐使用 Kafka,如果数据只是面向 Hadoop 的,可以使用 Flume。Flume 拥有许多配置的来源 (sources) 和存储池 (sinks)。然后,Kafka 拥有的是非常小的生产者和消费者环境体系,Kafka 社区并不是非常支持这样。如果你的数据来源已经确定,不需要额外的编码,那你可以使用 Flume 提供的 sources 和 sinks,反之,如果你需要准备自己的生产者和消费者,那你需要使用 Kafka。Flume 可以在拦截器里面实时处理数据。这个特性对于过滤数据非常有用。Kafka 需要一个外部系统帮助处理数据。无论是 Kafka 或是 Flume,两个系统都可以保证不丢失数据。然后,Flume 不会复制事件。相应地,即使我们正在使用一个可以信赖的文件通道,如果 Flume agent 所在的这个节点宕机了,你会失去所有的事件访问能力直到你修复这个受损的节点。使用 Kafka 的管道特性不会有这样的问题。Flume 和 Kafka 可以一起工作的。如果你需要把流式数据从 Kafka 转移到 Hadoop,可以使用 Flume 代理 (agent),将 kafka 当作一个来源 (source),这样可以从 Kafka 读取数据到 Hadoop。你不需要去开发自己的消费者,你可以使用 Flume 与 Hadoop、HBase 相结合的特性,使用 Cloudera Manager 平台监控消费者,并且通过增加过滤器的方式处理数据。结束语综上所述,Kafka 的设计可以帮助我们解决很多架构上的问题。但是想要用好 Kafka 的高性能、低耦合、高可靠性、数据不丢失等特性,我们需要非常了解 Kafka,以及我们自身的应用系统使用场景,并不是任何环境 Kafka 都是最佳选择。

hiekay 2019-12-02 01:42:10 0 浏览量 回答数 0

问题

云服务器监控注入漏洞引发的内网沦陷

五弊三缺 2019-12-01 21:41:11 6486 浏览量 回答数 1

问题

【推荐】ECS Windows 时间跳变的处理方式是什么

boxti 2019-12-01 22:07:12 2396 浏览量 回答数 0

回答

注:注册表修改需要对 Windows 操作系统有一定了解,为了避免注册表误操作带来的操作系统问题或者可能的数据丢失,请您采用如下方式操作注册表前,务必对系统盘和数据盘创建快照以避免可能的数据丢失。 可能原因 服务器发生时间跳变的原因有如下可能 由于网络原因,服务器长时间没能和NTP server进行时间同步,导致有偏差。虚拟机在这种情况下容易出现偏差。偏差的积累会导致时间上有大的跳变。 错误的配置了NTP服务器。 服务器的系统时间被其他应用或者进程篡改。这个我们可以检查当前服务器上有没有配置计划任务,或者第三方应用有自动进行时间同步的功能。 最佳实践 为了帮助您快速解决问题,在采用如下排查方案前,您可以采用最佳实践来配置服务器。 请参考知识点 ECS Windows默认NTP服务器设置说明 ,配置正确的时间服务器,并保证到时间服务器的UDP 123端口的连通性正常。 请检查是否安装可疑的三方软件,以及是否有配置计划任务,这可能会影响篡改。请停用可疑的三方软件,删除可疑的计划任务。 排查方案 为了发现为何出现时间跳变,我们可以相应的开启Windows的审核与时间服务日志进行排查。 开启审计帮助我们监控系统事件,是否有进程修改了系统时间。 开启w32time调试日志,监控服务器与NTP服务器的同步活动。 收集系统配置信息、系统日志,安全日志进行检查。       问题发生前的配置 请在问题发生前,启用如下配置来记录各类日志。 <1> 启动审核   在客户机上,运行gpedit.msc, 展开到:本地计算机->计算机配置->Windows设置->安全设置->本地策略->审核策略 启用如下审核 审核特权使用: 成功 审核系统事件: 成功 审核进程跟踪: 成功  配置完成后,请运行gpupdate /force 生效。 <2> 配置安全日志 点击开始,运行eventvwr,右键单击”安全”,选择属性,调整安全日志的属性调整为自动存档,不要覆盖,同时增大日志最大大小为100MB。 <3> 启用w32time debug日志以管理员身份启动CMD,运行命令 w32tm /debug /enable /file:C:\windows\temp\w32time.log /size:10000000 /entries:0-300 您也可以参考微软官方Blog文档说明: https://blogs.msdn.microsoft.com/w32time/2008/02/28/configuring-the-time-service-enabling-the-debug-log/ ; 配置完上述信息后,请等待问题再次发生。 问题发生后日志收集 <1> 请收集系统基本信息 点击开始,运行msinfo32.exe,选择”文件”-> “保存”,保存成系统信息文件NFO格式。 点击开始,运行eventvwr, 选择事件查看器中系统日志和应用程序日志,右键“将所有事件另存为”保存保存成 evtx 格式    <2> 运行如下命令,导出注册表键值 reg export “HKLM\SYSTEM\CurrentControlSet\Services\W32Time” C:\w32tm.txt reg export “HKLM\Software\Policies\Microsoft\W32Time” C:\policy.txt 注:某些系统上可能没有HKLM\SOFTWARE\POLICIES\MICROSOFT\W32Time 注册表键值,这不是错误。 <3> 停止时间服务debug日志 以管理员身份启动CMD,运行命令 w32tm /debug /disable 完成上述操作后,请您将C:\w32tm.txt , C:\policy.txt, C:\windows\temp\w32time.log,导出的日志,nfo文件反馈给售后支持进一步分析。 实际案例 在时间跳变后,发现安全日志有如下ID 4616的审核日志,提示进程0x390修改的时间。     使用tasklist /svc 命令,可以看到0x390 (十进制为912)的进程为w32 time service。这对于 Windows 时间服务属正常情况,该服务以系统特权运行,定期更改系统时间。其他的系统时间更改意味着对计算机的破坏。基于此看出来时间由win 32 time 服务更改的,应该是当时时间出现了偏差,可以相应的调整对应的时间服务器。如果这里是3方程序修改的时间,这种方式会将程序名字列出来,此时可以将三方程序卸载后检查。 阅读须知 本文仅供用户使用 ECS Windows 时参考,文中引用的微软官方链接,版权归属微软。请注意文章适用的操作系统范围,以及微软 Windows 产品迭代或者文档未及时更新可能带来的问题,阿里云官方不对引用的微软官方链接内容负责。如果您对文档内容有疑问或认为文档内容有误,请及时通过文档下方的评价板块反馈给我们,我们将酌情改进修正。 如果问题还未解决,请联系售后技术支持。

KB小秘书 2019-12-02 01:27:45 0 浏览量 回答数 0

问题

【精品问答】DataV数据可视化

montos 2020-04-08 14:52:03 6 浏览量 回答数 1

问题

云服务器ECS

黄一刀 2020-04-04 04:10:42 723 浏览量 回答数 2

问题

消息服务是什么?

轩墨 2019-12-01 22:06:25 1480 浏览量 回答数 0

问题

【分享】html5 开发工具——WeX5中的各种绑定方式

小太阳1号 2019-12-01 21:25:48 4942 浏览量 回答数 3

问题

UNIX/Linux系统取证之信息采集案例

opensiem 2019-12-01 21:46:20 2034 浏览量 回答数 1

问题

【视频】前端网络(性能)监测工具 berserkJS

随歌 2019-12-01 22:06:18 11102 浏览量 回答数 0

问题

【大咖问答】对话阿里云 MVP刘洪峰—打造基于阿里云物联网平台的业务模型

云起君 2019-12-01 21:52:38 2560 浏览量 回答数 8

回答

lz 提的问题没有咋子关联咋。叫人咋个答呀?如果是抓取网页你要了解 socket 和 http 协议。 不过应该有第三方的库。######或许我没表述清楚吧...... 我的意思就是要抓取给定网页的信息。######如果是windows系统,winapi里面有访问http的接口的,取得html后,找个html解析类库即可。另外可以模拟网页上的各种输入事件,比如点击一个按钮。######好的,谢谢我试试看######如果是新手,而且使用Windows平台,直接用微软IE浏览器的COM组建Microsoft Web Browser,ieframe.dll,模拟操作直接运行js。 ######谢谢 我先看看 有不懂的还要继续请教######libcurl######libcurl很猛, 很多人用php来引用它做爬虫, c的例子要是不容易找到就找php的,反正调用原理一样的啦。######我也查到这个第三方类库很强大 但是我发现网上关于这个的讲解和案例不多 请问你有比较好的学习资源么 谢谢..祝新年快乐######去我空间看看,我们有这个软件######这个不就是爬虫吗,就看你用什么工具了,尤其是对动态网页的解析,如果是静态网页的话,python吧,半天搞定######@syj52417 如果真的是想c++的话,单单是获取网页数据,这个好像比较单一吧,起码要前端后端数据库等等######谢谢回复 我知道python搞这个很在行 很简单 我是因为学完c++之后对这个东西感兴趣所以才会想到用c++去做 那么你认为,学完c++之后做一个什么样的项目比较合适? =========================

kun坤 2020-06-06 00:43:43 0 浏览量 回答数 0

问题

“雷峰互联网安全沙龙”第一期活动纪要

yundun1 2019-12-01 21:50:57 7583 浏览量 回答数 3

问题

客户案例:《玉契OL》与安全强防护的那些事儿

nono20011908 2019-12-01 22:00:37 7756 浏览量 回答数 0

回答

1、拼多多被黑产薅羊毛事件 提名理由: 2019 年 1 月 20 日,微博爆料称拼多多出现重大 Bug:从网友晒出的图片看,此次 100 元无门槛券随便领,全场通用(特殊商品除外),有效期一年。有网友表示,凌晨 3 点多被同行“喊醒”,让来拼多多“薅羊毛”,“只需支付 4 毛钱,就可以充值 100 元话费”。 拼多多回应表示:有黑灰产团伙通过一个过期的优惠券漏洞盗取数千万元平台优惠券,进行不正当牟利。针对此行为,平台已第一时间修复漏洞,并正对涉事订单进行溯源追踪。同时我们已向公安机关报案,并将积极配合相关部门对涉事黑灰产团伙予以打击。 **翻车点评:**本次事件除了反映出拼多多在研发流程上的管控问题,也侧写出了中国企业的公关之难:在拼多多公关看来,此次被薅羊毛 200 亿的谣言是有心人在造谣抹黑;在旁观者看来,此次 200 亿谣言是拼多多的营销手段。一场罗生门背后,除了要敬畏每一行代码,还要敬畏每一位用户才是。 翻车等级:★★★☆☆ 2、苹果误发 7 倍工资给开发者,随后追回 提名理由: 2019 年 9 月 4 日,一位名为 @waylybaye 的 IOS 开发者在社交平台上爆料:“苹果搞了个大事故!!给国内开发者打上上个月的钱的时候,把单位是人民币的钱当成美元打过来了!所有开发者的收入都翻了 7 倍!现在这笔 7 倍的外汇已经到账可以申报了,但我不敢动……请问这种情况怎么搞?” 9 月 5 日,苹果官方发出邮件回应结算出错。在邮件中,苹果公司称,由于合作银行德意志银行方的问题,影响了开发者 2019 年 7 月的收入。希望开发者能够配合银行退回错误的金额,另外再汇一笔正确的金额。 该开发者表示将配合苹果公司退回款项,律师表示如果主张返还的行为给中国开发者带来很大的不便,甚至造成一些损失并有证据证明,那么中国开发者可以向苹果公司主张赔偿损失。 **翻车点评:**如果是越南开发者,收入岂不是翻了 2 万多倍?如果是津巴布韦开发者,岂不是要上天? **翻车等级:**★★★☆☆ 3、李世石击败围棋 AI:怀疑电脑质量有问题 提名理由: 李世石是当今世界唯一一位曾经打败 AI 围棋程序 AlphaGo 的人类棋手,他在 2019 年宣布了正式退役。这位棋手表示:在 AI 出现之后,他意识到即使通过疯狂的努力再次成为排名第一的棋手,他也无法真正一览众山小,因为有一个实体你无法击败它。 此次退役赛,李世石选择了对战 NHN Entertainment 开发的 AI 围棋程序 HanDol,这名 AI 棋手已经打败了韩国排名前五的棋手。2019 年 12 月 18 日,退役赛首战,李世石被让两子,做好了首战告负心理准备的李世石却意外取胜,原因在于 AI 程序在对弈中出现了一个低级失误,被李世石抓住机会一举奠定胜局。赢棋后的李世石并没有表现出过多的兴奋,他甚至怀疑是这台电脑的质量没有达到应有的水平。 **翻车点评:**AI、大数据、云计算的三位一体 ABC 战略,将给未来的世界带来怎样的颠覆?也许再过几年,你看到的金翻车奖就是 AI 评选的了。 翻车等级:★★★☆☆ 4、程序员用 Null 做车牌,命中车管所漏洞吃下所有无主罚单 提名理由: Joseph Tartaro 是一位美国软件安全领域的专家,2016 年年底,Tartaro 决定要注册一块有个性的车牌。作为一名软件安全方面的专家,他有着许多技术人独有的职业癖好:希望车牌号能够与工作联系在一起。“我可以给我老婆注册一块 VOID 车牌,这样我们的车道就变成了 NULL 和 VOID 了”。 当然,这里面是有其深层含义的。Tartaro 在最近的一次 Defcon 黑客大会上说,“null”在很多编程语言中是一个文本字符串,用来表示空值或未定义的值。在很多计算机中,null 就是 void。也就是说,他跟她老婆其实是二位一体的存在,公不离婆秤不离砣,颇有点程序员式的浪漫。但很快,这个车牌就让他浪不起来了,因为 Null 命中了车管所系统漏洞,他为此收到了所有的无名罚单,总额超过 1.2 万美元。他后来坦言,初衷其实只是为了使用 Null 车牌来逃避罚单,万万没想到无名罚单却成了自己的。 延展阅读:使用 Null 做自定义车牌,成功命中车管所系统漏洞,所有未填车牌的罚单都是我的了 **翻车点评:**我在看房的时候是坚决不看 404 号门牌的,这哥们却主动给自己报空指针,果然跟那些妖艳贱货有些不同。 **翻车等级:**★★★☆☆ 5、游戏公司主程锁死服务器事件 提名理由: 2019 年 1 月 21 日,一封《告游戏行业全体同仁书》将一家创业公司 C++ 主程燕某推向舆论高潮,这篇文章指责燕某在就职深圳螃蟹网络科技有限公司 3 个月期间,出于报复心理,于游戏上线测试当天无故失踪并锁死电脑和服务器,最终导致公司开发两年的项目失败,损失惨重,创始人尹某背上百万债务开始打工之路。 1 月 24 日,燕某发表长文针对深圳市螃蟹网络科技有限公司创始人尹某的《告游戏行业全体同仁书》中提及的各项指责以及网络传言一一反驳,并表示一切法庭上见,相信法律会还一个公道。 **翻车点评:**2019 年让吃瓜群众真正学到了新闻等等再看,本次事件是典型的反转案例,从《告游戏行业全体同仁书》发布后的”程序员是如何逼死一家公司“的舆论,到后来的风向大反转,深刻地揭示了:瓜,要慢慢吃。脸,要慢慢打。 **翻车等级:**★★★★☆ 6、李彦宏被泼水 提名理由: 2019 年 7 月 3 日,百度 AI 开发者大会于北京国家会议中心举行。百度创始人、董事长兼任 CEO 李彦宏首先发表演讲。而在他正在演示 AI 自主泊车“最后一公里”时,有持矿泉水瓶的男青年冲上台,将水浇在李彦宏头上。李彦宏的白衬衫几乎湿透,他愣了一下后说:“What‘s your problem?” 随后泼水者被工作人员控制,李彦宏在掌声鼓励中说道:“大家看到在 AI 前进的道路上还是会有各种各样想不到的事情会发生。但是我们前行的决心不会改变,我们坚信 AI 会改变每一个人的生活。” **翻车点评:**在技术发展的历史上,总会出现风口过热的情况,无论是 AI 还是区块链,都存在被吹过头的现象,我们愿意看到有清醒的人为这些过热的技术降降温,但却绝对不认可目前这种方式。 翻车等级:★★★★☆ 7、62 岁程序员骚操作,翻车获刑 **提名理由: ** 现年 62 岁的大卫·廷利 (David Tinley) 来自匹兹堡附近的哈里森市,廷利为西门子在 Monroeville 的办事处工作了将近 10 年的时间,他曾接过一个为西门子公司创建管理订单的电子表格需求,电子表格包含自定义脚本,可以根据存储在其他远程文档中的当前订单更新文件的内容,从而允许公司自动化库存和订单管理。 廷利十年前在给西门子写的电子表格中植入了逻辑炸弹,它会在特定日期之后导致电子表格崩溃,于是西门子就必须再次雇佣他进行修复,每次都需要重新支付修复费用,持续时间近 3 年。最近他被抓包了,面临最高十年监禁和 25 万美元(约合人民币 172 万)的指控。 **翻车点评:**西门子居然没有人 review 代码,廷利居然忘了自己挖的坑的发作时间,60 多岁还没退休,资本主义果然罪恶,emmm… 翻车等级:★★★★☆ 8、FBI 网站被黑,数千特工信息泄露 提名理由: 在传统的好莱坞大片里,FBI 通常都是神通广大,无所不能,个个有着汤姆斯克鲁斯的脸,施瓦辛格的体格,既有拳脚功夫了得的特工,也有技术实力超群的 Nerd。从来只有他们攻破某某国家防火墙的份,但现实告诉我们,这真的只是在拍戏。 2019 年 4 月,包括 TechCrunch 等多家媒体报导,一个黑客组织黑了美国联邦调查局 FBI 的附属网站,并泄露了数千名联邦特工和执法人员的个人信息。黑客攻击了与 FBI 培训学院 National Academy Association 相关的三个网站,利用其中存在的漏洞,下载了每个服务器上的内容。随后黑客将数据发布到他们自己的网站上,并提供下载。电子表格在删除重复数据后包含大约 4 000 条独特记录,包括 FBI 特工与其它执法人员的姓名、个人和政府电子邮件地址、职位、电话号码和邮政地址等信息。 **翻车点评:**有道是终日打雁,却被雁啄了眼睛。但对我们这一代看着 FBI Warning 长大的孩子来说,FBI 它算个球。 翻车等级:★★★★☆ 9、IT 圈的暴力裁员事件 提名理由: 2018 年的春天,堪称近年来最暖的春天。彼时人工智能领域风起云涌,AI 创业公司们纷纷高薪疯抢 AI 开发者,月薪动辄 10 万级别。人工智能的流行还未结束,一个名叫区块链的技术突然又火爆了起来,一时间,“凡人饮水处,皆言区块链”。那是程序员们最甜蜜的一段时间。 这一年的上半年,互联网公司们扎堆上市,蔚为壮观:哔哩哔哩、爱奇艺、美团、小米、拼多多、趣头条……上市后的互联网新兴巨头、独角兽公司为了攻城略地,开启了全面的整军备战:唯有技术、开发者,才是未来的决定因素,这是技术最好的时代。许多人都如此笃信。 一年后的 2019,一切变了:保安赶走身患绝症员工、统计时长裁员、251、1024 等事件频繁映入眼帘,从最开始的愤怒到最后来的无助,我们感同身受。当企业紧缩银根,高薪资的开发们就成了裁员者的 KPI 了。 **翻车点评:**2019 也许是过去十年最坏的一年,也可能是未来十年最好的一年。如果真到万不得已,我们只求一场好聚好散。PS:小编我买了一支录音笔。 **翻车等级:**★★★★★ 10、波音 737 Max 客机软件故障坠机事件 提名理由: 2019 年 3 月 10 日,埃塞俄比亚航空公司一架波音 737 MAX 8 客机在飞往肯尼亚途中坠毁。机上有 149 名乘客和 8 名机组成员,无人生还。据报道,此次失事的是一架全新的波音飞机,四个月前才交付给该航空公司。这是波音 737 MAX 8 半年内出现的第二起严重事故。(第一起为 2018 年 10 月 29 日印尼狮航的坠落事件,189 人罹难) 两次空难的影响因素都有该机型配置的自动控制下压机头的系统,其设计初衷是,如果机身上的传感器检测到高速失速的情况,即使在没有飞行员输入信号的情况下,该系统将强制将飞机的机头向下推。但在狮航空难事件中,该系统接收到了错误数据,导致飞机在正常情况下开始不断下压机头,飞行员在 11 分钟内连续手动拉升 20 余次终告失败,坠海罹难。 这次事故引发了技术圈的广泛讨论,这种由软件带来的自动化能力,究竟是好是坏? **点评:**两起空难总计 346 条人命面前,我们不愿也不敢戏谑。通过对波音公司的陆续调查发现,该公司为了节省成本,裁员了大量资深开发,代之以时薪 9 美元的印度外包,这家数字化转型的“代表企业”看起来光鲜亮丽,但也有阳光下的阴暗背面。 **等级:**★★★★★ 其他候选事件 韩企被爆用免费饮料换 GitHub 上的 star Twitter CEO 杰克·多西的推特账号被黑 特斯拉 App 突然瘫痪,大批车主没法上车 太空作案,NASA 女航天员在太空盗窃前任银行账户 中国人霸榜 GitHub Trending 引发国外开发者不满 你心目中,今年的翻车新闻之首是谁呢?

游客pklijor6gytpx 2020-01-02 10:26:08 0 浏览量 回答数 0

问题

【分享】WeX5的正确打开方式(1)

小太阳1号 2019-12-01 21:15:23 6117 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播