uMatrix规则清理

" \fR: mirror image the lines (horizontal mirror)
nmap \fR :set lzomzkOmaj:s/./&\r/g:'a+1,'z-1g/^/m 'a:'a+1,'z-1j!'add'zddk:set nolz
  1. 按动作为inherit过滤,清理所有项目
  2. 按动作为block过滤
    1. 依来源排序,对于同一个来源同一个动作同一个类型,如果有三个目标共享同一个上级域名,则这三个目标合并为上级域名。(注:不要把类型合并为*,因为会被具体类型的动作覆盖)
    2. 同一个目标同一个类型同一个动作,如果有三个来源共享同[……]

继续阅读

Directory Opus技巧

文件和文件夹自动样式化

Linux里以点开头的文件和文件夹都视为隐藏文件,而Windows上没有这个约定。有些Windows上的程序,如Git,采用Linux约定,创建点开头的文件夹。Directory Opus可以自动把点开头的文件夹显示为灰色。

自动样式化通过标记来实现。先在收藏夹&最近访问列表(笔者认为标记不应该属于这个分类)里选择标记,新建标记并设置你想要的样式。

然后在标记分配页创建过滤器。

保护远程桌面防止入侵

在服务器上仅允许网络级别身份验证

网络级别身份验证是Windows 7​加入的功能,旨在服务器启动远程桌面服务前就验证用户身份,消耗较少资源。参见https://technet.microsoft.com/zh-cn/library/cc732713(v=ws.11).aspx

在远程桌面客户端,运行远程连接,点击左上角的窗口图标,关于,就可以查看该系统是否支持网络级别身份验证。Windows 7​及以后的操作系统都支持。

那么,我在服务器上仅允许网络级别身份验证,如果客户端不支持网络级别身份验证,服务器能否正确阻挡呢?

我们可以在支持网络级别身份验证的客户端电脑上[……]

继续阅读

机械键盘轴选购指南

既然知道机械键盘,一定知道另外至少一种键盘——薄膜键盘。先要知道薄膜键盘的工作原理,才好与机械键盘比较,然后才能搞清自己需要什么轴。心急的人请注意,如果你不看薄膜键盘原理,一定无法选出自己满意的轴!

薄膜键盘原理

薄膜键盘上面是键帽,中间是有弹性的橡皮碗,下面是电路板1,再下面是电路板2。

橡皮碗的“碗顶”可以被按下,碗顶下压电路板1,电路板1接触电路板2,于是触发按键。

薄膜键盘没有其他弹簧,橡皮碗就作为弹簧。

分析下薄膜键盘的手感,从键帽的初始状态开始往下压,下压一点点就变得“很硬”。因为一开始键帽跟橡皮碗是松的,手指稍微一压,键帽跟橡皮碗就贴紧了,并且橡[……]

继续阅读

git变基

git rebase命令可接受一到两个定位参数。当接收两个参数时,要加--onto命名参数。用法如下

git rebase 不要的分支 要的分支 --onto 目标分支

hljs.initHighlightingOnLoad();

钢铁雄心4苏联教程

一进入游戏就释放释放傀儡,然后控制台切换过去令傀儡对美国提高党派支持度。

第一个国策选择斯大林宪法加政治点数,国策完成后改经济法案为部分动员。

打满洲国伪蒙古国和日本国时,蒙古不需要参战。因为他兵力太弱,而苏联如果去协防,则当地基建太差,很容易补给不足。也不能把全部兵力调去满洲国,很容易补给不足。步兵方式为平原2步兵1轻坦1摩托,山地2山地2骑兵。所以还要再造3个山地师、5个轻坦、15个摩托化。

晋系策略

关键点1是利用七七事变日本进攻晋系。苏联要保障晋系独立才能作为防御方进攻日本,但苏联是共产主义,共产主义只能保障共产主义,把晋系意识形态改为共产有两种方法。一是进攻晋系,[……]

继续阅读

web.config中<remove assembly=”*” />和<clear />的区别

ASP.NET窗体网站中,web.config system.web/compilation/assembly可以添加或删除该网站要使用的类库。常见的删除方法是调用<clear />指令,但是还有<remove>指令,并且在MSDN中出现了*参数的用法。<remove assembly="*" /><clear />到底有什么区别呢?

我并没有在MSDN中找到对<remove assembly="*" />的解释。但是通过查看.NET源代码发现了端倪。

根web.config(C:\Windows\Microsoft.NET\Framework\v4.0.30[……]

继续阅读

asp.net添加生成步骤

用过Gradle或Grunt的用户知道,构建项目时可以添加构建步骤;编译代码只是其中一步。比如,一次构建可包括以下几个步骤:编译代码、运行测试、压缩、上传服务器。

asp.net窗体网站能不能添加这样的构建步骤呢?

asp.net窗体网站,尤其在采用动态编译的部署方式时,对自定义构建的支持比较有限。

web.config的<buildProviders>配置节可以添加生成提供程序。(微软使用生成这个词,Java社区常用构建这个词)生成提供程序用于将非.cs、.vb扩展名的文件转换为C#或VB代码。这样的文件被称为非代码文件。在自定义生成提供程序时,最重要的工作就是实现Bu[......]

继续阅读

合并A到B是什么意思?

Git里我们经常创建分支最后将它们合并,但是合并A到B、合并B到A、把A和B合并在一起,这三种动作的意思相同吗?本文解释这个问题。

设当前分支为B,合并A。如果是快进合并,则A和B会指向同一提交。在可快进的情况下,合并A到B与合并B到A的效果相同。

但是如果不可快进,会产生一个新的合并提交,提交说明为merge a into b。合并提交有两个父提交,第一父提交来自当前分支,即B,第二父提交来自A。然后因为当前分支为B,B指针会移动到新的合并提交上。

搞清楚第一父提交和第二父提交对git svn有用,因为git svn dcommit会抛弃第二父提交,以便获得线性的svn历史[……]

继续阅读

git svn逐步获取旧历史

git svn克隆时可选择从svn的哪次提交开始克隆。如果svn仓库很大,git svn克隆就很慢。我们一般都会获取最近的svn历史,然后就开始工作。那么能不能在闲暇时间继续获取更久远的历史呢?本文提供一些方法。

方法一:变基

git svn先克隆最近的历史,如-r 29999:30010,假设30010为HEAD。设这个仓库为新仓库。

git svn克隆旧历史,如-r 20000:29998。设这个仓库为旧仓库。

当新仓库想要旧历史时,创建一个分支备份当前历史,新仓库开启后台服务进程,在旧仓库添加一个远端为新仓库,从中获取。

现在旧仓库有两个分支,分支A有r29[……]

继续阅读