使命召唤:二战(Call Of Duty: WWII)下周发布,Steam预下载明日开始

FPS经典系列的使命召唤(COD)最新一代使命召唤:二战将于一周后的11月3日发布(美国时间,中国将在11月4日)。其中PC版将在Steam平台发售,明天(10月28日)就可以提前下载了。

新一代的画面更加精致,和电影截图几乎没什么两样,颇有《兄弟连》的感觉。

9月份开始的公测让不少人已经对这一经典游戏的新作跃跃欲试。

此前在公测刚刚发布三天后就有人做出了自瞄作弊器。Sledgehammer在此次预下载通知中说在公测中其反作弊系统并未完全运行。而正式版根据公测反馈提升了反作弊效果并将全力开启。也警告说将从第一天就开始BAN出作弊者。

COD的网络对战方面每一代都深受作弊困扰,不晓得这次会不会像BF1一样被

作弊者耗光人气。

同时正式版在性能优化上也将做出提升。还会有硬件超载预警。Sledgehammer 也给出了最低和推荐硬件配置要求:

最低配置:

操作系统:Window 7 (64位)以上

CPU: Intel Core i3 3225 3.3 GHz 或 AMD Ryzen 5 1400

内存:8GB

硬盘:90GB

显卡: Nvidia GeForce GTX 660 @ 2 GB / GTX 1050 或 ATI Radeon HD 7850 @ 2GB / AMD RX 550

DirectX:DX11

推荐配置

CPU:Intel Core i5-2400 或 AMD Ryzen R5 1600X

内存:12GB

硬盘:90GB SSD

显卡: Nvidia GeForce GTX 970 / GTX 1060 @ 6GB 或 AMD Radeon R9 390 / AMD RX 580 Read More

战地1最后一个DLC:Apocalypse (启示录)一些细节曝光

2016年10月底,战地1发布。此后在2017年间,EA相继发布了战地1的两个DLC誓死坚守和以沙皇之名。在刚刚发布了12月底和2018年1月将发布力挽狂澜的消息后,紧接着发布了其第四个也是最后一个DLC的消息。

这张烧焦的防毒面具颇有一些世界末日的意味

虽然关于此DLC更多细节还都未正式发布,但是DICE也确认了其中一些内容。

– 发布时间:DICE的说法是“2018年早些时候”。 根据其以往的发布规律,每个DLC之间至少有三四个月的间隔,而力挽狂澜将在1月份发布。因此启示录估计最早也要到18年6月份才会发布。

-如何提前体验:之前的DLC均在CTE(Community Test Environment,社区测试环境)中提前发布供公测了,因此如果你有高级通行证,应该也能提前在CTE中体验这个版本。

-主题:根据DICE对此DLC定义的slogan“一战中最臭名昭著的战役”来看,很有可能是萨姆河战役——一战历史中规模最大的一次战役。(这一战役有英法联军和德军参战,伤亡约达134万人。文末有介绍)。

-其他新的内容: 必然是新的武器,新的模式和一些新改进的小细节。比如下面这些武器看着就挺新奇的:

Darne Model 1918

 

不过战地1作为战地系列中作弊器最为横行的一代产品,至今官方也并未出什么很有效的遏制手段。未知其是否会因为作弊器成为联网战斗体验最差和最短命的一代呢。

维基时间:

索姆河战役

索姆河战役(英语:Battle of Somme,法语:Bataille de la Somme,德语:Schlacht an der Somme)是第一次世界大战中规模最大的一次会战,时间发生在1916年7月1日到11月18日间,英、法两国为突破德军防御并将其击退到法德边境,于是在位于法国北方的索姆河区域实施作战。双方伤亡共130万人,是一战中最惨烈的阵地战,也是人类历史上第一次把坦克投入实战中。

Mark 1战车

这场战役是协约国在1916年总战略进攻计划的一部分。计划拟定的内容是:在福煦将军的统一指挥下,法国法约勒将军的第6集团军和英国罗林森将军的第4集团军,负责突破囤驻在富科库尔、埃比泰讷(40公里)地区的德国冯·贝洛将军之第2集团军的防御阵地;并运用骑兵兵团向法军负责的佩罗讷、莫伯日和英军负责的巴波姆、康布雷等地打开突破口。英、法联军共有32个步兵师和6个骑兵师,2189门火炮,门迫击炮,约300架飞机;德国第2集团军则有 个步兵师,62门火炮,门迫击炮和114架飞机。德军防御由30道阵地组成,全纵深为7至8公里。

