本博的浏览器兼容性问题
Category : 软件 | Post on 2024/07/28 23:52 by Richard | Comments:0
近来发现Chrome打开本博的页面混乱,无法加载正常格式。一直在调试,但仍无果。
今天发现应该跟版本有关系,退回118.0.5993.118版本,就可以了,但最新的127.0.6533.73就格式乱。
最新的Edge版本127.0.2651.74也不行,但是Firefox最新128.0就可以。
所以,将浏览器用回版本118就可以了,但是又少了自动填写储存密码时的指纹验证功能。
======
后话,安装完118版本之后,Chrome恢复正常,包括升级到127.0.6533.89仍然网站工作正常。而Edge依然不能正常展示页面。
今天发现应该跟版本有关系,退回118.0.5993.118版本,就可以了,但最新的127.0.6533.73就格式乱。
最新的Edge版本127.0.2651.74也不行,但是Firefox最新128.0就可以。
所以,将浏览器用回版本118就可以了,但是又少了自动填写储存密码时的指纹验证功能。
======
后话,安装完118版本之后,Chrome恢复正常,包括升级到127.0.6533.89仍然网站工作正常。而Edge依然不能正常展示页面。
全球Windows大瘫痪
Category : 软件 | Post on 2024/07/22 00:00 by Richard | Comments:0
2024年7月19日,全球使用CrowdStrike公司终端安全产品的Windows操作系统的主机大面积发生系统崩溃故障,即“蓝屏死机”(Blue Screen of Death,BSOD),而且受影响的主机重新启动后依然会进入蓝屏状态、无法正常运行。至少20多个国家的交通、金融、医疗、零售等行业或公共服务的业务系统受到影响,四万多航班停运或延误、电视台停播、超市关门、医院停诊、紧急服务中断,还导致了多个重要的微软和AWS的云服务和租户服务中断。事后统计,导致了全球850万台电脑蓝屏死机,这是今年以来全球波及范围最广的信息系统灾难性事件。
关于原因的分析,现在具体信息还是太少,从已知的部分信息来看,已经明确了是因为CrowdStrike更新导致的。
官方给出的修复办法是:
1. 安全模式启动Windows
2. 前往 C:\Windows\System32\drivers\CrowdStrike 目录,删除所有 C-00000291*.sys 文件
3. 重新启动
粗略分析下:
- 故障是由于CrowdStrike升级推送导致的。
- 出错的模块是“CSAgent.sys”,它是主要的功能模块,包括文件监测、运行监测、网络过滤等功能,是其主动防御和主机防火墙的核心驱动。基本的运行原理是:驱动程序加载后首先读取策略配置,根据策略对文件读写、进程加载、内存执行、API调用、网络访问等动作做出放行与阻止操作。
- CrowdStrike升级时下发了新的策略配置文件,虽然以sys为后缀,但其实是数据文件。
- 新的数据逻辑应该是有问题,印发指针错误,激活了之前程序中的BUG,导致出错。
- 在内存指针横行的编程里面,不在所有调用前判断指针的状态将是灾难性的。同样地,参数的各种可能状态,都是要考虑到的。本人曾经遇到过一个“电信级”系统,允许的参数是1-5,在遇到传入0的时候,系统就崩溃了。容错是每一个运营系统必须的考量。
这里,不得不说一下Windows升级机制的安排:
- Microsoft负责Windows以及官方驱动的升级。
- 应用程序Application负责其自身的升级。
- 安全软件、驱动程序是一种特别类型的应用程序,它们具有完全权限,由安装时用户同意授予它访问权限,说白了是不同意就装不了,不过,有几个人真的在安装时研究过许可内容以及可能的后果?
CrowdStrike的故事:
- 2010年4月21日,全球知名的杀毒软件McAfee发布了一次面向企业客户的软件更新,更新后的它看到svchost.exe就认为是病毒,直接删了,但这是Windows一个关键文件,此事导致全球数百万台电脑崩溃并反复重启,只能手工修复。
- 事后,当时McAfee的首席技术官、执行副总裁George Kurtz,离开了McAfee,于2012年创立了CrowdStrike,并一直担任首席执行官至今。而今,CrowdStrike已经是美国网络安全的头部企业,纳斯达克上市公司,世界500强有298家是其客户,市值1000亿美元(事故前)。
- 是不是熟悉的配方?
- 幸运的是,经过长时间的产业国产化,国内并没有使用CrowdStrike,因此基本没有受到波及。但是我们不是也应该从中吸取教训、未雨绸缪吗?
作为前资深程序员,深刻地体会到软件开发中容错机制的重要性。一个程序要做出来不难,要做的漂亮好用、做的稳健,就很难了,如果说一百行代码能够写出程序的功能,很可能最后成品需要数千行代码,最后就是水平和质量的体现了。所以说,难的不是做出功能来,难的是考虑到所有的异常情况,程序在任何情况都不应该有“意外之喜”。
复盘这次的事故,最大的锅在CrowdStrike:
- 程序开发上没有做到详尽检测、测试,留下了BUG,埋下了炸弹。写过程序的都知道,应该让每一次的调用,都要检查各种可能性。
- 策略文件制作发放时没有做好测试,直接开始了推送。
- 推送时也没有分区推送,没有监测机制,一旦发现问题,应该立即停止继续推送。
当然,Windows也不能全部甩锅,谁说微软没有责任的?这个升级机制是否应该考虑更完善,而不是一旦出错就躺平给一个蓝屏出来。尽管驱动程序和安全软件具有系统权限,但也应限制程序和数据区的访达范围,一旦出错,Windows确实无法继续的时候,是不是可以自动重启,到上一次正常启动的状态?滚动记录一次的系统目录即可。
微软有没有考虑过,桌面办公电脑还好,有人去启动,那些远程的无人站点,例如水文监测站、监控点等等,还要派IT人员翻山越岭去一个一个站点修复。微软不考虑这些使用场景的吗?微软是时候要重新检视一下Windows的机制了,所有的系统平台、应用软件,都要从中吸取教训,应考虑到所有的例外情况(Exception)。
关于原因的分析,现在具体信息还是太少,从已知的部分信息来看,已经明确了是因为CrowdStrike更新导致的。
官方给出的修复办法是:
1. 安全模式启动Windows
2. 前往 C:\Windows\System32\drivers\CrowdStrike 目录,删除所有 C-00000291*.sys 文件
3. 重新启动
粗略分析下:
- 故障是由于CrowdStrike升级推送导致的。
- 出错的模块是“CSAgent.sys”,它是主要的功能模块,包括文件监测、运行监测、网络过滤等功能,是其主动防御和主机防火墙的核心驱动。基本的运行原理是:驱动程序加载后首先读取策略配置,根据策略对文件读写、进程加载、内存执行、API调用、网络访问等动作做出放行与阻止操作。
- CrowdStrike升级时下发了新的策略配置文件,虽然以sys为后缀,但其实是数据文件。
- 新的数据逻辑应该是有问题,印发指针错误,激活了之前程序中的BUG,导致出错。
- 在内存指针横行的编程里面,不在所有调用前判断指针的状态将是灾难性的。同样地,参数的各种可能状态,都是要考虑到的。本人曾经遇到过一个“电信级”系统,允许的参数是1-5,在遇到传入0的时候,系统就崩溃了。容错是每一个运营系统必须的考量。
这里,不得不说一下Windows升级机制的安排:
- Microsoft负责Windows以及官方驱动的升级。
- 应用程序Application负责其自身的升级。
- 安全软件、驱动程序是一种特别类型的应用程序,它们具有完全权限,由安装时用户同意授予它访问权限,说白了是不同意就装不了,不过,有几个人真的在安装时研究过许可内容以及可能的后果?
CrowdStrike的故事:
- 2010年4月21日,全球知名的杀毒软件McAfee发布了一次面向企业客户的软件更新,更新后的它看到svchost.exe就认为是病毒,直接删了,但这是Windows一个关键文件,此事导致全球数百万台电脑崩溃并反复重启,只能手工修复。
- 事后,当时McAfee的首席技术官、执行副总裁George Kurtz,离开了McAfee,于2012年创立了CrowdStrike,并一直担任首席执行官至今。而今,CrowdStrike已经是美国网络安全的头部企业,纳斯达克上市公司,世界500强有298家是其客户,市值1000亿美元(事故前)。
- 是不是熟悉的配方?
- 幸运的是,经过长时间的产业国产化,国内并没有使用CrowdStrike,因此基本没有受到波及。但是我们不是也应该从中吸取教训、未雨绸缪吗?
作为前资深程序员,深刻地体会到软件开发中容错机制的重要性。一个程序要做出来不难,要做的漂亮好用、做的稳健,就很难了,如果说一百行代码能够写出程序的功能,很可能最后成品需要数千行代码,最后就是水平和质量的体现了。所以说,难的不是做出功能来,难的是考虑到所有的异常情况,程序在任何情况都不应该有“意外之喜”。
复盘这次的事故,最大的锅在CrowdStrike:
- 程序开发上没有做到详尽检测、测试,留下了BUG,埋下了炸弹。写过程序的都知道,应该让每一次的调用,都要检查各种可能性。
- 策略文件制作发放时没有做好测试,直接开始了推送。
- 推送时也没有分区推送,没有监测机制,一旦发现问题,应该立即停止继续推送。
当然,Windows也不能全部甩锅,谁说微软没有责任的?这个升级机制是否应该考虑更完善,而不是一旦出错就躺平给一个蓝屏出来。尽管驱动程序和安全软件具有系统权限,但也应限制程序和数据区的访达范围,一旦出错,Windows确实无法继续的时候,是不是可以自动重启,到上一次正常启动的状态?滚动记录一次的系统目录即可。
微软有没有考虑过,桌面办公电脑还好,有人去启动,那些远程的无人站点,例如水文监测站、监控点等等,还要派IT人员翻山越岭去一个一个站点修复。微软不考虑这些使用场景的吗?微软是时候要重新检视一下Windows的机制了,所有的系统平台、应用软件,都要从中吸取教训,应考虑到所有的例外情况(Exception)。
云上的日子
Category : 摄影 | Post on 2023/09/20 21:30 by Richard | Comments:0苹果牌牙膏又发布新款了
Category : 数码 | Post on 2023/09/13 09:16 by Richard | Comments:0
昨晚,苹果牌牙膏发布了!
果然很苹果,果然很牙膏。
- 软件粉饰的前置摄像大洞,愣是把缺点做成优点。
- 安卓百元机都用了好几年的“非常先进”的Type-C接口终于替代了千年雷电口,忘带线症患者的福音。
- 摄像头还是4800+1200万像素。
- 出点新颜色,例如粉色,招数一直不变,方便提升AC格。
- 静音按钮真变成按钮。
- 钛合金机身框架,其他部分还是铝合金。目的还是保持硬度的前提下减重,高端机型的不锈钢材质硬度够但较重,低端机型的铝合金很轻但不太耐摔耐磨。
每次雷打不动的牙膏,但雷打不动的升级,是CPU核心处理器的升级,这背后是软件的升级。实际上,更多的体验升级,都是软件的升级带来的。
可见,所谓产品功能,更多的是软产品,所谓产品体验,更多的是软体验。
顺带说一句,iWatch 9表带不用真皮,叫做环保。
不管硬升级、软升级,价格升级是必然的。你的钱包准备好了吗?花钱也是要抢的,不仅要求钱包容量大,还要付款快。
果然很苹果,果然很牙膏。
- 软件粉饰的前置摄像大洞,愣是把缺点做成优点。
- 安卓百元机都用了好几年的“非常先进”的Type-C接口终于替代了千年雷电口,忘带线症患者的福音。
- 摄像头还是4800+1200万像素。
- 出点新颜色,例如粉色,招数一直不变,方便提升AC格。
- 静音按钮真变成按钮。
- 钛合金机身框架,其他部分还是铝合金。目的还是保持硬度的前提下减重,高端机型的不锈钢材质硬度够但较重,低端机型的铝合金很轻但不太耐摔耐磨。
每次雷打不动的牙膏,但雷打不动的升级,是CPU核心处理器的升级,这背后是软件的升级。实际上,更多的体验升级,都是软件的升级带来的。
可见,所谓产品功能,更多的是软产品,所谓产品体验,更多的是软体验。
顺带说一句,iWatch 9表带不用真皮,叫做环保。
不管硬升级、软升级,价格升级是必然的。你的钱包准备好了吗?花钱也是要抢的,不仅要求钱包容量大,还要付款快。
老片重修 —— 王筝
Category : 摄影 | Post on 2023/09/12 22:43 by Richard | Comments:0
几张旧片,王筝,这个名字仿佛很遥远,也不是什么大红大紫。但,说起《我们都是好孩子》这首歌,旋律是不是依然在耳边?她自己作词作曲,静静地演绎。。。
我们都是好孩子
最最天真的孩子
灿烂的 孤单的变遥远的啊
我们都是好孩子
最最可爱的孩子
在一起 为幸福落泪啊
我们都是好孩子
异想天开的孩子
相信爱 可以永远啊
我们都是好孩子
最最善良的孩子
怀念着 伤害我们的
王筝除了曾拿下内地最佳女歌手,还是创作人,为韩红、周笔畅、安又琪、范冰冰等写歌。
对于这张《我们都是好孩子》专辑的评论:该专辑是一张坚持自我并且拥有精良品质的唱片,里面没有R&B,也没有Hip-Hop,更没有电子舞曲。但是,如果你喜欢音乐,如果你不盲目跟风,如果你的情感需要通过音乐来寻找出口,这张唱片便值得你反复聆听。它就像一朵山间的百合,沐浴在温暖阳光下,淡淡地静静地散发着人性与自然的馨香。
不功利、不浮躁,静静地做自己的音乐,这样的歌手越来越少了。
我们都是好孩子
最最天真的孩子
灿烂的 孤单的变遥远的啊
我们都是好孩子
最最可爱的孩子
在一起 为幸福落泪啊
我们都是好孩子
异想天开的孩子
相信爱 可以永远啊
我们都是好孩子
最最善良的孩子
怀念着 伤害我们的
王筝除了曾拿下内地最佳女歌手,还是创作人,为韩红、周笔畅、安又琪、范冰冰等写歌。
对于这张《我们都是好孩子》专辑的评论:该专辑是一张坚持自我并且拥有精良品质的唱片,里面没有R&B,也没有Hip-Hop,更没有电子舞曲。但是,如果你喜欢音乐,如果你不盲目跟风,如果你的情感需要通过音乐来寻找出口,这张唱片便值得你反复聆听。它就像一朵山间的百合,沐浴在温暖阳光下,淡淡地静静地散发着人性与自然的馨香。
不功利、不浮躁,静静地做自己的音乐,这样的歌手越来越少了。