1916年6月24日,英军经过充足的准备下,先出动了约1400门火炮,对德军阵地进行一周的的猛烈炮击(6月24日—7月1日),共发射了约150亿发炮弹。英军希望透过炮火轰击,达到消灭德军战壕的目的。但事实上德军只有些微死伤,炮火不足以摧毁战壕,其中约1000门是野战炮,对战事并无多大作用。[3]。7天的炮击,虽然几乎完全摧毁德军第一阵地,部分摧毁第二阵地,但失去了进攻作战在战术上应保持的主动性。

7月1日,英国第4集团军(由罗林森将军指挥)从马里库尔至埃比泰恩25公里正面向巴波姆方向实施主要突击,由英国第3集团军第7军在其左翼掩护;法国第6集团军(由法约勒将军指挥)从罗西耶尔以北索姆河两岸向佩罗讷方向实施辅助突击。当日,法军和英军右翼突破德军第一道阵地,但英军左翼为德军壕沟阵地所阻。英军采用密集队形突击, 遭德军MG-08的强大火力杀伤,损失近57,000人[3]

7月2—3日,英军右翼和法军攻占德军第二道阵地,法军一度占领巴尔勒、比阿什等德军防御要地。此后数日,由于德军投入预备部队以及英、法联军本身在突破战术和指挥调度方面存在着严重缺点(对各地区的突击规定繁琐,限制了军队的主动性等),以致推进缓慢。

英军进攻路线

7月19日,德军指挥部又投入新一波预备部队,为便于指挥,将第2集团军分编为由贝洛将军指挥的第1集团军和加尔维茨将军指挥的第2集团军。并在防御上加长纵深,构筑了补充防御地区。

7月中旬,英、法联军仅向前推进数公里,未达成作战的预期目标。而又损失了不少部队

7月底至8月中旬,英、法联军将其部队增强至51个师、飞机增加至509架;而德军增加到31个师、飞机增到300架,由于作战的迟缓、胶着,遂转变成为消耗战。

9月3日起,法国米舍莱将军的第10集团军、英国加夫将军的第5集团军分别投入战斗,战场正面范围扩大到50公里宽的战线。德军增强至40个师,又不停加强阵地的防御工事。因此英、法军队的推进速度平均每昼夜仅有150至200米。

9月15日,英军第一次使用新式兵器——MarkI坦克(共49辆坦克,实际参战仅18辆),配合步兵进攻,推进了4至5公里。这是战争史上第一次使用坦克,对守备方的德国步兵产生了心理震撼,使他们放弃阵地不战自退。但由于坦克的技术与装备尚未完善,加上战线宽广(10公里18辆坦克),仍然没有达成打开突破口的作战目标。战术层级的运用成功并未能引导作战胜利。虽然英军后来又使用了两次坦克,同样收效不大,倒让德军开始学习如何对付敌方这个庞然巨物。[4][5]

进入秋季后,气候开始恶化,由于阴雨连绵、道路泥泞,战斗渐渐平息,到了11月完全停止,英、法两国的作战计划宣告失败。

微信公众平台“发生未知错误”的解决方法之一

最近想玩微信公众平台开发。
在填写服务器配置的时候,点击提交总也不通过,显示“发生未知错误,请重试”(大意如此);
搜了半天也没得到什么有用的东西,有很多答案居然是换个浏览器就可以了。然而我从Chrome到Firefox到Edge甚至IE都换过了,依然没有解决。

随后读了一下文档,猜想,该不是在提交配置的时候微信公众平台就要测试吧?
就快速写了一个客户端。按照文档方法加密验证签名。果然提交成功。

关键点在下面:

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

参数
描述
signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串

开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

1)将token、timestamp、nonce三个参数进行字典序排序

2)将三个参数字符串拼接成一个字符串进行sha1加密

3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

简单来说就是验证一下服务器。在提交服务器设置的时候你可以不用管这个验证过程,直接返回echostr即可。等配置提交完成了再实现也没问题。

 

所以微信你可否给一些更友好一点的错误提示呢?诸如“未能连接到你的服务器”?

WebExtension: Block request after response header received in Firefox and Chrome Extension

Well. Firefox finally admitted that Chrome’s extension system is better than it’s XUL or Add-on SDK.

So from Firefox 45+, it started to support WebExtension. And now, it even does not allow any extension that is not built with WebExtension API.

This is a good news, because if you want your extension run on both Chrome and Firefox. you won’t need to build twice.

However, even Firefox is trying to support all of the WebExtension API. There are still some differences between Chrome and Firefox.

Recently I got this one.

I was trying to block some requests with the WebRequest API after response header just received. In Chrome, you can easily do it with an onHeadersReceived listener. like this:

 chrome.webRequest.onHeadersReceived.addListener(
    function (details) {
        let block = THE CONDITIONS THAT YOU WANT TO USE;
        return {cancel: block};

    },
    {urls: ["URL PATTERN"], types: ["TYPES"]},
    ["blocking"]); 

But in Firefox, this is not gonna work. Because in Firefox, you can not block a request after the response headers received, you can only redirect it. So you need to to this:

 chrome.webRequest.onHeadersReceived.addListener(
    function (details) {
        let block = THE CONDITIONS THAT YOU WANT TO USE;
        return {cancel: block, redirectUrl: "://127.0.0.1"};

    },
    {urls: ["URL PATTERN"], types: ["TYPES"]},
    ["blocking"]); 

with the redirectUrl: “://127.0.0.1”, you will redirect it to a local address, and means block it.

How to fix “[Error] ScriptError: Document DocumetID is missing (perhaps it was deleted?)” in Google Script

I’ve created a Google Script APP to help someone export Gmail data to Google SpreadSheet.

It works well when I was testing. But after I publish it as web app, and other users got an error which says

[Error] ScriptError: Document DOCUMENT_ID is missing (perhaps it was deleted?).

And no authorize permission form popups up.  I did not get any useful answer in Google.

After several tests I found I made a stupid mistake.

When publishing the Google Script as web app or other types of APP. There are several options need to take carefully.

Execute the app as:

should set as “User accessing the web app“. (The default value is  Me(myself email)).

With this option, when user first use your app, the authorize permission form will popup and ask user to allow your app access their Google APP.

And no more Document is missing error.

Also don’t forget to chose Anyone in the Who has access to the app option.

 

 

 

How to debug Chrome extension Native Messaging app

 

Here is how to debug native messageing: enable logging.

By adding a flag, it can open Chrome logging window when starting Chrome.

For Windows, you just need to right click on the Chrome icon in your installation folder / shortcut / taskbar —— Properties  —— add this line behind the target string:

[code]–enable-logging –v=1[/code]

A logging window will start with the Chrome. There the native messaging stuff will be print out.

迄今为止最便捷的免费SSL证书服务:腾讯云

现在都用SSL了。 这段时间一直在折腾启用这个网站的SSL,前后试过Let’s encrypt 和StartSSL两个服务,均出现各种问题,配置过程也比较繁琐。耗费掉数十个小时不说,也有些备受打击。

而且StartSSL据称被著名流氓公司奇虎360收购了。对于Let’s encrypt,Chrome和iOS似乎对个人签署的证书也不友好,经常显示不信任。

辗转搜索,有人推荐用腾讯云提供的免费个人证书服务,试用下来步骤非常简单,配置也相当傻瓜化,几分钟即可完成。

这里粗略记录一下。

腾讯云SSL服务地址是:https://console.qcloud.com/ssl

若你还未注册,则需要用QQ或者微信登录,然后通过手机号进行简单的注册。

要申请证书,还需要使用真实姓名和身份证号进行实名认证。填入后若正确可即时通过认证,无需上传照片。

然后点击申请证书, 选择左侧的免费证书即可(也可在右侧购买收费证书) Read More

This Site Enabled SSL

Today I finally got some time to work on my own site.

This small blog used to on a small VPS.

I moved it to Vultr because I heard it is a powerful VPS and it’s price is fair too.

I also enabled SSL, using Free SSL certificate supplier Tencent Cloud service. It’s good, easy to config and doesn’t need to verify again in 1 years.

Got A+ 🙂